시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB426895221.311%

문제

흰색과 검은색으로 이루어진 이미지는 쿼드트리를 이용하여 표현할 수 있다. 쿼드트리의 루트는 이미지의 전체를 나타낸다. 만약 전체 이미지가 한 색깔로 이루어져 있으면, 그 색깔에 해당하는 정점을 루트로 한다. 그 외의 경우에는 그림을 넷으로 나누고, 각각의 나눠진 그림을 루트의 네 자식 정점으로 표현하면 된다. 이때 첫 번째 자식이 왼쪽 위의 그림을, 두 번째 자식이 오른쪽 위의 그림을, 세 번째 자식이 왼쪽 아래의 그림을, 네 번째 자식이 오른쪽 아래의 그림을 표현하게 된다. 각각의 작은 이미지를 표현할 때도 같은 방법을 재귀적으로 적용한다.

위의 예는 4×4 크기의 이미지와 그에 해당하는 쿼드트리이다. 위의 예에서는 이미지의 크기(사각형의 변의 길이)가 2의 k승이라서 상관이 없었지만, 그 외의 경우에는 문제가 된다. 만약에 이미지의 크기가 2의 k승이 아닐 경우에는, 이미지의 크기를 오른쪽과 아래쪽으로 가장 가까운 2의 k승으로 늘린 뒤, 흰색으로 나머지 공간을 채우면 된다. 이때 이미지가 정사각형 모양이 되도록 한다. 예를 들어 5×13의 이미지는 16×16 크기의 이미지가 되고, 원래의 이미지가 왼쪽 위에 들어가고 나머지 공간은 흰색으로 채우면 된다.

쿼드트리 자체가 이미지를 압축적으로 표현하는 방법이지만, 우리는 압축된 쿼드트리를 이용하여 좀 더 효율적으로 표현하려 한다. 만약 쿼드트리에서 같은 모양의 부분 트리가 여러 개 나올 경우, 이를 한 번만 저장한 뒤 나머지는 포인터로 연결할 수 있다. 위의 예는 다음과 같은 압축된 쿼드트리로 표현할 수 있다.

원래의 쿼드트리는 17개의 정점을 갖지만, 압축된 쿼드트리는 12개의 정점을 갖는다. 12개의 정점을 갖는 압축된 쿼드트리가 몇 개 더 있기는 하지만, 11개 이하의 정점을 갖는 압축된 쿼드트리는 존재하지 않는다. 따라서 위의 경우가 가장 효율적(정점 개수가 최소)이다.

주의할 것은, B나 W로 표현되는 정점은 포인터가 아니가 값 자체이므로 이를 연결할 경우는 압축하는 것이 아니다. 즉, 정점이 하나인 경우(높이가 1인 경우)에는 포인터를 이용하여 연결할 필요가 없다. 또, 실제 이미지의 크기가 다르더라도 트리의 모양이 같다면, 같은 쿼드트리로 표현될 수 있는데, 이런 경우에도 포인터로 연결할 수 있다.

이미지가 주어졌을 때, 쿼드트리의 정점의 개수와 가장 효율적인 압축된 쿼드트리의 정점의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 이미지의 크기를 나타내는 두 정수 n(1 ≤ n ≤ 128), m(1 ≤ m ≤ 128)이 주어진다. 이는 이미지의 크기가 n×m이라는 의미이다. 다음 n개의 줄에는 m개의 숫자로 이미지가 주어진다. 흰색은 0으로, 검은색은 1로 표현된다.

출력

첫째 줄에 쿼드트리의 정점의 개수와 가장 효율적인 압축된 쿼드트리의 정점의 개수를 출력한다.

예제 입력 1

4 4
1011
0111
1010
0111

예제 출력 1

