f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAABQCgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHBsYW45b2JqOwpwa2dwYXRoIGRlYnVnL3BsYW45b2JqOwpwcmlvcml0eSA3OwppbXBvcnQgYmluYXJ5IGVuY29kaW5nL2JpbmFyeSAiZW5jb2RpbmcvYmluYXJ5IjsKaW1wb3J0IGVycm9ycyBlcnJvcnMgImVycm9ycyI7CmltcG9ydCBmbXQgZm10ICJmbXQiOwppbXBvcnQgaW8gaW8gImlvIjsKaW1wb3J0IG9zIG9zICJvcyI7CmluaXQgbWF0aCBtYXRoLi5pbXBvcnQgMSBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHN0cmNvbnYgc3RyY29udi4uaW1wb3J0IDIgc3luYyBzeW5jLi5pbXBvcnQgMiBpbyBpby4uaW1wb3J0IDMgcmVmbGVjdCByZWZsZWN0Li5pbXBvcnQgMyBzeXNjYWxsIHN5c2NhbGwuLmltcG9ydCAzIGJpbmFyeSBlbmNvZGluZ19iaW5hcnkuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgb3Mgb3MuLmltcG9ydCA1IGZtdCBmbXQuLmltcG9ydCA2Owp0eXBlIDx0eXBlIDEgIkZpbGUiIDx0eXBlIDIgc3RydWN0IHsgPyA8dHlwZSAzICJGaWxlSGVhZGVyIiA8dHlwZSA0IHN0cnVjdCB7IE1hZ2ljIDx0eXBlIC03PjsgQnNzIDx0eXBlIC03PjsgRW50cnkgPHR5cGUgLTg+OyBQdHJTaXplIDx0eXBlIC0xMT47IExvYWRBZGRyZXNzIDx0eXBlIC04PjsgSGRyU2l6ZSA8dHlwZSAtOD47IH0+PjsgU2VjdGlvbnMgPHR5cGUgNSBbXSA8dHlwZSA2ICo8dHlwZSA3ICJTZWN0aW9uIiA8dHlwZSA4IHN0cnVjdCB7ID8gPHR5cGUgOSAiU2VjdGlvbkhlYWRlciIgPHR5cGUgMTAgc3RydWN0IHsgTmFtZSA8dHlwZSAtMTY+OyBTaXplIDx0eXBlIC03PjsgT2Zmc2V0IDx0eXBlIC03PjsgfT4+OyA/IDx0eXBlIDExICJpby5SZWFkZXJBdCIgPHR5cGUgMTIgaW50ZXJmYWNlIHsgUmVhZEF0IChwIDx0eXBlIDEzIFtdIDx0eXBlIC0yMD4+LCBvZmYgPHR5cGUgLTQ+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PjsgLmRlYnVnL3BsYW45b2JqLnNyIDx0eXBlIDE0ICo8dHlwZSAxNSAiaW8uU2VjdGlvblJlYWRlciIgPHR5cGUgMTYgc3RydWN0IHsgLmlvLnIgPHR5cGUgMTE+OyAuaW8uYmFzZSA8dHlwZSAtND47IC5pby5vZmYgPHR5cGUgLTQ+OyAuaW8ubGltaXQgPHR5cGUgLTQ+OyB9PgogZnVuYyAocyA8dHlwZSAxNyAqPHR5cGUgMTU+PikgU2VlayAob2Zmc2V0IDx0eXBlIC00Piwgd2hlbmNlIDx0eXBlIC0xMT4pICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHMgPHR5cGUgMTc+KSBSZWFkQXQgKHAgPHR5cGUgMTggW10gPHR5cGUgLTIwPj4sIG9mZiA8dHlwZSAtND4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHMgPHR5cGUgMTc+KSBSZWFkIChwIDx0eXBlIDE5IFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChzIDx0eXBlIDE3PikgU2l6ZSAoKSA8dHlwZSAtND47Cj4+OyB9PgogZnVuYyAocyA8dHlwZSAyMCAqPHR5cGUgNz4+KSBEYXRhICgpICg/IDx0eXBlIDIxIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAocyA8dHlwZSAyMD4pIE9wZW4gKCkgPHR5cGUgMjIgImlvLlJlYWRTZWVrZXIiIDx0eXBlIDIzIGludGVyZmFjZSB7ID8gPHR5cGUgMjQgImlvLlJlYWRlciIgPHR5cGUgMjUgaW50ZXJmYWNlIHsgUmVhZCAocCA8dHlwZSAyNiBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj47ID8gPHR5cGUgMjcgImlvLlNlZWtlciIgPHR5cGUgMjggaW50ZXJmYWNlIHsgU2VlayAob2Zmc2V0IDx0eXBlIC00Piwgd2hlbmNlIDx0eXBlIC0xMT4pICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsgfT4+OyB9Pj47Cj4+PjsgLmRlYnVnL3BsYW45b2JqLmNsb3NlciA8dHlwZSAyOSAiaW8uQ2xvc2VyIiA8dHlwZSAzMCBpbnRlcmZhY2UgeyBDbG9zZSAoKSA8dHlwZSAtMTk+OyB9Pj47IH0+CiBmdW5jIChmIDx0eXBlIDMxICo8dHlwZSAxPj4pIENsb3NlICgpIDx0eXBlIC0xOT47CiBmdW5jIChmIDx0eXBlIDMxPikgU3ltYm9scyAoKSAoPyA8dHlwZSAzMiBbXSA8dHlwZSAzMyAiU3ltIiA8dHlwZSAzNCBzdHJ1Y3QgeyBWYWx1ZSA8dHlwZSAtOD47IFR5cGUgPHR5cGUgLTIxPjsgTmFtZSA8dHlwZSAtMTY+OyB9Pj4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZiA8dHlwZSAzMT4pIFNlY3Rpb24gKG5hbWUgPHR5cGUgLTE2PikgPHR5cGUgMjA+Owo+Owp0eXBlIDx0eXBlIDM+Owpjb25zdCBNYWdpYzM4NiA9IDQ5MSA7CmNvbnN0IE1hZ2ljNjQgPSAzMjc2OCA7CmNvbnN0IE1hZ2ljQU1ENjQgPSAzNTQ3OSA7CmNvbnN0IE1hZ2ljQVJNID0gMTYwNyA7CmZ1bmMgTmV3RmlsZSAociA8dHlwZSAxMT4pICg/IDx0eXBlIDMxPiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBPcGVuIChuYW1lIDx0eXBlIC0xNj4pICg/IDx0eXBlIDMxPiwgPyA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSA3PjsKdHlwZSA8dHlwZSA5PjsKdHlwZSA8dHlwZSAzMz47CmNoZWNrc3VtIEFENkEzRERCNDQwNDNDODY0NDNEQ0E0OEQxNEM1NDk3QzgwMjk3Q0Q7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAAzwkAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAAwoAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAACwKAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAABMCgAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=