L3RoZSBxdWljayBicm93biBmb3gvCiAgICB0aGUgcXVpY2sgYnJvd24gZm94CiAgICBUaGUgcXVpY2sgYnJvd24gRk9YCiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IHRoZSBxdWljayBicm93biBmb3g/CiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IFRIRSBRVUlDSyBCUk9XTiBGT1g/CgovVGhlIHF1aWNrIGJyb3duIGZveC9pCiAgICB0aGUgcXVpY2sgYnJvd24gZm94CiAgICBUaGUgcXVpY2sgYnJvd24gRk9YCiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IHRoZSBxdWljayBicm93biBmb3g/CiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IFRIRSBRVUlDSyBCUk9XTiBGT1g/CgovYWJjZFx0XG5cclxmXGFcZVwwNzFceDNiXCRcXFw/Y2F4eXovCiAgICBhYmNkXHRcblxyXGZcYVxlOTtcJFxcP2NheHl6CgovYSphYmM/eHl6K3BxcnszfWFiezIsfXh5ezQsNX1wcXswLDZ9QUJ7MCx9enovCiAgICBhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWJ4eXpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYWJ4eXpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFiY3h5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFiY3h5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cEF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFhYWJjeHl6cHFycnJhYmJ4eXl5eXBxcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcXFBenoKICAgIGFhYWJjeHl6cHFycnJhYmJ4eXl5eXBxcXFxcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcXFxcUF6egogICAgYWFhYWJjeHl6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYnh5enpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFhYnh5enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFieHl6enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFhYnh5enp6enBxcnJyYWJieHl5eXlwcUF6egogICAgYWJjeHl6enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFiY3h5enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFiY3h5enp6enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYWJjeHl6enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFhYmN4eXp6enpwcXJycmFiYmJ4eXl5eXBxQXp6CiAgICBhYWFhYmN4eXp6enpwcXJycmFiYmJ4eXl5eXlwcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cEFCenoKICAgIGFhYWJjeHl6cHFycnJhYmJ4eXl5eXBBQkJ6egogICAgPj4+YWFhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgPmFhYWFieHl6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICA+Pj4+YWJjeHl6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICAqKiogRmFpbGVycwogICAgYWJ4eXpwcXJyYWJieHl5eXlwcUF6egogICAgYWJ4eXpwcXJycnJhYmJ4eXl5eXBxQXp6CiAgICBhYnh5enBxcnJyYWJ4eXl5eXBxQXp6CiAgICBhYWFhYmN4eXp6enpwcXJycmFiYmJ4eXl5eXl5cHFBenoKICAgIGFhYWFiY3h5enp6enBxcnJyYWJiYnh5eXlwcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcXFxcXFBenoKCi9eKGFiYyl7MSwyfXp6LwogICAgYWJjenoKICAgIGFiY2FiY3p6CiAgICAqKiogRmFpbGVycwogICAgenoKICAgIGFiY2FiY2FiY3p6CiAgICA+PmFiY3p6CgovXihiKz98YSl7MSwyfT9jLwogICAgYmMKICAgIGJiYwogICAgYmJiYwogICAgYmFjCiAgICBiYmFjCiAgICBhYWMKICAgIGFiYmJiYmJiYmJiYmMKICAgIGJiYmJiYmJiYmJiYWMKICAgICoqKiBGYWlsZXJzCiAgICBhYWFjCiAgICBhYmJiYmJiYmJiYmJhYwoKL14oYit8YSl7MSwyfWMvCiAgICBiYwogICAgYmJjCiAgICBiYmJjCiAgICBiYWMKICAgIGJiYWMKICAgIGFhYwogICAgYWJiYmJiYmJiYmJiYwogICAgYmJiYmJiYmJiYmJhYwogICAgKioqIEZhaWxlcnMKICAgIGFhYWMKICAgIGFiYmJiYmJiYmJiYmFjCgovXihiK3xhKXsxLDJ9P2JjLwogICAgYmJjCgovXihiKnxiYSl7MSwyfT9iYy8KICAgIGJhYmMKICAgIGJiYWJjCiAgICBiYWJhYmMKICAgICoqKiBGYWlsZXJzCiAgICBiYWJhYmJjCiAgICBiYWJhYmFiYwoKL14oYmF8YiopezEsMn0/YmMvCiAgICBiYWJjCiAgICBiYmFiYwogICAgYmFiYWJjCiAgICAqKiogRmFpbGVycwogICAgYmFiYWJiYwogICAgYmFiYWJhYmMKCi9eXGNhXGNBXGNbXGN7XGM6LwogICAgXHgwMVx4MDFcZTt6CgovXlthYlxdY2RlXS8KICAgIGF0aGluZwogICAgYnRoaW5nCiAgICBddGhpbmcKICAgIGN0aGluZwogICAgZHRoaW5nCiAgICBldGhpbmcKICAgICoqKiBGYWlsZXJzCiAgICBmdGhpbmcKICAgIFt0aGluZwogICAgXFx0aGluZwoKL15bXWNkZV0vCiAgICBddGhpbmcKICAgIGN0aGluZwogICAgZHRoaW5nCiAgICBldGhpbmcKICAgICoqKiBGYWlsZXJzCiAgICBhdGhpbmcKICAgIGZ0aGluZwoKL15bXmFiXF1jZGVdLwogICAgZnRoaW5nCiAgICBbdGhpbmcKICAgIFxcdGhpbmcKICAgICoqKiBGYWlsZXJzCiAgICBhdGhpbmcKICAgIGJ0aGluZwogICAgXXRoaW5nCiAgICBjdGhpbmcKICAgIGR0aGluZwogICAgZXRoaW5nCgovXlteXWNkZV0vCiAgICBhdGhpbmcKICAgIGZ0aGluZwogICAgKioqIEZhaWxlcnMKICAgIF10aGluZwogICAgY3RoaW5nCiAgICBkdGhpbmcKICAgIGV0aGluZwoKL15cgS8KICAgIIEKCi9e/y8KICAgIP8KCi9eWzAtOV0rJC8KICAgIDAKICAgIDEKICAgIDIKICAgIDMKICAgIDQKICAgIDUKICAgIDYKICAgIDcKICAgIDgKICAgIDkKICAgIDEwCiAgICAxMDAKICAgICoqKiBGYWlsZXJzCiAgICBhYmMKCi9eLipudGVyLwogICAgZW50ZXIKICAgIGludGVyCiAgICB1cG9udGVyCgovXnh4eFswLTldKyQvCiAgICB4eHgwCiAgICB4eHgxMjM0CiAgICAqKiogRmFpbGVycwogICAgeHh4CgovXi4rWzAtOV1bMC05XVswLTldJC8KICAgIHgxMjMKICAgIHh4MTIzCiAgICAxMjM0NTYKICAgICoqKiBGYWlsZXJzCiAgICAxMjMKICAgIHgxMjM0CgovXi4rP1swLTldWzAtOV1bMC05XSQvCiAgICB4MTIzCiAgICB4eDEyMwogICAgMTIzNDU2CiAgICAqKiogRmFpbGVycwogICAgMTIzCiAgICB4MTIzNAoKL14oW14hXSspISguKyk9YXBxdXh6XC5peHJcLnp6elwuYWNcLnVrJC8KICAgIGFiYyFwcXI9YXBxdXh6Lml4ci56enouYWMudWsKICAgICoqKiBGYWlsZXJzCiAgICAhcHFyPWFwcXV4ei5peHIuenp6LmFjLnVrCiAgICBhYmMhPWFwcXV4ei5peHIuenp6LmFjLnVrCiAgICBhYmMhcHFyPWFwcXV4ejppeHIuenp6LmFjLnVrCiAgICBhYmMhcHFyPWFwcXV4ei5peHIuenp6LmFjLnVrawoKLzovCiAgICBXZWxsLCB3ZSBuZWVkIGEgY29sb246IHNvbWV3aGVyZQogICAgKioqIEZhaWwgaWYgd2UgZG9uJ3QKCi8oW1xkYS1mOl0rKSQvaQogICAgMGFiYwogICAgYWJjCiAgICBmZWQKICAgIEUKICAgIDo6CiAgICA1ZjAzOjEyQzA6OjkzMmUKICAgIGZlZCBkZWYKICAgIEFueSBvbGQgc3R1ZmYKICAgICoqKiBGYWlsZXJzCiAgICAwenp6CiAgICBnenp6CiAgICBmZWRceDIwCiAgICBBbnkgb2xkIHJ1YmJpc2gKCi9eLipcLihcZHsxLDN9KVwuKFxkezEsM30pXC4oXGR7MSwzfSkkLwogICAgLjEuMi4zCiAgICBBLjEyLjEyMy4wCiAgICAqKiogRmFpbGVycwogICAgLjEuMi4zMzMzCiAgICAxLjIuMwogICAgMTIzNC4yLjMKCi9eKFxkKylccytJTlxzK1NPQVxzKyhcUyspXHMrKFxTKylccypcKFxzKiQvCiAgICAxIElOIFNPQSBub24tc3AxIG5vbi1zcDIoCiAgICAxICAgIElOICAgIFNPQSAgICBub24tc3AxICAgIG5vbi1zcDIgICAoCiAgICAqKiogRmFpbGVycwogICAgMUlOIFNPQSBub24tc3AxIG5vbi1zcDIoCgovXlthLXpBLVpcZF1bYS16QS1aXGRcLV0qKFwuW2EtekEtWlxkXVthLXpBLXpcZFwtXSopKlwuJC8KICAgIGEuCiAgICBaLgogICAgMi4KICAgIGFiLWMucHEtci4KICAgIHN4ay56enouYWMudWsuCiAgICB4LS55LS4KICAgICoqKiBGYWlsZXJzCiAgICAtYWJjLnBlcS4KCi9eXCpcLlthLXpdKFthLXpcLVxkXSpbYS16XGRdKyk/KFwuW2Etel0oW2EtelwtXGRdKlthLXpcZF0rKT8pKiQvCiAgICAqLmEKICAgICouYjAtYQogICAgKi5jMy1iLmMKICAgICouYy1hLmItYwogICAgKioqIEZhaWxlcnMKICAgICouMAogICAgKi5hLQogICAgKi5hLWIuYy0KICAgICouYy1hLjAtYwoKL14oPz1hYihkZSkpKGFiZCkoZSkvCiAgICBhYmRlCgovXig/IShhYilkZXx4KShhYmQpKGYpLwogICAgYWJkZgoKL14oPz0oYWIoY2QpKSkoYWIpLwogICAgYWJjZAoKL15bXGRhLWZdKFwuW1xkYS1mXSkqJC9pCiAgICBhLmIuYy5kCiAgICBBLkIuQy5ECiAgICBhLmIuYy4xLjIuMy5DCgovXlwiLipcIlxzKig7LiopPyQvCiAgICBcIjEyMzRcIgogICAgXCJhYmNkXCIgOwogICAgXCJcIiA7IHJodWJhcmIKICAgICoqKiBGYWlsZXJzCiAgICBcIjEyMzRcIiA6IHRoaW5ncwoKL14kLwogICAgXAogICAgKioqIEZhaWxlcnMKCi8gICBeICAgIGEgICAoPyMgYmVnaW5zIHdpdGggYSkgIGJcc2MgKD8jIHRoZW4gYiBjKSAkICg/IyB0aGVuIGVuZCkveAogICAgYWIgYwogICAgKioqIEZhaWxlcnMKICAgIGFiYwogICAgYWIgY2RlCgovKD94KSAgIF4gICAgYSAgICg/IyBiZWdpbnMgd2l0aCBhKSAgYlxzYyAoPyMgdGhlbiBiIGMpICQgKD8jIHRoZW4gZW5kKS8KICAgIGFiIGMKICAgICoqKiBGYWlsZXJzCiAgICBhYmMKICAgIGFiIGNkZQoKL14gICBhXCBiW2MgXWQgICAgICAgJC94CiAgICBhIGJjZAogICAgYSBiIGQKICAgICoqKiBGYWlsZXJzCiAgICBhYmNkCiAgICBhYiBkCgovXihhKGIoYykpKShkKGUoZikpKShoKGkoaikpKShrKGwobSkpKSQvCiAgICBhYmNkZWZoaWprbG0KCi9eKD86YShiKGMpKSkoPzpkKGUoZikpKSg/OmgoaShqKSkpKD86ayhsKG0pKSkkLwogICAgYWJjZGVmaGlqa2xtCgovXltcd11bXFddW1xzXVtcU11bXGRdW1xEXVtcYl1bXG5dW1xjXV1bXDAyMl0vCiAgICBhKyBaMCtceDA4XG5ceDFkXHgxMgoKL15bLl4kfCgpKis/eyx9XSsvCiAgICAuXlwkKCorKXx7Pyw/fQoKL15hKlx3LwogICAgegogICAgYXoKICAgIGFhYXoKICAgIGEKICAgIGFhCiAgICBhYWFhCiAgICBhKwogICAgYWErCgovXmEqP1x3LwogICAgegogICAgYXoKICAgIGFhYXoKICAgIGEKICAgIGFhCiAgICBhYWFhCiAgICBhKwogICAgYWErCgovXmErXHcvCiAgICBhegogICAgYWFhegogICAgYWEKICAgIGFhYWEKICAgIGFhKwoKL15hKz9cdy8KICAgIGF6CiAgICBhYWF6CiAgICBhYQogICAgYWFhYQogICAgYWErCgovXlxkezh9XHd7Mix9LwogICAgMTIzNDU2Nzg5MAogICAgMTIzNDU2NzhhYgogICAgMTIzNDU2NzhfXwogICAgKioqIEZhaWxlcnMKICAgIDEyMzQ1NjcKCi9eW2FlaW91XGRdezQsNX0kLwogICAgdW9pZQogICAgMTIzNAogICAgMTIzNDUKICAgIGFhYWFhCiAgICAqKiogRmFpbGVycwogICAgMTIzNDU2CgovXlthZWlvdVxkXXs0LDV9Py8KICAgIHVvaWUKICAgIDEyMzQKICAgIDEyMzQ1CiAgICBhYWFhYQogICAgMTIzNDU2CgovXEEoYWJjfGRlZik9KFwxKXsyLDN9XFovCiAgICBhYmM9YWJjYWJjCiAgICBkZWY9ZGVmZGVmZGVmCiAgICAqKiogRmFpbGVycwogICAgYWJjPWRlZmRlZgoKL14oYSkoYikoYykoZCkoZSkoZikoZykoaCkoaSkoaikoaylcMTEqKFwzXDQpXDEoPyMpMiQvCiAgICBhYmNkZWZnaGlqa2NkYTIKICAgIGFiY2RlZmdoaWpra2trY2RhMgoKLyhjYXQoYShyYWN0fHRvbmljKXxlcnBpbGxhcikpIFwxKCkyKDMpLwogICAgY2F0YXJhY3QgY2F0YXJhY3QyMwogICAgY2F0YXRvbmljIGNhdGF0b25pYzIzCiAgICBjYXRlcnBpbGxhciBjYXRlcnBpbGxhcjIzCgoKL15Gcm9tICsoW14gXSspICtbYS16QS1aXVthLXpBLVpdW2EtekEtWl0gK1thLXpBLVpdW2EtekEtWl1bYS16QS1aXSArWzAtOV0/WzAtOV0gK1swLTldWzAtOV06WzAtOV1bMC05XS8KICAgIEZyb20gYWJjZCAgTW9uIFNlcCAwMSAxMjozMzowMiAxOTk3CgovXkZyb21ccytcUytccysoW2EtekEtWl17M31ccyspezJ9XGR7MSwyfVxzK1xkXGQ6XGRcZC8KICAgIEZyb20gYWJjZCAgTW9uIFNlcCAwMSAxMjozMzowMiAxOTk3CiAgICBGcm9tIGFiY2QgIE1vbiBTZXAgIDEgMTI6MzM6MDIgMTk5NwogICAgKioqIEZhaWxlcnMKICAgIEZyb20gYWJjZCAgU2VwIDAxIDEyOjMzOjAyIDE5OTcKCi9eMTIuMzQvcwogICAgMTJcbjM0CiAgICAxMlxyMzQKCi9cdysoPz1cdCkvCiAgICB0aGUgcXVpY2sgYnJvd25cdCBmb3gKCi9mb28oPyFiYXIpKC4qKS8KICAgIGZvb2JhciBpcyBmb29saXNoIHNlZT8KCi8oPzooPyFmb28pLi4ufF4uezAsMn0pYmFyKC4qKS8KICAgIGZvb2JhciBjcm93YmFyIGV0YwogICAgYmFycmVsCiAgICAyYmFycmVsCiAgICBBIGJhcnJlbAoKL14oXEQqKSg/PVxkKSg/ITEyMykvCiAgICBhYmM0NTYKICAgICoqKiBGYWlsZXJzCiAgICBhYmMxMjMKCi9eMTIzNCg/IyB0ZXN0IG5ld2xpbmVzCiAgaW5zaWRlKS8KICAgIDEyMzQKCi9eMTIzNCAjY29tbWVudCBpbiBleHRlbmRlZCByZQogIC94CiAgICAxMjM0CgovI3JodWJhcmIKICBhYmNkL3gKICAgIGFiY2QKCi9eYWJjZCNyaHViYXJiL3gKICAgIGFiY2QKCi9eKGEpXDF7MiwzfSguKS8KICAgIGFhYWIKICAgIGFhYWFiCiAgICBhYWFhYWIKICAgIGFhYWFhYWIKCi8oPyFeKWFiYy8KICAgIHRoZSBhYmMKICAgICoqKiBGYWlsZXJzCiAgICBhYmMKCi8oPz1eKWFiYy8KICAgIGFiYwogICAgKioqIEZhaWxlcnMKICAgIHRoZSBhYmMKCi9eW2FiXXsxLDN9KGFiKnxiKS8KICAgIGFhYmJiYmIKCi9eW2FiXXsxLDN9PyhhYip8YikvCiAgICBhYWJiYmJiCgovXlthYl17MSwzfT8oYWIqP3xiKS8KICAgIGFhYmJiYmIKCi9eW2FiXXsxLDN9KGFiKj98YikvCiAgICBhYWJiYmJiCgovICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIGxlYWRpbmcgY29tbWVudAooPzogICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfAoiICg/OiAgICAgICAgICAgICAgICAgICAgICAjIG9wZW5pbmcgcXVvdGUuLi4KW15cXFx4ODAtXHhmZlxuXDAxNSJdICAgICAgICAgICAgICAgICMgICBBbnl0aGluZyBleGNlcHQgYmFja3NsYXNoIGFuZCBxdW90ZQp8ICAgICAgICAgICAgICAgICAgICAgIyAgICBvcgpcXCBbXlx4ODAtXHhmZl0gICAgICAgICAgICMgICBFc2NhcGVkIHNvbWV0aGluZyAoc29tZXRoaW5nICE9IENSKQopKiAiICAjIGNsb3NpbmcgcXVvdGUKKSAgICAgICAgICAgICAgICAgICAgIyBpbml0aWFsIHdvcmQKKD86ICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICBcLiAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKIiAoPzogICAgICAgICAgICAgICAgICAgICAgIyBvcGVuaW5nIHF1b3RlLi4uClteXFxceDgwLVx4ZmZcblwwMTUiXSAgICAgICAgICAgICAgICAjICAgQW55dGhpbmcgZXhjZXB0IGJhY2tzbGFzaCBhbmQgcXVvdGUKfCAgICAgICAgICAgICAgICAgICAgICMgICAgb3IKXFwgW15ceDgwLVx4ZmZdICAgICAgICAgICAjICAgRXNjYXBlZCBzb21ldGhpbmcgKHNvbWV0aGluZyAhPSBDUikKKSogIiAgIyBjbG9zaW5nIHF1b3RlCikgICkqICMgZnVydGhlciBva2F5LCBpZiBsZWQgYnkgYSBwZXJpb2QKKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgQCAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ICAgXFsgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbml0aWFsIHN1YmRvbWFpbgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICBcLiAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgbGVkIGJ5IGEgcGVyaW9kLi4uCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ICAgXFsgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopICAgICAgICAgICAgICAgICAgICAgIyAgIC4uLmZ1cnRoZXIgb2theQopKgojIGFkZHJlc3MKfCAgICAgICAgICAgICAgICAgICAgICMgIG9yCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKIiAoPzogICAgICAgICAgICAgICAgICAgICAgIyBvcGVuaW5nIHF1b3RlLi4uClteXFxceDgwLVx4ZmZcblwwMTUiXSAgICAgICAgICAgICAgICAjICAgQW55dGhpbmcgZXhjZXB0IGJhY2tzbGFzaCBhbmQgcXVvdGUKfCAgICAgICAgICAgICAgICAgICAgICMgICAgb3IKXFwgW15ceDgwLVx4ZmZdICAgICAgICAgICAjICAgRXNjYXBlZCBzb21ldGhpbmcgKHNvbWV0aGluZyAhPSBDUikKKSogIiAgIyBjbG9zaW5nIHF1b3RlCikgICAgICAgICAgICAgIyBvbmUgd29yZCwgb3B0aW9uYWxseSBmb2xsb3dlZCBieS4uLi4KKD86ClteKCk8PkAsOzoiLlxcXFtcXVx4ODAtXHhmZlwwMDAtXDAxMFwwMTItXDAzN10gIHwgICMgYXRvbSBhbmQgc3BhY2UgcGFydHMsIG9yLi4uClwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICAgICAgIHwgICMgY29tbWVudHMsIG9yLi4uCgoiICg/OiAgICAgICAgICAgICAgICAgICAgICAjIG9wZW5pbmcgcXVvdGUuLi4KW15cXFx4ODAtXHhmZlxuXDAxNSJdICAgICAgICAgICAgICAgICMgICBBbnl0aGluZyBleGNlcHQgYmFja3NsYXNoIGFuZCBxdW90ZQp8ICAgICAgICAgICAgICAgICAgICAgIyAgICBvcgpcXCBbXlx4ODAtXHhmZl0gICAgICAgICAgICMgICBFc2NhcGVkIHNvbWV0aGluZyAoc29tZXRoaW5nICE9IENSKQopKiAiICAjIGNsb3NpbmcgcXVvdGUKIyBxdW90ZWQgc3RyaW5ncwopKgo8ICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgICAgICAgICAgICAgICAgICAgIyBsZWFkaW5nIDwKKD86ICBAICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwgICBcWyAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluaXRpYWwgc3ViZG9tYWluCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogIFwuICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBsZWQgYnkgYSBwZXJpb2QuLi4KKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwgICBcWyAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikgICAgICAgICAgICAgICAgICAgICAjICAgLi4uZnVydGhlciBva2F5CikqCgooPzogICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICwgICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogIEAgICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfCAgIFxbICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW5pdGlhbCBzdWJkb21haW4KKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgXC4gICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGxlZCBieSBhIHBlcmlvZC4uLgooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfCAgIFxbICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKSAgICAgICAgICAgICAgICAgICAgICMgICAuLi5mdXJ0aGVyIG9rYXkKKSoKKSogIyBmdXJ0aGVyIG9rYXksIGlmIGxlZCBieSBjb21tYQo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGNsb3NpbmcgY29sb24KKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgKT8gIyAgICAgICBvcHRpb25hbCByb3V0ZQooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8CiIgKD86ICAgICAgICAgICAgICAgICAgICAgICMgb3BlbmluZyBxdW90ZS4uLgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gICAgICAgICAgICAgICAgIyAgIEFueXRoaW5nIGV4Y2VwdCBiYWNrc2xhc2ggYW5kIHF1b3RlCnwgICAgICAgICAgICAgICAgICAgICAjICAgIG9yClxcIFteXHg4MC1ceGZmXSAgICAgICAgICAgIyAgIEVzY2FwZWQgc29tZXRoaW5nIChzb21ldGhpbmcgIT0gQ1IpCikqICIgICMgY2xvc2luZyBxdW90ZQopICAgICAgICAgICAgICAgICAgICAjIGluaXRpYWwgd29yZAooPzogICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogIFwuICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfAoiICg/OiAgICAgICAgICAgICAgICAgICAgICAjIG9wZW5pbmcgcXVvdGUuLi4KW15cXFx4ODAtXHhmZlxuXDAxNSJdICAgICAgICAgICAgICAgICMgICBBbnl0aGluZyBleGNlcHQgYmFja3NsYXNoIGFuZCBxdW90ZQp8ICAgICAgICAgICAgICAgICAgICAgIyAgICBvcgpcXCBbXlx4ODAtXHhmZl0gICAgICAgICAgICMgICBFc2NhcGVkIHNvbWV0aGluZyAoc29tZXRoaW5nICE9IENSKQopKiAiICAjIGNsb3NpbmcgcXVvdGUKKSAgKSogIyBmdXJ0aGVyIG9rYXksIGlmIGxlZCBieSBhIHBlcmlvZAooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICBAICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwgICBcWyAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluaXRpYWwgc3ViZG9tYWluCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogIFwuICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBsZWQgYnkgYSBwZXJpb2QuLi4KKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwgICBcWyAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikgICAgICAgICAgICAgICAgICAgICAjICAgLi4uZnVydGhlciBva2F5CikqCiMgICAgICAgYWRkcmVzcyBzcGVjCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogID4gIyAgICAgICAgICAgICAgICAgIHRyYWlsaW5nID4KIyBuYW1lIGFuZCBhZGRyZXNzCikgICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudAoveAogICAgQWxhbiBPdGhlciA8dXNlclxAZG9tLmFpbj4KICAgIDx1c2VyXEBkb20uYWluPgogICAgdXNlclxAZG9tLmFpbgogICAgXCJBLiBPdGhlclwiIDx1c2VyLjEyMzRcQGRvbS5haW4+IChhIGNvbW1lbnQpCiAgICBBLiBPdGhlciA8dXNlci4xMjM0XEBkb20uYWluPiAoYSBjb21tZW50KQogICAgXCIvcz11c2VyL291PWhvc3Qvbz1wbGFjZS9wcm1kPXV1Lnl5L2FkbWQ9IC9jPWdiL1wiXEB4NDAwLXJlLmxheQogICAgQSBtaXNzaW5nIGFuZ2xlIDx1c2VyXEBzb21lLndoZXJlCiAgICAqKiogRmFpbGVycwogICAgVGhlIHF1aWNrIGJyb3duIGZveAoKL1tcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgbGVhZGluZyBjb21tZW50Cig/OgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQojIEF0b20KfCAgICAgICAgICAgICAgICAgICAgICAgIyAgb3IKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICIKW15cXFx4ODAtXHhmZlxuXDAxNSJdICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIG5vcm1hbAooPzogIFxcIFteXHg4MC1ceGZmXSAgW15cXFx4ODAtXHhmZlxuXDAxNSJdICogKSogICAgICAgICMgICAoIHNwZWNpYWwgbm9ybWFsKiApKgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICIKIyBRdW90ZWQgc3RyaW5nCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClwuCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCiMgQXRvbQp8ICAgICAgICAgICAgICAgICAgICAgICAjICBvcgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgbm9ybWFsCig/OiAgXFwgW15ceDgwLVx4ZmZdICBbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiApKiAgICAgICAgIyAgICggc3BlY2lhbCBub3JtYWwqICkqCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIgojIFF1b3RlZCBzdHJpbmcKKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIGFkZGl0aW9uYWwgd29yZHMKKSoKQApbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ClxbICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50cwooPzoKXC4KW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfApcWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudHMKKSoKIyBhZGRyZXNzCnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIG9yCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCiMgQXRvbQp8ICAgICAgICAgICAgICAgICAgICAgICAjICBvcgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgbm9ybWFsCig/OiAgXFwgW15ceDgwLVx4ZmZdICBbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiApKiAgICAgICAgIyAgICggc3BlY2lhbCBub3JtYWwqICkqCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIgojIFF1b3RlZCBzdHJpbmcKKQojIGxlYWRpbmcgd29yZApbXigpPD5ALDs6Ii5cXFxbXF1ceDgwLVx4ZmZcMDAwLVwwMTBcMDEyLVwwMzddICogICAgICAgICAgICAgICAjICJub3JtYWwiIGF0b21zIGFuZCBvciBzcGFjZXMKKD86Cig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCnwKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICIKW15cXFx4ODAtXHhmZlxuXDAxNSJdICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIG5vcm1hbAooPzogIFxcIFteXHg4MC1ceGZmXSAgW15cXFx4ODAtXHhmZlxuXDAxNSJdICogKSogICAgICAgICMgICAoIHNwZWNpYWwgbm9ybWFsKiApKgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICIKKSAjICJzcGVjaWFsIiBjb21tZW50IG9yIHF1b3RlZCBzdHJpbmcKW14oKTw+QCw7OiIuXFxcW1xdXHg4MC1ceGZmXDAwMC1cMDEwXDAxMi1cMDM3XSAqICAgICAgICAgICAgIyAgbW9yZSAibm9ybWFsIgopKgo8CltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgPAooPzoKQApbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ClxbICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50cwooPzoKXC4KW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfApcWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudHMKKSoKKD86ICwKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KQApbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ClxbICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50cwooPzoKXC4KW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfApcWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudHMKKSoKKSogICMgYWRkaXRpb25hbCBkb21haW5zCjoKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50cwopPyAgICAgIyAgICAgICBvcHRpb25hbCByb3V0ZQooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQojIEF0b20KfCAgICAgICAgICAgICAgICAgICAgICAgIyAgb3IKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICIKW15cXFx4ODAtXHhmZlxuXDAxNSJdICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIG5vcm1hbAooPzogIFxcIFteXHg4MC1ceGZmXSAgW15cXFx4ODAtXHhmZlxuXDAxNSJdICogKSogICAgICAgICMgICAoIHNwZWNpYWwgbm9ybWFsKiApKgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICIKIyBRdW90ZWQgc3RyaW5nCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClwuCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCiMgQXRvbQp8ICAgICAgICAgICAgICAgICAgICAgICAjICBvcgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgbm9ybWFsCig/OiAgXFwgW15ceDgwLVx4ZmZdICBbXlxcXHg4MC1ceGZmXG5cMDE1Il0gKiApKiAgICAgICAgIyAgICggc3BlY2lhbCBub3JtYWwqICkqCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIgojIFF1b3RlZCBzdHJpbmcKKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIGFkZGl0aW9uYWwgd29yZHMKKSoKQApbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ClxbICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBvcHRpb25hbCB0cmFpbGluZyBjb21tZW50cwooPzoKXC4KW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfApcWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudHMKKSoKIyAgICAgICBhZGRyZXNzIHNwZWMKPiAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgPgojIG5hbWUgYW5kIGFkZHJlc3MKKQoveAogICAgQWxhbiBPdGhlciA8dXNlclxAZG9tLmFpbj4KICAgIDx1c2VyXEBkb20uYWluPgogICAgdXNlclxAZG9tLmFpbgogICAgXCJBLiBPdGhlclwiIDx1c2VyLjEyMzRcQGRvbS5haW4+IChhIGNvbW1lbnQpCiAgICBBLiBPdGhlciA8dXNlci4xMjM0XEBkb20uYWluPiAoYSBjb21tZW50KQogICAgXCIvcz11c2VyL291PWhvc3Qvbz1wbGFjZS9wcm1kPXV1Lnl5L2FkbWQ9IC9jPWdiL1wiXEB4NDAwLXJlLmxheQogICAgQSBtaXNzaW5nIGFuZ2xlIDx1c2VyXEBzb21lLndoZXJlCiAgICAqKiogRmFpbGVycwogICAgVGhlIHF1aWNrIGJyb3duIGZveAoKL2FiY1wwZGVmXDAwcHFyXDAwMHh5elwwMDAwQUIvCiAgICBhYmNcMGRlZlwwMHBxclwwMDB4eXpcMDAwMEFCCiAgICBhYmM0NTYgYWJjXDBkZWZcMDBwcXJcMDAweHl6XDAwMDBBQkNERQoKL2FiY1x4MGRlZlx4MDBwcXJceDAwMHh5elx4MDAwMEFCLwogICAgYWJjXHgwZGVmXHgwMHBxclx4MDAweHl6XHgwMDAwQUIKICAgIGFiYzQ1NiBhYmNceDBkZWZceDAwcHFyXHgwMDB4eXpceDAwMDBBQkNERQoKL15bXDAwMC1cMDM3XS8KICAgIFwwQQogICAgXDAxQgogICAgXDAzN0MKCi9cMCovCiAgICBcMFwwXDBcMAoKL0FceDB7MiwzfVovCiAgICBUaGUgQVx4MFx4MFoKICAgIEFuIEFcMFx4MFwwWgogICAgKioqIEZhaWxlcnMKICAgIEFcMFoKICAgIEFcMFx4MFwwXHgwWgoKL14oY293fClcMShiZWxsKS8KICAgIGNvd2Nvd2JlbGwKICAgIGJlbGwKICAgICoqKiBGYWlsZXJzCiAgICBjb3diZWxsCgovXlxzLwogICAgXDA0MGFiYwogICAgXHgwY2FiYwogICAgXG5hYmMKICAgIFxyYWJjCiAgICBcdGFiYwogICAgKioqIEZhaWxlcnMKICAgIGFiYwoKL15hCWIKICANICAMICBjL3gKICAgIGFiYwoKL14oYXwpXDEqYi8KICAgIGFiCiAgICBhYWFhYgogICAgYgogICAgKioqIEZhaWxlcnMKICAgIGFjYgoKL14oYXwpXDErYi8KICAgIGFhYgogICAgYWFhYWIKICAgIGIKICAgICoqKiBGYWlsZXJzCiAgICBhYgoKL14oYXwpXDE/Yi8KICAgIGFiCiAgICBhYWIKICAgIGIKICAgICoqKiBGYWlsZXJzCiAgICBhY2IKCi9eKGF8KVwxezJ9Yi8KICAgIGFhYWIKICAgIGIKICAgICoqKiBGYWlsZXJzCiAgICBhYgogICAgYWFiCiAgICBhYWFhYgoKL14oYXwpXDF7MiwzfWIvCiAgICBhYWFiCiAgICBhYWFhYgogICAgYgogICAgKioqIEZhaWxlcnMKICAgIGFiCiAgICBhYWIKICAgIGFhYWFhYgoKL2FiezEsM31iYy8KICAgIGFiYmJiYwogICAgYWJiYmMKICAgIGFiYmMKICAgICoqKiBGYWlsZXJzCiAgICBhYmMKICAgIGFiYmJiYmMKCi8oW14uXSopXC4oW146XSopOltUIF0rKC4qKS8KICAgIHRyYWNrMS50aXRsZTpUQmxhaCBibGFoIGJsYWgKCi8oW14uXSopXC4oW146XSopOltUIF0rKC4qKS9pCiAgICB0cmFjazEudGl0bGU6VEJsYWggYmxhaCBibGFoCgovKFteLl0qKVwuKFteOl0qKTpbdCBdKyguKikvaQogICAgdHJhY2sxLnRpdGxlOlRCbGFoIGJsYWggYmxhaAoKL15bVy1jXSskLwogICAgV1hZX15hYmMKICAgICoqKiBGYWlsZXJzCiAgICB3eHkKCi9eW1ctY10rJC9pCiAgICBXWFlfXmFiYwogICAgd3h5X15BQkMKCi9eW1x4M2YtXHg1Rl0rJC9pCiAgICBXWFlfXmFiYwogICAgd3h5X15BQkMKCi9eYWJjJC9tCiAgICBhYmMKICAgIHFxcVxuYWJjCiAgICBhYmNcbnp6egogICAgcXFxXG5hYmNcbnp6egoKL15hYmMkLwogICAgYWJjCiAgICAqKiogRmFpbGVycwogICAgcXFxXG5hYmMKICAgIGFiY1xuenp6CiAgICBxcXFcbmFiY1xuenp6CgovXEFhYmNcWi9tCiAgICBhYmMKICAgIGFiY1xuIAogICAgKioqIEZhaWxlcnMKICAgIHFxcVxuYWJjCiAgICBhYmNcbnp6egogICAgcXFxXG5hYmNcbnp6egogICAgCi9cQSguKSpcWi9zCiAgICBhYmNcbmRlZgoKL1xBKC4pKlxaL20KICAgICoqKiBGYWlsZXJzCiAgICBhYmNcbmRlZgoKLyg/OmIpfCg/OjorKS8KICAgIGI6OmMKICAgIGM6OmIKCi9bLWF6XSsvCiAgICBhei0KICAgICoqKiBGYWlsZXJzCiAgICBiCgovW2F6LV0rLwogICAgemEtCiAgICAqKiogRmFpbGVycwogICAgYgoKL1thXC16XSsvCiAgICBhLXoKICAgICoqKiBGYWlsZXJzCiAgICBiCgovW2Etel0rLwogICAgYWJjZHh5egoKL1tcZC1dKy8KICAgIDEyLTM0CiAgICAqKiogRmFpbGVycwogICAgYWFhCgovW1xkLXpdKy8KICAgIDEyLTM0egogICAgKioqIEZhaWxlcnMKICAgIGFhYQoKL1x4NWMvCiAgICBcXAoKL1x4MjBaLwogICAgdGhlIFpvbwogICAgKioqIEZhaWxlcnMKICAgIFp1bHUKCi8oYWJjKVwxL2kKICAgIGFiY2FiYwogICAgQUJDYWJjCiAgICBhYmNBQkMKCi9hYnszY2QvCiAgICBhYnszY2QKCi9hYnszLGNkLwogICAgYWJ7MyxjZAoKL2FiezMsNGF9Y2QvCiAgICBhYnszLDRhfWNkCgovezQsNWF9YmMvCiAgICB7NCw1YX1iYwoKL15hLmIvCiAgICBhXHJiCiAgICAqKiogRmFpbGVycwogICAgYVxuYgoKL2FiYyQvCiAgICBhYmMKICAgIGFiY1xuCiAgICAqKiogRmFpbGVycwogICAgYWJjXG5kZWYKCi8oYWJjKVwxMjMvCiAgICBhYmNceDUzCgovKGFiYylcMjIzLwogICAgYWJjXHg5MwoKLyhhYmMpXDMyMy8KICAgIGFiY1x4ZDMKCi8oYWJjKVw1MDAvCiAgICBhYmNceDQwCiAgICBhYmNcMTAwCgovKGFiYylcNTAwMC8KICAgIGFiY1x4NDAwCiAgICBhYmNceDQwXHgzMAogICAgYWJjXDEwMDAKICAgIGFiY1wxMDBceDMwCiAgICBhYmNcMTAwXDA2MAogICAgYWJjXDEwMFw2MAoKL2FiY1w4MS8KICAgIGFiY1wwODEKICAgIGFiY1wwXHgzOFx4MzEKCi9hYmNcOTEvCiAgICBhYmNcMDkxCiAgICBhYmNcMFx4MzlceDMxCgovKGEpKGIpKGMpKGQpKGUpKGYpKGcpKGgpKGkpKGopKGspKGwpXDEyXDEyMy8KICAgIGFiY2RlZmdoaWprbGxTCgovKGEpKGIpKGMpKGQpKGUpKGYpKGcpKGgpKGkpKGopKGspXDEyXDEyMy8KICAgIGFiY2RlZmdoaWprXDEyUwoKL2FiXGdkZWYvCiAgICBhYmdkZWYKCi9hezB9YmMvCiAgICBiYwoKLyhhfChiYykpezAsMH0/eHl6LwogICAgeHl6CgovYWJjW1wxMF1kZS8KICAgIGFiY1wwMTBkZQoKL2FiY1tcMV1kZS8KICAgIGFiY1wxZGUKCi8oYWJjKVtcMV1kZS8KICAgIGFiY1wxZGUKCi8oP3MpYS5iLwogICAgYVxuYgoKL14oW15hXSkoW15cYl0pKFteY10qKShbXmRdezMsNH0pLwogICAgYmFOT1RjY2NjZAogICAgYmFOT1RjY2NkCiAgICBiYU5PVGNjZAogICAgYmFjY2NkCiAgICAqKiogRmFpbGVycwogICAgYW55dGhpbmcKICAgIGJcYmMgICAKICAgIGJhY2NkCgovW15hXS8KICAgIEFiYwogIAovW15hXS9pCiAgICBBYmMgCgovW15hXSsvCiAgICBBQUFhQWJjCiAgCi9bXmFdKy9pCiAgICBBQUFhQWJjIAoKL1teYV0rLwogICAgYmJiXG5jY2MKICAgCi9bXmtdJC8KICAgIGFiYwogICAgKioqIEZhaWxlcnMKICAgIGFiayAgIAogICAKL1tea117MiwzfSQvCiAgICBhYmMKICAgIGtiYwogICAga2FiYyAKICAgICoqKiBGYWlsZXJzCiAgICBhYmsKICAgIGFrYgogICAgYWtrIAoKL15cZHs4LH1cQC4rW15rXSQvCiAgICAxMjM0NTY3OFxAYS5iLmMuZAogICAgMTIzNDU2Nzg5XEB4LnkuegogICAgKioqIEZhaWxlcnMKICAgIDEyMzQ1Njc4XEB4LnkudWsKICAgIDEyMzQ1NjdcQGEuYi5jLmQgICAgICAgCgovKGEpXDF7OCx9LwogICAgYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhCiAgICAqKiogRmFpbGVycwogICAgYWFhYWFhYSAgIAoKL1teYV0vCiAgICBhYWFhYmNkCiAgICBhYUFhYmNkIAoKL1teYV0vaQogICAgYWFhYWJjZAogICAgYWFBYWJjZCAKCi9bXmF6XS8KICAgIGFhYWFiY2QKICAgIGFhQWFiY2QgCgovW15hel0vaQogICAgYWFhYWJjZAogICAgYWFBYWJjZCAKCi9cMDAwXDAwMVwwMDJcMDAzXDAwNFwwMDVcMDA2XDAwN1wwMTBcMDExXDAxMlwwMTNcMDE0XDAxNVwwMTZcMDE3XDAyMFwwMjFcMDIyXDAyM1wwMjRcMDI1XDAyNlwwMjdcMDMwXDAzMVwwMzJcMDMzXDAzNFwwMzVcMDM2XDAzN1wwNDBcMDQxXDA0MlwwNDNcMDQ0XDA0NVwwNDZcMDQ3XDA1MFwwNTFcMDUyXDA1M1wwNTRcMDU1XDA1NlwwNTdcMDYwXDA2MVwwNjJcMDYzXDA2NFwwNjVcMDY2XDA2N1wwNzBcMDcxXDA3MlwwNzNcMDc0XDA3NVwwNzZcMDc3XDEwMFwxMDFcMTAyXDEwM1wxMDRcMTA1XDEwNlwxMDdcMTEwXDExMVwxMTJcMTEzXDExNFwxMTVcMTE2XDExN1wxMjBcMTIxXDEyMlwxMjNcMTI0XDEyNVwxMjZcMTI3XDEzMFwxMzFcMTMyXDEzM1wxMzRcMTM1XDEzNlwxMzdcMTQwXDE0MVwxNDJcMTQzXDE0NFwxNDVcMTQ2XDE0N1wxNTBcMTUxXDE1MlwxNTNcMTU0XDE1NVwxNTZcMTU3XDE2MFwxNjFcMTYyXDE2M1wxNjRcMTY1XDE2NlwxNjdcMTcwXDE3MVwxNzJcMTczXDE3NFwxNzVcMTc2XDE3N1wyMDBcMjAxXDIwMlwyMDNcMjA0XDIwNVwyMDZcMjA3XDIxMFwyMTFcMjEyXDIxM1wyMTRcMjE1XDIxNlwyMTdcMjIwXDIyMVwyMjJcMjIzXDIyNFwyMjVcMjI2XDIyN1wyMzBcMjMxXDIzMlwyMzNcMjM0XDIzNVwyMzZcMjM3XDI0MFwyNDFcMjQyXDI0M1wyNDRcMjQ1XDI0NlwyNDdcMjUwXDI1MVwyNTJcMjUzXDI1NFwyNTVcMjU2XDI1N1wyNjBcMjYxXDI2MlwyNjNcMjY0XDI2NVwyNjZcMjY3XDI3MFwyNzFcMjcyXDI3M1wyNzRcMjc1XDI3NlwyNzdcMzAwXDMwMVwzMDJcMzAzXDMwNFwzMDVcMzA2XDMwN1wzMTBcMzExXDMxMlwzMTNcMzE0XDMxNVwzMTZcMzE3XDMyMFwzMjFcMzIyXDMyM1wzMjRcMzI1XDMyNlwzMjdcMzMwXDMzMVwzMzJcMzMzXDMzNFwzMzVcMzM2XDMzN1wzNDBcMzQxXDM0MlwzNDNcMzQ0XDM0NVwzNDZcMzQ3XDM1MFwzNTFcMzUyXDM1M1wzNTRcMzU1XDM1NlwzNTdcMzYwXDM2MVwzNjJcMzYzXDM2NFwzNjVcMzY2XDM2N1wzNzBcMzcxXDM3MlwzNzNcMzc0XDM3NVwzNzZcMzc3LwogXDAwMFwwMDFcMDAyXDAwM1wwMDRcMDA1XDAwNlwwMDdcMDEwXDAxMVwwMTJcMDEzXDAxNFwwMTVcMDE2XDAxN1wwMjBcMDIxXDAyMlwwMjNcMDI0XDAyNVwwMjZcMDI3XDAzMFwwMzFcMDMyXDAzM1wwMzRcMDM1XDAzNlwwMzdcMDQwXDA0MVwwNDJcMDQzXDA0NFwwNDVcMDQ2XDA0N1wwNTBcMDUxXDA1MlwwNTNcMDU0XDA1NVwwNTZcMDU3XDA2MFwwNjFcMDYyXDA2M1wwNjRcMDY1XDA2NlwwNjdcMDcwXDA3MVwwNzJcMDczXDA3NFwwNzVcMDc2XDA3N1wxMDBcMTAxXDEwMlwxMDNcMTA0XDEwNVwxMDZcMTA3XDExMFwxMTFcMTEyXDExM1wxMTRcMTE1XDExNlwxMTdcMTIwXDEyMVwxMjJcMTIzXDEyNFwxMjVcMTI2XDEyN1wxMzBcMTMxXDEzMlwxMzNcMTM0XDEzNVwxMzZcMTM3XDE0MFwxNDFcMTQyXDE0M1wxNDRcMTQ1XDE0NlwxNDdcMTUwXDE1MVwxNTJcMTUzXDE1NFwxNTVcMTU2XDE1N1wxNjBcMTYxXDE2MlwxNjNcMTY0XDE2NVwxNjZcMTY3XDE3MFwxNzFcMTcyXDE3M1wxNzRcMTc1XDE3NlwxNzdcMjAwXDIwMVwyMDJcMjAzXDIwNFwyMDVcMjA2XDIwN1wyMTBcMjExXDIxMlwyMTNcMjE0XDIxNVwyMTZcMjE3XDIyMFwyMjFcMjIyXDIyM1wyMjRcMjI1XDIyNlwyMjdcMjMwXDIzMVwyMzJcMjMzXDIzNFwyMzVcMjM2XDIzN1wyNDBcMjQxXDI0MlwyNDNcMjQ0XDI0NVwyNDZcMjQ3XDI1MFwyNTFcMjUyXDI1M1wyNTRcMjU1XDI1NlwyNTdcMjYwXDI2MVwyNjJcMjYzXDI2NFwyNjVcMjY2XDI2N1wyNzBcMjcxXDI3MlwyNzNcMjc0XDI3NVwyNzZcMjc3XDMwMFwzMDFcMzAyXDMwM1wzMDRcMzA1XDMwNlwzMDdcMzEwXDMxMVwzMTJcMzEzXDMxNFwzMTVcMzE2XDMxN1wzMjBcMzIxXDMyMlwzMjNcMzI0XDMyNVwzMjZcMzI3XDMzMFwzMzFcMzMyXDMzM1wzMzRcMzM1XDMzNlwzMzdcMzQwXDM0MVwzNDJcMzQzXDM0NFwzNDVcMzQ2XDM0N1wzNTBcMzUxXDM1MlwzNTNcMzU0XDM1NVwzNTZcMzU3XDM2MFwzNjFcMzYyXDM2M1wzNjRcMzY1XDM2NlwzNjdcMzcwXDM3MVwzNzJcMzczXDM3NFwzNzVcMzc2XDM3NwoKL1BbXipdVEFJUkVbXipdezEsNn0/TEwvCiAgICB4eHh4eHh4eHh4eFBTVEFJUkVJU0xMeHh4eHh4eHh4CgovUFteKl1UQUlSRVteKl17MSx9P0xMLwogICAgeHh4eHh4eHh4eHhQU1RBSVJFSVNMTHh4eHh4eHh4eAoKLyhcLlxkXGRbMS05XT8pXGQrLwogICAgMS4yMzAwMDM5MzgKICAgIDEuODc1MDAwMjgyICAgCiAgICAxLjIzNSAgCiAgICAgICAgICAgICAgICAgIAovKFwuXGRcZCgoPz0wKXxcZCg/PVxkKSkpLwogICAgMS4yMzAwMDM5MzggICAgICAKICAgIDEuODc1MDAwMjgyCiAgICAqKiogRmFpbGVycyAKICAgIDEuMjM1IAogICAgCi9hKD8pYi8KICAgIGFiIAogCi9cYihmb28pXHMrKFx3KykvaQogICAgRm9vZCBpcyBvbiB0aGUgZm9vIHRhYmxlCiAgICAKL2ZvbyguKiliYXIvCiAgICBUaGUgZm9vZCBpcyB1bmRlciB0aGUgYmFyIGluIHRoZSBiYXJuLgogICAgCi9mb28oLio/KWJhci8gIAogICAgVGhlIGZvb2QgaXMgdW5kZXIgdGhlIGJhciBpbiB0aGUgYmFybi4KCi8oLiopKFxkKikvCiAgICBJIGhhdmUgMiBudW1iZXJzOiA1MzE0NwogICAgCi8oLiopKFxkKykvCiAgICBJIGhhdmUgMiBudW1iZXJzOiA1MzE0NwogCi8oLio/KShcZCopLwogICAgSSBoYXZlIDIgbnVtYmVyczogNTMxNDcKCi8oLio/KShcZCspLwogICAgSSBoYXZlIDIgbnVtYmVyczogNTMxNDcKCi8oLiopKFxkKykkLwogICAgSSBoYXZlIDIgbnVtYmVyczogNTMxNDcKCi8oLio/KShcZCspJC8KICAgIEkgaGF2ZSAyIG51bWJlcnM6IDUzMTQ3CgovKC4qKVxiKFxkKykkLwogICAgSSBoYXZlIDIgbnVtYmVyczogNTMxNDcKCi8oLipcRCkoXGQrKSQvCiAgICBJIGhhdmUgMiBudW1iZXJzOiA1MzE0NwoKL15cRCooPyExMjMpLwogICAgQUJDMTIzCiAgICAgCi9eKFxEKikoPz1cZCkoPyExMjMpLwogICAgQUJDNDQ1CiAgICAqKiogRmFpbGVycwogICAgQUJDMTIzCiAgICAKL15bVy1dNDZdLwogICAgVzQ2XTc4OSAKICAgIC00Nl03ODkKICAgICoqKiBGYWlsZXJzCiAgICBXYWxsCiAgICBaZWJyYQogICAgNDIKICAgIFthYmNkXSAKICAgIF1hYmNkWwogICAgICAgCi9eW1ctXF00Nl0vCiAgICBXNDZdNzg5IAogICAgV2FsbAogICAgWmVicmEKICAgIFh5bG9waG9uZSAgCiAgICA0MgogICAgW2FiY2RdIAogICAgXWFiY2RbCiAgICBcXGJhY2tzbGFzaCAKICAgICoqKiBGYWlsZXJzCiAgICAtNDZdNzg5CiAgICB3ZWxsCiAgICAKL1xkXGRcL1xkXGRcL1xkXGRcZFxkLwogICAgMDEvMDEvMjAwMAoKL3dvcmQgKD86W2EtekEtWjAtOV0rICl7MCwxMH1vdGhlcndvcmQvCiAgd29yZCBjYXQgZG9nIGVsZXBoYW50IG11c3NlbCBjb3cgaG9yc2UgY2FuYXJ5IGJhYm9vbiBzbmFrZSBzaGFyayBvdGhlcndvcmQKICB3b3JkIGNhdCBkb2cgZWxlcGhhbnQgbXVzc2VsIGNvdyBob3JzZSBjYW5hcnkgYmFib29uIHNuYWtlIHNoYXJrCgovd29yZCAoPzpbYS16QS1aMC05XSsgKXswLDMwMH1vdGhlcndvcmQvCiAgd29yZCBjYXQgZG9nIGVsZXBoYW50IG11c3NlbCBjb3cgaG9yc2UgY2FuYXJ5IGJhYm9vbiBzbmFrZSBzaGFyayB0aGUgcXVpY2sgYnJvd24gZm94IGFuZCB0aGUgbGF6eSBkb2cgYW5kIHNldmVyYWwgb3RoZXIgd29yZHMgZ2V0dGluZyBjbG9zZSB0byB0aGlydHkgYnkgbm93IEkgaG9wZQoKL14oYSl7MCwwfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIgICAgIAoKL14oYSl7MCwxfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIgIAoKL14oYSl7MCwyfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIgIAoKL14oYSl7MCwzfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIKICAgIGFhYSAgIAoKL14oYSl7MCx9LwogICAgYmNkCiAgICBhYmMKICAgIGFhYgogICAgYWFhCiAgICBhYWFhYWFhYSAgICAKCi9eKGEpezEsMX0vCiAgICBiY2QKICAgIGFiYwogICAgYWFiICAKCi9eKGEpezEsMn0vCiAgICBiY2QKICAgIGFiYwogICAgYWFiICAKCi9eKGEpezEsM30vCiAgICBiY2QKICAgIGFiYwogICAgYWFiCiAgICBhYWEgICAKCi9eKGEpezEsfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIKICAgIGFhYQogICAgYWFhYWFhYWEgICAgCgovLipcLmdpZi8KICAgIGJvcmZsZVxuYmliLmdpZlxubm8KCi8uezAsfVwuZ2lmLwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ubwoKLy4qXC5naWYvbQogICAgYm9yZmxlXG5iaWIuZ2lmXG5ubwoKLy4qXC5naWYvcwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ubwoKLy4qXC5naWYvbXMKICAgIGJvcmZsZVxuYmliLmdpZlxubm8KICAgIAovLiokLwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ubwoKLy4qJC9tCiAgICBib3JmbGVcbmJpYi5naWZcbm5vCgovLiokL3MKICAgIGJvcmZsZVxuYmliLmdpZlxubm8KCi8uKiQvbXMKICAgIGJvcmZsZVxuYmliLmdpZlxubm8KICAgIAovLiokLwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ub1xuCgovLiokL20KICAgIGJvcmZsZVxuYmliLmdpZlxubm9cbgoKLy4qJC9zCiAgICBib3JmbGVcbmJpYi5naWZcbm5vXG4KCi8uKiQvbXMKICAgIGJvcmZsZVxuYmliLmdpZlxubm9cbgogICAgCi8oLipYfF5CKS8KICAgIGFiY2RlXG4xMjM0WHl6CiAgICBCYXJGb28gCiAgICAqKiogRmFpbGVycwogICAgYWJjZGVcbkJhciAgCgovKC4qWHxeQikvbQogICAgYWJjZGVcbjEyMzRYeXoKICAgIEJhckZvbyAKICAgIGFiY2RlXG5CYXIgIAoKLyguKlh8XkIpL3MKICAgIGFiY2RlXG4xMjM0WHl6CiAgICBCYXJGb28gCiAgICAqKiogRmFpbGVycwogICAgYWJjZGVcbkJhciAgCgovKC4qWHxeQikvbXMKICAgIGFiY2RlXG4xMjM0WHl6CiAgICBCYXJGb28gCiAgICBhYmNkZVxuQmFyICAKCi8oP3MpKC4qWHxeQikvCiAgICBhYmNkZVxuMTIzNFh5egogICAgQmFyRm9vIAogICAgKioqIEZhaWxlcnMgCiAgICBhYmNkZVxuQmFyICAKCi8oP3M6LipYfF5CKS8KICAgIGFiY2RlXG4xMjM0WHl6CiAgICBCYXJGb28gCiAgICAqKiogRmFpbGVycyAKICAgIGFiY2RlXG5CYXIgIAoKL14uKkIvCiAgICAqKioqIEZhaWxlcnMKICAgIGFiY1xuQgogICAgIAovKD9zKV4uKkIvCiAgICBhYmNcbkIKCi8oP20pXi4qQi8KICAgIGFiY1xuQgogICAgIAovKD9tcyleLipCLwogICAgYWJjXG5CCgovKD9tcyleQi8KICAgIGFiY1xuQgoKLyg/cylCJC8KICAgIEJcbgoKL15bMC05XVswLTldWzAtOV1bMC05XVswLTldWzAtOV1bMC05XVswLTldWzAtOV1bMC05XVswLTldWzAtOV0vCiAgICAxMjM0NTY2NTQzMjEKICAKL15cZFxkXGRcZFxkXGRcZFxkXGRcZFxkXGQvCiAgICAxMjM0NTY2NTQzMjEgCgovXltcZF1bXGRdW1xkXVtcZF1bXGRdW1xkXVtcZF1bXGRdW1xkXVtcZF1bXGRdW1xkXS8KICAgIDEyMzQ1NjY1NDMyMQogIAovXlthYmNdezEyfS8KICAgIGFiY2FiY2FiY2FiYwogICAgCi9eW2EtY117MTJ9LwogICAgYWJjYWJjYWJjYWJjCiAgICAKL14oYXxifGMpezEyfS8KICAgIGFiY2FiY2FiY2FiYyAKCi9eW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHkwMTIzNDU2Nzg5XS8KICAgIG4KICAgICoqKiBGYWlsZXJzIAogICAgeiAKCi9hYmNkZXswLDB9LwogICAgYWJjZAogICAgKioqIEZhaWxlcnMKICAgIGFiY2UgIAoKL2FiW2NkXXswLDB9ZS8KICAgIGFiZQogICAgKioqIEZhaWxlcnMKICAgIGFiY2RlIAogICAgCi9hYihjKXswLDB9ZC8KICAgIGFiZAogICAgKioqIEZhaWxlcnMKICAgIGFiY2QgICAKCi9hKGIqKS8KICAgIGEKICAgIGFiCiAgICBhYmJiYgogICAgKioqIEZhaWxlcnMKICAgIGJiYmJiICAgIAogICAgCi9hYlxkezB9ZS8KICAgIGFiZQogICAgKioqIEZhaWxlcnMKICAgIGFiMWUgICAKICAgIAovIihbXlxcIl0rfFxcLikqIi8KICAgIHRoZSBcInF1aWNrXCIgYnJvd24gZm94CiAgICBcInRoZSBcXFwicXVpY2tcXFwiIGJyb3duIGZveFwiIAoKLy4qPy9nKwogICAgYWJjCiAgCi9cYi9nKwogICAgYWJjIAoKL1xiLytnCiAgICBhYmMgCgovL2cKICAgIGFiYwoKLzx0cihbXHdcV1xzXGRdW148Pl17MCx9KT48VEQoW1x3XFdcc1xkXVtePD5dezAsfSk+KFtcZF17MCx9XC4pKC4qKSgoPEJSPihbXHdcV1xzXGRdW148Pl17MCx9KXxbXHNdezAsfSkpPFwvYT48XC9URD48VEQoW1x3XFdcc1xkXVtePD5dezAsfSk+KFtcd1xXXHNcZF1bXjw+XXswLH0pPFwvVEQ+PFREKFtcd1xXXHNcZF1bXjw+XXswLH0pPihbXHdcV1xzXGRdW148Pl17MCx9KTxcL1REPjxcL1RSPi9pcwogIDxUUiBCR0NPTE9SPScjREJFOUU5Jz48VEQgYWxpZ249bGVmdCB2YWxpZ249dG9wPjQzLjxhIGhyZWY9J2pvYmxpc3QuY2ZtP0pvYklEPTk0IDY3MzUmS2V5d29yZD0nPldvcmQgUHJvY2Vzc29yPEJSPihOLTEyODYpPC9hPjwvVEQ+PFREIGFsaWduPWxlZnQgdmFsaWduPXRvcD5MZWdhIGxzdGFmZi5jb208L1REPjxURCBhbGlnbj1sZWZ0IHZhbGlnbj10b3A+Q0EgLSBTdGF0ZXdpZGU8L1REPjwvVFI+CgovYVteYV1iLwogICAgYWNiCiAgICBhXG5iCiAgICAKL2EuYi8KICAgIGFjYgogICAgKioqIEZhaWxlcnMgCiAgICBhXG5iICAgCiAgICAKL2FbXmFdYi9zCiAgICBhY2IKICAgIGFcbmIgIAogICAgCi9hLmIvcwogICAgYWNiCiAgICBhXG5iICAKCi9eKGIrP3xhKXsxLDJ9P2MvCiAgICBiYWMKICAgIGJiYWMKICAgIGJiYmFjCiAgICBiYmJiYWMKICAgIGJiYmJiYWMgCgovXihiK3xhKXsxLDJ9P2MvCiAgICBiYWMKICAgIGJiYWMKICAgIGJiYmFjCiAgICBiYmJiYWMKICAgIGJiYmJiYWMgCiAgICAKLyg/IVxBKXgvbQogICAgeFxuYlxuCiAgICBhXGJ4XG4gIAogICAgCi9ceDB7YWJ9LwogICAgXDB7YWJ9IAoKLyhBfEIpKj9DRC8KICAgIENEIAogICAgCi8oQXxCKSpDRC8KICAgIENEIAoKLyhBQikqP1wxLwogICAgQUJBQkFCCgovKEFCKSpcMS8KICAgIEFCQUJBQgogICAgCi8oPzwhYmFyKWZvby8KICAgIGZvbwogICAgY2F0Zm9vZAogICAgYXJmb290bGUKICAgIHJmb29zaAogICAgKioqIEZhaWxlcnMKICAgIGJhcmZvbwogICAgdG93YmFyZm9vCgovXHd7M30oPzwhYmFyKWZvby8KICAgIGNhdGZvb2QKICAgICoqKiBGYWlsZXJzCiAgICBmb28KICAgIGJhcmZvbwogICAgdG93YmFyZm9vCgovKD88PShmb28pYSliYXIvCiAgICBmb29hYmFyCiAgICAqKiogRmFpbGVycwogICAgYmFyCiAgICBmb29iYmFyCiAgICAgIAovXEFhYmNcei9tCiAgICBhYmMKICAgICoqKiBGYWlsZXJzCiAgICBhYmNcbiAgIAogICAgcXFxXG5hYmMKICAgIGFiY1xuenp6CiAgICBxcXFcbmFiY1xuenp6CgoiKD8+LiovKWZvbyIKICAgIC90aGlzL2lzL2EvdmVyeS9sb25nL2xpbmUvaW4vZGVlZC93aXRoL3ZlcnkvbWFueS9zbGFzaGVzL2luL2l0L3lvdS9zZWUvCgoiKD8+LiovKWZvbyIKICAgIC90aGlzL2lzL2EvdmVyeS9sb25nL2xpbmUvaW4vZGVlZC93aXRoL3ZlcnkvbWFueS9zbGFzaGVzL2luL2FuZC9mb28KCi8oPz4oXC5cZFxkWzEtOV0/KSlcZCsvCiAgICAxLjIzMDAwMzkzOAogICAgMS44NzUwMDAyODIKICAgICoqKiBGYWlsZXJzIAogICAgMS4yMzUgCgovXigoPz5cdyspfCg/PlxzKykpKiQvCiAgICBub3cgaXMgdGhlIHRpbWUgZm9yIGFsbCBnb29kIG1lbiB0byBjb21lIHRvIHRoZSBhaWQgb2YgdGhlIHBhcnR5CiAgICAqKiogRmFpbGVycwogICAgdGhpcyBpcyBub3QgYSBsaW5lIHdpdGggb25seSB3b3JkcyBhbmQgc3BhY2VzIQogICAgCi8oXGQrKShcdykvCiAgICAxMjM0NWEKICAgIDEyMzQ1KyAKCi8oKD8+XGQrKSkoXHcpLwogICAgMTIzNDVhCiAgICAqKiogRmFpbGVycwogICAgMTIzNDUrIAoKLyg/PmErKWIvCiAgICBhYWFiCgovKCg/PmErKWIpLwogICAgYWFhYgoKLyg/PihhKykpYi8KICAgIGFhYWIKCi8oPz5iKSsvCiAgICBhYWFiYmJjY2MKCi8oPz5hK3xiK3xjKykqYy8KICAgIGFhYWJiYmJjY2NjZAoKLygoPz5bXigpXSspfFwoW14oKV0qXCkpKy8KICAgICgoYWJjKGFkZSl1ZmgoKSgpeAogICAgCi9cKCgoPz5bXigpXSspfFwoW14oKV0rXCkpK1wpLyAKICAgIChhYmMpCiAgICAoYWJjKGRlZil4eXopCiAgICAqKiogRmFpbGVycwogICAgKCgoKWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhICAgCgovYSg/LWkpYi9pCiAgICBhYgogICAgQWIKICAgICoqKiBGYWlsZXJzIAogICAgYUIKICAgIEFCCiAgICAgICAgCi8oYSAoP3gpYiBjKWQgZS8KICAgIGEgYmNkIGUKICAgICoqKiBGYWlsZXJzCiAgICBhIGIgY2QgZQogICAgYWJjZCBlICAgCiAgICBhIGJjZGUgCiAKLyhhIGIoP3gpYyBkICg/LXgpZSBmKS8KICAgIGEgYmNkZSBmCiAgICAqKiogRmFpbGVycwogICAgYWJjZGVmICAKCi8oYSg/aSliKWMvCiAgICBhYmMKICAgIGFCYwogICAgKioqIEZhaWxlcnMKICAgIGFiQwogICAgYUJDICAKICAgIEFiYwogICAgQUJjCiAgICBBQkMKICAgIEFiQwogICAgCi9hKD9pOmIpYy8KICAgIGFiYwogICAgYUJjCiAgICAqKiogRmFpbGVycyAKICAgIEFCQwogICAgYWJDCiAgICBhQkMKICAgIAovYSg/aTpiKSpjLwogICAgYUJjCiAgICBhQkJjCiAgICAqKiogRmFpbGVycyAKICAgIGFCQwogICAgYUJCQwogICAgCi9hKD89Yig/aSljKVx3XHdkLwogICAgYWJjZAogICAgYWJDZAogICAgKioqIEZhaWxlcnMKICAgIGFCQ2QKICAgIGFiY0QgICAgIAogICAgCi8oP3MtaTptb3JlLip0aGFuKS4qbWlsbGlvbi9pCiAgICBtb3JlIHRoYW4gbWlsbGlvbgogICAgbW9yZSB0aGFuIE1JTExJT04KICAgIG1vcmUgXG4gdGhhbiBNaWxsaW9uIAogICAgKioqIEZhaWxlcnMKICAgIE1PUkUgVEhBTiBNSUxMSU9OICAgIAogICAgbW9yZSBcbiB0aGFuIFxuIG1pbGxpb24gCgovKD86KD9zLWkpbW9yZS4qdGhhbikuKm1pbGxpb24vaQogICAgbW9yZSB0aGFuIG1pbGxpb24KICAgIG1vcmUgdGhhbiBNSUxMSU9OCiAgICBtb3JlIFxuIHRoYW4gTWlsbGlvbiAKICAgICoqKiBGYWlsZXJzCiAgICBNT1JFIFRIQU4gTUlMTElPTiAgICAKICAgIG1vcmUgXG4gdGhhbiBcbiBtaWxsaW9uIAogICAgCi8oPz5hKD9pKWIrKStjLyAKICAgIGFiYwogICAgYUJiYwogICAgYUJCYyAKICAgICoqKiBGYWlsZXJzCiAgICBBYmMKICAgIGFiQWIgICAgCiAgICBhYmJDIAogICAgCi8oPz1hKD9pKWIpXHdcd2MvCiAgICBhYmMKICAgIGFCYwogICAgKioqIEZhaWxlcnMKICAgIEFiIAogICAgYWJDCiAgICBhQkMgICAgIAogICAgCi8oPzw9YSg/aSliKShcd1x3KWMvCiAgICBhYnh4YwogICAgYUJ4eGMKICAgICoqKiBGYWlsZXJzCiAgICBBYnh4YwogICAgQUJ4eGMKICAgIGFieHhDICAgICAgCgovKD86KGEpfGIpKD8oMSlBfEIpLwogICAgYUEKICAgIGJCCiAgICAqKiogRmFpbGVycwogICAgYUIKICAgIGJBICAgIAoKL14oYSk/KD8oMSlhfGIpKyQvCiAgICBhYQogICAgYgogICAgYmIgIAogICAgKioqIEZhaWxlcnMKICAgIGFiICAgCgovXig/KD89YWJjKVx3ezN9OnxcZFxkKSQvCiAgICBhYmM6CiAgICAxMgogICAgKioqIEZhaWxlcnMKICAgIDEyMwogICAgeHl6ICAgIAoKL14oPyg/IWFiYylcZFxkfFx3ezN9OikkLwogICAgYWJjOgogICAgMTIKICAgICoqKiBGYWlsZXJzCiAgICAxMjMKICAgIHh5eiAgICAKICAgIAovKD8oPzw9Zm9vKWJhcnxjYXQpLwogICAgZm9vYmFyCiAgICBjYXQKICAgIGZjYXQKICAgIGZvY2F0ICAgCiAgICAqKiogRmFpbGVycwogICAgZm9vY2F0ICAKCi8oPyg/PCFmb28pY2F0fGJhcikvCiAgICBmb29iYXIKICAgIGNhdAogICAgZmNhdAogICAgZm9jYXQgICAKICAgICoqKiBGYWlsZXJzCiAgICBmb29jYXQgIAoKLyggXCggKT8gW14oKV0rICg/KDEpIFwpIHwpIC94CiAgICBhYmNkCiAgICAoYWJjZCkKICAgIHRoZSBxdWljayAoYWJjZCkgZm94CiAgICAoYWJjZCAgIAoKLyggXCggKT8gW14oKV0rICg/KDEpIFwpICkgL3gKICAgIGFiY2QKICAgIChhYmNkKQogICAgdGhlIHF1aWNrIChhYmNkKSBmb3gKICAgIChhYmNkICAgCgovXig/KDIpYXwoMSkoMikpKyQvCiAgICAxMgogICAgMTJhCiAgICAxMmFhCiAgICAqKiogRmFpbGVycwogICAgMTIzNCAgICAKCi8oKD9pKWJsYWgpXHMrXDEvCiAgICBibGFoIGJsYWgKICAgIEJMQUggQkxBSAogICAgQmxhaCBCbGFoCiAgICBibGFIIGJsYUgKICAgICoqKiBGYWlsZXJzCiAgICBibGFoIEJMQUgKICAgIEJsYWggYmxhaCAgICAgIAogICAgYmxhSCBibGFoIAoKLygoP2kpYmxhaClccysoP2k6XDEpLwogICAgYmxhaCBibGFoCiAgICBCTEFIIEJMQUgKICAgIEJsYWggQmxhaAogICAgYmxhSCBibGFICiAgICBibGFoIEJMQUgKICAgIEJsYWggYmxhaCAgICAgIAogICAgYmxhSCBibGFoIAoKLyg/PmEqKSovCiAgICBhCiAgICBhYQogICAgYWFhYQogICAgCi8oYWJjfCkrLwogICAgYWJjCiAgICBhYmNhYmMKICAgIGFiY2FiY2FiYwogICAgeHl6ICAgICAgCgovKFthXSopKi8KICAgIGEKICAgIGFhYWFhIAogCi8oW2FiXSopKi8KICAgIGEKICAgIGIKICAgIGFiYWJhYgogICAgYWFhYWJjZGUKICAgIGJiYmIgICAgCiAKLyhbXmFdKikqLwogICAgYgogICAgYmJiYgogICAgYWFhICAgCiAKLyhbXmFiXSopKi8KICAgIGNjY2MKICAgIGFiYWIgIAogCi8oW2FdKj8pKi8KICAgIGEKICAgIGFhYWEgCiAKLyhbYWJdKj8pKi8KICAgIGEKICAgIGIKICAgIGFiYWIKICAgIGJhYmEgICAKIAovKFteYV0qPykqLwogICAgYgogICAgYmJiYgogICAgYWFhICAgCiAKLyhbXmFiXSo/KSovCiAgICBjCiAgICBjY2NjCiAgICBiYWJhICAgCiAKLyg/PmEqKSovCiAgICBhCiAgICBhYWFiY2RlIAogCi8oKD8+YSopKSovCiAgICBhYWFhYQogICAgYWFiYmFhIAogCi8oKD8+YSo/KSkqLwogICAgYWFhYWEKICAgIGFhYmJhYSAKCi8oPyg/PVteYS16XStbYS16XSkgIFxkezJ9LVthLXpdezN9LVxkezJ9ICB8ICBcZHsyfS1cZHsyfS1cZHsyfSApIC94CiAgICAxMi1zZXAtOTgKICAgIDEyLTA5LTk4CiAgICAqKiogRmFpbGVycwogICAgc2VwLTEyLTk4CiAgICAgICAgCi8oPzw9KGZvbykpYmFyXDEvCiAgICBmb29iYXJmb28KICAgIGZvb2JhcmZvb3RsaW5nIAogICAgKioqIEZhaWxlcnMKICAgIGZvb2JhcgogICAgYmFyZm9vICAgCgovKD9pOnNhdHVyZGF5fHN1bmRheSkvCiAgICBzYXR1cmRheQogICAgc3VuZGF5CiAgICBTYXR1cmRheQogICAgU3VuZGF5CiAgICBTQVRVUkRBWQogICAgU1VOREFZCiAgICBTdW5EYXkKICAgIAovKGEoP2kpYmN8QkIpeC8KICAgIGFiY3gKICAgIGFCQ3gKICAgIGJieAogICAgQkJ4CiAgICAqKiogRmFpbGVycwogICAgYWJjWAogICAgYUJDWAogICAgYmJYCiAgICBCQlggICAgICAgICAgICAgICAKCi9eKFthYl0oP2kpW2NkXXxbZWZdKS8KICAgIGFjCiAgICBhQwogICAgYkQKICAgIGVsZXBoYW50CiAgICBFdXJvcGUgCiAgICBmcm9nCiAgICBGcmFuY2UKICAgICoqKiBGYWlsZXJzCiAgICBBZnJpY2EgICAgIAoKL14oYWJ8YSg/aSlbYi1jXSg/bS1pKWR8eCg/aSl5fHopLwogICAgYWIKICAgIGFCZAogICAgeHkKICAgIHhZCiAgICB6ZWJyYQogICAgWmFtYmVzaQogICAgKioqIEZhaWxlcnMKICAgIGFDRCAgCiAgICBYWSAgCgovKD88PWZvb1xuKV5iYXIvbQogICAgZm9vXG5iYXIKICAgICoqKiBGYWlsZXJzCiAgICBiYXIKICAgIGJhelxuYmFyICAgCgovKD88PSg/PCFmb28pYmFyKWJhei8KICAgIGJhcmJhegogICAgYmFyYmFyYmF6IAogICAga29vYmFyYmF6IAogICAgKioqIEZhaWxlcnMKICAgIGJhegogICAgZm9vYmFyYmF6IAoKL1RoZSBjYXNlIG9mIGFhYWFhYSBpcyBtaXNzZWQgb3V0IGJlbG93IGJlY2F1c2UgSSB0aGluayBQZXJsIDUuMDA1XzAyIGdldHMvCi9pdCB3cm9uZzsgaXQgc2V0cyAkMSB0byBhYWEgcmF0aGVyIHRoYW4gYWEuIENvbXBhcmUgdGhlIGZvbGxvd2luZyB0ZXN0LC8KL3doZXJlIGl0IGRvZXMgc2V0ICQxIHRvIGFhIHdoZW4gbWF0Y2hpbmcgYWFhYWFhLi8KCi9eKGFcMT8pezR9JC8KICAgIGEKICAgIGFhCiAgICBhYWEKICAgIGFhYWEKICAgIGFhYWFhCiAgICBhYWFhYWFhCiAgICBhYWFhYWFhYQogICAgYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhYWFhICAgICAgICAgICAgICAgCgovXihhXDE/KShhXDE/KShhXDI/KShhXDM/KSQvCiAgICBhCiAgICBhYQogICAgYWFhCiAgICBhYWFhCiAgICBhYWFhYQogICAgYWFhYWFhCiAgICBhYWFhYWFhCiAgICBhYWFhYWFhYQogICAgYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhYWFhICAgICAgICAgICAgICAgCgovVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgdGFrZW4gZnJvbSB0aGUgUGVybCA1LjAwNSB0ZXN0IHN1aXRlOyBzb21lIG9mIHRoZW0vCi9hcmUgY29tcGF0aWJsZSB3aXRoIDUuMDA0LCBidXQgSSdkIHJhdGhlciBub3QgaGF2ZSB0byBzb3J0IHRoZW0gb3V0Li8KCi9hYmMvCiAgICBhYmMKICAgIHhhYmN5CiAgICBhYmFiYwogICAgKioqIEZhaWxlcnMKICAgIHhiYwogICAgYXhjCiAgICBhYngKCi9hYipjLwogICAgYWJjCgovYWIqYmMvCiAgICBhYmMKICAgIGFiYmMKICAgIGFiYmJiYwoKLy57MX0vCiAgICBhYmJiYmMKCi8uezMsNH0vCiAgICBhYmJiYmMKCi9hYnswLH1iYy8KICAgIGFiYmJiYwoKL2FiK2JjLwogICAgYWJiYwogICAgKioqIEZhaWxlcnMKICAgIGFiYwogICAgYWJxCgovYWJ7MSx9YmMvCgovYWIrYmMvCiAgICBhYmJiYmMKCi9hYnsxLH1iYy8KICAgIGFiYmJiYwoKL2FiezEsM31iYy8KICAgIGFiYmJiYwoKL2FiezMsNH1iYy8KICAgIGFiYmJiYwoKL2FiezQsNX1iYy8KICAgICoqKiBGYWlsZXJzCiAgICBhYnEKICAgIGFiYmJiYwoKL2FiP2JjLwogICAgYWJiYwogICAgYWJjCgovYWJ7MCwxfWJjLwogICAgYWJjCgovYWI/YmMvCgovYWI/Yy8KICAgIGFiYwoKL2FiezAsMX1jLwogICAgYWJjCgovXmFiYyQvCiAgICBhYmMKICAgICoqKiBGYWlsZXJzCiAgICBhYmJiYmMKICAgIGFiY2MKCi9eYWJjLwogICAgYWJjYwoKL15hYmMkLwoKL2FiYyQvCiAgICBhYWJjCiAgICAqKiogRmFpbGVycwogICAgYWFiYwogICAgYWFiY2QKCi9eLwogICAgYWJjCgovJC8KICAgIGFiYwoKL2EuYy8KICAgIGFiYwogICAgYXhjCgovYS4qYy8KICAgIGF4eXpjCgovYVtiY11kLwogICAgYWJkCiAgICAqKiogRmFpbGVycwogICAgYXh5emQKICAgIGFiYwoKL2FbYi1kXWUvCiAgICBhY2UKCi9hW2ItZF0vCiAgICBhYWMKCi9hWy1iXS8KICAgIGEtCgovYVtiLV0vCiAgICBhLQoKL2FdLwogICAgYV0KCi9hW11dYi8KICAgIGFdYgoKL2FbXmJjXWQvCiAgICBhZWQKICAgICoqKiBGYWlsZXJzCiAgICBhYmQKICAgIGFiZAoKL2FbXi1iXWMvCiAgICBhZGMKCi9hW15dYl1jLwogICAgYWRjCiAgICAqKiogRmFpbGVycwogICAgYS1jCiAgICBhXWMKCi9cYmFcYi8KICAgIGEtCiAgICAtYQogICAgLWEtCgovXGJ5XGIvCiAgICAqKiogRmFpbGVycwogICAgeHkKICAgIHl6CiAgICB4eXoKCi9cQmFcQi8KICAgICoqKiBGYWlsZXJzCiAgICBhLQogICAgLWEKICAgIC1hLQoKL1xCeVxiLwogICAgeHkKCi9cYnlcQi8KICAgIHl6CgovXEJ5XEIvCiAgICB4eXoKCi9cdy8KICAgIGEKCi9cVy8KICAgIC0KICAgICoqKiBGYWlsZXJzCiAgICAtCiAgICBhCgovYVxzYi8KICAgIGEgYgoKL2FcU2IvCiAgICBhLWIKICAgICoqKiBGYWlsZXJzCiAgICBhLWIKICAgIGEgYgoKL1xkLwogICAgMQoKL1xELwogICAgLQogICAgKioqIEZhaWxlcnMKICAgIC0KICAgIDEKCi9bXHddLwogICAgYQoKL1tcV10vCiAgICAtCiAgICAqKiogRmFpbGVycwogICAgLQogICAgYQoKL2FbXHNdYi8KICAgIGEgYgoKL2FbXFNdYi8KICAgIGEtYgogICAgKioqIEZhaWxlcnMKICAgIGEtYgogICAgYSBiCgovW1xkXS8KICAgIDEKCi9bXERdLwogICAgLQogICAgKioqIEZhaWxlcnMKICAgIC0KICAgIDEKCi9hYnxjZC8KICAgIGFiYwogICAgYWJjZAoKLygpZWYvCiAgICBkZWYKCi8kYi8KCi9hXChiLwogICAgYShiCgovYVwoKmIvCiAgICBhYgogICAgYSgoYgoKL2FcXGIvCiAgICBhXGIKCi8oKGEpKS8KICAgIGFiYwoKLyhhKWIoYykvCiAgICBhYmMKCi9hK2IrYy8KICAgIGFhYmJhYmMKCi9hezEsfWJ7MSx9Yy8KICAgIGFhYmJhYmMKCi9hLis/Yy8KICAgIGFiY2FiYwoKLyhhK3xiKSovCiAgICBhYgoKLyhhK3xiKXswLH0vCiAgICBhYgoKLyhhK3xiKSsvCiAgICBhYgoKLyhhK3xiKXsxLH0vCiAgICBhYgoKLyhhK3xiKT8vCiAgICBhYgoKLyhhK3xiKXswLDF9LwogICAgYWIKCi9bXmFiXSovCiAgICBjZGUKCi9hYmMvCiAgICAqKiogRmFpbGVycwogICAgYgogICAgCgovYSovCiAgICAKCi8oW2FiY10pKmQvCiAgICBhYmJiY2QKCi8oW2FiY10pKmJjZC8KICAgIGFiY2QKCi9hfGJ8Y3xkfGUvCiAgICBlCgovKGF8YnxjfGR8ZSlmLwogICAgZWYKCi9hYmNkKmVmZy8KICAgIGFiY2RlZmcKCi9hYiovCiAgICB4YWJ5YWJiYnoKICAgIHhheWFiYmJ6CgovKGFifGNkKWUvCiAgICBhYmNkZQoKL1thYmhnZWZkY11pai8KICAgIGhpagoKL14oYWJ8Y2QpZS8KCi8oYWJjfCllZi8KICAgIGFiY2RlZgoKLyhhfGIpYypkLwogICAgYWJjZAoKLyhhYnxhYiopYmMvCiAgICBhYmMKCi9hKFtiY10qKWMqLwogICAgYWJjCgovYShbYmNdKikoYypkKS8KICAgIGFiY2QKCi9hKFtiY10rKShjKmQpLwogICAgYWJjZAoKL2EoW2JjXSopKGMrZCkvCiAgICBhYmNkCgovYVtiY2RdKmRjZGNkZS8KICAgIGFkY2RjZGUKCi9hW2JjZF0rZGNkY2RlLwogICAgKioqIEZhaWxlcnMKICAgIGFiY2RlCiAgICBhZGNkY2RlCgovKGFifGEpYipjLwogICAgYWJjCgovKChhKShiKWMpKGQpLwogICAgYWJjZAoKL1thLXpBLVpfXVthLXpBLVowLTlfXSovCiAgICBhbHBoYQoKL15hKGJjK3xiW2VoXSlnfC5oJC8KICAgIGFiaAoKLyhiYytkJHxlZipnLnxoP2koanxrKSkvCiAgICBlZmZnegogICAgaWoKICAgIHJlZmZnegogICAgKioqIEZhaWxlcnMKICAgIGVmZmcKICAgIGJjZGQKCi8oKCgoKCgoKCgoYSkpKSkpKSkpKSkvCiAgICBhCgovKCgoKCgoKCgoKGEpKSkpKSkpKSkpXDEwLwogICAgYWEKCi8oKCgoKCgoKChhKSkpKSkpKSkpLwogICAgYQoKL211bHRpcGxlIHdvcmRzIG9mIHRleHQvCiAgICAqKiogRmFpbGVycwogICAgYWEKICAgIHVoLXVoCgovbXVsdGlwbGUgd29yZHMvCiAgICBtdWx0aXBsZSB3b3JkcywgeWVhaAoKLyguKiljKC4qKS8KICAgIGFiY2RlCgovXCgoLiopLCAoLiopXCkvCiAgICAoYSwgYikKCi9ba10vCgovYWJjZC8KICAgIGFiY2QKCi9hKGJjKWQvCiAgICBhYmNkCgovYVstXT9jLwogICAgYWMKCi8oYWJjKVwxLwogICAgYWJjYWJjCgovKFthLWNdKilcMS8KICAgIGFiY2FiYwoKLyhhKXxcMS8KICAgIGEKICAgICoqKiBGYWlsZXJzCiAgICBhYgogICAgeAoKLygoW2EtY10pYio/XDIpKi8KICAgIGFiYWJiYmNiYwoKLygoW2EtY10pYio/XDIpezN9LwogICAgYWJhYmJiY2JjCgovKChcM3xiKVwyKGEpeCkrLwogICAgYWFheGFiYXhiYWF4YmJheAoKLygoXDN8YilcMihhKSl7Mix9LwogICAgYmJhYWJhYmJhYmFhYWFhYmJhYWFhYmJhCgovYWJjL2kKICAgIEFCQwogICAgWEFCQ1kKICAgIEFCQUJDCiAgICAqKiogRmFpbGVycwogICAgYWF4YWJ4YmF4YmJ4CiAgICBYQkMKICAgIEFYQwogICAgQUJYCgovYWIqYy9pCiAgICBBQkMKCi9hYipiYy9pCiAgICBBQkMKICAgIEFCQkMKCi9hYio/YmMvaQogICAgQUJCQkJDCgovYWJ7MCx9P2JjL2kKICAgIEFCQkJCQwoKL2FiKz9iYy9pCiAgICBBQkJDCgovYWIrYmMvaQogICAgKioqIEZhaWxlcnMKICAgIEFCQwogICAgQUJRCgovYWJ7MSx9YmMvaQoKL2FiK2JjL2kKICAgIEFCQkJCQwoKL2FiezEsfT9iYy9pCiAgICBBQkJCQkMKCi9hYnsxLDN9P2JjL2kKICAgIEFCQkJCQwoKL2FiezMsNH0/YmMvaQogICAgQUJCQkJDCgovYWJ7NCw1fT9iYy9pCiAgICAqKiogRmFpbGVycwogICAgQUJRCiAgICBBQkJCQkMKCi9hYj8/YmMvaQogICAgQUJCQwogICAgQUJDCgovYWJ7MCwxfT9iYy9pCiAgICBBQkMKCi9hYj8/YmMvaQoKL2FiPz9jL2kKICAgIEFCQwoKL2FiezAsMX0/Yy9pCiAgICBBQkMKCi9eYWJjJC9pCiAgICBBQkMKICAgICoqKiBGYWlsZXJzCiAgICBBQkJCQkMKICAgIEFCQ0MKCi9eYWJjL2kKICAgIEFCQ0MKCi9eYWJjJC9pCgovYWJjJC9pCiAgICBBQUJDCgovXi9pCiAgICBBQkMKCi8kL2kKICAgIEFCQwoKL2EuYy9pCiAgICBBQkMKICAgIEFYQwoKL2EuKj9jL2kKICAgIEFYWVpDCgovYS4qYy9pCiAgICAqKiogRmFpbGVycwogICAgQUFCQwogICAgQVhZWkQKCi9hW2JjXWQvaQogICAgQUJECgovYVtiLWRdZS9pCiAgICBBQ0UKICAgICoqKiBGYWlsZXJzCiAgICBBQkMKICAgIEFCRAoKL2FbYi1kXS9pCiAgICBBQUMKCi9hWy1iXS9pCiAgICBBLQoKL2FbYi1dL2kKICAgIEEtCgovYV0vaQogICAgQV0KCi9hW11dYi9pCiAgICBBXUIKCi9hW15iY11kL2kKICAgIEFFRAoKL2FbXi1iXWMvaQogICAgQURDCiAgICAqKiogRmFpbGVycwogICAgQUJECiAgICBBLUMKCi9hW15dYl1jL2kKICAgIEFEQwoKL2FifGNkL2kKICAgIEFCQwogICAgQUJDRAoKLygpZWYvaQogICAgREVGCgovJGIvaQogICAgKioqIEZhaWxlcnMKICAgIEFdQwogICAgQgoKL2FcKGIvaQogICAgQShCCgovYVwoKmIvaQogICAgQUIKICAgIEEoKEIKCi9hXFxiL2kKICAgIEFcQgoKLygoYSkpL2kKICAgIEFCQwoKLyhhKWIoYykvaQogICAgQUJDCgovYStiK2MvaQogICAgQUFCQkFCQwoKL2F7MSx9YnsxLH1jL2kKICAgIEFBQkJBQkMKCi9hLis/Yy9pCiAgICBBQkNBQkMKCi9hLio/Yy9pCiAgICBBQkNBQkMKCi9hLnswLDV9P2MvaQogICAgQUJDQUJDCgovKGErfGIpKi9pCiAgICBBQgoKLyhhK3xiKXswLH0vaQogICAgQUIKCi8oYSt8YikrL2kKICAgIEFCCgovKGErfGIpezEsfS9pCiAgICBBQgoKLyhhK3xiKT8vaQogICAgQUIKCi8oYSt8Yil7MCwxfS9pCiAgICBBQgoKLyhhK3xiKXswLDF9Py9pCiAgICBBQgoKL1teYWJdKi9pCiAgICBDREUKCi9hYmMvaQoKL2EqL2kKICAgIAoKLyhbYWJjXSkqZC9pCiAgICBBQkJCQ0QKCi8oW2FiY10pKmJjZC9pCiAgICBBQkNECgovYXxifGN8ZHxlL2kKICAgIEUKCi8oYXxifGN8ZHxlKWYvaQogICAgRUYKCi9hYmNkKmVmZy9pCiAgICBBQkNERUZHCgovYWIqL2kKICAgIFhBQllBQkJCWgogICAgWEFZQUJCQloKCi8oYWJ8Y2QpZS9pCiAgICBBQkNERQoKL1thYmhnZWZkY11pai9pCiAgICBISUoKCi9eKGFifGNkKWUvaQogICAgQUJDREUKCi8oYWJjfCllZi9pCiAgICBBQkNERUYKCi8oYXxiKWMqZC9pCiAgICBBQkNECgovKGFifGFiKiliYy9pCiAgICBBQkMKCi9hKFtiY10qKWMqL2kKICAgIEFCQwoKL2EoW2JjXSopKGMqZCkvaQogICAgQUJDRAoKL2EoW2JjXSspKGMqZCkvaQogICAgQUJDRAoKL2EoW2JjXSopKGMrZCkvaQogICAgQUJDRAoKL2FbYmNkXSpkY2RjZGUvaQogICAgQURDRENERQoKL2FbYmNkXStkY2RjZGUvaQoKLyhhYnxhKWIqYy9pCiAgICBBQkMKCi8oKGEpKGIpYykoZCkvaQogICAgQUJDRAoKL1thLXpBLVpfXVthLXpBLVowLTlfXSovaQogICAgQUxQSEEKCi9eYShiYyt8YltlaF0pZ3wuaCQvaQogICAgQUJICgovKGJjK2QkfGVmKmcufGg/aShqfGspKS9pCiAgICBFRkZHWgogICAgSUoKICAgIFJFRkZHWgogICAgKioqIEZhaWxlcnMKICAgIEFEQ0RDREUKICAgIEVGRkcKICAgIEJDREQKCi8oKCgoKCgoKCgoYSkpKSkpKSkpKSkvaQogICAgQQoKLygoKCgoKCgoKChhKSkpKSkpKSkpKVwxMC9pCiAgICBBQQoKLygoKCgoKCgoKGEpKSkpKSkpKSkvaQogICAgQQoKLyg/Oig/Oig/Oig/Oig/Oig/Oig/Oig/Oig/OihhKSkpKSkpKSkpKS9pCiAgICBBCgovKD86KD86KD86KD86KD86KD86KD86KD86KD86KGF8YnxjKSkpKSkpKSkpKS9pCiAgICBDCgovbXVsdGlwbGUgd29yZHMgb2YgdGV4dC9pCiAgICAqKiogRmFpbGVycwogICAgQUEKICAgIFVILVVICgovbXVsdGlwbGUgd29yZHMvaQogICAgTVVMVElQTEUgV09SRFMsIFlFQUgKCi8oLiopYyguKikvaQogICAgQUJDREUKCi9cKCguKiksICguKilcKS9pCiAgICAoQSwgQikKCi9ba10vaQoKL2FiY2QvaQogICAgQUJDRAoKL2EoYmMpZC9pCiAgICBBQkNECgovYVstXT9jL2kKICAgIEFDCgovKGFiYylcMS9pCiAgICBBQkNBQkMKCi8oW2EtY10qKVwxL2kKICAgIEFCQ0FCQwoKL2EoPyFiKS4vCiAgICBhYmFkCgovYSg/PWQpLi8KICAgIGFiYWQKCi9hKD89Y3xkKS4vCiAgICBhYmFkCgovYSg/OmJ8Y3xkKSguKS8KICAgIGFjZQoKL2EoPzpifGN8ZCkqKC4pLwogICAgYWNlCgovYSg/OmJ8Y3xkKSs/KC4pLwogICAgYWNlCiAgICBhY2RiY2RiZQoKL2EoPzpifGN8ZCkrKC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezJ9KC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezQsNX0oLikvCiAgICBhY2RiY2RiZQoKL2EoPzpifGN8ZCl7NCw1fT8oLikvCiAgICBhY2RiY2RiZQoKLygoZm9vKXwoYmFyKSkqLwogICAgZm9vYmFyCgovYSg/OmJ8Y3xkKXs2LDd9KC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezYsN30/KC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezUsNn0oLikvCiAgICBhY2RiY2RiZQoKL2EoPzpifGN8ZCl7NSw2fT8oLikvCiAgICBhY2RiY2RiZQoKL2EoPzpifGN8ZCl7NSw3fSguKS8KICAgIGFjZGJjZGJlCgovYSg/OmJ8Y3xkKXs1LDd9PyguKS8KICAgIGFjZGJjZGJlCgovYSg/OmJ8KGN8ZSl7MSwyfT98ZCkrPyguKS8KICAgIGFjZQoKL14oLispP0IvCiAgICBBQgoKL14oW15hLXpdKXwoXF4pJC8KICAgIC4KCi9eWzw+XSYvCiAgICA8Jk9VVAoKL14oYVwxPyl7NH0kLwogICAgYWFhYWFhYWFhYQogICAgKioqIEZhaWxlcnMKICAgIEFCCiAgICBhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhCgovXihhKD8oMSlcMSkpezR9JC8KICAgIGFhYWFhYWFhYWEKICAgICoqKiBGYWlsZXJzCiAgICBhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhCgovKD86KGYpKG8pKG8pfChiKShhKShyKSkqLwogICAgZm9vYmFyCgovKD88PWEpYi8KICAgIGFiCiAgICAqKiogRmFpbGVycwogICAgY2IKICAgIGIKCi8oPzwhYyliLwogICAgYWIKICAgIGIKICAgIGIKCi8oPzouLikqYS8KICAgIGFiYQoKLyg/Oi4uKSo/YS8KICAgIGFiYQoKL14oPzpifGEoPz0oLikpKSpcMS8KICAgIGFiYwoKL14oKXszLDV9LwogICAgYWJjCgovXihhKykqYXgvCiAgICBhYXgKCi9eKChhfGIpKykqYXgvCiAgICBhYXgKCi9eKChhfGJjKSspKmF4LwogICAgYWF4CgovKGF8eCkqYWIvCiAgICBjYWIKCi8oYSkqYWIvCiAgICBjYWIKCi8oPzooP2kpYSliLwogICAgYWIKCi8oKD9pKWEpYi8KICAgIGFiCgovKD86KD9pKWEpYi8KICAgIEFiCgovKCg/aSlhKWIvCiAgICBBYgoKLyg/Oig/aSlhKWIvCiAgICAqKiogRmFpbGVycwogICAgY2IKICAgIGFCCgovKCg/aSlhKWIvCgovKD9pOmEpYi8KICAgIGFiCgovKCg/aTphKSliLwogICAgYWIKCi8oP2k6YSliLwogICAgQWIKCi8oKD9pOmEpKWIvCiAgICBBYgoKLyg/aTphKWIvCiAgICAqKiogRmFpbGVycwogICAgYUIKICAgIGFCCgovKCg/aTphKSliLwoKLyg/Oig/LWkpYSliL2kKICAgIGFiCgovKCg/LWkpYSliL2kKICAgIGFiCgovKD86KD8taSlhKWIvaQogICAgYUIKCi8oKD8taSlhKWIvaQogICAgYUIKCi8oPzooPy1pKWEpYi9pCiAgICAqKiogRmFpbGVycwogICAgYUIKICAgIEFiCgovKCg/LWkpYSliL2kKCi8oPzooPy1pKWEpYi9pCiAgICBhQgoKLygoPy1pKWEpYi9pCiAgICBhQgoKLyg/Oig/LWkpYSliL2kKICAgICoqKiBGYWlsZXJzCiAgICBBYgogICAgQUIKCi8oKD8taSlhKWIvaQoKLyg/LWk6YSliL2kKICAgIGFiCgovKCg/LWk6YSkpYi9pCiAgICBhYgoKLyg/LWk6YSliL2kKICAgIGFCCgovKCg/LWk6YSkpYi9pCiAgICBhQgoKLyg/LWk6YSliL2kKICAgICoqKiBGYWlsZXJzCiAgICBBQgogICAgQWIKCi8oKD8taTphKSliL2kKCi8oPy1pOmEpYi9pCiAgICBhQgoKLygoPy1pOmEpKWIvaQogICAgYUIKCi8oPy1pOmEpYi9pCiAgICAqKiogRmFpbGVycwogICAgQWIKICAgIEFCCgovKCg/LWk6YSkpYi9pCgovKCg/LWk6YS4pKWIvaQogICAgKioqIEZhaWxlcnMKICAgIEFCCiAgICBhXG5CCgovKCg/cy1pOmEuKSliL2kKICAgIGFcbkIKCi8oPzpjfGQpKD86KSg/OmEoPzopKD86YikoPzpiKD86KSkoPzpiKD86KSg/OmIpKSkvCiAgICBjYWJiYmIKCi8oPzpjfGQpKD86KSg/OmFhYWFhYWFhKD86KSg/OmJiYmJiYmJiKSg/OmJiYmJiYmJiKD86KSkoPzpiYmJiYmJiYig/OikoPzpiYmJiYmJiYikpKS8KICAgIGNhYWFhYWFhYWJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiCgovKGFiKVxkXDEvaQogICAgQWI0YWIKICAgIGFiNEFiCgovZm9vXHcqXGR7NH1iYXovCiAgICBmb29iYXIxMjM0YmF6CgoveCh+fikqKD86KD86Rik/KT8vCiAgICB4fn4KCi9eYSg/I3h4eCl7M31jLwogICAgYWFhYwoKL15hICg/I3h4eCkgKD8jeXl5KSB7M31jL3gKICAgIGFhYWMKCi8oPzwhW2NkXSliLwogICAgKioqIEZhaWxlcnMKICAgIEJcbkIKICAgIGRiY2IKCi8oPzwhW2NkXSlbYWJdLwogICAgZGJhYWNiCgovKD88IShjfGQpKWIvCgovKD88IShjfGQpKVthYl0vCiAgICBkYmFhY2IKCi8oPzwhY2QpW2FiXS8KICAgIGNkYWNjYgoKL14oPzphP2I/KSokLwogICAgKioqIEZhaWxlcnMKICAgIGRiY2IKICAgIGEtLQoKLygoP3MpXmEoLikpKCg/bSleYiQpLwogICAgYVxuYlxuY1xuCgovKCg/bSleYiQpLwogICAgYVxuYlxuY1xuCgovKD9tKV5iLwogICAgYVxuYlxuCgovKD9tKV4oYikvCiAgICBhXG5iXG4KCi8oKD9tKV5iKS8KICAgIGFcbmJcbgoKL1xuKCg/bSleYikvCiAgICBhXG5iXG4KCi8oKD9zKS4pYyg/IS4pLwogICAgYVxuYlxuY1xuCiAgICBhXG5iXG5jXG4KCi8oKD9zKWIuKWMoPyEuKS8KICAgIGFcbmJcbmNcbgogICAgYVxuYlxuY1xuCgovXmIvCgovKCleYi8KICAgICoqKiBGYWlsZXJzCiAgICBhXG5iXG5jXG4KICAgIGFcbmJcbmNcbgoKLygoP20pXmIpLwogICAgYVxuYlxuY1xuCgovKD8oMSlhfGIpLwoKLyg/KDEpYnxhKS8KICAgIGEKCi8oeCk/KD8oMSlhfGIpLwogICAgKioqIEZhaWxlcnMKICAgIGEKICAgIGEKCi8oeCk/KD8oMSlifGEpLwogICAgYQoKLygpPyg/KDEpYnxhKS8KICAgIGEKCi8oKSg/KDEpYnxhKS8KCi8oKT8oPygxKWF8YikvCiAgICBhCgovXihcKCk/YmxhaCg/KDEpKFwpKSkkLwogICAgKGJsYWgpCiAgICBibGFoCiAgICAqKiogRmFpbGVycwogICAgYQogICAgYmxhaCkKICAgIChibGFoCgovXihcKCspP2JsYWgoPygxKShcKSkpJC8KICAgIChibGFoKQogICAgYmxhaAogICAgKioqIEZhaWxlcnMKICAgIGJsYWgpCiAgICAoYmxhaAoKLyg/KD8hYSlhfGIpLwoKLyg/KD8hYSlifGEpLwogICAgYQoKLyg/KD89YSlifGEpLwogICAgKioqIEZhaWxlcnMKICAgIGEKICAgIGEKCi8oPyg/PWEpYXxiKS8KICAgIGEKCi8oPz0oYSs/KSkoXDFhYikvCiAgICBhYWFiCgovXig/PShhKz8pKVwxYWIvCgovKFx3KzopKy8KICAgIG9uZToKCi8kKD88PV4oYSkpLwogICAgYQoKLyg/PShhKz8pKShcMWFiKS8KICAgIGFhYWIKCi9eKD89KGErPykpXDFhYi8KICAgICoqKiBGYWlsZXJzCiAgICBhYWFiCiAgICBhYWFiCgovKFtcdzpdKzo6KT8oXHcrKSQvCiAgICBhYmNkCiAgICB4eTp6Ojo6YWJjZAoKL15bXmJjZF0qKGMrKS8KICAgIGFleHljZAoKLyhhKiliKy8KICAgIGNhYWIKCi8oW1x3Ol0rOjopPyhcdyspJC8KICAgIGFiY2QKICAgIHh5Ono6OjphYmNkCiAgICAqKiogRmFpbGVycwogICAgYWJjZDoKICAgIGFiY2Q6CgovXlteYmNkXSooYyspLwogICAgYWV4eWNkCgovKD5hKylhYi8KCi8oPz5hKyliLwogICAgYWFhYgoKLyhbWzpdKykvCiAgICBhOltiXToKCi8oW1s9XSspLwogICAgYT1bYl09CgovKFtbLl0rKS8KICAgIGEuW2JdLgoKLygoPz5hKyliKS8KICAgIGFhYWIKCi8oPz4oYSspKWIvCiAgICBhYWFiCgovKCg/PlteKCldKyl8XChbXigpXSpcKSkrLwogICAgKChhYmMoYWRlKXVmaCgpKCl4CgovYVxaLwogICAgKioqIEZhaWxlcnMKICAgIGFhYWIKICAgIGFcbmJcbgoKL2JcWi8KICAgIGFcbmJcbgoKL2Jcei8KCi9iXFovCiAgICBhXG5iCgovYlx6LwogICAgYVxuYgogICAgKioqIEZhaWxlcnMKICAgIAovXig/Pig/KDEpXC58KCkpW15cV19dKD8+W2EtejAtOS1dKlteXFdfXSk/KSskLwogICAgYQogICAgYWJjCiAgICBhLWIKICAgIDAtOSAKICAgIGEuYgogICAgNS42LjcgIAogICAgdGhlLnF1aWNrLmJyb3duLmZveAogICAgYTEwMC5iMjAwLjMwMGMgIAogICAgMTItYWIuMTI0NSAKICAgICoqKiBGYWlsZXJzCiAgICBcCiAgICAuYQogICAgLWEKICAgIGEtCiAgICBhLiAgCiAgICBhX2IgCiAgICBhLi0KICAgIGEuLiAgCiAgICBhYi4uYmMgCiAgICB0aGUucXVpY2suYnJvd24uZm94LQogICAgdGhlLnF1aWNrLmJyb3duLmZveC4KICAgIHRoZS5xdWljay5icm93bi5mb3hfCiAgICB0aGUucXVpY2suYnJvd24uZm94KyAgICAgICAKCi8oPz4uKikoPzw9KGFiY2R8d3h5eikpLwogICAgYWxwaGFiZXRhYmNkCiAgICBlbmRpbmd3eHl6CiAgICAqKiogRmFpbGVycwogICAgYSByYXRoZXIgbG9uZyBzdHJpbmcgdGhhdCBkb2Vzbid0IGVuZCB3aXRoIG9uZSBvZiB0aGVtCgovd29yZCAoPz4oPzooPyFvdGhlcndvcmQpW2EtekEtWjAtOV0rICl7MCwzMH0pb3RoZXJ3b3JkLwogICAgd29yZCBjYXQgZG9nIGVsZXBoYW50IG11c3NlbCBjb3cgaG9yc2UgY2FuYXJ5IGJhYm9vbiBzbmFrZSBzaGFyayBvdGhlcndvcmQKICAgIHdvcmQgY2F0IGRvZyBlbGVwaGFudCBtdXNzZWwgY293IGhvcnNlIGNhbmFyeSBiYWJvb24gc25ha2Ugc2hhcmsKICAKL3dvcmQgKD8+W2EtekEtWjAtOV0rICl7MCwzMH1vdGhlcndvcmQvCiAgICB3b3JkIGNhdCBkb2cgZWxlcGhhbnQgbXVzc2VsIGNvdyBob3JzZSBjYW5hcnkgYmFib29uIHNuYWtlIHNoYXJrIHRoZSBxdWljayBicm93biBmb3ggYW5kIHRoZSBsYXp5IGRvZyBhbmQgc2V2ZXJhbCBvdGhlciB3b3JkcyBnZXR0aW5nIGNsb3NlIHRvIHRoaXJ0eSBieSBub3cgSSBob3BlCgovKD88PVxkezN9KD8hOTk5KSlmb28vCiAgICA5OTlmb28KICAgIDEyMzk5OWZvbyAKICAgICoqKiBGYWlsZXJzCiAgICAxMjNhYmNmb28KICAgIAovKD88PSg/IS4uLjk5OSlcZHszfSlmb28vCiAgICA5OTlmb28KICAgIDEyMzk5OWZvbyAKICAgICoqKiBGYWlsZXJzCiAgICAxMjNhYmNmb28KCi8oPzw9XGR7M30oPyE5OTkpLi4uKWZvby8KICAgIDEyM2FiY2ZvbwogICAgMTIzNDU2Zm9vIAogICAgKioqIEZhaWxlcnMKICAgIDEyMzk5OWZvbyAgCiAgICAKLyg/PD1cZHszfS4uLikoPzwhOTk5KWZvby8KICAgIDEyM2FiY2ZvbyAgIAogICAgMTIzNDU2Zm9vIAogICAgKioqIEZhaWxlcnMKICAgIDEyMzk5OWZvbyAgCgovPGFbXHNdK2hyZWZbXHNdKj1bXHNdKiAgICAgICAgICAjIGZpbmQgPGEgaHJlZj0KIChbXCJcJ10pPyAgICAgICAgICAgICAgICAgICAgICAgIyBmaW5kIHNpbmdsZSBvciBkb3VibGUgcXVvdGUKICg/KDEpICguKj8pXDEgfCAoW15cc10rKSkgICAgICAgIyBpZiBxdW90ZSBmb3VuZCwgbWF0Y2ggdXAgdG8gbmV4dCBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHF1b3RlLCBvdGhlcndpc2UgbWF0Y2ggdXAgdG8gbmV4dCBzcGFjZQovaXN4CiAgICA8YSBocmVmPWFiY2QgeHl6CiAgICA8YSBocmVmPVwiYWJjZCB4eXogcHFyXCIgY2F0cwogICAgPGEgaHJlZj1cJ2FiY2QgeHl6IHBxclwnIGNhdHMKCi88YVxzK2hyZWZccyo9XHMqICAgICAgICAgICAgICAgICMgZmluZCA8YSBocmVmPQogKFsiJ10pPyAgICAgICAgICAgICAgICAgICAgICAgICAjIGZpbmQgc2luZ2xlIG9yIGRvdWJsZSBxdW90ZQogKD8oMSkgKC4qPylcMSB8IChcUyspKSAgICAgICAgICAjIGlmIHF1b3RlIGZvdW5kLCBtYXRjaCB1cCB0byBuZXh0IG1hdGNoaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcXVvdGUsIG90aGVyd2lzZSBtYXRjaCB1cCB0byBuZXh0IHNwYWNlCi9pc3gKICAgIDxhIGhyZWY9YWJjZCB4eXoKICAgIDxhIGhyZWY9XCJhYmNkIHh5eiBwcXJcIiBjYXRzCiAgICA8YSBocmVmICAgICAgID0gICAgICAgXCdhYmNkIHh5eiBwcXJcJyBjYXRzCgovPGFccytocmVmKD8+XHMqKT0oPz5ccyopICAgICAgICAjIGZpbmQgPGEgaHJlZj0KIChbIiddKT8gICAgICAgICAgICAgICAgICAgICAgICAgIyBmaW5kIHNpbmdsZSBvciBkb3VibGUgcXVvdGUKICg/KDEpICguKj8pXDEgfCAoXFMrKSkgICAgICAgICAgIyBpZiBxdW90ZSBmb3VuZCwgbWF0Y2ggdXAgdG8gbmV4dCBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHF1b3RlLCBvdGhlcndpc2UgbWF0Y2ggdXAgdG8gbmV4dCBzcGFjZQovaXN4CiAgICA8YSBocmVmPWFiY2QgeHl6CiAgICA8YSBocmVmPVwiYWJjZCB4eXogcHFyXCIgY2F0cwogICAgPGEgaHJlZiAgICAgICA9ICAgICAgIFwnYWJjZCB4eXogcHFyXCcgY2F0cwoKLygoWikrfEEpKi8KICAgIFpBQkNERUZHCgovKFooKXxBKSovCiAgICBaQUJDREVGRwoKLyhaKCgpKXxBKSovCiAgICBaQUJDREVGRwoKLygoPz5aKSt8QSkqLwogICAgWkFCQ0RFRkcKCi8oKD8+KSt8QSkqLwogICAgWkFCQ0RFRkcKCi9hKi9nCiAgICBhYmJhYgoKL15bYS1cZF0vCiAgICBhYmNkZQogICAgLXRoaW5ncwogICAgMGRpZ2l0CiAgICAqKiogRmFpbGVycwogICAgYmNkZWYgICAgCgovXltcZC1hXS8KICAgIGFiY2RlCiAgICAtdGhpbmdzCiAgICAwZGlnaXQKICAgICoqKiBGYWlsZXJzCiAgICBiY2RlZiAgICAKICAgIAovW1s6c3BhY2U6XV0rLwogICAgPiBceDA5XHgwYVx4MGNceDBkXHgwYjwKICAgICAKL1tbOmJsYW5rOl1dKy8KICAgID4gXHgwOVx4MGFceDBjXHgwZFx4MGI8CiAgICAgCi9bXHNdKy8KICAgID4gXHgwOVx4MGFceDBjXHgwZFx4MGI8CiAgICAgCi9ccysvCiAgICA+IFx4MDlceDBhXHgwY1x4MGRceDBiPAogICAgIAovYQtiL3gKICAgIGFiCgovKD8hXEEpeC9tCiAgYVxueGJcbgoKLyg/IV4peC9tCiAgYVxueGJcbgoKL2FiY1xRYWJjXEVhYmMvCiAgICBhYmNhYmNhYmMKICAgIAovYWJjXFEoKit8XEVhYmMvCiAgICBhYmMoKit8YWJjIAoKLyAgIGFiY1xRIGFiY1xFYWJjL3gKICAgIGFiYyBhYmNhYmMKICAgICoqKiBGYWlsZXJzCiAgICBhYmNhYmNhYmMgIAogICAgCi9hYmMjY29tbWVudAogICAgXFEjbm90IGNvbW1lbnQKICAgIGxpdGVyYWxcRS94CiAgICBhYmMjbm90IGNvbW1lbnRcbiAgICBsaXRlcmFsICAgICAKCi9hYmMjY29tbWVudAogICAgXFEjbm90IGNvbW1lbnQKICAgIGxpdGVyYWwveAogICAgYWJjI25vdCBjb21tZW50XG4gICAgbGl0ZXJhbCAgICAgCgovYWJjI2NvbW1lbnQKICAgIFxRI25vdCBjb21tZW50CiAgICBsaXRlcmFsXEUgI21vcmUgY29tbWVudAogICAgL3gKICAgIGFiYyNub3QgY29tbWVudFxuICAgIGxpdGVyYWwgICAgIAoKL2FiYyNjb21tZW50CiAgICBcUSNub3QgY29tbWVudAogICAgbGl0ZXJhbFxFICNtb3JlIGNvbW1lbnQveAogICAgYWJjI25vdCBjb21tZW50XG4gICAgbGl0ZXJhbCAgICAgCgovXFFhYmNcJHh5elxFLwogICAgYWJjXFxcJHh5egoKL1xRYWJjXEVcJFxReHl6XEUvCiAgICBhYmNcJHh5egoKL1xHYWJjLwogICAgYWJjCiAgICAqKiogRmFpbGVycwogICAgeHl6YWJjICAKCi9cR2FiYy4vZwogICAgYWJjMWFiYzJ4eXphYmMzCgovYWJjLi9nCiAgICBhYmMxYWJjMnh5emFiYzMgCgovYSg/eDogYiBjIClkLwogICAgWGFiY2RZCiAgICAqKiogRmFpbGVycyAKICAgIFhhIGIgYyBkIFkgCgovKCg/eCl4IHkgeiB8IGEgYiBjKS8KICAgIFhhYmNZCiAgICBBeHl6QiAKCi8oP2kpQUIoPy1pKUMvCiAgICBYYWJDWQogICAgKioqIEZhaWxlcnMKICAgIFhhYmNZICAKCi8oKD9pKUFCKD8taSlDfEQpRS8KICAgIGFiQ0UKICAgIERFCiAgICAqKiogRmFpbGVycwogICAgYWJjRQogICAgYWJDZSAgCiAgICBkRQogICAgRGUgICAgCgovKC4qKVxkK1wxLwogICAgYWJjMTIzYWJjCiAgICBhYmMxMjNiYyAKCi8oLiopXGQrXDEvcwogICAgYWJjMTIzYWJjCiAgICBhYmMxMjNiYyAKICAgIAovKCguKikpXGQrXDEvCiAgICBhYmMxMjNhYmMKICAgIGFiYzEyM2JjICAKCi8tLSBUaGlzIHRlc3RzIGZvciBhbiBJUHY2IGFkZHJlc3MgaW4gdGhlIGZvcm0gd2hlcmUgaXQgY2FuIGhhdmUgdXAgdG8gLS0vCi8tLSBlaWdodCBjb21wb25lbnRzLCBvbmUgYW5kIG9ubHkgb25lIG9mIHdoaWNoIGlzIGVtcHR5LiBUaGlzIG11c3QgYmUgLS0vCi8tLSBhbiBpbnRlcm5hbCBjb21wb25lbnQuIC0tLwoKL14oPyE6KSAgICAgICAgICAgICAgICAgICAgICAgIyBjb2xvbiBkaXNhbGxvd2VkIGF0IHN0YXJ0CiAgKD86ICAgICAgICAgICAgICAgICAgICAgICAgICMgc3RhcnQgb2YgaXRlbQogICAgKD86IFswLTlhLWZdezEsNH0gfCAgICAgICAjIDEtNCBoZXggZGlnaXRzIG9yCiAgICAoPygxKTAgfCAoKSApICkgICAgICAgICAgICMgaWYgbnVsbCBwcmV2aW91c2x5IG1hdGNoZWQsIGZhaWw7IGVsc2UgbnVsbAogICAgOiAgICAgICAgICAgICAgICAgICAgICAgICAjIGZvbGxvd2VkIGJ5IGNvbG9uCiAgKXsxLDd9ICAgICAgICAgICAgICAgICAgICAgICMgZW5kIGl0ZW07IDEtNyBvZiB0aGVtIHJlcXVpcmVkICAgICAgICAgICAgICAgCiAgWzAtOWEtZl17MSw0fSAkICAgICAgICAgICAgICMgZmluYWwgaGV4IG51bWJlciBhdCBlbmQgb2Ygc3RyaW5nCiAgKD8oMSl8LikgICAgICAgICAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGVyZSB3YXMgYW4gZW1wdHkgY29tcG9uZW50CiAgL3hpCiAgICBhMTIzOjphMTIzCiAgICBhMTIzOmIzNDI6OmFiY2QKICAgIGExMjM6YjM0Mjo6MzI0ZTphYmNkCiAgICBhMTIzOmRkZGU6YjM0Mjo6MzI0ZTphYmNkCiAgICBhMTIzOmRkZGU6YjM0Mjo6MzI0ZTpkY2JhOmFiY2QKICAgIGExMjM6ZGRkZTo5OTk5OmIzNDI6OjMyNGU6ZGNiYTphYmNkCiAgICAqKiogRmFpbGVycwogICAgMToyOjM6NDo1OjY6Nzo4CiAgICBhMTIzOmJjZTpkZGRlOjk5OTk6YjM0Mjo6MzI0ZTpkY2JhOmFiY2QKICAgIGExMjM6Ojk5OTk6YjM0Mjo6MzI0ZTpkY2JhOmFiY2QKICAgIGFiY2RlOjI6Mzo0OjU6Njo3OjgKICAgIDo6MQogICAgYWJjZDpmZWUwOjEyMzo6ICAgCiAgICA6MQogICAgMTogIAoKL1t6XFFhLWRdXEVdLwogICAgegogICAgYQogICAgLQogICAgZAogICAgXSAKICAgICoqKiBGYWlsZXJzCiAgICBiICAgICAKCi9bXHpcQ10vCiAgICB6CiAgICBDIAogICAgCi9cTS8KICAgIE0gCiAgICAKLyhhKykqYi8KICAgIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEgCiAgICAKLyg/aSlyZWcoPzp1bCg/Olth5F18YWUpcnxleCkvCiAgICBSRUd1bGFyCiAgICByZWd1bGFlcgogICAgUmVnZXggIAogICAgcmVndWzkciAKCi/F5uXkW+At/8At310rLwogICAgxebl5OAKICAgIMXm5eT/CiAgICDF5uXkwAogICAgxebl5N8KCi8oPzw9WilYLi8KICBceDg0WEFaWEIKCi8gRW5kIG9mIHRlc3RpbnB1dDEgLwo=