시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 10 4 3 75.000%

문제

지금은 쓰이지 않는 Gould의 부동소수점 방식을 차용하여 만든 어떤 소수를 IEEE 부동소수점 방식으로 가능한 한 정확히 변환하려 한다.

Gould의 부동소수점 방식은 아래와 같다.

1개의 Sign 비트와 7개의 지수부 비트, 24개의 가수부 비트로 이루어져 있으며, 이 비트들을 16진수로 나타낸다. 가수의 첫 세 비트까지 0이 될 수 있다.

위 방식으로 표현한 소수는 아래와 같은 값이 된다.

value = ((-1)S)((16)(EXP-64))(MANTISSA / (224))

EXP는 지수부, MANTISSA는 가수부를 의미한다.

이때, 0은 32개의 비트 0으로 이루어진다.

IEEE 부동소수점 방식은 아래와 같다.

1개의 Sign 비트, 8개의 지수부 비트, 24개의 가수부 비트로 이루어지며, 정규화된 수에서 가수부의 첫 비트는 항상 1이다. 이 항상 1인 하나의 비트는 가수부에 포함되지 않는다. 따라서 가수부는 23비트로 표현된다.

만일 지수 부분이 255가 아니고 0이 아닐 때 수는 정규화된 수이며, 아래와 같은 값을 가진다.

value = ((-1)S)((2)(EXP-127))(1 + (MANTISSA / (223)))

만일 지수 부분이 255이며 가수 부분이 0이라면, 이는 양의 무한대 또는 음의 무한대를 의미한다. 양과 음은 Sign 비트에 따라 결정된다.

만일 지수 부분이 255이며 가수 부분이 0이 아니라면, 이는 비정상적인 수이며 이 문제에서는 다루지 않을 것이다.

만일 지수 부분이 0이며 가수 부분이 0이라면, 이는 +0 또는 -0이다. (Sign 비트로 구분한다.)

만일 지수 부분이 0이며 가수 부분이 0이 아니라면, 이는 비정규 값이며 아래의 식에 따라 다르게 계산한다.

value = ((-1)S)((2)(-126))(MANTISSA / (223))

Gould의 방식으로 표현한 수가 주어진다. 이를 다음의 규칙에 따라 변환하여 출력한다.

  • 만일 그 값이 0이라면 출력은 +0
  • 만일 그 값이 정상적인 IEEE 부동소수점 방식으로 표현할 수 없을 만큼 클 경우, 양의 무한대 또는 음의 무한대. (Sign 비트로 구분)
  • 만일 그 값이 정상적인 IEEE 부동소수점 방식으로 표현할 수 없을 만큼 작을 경우 :
    • 만일 비정규 값일 경우, 비정규 식으로 계산한 결과값
    • 비정규 값이 아닐 경우, +0 또는 -0. (Sign 비트로 구분)
  • 다른 모든 경우에 대해서는 정규화된 IEEE 부동소수점 값 출력.

만일 IEEE 방식으로 표현했을 때 비트 수가 부족하다면 부족한 부분을 0으로 채운다.

만일 IEEE 방식으로 표현했을 때 비트 수가 남는다면 남는 부분을 제외한다.

입력

첫 줄에 테스트 케이스의 수 P가 주어진다. (1 ≤ P ≤ 1000)

각 테스트 케이스는 테스트 케이스의 번호와 Gould 방식의 부동소수점으로 표현한 수 하나가 16진수로 주어진다. 이 수는 0-9, A-F의 문자 8개로만 이루어져 있다.

출력

각 테스트 케이스마다, 테스트 케이스의 번호와 문제에서 설명한 방식대로 IEEE 방식으로 변환한 수를 16진수 8자리로 출력한다.

예제 입력 1

4
1 41200000
2 E0FFFFFE
3 E11FFFFF
4 88888888

예제 출력 1

