f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAkIQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHN5c2xvZzsKcGtncGF0aCBsb2cvc3lzbG9nOwpwcmlvcml0eSA4OwppbXBvcnQgZXJyb3JzIGVycm9ycyAiZXJyb3JzIjsKaW1wb3J0IGZtdCBmbXQgImZtdCI7CmltcG9ydCBsb2cgbG9nICJsb2ciOwppbXBvcnQgbmV0IG5ldCAibmV0IjsKaW1wb3J0IG9zIG9zICJvcyI7CmltcG9ydCBzdHJpbmdzIHN0cmluZ3MgInN0cmluZ3MiOwppbXBvcnQgc3luYyBzeW5jICJzeW5jIjsKaW1wb3J0IHRpbWUgdGltZSAidGltZSI7CmluaXQgbWF0aCBtYXRoLi5pbXBvcnQgMSBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHVuaWNvZGUgdW5pY29kZS4uaW1wb3J0IDEgc3RyY29udiBzdHJjb252Li5pbXBvcnQgMiBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMyByYW5kIG1hdGhfcmFuZC4uaW1wb3J0IDMgcmVmbGVjdCByZWZsZWN0Li5pbXBvcnQgMyBzeXNjYWxsIHN5c2NhbGwuLmltcG9ydCAzIHRpbWUgdGltZS4uaW1wb3J0IDQgb3Mgb3MuLmltcG9ydCA1IGZtdCBmbXQuLmltcG9ydCA2IG5ldCBuZXQuLmltcG9ydCA2IGxvZyBsb2cuLmltcG9ydCA3OwpmdW5jIERpYWwgKG5ldHdvcmsgPHR5cGUgLTE2PiwgcmFkZHIgPHR5cGUgLTE2PiwgcHJpb3JpdHkgPHR5cGUgMSAiUHJpb3JpdHkiIDx0eXBlIC0xMT4+LCB0YWcgPHR5cGUgLTE2PikgKD8gPHR5cGUgMiAqPHR5cGUgMyAiV3JpdGVyIiA8dHlwZSA0IHN0cnVjdCB7IC5sb2cvc3lzbG9nLnByaW9yaXR5IDx0eXBlIDE+OyAubG9nL3N5c2xvZy50YWcgPHR5cGUgLTE2PjsgLmxvZy9zeXNsb2cuaG9zdG5hbWUgPHR5cGUgLTE2PjsgLmxvZy9zeXNsb2cubmV0d29yayA8dHlwZSAtMTY+OyAubG9nL3N5c2xvZy5yYWRkciA8dHlwZSAtMTY+OyAubG9nL3N5c2xvZy5tdSA8dHlwZSA1ICJzeW5jLk11dGV4IiA8dHlwZSA2IHN0cnVjdCB7IC5zeW5jLnN0YXRlIDx0eXBlIC0zPjsgLnN5bmMuc2VtYSA8dHlwZSAtNz47IH0+CiBmdW5jIChtIDx0eXBlIDcgKjx0eXBlIDU+PikgVW5sb2NrICgpOwogZnVuYyAobSA8dHlwZSA3PikgTG9jayAoKTsKPjsgLmxvZy9zeXNsb2cuY29ubiA8dHlwZSA4ICIubG9nL3N5c2xvZy5zZXJ2ZXJDb25uIiA8dHlwZSA5IGludGVyZmFjZSB7IC5sb2cvc3lzbG9nLndyaXRlU3RyaW5nIChwIDx0eXBlIDE+LCBob3N0bmFtZSA8dHlwZSAtMTY+LCB0YWcgPHR5cGUgLTE2PiwgcyA8dHlwZSAtMTY+LCBubCA8dHlwZSAtMTY+KSA8dHlwZSAtMTk+OyAubG9nL3N5c2xvZy5jbG9zZSAoKSA8dHlwZSAtMTk+OyB9Pj47IH0+CiBmdW5jICh3IDx0eXBlIDEwICo8dHlwZSAzPj4pIC5sb2cvc3lzbG9nLmNvbm5lY3QgKCkgKGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHcgPHR5cGUgMTA+KSBXcml0ZSAoYiA8dHlwZSAxMSBbXSA8dHlwZSAtMjA+PikgKD8gPHR5cGUgLTExPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHcgPHR5cGUgMTA+KSBDbG9zZSAoKSA8dHlwZSAtMTk+OwogZnVuYyAodyA8dHlwZSAxMD4pIEVtZXJnIChtIDx0eXBlIC0xNj4pIChlcnIgPHR5cGUgLTE5Pik7CiBmdW5jICh3IDx0eXBlIDEwPikgQWxlcnQgKG0gPHR5cGUgLTE2PikgKGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHcgPHR5cGUgMTA+KSBDcml0IChtIDx0eXBlIC0xNj4pIChlcnIgPHR5cGUgLTE5Pik7CiBmdW5jICh3IDx0eXBlIDEwPikgRXJyIChtIDx0eXBlIC0xNj4pIChlcnIgPHR5cGUgLTE5Pik7CiBmdW5jICh3IDx0eXBlIDEwPikgV2FybmluZyAobSA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodyA8dHlwZSAxMD4pIE5vdGljZSAobSA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodyA8dHlwZSAxMD4pIEluZm8gKG0gPHR5cGUgLTE2PikgKGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHcgPHR5cGUgMTA+KSBEZWJ1ZyAobSA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodyA8dHlwZSAxMD4pIC5sb2cvc3lzbG9nLndyaXRlQW5kUmV0cnkgKHAgPHR5cGUgMT4sIHMgPHR5cGUgLTE2PikgKD8gPHR5cGUgLTExPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHcgPHR5cGUgMTA+KSAubG9nL3N5c2xvZy53cml0ZSAocCA8dHlwZSAxPiwgbXNnIDx0eXBlIC0xNj4pICg/IDx0eXBlIC0xMT4sID8gPHR5cGUgLTE5Pik7Cj4+LCA/IDx0eXBlIC0xOT4pOwpjb25zdCBMT0dfQUxFUlQgPHR5cGUgMT4gPSAxIDsKY29uc3QgTE9HX0FVVEggPHR5cGUgMT4gPSAzMiA7CmNvbnN0IExPR19BVVRIUFJJViA8dHlwZSAxPiA9IDgwIDsKY29uc3QgTE9HX0NSSVQgPHR5cGUgMT4gPSAyIDsKY29uc3QgTE9HX0NST04gPHR5cGUgMT4gPSA3MiA7CmNvbnN0IExPR19EQUVNT04gPHR5cGUgMT4gPSAyNCA7CmNvbnN0IExPR19ERUJVRyA8dHlwZSAxPiA9IDcgOwpjb25zdCBMT0dfRU1FUkcgPHR5cGUgMT4gPSAwIDsKY29uc3QgTE9HX0VSUiA8dHlwZSAxPiA9IDMgOwpjb25zdCBMT0dfRlRQIDx0eXBlIDE+ID0gODggOwpjb25zdCBMT0dfSU5GTyA8dHlwZSAxPiA9IDYgOwpjb25zdCBMT0dfS0VSTiA8dHlwZSAxPiA9IDAgOwpjb25zdCBMT0dfTE9DQUwwIDx0eXBlIDE+ID0gMTI4IDsKY29uc3QgTE9HX0xPQ0FMMSA8dHlwZSAxPiA9IDEzNiA7CmNvbnN0IExPR19MT0NBTDIgPHR5cGUgMT4gPSAxNDQgOwpjb25zdCBMT0dfTE9DQUwzIDx0eXBlIDE+ID0gMTUyIDsKY29uc3QgTE9HX0xPQ0FMNCA8dHlwZSAxPiA9IDE2MCA7CmNvbnN0IExPR19MT0NBTDUgPHR5cGUgMT4gPSAxNjggOwpjb25zdCBMT0dfTE9DQUw2IDx0eXBlIDE+ID0gMTc2IDsKY29uc3QgTE9HX0xPQ0FMNyA8dHlwZSAxPiA9IDE4NCA7CmNvbnN0IExPR19MUFIgPHR5cGUgMT4gPSA0OCA7CmNvbnN0IExPR19NQUlMIDx0eXBlIDE+ID0gMTYgOwpjb25zdCBMT0dfTkVXUyA8dHlwZSAxPiA9IDU2IDsKY29uc3QgTE9HX05PVElDRSA8dHlwZSAxPiA9IDUgOwpjb25zdCBMT0dfU1lTTE9HIDx0eXBlIDE+ID0gNDAgOwpjb25zdCBMT0dfVVNFUiA8dHlwZSAxPiA9IDggOwpjb25zdCBMT0dfVVVDUCA8dHlwZSAxPiA9IDY0IDsKY29uc3QgTE9HX1dBUk5JTkcgPHR5cGUgMT4gPSA0IDsKZnVuYyBOZXcgKHByaW9yaXR5IDx0eXBlIDE+LCB0YWcgPHR5cGUgLTE2PikgKHcgPHR5cGUgMj4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBOZXdMb2dnZXIgKHAgPHR5cGUgMT4sIGxvZ0ZsYWcgPHR5cGUgLTExPikgKD8gPHR5cGUgMTIgKjx0eXBlIDEzICJsb2cuTG9nZ2VyIiA8dHlwZSAxNCBzdHJ1Y3QgeyAubG9nLm11IDx0eXBlIDU+OyAubG9nLnByZWZpeCA8dHlwZSAtMTY+OyAubG9nLmZsYWcgPHR5cGUgLTExPjsgLmxvZy5vdXQgPHR5cGUgMTUgImlvLldyaXRlciIgImlvIiA8dHlwZSAxNiBpbnRlcmZhY2UgeyBXcml0ZSAocCA8dHlwZSAxNyBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj47IC5sb2cuYnVmIDx0eXBlIDE4IFtdIDx0eXBlIC0yMD4+OyB9PgogZnVuYyAobCA8dHlwZSAxOSAqPHR5cGUgMTM+PikgUHJpbnRmIChmb3JtYXQgPHR5cGUgLTE2PiwgdiAuLi48dHlwZSAyMCBpbnRlcmZhY2UgeyB9Pik7CiBmdW5jIChsIDx0eXBlIDE5PikgRmF0YWwgKHYgLi4uPHR5cGUgMjEgaW50ZXJmYWNlIHsgfT4pOwogZnVuYyAobCA8dHlwZSAxOT4pIFByaW50bG4gKHYgLi4uPHR5cGUgMjIgaW50ZXJmYWNlIHsgfT4pOwogZnVuYyAobCA8dHlwZSAxOT4pIFByZWZpeCAoKSA8dHlwZSAtMTY+OwogZnVuYyAobCA8dHlwZSAxOT4pIFNldFByZWZpeCAocHJlZml4IDx0eXBlIC0xNj4pOwogZnVuYyAobCA8dHlwZSAxOT4pIFByaW50ICh2IC4uLjx0eXBlIDIzIGludGVyZmFjZSB7IH0+KTsKIGZ1bmMgKGwgPHR5cGUgMTk+KSBPdXRwdXQgKGNhbGxkZXB0aCA8dHlwZSAtMTE+LCBzIDx0eXBlIC0xNj4pIDx0eXBlIC0xOT47CiBmdW5jIChsIDx0eXBlIDE5PikgUGFuaWNmIChmb3JtYXQgPHR5cGUgLTE2PiwgdiAuLi48dHlwZSAyNCBpbnRlcmZhY2UgeyB9Pik7CiBmdW5jIChsIDx0eXBlIDE5PikgLmxvZy5mb3JtYXRIZWFkZXIgKGJ1ZiA8dHlwZSAyNSAqPHR5cGUgMjYgW10gPHR5cGUgLTIwPj4+LCB0IDx0eXBlIDI3ICJ0aW1lLlRpbWUiIDx0eXBlIDI4IHN0cnVjdCB7IC50aW1lLnNlYyA8dHlwZSAtND47IC50aW1lLm5zZWMgPHR5cGUgLTM+OyAudGltZS5sb2MgPHR5cGUgMjkgKjx0eXBlIDMwICJ0aW1lLkxvY2F0aW9uIiA8dHlwZSAzMSBzdHJ1Y3QgeyAudGltZS5uYW1lIDx0eXBlIC0xNj47IC50aW1lLnpvbmUgPHR5cGUgMzIgW10gPHR5cGUgMzMgIi50aW1lLnpvbmUiIDx0eXBlIDM0IHN0cnVjdCB7IC50aW1lLm5hbWUgPHR5cGUgLTE2PjsgLnRpbWUub2Zmc2V0IDx0eXBlIC0xMT47IC50aW1lLmlzRFNUIDx0eXBlIC0xNT47IH0+Pj47IC50aW1lLnR4IDx0eXBlIDM1IFtdIDx0eXBlIDM2ICIudGltZS56b25lVHJhbnMiIDx0eXBlIDM3IHN0cnVjdCB7IC50aW1lLndoZW4gPHR5cGUgLTQ+OyAudGltZS5pbmRleCA8dHlwZSAtNT47IC50aW1lLmlzc3RkIDx0eXBlIC0xNT47IC50aW1lLmlzdXRjIDx0eXBlIC0xNT47IH0+Pj47IC50aW1lLmNhY2hlU3RhcnQgPHR5cGUgLTQ+OyAudGltZS5jYWNoZUVuZCA8dHlwZSAtND47IC50aW1lLmNhY2hlWm9uZSA8dHlwZSAzOCAqPHR5cGUgMzM+PjsgfT4KIGZ1bmMgKGwgPHR5cGUgMzkgKjx0eXBlIDMwPj4pIC50aW1lLmZpcnN0Wm9uZVVzZWQgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGwgPHR5cGUgMzk+KSAudGltZS5sb29rdXBOYW1lIChuYW1lIDx0eXBlIC0xNj4sIHVuaXggPHR5cGUgLTQ+KSAob2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIG9rIDx0eXBlIC0xNT4pOwogZnVuYyAobCA8dHlwZSAzOT4pIC50aW1lLmxvb2t1cCAoc2VjIDx0eXBlIC00PikgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIHN0YXJ0IDx0eXBlIC00PiwgZW5kIDx0eXBlIC00Pik7CiBmdW5jIChsIDx0eXBlIDM5PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChsIDx0eXBlIDM5PikgLnRpbWUubG9va3VwRmlyc3Rab25lICgpIDx0eXBlIC0xMT47CiBmdW5jIChsIDx0eXBlIDM5PikgLnRpbWUuZ2V0ICgpIDx0eXBlIDM5PjsKPj47IH0+CiBmdW5jICh0IDx0eXBlIDI3PikgQWZ0ZXIgKHUgPHR5cGUgMjc+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSAyNz4pIE1hcnNoYWxUZXh0ICgpICg/IDx0eXBlIDQwIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAyNz4pIERhdGUgKCkgKHllYXIgPHR5cGUgLTExPiwgbW9udGggPHR5cGUgNDEgInRpbWUuTW9udGgiIDx0eXBlIC0xMT4KIGZ1bmMgKG0gPHR5cGUgNDE+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPiwgZGF5IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAyNz4pIC50aW1lLmFicyAoKSA8dHlwZSAtOD47CiBmdW5jICh0IDx0eXBlIDI3PikgV2Vla2RheSAoKSA8dHlwZSA0MiAidGltZS5XZWVrZGF5IiA8dHlwZSAtMTE+CiBmdW5jIChkIDx0eXBlIDQyPikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47CiBmdW5jICh0IDx0eXBlIDI3PikgTmFub3NlY29uZCAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA0MyAqPHR5cGUgMjc+PikgR29iRGVjb2RlIChkYXRhIDx0eXBlIDQ0IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAodCA8dHlwZSAyNz4pIEluIChsb2MgPHR5cGUgMjk+KSA8dHlwZSAyNz47CiBmdW5jICh0IDx0eXBlIDI3PikgTG9jYWwgKCkgPHR5cGUgMjc+OwogZnVuYyAodCA8dHlwZSAyNz4pIE1vbnRoICgpIDx0eXBlIDQxPjsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBIb3VyICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDI3PikgTWFyc2hhbEJpbmFyeSAoKSAoPyA8dHlwZSA0NSBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBVbml4TmFubyAoKSA8dHlwZSAtND47CiBmdW5jICh0IDx0eXBlIDI3PikgRXF1YWwgKHUgPHR5cGUgMjc+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSAyNz4pIEZvcm1hdCAobGF5b3V0IDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDI3PikgQWRkRGF0ZSAoeWVhcnMgPHR5cGUgLTExPiwgbW9udGhzIDx0eXBlIC0xMT4sIGRheXMgPHR5cGUgLTExPikgPHR5cGUgMjc+OwogZnVuYyAodCA8dHlwZSAyNz4pIFpvbmUgKCkgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAyNz4pIERheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAyNz4pIENsb2NrICgpIChob3VyIDx0eXBlIC0xMT4sIG1pbiA8dHlwZSAtMTE+LCBzZWMgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDI3PikgTWFyc2hhbEpTT04gKCkgKD8gPHR5cGUgNDYgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDI3PikgVVRDICgpIDx0eXBlIDI3PjsKIGZ1bmMgKHQgPHR5cGUgMjc+KSAudGltZS5kYXRlIChmdWxsIDx0eXBlIC0xNT4pICh5ZWFyIDx0eXBlIC0xMT4sIG1vbnRoIDx0eXBlIDQxPiwgZGF5IDx0eXBlIC0xMT4sIHlkYXkgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDI3PikgSXNaZXJvICgpIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDI3PikgQmVmb3JlICh1IDx0eXBlIDI3PikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBTZWNvbmQgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBNaW51dGUgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBSb3VuZCAoZCA8dHlwZSA0NyAidGltZS5EdXJhdGlvbiIgPHR5cGUgLTQ+CiBmdW5jIChkIDx0eXBlIDQ3PikgU2Vjb25kcyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSA0Nz4pIE1pbnV0ZXMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgNDc+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGQgPHR5cGUgNDc+KSBIb3VycyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSA0Nz4pIE5hbm9zZWNvbmRzICgpIDx0eXBlIC00PjsKPikgPHR5cGUgMjc+OwogZnVuYyAodCA8dHlwZSAyNz4pIFN1YiAodSA8dHlwZSAyNz4pIDx0eXBlIDQ3PjsKIGZ1bmMgKHQgPHR5cGUgNDM+KSBVbm1hcnNoYWxUZXh0IChkYXRhIDx0eXBlIDQ4IFtdIDx0eXBlIC0yMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAyNz4pIFVuaXggKCkgPHR5cGUgLTQ+OwogZnVuYyAodCA8dHlwZSAyNz4pIFRydW5jYXRlIChkIDx0eXBlIDQ3PikgPHR5cGUgMjc+OwogZnVuYyAodCA8dHlwZSAyNz4pIEFkZCAoZCA8dHlwZSA0Nz4pIDx0eXBlIDI3PjsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBHb2JFbmNvZGUgKCkgKD8gPHR5cGUgNDkgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDI3PikgTG9jYXRpb24gKCkgPHR5cGUgMjk+OwogZnVuYyAodCA8dHlwZSA0Mz4pIFVubWFyc2hhbEJpbmFyeSAoZGF0YSA8dHlwZSA1MCBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBJU09XZWVrICgpICh5ZWFyIDx0eXBlIC0xMT4sIHdlZWsgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDI3PikgLnRpbWUubG9jYWJzICgpIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+LCBhYnMgPHR5cGUgLTg+KTsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBZZWFyICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDI3PikgWWVhckRheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA0Mz4pIFVubWFyc2hhbEpTT04gKGRhdGEgPHR5cGUgNTEgW10gPHR5cGUgLTIwPj4pIChlcnIgPHR5cGUgLTE5Pik7Cj4sIGZpbGUgPHR5cGUgLTE2PiwgbGluZSA8dHlwZSAtMTE+KTsKIGZ1bmMgKGwgPHR5cGUgMTk+KSBGYXRhbGxuICh2IC4uLjx0eXBlIDUyIGludGVyZmFjZSB7IH0+KTsKIGZ1bmMgKGwgPHR5cGUgMTk+KSBTZXRGbGFncyAoZmxhZyA8dHlwZSAtMTE+KTsKIGZ1bmMgKGwgPHR5cGUgMTk+KSBQYW5pY2xuICh2IC4uLjx0eXBlIDUzIGludGVyZmFjZSB7IH0+KTsKIGZ1bmMgKGwgPHR5cGUgMTk+KSBGbGFncyAoKSA8dHlwZSAtMTE+OwogZnVuYyAobCA8dHlwZSAxOT4pIEZhdGFsZiAoZm9ybWF0IDx0eXBlIC0xNj4sIHYgLi4uPHR5cGUgNTQgaW50ZXJmYWNlIHsgfT4pOwogZnVuYyAobCA8dHlwZSAxOT4pIFBhbmljICh2IC4uLjx0eXBlIDU1IGludGVyZmFjZSB7IH0+KTsKPj4sID8gPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMT47CnR5cGUgPHR5cGUgMz47CmNoZWNrc3VtIDc0MkVGNkI5QTRGNDVENEUyQUJCMUM1RkMxMjZEQ0EzQzM1RjIyOUU7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAApiAAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAA2iAAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAAhAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAAAgIQAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=