시간 제한메모리 제한제출정답맞힌 사람정답 비율
5 초 256 MB3632117476132.577%

문제

제주 올레길 코스로 유명한 산책로가 있다. 산책로의 입구는 산책로에서 가장 서쪽에 위치하고 있다. 이 산책로는 단순 경로이며 수평 구간과 수직 구간으로만 구성되어 있어 모든 코너에서 90도 각도로 왼쪽 또는 오른쪽으로 회전만 할 수 있다. 또한 입구에서 출구 방향으로 걸어갈 때 동쪽에서 서쪽으로 이동을 전혀 하지 않아도, 즉, 보행자의 현재 위치를 나타내는 좌표의 x축 값이 작아지는 경우가 없이도 출구까지 도달할 수 있다. 그래서 이 산책로를 모노톤길이라고 부른다. 그림 1은 모노톤길의 예를 보여준다.

그림 1. 모노톤길의 예

이 산책로에는 n개의 카페가 곳곳에 들어서 있다. 특히 입구와 출구, 그리고 모든 코너에는 카페가 들어서 있다. 올레길 코스 관리자인 김씨는 이 산책로에 들어서 있는 모든 카페들의 위치 좌표를 가지고 있다. 입구 좌표는 항상 원점 (0,0) 이다. 그는 이들 카페에 1부터 n까지의 일렬 번호를 붙이려고 한다. 입구의 카페는 1번, 그 다음부터는 길을 따라가면서 만나는 순서대로 번호를 배정한다. 입구에서 출구로 갈 때, 카페 A를 카페 B보다 먼저 만나게 된다면, A에는 B보다 더 작은 번호를 배정한다. 따라서 그림 1의 산책로에서 좌표 (3,1)에 위치한 카페의 번호는 5이고, 좌표 (9,0)에 위치한 카페는 14번이고, 출구의 카페는 17번이다. 그는 산책로를 직접 걷지 않고 카페의 좌표들만으로 이 작업을 수행하고 싶어 한다. 그를 도와서 카페에 번호를 붙이는 작업을 수행하는 프로그램을 작성하시오.

입력

입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 개수 T가 정수로 주어진다. 각 테스트 데이터의 첫 번째 줄에는 카페의 수를 나타내는 정수 n (2 ≤ n ≤ 100,000)이 주어진다. 그 다음 n개의 줄에는 각 줄마다 각 카페의 좌표 (x,y)를 나타내는 두 개의 정수 x와 y가 주어진다. (0 ≤ x ≤ 100,000, -100,000 ≤ y ≤ 100,000). 입구 좌표는 항상 (0,0)이다. 어떤 두 카페도 동일한 좌표를 가지는 경우는 없다. 마지막 줄에는 정수 m (1 ≤ m ≤ 10)과 m개의 정수가 주어진다. m개의 각 정수는 1 이상 n 이하로서 카페의 번호를 나타낸다.

출력

출력은 표준출력을 사용한다. 각 테스트 데이터에 대해, 카페 번호로서 주어진 m개의 정수에 대한 답을 순서대로 한 줄에 하나씩 출력한다. 정수 k에 대한 답은 번호가 k인 카페의 좌표 (x,y)를 나타내는 두 개의 정수 x와 y이다.

예제 입력 1

2
17
3 3
5 3
11 2
9 2
2 1
3 1
5 1
0 0
1 0
2 0
9 0
11 -1
9 -3
6 -1
7 -1
7 -3
5 -1
3 5 14 17
4
0 0
0 1
1 1
1 0
5 1 4 1 3 1

예제 출력 1

