f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAkFgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGlvOwpwa2dwYXRoIGlvOwpwcmlvcml0eSAzOwppbXBvcnQgZXJyb3JzIGVycm9ycyAiZXJyb3JzIjsKaW1wb3J0IHN5bmMgc3luYyAic3luYyI7CmluaXQgaW8gaW8uLmltcG9ydCAzIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgc3luYyBzeW5jLi5pbXBvcnQgMjsKdHlwZSA8dHlwZSAxICJCeXRlUmVhZGVyIiA8dHlwZSAyIGludGVyZmFjZSB7IFJlYWRCeXRlICgpIChjIDx0eXBlIC0yMD4sIGVyciA8dHlwZSAtMTk+KTsgfT4+Owp0eXBlIDx0eXBlIDMgIkJ5dGVTY2FubmVyIiA8dHlwZSA0IGludGVyZmFjZSB7ID8gPHR5cGUgMT47IFVucmVhZEJ5dGUgKCkgPHR5cGUgLTE5PjsgfT4+Owp0eXBlIDx0eXBlIDUgIkJ5dGVXcml0ZXIiIDx0eXBlIDYgaW50ZXJmYWNlIHsgV3JpdGVCeXRlIChjIDx0eXBlIC0yMD4pIDx0eXBlIC0xOT47IH0+PjsKdHlwZSA8dHlwZSA3ICJDbG9zZXIiIDx0eXBlIDggaW50ZXJmYWNlIHsgQ2xvc2UgKCkgPHR5cGUgLTE5PjsgfT4+OwpmdW5jIENvcHkgKGRzdCA8dHlwZSA5ICJXcml0ZXIiIDx0eXBlIDEwIGludGVyZmFjZSB7IFdyaXRlIChwIDx0eXBlIDExIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IH0+Piwgc3JjIDx0eXBlIDEyICJSZWFkZXIiIDx0eXBlIDEzIGludGVyZmFjZSB7IFJlYWQgKHAgPHR5cGUgMTQgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+KSAod3JpdHRlbiA8dHlwZSAtND4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBDb3B5TiAoZHN0IDx0eXBlIDk+LCBzcmMgPHR5cGUgMTI+LCBuIDx0eXBlIC00PikgKHdyaXR0ZW4gPHR5cGUgLTQ+LCBlcnIgPHR5cGUgLTE5Pik7CnZhciBFT0YgPHR5cGUgLTE5PjsKdmFyIEVyckNsb3NlZFBpcGUgPHR5cGUgLTE5PjsKdmFyIEVyck5vUHJvZ3Jlc3MgPHR5cGUgLTE5PjsKdmFyIEVyclNob3J0QnVmZmVyIDx0eXBlIC0xOT47CnZhciBFcnJTaG9ydFdyaXRlIDx0eXBlIC0xOT47CnZhciBFcnJVbmV4cGVjdGVkRU9GIDx0eXBlIC0xOT47CmZ1bmMgTGltaXRSZWFkZXIgKHIgPHR5cGUgMTI+LCBuIDx0eXBlIC00PikgPHR5cGUgMTI+Owp0eXBlIDx0eXBlIDE1ICJMaW1pdGVkUmVhZGVyIiA8dHlwZSAxNiBzdHJ1Y3QgeyBSIDx0eXBlIDEyPjsgTiA8dHlwZSAtND47IH0+CiBmdW5jIChsIDx0eXBlIDE3ICo8dHlwZSAxNT4+KSBSZWFkIChwIDx0eXBlIDE4IFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7Cj47CmZ1bmMgTXVsdGlSZWFkZXIgKHJlYWRlcnMgLi4uPHR5cGUgMTI+KSA8dHlwZSAxMj47CmZ1bmMgTXVsdGlXcml0ZXIgKHdyaXRlcnMgLi4uPHR5cGUgOT4pIDx0eXBlIDk+OwpmdW5jIE5ld1NlY3Rpb25SZWFkZXIgKHIgPHR5cGUgMTkgIlJlYWRlckF0IiA8dHlwZSAyMCBpbnRlcmZhY2UgeyBSZWFkQXQgKHAgPHR5cGUgMjEgW10gPHR5cGUgLTIwPj4sIG9mZiA8dHlwZSAtND4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+LCBvZmYgPHR5cGUgLTQ+LCBuIDx0eXBlIC00PikgPHR5cGUgMjIgKjx0eXBlIDIzICJTZWN0aW9uUmVhZGVyIiA8dHlwZSAyNCBzdHJ1Y3QgeyAuaW8uciA8dHlwZSAxOT47IC5pby5iYXNlIDx0eXBlIC00PjsgLmlvLm9mZiA8dHlwZSAtND47IC5pby5saW1pdCA8dHlwZSAtND47IH0+CiBmdW5jIChzIDx0eXBlIDI1ICo8dHlwZSAyMz4+KSBSZWFkIChwIDx0eXBlIDI2IFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChzIDx0eXBlIDI1PikgU2VlayAob2Zmc2V0IDx0eXBlIC00Piwgd2hlbmNlIDx0eXBlIC0xMT4pICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHMgPHR5cGUgMjU+KSBSZWFkQXQgKHAgPHR5cGUgMjcgW10gPHR5cGUgLTIwPj4sIG9mZiA8dHlwZSAtND4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHMgPHR5cGUgMjU+KSBTaXplICgpIDx0eXBlIC00PjsKPj47CmZ1bmMgUGlwZSAoKSAoPyA8dHlwZSAyOCAqPHR5cGUgMjkgIlBpcGVSZWFkZXIiIDx0eXBlIDMwIHN0cnVjdCB7IC5pby5wIDx0eXBlIDMxICo8dHlwZSAzMiAiLmlvLnBpcGUiIDx0eXBlIDMzIHN0cnVjdCB7IC5pby5ybCA8dHlwZSAzNCAic3luYy5NdXRleCIgPHR5cGUgMzUgc3RydWN0IHsgLnN5bmMuc3RhdGUgPHR5cGUgLTM+OyAuc3luYy5zZW1hIDx0eXBlIC03PjsgfT4KIGZ1bmMgKG0gPHR5cGUgMzYgKjx0eXBlIDM0Pj4pIFVubG9jayAoKTsKIGZ1bmMgKG0gPHR5cGUgMzY+KSBMb2NrICgpOwo+OyAuaW8ud2wgPHR5cGUgMzQ+OyAuaW8ubCA8dHlwZSAzND47IC5pby5kYXRhIDx0eXBlIDM3IFtdIDx0eXBlIC0yMD4+OyAuaW8ucndhaXQgPHR5cGUgMzggInN5bmMuQ29uZCIgPHR5cGUgMzkgc3RydWN0IHsgTCA8dHlwZSA0MCAic3luYy5Mb2NrZXIiIDx0eXBlIDQxIGludGVyZmFjZSB7IExvY2sgKCk7IFVubG9jayAoKTsgfT4+OyAuc3luYy5zZW1hIDx0eXBlIDQyICIuc3luYy5zeW5jU2VtYSIgPHR5cGUgNDMgc3RydWN0IHsgLnN5bmMubG9jayA8dHlwZSAtMTM+OyAuc3luYy5oZWFkIDx0eXBlIDQ0ICJ1bnNhZmUuUG9pbnRlciIgInVuc2FmZSIgPHR5cGUgNDUgKmFueT4+OyAuc3luYy50YWlsIDx0eXBlIDQ0PjsgfT4+OyAuc3luYy53YWl0ZXJzIDx0eXBlIC03PjsgLnN5bmMuY2hlY2tlciA8dHlwZSA0NiAiLnN5bmMuY29weUNoZWNrZXIiIDx0eXBlIC0xMz4KIGZ1bmMgKGMgPHR5cGUgNDcgKjx0eXBlIDQ2Pj4pIC5zeW5jLmNoZWNrICgpOwo+OyB9PgogZnVuYyAoYyA8dHlwZSA0OCAqPHR5cGUgMzg+PikgV2FpdCAoKTsKIGZ1bmMgKGMgPHR5cGUgNDg+KSBTaWduYWwgKCk7CiBmdW5jIChjIDx0eXBlIDQ4PikgQnJvYWRjYXN0ICgpOwogZnVuYyAoYyA8dHlwZSA0OD4pIC5zeW5jLnNpZ25hbEltcGwgKGFsbCA8dHlwZSAtMTU+KTsKPjsgLmlvLnd3YWl0IDx0eXBlIDM4PjsgLmlvLnJlcnIgPHR5cGUgLTE5PjsgLmlvLndlcnIgPHR5cGUgLTE5PjsgfT4KIGZ1bmMgKHAgPHR5cGUgNDkgKjx0eXBlIDMyPj4pIC5pby5yZWFkIChiIDx0eXBlIDUwIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChwIDx0eXBlIDQ5PikgLmlvLndyaXRlIChiIDx0eXBlIDUxIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChwIDx0eXBlIDQ5PikgLmlvLnJjbG9zZSAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAocCA8dHlwZSA0OT4pIC5pby53Y2xvc2UgKGVyciA8dHlwZSAtMTk+KTsKPj47IH0+CiBmdW5jIChyIDx0eXBlIDUyICo8dHlwZSAyOT4+KSBSZWFkIChkYXRhIDx0eXBlIDUzIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChyIDx0eXBlIDUyPikgQ2xvc2UgKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKHIgPHR5cGUgNTI+KSBDbG9zZVdpdGhFcnJvciAoZXJyIDx0eXBlIC0xOT4pIDx0eXBlIC0xOT47Cj4+LCA/IDx0eXBlIDU0ICo8dHlwZSA1NSAiUGlwZVdyaXRlciIgPHR5cGUgNTYgc3RydWN0IHsgLmlvLnAgPHR5cGUgMzE+OyB9PgogZnVuYyAodyA8dHlwZSA1NyAqPHR5cGUgNTU+PikgV3JpdGUgKGRhdGEgPHR5cGUgNTggW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHcgPHR5cGUgNTc+KSBDbG9zZSAoKSA8dHlwZSAtMTk+OwogZnVuYyAodyA8dHlwZSA1Nz4pIENsb3NlV2l0aEVycm9yIChlcnIgPHR5cGUgLTE5PikgPHR5cGUgLTE5PjsKPj4pOwp0eXBlIDx0eXBlIDI5PjsKdHlwZSA8dHlwZSA1NT47CmZ1bmMgUmVhZEF0TGVhc3QgKHIgPHR5cGUgMTI+LCBidWYgPHR5cGUgNTkgW10gPHR5cGUgLTIwPj4sIG1pbiA8dHlwZSAtMTE+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgNjAgIlJlYWRDbG9zZXIiIDx0eXBlIDYxIGludGVyZmFjZSB7ID8gPHR5cGUgMTI+OyA/IDx0eXBlIDc+OyB9Pj47CmZ1bmMgUmVhZEZ1bGwgKHIgPHR5cGUgMTI+LCBidWYgPHR5cGUgNjIgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSA2MyAiUmVhZFNlZWtlciIgPHR5cGUgNjQgaW50ZXJmYWNlIHsgPyA8dHlwZSAxMj47ID8gPHR5cGUgNjUgIlNlZWtlciIgPHR5cGUgNjYgaW50ZXJmYWNlIHsgU2VlayAob2Zmc2V0IDx0eXBlIC00Piwgd2hlbmNlIDx0eXBlIC0xMT4pICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsgfT4+OyB9Pj47CnR5cGUgPHR5cGUgNjcgIlJlYWRXcml0ZUNsb3NlciIgPHR5cGUgNjggaW50ZXJmYWNlIHsgPyA8dHlwZSAxMj47ID8gPHR5cGUgOT47ID8gPHR5cGUgNz47IH0+PjsKdHlwZSA8dHlwZSA2OSAiUmVhZFdyaXRlU2Vla2VyIiA8dHlwZSA3MCBpbnRlcmZhY2UgeyA/IDx0eXBlIDEyPjsgPyA8dHlwZSA5PjsgPyA8dHlwZSA2NT47IH0+PjsKdHlwZSA8dHlwZSA3MSAiUmVhZFdyaXRlciIgPHR5cGUgNzIgaW50ZXJmYWNlIHsgPyA8dHlwZSAxMj47ID8gPHR5cGUgOT47IH0+PjsKdHlwZSA8dHlwZSAxMj47CnR5cGUgPHR5cGUgMTk+Owp0eXBlIDx0eXBlIDczICJSZWFkZXJGcm9tIiA8dHlwZSA3NCBpbnRlcmZhY2UgeyBSZWFkRnJvbSAociA8dHlwZSAxMj4pIChuIDx0eXBlIC00PiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj47CnR5cGUgPHR5cGUgNzUgIlJ1bmVSZWFkZXIiIDx0eXBlIDc2IGludGVyZmFjZSB7IFJlYWRSdW5lICgpIChyIDx0eXBlIC0yMT4sIHNpemUgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj47CnR5cGUgPHR5cGUgNzcgIlJ1bmVTY2FubmVyIiA8dHlwZSA3OCBpbnRlcmZhY2UgeyA/IDx0eXBlIDc1PjsgVW5yZWFkUnVuZSAoKSA8dHlwZSAtMTk+OyB9Pj47CnR5cGUgPHR5cGUgMjM+Owp0eXBlIDx0eXBlIDY1PjsKZnVuYyBUZWVSZWFkZXIgKHIgPHR5cGUgMTI+LCB3IDx0eXBlIDk+KSA8dHlwZSAxMj47CnR5cGUgPHR5cGUgNzkgIldyaXRlQ2xvc2VyIiA8dHlwZSA4MCBpbnRlcmZhY2UgeyA/IDx0eXBlIDk+OyA/IDx0eXBlIDc+OyB9Pj47CnR5cGUgPHR5cGUgODEgIldyaXRlU2Vla2VyIiA8dHlwZSA4MiBpbnRlcmZhY2UgeyA/IDx0eXBlIDk+OyA/IDx0eXBlIDY1PjsgfT4+OwpmdW5jIFdyaXRlU3RyaW5nICh3IDx0eXBlIDk+LCBzIDx0eXBlIC0xNj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSA5PjsKdHlwZSA8dHlwZSA4MyAiV3JpdGVyQXQiIDx0eXBlIDg0IGludGVyZmFjZSB7IFdyaXRlQXQgKHAgPHR5cGUgODUgW10gPHR5cGUgLTIwPj4sIG9mZiA8dHlwZSAtND4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+Owp0eXBlIDx0eXBlIDg2ICJXcml0ZXJUbyIgPHR5cGUgODcgaW50ZXJmYWNlIHsgV3JpdGVUbyAodyA8dHlwZSA5PikgKG4gPHR5cGUgLTQ+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PjsKY2hlY2tzdW0gNTYxMUJGQzk2MzJGMTBBNkFBN0I5RjMwMTY5NUU2RDY5QUY2MURCOTsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAKQVAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAANgVAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAAAFgAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAIBYAAAEAAAAAAAAAAAAAAAEAAAAAAAAA