1 40000000
2 FF7FFFFE
3 FF800000
4 80000000
W3sicHJvYmxlbV9pZCI6IjEwNDMzIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViZDgwXHViM2Q5XHVjMThjXHVjMjE4XHVjODEwIFx1ZDYxNVx1YzJkZCBcdWJjYzBcdWQ2NTgiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YzljMFx1YWUwOFx1Yzc0MCBcdWM0ZjBcdWM3NzRcdWM5YzAgXHVjNTRhXHViMjk0IEdvdWxkXHVjNzU4IFx1YmQ4MFx1YjNkOVx1YzE4Y1x1YzIxOFx1YzgxMCBcdWJjMjlcdWMyZGRcdWM3NDQgXHVjYzI4XHVjNmE5XHVkNTU4XHVjNWVjIFx1YjljY1x1YjRlMCBcdWM1YjRcdWI1YTQgXHVjMThjXHVjMjE4XHViOTdjIElFRUUgXHViZDgwXHViM2Q5XHVjMThjXHVjMjE4XHVjODEwIFx1YmMyOVx1YzJkZFx1YzczY1x1Yjg1YyBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVkNTVjIFx1YzgxNVx1ZDY1NVx1ZDc4OCBcdWJjYzBcdWQ2NThcdWQ1NThcdWI4MjQgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5Hb3VsZFx1Yzc1OCBcdWJkODBcdWIzZDlcdWMxOGNcdWMyMThcdWM4MTAgXHViYzI5XHVjMmRkXHVjNzQwIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjxpbWcgc3JjPVwiaHR0cHM6XC9cL3d3dy5hY21pY3BjLm5ldFwvdXBsb2FkXC9pbWFnZXMyXC9mbG9hdDEucG5nXCIgXC8+PFwvcD5cclxuXHJcbjxwPjFcdWFjMWNcdWM3NTggU2lnbiBcdWJlNDRcdWQyYjhcdWM2NDAgN1x1YWMxY1x1Yzc1OCBcdWM5YzBcdWMyMThcdWJkODAgXHViZTQ0XHVkMmI4LCAyNFx1YWMxY1x1Yzc1OCBcdWFjMDBcdWMyMThcdWJkODAgXHViZTQ0XHVkMmI4XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1Yzc3NCBcdWJlNDRcdWQyYjhcdWI0ZTRcdWM3NDQgMTZcdWM5YzRcdWMyMThcdWI4NWMgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LiBcdWFjMDBcdWMyMThcdWM3NTggXHVjY2FiIFx1YzEzOCBcdWJlNDRcdWQyYjhcdWFlNGNcdWM5YzAgMFx1Yzc3NCBcdWI0MjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzA0IFx1YmMyOVx1YzJkZFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NWMgXHVjMThjXHVjMjE4XHViMjk0IFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NDAgXHVhYzEyXHVjNzc0IFx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+PHN0cm9uZz52YWx1ZSA9ICgoLTEpPHN1cD5TPFwvc3VwPikoKDE2KTxzdXA+KEVYUC02NCk8XC9zdXA+KShNQU5USVNTQSBcLyAoMjxzdXA+MjQ8XC9zdXA+KSk8XC9zdHJvbmc+PFwvcD5cclxuXHJcbjxwPkVYUFx1YjI5NCBcdWM5YzBcdWMyMThcdWJkODAsIE1BTlRJU1NBXHViMjk0IFx1YWMwMFx1YzIxOFx1YmQ4MFx1Yjk3YyBcdWM3NThcdWJiZjhcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Yzc3NFx1YjU0YywgMFx1Yzc0MCAzMlx1YWMxY1x1Yzc1OCBcdWJlNDRcdWQyYjggMFx1YzczY1x1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPklFRUUgXHViZDgwXHViM2Q5XHVjMThjXHVjMjE4XHVjODEwIFx1YmMyOVx1YzJkZFx1Yzc0MCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48cD48aW1nIHNyYz1cImh0dHBzOlwvXC93d3cuYWNtaWNwYy5uZXRcL3VwbG9hZFwvaW1hZ2VzMlwvZmxvYXQyLnBuZ1wiIFwvPjxcL3A+XHJcblxyXG48cD4xXHVhYzFjXHVjNzU4IFNpZ24gXHViZTQ0XHVkMmI4LCA4XHVhYzFjXHVjNzU4IFx1YzljMFx1YzIxOFx1YmQ4MCBcdWJlNDRcdWQyYjgsIDI0XHVhYzFjXHVjNzU4IFx1YWMwMFx1YzIxOFx1YmQ4MCBcdWJlNDRcdWQyYjhcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWMwXHViYTcwLCBcdWM4MTVcdWFkZGNcdWQ2NTRcdWI0MWMgXHVjMjE4XHVjNWQwXHVjMTFjIFx1YWMwMFx1YzIxOFx1YmQ4MFx1Yzc1OCBcdWNjYWIgXHViZTQ0XHVkMmI4XHViMjk0IFx1ZDU2ZFx1YzBjMSAxXHVjNzc0XHViMmU0LiBcdWM3NzQgXHVkNTZkXHVjMGMxIDFcdWM3NzggXHVkNTU4XHViMDk4XHVjNzU4IFx1YmU0NFx1ZDJiOFx1YjI5NCBcdWFjMDBcdWMyMThcdWJkODBcdWM1ZDAgXHVkM2VjXHVkNTY4XHViNDE4XHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC4gXHViNTMwXHViNzdjXHVjMTFjIFx1YWMwMFx1YzIxOFx1YmQ4MFx1YjI5NCAyM1x1YmU0NFx1ZDJiOFx1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjljY1x1Yzc3YyBcdWM5YzBcdWMyMTggXHViZDgwXHViZDg0XHVjNzc0IDI1NVx1YWMwMCBcdWM1NDRcdWIyYzhcdWFjZTAgMFx1Yzc3NCBcdWM1NDRcdWIyZDAgXHViNTRjIFx1YzIxOFx1YjI5NCBcdWM4MTVcdWFkZGNcdWQ2NTRcdWI0MWMgXHVjMjE4XHVjNzc0XHViYTcwLCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHVjNzQwIFx1YWMxMlx1Yzc0NCBcdWFjMDBcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjxzdHJvbmc+dmFsdWUgPSAoKC0xKTxzdXA+UzxcL3N1cD4pKCgyKTxzdXA+KEVYUC0xMjcpPFwvc3VwPikoMSArIChNQU5USVNTQSBcLyAoMjxzdXA+MjM8XC9zdXA+KSkpPFwvc3Ryb25nPjxcL3A+XHJcblxyXG48cD5cdWI5Y2NcdWM3N2MgXHVjOWMwXHVjMjE4IFx1YmQ4MFx1YmQ4NFx1Yzc3NCAyNTVcdWM3NzRcdWJhNzAgXHVhYzAwXHVjMjE4IFx1YmQ4MFx1YmQ4NFx1Yzc3NCAwXHVjNzc0XHViNzdjXHViYTc0LCBcdWM3NzRcdWIyOTQgXHVjNTkxXHVjNzU4IFx1YmIzNFx1ZDU1Y1x1YjMwMCBcdWI2MTBcdWIyOTQgXHVjNzRjXHVjNzU4IFx1YmIzNFx1ZDU1Y1x1YjMwMFx1Yjk3YyBcdWM3NThcdWJiZjhcdWQ1NWNcdWIyZTQuIFx1YzU5MVx1YWNmYyBcdWM3NGNcdWM3NDAgU2lnbiBcdWJlNDRcdWQyYjhcdWM1ZDAgXHViNTMwXHViNzdjIFx1YWNiMFx1YzgxNVx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViOWNjXHVjNzdjIFx1YzljMFx1YzIxOCBcdWJkODBcdWJkODRcdWM3NzQgMjU1XHVjNzc0XHViYTcwIFx1YWMwMFx1YzIxOCBcdWJkODBcdWJkODRcdWM3NzQgMFx1Yzc3NCBcdWM1NDRcdWIyYzhcdWI3N2NcdWJhNzQsIFx1Yzc3NFx1YjI5NCBcdWJlNDRcdWM4MTVcdWMwYzFcdWM4MDFcdWM3NzggXHVjMjE4XHVjNzc0XHViYTcwIFx1Yzc3NCBcdWJiMzhcdWM4MWNcdWM1ZDBcdWMxMWNcdWIyOTQgXHViMmU0XHViOGU4XHVjOWMwIFx1YzU0YVx1Yzc0NCBcdWFjODNcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjljY1x1Yzc3YyBcdWM5YzBcdWMyMTggXHViZDgwXHViZDg0XHVjNzc0IDBcdWM3NzRcdWJhNzAgXHVhYzAwXHVjMjE4IFx1YmQ4MFx1YmQ4NFx1Yzc3NCAwXHVjNzc0XHViNzdjXHViYTc0LCBcdWM3NzRcdWIyOTQgKzAgXHViNjEwXHViMjk0IC0wXHVjNzc0XHViMmU0LiAoU2lnbiBcdWJlNDRcdWQyYjhcdWI4NWMgXHVhZDZjXHViZDg0XHVkNTVjXHViMmU0Lik8XC9wPlxyXG5cclxuPHA+XHViOWNjXHVjNzdjIFx1YzljMFx1YzIxOCBcdWJkODBcdWJkODRcdWM3NzQgMFx1Yzc3NFx1YmE3MCBcdWFjMDBcdWMyMTggXHViZDgwXHViZDg0XHVjNzc0IDBcdWM3NzQgXHVjNTQ0XHViMmM4XHViNzdjXHViYTc0LCBcdWM3NzRcdWIyOTQgXHViZTQ0XHVjODE1XHVhZGRjIFx1YWMxMlx1Yzc3NFx1YmE3MCBcdWM1NDRcdWI3OThcdWM3NTggXHVjMmRkXHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWIyZTRcdWI5NzRcdWFjOGMgXHVhY2M0XHVjMGIwXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD48c3Ryb25nPnZhbHVlID0gKCgtMSk8c3VwPlM8XC9zdXA+KSgoMik8c3VwPigtMTI2KTxcL3N1cD4pKE1BTlRJU1NBIFwvICgyPHN1cD4yMzxcL3N1cD4pKTxcL3N0cm9uZz48XC9wPlxyXG5cclxuPHA+R291bGRcdWM3NTggXHViYzI5XHVjMmRkXHVjNzNjXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1ZDU1YyBcdWMyMThcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWM3NzRcdWI5N2MgXHViMmU0XHVjNzRjXHVjNzU4IFx1YWRkY1x1Y2U1OVx1YzVkMCBcdWI1MzBcdWI3N2MgXHViY2MwXHVkNjU4XHVkNTU4XHVjNWVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWI5Y2NcdWM3N2MgXHVhZGY4IFx1YWMxMlx1Yzc3NCAwXHVjNzc0XHViNzdjXHViYTc0IFx1Y2Q5Y1x1YjgyNVx1Yzc0MCArMDxcL2xpPlxyXG5cdDxsaT5cdWI5Y2NcdWM3N2MgXHVhZGY4IFx1YWMxMlx1Yzc3NCBcdWM4MTVcdWMwYzFcdWM4MDFcdWM3NzggSUVFRSBcdWJkODBcdWIzZDlcdWMxOGNcdWMyMThcdWM4MTAgXHViYzI5XHVjMmRkXHVjNzNjXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1ZDU2MCBcdWMyMTggXHVjNWM2XHVjNzQ0IFx1YjljY1x1ZDA3YyBcdWQwNzQgXHVhY2JkXHVjNmIwLCBcdWM1OTFcdWM3NTggXHViYjM0XHVkNTVjXHViMzAwIFx1YjYxMFx1YjI5NCBcdWM3NGNcdWM3NTggXHViYjM0XHVkNTVjXHViMzAwLiAoU2lnbiBcdWJlNDRcdWQyYjhcdWI4NWMgXHVhZDZjXHViZDg0KTxcL2xpPlxyXG5cdDxsaT5cdWI5Y2NcdWM3N2MgXHVhZGY4IFx1YWMxMlx1Yzc3NCBcdWM4MTVcdWMwYzFcdWM4MDFcdWM3NzggSUVFRSBcdWJkODBcdWIzZDlcdWMxOGNcdWMyMThcdWM4MTAgXHViYzI5XHVjMmRkXHVjNzNjXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1ZDU2MCBcdWMyMTggXHVjNWM2XHVjNzQ0IFx1YjljY1x1ZDA3YyBcdWM3OTFcdWM3NDQgXHVhY2JkXHVjNmIwIDpcclxuXHQ8dWw+XHJcblx0XHQ8bGk+XHViOWNjXHVjNzdjIFx1YmU0NFx1YzgxNVx1YWRkYyBcdWFjMTJcdWM3N2MgXHVhY2JkXHVjNmIwLCBcdWJlNDRcdWM4MTVcdWFkZGMgXHVjMmRkXHVjNzNjXHViODVjIFx1YWNjNFx1YzBiMFx1ZDU1YyBcdWFjYjBcdWFjZmNcdWFjMTI8XC9saT5cclxuXHRcdDxsaT5cdWJlNDRcdWM4MTVcdWFkZGMgXHVhYzEyXHVjNzc0IFx1YzU0NFx1YjJkMCBcdWFjYmRcdWM2YjAsICswIFx1YjYxMFx1YjI5NCAtMC4gKFNpZ24gXHViZTQ0XHVkMmI4XHViODVjIFx1YWQ2Y1x1YmQ4NCk8XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuXHQ8bGk+XHViMmU0XHViOTc4IFx1YmFhOFx1YjRlMCBcdWFjYmRcdWM2YjBcdWM1ZDAgXHViMzAwXHVkNTc0XHVjMTFjXHViMjk0IFx1YzgxNVx1YWRkY1x1ZDY1NFx1YjQxYyBJRUVFIFx1YmQ4MFx1YjNkOVx1YzE4Y1x1YzIxOFx1YzgxMCBcdWFjMTIgXHVjZDljXHViODI1LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YjljY1x1Yzc3YyBJRUVFIFx1YmMyOVx1YzJkZFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1ODhcdWM3NDQgXHViNTRjIFx1YmU0NFx1ZDJiOCBcdWMyMThcdWFjMDAgXHViZDgwXHVjODcxXHVkNTU4XHViMmU0XHViYTc0IFx1YmQ4MFx1Yzg3MVx1ZDU1YyBcdWJkODBcdWJkODRcdWM3NDQgMFx1YzczY1x1Yjg1YyBcdWNjNDRcdWM2YjRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjljY1x1Yzc3YyBJRUVFIFx1YmMyOVx1YzJkZFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1ODhcdWM3NDQgXHViNTRjIFx1YmU0NFx1ZDJiOCBcdWMyMThcdWFjMDAgXHViMGE4XHViMjk0XHViMmU0XHViYTc0IFx1YjBhOFx1YjI5NCBcdWJkODBcdWJkODRcdWM3NDQgXHVjODFjXHVjNjc4XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiIFx1YzkwNFx1YzVkMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YzIxOCBQXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gKDEgJmxlOyBQICZsZTsgMTAwMCk8XC9wPlxyXG5cclxuPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWIyOTQgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWJjODhcdWQ2MzhcdWM2NDAgR291bGQgXHViYzI5XHVjMmRkXHVjNzU4IFx1YmQ4MFx1YjNkOVx1YzE4Y1x1YzIxOFx1YzgxMFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NWMgXHVjMjE4IFx1ZDU1OFx1YjA5OFx1YWMwMCAxNlx1YzljNFx1YzIxOFx1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Yzc3NCBcdWMyMThcdWIyOTQgMC05LCBBLUZcdWM3NTggXHViYjM4XHVjNzkwIDhcdWFjMWNcdWI4NWNcdWI5Y2MgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YjljOFx1YjJlNCwgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWJjODhcdWQ2MzhcdWM2NDAgXHViYjM4XHVjODFjXHVjNWQwXHVjMTFjIFx1YzEyNFx1YmE4NVx1ZDU1YyBcdWJjMjlcdWMyZGRcdWIzMDBcdWI4NWMgSUVFRSBcdWJjMjlcdWMyZGRcdWM3M2NcdWI4NWMgXHViY2MwXHVkNjU4XHVkNTVjIFx1YzIxOFx1Yjk3YyAxNlx1YzljNFx1YzIxOCA4XHVjNzkwXHViOWFjXHViODVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIxMDQzMyIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkZsb2F0aW5nLVBvaW50IEZvcm1hdCBDb252ZXJzaW9uIiwiZGVzY3JpcHRpb24iOiI8cD5UbyBoZWxwIHN1cHBvcnQgYSBwYXRlbnQgZGVmZW5zZSwgd2UgbmVlZCB0byByZWNvdmVyIHNvbWUgZXhwZXJpbWVudGFsIGRhdGEgdGhhdCB3YXMgc3RvcmVkIGFzIHNpbmdsZSBwcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgb24gYSBub3ctZGVmdW5jdCBHb3VsZCBQb3dlci1Ob2RlIG1pbmktY29tcHV0ZXIuIFRoZSBHb3VsZCB1c2VkIGEgYmFzZSAxNiBmbG9hdGluZy1wb2ludCBmb3JtYXQuIFdlIHdhbnQgdG8gY29udmVydCBHb3VsZCBmbG9hdGluZyBwb2ludCB2YWx1ZXMsIGFzIG11Y2ggYXMgcG9zc2libGUsIHRvIHNpbmdsZSBwcmVjaXNpb24gSUVFRSBmbG9hdGluZy1wb2ludCB2YWx1ZXMuPFwvcD5cclxuXHJcbjxwPlRoZSBHb3VsZCBpbnRlcm5hbCBmbG9hdGluZy1wb2ludCBmb3JtYXQgaGFzIDEgc2lnbiBiaXQsIFMsIGEgNy1iaXQgb2Zmc2V0IChiYXNlIDE2KSBleHBvbmVudCBmaWVsZCwgRSwgYW5kIGEgMjQtYml0ICg2IGhleCBkaWdpdHMpIGhleGFkZWNpbWFsIG1hbnRpc3NhLiAoTm90ZSB0aGF0IHRoaXMgbWVhbnMgdGhhdCB1cCB0byAzIGhpZ2ggYml0cyBvZiB0aGUgbWFudGlzc2EgbWF5IGJlIHplcm8uKTxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzMlwvZmxvYXQxLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjY2cHg7IHdpZHRoOjc1MnB4XCIgXC8+PFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj52YWx1ZSA9ICgoLTEpPHN1cD5TPFwvc3VwPikoKDE2KTxzdXA+KEVYUC02NCk8XC9zdXA+KShNQU5USVNTQSBcLyAoMjxzdXA+MjQ8XC9zdXA+KSk8XC9wPlxyXG5cclxuPHA+RmxvYXRpbmctcG9pbnQgemVybyBpcyByZXByZXNlbnRlZCBieSAzMiBiaXRzIG9mIDAuPFwvcD5cclxuXHJcbjxwPlRoZSBJRUVFIGZvcm1hdCBoYXMgMSBzaWduIGJpdCwgUywgYW4gOC1iaXQgb2Zmc2V0IChiYXNlIDIpIGV4cG9uZW50IGZpZWxkLCBFLCBhbmQgYSAyNC1iaXQgbWFudGlzc2EsIGZvciB3aGljaCB0aGUgaGlnaCBiaXQgaXMgKGluIG5vcm1hbGl6ZWQgbnVtYmVycykgYWx3YXlzIDEgYW5kIG5vdCBwYXJ0IG9mIHRoZSAyMyBiaXRzIGluIHRoZSBmb3JtYXQuPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXMyXC9mbG9hdDIucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NjdweDsgd2lkdGg6NzQ3cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+SWYgdGhlIGV4cG9uZW50IGlzIG5vdCAyNTUgYW5kIG5vdCAwLCB0aGUgdmFsdWUgaXMgYSBub3JtYWxpemVkIGZsb2F0aW5nIHBvaW50IG51bWJlciw8XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPnZhbHVlID0gKCgtMSk8c3VwPlM8XC9zdXA+KSgoMik8c3VwPihFWFAtMTI3KTxcL3N1cD4pKDEgKyAoTUFOVElTU0EgXC8gKDI8c3VwPjIzPFwvc3VwPikpKTxcL3A+XHJcblxyXG48cD5JZiB0aGUgZXhwb25lbnQgaXMgMjU1IGFuZCB0aGUgbWFudGlzc2EgaXMgMCwgdGhlIHZhbHVlIGlzIHBsdXMgb3IgbWludXMgaW5maW5pdHkgKGRlcGVuZGluZyBvbiB0aGUgc2lnbiBiaXQpLiBJZiB0aGUgZXhwb25lbnQgaXMgMjU1IGFuZCB0aGUgbWFudGlzc2EgaXMgbm90IDAsIGl0IGluZGljYXRlcyBzcGVjaWFsIHZhbHVlcyB0aGF0IHdpbGwgbm90IGJlIHVzZWQgaW4gdGhpcyBwcm9ibGVtLjxcL3A+XHJcblxyXG48cD5JZiB0aGUgZXhwb25lbnQgaXMgMCBhbmQgdGhlIG1hbnRpc3NhIGlzIHplcm8sIHRoZSB2YWx1ZSBpcyBwbHVzIG9yIG1pbnVzIHplcm8gKGRlcGVuZGluZyBvbiB0aGUgc2lnbiBiaXQpLjxcL3A+XHJcblxyXG48cD5JZiB0aGUgZXhwb25lbnQgaXMgMCBhbmQgdGhlIG1hbnRpc3NhIGlzIG5vdCB6ZXJvLCB0aGUgdmFsdWUgaXMgYSBkZS1ub3JtYWxpemVkIGZsb2F0aW5nLXBvaW50IG51bWJlciB3aXRoOjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+dmFsdWUgPSAoKC0xKTxzdXA+UzxcL3N1cD4pKCgyKTxzdXA+KC0xMjYpPFwvc3VwPikoTUFOVElTU0EgXC8gKDI8c3VwPjIzPFwvc3VwPikpPFwvcD5cclxuXHJcbjxwPldyaXRlIGEgcHJvZ3JhbSB0aGF0IHRha2VzIGFzIGlucHV0IGEgZmxvYXRpbmctcG9pbnQgdmFsdWUgaW4gR291bGQgZm9ybWF0IGFuZCBvdXRwdXRzIHRoZSB2YWx1ZSBpbiBJRUVFIGZvcm1hdCBhcyBmb2xsb3dzOjxcL3A+XHJcblxyXG48cD5JZiB0aGUgdmFsdWUgaXMgemVybyByZXR1cm4gKHBsdXMpIHplcm8uPFwvcD5cclxuXHJcbjxwPklmIHRoZSB2YWx1ZSBpcyB0b28gbGFyZ2UgdG8gYmUgcmVwcmVzZW50ZWQgYXMgYSBub3JtYWxpemVkIGZsb2F0aW5nLXBvaW50IHZhbHVlLCByZXR1cm4gcGx1cyBvciBtaW51cyBpbmZpbml0eSBkZXBlbmRpbmcgb24gdGhlIHNpZ24uPFwvcD5cclxuXHJcbjxwPklmIHRoZSB2YWx1ZSBpcyB0b28gc21hbGwgdG8gYmUgcmVwcmVzZW50ZWQgYXMgYSBub3JtYWxpemVkIGZsb2F0aW5nLXBvaW50IHZhbHVlOjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPklmIGl0IG1heSBiZSByZXByZXNlbnRlZCBhcyBhIGRlLW5vcm1hbGl6ZWQgdmFsdWUsIHJldHVybiB0aGUgZGUtbm9ybWFsaXplZCB2YWx1ZS48XC9saT5cclxuXHQ8bGk+T3RoZXJ3aXNlLCByZXR1cm4gcGx1cyBvciBtaW51cyB6ZXJvLCBkZXBlbmRpbmcgb24gdGhlIHNpZ24uPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+SW4gYWxsIG90aGVyIGNhc2VzLCByZXR1cm4gdGhlIG5vcm1hbGl6ZWQgdmFsdWUuPFwvcD5cclxuXHJcbjxwPklmIHRoZXJlIGFyZSBsZXNzIHNpZ25pZmljYW50IGJpdHMgdGhhbiByZXF1aXJlZCBmb3IgSUVFRSBmbG9hdGluZy1wb2ludCwgZXh0ZW5kIHdpdGggMCBiaXRzLjxcL3A+XHJcblxyXG48cD5JZiB0aGVyZSBhcmUgbW9yZSBzaWduaWZpY2FudCBiaXRzIHRoYW4gcmVxdWlyZWQgZm9yIElFRUUgZmxvYXRpbmctcG9pbnQsIHRydW5jYXRlIHRoZSBleHRyYSBiaXRzLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgaW5wdXQgY29udGFpbnMgYSBzaW5nbGUgaW50ZWdlciBQLCAoMSAmbGU7IFAgJmxlOyAxMDAwKSwgd2hpY2ggaXMgdGhlIG51bWJlciBvZiBkYXRhIHNldHMgdGhhdCBmb2xsb3cuIEVhY2ggZGF0YSBzZXQgc2hvdWxkIGJlIHByb2Nlc3NlZCBpZGVudGljYWxseSBhbmQgaW5kZXBlbmRlbnRseS48XC9wPlxyXG5cclxuPHA+RWFjaCBkYXRhIHNldCBjb25zaXN0cyBvZiBhIHNpbmdsZSBsaW5lIG9mIGlucHV0LiBJdCBjb250YWlucyB0aGUgZGF0YSBzZXQgbnVtYmVyLCBLLCBmb2xsb3dlZCBieSA4IGhleCBkaWdpdHMgKDAtOSwgQS1mKSBvZiB0aGUgR291bGQgZmxvYXRpbmctcG9pbnQgdmFsdWUuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+Rm9yIGVhY2ggZGF0YSBzZXQgdGhlcmUgaXMgb25lIGxpbmUgb2Ygb3V0cHV0LiBUaGUgc2luZ2xlIG91dHB1dCBsaW5lIGNvbnNpc3RzIG9mIHRoZSBkYXRhIHNldCBudW1iZXIsIEssIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIHNwYWNlIGZvbGxvd2VkIGJ5IHRoZSA4IGhleCBkaWdpdHMgKDAtOSwgQS1mKSBvZiB0aGUgY29ycmVzcG9uZGluZyAoYXMgZGVzY3JpYmVkIGFib3ZlKSBJRUVFIGZsb2F0aW5nIHBvaW50IHZhbHVlLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==