IyBUaGlzIHNldCBvZiB0ZXN0cyBpcyBmb3IgZmVhdHVyZXMgdGhhdCBhcmUgY29tcGF0aWJsZSB3aXRoIGFsbCB2ZXJzaW9ucyBvZgojIFBlcmwgPj0gNS4xMCwgaW4gbm9uLVVURiBtb2RlLiBJdCBzaG91bGQgcnVuIGNsZWFuIGZvciB0aGUgOC1iaXQsIDE2LWJpdCwgYW5kCiMgMzItYml0IFBDUkUgbGlicmFyaWVzLCBhbmQgYWxzbyB1c2luZyB0aGUgcGVybHRlc3QucGwgc2NyaXB0LgogICAgCiNmb3JiaWRfdXRmCiNuZXdsaW5lX2RlZmF1bHQgbGYgYW55IGFueWNybGYKI3Blcmx0ZXN0CgovdGhlIHF1aWNrIGJyb3duIGZveC8KICAgIHRoZSBxdWljayBicm93biBmb3gKICAgIFdoYXQgZG8geW91IGtub3cgYWJvdXQgdGhlIHF1aWNrIGJyb3duIGZveD8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBUaGUgcXVpY2sgYnJvd24gRk9YCiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IFRIRSBRVUlDSyBCUk9XTiBGT1g/CgovVGhlIHF1aWNrIGJyb3duIGZveC9pCiAgICB0aGUgcXVpY2sgYnJvd24gZm94CiAgICBUaGUgcXVpY2sgYnJvd24gRk9YCiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IHRoZSBxdWljayBicm93biBmb3g/CiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IFRIRSBRVUlDSyBCUk9XTiBGT1g/CgovYWJjZFx0XG5cclxmXGFcZVwwNzFceDNiXCRcXFw/Y2F4eXovCiAgICBhYmNkXHRcblxyXGZcYVxlOTtcJFxcP2NheHl6CgovYSphYmM/eHl6K3BxcnszfWFiezIsfXh5ezQsNX1wcXswLDZ9QUJ7MCx9enovCiAgICBhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWJ4eXpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYWJ4eXpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFiY3h5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFiY3h5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cEF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFhYWJjeHl6cHFycnJhYmJ4eXl5eXBxcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcXFBenoKICAgIGFhYWJjeHl6cHFycnJhYmJ4eXl5eXBxcXFxcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcXFxcUF6egogICAgYWFhYWJjeHl6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYnh5enpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFhYnh5enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFieHl6enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFhYnh5enp6enBxcnJyYWJieHl5eXlwcUF6egogICAgYWJjeHl6enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFiY3h5enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFiY3h5enp6enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYWJjeHl6enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFhYmN4eXp6enpwcXJycmFiYmJ4eXl5eXBxQXp6CiAgICBhYWFhYmN4eXp6enpwcXJycmFiYmJ4eXl5eXlwcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cEFCenoKICAgIGFhYWJjeHl6cHFycnJhYmJ4eXl5eXBBQkJ6egogICAgPj4+YWFhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgPmFhYWFieHl6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICA+Pj4+YWJjeHl6cHFycnJhYmJ4eXl5eXBxQXp6Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJ4eXpwcXJyYWJieHl5eXlwcUF6egogICAgYWJ4eXpwcXJycnJhYmJ4eXl5eXBxQXp6CiAgICBhYnh5enBxcnJyYWJ4eXl5eXBxQXp6CiAgICBhYWFhYmN4eXp6enpwcXJycmFiYmJ4eXl5eXl5cHFBenoKICAgIGFhYWFiY3h5enp6enBxcnJyYWJiYnh5eXlwcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcXFxcXFBenoKCi9eKGFiYyl7MSwyfXp6LwogICAgYWJjenoKICAgIGFiY2FiY3p6Clw9IEV4cGVjdCBubyBtYXRjaAogICAgenoKICAgIGFiY2FiY2FiY3p6CiAgICA+PmFiY3p6CgovXihiKz98YSl7MSwyfT9jLwogICAgYmMKICAgIGJiYwogICAgYmJiYwogICAgYmFjCiAgICBiYmFjCiAgICBhYWMKICAgIGFiYmJiYmJiYmJiYmMKICAgIGJiYmJiYmJiYmJiYWMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFjCiAgICBhYmJiYmJiYmJiYmJhYwoKL14oYit8YSl7MSwyfWMvCiAgICBiYwogICAgYmJjCiAgICBiYmJjCiAgICBiYWMKICAgIGJiYWMKICAgIGFhYwogICAgYWJiYmJiYmJiYmJiYwogICAgYmJiYmJiYmJiYmJhYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWMKICAgIGFiYmJiYmJiYmJiYmFjCgovXihiK3xhKXsxLDJ9P2JjLwogICAgYmJjCgovXihiKnxiYSl7MSwyfT9iYy8KICAgIGJhYmMKICAgIGJiYWJjCiAgICBiYWJhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYWJhYmJjCiAgICBiYWJhYmFiYwoKL14oYmF8YiopezEsMn0/YmMvCiAgICBiYWJjCiAgICBiYmFiYwogICAgYmFiYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYmFiYWJiYwogICAgYmFiYWJhYmMKCi9eXGNhXGNBXGNbO1xjOi8KICAgIFx4MDFceDAxXGU7egoKL15bYWJcXWNkZV0vCiAgICBhdGhpbmcKICAgIGJ0aGluZwogICAgXXRoaW5nCiAgICBjdGhpbmcKICAgIGR0aGluZwogICAgZXRoaW5nClw9IEV4cGVjdCBubyBtYXRjaAogICAgZnRoaW5nCiAgICBbdGhpbmcKICAgIFxcdGhpbmcKCi9eW11jZGVdLwogICAgXXRoaW5nCiAgICBjdGhpbmcKICAgIGR0aGluZwogICAgZXRoaW5nClw9IEV4cGVjdCBubyBtYXRjaAogICAgYXRoaW5nCiAgICBmdGhpbmcKCi9eW15hYlxdY2RlXS8KICAgIGZ0aGluZwogICAgW3RoaW5nCiAgICBcXHRoaW5nClw9IEV4cGVjdCBubyBtYXRjaAogICAgYXRoaW5nCiAgICBidGhpbmcKICAgIF10aGluZwogICAgY3RoaW5nCiAgICBkdGhpbmcKICAgIGV0aGluZwoKL15bXl1jZGVdLwogICAgYXRoaW5nCiAgICBmdGhpbmcKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBddGhpbmcKICAgIGN0aGluZwogICAgZHRoaW5nCiAgICBldGhpbmcKCi9eXIEvCiAgICCBCgovXv8vCiAgICD/CgovXlswLTldKyQvCiAgICAwCiAgICAxCiAgICAyCiAgICAzCiAgICA0CiAgICA1CiAgICA2CiAgICA3CiAgICA4CiAgICA5CiAgICAxMAogICAgMTAwClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjCgovXi4qbnRlci8KICAgIGVudGVyCiAgICBpbnRlcgogICAgdXBvbnRlcgoKL154eHhbMC05XSskLwogICAgeHh4MAogICAgeHh4MTIzNApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHh4eAoKL14uK1swLTldWzAtOV1bMC05XSQvCiAgICB4MTIzCiAgICB4MTIzNAogICAgeHgxMjMKICAgIDEyMzQ1NgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMwoKL14uKz9bMC05XVswLTldWzAtOV0kLwogICAgeDEyMwogICAgeDEyMzQKICAgIHh4MTIzCiAgICAxMjM0NTYKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjMKCi9eKFteIV0rKSEoLispPWFwcXV4elwuaXhyXC56enpcLmFjXC51ayQvCiAgICBhYmMhcHFyPWFwcXV4ei5peHIuenp6LmFjLnVrClw9IEV4cGVjdCBubyBtYXRjaAogICAgIXBxcj1hcHF1eHouaXhyLnp6ei5hYy51awogICAgYWJjIT1hcHF1eHouaXhyLnp6ei5hYy51awogICAgYWJjIXBxcj1hcHF1eHo6aXhyLnp6ei5hYy51awogICAgYWJjIXBxcj1hcHF1eHouaXhyLnp6ei5hYy51a2sKCi86LwogICAgV2VsbCwgd2UgbmVlZCBhIGNvbG9uOiBzb21ld2hlcmUKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBGYWlsIHdpdGhvdXQgYSBjb2xvbgoKLyhbXGRhLWY6XSspJC9pCiAgICAwYWJjCiAgICBhYmMKICAgIGZlZAogICAgRQogICAgOjoKICAgIDVmMDM6MTJDMDo6OTMyZQogICAgZmVkIGRlZgogICAgQW55IG9sZCBzdHVmZgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDB6enoKICAgIGd6enoKICAgIGZlZFx4MjAKICAgIEFueSBvbGQgcnViYmlzaAoKL14uKlwuKFxkezEsM30pXC4oXGR7MSwzfSlcLihcZHsxLDN9KSQvCiAgICAuMS4yLjMKICAgIEEuMTIuMTIzLjAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAuMS4yLjMzMzMKICAgIDEuMi4zCiAgICAxMjM0LjIuMwoKL14oXGQrKVxzK0lOXHMrU09BXHMrKFxTKylccysoXFMrKVxzKlwoXHMqJC8KICAgIDEgSU4gU09BIG5vbi1zcDEgbm9uLXNwMigKICAgIDEgICAgSU4gICAgU09BICAgIG5vbi1zcDEgICAgbm9uLXNwMiAgICgKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxSU4gU09BIG5vbi1zcDEgbm9uLXNwMigKCi9eW2EtekEtWlxkXVthLXpBLVpcZFwtXSooXC5bYS16QS1aXGRdW2EtekEtelxkXC1dKikqXC4kLwogICAgYS4KICAgIFouCiAgICAyLgogICAgYWItYy5wcS1yLgogICAgc3hrLnp6ei5hYy51ay4KICAgIHgtLnktLgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIC1hYmMucGVxLgoKL15cKlwuW2Etel0oW2EtelwtXGRdKlthLXpcZF0rKT8oXC5bYS16XShbYS16XC1cZF0qW2EtelxkXSspPykqJC8KICAgICouYQogICAgKi5iMC1hCiAgICAqLmMzLWIuYwogICAgKi5jLWEuYi1jClw9IEV4cGVjdCBubyBtYXRjaAogICAgKi4wCiAgICAqLmEtCiAgICAqLmEtYi5jLQogICAgKi5jLWEuMC1jCgovXig/PWFiKGRlKSkoYWJkKShlKS8KICAgIGFiZGUKCi9eKD8hKGFiKWRlfHgpKGFiZCkoZikvCiAgICBhYmRmCgovXig/PShhYihjZCkpKShhYikvCiAgICBhYmNkCgovXltcZGEtZl0oXC5bXGRhLWZdKSokL2kKICAgIGEuYi5jLmQKICAgIEEuQi5DLkQKICAgIGEuYi5jLjEuMi4zLkMKCi9eXCIuKlwiXHMqKDsuKik/JC8KICAgIFwiMTIzNFwiCiAgICBcImFiY2RcIiA7CiAgICBcIlwiIDsgcmh1YmFyYgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFwiMTIzNFwiIDogdGhpbmdzCgovXiQvCiAgICBcClw9IEV4cGVjdCBubyBtYXRjaAogICAgQSBub24tZW1wdHkgbGluZQoKLyAgIF4gICAgYSAgICg/IyBiZWdpbnMgd2l0aCBhKSAgYlxzYyAoPyMgdGhlbiBiIGMpICQgKD8jIHRoZW4gZW5kKS94CiAgICBhYiBjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjCiAgICBhYiBjZGUKCi8oP3gpICAgXiAgICBhICAgKD8jIGJlZ2lucyB3aXRoIGEpICBiXHNjICg/IyB0aGVuIGIgYykgJCAoPyMgdGhlbiBlbmQpLwogICAgYWIgYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiYwogICAgYWIgY2RlCgovXiAgIGFcIGJbYyBdZCAgICAgICAkL3gKICAgIGEgYmNkCiAgICBhIGIgZApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2QKICAgIGFiIGQKCi9eKGEoYihjKSkpKGQoZShmKSkpKGgoaShqKSkpKGsobChtKSkpJC8KICAgIGFiY2RlZmhpamtsbQoKL14oPzphKGIoYykpKSg/OmQoZShmKSkpKD86aChpKGopKSkoPzprKGwobSkpKSQvCiAgICBhYmNkZWZoaWprbG0KCi9eW1x3XVtcV11bXHNdW1xTXVtcZF1bXERdW1xiXVtcbl1bXGNdXVtcMDIyXS8KICAgIGErIFowK1x4MDhcblx4MWRceDEyCgovXlsuXiR8KCkqKz97LH1dKy8KICAgIC5eXCQoKispfHs/LD99CgovXmEqXHcvCiAgICB6CiAgICBhegogICAgYWFhegogICAgYQogICAgYWEKICAgIGFhYWEKICAgIGErCiAgICBhYSsKCi9eYSo/XHcvCiAgICB6CiAgICBhegogICAgYWFhegogICAgYQogICAgYWEKICAgIGFhYWEKICAgIGErCiAgICBhYSsKCi9eYStcdy8KICAgIGF6CiAgICBhYWF6CiAgICBhYQogICAgYWFhYQogICAgYWErCgovXmErP1x3LwogICAgYXoKICAgIGFhYXoKICAgIGFhCiAgICBhYWFhCiAgICBhYSsKCi9eXGR7OH1cd3syLH0vCiAgICAxMjM0NTY3ODkwCiAgICAxMjM0NTY3OGFiCiAgICAxMjM0NTY3OF9fClw9IEV4cGVjdCBubyBtYXRjaAogICAgMTIzNDU2NwoKL15bYWVpb3VcZF17NCw1fSQvCiAgICB1b2llCiAgICAxMjM0CiAgICAxMjM0NQogICAgYWFhYWEKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjM0NTYKCi9eW2FlaW91XGRdezQsNX0/LwogICAgdW9pZQogICAgMTIzNAogICAgMTIzNDUKICAgIGFhYWFhCiAgICAxMjM0NTYKCi9cQShhYmN8ZGVmKT0oXDEpezIsM31cWi8KICAgIGFiYz1hYmNhYmMKICAgIGRlZj1kZWZkZWZkZWYKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmM9ZGVmZGVmCgovXihhKShiKShjKShkKShlKShmKShnKShoKShpKShqKShrKVwxMSooXDNcNClcMSg/IykyJC8KICAgIGFiY2RlZmdoaWprY2RhMgogICAgYWJjZGVmZ2hpamtra2tjZGEyCgovKGNhdChhKHJhY3R8dG9uaWMpfGVycGlsbGFyKSkgXDEoKTIoMykvCiAgICBjYXRhcmFjdCBjYXRhcmFjdDIzCiAgICBjYXRhdG9uaWMgY2F0YXRvbmljMjMKICAgIGNhdGVycGlsbGFyIGNhdGVycGlsbGFyMjMKCgovXkZyb20gKyhbXiBdKykgK1thLXpBLVpdW2EtekEtWl1bYS16QS1aXSArW2EtekEtWl1bYS16QS1aXVthLXpBLVpdICtbMC05XT9bMC05XSArWzAtOV1bMC05XTpbMC05XVswLTldLwogICAgRnJvbSBhYmNkICBNb24gU2VwIDAxIDEyOjMzOjAyIDE5OTcKCi9eRnJvbVxzK1xTK1xzKyhbYS16QS1aXXszfVxzKyl7Mn1cZHsxLDJ9XHMrXGRcZDpcZFxkLwogICAgRnJvbSBhYmNkICBNb24gU2VwIDAxIDEyOjMzOjAyIDE5OTcKICAgIEZyb20gYWJjZCAgTW9uIFNlcCAgMSAxMjozMzowMiAxOTk3Clw9IEV4cGVjdCBubyBtYXRjaAogICAgRnJvbSBhYmNkICBTZXAgMDEgMTI6MzM6MDIgMTk5NwoKL14xMi4zNC9zCiAgICAxMlxuMzQKICAgIDEyXHIzNAoKL1x3Kyg/PVx0KS8KICAgIHRoZSBxdWljayBicm93blx0IGZveAoKL2Zvbyg/IWJhcikoLiopLwogICAgZm9vYmFyIGlzIGZvb2xpc2ggc2VlPwoKLyg/Oig/IWZvbykuLi58Xi57MCwyfSliYXIoLiopLwogICAgZm9vYmFyIGNyb3diYXIgZXRjCiAgICBiYXJyZWwKICAgIDJiYXJyZWwKICAgIEEgYmFycmVsCgovXihcRCopKD89XGQpKD8hMTIzKS8KICAgIGFiYzQ1NgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiYzEyMwoKL14xMjM0KD8jIHRlc3QgbmV3bGluZXMKICBpbnNpZGUpLwogICAgMTIzNAoKL14xMjM0ICNjb21tZW50IGluIGV4dGVuZGVkIHJlCiAgL3gKICAgIDEyMzQKCi8jcmh1YmFyYgogIGFiY2QveAogICAgYWJjZAoKL15hYmNkI3JodWJhcmIveAogICAgYWJjZAoKL14oYSlcMXsyLDN9KC4pLwogICAgYWFhYgogICAgYWFhYWIKICAgIGFhYWFhYgogICAgYWFhYWFhYgoKLyg/IV4pYWJjLwogICAgdGhlIGFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiYwoKLyg/PV4pYWJjLwogICAgYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgdGhlIGFiYwoKL15bYWJdezEsM30oYWIqfGIpLwogICAgYWFiYmJiYgoKL15bYWJdezEsM30/KGFiKnxiKS8KICAgIGFhYmJiYmIKCi9eW2FiXXsxLDN9PyhhYio/fGIpLwogICAgYWFiYmJiYgoKL15bYWJdezEsM30oYWIqP3xiKS8KICAgIGFhYmJiYmIKCi8gICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgbGVhZGluZyBjb21tZW50Cig/OiAgICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8CiIgKD86ICAgICAgICAgICAgICAgICAgICAgICMgb3BlbmluZyBxdW90ZS4uLgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gICAgICAgICAgICAgICAgIyAgIEFueXRoaW5nIGV4Y2VwdCBiYWNrc2xhc2ggYW5kIHF1b3RlCnwgICAgICAgICAgICAgICAgICAgICAjICAgIG9yClxcIFteXHg4MC1ceGZmXSAgICAgICAgICAgIyAgIEVzY2FwZWQgc29tZXRoaW5nIChzb21ldGhpbmcgIT0gQ1IpCikqICIgICMgY2xvc2luZyBxdW90ZQopICAgICAgICAgICAgICAgICAgICAjIGluaXRpYWwgd29yZAooPzogICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogIFwuICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfAoiICg/OiAgICAgICAgICAgICAgICAgICAgICAjIG9wZW5pbmcgcXVvdGUuLi4KW15cXFx4ODAtXHhmZlxuXDAxNSJdICAgICAgICAgICAgICAgICMgICBBbnl0aGluZyBleGNlcHQgYmFja3NsYXNoIGFuZCBxdW90ZQp8ICAgICAgICAgICAgICAgICAgICAgIyAgICBvcgpcXCBbXlx4ODAtXHhmZl0gICAgICAgICAgICMgICBFc2NhcGVkIHNvbWV0aGluZyAoc29tZXRoaW5nICE9IENSKQopKiAiICAjIGNsb3NpbmcgcXVvdGUKKSAgKSogIyBmdXJ0aGVyIG9rYXksIGlmIGxlZCBieSBhIHBlcmlvZAooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICBAICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwgICBcWyAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluaXRpYWwgc3ViZG9tYWluCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogIFwuICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBsZWQgYnkgYSBwZXJpb2QuLi4KKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwgICBcWyAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikgICAgICAgICAgICAgICAgICAgICAjICAgLi4uZnVydGhlciBva2F5CikqCiMgYWRkcmVzcwp8ICAgICAgICAgICAgICAgICAgICAgIyAgb3IKKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfAoiICg/OiAgICAgICAgICAgICAgICAgICAgICAjIG9wZW5pbmcgcXVvdGUuLi4KW15cXFx4ODAtXHhmZlxuXDAxNSJdICAgICAgICAgICAgICAgICMgICBBbnl0aGluZyBleGNlcHQgYmFja3NsYXNoIGFuZCBxdW90ZQp8ICAgICAgICAgICAgICAgICAgICAgIyAgICBvcgpcXCBbXlx4ODAtXHhmZl0gICAgICAgICAgICMgICBFc2NhcGVkIHNvbWV0aGluZyAoc29tZXRoaW5nICE9IENSKQopKiAiICAjIGNsb3NpbmcgcXVvdGUKKSAgICAgICAgICAgICAjIG9uZSB3b3JkLCBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5Li4uLgooPzoKW14oKTw+QCw7OiIuXFxcW1xdXHg4MC1ceGZmXDAwMC1cMDEwXDAxMi1cMDM3XSAgfCAgIyBhdG9tIGFuZCBzcGFjZSBwYXJ0cywgb3IuLi4KXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICAgICAgfCAgIyBjb21tZW50cywgb3IuLi4KCiIgKD86ICAgICAgICAgICAgICAgICAgICAgICMgb3BlbmluZyBxdW90ZS4uLgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gICAgICAgICAgICAgICAgIyAgIEFueXRoaW5nIGV4Y2VwdCBiYWNrc2xhc2ggYW5kIHF1b3RlCnwgICAgICAgICAgICAgICAgICAgICAjICAgIG9yClxcIFteXHg4MC1ceGZmXSAgICAgICAgICAgIyAgIEVzY2FwZWQgc29tZXRoaW5nIChzb21ldGhpbmcgIT0gQ1IpCikqICIgICMgY2xvc2luZyBxdW90ZQojIHF1b3RlZCBzdHJpbmdzCikqCjwgICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAgICAgICAgICAgICAgICAgICAjIGxlYWRpbmcgPAooPzogIEAgICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfCAgIFxbICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW5pdGlhbCBzdWJkb21haW4KKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgXC4gICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGxlZCBieSBhIHBlcmlvZC4uLgooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfCAgIFxbICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKSAgICAgICAgICAgICAgICAgICAgICMgICAuLi5mdXJ0aGVyIG9rYXkKKSoKCig/OiAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgLCAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgQCAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ICAgXFsgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbml0aWFsIHN1YmRvbWFpbgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICBcLiAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgbGVkIGJ5IGEgcGVyaW9kLi4uCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ICAgXFsgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopICAgICAgICAgICAgICAgICAgICAgIyAgIC4uLmZ1cnRoZXIgb2theQopKgopKiAjIGZ1cnRoZXIgb2theSwgaWYgbGVkIGJ5IGNvbW1hCjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY2xvc2luZyBjb2xvbgooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICApPyAjICAgICAgIG9wdGlvbmFsIHJvdXRlCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKIiAoPzogICAgICAgICAgICAgICAgICAgICAgIyBvcGVuaW5nIHF1b3RlLi4uClteXFxceDgwLVx4ZmZcblwwMTUiXSAgICAgICAgICAgICAgICAjICAgQW55dGhpbmcgZXhjZXB0IGJhY2tzbGFzaCBhbmQgcXVvdGUKfCAgICAgICAgICAgICAgICAgICAgICMgICAgb3IKXFwgW15ceDgwLVx4ZmZdICAgICAgICAgICAjICAgRXNjYXBlZCBzb21ldGhpbmcgKHNvbWV0aGluZyAhPSBDUikKKSogIiAgIyBjbG9zaW5nIHF1b3RlCikgICAgICAgICAgICAgICAgICAgICMgaW5pdGlhbCB3b3JkCig/OiAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgXC4gICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8CiIgKD86ICAgICAgICAgICAgICAgICAgICAgICMgb3BlbmluZyBxdW90ZS4uLgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gICAgICAgICAgICAgICAgIyAgIEFueXRoaW5nIGV4Y2VwdCBiYWNrc2xhc2ggYW5kIHF1b3RlCnwgICAgICAgICAgICAgICAgICAgICAjICAgIG9yClxcIFteXHg4MC1ceGZmXSAgICAgICAgICAgIyAgIEVzY2FwZWQgc29tZXRoaW5nIChzb21ldGhpbmcgIT0gQ1IpCikqICIgICMgY2xvc2luZyBxdW90ZQopICApKiAjIGZ1cnRoZXIgb2theSwgaWYgbGVkIGJ5IGEgcGVyaW9kCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogIEAgICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfCAgIFxbICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW5pdGlhbCBzdWJkb21haW4KKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgXC4gICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGxlZCBieSBhIHBlcmlvZC4uLgooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfCAgIFxbICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKSAgICAgICAgICAgICAgICAgICAgICMgICAuLi5mdXJ0aGVyIG9rYXkKKSoKIyAgICAgICBhZGRyZXNzIHNwZWMKKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgPiAjICAgICAgICAgICAgICAgICAgdHJhaWxpbmcgPgojIG5hbWUgYW5kIGFkZHJlc3MKKSAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50Ci94CiAgICBBbGFuIE90aGVyIDx1c2VyXEBkb20uYWluPgogICAgPHVzZXJcQGRvbS5haW4+CiAgICB1c2VyXEBkb20uYWluCiAgICBcIkEuIE90aGVyXCIgPHVzZXIuMTIzNFxAZG9tLmFpbj4gKGEgY29tbWVudCkKICAgIEEuIE90aGVyIDx1c2VyLjEyMzRcQGRvbS5haW4+IChhIGNvbW1lbnQpCiAgICBcIi9zPXVzZXIvb3U9aG9zdC9vPXBsYWNlL3BybWQ9dXUueXkvYWRtZD0gL2M9Z2IvXCJcQHg0MDAtcmUubGF5CiAgICBBIG1pc3NpbmcgYW5nbGUgPHVzZXJcQHNvbWUud2hlcmUKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBUaGUgcXVpY2sgYnJvd24gZm94CgovW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCBsZWFkaW5nIGNvbW1lbnQKKD86Cig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCiMgQXRvbQp8ICAgICAgICAgICAgICAgICAgICAgICAjICBvcgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgbm9ybWFsCig/OiAgXFwgW15ceDgwLVx4ZmZdICBbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiApKiAgICAgICAgIyAgICggc3BlY2lhbCBub3JtYWwqICkqCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIgojIFF1b3RlZCBzdHJpbmcKKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKXC4KW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KIyBBdG9tCnwgICAgICAgICAgICAgICAgICAgICAgICMgIG9yCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiClteXFxceDgwLVx4ZmZcblwwMTUiXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBub3JtYWwKKD86ICBcXCBbXlx4ODAtXHhmZl0gIFteXFxceDgwLVx4ZmZcblwwMTUiXSAqICkqICAgICAgICAjICAgKCBzcGVjaWFsIG5vcm1hbCogKSoKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAiCiMgUXVvdGVkIHN0cmluZwopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgYWRkaXRpb25hbCB3b3JkcwopKgpACltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKXFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnRzCig/OgpcLgpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ClxbICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50cwopKgojIGFkZHJlc3MKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgb3IKKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KIyBBdG9tCnwgICAgICAgICAgICAgICAgICAgICAgICMgIG9yCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiClteXFxceDgwLVx4ZmZcblwwMTUiXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBub3JtYWwKKD86ICBcXCBbXlx4ODAtXHhmZl0gIFteXFxceDgwLVx4ZmZcblwwMTUiXSAqICkqICAgICAgICAjICAgKCBzcGVjaWFsIG5vcm1hbCogKSoKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAiCiMgUXVvdGVkIHN0cmluZwopCiMgbGVhZGluZyB3b3JkClteKCk8PkAsOzoiLlxcXFtcXVx4ODAtXHhmZlwwMDAtXDAxMFwwMTItXDAzN10gKiAgICAgICAgICAgICAgICMgIm5vcm1hbCIgYXRvbXMgYW5kIG9yIHNwYWNlcwooPzoKKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKfAoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgbm9ybWFsCig/OiAgXFwgW15ceDgwLVx4ZmZdICBbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiApKiAgICAgICAgIyAgICggc3BlY2lhbCBub3JtYWwqICkqCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIgopICMgInNwZWNpYWwiIGNvbW1lbnQgb3IgcXVvdGVkIHN0cmluZwpbXigpPD5ALDs6Ii5cXFxbXF1ceDgwLVx4ZmZcMDAwLVwwMTBcMDEyLVwwMzddICogICAgICAgICAgICAjICBtb3JlICJub3JtYWwiCikqCjwKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyA8Cig/OgpACltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKXFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnRzCig/OgpcLgpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ClxbICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50cwopKgooPzogLApbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgpACltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKXFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnRzCig/OgpcLgpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ClxbICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50cwopKgopKiAgIyBhZGRpdGlvbmFsIGRvbWFpbnMKOgpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnRzCik/ICAgICAjICAgICAgIG9wdGlvbmFsIHJvdXRlCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCiMgQXRvbQp8ICAgICAgICAgICAgICAgICAgICAgICAjICBvcgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgbm9ybWFsCig/OiAgXFwgW15ceDgwLVx4ZmZdICBbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiApKiAgICAgICAgIyAgICggc3BlY2lhbCBub3JtYWwqICkqCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIgojIFF1b3RlZCBzdHJpbmcKKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKXC4KW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KIyBBdG9tCnwgICAgICAgICAgICAgICAgICAgICAgICMgIG9yCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiClteXFxceDgwLVx4ZmZcblwwMTUiXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBub3JtYWwKKD86ICBcXCBbXlx4ODAtXHhmZl0gIFteXFxceDgwLVx4ZmZcblwwMTUiXSAqICkqICAgICAgICAjICAgKCBzcGVjaWFsIG5vcm1hbCogKSoKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAiCiMgUXVvdGVkIHN0cmluZwopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgYWRkaXRpb25hbCB3b3JkcwopKgpACltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKXFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnRzCig/OgpcLgpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ClxbICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50cwopKgojICAgICAgIGFkZHJlc3Mgc3BlYwo+ICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICA+CiMgbmFtZSBhbmQgYWRkcmVzcwopCi94CiAgICBBbGFuIE90aGVyIDx1c2VyXEBkb20uYWluPgogICAgPHVzZXJcQGRvbS5haW4+CiAgICB1c2VyXEBkb20uYWluCiAgICBcIkEuIE90aGVyXCIgPHVzZXIuMTIzNFxAZG9tLmFpbj4gKGEgY29tbWVudCkKICAgIEEuIE90aGVyIDx1c2VyLjEyMzRcQGRvbS5haW4+IChhIGNvbW1lbnQpCiAgICBcIi9zPXVzZXIvb3U9aG9zdC9vPXBsYWNlL3BybWQ9dXUueXkvYWRtZD0gL2M9Z2IvXCJcQHg0MDAtcmUubGF5CiAgICBBIG1pc3NpbmcgYW5nbGUgPHVzZXJcQHNvbWUud2hlcmUKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBUaGUgcXVpY2sgYnJvd24gZm94CgovYWJjXDBkZWZcMDBwcXJcMDAweHl6XDAwMDBBQi8KICAgIGFiY1wwZGVmXDAwcHFyXDAwMHh5elwwMDAwQUIKICAgIGFiYzQ1NiBhYmNcMGRlZlwwMHBxclwwMDB4eXpcMDAwMEFCQ0RFCgovYWJjXHgwZGVmXHgwMHBxclx4MDAweHl6XHgwMDAwQUIvCiAgICBhYmNceDBkZWZceDAwcHFyXHgwMDB4eXpceDAwMDBBQgogICAgYWJjNDU2IGFiY1x4MGRlZlx4MDBwcXJceDAwMHh5elx4MDAwMEFCQ0RFCgovXltcMDAwLVwwMzddLwogICAgXDBBCiAgICBcMDFCCiAgICBcMDM3QwoKL1wwKi8KICAgIFwwXDBcMFwwCgovQVx4MHsyLDN9Wi8KICAgIFRoZSBBXHgwXHgwWgogICAgQW4gQVwwXHgwXDBaClw9IEV4cGVjdCBubyBtYXRjaAogICAgQVwwWgogICAgQVwwXHgwXDBceDBaCgovXihjb3d8KVwxKGJlbGwpLwogICAgY293Y293YmVsbAogICAgYmVsbApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGNvd2JlbGwKCi9eXHMvCiAgICBcMDQwYWJjCiAgICBceDBjYWJjCiAgICBcbmFiYwogICAgXHJhYmMKICAgIFx0YWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjCgovXmEJYgogICAgDCAgYy94CiAgICBhYmMKCi9eKGF8KVwxKmIvCiAgICBhYgogICAgYWFhYWIKICAgIGIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhY2IKCi9eKGF8KVwxK2IvCiAgICBhYWIKICAgIGFhYWFiCiAgICBiClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWIKCi9eKGF8KVwxP2IvCiAgICBhYgogICAgYWFiCiAgICBiClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWNiCgovXihhfClcMXsyfWIvCiAgICBhYWFiCiAgICBiClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWIKICAgIGFhYgogICAgYWFhYWIKCi9eKGF8KVwxezIsM31iLwogICAgYWFhYgogICAgYWFhYWIKICAgIGIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYgogICAgYWFiCiAgICBhYWFhYWIKCi9hYnsxLDN9YmMvCiAgICBhYmJiYmMKICAgIGFiYmJjCiAgICBhYmJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjCiAgICBhYmJiYmJjCgovKFteLl0qKVwuKFteOl0qKTpbVCBdKyguKikvCiAgICB0cmFjazEudGl0bGU6VEJsYWggYmxhaCBibGFoCgovKFteLl0qKVwuKFteOl0qKTpbVCBdKyguKikvaQogICAgdHJhY2sxLnRpdGxlOlRCbGFoIGJsYWggYmxhaAoKLyhbXi5dKilcLihbXjpdKik6W3QgXSsoLiopL2kKICAgIHRyYWNrMS50aXRsZTpUQmxhaCBibGFoIGJsYWgKCi9eW1ctY10rJC8KICAgIFdYWV9eYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgd3h5CgovXltXLWNdKyQvaQogICAgV1hZX15hYmMKICAgIHd4eV9eQUJDCgovXltceDNmLVx4NUZdKyQvaQogICAgV1hZX15hYmMKICAgIHd4eV9eQUJDCgovXmFiYyQvbQogICAgYWJjCiAgICBxcXFcbmFiYwogICAgYWJjXG56enoKICAgIHFxcVxuYWJjXG56enoKCi9eYWJjJC8KICAgIGFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHFxcVxuYWJjCiAgICBhYmNcbnp6egogICAgcXFxXG5hYmNcbnp6egoKL1xBYWJjXFovbQogICAgYWJjCiAgICBhYmNcbiAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBxcXFcbmFiYwogICAgYWJjXG56enoKICAgIHFxcVxuYWJjXG56enoKICAgIAovXEEoLikqXFovcwogICAgYWJjXG5kZWYKCi9cQSguKSpcWi9tClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjXG5kZWYKCi8oPzpiKXwoPzo6KykvCiAgICBiOjpjCiAgICBjOjpiCgovWy1hel0rLwogICAgYXotClw9IEV4cGVjdCBubyBtYXRjaAogICAgYgoKL1thei1dKy8KICAgIHphLQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGIKCi9bYVwtel0rLwogICAgYS16Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYgoKL1thLXpdKy8KICAgIGFiY2R4eXoKCi9bXGQtXSsvCiAgICAxMi0zNApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYQoKL1tcZC16XSsvCiAgICAxMi0zNHoKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWEKCi9ceDVjLwogICAgXFwKCi9ceDIwWi8KICAgIHRoZSBab28KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBadWx1CgovKGFiYylcMS9pCiAgICBhYmNhYmMKICAgIEFCQ2FiYwogICAgYWJjQUJDCgovYWJjJC8KICAgIGFiYwogICAgYWJjXG4KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNcbmRlZgoKLyhhYmMpXDEyMy8KICAgIGFiY1x4NTMKCi8oYWJjKVwyMjMvCiAgICBhYmNceDkzCgovKGFiYylcMzIzLwogICAgYWJjXHhkMwoKLyhhYmMpXDEwMC8KICAgIGFiY1x4NDAKICAgIGFiY1wxMDAKCi8oYWJjKVwxMDAwLwogICAgYWJjXHg0MDAKICAgIGFiY1x4NDBceDMwCiAgICBhYmNcMTAwMAogICAgYWJjXDEwMFx4MzAKICAgIGFiY1wxMDBcMDYwCiAgICBhYmNcMTAwXDYwCiAgICAKL14oQSkoQikoQykoRCkoRSkoRikoRykoSCkoSSlcOFw5JC8KICAgIEFCQ0RFRkdISUhJIAoKL15bQVw4Qlw5Q10rJC8KICAgIEE4QjlDClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIEE4QjlDXHgwMAoKLyhhKShiKShjKShkKShlKShmKShnKShoKShpKShqKShrKShsKVwxMlwxMjMvCiAgICBhYmNkZWZnaGlqa2xsUwoKLyhhKShiKShjKShkKShlKShmKShnKShoKShpKShqKShrKVwxMlwxMjMvCiAgICBhYmNkZWZnaGlqa1wxMlMKCi9hezB9YmMvCiAgICBiYwoKLyhhfChiYykpezAsMH0/eHl6LwogICAgeHl6CgovYWJjW1wxMF1kZS8KICAgIGFiY1wwMTBkZQoKL2FiY1tcMV1kZS8KICAgIGFiY1wxZGUKCi8oYWJjKVtcMV1kZS8KICAgIGFiY1wxZGUKCi8oP3MpYS5iLwogICAgYVxuYgoKL14oW15hXSkoW15cYl0pKFteY10qKShbXmRdezMsNH0pLwogICAgYmFOT1RjY2NjZAogICAgYmFOT1RjY2NkCiAgICBiYU5PVGNjZAogICAgYmFjY2NkClw9IEV4cGVjdCBubyBtYXRjaAogICAgYW55dGhpbmcKICAgIGJcYmMgICAKICAgIGJhY2NkCgovW15hXS8KICAgIEFiYwogIAovW15hXS9pCiAgICBBYmMgCgovW15hXSsvCiAgICBBQUFhQWJjCiAgCi9bXmFdKy9pCiAgICBBQUFhQWJjIAoKL1teYV0rLwogICAgYmJiXG5jY2MKICAgCi9bXmtdJC8KICAgIGFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiayAgIAogICAKL1tea117MiwzfSQvCiAgICBhYmMKICAgIGtiYwogICAga2FiYyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmsKICAgIGFrYgogICAgYWtrIAoKL15cZHs4LH1cQC4rW15rXSQvCiAgICAxMjM0NTY3OFxAYS5iLmMuZAogICAgMTIzNDU2Nzg5XEB4LnkuegpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMzQ1Njc4XEB4LnkudWsKICAgIDEyMzQ1NjdcQGEuYi5jLmQgICAgICAgCgovKGEpXDF7OCx9LwogICAgYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYWFhYSAgIAoKL1teYV0vCiAgICBhYWFhYmNkCiAgICBhYUFhYmNkIAoKL1teYV0vaQogICAgYWFhYWJjZAogICAgYWFBYWJjZCAKCi9bXmF6XS8KICAgIGFhYWFiY2QKICAgIGFhQWFiY2QgCgovW15hel0vaQogICAgYWFhYWJjZAogICAgYWFBYWJjZCAKCi9cMDAwXDAwMVwwMDJcMDAzXDAwNFwwMDVcMDA2XDAwN1wwMTBcMDExXDAxMlwwMTNcMDE0XDAxNVwwMTZcMDE3XDAyMFwwMjFcMDIyXDAyM1wwMjRcMDI1XDAyNlwwMjdcMDMwXDAzMVwwMzJcMDMzXDAzNFwwMzVcMDM2XDAzN1wwNDBcMDQxXDA0MlwwNDNcMDQ0XDA0NVwwNDZcMDQ3XDA1MFwwNTFcMDUyXDA1M1wwNTRcMDU1XDA1NlwwNTdcMDYwXDA2MVwwNjJcMDYzXDA2NFwwNjVcMDY2XDA2N1wwNzBcMDcxXDA3MlwwNzNcMDc0XDA3NVwwNzZcMDc3XDEwMFwxMDFcMTAyXDEwM1wxMDRcMTA1XDEwNlwxMDdcMTEwXDExMVwxMTJcMTEzXDExNFwxMTVcMTE2XDExN1wxMjBcMTIxXDEyMlwxMjNcMTI0XDEyNVwxMjZcMTI3XDEzMFwxMzFcMTMyXDEzM1wxMzRcMTM1XDEzNlwxMzdcMTQwXDE0MVwxNDJcMTQzXDE0NFwxNDVcMTQ2XDE0N1wxNTBcMTUxXDE1MlwxNTNcMTU0XDE1NVwxNTZcMTU3XDE2MFwxNjFcMTYyXDE2M1wxNjRcMTY1XDE2NlwxNjdcMTcwXDE3MVwxNzJcMTczXDE3NFwxNzVcMTc2XDE3N1wyMDBcMjAxXDIwMlwyMDNcMjA0XDIwNVwyMDZcMjA3XDIxMFwyMTFcMjEyXDIxM1wyMTRcMjE1XDIxNlwyMTdcMjIwXDIyMVwyMjJcMjIzXDIyNFwyMjVcMjI2XDIyN1wyMzBcMjMxXDIzMlwyMzNcMjM0XDIzNVwyMzZcMjM3XDI0MFwyNDFcMjQyXDI0M1wyNDRcMjQ1XDI0NlwyNDdcMjUwXDI1MVwyNTJcMjUzXDI1NFwyNTVcMjU2XDI1N1wyNjBcMjYxXDI2MlwyNjNcMjY0XDI2NVwyNjZcMjY3XDI3MFwyNzFcMjcyXDI3M1wyNzRcMjc1XDI3NlwyNzdcMzAwXDMwMVwzMDJcMzAzXDMwNFwzMDVcMzA2XDMwN1wzMTBcMzExXDMxMlwzMTNcMzE0XDMxNVwzMTZcMzE3XDMyMFwzMjFcMzIyXDMyM1wzMjRcMzI1XDMyNlwzMjdcMzMwXDMzMVwzMzJcMzMzXDMzNFwzMzVcMzM2XDMzN1wzNDBcMzQxXDM0MlwzNDNcMzQ0XDM0NVwzNDZcMzQ3XDM1MFwzNTFcMzUyXDM1M1wzNTRcMzU1XDM1NlwzNTdcMzYwXDM2MVwzNjJcMzYzXDM2NFwzNjVcMzY2XDM2N1wzNzBcMzcxXDM3MlwzNzNcMzc0XDM3NVwzNzZcMzc3LwogXDAwMFwwMDFcMDAyXDAwM1wwMDRcMDA1XDAwNlwwMDdcMDEwXDAxMVwwMTJcMDEzXDAxNFwwMTVcMDE2XDAxN1wwMjBcMDIxXDAyMlwwMjNcMDI0XDAyNVwwMjZcMDI3XDAzMFwwMzFcMDMyXDAzM1wwMzRcMDM1XDAzNlwwMzdcMDQwXDA0MVwwNDJcMDQzXDA0NFwwNDVcMDQ2XDA0N1wwNTBcMDUxXDA1MlwwNTNcMDU0XDA1NVwwNTZcMDU3XDA2MFwwNjFcMDYyXDA2M1wwNjRcMDY1XDA2NlwwNjdcMDcwXDA3MVwwNzJcMDczXDA3NFwwNzVcMDc2XDA3N1wxMDBcMTAxXDEwMlwxMDNcMTA0XDEwNVwxMDZcMTA3XDExMFwxMTFcMTEyXDExM1wxMTRcMTE1XDExNlwxMTdcMTIwXDEyMVwxMjJcMTIzXDEyNFwxMjVcMTI2XDEyN1wxMzBcMTMxXDEzMlwxMzNcMTM0XDEzNVwxMzZcMTM3XDE0MFwxNDFcMTQyXDE0M1wxNDRcMTQ1XDE0NlwxNDdcMTUwXDE1MVwxNTJcMTUzXDE1NFwxNTVcMTU2XDE1N1wxNjBcMTYxXDE2MlwxNjNcMTY0XDE2NVwxNjZcMTY3XDE3MFwxNzFcMTcyXDE3M1wxNzRcMTc1XDE3NlwxNzdcMjAwXDIwMVwyMDJcMjAzXDIwNFwyMDVcMjA2XDIwN1wyMTBcMjExXDIxMlwyMTNcMjE0XDIxNVwyMTZcMjE3XDIyMFwyMjFcMjIyXDIyM1wyMjRcMjI1XDIyNlwyMjdcMjMwXDIzMVwyMzJcMjMzXDIzNFwyMzVcMjM2XDIzN1wyNDBcMjQxXDI0MlwyNDNcMjQ0XDI0NVwyNDZcMjQ3XDI1MFwyNTFcMjUyXDI1M1wyNTRcMjU1XDI1NlwyNTdcMjYwXDI2MVwyNjJcMjYzXDI2NFwyNjVcMjY2XDI2N1wyNzBcMjcxXDI3MlwyNzNcMjc0XDI3NVwyNzZcMjc3XDMwMFwzMDFcMzAyXDMwM1wzMDRcMzA1XDMwNlwzMDdcMzEwXDMxMVwzMTJcMzEzXDMxNFwzMTVcMzE2XDMxN1wzMjBcMzIxXDMyMlwzMjNcMzI0XDMyNVwzMjZcMzI3XDMzMFwzMzFcMzMyXDMzM1wzMzRcMzM1XDMzNlwzMzdcMzQwXDM0MVwzNDJcMzQzXDM0NFwzNDVcMzQ2XDM0N1wzNTBcMzUxXDM1MlwzNTNcMzU0XDM1NVwzNTZcMzU3XDM2MFwzNjFcMzYyXDM2M1wzNjRcMzY1XDM2NlwzNjdcMzcwXDM3MVwzNzJcMzczXDM3NFwzNzVcMzc2XDM3NwoKL1BbXipdVEFJUkVbXipdezEsNn0/TEwvCiAgICB4eHh4eHh4eHh4eFBTVEFJUkVJU0xMeHh4eHh4eHh4CgovUFteKl1UQUlSRVteKl17MSx9P0xMLwogICAgeHh4eHh4eHh4eHhQU1RBSVJFSVNMTHh4eHh4eHh4eAoKLyhcLlxkXGRbMS05XT8pXGQrLwogICAgMS4yMzAwMDM5MzgKICAgIDEuODc1MDAwMjgyICAgCiAgICAxLjIzNSAgCiAgICAgICAgICAgICAgICAgIAovKFwuXGRcZCgoPz0wKXxcZCg/PVxkKSkpLwogICAgMS4yMzAwMDM5MzggICAgICAKICAgIDEuODc1MDAwMjgyClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIDEuMjM1IAogICAgCi9hKD8pYi8KICAgIGFiIAogCi9cYihmb28pXHMrKFx3KykvaQogICAgRm9vZCBpcyBvbiB0aGUgZm9vIHRhYmxlCiAgICAKL2ZvbyguKiliYXIvCiAgICBUaGUgZm9vZCBpcyB1bmRlciB0aGUgYmFyIGluIHRoZSBiYXJuLgogICAgCi9mb28oLio/KWJhci8KICAgIFRoZSBmb29kIGlzIHVuZGVyIHRoZSBiYXIgaW4gdGhlIGJhcm4uCgovKC4qKShcZCopLwogICAgSSBoYXZlIDIgbnVtYmVyczogNTMxNDcKICAgIAovKC4qKShcZCspLwogICAgSSBoYXZlIDIgbnVtYmVyczogNTMxNDcKIAovKC4qPykoXGQqKS8KICAgIEkgaGF2ZSAyIG51bWJlcnM6IDUzMTQ3CgovKC4qPykoXGQrKS8KICAgIEkgaGF2ZSAyIG51bWJlcnM6IDUzMTQ3CgovKC4qKShcZCspJC8KICAgIEkgaGF2ZSAyIG51bWJlcnM6IDUzMTQ3CgovKC4qPykoXGQrKSQvCiAgICBJIGhhdmUgMiBudW1iZXJzOiA1MzE0NwoKLyguKilcYihcZCspJC8KICAgIEkgaGF2ZSAyIG51bWJlcnM6IDUzMTQ3CgovKC4qXEQpKFxkKykkLwogICAgSSBoYXZlIDIgbnVtYmVyczogNTMxNDcKCi9eXEQqKD8hMTIzKS8KICAgIEFCQzEyMwogICAgIAovXihcRCopKD89XGQpKD8hMTIzKS8KICAgIEFCQzQ0NQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFCQzEyMwogICAgCi9eW1ctXTQ2XS8KICAgIFc0Nl03ODkgCiAgICAtNDZdNzg5Clw9IEV4cGVjdCBubyBtYXRjaAogICAgV2FsbAogICAgWmVicmEKICAgIDQyCiAgICBbYWJjZF0gCiAgICBdYWJjZFsKICAgICAgIAovXltXLVxdNDZdLwogICAgVzQ2XTc4OSAKICAgIFdhbGwKICAgIFplYnJhCiAgICBYeWxvcGhvbmUgIAogICAgNDIKICAgIFthYmNkXSAKICAgIF1hYmNkWwogICAgXFxiYWNrc2xhc2ggClw9IEV4cGVjdCBubyBtYXRjaAogICAgLTQ2XTc4OQogICAgd2VsbAogICAgCi9cZFxkXC9cZFxkXC9cZFxkXGRcZC8KICAgIDAxLzAxLzIwMDAKCi93b3JkICg/OlthLXpBLVowLTldKyApezAsMTB9b3RoZXJ3b3JkLwogICAgd29yZCBjYXQgZG9nIGVsZXBoYW50IG11c3NlbCBjb3cgaG9yc2UgY2FuYXJ5IGJhYm9vbiBzbmFrZSBzaGFyayBvdGhlcndvcmQKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB3b3JkIGNhdCBkb2cgZWxlcGhhbnQgbXVzc2VsIGNvdyBob3JzZSBjYW5hcnkgYmFib29uIHNuYWtlIHNoYXJrCgovd29yZCAoPzpbYS16QS1aMC05XSsgKXswLDMwMH1vdGhlcndvcmQvClw9IEV4cGVjdCBubyBtYXRjaAogICAgd29yZCBjYXQgZG9nIGVsZXBoYW50IG11c3NlbCBjb3cgaG9yc2UgY2FuYXJ5IGJhYm9vbiBzbmFrZSBzaGFyayB0aGUgcXVpY2sgYnJvd24gZm94IGFuZCB0aGUgbGF6eSBkb2cgYW5kIHNldmVyYWwgb3RoZXIgd29yZHMgZ2V0dGluZyBjbG9zZSB0byB0aGlydHkgYnkgbm93IEkgaG9wZQoKL14oYSl7MCwwfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIgICAgIAoKL14oYSl7MCwxfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIgIAoKL14oYSl7MCwyfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIgIAoKL14oYSl7MCwzfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIKICAgIGFhYSAgIAoKL14oYSl7MCx9LwogICAgYmNkCiAgICBhYmMKICAgIGFhYgogICAgYWFhCiAgICBhYWFhYWFhYSAgICAKCi9eKGEpezEsMX0vCiAgICBhYmMKICAgIGFhYiAgClw9IEV4cGVjdCBubyBtYXRjaAogICAgYmNkCgovXihhKXsxLDJ9LwogICAgYWJjCiAgICBhYWIgIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJjZAoKL14oYSl7MSwzfS8KICAgIGFiYwogICAgYWFiCiAgICBhYWEgICAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiY2QKCi9eKGEpezEsfS8KICAgIGFiYwogICAgYWFiCiAgICBhYWEKICAgIGFhYWFhYWFhICAgIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJjZAoKLy4qXC5naWYvCiAgICBib3JmbGVcbmJpYi5naWZcbm5vCgovLnswLH1cLmdpZi8KICAgIGJvcmZsZVxuYmliLmdpZlxubm8KCi8uKlwuZ2lmL20KICAgIGJvcmZsZVxuYmliLmdpZlxubm8KCi8uKlwuZ2lmL3MKICAgIGJvcmZsZVxuYmliLmdpZlxubm8KCi8uKlwuZ2lmL21zCiAgICBib3JmbGVcbmJpYi5naWZcbm5vCiAgICAKLy4qJC8KICAgIGJvcmZsZVxuYmliLmdpZlxubm8KCi8uKiQvbQogICAgYm9yZmxlXG5iaWIuZ2lmXG5ubwoKLy4qJC9zCiAgICBib3JmbGVcbmJpYi5naWZcbm5vCgovLiokL21zCiAgICBib3JmbGVcbmJpYi5naWZcbm5vCiAgICAKLy4qJC8KICAgIGJvcmZsZVxuYmliLmdpZlxubm9cbgoKLy4qJC9tCiAgICBib3JmbGVcbmJpYi5naWZcbm5vXG4KCi8uKiQvcwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ub1xuCgovLiokL21zCiAgICBib3JmbGVcbmJpYi5naWZcbm5vXG4KICAgIAovKC4qWHxeQikvCiAgICBhYmNkZVxuMTIzNFh5egogICAgQmFyRm9vIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2RlXG5CYXIgIAoKLyguKlh8XkIpL20KICAgIGFiY2RlXG4xMjM0WHl6CiAgICBCYXJGb28gCiAgICBhYmNkZVxuQmFyICAKCi8oLipYfF5CKS9zCiAgICBhYmNkZVxuMTIzNFh5egogICAgQmFyRm9vIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2RlXG5CYXIgIAoKLyguKlh8XkIpL21zCiAgICBhYmNkZVxuMTIzNFh5egogICAgQmFyRm9vIAogICAgYWJjZGVcbkJhciAgCgovKD9zKSguKlh8XkIpLwogICAgYWJjZGVcbjEyMzRYeXoKICAgIEJhckZvbyAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYWJjZGVcbkJhciAgCgovKD9zOi4qWHxeQikvCiAgICBhYmNkZVxuMTIzNFh5egogICAgQmFyRm9vIApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYmNkZVxuQmFyICAKCi9eLipCLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY1xuQgogICAgIAovKD9zKV4uKkIvCiAgICBhYmNcbkIKCi8oP20pXi4qQi8KICAgIGFiY1xuQgogICAgIAovKD9tcyleLipCLwogICAgYWJjXG5CCgovKD9tcyleQi8KICAgIGFiY1xuQgoKLyg/cylCJC8KICAgIEJcbgoKL15bMC05XVswLTldWzAtOV1bMC05XVswLTldWzAtOV1bMC05XVswLTldWzAtOV1bMC05XVswLTldWzAtOV0vCiAgICAxMjM0NTY2NTQzMjEKICAKL15cZFxkXGRcZFxkXGRcZFxkXGRcZFxkXGQvCiAgICAxMjM0NTY2NTQzMjEgCgovXltcZF1bXGRdW1xkXVtcZF1bXGRdW1xkXVtcZF1bXGRdW1xkXVtcZF1bXGRdW1xkXS8KICAgIDEyMzQ1NjY1NDMyMQogIAovXlthYmNdezEyfS8KICAgIGFiY2FiY2FiY2FiYwogICAgCi9eW2EtY117MTJ9LwogICAgYWJjYWJjYWJjYWJjCiAgICAKL14oYXxifGMpezEyfS8KICAgIGFiY2FiY2FiY2FiYyAKCi9eW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHkwMTIzNDU2Nzg5XS8KICAgIG4KXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgeiAKCi9hYmNkZXswLDB9LwogICAgYWJjZApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2UgIAoKL2FiW2NkXXswLDB9ZS8KICAgIGFiZQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2RlIAogICAgCi9hYihjKXswLDB9ZC8KICAgIGFiZApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2QgICAKCi9hKGIqKS8KICAgIGEKICAgIGFiCiAgICBhYmJiYgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJiYmJiICAgIAogICAgCi9hYlxkezB9ZS8KICAgIGFiZQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiMWUgICAKICAgIAovIihbXlxcIl0rfFxcLikqIi8KICAgIHRoZSBcInF1aWNrXCIgYnJvd24gZm94CiAgICBcInRoZSBcXFwicXVpY2tcXFwiIGJyb3duIGZveFwiIAoKLy4qPy9nLGFmdGVydGV4dAogICAgYWJjCiAgCi9cYi9nLGFmdGVydGV4dAogICAgYWJjIAoKL1xiL2csYWZ0ZXJ0ZXh0CiAgICBhYmMgCgovL2cKICAgIGFiYwoKLzx0cihbXHdcV1xzXGRdW148Pl17MCx9KT48VEQoW1x3XFdcc1xkXVtePD5dezAsfSk+KFtcZF17MCx9XC4pKC4qKSgoPEJSPihbXHdcV1xzXGRdW148Pl17MCx9KXxbXHNdezAsfSkpPFwvYT48XC9URD48VEQoW1x3XFdcc1xkXVtePD5dezAsfSk+KFtcd1xXXHNcZF1bXjw+XXswLH0pPFwvVEQ+PFREKFtcd1xXXHNcZF1bXjw+XXswLH0pPihbXHdcV1xzXGRdW148Pl17MCx9KTxcL1REPjxcL1RSPi9pcwogIDxUUiBCR0NPTE9SPScjREJFOUU5Jz48VEQgYWxpZ249bGVmdCB2YWxpZ249dG9wPjQzLjxhIGhyZWY9J2pvYmxpc3QuY2ZtP0pvYklEPTk0IDY3MzUmS2V5d29yZD0nPldvcmQgUHJvY2Vzc29yPEJSPihOLTEyODYpPC9hPjwvVEQ+PFREIGFsaWduPWxlZnQgdmFsaWduPXRvcD5MZWdhIGxzdGFmZi5jb208L1REPjxURCBhbGlnbj1sZWZ0IHZhbGlnbj10b3A+Q0EgLSBTdGF0ZXdpZGU8L1REPjwvVFI+CgovYVteYV1iLwogICAgYWNiCiAgICBhXG5iCiAgICAKL2EuYi8KICAgIGFjYgpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhXG5iICAgCiAgICAKL2FbXmFdYi9zCiAgICBhY2IKICAgIGFcbmIgIAogICAgCi9hLmIvcwogICAgYWNiCiAgICBhXG5iICAKCi9eKGIrP3xhKXsxLDJ9P2MvCiAgICBiYWMKICAgIGJiYWMKICAgIGJiYmFjCiAgICBiYmJiYWMKICAgIGJiYmJiYWMgCgovXihiK3xhKXsxLDJ9P2MvCiAgICBiYWMKICAgIGJiYWMKICAgIGJiYmFjCiAgICBiYmJiYWMKICAgIGJiYmJiYWMgCiAgICAKLyg/IVxBKXgvbQogICAgYVxieFxuCiAgICBhXG54XG4KXD0gRXhwZWN0IG5vIG1hdGNoICAgICAKICAgIHhcbmJcbgogICAgCi8oQXxCKSo/Q0QvCiAgICBDRCAKICAgIAovKEF8QikqQ0QvCiAgICBDRCAKCi8oQUIpKj9cMS8KICAgIEFCQUJBQgoKLyhBQikqXDEvCiAgICBBQkFCQUIKICAgIAovKD88IWJhcilmb28vCiAgICBmb28KICAgIGNhdGZvb2QKICAgIGFyZm9vdGxlCiAgICByZm9vc2gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYXJmb28KICAgIHRvd2JhcmZvbwoKL1x3ezN9KD88IWJhcilmb28vCiAgICBjYXRmb29kClw9IEV4cGVjdCBubyBtYXRjaAogICAgZm9vCiAgICBiYXJmb28KICAgIHRvd2JhcmZvbwoKLyg/PD0oZm9vKWEpYmFyLwogICAgZm9vYWJhcgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJhcgogICAgZm9vYmJhcgogICAgICAKL1xBYWJjXHovbQogICAgYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjXG4gICAKICAgIHFxcVxuYWJjCiAgICBhYmNcbnp6egogICAgcXFxXG5hYmNcbnp6egoKIig/Pi4qLylmb28iCiAgICAvdGhpcy9pcy9hL3ZlcnkvbG9uZy9saW5lL2luL2RlZWQvd2l0aC92ZXJ5L21hbnkvc2xhc2hlcy9pbi9hbmQvZm9vClw9IEV4cGVjdCBubyBtYXRjaCAgICAgCiAgICAvdGhpcy9pcy9hL3ZlcnkvbG9uZy9saW5lL2luL2RlZWQvd2l0aC92ZXJ5L21hbnkvc2xhc2hlcy9pbi9pdC95b3Uvc2VlLwoKLyg/PihcLlxkXGRbMS05XT8pKVxkKy8KICAgIDEuMjMwMDAzOTM4CiAgICAxLjg3NTAwMDI4MgpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICAxLjIzNSAKCi9eKCg/Plx3Kyl8KD8+XHMrKSkqJC8KICAgIG5vdyBpcyB0aGUgdGltZSBmb3IgYWxsIGdvb2QgbWVuIHRvIGNvbWUgdG8gdGhlIGFpZCBvZiB0aGUgcGFydHkKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB0aGlzIGlzIG5vdCBhIGxpbmUgd2l0aCBvbmx5IHdvcmRzIGFuZCBzcGFjZXMhCiAgICAKLyhcZCspKFx3KS8KICAgIDEyMzQ1YQogICAgMTIzNDUrIAoKLygoPz5cZCspKShcdykvCiAgICAxMjM0NWEKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjM0NSsgCgovKD8+YSspYi8KICAgIGFhYWIKCi8oKD8+YSspYikvCiAgICBhYWFiCgovKD8+KGErKSliLwogICAgYWFhYgoKLyg/PmIpKy8KICAgIGFhYWJiYmNjYwoKLyg/PmErfGIrfGMrKSpjLwogICAgYWFhYmJiYmNjY2NkCgovKCg/PlteKCldKyl8XChbXigpXSpcKSkrLwogICAgKChhYmMoYWRlKXVmaCgpKCl4CiAgICAKL1woKCg/PlteKCldKyl8XChbXigpXStcKSkrXCkvCiAgICAoYWJjKQogICAgKGFiYyhkZWYpeHl6KQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgICgoKClhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSAgIAoKL2EoPy1pKWIvaQogICAgYWIKICAgIEFiClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIGFCCiAgICBBQgogICAgICAgIAovKGEgKD94KWIgYylkIGUvCiAgICBhIGJjZCBlClw9IEV4cGVjdCBubyBtYXRjaAogICAgYSBiIGNkIGUKICAgIGFiY2QgZSAgIAogICAgYSBiY2RlIAogCi8oYSBiKD94KWMgZCAoPy14KWUgZikvCiAgICBhIGJjZGUgZgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2RlZiAgCgovKGEoP2kpYiljLwogICAgYWJjCiAgICBhQmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYkMKICAgIGFCQyAgCiAgICBBYmMKICAgIEFCYwogICAgQUJDCiAgICBBYkMKICAgIAovYSg/aTpiKWMvCiAgICBhYmMKICAgIGFCYwpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBBQkMKICAgIGFiQwogICAgYUJDCiAgICAKL2EoP2k6YikqYy8KICAgIGFCYwogICAgYUJCYwpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhQkMKICAgIGFCQkMKICAgIAovYSg/PWIoP2kpYylcd1x3ZC8KICAgIGFiY2QKICAgIGFiQ2QKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhQkNkCiAgICBhYmNEICAgICAKICAgIAovKD9zLWk6bW9yZS4qdGhhbikuKm1pbGxpb24vaQogICAgbW9yZSB0aGFuIG1pbGxpb24KICAgIG1vcmUgdGhhbiBNSUxMSU9OCiAgICBtb3JlIFxuIHRoYW4gTWlsbGlvbiAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBNT1JFIFRIQU4gTUlMTElPTiAgICAKICAgIG1vcmUgXG4gdGhhbiBcbiBtaWxsaW9uIAoKLyg/Oig/cy1pKW1vcmUuKnRoYW4pLiptaWxsaW9uL2kKICAgIG1vcmUgdGhhbiBtaWxsaW9uCiAgICBtb3JlIHRoYW4gTUlMTElPTgogICAgbW9yZSBcbiB0aGFuIE1pbGxpb24gClw9IEV4cGVjdCBubyBtYXRjaAogICAgTU9SRSBUSEFOIE1JTExJT04gICAgCiAgICBtb3JlIFxuIHRoYW4gXG4gbWlsbGlvbiAKICAgIAovKD8+YSg/aSliKykrYy8KICAgIGFiYwogICAgYUJiYwogICAgYUJCYyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBYmMKICAgIGFiQWIgICAgCiAgICBhYmJDIAogICAgCi8oPz1hKD9pKWIpXHdcd2MvCiAgICBhYmMKICAgIGFCYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiIAogICAgYWJDCiAgICBhQkMgICAgIAogICAgCi8oPzw9YSg/aSliKShcd1x3KWMvCiAgICBhYnh4YwogICAgYUJ4eGMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBYnh4YwogICAgQUJ4eGMKICAgIGFieHhDICAgICAgCgovKD86KGEpfGIpKD8oMSlBfEIpLwogICAgYUEKICAgIGJCClw9IEV4cGVjdCBubyBtYXRjaAogICAgYUIKICAgIGJBICAgIAoKL14oYSk/KD8oMSlhfGIpKyQvCiAgICBhYQogICAgYgogICAgYmIgIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiICAgCiAgICAKIyBQZXJsIGdldHMgdGhpcyBuZXh0IG9uZSB3cm9uZyBpZiB0aGUgcGF0dGVybiBlbmRzIHdpdGggJDsgaW4gdGhhdCBjYXNlIGl0CiMgZmFpbHMgdG8gbWF0Y2ggIjEyIi4gCgovXig/KD89YWJjKVx3ezN9OnxcZFxkKS8KICAgIGFiYzoKICAgIDEyCiAgICAxMjMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4eXogICAgCgovXig/KD8hYWJjKVxkXGR8XHd7M306KSQvCiAgICBhYmM6CiAgICAxMgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMwogICAgeHl6ICAgIAogICAgCi8oPyg/PD1mb28pYmFyfGNhdCkvCiAgICBmb29iYXIKICAgIGNhdAogICAgZmNhdAogICAgZm9jYXQgICAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBmb29jYXQgIAoKLyg/KD88IWZvbyljYXR8YmFyKS8KICAgIGZvb2JhcgogICAgY2F0CiAgICBmY2F0CiAgICBmb2NhdCAgIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGZvb2NhdCAgCgovKCBcKCApPyBbXigpXSsgKD8oMSkgXCkgfCkgL3gKICAgIGFiY2QKICAgIChhYmNkKQogICAgdGhlIHF1aWNrIChhYmNkKSBmb3gKICAgIChhYmNkICAgCgovKCBcKCApPyBbXigpXSsgKD8oMSkgXCkgKSAveAogICAgYWJjZAogICAgKGFiY2QpCiAgICB0aGUgcXVpY2sgKGFiY2QpIGZveAogICAgKGFiY2QgICAKCi9eKD8oMilhfCgxKSgyKSkrJC8KICAgIDEyCiAgICAxMmEKICAgIDEyYWEKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjM0ICAgIAoKLygoP2kpYmxhaClccytcMS8KICAgIGJsYWggYmxhaAogICAgQkxBSCBCTEFICiAgICBCbGFoIEJsYWgKICAgIGJsYUggYmxhSApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJsYWggQkxBSAogICAgQmxhaCBibGFoICAgICAgCiAgICBibGFIIGJsYWggCgovKCg/aSlibGFoKVxzKyg/aTpcMSkvCiAgICBibGFoIGJsYWgKICAgIEJMQUggQkxBSAogICAgQmxhaCBCbGFoCiAgICBibGFIIGJsYUgKICAgIGJsYWggQkxBSAogICAgQmxhaCBibGFoICAgICAgCiAgICBibGFIIGJsYWggCgovKD8+YSopKi8KICAgIGEKICAgIGFhCiAgICBhYWFhCiAgICAKLyhhYmN8KSsvCiAgICBhYmMKICAgIGFiY2FiYwogICAgYWJjYWJjYWJjCiAgICB4eXogICAgICAKCi8oW2FdKikqLwogICAgYQogICAgYWFhYWEgCiAKLyhbYWJdKikqLwogICAgYQogICAgYgogICAgYWJhYmFiCiAgICBhYWFhYmNkZQogICAgYmJiYiAgICAKIAovKFteYV0qKSovCiAgICBiCiAgICBiYmJiCiAgICBhYWEgICAKIAovKFteYWJdKikqLwogICAgY2NjYwogICAgYWJhYiAgCiAKLyhbYV0qPykqLwogICAgYQogICAgYWFhYSAKIAovKFthYl0qPykqLwogICAgYQogICAgYgogICAgYWJhYgogICAgYmFiYSAgIAogCi8oW15hXSo/KSovCiAgICBiCiAgICBiYmJiCiAgICBhYWEgICAKIAovKFteYWJdKj8pKi8KICAgIGMKICAgIGNjY2MKICAgIGJhYmEgICAKIAovKD8+YSopKi8KICAgIGEKICAgIGFhYWJjZGUgCiAKLygoPz5hKikpKi8KICAgIGFhYWFhCiAgICBhYWJiYWEgCiAKLygoPz5hKj8pKSovCiAgICBhYWFhYQogICAgYWFiYmFhIAoKLyg/KD89W15hLXpdK1thLXpdKSAgXGR7Mn0tW2Etel17M30tXGR7Mn0gIHwgIFxkezJ9LVxkezJ9LVxkezJ9ICkgL3gKICAgIDEyLXNlcC05OAogICAgMTItMDktOTgKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBzZXAtMTItOTgKICAgICAgICAKLyg/PD0oZm9vKSliYXJcMS8KICAgIGZvb2JhcmZvbwogICAgZm9vYmFyZm9vdGxpbmcgClw9IEV4cGVjdCBubyBtYXRjaAogICAgZm9vYmFyCiAgICBiYXJmb28gICAKCi8oP2k6c2F0dXJkYXl8c3VuZGF5KS8KICAgIHNhdHVyZGF5CiAgICBzdW5kYXkKICAgIFNhdHVyZGF5CiAgICBTdW5kYXkKICAgIFNBVFVSREFZCiAgICBTVU5EQVkKICAgIFN1bkRheQogICAgCi8oYSg/aSliY3xCQil4LwogICAgYWJjeAogICAgYUJDeAogICAgYmJ4CiAgICBCQngKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNYCiAgICBhQkNYCiAgICBiYlgKICAgIEJCWCAgICAgICAgICAgICAgIAoKL14oW2FiXSg/aSlbY2RdfFtlZl0pLwogICAgYWMKICAgIGFDCiAgICBiRAogICAgZWxlcGhhbnQKICAgIEV1cm9wZSAKICAgIGZyb2cKICAgIEZyYW5jZQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFmcmljYSAgICAgCgovXihhYnxhKD9pKVtiLWNdKD9tLWkpZHx4KD9pKXl8eikvCiAgICBhYgogICAgYUJkCiAgICB4eQogICAgeFkKICAgIHplYnJhCiAgICBaYW1iZXNpClw9IEV4cGVjdCBubyBtYXRjaAogICAgYUNEICAKICAgIFhZICAKCi8oPzw9Zm9vXG4pXmJhci9tCiAgICBmb29cbmJhcgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJhcgogICAgYmF6XG5iYXIgICAKCi8oPzw9KD88IWZvbyliYXIpYmF6LwogICAgYmFyYmF6CiAgICBiYXJiYXJiYXogCiAgICBrb29iYXJiYXogClw9IEV4cGVjdCBubyBtYXRjaAogICAgYmF6CiAgICBmb29iYXJiYXogCgojIFRoZSBjYXNlcyBvZiBhYWFhIGFuZCBhYWFhYWEgYXJlIG1pc3NlZCBvdXQgYmVsb3cgYmVjYXVzZSBQZXJsIGRvZXMgdGhpbmdzCiMgZGlmZmVyZW50bHkuIFdlIGtub3cgdGhhdCBvZGQsIGFuZCBtYXliZSBpbmNvcnJlY3QsIHRoaW5ncyBoYXBwZW4gd2l0aAojIHJlY3Vyc2l2ZSByZWZlcmVuY2VzIGluIFBlcmwsIGFzIGZhciBhcyA1LjExLjMgLSBzZWUgc29tZSBzdHVmZiBpbiB0ZXN0ICMyLgoKL14oYVwxPyl7NH0kLwogICAgYWFhYWEKICAgIGFhYWFhYWEKICAgIGFhYWFhYWFhYWEKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhCiAgICBhYQogICAgYWFhCiAgICBhYWFhYWFhYQogICAgYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhYWFhCgovXihhXDE/KShhXDE/KShhXDI/KShhXDM/KSQvCiAgICBhYWFhCiAgICBhYWFhYQogICAgYWFhYWFhCiAgICBhYWFhYWFhCiAgICBhYWFhYWFhYWFhClw9IEV4cGVjdCBubyBtYXRjaAogICAgYQogICAgYWEKICAgIGFhYQogICAgYWFhYWFhYWEKICAgIGFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhYWFhYSAgICAgICAgICAgICAgIAoKIyBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSB0YWtlbiBmcm9tIHRoZSBQZXJsIDUuMDA1IHRlc3Qgc3VpdGU7IHNvbWUgb2YgdGhlbQojIGFyZSBjb21wYXRpYmxlIHdpdGggNS4wMDQsIGJ1dCBJJ2QgcmF0aGVyIG5vdCBoYXZlIHRvIHNvcnQgdGhlbSBvdXQuCgovYWJjLwogICAgYWJjCiAgICB4YWJjeQogICAgYWJhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4YmMKICAgIGF4YwogICAgYWJ4CgovYWIqYy8KICAgIGFiYwoKL2FiKmJjLwogICAgYWJjCiAgICBhYmJjCiAgICBhYmJiYmMKCi8uezF9LwogICAgYWJiYmJjCgovLnszLDR9LwogICAgYWJiYmJjCgovYWJ7MCx9YmMvCiAgICBhYmJiYmMKCi9hYitiYy8KICAgIGFiYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmMKICAgIGFicQoKL2FiezEsfWJjLwoKL2FiK2JjLwogICAgYWJiYmJjCgovYWJ7MSx9YmMvCiAgICBhYmJiYmMKCi9hYnsxLDN9YmMvCiAgICBhYmJiYmMKCi9hYnszLDR9YmMvCiAgICBhYmJiYmMKCi9hYns0LDV9YmMvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJxCiAgICBhYmJiYmMKCi9hYj9iYy8KICAgIGFiYmMKICAgIGFiYwoKL2FiezAsMX1iYy8KICAgIGFiYwoKL2FiP2JjLwoKL2FiP2MvCiAgICBhYmMKCi9hYnswLDF9Yy8KICAgIGFiYwoKL15hYmMkLwogICAgYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJiYmJjCiAgICBhYmNjCgovXmFiYy8KICAgIGFiY2MKCi9eYWJjJC8KCi9hYmMkLwogICAgYWFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmNkCgovXi8KICAgIGFiYwoKLyQvCiAgICBhYmMKCi9hLmMvCiAgICBhYmMKICAgIGF4YwoKL2EuKmMvCiAgICBheHl6YwoKL2FbYmNdZC8KICAgIGFiZApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGF4eXpkCiAgICBhYmMKCi9hW2ItZF1lLwogICAgYWNlCgovYVtiLWRdLwogICAgYWFjCgovYVstYl0vCiAgICBhLQoKL2FbYi1dLwogICAgYS0KCi9hXS8KICAgIGFdCgovYVtdXWIvCiAgICBhXWIKCi9hW15iY11kLwogICAgYWVkClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJkCiAgICBhYmQKCi9hW14tYl1jLwogICAgYWRjCgovYVteXWJdYy8KICAgIGFkYwogICAgYS1jClw9IEV4cGVjdCBubyBtYXRjaAogICAgYV1jCgovXGJhXGIvCiAgICBhLQogICAgLWEKICAgIC1hLQoKL1xieVxiLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHh5CiAgICB5egogICAgeHl6CgovXEJhXEIvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYS0KICAgIC1hCiAgICAtYS0KCi9cQnlcYi8KICAgIHh5CgovXGJ5XEIvCiAgICB5egoKL1xCeVxCLwogICAgeHl6CgovXHcvCiAgICBhCgovXFcvCiAgICAtClw9IEV4cGVjdCBubyBtYXRjaAogICAgYQoKL2Fcc2IvCiAgICBhIGIKCi9hXFNiLwogICAgYS1iClw9IEV4cGVjdCBubyBtYXRjaAogICAgYSBiCgovXGQvCiAgICAxCgovXEQvCiAgICAtClw9IEV4cGVjdCBubyBtYXRjaAogICAgMQoKL1tcd10vCiAgICBhCgovW1xXXS8KICAgIC0KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhCgovYVtcc11iLwogICAgYSBiCgovYVtcU11iLwogICAgYS1iClw9IEV4cGVjdCBubyBtYXRjaAogICAgYSBiCgovW1xkXS8KICAgIDEKCi9bXERdLwogICAgLQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEKCi9hYnxjZC8KICAgIGFiYwogICAgYWJjZAoKLygpZWYvCiAgICBkZWYKCi8kYi8KCi9hXChiLwogICAgYShiCgovYVwoKmIvCiAgICBhYgogICAgYSgoYgoKL2FcXGIvCiAgICBhXFxiCgovKChhKSkvCiAgICBhYmMKCi8oYSliKGMpLwogICAgYWJjCgovYStiK2MvCiAgICBhYWJiYWJjCgovYXsxLH1iezEsfWMvCiAgICBhYWJiYWJjCgovYS4rP2MvCiAgICBhYmNhYmMKCi8oYSt8YikqLwogICAgYWIKCi8oYSt8Yil7MCx9LwogICAgYWIKCi8oYSt8YikrLwogICAgYWIKCi8oYSt8Yil7MSx9LwogICAgYWIKCi8oYSt8Yik/LwogICAgYWIKCi8oYSt8Yil7MCwxfS8KICAgIGFiCgovW15hYl0qLwogICAgY2RlCgovYWJjLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGIKCi9hKi8KICAgIFwKCi8oW2FiY10pKmQvCiAgICBhYmJiY2QKCi8oW2FiY10pKmJjZC8KICAgIGFiY2QKCi9hfGJ8Y3xkfGUvCiAgICBlCgovKGF8YnxjfGR8ZSlmLwogICAgZWYKCi9hYmNkKmVmZy8KICAgIGFiY2RlZmcKCi9hYiovCiAgICB4YWJ5YWJiYnoKICAgIHhheWFiYmJ6CgovKGFifGNkKWUvCiAgICBhYmNkZQoKL1thYmhnZWZkY11pai8KICAgIGhpagoKL14oYWJ8Y2QpZS8KCi8oYWJjfCllZi8KICAgIGFiY2RlZgoKLyhhfGIpYypkLwogICAgYWJjZAoKLyhhYnxhYiopYmMvCiAgICBhYmMKCi9hKFtiY10qKWMqLwogICAgYWJjCgovYShbYmNdKikoYypkKS8KICAgIGFiY2QKCi9hKFtiY10rKShjKmQpLwogICAgYWJjZAoKL2EoW2JjXSopKGMrZCkvCiAgICBhYmNkCgovYVtiY2RdKmRjZGNkZS8KICAgIGFkY2RjZGUKCi9hW2JjZF0rZGNkY2RlLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2RlCiAgICBhZGNkY2RlCgovKGFifGEpYipjLwogICAgYWJjCgovKChhKShiKWMpKGQpLwogICAgYWJjZAoKL1thLXpBLVpfXVthLXpBLVowLTlfXSovCiAgICBhbHBoYQoKL15hKGJjK3xiW2VoXSlnfC5oJC8KICAgIGFiaAoKLyhiYytkJHxlZipnLnxoP2koanxrKSkvCiAgICBlZmZnegogICAgaWoKICAgIHJlZmZnegpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGVmZmcKICAgIGJjZGQKCi8oKCgoKCgoKCgoYSkpKSkpKSkpKSkvCiAgICBhCgovKCgoKCgoKCgoKGEpKSkpKSkpKSkpXDEwLwogICAgYWEKCi8oKCgoKCgoKChhKSkpKSkpKSkpLwogICAgYQoKL211bHRpcGxlIHdvcmRzIG9mIHRleHQvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWEKICAgIHVoLXVoCgovbXVsdGlwbGUgd29yZHMvCiAgICBtdWx0aXBsZSB3b3JkcywgeWVhaAoKLyguKiljKC4qKS8KICAgIGFiY2RlCgovXCgoLiopLCAoLiopXCkvCiAgICAoYSwgYikKCi9ba10vCgovYWJjZC8KICAgIGFiY2QKCi9hKGJjKWQvCiAgICBhYmNkCgovYVstXT9jLwogICAgYWMKCi8oYWJjKVwxLwogICAgYWJjYWJjCgovKFthLWNdKilcMS8KICAgIGFiY2FiYwoKLyhhKXxcMS8KICAgIGEKICAgIGFiClw9IEV4cGVjdCBubyBtYXRjaAogICAgeAoKLygoW2EtY10pYio/XDIpKi8KICAgIGFiYWJiYmNiYwoKLygoW2EtY10pYio/XDIpezN9LwogICAgYWJhYmJiY2JjCgovKChcM3xiKVwyKGEpeCkrLwogICAgYWFheGFiYXhiYWF4YmJheAoKLygoXDN8YilcMihhKSl7Mix9LwogICAgYmJhYWJhYmJhYmFhYWFhYmJhYWFhYmJhCgovYWJjL2kKICAgIEFCQwogICAgWEFCQ1kKICAgIEFCQUJDClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWF4YWJ4YmF4YmJ4CiAgICBYQkMKICAgIEFYQwogICAgQUJYCgovYWIqYy9pCiAgICBBQkMKCi9hYipiYy9pCiAgICBBQkMKICAgIEFCQkMKCi9hYio/YmMvaQogICAgQUJCQkJDCgovYWJ7MCx9P2JjL2kKICAgIEFCQkJCQwoKL2FiKz9iYy9pCiAgICBBQkJDCgovYWIrYmMvaQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFCQwogICAgQUJRCgovYWJ7MSx9YmMvaQoKL2FiK2JjL2kKICAgIEFCQkJCQwoKL2FiezEsfT9iYy9pCiAgICBBQkJCQkMKCi9hYnsxLDN9P2JjL2kKICAgIEFCQkJCQwoKL2FiezMsNH0/YmMvaQogICAgQUJCQkJDCgovYWJ7NCw1fT9iYy9pClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUJRCiAgICBBQkJCQkMKCi9hYj8/YmMvaQogICAgQUJCQwogICAgQUJDCgovYWJ7MCwxfT9iYy9pCiAgICBBQkMKCi9hYj8/YmMvaQoKL2FiPz9jL2kKICAgIEFCQwoKL2FiezAsMX0/Yy9pCiAgICBBQkMKCi9eYWJjJC9pCiAgICBBQkMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQkJCQkMKICAgIEFCQ0MKCi9eYWJjL2kKICAgIEFCQ0MKCi9eYWJjJC9pCgovYWJjJC9pCiAgICBBQUJDCgovXi9pCiAgICBBQkMKCi8kL2kKICAgIEFCQwoKL2EuYy9pCiAgICBBQkMKICAgIEFYQwoKL2EuKj9jL2kKICAgIEFYWVpDCgovYS4qYy9pCiAgICBBQUJDClw9IEV4cGVjdCBubyBtYXRjaAogICAgQVhZWkQKCi9hW2JjXWQvaQogICAgQUJECgovYVtiLWRdZS9pCiAgICBBQ0UKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQkMKICAgIEFCRAoKL2FbYi1kXS9pCiAgICBBQUMKCi9hWy1iXS9pCiAgICBBLQoKL2FbYi1dL2kKICAgIEEtCgovYV0vaQogICAgQV0KCi9hW11dYi9pCiAgICBBXUIKCi9hW15iY11kL2kKICAgIEFFRAoKL2FbXi1iXWMvaQogICAgQURDClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUJECiAgICBBLUMKCi9hW15dYl1jL2kKICAgIEFEQwoKL2FifGNkL2kKICAgIEFCQwogICAgQUJDRAoKLygpZWYvaQogICAgREVGCgovJGIvaQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFdQwogICAgQgoKL2FcKGIvaQogICAgQShCCgovYVwoKmIvaQogICAgQUIKICAgIEEoKEIKCi9hXFxiL2kKICAgIEFcXGIKICAgIGFcXEIgCgovKChhKSkvaQogICAgQUJDCgovKGEpYihjKS9pCiAgICBBQkMKCi9hK2IrYy9pCiAgICBBQUJCQUJDCgovYXsxLH1iezEsfWMvaQogICAgQUFCQkFCQwoKL2EuKz9jL2kKICAgIEFCQ0FCQwoKL2EuKj9jL2kKICAgIEFCQ0FCQwoKL2EuezAsNX0/Yy9pCiAgICBBQkNBQkMKCi8oYSt8YikqL2kKICAgIEFCCgovKGErfGIpezAsfS9pCiAgICBBQgoKLyhhK3xiKSsvaQogICAgQUIKCi8oYSt8Yil7MSx9L2kKICAgIEFCCgovKGErfGIpPy9pCiAgICBBQgoKLyhhK3xiKXswLDF9L2kKICAgIEFCCgovKGErfGIpezAsMX0/L2kKICAgIEFCCgovW15hYl0qL2kKICAgIENERQoKLyhbYWJjXSkqZC9pCiAgICBBQkJCQ0QKCi8oW2FiY10pKmJjZC9pCiAgICBBQkNECgovYXxifGN8ZHxlL2kKICAgIEUKCi8oYXxifGN8ZHxlKWYvaQogICAgRUYKCi9hYmNkKmVmZy9pCiAgICBBQkNERUZHCgovYWIqL2kKICAgIFhBQllBQkJCWgogICAgWEFZQUJCQloKCi8oYWJ8Y2QpZS9pCiAgICBBQkNERQoKL1thYmhnZWZkY11pai9pCiAgICBISUoKCi9eKGFifGNkKWUvaQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFCQ0RFCgovKGFiY3wpZWYvaQogICAgQUJDREVGCgovKGF8YiljKmQvaQogICAgQUJDRAoKLyhhYnxhYiopYmMvaQogICAgQUJDCgovYShbYmNdKiljKi9pCiAgICBBQkMKCi9hKFtiY10qKShjKmQpL2kKICAgIEFCQ0QKCi9hKFtiY10rKShjKmQpL2kKICAgIEFCQ0QKCi9hKFtiY10qKShjK2QpL2kKICAgIEFCQ0QKCi9hW2JjZF0qZGNkY2RlL2kKICAgIEFEQ0RDREUKCi9hW2JjZF0rZGNkY2RlL2kKCi8oYWJ8YSliKmMvaQogICAgQUJDCgovKChhKShiKWMpKGQpL2kKICAgIEFCQ0QKCi9bYS16QS1aX11bYS16QS1aMC05X10qL2kKICAgIEFMUEhBCgovXmEoYmMrfGJbZWhdKWd8LmgkL2kKICAgIEFCSAoKLyhiYytkJHxlZipnLnxoP2koanxrKSkvaQogICAgRUZGR1oKICAgIElKCiAgICBSRUZGR1oKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBRENEQ0RFCiAgICBFRkZHCiAgICBCQ0RECgovKCgoKCgoKCgoKGEpKSkpKSkpKSkpL2kKICAgIEEKCi8oKCgoKCgoKCgoYSkpKSkpKSkpKSlcMTAvaQogICAgQUEKCi8oKCgoKCgoKChhKSkpKSkpKSkpL2kKICAgIEEKCi8oPzooPzooPzooPzooPzooPzooPzooPzooPzooYSkpKSkpKSkpKSkvaQogICAgQQoKLyg/Oig/Oig/Oig/Oig/Oig/Oig/Oig/Oig/OihhfGJ8YykpKSkpKSkpKSkvaQogICAgQwoKL211bHRpcGxlIHdvcmRzIG9mIHRleHQvaQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFBCiAgICBVSC1VSAoKL211bHRpcGxlIHdvcmRzL2kKICAgIE1VTFRJUExFIFdPUkRTLCBZRUFICgovKC4qKWMoLiopL2kKICAgIEFCQ0RFCgovXCgoLiopLCAoLiopXCkvaQogICAgKEEsIEIpCgovW2tdL2kKCi9hYmNkL2kKICAgIEFCQ0QKCi9hKGJjKWQvaQogICAgQUJDRAoKL2FbLV0/Yy9pCiAgICBBQwoKLyhhYmMpXDEvaQogICAgQUJDQUJDCgovKFthLWNdKilcMS9pCiAgICBBQkNBQkMKCi9hKD8hYikuLwogICAgYWJhZAoKL2EoPz1kKS4vCiAgICBhYmFkCgovYSg/PWN8ZCkuLwogICAgYWJhZAoKL2EoPzpifGN8ZCkoLikvCiAgICBhY2UKCi9hKD86YnxjfGQpKiguKS8KICAgIGFjZQoKL2EoPzpifGN8ZCkrPyguKS8KICAgIGFjZQogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpKyguKS8KICAgIGFjZGJjZGJlCgovYSg/OmJ8Y3xkKXsyfSguKS8KICAgIGFjZGJjZGJlCgovYSg/OmJ8Y3xkKXs0LDV9KC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezQsNX0/KC4pLwogICAgYWNkYmNkYmUKCi8oKGZvbyl8KGJhcikpKi8KICAgIGZvb2JhcgoKL2EoPzpifGN8ZCl7Niw3fSguKS8KICAgIGFjZGJjZGJlCgovYSg/OmJ8Y3xkKXs2LDd9PyguKS8KICAgIGFjZGJjZGJlCgovYSg/OmJ8Y3xkKXs1LDZ9KC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezUsNn0/KC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezUsN30oLikvCiAgICBhY2RiY2RiZQoKL2EoPzpifGN8ZCl7NSw3fT8oLikvCiAgICBhY2RiY2RiZQoKL2EoPzpifChjfGUpezEsMn0/fGQpKz8oLikvCiAgICBhY2UKCi9eKC4rKT9CLwogICAgQUIKCi9eKFteYS16XSl8KFxeKSQvCiAgICAuCgovXls8Pl0mLwogICAgPCZPVVQKCi9eKGFcMT8pezR9JC8KICAgIGFhYWFhYWFhYWEKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQgogICAgYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYQoKL14oYSg/KDEpXDEpKXs0fSQvCiAgICBhYWFhYWFhYWFhClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYQoKLyg/OihmKShvKShvKXwoYikoYSkocikpKi8KICAgIGZvb2JhcgoKLyg/PD1hKWIvCiAgICBhYgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGNiCiAgICBiCgovKD88IWMpYi8KICAgIGFiCiAgICBiCiAgICBiCgovKD86Li4pKmEvCiAgICBhYmEKCi8oPzouLikqP2EvCiAgICBhYmEKCi9eKD86YnxhKD89KC4pKSkqXDEvCiAgICBhYmMKCi9eKCl7Myw1fS8KICAgIGFiYwoKL14oYSspKmF4LwogICAgYWF4CgovXigoYXxiKSspKmF4LwogICAgYWF4CgovXigoYXxiYykrKSpheC8KICAgIGFheAoKLyhhfHgpKmFiLwogICAgY2FiCgovKGEpKmFiLwogICAgY2FiCgovKD86KD9pKWEpYi8KICAgIGFiCgovKCg/aSlhKWIvCiAgICBhYgoKLyg/Oig/aSlhKWIvCiAgICBBYgoKLygoP2kpYSliLwogICAgQWIKCi8oPzooP2kpYSliLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGNiCiAgICBhQgoKLygoP2kpYSliLwoKLyg/aTphKWIvCiAgICBhYgoKLygoP2k6YSkpYi8KICAgIGFiCgovKD9pOmEpYi8KICAgIEFiCgovKCg/aTphKSliLwogICAgQWIKCi8oP2k6YSliLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFCCiAgICBhQgoKLygoP2k6YSkpYi8KCi8oPzooPy1pKWEpYi9pCiAgICBhYgoKLygoPy1pKWEpYi9pCiAgICBhYgoKLyg/Oig/LWkpYSliL2kKICAgIGFCCgovKCg/LWkpYSliL2kKICAgIGFCCgovKD86KD8taSlhKWIvaQogICAgYUIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBYgogICAgQUIKCi8oPy1pOmEpYi9pCiAgICBhYgoKLygoPy1pOmEpKWIvaQogICAgYWIKCi8oPy1pOmEpYi9pCiAgICBhQgoKLygoPy1pOmEpKWIvaQogICAgYUIKCi8oPy1pOmEpYi9pClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUIKICAgIEFiCgovKCg/LWk6YSkpYi9pCgovKD8taTphKWIvaQogICAgYUIKCi8oKD8taTphKSliL2kKICAgIGFCCgovKD8taTphKWIvaQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiCiAgICBBQgoKLygoPy1pOmEpKWIvaQoKLygoPy1pOmEuKSliL2kKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQgogICAgYVxuQgoKLygoP3MtaTphLikpYi9pCiAgICBhXG5CCgovKD86Y3xkKSg/OikoPzphKD86KSg/OmIpKD86Yig/OikpKD86Yig/OikoPzpiKSkpLwogICAgY2FiYmJiCgovKD86Y3xkKSg/OikoPzphYWFhYWFhYSg/OikoPzpiYmJiYmJiYikoPzpiYmJiYmJiYig/OikpKD86YmJiYmJiYmIoPzopKD86YmJiYmJiYmIpKSkvCiAgICBjYWFhYWFhYWFiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYgoKLyhhYilcZFwxL2kKICAgIEFiNGFiCiAgICBhYjRBYgoKL2Zvb1x3KlxkezR9YmF6LwogICAgZm9vYmFyMTIzNGJhegoKL3gofn4pKig/Oig/OkYpPyk/LwogICAgeH5+CgovXmEoPyN4eHgpezN9Yy8KICAgIGFhYWMKCi9eYSAoPyN4eHgpICg/I3l5eSkgezN9Yy94CiAgICBhYWFjCgovKD88IVtjZF0pYi8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBCXG5CCiAgICBkYmNiCgovKD88IVtjZF0pW2FiXS8KICAgIGRiYWFjYgoKLyg/PCEoY3xkKSliLwoKLyg/PCEoY3xkKSlbYWJdLwogICAgZGJhYWNiCgovKD88IWNkKVthYl0vCiAgICBjZGFjY2IKCi9eKD86YT9iPykqJC8KICAgIFwKICAgIGEKICAgIGFiCiAgICBhYWEgICAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBkYmNiCiAgICBhLS0KICAgIGFhLS0gCgovKCg/cyleYSguKSkoKD9tKV5iJCkvCiAgICBhXG5iXG5jXG4KCi8oKD9tKV5iJCkvCiAgICBhXG5iXG5jXG4KCi8oP20pXmIvCiAgICBhXG5iXG4KCi8oP20pXihiKS8KICAgIGFcbmJcbgoKLygoP20pXmIpLwogICAgYVxuYlxuCgovXG4oKD9tKV5iKS8KICAgIGFcbmJcbgoKLygoP3MpLiljKD8hLikvCiAgICBhXG5iXG5jXG4KICAgIGFcbmJcbmNcbgoKLygoP3MpYi4pYyg/IS4pLwogICAgYVxuYlxuY1xuCiAgICBhXG5iXG5jXG4KCi9eYi8KCi8oKV5iLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFcbmJcbmNcbgogICAgYVxuYlxuY1xuCgovKCg/bSleYikvCiAgICBhXG5iXG5jXG4KCi8oeCk/KD8oMSlhfGIpLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGEKICAgIGEKCi8oeCk/KD8oMSlifGEpLwogICAgYQoKLygpPyg/KDEpYnxhKS8KICAgIGEKCi8oKSg/KDEpYnxhKS8KCi8oKT8oPygxKWF8YikvCiAgICBhCgovXihcKCk/YmxhaCg/KDEpKFwpKSkkLwogICAgKGJsYWgpCiAgICBibGFoClw9IEV4cGVjdCBubyBtYXRjaAogICAgYQogICAgYmxhaCkKICAgIChibGFoCgovXihcKCspP2JsYWgoPygxKShcKSkpJC8KICAgIChibGFoKQogICAgYmxhaApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJsYWgpCiAgICAoYmxhaAoKLyg/KD8hYSlhfGIpLwoKLyg/KD8hYSlifGEpLwogICAgYQoKLyg/KD89YSlifGEpLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGEKICAgIGEKCi8oPyg/PWEpYXxiKS8KICAgIGEKCi8oPz0oYSs/KSkoXDFhYikvCiAgICBhYWFiCgovXig/PShhKz8pKVwxYWIvCgovKFx3KzopKy8KICAgIG9uZToKCi8kKD88PV4oYSkpLwogICAgYQoKLyg/PShhKz8pKShcMWFiKS8KICAgIGFhYWIKCi9eKD89KGErPykpXDFhYi8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFiCiAgICBhYWFiCgovKFtcdzpdKzo6KT8oXHcrKSQvCiAgICBhYmNkCiAgICB4eTp6Ojo6YWJjZAoKL15bXmJjZF0qKGMrKS8KICAgIGFleHljZAoKLyhhKiliKy8KICAgIGNhYWIKCi8oW1x3Ol0rOjopPyhcdyspJC8KICAgIGFiY2QKICAgIHh5Ono6OjphYmNkClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjZDoKICAgIGFiY2Q6CgovXlteYmNkXSooYyspLwogICAgYWV4eWNkCgovKD5hKylhYi8KCi8oPz5hKyliLwogICAgYWFhYgoKLyhbWzpdKykvCiAgICBhOltiXToKCi8oW1s9XSspLwogICAgYT1bYl09CgovKFtbLl0rKS8KICAgIGEuW2JdLgoKLygoPz5hKyliKS8KICAgIGFhYWIKCi8oPz4oYSspKWIvCiAgICBhYWFiCgovKCg/PlteKCldKyl8XChbXigpXSpcKSkrLwogICAgKChhYmMoYWRlKXVmaCgpKCl4CgovYVxaLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWIKICAgIGFcbmJcbgoKL2JcWi8KICAgIGFcbmJcbgoKL2Jcei8KCi9iXFovCiAgICBhXG5iCgovYlx6LwogICAgYVxuYgogICAgCi9eKD8+KD8oMSlcLnwoKSlbXlxXX10oPz5bYS16MC05LV0qW15cV19dKT8pKyQvCiAgICBhCiAgICBhYmMKICAgIGEtYgogICAgMC05IAogICAgYS5iCiAgICA1LjYuNyAgCiAgICB0aGUucXVpY2suYnJvd24uZm94CiAgICBhMTAwLmIyMDAuMzAwYyAgCiAgICAxMi1hYi4xMjQ1IApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFwKICAgIC5hCiAgICAtYQogICAgYS0KICAgIGEuICAKICAgIGFfYiAKICAgIGEuLQogICAgYS4uICAKICAgIGFiLi5iYyAKICAgIHRoZS5xdWljay5icm93bi5mb3gtCiAgICB0aGUucXVpY2suYnJvd24uZm94LgogICAgdGhlLnF1aWNrLmJyb3duLmZveF8KICAgIHRoZS5xdWljay5icm93bi5mb3grICAgICAgIAoKLyg/Pi4qKSg/PD0oYWJjZHx3eHl6KSkvCiAgICBhbHBoYWJldGFiY2QKICAgIGVuZGluZ3d4eXoKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhIHJhdGhlciBsb25nIHN0cmluZyB0aGF0IGRvZXNuJ3QgZW5kIHdpdGggb25lIG9mIHRoZW0KCi93b3JkICg/Pig/Oig/IW90aGVyd29yZClbYS16QS1aMC05XSsgKXswLDMwfSlvdGhlcndvcmQvCiAgICB3b3JkIGNhdCBkb2cgZWxlcGhhbnQgbXVzc2VsIGNvdyBob3JzZSBjYW5hcnkgYmFib29uIHNuYWtlIHNoYXJrIG90aGVyd29yZApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHdvcmQgY2F0IGRvZyBlbGVwaGFudCBtdXNzZWwgY293IGhvcnNlIGNhbmFyeSBiYWJvb24gc25ha2Ugc2hhcmsKICAKL3dvcmQgKD8+W2EtekEtWjAtOV0rICl7MCwzMH1vdGhlcndvcmQvClw9IEV4cGVjdCBubyBtYXRjaAogICAgd29yZCBjYXQgZG9nIGVsZXBoYW50IG11c3NlbCBjb3cgaG9yc2UgY2FuYXJ5IGJhYm9vbiBzbmFrZSBzaGFyayB0aGUgcXVpY2sgYnJvd24gZm94IGFuZCB0aGUgbGF6eSBkb2cgYW5kIHNldmVyYWwgb3RoZXIgd29yZHMgZ2V0dGluZyBjbG9zZSB0byB0aGlydHkgYnkgbm93IEkgaG9wZQoKLyg/PD1cZHszfSg/ITk5OSkpZm9vLwogICAgOTk5Zm9vCiAgICAxMjM5OTlmb28gClw9IEV4cGVjdCBubyBtYXRjaAogICAgMTIzYWJjZm9vCiAgICAKLyg/PD0oPyEuLi45OTkpXGR7M30pZm9vLwogICAgOTk5Zm9vCiAgICAxMjM5OTlmb28gClw9IEV4cGVjdCBubyBtYXRjaAogICAgMTIzYWJjZm9vCgovKD88PVxkezN9KD8hOTk5KS4uLilmb28vCiAgICAxMjNhYmNmb28KICAgIDEyMzQ1NmZvbyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjM5OTlmb28gIAogICAgCi8oPzw9XGR7M30uLi4pKD88ITk5OSlmb28vCiAgICAxMjNhYmNmb28gICAKICAgIDEyMzQ1NmZvbyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjM5OTlmb28gIAoKLzxhW1xzXStocmVmW1xzXSo9W1xzXSogICAgICAgICAgIyBmaW5kIDxhIGhyZWY9CiAoW1wiXCddKT8gICAgICAgICAgICAgICAgICAgICAgICMgZmluZCBzaW5nbGUgb3IgZG91YmxlIHF1b3RlCiAoPygxKSAoLio/KVwxIHwgKFteXHNdKykpICAgICAgICMgaWYgcXVvdGUgZm91bmQsIG1hdGNoIHVwIHRvIG5leHQgbWF0Y2hpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBxdW90ZSwgb3RoZXJ3aXNlIG1hdGNoIHVwIHRvIG5leHQgc3BhY2UKL2lzeAogICAgPGEgaHJlZj1hYmNkIHh5egogICAgPGEgaHJlZj1cImFiY2QgeHl6IHBxclwiIGNhdHMKICAgIDxhIGhyZWY9XCdhYmNkIHh5eiBwcXJcJyBjYXRzCgovPGFccytocmVmXHMqPVxzKiAgICAgICAgICAgICAgICAjIGZpbmQgPGEgaHJlZj0KIChbIiddKT8gICAgICAgICAgICAgICAgICAgICAgICAgIyBmaW5kIHNpbmdsZSBvciBkb3VibGUgcXVvdGUKICg/KDEpICguKj8pXDEgfCAoXFMrKSkgICAgICAgICAgIyBpZiBxdW90ZSBmb3VuZCwgbWF0Y2ggdXAgdG8gbmV4dCBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHF1b3RlLCBvdGhlcndpc2UgbWF0Y2ggdXAgdG8gbmV4dCBzcGFjZQovaXN4CiAgICA8YSBocmVmPWFiY2QgeHl6CiAgICA8YSBocmVmPVwiYWJjZCB4eXogcHFyXCIgY2F0cwogICAgPGEgaHJlZiAgICAgICA9ICAgICAgIFwnYWJjZCB4eXogcHFyXCcgY2F0cwoKLzxhXHMraHJlZig/PlxzKik9KD8+XHMqKSAgICAgICAgIyBmaW5kIDxhIGhyZWY9CiAoWyInXSk/ICAgICAgICAgICAgICAgICAgICAgICAgICMgZmluZCBzaW5nbGUgb3IgZG91YmxlIHF1b3RlCiAoPygxKSAoLio/KVwxIHwgKFxTKykpICAgICAgICAgICMgaWYgcXVvdGUgZm91bmQsIG1hdGNoIHVwIHRvIG5leHQgbWF0Y2hpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBxdW90ZSwgb3RoZXJ3aXNlIG1hdGNoIHVwIHRvIG5leHQgc3BhY2UKL2lzeAogICAgPGEgaHJlZj1hYmNkIHh5egogICAgPGEgaHJlZj1cImFiY2QgeHl6IHBxclwiIGNhdHMKICAgIDxhIGhyZWYgICAgICAgPSAgICAgICBcJ2FiY2QgeHl6IHBxclwnIGNhdHMKCi8oKFopK3xBKSovCiAgICBaQUJDREVGRwoKLyhaKCl8QSkqLwogICAgWkFCQ0RFRkcKCi8oWigoKSl8QSkqLwogICAgWkFCQ0RFRkcKCi8oKD8+WikrfEEpKi8KICAgIFpBQkNERUZHCgovKCg/PikrfEEpKi8KICAgIFpBQkNERUZHCgovYSovZwogICAgYWJiYWIKCi9eW1xkLWFdLwogICAgYWJjZGUKICAgIC10aGluZ3MKICAgIDBkaWdpdApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJjZGVmICAgIAogICAgCi9bWzpzcGFjZTpdXSsvCiAgICA+IFx4MDlceDBhXHgwY1x4MGRceDBiPAogICAgIAovW1s6Ymxhbms6XV0rLwogICAgPiBceDA5XHgwYVx4MGNceDBkXHgwYjwKICAgICAKL1tcc10rLwogICAgPiBceDA5XHgwYVx4MGNceDBkXHgwYjwKICAgICAKL1xzKy8KICAgID4gXHgwOVx4MGFceDBjXHgwZFx4MGI8CiAgICAgCi9hC2IveAogICAgYWIKCi8oPyFcQSl4L20KICAgIGFcbnhiXG4KCi8oPyFeKXgvbQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFcbnhiXG4KCi9hYmNcUWFiY1xFYWJjLwogICAgYWJjYWJjYWJjCiAgICAKL2FiY1xRKCorfFxFYWJjLwogICAgYWJjKCorfGFiYyAKCi8gICBhYmNcUSBhYmNcRWFiYy94CiAgICBhYmMgYWJjYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjYWJjYWJjICAKICAgIAovYWJjI2NvbW1lbnQKICAgIFxRI25vdCBjb21tZW50CiAgICBsaXRlcmFsXEUveAogICAgYWJjI25vdCBjb21tZW50XG4gICAgbGl0ZXJhbCAgICAgCgovYWJjI2NvbW1lbnQKICAgIFxRI25vdCBjb21tZW50CiAgICBsaXRlcmFsL3gKICAgIGFiYyNub3QgY29tbWVudFxuICAgIGxpdGVyYWwgICAgIAoKL2FiYyNjb21tZW50CiAgICBcUSNub3QgY29tbWVudAogICAgbGl0ZXJhbFxFICNtb3JlIGNvbW1lbnQKICAgIC94CiAgICBhYmMjbm90IGNvbW1lbnRcbiAgICBsaXRlcmFsICAgICAKCi9hYmMjY29tbWVudAogICAgXFEjbm90IGNvbW1lbnQKICAgIGxpdGVyYWxcRSAjbW9yZSBjb21tZW50L3gKICAgIGFiYyNub3QgY29tbWVudFxuICAgIGxpdGVyYWwgICAgIAoKL1xRYWJjXCR4eXpcRS8KICAgIGFiY1xcXCR4eXoKCi9cUWFiY1xFXCRcUXh5elxFLwogICAgYWJjXCR4eXoKCi9cR2FiYy8KICAgIGFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHh5emFiYyAgCgovXEdhYmMuL2cKICAgIGFiYzFhYmMyeHl6YWJjMwoKL2FiYy4vZwogICAgYWJjMWFiYzJ4eXphYmMzIAoKL2EoP3g6IGIgYyApZC8KICAgIFhhYmNkWQpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBYYSBiIGMgZCBZIAoKLygoP3gpeCB5IHogfCBhIGIgYykvCiAgICBYYWJjWQogICAgQXh5ekIgCgovKD9pKUFCKD8taSlDLwogICAgWGFiQ1kKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBYYWJjWSAgCgovKCg/aSlBQig/LWkpQ3xEKUUvCiAgICBhYkNFCiAgICBERQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY0UKICAgIGFiQ2UgIAogICAgZEUKICAgIERlICAgIAoKLyguKilcZCtcMS8KICAgIGFiYzEyM2FiYwogICAgYWJjMTIzYmMgCgovKC4qKVxkK1wxL3MKICAgIGFiYzEyM2FiYwogICAgYWJjMTIzYmMgCiAgICAKLygoLiopKVxkK1wxLwogICAgYWJjMTIzYWJjCiAgICBhYmMxMjNiYyAgCgojIFRoaXMgdGVzdHMgZm9yIGFuIElQdjYgYWRkcmVzcyBpbiB0aGUgZm9ybSB3aGVyZSBpdCBjYW4gaGF2ZSB1cCB0bwojIGVpZ2h0IGNvbXBvbmVudHMsIG9uZSBhbmQgb25seSBvbmUgb2Ygd2hpY2ggaXMgZW1wdHkuIFRoaXMgbXVzdCBiZQojIGFuIGludGVybmFsIGNvbXBvbmVudC4gCgovXig/ITopICAgICAgICAgICAgICAgICAgICAgICAjIGNvbG9uIGRpc2FsbG93ZWQgYXQgc3RhcnQKICAoPzogICAgICAgICAgICAgICAgICAgICAgICAgIyBzdGFydCBvZiBpdGVtCiAgICAoPzogWzAtOWEtZl17MSw0fSB8ICAgICAgICMgMS00IGhleCBkaWdpdHMgb3IKICAgICg/KDEpMCB8ICgpICkgKSAgICAgICAgICAgIyBpZiBudWxsIHByZXZpb3VzbHkgbWF0Y2hlZCwgZmFpbDsgZWxzZSBudWxsCiAgICA6ICAgICAgICAgICAgICAgICAgICAgICAgICMgZm9sbG93ZWQgYnkgY29sb24KICApezEsN30gICAgICAgICAgICAgICAgICAgICAgIyBlbmQgaXRlbTsgMS03IG9mIHRoZW0gcmVxdWlyZWQgICAgICAgICAgICAgICAKICBbMC05YS1mXXsxLDR9ICQgICAgICAgICAgICAgIyBmaW5hbCBoZXggbnVtYmVyIGF0IGVuZCBvZiBzdHJpbmcKICAoPygxKXwuKSAgICAgICAgICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZXJlIHdhcyBhbiBlbXB0eSBjb21wb25lbnQKICAvaXgKICAgIGExMjM6OmExMjMKICAgIGExMjM6YjM0Mjo6YWJjZAogICAgYTEyMzpiMzQyOjozMjRlOmFiY2QKICAgIGExMjM6ZGRkZTpiMzQyOjozMjRlOmFiY2QKICAgIGExMjM6ZGRkZTpiMzQyOjozMjRlOmRjYmE6YWJjZAogICAgYTEyMzpkZGRlOjk5OTk6YjM0Mjo6MzI0ZTpkY2JhOmFiY2QKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxOjI6Mzo0OjU6Njo3OjgKICAgIGExMjM6YmNlOmRkZGU6OTk5OTpiMzQyOjozMjRlOmRjYmE6YWJjZAogICAgYTEyMzo6OTk5OTpiMzQyOjozMjRlOmRjYmE6YWJjZAogICAgYWJjZGU6MjozOjQ6NTo2Ojc6OAogICAgOjoxCiAgICBhYmNkOmZlZTA6MTIzOjogICAKICAgIDoxCiAgICAxOiAgCgovW3pcUWEtZF1cRV0vCiAgICB6CiAgICBhCiAgICAtCiAgICBkCiAgICBdIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGIgICAgIAoKLyhhKykqYi8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIAogICAgCi8oP2kpcmVnKD86dWwoPzpbYeRdfGFlKXJ8ZXgpLwogICAgUkVHdWxhcgogICAgcmVndWxhZXIKICAgIFJlZ2V4ICAKICAgIHJlZ3Vs5HIgCgovxebl5FvgLf/ALd9dKy8KICAgIMXm5eTgCiAgICDF5uXk/wogICAgxebl5MAKICAgIMXm5eTfCgovKD88PVopWC4vCiAgXHg4NFhBWlhCCgovYWIgY2QgKD94KSBkZSBmZy8KICAgIGFiIGNkIGRlZmcKCi9hYiBjZCg/eCkgZGUgZmcvCiAgICBhYiBjZGRlZmcKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYWJjZGRlZmcKCi8oPzwhW15mXW9vKShiYXIpLwogICAgZm9vYmFyWCAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYm9vYmFyWAoKLyg/PCFbXmZdKVgvCiAgICBvZmZYClw9IEV4cGVjdCBubyBtYXRjaAogICAgb255WCAgCgovKD88PVteZl0pWC8KICAgIG9ueVgKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBvZmZYIAoKL14vZ20KICAgIGFcbmJcbmNcbgogICAgXCAKICAgIAovKD88PUNcbileL2dtCiAgICBBXG5DXG5DXG4gCgovKD86KD8oMSlhfGIpKFgpKSsvCiAgICBiWGFYCgovKD86KD8oMSlcMWF8YikoWHxZKSkrLwogICAgYlhYYVlZYVkKICAgIGJYWWFYWGFYICAKCi8oKSgpKCkoKSgpKCkoKSgpKCkoPzooPygxMClcMTBhfGIpKFh8WSkpKy8KICAgIGJYWGFZWWFZCgovW1ssYWJjLF0rXS8KICAgIGFiY10KICAgIGEsYl0KICAgIFthLGIsY10gIAoKLyg/LXg6ICkveAogICAgQVx4MjBCCiAgICAKIig/eCkoPy14OiBccyojXHMqKSIKICAgIEEgIyBCClw9IEV4cGVjdCBubyBtYXRjaAogICAgIyAgCgoiKD94LWlzKSg/Oig/LWl4cykgXHMqI1xzKikgaW5jbHVkZSIKICAgIEEgI2luY2x1ZGUKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBI2luY2x1ZGUgIAogICAgQSAjSW5jbHVkZQoKL2EqYipcdy8KICAgIGFhYWJiYmIKICAgIGFhYWEKICAgIGEKCi9hKmI/XHcvCiAgICBhYWFiYmJiCiAgICBhYWFhCiAgICBhCgovYSpiezAsNH1cdy8KICAgIGFhYWJiYmIKICAgIGFhYWEKICAgIGEKCi9hKmJ7MCx9XHcvCiAgICBhYWFiYmJiCiAgICBhYWFhCiAgICBhCiAgICAKL2EqXGQqXHcvCiAgICAwYQogICAgYSAKICAgIAovYSpiICpcdy94CiAgICBhIAoKL2EqYiNjb21tZW50CiAgKlx3L3gKICAgIGEgCgovYSogYiAqXHcveAogICAgYSAKCi9eXHcrPS4qKFxcXG4uKikqLwogICAgYWJjPXh5elxcXG5wcXIKCi8oPz0oXHcrKSlcMTovCiAgICBhYmNkOgoKL14oPz0oXHcrKSlcMTovCiAgICBhYmNkOgoKL15cRWFiYy8KICAgIGFiYwogICAgCi9eW1xFYWJjXS8KICAgIGEKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgRSAKICAgIAovXlthLVxFY10vCiAgICBiClw9IEV4cGVjdCBubyBtYXRjaAogICAgLQogICAgRSAgICAKCi9eW2FcRVxFLVxFY10vCiAgICBiClw9IEV4cGVjdCBubyBtYXRjaAogICAgLQogICAgRSAgICAKCi9eW1xFXFFhXEUtXFF6XEVdKy8KICAgIGIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAtICAKICAgIAovXlthXFFdYmNcRV0vCiAgICBhCiAgICBdCiAgICBjCiAgICAKL15bYS1cUVxFXS8KICAgIGEKICAgIC0gICAgIAoKL14oYSgpKikqLwogICAgYWFhYQoKL14oPzphKD86KD86KSkqKSovCiAgICBhYWFhCgovXihhKCkrKSsvCiAgICBhYWFhCgovXig/OmEoPzooPzopKSspKy8KICAgIGFhYWEKCi8oYSl7MCwzfSg/KDEpYnwoY3wpKSpELwogICAgYWJiRAogICAgY2NjY0QKICAgIEQgIAoKLyhhfCkqXGQvCiAgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhNApcPSBFeHBlY3Qgbm8gbWF0Y2gKICBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEKCi8oPz5hfCkqXGQvCiAgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhNApcPSBFeHBlY3Qgbm8gbWF0Y2gKICBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEKCi8oPzphfCkqXGQvCiAgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhNApcPSBFeHBlY3Qgbm8gbWF0Y2gKICBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEKCi9cWi9nCiAgYWJjXG4KICAKL14oP3MpKD8+LiopKD88IVxuKS8KICBhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgYWJjXG4gIAoKL14oPyFbXlxuXSpcblx6KS8KICBhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgYWJjXG4gCiAgCi9ceig/PCFcbikvCiAgYWJjClw9IEV4cGVjdCBubyBtYXRjaAogIGFiY1xuICAKCi8oLiooLik/KSovCiAgICBhYmNkCgovKCAoQSB8ICg/KDEpMHwpICkqICAgKS94CiAgICBhYmNkCgovKCAoICg/KDEpMHwpICkqICAgKS94CiAgICBhYmNkCgovKCAgKD8oMSkwfCkqICAgKS94CiAgICBhYmNkCgovW1s6YWJjZDp4eXpdXS8KICAgIGFdCiAgICA6XSAKICAgIAovW2FiY1s6eFxdcHFyXS8KICAgIGEKICAgIFsKICAgIDoKICAgIF0KICAgIHAgICAgCgovLipbb3BdW3h5el0vClw9IEV4cGVjdCBubyBtYXRjaAogICAgZm9vYWJjZm9vCgovKD8oPz0uKmIpYnxeKS8KICAgYWRjCiAgIGFiYyAKCi8oPyg/PV4uKmIpYnxeKS8KICAgYWRjClw9IEV4cGVjdCBubyBtYXRjaAogICBhYmMgCgovKD8oPz0uKmIpYnxeKSovCiAgIGFkYwogICBhYmMgCgovKD8oPz0uKmIpYnxeKSsvCiAgIGFkYwogICBhYmMgCgovKD8oPz1iKS4qYnxeZCkvCiAgICBhYmMKCi8oPyg/PS4qYikuKmJ8XmQpLwogICAgYWJjCgovXiUoKD8oPz1bYV0pW14lXSl8YikqJSQvCiAgICAlYWIlCgovKD9pKWEoPy1pKWJ8Yy8KICAgIFhhYlgKICAgIFhBYlgKICAgIENjQyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBYQUJYICAgCgovW1x4MDAtXHhmZlxzXSsvCiAgICBceDBhXHgwYlx4MGNceDBkCgovKGFiYylcMS9pClw9IEV4cGVjdCBubyBtYXRjaAogICBhYmMKCi8oYWJjKVwxLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgYWJjCgovW15hXSovaQogICAgMTJhYmMKICAgIDEyQUJDCgovW15hXSorL2kKICAgIDEyYWJjCiAgICAxMkFCQwoKL1teYV0qP1gvaQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyYWJjCiAgICAxMkFCQwogICAgCi9bXmFdKz9YL2kKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMmFiYwogICAgMTJBQkMKCi9bXmFdP1gvaQogICAgMTJhWGJjWAogICAgMTJBWEJDWAogICAgQkNYIAoKL1teYV0/P1gvaQogICAgMTJhWGJjWAogICAgMTJBWEJDWAogICAgQkNYCiAgICAKL1teYV0/K1gvaQogICAgMTJhWGJjWAogICAgMTJBWEJDWAogICAgQkNYIAoKL1teYV17MiwzfS9pCiAgICBhYmNkZWYKICAgIEFCQ0RFRiAgCgovW15hXXsyLDN9Py9pCiAgICBhYmNkZWYKICAgIEFCQ0RFRiAgCgovW15hXXsyLDN9Ky9pCiAgICBhYmNkZWYKICAgIEFCQ0RFRiAgCgovKChhfCkrKStaLwogICAgWgoKLyhhKWJ8KGEpYy8KICAgIGFjCgovKD8+KGEpKWJ8KGEpYy8KICAgIGFjCgovKD89KGEpKWFifChhKWMvCiAgICBhYwoKLygoPz4oYSkpYnwoYSljKS8KICAgIGFjCgovKCg/PihhKSlifChhKWMpKysvCiAgICBhYwoKLyg/Oig/PihhKSlifChhKWMpKysvCiAgICBhYwoKLyg/PSg/PihhKSlifChhKWMpKC4uKS8KICAgIGFjCgovKD8+KD8+KGEpKWJ8KGEpYykvCiAgICBhYwoKLyg/Oig/PihbYWJdKSkpK2E9L2FmdGVydGV4dAogICAgPWJhPQoKLyg/PihbYWJdKSkrYT0vYWZ0ZXJ0ZXh0CiAgICA9YmE9CgovKCg/PihhKyliKSsoYWFiYWIpKS8KICAgIGFhYWFiYWFhYmFhYmFiCgovKD8+YSt8YWIpKz9jLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmMKCi8oPz5hK3xhYikrYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWJjCgovKD86YSt8YWIpK2MvCiAgICBhYWJjCgovKD8oPz0oYSkpYSkvCiAgICBhCgovKD8oPz0oYSkpYSkoYikvCiAgICBhYgoKL14oPzphfGFiKSsrYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYmMKCi9eKD8+YXxhYikrK2MvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYWJjCgovXig/OmF8YWIpK2MvCiAgICBhYWFhYmMKCi8oPz1hYmMpezN9YWJjL2FmdGVydGV4dAogICAgYWJjYWJjYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgeHl6ICAKICAgIAovKD89YWJjKSthYmMvYWZ0ZXJ0ZXh0CiAgICBhYmNhYmNhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4eXogIAogICAgCi8oPz1hYmMpKythYmMvYWZ0ZXJ0ZXh0CiAgICBhYmNhYmNhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4eXogIAogICAgCi8oPz1hYmMpezB9eHl6LwogICAgeHl6IAoKLyg/PWFiYyl7MX14eXovClw9IEV4cGVjdCBubyBtYXRjaAogICAgeHl6IAogICAgCi8oPz0oYSkpPy4vCiAgICBhYgogICAgYmMKICAgICAgCi8oPz0oYSkpPz8uLwogICAgYWIKICAgIGJjCgovXig/PSg/MSkpP1thel0oW2FiY10pZC8KICAgIGFiZCAKICAgIHpjZHh4IAoKL14oPyFhKXswfVx3Ky8KICAgIGFhYWFhCgovKD88PShhYmMpKT94eXovCiAgICBhYmN4eXoKICAgIHBxcnh5eiAKCi9eW1xnPGE+XSsvCiAgICBnZ2c8PDxhYWE+Pj4KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBcXGdhICAKICAgIAovXltcZ2FdKy8KICAgIGdnZ2FnYWdheHl6IAogICAgCi9eWzphWzpkaWdpdDpdXSsvCiAgICBhYWFhNDQ0Ojo6WiAKCi9eWzphWzpkaWdpdDpdOmJdKy8KICAgIGFhYWE0NDQ6OjpiYmJaIAoKL1s6YV14eHhbYjpdLwogICAgIDp4eHg6CiAgICAgCi8oPzw9YXsyfSliL2kKICAgIHhhYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgeGFiYyAgCgovKD88IWF7Mn0pYi9pCiAgICB4YWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgeGFhYmMgIAoKLyg/PD1hXGgpYy8KICAgIHhhIGMKICAgIAovKD88PVteYV17Mn0pYi8KICAgIGF4eGJjCiAgICBhQUFiYyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4YWFiYyAgICAKCi8oPzw9W15hXXsyfSliL2kKICAgIGF4eGJjICAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhQUFiYyAKICAgIHhhYWJjICAgIAoKLyg/PD1hXEgpYy8KICAgIGFiYwoKLyg/PD1hXFYpYy8KICAgIGFiYwogICAgCi8oPzw9YVx2KWMvCiAgICBhXG5jCgovKD8oPz1jKWN8ZCkrK1kvCiAgICBYY2NjZGRZWAoKLyg/KD89YyljfGQpKitZLwogICAgWGNjY2RkWVgKCi9eKGF7MiwzfSl7Mix9K2EvCiAgICBhYWFhYWFhClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYWFhCiAgICBhYWFhYWFhYWEgCgovXihhezIsM30pKythLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWFhYQoKL14oYXsyLDN9KSorYS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYWEKCi9cSFxoXFZcdi8KICAgIFggWFx4MGEKICAgIFhceDA5WFx4MGIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBceGEwIFhceDBhICAgCiAgICAKL1xIKlxoK1xWP1x2ezMsNH0vCiAgICBceDA5XHgyMFx4YTBYXHgwYVx4MGJceDBjXHgwZFx4MGEKICAgIFx4MDlceDIwXHhhMFx4MGFceDBiXHgwY1x4MGRceDBhCiAgICBceDA5XHgyMFx4YTBceDBhXHgwYlx4MGMKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgXHgwOVx4MjBceGEwXHgwYVx4MGIKICAgICAKL1xIezMsNH0vCiAgICBYWSAgQUJDREUKICAgIFhZICBQUVIgU1QgCiAgICAKLy5caHszLDR9Li8KICAgIFhZICBBQiAgICBQUVJTCgovXGgqWFxoP1xIK1lcSD9aLwogICAgPlhOTk5ZWgogICAgPiAgWCBOWVFaClw9IEV4cGVjdCBubyBtYXRjaAogICAgPlhZWiAgIAogICAgPiAgWCBOWSBaCgovXHYqWFx2P1lcditaXFYqXHgwYVxWK1x4MGJcVnsyLDN9XHgwYy8KICAgID5YWVx4MGFaXHgwYUFceDBiTk5ceDBjCiAgICA+XHgwYVx4MGRYXHgwYVlceDBhXHgwYlpaWlx4MGFBQUFceDBiTk5OXHgwYwoKLyhmb28pXEtiYXIvCiAgICBmb29iYXIKICAgCi8oZm9vKShcS2JhcnxiYXopLwogICAgZm9vYmFyCiAgICBmb29iYXogCgovKGZvb1xLYmFyKWJhei8KICAgIGZvb2JhcmJhegoKL2FiY1xLfGRlZlxLL2csYWZ0ZXJ0ZXh0CiAgICBYYWJjZGVmZ2hpCgovYWJcS2N8ZGVcS2YvZyxhZnRlcnRleHQKICAgIFhhYmNkZWZnaGkKICAgIAovKD89QykvZyxhZnRlcnRleHQKICAgIEFCQ0RFQ0JBCiAgICAKL15hYmNcSy9hZnRlcnRleHQKICAgIGFiY2RlZgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGRlZmFiY3h5eiAgIAoKL14oYShiKSlcMVxnMVxnezF9XGctMVxney0xfVxney0yfVovCiAgICBhYmFiYWJhYmJiYWJaWFhYWAoKLyg/PEE+dG9tfGJvbiktXGd7QX0vCiAgICB0b20tdG9tCiAgICBib24tYm9uIAogICAgCi8oXihhfGJcZ3stMX0pKS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYWN4eHgKCi8oP3woYWJjKXwoeHl6KSlcMS8KICAgIGFiY2FiYwogICAgeHl6eHl6IApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY3h5egogICAgeHl6YWJjICAgCiAgICAKLyg/fChhYmMpfCh4eXopKSg/MSkvCiAgICBhYmNhYmMKICAgIHh5emFiYyAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgeHl6eHl6IAogCi9eWCg/NSkoYSkoP3woYil8KHEpKShjKShkKShZKS8KICAgIFhZYWJjZFkKCi9eWCg/NykoYSkoP3woYnwocikocykpfChxKSkoYykoZCkoWSkvCiAgICBYWWFiY2RZCgovXlgoPzcpKGEpKD98KGJ8KD98KHIpfCh0KSkocykpfChxKSkoYykoZCkoWSkvCiAgICBYWWFiY2RZCgovKD8nYWJjJ1x3Kyk6XGs8YWJjPnsyfS8KICAgIGE6YWF4eXoKICAgIGFiOmFiYWJ4eXoKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhOmF4eXoKICAgIGFiOmFieHl6CgovKD8nYWJjJ1x3Kyk6XGd7YWJjfXsyfS8KICAgIGE6YWF4eXoKICAgIGFiOmFiYWJ4eXoKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhOmF4eXoKICAgIGFiOmFieHl6CgovXig/PGFiPmEpPyAoPyg8YWI+KWJ8YykgKD8oJ2FiJylkfGUpL3gKICAgIGFiZAogICAgY2UKCi9eKGEuKVxnLTFaLwogICAgYVhhWFoKCi9eKGEuKVxney0xfVovCiAgICBhWGFYWgoKL14oPyhERUZJTkUpICg/PEE+IGEpICg/PEI+IGIpICkgICg/JkEpICg/JkIpIC94CiAgICBhYmNkCgovKD88TkFNRT4oPyZOQU1FX1BBVCkpXHMrKD88QUREUj4oPyZBRERSRVNTX1BBVCkpCiAgKD8oREVGSU5FKQogICg/PE5BTUVfUEFUPlthLXpdKykKICAoPzxBRERSRVNTX1BBVD5cZCspCiAgKS94CiAgICBtZXRjYWxmZSAzMwoKLyg/KERFRklORSkoPzxieXRlPjJbMC00XVxkfDI1WzAtNV18MVxkXGR8WzEtOV0/XGQpKVxiKD8mYnl0ZSkoXC4oPyZieXRlKSl7M30vCiAgICAxLjIuMy40CiAgICAxMzEuMTExLjEwLjIwNgogICAgMTAuMC4wLjAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMC42CiAgICA0NTUuMy40LjUKCi9cYig/JmJ5dGUpKFwuKD8mYnl0ZSkpezN9KD8oREVGSU5FKSg/PGJ5dGU+MlswLTRdXGR8MjVbMC01XXwxXGRcZHxbMS05XT9cZCkpLwogICAgMS4yLjMuNAogICAgMTMxLjExMS4xMC4yMDYKICAgIDEwLjAuMC4wClw9IEV4cGVjdCBubyBtYXRjaAogICAgMTAuNgogICAgNDU1LjMuNC41CgovXihcdysrfFxzKyspKiQvCiAgICBub3cgaXMgdGhlIHRpbWUgZm9yIGFsbCBnb29kIG1lbiB0byBjb21lIHRvIHRoZSBhaWQgb2YgdGhlIHBhcnR5Clw9IEV4cGVjdCBubyBtYXRjaAogICAgdGhpcyBpcyBub3QgYSBsaW5lIHdpdGggb25seSB3b3JkcyBhbmQgc3BhY2VzIQoKLyhcZCsrKShcdykvCiAgICAxMjM0NWEKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjM0NSsKCi9hKytiLwogICAgYWFhYgoKLyhhKytiKS8KICAgIGFhYWIKCi8oYSsrKWIvCiAgICBhYWFiCgovKFteKCldKyt8XChbXigpXSpcKSkrLwogICAgKChhYmMoYWRlKXVmaCgpKCl4CgovXCgoW14oKV0rK3xcKFteKCldK1wpKStcKS8KICAgIChhYmMpCiAgICAoYWJjKGRlZil4eXopClw9IEV4cGVjdCBubyBtYXRjaAogICAgKCgoKWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhCgovXihbXigpXXxcKCg/MSkqXCkpKiQvCiAgICBhYmMKICAgIGEoYiljCiAgICBhKGIoYykpZApcPSBFeHBlY3Qgbm8gbWF0Y2gpCiAgICBhKGIoYylkCgovXj5hYmM+KFteKCldfFwoKD8xKSpcKSkqPHh5ejwkLwogICA+YWJjPjEyMzx4eXo8CiAgID5hYmM+MSgyKTM8eHl6PAogICA+YWJjPigxKDIpMyk8eHl6PAoKL14oPzooKC4pKD8xKVwyfCl8KCguKSg/MylcNHwuKSkkL2kKICAgIDEyMjEKICAgIFNhdGFub3NjaWxsYXRlbXltZXRhbGxpY3NvbmF0YXMKICAgIEFtYW5hcGxhbmFjYW5hbFBhbmFtYQogICAgQWJsZXdhc0llcmVJc2F3RWxiYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFRoZXF1aWNrYnJvd25mb3gKCi9eKFxkK3xcKCg/MSkoWysqLV0pKD8xKVwpfC0oPzEpKSQvCiAgICAxMgogICAgKCgoMisyKSotMyktNykKICAgIC0xMgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgICgoMisyKSotMyktNykKCi9eKHgoeXwoPzEpezJ9KXopLwogICAgeHl6CiAgICB4eHl6eHl6egpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHh4eXp6CiAgICB4eHl6eHl6eHl6egoKLygoPCAoPzogKD8oUikgXGQrKyAgfCBbXjw+XSorKSB8ICg/MikpICogPikpL3gKICAgIDw+CiAgICA8YWJjZD4KICAgIDxhYmMgPDEyMz4gaGlqPgogICAgPGFiYyA8ZGVmPiBoaWo+CiAgICA8YWJjPD5kZWY+CiAgICA8YWJjPD4KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICA8YWJjCgovXmErKCpGQUlMKS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYWEKICAgIAovYStiP2MrKCpGQUlMKS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFiY2NjCgovYStiPygqUFJVTkUpYysoKkZBSUwpLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWJjY2MKCi9hK2I/KCpDT01NSVQpYysoKkZBSUwpLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWJjY2MKICAgIAovYStiPygqU0tJUCljKygqRkFJTCkvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYmNjY2FhYWJjY2MKCi9eKD86YWFhKCpUSEVOKVx3ezZ9fGJiYigqVEhFTilcd3s1fXxjY2MoKlRIRU4pXHd7NH18XHd7M30pLwogICAgYWFheHh4eHh4CiAgICBhYWErKysrKysgCiAgICBiYmJ4eHh4eAogICAgYmJiKysrKysgCiAgICBjY2N4eHh4CiAgICBjY2MrKysrIAogICAgZGRkZGRkZGQgICAKCi9eKGFhYSgqVEhFTilcd3s2fXxiYmIoKlRIRU4pXHd7NX18Y2NjKCpUSEVOKVx3ezR9fFx3ezN9KS8KICAgIGFhYXh4eHh4eAogICAgYWFhKysrKysrIAogICAgYmJieHh4eHgKICAgIGJiYisrKysrIAogICAgY2NjeHh4eAogICAgY2NjKysrKyAKICAgIGRkZGRkZGRkICAgCgovYStiPygqVEhFTiljKygqRkFJTCkvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYmNjYwoKLyhBIChBfEIoKkFDQ0VQVCl8QykgRCkoRSkveAogICAgQUIKICAgIEFCWAogICAgQUFERQogICAgQUNERQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFEIAogICAgICAgIAovXlxXKisoPzooKC4pXFcqKyg/MSlcVyorXDJ8KXwoKC4pXFcqKyg/MylcVyorXDR8XFcqKy5cVyorKSlcVyorJC9pCiAgICAxMjIxCiAgICBTYXRhbiwgb3NjaWxsYXRlIG15IG1ldGFsbGljIHNvbmF0YXMhCiAgICBBIG1hbiwgYSBwbGFuLCBhIGNhbmFsOiBQYW5hbWEhCiAgICBBYmxlIHdhcyBJIGVyZSBJIHNhdyBFbGJhLgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFRoZSBxdWljayBicm93biBmb3gKCi9eKCguKSg/MSlcMnwuKSQvCiAgICBhCiAgICBhYmEKICAgIGFhYmFhICAKICAgIGFiY2RjYmEgCiAgICBwcWFhYmFhcXAgIAogICAgYWJsZXdhc2llcmVpc2F3ZWxiYQpcPSBFeHBlY3Qgbm8gbWF0Y2ggICAgIAogICAgcmh1YmFyYgogICAgdGhlIHF1aWNrIGJyb3duIGZveCAgCgovKGEpKD88PWIoPzEpKS8KICAgIGJhegpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGNheiAgCiAgICAKLyg/PD1iKD8xKSkoYSkvCiAgICB6YmFhegpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYSAgCiAgICAKLyg/PFg+YSkoPzw9Yig/JlgpKS8KICAgIGJhegoKL14oP3woYWJjKXwoZGVmKSlcMS8KICAgIGFiY2FiYwogICAgZGVmZGVmIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2RlZgogICAgZGVmYWJjICAgCiAgICAKL14oP3woYWJjKXwoZGVmKSkoPzEpLwogICAgYWJjYWJjCiAgICBkZWZhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBkZWZkZWYKICAgIGFiY2RlZiAgICAKCi8oPzphKD88cXVvdGU+ICg/PGFwb3N0cm9waGU+Jyl8KD88cmVhbHF1b3RlPiIpKSB8Yig/PHF1b3RlPiAoPzxhcG9zdHJvcGhlPicpfCg/PHJlYWxxdW90ZT4iKSkgKSAoPygncXVvdGUnKVthLXpdK3xbMC05XSspL3gsZHVwbmFtZXMKICAgIGFcImFhYWFhCiAgICBiXCJhYWFhYSAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYlwiMTExMTEKCi8oPzooPzEpfEIpKEEoKkYpfEMpLwogICAgQUJDRAogICAgQ0NEClw9IEV4cGVjdCBubyBtYXRjaAogICAgQ0FEICAgCgovXig/Oig/MSl8QikoQSgqRil8QykvCiAgICBDQ0QKICAgIEJDRCAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQkNECiAgICBDQUQKICAgIEJBRCAgICAKCi8oPzooPzEpfEIpKEEoKkFDQ0VQVClYWHxDKUQvCiAgICBBQUQKICAgIEFDRAogICAgQkFECiAgICBCQ0QKICAgIEJBWCAgClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUNYCiAgICBBQkMgICAKCi8oPyhERUZJTkUpKEEpKUIoPzEpQy8KICAgIEJBQwoKLyg/KERFRklORSkoKEEpXDIpKUIoPzEpQy8KICAgIEJBQUMKCi8oPzxwbj4gXCggKCBbXigpXSsrIHwgKD8mcG4pICkqIFwpICkveAogICAgKGFiKGNkKWVmKQoKL14oPz1hKCpTS0lQKWJ8YWMpLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFjCiAgICAKL14oPz1hKCpQUlVORSliKS8KICAgIGFiICAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYWMKCi9eKD89YSgqQUNDRVBUKWIpLwogICAgYWMKCi8oPz5hXEtiKS8KICAgIGFiCgovKCg/PmFcS2IpKS8KICAgIGFiCgovKGFcS2IpLwogICAgYWIKICAgIAovXmFcS2N6fGFjLwogICAgYWMKICAgIAovKD8+YVxLYnp8YWIpLwogICAgYWIgCgovXig/JnQpKD8oREVGSU5FKSg/PHQ+YVxLYikpJC8KICAgIGFiCgovXihbXigpXXxcKCg/MSkqXCkpKiQvCiAgICBhKGIpYwogICAgYShiKGMpZCllIAoKLyg/UDxMMT4oP1A8TDI+MCkoP1A+TDEpfCg/UD5MMikpLwogICAgMAogICAgMDAKICAgIDAwMDAgIAoKLyg/UDxMMT4oP1A8TDI+MCl8KD9QPkwyKSg/UD5MMSkpLwogICAgMAogICAgMDAKICAgIDAwMDAgIAoKIyBUaGlzIG9uZSBkb2VzIGZhaWwsIGFzIGV4cGVjdGVkLCBpbiBQZXJsLiBJdCBuZWVkcyB0aGUgY29tcGxleCBpdGVtIGF0IHRoZQojIGVuZCBvZiB0aGUgcGF0dGVybi4gQSBzaW5nbGUgbGV0dGVyIGluc3RlYWQgb2YgKEJ8RCkgbWFrZXMgaXQgbm90IGZhaWwsIHdoaWNoCiMgSSB0aGluayBpcyBhIFBlcmwgYnVnLgoKL0EoKkNPTU1JVCkoQnxEKS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQ0FCWAoKIyBDaGVjayB0aGUgdXNlIG9mIG5hbWVzIGZvciBmYWlsdXJlCgovXihBKCpQUlVORTpBKUJ8QygqUFJVTkU6QilEKS9tYXJrClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUMKICAgIENCICAgIAogICAgCi8oKk1BUks6QSkoKlNLSVA6QikoQ3xYKS9tYXJrCiAgICBDClw9IEV4cGVjdCBubyBtYXRjaAogICAgRAogICAgIAovXihBKCpUSEVOOkEpQnxDKCpUSEVOOkIpRCkvbWFyawpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIENCICAgIAoKL14oPzpBKCpUSEVOOkEpQnxDKCpUSEVOOkIpRCkvbWFyawpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIENCICAgIAogICAgCi9eKD8+QSgqVEhFTjpBKUJ8QygqVEhFTjpCKUQpL21hcmsKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBDQiAgICAKICAgIAojIFRoaXMgc2hvdWxkIHN1Y2NlZWQsIGFzIHRoZSBza2lwIGNhdXNlcyBidW1wIHRvIG9mZnNldCAxICh0aGUgbWFyaykuIE5vdGUKIyB0aGF0IHdlIGhhdmUgdG8gaGF2ZSBzb21ldGhpbmcgY29tcGxpY2F0ZWQgc3VjaCBhcyAoQnxaKSBhdCB0aGUgZW5kIGJlY2F1c2UsCiMgZm9yIFBlcmwsIGEgc2ltcGxlIGNoYXJhY3RlciBzb21laG93IGNhdXNlcyBhbiB1bndhbnRlZCBvcHRpbWl6YXRpb24gdG8gbWVzcwojIHdpdGggdGhlIGhhbmRsaW5nIG9mIGJhY2t0cmFja2luZyB2ZXJicy4KCi9BKCpNQVJLOkEpQSsoKlNLSVA6QSkoQnxaKSB8IEFDL3gsbWFyawogICAgQUFBQwogICAgCiMgVGVzdCBza2lwcGluZyBvdmVyIGEgbm9uLW1hdGNoaW5nIG1hcmsuCgovQSgqTUFSSzpBKUErKCpNQVJLOkIpKCpTS0lQOkEpKEJ8WikgfCBBQy94LG1hcmsKICAgIEFBQUMKICAgIAojIENoZWNrIHNob3J0aGFuZCBmb3IgTUFSSy4KCi9BKCo6QSlBKygqU0tJUDpBKShCfFopIHwgQUMveCxtYXJrCiAgICBBQUFDCgovKCo6QSlBKygqU0tJUDpBKShCfFopL21hcmsKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQUFDCgojIFRoaXMgc2hvdWxkIHN1Y2NlZWQsIGFzIGEgbm9uLWV4aXN0ZW50IHNraXAgbmFtZSBkaXNhYmxlcyB0aGUgc2tpcC4KCi9BKCpNQVJLOkEpQSsoKlNLSVA6QikoQnxaKSB8IEFDL3gsbWFyawogICAgQUFBQwoKL0EoKk1BUks6QSlBKygqU0tJUDpCKShCfFopIHwgQUMoKjpCKS94LG1hcmsKICAgIEFBQUMKCiMgQ09NTUlUIGF0IHRoZSBzdGFydCBvZiBhIHBhdHRlcm4gc2hvdWxkIGFjdCBsaWtlIGFuIGFuY2hvci4gQWdhaW4sIGhvd2V2ZXIsCiMgd2UgbmVlZCB0aGUgY29tcGxpY2F0aW9uIGZvciBQZXJsLgoKLygqQ09NTUlUKShBfFApKEJ8UCkoQ3xQKS8KICAgIEFCQ0RFRkcKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBERUZHQUJDICAKCiMgQ09NTUlUIGluc2lkZSBhbiBhdG9taWMgZ3JvdXAgY2FuJ3Qgc3RvcCBiYWNrdHJhY2tpbmcgb3ZlciB0aGUgZ3JvdXAuCgovKFx3KykoPz5iKCpDT01NSVQpKVx3ezJ9LwogICAgYWJiYgoKLyhcdyspYigqQ09NTUlUKVx3ezJ9LwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiYmIKCiMgQ2hlY2sgb3BlbmluZyBwYXJlbnMgaW4gY29tbWVudCB3aGVuIHNlZWtpbmcgZm9yd2FyZCByZWZlcmVuY2UuCgovKD8mdCkoPyMoKSg/KERFRklORSkoPzx0PmEpKS8KICAgIGJhYwoKIyBDT01NSVQgc2hvdWxkIG92ZXJyaWRlIFRIRU4uCgovKD8+KCpDT01NSVQpKD8+eWVzfG5vKSgqVEhFTikoKkYpKT8vClw9IEV4cGVjdCBubyBtYXRjaAogIHllcwoKLyg/PigqQ09NTUlUKSh5ZXN8bm8pKCpUSEVOKSgqRikpPy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgeWVzCgovYj8oKlNLSVApYy8KICAgIGJjCiAgICBhYmMKICAgCi8oKlNLSVApYmMvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYQoKLygqU0tJUCliLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGEgCgovKD9QPGFibj4oP1A9YWJuKXh4eHwpKy8KICAgIHh4eAoKLyg/aTooW15iXSkpKD8xKS8KICAgIGFhCiAgICBhQSAgICAgClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWIKICAgIGFCCiAgICBCYQogICAgYmEKCi9eKD8mdCkqKyg/KERFRklORSkoPzx0PmEpKVx3JC8KICAgIGFhYWFhYVgKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYWFhYWFhIAoKL14oPyZ0KSooPyhERUZJTkUpKD88dD5hKSlcdyQvCiAgICBhYWFhYWFYCiAgICBhYWFhYWEgCgovXihhKSorKFx3KS8KICAgIGFhYWFYCiAgICBZWiAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYWFhYQoKL14oPzphKSorKFx3KS8KICAgIGFhYWFYCiAgICBZWiAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYWFhYQoKL14oYSkrKyhcdykvCiAgICBhYWFhWApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYWFhCiAgICBZWiAKCi9eKD86YSkrKyhcdykvCiAgICBhYWFhWApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYWFhCiAgICBZWiAKCi9eKGEpPysoXHcpLwogICAgYWFhYVgKICAgIFlaIAoKL14oPzphKT8rKFx3KS8KICAgIGFhYWFYCiAgICBZWiAKCi9eKGEpezIsfSsoXHcpLwogICAgYWFhYVgKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWEKICAgIFlaIAoKL14oPzphKXsyLH0rKFx3KS8KICAgIGFhYWFYClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhCiAgICBZWiAKCi8oYXwpKig/MSliLwogICAgYgogICAgYWIKICAgIGFhYiAgCgovKGEpKysoPzEpYi8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYiAKICAgIGFhYgoKLyhhKSorKD8xKWIvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWIKICAgIGFhYiAgCgovKD8xKSg/OihiKSl7MH0vCiAgICBiCgovKGZvbyAoIFwoICgoPzooPz4gW14oKV0rICl8KD8yKSkqKSBcKSApICkveAogICAgZm9vKGJhcihiYXopK2Jheihib3ApKQoKLyhBIChBfEIoKkFDQ0VQVCl8QykgRCkoRSkveAogICAgQUIKCi9cQS4qPyhhfGJjKS8KICAgIGJhCgovXEEuKj8oPzphfGJjKSsrLwogICAgYmEKCi9cQS4qPyhhfGJjKSsrLwogICAgYmEKCi9cQS4qPyg/OmF8YmN8ZCkvCiAgICBiYQoKLyg/OihiKSkrKy8KICAgIGJlZXRsZQoKLyg/KD89KGEoKkFDQ0VQVCl6KSlhKS8KICAgIGEKCi9eKGEpKD8xKSthYi8KICAgIGFhYWFiCiAgICAKL14oYSkoPzEpKythYi8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYgoKL14oPz1hKCo6TSkpYVovbWFyawogICAgYVpiYwoKL14oPyEoKjpNKWIpYVovbWFyawogICAgYVpiYwoKLyg/KERFRklORSkoYSkpP2IoPzEpLwogICAgYmFja2dhbW1vbgoKL15cTisvCiAgICBhYmNcbmRlZgogICAgCi9eXE57MSx9LwogICAgYWJjXG5kZWYgCgovKD8oUilhK3woP1IpYikvCiAgICBhYWFhYmNkZQoKLyg/KFIpYSt8KCg/UikpYikvCiAgICBhYWFhYmNkZQoKLygoPyhSKWErfCg/MSliKSkvCiAgICBhYWFhYmNkZQoKLygoPyhSMSlhK3woPzEpYikpLwogICAgYWFhYWJjZGUKICAgIAovKCg/KFIpYXwoPzEpKSkqLwogICAgYWFhCgovKCg/KFIpYXwoPzEpKSkrLwogICAgYWFhIAoKL2EoKjphbnkgCm5hbWUpL21hcmsKICAgIGFiYwogICAgCi8oPz4oPyZ0KWN8KD8mdCkpKD8oREVGSU5FKSg/PHQ+YXxiKCpQUlVORSljKSkvCiAgICBhCiAgICBiYQogICAgYmJhIAogICAgCiMgQ2hlY2tpbmcgcmV2aXNlZCAoKlRIRU4pIGhhbmRsaW5nLgoKIyBDYXB0dXJlCgovXi4qPyAoYSgqVEhFTiliKSBjL3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWJjCgovXi4qPyAoYSgqVEhFTilifCgqRikpIGMveAogICAgYWFiYwoKL14uKj8gKCAoYSgqVEhFTiliKSB8ICgqRikgKSBjL3gKICAgIGFhYmMKCi9eLio/ICggKGEoKlRIRU4pYikgKSBjL3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWJjCgojIE5vbi1jYXB0dXJlCgovXi4qPyAoPzphKCpUSEVOKWIpIGMveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmMKCi9eLio/ICg/OmEoKlRIRU4pYnwoKkYpKSBjL3gKICAgIGFhYmMKCi9eLio/ICg/OiAoPzphKCpUSEVOKWIpIHwgKCpGKSApIGMveAogICAgYWFiYwoKL14uKj8gKD86ICg/OmEoKlRIRU4pYikgKSBjL3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWJjCgojIEF0b21pYwoKL14uKj8gKD8+YSgqVEhFTiliKSBjL3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWJjCgovXi4qPyAoPz5hKCpUSEVOKWJ8KCpGKSkgYy94CiAgICBhYWJjCgovXi4qPyAoPz4gKD8+YSgqVEhFTiliKSB8ICgqRikgKSBjL3gKICAgIGFhYmMKCi9eLio/ICg/PiAoPz5hKCpUSEVOKWIpICkgYy94Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiYwoKIyBQb3NzZXNzaXZlIGNhcHR1cmUKCi9eLio/IChhKCpUSEVOKWIpKysgYy94Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiYwoKL14uKj8gKGEoKlRIRU4pYnwoKkYpKSsrIGMveAogICAgYWFiYwoKL14uKj8gKCAoYSgqVEhFTiliKSsrIHwgKCpGKSApKysgYy94CiAgICBhYWJjCgovXi4qPyAoIChhKCpUSEVOKWIpKysgKSsrIGMveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmMKCiMgUG9zc2Vzc2l2ZSBub24tY2FwdHVyZQoKL14uKj8gKD86YSgqVEhFTiliKSsrIGMveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmMKCi9eLio/ICg/OmEoKlRIRU4pYnwoKkYpKSsrIGMveAogICAgYWFiYwoKL14uKj8gKD86ICg/OmEoKlRIRU4pYikrKyB8ICgqRikgKSsrIGMveAogICAgYWFiYwoKL14uKj8gKD86ICg/OmEoKlRIRU4pYikrKyApKysgYy94Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiYwogICAgCiMgQ29uZGl0aW9uIGFzc2VydGlvbgoKL14oPyg/PWEoKlRIRU4pYilhYnxhYykvCiAgICBhYwogCiMgQ29uZGl0aW9uCgovXi4qPyg/KD89YSlhfGIoKlRIRU4pYykvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYmEKCi9eLio/KD86KD8oPz1hKWF8YigqVEhFTiljKXxkKS8KICAgIGJhCgovXi4qPyg/KD89YSlhKCpUSEVOKWJ8YykvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWMKCiMgQXNzZXJ0aW9uCgovXi4qKD89YSgqVEhFTiliKS8KICAgIGFhYmMKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi8oPz5hKCo6bSkpL2ltc3gsbWFyawogICAgYQoKLyg/PihhKSgqOm0pKS9pbXN4LG1hcmsKICAgIGEKCi8oPzw9YSgqQUNDRVBUKWIpYy8KICAgIHhhY2QKCi8oPzw9KGEoKkFDQ0VQVCliKSljLwogICAgeGFjZAoKLyg/PD0oYSgqQ09NTUlUKWIpKWMvCiAgICB4YWJjZApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICB4YWNkCiAgICAKLyg/PCFhKCpGQUlMKWIpYy8KICAgIHhjZAogICAgYWNkIAoKLyg/PD1hKCo6TiliKWMvbWFyawogICAgeGFiY2QKICAgIAovKD88PWEoKlBSVU5FKWIpYy8KICAgIHhhYmNkIAoKLyg/PD1hKCpTS0lQKWIpYy8KICAgIHhhYmNkIAoKLyg/PD1hKCpUSEVOKWIpYy8KICAgIHhhYmNkIAoKLyhhKSg/Mil7Mn0oLikvCiAgICBhYmNkCgovKCpNQVJLOkEpKCpQUlVORTpCKShDfFgpL21hcmsKICAgIEMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBEIAoKLygqTUFSSzpBKSgqUFJVTkU6QikoQ3xYKS9tYXJrCiAgICBDClw9IEV4cGVjdCBubyBtYXRjaAogICAgRCAKCi8oKk1BUks6QSkoKlRIRU46QikoQ3xYKS9tYXJrCiAgICBDClw9IEV4cGVjdCBubyBtYXRjaAogICAgRCAKCi8oKk1BUks6QSkoKlRIRU46QikoQ3xYKS9tYXJrLG5vX3N0YXJ0X29wdGltaXplCiAgICBDClw9IEV4cGVjdCBubyBtYXRjaAogICAgRCAKCi8oKk1BUks6QSkoKlRIRU46QikoQ3xYKS9tYXJrCiAgICBDClw9IEV4cGVjdCBubyBtYXRjaAogICAgRCAKCiMgVGhpcyBzaG91bGQgZmFpbCwgYXMgdGhlIHNraXAgY2F1c2VzIGEgYnVtcCB0byBvZmZzZXQgMyAodGhlIHNraXApLgoKL0EoKk1BUks6QSlBKygqU0tJUCkoQnxaKSB8IEFDL3gsbWFyawpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFBQUMKCiMgU2FtZSAKCi9BKCpNQVJLOkEpQSsoKk1BUks6QikoKlNLSVA6QikoQnxaKSB8IEFDL3gsbWFyawpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFBQUMKCi9BKCo6QSlBKygqU0tJUCkoQnxaKSB8IEFDL3gsbWFyawpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFBQUMKCiMgVGhpcyBzaG91bGQgZmFpbCwgYXMgYSBudWxsIG5hbWUgaXMgdGhlIHNhbWUgYXMgbm8gbmFtZS4KCi9BKCpNQVJLOkEpQSsoKlNLSVA6KShCfFopIHwgQUMveCxtYXJrClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUFBQwoKIyBBIGNoZWNrIG9uIHdoYXQgaGFwcGVucyBhZnRlciBoaXR0aW5nIGEgbWFyayBhbmQgdGhlbSBidW1waW5nIGFsb25nIHRvCiMgc29tZXRoaW5nIHRoYXQgZG9lcyBub3QgZXZlbiBzdGFydC4gUGVybCByZXBvcnRzIHRhZ3MgYWZ0ZXIgdGhlIGZhaWx1cmVzCiMgaGVyZSwgdGhvdWdoIGl0IGRvZXMgbm90IHdoZW4gdGhlIGluZGl2aWR1YWwgbGV0dGVycyBhcmUgbWFkZSBpbnRvIHNvbWV0aGluZwojIG1vcmUgY29tcGxpY2F0ZWQuCgovQSgqOkEpQnxYWCgqOkIpWS9tYXJrCiAgICBBQUJDCiAgICBYWFlaIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFhBUVEgIAogICAgWEFRUVhaWiAgCiAgICBBWFFRUSAKICAgIEFYWFFRUSAKICAgIAovXihBKCpUSEVOOkEpQnxDKCpUSEVOOkIpRCkvbWFyawogICAgQUIKICAgIENEClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUMKICAgIENCICAgIAogICAgCi9eKEEoKlBSVU5FOkEpQnxDKCpQUlVORTpCKUQpL21hcmsKICAgIEFCCiAgICBDRApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFDCiAgICBDQiAgICAKICAgIAojIEFuIGVtcHR5IG5hbWUgZG9lcyBub3QgcGFzcyBiYWNrIGFuIGVtcHR5IHN0cmluZy4gSXQgaXMgdGhlIHNhbWUgYXMgaWYgbm8KIyBuYW1lIHdlcmUgZ2l2ZW4uCgovXihBKCpQUlVORTopQnxDKCpQUlVORTpCKUQpL21hcmsKICAgIEFCCiAgICBDRCAKCiMgUFJVTkUgZ29lcyB0byBuZXh0IGJ1bXBhbG9uZzsgQ09NTUlUIGRvZXMgbm90LgogICAgCi9BKCpQUlVORTpBKUIvbWFyawogICAgQUNBQgoKIyBNYXJrIG5hbWVzIGNhbiBiZSBkdXBsaWNhdGVkLgoKL0EoKjpBKUJ8WCgqOkEpWS9tYXJrCiAgICBBQUJDCiAgICBYWFlaIAogICAgCi9iKCo6bSlmfGEoKjpuKXcvbWFyawogICAgYXcgClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIGFiYwoKL2IoKjptKWZ8YXcvbWFyawogICAgYWJhdwpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYmMKICAgIGFiYXggCgovQSgqTUFSSzpBKUErKCpTS0lQOkIpKEJ8WikgfCBBQUMveCxtYXJrCiAgICBBQUFDCgovYSgqUFJVTkU6WCliY3xxcS9tYXJrLG5vX3N0YXJ0X29wdGltaXplClw9IEV4cGVjdCBubyBtYXRjaAogICAgYXh5CgovYSgqVEhFTjpYKWJjfHFxL21hcmssbm9fc3RhcnRfb3B0aW1pemUKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBheHkKCi8oPz1hKCpNQVJLOkEpYikuLngvbWFyawogICAgYWJ4eQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFicHEgIAoKLyg/PWEoKk1BUks6QSliKS4uKCo6WSl4L21hcmsKICAgIGFieHkKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYnBxICAKCi8oPz1hKCpQUlVORTpBKWIpLi54L21hcmsKICAgIGFieHkKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYnBxICAKCi8oPz1hKCpQUlVORTpBKWIpLi4oKjpZKXgvbWFyawogICAgYWJ4eQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFicHEgIAoKLyg/PWEoKlRIRU46QSliKS4ueC9tYXJrCiAgICBhYnh5Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJwcSAgCgovKD89YSgqVEhFTjpBKWIpLi4oKjpZKXgvbWFyawogICAgYWJ4eQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFicHEgIAoKLyhhbm90aGVyKT8oXDE/KXRlc3QvCiAgICBoZWxsbyB3b3JsZCB0ZXN0CgovKGFub3RoZXIpPyhcMSspdGVzdC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBoZWxsbyB3b3JsZCB0ZXN0CgovKGEoKkNPTU1JVCliKXswfWEoPzEpfGFhYy8KICAgIGFhYwoKLygoPzphPykqKSpjLwogICAgYWFjICAgCgovKCg/PmE/KSopKmMvCiAgICBhYWMgICAKCi8oPz4uKj9hKSg/PD1iYSkvCiAgICBhYmEKCi8oPzouKj9hKSg/PD1iYSkvCiAgICBhYmEKCi8oPz4uKj9hKWIvcwogICAgYWFiCgovKD8+Lio/YSliLwogICAgYWFiCgovKD8+XmEpYi9zClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiCgovKD8+Lio/KSg/PD0oYWJjZCl8KHd4eXopKS8KICAgIGFscGhhYmV0YWJjZAogICAgZW5kaW5nd3h5eiAKCi8oPz4uKikoPzw9KGFiY2QpfCh3eHl6KSkvCiAgICBhbHBoYWJldGFiY2QKICAgIGVuZGluZ3d4eXogCgoiKD8+LiopZm9vIgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2Rmb294eXoKICAgIAoiKD8+Lio/KWZvbyIKICAgIGFiY2Rmb294eXoKCi8oPzooYSgqUFJVTkUpYikpezB9KD86KD8xKXxhYykvCiAgICBhYwogICAgCi8oPzooYSgqU0tJUCliKSl7MH0oPzooPzEpfGFjKS8KICAgIGFjIAoKLyg/PD0oKlNLSVApYWMpYS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYQoKL0EoKk1BUks6QSlBKygqU0tJUDpCKShCfFopIHwgQUMveCxtYXJrCiAgICBBQUFDCgovYSgqU0tJUDptKXh8YWMoKjpuKSgqU0tJUDpuKWR8YWMvbWFyawogICAgYWNhY2QKCi9BKCpTS0lQOm0peHxBKCpTS0lQOm4peHxBQi9tYXJrCiAgICBBQgoKLygoKlNLSVA6cilkKXswfWEoKlNLSVA6bSl4fGFjKCo6bil8YWMvbWFyawogICAgYWNhY2QKCiMgVGVzdHMgdGhhdCB0cnkgdG8gZmlndXJlIG91dCBob3cgUGVybCB3b3Jrcy4gTXkgaHlwb3RoZXNpcyBpcyB0aGF0IHRoZSBmaXJzdAojIHZlcmIgdGhhdCBpcyBiYWNrdHJhY2tlZCBvbnRvIGlzIHRoZSBvbmUgdGhhdCBhY3RzLiBUaGlzIHNlZW1zIHRvIGJlIHRoZSBjYXNlCiMgYWxtb3N0IGFsbCB0aGUgdGltZSwgYnV0IHRoZXJlIGlzIG9uZSBleGNlcHRpb24gdGhhdCBpcyBwZXJoYXBzIGEgYnVnLgoKIyBUaGlzIG1hdGNoZXMgImFhYWFjIjsgZWFjaCBQUlVORSBhZHZhbmNlcyBvbmUgY2hhcmFjdGVyIHVudGlsIHRoZSBzdWJqZWN0IG5vCiMgbG9uZ2VyIHN0YXJ0cyB3aXRoIDUgJ2Ency4KCi9hYWFhYSgqUFJVTkUpYnxhK2MvCiAgICBhYWFhYWFjCgojIFB1dHRpbmcgU0tJUCBpbiBmcm9udCBvZiBQUlVORSBtYWtlcyBubyBkaWZmZXJlbmNlLCBhcyBpdCBpcyBuZXZlcgojIGJhY2t0cmFja2VkIG9udG8sIHdoZXRoZXIgb3Igbm90IGl0IGhhcyBhIGxhYmVsLgoKL2FhYWFhKCpTS0lQKSgqUFJVTkUpYnxhK2MvCiAgICBhYWFhYWFjCgovYWFhYWEoKlNLSVA6TikoKlBSVU5FKWJ8YStjLwogICAgYWFhYWFhYwoKL2FhYWEoKjpOKWEoKlNLSVA6TikoKlBSVU5FKWJ8YStjLwogICAgYWFhYWFhYwoKIyBQdXR0aW5nIFRIRU4gaW4gZnJvbnQgbWFrZXMgbm8gZGlmZmVyZW5jZS4KICAgIAovYWFhYWEoKlRIRU4pKCpQUlVORSlifGErYy8KICAgIGFhYWFhYWMKIAojIEhvd2V2ZXIsIHB1dHRpbmcgQ09NTUlUIGluIGZyb250IG9mIHRoZSBwcnVuZSBjaGFuZ2VzIGl0IHRvICJubyBtYXRjaCIuIEkgCiMgdGhpbmsgdGhpcyBpcyBpbmNvbnNpc3RlbnQgYW5kIHBvc3NpYmx5IGEgYnVnLiBGb3IgdGhlIG1vbWVudCwgcnVubmluZyB0aGlzCiMgdGVzdCBpcyBtb3ZlZCBvdXQgb2YgdGhlIFBlcmwtY29tcGF0aWJsZSBmaWxlLiAKCi9hYWFhYSgqQ09NTUlUKSgqUFJVTkUpYnxhK2MvCiAgICAKIyBPSywgbGV0cyBwbGF5IHRoZSBzYW1lIGdhbWUgYWdhaW4gdXNpbmcgU0tJUCBpbnN0ZWFkIG9mIFBSVU5FLgoKIyBUaGlzIG1hdGNoZXMgImFjIiBiZWNhdXNlIFNLSVAgZm9yY2VzIHRoZSBuZXh0IG1hdGNoIHRvIHN0YXJ0IG9uIHRoZQojIHNpeHRoICJhIi4gCgovYWFhYWEoKlNLSVApYnxhK2MvCiAgICBhYWFhYWFjCiAKIyBQdXR0aW5nIFBSVU5FIGluIGZyb250IG1ha2VzIG5vIGRpZmZlcmVuY2UuIAoKL2FhYWFhKCpQUlVORSkoKlNLSVApYnxhK2MvCiAgICBhYWFhYWFjCgojIFB1dHRpbmcgVEhFTiBpbiBmcm9udCBtYWtlcyBubyBkaWZmZXJlbmNlLiAKCi9hYWFhYSgqVEhFTikoKlNLSVApYnxhK2MvCiAgICBhYWFhYWFjCgojIEluIHRoaXMgY2FzZSwgbmVpdGhlciBkb2VzIENPTU1JVC4gVGhpcyBzdGlsbCBtYXRjaGVzICJhYyIuIAoKL2FhYWFhKCpDT01NSVQpKCpTS0lQKWJ8YStjLwogICAgYWFhYWFhYwogICAgCiMgVGhpcyBnaXZlcyAibm8gbWF0Y2giLCBhcyBleHBlY3RlZC4gCgovYWFhYWEoKkNPTU1JVClifGErYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYWFjCgojIC0tLS0gVGVzdHMgdXNpbmcgVEhFTiAtLS0tCgojIFRoaXMgbWF0Y2hlcyAiYWFhYWFhYyIsIGFzIGV4cGVjdGVkLiAKCi9hYWFhYSgqVEhFTilifGErYy8KICAgIGFhYWFhYWMKCiMgUHV0dGluZyBTS0lQIGluIGZyb250IG1ha2VzIG5vIGRpZmZlcmVuY2UuIAoKL2FhYWFhKCpTS0lQKSgqVEhFTilifGErYy8KICAgIGFhYWFhYWMKICAgIAojIFB1dHRpbmcgUFJVTkUgaW4gZnJvbnQgbWFrZXMgbm8gZGlmZmVyZW5jZS4gCgovYWFhYWEoKlBSVU5FKSgqVEhFTilifGErYy8KICAgIGFhYWFhYWMKICAgIAojIFB1dHRpbmcgQ09NTUlUIGluIGZyb250IG1ha2VzIG5vIGRpZmZlcmVuY2UuIAoKL2FhYWFhKCpDT01NSVQpKCpUSEVOKWJ8YStjLwogICAgYWFhYWFhYwogICAgCiMgRW5kIG9mICJwcmlvcml0eSIgdGVzdHMgIAoKL2FhYWFhKCo6bSkoKlBSVU5FOm0pKCpTS0lQOm0pbXxhKy8KICAgIGFhYWFhYQoKL2FhYWFhKCo6bSkoKk1BUks6bSkoKlBSVU5FKSgqU0tJUDptKW18YSsvCiAgICBhYWFhYWEKCi9hYWFhYSgqOm4pKCpQUlVORTptKSgqU0tJUDptKW18YSsvCiAgICBhYWFhYWEKCi9hYWFhYSgqOm4pKCpNQVJLOm0pKCpQUlVORSkoKlNLSVA6bSltfGErLwogICAgYWFhYWFhCgovYSgqTUFSSzpBKWFhKCpQUlVORTpBKWEoKlNLSVA6QSlifGErYy8KICAgIGFhYWFjCgovYSgqTUFSSzpBKWFhKCpNQVJLOkEpYSgqU0tJUDpBKWJ8YStjLwogICAgYWFhYWMKCi9hYWEoKlBSVU5FOkEpYSgqU0tJUDpBKWJ8YStjLwogICAgYWFhYWMKCi9hYWEoKk1BUks6QSlhKCpTS0lQOkEpYnxhK2MvCiAgICBhYWFhYwoKL2EoKjptKWEoKkNPTU1JVCkoKlNLSVA6bSlifGErYy9tYXJrCiAgICBhYWFhYWFjCgovLj8oYXxiKCpUSEVOKWMpLwogICAgYmEKCi8oYSgqQ09NTUlUKWIpY3xhYmQvCiAgICBhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmQKCi8oPz1hKCpDT01NSVQpYilhYmN8YWJkLwogICAgYWJjCiAgICBhYmQKCi8oPz5hKCpDT01NSVQpYiljfGFiZC8KICAgIGFiYwogICAgYWJkCgovYSg/PWIoKkNPTU1JVCljKVteZF18YWJkLwogICAgYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJkCgovYSg/PWJjKS58YWJkLwogICAgYWJkCiAgICBhYmMgCiAgICAKL2EoPz5iKCpDT01NSVQpYylkfGFiZC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNlYWJkIAoKL2EoPz5iYylkfGFiZC8KICAgIGFiY2VhYmQgCgovKD8+YSgqQ09NTUlUKWIpY3xhYmQvCiAgICBhYmQKCi8oPz5hKCpDT01NSVQpYylkfGFiZC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmQKCi8oKD89YSgqQ09NTUlUKWIpYWJ8YWMpezB9KD86KD8xKXxhKGMpKS8KICAgIGFjIAogICAgCiMgVGhlc2UgdGVzdHMgd2VyZSBmb3JtZXJseSBpbiB0ZXN0IDIsIGJ1dCBjaGFuZ2VzIGluIFBDUkUgYW5kIFBlcmwgaGF2ZQojIG1hZGUgdGhlbSBjb21wYXRpYmxlLiAKICAgIAovXihhKT8oPygxKWF8YikrJC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhCgovKD89YVxLYilhYi8KICAgIGFiIAoKLyg/IWFcS2IpYWMvCiAgICBhYyAKICAgIAovXmFiYyg/PD1iXEtjKWQvCiAgICBhYmNkCgovXmFiYyg/PCFiXEtxKWQvCiAgICBhYmNkCgovQSgqUFJVTkU6QSlBKygqU0tJUDpBKShCfFopIHwgQUMveCxtYXJrClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUFBQwoKL14oKGFiY3xhYmN4KSgqVEhFTil5fGFiY2QpLwogICAgYWJjZApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYmN4eSAKICAgIAovXigoeWVzfG5vKSgqVEhFTikoKkYpKT8vClw9IEV4cGVjdCBubyBtYXRjaAogICAgeWVzCgovKEEgKC4qKSAgIEM/ICgqVEhFTikgIHwgQSBEKSAoKkZBSUwpL3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBYmNkQ0JlZmdCaGlCcXoKCi8oQSAoLiopICAgQz8gKCpUSEVOKSAgfCBBIEQpIHoveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICBDPyAoKlRIRU4pICB8IEEgRCkgXHMqICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICBDPyAoKlRIRU4pICB8IEEgRCkgXHMqIHoveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICAoPzpDfCkgKCpUSEVOKSAgfCBBIEQpICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICAoPzpDfCkgKCpUSEVOKSAgfCBBIEQpIHoveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICBDezAsNn0gKCpUSEVOKSAgfCBBIEQpICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICBDezAsNn0gKCpUSEVOKSAgfCBBIEQpIHoveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICAoQ0UpezAsNn0gKCpUSEVOKSAgfCBBIEQpICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDRUJlZmdCaGlCcXoKCi8oQSAoLiopICAgKENFKXswLDZ9ICgqVEhFTikgIHwgQSBEKSB6L3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBYmNkQ0VCZWZnQmhpQnF6CgovKEEgKC4qKSAgIChDRSopezAsNn0gKCpUSEVOKSAgfCBBIEQpICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICAoQ0UqKXswLDZ9ICgqVEhFTikgIHwgQSBEKSB6L3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBYmNkQ0JlZmdCaGlCcXoKCi8oPz1hKCpDT01NSVQpYnxhYylhY3xhYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYwoKLyg/PWEoKkNPTU1JVClifChhYykpIGFjIHwgKGEpYy94Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWMKCiMgLS0tLQoKLyg/KD8hYigqVEhFTilhKWJufGJubikvCiAgICBibm4gCgovKD8hYigqU0tJUClhKWJufGJubi8KICAgIGJubgogICAgCi8oPyg/IWIoKlNLSVApYSlibnxibm4pLwogICAgYm5uIAoKLyg/IWIoKlBSVU5FKWEpYm58Ym5uLwogICAgYm5uCiAgICAKLyg/KD8hYigqUFJVTkUpYSlibnxibm4pLwogICAgYm5uIAogICAKLyg/IWIoKkNPTU1JVClhKWJufGJubi8KICAgIGJubgogICAgCi8oPyg/IWIoKkNPTU1JVClhKWJufGJubikvCiAgIGJubiAKCi8oPz1iKCpTS0lQKWEpYm58Ym5uLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJubgoKLyg/PWIoKlRIRU4pYSlibnxibm4vCiAgICBibm4KICAgIAovXig/IWEoKlNLSVApYikvCiAgICBhYwoKL14oPyFhKCpTS0lQKWIpLi4vCiAgICBhY2QKCi8oPyFhKCpTS0lQKWIpLi4vCiAgICBhY2QKCi9eKD8oPyFhKCpTS0lQKWIpKS8KICAgIGFjCgovXig/IWEoKlBSVU5FKWIpLi4vCiAgICBhY2QKCi8oPyFhKCpQUlVORSliKS4uLwogICAgYWNkCgovKD8hYSgqQ09NTUlUKWIpYWN8Y2QvCiAgICBhYwoKL1xBLio/KD86YXxiYykvCiAgICBiYQoKL14oQSgqVEhFTilCfEMoKlRIRU4pRCkvCiAgICBDRCAgICAgICAgICAgCgovKCo6bShtKSg/JnkpKD8oREVGSU5FKSg/PHk+YikpL21hcmsKICAgIGFiYwoKLygqUFJVTkU6bShtKSg/JnkpKD8oREVGSU5FKSg/PHk+YikpL21hcmsKICAgIGFiYwoKLygqU0tJUDptKG0pKD8meSkoPyhERUZJTkUpKD88eT5iKSkvbWFyawogICAgYWJjCgovKCpUSEVOOm0obSkoPyZ5KSg/KERFRklORSkoPzx5PmIpKS9tYXJrCiAgICBhYmMKCi9eXGQqXHd7NH0vCiAgICAxMjM0Clw9IEV4cGVjdCBubyBtYXRjaAogICAgMTIzIAoKL15bXmJdKlx3ezR9LwogICAgYWFhYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYSAgICAgCgovXlteYl0qXHd7NH0vaQogICAgYWFhYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYSAgICAgCgovXmEqXHd7NH0vCiAgICBhYWFhClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhICAgICAKCi9eYSpcd3s0fS9pCiAgICBhYWFhClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhICAgICAKCi8oPzooPzxuPmZvbyl8KD88bj5iYXIpKVxrPG4+L2R1cG5hbWVzCiAgICBmb29mb28KICAgIGJhcmJhcgoKLyg/PG4+QSkoPzooPzxuPmZvbyl8KD88bj5iYXIpKVxrPG4+L2R1cG5hbWVzCiAgICBBZm9vQQogICAgQWJhckEgIApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBBZm9vZm9vCiAgICBBYmFyYmFyCgovXihcZCspXHMrSU5ccytTT0FccysoXFMrKVxzKyhcUyspXHMqXChccyokLwogICAgMSBJTiBTT0Egbm9uLXNwMSBub24tc3AyKAoKL14gKD86KD88QT5BKXwoPydCJ0IpKD88QT5BKSkgKD8oJ0EnKXgpICg/KDxCPil5KSQveCxkdXBuYW1lcwogICAgQXgKICAgIEJBeHkgCiAgICAKL15BXHhaLwogICAgQVwwWiAKCi9eQVxvezEyM31CLwogICAgQVwxMjNCCgovIF4gYSArICsgYiAkIC94CiAgICBhYWFhYgogICAgCi8gXiBhICsgI2NvbW1lbnQKICArIGIgJCAveAogICAgYWFhYWIKICAgIAovIF4gYSArICNjb21tZW50CiAgI2NvbW1lbnQKICArIGIgJCAveAogICAgYWFhYWIKICAgIAovIF4gKD8+IGEgKyApIGIgJCAveAogICAgYWFhYWIgCgovIF4gKCBhICsgKSArICsgXHcgJCAveAogICAgYWFhYWIgCgovKD86YVxLYikqKy9hZnRlcnRleHQKICAgIGFiYWJjCgovKD8+YVxLYikqL2FmdGVydGV4dAogICAgYWJhYmMKCi8oPzphXEtiKSovYWZ0ZXJ0ZXh0CiAgICBhYmFiYwoKLyhhXEtiKSorL2FmdGVydGV4dAogICAgYWJhYmMKCi8oYVxLYikqL2FmdGVydGV4dAogICAgYWJhYmMKCi8oPzp4fCg/Oih4eHx5eSkrfHh8eHx4fHh8eCl8YXxhfGEpYmMvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWNiCgonXEEoPzpbXlwiXSsrfFwiKD86W15cIl0qK3xcIlwiKSorXCIpKysnCiAgICBOT04gUVVPVEVEIFwiUVVPVFwiXCJFRFwiIEFGVEVSIFwiTk9UIE1BVENIRUQKCidcQSg/OlteXCJdKyt8XCIoPzpbXlwiXSsrfFwiXCIpKitcIikrKycKICAgIE5PTiBRVU9URUQgXCJRVU9UXCJcIkVEXCIgQUZURVIgXCJOT1QgTUFUQ0hFRAoKJ1xBKD86W15cIl0rK3xcIig/OlteXCJdKyt8XCJcIikrK1wiKSsrJwogICAgTk9OIFFVT1RFRCBcIlFVT1RcIlwiRURcIiBBRlRFUiBcIk5PVCBNQVRDSEVECgonXEEoW15cIjFdKyt8W1wiMl0oW15cIjNdKit8W1wiNF1bXCI1XSkqK1tcIjZdKSsrJwogICAgTk9OIFFVT1RFRCBcIlFVT1RcIlwiRURcIiBBRlRFUiBcIk5PVCBNQVRDSEVECgovXlx3Kyg/PlxzKikoPzw9XHcpLwogICAgdGVzdCB0ZXN0CgovKD9QPHNhbWU+YSkoP1A8c2FtZT5iKS9nLGR1cG5hbWVzCiAgICBhYmJhYmEKCi8oP1A8c2FtZT5hKSg/UDxzYW1lPmIpKD9QPXNhbWUpL2csZHVwbmFtZXMKICAgIGFiYmFiYQoKLyg/UD1zYW1lKT8oP1A8c2FtZT5hKSg/UDxzYW1lPmIpL2csZHVwbmFtZXMKICAgIGFiYmFiYQoKLyg/Oig/UD1zYW1lKT8oPzooP1A8c2FtZT5hKXwoP1A8c2FtZT5iKSkoP1A9c2FtZSkpKy9nLGR1cG5hbWVzCiAgICBiYmJhYWFiYWFiYgoKLyg/Oig/UD1zYW1lKT8oPzooP1A9c2FtZSkoP1A8c2FtZT5hKSg/UD1zYW1lKXwoP1A9c2FtZSk/KD9QPHNhbWU+YikoP1A9c2FtZSkpezJ9KD9QPXNhbWUpKD9QPHNhbWU+YykoP1A9c2FtZSkpezJ9KD9QPHNhbWU+eik/L2csZHVwbmFtZXMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYmJhYWFjY2NjYWFhYmJiY2MKCi8oP1A8TmFtZT5hKT8oP1A8TmFtZTI+Yik/KD8oPE5hbWU+KWN8ZCkqbC8KICAgIGFjbAogICAgYmRsCiAgICBhZGwKICAgIGJjbCAgICAKCi9cc2FiYy8KICAgIFx4ezBifWFiYwoKL1tcUWFdXEVdKy8KICAgIGFhXV0KCi9bXFFdYVxFXSsvCiAgICBhYV1dCgovQSgoKCgoKCgoYSkpKSkpKSkpXDhCLyAKICAgIEFhYUIKCi9BKCgoKCgoKCgoYSkpKSkpKSkpKVw5Qi8gCiAgICBBYWFCCiAgICAKL0FbXDhcOV1CLwogICAgQThCCiAgICBBOUIgIAoKLyh8YWIpKj9kLwogICBhYmQKICAgeHlkIAoKLyg/OigoYWJjZCkpfCgoKD86KD86KD86KD86YWJjfCg/OmFiY2RlZikpKSliKWFiY2RlZmdoaSlhYmMpfCgoKkFDQ0VQVCkpKS8KICAgIDEyMzRhYmNkCgovKFwyfGEpKFwxKS8KICAgIGFhYQoKLyhcMikoXDEpLwoKIloqKHxkKil7MjE2fSIKCiIoPzEpKD8jPycpezh9KGEpIgogICAgYmFhYWFhYWFhYWMKCi8oKCgoKCgoKCgoKCh4KSkpKSkpKSkpKSkpXDEyLwogICAgeHgKCi9BW1w4XUJbXDldQy8KICAgIEE4QjlDCgovKD8xKSgpKCgoKCgoXDErKykpXHg4NSkrKXwpKS8KICAgIFx4ODVceDg1CgoiKD98KFxrJ1BtJyl8KD8nUG0nKSkiCiAgICBhYmNkCgovKD98KGFhYSl8KGIpKVxnezF9LwogICAgYWFhYWFhCiAgICBiYiAKCi8oP3woYWFhKXwoYikpKD8xKS8KICAgIGFhYWFhYQogICAgYmFhYSAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYmIgCgovKD98KGFhYSl8KGIpKS8KICAgIHhhYWEKICAgIHhiYyAKCi8oP3woPydhJ2FhYSl8KD8nYSdiKSlcaydhJy8KICAgIGFhYWFhYQogICAgYmIgCgovKD98KD8nYSdhYWEpfCg/J2EnYikpKD8nYSdjY2NjKVxrJ2EnL2R1cG5hbWVzCiAgICBhYWFjY2NjYWFhCiAgICBiY2NjY2IgCgojIEVuZCBvZiB0ZXN0aW5wdXQxIAo=