시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 3 2 2 66.667%

문제

보통 고등학교 화학 시간에는 화학 반응식을 배운다. 이 식은 다음과 같이 생겼다.

(1) 2H2 + O2 → 2H2O
(2) Ca(OH)2 + CO2 → CaCO3 + H2O
(3) N2 + 3H2 → 2NH3

위의 식 (1)~(3)은 모두 좌변과 우변의 균형이 맞추어져 있다.  하지만, 아래 반응식은 그렇지 않다.

(4) Al + O2 → Al2O3
(5) C3H8 + O2 → CO2 + H2O

모든 화학 반응식은 질량 보존의 법칙을 지켜야 한다. 즉, 각 원소(H, O, Ca, Al, ...)의 개수는 화학 반응으로 변하지 않아야 한다. 따라서, 좌변과 우변에 분자의 개수를 맞추어 주어아 한다.

(6) 4Al + 3O2 → 2Al2O3
(7) C3H8 + 5O2 → 3CO2 + 4H2O

반응식 (6)의 계수는 왼쪽부터 오른쪽까지 (4,3,2)이고, 반응식 (7)의 계수는 (1,5,3,4)이다. 계수가 1인경우에는 생략가능하다.

올바른 화학 반응식의 계수는 다음과 같은 조건을 만족한다.

  1. 계수는 모두 양의 정수이다.
  2. 계수는 서로소이다. 즉, 계수의 최대공약수는 1이다.
  3. 모든 원소의 좌변의 양과 우변의 양은 같아야 한다.

화학 반응식이 위의 세가지 조건을 만족하는 경우에는 올바른 화학 반응식이라고 한다. 화학에서 실제로 일어날 수 없는 반응이나 존재하지 않는 분자가 등장한다고 해도, 이 문제에서는 올바른 화학 반응식이다. (H2 → H2도 올바른 반응식이다)

조건 1과 3(2는 필수는 아니다)을 만족하는 화학 반응식은 균형 반응식이라고 부른다.

화학 반응식 4와 5같이 계수가 없는 화학 반응식이 주어졌을 때, 계수를 올바르게 구하는 프로그램을 작성하시오.

모든 올바른 화학 반응식의 계수가 유일하게 결정되는 것은 아니다. 예를 들어, H2O와 NH3를 생성하는 반응식이 다음과 같다고 하자.

xH2 + yO2 + zN2 + uH2 → vH2O + wNH3

이 경우에 (x,y,z,u,v,w) = (2,1,1,3,2,2)가 답이 된다. 하지만, (4,2,1,3,4,2)와 (4,2,3,9,4,6)도 올바른 정답이 된다. 하지만, 이 문제에서 주어지는 모든 화학 반응식의 계수는 유일하게 결정된다. 

입력

입력은 여러 개의 계수가 없는 화학 반응식으로 이루어져 있다.

화학 반응식은 아래와 같이 BNF로 나타낼 수 있다.

<chemical_equation> ::= <molecule_sequence> "->" <molecule_sequence>
<molecule_sequence> ::= <molecule> | <molecule> "+" <molecule_sequence>
         <molecule> ::= <group> | <group> <molecule>
            <group> ::= <unit_group> | <unit_group> <number>
       <unit_group> ::= <chemical_element> | "(" <molecule> ")"
 <chemical_element> ::= <uppercase_letter>
                      | <uppercase_letter> <lowercase_letter>
 <uppercase_letter> ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I"
                      | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R"
                      | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
 <lowercase_letter> ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i"
                      | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r"
                      | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z"
           <number> ::= <non_zero_digit>
                      | <non_zero_digit> <digit>
   <non_zero_digit> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
            <digit> ::= "0" | <non_zero_digit>            

모든 화학 반응식의 끝에는 .이 주어진다. 예를 들어, 다음과 같은 방정식이 있을 때

Ca(OH)2 + CO2 → CaCO3 + H2O

입력으로는 다음과 같이 주어진다.

Ca(OH)2+CO2->CaCO3+H2O.

모든 화학 반응식의 길이는 80자를 넘지 않으며, <number>는 10보다 작다. 괄호는 중첩해서 사용되지 않는다. 화학 반응식의 각 변은 최대 10개의 분자로 이루어져 있다. 또, 계수는 항상 40,000을 넘지 않는다.

입력의 마지막 줄에는 .이 하나 주어진다.

위의 설명 중 <chemical_element>에서 주어지는 화학 원소는 존재하지 않는 원소나 아직 발견되지 않는 원소가 주어질 수도 있다. 또, 우누녹튬(Uuo, 118번)과 같이 원소가 알파벳 세글자인 경우도 주어지지 않는다.

출력

각각의 화학 방정식에 대해서, 그 방정식을 올바르게 만드는 계수를 공백으로 구분하여 출력한다.

예제 입력 1

N2+H2->NH3.
Na+Cl2->NaCl.
Ca(OH)2+CO2->CaCO3+H2O.
CaCl2+AgNO3->Ca(NO3)2+AgCl.
C2H5OH+O2->CO2+H2O.
C4H10+O2->CO2+H2O.
A12B23+C34D45+ABCD->A6D7+B8C9.
A98B+B98C+C98->A98B99C99.
A2+B3+C5+D7+E11+F13->ABCDEF.
.

예제 출력 1

