IyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgTk1BS0UgRmlsZSwgQmFzZWQgb24gd3JqcGdjb20uZHNwCiFJRiAiJChDRkcpIiA9PSAiIgpDRkc9d3JqcGdjb20gLSBXaW4zMgohTUVTU0FHRSBLZWluZSBLb25maWd1cmF0aW9uIGFuZ2VnZWJlbi4gd3JqcGdjb20gLSBXaW4zMiB3aXJkIGFscyBTdGFuZGFyZCB2ZXJ3ZW5kZXQuCiFFTkRJRiAKCiFJRiAiJChDRkcpIiAhPSAid3JqcGdjb20gLSBXaW4zMiIKIU1FU1NBR0UgVW5n/Gx0aWdlIEtvbmZpZ3VyYXRpb24gIiQoQ0ZHKSIgYW5nZWdlYmVuLgohTUVTU0FHRSBTaWUga/ZubmVuIGJlaW0gQXVzZvxocmVuIHZvbiBOTUFLRSBlaW5lIEtvbmZpZ3VyYXRpb24gYW5nZWJlbgohTUVTU0FHRSBkdXJjaCBEZWZpbmllcmVuIGRlcyBNYWtyb3MgQ0ZHIGluIGRlciBCZWZlaGxzemVpbGUuIFp1bSBCZWlzcGllbDoKIU1FU1NBR0UgCiFNRVNTQUdFIE5NQUtFIC9mICJ3cmpwZ2NvbS5tYWsiIENGRz0id3JqcGdjb20gLSBXaW4zMiIKIU1FU1NBR0UgCiFNRVNTQUdFIEb8ciBkaWUgS29uZmlndXJhdGlvbiBzdGVoZW4genVyIEF1c3dhaGw6CiFNRVNTQUdFIAohTUVTU0FHRSAid3JqcGdjb20gLSBXaW4zMiIgKGJhc2llcmVuZCBhdWYgICJXaW4zMiAoeDg2KSBDb25zb2xlIEFwcGxpY2F0aW9uIikKIU1FU1NBR0UgCiFFUlJPUiBFaW5lIHVuZ/xsdGlnZSBLb25maWd1cmF0aW9uIHd1cmRlIGFuZ2VnZWJlbi4KIUVORElGIAoKIUlGICIkKE9TKSIgPT0gIldpbmRvd3NfTlQiCk5VTEw9CiFFTFNFIApOVUxMPW51bAohRU5ESUYgCgpDUFA9Y2wuZXhlClJTQz1yYy5leGUKT1VURElSPS5cd3JqcGdjb21cUmVsZWFzZQpJTlRESVI9Llx3cmpwZ2NvbVxSZWxlYXNlCiMgQmVnaW4gQ3VzdG9tIE1hY3JvcwpPdXREaXI9Llx3cmpwZ2NvbVxSZWxlYXNlCiMgRW5kIEN1c3RvbSBNYWNyb3MKCkFMTCA6ICIkKE9VVERJUilcd3JqcGdjb20uZXhlIgoKCkNMRUFOIDoKCS1AZXJhc2UgIiQoSU5URElSKVx2YzYwLmlkYiIKCS1AZXJhc2UgIiQoSU5URElSKVx3cmpwZ2NvbS5vYmoiCgktQGVyYXNlICIkKE9VVERJUilcd3JqcGdjb20uZXhlIgoKIiQoT1VURElSKSIgOgogICAgaWYgbm90IGV4aXN0ICIkKE9VVERJUikvJChOVUxMKSIgbWtkaXIgIiQoT1VURElSKSIKCkJTQzMyPWJzY21ha2UuZXhlCkJTQzMyX0ZMQUdTPS9ub2xvZ28gL28iJChPVVRESVIpXHdyanBnY29tLmJzYyIgCkJTQzMyX1NCUlM9IFwKCQpMSU5LMzI9bGluay5leGUKTElOSzMyX0ZMQUdTPVJlbGVhc2VcanBlZy5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9wZGI6IiQoT1VURElSKVx3cmpwZ2NvbS5wZGIiIC9tYWNoaW5lOkkzODYgL291dDoiJChPVVRESVIpXHdyanBnY29tLmV4ZSIgCkxJTkszMl9PQkpTPSBcCgkiJChJTlRESVIpXHdyanBnY29tLm9iaiIKCiIkKE9VVERJUilcd3JqcGdjb20uZXhlIiA6ICIkKE9VVERJUikiICQoREVGX0ZJTEUpICQoTElOSzMyX09CSlMpCiAgICAkKExJTkszMikgQDw8CiAgJChMSU5LMzJfRkxBR1MpICQoTElOSzMyX09CSlMpCjw8CgpDUFBfUFJPSj0vbm9sb2dvIC9HNiAvTVQgL1czIC9HWCAvT3ggL09hIC9PYjIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX0NPTlNPTEUiIC9GcCIkKElOVERJUilcd3JqcGdjb20ucGNoIiAvWVggL0ZvIiQoSU5URElSKVxcIiAvRmQiJChJTlRESVIpXFwiIC9GRCAvYyAKCi5jeyQoSU5URElSKX0ub2JqOjoKICAgJChDUFApIEA8PAogICAkKENQUF9QUk9KKSAkPCAKPDwKCi5jcHB7JChJTlRESVIpfS5vYmo6OgogICAkKENQUCkgQDw8CiAgICQoQ1BQX1BST0opICQ8IAo8PAoKLmN4eHskKElOVERJUil9Lm9iajo6CiAgICQoQ1BQKSBAPDwKICAgJChDUFBfUFJPSikgJDwgCjw8CgouY3skKElOVERJUil9LnNicjo6CiAgICQoQ1BQKSBAPDwKICAgJChDUFBfUFJPSikgJDwgCjw8CgouY3BweyQoSU5URElSKX0uc2JyOjoKICAgJChDUFApIEA8PAogICAkKENQUF9QUk9KKSAkPCAKPDwKCi5jeHh7JChJTlRESVIpfS5zYnI6OgogICAkKENQUCkgQDw8CiAgICQoQ1BQX1BST0opICQ8IAo8PAoKCiFJRiAiJChOT19FWFRFUk5BTF9ERVBTKSIgIT0gIjEiCiFJRiBFWElTVFMoIndyanBnY29tLmRlcCIpCiFJTkNMVURFICJ3cmpwZ2NvbS5kZXAiCiFFTFNFIAohTUVTU0FHRSBXYXJuaW5nOiBjYW5ub3QgZmluZCAid3JqcGdjb20uZGVwIgohRU5ESUYgCiFFTkRJRiAKCgohSUYgIiQoQ0ZHKSIgPT0gIndyanBnY29tIC0gV2luMzIiClNPVVJDRT0uXHdyanBnY29tLmMKCiIkKElOVERJUilcd3JqcGdjb20ub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKCgohRU5ESUYgCgo=