17 12
W3sicHJvYmxlbV9pZCI6IjE5OTgiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM3NzRcdWJiZjhcdWM5YzAgXHVjNTU1XHVjZDk1IiwiZGVzY3JpcHRpb24iOiI8cD5cdWQ3NzBcdWMwYzlcdWFjZmMgXHVhYzgwXHVjNzQwXHVjMGM5XHVjNzNjXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWM3NzRcdWJiZjhcdWM5YzBcdWIyOTQgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU1OFx1YzVlYyBcdWQ0NWNcdWQ2MDRcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVjNzU4IFx1YjhlOFx1ZDJiOFx1YjI5NCBcdWM3NzRcdWJiZjhcdWM5YzBcdWM3NTggXHVjODA0XHVjY2I0XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiOFx1YjJlNC4gXHViOWNjXHVjNTdkIFx1YzgwNFx1Y2NiNCBcdWM3NzRcdWJiZjhcdWM5YzBcdWFjMDAgXHVkNTVjIFx1YzBjOVx1YWU1NFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHVjNzNjXHViYTc0LCBcdWFkZjggXHVjMGM5XHVhZTU0XHVjNWQwIFx1ZDU3NFx1YjJmOVx1ZDU1OFx1YjI5NCBcdWM4MTVcdWM4MTBcdWM3NDQgXHViOGU4XHVkMmI4XHViODVjIFx1ZDU1Y1x1YjJlNC4gXHVhZGY4IFx1YzY3OFx1Yzc1OCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgXHVhZGY4XHViOWJjXHVjNzQ0IFx1YjEzN1x1YzczY1x1Yjg1YyBcdWIwOThcdWIyMDRcdWFjZTAsIFx1YWMwMVx1YWMwMVx1Yzc1OCBcdWIwOThcdWIyMjBcdWM5YzQgXHVhZGY4XHViOWJjXHVjNzQ0IFx1YjhlOFx1ZDJiOFx1Yzc1OCBcdWIxMjQgXHVjNzkwXHVjMmRkIFx1YzgxNVx1YzgxMFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NThcdWJhNzQgXHViNDFjXHViMmU0LiBcdWM3NzRcdWI1NGMgXHVjY2FiIFx1YmM4OFx1YzlmOCBcdWM3OTBcdWMyZGRcdWM3NzQgXHVjNjdjXHVjYWJkIFx1YzcwNFx1Yzc1OCBcdWFkZjhcdWI5YmNcdWM3NDQsIFx1YjQ1MCBcdWJjODhcdWM5ZjggXHVjNzkwXHVjMmRkXHVjNzc0IFx1YzYyNFx1Yjk3OFx1Y2FiZCBcdWM3MDRcdWM3NTggXHVhZGY4XHViOWJjXHVjNzQ0LCBcdWMxMzggXHViYzg4XHVjOWY4IFx1Yzc5MFx1YzJkZFx1Yzc3NCBcdWM2N2NcdWNhYmQgXHVjNTQ0XHViNzk4XHVjNzU4IFx1YWRmOFx1YjliY1x1Yzc0NCwgXHViMTI0IFx1YmM4OFx1YzlmOCBcdWM3OTBcdWMyZGRcdWM3NzQgXHVjNjI0XHViOTc4XHVjYWJkIFx1YzU0NFx1Yjc5OFx1Yzc1OCBcdWFkZjhcdWI5YmNcdWM3NDQgXHVkNDVjXHVkNjA0XHVkNTU4XHVhYzhjIFx1YjQxY1x1YjJlNC4gXHVhYzAxXHVhYzAxXHVjNzU4IFx1Yzc5MVx1Yzc0MCBcdWM3NzRcdWJiZjhcdWM5YzBcdWI5N2MgXHVkNDVjXHVkNjA0XHVkNTYwIFx1YjU0Y1x1YjNjNCBcdWFjMTlcdWM3NDAgXHViYzI5XHViYzk1XHVjNzQ0IFx1YzdhY1x1YWRjMFx1YzgwMVx1YzczY1x1Yjg1YyBcdWM4MDFcdWM2YTlcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgaGVpZ2h0PVwiMTE3XCIgc3JjPVwiXC9KdWRnZU9ubGluZVwvdXBsb2FkXC8yMDEwMDdcL3FxcS5wbmdcIiB3aWR0aD1cIjQzMlwiIFwvPjxcL3A+XHJcblxyXG48cD5cdWM3MDRcdWM3NTggXHVjNjA4XHViMjk0IDQmdGltZXM7NCBcdWQwNmNcdWFlMzBcdWM3NTggXHVjNzc0XHViYmY4XHVjOWMwXHVjNjQwIFx1YWRmOFx1YzVkMCBcdWQ1NzRcdWIyZjlcdWQ1NThcdWIyOTQgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVjNzc0XHViMmU0LiBcdWM3MDRcdWM3NTggXHVjNjA4XHVjNWQwXHVjMTFjXHViMjk0IFx1Yzc3NFx1YmJmOFx1YzljMFx1Yzc1OCBcdWQwNmNcdWFlMzAoXHVjMGFjXHVhYzAxXHVkNjE1XHVjNzU4IFx1YmNjMFx1Yzc1OCBcdWFlMzhcdWM3NzQpXHVhYzAwIDJcdWM3NTgga1x1YzJiOVx1Yzc3NFx1Yjc3Y1x1YzExYyBcdWMwYzFcdWFkMDBcdWM3NzQgXHVjNWM2XHVjNWM4XHVjOWMwXHViOWNjLCBcdWFkZjggXHVjNjc4XHVjNzU4IFx1YWNiZFx1YzZiMFx1YzVkMFx1YjI5NCBcdWJiMzhcdWM4MWNcdWFjMDAgXHViNDFjXHViMmU0LiBcdWI5Y2NcdWM1N2RcdWM1ZDAgXHVjNzc0XHViYmY4XHVjOWMwXHVjNzU4IFx1ZDA2Y1x1YWUzMFx1YWMwMCAyXHVjNzU4IGtcdWMyYjlcdWM3NzQgXHVjNTQ0XHViMmQwIFx1YWNiZFx1YzZiMFx1YzVkMFx1YjI5NCwgXHVjNzc0XHViYmY4XHVjOWMwXHVjNzU4IFx1ZDA2Y1x1YWUzMFx1Yjk3YyBcdWM2MjRcdWI5NzhcdWNhYmRcdWFjZmMgXHVjNTQ0XHViNzk4XHVjYWJkXHVjNzNjXHViODVjIFx1YWMwMFx1YzdhNSBcdWFjMDBcdWFlNGNcdWM2YjQgMlx1Yzc1OCBrXHVjMmI5XHVjNzNjXHViODVjIFx1YjI5OFx1YjliMCBcdWI0YTQsIFx1ZDc3MFx1YzBjOVx1YzczY1x1Yjg1YyBcdWIwOThcdWJhMzhcdWM5YzAgXHVhY2Y1XHVhYzA0XHVjNzQ0IFx1Y2M0NFx1YzZiMFx1YmE3NCBcdWI0MWNcdWIyZTQuIFx1Yzc3NFx1YjU0YyBcdWM3NzRcdWJiZjhcdWM5YzBcdWFjMDAgXHVjODE1XHVjMGFjXHVhYzAxXHVkNjE1IFx1YmFhOFx1YzU5MVx1Yzc3NCBcdWI0MThcdWIzYzRcdWI4NWQgXHVkNTVjXHViMmU0LiBcdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0IDUmdGltZXM7MTNcdWM3NTggXHVjNzc0XHViYmY4XHVjOWMwXHViMjk0IDE2JnRpbWVzOzE2IFx1ZDA2Y1x1YWUzMFx1Yzc1OCBcdWM3NzRcdWJiZjhcdWM5YzBcdWFjMDAgXHViNDE4XHVhY2UwLCBcdWM2ZDBcdWI3OThcdWM3NTggXHVjNzc0XHViYmY4XHVjOWMwXHVhYzAwIFx1YzY3Y1x1Y2FiZCBcdWM3MDRcdWM1ZDAgXHViNGU0XHVjNWI0XHVhYzAwXHVhY2UwIFx1YjA5OFx1YmEzOFx1YzljMCBcdWFjZjVcdWFjMDRcdWM3NDAgXHVkNzcwXHVjMGM5XHVjNzNjXHViODVjIFx1Y2M0NFx1YzZiMFx1YmE3NCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhYyBcdWM3OTBcdWNjYjRcdWFjMDAgXHVjNzc0XHViYmY4XHVjOWMwXHViOTdjIFx1YzU1NVx1Y2Q5NVx1YzgwMVx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NThcdWIyOTQgXHViYzI5XHViYzk1XHVjNzc0XHVjOWMwXHViOWNjLCBcdWM2YjBcdWI5YWNcdWIyOTQgXHVjNTU1XHVjZDk1XHViNDFjIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1Yjk3YyBcdWM3NzRcdWM2YTlcdWQ1NThcdWM1ZWMgXHVjODgwIFx1YjM1NCBcdWQ2YThcdWM3MjhcdWM4MDFcdWM3M2NcdWI4NWMgXHVkNDVjXHVkNjA0XHVkNTU4XHViODI0IFx1ZDU1Y1x1YjJlNC4gXHViOWNjXHVjNTdkIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1YzVkMFx1YzExYyBcdWFjMTlcdWM3NDAgXHViYWE4XHVjNTkxXHVjNzU4IFx1YmQ4MFx1YmQ4NCBcdWQyYjhcdWI5YWNcdWFjMDAgXHVjNWVjXHViN2VjIFx1YWMxYyBcdWIwOThcdWM2MmMgXHVhY2JkXHVjNmIwLCBcdWM3NzRcdWI5N2MgXHVkNTVjIFx1YmM4OFx1YjljYyBcdWM4MDBcdWM3YTVcdWQ1NWMgXHViNGE0IFx1YjA5OFx1YmEzOFx1YzljMFx1YjI5NCBcdWQzZWNcdWM3NzhcdWQxMzBcdWI4NWMgXHVjNWYwXHVhY2IwXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzcwNFx1Yzc1OCBcdWM2MDhcdWIyOTQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWM1NTVcdWNkOTVcdWI0MWMgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIGhlaWdodD1cIjExMVwiIHNyYz1cIlwvSnVkZ2VPbmxpbmVcL3VwbG9hZFwvMjAxMDA3XC9xcXFxcXFxLnBuZ1wiIHdpZHRoPVwiMzA1XCIgXC8+PFwvcD5cclxuXHJcbjxwPlx1YzZkMFx1Yjc5OFx1Yzc1OCBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWIyOTQgMTdcdWFjMWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzQ0IFx1YWMxNlx1YzljMFx1YjljYywgXHVjNTU1XHVjZDk1XHViNDFjIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1YjI5NCAxMlx1YWMxY1x1Yzc1OCBcdWM4MTVcdWM4MTBcdWM3NDQgXHVhYzE2XHViMjk0XHViMmU0LiAxMlx1YWMxY1x1Yzc1OCBcdWM4MTVcdWM4MTBcdWM3NDQgXHVhYzE2XHViMjk0IFx1YzU1NVx1Y2Q5NVx1YjQxYyBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWFjMDAgXHViYTg3IFx1YWMxYyBcdWIzNTQgXHVjNzg4XHVhZTMwXHViMjk0IFx1ZDU1OFx1YzljMFx1YjljYywgMTFcdWFjMWMgXHVjNzc0XHVkNTU4XHVjNzU4IFx1YzgxNVx1YzgxMFx1Yzc0NCBcdWFjMTZcdWIyOTQgXHVjNTU1XHVjZDk1XHViNDFjIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1YjI5NCBcdWM4NzRcdWM3YWNcdWQ1NThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LiBcdWI1MzBcdWI3N2NcdWMxMWMgXHVjNzA0XHVjNzU4IFx1YWNiZFx1YzZiMFx1YWMwMCBcdWFjMDBcdWM3YTUgXHVkNmE4XHVjNzI4XHVjODAxKFx1YzgxNVx1YzgxMCBcdWFjMWNcdWMyMThcdWFjMDAgXHVjZDVjXHVjMThjKVx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjOGZjXHVjNzU4XHVkNTYwIFx1YWM4M1x1Yzc0MCwgQlx1YjA5OCBXXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1YjQxOFx1YjI5NCBcdWM4MTVcdWM4MTBcdWM3NDAgXHVkM2VjXHVjNzc4XHVkMTMwXHVhYzAwIFx1YzU0NFx1YjJjOFx1YWMwMCBcdWFjMTIgXHVjNzkwXHVjY2I0XHVjNzc0XHViYmMwXHViODVjIFx1Yzc3NFx1Yjk3YyBcdWM1ZjBcdWFjYjBcdWQ1NjAgXHVhY2JkXHVjNmIwXHViMjk0IFx1YzU1NVx1Y2Q5NVx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzQgXHVjNTQ0XHViMmM4XHViMmU0LiBcdWM5ODksIFx1YzgxNVx1YzgxMFx1Yzc3NCBcdWQ1NThcdWIwOThcdWM3NzggXHVhY2JkXHVjNmIwKFx1YjE5Mlx1Yzc3NFx1YWMwMCAxXHVjNzc4IFx1YWNiZFx1YzZiMClcdWM1ZDBcdWIyOTQgXHVkM2VjXHVjNzc4XHVkMTMwXHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU1OFx1YzVlYyBcdWM1ZjBcdWFjYjBcdWQ1NjAgXHVkNTQ0XHVjNjk0XHVhYzAwIFx1YzVjNlx1YjJlNC4gXHViNjEwLCBcdWMyZTRcdWM4MWMgXHVjNzc0XHViYmY4XHVjOWMwXHVjNzU4IFx1ZDA2Y1x1YWUzMFx1YWMwMCBcdWIyZTRcdWI5NzRcdWIzNTRcdWI3N2NcdWIzYzQgXHVkMmI4XHViOWFjXHVjNzU4IFx1YmFhOFx1YzU5MVx1Yzc3NCBcdWFjMTlcdWIyZTRcdWJhNzQsIFx1YWMxOVx1Yzc0MCBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWI4NWMgXHVkNDVjXHVkNjA0XHViNDIwIFx1YzIxOCBcdWM3ODhcdWIyOTRcdWIzNzAsIFx1Yzc3NFx1YjdmMCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIzYzQgXHVkM2VjXHVjNzc4XHVkMTMwXHViODVjIFx1YzVmMFx1YWNiMFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM3NzRcdWJiZjhcdWM5YzBcdWFjMDAgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVjNzU4IFx1YzgxNVx1YzgxMFx1Yzc1OCBcdWFjMWNcdWMyMThcdWM2NDAgXHVhYzAwXHVjN2E1IFx1ZDZhOFx1YzcyOFx1YzgwMVx1Yzc3OCBcdWM1NTVcdWNkOTVcdWI0MWMgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVjNzU4IFx1YzgxNVx1YzgxMFx1Yzc1OCBcdWFjMWNcdWMyMThcdWI5N2MgXHVhZDZjXHVkNTU4XHViMjk0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWMyZGNcdWM2MjQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1Yzc3NFx1YmJmOFx1YzljMFx1Yzc1OCBcdWQwNmNcdWFlMzBcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI0XHViMjk0IFx1YjQ1MCBcdWM4MTVcdWMyMTggbigxICZsZTsgbiAmbGU7IDEyOCksIG0oMSAmbGU7IG0gJmxlOyAxMjgpXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjNzc0XHViMjk0IFx1Yzc3NFx1YmJmOFx1YzljMFx1Yzc1OCBcdWQwNmNcdWFlMzBcdWFjMDAgbiZ0aW1lczttXHVjNzc0XHViNzdjXHViMjk0IFx1Yzc1OFx1YmJmOFx1Yzc3NFx1YjJlNC4gXHViMmU0XHVjNzRjIG5cdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwXHViMjk0IG1cdWFjMWNcdWM3NTggXHVjMjJiXHVjNzkwXHViODVjIFx1Yzc3NFx1YmJmOFx1YzljMFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1ZDc3MFx1YzBjOVx1Yzc0MCAwXHVjNzNjXHViODVjLCBcdWFjODBcdWM3NDBcdWMwYzlcdWM3NDAgMVx1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzU4IFx1YWMxY1x1YzIxOFx1YzY0MCBcdWFjMDBcdWM3YTUgXHVkNmE4XHVjNzI4XHVjODAxXHVjNzc4IFx1YzU1NVx1Y2Q5NVx1YjQxYyBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMTk5OCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlNxdWFkdHJlZXMiLCJkZXNjcmlwdGlvbiI6IjxwPlF1YWR0cmVlcyBhcmUgZGF0YSBzdHJ1Y3R1cmVzIHVzZWQgdG8gc3RvcmUgZGlnaXRhbCBpbWFnZXMuIEZvciBvdXIgcHVycG9zZXMsIHRoZSBpbWFnZXMgd2lsbCBiZSBzaW1wbGUgYml0bWFwcywgd2hlcmUgZXZlcnkgcGl4ZWwgaXMgZWl0aGVyIGEgMSAoYmxhY2spIG9yIGEgMCAod2hpdGUpLiBBIHF1YWR0cmVlIHJlcHJlc2VudGF0aW9uIG9mIGEgYml0bWFwIGlzIG9idGFpbmVkIGFzIGZvbGxvd3M6IGZpcnN0LCBhc3NvY2lhdGUgdGhlIHJvb3Qgbm9kZSB3aXRoIHRoZSBlbnRpcmUgaW1hZ2UuIElmIHRoZSBlbnRpcmUgaW1hZ2UgaXMgZWl0aGVyIGFsbCAxJiMzOTtzIG9yIGFsbCAwJiMzOTtzLCB0aGVuIHN0b3JlIHRoYXQgdmFsdWUgaW4gdGhlIG5vZGUgYW5kIHlvdSYjMzk7cmUgZG9uZS4gT3RoZXJ3aXNlIGRpdmlkZSB0aGUgcmVnaW9uIGludG8gZm91ciBlcXVhbCBzaXplIHF1YWRyYW50cywgYWRkIGZvdXIgY2hpbGRyZW4gdG8gdGhlIHJvb3QsIGFuZCBhc3NpZ24gZWFjaCBjaGlsZCBvbmUgb2YgdGhlIGZvdXIgcmVnaW9ucyBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOiB0aGUgZmlyc3QgY2hpbGQgZ2V0cyB0aGUgdXBwZXIgbGVmdCBxdWFkcmFudCwgdGhlIHNlY29uZCB0aGUgdXBwZXIgcmlnaHQsIHRoZSB0aGlyZCB0aGUgbG93ZXIgbGVmdCBhbmQgdGhlIGZvdXJ0aCB0aGUgbG93ZXIgcmlnaHQuIFRoZW4gcmVjdXJzaXZlbHkgYXBwbHkgdGhlIGFib3ZlIHJ1bGVzIHRvIGVhY2ggb2YgdGhlIGNoaWxkcmVuLiBGb3IgZXhhbXBsZSwgdGhlIDR4NCBpbWFnZSBvbiB0aGUgbGVmdCB3b3VsZCBiZSByZXByZXNlbnRlZCBieSB0aGUgcXVhZHRyZWUgb24gdGhlIHJpZ2h0OjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3FkdDEucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MTE1cHg7IHdpZHRoOjM3NXB4XCIgXC8+PFwvcD5cclxuXHJcbjxwPk5vdGUgdGhhdCB0aGlzIHByb2NlZHVyZSBvbmx5IHdvcmtzIGFzIHN0YXRlZCBpZiB0aGUgaW1hZ2UgaXMgYSBzcXVhcmUgYW5kIGhhcyBhIHNpZGUgbGVuZ3RoIGVxdWFsIHRvIGEgcG93ZXIgb2YgMi4gRm9yIHRob3NlIGltYWdlcyB3aGljaCBkbyBub3QgbWVldCB0aG9zZSByZXF1aXJlbWVudHMsIHdlIHBhZCB0aGUgcm93cyBhbmQgY29sdW1ucyB3aXRoIDAmIzM5O3MgKG9uIHRoZSByaWdodCBhbmQgb24gdGhlIGJvdHRvbSwgcmVzcGVjdGl2ZWx5KSB1bnRpbCB3ZSBoYXZlIGEgYml0bWFwIG9mIHRoZSBhcHByb3ByaWF0ZSBzaXplLiBGb3IgZXhhbXBsZSwgYSA1eDEzIGltYWdlIHdvdWxkIGJlIGNvbnZlcnRlZCB0byBhIDE2eDE2IGJpdG1hcCAod2l0aCB0aGUgb3JpZ2luYWwgaW1hZ2UgcmVzaWRpbmcgaW4gdGhlIHVwcGVyIGxlZnQgcG9ydGlvbiwgYW5kIHRoZSByZW1haW5kZXIgb2YgdGhlIGltYWdlIGZpbGxlZCB3aXRoIDAmIzM5O3MpLiZuYnNwOzxcL3A+XHJcblxyXG48cD5XaGlsZSBxdWFkdHJlZXMgY2FuIHJlc3VsdCBpbiBhIHNpZ25pZmljYW50IHNhdmluZ3MgaW4gc3BhY2Ugb3ZlciB0aGUgb3JpZ2luYWwgaW1hZ2UsIGV2ZW4gbW9yZSBzYXZpbmdzIGNhbiBiZSBhY2hpZXZlZCBpZiB3ZSBpZGVudGlmeSByZXBlYXRlZCBzdWJ0cmVlcy4gRm9yIGV4YW1wbGUsIGluIHRoZSB0cmVlIGFib3ZlLCB0aGUgZmlyc3QgYW5kIHRoaXJkIHN1YnRyZWVzIG9mIHRoZSByb290IGFyZSBpZGVudGljYWwsIHNvIHdlIGNvdWxkIHJlcGxhY2UgdGhlIHJvb3Qgb2YgdGhlIHRoaXJkIHN1YnRyZWUgd2l0aCBhIHJlZmVyZW5jZSB0byB0aGUgZmlyc3Qgc3VidHJlZSwgb2J0YWluaW5nIHNvbWV0aGluZyB0aGF0IHN5bWJvbGljYWxseSBsb29rcyBsaWtlIHRoZSBmb2xsb3dpbmc6PFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvcWR0Mi5wbmdcIiBzdHlsZT1cImhlaWdodDoxMDRweDsgd2lkdGg6MjgycHhcIiBcLz48XC9wPlxyXG5cclxuPHA+V2Ugd2lsbCBjYWxsIHRoZXNlIGNvbXByZXNzZWQgcXVhZHRyZWVzIHN1cGVyIHF1YWR0cmVlcywgb3Igc3F1YWR0cmVlcy4gRm9yIG91ciBwdXJwb3NlcyB0aGUgdXNlIG9mIGEgcmVmZXJlbmNlIHNhdmVzIHNwYWNlIG9ubHkgd2hlbiB0aGUgdHJlZSBpdCByZXBsYWNlcyBoYXMgaGVpZ2h0IG9mIGF0IGxlYXN0IDEuIFRodXMsIHdoaWxlIHdlIGNvdWxkIHJlcGxhY2UgNSBvZiB0aGUgbm9kZXMgd2hpY2ggY29udGFpbiBhIEIgd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBmaXJzdCBub2RlIHdpdGggYSBCLCB0aGlzIHdvdWxkIG5vdCBpbiBwcmFjdGljZSBzYXZlIGFueSBzcGFjZSBpbiB0aGUgY29tcHJlc3Npb24uIFVzaW5nIHRoaXMgcnVsZSwgb3VyIHNxdWFkdHJlZSBjb250YWlucyBvbmx5IDEyIG5vZGVzLCBhcyBvcHBvc2VkIHRvIDE3IGluIHRoZSBvcmlnaW5hbCBxdWFkdHJlZS4gWW91ciBqb2IgZm9yIHRoaXMgcHJvYmxlbSBpcyB0byB0YWtlIGEgc2V0IG9mIGltYWdlcyBhbmQgZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYm90aCB0aGUgcmVzdWx0aW5nIHF1YWR0cmVlcyBhbmQgc3F1YWR0cmVlcy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPklucHV0IHdpbGwgY29uc2lzdCBvZiBtdWx0aXBsZSBwcm9ibGVtIGluc3RhbmNlcy4gRWFjaCBpbnN0YW5jZSB3aWxsIHN0YXJ0IHdpdGggYSBzaW5nbGUgbGluZSBjb250YWluaW5nIHR3byBpbnRlZ2VycyBuIGFuZCBtLCBpbmRpY2F0aW5nIHRoZSBudW1iZXIgb2Ygcm93cyBhbmQgY29sdW1ucyBpbiB0aGUgaW1hZ2UuIFRoZSBtYXhpbXVtIHZhbHVlcyBmb3IgdGhlc2UgaW50ZWdlcnMgaXMgMTI4LiBUaGUgbmV4dCBuIGxpbmVzIHdpbGwgZWFjaCBjb250YWluIG0gY2hhcmFjdGVycyByZXByZXNlbnRpbmcgdGhlIGltYWdlIHRvIHByb2Nlc3MuIEEgYmxhY2sgcGl4ZWwgd2lsbCBiZSByZXByZXNlbnRlZCBieSBhIGAxJiMzOTssIGFuZCBhIHdoaXRlIHBpeGVsIHdpbGwgYmUgcmVwcmVzZW50ZWQgYnkgYSBgMCYjMzk7LiBUaGUgaW5wdXQgbGluZSAwIDAgd2lsbCB0ZXJtaW5hdGUgaW5wdXQgYW5kIHNob3VsZCBub3QgYmUgcHJvY2Vzc2VkLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBlYWNoIHByb2JsZW0gaW5zdGFuY2UsIG91dHB1dCB0d28gaW50ZWdlcnMgc2VwYXJhdGVkIGJ5IGEgc2luZ2xlIHNwYWNlLiBUaGUgZmlyc3QgdmFsdWUgaXMgdGhlIG51bWJlciBvZiBub2RlcyBpbiB0aGUgcXVhZHRyZWUgZm9yIHRoZSBwcm9ibGVtIGluc3RhbmNlLCBhbmQgdGhlIHNlY29uZCBpcyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBzcXVhZHRyZWUuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCJ9XQ==