IiBUZXN0cyBmb3IgcmVnZXhwIGluIGxhdGluMSBlbmNvZGluZwpzZXQgZW5jb2Rpbmc9bGF0aW4xCnNjcmlwdGVuY29kaW5nIGxhdGluMQoKZnVuYyBzOmVxdWl2YWxlbmNlX3Rlc3QoKQogIGxldCBzdHIgPSAiQcDBwsPExSBCIEMgRCBFyMnKyyBGIEcgSCBJzM3OzyBKIEsgTCBNIE7RIE/S09TV1tggUCBRIFIgUyBUIFXZ2tvcIFYgVyBYIFndIFogYeDh4uPk5SBiIGMgZCBl6Onq6yBmIGcgaCBp7O3u7yBqIGsgbCBtIG7xIG/y8/T19vggcCBxIHIgcyB0IHX5+vv8IHYgdyB4IHn9/yB6IgogIGxldCBncm91cHMgPSBzcGxpdChzdHIpCiAgZm9yIGdyb3VwMSBpbiBncm91cHMKICAgICAgZm9yIGMgaW4gc3BsaXQoZ3JvdXAxLCAnXHpzJykKCSIgbmV4dCBzdGF0ZW1lbnQgY29uZmlybXMgdGhhdCBlcXVpdmFsZW5jZSBjbGFzcyBtYXRjaGVzIGV2ZXJ5CgkiIGNoYXJhY3RlciBpbiBncm91cAogICAgICAgIGNhbGwgYXNzZXJ0X21hdGNoKCdeW1s9JyAuIGMgLiAnPV1dKiQnLCBncm91cDEpCiAgICAgICAgZm9yIGdyb3VwMiBpbiBncm91cHMKICAgICAgICAgIGlmIGdyb3VwMiAhPSBncm91cDEKCSAgICAiIG5leHQgc3RhdGVtZW50IGNvbnZlcnRzIHRoYXQgZXF1aXZhbGVuY2UgY2xhc3MgZG9lc24ndCBtYXRjaAoJICAgICIgYSBjaGFyYWN0ZXIgaW4gYW55IG90aGVyIGdyb3VwCiAgICAgICAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsKC0xLCBtYXRjaChncm91cDIsICdbWz0nIC4gYyAuICc9XV0nKSkKICAgICAgICAgIGVuZGlmCiAgICAgICAgZW5kZm9yCiAgICAgIGVuZGZvcgogIGVuZGZvcgplbmRmdW5jCgpmdW5jIFRlc3RfZXF1aXZhbGVuY2VfcmUxKCkKICBzZXQgcmU9MQogIGNhbGwgczplcXVpdmFsZW5jZV90ZXN0KCkKZW5kZnVuYwoKZnVuYyBUZXN0X2VxdWl2YWxlbmNlX3JlMigpCiAgc2V0IHJlPTIKICBjYWxsIHM6ZXF1aXZhbGVuY2VfdGVzdCgpCmVuZGZ1bmMK