WHILETRUE{}aW1wb3J0IHRpbWUKaW1wb3J0IHNwcml0ZQoKCmlmICdtb2RlJyBub3QgaW4gZ2xvYmFscygpIG9yIG1vZGUgPT0gMDoKICAgIHNwcml0ZS5jbGVhckFsbFNwcml0ZXMoKQogICAgcmluZz1bMCwwLDAsMCwwLDAsMCwwLDAsMF0KICAgIG1vZGU9MgogICAgbj01CiAgICBuYW1lPVsn5bCP546L5a2QJywn5rW35bqV5Lik5LiH6YeMJywn6I236Iqx6ZWH55qE5pep5biCJywn5a2U5a2Q55qE5pWF5LqLJywn5aSP5rSb55qE572RJywn6I2J5oi/5a2QJywn5pyI5LiL55yL54yr5aS06bmwJywn5Lya5ZSx5q2M55qE5ZKW5ZWh56OoJywn54i25LiO5a2QJywn5Z+O5Y2X5pen5LqLJ10KICAgIEJvb2tzID0gW10KICAgIGZvciBpIGluIHJhbmdlKDEsIDExLCAxKToKICAgICAgICBCb29rcy5hcHBlbmQoc3ByaXRlLlNwcml0ZSgnYm9va3MvYm9vaycrc3RyKGkpLCAoMTMwKmktNjUwKSBpZiBpPjUgZWxzZSAxMzAqaSwgMzIwIGlmIGk+NSBlbHNlIDEyMCkpCmVsc2U6CiAgICBtb2RlPTIKICAgIG49bGVuKHJpbmcpLTEKcmluZ1tuXT1uCmxpc3Q9cmluZwp0ZW1wPUJvb2tzCnRpbWUuc2xlZXAoMSkKd2hpbGUgbGVuKGxpc3QpPj0yOgogICAgbWlkID0gaW50KGxlbihsaXN0KS8yKQogICAgcWlhbiA9IGxpc3RbMDptaWRdCiAgICBob3UgPSBsaXN0W21pZDpdCiAgICBxaWFudGVtcCA9IHRlbXBbMDptaWRdCiAgICBob3V0ZW1wID0gdGVtcFttaWQ6XQogICAgcXVjaHUgPSBxaWFuCiAgICBsaXN0ID0gaG91CiAgICBxdWNodXRlbXAgPSBxaWFudGVtcAogICAgdGVtcCA9IGhvdXRlbXAKICAgIGZvciBpIGluIHFpYW50ZW1wOgogICAgICAgIGkuZmlsdGVyQnJpZ2h0ZXIoKQogICAgdGltZS5zbGVlcCgwLjUpCiAgICBmb3IgaSBpbiBxaWFudGVtcDoKICAgICAgICBpLmZpbHRlckdyYXkoKQogICAgdGltZS5zbGVlcCgwLjUpCiAgICBpZiAoKCdtb2RlJyBpbiBnbG9iYWxzKCkpYW5kKChtb2RlPT0xIGFuZCBmbGFnIT0wKW9yKG1vZGU9PTIgYW5kIGFueSh2YWx1ZSA+IDAgZm9yIHZhbHVlIGluIHFpYW4pKSkpOgogICAgICAgIGxpc3QgPSBxdWNodQogICAgICAgIHRlbXAgPSBxdWNodXRlbXAKICAgICAgICBmb3IgaSBpbiBxaWFudGVtcDoKICAgICAgICAgICAgaS5maWx0ZXJCcmlnaHRlcigpCiAgICAgICAgdGltZS5zbGVlcCgwLjUpCiAgICAgICAgZm9yIGkgaW4gcWlhbnRlbXA6CiAgICAgICAgICAgIGkuZmlsdGVyT3JpZ2luKCkKICAgICAgICBmb3IgaSBpbiBob3V0ZW1wOgogICAgICAgIAlpLmZpbHRlckJyaWdodGVyKCkKICAgICAgICB0aW1lLnNsZWVwKDAuNSkKICAgICAgICBmb3IgaSBpbiBob3V0ZW1wOgogICAgICAgICAgICBpLmZpbHRlckdyYXkoKQogICAgICAgIHRpbWUuc2xlZXAoMC41KQppZiAnbGlzdCcgaW4gZ2xvYmFscygpOgogICAgcmVzID0gbGlzdFswXQpCb29rc1tyZXNdLmZpbHRlckJyaWdodGVyKCkKcHJpbnQoJ+acqua2iOejgeeahOS5puexjeaYr+esrCcrc3RyKHJlcysxKSsn5pys44CKJytuYW1lW3JlcyUxMF0rJ+OAi+OAgicpCmlmIHJlcyE9bjoKICAgIHByaW50KCfnrZTmoYjplJnor6/vvIHor7fmo4Dmn6XnqIvluo/vvIEnKQptb2RlPTAK