f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAACkCAAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHJhbmQ7CnBrZ3BhdGggbWF0aC9yYW5kOwpwcmlvcml0eSAzOwppbXBvcnQgbWF0aCBtYXRoICJtYXRoIjsKaW1wb3J0IHN5bmMgc3luYyAic3luYyI7CmluaXQgcmFuZCBtYXRoX3JhbmQuLmltcG9ydCAzIG1hdGggbWF0aC4uaW1wb3J0IDEgcnVudGltZSBydW50aW1lLi5pbXBvcnQgMSBzeW5jIHN5bmMuLmltcG9ydCAyOwpmdW5jIEV4cEZsb2F0NjQgKCkgPHR5cGUgLTEwPjsKZnVuYyBGbG9hdDMyICgpIDx0eXBlIC05PjsKZnVuYyBGbG9hdDY0ICgpIDx0eXBlIC0xMD47CmZ1bmMgSW50ICgpIDx0eXBlIC0xMT47CmZ1bmMgSW50MzEgKCkgPHR5cGUgLTM+OwpmdW5jIEludDMxbiAobiA8dHlwZSAtMz4pIDx0eXBlIC0zPjsKZnVuYyBJbnQ2MyAoKSA8dHlwZSAtND47CmZ1bmMgSW50NjNuIChuIDx0eXBlIC00PikgPHR5cGUgLTQ+OwpmdW5jIEludG4gKG4gPHR5cGUgLTExPikgPHR5cGUgLTExPjsKZnVuYyBOZXcgKHNyYyA8dHlwZSAxICJTb3VyY2UiIDx0eXBlIDIgaW50ZXJmYWNlIHsgSW50NjMgKCkgPHR5cGUgLTQ+OyBTZWVkIChzZWVkIDx0eXBlIC00Pik7IH0+PikgPHR5cGUgMyAqPHR5cGUgNCAiUmFuZCIgPHR5cGUgNSBzdHJ1Y3QgeyAubWF0aC9yYW5kLnNyYyA8dHlwZSAxPjsgfT4KIGZ1bmMgKHIgPHR5cGUgNiAqPHR5cGUgND4+KSBFeHBGbG9hdDY0ICgpIDx0eXBlIC0xMD47CiBmdW5jIChyIDx0eXBlIDcgKjx0eXBlIDQ+PikgTm9ybUZsb2F0NjQgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKHIgPHR5cGUgOCAqPHR5cGUgND4+KSBTZWVkIChzZWVkIDx0eXBlIC00Pik7CiBmdW5jIChyIDx0eXBlIDg+KSBJbnQ2MyAoKSA8dHlwZSAtND47CiBmdW5jIChyIDx0eXBlIDg+KSBVaW50MzIgKCkgPHR5cGUgLTc+OwogZnVuYyAociA8dHlwZSA4PikgSW50MzEgKCkgPHR5cGUgLTM+OwogZnVuYyAociA8dHlwZSA4PikgSW50ICgpIDx0eXBlIC0xMT47CiBmdW5jIChyIDx0eXBlIDg+KSBJbnQ2M24gKG4gPHR5cGUgLTQ+KSA8dHlwZSAtND47CiBmdW5jIChyIDx0eXBlIDg+KSBJbnQzMW4gKG4gPHR5cGUgLTM+KSA8dHlwZSAtMz47CiBmdW5jIChyIDx0eXBlIDg+KSBJbnRuIChuIDx0eXBlIC0xMT4pIDx0eXBlIC0xMT47CiBmdW5jIChyIDx0eXBlIDg+KSBGbG9hdDY0ICgpIDx0eXBlIC0xMD47CiBmdW5jIChyIDx0eXBlIDg+KSBGbG9hdDMyICgpIDx0eXBlIC05PjsKIGZ1bmMgKHIgPHR5cGUgOD4pIFBlcm0gKG4gPHR5cGUgLTExPikgPHR5cGUgOSBbXSA8dHlwZSAtMTE+PjsKPj47CmZ1bmMgTmV3U291cmNlIChzZWVkIDx0eXBlIC00PikgPHR5cGUgMT47CmZ1bmMgTmV3WmlwZiAociA8dHlwZSAzPiwgcyA8dHlwZSAtMTA+LCB2IDx0eXBlIC0xMD4sIGltYXggPHR5cGUgLTg+KSA8dHlwZSAxMCAqPHR5cGUgMTEgIlppcGYiIDx0eXBlIDEyIHN0cnVjdCB7IC5tYXRoL3JhbmQuciA8dHlwZSAzPjsgLm1hdGgvcmFuZC5pbWF4IDx0eXBlIC0xMD47IC5tYXRoL3JhbmQudiA8dHlwZSAtMTA+OyAubWF0aC9yYW5kLnEgPHR5cGUgLTEwPjsgLm1hdGgvcmFuZC5zIDx0eXBlIC0xMD47IC5tYXRoL3JhbmQub25lbWludXNRIDx0eXBlIC0xMD47IC5tYXRoL3JhbmQub25lbWludXNRaW52IDx0eXBlIC0xMD47IC5tYXRoL3JhbmQuaHhtIDx0eXBlIC0xMD47IC5tYXRoL3JhbmQuaHgwbWludXNIeG0gPHR5cGUgLTEwPjsgfT4KIGZ1bmMgKHogPHR5cGUgMTMgKjx0eXBlIDExPj4pIC5tYXRoL3JhbmQuaCAoeCA8dHlwZSAtMTA+KSA8dHlwZSAtMTA+OwogZnVuYyAoeiA8dHlwZSAxMz4pIC5tYXRoL3JhbmQuaGludiAoeCA8dHlwZSAtMTA+KSA8dHlwZSAtMTA+OwogZnVuYyAoeiA8dHlwZSAxMz4pIFVpbnQ2NCAoKSA8dHlwZSAtOD47Cj4+OwpmdW5jIE5vcm1GbG9hdDY0ICgpIDx0eXBlIC0xMD47CmZ1bmMgUGVybSAobiA8dHlwZSAtMTE+KSA8dHlwZSAxNCBbXSA8dHlwZSAtMTE+PjsKdHlwZSA8dHlwZSA0PjsKZnVuYyBTZWVkIChzZWVkIDx0eXBlIC00Pik7CnR5cGUgPHR5cGUgMT47CmZ1bmMgVWludDMyICgpIDx0eXBlIC03PjsKdHlwZSA8dHlwZSAxMT47CmNoZWNrc3VtIEY4RUNGMUJCMDM3NDNCMjdGODJCMzZBRDI5NkE2NEFDOEM3RTlEQUY7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAACUIAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAAFkIAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAACACAAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAoAgAAAEAAAAAAAAAAAAAAAEAAAAAAAAA