3 1
9 0
11 -1
0 0
1 0
0 0
1 1
0 0
W3sicHJvYmxlbV9pZCI6IjExMDY3IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViYWE4XHViMTc4XHVkMWE0XHVhZTM4IiwiZGVzY3JpcHRpb24iOiI8cD5cdWM4MWNcdWM4ZmMgXHVjNjJjXHViODA4XHVhZTM4IFx1Y2Y1NFx1YzJhNFx1Yjg1YyBcdWM3MjBcdWJhODVcdWQ1NWMgXHVjMGIwXHVjYzQ1XHViODVjXHVhYzAwIFx1Yzc4OFx1YjJlNC4gXHVjMGIwXHVjYzQ1XHViODVjXHVjNzU4IFx1Yzc4NVx1YWQ2Y1x1YjI5NCBcdWMwYjBcdWNjNDVcdWI4NWNcdWM1ZDBcdWMxMWMgXHVhYzAwXHVjN2E1IFx1YzExY1x1Y2FiZFx1YzVkMCBcdWM3MDRcdWNlNThcdWQ1NThcdWFjZTAgXHVjNzg4XHViMmU0LiBcdWM3NzQgXHVjMGIwXHVjYzQ1XHViODVjXHViMjk0IFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWM3NzRcdWJhNzAgXHVjMjE4XHVkM2M5IFx1YWQ2Y1x1YWMwNFx1YWNmYyBcdWMyMThcdWM5YzEgXHVhZDZjXHVhYzA0XHVjNzNjXHViODVjXHViOWNjIFx1YWQ2Y1x1YzEzMVx1YjQxOFx1YzViNCBcdWM3ODhcdWM1YjQgXHViYWE4XHViNGUwIFx1Y2Y1NFx1YjEwOFx1YzVkMFx1YzExYyA5MFx1YjNjNCBcdWFjMDFcdWIzYzRcdWI4NWMgXHVjNjdjXHVjYWJkIFx1YjYxMFx1YjI5NCBcdWM2MjRcdWI5NzhcdWNhYmRcdWM3M2NcdWI4NWMgXHVkNjhjXHVjODA0XHViOWNjIFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LiBcdWI2MTBcdWQ1NWMgXHVjNzg1XHVhZDZjXHVjNWQwXHVjMTFjIFx1Y2Q5Y1x1YWQ2YyBcdWJjMjlcdWQ1YTVcdWM3M2NcdWI4NWMgXHVhYzc4XHVjNWI0XHVhYzA4IFx1YjU0YyBcdWIzZDlcdWNhYmRcdWM1ZDBcdWMxMWMgXHVjMTFjXHVjYWJkXHVjNzNjXHViODVjIFx1Yzc3NFx1YjNkOVx1Yzc0NCBcdWM4MDRcdWQ2MDAgXHVkNTU4XHVjOWMwIFx1YzU0YVx1YzU0NFx1YjNjNCwgXHVjOTg5LCBcdWJjZjRcdWQ1ODlcdWM3OTBcdWM3NTggXHVkNjA0XHVjN2FjIFx1YzcwNFx1Y2U1OFx1Yjk3YyBcdWIwOThcdWQwYzBcdWIwYjRcdWIyOTQgXHVjODhjXHVkNDVjXHVjNzU4IHhcdWNkOTUgXHVhYzEyXHVjNzc0IFx1Yzc5MVx1YzU0NFx1YzljMFx1YjI5NCBcdWFjYmRcdWM2YjBcdWFjMDAgXHVjNWM2XHVjNzc0XHViM2M0IFx1Y2Q5Y1x1YWQ2Y1x1YWU0Y1x1YzljMCBcdWIzYzRcdWIyZWNcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVhZGY4XHViNzk4XHVjMTFjIFx1Yzc3NCBcdWMwYjBcdWNjNDVcdWI4NWNcdWI5N2MgXHViYWE4XHViMTc4XHVkMWE0XHVhZTM4XHVjNzc0XHViNzdjXHVhY2UwIFx1YmQ4MFx1Yjk3OFx1YjJlNC4gXHVhZGY4XHViOWJjIDFcdWM3NDAgXHViYWE4XHViMTc4XHVkMWE0XHVhZTM4XHVjNzU4IFx1YzYwOFx1Yjk3YyBcdWJjZjRcdWM1ZWNcdWM5MDBcdWIyZTQuPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC9vbmxpbmVqdWRnZWltYWdlcy5zMy1hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tXC9wcm9ibGVtXC8xMTA2N1wvMS5wbmdcIiBzdHlsZT1cImhlaWdodDoxODhweDsgd2lkdGg6MzIxcHhcIiBcLz48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPlx1YWRmOFx1YjliYyAxLiBcdWJhYThcdWIxNzhcdWQxYTRcdWFlMzhcdWM3NTggXHVjNjA4PFwvcD5cclxuXHJcbjxwPlx1Yzc3NCBcdWMwYjBcdWNjNDVcdWI4NWNcdWM1ZDBcdWIyOTQgblx1YWMxY1x1Yzc1OCBcdWNlNzRcdWQzOThcdWFjMDAgXHVhY2YzXHVhY2YzXHVjNWQwIFx1YjRlNFx1YzViNFx1YzExYyBcdWM3ODhcdWIyZTQuIFx1ZDJiOVx1ZDc4OCBcdWM3ODVcdWFkNmNcdWM2NDAgXHVjZDljXHVhZDZjLCBcdWFkZjhcdWI5YWNcdWFjZTAgXHViYWE4XHViNGUwIFx1Y2Y1NFx1YjEwOFx1YzVkMFx1YjI5NCBcdWNlNzRcdWQzOThcdWFjMDAgXHViNGU0XHVjNWI0XHVjMTFjIFx1Yzc4OFx1YjJlNC4gXHVjNjJjXHViODA4XHVhZTM4IFx1Y2Y1NFx1YzJhNCBcdWFkMDBcdWI5YWNcdWM3OTBcdWM3NzggXHVhZTQwXHVjNTI4XHViMjk0IFx1Yzc3NCBcdWMwYjBcdWNjNDVcdWI4NWNcdWM1ZDAgXHViNGU0XHVjNWI0XHVjMTFjIFx1Yzc4OFx1YjI5NCBcdWJhYThcdWI0ZTAgXHVjZTc0XHVkMzk4XHViNGU0XHVjNzU4IFx1YzcwNFx1Y2U1OCBcdWM4OGNcdWQ0NWNcdWI5N2MgXHVhYzAwXHVjOWMwXHVhY2UwIFx1Yzc4OFx1YjJlNC4gXHVjNzg1XHVhZDZjIFx1Yzg4Y1x1ZDQ1Y1x1YjI5NCBcdWQ1NmRcdWMwYzEgXHVjNmQwXHVjODEwICgwLDApIFx1Yzc3NFx1YjJlNC4gXHVhZGY4XHViMjk0IFx1Yzc3NFx1YjRlNCBcdWNlNzRcdWQzOThcdWM1ZDAgMVx1YmQ4MFx1ZDEzMCBuXHVhZTRjXHVjOWMwXHVjNzU4IFx1Yzc3Y1x1YjgyYyBcdWJjODhcdWQ2MzhcdWI5N2MgXHViZDk5XHVjNzc0XHViODI0XHVhY2UwIFx1ZDU1Y1x1YjJlNC4gXHVjNzg1XHVhZDZjXHVjNzU4IFx1Y2U3NFx1ZDM5OFx1YjI5NCAxXHViYzg4LCBcdWFkZjggXHViMmU0XHVjNzRjXHViZDgwXHVkMTMwXHViMjk0IFx1YWUzOFx1Yzc0NCBcdWI1MzBcdWI3N2NcdWFjMDBcdWJhNzRcdWMxMWMgXHViOWNjXHViMDk4XHViMjk0IFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyBcdWJjODhcdWQ2MzhcdWI5N2MgXHViYzMwXHVjODE1XHVkNTVjXHViMmU0LiBcdWM3ODVcdWFkNmNcdWM1ZDBcdWMxMWMgXHVjZDljXHVhZDZjXHViODVjIFx1YWMwOCBcdWI1NGMsIFx1Y2U3NFx1ZDM5OCBBXHViOTdjIFx1Y2U3NFx1ZDM5OCBCXHViY2Y0XHViMmU0Jm5ic3A7XHViYTNjXHVjODAwIFx1YjljY1x1YjA5OFx1YWM4YyBcdWI0MWNcdWIyZTRcdWJhNzQsIEFcdWM1ZDBcdWIyOTQgQlx1YmNmNFx1YjJlNCBcdWIzNTQgXHVjNzkxXHVjNzQwIFx1YmM4OFx1ZDYzOFx1Yjk3YyBcdWJjMzBcdWM4MTVcdWQ1NWNcdWIyZTQuIFx1YjUzMFx1Yjc3Y1x1YzExYyBcdWFkZjhcdWI5YmMgMVx1Yzc1OCBcdWMwYjBcdWNjNDVcdWI4NWNcdWM1ZDBcdWMxMWMgXHVjODhjXHVkNDVjICgzLDEpXHVjNWQwIFx1YzcwNFx1Y2U1OFx1ZDU1YyBcdWNlNzRcdWQzOThcdWM3NTggXHViYzg4XHVkNjM4XHViMjk0IDVcdWM3NzRcdWFjZTAsIFx1Yzg4Y1x1ZDQ1YyAoOSwwKVx1YzVkMCBcdWM3MDRcdWNlNThcdWQ1NWMgXHVjZTc0XHVkMzk4XHViMjk0IDE0XHViYzg4XHVjNzc0XHVhY2UwLCBcdWNkOWNcdWFkNmNcdWM3NTggXHVjZTc0XHVkMzk4XHViMjk0IDE3XHViYzg4XHVjNzc0XHViMmU0LiBcdWFkZjhcdWIyOTQgXHVjMGIwXHVjYzQ1XHViODVjXHViOTdjIFx1YzljMVx1YzgxMSBcdWFjNzdcdWM5YzAgXHVjNTRhXHVhY2UwIFx1Y2U3NFx1ZDM5OFx1Yzc1OCBcdWM4OGNcdWQ0NWNcdWI0ZTRcdWI5Y2NcdWM3M2NcdWI4NWMgXHVjNzc0IFx1Yzc5MVx1YzVjNVx1Yzc0NCBcdWMyMThcdWQ1ODlcdWQ1NThcdWFjZTAgXHVjMmY2XHVjNWI0IFx1ZDU1Y1x1YjJlNC4gXHVhZGY4XHViOTdjIFx1YjNjNFx1YzY0MFx1YzExYyBcdWNlNzRcdWQzOThcdWM1ZDAgXHViYzg4XHVkNjM4XHViOTdjIFx1YmQ5OVx1Yzc3NFx1YjI5NCBcdWM3OTFcdWM1YzVcdWM3NDQgXHVjMjE4XHVkNTg5XHVkNTU4XHViMjk0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWMyZGNcdWM2MjQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWM3ODVcdWI4MjUgXHViMzcwXHVjNzc0XHVkMTMwXHViMjk0IFx1ZDQ1Y1x1YzkwMFx1Yzc4NVx1YjgyNVx1Yzc0NCBcdWMwYWNcdWM2YTlcdWQ1NWNcdWIyZTQuIFx1Yzc4NVx1YjgyNVx1Yzc0MCBUXHVhYzFjXHVjNzU4IFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWIzNzBcdWM3NzRcdWQxMzBcdWI4NWMgXHVhZDZjXHVjMTMxXHViNDFjXHViMmU0LiBcdWM3ODVcdWI4MjVcdWM3NTggXHVjY2FiIFx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHVkMTRjXHVjMmE0XHVkMmI4IFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yzc1OCBcdWFjMWNcdWMyMTggVFx1YWMwMCBcdWM4MTVcdWMyMThcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yzc1OCBcdWNjYWIgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWNlNzRcdWQzOThcdWM3NTggXHVjMjE4XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCBcdWM4MTVcdWMyMTggbiAoMiAmbGU7IG4gJmxlOyAxMDAsMDAwKVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YWRmOCBcdWIyZTRcdWM3NGMgblx1YWMxY1x1Yzc1OCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHVhYzAxIFx1YzkwNFx1YjljOFx1YjJlNCBcdWFjMDEgXHVjZTc0XHVkMzk4XHVjNzU4IFx1Yzg4Y1x1ZDQ1YyAoeCx5KVx1Yjk3YyBcdWIwOThcdWQwYzBcdWIwYjRcdWIyOTQgXHViNDUwIFx1YWMxY1x1Yzc1OCBcdWM4MTVcdWMyMTggeFx1YzY0MCB5XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gKDAgJmxlOyB4ICZsZTsgMTAwLDAwMCwgLTEwMCwwMDAgJmxlOyB5ICZsZTsgMTAwLDAwMCkuIFx1Yzc4NVx1YWQ2YyBcdWM4OGNcdWQ0NWNcdWIyOTQgXHVkNTZkXHVjMGMxICgwLDApXHVjNzc0XHViMmU0LiBcdWM1YjRcdWI1YTQgXHViNDUwIFx1Y2U3NFx1ZDM5OFx1YjNjNCBcdWIzZDlcdWM3N2NcdWQ1NWMgXHVjODhjXHVkNDVjXHViOTdjIFx1YWMwMFx1YzljMFx1YjI5NCBcdWFjYmRcdWM2YjBcdWIyOTQgXHVjNWM2XHViMmU0LiBcdWI5YzhcdWM5YzBcdWI5YzkgXHVjOTA0XHVjNWQwXHViMjk0IFx1YzgxNVx1YzIxOCBtICgxICZsZTsgbSAmbGU7IDEwKVx1YWNmYyBtXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIG1cdWFjMWNcdWM3NTggXHVhYzAxIFx1YzgxNVx1YzIxOFx1YjI5NCAxIFx1Yzc3NFx1YzBjMSBuIFx1Yzc3NFx1ZDU1OFx1Yjg1Y1x1YzExYyBcdWNlNzRcdWQzOThcdWM3NTggXHViYzg4XHVkNjM4XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiOFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWNkOWNcdWI4MjVcdWM3NDAgXHVkNDVjXHVjOTAwXHVjZDljXHViODI1XHVjNzQ0IFx1YzBhY1x1YzZhOVx1ZDU1Y1x1YjJlNC4gXHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWIzNzBcdWM3NzRcdWQxMzBcdWM1ZDAgXHViMzAwXHVkNTc0LCBcdWNlNzRcdWQzOTggXHViYzg4XHVkNjM4XHViODVjXHVjMTFjIFx1YzhmY1x1YzViNFx1YzljNCBtXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHViMmY1XHVjNzQ0IFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyBcdWQ1NWMgXHVjOTA0XHVjNWQwIFx1ZDU1OFx1YjA5OFx1YzUyOSBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YzgxNVx1YzIxOCBrXHVjNWQwIFx1YjMwMFx1ZDU1YyBcdWIyZjVcdWM3NDAgXHViYzg4XHVkNjM4XHVhYzAwIGtcdWM3NzggXHVjZTc0XHVkMzk4XHVjNzU4IFx1Yzg4Y1x1ZDQ1YyAoeCx5KVx1Yjk3YyBcdWIwOThcdWQwYzBcdWIwYjRcdWIyOTQgXHViNDUwIFx1YWMxY1x1Yzc1OCBcdWM4MTVcdWMyMTggeFx1YzY0MCB5XHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6IjExMDY3IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiTW9ub3RvbmUgV2Fsa3dheSIsImRlc2NyaXB0aW9uIjoiPHA+VGhlcmUgaXMgYSBmYW1vdXMgd2Fsa3dheSB3aGljaCBpcyBhIEplanUgT2xsZSB0cmFpbCBjb3Vyc2UuIFRoZSBlbnRyYW5jZSBpcyBvbmUgb2YgdGhlIHdlc3Rlcm5tb3N0IHBvc2l0aW9ucyBvZiB0aGlzIHdhbGt3YXkuIFNpbmNlIHRoZSB3YWxrd2F5IGlzIGEgc2ltcGxlIHBhdGggd2hpY2ggY29uc2lzdHMgb2YgaG9yaXpvbnRhbCBzZWN0aW9ucyBhbmQgdmVydGljYWwgc2VjdGlvbnMsIGEgd2Fsa2VyIHNob3VsZCB0dXJuIDkwIGRlZ3JlZSBsZWZ0IG9yIHJpZ2h0IGF0IGV2ZXJ5IGNvcm5lciBvZiB0aGUgcGF0aC4gQWxzbywgYSB3YWxrZXIgY2FuIG1vdmUgZnJvbSB0aGUgZW50cmFuY2UgdG8gdGhlIGV4aXQgd2l0aG91dCBtb3ZpbmcgZnJvbSBlYXN0IHRvIHdlc3QsIGkuZS4sIHdpdGhvdXQgZGVjcmVhc2luZyB0aGUgeC1jb29yZGluYXRlIG9mIG9uZSYjMzk7cyBjdXJyZW50IHBvc2l0aW9uLiBTbywgdGhpcyBwYXRoIGlzIGNhbGxlZCBhIG1vbm90b25lIHdhbGt3YXkuIEZpZ3VyZSAxIHNob3dzIGFuIGV4YW1wbGUgb2YgYSBtb25vdG9uZSB3YWxrd2F5PFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL29ubGluZWp1ZGdlaW1hZ2VzLnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb21cL3Byb2JsZW1cLzExMDY3XC8xLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjE4OHB4OyBsaW5lLWhlaWdodDoyMC44cHg7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDozMjFweFwiIFwvPjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5GaWd1cmUgMS4gQW4gZXhhbXBsZSBvZiBhIG1vbm90b25lIHdhbGt3YXk8XC9wPlxyXG5cclxuPHA+VGhlcmUgYXJlIG4gY2FmJmVhY3V0ZTtzIGFsb25nIHRoZSB3YWxrd2F5IGhlcmUgYW5kIHRoZXJlLiBTcGVjaWZpY2FsbHksIHRoZXJlIGV4aXN0IGNhZiZlYWN1dGU7cyBvbiB0aGUgZW50cmFuY2UsIHRoZSBleGl0LCBhbmQgYWxsIGNvcm5lcnMgb2YgdGhlIHBhdGguIE1yLiBLaW0sIGEgbWFuYWdlciBvZiBKZWp1IE9sbGUgdHJhaWwgY291cnNlcywgaGFzIHRoZSBsb2NhdGlvbiBjb29yZGluYXRlcyBvZiBhbGwgY2FmJmVhY3V0ZTtzLiBUaGUgY29vcmRpbmF0ZSBvZiB0aGUgZW50cmFuY2UgaXMgYWx3YXlzIHRoZSBvcmlnaW4gKDAsMCkuIEhlIGlzIGdvaW5nIHRvIG51bWJlciBhbGwgY2FmJmVhY3V0ZTtzIGZyb20gMSB0byBuLiBUaGUgY2FmJmVhY3V0ZTsgbG9jYXRlZCBvbiB0aGUgZW50cmFuY2UgaXMgYXNzaWduZWQgdGhlIG51bWJlciAxLiBUaGUgcmVtYWluaW5nIGNhZiZlYWN1dGU7cyBhcmUgYXNzaWduZWQgdGhlIG51bWJlcnMgYWNjb3JkaW5nIHRvIHRoZSBvcmRlciB0aGV5IGFyZSB2aXNpdGVkLiBUcmF2ZXJzaW5nIHRoZSB3YWxrd2F5IGZyb20gdGhlIGVudHJhbmNlIHRvIHRoZSBleGl0LCBhIGNhZiZlYWN1dGU7IEEgd2hpY2ggaXMgdmlzaXRlZCBiZWZvcmUgYW5vdGhlciBjYWYmZWFjdXRlOyBCIGlzIGFzc2lnbmVkIHRoZSBzbWFsbGVyIG51bWJlciB0aGFuIHRoZSBjYWYmZWFjdXRlOyBCLiBJbiB0aGUgd2Fsa3dheSBvZiBGaWd1cmUgMSwgdGhlIGNhZiZlYWN1dGU7cyBsb2NhdGVkIG9uIHRoZSBjb29yZGluYXRlcyAoMywxKSBhbmQgKDksMCkgYXJlIGFzc2lnbmVkIHRoZSBudW1iZXIgNSBhbmQgMTQsIHJlc3BlY3RpdmVseSwgYW5kIHRoZSBjYWYmZWFjdXRlOyBvbiB0aGUgZXhpdCBpcyBhc3NpZ25lZCB0aGUgbnVtYmVyIDE3LiBIZSB3YW50cyB0byBkbyBoaXMgd29yayB3aXRob3V0IGhhdmluZyB0byB3YWxrIHRoZSBwYXRoLiBUbyBoZWxwIGhpbSwgeW91IGFyZSB0byB3cml0ZSBhIHByb2dyYW0gd2hpY2ggY2FycmllcyBvdXQgdGhlIHdvcmsgb2YgbnVtYmVyaW5nIHRoZSBjYWYmZWFjdXRlO3MuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5Zb3VyIHByb2dyYW0gaXMgdG8gcmVhZCBmcm9tIHN0YW5kYXJkIGlucHV0LiBUaGUgaW5wdXQgY29uc2lzdHMgb2YgVCB0ZXN0IGNhc2VzLiBUaGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMgVCBpcyBnaXZlbiBpbiB0aGUgZmlyc3QgbGluZSBvZiB0aGUgaW5wdXQuIEVhY2ggdGVzdCBjYXNlIHN0YXJ0cyB3aXRoIGEgbGluZSBjb250YWluaW5nIGFuIGludGVnZXIsIG4gKDIgJmxlOyBuICZsZTsgMTAwLDAwMCksIHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiBjYWYmZWFjdXRlO3MuIEluIHRoZSBmb2xsb3dpbmcgbiBsaW5lcywgZWFjaCBjb29yZGluYXRlIG9mIHRoZSBuIGNhZiZlYWN1dGU7cyBpcyBnaXZlbiBsaW5lIGJ5IGxpbmUuIEVhY2ggY29vcmRpbmF0ZSBpcyByZXByZXNlbnRlZCBieSB0d28gbnVtYmVycyB4IGFuZCB5LCB3aGljaCBhcmUgdGhlIHgtY29vcmRpbmF0ZSBhbmQgdGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgY2FmJmVhY3V0ZTssIHJlc3BlY3RpdmVseSAoMCAmbGU7IHggJmxlOyAxMDAsMDAwIGFuZCAtMTAwLDAwMCAmbGU7IHkgJmxlOyAxMDAsMDAwKS4gVGhlIGNvb3JkaW5hdGUgb2YgdGhlIGVudHJhbmNlIGlzIGFsd2F5cyAoMCwwKS4gTm90ZSB0aGF0IHRoZXJlIGFyZSBubyB0d28gY2FmJmVhY3V0ZTtzIHdoaWNoIGhhdmUgYSBzYW1lIGNvb3JkaW5hdGUuIFRoZSBsYXN0IGxpbmUgb2YgdGhlIGlucHV0IGhhcyBhbiBpbnRlZ2VyIG0gKDEgJmxlOyBtICZsZTsgMTApIGFuZCBtIGFkZGl0aW9uYWwgaW50ZWdlcnMgYmV0d2VlbiAxIGFuZCBuLCBpbmNsdXNpdmVseSwgd2hpY2ggYXJlIHRoZSBjYWYmZWFjdXRlOyBudW1iZXJzLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPllvdXIgcHJvZ3JhbSBpcyB0byB3cml0ZSB0byBzdGFuZGFyZCBvdXRwdXQuIFByaW50IGV4YWN0bHkgb25lIGxpbmUgZm9yIGVhY2ggb2YgbSBpbnRlZ2VycyBnaXZlbiBhcyBjYWYmZWFjdXRlOyBudW1iZXJzIGluIGVhY2ggdGVzdCBjYXNlLiBUaGUgbGluZSBzaG91bGQgY29udGFpbiB0d28gaW50ZWdlcnMgeCBhbmQgeSByZXByZXNlbnRpbmcgdGhlIGNvb3JkaW5hdGUgb2YgdGhlIGNhZiZlYWN1dGU7IHdob3NlIG51bWJlciBpcyBrIGZvciBhIGdpdmVuIGludGVnZXIgay48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIn1d