1 3 2
2 1 2
1 1 1 1
1 2 1 2
1 3 2 3
2 13 8 10
2 123 33042 5511 4136
1 1 1 1
15015 10010 6006 4290 2730 2310 30030
W3sicHJvYmxlbV9pZCI6IjM4ODAiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWQ2NTRcdWQ1NTlcdWM3OTBcdWM3NTggXHVjMjE4XHVkNTU5IiwiZGVzY3JpcHRpb24iOiI8cD5cdWJjZjRcdWQxYjUgXHVhY2UwXHViNGYxXHVkNTU5XHVhZDUwIFx1ZDY1NFx1ZDU1OSBcdWMyZGNcdWFjMDRcdWM1ZDBcdWIyOTQgXHVkNjU0XHVkNTU5IFx1YmMxOFx1Yzc1MVx1YzJkZFx1Yzc0NCBcdWJjMzBcdWM2YjRcdWIyZTQuIFx1Yzc3NCBcdWMyZGRcdWM3NDAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc3NCBcdWMwZGRcdWFjYmNcdWIyZTQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbigxKSAySDxzdWI+MjxcL3N1Yj4gKyBPPHN1Yj4yPFwvc3ViPiAmcmFycjsgMkg8c3ViPjI8XC9zdWI+T1xyXG4oMikgQ2EoT0gpPHN1Yj4yPFwvc3ViPiArIENPPHN1Yj4yPFwvc3ViPiAmcmFycjsgQ2FDTzxzdWI+MzxcL3N1Yj4gKyBIPHN1Yj4yPFwvc3ViPk9cclxuKDMpIE48c3ViPjI8XC9zdWI+ICsgM0g8c3ViPjI8XC9zdWI+ICZyYXJyOyAyTkg8c3ViPjM8XC9zdWI+PFwvcHJlPlxyXG5cclxuPHA+XHVjNzA0XHVjNzU4IFx1YzJkZCAoMSl+KDMpXHVjNzQwIFx1YmFhOFx1YjQ1MCBcdWM4OGNcdWJjYzBcdWFjZmMgXHVjNmIwXHViY2MwXHVjNzU4IFx1YWRlMFx1ZDYxNVx1Yzc3NCBcdWI5ZGVcdWNkOTRcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LiAmbmJzcDtcdWQ1NThcdWM5YzBcdWI5Y2MsIFx1YzU0NFx1Yjc5OCBcdWJjMThcdWM3NTFcdWMyZGRcdWM3NDAgXHVhZGY4XHViODA3XHVjOWMwIFx1YzU0YVx1YjJlNC48XC9wPlxyXG5cclxuPHByZT5cclxuKDQpIEFsICsgTzxzdWI+MjxcL3N1Yj4gJnJhcnI7IEFsPHN1Yj4yPFwvc3ViPk88c3ViPjM8XC9zdWI+XHJcbig1KSBDPHN1Yj4zPFwvc3ViPkg8c3ViPjg8XC9zdWI+ICsgTzxzdWI+MjxcL3N1Yj4gJnJhcnI7IENPPHN1Yj4yPFwvc3ViPiArIEg8c3ViPjI8XC9zdWI+TzxcL3ByZT5cclxuXHJcbjxwPlx1YmFhOFx1YjRlMCBcdWQ2NTRcdWQ1NTkgXHViYzE4XHVjNzUxXHVjMmRkXHVjNzQwIFx1YzljOFx1YjdjOSBcdWJjZjRcdWM4NzRcdWM3NTggXHViYzk1XHVjZTU5XHVjNzQ0IFx1YzljMFx1Y2YxY1x1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1Yzk4OSwgXHVhYzAxIFx1YzZkMFx1YzE4YyhILCBPLCBDYSwgQWwsIC4uLilcdWM3NTggXHVhYzFjXHVjMjE4XHViMjk0IFx1ZDY1NFx1ZDU1OSBcdWJjMThcdWM3NTFcdWM3M2NcdWI4NWMgXHViY2MwXHVkNTU4XHVjOWMwIFx1YzU0YVx1YzU0NFx1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1YjUzMFx1Yjc3Y1x1YzExYywgXHVjODhjXHViY2MwXHVhY2ZjIFx1YzZiMFx1YmNjMFx1YzVkMCBcdWJkODRcdWM3OTBcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1YjlkZVx1Y2Q5NFx1YzViNCBcdWM4ZmNcdWM1YjRcdWM1NDQgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cHJlPlxyXG4oNikgNEFsICsgM088c3ViPjI8XC9zdWI+ICZyYXJyOyAyQWw8c3ViPjI8XC9zdWI+TzxzdWI+MzxcL3N1Yj5cclxuKDcpIEM8c3ViPjM8XC9zdWI+SDxzdWI+ODxcL3N1Yj4gKyA1TzxzdWI+MjxcL3N1Yj4gJnJhcnI7IDNDTzxzdWI+MjxcL3N1Yj4gKyA0SDxzdWI+MjxcL3N1Yj5PPFwvcHJlPlxyXG5cclxuPHA+XHViYzE4XHVjNzUxXHVjMmRkICg2KVx1Yzc1OCBcdWFjYzRcdWMyMThcdWIyOTQgXHVjNjdjXHVjYWJkXHViZDgwXHVkMTMwIFx1YzYyNFx1Yjk3OFx1Y2FiZFx1YWU0Y1x1YzljMCAoNCwzLDIpXHVjNzc0XHVhY2UwLCBcdWJjMThcdWM3NTFcdWMyZGQgKDcpXHVjNzU4IFx1YWNjNFx1YzIxOFx1YjI5NCAoMSw1LDMsNClcdWM3NzRcdWIyZTQuIFx1YWNjNFx1YzIxOFx1YWMwMCAxXHVjNzc4XHVhY2JkXHVjNmIwXHVjNWQwXHViMjk0IFx1YzBkZFx1YjdiNVx1YWMwMFx1YjJhNVx1ZDU1OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNjJjXHViYzE0XHViOTc4IFx1ZDY1NFx1ZDU1OSBcdWJjMThcdWM3NTFcdWMyZGRcdWM3NTggXHVhY2M0XHVjMjE4XHViMjk0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NDAgXHVjODcwXHVhYzc0XHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPG9sPlxyXG5cdDxsaT5cdWFjYzRcdWMyMThcdWIyOTQgXHViYWE4XHViNDUwIFx1YzU5MVx1Yzc1OCBcdWM4MTVcdWMyMThcdWM3NzRcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YWNjNFx1YzIxOFx1YjI5NCBcdWMxMWNcdWI4NWNcdWMxOGNcdWM3NzRcdWIyZTQuIFx1Yzk4OSwgXHVhY2M0XHVjMjE4XHVjNzU4IFx1Y2Q1Y1x1YjMwMFx1YWNmNVx1YzU3ZFx1YzIxOFx1YjI5NCAxXHVjNzc0XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWJhYThcdWI0ZTAgXHVjNmQwXHVjMThjXHVjNzU4IFx1Yzg4Y1x1YmNjMFx1Yzc1OCBcdWM1OTFcdWFjZmMgXHVjNmIwXHViY2MwXHVjNzU4IFx1YzU5MVx1Yzc0MCBcdWFjMTlcdWM1NDRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPlx1ZDY1NFx1ZDU1OSBcdWJjMThcdWM3NTFcdWMyZGRcdWM3NzQgXHVjNzA0XHVjNzU4IFx1YzEzOFx1YWMwMFx1YzljMCBcdWM4NzBcdWFjNzRcdWM3NDQgXHViOWNjXHVjODcxXHVkNTU4XHViMjk0IFx1YWNiZFx1YzZiMFx1YzVkMFx1YjI5NCBcdWM2MmNcdWJjMTRcdWI5NzggXHVkNjU0XHVkNTU5IFx1YmMxOFx1Yzc1MVx1YzJkZFx1Yzc3NFx1Yjc3Y1x1YWNlMCBcdWQ1NWNcdWIyZTQuIFx1ZDY1NFx1ZDU1OVx1YzVkMFx1YzExYyBcdWMyZTRcdWM4MWNcdWI4NWMgXHVjNzdjXHVjNWI0XHViMGEwIFx1YzIxOCBcdWM1YzZcdWIyOTQgXHViYzE4XHVjNzUxXHVjNzc0XHViMDk4IFx1Yzg3NFx1YzdhY1x1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTQgXHViZDg0XHVjNzkwXHVhYzAwIFx1YjRmMVx1YzdhNVx1ZDU1Y1x1YjJlNFx1YWNlMCBcdWQ1NzRcdWIzYzQsIFx1Yzc3NCBcdWJiMzhcdWM4MWNcdWM1ZDBcdWMxMWNcdWIyOTQgXHVjNjJjXHViYzE0XHViOTc4IFx1ZDY1NFx1ZDU1OSBcdWJjMThcdWM3NTFcdWMyZGRcdWM3NzRcdWIyZTQuIChIPHN1Yj4yPFwvc3ViPiAmcmFycjsgSDxzdWI+MjxcL3N1Yj5cdWIzYzQgXHVjNjJjXHViYzE0XHViOTc4IFx1YmMxOFx1Yzc1MVx1YzJkZFx1Yzc3NFx1YjJlNCk8XC9wPlxyXG5cclxuPHA+XHVjODcwXHVhYzc0IDFcdWFjZmMgMygyXHViMjk0IFx1ZDU0NFx1YzIxOFx1YjI5NCBcdWM1NDRcdWIyYzhcdWIyZTQpXHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YjI5NCBcdWQ2NTRcdWQ1NTkgXHViYzE4XHVjNzUxXHVjMmRkXHVjNzQwIFx1YWRlMFx1ZDYxNSBcdWJjMThcdWM3NTFcdWMyZGRcdWM3NzRcdWI3N2NcdWFjZTAgXHViZDgwXHViOTc4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQ2NTRcdWQ1NTkgXHViYzE4XHVjNzUxXHVjMmRkIDRcdWM2NDAgNVx1YWMxOVx1Yzc3NCBcdWFjYzRcdWMyMThcdWFjMDAgXHVjNWM2XHViMjk0IFx1ZDY1NFx1ZDU1OSBcdWJjMThcdWM3NTFcdWMyZGRcdWM3NzQgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVhY2M0XHVjMjE4XHViOTdjIFx1YzYyY1x1YmMxNFx1Yjk3NFx1YWM4YyBcdWFkNmNcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG5cclxuPHA+XHViYWE4XHViNGUwIFx1YzYyY1x1YmMxNFx1Yjk3OCBcdWQ2NTRcdWQ1NTkgXHViYzE4XHVjNzUxXHVjMmRkXHVjNzU4IFx1YWNjNFx1YzIxOFx1YWMwMCBcdWM3MjBcdWM3N2NcdWQ1NThcdWFjOGMgXHVhY2IwXHVjODE1XHViNDE4XHViMjk0IFx1YWM4M1x1Yzc0MCBcdWM1NDRcdWIyYzhcdWIyZTQuIFx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQsIEg8c3ViPjI8XC9zdWI+T1x1YzY0MCBOSDxzdWI+MzxcL3N1Yj5cdWI5N2MgXHVjMGRkXHVjMTMxXHVkNTU4XHViMjk0IFx1YmMxOFx1Yzc1MVx1YzJkZFx1Yzc3NCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHViMmU0XHVhY2UwIFx1ZDU1OFx1Yzc5MC48XC9wPlxyXG5cclxuPHByZT5cclxueEgyICsgeU8yICsgek4yICsgdUgyICZyYXJyOyB2SDxzdWI+MjxcL3N1Yj5PICsgd05IPHN1Yj4zPFwvc3ViPjxcL3ByZT5cclxuXHJcbjxwPlx1Yzc3NCBcdWFjYmRcdWM2YjBcdWM1ZDAgKHgseSx6LHUsdix3KSA9ICgyLDEsMSwzLDIsMilcdWFjMDAgXHViMmY1XHVjNzc0IFx1YjQxY1x1YjJlNC4gXHVkNTU4XHVjOWMwXHViOWNjLCAoNCwyLDEsMyw0LDIpXHVjNjQwICg0LDIsMyw5LDQsNilcdWIzYzQgXHVjNjJjXHViYzE0XHViOTc4IFx1YzgxNVx1YjJmNVx1Yzc3NCBcdWI0MWNcdWIyZTQuIFx1ZDU1OFx1YzljMFx1YjljYywgXHVjNzc0IFx1YmIzOFx1YzgxY1x1YzVkMFx1YzExYyBcdWM4ZmNcdWM1YjRcdWM5YzBcdWIyOTQgXHViYWE4XHViNGUwIFx1ZDY1NFx1ZDU1OSBcdWJjMThcdWM3NTFcdWMyZGRcdWM3NTggXHVhY2M0XHVjMjE4XHViMjk0IFx1YzcyMFx1Yzc3Y1x1ZDU1OFx1YWM4YyBcdWFjYjBcdWM4MTVcdWI0MWNcdWIyZTQuJm5ic3A7PFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWM3ODVcdWI4MjVcdWM3NDAgXHVjNWVjXHViN2VjIFx1YWMxY1x1Yzc1OCBcdWFjYzRcdWMyMThcdWFjMDAgXHVjNWM2XHViMjk0IFx1ZDY1NFx1ZDU1OSBcdWJjMThcdWM3NTFcdWMyZGRcdWM3M2NcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVkNjU0XHVkNTU5IFx1YmMxOFx1Yzc1MVx1YzJkZFx1Yzc0MCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHVjNzc0IEJORlx1Yjg1YyBcdWIwOThcdWQwYzBcdWIwYmMgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHByZT5cclxuJmx0O2NoZW1pY2FsX2VxdWF0aW9uJmd0OyA6Oj0gJmx0O21vbGVjdWxlX3NlcXVlbmNlJmd0OyAmcXVvdDstJmd0OyZxdW90OyAmbHQ7bW9sZWN1bGVfc2VxdWVuY2UmZ3Q7XHJcbiZsdDttb2xlY3VsZV9zZXF1ZW5jZSZndDsgOjo9ICZsdDttb2xlY3VsZSZndDsgfCAmbHQ7bW9sZWN1bGUmZ3Q7ICZxdW90OysmcXVvdDsgJmx0O21vbGVjdWxlX3NlcXVlbmNlJmd0O1xyXG4gICAgICAgICAmbHQ7bW9sZWN1bGUmZ3Q7IDo6PSAmbHQ7Z3JvdXAmZ3Q7IHwgJmx0O2dyb3VwJmd0OyAmbHQ7bW9sZWN1bGUmZ3Q7XHJcbiAgICAgICAgICAgICZsdDtncm91cCZndDsgOjo9ICZsdDt1bml0X2dyb3VwJmd0OyB8ICZsdDt1bml0X2dyb3VwJmd0OyAmbHQ7bnVtYmVyJmd0O1xyXG4gICAgICAgJmx0O3VuaXRfZ3JvdXAmZ3Q7IDo6PSAmbHQ7Y2hlbWljYWxfZWxlbWVudCZndDsgfCAmcXVvdDsoJnF1b3Q7ICZsdDttb2xlY3VsZSZndDsgJnF1b3Q7KSZxdW90O1xyXG4gJmx0O2NoZW1pY2FsX2VsZW1lbnQmZ3Q7IDo6PSAmbHQ7dXBwZXJjYXNlX2xldHRlciZndDtcclxuICAgICAgICAgICAgICAgICAgICAgIHwgJmx0O3VwcGVyY2FzZV9sZXR0ZXImZ3Q7ICZsdDtsb3dlcmNhc2VfbGV0dGVyJmd0O1xyXG4gJmx0O3VwcGVyY2FzZV9sZXR0ZXImZ3Q7IDo6PSAmcXVvdDtBJnF1b3Q7IHwgJnF1b3Q7QiZxdW90OyB8ICZxdW90O0MmcXVvdDsgfCAmcXVvdDtEJnF1b3Q7IHwgJnF1b3Q7RSZxdW90OyB8ICZxdW90O0YmcXVvdDsgfCAmcXVvdDtHJnF1b3Q7IHwgJnF1b3Q7SCZxdW90OyB8ICZxdW90O0kmcXVvdDtcclxuICAgICAgICAgICAgICAgICAgICAgIHwgJnF1b3Q7SiZxdW90OyB8ICZxdW90O0smcXVvdDsgfCAmcXVvdDtMJnF1b3Q7IHwgJnF1b3Q7TSZxdW90OyB8ICZxdW90O04mcXVvdDsgfCAmcXVvdDtPJnF1b3Q7IHwgJnF1b3Q7UCZxdW90OyB8ICZxdW90O1EmcXVvdDsgfCAmcXVvdDtSJnF1b3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICB8ICZxdW90O1MmcXVvdDsgfCAmcXVvdDtUJnF1b3Q7IHwgJnF1b3Q7VSZxdW90OyB8ICZxdW90O1YmcXVvdDsgfCAmcXVvdDtXJnF1b3Q7IHwgJnF1b3Q7WCZxdW90OyB8ICZxdW90O1kmcXVvdDsgfCAmcXVvdDtaJnF1b3Q7XHJcbiAmbHQ7bG93ZXJjYXNlX2xldHRlciZndDsgOjo9ICZxdW90O2EmcXVvdDsgfCAmcXVvdDtiJnF1b3Q7IHwgJnF1b3Q7YyZxdW90OyB8ICZxdW90O2QmcXVvdDsgfCAmcXVvdDtlJnF1b3Q7IHwgJnF1b3Q7ZiZxdW90OyB8ICZxdW90O2cmcXVvdDsgfCAmcXVvdDtoJnF1b3Q7IHwgJnF1b3Q7aSZxdW90O1xyXG4gICAgICAgICAgICAgICAgICAgICAgfCAmcXVvdDtqJnF1b3Q7IHwgJnF1b3Q7ayZxdW90OyB8ICZxdW90O2wmcXVvdDsgfCAmcXVvdDttJnF1b3Q7IHwgJnF1b3Q7biZxdW90OyB8ICZxdW90O28mcXVvdDsgfCAmcXVvdDtwJnF1b3Q7IHwgJnF1b3Q7cSZxdW90OyB8ICZxdW90O3ImcXVvdDtcclxuICAgICAgICAgICAgICAgICAgICAgIHwgJnF1b3Q7cyZxdW90OyB8ICZxdW90O3QmcXVvdDsgfCAmcXVvdDt1JnF1b3Q7IHwgJnF1b3Q7diZxdW90OyB8ICZxdW90O3cmcXVvdDsgfCAmcXVvdDt4JnF1b3Q7IHwgJnF1b3Q7eSZxdW90OyB8ICZxdW90O3omcXVvdDtcclxuICAgICAgICAgICAmbHQ7bnVtYmVyJmd0OyA6Oj0gJmx0O25vbl96ZXJvX2RpZ2l0Jmd0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgfCAmbHQ7bm9uX3plcm9fZGlnaXQmZ3Q7ICZsdDtkaWdpdCZndDtcclxuICAgJmx0O25vbl96ZXJvX2RpZ2l0Jmd0OyA6Oj0gJnF1b3Q7MSZxdW90OyB8ICZxdW90OzImcXVvdDsgfCAmcXVvdDszJnF1b3Q7IHwgJnF1b3Q7NCZxdW90OyB8ICZxdW90OzUmcXVvdDsgfCAmcXVvdDs2JnF1b3Q7IHwgJnF1b3Q7NyZxdW90OyB8ICZxdW90OzgmcXVvdDsgfCAmcXVvdDs5JnF1b3Q7XHJcbiAgICAgICAgICAgICZsdDtkaWdpdCZndDsgOjo9ICZxdW90OzAmcXVvdDsgfCAmbHQ7bm9uX3plcm9fZGlnaXQmZ3Q7ICAgICAgICAgICAgXHJcbjxcL3ByZT5cclxuXHJcbjxwPlx1YmFhOFx1YjRlMCBcdWQ2NTRcdWQ1NTkgXHViYzE4XHVjNzUxXHVjMmRkXHVjNzU4IFx1YjA1ZFx1YzVkMFx1YjI5NCAuXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCwgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWJjMjlcdWM4MTVcdWMyZGRcdWM3NzQgXHVjNzg4XHVjNzQ0IFx1YjU0YzxcL3A+XHJcblxyXG48cD5DYShPSCk8c3ViPjI8XC9zdWI+ICsgQ088c3ViPjI8XC9zdWI+ICZyYXJyOyBDYUNPPHN1Yj4zPFwvc3ViPiArIEg8c3ViPjI8XC9zdWI+TzxcL3A+XHJcblxyXG48cD5cdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWNcdWIyOTQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbkNhKE9IKTIrQ08yLSZndDtDYUNPMytIMk8uPFwvcHJlPlxyXG5cclxuPHA+XHViYWE4XHViNGUwIFx1ZDY1NFx1ZDU1OSBcdWJjMThcdWM3NTFcdWMyZGRcdWM3NTggXHVhZTM4XHVjNzc0XHViMjk0IDgwXHVjNzkwXHViOTdjIFx1YjExOFx1YzljMCBcdWM1NGFcdWM3M2NcdWJhNzAsICZsdDtudW1iZXImZ3Q7XHViMjk0IDEwXHViY2Y0XHViMmU0IFx1Yzc5MVx1YjJlNC4gXHVhZDA0XHVkNjM4XHViMjk0IFx1YzkxMVx1Y2NhOVx1ZDU3NFx1YzExYyBcdWMwYWNcdWM2YTlcdWI0MThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LiBcdWQ2NTRcdWQ1NTkgXHViYzE4XHVjNzUxXHVjMmRkXHVjNzU4IFx1YWMwMSBcdWJjYzBcdWM3NDAgXHVjZDVjXHViMzAwIDEwXHVhYzFjXHVjNzU4IFx1YmQ4NFx1Yzc5MFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LiBcdWI2MTAsIFx1YWNjNFx1YzIxOFx1YjI5NCBcdWQ1NmRcdWMwYzEgNDAsMDAwXHVjNzQ0IFx1YjExOFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Yzc4NVx1YjgyNVx1Yzc1OCBcdWI5YzhcdWM5YzBcdWI5YzkgXHVjOTA0XHVjNWQwXHViMjk0IC5cdWM3NzQgXHVkNTU4XHViMDk4IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzA0XHVjNzU4IFx1YzEyNFx1YmE4NSBcdWM5MTEgJmx0O2NoZW1pY2FsX2VsZW1lbnQmZ3Q7XHVjNWQwXHVjMTFjIFx1YzhmY1x1YzViNFx1YzljMFx1YjI5NCBcdWQ2NTRcdWQ1NTkgXHVjNmQwXHVjMThjXHViMjk0IFx1Yzg3NFx1YzdhY1x1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTQgXHVjNmQwXHVjMThjXHViMDk4IFx1YzU0NFx1YzljMSBcdWJjMWNcdWFjYWNcdWI0MThcdWM5YzAgXHVjNTRhXHViMjk0IFx1YzZkMFx1YzE4Y1x1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzggXHVjMjE4XHViM2M0IFx1Yzc4OFx1YjJlNC4gXHViNjEwLCBcdWM2YjBcdWIyMDRcdWIxNzlcdWQyYWMoVXVvLCAxMThcdWJjODgpXHVhY2ZjIFx1YWMxOVx1Yzc3NCBcdWM2ZDBcdWMxOGNcdWFjMDAgXHVjNTRjXHVkMzBjXHViY2IzIFx1YzEzOFx1YWUwMFx1Yzc5MFx1Yzc3OCBcdWFjYmRcdWM2YjBcdWIzYzQgXHVjOGZjXHVjNWI0XHVjOWMwXHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWFjMDFcdWFjMDFcdWM3NTggXHVkNjU0XHVkNTU5IFx1YmMyOVx1YzgxNVx1YzJkZFx1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWMsIFx1YWRmOCBcdWJjMjlcdWM4MTVcdWMyZGRcdWM3NDQgXHVjNjJjXHViYzE0XHViOTc0XHVhYzhjIFx1YjljY1x1YjRkY1x1YjI5NCBcdWFjYzRcdWMyMThcdWI5N2MgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1ZDU1OFx1YzVlYyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMzg4MCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkNoZW1pc3RcdTIwMTlzIE1hdGgiLCJkZXNjcmlwdGlvbiI6IjxwPllvdSBoYXZlIHByb2JhYmx5IGxlYXJudCBjaGVtaWNhbCBlcXVhdGlvbnMgKGNoZW1pY2FsIHJlYWN0aW9uIGZvcm11bGFlKSBpbiB5b3VyIGhpZ2gtc2Nob29sIGRheXMuIFRoZSBmb2xsb3dpbmcgYXJlIHNvbWUgd2VsbC1rbm93biBlcXVhdGlvbnMuPFwvcD5cclxuXHJcbjxwcmU+XHJcbigxKSAySDxzdWI+MjxcL3N1Yj4gKyBPPHN1Yj4yPFwvc3ViPiAmcmFycjsgMkg8c3ViPjI8XC9zdWI+T1xyXG4oMikgQ2EoT0gpPHN1Yj4yPFwvc3ViPiArIENPPHN1Yj4yPFwvc3ViPiAmcmFycjsgQ2FDTzxzdWI+MzxcL3N1Yj4gKyBIPHN1Yj4yPFwvc3ViPk9cclxuKDMpIE48c3ViPjI8XC9zdWI+ICsgM0g8c3ViPjI8XC9zdWI+ICZyYXJyOyAyTkg8c3ViPjM8XC9zdWI+PFwvcHJlPlxyXG5cclxuPHA+V2hpbGUgRXF1YXRpb25zICgxKSZuZGFzaDsoMykgYWxsIGhhdmUgYmFsYW5jZWQgbGVmdC1oYW5kIHNpZGVzIGFuZCByaWdodC1oYW5kIHNpZGVzLCB0aGUgZm9sbG93aW5nIG9uZXMgZG8gbm90LjxcL3A+XHJcblxyXG48cHJlPlxyXG4oNCkgQWwgKyBPPHN1Yj4yPFwvc3ViPiAmcmFycjsgQWw8c3ViPjI8XC9zdWI+TzxzdWI+MzxcL3N1Yj5cclxuKDUpIEM8c3ViPjM8XC9zdWI+SDxzdWI+ODxcL3N1Yj4gKyBPPHN1Yj4yPFwvc3ViPiAmcmFycjsgQ088c3ViPjI8XC9zdWI+ICsgSDxzdWI+MjxcL3N1Yj5PPFwvcHJlPlxyXG5cclxuPHA+VGhlIGVxdWF0aW9ucyBtdXN0IGZvbGxvdyB0aGUgbGF3IG9mIGNvbnNlcnZhdGlvbiBvZiBtYXNzOyB0aGUgcXVhbnRpdHkgb2YgZWFjaCBjaGVtaWNhbCBlbGVtZW50IChzdWNoIGFzIEgsIE8sIENhLCBBbCkgc2hvdWxkIG5vdCBjaGFuZ2Ugd2l0aCBjaGVtaWNhbCByZWFjdGlvbnMuIFNvIHdlIHNob3VsZCAmbGRxdW87YWRqdXN0JnJkcXVvOyB0aGUgbnVtYmVycyBvZiBtb2xlY3VsZXMgb24gdGhlIGxlZnQtaGFuZCBzaWRlIGFuZCByaWdodC1oYW5kIHNpZGU6PFwvcD5cclxuXHJcbjxwcmU+XHJcbig2KSA0QWwgKyAzTzxzdWI+MjxcL3N1Yj4gJnJhcnI7IDJBbDxzdWI+MjxcL3N1Yj5PPHN1Yj4zPFwvc3ViPlxyXG4oNykgQzxzdWI+MzxcL3N1Yj5IPHN1Yj44PFwvc3ViPiArIDVPPHN1Yj4yPFwvc3ViPiAmcmFycjsgM0NPPHN1Yj4yPFwvc3ViPiArIDRIPHN1Yj4yPFwvc3ViPk88XC9wcmU+XHJcblxyXG48cD5UaGUgY29lZmZpY2llbnRzIG9mIEVxdWF0aW9uICg2KSBhcmUgKDQsIDMsIDIpIGZyb20gbGVmdCB0byByaWdodCwgYW5kIHRob3NlIG9mIEVxdWF0aW9uICg3KSBhcmUgKDEsIDUsIDMsIDQpIGZyb20gbGVmdCB0byByaWdodC4gTm90ZSB0aGF0IHRoZSBjb2VmZmljaWVudCAxIG1heSBiZSBvbWl0dGVkIGZyb20gY2hlbWljYWwgZXF1YXRpb25zLjxcL3A+XHJcblxyXG48cD5UaGUgY29lZmZpY2llbnRzIG9mIGEgY29ycmVjdCBlcXVhdGlvbiBtdXN0IHNhdGlzZnkgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zPFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+VGhlIGNvZWZmaWNpZW50cyBhcmUgYWxsIHBvc2l0aXZlIGludGVnZXJzLjxcL2xpPlxyXG5cdDxsaT5UaGUgY29lZmZpY2llbnRzIGFyZSByZWxhdGl2ZWx5IHByaW1lLCB0aGF0IGlzLCB0aGVpciBncmVhdGVzdCBjb21tb24gZGl2aXNvciAoZy5jLmQuKSBpcyAxLjxcL2xpPlxyXG5cdDxsaT5UaGUgcXVhbnRpdGllcyBvZiBlYWNoIGNoZW1pY2FsIGVsZW1lbnQgb24gdGhlIGxlZnQtaGFuZCBzaWRlIGFuZCB0aGUgcmlnaHQtaGFuZCBzaWRlIGFyZSBlcXVhbC48XC9saT5cclxuPFwvb2w+XHJcblxyXG48cD5Db252ZXJzZWx5LCBpZiBhIGNoZW1pY2FsIGVxdWF0aW9uIHNhdGlzZmllcyB0aGUgYWJvdmUgdGhyZWUgY29uZGl0aW9ucywgd2UgcmVnYXJkIGl0IGFzIGEgY29ycmVjdCBlcXVhdGlvbiwgbm8gbWF0dGVyIHdoZXRoZXIgdGhlIHJlYWN0aW9uIG9yIGl0cyBjb25zdGl0dWVudCBtb2xlY3VsZXMgY2FuIGJlIGNoZW1pY2FsbHkgcmVhbGl6ZWQgaW4gdGhlIHJlYWwgd29ybGQsIGFuZCBubyBtYXR0ZXIgd2hldGhlciBpdCBjYW4gYmUgY2FsbGVkIGEgcmVhY3Rpb24gKGUuZy4sIEgyICZyYXJyOyBIMiBpcyBjb25zaWRlcmVkIGNvcnJlY3QpLiBBIGNoZW1pY2FsIGVxdWF0aW9uIHNhdGlzZnlpbmcgQ29uZGl0aW9ucyAxIGFuZCAzIChidXQgbm90IG5lY2Vzc2FyaWx5IENvbmRpdGlvbiAyKSBpcyBjYWxsZWQgYSBiYWxhbmNlZCBlcXVhdGlvbi48XC9wPlxyXG5cclxuPHA+WW91ciBnb2FsIGlzIHRvIHJlYWQgaW4gY2hlbWljYWwgZXF1YXRpb25zIHdpdGggbWlzc2luZyBjb2VmZmljaWVudHMgbGlrZSBFcXVhdGlvbiAoNCkgYW5kICg1KSwgbGluZSBieSBsaW5lLCBhbmQgb3V0cHV0IHRoZSBzZXF1ZW5jZXMgb2YgY29lZmZpY2llbnRzIHRoYXQgbWFrZSB0aGUgZXF1YXRpb25zIGNvcnJlY3QuPFwvcD5cclxuXHJcbjxwPk5vdGUgdGhhdCB0aGUgYWJvdmUgdGhyZWUgY29uZGl0aW9ucyBkbyBub3QgZ3VhcmFudGVlIHRoYXQgYSBjb3JyZWN0IGVxdWF0aW9uIGlzIHVuaXF1ZWx5IGRldGVybWluZWQuIEZvciBleGFtcGxlLCBpZiB3ZSAmbGRxdW87bWl4JnJkcXVvOyB0aGUgcmVhY3Rpb25zIGdlbmVyYXRpbmcgSDxzdWI+MjxcL3N1Yj5PIGFuZCBOSDxzdWI+MzxcL3N1Yj4sIHdlIHdvdWxkIGdldDxcL3A+XHJcblxyXG48cHJlPlxyXG54SDIgKyB5TzIgKyB6TjIgKyB1SDIgJnJhcnI7IHZIPHN1Yj4yPFwvc3ViPk8gKyB3Tkg8c3ViPjM8XC9zdWI+PFwvcHJlPlxyXG5cclxuPHA+YnV0ICh4LCB5LCB6LCB1LCB2LCB3KSA9ICgyLCAxLCAxLCAzLCAyLCAyKSBkb2VzIG5vdCByZXByZXNlbnQgYSB1bmlxdWUgY29ycmVjdCBlcXVhdGlvbjsgZm9yIGluc3RhbmNlLCAoNCwgMiwgMSwgMywgNCwgMikgYW5kICg0LCAyLCAzLCA5LCA0LCA2KSBhcmUgYWxzbyAmbGRxdW87Y29ycmVjdCZyZHF1bzsgYWNjb3JkaW5nIHRvIHRoZSBhYm92ZSBkZWZpbml0aW9uISBIb3dldmVyLCB3ZSBndWFyYW50ZWUgdGhhdCBldmVyeSBjaGVtaWNhbCBlcXVhdGlvbiB3ZSBnaXZlIHlvdSB3aWxsIGxlYWQgdG8gYSB1bmlxdWUgY29ycmVjdCBlcXVhdGlvbiBieSBhZGp1c3RpbmcgdGhlaXIgY29lZmZpY2llbnRzLiBJbiBvdGhlciB3b3Jkcywgd2UgZ3VhcmFudGVlIHRoYXQgKGkpIGV2ZXJ5IGNoZW1pY2FsIGVxdWF0aW9uIGNhbiBiZSBiYWxhbmNlZCB3aXRoIHBvc2l0aXZlIGNvZWZmaWNpZW50cywgYW5kIHRoYXQgKGlpKSBhbGwgYmFsYW5jZWQgZXF1YXRpb25zIG9mIHRoZSBvcmlnaW5hbCBlcXVhdGlvbiBjYW4gYmUgb2J0YWluZWQgYnkgbXVsdGlwbHlpbmcgdGhlIGNvZWZmaWNpZW50cyBvZiBhIHVuaXF1ZSBjb3JyZWN0IGVxdWF0aW9uIGJ5IGEgcG9zaXRpdmUgaW50ZWdlci48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBpbnB1dCBpcyBhIHNlcXVlbmNlIG9mIGNoZW1pY2FsIGVxdWF0aW9ucyAod2l0aG91dCBjb2VmZmljaWVudHMpIG9mIHRoZSBmb2xsb3dpbmcgc3ludGF4IGluIHRoZSBCYWNrdXMtTmF1ciBGb3JtOjxcL3A+XHJcblxyXG48cHJlPlxyXG4mbHQ7Y2hlbWljYWxfZXF1YXRpb24mZ3Q7IDo6PSAmbHQ7bW9sZWN1bGVfc2VxdWVuY2UmZ3Q7ICZxdW90Oy0mZ3Q7JnF1b3Q7ICZsdDttb2xlY3VsZV9zZXF1ZW5jZSZndDtcclxuJmx0O21vbGVjdWxlX3NlcXVlbmNlJmd0OyA6Oj0gJmx0O21vbGVjdWxlJmd0OyB8ICZsdDttb2xlY3VsZSZndDsgJnF1b3Q7KyZxdW90OyAmbHQ7bW9sZWN1bGVfc2VxdWVuY2UmZ3Q7XHJcbiAgICAgICAgICZsdDttb2xlY3VsZSZndDsgOjo9ICZsdDtncm91cCZndDsgfCAmbHQ7Z3JvdXAmZ3Q7ICZsdDttb2xlY3VsZSZndDtcclxuICAgICAgICAgICAgJmx0O2dyb3VwJmd0OyA6Oj0gJmx0O3VuaXRfZ3JvdXAmZ3Q7IHwgJmx0O3VuaXRfZ3JvdXAmZ3Q7ICZsdDtudW1iZXImZ3Q7XHJcbiAgICAgICAmbHQ7dW5pdF9ncm91cCZndDsgOjo9ICZsdDtjaGVtaWNhbF9lbGVtZW50Jmd0OyB8ICZxdW90OygmcXVvdDsgJmx0O21vbGVjdWxlJmd0OyAmcXVvdDspJnF1b3Q7XHJcbiAmbHQ7Y2hlbWljYWxfZWxlbWVudCZndDsgOjo9ICZsdDt1cHBlcmNhc2VfbGV0dGVyJmd0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgfCAmbHQ7dXBwZXJjYXNlX2xldHRlciZndDsgJmx0O2xvd2VyY2FzZV9sZXR0ZXImZ3Q7XHJcbiAmbHQ7dXBwZXJjYXNlX2xldHRlciZndDsgOjo9ICZxdW90O0EmcXVvdDsgfCAmcXVvdDtCJnF1b3Q7IHwgJnF1b3Q7QyZxdW90OyB8ICZxdW90O0QmcXVvdDsgfCAmcXVvdDtFJnF1b3Q7IHwgJnF1b3Q7RiZxdW90OyB8ICZxdW90O0cmcXVvdDsgfCAmcXVvdDtIJnF1b3Q7IHwgJnF1b3Q7SSZxdW90O1xyXG4gICAgICAgICAgICAgICAgICAgICAgfCAmcXVvdDtKJnF1b3Q7IHwgJnF1b3Q7SyZxdW90OyB8ICZxdW90O0wmcXVvdDsgfCAmcXVvdDtNJnF1b3Q7IHwgJnF1b3Q7TiZxdW90OyB8ICZxdW90O08mcXVvdDsgfCAmcXVvdDtQJnF1b3Q7IHwgJnF1b3Q7USZxdW90OyB8ICZxdW90O1ImcXVvdDtcclxuICAgICAgICAgICAgICAgICAgICAgIHwgJnF1b3Q7UyZxdW90OyB8ICZxdW90O1QmcXVvdDsgfCAmcXVvdDtVJnF1b3Q7IHwgJnF1b3Q7ViZxdW90OyB8ICZxdW90O1cmcXVvdDsgfCAmcXVvdDtYJnF1b3Q7IHwgJnF1b3Q7WSZxdW90OyB8ICZxdW90O1omcXVvdDtcclxuICZsdDtsb3dlcmNhc2VfbGV0dGVyJmd0OyA6Oj0gJnF1b3Q7YSZxdW90OyB8ICZxdW90O2ImcXVvdDsgfCAmcXVvdDtjJnF1b3Q7IHwgJnF1b3Q7ZCZxdW90OyB8ICZxdW90O2UmcXVvdDsgfCAmcXVvdDtmJnF1b3Q7IHwgJnF1b3Q7ZyZxdW90OyB8ICZxdW90O2gmcXVvdDsgfCAmcXVvdDtpJnF1b3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICB8ICZxdW90O2omcXVvdDsgfCAmcXVvdDtrJnF1b3Q7IHwgJnF1b3Q7bCZxdW90OyB8ICZxdW90O20mcXVvdDsgfCAmcXVvdDtuJnF1b3Q7IHwgJnF1b3Q7byZxdW90OyB8ICZxdW90O3AmcXVvdDsgfCAmcXVvdDtxJnF1b3Q7IHwgJnF1b3Q7ciZxdW90O1xyXG4gICAgICAgICAgICAgICAgICAgICAgfCAmcXVvdDtzJnF1b3Q7IHwgJnF1b3Q7dCZxdW90OyB8ICZxdW90O3UmcXVvdDsgfCAmcXVvdDt2JnF1b3Q7IHwgJnF1b3Q7dyZxdW90OyB8ICZxdW90O3gmcXVvdDsgfCAmcXVvdDt5JnF1b3Q7IHwgJnF1b3Q7eiZxdW90O1xyXG4gICAgICAgICAgICZsdDtudW1iZXImZ3Q7IDo6PSAmbHQ7bm9uX3plcm9fZGlnaXQmZ3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICB8ICZsdDtub25femVyb19kaWdpdCZndDsgJmx0O2RpZ2l0Jmd0O1xyXG4gICAmbHQ7bm9uX3plcm9fZGlnaXQmZ3Q7IDo6PSAmcXVvdDsxJnF1b3Q7IHwgJnF1b3Q7MiZxdW90OyB8ICZxdW90OzMmcXVvdDsgfCAmcXVvdDs0JnF1b3Q7IHwgJnF1b3Q7NSZxdW90OyB8ICZxdW90OzYmcXVvdDsgfCAmcXVvdDs3JnF1b3Q7IHwgJnF1b3Q7OCZxdW90OyB8ICZxdW90OzkmcXVvdDtcclxuICAgICAgICAgICAgJmx0O2RpZ2l0Jmd0OyA6Oj0gJnF1b3Q7MCZxdW90OyB8ICZsdDtub25femVyb19kaWdpdCZndDsgICAgICAgICAgICBcclxuPFwvcHJlPlxyXG5cclxuPHA+RWFjaCBjaGVtaWNhbCBlcXVhdGlvbiBpcyBmb2xsb3dlZCBieSBhIHBlcmlvZCBhbmQgYSBuZXdsaW5lLiBObyBvdGhlciBjaGFyYWN0ZXJzIHN1Y2ggYXMgc3BhY2VzIGRvIG5vdCBhcHBlYXIgaW4gdGhlIGlucHV0LiBGb3IgaW5zdGFuY2UsIHRoZSBlcXVhdGlvbjxcL3A+XHJcblxyXG48cD5DYShPSCk8c3ViPjI8XC9zdWI+ICsgQ088c3ViPjI8XC9zdWI+ICZyYXJyOyBDYUNPPHN1Yj4zPFwvc3ViPiArIEg8c3ViPjI8XC9zdWI+TzxcL3A+XHJcblxyXG48cD5pcyByZXByZXNlbnRlZCBhczxcL3A+XHJcblxyXG48cHJlPlxyXG5DYShPSCkyK0NPMi0mZ3Q7Q2FDTzMrSDJPLjxcL3ByZT5cclxuXHJcbjxwPkVhY2ggY2hlbWljYWwgZXF1YXRpb24gaXMgbm8gbW9yZSB0aGFuIDgwIGNoYXJhY3RlcnMgbG9uZywgYW5kIGFzIHRoZSBhYm92ZSBzeW50YXggaW1wbGllcywgdGhlICZsdDtudW1iZXImZ3Q7JnJzcXVvO3MgYXJlIGxlc3MgdGhhbiAxMDAuIFBhcmVudGhlc2VzIG1heSBiZSB1c2VkIGJ1dCB3aWxsIG5vdCBiZSBuZXN0ZWQgKG1heWJlIGEgZ29vZCBuZXdzIHRvIHNvbWUgb2YgeW91ISkuIEVhY2ggc2lkZSBvZiBhIGNoZW1pY2FsIGVxdWF0aW9uIGNvbnNpc3RzIG9mIG5vIG1vcmUgdGhhbiAxMCB0b3AtbGV2ZWwgbW9sZWN1bGVzLiBUaGUgY29lZmZpY2llbnRzIHRoYXQgbWFrZSB0aGUgZXF1YXRpb25zIGNvcnJlY3Qgd2lsbCBub3QgZXhjZWVkIDQwMDAwLiBUaGUgY2hlbWljYWwgZXF1YXRpb25zIGluIHRoZSBpbnB1dCBoYXZlIGJlZW4gY2hvc2VuIHNvIHRoYXQgMzItYml0IGludGVnZXIgYXJpdGhtZXRpYyB3b3VsZCBzdWZmaWNlIHdpdGggYXBwcm9wcmlhdGUgcHJlY2F1dGlvbnMgYWdhaW5zdCBwb3NzaWJsZSBhcml0aG1ldGljIG92ZXJcdWZiMDJvdy4gWW91IGFyZSBmcmVlIHRvIHVzZSA2NC1iaXQgYXJpdGhtZXRpYywgaG93ZXZlci48XC9wPlxyXG5cclxuPHA+VGhlIGVuZCBvZiB0aGUgaW5wdXQgaXMgaW5kaWNhdGVkIGJ5IGEgbGluZSBjb25zaXN0aW5nIG9mIGEgc2luZ2xlIHBlcmlvZC48XC9wPlxyXG5cclxuPHA+Tm90ZSB0aGF0IG91ciBkZWZpbml0aW9uIG9mICZsdDtjaGVtaWNhbF9lbGVtZW50Jmd0OyBhYm92ZSBhbGxvd3MgY2hlbWljYWwgZWxlbWVudHMgdGhhdCBkbyBub3QgZXhpc3Qgb3IgdW5rbm93biBhcyBvZiBub3csIGFuZCBleGNsdWRlcyBrbm93biBjaGVtaWNhbCBlbGVtZW50cyB3aXRoIHRocmVlLWxldHRlciBuYW1lcyAoZS5nLix1bnVuYml1bSAoVXViKSwgd2l0aCB0aGUgYXRvbWljIG51bWJlciAxMTIpLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBlYWNoIGNoZW1pY2FsIGVxdWF0aW9uLCBvdXRwdXQgYSBsaW5lIGNvbnRhaW5pbmcgdGhlIHNlcXVlbmNlIG9mIHBvc2l0aXZlIGludGVnZXIgY29lZmZpY2llbnRzIHRoYXQgbWFrZSB0aGUgY2hlbWljYWwgZXF1YXRpb24gY29ycmVjdC4gTnVtYmVycyBpbiBhIGxpbmUgbXVzdCBiZSBzZXBhcmF0ZWQgYnkgYSBzaW5nbGUgc3BhY2UuIE5vIGV4dHJhIGNoYXJhY3RlcnMgc2hvdWxkIGFwcGVhciBpbiB0aGUgb3V0cHV0LjxcL3A+XHJcbiIsImhpbnQiOiI8cD5Gb3IgZWFjaCBjaGVtaWNhbCBlcXVhdGlvbiwgb3V0cHV0IGEgbGluZSBjb250YWluaW5nIHRoZSBzZXF1ZW5jZSBvZiBwb3NpdGl2ZSBpbnRlZ2VyIGNvZWZmaWNpZW50cyB0aGF0IG1ha2UgdGhlIGNoZW1pY2FsIGVxdWF0aW9uIGNvcnJlY3QuIE51bWJlcnMgaW4gYSBsaW5lIG11c3QgYmUgc2VwYXJhdGVkIGJ5IGEgc2luZ2xlIHNwYWNlLiBObyBleHRyYSBjaGFyYWN0ZXJzIHNob3VsZCBhcHBlYXIgaW4gdGhlIG91dHB1dC48XC9wPlxyXG4iLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==

출처

ACM-ICPC > Regionals > Asia > Japan > Asia Regional Contest 2009 in Tokyo F번