Ly89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8NLy8NLy8gysrKysrKysrKysrKysrKysrKyspUaGUgTExWTSBDb21waWxlciBJbmZyYXN0cnVjdHVyZQ0vLw0vLyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFVuaXZlcnNpdHkgb2YgSWxsaW5vaXMgT3BlbiBTb3VyY2UNLy8gTGljZW5zZS4gU2VlIExJQ0VOU0UuVFhUIGZvciBkZXRhaWxzLg0vLw0vLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLw0NLy8gdGVzdCBzaXplX3QgY291bnQoKSBjb25zdDsNDSNpbmNsdWRlIDxiaXRzZXQ+DSNpbmNsdWRlIDxjc3RkbGliPg0jaW5jbHVkZSA8Y2Fzc2VydD4NDXRlbXBsYXRlIDxzdGQ6OnNpemVfdCBOPg1zdGQ6OmJpdHNldDxOPg1tYWtlX2JpdHNldCgpDXsNICAgIHN0ZDo6Yml0c2V0PE4+IHY7DSAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgTjsgKytpKQ0gICAgICAgIHZbaV0gPSBzdGF0aWNfY2FzdDxib29sPihzdGQ6OnJhbmQoKSAmIDEpOw0gICAgcmV0dXJuIHY7DX0NDXRlbXBsYXRlIDxzdGQ6OnNpemVfdCBOPg12b2lkIHRlc3RfY291bnQoKQ17DSAgICBjb25zdCBzdGQ6OmJpdHNldDxOPiB2ID0gbWFrZV9iaXRzZXQ8Tj4oKTsNICAgIHN0ZDo6c2l6ZV90IGMxID0gdi5jb3VudCgpOw0gICAgc3RkOjpzaXplX3QgYzIgPSAwOw0gICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8IE47ICsraSkNICAgICAgICBpZiAodltpXSkNICAgICAgICAgICAgKytjMjsNICAgIGFzc2VydChjMSA9PSBjMik7DX0NDQ1pbnQgbWFpbigpDXsNICAgIHRlc3RfY291bnQ8MD4oKTsNICAgIHRlc3RfY291bnQ8MT4oKTsNICAgIHRlc3RfY291bnQ8MzE+KCk7DSAgICB0ZXN0X2NvdW50PDMyPigpOw0gICAgdGVzdF9jb3VudDwzMz4oKTsNICAgIHRlc3RfY291bnQ8NjM+KCk7DSAgICB0ZXN0X2NvdW50PDY0PigpOw0gICAgdGVzdF9jb3VudDw2NT4oKTsNICAgIHRlc3RfY291bnQ8MTAwMD4oKTsNfQ0=