시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 102 49 33 55.000%

문제

N(1≤N≤26)명의 사람이 테니스 시합을 하려 한다. 테니스 게임은 두 명이 하는 것이 일반적이지만, 이 문제에서는 테니스 규칙을 조금 변경하여 N명이 함께 플레이하는 형태가 된다. 즉, N명의 선수들이 모두 하나의 코트에 올라 게임을 진행하는 형식이다.

기본적으로 하나의 시합은 여러 개의 세트로 이루어진다. 각각의 세트는 다시 여러 개의 게임으로 이루어진다. 각각의 게임은 다시 여러 개의 턴으로 이루어진다. 즉 게임에서 이기기 위해서는 먼저 턴을 이기고, 이를 통해 게임을 이긴 뒤, 다시 이를 통해 세트를 이기면 된다.

시합을 하다 보면 서브를 하는 사람이 중요한데, 서브는 각 턴에서 순서대로 하고, 각 게임에서는 이전 게임에서 제일 먼저 서브를 했던 사람의 다음 사람부터 서브를 하고, 각 세트의 첫 번째 게임의 첫 턴에서는 이전 세트의 첫 게임에서 처음 서브를 한 사람의 다음 사람이 서브를 하게 된다. 예를 들어 N=3일 때 서브를 하는 순서는 다음과 같다. 각각의 사람은 알파벳 대문자로 A부터 차례로 표현된다.

  • [1 세트]
    • 게임 1 : A, B, C, A, …
    • 게임 2 : B, C, A, …
    • 게임 3 : C, A, B, …
    • 게임 4 : A, B, C, …
  • [2 세트]
    • 게임 1 : B, C, A, B, …
    • 게임 2 : C, A, B, …
    • 게임 3 : A, B, C, A, …

각 게임의 승자를 가리는 규칙은 다음과 같다. 먼저 각각의 선수들은 0점에서 각 게임을 시작하게 된다. 각 선수들이 하나의 턴에서 이길 경우, 그 선수의 점수의 변화 및 게임의 승자에 대한 규칙은 다음과 같다. 규칙의 우선순위는 (1) > (2) > (3) > (4) 순서이다.

  1. 만약 x의 현재 점수가 3점이고 다른 선수들이 모두 2점을 넘지 못했으면 x가 그 게임을 이기게 된다.
  2. 만약 x의 현재 점수가 4점이면 x가 그 게임을 이기게 된다.
  3. 만약 x가 아닌 선수의 현재 점수가 4점이면 그 선수는 1점을 잃게 된다.
  4. 위의 경우가 아닌 경우 x가 단순히 1점을 얻게 된다.

하나의 세트의 승자는 최소 6개의 게임을 이겼으며, 다른 모든 선수들보다 최소 두 게임을 더 이긴 선수가 된다. 또한 시합의 승자는 최소 3개의 세트를 이긴 선수가 된다. 단, 어떤 세트에서 하나의 선수가 모든 게임을 이긴 경우에는 두 개의 세트를 이긴 것으로 친다.

테니스 시합이 진행될 때, 각 게임의 승자가 주어졌을 때, 최종 승자를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 N와 스트링 S가 주어진다. S는 각 게임에서의 승자를 차례대로 나열한 스트링이다. 단순히 각 게임의 승자만을 나열한 것이기 때문에, 어디까지가 어떤 세트이고 어떤 게임인지를 알기 위해서는 이 스트링을 위의 규칙대로 분석하여야 한다. 스트링의 길이는 100,000을 넘지 않는다. 주어지는 입력이 잘못된 경우는 없다고 가정한다.

출력

첫째 줄에 승자를 출력한다.

예제 입력 1

3 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

예제 출력 1

