f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAB8BwAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGJhc2UzMjsKcGtncGF0aCBlbmNvZGluZy9iYXNlMzI7CnByaW9yaXR5IDU7CmltcG9ydCBieXRlcyBieXRlcyAiYnl0ZXMiOwppbXBvcnQgaW8gaW8gImlvIjsKaW1wb3J0IHN0cmNvbnYgc3RyY29udiAic3RyY29udiI7CmltcG9ydCBzdHJpbmdzIHN0cmluZ3MgInN0cmluZ3MiOwppbml0IGJhc2UzMiBlbmNvZGluZ19iYXNlMzIuLmltcG9ydCA1IG1hdGggbWF0aC4uaW1wb3J0IDEgcnVudGltZSBydW50aW1lLi5pbXBvcnQgMSB1bmljb2RlIHVuaWNvZGUuLmltcG9ydCAxIHN0cmNvbnYgc3RyY29udi4uaW1wb3J0IDIgc3luYyBzeW5jLi5pbXBvcnQgMiBpbyBpby4uaW1wb3J0IDMgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0Owp0eXBlIDx0eXBlIDEgIkNvcnJ1cHRJbnB1dEVycm9yIiA8dHlwZSAtND4KIGZ1bmMgKGUgPHR5cGUgMT4pIEVycm9yICgpIDx0eXBlIC0xNj47Cj47CnR5cGUgPHR5cGUgMiAiRW5jb2RpbmciIDx0eXBlIDMgc3RydWN0IHsgLmVuY29kaW5nL2Jhc2UzMi5lbmNvZGUgPHR5cGUgLTE2PjsgLmVuY29kaW5nL2Jhc2UzMi5kZWNvZGVNYXAgPHR5cGUgNCBbMjU2IF0gPHR5cGUgLTIwPj47IH0+CiBmdW5jIChlbmMgPHR5cGUgNSAqPHR5cGUgMj4+KSBFbmNvZGUgKGRzdCA8dHlwZSA2IFtdIDx0eXBlIC0yMD4+LCBzcmMgPHR5cGUgNj4pOwogZnVuYyAoZW5jIDx0eXBlIDU+KSBFbmNvZGVUb1N0cmluZyAoc3JjIDx0eXBlIDcgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xNj47CiBmdW5jIChlbmMgPHR5cGUgNT4pIEVuY29kZWRMZW4gKG4gPHR5cGUgLTExPikgPHR5cGUgLTExPjsKIGZ1bmMgKGVuYyA8dHlwZSA1PikgLmVuY29kaW5nL2Jhc2UzMi5kZWNvZGUgKGRzdCA8dHlwZSA4IFtdIDx0eXBlIC0yMD4+LCBzcmMgPHR5cGUgOD4pIChuIDx0eXBlIC0xMT4sIGVuZCA8dHlwZSAtMTU+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChlbmMgPHR5cGUgNT4pIERlY29kZSAoZHN0IDx0eXBlIDkgW10gPHR5cGUgLTIwPj4sIHNyYyA8dHlwZSA5PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoZW5jIDx0eXBlIDU+KSBEZWNvZGVTdHJpbmcgKHMgPHR5cGUgLTE2PikgKD8gPHR5cGUgMTAgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChlbmMgPHR5cGUgNT4pIERlY29kZWRMZW4gKG4gPHR5cGUgLTExPikgPHR5cGUgLTExPjsKPjsKdmFyIEhleEVuY29kaW5nIDx0eXBlIDU+OwpmdW5jIE5ld0RlY29kZXIgKGVuYyA8dHlwZSA1PiwgciA8dHlwZSAxMSAiaW8uUmVhZGVyIiA8dHlwZSAxMiBpbnRlcmZhY2UgeyBSZWFkIChwIDx0eXBlIDEzIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PikgPHR5cGUgMTE+OwpmdW5jIE5ld0VuY29kZXIgKGVuYyA8dHlwZSA1PiwgdyA8dHlwZSAxNCAiaW8uV3JpdGVyIiA8dHlwZSAxNSBpbnRlcmZhY2UgeyBXcml0ZSAocCA8dHlwZSAxNiBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj4pIDx0eXBlIDE3ICJpby5Xcml0ZUNsb3NlciIgPHR5cGUgMTggaW50ZXJmYWNlIHsgPyA8dHlwZSAxND47ID8gPHR5cGUgMTkgImlvLkNsb3NlciIgPHR5cGUgMjAgaW50ZXJmYWNlIHsgQ2xvc2UgKCkgPHR5cGUgLTE5PjsgfT4+OyB9Pj47CmZ1bmMgTmV3RW5jb2RpbmcgKGVuY29kZXIgPHR5cGUgLTE2PikgPHR5cGUgNT47CnZhciBTdGRFbmNvZGluZyA8dHlwZSA1PjsKY2hlY2tzdW0gMDYxRkU3NkE0RjRBQTg0Nzc2NzFERTZGQkU1NDczRDlEQUZGQzQ4MTsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAAAAAAAAAAADQAAAD7BgAAAAAAAAAAAAABAAAAAAAAABEAAAADAAAAAAAAAAAAAAAvBwAAJgAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAWAcAACAAAAAEAAAAAgAAAAQAAAAQAAAACQAAAAMAAAAAAAAAAAAAAHgHAAABAAAAAAAAAAAAAAABAAAAAAAAAA==