시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB21815111566.860%

문제

UDPC만을 손꼽아 기다리던 포닉스는 어느새 어디를 봐도 알파벳 U, D, P, C가 보이는 수준에 이르렀다. 그중에서도, 알파벳 C, U와 괄호 ( , )는 굉장히 유사한 모양을 띠기 때문에 구별하기가 매우 힘들어졌다.

다행인 점은, 알파벳 CU를 돌려 마치 괄호처럼 사용할 수 있다는 점이다. C는 그 모습 그대로 여는 괄호 ( 로 사용하거나, 어느 방향으로든 90도씩 두 번을 돌려 닫는 괄호 ) 로 사용할 수 있다. U는 시계 방향으로 90도를 회전하면 여는 괄호 ( , 반시계 방향으로 90도를 회전하면 닫는 괄호 ) 로 사용할 수 있다.

포닉스는 UDPC를 기다리느라 지쳤기 때문에 알파벳을 최소한으로 돌리고 싶다. 짝수 길이의 CU로 이루어진 문자열이 주어지면, 알파벳 중 하나를 골라 어느 방향으로든 90도씩 회전해서 올바른 괄호 문자열을 만들기 위해 필요한 최소 회전 횟수를 구하여라.

입력

첫째 줄에 테스트 케이스의 개수 $T$가 주어진다. $(1\le T\le 500\, 000)$

둘째 줄부터 $T$개의 줄에 걸쳐 비어 있지 않은 문자열 $S$가 주어진다. $S$는 길이가 짝수이며, 알파벳 CU로만 이루어져 있는 문자열이다.

모든 테스트 케이스에 대해서 $S$의 길이의 합은 $10^6$ 이하이다.

출력

각 테스트 케이스에 대해, 첫째 줄에 주어진 문자열 $S$를 올바른 괄호 문자열으로 만들기 위해 필요한 최소 회전 횟수를 출력한다.

각 테스트 케이스에 대해, 둘째 줄에 구성된 괄호 문자열 $S'$을 출력한다. $S'$는 길이가 $S$와 같고, ( )로 이루어진 올바른 괄호 문자열이어야 한다.

가능한 답이 여러 가지라면 그중 하나만 출력한다.

예제 입력 1

5
CC
UU
CCUCCUCU
UUUUCCCC
CCUUUUCC

예제 출력 1

2
()
2
()
5
(())()()
8
()()()()
6
((()))()

노트

올바른 괄호 문자열은 다음과 같이 정의된다.

  • 빈 문자열은 올바른 괄호 문자열이다.
  • S가 올바른 괄호 문자열이라면, (S)도 올바른 괄호 문자열이다.
  • ST가 올바른 괄호 문자열이라면, 두 문자열을 이어 붙인 괄호 문자열 ST도 올바른 괄호 문자열이다.
