f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAABoGQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGZsYWc7CnBrZ3BhdGggZmxhZzsKcHJpb3JpdHkgNzsKaW1wb3J0IGVycm9ycyBlcnJvcnMgImVycm9ycyI7CmltcG9ydCBmbXQgZm10ICJmbXQiOwppbXBvcnQgaW8gaW8gImlvIjsKaW1wb3J0IG9zIG9zICJvcyI7CmltcG9ydCBzb3J0IHNvcnQgInNvcnQiOwppbXBvcnQgc3RyY29udiBzdHJjb252ICJzdHJjb252IjsKaW1wb3J0IHRpbWUgdGltZSAidGltZSI7CmluaXQgZmxhZyBmbGFnLi5pbXBvcnQgNyBtYXRoIG1hdGguLmltcG9ydCAxIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgc3RyY29udiBzdHJjb252Li5pbXBvcnQgMiBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgdGltZSB0aW1lLi5pbXBvcnQgNCBvcyBvcy4uaW1wb3J0IDUgZm10IGZtdC4uaW1wb3J0IDY7CmZ1bmMgQXJnIChpIDx0eXBlIC0xMT4pIDx0eXBlIC0xNj47CmZ1bmMgQXJncyAoKSA8dHlwZSAxIFtdIDx0eXBlIC0xNj4+OwpmdW5jIEJvb2wgKG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTE1PiwgdXNhZ2UgPHR5cGUgLTE2PikgPHR5cGUgMiAqPHR5cGUgLTE1Pj47CmZ1bmMgQm9vbFZhciAocCA8dHlwZSAzICo8dHlwZSAtMTU+PiwgbmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTU+LCB1c2FnZSA8dHlwZSAtMTY+KTsKdmFyIENvbW1hbmRMaW5lIDx0eXBlIDQgKjx0eXBlIDUgIkZsYWdTZXQiIDx0eXBlIDYgc3RydWN0IHsgVXNhZ2UgPHR5cGUgNyAoKT47IC5mbGFnLm5hbWUgPHR5cGUgLTE2PjsgLmZsYWcucGFyc2VkIDx0eXBlIC0xNT47IC5mbGFnLmFjdHVhbCA8dHlwZSA4IG1hcCBbPHR5cGUgLTE2Pl0gPHR5cGUgOSAqPHR5cGUgMTAgIkZsYWciIDx0eXBlIDExIHN0cnVjdCB7IE5hbWUgPHR5cGUgLTE2PjsgVXNhZ2UgPHR5cGUgLTE2PjsgVmFsdWUgPHR5cGUgMTIgIlZhbHVlIiA8dHlwZSAxMyBpbnRlcmZhY2UgeyBTdHJpbmcgKCkgPHR5cGUgLTE2PjsgU2V0ICg/IDx0eXBlIC0xNj4pIDx0eXBlIC0xOT47IH0+PjsgRGVmVmFsdWUgPHR5cGUgLTE2PjsgfT4+Pj47IC5mbGFnLmZvcm1hbCA8dHlwZSAxNCBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIDE1ICo8dHlwZSAxMD4+PjsgLmZsYWcuYXJncyA8dHlwZSAxNiBbXSA8dHlwZSAtMTY+PjsgLmZsYWcuZXJyb3JIYW5kbGluZyA8dHlwZSAxNyAiRXJyb3JIYW5kbGluZyIgPHR5cGUgLTExPj47IC5mbGFnLm91dHB1dCA8dHlwZSAxOCAiaW8uV3JpdGVyIiA8dHlwZSAxOSBpbnRlcmZhY2UgeyBXcml0ZSAocCA8dHlwZSAyMCBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj47IH0+CiBmdW5jIChmIDx0eXBlIDIxICo8dHlwZSA1Pj4pIC5mbGFnLm91dCAoKSA8dHlwZSAxOD47CiBmdW5jIChmIDx0eXBlIDIxPikgU2V0T3V0cHV0IChvdXRwdXQgPHR5cGUgMTg+KTsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBWaXNpdEFsbCAoZm4gPHR5cGUgMjIgKD8gPHR5cGUgMjMgKjx0eXBlIDEwPj4pPik7CiBmdW5jIChmIDx0eXBlIDIxPikgVmlzaXQgKGZuIDx0eXBlIDI0ICg/IDx0eXBlIDIzPik+KTsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBMb29rdXAgKG5hbWUgPHR5cGUgLTE2PikgPHR5cGUgMjM+OwogZnVuYyAoZiA8dHlwZSAyMT4pIFNldCAobmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTY+KSA8dHlwZSAtMTk+OwogZnVuYyAoZiA8dHlwZSAyMT4pIFByaW50RGVmYXVsdHMgKCk7CiBmdW5jIChmIDx0eXBlIDIxPikgTkZsYWcgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBBcmcgKGkgPHR5cGUgLTExPikgPHR5cGUgLTE2PjsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBOQXJnICgpIDx0eXBlIC0xMT47CiBmdW5jIChmIDx0eXBlIDIxPikgQXJncyAoKSA8dHlwZSAyNSBbXSA8dHlwZSAtMTY+PjsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBCb29sVmFyIChwIDx0eXBlIDI2ICo8dHlwZSAtMTU+PiwgbmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTU+LCB1c2FnZSA8dHlwZSAtMTY+KTsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBCb29sIChuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xNT4sIHVzYWdlIDx0eXBlIC0xNj4pIDx0eXBlIDI3ICo8dHlwZSAtMTU+PjsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBJbnRWYXIgKHAgPHR5cGUgMjggKjx0eXBlIC0xMT4+LCBuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xMT4sIHVzYWdlIDx0eXBlIC0xNj4pOwogZnVuYyAoZiA8dHlwZSAyMT4pIEludCAobmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTE+LCB1c2FnZSA8dHlwZSAtMTY+KSA8dHlwZSAyOSAqPHR5cGUgLTExPj47CiBmdW5jIChmIDx0eXBlIDIxPikgSW50NjRWYXIgKHAgPHR5cGUgMzAgKjx0eXBlIC00Pj4sIG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTQ+LCB1c2FnZSA8dHlwZSAtMTY+KTsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBJbnQ2NCAobmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtND4sIHVzYWdlIDx0eXBlIC0xNj4pIDx0eXBlIDMxICo8dHlwZSAtND4+OwogZnVuYyAoZiA8dHlwZSAyMT4pIFVpbnRWYXIgKHAgPHR5cGUgMzIgKjx0eXBlIC0xMj4+LCBuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xMj4sIHVzYWdlIDx0eXBlIC0xNj4pOwogZnVuYyAoZiA8dHlwZSAyMT4pIFVpbnQgKG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTEyPiwgdXNhZ2UgPHR5cGUgLTE2PikgPHR5cGUgMzMgKjx0eXBlIC0xMj4+OwogZnVuYyAoZiA8dHlwZSAyMT4pIFVpbnQ2NFZhciAocCA8dHlwZSAzNCAqPHR5cGUgLTg+PiwgbmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtOD4sIHVzYWdlIDx0eXBlIC0xNj4pOwogZnVuYyAoZiA8dHlwZSAyMT4pIFVpbnQ2NCAobmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtOD4sIHVzYWdlIDx0eXBlIC0xNj4pIDx0eXBlIDM1ICo8dHlwZSAtOD4+OwogZnVuYyAoZiA8dHlwZSAyMT4pIFN0cmluZ1ZhciAocCA8dHlwZSAzNiAqPHR5cGUgLTE2Pj4sIG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTE2PiwgdXNhZ2UgPHR5cGUgLTE2Pik7CiBmdW5jIChmIDx0eXBlIDIxPikgU3RyaW5nIChuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xNj4sIHVzYWdlIDx0eXBlIC0xNj4pIDx0eXBlIDM3ICo8dHlwZSAtMTY+PjsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBGbG9hdDY0VmFyIChwIDx0eXBlIDM4ICo8dHlwZSAtMTA+PiwgbmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTA+LCB1c2FnZSA8dHlwZSAtMTY+KTsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBGbG9hdDY0IChuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xMD4sIHVzYWdlIDx0eXBlIC0xNj4pIDx0eXBlIDM5ICo8dHlwZSAtMTA+PjsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBEdXJhdGlvblZhciAocCA8dHlwZSA0MCAqPHR5cGUgNDEgInRpbWUuRHVyYXRpb24iIDx0eXBlIC00PgogZnVuYyAoZCA8dHlwZSA0MT4pIFNlY29uZHMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgNDE+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGQgPHR5cGUgNDE+KSBNaW51dGVzICgpIDx0eXBlIC0xMD47CiBmdW5jIChkIDx0eXBlIDQxPikgSG91cnMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgNDE+KSBOYW5vc2Vjb25kcyAoKSA8dHlwZSAtND47Cj4+LCBuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIDQxPiwgdXNhZ2UgPHR5cGUgLTE2Pik7CiBmdW5jIChmIDx0eXBlIDIxPikgRHVyYXRpb24gKG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgNDE+LCB1c2FnZSA8dHlwZSAtMTY+KSA8dHlwZSA0MD47CiBmdW5jIChmIDx0eXBlIDIxPikgVmFyICh2YWx1ZSA8dHlwZSAxMj4sIG5hbWUgPHR5cGUgLTE2PiwgdXNhZ2UgPHR5cGUgLTE2Pik7CiBmdW5jIChmIDx0eXBlIDIxPikgLmZsYWcuZmFpbGYgKGZvcm1hdCA8dHlwZSAtMTY+LCBhIC4uLjx0eXBlIDQyIGludGVyZmFjZSB7IH0+KSA8dHlwZSAtMTk+OwogZnVuYyAoZiA8dHlwZSAyMT4pIC5mbGFnLnVzYWdlICgpOwogZnVuYyAoZiA8dHlwZSAyMT4pIC5mbGFnLnBhcnNlT25lICgpICg/IDx0eXBlIC0xNT4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChmIDx0eXBlIDIxPikgUGFyc2UgKGFyZ3VtZW50cyA8dHlwZSA0MyBbXSA8dHlwZSAtMTY+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBQYXJzZWQgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGYgPHR5cGUgMjE+KSBJbml0IChuYW1lIDx0eXBlIC0xNj4sIGVycm9ySGFuZGxpbmcgPHR5cGUgMTc+KTsKPj47CmNvbnN0IENvbnRpbnVlT25FcnJvciA8dHlwZSAxNz4gPSAwIDsKZnVuYyBEdXJhdGlvbiAobmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSA0MT4sIHVzYWdlIDx0eXBlIC0xNj4pIDx0eXBlIDQwPjsKZnVuYyBEdXJhdGlvblZhciAocCA8dHlwZSA0MD4sIG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgNDE+LCB1c2FnZSA8dHlwZSAtMTY+KTsKdmFyIEVyckhlbHAgPHR5cGUgLTE5PjsKdHlwZSA8dHlwZSAxNz47CmNvbnN0IEV4aXRPbkVycm9yIDx0eXBlIDE3PiA9IDEgOwp0eXBlIDx0eXBlIDEwPjsKdHlwZSA8dHlwZSA1PjsKZnVuYyBGbG9hdDY0IChuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xMD4sIHVzYWdlIDx0eXBlIC0xNj4pIDx0eXBlIDQ0ICo8dHlwZSAtMTA+PjsKZnVuYyBGbG9hdDY0VmFyIChwIDx0eXBlIDQ1ICo8dHlwZSAtMTA+PiwgbmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTA+LCB1c2FnZSA8dHlwZSAtMTY+KTsKdHlwZSA8dHlwZSA0NiAiR2V0dGVyIiA8dHlwZSA0NyBpbnRlcmZhY2UgeyA/IDx0eXBlIDEyPjsgR2V0ICgpIDx0eXBlIDQ4IGludGVyZmFjZSB7IH0+OyB9Pj47CmZ1bmMgSW50IChuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xMT4sIHVzYWdlIDx0eXBlIC0xNj4pIDx0eXBlIDQ5ICo8dHlwZSAtMTE+PjsKZnVuYyBJbnQ2NCAobmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtND4sIHVzYWdlIDx0eXBlIC0xNj4pIDx0eXBlIDUwICo8dHlwZSAtND4+OwpmdW5jIEludDY0VmFyIChwIDx0eXBlIDUxICo8dHlwZSAtND4+LCBuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC00PiwgdXNhZ2UgPHR5cGUgLTE2Pik7CmZ1bmMgSW50VmFyIChwIDx0eXBlIDUyICo8dHlwZSAtMTE+PiwgbmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTE+LCB1c2FnZSA8dHlwZSAtMTY+KTsKZnVuYyBMb29rdXAgKG5hbWUgPHR5cGUgLTE2PikgPHR5cGUgMjM+OwpmdW5jIE5BcmcgKCkgPHR5cGUgLTExPjsKZnVuYyBORmxhZyAoKSA8dHlwZSAtMTE+OwpmdW5jIE5ld0ZsYWdTZXQgKG5hbWUgPHR5cGUgLTE2PiwgZXJyb3JIYW5kbGluZyA8dHlwZSAxNz4pIDx0eXBlIDQ+Owpjb25zdCBQYW5pY09uRXJyb3IgPHR5cGUgMTc+ID0gMiA7CmZ1bmMgUGFyc2UgKCk7CmZ1bmMgUGFyc2VkICgpIDx0eXBlIC0xNT47CmZ1bmMgUHJpbnREZWZhdWx0cyAoKTsKZnVuYyBTZXQgKG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTE2PikgPHR5cGUgLTE5PjsKZnVuYyBTdHJpbmcgKG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTE2PiwgdXNhZ2UgPHR5cGUgLTE2PikgPHR5cGUgNTMgKjx0eXBlIC0xNj4+OwpmdW5jIFN0cmluZ1ZhciAocCA8dHlwZSA1NCAqPHR5cGUgLTE2Pj4sIG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTE2PiwgdXNhZ2UgPHR5cGUgLTE2Pik7CmZ1bmMgVWludCAobmFtZSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTI+LCB1c2FnZSA8dHlwZSAtMTY+KSA8dHlwZSA1NSAqPHR5cGUgLTEyPj47CmZ1bmMgVWludDY0IChuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC04PiwgdXNhZ2UgPHR5cGUgLTE2PikgPHR5cGUgNTYgKjx0eXBlIC04Pj47CmZ1bmMgVWludDY0VmFyIChwIDx0eXBlIDU3ICo8dHlwZSAtOD4+LCBuYW1lIDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC04PiwgdXNhZ2UgPHR5cGUgLTE2Pik7CmZ1bmMgVWludFZhciAocCA8dHlwZSA1OCAqPHR5cGUgLTEyPj4sIG5hbWUgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTEyPiwgdXNhZ2UgPHR5cGUgLTE2Pik7CnZhciBVc2FnZSA8dHlwZSA1OSAoKT47CnR5cGUgPHR5cGUgMTI+OwpmdW5jIFZhciAodmFsdWUgPHR5cGUgMTI+LCBuYW1lIDx0eXBlIC0xNj4sIHVzYWdlIDx0eXBlIC0xNj4pOwpmdW5jIFZpc2l0IChmbiA8dHlwZSA2MCAoPyA8dHlwZSAyMz4pPik7CmZ1bmMgVmlzaXRBbGwgKGZuIDx0eXBlIDYxICg/IDx0eXBlIDIzPik+KTsKY2hlY2tzdW0gQzMxMENBQUY2ODIzN0QzQ0Q4QjM4MDAwNTMwNzUyQTUwMUJCMDdBODsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAA6RgAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAHRkAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAEQZAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAABkGQAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=