시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB42281368.421%

문제

두 어린이 Albert와 Bob은 종종 카드게임을 한다. 양수가 적힌 카드 $N$장과 음수가 적힌 카드 $N$장을 이용한 게임을 하는데, 각 카드에는 절댓값이 1이상 $N$ 이하의 정수가 적혀있고, 같은 정수가 두 장 이상의 카드에 적힌 경우는 없다. 즉 $-N$ 부터 $-1$, 그리고 $1$부터 $N$까지의 정수가 각각 한 번씩 등장한다.

우선, 두 어린이는 카드를 잘 섞은 후 각자 $N$장씩 가져간다 -- 카드가 총 $2N$ 장 이므로, 각 어린이는 자신의 카드 $N$ 장을 확인하면 상대방이 가진 카드 $N$장이 무엇인지 알 수 있다. 이후 총 $N$ 턴 동안 게임을 진행하는데, 각 턴에 각자 한 장씩의 카드를 동시에 내서 아래 규칙에 따라 점수를 매긴다.

  1. 두 카드에 적힌 수의 부호가 같다면 (즉, 둘 다 음수이거나 둘 다 양수라면), 절댓값이 큰 카드를 낸 사람이 1점을 얻는다.
  2. 두 카드에 적힌 수의 부호가 다르다면, 동생인 Albert가 1점을 얻는다.

마지막 $N$번째 턴을 마친 후에 각자 점수의 총합을 구했더니 Albert의 점수는 $M$ 점이었다. Albert는 본인이 어떤 순서로 자신의 $N$장의 카드를 냈는지 정확히 기억하지만, Bob이 어떤 순서로 카드를 냈는지는 기억하지 못한다. Albert는 문득 궁금해졌다: 자신은 카드를 낸 순서를 바꾸지 않을 때, Bob이 어떤 순서로 그의 카드를 플레이할 때 Albert가 그대로 $M$점을 얻을 수 있을까?

편의상 $i$번째 턴에 Albert가 낸 카드에 적힌 수를 $X[i]$라 하고 Bob이 낸 카드에 적힌 수를 $Y[i]$라 하자.

예를 들어 $N = 3$, $M = 1$ 이고 $X = [1, -1, 2]$ 라고 하면, Bob이 가진 카드는 $[-3, -2, 3]$ 임을 알 수 있다 - 이렇게 세 장의 카드를 임의의 순서로 플레이 하는 경우는 $3! = 6$ 가지 있고, 아래와 같이 Albert의 최종 점수가 1이 되는 경우는 4가지 존재한다.

  • $Y = [-3, -2, 3]$: Albert는 1번째 턴에 1점을 얻고 나머지 턴에 점수를 얻지 못해 총점이 1점이 된다.
  • $Y = [-3, 3, -2]$: Albert는 모든 턴에 점수를 얻어 총점이 3점이 된다.
  • $Y = [-2, -3, 3]$: Albert는 1번째 턴에 1점을 얻고 나머지 턴에 점수를 얻지 못해 총점이 1점이 된다.
  • $Y = [-2, 3, -3]$: Albert는 모든 턴에 점수를 얻어 총점이 3점이 된다.
  • $Y = [3, -3, -2]$: Albert는 3번째 턴에 1점을 얻고 나머지 턴에 점수를 얻지 못해 총점이 1점이 된다.
  • $Y = [3, -2, -3]$: Albert는 3번째 턴에 1점을 얻고 나머지 턴에 점수를 얻지 못해 총점이 1점이 된다.

입력으로 $N$, $M$, $X$가 주어졌을 때, Albert가 정확히 $M$점을 얻게 되도록 하는 Bob의 카드 내는 순서의 총 수를 구해보자. 위 예제의 경우 정답은 4가 된다.

입력

첫 줄에 테스트 케이스의 수 $T$가 주어진다.

각 테스트 케이스의 첫 줄에는 $N$, $M$이 공백으로 구분되어 주어진다. 둘째 줄에는 Albert가 플레이 한 카드에 적힌 $N$개의 정수 (즉, 배열 $X$)가 공백으로 구분되어 주어진다.

출력

각 줄에 각 테스트 케이스의 정답을 출력한다.

제한

  • $1 \le T \le 10$
  • $1 \le N \le 15$
  • $0 \le M \le N$
  • $1 \le i \le N$ 인 각 $i$에 대하여: $1 \le | X[i] | \le N$ (여기서 $|x|$ 는 $x$ 의 절댓값이다)
  • $i \ne j$ 이면서 $X[i] = X[j]$ 인 경우는 없다 (즉, 배열 $X$에 중복된 원소는 없다)

예제 입력 1

7
3 3
1 2 3
3 1
1 -1 2
3 3
1 2 -3
3 0
-1 -2 3
11 11
1 2 3 4 5 6 7 8 9 10 -11
11 10
1 2 3 4 5 6 7 8 9 -10 -11
11 9
1 2 3 4 5 6 7 8 -9 -10 -11

예제 출력 1