W3sicHJvYmxlbV9pZCI6IjMzNjkzIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiQykiLCJkZXNjcmlwdGlvbiI6IjxwPlVEUENcdWI5Y2NcdWM3NDQgXHVjMTkwXHVhZjNkXHVjNTQ0IFx1YWUzMFx1YjJlNFx1YjlhY1x1YjM1OCBcdWQzZWNcdWIyYzlcdWMyYTRcdWIyOTQgXHVjNWI0XHViMjkwXHVjMGM4IFx1YzViNFx1YjUxNFx1Yjk3YyBcdWJkMTBcdWIzYzQgXHVjNTRjXHVkMzBjXHViY2IzIFUsIEQsIFAsIENcdWFjMDAgXHViY2Y0XHVjNzc0XHViMjk0IFx1YzIxOFx1YzkwMFx1YzVkMCBcdWM3NzRcdWI5NzRcdWI4MDBcdWIyZTQuIFx1YWRmOFx1YzkxMVx1YzVkMFx1YzExY1x1YjNjNCwgXHVjNTRjXHVkMzBjXHViY2IzIDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT5DPFwvY29kZT48XC9zcGFuPiwgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPlU8XC9jb2RlPjxcL3NwYW4+XHVjNjQwIFx1YWQwNFx1ZDYzOCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+KDxcL2NvZGU+PFwvc3Bhbj4gLCA8Y29kZT48c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+KTxcL3NwYW4+PFwvY29kZT5cdWIyOTQgXHVhZDQ5XHVjN2E1XHVkNzg4IFx1YzcyMFx1YzBhY1x1ZDU1YyBcdWJhYThcdWM1OTFcdWM3NDQgXHViNzYwXHVhZTMwIFx1YjU0Y1x1YmIzOFx1YzVkMCBcdWFkNmNcdWJjYzRcdWQ1NThcdWFlMzBcdWFjMDAgXHViOWU0XHVjNmIwIFx1ZDc5OFx1YjRlNFx1YzViNFx1Yzg0Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViMmU0XHVkNTg5XHVjNzc4IFx1YzgxMFx1Yzc0MCwgXHVjNTRjXHVkMzBjXHViY2IzIDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT5DPFwvY29kZT48XC9zcGFuPlx1YzY0MCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+VTxcL2NvZGU+PFwvc3Bhbj5cdWI5N2MgXHViM2NjXHViODI0IFx1YjljOFx1Y2U1OCBcdWFkMDRcdWQ2MzhcdWNjOThcdWI3ZmMgXHVjMGFjXHVjNmE5XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTRcdWIyOTQgXHVjODEwXHVjNzc0XHViMmU0LiA8Y29kZT48c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+QzxcL3NwYW4+PFwvY29kZT5cdWIyOTQgXHVhZGY4IFx1YmFhOFx1YzJiNSBcdWFkZjhcdWIzMDBcdWI4NWMgXHVjNWVjXHViMjk0IFx1YWQwNFx1ZDYzOCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+KDxcL2NvZGU+PFwvc3Bhbj4gXHViODVjIFx1YzBhY1x1YzZhOVx1ZDU1OFx1YWM3MFx1YjA5OCwgXHVjNWI0XHViMjkwIFx1YmMyOVx1ZDVhNVx1YzczY1x1Yjg1Y1x1YjRlMCA5MFx1YjNjNFx1YzUyOSBcdWI0NTAgXHViYzg4XHVjNzQ0IFx1YjNjY1x1YjgyNCBcdWIyZWJcdWIyOTQgXHVhZDA0XHVkNjM4IDxjb2RlPjxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj4pPFwvc3Bhbj48XC9jb2RlPiBcdWI4NWMgXHVjMGFjXHVjNmE5XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuIDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT5VPFwvY29kZT48XC9zcGFuPlx1YjI5NCBcdWMyZGNcdWFjYzQgXHViYzI5XHVkNWE1XHVjNzNjXHViODVjIDkwXHViM2M0XHViOTdjIFx1ZDY4Y1x1YzgwNFx1ZDU1OFx1YmE3NCBcdWM1ZWNcdWIyOTQgXHVhZDA0XHVkNjM4IDxjb2RlPjxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj4oPFwvc3Bhbj48XC9jb2RlPiAsIFx1YmMxOFx1YzJkY1x1YWNjNCBcdWJjMjlcdWQ1YTVcdWM3M2NcdWI4NWMgOTBcdWIzYzRcdWI5N2MgXHVkNjhjXHVjODA0XHVkNTU4XHViYTc0IFx1YjJlYlx1YjI5NCBcdWFkMDRcdWQ2MzggPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPik8XC9jb2RlPjxcL3NwYW4+IFx1Yjg1YyBcdWMwYWNcdWM2YTlcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVkM2VjXHViMmM5XHVjMmE0XHViMjk0IFVEUENcdWI5N2MgXHVhZTMwXHViMmU0XHViOWFjXHViMjkwXHViNzdjIFx1YzljMFx1Y2NlNFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAgXHVjNTRjXHVkMzBjXHViY2IzXHVjNzQ0IFx1Y2Q1Y1x1YzE4Y1x1ZDU1Y1x1YzczY1x1Yjg1YyBcdWIzY2NcdWI5YWNcdWFjZTAgXHVjMmY2XHViMmU0LiBcdWM5ZGRcdWMyMTggXHVhZTM4XHVjNzc0XHVjNzU4IDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT5DPFwvY29kZT48XC9zcGFuPlx1YzY0MCA8Y29kZT48c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+VTxcL3NwYW4+PFwvY29kZT5cdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzBcdWJhNzQsIFx1YzU0Y1x1ZDMwY1x1YmNiMyBcdWM5MTEgXHVkNTU4XHViMDk4XHViOTdjIFx1YWNlOFx1Yjc3YyBcdWM1YjRcdWIyOTAgXHViYzI5XHVkNWE1XHVjNzNjXHViODVjXHViNGUwIDkwXHViM2M0XHVjNTI5IFx1ZDY4Y1x1YzgwNFx1ZDU3NFx1YzExYyBcdWM2MmNcdWJjMTRcdWI5NzggXHVhZDA0XHVkNjM4IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0NCBcdWI5Y2NcdWI0ZTRcdWFlMzAgXHVjNzA0XHVkNTc0IFx1ZDU0NFx1YzY5NFx1ZDU1YyBcdWNkNWNcdWMxOGMgXHVkNjhjXHVjODA0IFx1ZDY5Zlx1YzIxOFx1Yjk3YyBcdWFkNmNcdWQ1NThcdWM1ZWNcdWI3N2MuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVhYzFjXHVjMjE4ICRUJFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuICQoMVxcbGUgVFxcbGUgNTAwXFwsIDAwMCkkPFwvcD5cclxuXHJcbjxwPlx1YjQ1OFx1YzlmOCBcdWM5MDRcdWJkODBcdWQxMzAgJFQkXHVhYzFjXHVjNzU4IFx1YzkwNFx1YzVkMCBcdWFjNzhcdWNjZDAgXHViZTQ0XHVjNWI0IFx1Yzc4OFx1YzljMCBcdWM1NGFcdWM3NDAgXHViYjM4XHVjNzkwXHVjNWY0ICRTJFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuICRTJFx1YjI5NCBcdWFlMzhcdWM3NzRcdWFjMDAgXHVjOWRkXHVjMjE4XHVjNzc0XHViYTcwLCBcdWM1NGNcdWQzMGNcdWJjYjMgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPkM8XC9jb2RlPjxcL3NwYW4+XHVjNjQwIDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT5VPFwvY29kZT48XC9zcGFuPlx1Yjg1Y1x1YjljYyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMjk0IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViYWE4XHViNGUwIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM1ZDAgXHViMzAwXHVkNTc0XHVjMTFjICRTJFx1Yzc1OCBcdWFlMzhcdWM3NzRcdWM3NTggXHVkNTY5XHVjNzQwICQxMF42JCBcdWM3NzRcdWQ1NThcdWM3NzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM1ZDAgXHViMzAwXHVkNTc0LCBcdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YzhmY1x1YzViNFx1YzljNCBcdWJiMzhcdWM3OTBcdWM1ZjQgJFMkXHViOTdjIFx1YzYyY1x1YmMxNFx1Yjk3OCBcdWFkMDRcdWQ2MzggXHViYjM4XHVjNzkwXHVjNWY0XHVjNzNjXHViODVjIFx1YjljY1x1YjRlNFx1YWUzMCBcdWM3MDRcdWQ1NzQgXHVkNTQ0XHVjNjk0XHVkNTVjIFx1Y2Q1Y1x1YzE4YyBcdWQ2OGNcdWM4MDQgXHVkNjlmXHVjMjE4XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM1ZDAgXHViMzAwXHVkNTc0LCBcdWI0NThcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YWQ2Y1x1YzEzMVx1YjQxYyBcdWFkMDRcdWQ2MzggXHViYjM4XHVjNzkwXHVjNWY0ICRTJiMzOTskXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gJFMmIzM5OyRcdWIyOTQgXHVhZTM4XHVjNzc0XHVhYzAwICRTJFx1YzY0MCBcdWFjMTlcdWFjZTAsIDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT4oIDxcL2NvZGU+PFwvc3Bhbj5cdWM2NDAgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPik8XC9jb2RlPjxcL3NwYW4+XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWM2MmNcdWJjMTRcdWI5NzggXHVhZDA0XHVkNjM4IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMFx1YjJhNVx1ZDU1YyBcdWIyZjVcdWM3NzQgXHVjNWVjXHViN2VjIFx1YWMwMFx1YzljMFx1Yjc3Y1x1YmE3NCBcdWFkZjhcdWM5MTEgXHVkNTU4XHViMDk4XHViOWNjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiPHA+XHVjNjJjXHViYzE0XHViOTc4IFx1YWQwNFx1ZDYzOCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc3NCBcdWM4MTVcdWM3NThcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHViZTQ4IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0MCBcdWM2MmNcdWJjMTRcdWI5NzggXHVhZDA0XHVkNjM4IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NFx1YjJlNC48XC9saT5cclxuXHQ8bGk+PGNvZGU+UzxcL2NvZGU+XHVhYzAwIFx1YzYyY1x1YmMxNFx1Yjk3OCBcdWFkMDRcdWQ2MzggXHViYjM4XHVjNzkwXHVjNWY0XHVjNzc0XHViNzdjXHViYTc0LCA8Y29kZT4oUyk8XC9jb2RlPlx1YjNjNCBcdWM2MmNcdWJjMTRcdWI5NzggXHVhZDA0XHVkNjM4IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NFx1YjJlNC48XC9saT5cclxuXHQ8bGk+PGNvZGU+UzxcL2NvZGU+XHVjNjQwIDxjb2RlPlQ8XC9jb2RlPlx1YWMwMCBcdWM2MmNcdWJjMTRcdWI5NzggXHVhZDA0XHVkNjM4IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NFx1Yjc3Y1x1YmE3NCwgXHViNDUwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0NCBcdWM3NzRcdWM1YjQgXHViZDk5XHVjNzc4IFx1YWQwNFx1ZDYzOCBcdWJiMzhcdWM3OTBcdWM1ZjQgPGNvZGU+U1Q8XC9jb2RlPlx1YjNjNCBcdWM2MmNcdWJjMTRcdWI5NzggXHVhZDA0XHVkNjM4IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NFx1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcbiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMzM2OTMiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJDKSIsImRlc2NyaXB0aW9uIjoiPHA+UG9uaXgsIHdobyBlYWdlcmx5IGF3YWl0ZWQgVURQQywgaGFzIG5vdyByZWFjaGVkIHRoZSBwb2ludCB3aGVyZSB0aGV5IHNlZSB0aGUgbGV0dGVycyBVLCBELCBQLCBhbmQgQyBldmVyeXdoZXJlLiBBbW9uZyB0aGVzZSwgdGhlIGxldHRlcnMgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPkM8XC9jb2RlPjxcL3NwYW4+IGFuZCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+VTxcL2NvZGU+PFwvc3Bhbj4gbG9vayB2ZXJ5IHNpbWlsYXIgdG8gYnJhY2tldHMgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPigmbmJzcDs8XC9jb2RlPjxcL3NwYW4+YW5kJm5ic3A7PGNvZGU+PHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPik8XC9zcGFuPjxcL2NvZGU+Jm5ic3A7LCBtYWtpbmcgdGhlbSBkaWZmaWN1bHQgdG8gZGlzdGluZ3Vpc2guPFwvcD5cclxuXHJcbjxwPkZvcnR1bmF0ZWx5LCB0aGUgbGV0dGVycyA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+QzxcL2NvZGU+PFwvc3Bhbj4gYW5kIDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT5VPFwvY29kZT48XC9zcGFuPiBjYW4gYmUgcm90YXRlZCB0byBmdW5jdGlvbiBhcyBicmFja2V0cy4gVGhlIGxldHRlciA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+QzxcL2NvZGU+PFwvc3Bhbj4gY2FuIGJlIHVzZWQgYXMgYW4gb3BlbmluZyBicmFja2V0Jm5ic3A7PHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPig8XC9jb2RlPjxcL3NwYW4+IGluIGl0cyBvcmlnaW5hbCBmb3JtIG9yIHJvdGF0ZWQgOTAgZGVncmVlcyB0d2ljZSBpbiBlaXRoZXIgZGlyZWN0aW9uIHRvIGJlY29tZSZuYnNwO2EgY2xvc2luZyBicmFja2V0IDxjb2RlPjxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj4pPFwvc3Bhbj48XC9jb2RlPi4gVGhlIGxldHRlciA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+VTxcL2NvZGU+PFwvc3Bhbj4gY2FuIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2UgdG8gYmVjb21lIGFuIG9wZW5pbmcgYnJhY2tldCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+KCZuYnNwOzxcL2NvZGU+PFwvc3Bhbj5vciA5MCBkZWdyZWVzIGNvdW50ZXJjbG9ja3dpc2UgdG8gYmVjb21lIGEgY2xvc2luZyBicmFja2V0IDxjb2RlPjxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj4pPFwvc3Bhbj48XC9jb2RlPi48XC9wPlxyXG5cclxuPHA+U2luY2UgUG9uaXggaXMgZXhoYXVzdGVkIGZyb20gd2FpdGluZyBmb3IgVURQQywgdGhleSB3YW50IHRvIG1pbmltaXplIHRoZSBudW1iZXIgb2Ygcm90YXRpb25zLiBHaXZlbiBhIHN0cmluZyBjb25zaXN0aW5nIG9ubHkgb2YgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPkM8XC9jb2RlPjxcL3NwYW4+IGFuZCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+VTxcL2NvZGU+PFwvc3Bhbj4gd2l0aCBhbiBldmVuIGxlbmd0aCwgZGV0ZXJtaW5lIHRoZSBtaW5pbXVtIG51bWJlciBvZiA5MC1kZWdyZWUgcm90YXRpb25zIG5lZWRlZCB0byB0cmFuc2Zvcm0gdGhlIHN0cmluZyBpbnRvIGEgYmFsYW5jZWQgYnJhY2tldCBzZXF1ZW5jZS48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPkVhY2ggdGVzdCBjb25zaXN0cyBvZiBtdWx0aXBsZSB0ZXN0IGNhc2VzLiBUaGUgZmlyc3QgbGluZSBjb250YWlucyBhIHNpbmdsZSBpbnRlZ2VyICRUJCwgdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzLiAkKDEgXFxsZSBUIFxcbGUgNTAwXFwsMDAwKSQ8XC9wPlxyXG5cclxuPHA+VGhlIG9ubHkgbGluZSBvZiBlYWNoIHRlc3QgY2FzZSBjb250YWlucyBhIG5vbmVtcHR5IHN0cmluZyAkUyQuICRTJCBpcyBhIHN0cmluZyBvZiBldmVuIGxlbmd0aCBjb25zaXN0aW5nIG9ubHkgb2YgdGhlIGxldHRlcnMgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPkM8XC9jb2RlPjxcL3NwYW4+IGFuZCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+VTxcL2NvZGU+PFwvc3Bhbj4uPFwvcD5cclxuXHJcbjxwPkl0IGlzIGd1YXJhbnRlZWQgdGhhdCB0aGUgc3VtIG9mIHRoZSBsZW5ndGggb2YgJFMkIGZvciBhbGwgdGVzdCBjYXNlcyBkb2VzIG5vdCBleGNlZWQgJDEwXjYkLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciB0aGUgZmlyc3QgbGluZSBvZiBlYWNoIHRlc3QgY2FzZSwgcHJpbnQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIDkwLWRlZ3JlZSByb3RhdGlvbnMgbmVlZGVkIHRvIHRyYW5zZm9ybSB0aGUgZ2l2ZW4gc3RyaW5nICRTJCBpbnRvIGEgYmFsYW5jZWQgYnJhY2tldCBzZXF1ZW5jZS48XC9wPlxyXG5cclxuPHA+Rm9yIHRoZSBzZWNvbmQgbGluZSBvZiBlYWNoIHRlc3QgY2FzZSwgcHJpbnQgdGhlIHJlc3VsdGluZyBiYWxhbmNlZCBicmFja2V0Jm5ic3A7c2VxdWVuY2UgJFMmIzM5OyQuIFRoZSBsZW5ndGggb2YgJFMmIzM5OyQgbXVzdCBiZSB0aGUgc2FtZSBhcyAkUyQgYW5kIGNvbnNpc3Qgb25seSBvZiA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+KDxcL2NvZGU+PFwvc3Bhbj4gYW5kIDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT4pPFwvY29kZT48XC9zcGFuPiwgZm9ybWluZyBhIGJhbGFuY2VkIGJyYWNrZXQgc2VxdWVuY2UuPFwvcD5cclxuXHJcbjxwPklmIHRoZXJlIGFyZSBtdWx0aXBsZSBzb2x1dGlvbnMsIHByaW50IGFueSBvZiB0aGVtLjxcL3A+XHJcbiIsImhpbnQiOiI8cD5BIGJhbGFuY2VkIGJyYWNrZXQgc2VxdWVuY2UgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPkFuIGVtcHR5IHN0cmluZyBpcyBhIGJhbGFuY2VkIGJyYWNrZXQgc2VxdWVuY2UuPFwvbGk+XHJcblx0PGxpPklmJm5ic3A7PGNvZGU+UzxcL2NvZGU+Jm5ic3A7aXMgYSBiYWxhbmNlZCBicmFja2V0IHNlcXVlbmNlLCB0aGVuJm5ic3A7PGNvZGU+KFMpPFwvY29kZT4mbmJzcDtpcyBhbHNvIGEgYmFsYW5jZWQgYnJhY2tldCBzZXF1ZW5jZS48XC9saT5cclxuXHQ8bGk+SWYmbmJzcDs8Y29kZT5TPFwvY29kZT4mbmJzcDthbmQmbmJzcDs8Y29kZT5UPFwvY29kZT4mbmJzcDthcmUgYmFsYW5jZWQgYnJhY2tldCBzZXF1ZW5jZXMsIHRoZW4gdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlIHR3byBzdHJpbmdzJm5ic3A7PGNvZGU+U1Q8XC9jb2RlPiZuYnNwO2lzIGFsc28gYSBiYWxhbmNlZCBicmFja2V0IHNlcXVlbmNlLjxcL2xpPlxyXG48XC91bD5cclxuIiwib3JpZ2luYWwiOiIwIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIn1d