B
W3sicHJvYmxlbV9pZCI6IjIxODMiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWQxNGNcdWIyYzhcdWMyYTQgXHVjMmRjXHVkNTY5IiwiZGVzY3JpcHRpb24iOiI8cD5OKDEmbGU7TiZsZTsyNilcdWJhODVcdWM3NTggXHVjMGFjXHViNzhjXHVjNzc0IFx1ZDE0Y1x1YjJjOFx1YzJhNCBcdWMyZGNcdWQ1NjlcdWM3NDQgXHVkNTU4XHViODI0IFx1ZDU1Y1x1YjJlNC4gXHVkMTRjXHViMmM4XHVjMmE0IFx1YWM4Y1x1Yzc4NFx1Yzc0MCBcdWI0NTAgXHViYTg1XHVjNzc0IFx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzQgXHVjNzdjXHViYzE4XHVjODAxXHVjNzc0XHVjOWMwXHViOWNjLCBcdWM3NzQgXHViYjM4XHVjODFjXHVjNWQwXHVjMTFjXHViMjk0IFx1ZDE0Y1x1YjJjOFx1YzJhNCBcdWFkZGNcdWNlNTlcdWM3NDQgXHVjODcwXHVhZTA4IFx1YmNjMFx1YWNiZFx1ZDU1OFx1YzVlYyBOXHViYTg1XHVjNzc0IFx1ZDU2OFx1YWVkOCBcdWQ1MGNcdWI4MDhcdWM3NzRcdWQ1NThcdWIyOTQgXHVkNjE1XHVkMGRjXHVhYzAwIFx1YjQxY1x1YjJlNC4gXHVjOTg5LCBOXHViYTg1XHVjNzU4IFx1YzEyMFx1YzIxOFx1YjRlNFx1Yzc3NCBcdWJhYThcdWI0NTAgXHVkNTU4XHViMDk4XHVjNzU4IFx1Y2Y1NFx1ZDJiOFx1YzVkMCBcdWM2MmNcdWI3N2MgXHVhYzhjXHVjNzg0XHVjNzQ0IFx1YzljNFx1ZDU4OVx1ZDU1OFx1YjI5NCBcdWQ2MTVcdWMyZGRcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWUzMFx1YmNmOFx1YzgwMVx1YzczY1x1Yjg1YyBcdWQ1NThcdWIwOThcdWM3NTggXHVjMmRjXHVkNTY5XHVjNzQwIFx1YzVlY1x1YjdlYyBcdWFjMWNcdWM3NTggXHVjMTM4XHVkMmI4XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNFx1YjJlNC4gXHVhYzAxXHVhYzAxXHVjNzU4IFx1YzEzOFx1ZDJiOFx1YjI5NCBcdWIyZTRcdWMyZGMgXHVjNWVjXHViN2VjIFx1YWMxY1x1Yzc1OCBcdWFjOGNcdWM3ODRcdWM3M2NcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0XHViMmU0LiBcdWFjMDFcdWFjMDFcdWM3NTggXHVhYzhjXHVjNzg0XHVjNzQwIFx1YjJlNFx1YzJkYyBcdWM1ZWNcdWI3ZWMgXHVhYzFjXHVjNzU4IFx1ZDEzNFx1YzczY1x1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Yzk4OSBcdWFjOGNcdWM3ODRcdWM1ZDBcdWMxMWMgXHVjNzc0XHVhZTMwXHVhZTMwIFx1YzcwNFx1ZDU3NFx1YzExY1x1YjI5NCBcdWJhM2NcdWM4MDAgXHVkMTM0XHVjNzQ0IFx1Yzc3NFx1YWUzMFx1YWNlMCwgXHVjNzc0XHViOTdjIFx1ZDFiNVx1ZDU3NCBcdWFjOGNcdWM3ODRcdWM3NDQgXHVjNzc0XHVhZTM0IFx1YjRhNCwgXHViMmU0XHVjMmRjIFx1Yzc3NFx1Yjk3YyBcdWQxYjVcdWQ1NzQgXHVjMTM4XHVkMmI4XHViOTdjIFx1Yzc3NFx1YWUzMFx1YmE3NCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzJkY1x1ZDU2OVx1Yzc0NCBcdWQ1NThcdWIyZTQgXHViY2Y0XHViYTc0IFx1YzExY1x1YmUwY1x1Yjk3YyBcdWQ1NThcdWIyOTQgXHVjMGFjXHViNzhjXHVjNzc0IFx1YzkxMVx1YzY5NFx1ZDU1Y1x1YjM3MCwgXHVjMTFjXHViZTBjXHViMjk0IFx1YWMwMSBcdWQxMzRcdWM1ZDBcdWMxMWMgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1ZDU1OFx1YWNlMCwgXHVhYzAxIFx1YWM4Y1x1Yzc4NFx1YzVkMFx1YzExY1x1YjI5NCBcdWM3NzRcdWM4MDQgXHVhYzhjXHVjNzg0XHVjNWQwXHVjMTFjIFx1YzgxY1x1Yzc3YyBcdWJhM2NcdWM4MDAgXHVjMTFjXHViZTBjXHViOTdjIFx1ZDU4OFx1YjM1OCBcdWMwYWNcdWI3OGNcdWM3NTggXHViMmU0XHVjNzRjIFx1YzBhY1x1Yjc4Y1x1YmQ4MFx1ZDEzMCBcdWMxMWNcdWJlMGNcdWI5N2MgXHVkNTU4XHVhY2UwLCBcdWFjMDEgXHVjMTM4XHVkMmI4XHVjNzU4IFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVhYzhjXHVjNzg0XHVjNzU4IFx1Y2NhYiBcdWQxMzRcdWM1ZDBcdWMxMWNcdWIyOTQgXHVjNzc0XHVjODA0IFx1YzEzOFx1ZDJiOFx1Yzc1OCBcdWNjYWIgXHVhYzhjXHVjNzg0XHVjNWQwXHVjMTFjIFx1Y2M5OFx1Yzc0YyBcdWMxMWNcdWJlMGNcdWI5N2MgXHVkNTVjIFx1YzBhY1x1Yjc4Y1x1Yzc1OCBcdWIyZTRcdWM3NGMgXHVjMGFjXHViNzhjXHVjNzc0IFx1YzExY1x1YmUwY1x1Yjk3YyBcdWQ1NThcdWFjOGMgXHViNDFjXHViMmU0LiBcdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0IE49M1x1Yzc3YyBcdWI1NGMgXHVjMTFjXHViZTBjXHViOTdjIFx1ZDU1OFx1YjI5NCBcdWMyMWNcdWMxMWNcdWIyOTQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNC4gXHVhYzAxXHVhYzAxXHVjNzU4IFx1YzBhY1x1Yjc4Y1x1Yzc0MCBcdWM1NGNcdWQzMGNcdWJjYjMgXHViMzAwXHViYjM4XHVjNzkwXHViODVjIEFcdWJkODBcdWQxMzAgXHVjYzI4XHViODQwXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5bMSBcdWMxMzhcdWQyYjhdXHJcblx0PHVsPlxyXG5cdFx0PGxpPlx1YWM4Y1x1Yzc4NCAxIDogQSwgQiwgQywgQSwgJmhlbGxpcDs8XC9saT5cclxuXHRcdDxsaT5cdWFjOGNcdWM3ODQgMiA6IEIsIEMsIEEsICZoZWxsaXA7PFwvbGk+XHJcblx0XHQ8bGk+XHVhYzhjXHVjNzg0IDMgOiBDLCBBLCBCLCAmaGVsbGlwOzxcL2xpPlxyXG5cdFx0PGxpPlx1YWM4Y1x1Yzc4NCA0IDogQSwgQiwgQywgJmhlbGxpcDs8XC9saT5cclxuXHRcdDxsaT4maGVsbGlwOzxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG5cdDxsaT5bMiBcdWMxMzhcdWQyYjhdXHJcblx0PHVsPlxyXG5cdFx0PGxpPlx1YWM4Y1x1Yzc4NCAxIDogQiwgQywgQSwgQiwgJmhlbGxpcDs8XC9saT5cclxuXHRcdDxsaT5cdWFjOGNcdWM3ODQgMiA6IEMsIEEsIEIsICZoZWxsaXA7PFwvbGk+XHJcblx0XHQ8bGk+XHVhYzhjXHVjNzg0IDMgOiBBLCBCLCBDLCBBLCAmaGVsbGlwOzxcL2xpPlxyXG5cdFx0PGxpPiZoZWxsaXA7PFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcblx0PGxpPiZoZWxsaXA7PFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVhYzAxIFx1YWM4Y1x1Yzc4NFx1Yzc1OCBcdWMyYjlcdWM3OTBcdWI5N2MgXHVhYzAwXHViOWFjXHViMjk0IFx1YWRkY1x1Y2U1OVx1Yzc0MCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHViMmU0LiBcdWJhM2NcdWM4MDAgXHVhYzAxXHVhYzAxXHVjNzU4IFx1YzEyMFx1YzIxOFx1YjRlNFx1Yzc0MCAwXHVjODEwXHVjNWQwXHVjMTFjIFx1YWMwMSBcdWFjOGNcdWM3ODRcdWM3NDQgXHVjMmRjXHVjNzkxXHVkNTU4XHVhYzhjIFx1YjQxY1x1YjJlNC4gXHVhYzAxIFx1YzEyMFx1YzIxOFx1YjRlNFx1Yzc3NCBcdWQ1NThcdWIwOThcdWM3NTggXHVkMTM0XHVjNWQwXHVjMTFjIFx1Yzc3NFx1YWUzOCBcdWFjYmRcdWM2YjAsIFx1YWRmOCBcdWMxMjBcdWMyMThcdWM3NTggXHVjODEwXHVjMjE4XHVjNzU4IFx1YmNjMFx1ZDY1NCBcdWJjMGYgXHVhYzhjXHVjNzg0XHVjNzU4IFx1YzJiOVx1Yzc5MFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHVhZGRjXHVjZTU5XHVjNzQwIFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWIyZTQuIFx1YWRkY1x1Y2U1OVx1Yzc1OCBcdWM2YjBcdWMxMjBcdWMyMWNcdWM3MDRcdWIyOTQgKDEpICZndDsgKDIpICZndDsgKDMpICZndDsgKDQpIFx1YzIxY1x1YzExY1x1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPG9sPlxyXG5cdDxsaT5cdWI5Y2NcdWM1N2QgeFx1Yzc1OCBcdWQ2MDRcdWM3YWMgXHVjODEwXHVjMjE4XHVhYzAwIDNcdWM4MTBcdWM3NzRcdWFjZTAgXHViMmU0XHViOTc4IFx1YzEyMFx1YzIxOFx1YjRlNFx1Yzc3NCBcdWJhYThcdWI0NTAgMlx1YzgxMFx1Yzc0NCBcdWIxMThcdWM5YzAgXHViYWJiXHVkNTg4XHVjNzNjXHViYTc0IHhcdWFjMDAgXHVhZGY4IFx1YWM4Y1x1Yzc4NFx1Yzc0NCBcdWM3NzRcdWFlMzBcdWFjOGMgXHViNDFjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWI5Y2NcdWM1N2QgeFx1Yzc1OCBcdWQ2MDRcdWM3YWMgXHVjODEwXHVjMjE4XHVhYzAwIDRcdWM4MTBcdWM3NzRcdWJhNzQgeFx1YWMwMCBcdWFkZjggXHVhYzhjXHVjNzg0XHVjNzQ0IFx1Yzc3NFx1YWUzMFx1YWM4YyBcdWI0MWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YjljY1x1YzU3ZCB4XHVhYzAwIFx1YzU0NFx1YjJjYyBcdWMxMjBcdWMyMThcdWM3NTggXHVkNjA0XHVjN2FjIFx1YzgxMFx1YzIxOFx1YWMwMCA0XHVjODEwXHVjNzc0XHViYTc0IFx1YWRmOCBcdWMxMjBcdWMyMThcdWIyOTQgMVx1YzgxMFx1Yzc0NCBcdWM3ODNcdWFjOGMgXHViNDFjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM3MDRcdWM3NTggXHVhY2JkXHVjNmIwXHVhYzAwIFx1YzU0NFx1YjJjYyBcdWFjYmRcdWM2YjAgeFx1YWMwMCBcdWIyZThcdWMyMWNcdWQ3ODggMVx1YzgxMFx1Yzc0NCBcdWM1YmJcdWFjOGMgXHViNDFjXHViMmU0LjxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPlx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWMxMzhcdWQyYjhcdWM3NTggXHVjMmI5XHVjNzkwXHViMjk0IFx1Y2Q1Y1x1YzE4YyA2XHVhYzFjXHVjNzU4IFx1YWM4Y1x1Yzc4NFx1Yzc0NCBcdWM3NzRcdWFjYmNcdWM3M2NcdWJhNzAsIFx1YjJlNFx1Yjk3OCBcdWJhYThcdWI0ZTAgXHVjMTIwXHVjMjE4XHViNGU0XHViY2Y0XHViMmU0IFx1Y2Q1Y1x1YzE4YyBcdWI0NTAgXHVhYzhjXHVjNzg0XHVjNzQ0IFx1YjM1NCBcdWM3NzRcdWFlMzQgXHVjMTIwXHVjMjE4XHVhYzAwIFx1YjQxY1x1YjJlNC4gXHViNjEwXHVkNTVjIFx1YzJkY1x1ZDU2OVx1Yzc1OCBcdWMyYjlcdWM3OTBcdWIyOTQgXHVjZDVjXHVjMThjIDNcdWFjMWNcdWM3NTggXHVjMTM4XHVkMmI4XHViOTdjIFx1Yzc3NFx1YWUzNCBcdWMxMjBcdWMyMThcdWFjMDAgXHViNDFjXHViMmU0LiBcdWIyZTgsIFx1YzViNFx1YjVhNCBcdWMxMzhcdWQyYjhcdWM1ZDBcdWMxMWMgXHVkNTU4XHViMDk4XHVjNzU4IFx1YzEyMFx1YzIxOFx1YWMwMCBcdWJhYThcdWI0ZTAgXHVhYzhjXHVjNzg0XHVjNzQ0IFx1Yzc3NFx1YWUzNCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgXHViNDUwIFx1YWMxY1x1Yzc1OCBcdWMxMzhcdWQyYjhcdWI5N2MgXHVjNzc0XHVhZTM0IFx1YWM4M1x1YzczY1x1Yjg1YyBcdWNlNWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDE0Y1x1YjJjOFx1YzJhNCBcdWMyZGNcdWQ1NjlcdWM3NzQgXHVjOWM0XHVkNTg5XHViNDIwIFx1YjU0YywgXHVhYzAxIFx1YWM4Y1x1Yzc4NFx1Yzc1OCBcdWMyYjlcdWM3OTBcdWFjMDAgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVjZDVjXHVjODg1IFx1YzJiOVx1Yzc5MFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVjODE1XHVjMjE4IE5cdWM2NDAgXHVjMmE0XHVkMmI4XHViOWMxIFNcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBTXHViMjk0IFx1YWMwMSBcdWFjOGNcdWM3ODRcdWM1ZDBcdWMxMWNcdWM3NTggXHVjMmI5XHVjNzkwXHViOTdjIFx1Y2MyOFx1Yjg0MFx1YjMwMFx1Yjg1YyBcdWIwOThcdWM1ZjRcdWQ1NWMgXHVjMmE0XHVkMmI4XHViOWMxXHVjNzc0XHViMmU0LiBcdWIyZThcdWMyMWNcdWQ3ODggXHVhYzAxIFx1YWM4Y1x1Yzc4NFx1Yzc1OCBcdWMyYjlcdWM3OTBcdWI5Y2NcdWM3NDQgXHViMDk4XHVjNWY0XHVkNTVjIFx1YWM4M1x1Yzc3NFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAsIFx1YzViNFx1YjUxNFx1YWU0Y1x1YzljMFx1YWMwMCBcdWM1YjRcdWI1YTQgXHVjMTM4XHVkMmI4XHVjNzc0XHVhY2UwIFx1YzViNFx1YjVhNCBcdWFjOGNcdWM3ODRcdWM3NzhcdWM5YzBcdWI5N2MgXHVjNTRjXHVhZTMwIFx1YzcwNFx1ZDU3NFx1YzExY1x1YjI5NCBcdWM3NzQgXHVjMmE0XHVkMmI4XHViOWMxXHVjNzQ0IFx1YzcwNFx1Yzc1OCBcdWFkZGNcdWNlNTlcdWIzMDBcdWI4NWMgXHViZDg0XHVjMTFkXHVkNTU4XHVjNWVjXHVjNTdjIFx1ZDU1Y1x1YjJlNC4gXHVjMmE0XHVkMmI4XHViOWMxXHVjNzU4IFx1YWUzOFx1Yzc3NFx1YjI5NCAxMDAsMDAwXHVjNzQ0IFx1YjExOFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuIFx1YzhmY1x1YzViNFx1YzljMFx1YjI5NCBcdWM3ODVcdWI4MjVcdWM3NzQgXHVjNzk4XHViYWJiXHViNDFjIFx1YWNiZFx1YzZiMFx1YjI5NCBcdWM1YzZcdWIyZTRcdWFjZTAgXHVhYzAwXHVjODE1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVjMmI5XHVjNzkwXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIyMTgzIiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiQWxwaGEgQ2VudGF1cmkgVGVubmlzIiwiZGVzY3JpcHRpb24iOiI8cD5BcyB5b3UgbWF5IGtub3csIHBsYW5ldHMgb2YgQWxwaGEgQ2VudGF1cmkgKGlmIHRoZXkgaW5kZWVkIGRvIGV4aXN0KSB3b3VsZCBwcm92aWRlIGV4Y2VsbGVudCBjb25kaXRpb25zIGZvciBpbnRlbGxpZ2VudCBsaWZlIGZvcm1zLjxcL3A+XHJcblxyXG48cD5JdCBpcyBpbmRlZWQgdHJ1ZSB0aGF0IHRoZXJlIGlzIGEgc21hbGwgRWFydGhsaWtlIHBsYW5ldCBuZWFyIEFscGhhIENlbnRhdXJpLCBpbmhhYml0ZWQgYnkgYSBwb3B1bGF0aW9uIG9mIG5vIHBhcnRpY3VsYXIgc2lnbmlmaWNhbmNlLiBUaGVzZSBodW1hbmxpa2UgY3JlYXR1cmVzIGhhdmUgbXVjaCBpbiBjb21tb24gd2l0aCB1cy4gTGl2aW5nIGluIHNpbWlsYXIgY29tdW5pdGllcyBhbmQgaGF2aW5nIHNpbWlsYXIgYm9keSBzdHJ1Y3R1cmUgYW5kIGJlaGF2aW9yYWwgcGF0dGVybnMsIHRoZXkgdW5zdXJwcmlzaW5nbHkgYXBwcmVjaWF0ZSAoYXBwcm94aW1hdGVseSkgdGhlIHNhbWUgdGltZS1raWxsaW5nIGFjdGl2aXRpZXMgYXMgd2UgZG8uIE9uZSBvZiB0aGVzZSwgdGhlIHNlY29uZCBtb3N0IHBvcHVsYXIgYWZ0ZXIgQWxwaGEgQ2VudGF1cmkgQ3JvcXVldCwgaXMgdGhlIEFscGhhIENlbnRhdXJpIFRlbm5pcy48XC9wPlxyXG5cclxuPHA+QWx0aG91Z2ggaXRzIHJ1bGVzIGRpZmZlciBmcm9tIEVhcnRoIFRlbm5pcywgdGhlIHR3byBwbGF5ZXIgdmVyc2lvbiBvZiBBbHBoYSBDZW50YXVyaSBUZW5uaXMgcmVzZW1ibGVzIGl0IGluIG1hbnkgd2F5cy4gU2FtZSBhcyBFYXJ0aCBUZW5uaXMsIGl0IGlzIHBsYXllZCBvbiBhIHJlY3Rhbmd1bGFyIGNvdXJ0IGRpdmlkZWQgaW50byB0d28gcGFydHMgYnkgYSBuZXQuIFR3byBwbGF5ZXJzLCBzdGFuZGluZyBvbiBvcHBvc2l0ZSBzaWRlcyBvZiBpdCwgdXNlIGEgc3RyaW5nZWQgcmFja2V0IHRvIGhpdCBhIGJhbGwgYmFjayBhbmQgZm9ydGggdG8gZWFjaCBvdGhlci4gVGhlcmUgYXJlIGNlcnRhaW4gcnVsZXMgaG93IHRvIGhpdCB0aGUgYmFsbC4gVGhlIHBsYXllciB3aG8gZm9yY2VzIGhpcyBvcHBvbmVudCB0byB2aW9sYXRlIG9uZSBvZiB0aGVzZSBydWxlcyB3aW5zIHRoZSBjdXJyZW50IGJhbGwuIFRoZSBhaW0gb2YgYm90aCBwbGF5ZXJzIGlzIHRvIHdpbiBlbm91Z2ggYmFsbHMgdG8gd2luIGEgZ2FtZSwgZW5vdWdoIGdhbWVzIHRvIHdpbiBhIHNldCBhbmQgZW5vdWdoIHNldHMgdG8gd2luIHRoZSB3aG9sZSBtYXRjaC4gSW4gdGhlIE4gcGxheWVyIHZlcnNpb24gb2YgdGhlIEFscGhhIENlbnRhdXJpIFRlbm5pcyBhIGJhbGwgY2FuIGJlIHdvbiBieSBhbnkgb25lIG9mIHRoZSBOIHBsYXllcnMuIEFsdGhvdWdoIHRlY2huaWNhbCBkZXRhaWxzIG9mIHRoaXMgY2FuIGJlIGRpZmZpY3VsdCB0byBpbWFnaW5lLCBBbHBoYSBDZW50YXVyaWFucyBhcmUgZXh0cmVtZWx5IGludmVudGl2ZS48XC9wPlxyXG5cclxuPHA+SW4gdGhlIGdlbmVyYWwgTi1wbGF5ZXIgdmVyc2lvbiwgcGxheWVycyBzZXJ2ZSBpbiB0dXJucywgZm9sbG93aW5nIG9yZGVyIGRldGVybWluZWQgYmVmb3JlIHRoZSBtYXRjaC4gTW9yZW92ZXIsIHRoZXkgc2hpZnQgd2hlbiBzdGFydGluZyBpbmRpdmlkdWFsIGdhbWVzIGFuZCBzZXRzLiBGb3IgZXhhbXBsZSwgdGhlIHBsYXllcnMgYXJlIEEsIEIgYW5kIEMuIFRoZXkgYXJlIG9yZGVyZWQgYWxwaGFiZXRpY2FsbHkuIFBsYXllciBBIHNlcnZlcyB0aGUgZmlyc3QgYmFsbCBvZiB0aGUgZmlyc3QgZ2FtZS4gV2hlbiB0aGUgYmFsbCBpcyB3b24gYnkgb25lIG9mIHRoZSBwbGF5ZXJzLCBpdHMgQiYjMzk7cyB0dXJuIHRvIHNlcnZlLiBBZnRlciB0aGUgZ2FtZSBpcyB3b24gYnkgb25lIG9mIHRoZSBwbGF5ZXJzLCBwbGF5ZXIgQiBzdGFydHMgdGhlIHNlY29uZCBnYW1lLiBGaW5hbGx5LCB3aGVuIHRoZSBmaXJzdCBzZXQgaXMgd29uIGJ5IHNvbWVvbmUsIHBsYXllciBCIHN0YXJ0cyB0aGUgc2Vjb25kIHNldC4gVGhpcyByZXBlYXRzLCBhbHdheXMgc2hpZnRlZCBieSBvbmUgcGxheWVyLCB1bnRpbCB0aGUgbWF0Y2ggZW5kcy48XC9wPlxyXG5cclxuPHA+Rm9yIHRocmVlIHBsYXllcnMgdGhlIHNlcnZpbmcgb3JkZXIgbG9va3MgYXMgZm9sbG93czombmJzcDs8YnIgXC8+XHJcblNldCAxOiZuYnNwOzxiciBcLz5cclxuR2FtZSAxOiBBLEIsQyxBLEIsQy4uLiZuYnNwOzxiciBcLz5cclxuR2FtZSAyOiBCLEMsQSwuLi4uJm5ic3A7PGJyIFwvPlxyXG5HYW1lIDM6IEMsQSxCLC4uLi4mbmJzcDs8YnIgXC8+XHJcbkdhbWUgNDogQSxCLEMsLi4uLiZuYnNwOzxiciBcLz5cclxuLi4uJm5ic3A7PGJyIFwvPlxyXG5TZXQgMjombmJzcDs8YnIgXC8+XHJcbkdhbWUgMTogQixDLEEsQiwuLi4uJm5ic3A7PGJyIFwvPlxyXG5HYW1lIDI6IEMsQSxCLC4uLi4mbmJzcDs8YnIgXC8+XHJcbkdhbWUgMzogQSxCLEMsQSwuLi4mbmJzcDs8YnIgXC8+XHJcbi4uLjxcL3A+XHJcblxyXG48cD5UaGVyZSBhcmUgZXhhY3QgcnVsZXMgZm9yIGNvdW50aW5nIHRoZSBudW1iZXIgb2YgYmFsbHNcL2dhbWVzXC9zZXRzIHdvbiBieSBhIHBsYXllci48XC9wPlxyXG5cclxuPHA+UlVMRVMgRk9SIFdJTk5JTkcgQSBHQU1FPFwvcD5cclxuXHJcbjxwPlRoZSBzdGF0ZSBvZiBhIGdhbWUgY2FuIGJlIGRlc2NyaWJlZCBieSBhc3NpZ25pbmcgYSBub24tbmVnYXRpdmUgbnVtYmVyIG9mIHBvaW50cyB0byBlYWNoIG9mIHRoZSBwbGF5ZXJzLiBBdCB0aGUgYmVnaW5uaW5nIG9mIGEgZ2FtZSwgdGhlIHNjb3JlIG9mIGVhY2ggcGxheWVyIGlzIHplcm8uPFwvcD5cclxuXHJcbjxwPk5vdGU6IEluIEVhcnRoIHRlcm1pbm9sb2d5LCAwIHBvaW50cyBpcyBjYWxsZWQgJnF1b3Q7bG92ZSZxdW90OywgMSBwb2ludCBpcyBhICZxdW90O2ZpZnRlZW4mcXVvdDssIDIgcG9pbnRzIGlzIGEgJnF1b3Q7dGhpcnR5JnF1b3Q7LCAzIHBvaW50cyBpcyBhICZxdW90O2ZvcnR5JnF1b3Q7IGFuZCA0IHBvaW50cyBpcyBhbiAmcXVvdDthZHZhbnRhZ2UmcXVvdDsuIEJlIGdsYWQgdGhhdCB5b3UgZG9uJiMzOTt0IGhhdmUgdG8gbGVhcm4gdGhlIENlbnRhdXJpYW4gdGVybWlub2xvZ3kgOik8XC9wPlxyXG5cclxuPHA+V2hlbiBhIHBsYXllciBQIGp1c3Qgd29uIGEgYmFsbCwgdGhlIG5ldyBzY29yZSBpcyBkZXRlcm1pbmVkIGJ5IHVzaW5nIHRoZSBmaXJzdCBydWxlIGZyb20gdGhlIGxpc3QgdGhhdCBhcHBsaWVzIHRvIHRoZSBzaXR1YXRpb24uPFwvcD5cclxuXHJcbjxwPklmIFAgY3VycmVudGx5IGhhcyAzIHBvaW50cyBhbmQgbm8gb3RoZXIgcGxheWVyIGhhcyBtb3JlIHRoYW4gMiBwb2ludHMsIFAgd2lucyB0aGUgY3VycmVudCBnYW1lLjxiciBcLz5cclxuSWYgUCBjdXJyZW50bHkgaGFzIDQgcG9pbnRzLCBoZSB3aW5zIHRoZSBnYW1lLjxiciBcLz5cclxuSWYgYW55IG90aGVyIHBsYXllciBjdXJyZW50bHkgaGFzIDQgcG9pbnRzLCB0aGF0IHBsYXllciBsb3NlcyBvbmUgcG9pbnQuPGJyIFwvPlxyXG5QIGdhaW5zIGEgcG9pbnQuPFwvcD5cclxuXHJcbjxwPlJVTEVTIEZPUiBXSU5OSU5HIEEgU0VUPFwvcD5cclxuXHJcbjxwPlRoZSBzZXQgaXMgd29uIGJ5IHRoZSBmaXJzdCBwbGF5ZXIgdGhhdCBhdCB0aGUgc2FtZSB0aW1lOjxcL3A+XHJcblxyXG48cD53b24gYXQgbGVhc3QgNiBnYW1lcyBpbiB0aGlzIHNldDxiciBcLz5cclxud29uIGF0IGxlYXN0IDIgZ2FtZXMgbW9yZSB0aGFuIGFueSBvdGhlciBwbGF5ZXI8XC9wPlxyXG5cclxuPHA+UlVMRVMgRk9SIFdJTk5JTkcgQSBNQVRDSDxcL3A+XHJcblxyXG48cD5UaGUgd2lubmVyIGlzIHRoZSBmaXJzdCBwbGF5ZXIgdG8gd2luIGF0IGxlYXN0IHRocmVlIHNldHMuIEEgc2V0IGluIHdoaWNoIG5vIG90aGVyIHBsYXllciB3b24gYSBnYW1lIGNvdW50cyBhcyB0d28gd29uIHNldHMuPFwvcD5cclxuXHJcbjxwPkFuIG9ic2VydmVyIGZyb20gdGhlIEludGVyZ2FsYWN0aWMgVGVubmlzIEZlZGVyYXRpb24gd2FzIHdhdGNoaW5nIGEgdG91cm5hbWVudCBpbiBBbHBoYSBDZW50YXVyaSBUZW5uaXMuIEJlaW5nIHVuYWJsZSB0byB1bmRlcnN0YW5kIEFscGhhIENlbnRhdXJpYW4gbGFuZ3VhZ2UsIGhlIG9ubHkgbWFuYWdlZCB0byB3cml0ZSBkb3duIHRoZSB3aW5uZXIgb2YgZWFjaCBiYWxsLiBOb3csIGZvciBlYWNoIG1hdGNoLCBrbm93aW5nIHRoZSBzZXF1ZW5jZSBpbiB3aGljaCB0aGUgcGxheWVycyB3ZXJlIHdpbm5pbmcgdGhlIGJhbGxzLCBoZSB3b3VsZCBsaWtlIHRvIHNvbWVob3cgZGV0ZXJtaW5lIGl0cyB3aW5uZXIuPFwvcD5cclxuXHJcbjxwPiZuYnNwOzxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlcmUgYXJlIHNldmVyYWwgbGluZXMgaW4gdGhlIGlucHV0LCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8gb25lIG1hdGNoLiBFYWNoIGxpbmUgY29udGFpbnMgdGhlIG51bWJlciBvZiBwbGF5ZXJzIE4gYW5kIGEgc3RyaW5nIFMgY29uc2lzdGluZyBvZiB1cHBlcmNhc2UgbGV0dGVycy4gVGhlIHBsYXllcnMgYXJlIHJlcHJlc2VudGVkIGJ5IHRoZSBmaXJzdCBOIGxldHRlcnMgb2YgdGhlIEVuZ2xpc2ggYWxwaGFiZXQuIElmIHRoZSBpLXRoIGxldHRlciBvZiBTIGlzIFgsIGl0IG1lYW5zIHRoZSBwbGF5ZXIgWCB3b24gdGhlIGktdGggYmFsbCBmcm9tIHRoZSBiZWdnaW5pbmcgb2YgdGhlIG1hdGNoLiBZb3UgbWF5IGFzc3VtZSB0aGF0IHRoZSBtYXRjaCB0cmFuc2NyaXB0cyBhcmUgY29ycmVjdCBhbmQgY29tcGxldGUuPFwvcD5cclxuXHJcbjxwPlRoZSBvcmRlciBpbiB3aGljaCB0aGUgcGxheWVycyBzZXJ2ZSBpcyB0aGUgc2FtZSBhcyB0aGUgb3JkZXIgb2YgdGhlaXIgbGV0dGVycyBpbiB0aGUgRW5nbGlzaCBhbHBoYWJldC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCBsaW5lLCBvdXRwdXQgYSBzaW5nbGUgY2hhcmFjdGVyLCBiZWluZyB0aGUgbGV0dGVyIG9mIHRoZSBwbGF5ZXIgd2hvIHdvbiB0aGUgY29ycmVzcG9uZGluZyBtYXRjaC48XC9wPlxyXG5cclxuPHA+Jm5ic3A7PFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d