6
4
2
0
3628800
13063680
20321280

예제 1: Bob이 가진 카드는 $[-1, -2, -3]$ 임을 알 수 있다. 어떤 순서로 플레이 하더라도 두 카드에 적힌 수의 부호가 다르므로 Albert가 매번 점수를 얻어 총 3점을 얻게된다.

예제 2: 본문에서 다루었다

예제 3: 추가 설명 없음

예제 4: Bob이 가진 카드는 $[1, 2, -3]$ 임을 알 수 있다. Bob이 어떤 순서로 카드를 내더라도 Albert가 최소 1점을 얻게 되므로 정답은 0이 된다.

예제 5-7: 추가 설명 없음

W3sicHJvYmxlbV9pZCI6IjMxNDUzIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVjZTc0XHViNGRjIFx1YWM4Y1x1Yzc4NCIsImRlc2NyaXB0aW9uIjoiPHA+XHViNDUwIFx1YzViNFx1YjliMFx1Yzc3NCBBbGJlcnRcdWM2NDAgQm9iXHVjNzQwIFx1Yzg4NVx1Yzg4NSBcdWNlNzRcdWI0ZGNcdWFjOGNcdWM3ODRcdWM3NDQgXHVkNTVjXHViMmU0LiBcdWM1OTFcdWMyMThcdWFjMDAgXHVjODAxXHVkNzhjIFx1Y2U3NFx1YjRkYyAkTiRcdWM3YTVcdWFjZmMgXHVjNzRjXHVjMjE4XHVhYzAwIFx1YzgwMVx1ZDc4YyBcdWNlNzRcdWI0ZGMgJE4kXHVjN2E1XHVjNzQ0IFx1Yzc3NFx1YzZhOVx1ZDU1YyBcdWFjOGNcdWM3ODRcdWM3NDQgXHVkNTU4XHViMjk0XHViMzcwLCBcdWFjMDEgXHVjZTc0XHViNGRjXHVjNWQwXHViMjk0IFx1YzgwOFx1YjMxM1x1YWMxMlx1Yzc3NCAxXHVjNzc0XHVjMGMxICROJCBcdWM3NzRcdWQ1NThcdWM3NTggXHVjODE1XHVjMjE4XHVhYzAwIFx1YzgwMVx1ZDYwMFx1Yzc4OFx1YWNlMCwgXHVhYzE5XHVjNzQwIFx1YzgxNVx1YzIxOFx1YWMwMCBcdWI0NTAgXHVjN2E1IFx1Yzc3NFx1YzBjMVx1Yzc1OCBcdWNlNzRcdWI0ZGNcdWM1ZDAgXHVjODAxXHVkNzhjIFx1YWNiZFx1YzZiMFx1YjI5NCBcdWM1YzZcdWIyZTQuIFx1Yzk4OSAkLU4kIFx1YmQ4MFx1ZDEzMCAkLTEkLCBcdWFkZjhcdWI5YWNcdWFjZTAgJDEkXHViZDgwXHVkMTMwICROJFx1YWU0Y1x1YzljMFx1Yzc1OCBcdWM4MTVcdWMyMThcdWFjMDAgXHVhYzAxXHVhYzAxIFx1ZDU1YyBcdWJjODhcdWM1MjkgXHViNGYxXHVjN2E1XHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2YjBcdWMxMjAsIFx1YjQ1MCBcdWM1YjRcdWI5YjBcdWM3NzRcdWIyOTQgXHVjZTc0XHViNGRjXHViOTdjIFx1Yzc5OCBcdWMxMWVcdWM3NDAgXHVkNmM0IFx1YWMwMVx1Yzc5MCAkTiRcdWM3YTVcdWM1MjkgXHVhYzAwXHVjODM4XHVhYzA0XHViMmU0IC0tIFx1Y2U3NFx1YjRkY1x1YWMwMCBcdWNkMWQgJDJOJCBcdWM3YTUgXHVjNzc0XHViYmMwXHViODVjLCBcdWFjMDEgXHVjNWI0XHViOWIwXHVjNzc0XHViMjk0IFx1Yzc5MFx1YzJlMFx1Yzc1OCBcdWNlNzRcdWI0ZGMgJE4kIFx1YzdhNVx1Yzc0NCBcdWQ2NTVcdWM3NzhcdWQ1NThcdWJhNzQgXHVjMGMxXHViMzAwXHViYzI5XHVjNzc0IFx1YWMwMFx1YzljNCBcdWNlNzRcdWI0ZGMgJE4kXHVjN2E1XHVjNzc0IFx1YmIzNFx1YzVjN1x1Yzc3OFx1YzljMCBcdWM1NGMgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVjNzc0XHVkNmM0IFx1Y2QxZCAkTiQgXHVkMTM0IFx1YjNkOVx1YzU0OCBcdWFjOGNcdWM3ODRcdWM3NDQgXHVjOWM0XHVkNTg5XHVkNTU4XHViMjk0XHViMzcwLCBcdWFjMDEgXHVkMTM0XHVjNWQwIFx1YWMwMVx1Yzc5MCBcdWQ1NWMgXHVjN2E1XHVjNTI5XHVjNzU4IFx1Y2U3NFx1YjRkY1x1Yjk3YyBcdWIzZDlcdWMyZGNcdWM1ZDAgXHViMGI0XHVjMTFjIFx1YzU0NFx1Yjc5OCBcdWFkZGNcdWNlNTlcdWM1ZDAgXHViNTMwXHViNzdjIFx1YzgxMFx1YzIxOFx1Yjk3YyBcdWI5ZTRcdWFlMzRcdWIyZTQuIDxcL3A+XHJcblxyXG48b2w+XHJcblx0PGxpPlx1YjQ1MCBcdWNlNzRcdWI0ZGNcdWM1ZDAgXHVjODAxXHVkNzhjIFx1YzIxOFx1Yzc1OCBcdWJkODBcdWQ2MzhcdWFjMDAgXHVhYzE5XHViMmU0XHViYTc0IChcdWM5ODksIFx1YjQ1OCBcdWIyZTQgXHVjNzRjXHVjMjE4XHVjNzc0XHVhYzcwXHViMDk4IFx1YjQ1OCBcdWIyZTQgXHVjNTkxXHVjMjE4XHViNzdjXHViYTc0KSwgXHVjODA4XHViMzEzXHVhYzEyXHVjNzc0IFx1ZDA3MCBcdWNlNzRcdWI0ZGNcdWI5N2MgXHViMGI4IFx1YzBhY1x1Yjc4Y1x1Yzc3NCAxXHVjODEwXHVjNzQ0IFx1YzViYlx1YjI5NFx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHViNDUwIFx1Y2U3NFx1YjRkY1x1YzVkMCBcdWM4MDFcdWQ3OGMgXHVjMjE4XHVjNzU4IFx1YmQ4MFx1ZDYzOFx1YWMwMCBcdWIyZTRcdWI5NzRcdWIyZTRcdWJhNzQsIFx1YjNkOVx1YzBkZFx1Yzc3OCBBbGJlcnRcdWFjMDAgMVx1YzgxMFx1Yzc0NCBcdWM1YmJcdWIyOTRcdWIyZTQuPFwvbGk+XHJcbjxcL29sPlxyXG5cclxuPHA+XHViOWM4XHVjOWMwXHViOWM5ICROJFx1YmM4OFx1YzlmOCBcdWQxMzRcdWM3NDQgXHViOWM4XHVjZTVjIFx1ZDZjNFx1YzVkMCBcdWFjMDFcdWM3OTAgXHVjODEwXHVjMjE4XHVjNzU4IFx1Y2QxZFx1ZDU2OVx1Yzc0NCBcdWFkNmNcdWQ1ODhcdWIzNTRcdWIyYzggQWxiZXJ0XHVjNzU4IFx1YzgxMFx1YzIxOFx1YjI5NCAkTSQgXHVjODEwXHVjNzc0XHVjNWM4XHViMmU0LiBBbGJlcnRcdWIyOTQgXHViY2Y4XHVjNzc4XHVjNzc0IFx1YzViNFx1YjVhNCBcdWMyMWNcdWMxMWNcdWI4NWMgXHVjNzkwXHVjMmUwXHVjNzU4ICROJFx1YzdhNVx1Yzc1OCBcdWNlNzRcdWI0ZGNcdWI5N2MgXHViMGM4XHViMjk0XHVjOWMwIFx1YzgxNVx1ZDY1NVx1ZDc4OCBcdWFlMzBcdWM1YjVcdWQ1NThcdWM5YzBcdWI5Y2MsIEJvYlx1Yzc3NCBcdWM1YjRcdWI1YTQgXHVjMjFjXHVjMTFjXHViODVjIFx1Y2U3NFx1YjRkY1x1Yjk3YyBcdWIwYzhcdWIyOTRcdWM5YzBcdWIyOTQgXHVhZTMwXHVjNWI1XHVkNTU4XHVjOWMwIFx1YmFiYlx1ZDU1Y1x1YjJlNC4gQWxiZXJ0XHViMjk0IFx1YmIzOFx1YjRkZCBcdWFkODFcdWFlMDhcdWQ1NzRcdWM4NGNcdWIyZTQ6IFx1Yzc5MFx1YzJlMFx1Yzc0MCBcdWNlNzRcdWI0ZGNcdWI5N2MgXHViMGI4IFx1YzIxY1x1YzExY1x1Yjk3YyBcdWJjMTRcdWFmYjhcdWM5YzAgXHVjNTRhXHVjNzQ0IFx1YjU0YywgQm9iXHVjNzc0IFx1YzViNFx1YjVhNCBcdWMyMWNcdWMxMWNcdWI4NWMgXHVhZGY4XHVjNzU4IFx1Y2U3NFx1YjRkY1x1Yjk3YyBcdWQ1MGNcdWI4MDhcdWM3NzRcdWQ1NjAgXHViNTRjIEFsYmVydFx1YWMwMCBcdWFkZjhcdWIzMDBcdWI4NWMgJE0kXHVjODEwXHVjNzQ0IFx1YzViYlx1Yzc0NCBcdWMyMTggXHVjNzg4XHVjNzQ0XHVhZTRjPzxcL3A+XHJcblxyXG48cD5cdWQzYjhcdWM3NThcdWMwYzEgJGkkXHViYzg4XHVjOWY4IFx1ZDEzNFx1YzVkMCBBbGJlcnRcdWFjMDAgXHViMGI4IFx1Y2U3NFx1YjRkY1x1YzVkMCBcdWM4MDFcdWQ3OGMgXHVjMjE4XHViOTdjICRYW2ldJFx1Yjc3YyBcdWQ1NThcdWFjZTAgQm9iXHVjNzc0IFx1YjBiOCBcdWNlNzRcdWI0ZGNcdWM1ZDAgXHVjODAxXHVkNzhjIFx1YzIxOFx1Yjk3YyAkWVtpXSRcdWI3N2MgXHVkNTU4XHVjNzkwLjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0ICROID0gMyQsICRNID0gMSQgXHVjNzc0XHVhY2UwICRYID0gWzEsIC0xLCAyXSQgXHViNzdjXHVhY2UwIFx1ZDU1OFx1YmE3NCwgQm9iXHVjNzc0IFx1YWMwMFx1YzljNCBcdWNlNzRcdWI0ZGNcdWIyOTQgJFstMywgLTIsIDNdJCBcdWM3ODRcdWM3NDQgXHVjNTRjIFx1YzIxOCBcdWM3ODhcdWIyZTQgLSBcdWM3NzRcdWI4MDdcdWFjOGMgXHVjMTM4IFx1YzdhNVx1Yzc1OCBcdWNlNzRcdWI0ZGNcdWI5N2MgXHVjNzg0XHVjNzU4XHVjNzU4IFx1YzIxY1x1YzExY1x1Yjg1YyBcdWQ1MGNcdWI4MDhcdWM3NzQgXHVkNTU4XHViMjk0IFx1YWNiZFx1YzZiMFx1YjI5NCAkMyEgPSA2JCBcdWFjMDBcdWM5YzAgXHVjNzg4XHVhY2UwLCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHVjNzc0IEFsYmVydFx1Yzc1OCBcdWNkNWNcdWM4ODUgXHVjODEwXHVjMjE4XHVhYzAwIDFcdWM3NzQgXHViNDE4XHViMjk0IFx1YWNiZFx1YzZiMFx1YjI5NCA0XHVhYzAwXHVjOWMwIFx1Yzg3NFx1YzdhY1x1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kWSA9IFstMywgLTIsIDNdJDogQWxiZXJ0XHViMjk0IDFcdWJjODhcdWM5ZjggXHVkMTM0XHVjNWQwIDFcdWM4MTBcdWM3NDQgXHVjNWJiXHVhY2UwIFx1YjA5OFx1YmEzOFx1YzljMCBcdWQxMzRcdWM1ZDAgXHVjODEwXHVjMjE4XHViOTdjIFx1YzViYlx1YzljMCBcdWJhYmJcdWQ1NzQgXHVjZDFkXHVjODEwXHVjNzc0IDFcdWM4MTBcdWM3NzQgXHViNDFjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT4kWSA9IFstMywgMywgLTJdJDogQWxiZXJ0XHViMjk0IFx1YmFhOFx1YjRlMCBcdWQxMzRcdWM1ZDAgXHVjODEwXHVjMjE4XHViOTdjIFx1YzViYlx1YzViNCBcdWNkMWRcdWM4MTBcdWM3NzQgM1x1YzgxMFx1Yzc3NCBcdWI0MWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPiRZID0gWy0yLCAtMywgM10kOiBBbGJlcnRcdWIyOTQgMVx1YmM4OFx1YzlmOCBcdWQxMzRcdWM1ZDAgMVx1YzgxMFx1Yzc0NCBcdWM1YmJcdWFjZTAgXHViMDk4XHViYTM4XHVjOWMwIFx1ZDEzNFx1YzVkMCBcdWM4MTBcdWMyMThcdWI5N2MgXHVjNWJiXHVjOWMwIFx1YmFiYlx1ZDU3NCBcdWNkMWRcdWM4MTBcdWM3NzQgMVx1YzgxMFx1Yzc3NCBcdWI0MWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPiRZID0gWy0yLCAzLCAtM10kOiBBbGJlcnRcdWIyOTQgXHViYWE4XHViNGUwIFx1ZDEzNFx1YzVkMCBcdWM4MTBcdWMyMThcdWI5N2MgXHVjNWJiXHVjNWI0IFx1Y2QxZFx1YzgxMFx1Yzc3NCAzXHVjODEwXHVjNzc0IFx1YjQxY1x1YjJlNC48XC9saT5cclxuXHQ8bGk+JFkgPSBbMywgLTMsIC0yXSQ6IEFsYmVydFx1YjI5NCAzXHViYzg4XHVjOWY4IFx1ZDEzNFx1YzVkMCAxXHVjODEwXHVjNzQ0IFx1YzViYlx1YWNlMCBcdWIwOThcdWJhMzhcdWM5YzAgXHVkMTM0XHVjNWQwIFx1YzgxMFx1YzIxOFx1Yjk3YyBcdWM1YmJcdWM5YzAgXHViYWJiXHVkNTc0IFx1Y2QxZFx1YzgxMFx1Yzc3NCAxXHVjODEwXHVjNzc0IFx1YjQxY1x1YjJlNC48XC9saT5cclxuXHQ8bGk+JFkgPSBbMywgLTIsIC0zXSQ6IEFsYmVydFx1YjI5NCAzXHViYzg4XHVjOWY4IFx1ZDEzNFx1YzVkMCAxXHVjODEwXHVjNzQ0IFx1YzViYlx1YWNlMCBcdWIwOThcdWJhMzhcdWM5YzAgXHVkMTM0XHVjNWQwIFx1YzgxMFx1YzIxOFx1Yjk3YyBcdWM1YmJcdWM5YzAgXHViYWJiXHVkNTc0IFx1Y2QxZFx1YzgxMFx1Yzc3NCAxXHVjODEwXHVjNzc0IFx1YjQxY1x1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgJE4kLCAkTSQsICRYJFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBBbGJlcnRcdWFjMDAgXHVjODE1XHVkNjU1XHVkNzg4ICRNJFx1YzgxMFx1Yzc0NCBcdWM1YmJcdWFjOGMgXHViNDE4XHViM2M0XHViODVkIFx1ZDU1OFx1YjI5NCBCb2JcdWM3NTggXHVjZTc0XHViNGRjIFx1YjBiNFx1YjI5NCBcdWMyMWNcdWMxMWNcdWM3NTggXHVjZDFkIFx1YzIxOFx1Yjk3YyBcdWFkNmNcdWQ1NzRcdWJjZjRcdWM3OTAuIFx1YzcwNCBcdWM2MDhcdWM4MWNcdWM3NTggXHVhY2JkXHVjNmIwIFx1YzgxNVx1YjJmNVx1Yzc0MCA0XHVhYzAwIFx1YjQxY1x1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYiBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWMyMTggJFQkXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVjY2FiIFx1YzkwNFx1YzVkMFx1YjI5NCAkTiQsICRNJFx1Yzc3NCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHViNDU4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBBbGJlcnRcdWFjMDAgXHVkNTBjXHViODA4XHVjNzc0IFx1ZDU1YyBcdWNlNzRcdWI0ZGNcdWM1ZDAgXHVjODAxXHVkNzhjICROJFx1YWMxY1x1Yzc1OCBcdWM4MTVcdWMyMTggKFx1Yzk4OSwgXHViYzMwXHVjNWY0ICAkWCQpXHVhYzAwIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWI0MThcdWM1YjQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMSBcdWM5MDRcdWM1ZDAgXHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVjODE1XHViMmY1XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4iLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+JDEgXFxsZSBUIFxcbGUgMTAkPFwvbGk+XHJcblx0PGxpPiQxIFxcbGUgTiBcXGxlIDE1JDxcL2xpPlxyXG5cdDxsaT4kMCBcXGxlIE0gXFxsZSBOJDxcL2xpPlxyXG5cdDxsaT4kMSBcXGxlIGkgXFxsZSBOJCBcdWM3NzggXHVhYzAxICRpJFx1YzVkMCBcdWIzMDBcdWQ1NThcdWM1ZWM6ICQxIFxcbGUgfCBYW2ldIHwgXFxsZSBOJCAoXHVjNWVjXHVhZTMwXHVjMTFjICR8eHwkIFx1YjI5NCAkeCQgXHVjNzU4IFx1YzgwOFx1YjMxM1x1YWMxMlx1Yzc3NFx1YjJlNCk8XC9saT5cclxuXHQ8bGk+JGkgXFxuZSBqJCBcdWM3NzRcdWJhNzRcdWMxMWMgJFhbaV0gPSBYW2pdJCBcdWM3NzggXHVhY2JkXHVjNmIwXHViMjk0IFx1YzVjNlx1YjJlNCAoXHVjOTg5LCBcdWJjMzBcdWM1ZjQgJFgkXHVjNWQwIFx1YzkxMVx1YmNmNVx1YjQxYyBcdWM2ZDBcdWMxOGNcdWIyOTQgXHVjNWM2XHViMmU0KTxcL2xpPlxyXG48XC91bD5cclxuIiwic2FtcGxlX2V4cGxhaW5fMSI6IjxwPlx1YzYwOFx1YzgxYyAxOiBCb2JcdWM3NzQgXHVhYzAwXHVjOWM0IFx1Y2U3NFx1YjRkY1x1YjI5NCAkWy0xLCAtMiwgLTNdJCBcdWM3ODRcdWM3NDQgXHVjNTRjIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzViNFx1YjVhNCBcdWMyMWNcdWMxMWNcdWI4NWMgXHVkNTBjXHViODA4XHVjNzc0IFx1ZDU1OFx1YjM1NFx1Yjc3Y1x1YjNjNCBcdWI0NTAgXHVjZTc0XHViNGRjXHVjNWQwIFx1YzgwMVx1ZDc4YyBcdWMyMThcdWM3NTggXHViZDgwXHVkNjM4XHVhYzAwIFx1YjJlNFx1Yjk3NFx1YmJjMFx1Yjg1YyBBbGJlcnRcdWFjMDAgXHViOWU0XHViYzg4IFx1YzgxMFx1YzIxOFx1Yjk3YyBcdWM1YmJcdWM1YjQgXHVjZDFkIDNcdWM4MTBcdWM3NDQgXGJcdWM1YmJcdWFjOGNcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzYwOFx1YzgxYyAyOiBcdWJjZjhcdWJiMzhcdWM1ZDBcdWMxMWMgXHViMmU0XHViOGU4XHVjNWM4XHViMmU0PFwvcD5cclxuXHJcbjxwPlx1YzYwOFx1YzgxYyAzOiBcdWNkOTRcdWFjMDAgXHVjMTI0XHViYTg1IFx1YzVjNlx1Yzc0YzxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWM4MWMgNDogQm9iXHVjNzc0IFx1YWMwMFx1YzljNCBcdWNlNzRcdWI0ZGNcdWIyOTQgJFsxLCAyLCAtM10kIFx1Yzc4NFx1Yzc0NCBcdWM1NGMgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gQm9iXHVjNzc0IFx1YzViNFx1YjVhNCBcdWMyMWNcdWMxMWNcdWI4NWMgXHVjZTc0XHViNGRjXHViOTdjIFx1YjBiNFx1YjM1NFx1Yjc3Y1x1YjNjNCBBbGJlcnRcdWFjMDAgXHVjZDVjXHVjMThjIDFcdWM4MTBcdWM3NDQgXHVjNWJiXHVhYzhjIFx1YjQxOFx1YmJjMFx1Yjg1YyBcdWM4MTVcdWIyZjVcdWM3NDAgMFx1Yzc3NCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzYwOFx1YzgxYyA1LTc6IFx1Y2Q5NFx1YWMwMCBcdWMxMjRcdWJhODUgXHVjNWM2XHVjNzRjPFwvcD5cclxuIn0seyJwcm9ibGVtX2lkIjoiMzE0NTMiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJDYXJkIEdhbWUiLCJkZXNjcmlwdGlvbiI6IjxwPlR3byBraWRzIEFsYmVydCBhbmQgQm9iIG9mdGVuIHBsYXkgYSBjYXJkIGdhbWUuIFRoZXkgdXNlICROJCBjYXJkcyB3aXRoIHBvc2l0aXZlIG51bWJlcnMgYW5kICROJCBjYXJkcyB3aXRoIG5lZ2F0aXZlIG51bWJlcnMgd2hlcmUgZWFjaCBjYXJkIGhhcyBhIG51bWJlciB3cml0dGVuIG9uIGl0ICh3aG9zZSBhYnNvbHV0ZSB2YWx1ZSBpcyBiZXR3ZWVuIDEgYW5kICROJCwgaW5jbHVzaXZlKSBhbmQgd2hlcmUgbm8gdHdvIGNhcmRzIGhhdmUgdGhlIHNhbWUgbnVtYmVycyB3cml0dGVuIG9uIHRoZW0uIFRoYXQgaXMsIGVhY2ggbnVtYmVyIGJldHdlZW4gJC1OJCBhbmQgJC0xJCBhbmQgZWFjaCBudW1iZXIgYmV0d2VlbiAkMSQgYW5kICROJCAoYWxsIGluY2x1c2l2ZSkgYXBwZWFycyBleGFjdGx5IG9uY2UuPFwvcD5cclxuXHJcbjxwPkZpcnN0LCB0aGUgdHdvIGtpZHMgc2h1ZmZsZSB0aGUgY2FyZHMgYW5kIHRha2UgJE4kIGNhcmRzIGVhY2guIFNpbmNlIHRoZXJlIGFyZSBleGFjdGx5ICQyTiQgY2FyZHMsIGVhY2gga2lkIGtub3dzIHdoYXQgY2FyZHMgdGhlIG90aGVyIGtpZCBoYXMgYXMgc29vbiBhcyBoZSBjaGVja3MgaGlzIG93biBoYW5kLiBUaGVuLCB0aGV5IHBsYXkgdGhlIGdhbWUgZm9yICROJCB0dXJucyB3aGVyZSBpbiBlYWNoIHR1cm4sIHRoZSBraWRzIHBsYXkgb25lIGNhcmQgZWFjaCAoc2ltdWx0YW5lb3VzbHkpLCBhbmQgb25lIG9mIHRoZW0gc2NvcmVzIGEgcG9pbnQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgcnVsZXM6PFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+SWYgdGhlIHR3byBjYXJkcyBoYXZlIHRoZSBzYW1lIHNpZ24gKGkuZS4gYm90aCBudW1iZXJzIGFyZSBwb3NpdGl2ZSBvciBib3RoIG51bWJlcnMgYXJlIG5lZ2F0aXZlKSwgdGhlbiB0aGUgcGxheWVyIHdobyBwbGF5ZWQgdGhlIGNhcmQgd2l0aCB0aGUgaGlnaGVyIGFic29sdXRlIHZhbHVlIHdpbnMgMSZuYnNwO3BvaW50LjxcL2xpPlxyXG5cdDxsaT5JZiB0aGUgdHdvIGNhcmRzIGhhdmUgdGhlIG9wcG9zaXRlIHNpZ24sIHRoZW4gQWxiZXJ0ICh0aGUgeW91bmdlciBicm90aGVyKSB3aW5zIDEgcG9pbnQuPFwvbGk+XHJcbjxcL29sPlxyXG5cclxuPHA+QWZ0ZXIgdGhleSBwbGF5ZWQgdGhlICROJC10aCB0dXJuLCBBbGJlcnQmIzM5O3Mgc2NvcmUgaXMmbmJzcDskTSQgcG9pbnRzLiBBbGJlcnQgcmVtZW1iZXJzIHRoZSBleGFjdCBvcmRlciBpbiB3aGljaCBoZSBwbGF5ZWQgaGlzIGNhcmRzIGJ1dCBkb2VzIG5vdCByZW1lbWJlciBob3cgQm9iIHBsYXllZC4gQWxiZXJ0IGlzIGN1cmlvdXM6IElmIEFsYmVydCBkaWRuJiMzOTt0IGNoYW5nZSB0aGUgb3JkZXIgaW4gd2hpY2ggaGUgcGxheXMgaGlzIGNhcmRzLCB0aGVuIHdoYXQgb3JkZXIgaW4gd2hpY2ggQm9iIHBsYXlzIGhpcyBjYXJkcyZuYnNwO3dvdWxkIHN0aWxsIGdpdmUmbmJzcDtBbGJlcnQmbmJzcDskTSQgcG9pbnRzPzxcL3A+XHJcblxyXG48cD5Gb3IgY29udmVuaWVuY2UsIGxldCAkWFtpXSQgYmUgdGhlIG51bWJlciBvbiBBbGJlcnQmIzM5O3MgY2FyZCBhbmQgJFlbaV0kIGJlIHRoZSBudW1iZXIgb2YgQm9iJiMzOTtzIGNhcmQgcGxheWVkIGluIHR1cm4gJGkkLjxcL3A+XHJcblxyXG48cD5Gb3IgaW5zdGFuY2UsIHdoZW4mbmJzcDskTiA9IDMkLCAkTSA9IDEkIGFuZCAkWCA9IFsxLCAtMSwgMl0kLCB0aGVuIHdlIGtub3cgQm9iJiMzOTtzIGNhcmRzIGFyZSAkWy0zLCAtMiwgM10kLiBUaGVyZSBhcmUgJDMhID0gNiQgZGlmZmVyZW50IG9yZGVycyBpbiB3aGljaCBCb2IgY291bGQgcGxheSBoaXMgY2FyZHMsIGFuZCB0aGVyZSBhcmUgNCB3YXlzIGluIHdoaWNoIEFsYmVydCYjMzk7cyBmaW5hbCBzY29yZSB3b3VsZCBiZSAxIHBvaW50LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiRZID0gWy0zLCAtMiwgM10kOiBBbGJlcnQgd2lucyAxIHBvaW50IGluIHR1cm4gMSwgYnV0IG5vbmUgaW4gb3RoZXIgdHVybnMuIEhpcyBmaW5hbCBzY29yZSB3aWxsIGJlIDEuPFwvbGk+XHJcblx0PGxpPiRZID0gWy0zLCAzLCAtMl0kOiBBbGJlcnQgd2lucyAxIHBvaW50IGluIGV2ZXJ5IHR1cm4sIG5ldHRpbmcgMyBwb2ludHMgaW4gdGhlIGVuZC48XC9saT5cclxuXHQ8bGk+JFkgPSBbLTIsIC0zLCAzXSQ6Jm5ic3A7QWxiZXJ0IHdpbnMgMSBwb2ludCBpbiB0dXJuIDEsIGJ1dCBub25lIGluIG90aGVyIHR1cm5zLiBIaXMgZmluYWwgc2NvcmUgd2lsbCBiZSAxLjxcL2xpPlxyXG5cdDxsaT4kWSA9IFstMiwgMywgLTNdJDombmJzcDtBbGJlcnQgd2lucyAxIHBvaW50IGluIGV2ZXJ5IHR1cm4sIG5ldHRpbmcgMyBwb2ludHMgaW4gdGhlIGVuZC48XC9saT5cclxuXHQ8bGk+JFkgPSBbMywgLTMsIC0yXSQ6Jm5ic3A7QWxiZXJ0IHdpbnMgMSBwb2ludCBpbiB0dXJuIDMsIGJ1dCBub25lIGluIG90aGVyIHR1cm5zLiBIaXMgZmluYWwgc2NvcmUgd2lsbCBiZSAxLjxcL2xpPlxyXG5cdDxsaT4kWSA9IFszLCAtMiwgLTNdJDombmJzcDtBbGJlcnQgd2lucyAxIHBvaW50IGluIHR1cm4gMywgYnV0IG5vbmUgaW4gb3RoZXIgdHVybnMuIEhpcyBmaW5hbCBzY29yZSB3aWxsIGJlIDEuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+R2l2ZW4gJE4kLCAkTSQsIGFuZCAkWCQgYXMgaW5wdXQsIGZpbmQgdGhlIG51bWJlciBvZiBvcmRlcnMgaW4gd2hpY2ggQm9iIHBsYXlzIGhpcyBjYXJkcyBzdWNoIHRoYXQgQWxiZXJ0IHdvdWxkIGdldCAkTSQgcG9pbnRzIGluIHRvdGFsIGF0IHRoZSBlbmQuIFRoZSBhbnN3ZXIgdG8gdGhlIGV4YW1wbGUgYWJvdmUgaXMgNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIG9mIGlucHV0IHdpbGwgY29udGFpbiAkVCQsIHRoZSBudW1iZXIgb2YgdGVzdCBjYXNlcy48XC9wPlxyXG5cclxuPHA+VGhlIGZpcnN0IGxpbmUgb2YgZWFjaCB0ZXN0IGNhc2Ugd2lsbCBjb250YWluICROJCBhbmQgJE0kLCBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZS4gVGhlIHNlY29uZCBsaW5lIHdpbGwgY29udGFpbiAkTiQgaW50ZWdlcnMgKGRlc2NyaWJpbmcgJFgkKSwgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+T3V0cHV0IHRoZSBhbnN3ZXIgdG8gZWFjaCB0ZXN0IGNhc2UgaW4gZWFjaCBsaW5lLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+JDEgXFxsZSBUIFxcbGUgMTAkPFwvbGk+XHJcblx0PGxpPiQxIFxcbGUgTiBcXGxlIDE1JDxcL2xpPlxyXG5cdDxsaT4kMCBcXGxlIE0gXFxsZSBOJDxcL2xpPlxyXG5cdDxsaT5Gb3IgZWFjaCAkaSQgd2l0aCAkMSBcXGxlIGkgXFxsZSBOJDogJDEgXFxsZSB8IFhbaV0gfCBcXGxlIE4kICgkfHh8JCBpcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgJHgkKTxcL2xpPlxyXG5cdDxsaT5UaGVyZSB3aWxsIGJlIG5vJm5ic3A7JGkgXFxuZSBqJCBzdWNoIHRoYXQgJFhbaV0gPSBYW2pdJCAoaGVuY2UsICRYJCB3aWxsIG5vdCBjb250YWluIGFueSZuYnNwO2R1cGxpY2F0ZXMpPFwvbGk+XHJcbjxcL3VsPlxyXG4iLCJzYW1wbGVfZXhwbGFpbl8xIjoiPHA+Q2FzZSAxOiBCb2ImIzM5O3MgY2FyZHMgYXJlICRbLTEsIC0yLCAtM10kLiBSZWdhcmRsZXNzIG9mIHdoYXQgb3JkZXIgdGhlIGNhcmRzIGFyZSBwbGF5ZWQsIEFsYmVydCB3b3VsZCBzY29yZSBlYWNoIHRpbWUgc2luY2UgdGhlIHR3byBjYXJkcyYjMzk7IG51bWJlcnMgd2lsbCBoYXZlIHRoZSBvcHBvc2l0ZSBzaWducywgdG90YWxpbmcgMyBwb2ludHMuPFwvcD5cclxuXHJcbjxwPkNhc2UgMjogRGlzY3Vzc2VkIGluIHRoZSBwcm9ibGVtIHN0YXRlbWVudC48XC9wPlxyXG5cclxuPHA+Q2FzZSAzOiBObyBmdXJ0aGVyIGV4cGxhbmF0aW9uIHByb3ZpZGVkLjxcL3A+XHJcblxyXG48cD5DYXNlIDQ6IEJvYiYjMzk7cyBjYXJkcyBhcmUgJFsxLCAyLCAtM10kLiBSZWdhcmRsZXNzIG9mIGhvdyBCb2IgcGxheXMsIEFsYmVydCB3b3VsZCBzY29yZSBhdCBsZWFzdCAxIHBvaW50LCBhbmQgdGh1cyB0aGUgYW5zd2VyIGlzIDAuPFwvcD5cclxuXHJcbjxwPkNhc2VzIDUtNzogTm8gZnVydGhlciBleHBsYW5hdGlvbiBwcm92aWRlZC48XC9wPlxyXG5cclxuXHJcbiJ9XQ==