Li4gU2VxdWVuY2VzL0ludHJpbnNpYyBNZXRhZnVuY3Rpb25zLy9zZXF1ZW5jZV90YWcKCnNlcXVlbmNlX3RhZwo9PT09PT09PT09PT0KClN5bm9wc2lzCi0tLS0tLS0tCgouLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAKICAgIHRlbXBsYXRlPAogICAgICAgICAgdHlwZW5hbWUgWAogICAgICAgID4KICAgIHN0cnVjdCBzZXF1ZW5jZV90YWcKICAgIHsKICAgICAgICB0eXBlZGVmIHx1bnNwZWNpZmllZHwgdHlwZTsKICAgIH07CgoKCkRlc2NyaXB0aW9uCi0tLS0tLS0tLS0tCgpgYHNlcXVlbmNlX3RhZ2BgIGlzIGEgfHRhZy1tZXRhZnVuY3Rpb258IGZvciBhbGwgfHRhZyBkaXNwYXRjaGVkfCAKYGludHJpbnNpYyBzZXF1ZW5jZSBvcGVyYXRpb25zYF9fLgoKX18gYEludHJpbnNpYyBNZXRhZnVuY3Rpb25zYF8KCgpIZWFkZXIKLS0tLS0tCgouLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAKICAgICNpbmNsdWRlIDxib29zdC9tcGwvc2VxdWVuY2VfdGFnLmhwcD4KCgpQYXJhbWV0ZXJzCi0tLS0tLS0tLS0KCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBQYXJhbWV0ZXIgICAgIHwgUmVxdWlyZW1lbnQgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorPT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCnwgYGBYYGAgICAgICAgICB8IEFueSB0eXBlICAgICAgICAgIHwgQSB0eXBlIHRvIG9idGFpbiBhIHNlcXVlbmNlIHRhZyBmb3IuICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKCkV4cHJlc3Npb24gc2VtYW50aWNzCi0tLS0tLS0tLS0tLS0tLS0tLS0tCgpGb3IgYW55IGFyYml0cmFyeSB0eXBlIGBgeGBgOgoKCi4uIHBhcnNlZC1saXRlcmFsOjoKCiAgICB0eXBlZGVmIHNlcXVlbmNlX3RhZzx4Pjo6dHlwZSB0YWc7IAoKOlJldHVybiB0eXBlOgogICAgQSB0eXBlLgoKOlNlbWFudGljczoKICAgIGBgdGFnYGAgaXMgYW4gdW5zcGVjaWZpZWQgdGFnIHR5cGUgZm9yIGBgeGBgLgoKCkNvbXBsZXhpdHkKLS0tLS0tLS0tLQoKQW1vcnRpemVkIGNvbnN0YW50IHRpbWUuCgoKU2VlIGFsc28KLS0tLS0tLS0KCmBJbnRyaW5zaWMgTWV0YWZ1bmN0aW9uc2BfLCB8VGFnIERpc3BhdGNoZWQgTWV0YWZ1bmN0aW9ufAoKCi4uIGNvcHlyaWdodDo6IENvcHlyaWdodCCpICAyMDAxLTIwMDkgQWxla3NleSBHdXJ0b3ZveSBhbmQgRGF2aWQgQWJyYWhhbXMKICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZwogICBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkK