
AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations.
Alternatively, create a Compose service, go to Advanced → Import from Base64, and paste this payload:
ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBuZ2lueDpcbiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlXG4gICAgaW1hZ2U6IG5naW54XG4gICAgdm9sdW1lczpcbiAgICAgIC0gLi4vZmlsZXMvbmdpbngvbmdpbnguY29uZjovZXRjL25naW54L25naW54LmNvbmZcblxuICBtaW5pbzpcbiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlXG4gICAgaW1hZ2U6IG1pbmlvL21pbmlvXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICAtIE1JTklPX0JST1dTRVJfUkVESVJFQ1RfVVJMPSR7QVBQRkxPV1lfQkFTRV9VUkx9L21pbmlvXG4gICAgICAtIE1JTklPX1JPT1RfVVNFUj0ke0FQUEZMT1dZX1MzX0FDQ0VTU19LRVk6LW1pbmlvYWRtaW59XG4gICAgICAtIE1JTklPX1JPT1RfUEFTU1dPUkQ9JHtBUFBGTE9XWV9TM19TRUNSRVRfS0VZOi1taW5pb2FkbWlufVxuICAgIGNvbW1hbmQ6IHNlcnZlciAvZGF0YSAtLWNvbnNvbGUtYWRkcmVzcyBcIjo5MDAxXCJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBtaW5pb19kYXRhOi9kYXRhXG5cbiAgcG9zdGdyZXM6XG4gICAgcmVzdGFydDogb24tZmFpbHVyZVxuICAgIGltYWdlOiBwZ3ZlY3Rvci9wZ3ZlY3RvcjpwZzE2XG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICAtIFBPU1RHUkVTX1VTRVI9JHtQT1NUR1JFU19VU0VSOi1wb3N0Z3Jlc31cbiAgICAgIC0gUE9TVEdSRVNfREI9JHtQT1NUR1JFU19EQjotcG9zdGdyZXN9XG4gICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPSR7UE9TVEdSRVNfUEFTU1dPUkQ6LXBhc3N3b3JkfVxuICAgICAgLSBQT1NUR1JFU19IT1NUPSR7UE9TVEdSRVNfSE9TVDotcG9zdGdyZXN9XG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJwZ19pc3JlYWR5XCIsIFwiLVVcIiwgXCIke1BPU1RHUkVTX1VTRVJ9XCIsIFwiLWRcIiwgXCIke1BPU1RHUkVTX0RCfVwiXVxuICAgICAgaW50ZXJ2YWw6IDVzXG4gICAgICB0aW1lb3V0OiA1c1xuICAgICAgcmV0cmllczogMTJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBwb3N0Z3Jlc19kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YVxuICAgICAgLSAuL2ZpbGVzL3ZvbHVtZXMvcG9zdGdyZXMvOi9kb2NrZXItZW50cnlwb2ludC1pbml0ZGIuZC9cblxuICByZWRpczpcbiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlXG4gICAgaW1hZ2U6IHJlZGlzXG5cbiAgZ290cnVlOlxuICAgIHJlc3RhcnQ6IG9uLWZhaWx1cmVcbiAgICBpbWFnZTogYXBwZmxvd3lpbmMvZ290cnVlOiR7R09UUlVFX1ZFUlNJT046LWxhdGVzdH1cbiAgICBkZXBlbmRzX29uOlxuICAgICAgcG9zdGdyZXM6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJjdXJsXCIsIFwiLS1mYWlsXCIsIFwiaHR0cDovLzEyNy4wLjAuMTo5OTk5L2hlYWx0aFwiXVxuICAgICAgaW50ZXJ2YWw6IDVzXG4gICAgICB0aW1lb3V0OiA1c1xuICAgICAgcmV0cmllczogMTJcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgICMgQWRtaW4gQ29uZmlndXJhdGlvblxuICAgICAgLSBHT1RSVUVfQURNSU5fRU1BSUw9JHtHT1RSVUVfQURNSU5fRU1BSUx9XG4gICAgICAtIEdPVFJVRV9BRE1JTl9QQVNTV09SRD0ke0dPVFJVRV9BRE1JTl9QQVNTV09SRH1cbiAgICAgIC0gR09UUlVFX0RJU0FCTEVfU0lHTlVQPSR7R09UUlVFX0RJU0FCTEVfU0lHTlVQOi1mYWxzZX1cbiAgICAgIFxuICAgICAgIyBTaXRlIENvbmZpZ3VyYXRpb25cbiAgICAgIC0gR09UUlVFX1NJVEVfVVJMPWFwcGZsb3d5LWZsdXR0ZXI6Ly9cbiAgICAgIC0gR09UUlVFX1VSSV9BTExPV19MSVNUPSR7R09UUlVFX1VSSV9BTExPV19MSVNUOi0qKn1cbiAgICAgIC0gQVBJX0VYVEVSTkFMX1VSTD0ke0FQSV9FWFRFUk5BTF9VUkx9XG4gICAgICBcbiAgICAgICMgSldUIENvbmZpZ3VyYXRpb25cbiAgICAgIC0gR09UUlVFX0pXVF9TRUNSRVQ9JHtHT1RSVUVfSldUX1NFQ1JFVH1cbiAgICAgIC0gR09UUlVFX0pXVF9FWFA9JHtHT1RSVUVfSldUX0VYUDotNzIwMH1cbiAgICAgIC0gR09UUlVFX0pXVF9BRE1JTl9HUk9VUF9OQU1FPXN1cGFiYXNlX2FkbWluXG4gICAgICBcbiAgICAgICMgRGF0YWJhc2UgQ29uZmlndXJhdGlvblxuICAgICAgLSBHT1RSVUVfREJfRFJJVkVSPXBvc3RncmVzXG4gICAgICAtIERBVEFCQVNFX1VSTD0ke0dPVFJVRV9EQVRBQkFTRV9VUkx9XG4gICAgICAtIFBPUlQ9OTk5OVxuICAgICAgXG4gICAgICAjIEVtYWlsIENvbmZpZ3VyYXRpb25cbiAgICAgIC0gR09UUlVFX1NNVFBfSE9TVD0ke0dPVFJVRV9TTVRQX0hPU1R9XG4gICAgICAtIEdPVFJVRV9TTVRQX1BPUlQ9JHtHT1RSVUVfU01UUF9QT1JUfVxuICAgICAgLSBHT1RSVUVfU01UUF9VU0VSPSR7R09UUlVFX1NNVFBfVVNFUn1cbiAgICAgIC0gR09UUlVFX1NNVFBfUEFTUz0ke0dPVFJVRV9TTVRQX1BBU1N9XG4gICAgICAtIEdPVFJVRV9TTVRQX0FETUlOX0VNQUlMPSR7R09UUlVFX1NNVFBfQURNSU5fRU1BSUx9XG4gICAgICAtIEdPVFJVRV9TTVRQX01BWF9GUkVRVUVOQ1k9JHtHT1RSVUVfU01UUF9NQVhfRlJFUVVFTkNZOi0xbnN9XG4gICAgICAtIEdPVFJVRV9SQVRFX0xJTUlUX0VNQUlMX1NFTlQ9JHtHT1RSVUVfUkFURV9MSU1JVF9FTUFJTF9TRU5UOi0xMDB9XG4gICAgICAtIEdPVFJVRV9NQUlMRVJfQVVUT0NPTkZJUk09JHtHT1RSVUVfTUFJTEVSX0FVVE9DT05GSVJNOi10cnVlfVxuICAgICAgXG4gICAgICAjIEVtYWlsIFRlbXBsYXRlc1xuICAgICAgLSBHT1RSVUVfTUFJTEVSX1VSTFBBVEhTX0NPTkZJUk1BVElPTj0vZ290cnVlL3ZlcmlmeVxuICAgICAgLSBHT1RSVUVfTUFJTEVSX1VSTFBBVEhTX0lOVklURT0vZ290cnVlL3ZlcmlmeVxuICAgICAgLSBHT1RSVUVfTUFJTEVSX1VSTFBBVEhTX1JFQ09WRVJZPS9nb3RydWUvdmVyaWZ5XG4gICAgICAtIEdPVFJVRV9NQUlMRVJfVVJMUEFUSFNfRU1BSUxfQ0hBTkdFPS9nb3RydWUvdmVyaWZ5XG4gICAgICAtIEdPVFJVRV9NQUlMRVJfVEVNUExBVEVTX01BR0lDX0xJTks9JHtHT1RSVUVfTUFJTEVSX1RFTVBMQVRFU19NQUdJQ19MSU5LfVxuICAgICAgXG4gICAgICAjIE9BdXRoIFByb3ZpZGVyc1xuICAgICAgLSBHT1RSVUVfRVhURVJOQUxfR09PR0xFX0VOQUJMRUQ9JHtHT1RSVUVfRVhURVJOQUxfR09PR0xFX0VOQUJMRUQ6LWZhbHNlfVxuICAgICAgLSBHT1RSVUVfRVhURVJOQUxfR09PR0xFX0NMSUVOVF9JRD0ke0dPVFJVRV9FWFRFUk5BTF9HT09HTEVfQ0xJRU5UX0lEfVxuICAgICAgLSBHT1RSVUVfRVhURVJOQUxfR09PR0xFX1NFQ1JFVD0ke0dPVFJVRV9FWFRFUk5BTF9HT09HTEVfU0VDUkVUfVxuICAgICAgLSBHT1RSVUVfRVhURVJOQUxfR09PR0xFX1JFRElSRUNUX1VSST0ke0dPVFJVRV9FWFRFUk5BTF9HT09HTEVfUkVESVJFQ1RfVVJJfVxuICAgICAgXG4gICAgICAtIEdPVFJVRV9FWFRFUk5BTF9HSVRIVUJfRU5BQkxFRD0ke0dPVFJVRV9FWFRFUk5BTF9HSVRIVUJfRU5BQkxFRDotZmFsc2V9XG4gICAgICAtIEdPVFJVRV9FWFRFUk5BTF9HSVRIVUJfQ0xJRU5UX0lEPSR7R09UUlVFX0VYVEVSTkFMX0dJVEhVQl9DTElFTlRfSUR9XG4gICAgICAtIEdPVFJVRV9FWFRFUk5BTF9HSVRIVUJfU0VDUkVUPSR7R09UUlVFX0VYVEVSTkFMX0dJVEhVQl9TRUNSRVR9XG4gICAgICAtIEdPVFJVRV9FWFRFUk5BTF9HSVRIVUJfUkVESVJFQ1RfVVJJPSR7R09UUlVFX0VYVEVSTkFMX0dJVEhVQl9SRURJUkVDVF9VUkl9XG4gICAgICBcbiAgICAgIC0gR09UUlVFX0VYVEVSTkFMX0RJU0NPUkRfRU5BQkxFRD0ke0dPVFJVRV9FWFRFUk5BTF9ESVNDT1JEX0VOQUJMRUQ6LWZhbHNlfVxuICAgICAgLSBHT1RSVUVfRVhURVJOQUxfRElTQ09SRF9DTElFTlRfSUQ9JHtHT1RSVUVfRVhURVJOQUxfRElTQ09SRF9DTElFTlRfSUR9XG4gICAgICAtIEdPVFJVRV9FWFRFUk5BTF9ESVNDT1JEX1NFQ1JFVD0ke0dPVFJVRV9FWFRFUk5BTF9ESVNDT1JEX1NFQ1JFVH1cbiAgICAgIC0gR09UUlVFX0VYVEVSTkFMX0RJU0NPUkRfUkVESVJFQ1RfVVJJPSR7R09UUlVFX0VYVEVSTkFMX0RJU0NPUkRfUkVESVJFQ1RfVVJJfVxuICAgICAgXG4gICAgICAjIFNBTUwgQ29uZmlndXJhdGlvblxuICAgICAgLSBHT1RSVUVfU0FNTF9FTkFCTEVEPSR7R09UUlVFX1NBTUxfRU5BQkxFRDotZmFsc2V9XG4gICAgICAtIEdPVFJVRV9TQU1MX1BSSVZBVEVfS0VZPSR7R09UUlVFX1NBTUxfUFJJVkFURV9LRVl9XG5cbiAgYXBwZmxvd3lfY2xvdWQ6XG4gICAgcmVzdGFydDogb24tZmFpbHVyZVxuICAgIGltYWdlOiBhcHBmbG93eWluYy9hcHBmbG93eV9jbG91ZDoke0FQUEZMT1dZX0NMT1VEX1ZFUlNJT046LWxhdGVzdH1cbiAgICBkZXBlbmRzX29uOlxuICAgICAgZ290cnVlOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgIGVudmlyb25tZW50OlxuICAgICAgIyBDb3JlIENvbmZpZ3VyYXRpb25cbiAgICAgIC0gUlVTVF9MT0c9JHtSVVNUX0xPRzotaW5mb31cbiAgICAgIC0gQVBQRkxPV1lfRU5WSVJPTk1FTlQ9cHJvZHVjdGlvblxuICAgICAgLSBBUFBGTE9XWV9EQVRBQkFTRV9VUkw9JHtBUFBGTE9XWV9EQVRBQkFTRV9VUkx9XG4gICAgICAtIEFQUEZMT1dZX1JFRElTX1VSST0ke0FQUEZMT1dZX1JFRElTX1VSSX1cbiAgICAgIC0gQVBQRkxPV1lfV0VCX1VSTD0ke0FQUEZMT1dZX1dFQl9VUkx9XG4gICAgICBcbiAgICAgICMgQXV0aGVudGljYXRpb24gQ29uZmlndXJhdGlvblxuICAgICAgLSBBUFBGTE9XWV9HT1RSVUVfSldUX1NFQ1JFVD0ke0dPVFJVRV9KV1RfU0VDUkVUfVxuICAgICAgLSBBUFBGTE9XWV9HT1RSVUVfSldUX0VYUD0ke0dPVFJVRV9KV1RfRVhQOi03MjAwfVxuICAgICAgLSBBUFBGTE9XWV9HT1RSVUVfQkFTRV9VUkw9JHtBUFBGTE9XWV9HT1RSVUVfQkFTRV9VUkx9XG4gICAgICBcbiAgICAgICMgRmlsZSBTdG9yYWdlIENvbmZpZ3VyYXRpb25cbiAgICAgIC0gQVBQRkxPV1lfUzNfQ1JFQVRFX0JVQ0tFVD0ke0FQUEZMT1dZX1MzX0NSRUFURV9CVUNLRVQ6LXRydWV9XG4gICAgICAtIEFQUEZMT1dZX1MzX1VTRV9NSU5JTz0ke0FQUEZMT1dZX1MzX1VTRV9NSU5JTzotdHJ1ZX1cbiAgICAgIC0gQVBQRkxPV1lfUzNfTUlOSU9fVVJMPSR7QVBQRkxPV1lfUzNfTUlOSU9fVVJMfVxuICAgICAgLSBBUFBGTE9XWV9TM19BQ0NFU1NfS0VZPSR7QVBQRkxPV1lfUzNfQUNDRVNTX0tFWX1cbiAgICAgIC0gQVBQRkxPV1lfUzNfU0VDUkVUX0tFWT0ke0FQUEZMT1dZX1MzX1NFQ1JFVF9LRVl9XG4gICAgICAtIEFQUEZMT1dZX1MzX0JVQ0tFVD0ke0FQUEZMT1dZX1MzX0JVQ0tFVDotYXBwZmxvd3l9XG4gICAgICAtIEFQUEZMT1dZX1MzX1JFR0lPTj0ke0FQUEZMT1dZX1MzX1JFR0lPTjotdXMtZWFzdC0xfVxuICAgICAgLSBBUFBGTE9XWV9TM19QUkVTSUdORURfVVJMX0VORFBPSU5UPSR7QVBQRkxPV1lfUzNfUFJFU0lHTkVEX1VSTF9FTkRQT0lOVH1cbiAgICAgIFxuICAgICAgIyBFbWFpbCBDb25maWd1cmF0aW9uXG4gICAgICAtIEFQUEZMT1dZX01BSUxFUl9TTVRQX0hPU1Q9JHtBUFBGTE9XWV9NQUlMRVJfU01UUF9IT1NUfVxuICAgICAgLSBBUFBGTE9XWV9NQUlMRVJfU01UUF9QT1JUPSR7QVBQRkxPV1lfTUFJTEVSX1NNVFBfUE9SVH1cbiAgICAgIC0gQVBQRkxPV1lfTUFJTEVSX1NNVFBfVVNFUk5BTUU9JHtBUFBGTE9XWV9NQUlMRVJfU01UUF9VU0VSTkFNRX1cbiAgICAgIC0gQVBQRkxPV1lfTUFJTEVSX1NNVFBfRU1BSUw9JHtBUFBGTE9XWV9NQUlMRVJfU01UUF9FTUFJTH1cbiAgICAgIC0gQVBQRkxPV1lfTUFJTEVSX1NNVFBfUEFTU1dPUkQ9JHtBUFBGTE9XWV9NQUlMRVJfU01UUF9QQVNTV09SRH1cbiAgICAgIC0gQVBQRkxPV1lfTUFJTEVSX1NNVFBfVExTX0tJTkQ9JHtBUFBGTE9XWV9NQUlMRVJfU01UUF9UTFNfS0lORDotd3JhcHBlcn1cbiAgICAgIFxuICAgICAgIyBBY2Nlc3MgQ29udHJvbCBhbmQgUGVyZm9ybWFuY2VcbiAgICAgIC0gQVBQRkxPV1lfQUNDRVNTX0NPTlRST0w9JHtBUFBGTE9XWV9BQ0NFU1NfQ09OVFJPTDotdHJ1ZX1cbiAgICAgIC0gQVBQRkxPV1lfREFUQUJBU0VfTUFYX0NPTk5FQ1RJT05TPSR7QVBQRkxPV1lfREFUQUJBU0VfTUFYX0NPTk5FQ1RJT05TOi00MH1cbiAgICAgIC0gQVBQRkxPV1lfV0VCU09DS0VUX01BSUxCT1hfU0laRT0ke0FQUEZMT1dZX1dFQlNPQ0tFVF9NQUlMQk9YX1NJWkU6LTYwMDB9XG4gICAgICBcbiAgICAgICMgQUkgQ29uZmlndXJhdGlvblxuICAgICAgLSBBSV9TRVJWRVJfSE9TVD0ke0FJX1NFUlZFUl9IT1NUOi1haX1cbiAgICAgIC0gQUlfU0VSVkVSX1BPUlQ9JHtBSV9TRVJWRVJfUE9SVDotNTAwMX1cbiAgICAgIC0gQUlfT1BFTkFJX0FQSV9LRVk9JHtBSV9PUEVOQUlfQVBJX0tFWX1cblxuICBhZG1pbl9mcm9udGVuZDpcbiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlXG4gICAgaW1hZ2U6IGFwcGZsb3d5aW5jL2FkbWluX2Zyb250ZW5kOiR7QVBQRkxPV1lfQURNSU5fRlJPTlRFTkRfVkVSU0lPTjotbGF0ZXN0fVxuICAgIGRlcGVuZHNfb246XG4gICAgICBnb3RydWU6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgICBhcHBmbG93eV9jbG91ZDpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX3N0YXJ0ZWRcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIC0gUlVTVF9MT0c9JHtSVVNUX0xPRzotaW5mb31cbiAgICAgIC0gQURNSU5fRlJPTlRFTkRfUkVESVNfVVJMPSR7QURNSU5fRlJPTlRFTkRfUkVESVNfVVJMfVxuICAgICAgLSBBRE1JTl9GUk9OVEVORF9HT1RSVUVfVVJMPSR7QURNSU5fRlJPTlRFTkRfR09UUlVFX1VSTH1cbiAgICAgIC0gQURNSU5fRlJPTlRFTkRfQVBQRkxPV1lfQ0xPVURfVVJMPSR7QURNSU5fRlJPTlRFTkRfQVBQRkxPV1lfQ0xPVURfVVJMfVxuICAgICAgLSBBRE1JTl9GUk9OVEVORF9QQVRIX1BSRUZJWD0ke0FETUlOX0ZST05URU5EX1BBVEhfUFJFRklYOi0vY29uc29sZX1cblxuICBhaTpcbiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlXG4gICAgaW1hZ2U6IGFwcGZsb3d5aW5jL2FwcGZsb3d5X2FpOiR7QVBQRkxPV1lfQUlfVkVSU0lPTjotbGF0ZXN0fVxuICAgIGRlcGVuZHNfb246XG4gICAgICBwb3N0Z3JlczpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGFwcGZsb3d5X2Nsb3VkOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2Vfc3RhcnRlZFxuICAgIGhlYWx0aGNoZWNrOlxuICAgICAgdGVzdDogW1wiQ01EXCIsIFwiY3VybFwiLCBcIi1mXCIsIFwiaHR0cDovL2xvY2FsaG9zdDo1MDAxL2hlYWx0aFwiXVxuICAgICAgaW50ZXJ2YWw6IDMwc1xuICAgICAgdGltZW91dDogMTBzXG4gICAgICByZXRyaWVzOiAzXG4gICAgICBzdGFydF9wZXJpb2Q6IDQwc1xuICAgIGVudmlyb25tZW50OlxuICAgICAgIyBDb3JlIEFJIENvbmZpZ3VyYXRpb25cbiAgICAgIC0gQUlfU0VSVkVSX1BPUlQ9JHtBSV9TRVJWRVJfUE9SVDotNTAwMX1cbiAgICAgIC0gT1BFTkFJX0FQSV9LRVk9JHtBSV9PUEVOQUlfQVBJX0tFWX1cbiAgICAgIC0gREVGQVVMVF9BSV9NT0RFTD0ke0RFRkFVTFRfQUlfTU9ERUw6LWdwdC00by1taW5pfVxuICAgICAgLSBERUZBVUxUX0FJX0NPTVBMRVRJT05fTU9ERUw9JHtERUZBVUxUX0FJX0NPTVBMRVRJT05fTU9ERUw6LWdwdC00by1taW5pfVxuICAgICAgXG4gICAgICAjIEF6dXJlIE9wZW5BSSAob3B0aW9uYWwpXG4gICAgICAtIEFaVVJFX09QRU5BSV9BUElfS0VZPSR7QVpVUkVfT1BFTkFJX0FQSV9LRVl9XG4gICAgICAtIEFaVVJFX09QRU5BSV9FTkRQT0lOVD0ke0FaVVJFX09QRU5BSV9FTkRQT0lOVH1cbiAgICAgIC0gQVpVUkVfT1BFTkFJX0FQSV9WRVJTSU9OPSR7QVpVUkVfT1BFTkFJX0FQSV9WRVJTSU9OfVxuICAgICAgXG4gICAgICAjIERhdGFiYXNlIGFuZCBDYWNoZVxuICAgICAgLSBBSV9EQVRBQkFTRV9VUkw9JHtBUFBGTE9XWV9EQVRBQkFTRV9VUkx9XG4gICAgICAtIEFJX1JFRElTX1VSTD0ke0FQUEZMT1dZX1JFRElTX1VSSX1cbiAgICAgIFxuICAgICAgIyBGaWxlIFN0b3JhZ2UgZm9yIEFJXG4gICAgICAtIEFQUEZMT1dZX1MzX0FDQ0VTU19LRVk9JHtBUFBGTE9XWV9TM19BQ0NFU1NfS0VZfVxuICAgICAgLSBBUFBGTE9XWV9TM19TRUNSRVRfS0VZPSR7QVBQRkxPV1lfUzNfU0VDUkVUX0tFWX1cbiAgICAgIC0gQVBQRkxPV1lfUzNfQlVDS0VUPSR7QVBQRkxPV1lfUzNfQlVDS0VUOi1hcHBmbG93eX1cbiAgICAgIC0gQVBQRkxPV1lfUzNfUkVHSU9OPSR7QVBQRkxPV1lfUzNfUkVHSU9OOi11cy1lYXN0LTF9XG4gICAgICAtIEFJX1VTRV9NSU5JTz0ke0FQUEZMT1dZX1MzX1VTRV9NSU5JTzotdHJ1ZX1cbiAgICAgIC0gQUlfTUlOSU9fVVJMPSR7QVBQRkxPV1lfUzNfTUlOSU9fVVJMfVxuICAgICAgXG4gICAgICAjIEludGVncmF0aW9uXG4gICAgICAtIEFJX0FQUEZMT1dZX0hPU1Q9JHtBUFBGTE9XWV9CQVNFX1VSTH1cbiAgICAgIC0gQVBQRkxPV1lfR09UUlVFX0pXVF9TRUNSRVQ9JHtHT1RSVUVfSldUX1NFQ1JFVH1cblxuICBhcHBmbG93eV93b3JrZXI6XG4gICAgcmVzdGFydDogb24tZmFpbHVyZVxuICAgIGltYWdlOiBhcHBmbG93eWluYy9hcHBmbG93eV93b3JrZXI6JHtBUFBGTE9XWV9XT1JLRVJfVkVSU0lPTjotbGF0ZXN0fVxuICAgIGRlcGVuZHNfb246XG4gICAgICBwb3N0Z3JlczpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgICMgQ29yZSBDb25maWd1cmF0aW9uXG4gICAgICAtIFJVU1RfTE9HPSR7UlVTVF9MT0c6LWluZm99XG4gICAgICAtIEFQUEZMT1dZX0VOVklST05NRU5UPXByb2R1Y3Rpb25cbiAgICAgIC0gQVBQRkxPV1lfV09SS0VSX1JFRElTX1VSTD0ke0FQUEZMT1dZX1dPUktFUl9SRURJU19VUkx9XG4gICAgICAtIEFQUEZMT1dZX1dPUktFUl9FTlZJUk9OTUVOVD1wcm9kdWN0aW9uXG4gICAgICAtIEFQUEZMT1dZX1dPUktFUl9EQVRBQkFTRV9VUkw9JHtBUFBGTE9XWV9XT1JLRVJfREFUQUJBU0VfVVJMfVxuICAgICAgLSBBUFBGTE9XWV9XT1JLRVJfREFUQUJBU0VfTkFNRT0ke0FQUEZMT1dZX1dPUktFUl9EQVRBQkFTRV9OQU1FfVxuICAgICAgLSBBUFBGTE9XWV9XT1JLRVJfSU1QT1JUX1RJQ0tfSU5URVJWQUw9JHtBUFBGTE9XWV9XT1JLRVJfSU1QT1JUX1RJQ0tfSU5URVJWQUw6LTMwfVxuICAgICAgXG4gICAgICAjIEZpbGUgU3RvcmFnZSBDb25maWd1cmF0aW9uXG4gICAgICAtIEFQUEZMT1dZX1MzX1VTRV9NSU5JTz0ke0FQUEZMT1dZX1MzX1VTRV9NSU5JTzotdHJ1ZX1cbiAgICAgIC0gQVBQRkxPV1lfUzNfTUlOSU9fVVJMPSR7QVBQRkxPV1lfUzNfTUlOSU9fVVJMfVxuICAgICAgLSBBUFBGTE9XWV9TM19BQ0NFU1NfS0VZPSR7QVBQRkxPV1lfUzNfQUNDRVNTX0tFWX1cbiAgICAgIC0gQVBQRkxPV1lfUzNfU0VDUkVUX0tFWT0ke0FQUEZMT1dZX1MzX1NFQ1JFVF9LRVl9XG4gICAgICAtIEFQUEZMT1dZX1MzX0JVQ0tFVD0ke0FQUEZMT1dZX1MzX0JVQ0tFVDotYXBwZmxvd3l9XG4gICAgICAtIEFQUEZMT1dZX1MzX1JFR0lPTj0ke0FQUEZMT1dZX1MzX1JFR0lPTjotdXMtZWFzdC0xfVxuICAgICAgXG4gICAgICAjIEVtYWlsIENvbmZpZ3VyYXRpb25cbiAgICAgIC0gQVBQRkxPV1lfTUFJTEVSX1NNVFBfSE9TVD0ke0FQUEZMT1dZX01BSUxFUl9TTVRQX0hPU1R9XG4gICAgICAtIEFQUEZMT1dZX01BSUxFUl9TTVRQX1BPUlQ9JHtBUFBGTE9XWV9NQUlMRVJfU01UUF9QT1JUfVxuICAgICAgLSBBUFBGTE9XWV9NQUlMRVJfU01UUF9VU0VSTkFNRT0ke0FQUEZMT1dZX01BSUxFUl9TTVRQX1VTRVJOQU1FfVxuICAgICAgLSBBUFBGTE9XWV9NQUlMRVJfU01UUF9FTUFJTD0ke0FQUEZMT1dZX01BSUxFUl9TTVRQX0VNQUlMfVxuICAgICAgLSBBUFBGTE9XWV9NQUlMRVJfU01UUF9QQVNTV09SRD0ke0FQUEZMT1dZX01BSUxFUl9TTVRQX1BBU1NXT1JEfVxuICAgICAgLSBBUFBGTE9XWV9NQUlMRVJfU01UUF9UTFNfS0lORD0ke0FQUEZMT1dZX01BSUxFUl9TTVRQX1RMU19LSU5EOi13cmFwcGVyfVxuXG4gIGFwcGZsb3d5X3dlYjpcbiAgICByZXN0YXJ0OiBvbi1mYWlsdXJlXG4gICAgaW1hZ2U6IGFwcGZsb3d5aW5jL2FwcGZsb3d5X3dlYjoke0FQUEZMT1dZX1dFQl9WRVJTSU9OOi1sYXRlc3R9XG4gICAgZGVwZW5kc19vbjpcbiAgICAgIC0gYXBwZmxvd3lfY2xvdWRcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIC0gQUZfQkFTRV9VUkw9JHtBUFBGTE9XWV9CQVNFX1VSTH1cbiAgICAgIC0gQUZfR09UUlVFX1VSTD0ke0FQUEZMT1dZX0JBU0VfVVJMfS9nb3RydWVcbiAgICAgIC0gQUZfV1NfVjJfVVJMPSR7QVBQRkxPV1lfV0VCU09DS0VUX0JBU0VfVVJMfVxuXG52b2x1bWVzOlxuICBwb3N0Z3Jlc19kYXRhOlxuICBtaW5pb19kYXRhOiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5cbltjb25maWddXG5lbnYgPSBbXG4gICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIyDwn4yQIENPUkUgRE9NQUlOIENPTkZJR1VSQVRJT05cbiAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBcIkZRRE49JHttYWluX2RvbWFpbn1cIixcbiAgXCJTQ0hFTUU9aHR0cHNcIixcbiAgXCJXU19TQ0hFTUU9d3NzXCIsXG4gIFwiQVBQRkxPV1lfQkFTRV9VUkw9aHR0cHM6Ly8ke21haW5fZG9tYWlufVwiLFxuICBcIkFQUEZMT1dZX1dFQlNPQ0tFVF9CQVNFX1VSTD13c3M6Ly8ke21haW5fZG9tYWlufS93cy92MlwiLFxuICBcIkFQUEZMT1dZX1dFQl9VUkw9aHR0cHM6Ly8ke21haW5fZG9tYWlufVwiLFxuICBcIkFQSV9FWFRFUk5BTF9VUkw9aHR0cHM6Ly8ke21haW5fZG9tYWlufS9nb3RydWVcIixcbiAgXCJUWj1VVENcIixcblxuICAjIEFkbWluIENvbmZpZ3VyYXRpb25cbiAgXCJHT1RSVUVfQURNSU5fRU1BSUw9JHtlbWFpbH1cIixcbiAgXCJHT1RSVUVfQURNSU5fUEFTU1dPUkQ9JHtwYXNzd29yZDoxNn1cIixcbiAgXCJHT1RSVUVfRElTQUJMRV9TSUdOVVA9ZmFsc2VcIixcblxuICAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICMg8J+XhO+4jyBEQVRBQkFTRSAmIENBQ0hFIENPTkZJR1VSQVRJT05cbiAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBcIlBPU1RHUkVTX0hPU1Q9cG9zdGdyZXNcIixcbiAgXCJQT1NUR1JFU19VU0VSPWFwcGZsb3d5XCIsXG4gIFwiUE9TVEdSRVNfUEFTU1dPUkQ9JHtwYXNzd29yZDo2NH1cIixcbiAgXCJQT1NUR1JFU19QT1JUPTU0MzJcIixcbiAgXCJQT1NUR1JFU19EQj1hcHBmbG93eVwiLFxuICBcIlJFRElTX0hPU1Q9cmVkaXNcIixcbiAgXCJSRURJU19QT1JUPTYzNzlcIixcblxuICAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICMg8J+UkCBHT1RSVUUgQVVUSEVOVElDQVRJT04gQ09ORklHVVJBVElPTlxuICAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgIyBKV1QgQ29uZmlndXJhdGlvblxuICBcIkdPVFJVRV9KV1RfU0VDUkVUPSR7cGFzc3dvcmQ6NjR9XCIsXG4gIFwiR09UUlVFX0pXVF9FWFA9NzIwMFwiLFxuICBcIkdPVFJVRV9KV1RfQURNSU5fR1JPVVBfTkFNRT1zdXBhYmFzZV9hZG1pblwiLFxuXG4gICMgRGF0YWJhc2UgQ29uZmlndXJhdGlvblxuICBcIkdPVFJVRV9EQl9EUklWRVI9cG9zdGdyZXNcIixcbiAgXCJHT1RSVUVfREFUQUJBU0VfVVJMPXBvc3RncmVzOi8vYXBwZmxvd3k6JHtQT1NUR1JFU19QQVNTV09SRH1AcG9zdGdyZXM6NTQzMi9hcHBmbG93eT9zZWFyY2hfcGF0aD1hdXRoXCIsXG4gIFwiUE9SVD05OTk5XCIsXG5cbiAgIyBTaXRlIENvbmZpZ3VyYXRpb25cbiAgXCJHT1RSVUVfU0lURV9VUkw9YXBwZmxvd3ktZmx1dHRlcjovL1wiLFxuICBcIkdPVFJVRV9VUklfQUxMT1dfTElTVD0qKlwiLFxuXG4gICMgRW1haWwgQ29uZmlndXJhdGlvbiAoU01UUCAtIENvbmZpZ3VyZSBmb3IgcHJvZHVjdGlvbilcbiAgXCJHT1RSVUVfU01UUF9IT1NUPVwiLFxuICBcIkdPVFJVRV9TTVRQX1BPUlQ9NDY1XCIsXG4gIFwiR09UUlVFX1NNVFBfVVNFUj1cIixcbiAgXCJHT1RSVUVfU01UUF9QQVNTPVwiLFxuICBcIkdPVFJVRV9TTVRQX0FETUlOX0VNQUlMPSR7R09UUlVFX0FETUlOX0VNQUlMfVwiLFxuICBcIkdPVFJVRV9TTVRQX01BWF9GUkVRVUVOQ1k9MW5zXCIsXG4gIFwiR09UUlVFX1JBVEVfTElNSVRfRU1BSUxfU0VOVD0xMDBcIixcbiAgXCJHT1RSVUVfTUFJTEVSX0FVVE9DT05GSVJNPXRydWVcIixcblxuICAjIEVtYWlsIFRlbXBsYXRlc1xuICBcIkdPVFJVRV9NQUlMRVJfVVJMUEFUSFNfQ09ORklSTUFUSU9OPS9nb3RydWUvdmVyaWZ5XCIsXG4gIFwiR09UUlVFX01BSUxFUl9VUkxQQVRIU19JTlZJVEU9L2dvdHJ1ZS92ZXJpZnlcIixcbiAgXCJHT1RSVUVfTUFJTEVSX1VSTFBBVEhTX1JFQ09WRVJZPS9nb3RydWUvdmVyaWZ5XCIsXG4gIFwiR09UUlVFX01BSUxFUl9VUkxQQVRIU19FTUFJTF9DSEFOR0U9L2dvdHJ1ZS92ZXJpZnlcIixcbiAgXCJHT1RSVUVfTUFJTEVSX1RFTVBMQVRFU19NQUdJQ19MSU5LPVwiLFxuXG4gICMgT0F1dGggUHJvdmlkZXJzIChDb25maWd1cmUgYXMgbmVlZGVkKVxuICBcIkdPVFJVRV9FWFRFUk5BTF9HT09HTEVfRU5BQkxFRD1mYWxzZVwiLFxuICBcIkdPVFJVRV9FWFRFUk5BTF9HT09HTEVfQ0xJRU5UX0lEPVwiLFxuICBcIkdPVFJVRV9FWFRFUk5BTF9HT09HTEVfU0VDUkVUPVwiLFxuICBcIkdPVFJVRV9FWFRFUk5BTF9HT09HTEVfUkVESVJFQ1RfVVJJPWh0dHBzOi8vJHttYWluX2RvbWFpbn0vZ290cnVlL2NhbGxiYWNrXCIsXG5cbiAgXCJHT1RSVUVfRVhURVJOQUxfR0lUSFVCX0VOQUJMRUQ9ZmFsc2VcIixcbiAgXCJHT1RSVUVfRVhURVJOQUxfR0lUSFVCX0NMSUVOVF9JRD1cIixcbiAgXCJHT1RSVUVfRVhURVJOQUxfR0lUSFVCX1NFQ1JFVD1cIixcbiAgXCJHT1RSVUVfRVhURVJOQUxfR0lUSFVCX1JFRElSRUNUX1VSST1odHRwczovLyR7bWFpbl9kb21haW59L2dvdHJ1ZS9jYWxsYmFja1wiLFxuXG4gIFwiR09UUlVFX0VYVEVSTkFMX0RJU0NPUkRfRU5BQkxFRD1mYWxzZVwiLFxuICBcIkdPVFJVRV9FWFRFUk5BTF9ESVNDT1JEX0NMSUVOVF9JRD1cIixcbiAgXCJHT1RSVUVfRVhURVJOQUxfRElTQ09SRF9TRUNSRVQ9XCIsXG4gIFwiR09UUlVFX0VYVEVSTkFMX0RJU0NPUkRfUkVESVJFQ1RfVVJJPWh0dHBzOi8vJHttYWluX2RvbWFpbn0vZ290cnVlL2NhbGxiYWNrXCIsXG5cbiAgIyBTQU1MIENvbmZpZ3VyYXRpb25cbiAgXCJHT1RSVUVfU0FNTF9FTkFCTEVEPWZhbHNlXCIsXG4gIFwiR09UUlVFX1NBTUxfUFJJVkFURV9LRVk9XCIsXG5cbiAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAjIOKYge+4jyBBUFBGTE9XWSBDTE9VRCBTRVJWSUNFIENPTkZJR1VSQVRJT05cbiAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAjIENvcmUgQ29uZmlndXJhdGlvblxuICBcIlJVU1RfTE9HPWluZm9cIixcbiAgXCJBUFBGTE9XWV9FTlZJUk9OTUVOVD1wcm9kdWN0aW9uXCIsXG4gIFwiQVBQRkxPV1lfREFUQUJBU0VfVVJMPXBvc3RncmVzOi8vYXBwZmxvd3k6JHtQT1NUR1JFU19QQVNTV09SRH1AcG9zdGdyZXM6NTQzMi9hcHBmbG93eVwiLFxuICBcIkFQUEZMT1dZX1JFRElTX1VSST1yZWRpczovL3JlZGlzOjYzNzlcIixcblxuICAjIEF1dGhlbnRpY2F0aW9uIEludGVncmF0aW9uXG4gIFwiQVBQRkxPV1lfR09UUlVFX0pXVF9TRUNSRVQ9JHtHT1RSVUVfSldUX1NFQ1JFVH1cIixcbiAgXCJBUFBGTE9XWV9HT1RSVUVfSldUX0VYUD03MjAwXCIsXG4gIFwiQVBQRkxPV1lfR09UUlVFX0JBU0VfVVJMPWh0dHA6Ly9nb3RydWU6OTk5OVwiLFxuXG4gICMgQWNjZXNzIENvbnRyb2wgYW5kIFBlcmZvcm1hbmNlXG4gIFwiQVBQRkxPV1lfQUNDRVNTX0NPTlRST0w9dHJ1ZVwiLFxuICBcIkFQUEZMT1dZX0RBVEFCQVNFX01BWF9DT05ORUNUSU9OUz00MFwiLFxuICBcIkFQUEZMT1dZX1dFQlNPQ0tFVF9NQUlMQk9YX1NJWkU9NjAwMFwiLFxuXG4gICMgRW1haWwgQ29uZmlndXJhdGlvbiAoU01UUClcbiAgXCJBUFBGTE9XWV9NQUlMRVJfU01UUF9IT1NUPVwiLFxuICBcIkFQUEZMT1dZX01BSUxFUl9TTVRQX1BPUlQ9NDY1XCIsXG4gIFwiQVBQRkxPV1lfTUFJTEVSX1NNVFBfVVNFUk5BTUU9XCIsXG4gIFwiQVBQRkxPV1lfTUFJTEVSX1NNVFBfRU1BSUw9XCIsXG4gIFwiQVBQRkxPV1lfTUFJTEVSX1NNVFBfUEFTU1dPUkQ9XCIsXG4gIFwiQVBQRkxPV1lfTUFJTEVSX1NNVFBfVExTX0tJTkQ9d3JhcHBlclwiLFxuXG4gICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIyDwn5K+IEZJTEUgU1RPUkFHRSBDT05GSUdVUkFUSU9OIChNaW5JTy9TMylcbiAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAjIE1pbklPIENvbmZpZ3VyYXRpb25cbiAgXCJNSU5JT19IT1NUPW1pbmlvXCIsXG4gIFwiTUlOSU9fUE9SVD05MDAwXCIsXG4gIFwiQVBQRkxPV1lfUzNfVVNFX01JTklPPXRydWVcIixcbiAgXCJBUFBGTE9XWV9TM19DUkVBVEVfQlVDS0VUPXRydWVcIixcbiAgXCJBUFBGTE9XWV9TM19NSU5JT19VUkw9aHR0cDovL21pbmlvOjkwMDBcIixcblxuICAjIFN0b3JhZ2UgQ3JlZGVudGlhbHNcbiAgXCJBUFBGTE9XWV9TM19BQ0NFU1NfS0VZPSR7cGFzc3dvcmQ6MTZ9XCIsXG4gIFwiQVBQRkxPV1lfUzNfU0VDUkVUX0tFWT0ke3Bhc3N3b3JkOjMyfVwiLFxuXG4gICMgU3RvcmFnZSBDb25maWd1cmF0aW9uXG4gIFwiQVBQRkxPV1lfUzNfQlVDS0VUPWFwcGZsb3d5XCIsXG4gIFwiQVBQRkxPV1lfUzNfUkVHSU9OPXVzLWVhc3QtMVwiLFxuICBcIkFQUEZMT1dZX1MzX1BSRVNJR05FRF9VUkxfRU5EUE9JTlQ9aHR0cHM6Ly8ke21haW5fZG9tYWlufS9taW5pby1hcGlcIixcblxuICAjIEFXUyBTMyBDb25maWd1cmF0aW9uIChBbHRlcm5hdGl2ZSB0byBNaW5JTylcbiAgIyBcIkFQUEZMT1dZX1MzX1VTRV9NSU5JTz1mYWxzZVwiLFxuICAjIFwiQVBQRkxPV1lfUzNfUkVHSU9OPXVzLWVhc3QtMVwiLFxuXG4gICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIyDwn46b77iPIEFETUlOIEZST05URU5EIENPTkZJR1VSQVRJT05cbiAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBcIkFETUlOX0ZST05URU5EX1JFRElTX1VSTD1yZWRpczovL3JlZGlzOjYzNzlcIixcbiAgXCJBRE1JTl9GUk9OVEVORF9HT1RSVUVfVVJMPWh0dHA6Ly9nb3RydWU6OTk5OVwiLFxuICBcIkFETUlOX0ZST05URU5EX0FQUEZMT1dZX0NMT1VEX1VSTD1odHRwOi8vYXBwZmxvd3lfY2xvdWQ6ODAwMFwiLFxuICBcIkFETUlOX0ZST05URU5EX1BBVEhfUFJFRklYPS9jb25zb2xlXCIsXG5cbiAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAjIPCfpJYgQUkgRkVBVFVSRVMgQ09ORklHVVJBVElPTiAoT3B0aW9uYWwpXG4gICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIyBPcGVuQUkgQ29uZmlndXJhdGlvblxuICBcIkFJX09QRU5BSV9BUElfS0VZPVwiLFxuICBcIkRFRkFVTFRfQUlfTU9ERUw9Z3B0LTRvLW1pbmlcIixcbiAgXCJERUZBVUxUX0FJX0NPTVBMRVRJT05fTU9ERUw9Z3B0LTRvLW1pbmlcIixcblxuICAjIEF6dXJlIE9wZW5BSSAoQWx0ZXJuYXRpdmUpXG4gIFwiQVpVUkVfT1BFTkFJX0FQSV9LRVk9XCIsXG4gIFwiQVpVUkVfT1BFTkFJX0VORFBPSU5UPVwiLFxuICBcIkFaVVJFX09QRU5BSV9BUElfVkVSU0lPTj1cIixcblxuICAjIEFJIFNlcnZpY2UgQ29uZmlndXJhdGlvblxuICBcIkFJX1NFUlZFUl9IT1NUPWFpXCIsXG4gIFwiQUlfU0VSVkVSX1BPUlQ9NTAwMVwiLFxuICBcIkFJX0RBVEFCQVNFX1VSTD1wb3N0Z3Jlc3FsK3BzeWNvcGc6Ly9hcHBmbG93eToke1BPU1RHUkVTX1BBU1NXT1JEfUBwb3N0Z3Jlczo1NDMyL2FwcGZsb3d5XCIsXG4gIFwiQUlfUkVESVNfVVJMPXJlZGlzOi8vcmVkaXM6NjM3OVwiLFxuICBcIkFJX1VTRV9NSU5JTz10cnVlXCIsXG4gIFwiQUlfTUlOSU9fVVJMPWh0dHA6Ly9taW5pbzo5MDAwXCIsXG4gIFwiQUlfQVBQRkxPV1lfSE9TVD1odHRwczovLyR7bWFpbl9kb21haW59XCIsXG5cbiAgIyBFbWJlZGRpbmcgQ29uZmlndXJhdGlvblxuICBcIkFQUEZMT1dZX0VNQkVERElOR19DSFVOS19TSVpFPTIwMDBcIixcbiAgXCJBUFBGTE9XWV9FTUJFRERJTkdfQ0hVTktfT1ZFUkxBUD0yMDBcIixcblxuICAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICMg4pqZ77iPIFdPUktFUiBTRVJWSUNFUyBDT05GSUdVUkFUSU9OXG4gICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIyBBcHBGbG93eSBXb3JrZXJcbiAgXCJBUFBGTE9XWV9XT1JLRVJfUkVESVNfVVJMPXJlZGlzOi8vcmVkaXM6NjM3OVwiLFxuICBcIkFQUEZMT1dZX1dPUktFUl9FTlZJUk9OTUVOVD1wcm9kdWN0aW9uXCIsXG4gIFwiQVBQRkxPV1lfV09SS0VSX0RBVEFCQVNFX1VSTD1wb3N0Z3JlczovL2FwcGZsb3d5OiR7UE9TVEdSRVNfUEFTU1dPUkR9QHBvc3RncmVzOjU0MzIvYXBwZmxvd3lcIixcbiAgXCJBUFBGTE9XWV9XT1JLRVJfREFUQUJBU0VfTkFNRT1hcHBmbG93eVwiLFxuICBcIkFQUEZMT1dZX1dPUktFUl9JTVBPUlRfVElDS19JTlRFUlZBTD0zMFwiLFxuXG4gICMgSW5kZXhlciBDb25maWd1cmF0aW9uXG4gIFwiQVBQRkxPV1lfSU5ERVhFUl9FTkFCTEVEPXRydWVcIixcbiAgXCJBUFBGTE9XWV9JTkRFWEVSX0RBVEFCQVNFX1VSTD1wb3N0Z3JlczovL2FwcGZsb3d5OiR7UE9TVEdSRVNfUEFTU1dPUkR9QHBvc3RncmVzOjU0MzIvYXBwZmxvd3lcIixcbiAgXCJBUFBGTE9XWV9JTkRFWEVSX1JFRElTX1VSTD1yZWRpczovL3JlZGlzOjYzNzlcIixcbiAgXCJBUFBGTE9XWV9JTkRFWEVSX0VNQkVERElOR19CVUZGRVJfU0laRT01MDAwXCIsXG5cbiAgIyBDb2xsYWJvcmF0aW9uIFNlcnZpY2VcbiAgXCJBUFBGTE9XWV9DT0xMQUJPUkFURV9NVUxUSV9USFJFQUQ9ZmFsc2VcIixcbiAgXCJBUFBGTE9XWV9DT0xMQUJPUkFURV9SRU1PVkVfQkFUQ0hfU0laRT0xMDBcIixcblxuICAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICMg8J+MkCBOR0lOWCBDT05GSUdVUkFUSU9OXG4gICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgXCJOR0lOWF9QT1JUPTgwXCIsXG4gIFwiTkdJTlhfVExTX1BPUlQ9NDQzXCIsXG5cbiAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAjIPCfm6DvuI8gVkVSU0lPTiBUQUdTIChFYXNpbHkgQ29uZmlndXJhYmxlKVxuICAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIFwiR09UUlVFX1ZFUlNJT049bGF0ZXN0XCIsXG4gIFwiQVBQRkxPV1lfQ0xPVURfVkVSU0lPTj1sYXRlc3RcIixcbiAgXCJBUFBGTE9XWV9BRE1JTl9GUk9OVEVORF9WRVJTSU9OPWxhdGVzdFwiLFxuICBcIkFQUEZMT1dZX0FJX1ZFUlNJT049bGF0ZXN0XCIsXG4gIFwiQVBQRkxPV1lfV09SS0VSX1ZFUlNJT049bGF0ZXN0XCIsXG4gIFwiQVBQRkxPV1lfV0VCX1ZFUlNJT049bGF0ZXN0XCIsXG5dXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcIm5naW54XCJcbnBvcnQgPSA4MFxuaG9zdCA9IFwiJHttYWluX2RvbWFpbn1cIlxuXG5cbltbY29uZmlnLm1vdW50c11dXG5maWxlUGF0aCA9IFwiL25naW54L25naW54LmNvbmZcIlxuY29udGVudCA9IFwiXCJcIiMgTWluaW1hbCBuZ2lueCBjb25maWd1cmF0aW9uIGZvciBBcHBGbG93eS1DbG91ZFxuIyBTZWxmIEhvc3RlZCBBcHBGbG93eSBDbG91ZCB1c2VyIHNob3VsZCBhbHRlciB0aGlzIGZpbGUgdG8gc3VpdCB0aGVpciBuZWVkcyxcbiMgb3IgdXNlIHRoZSBhcHBmbG93eS5zaXRlLmNvbmYgaW4gZXh0ZXJuYWxfcHJveHlfY29uZmlnL25naW54IGlmIHRoZXkgYXJlIHVzaW5nXG4jIGFuIGV4dGVybmFsIHByb3h5LlxuXG5ldmVudHMge1xuICAgIHdvcmtlcl9jb25uZWN0aW9ucyAxMDI0O1xufVxuXG5odHRwIHtcbiAgICAjIGRvY2tlciBkbnMgcmVzb2x2ZXJcbiAgICByZXNvbHZlciAxMjcuMC4wLjExIHZhbGlkPTEwcztcbiAgICAjZXJyb3JfbG9nIC92YXIvbG9nL25naW54L2Vycm9yLmxvZyBkZWJ1ZztcblxuICAgIG1hcCAkaHR0cF91cGdyYWRlICRjb25uZWN0aW9uX3VwZ3JhZGUge1xuICAgICAgICBkZWZhdWx0IHVwZ3JhZGU7XG4gICAgICAgICcnIGNsb3NlO1xuICAgIH1cblxuICAgIG1hcCAkaHR0cF9vcmlnaW4gJGNvcnNfb3JpZ2luIHtcbiAgICAgICAgIyBBcHBGbG93eSBXZWIgb3JpZ2luXG4gICAgICAgIFwifl5odHRwOi8vbG9jYWxob3N0OjMwMDAkXCIgJGh0dHBfb3JpZ2luO1xuICAgICAgICBkZWZhdWx0IFwibnVsbFwiO1xuICAgIH1cblxuICAgIHNlcnZlciB7XG4gICAgICAgIGxpc3RlbiA4MDgwO1xuXG4gICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL25naW54aW5jL25naW54LXByb21ldGhldXMtZXhwb3J0ZXJcbiAgICAgICAgbG9jYXRpb24gPSAvc3R1Yl9zdGF0dXMge1xuICAgICAgICAgICAgc3R1Yl9zdGF0dXM7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHNlcnZlciB7XG5cbiAgICAgICAgbGlzdGVuIDgwO1xuICAgICAgICBjbGllbnRfbWF4X2JvZHlfc2l6ZSAxME07XG5cbiAgICAgICAgdW5kZXJzY29yZXNfaW5faGVhZGVycyBvbjtcbiAgICAgICAgc2V0ICRhcHBmbG93eV9jbG91ZF9iYWNrZW5kIFwiaHR0cDovL2FwcGZsb3d5X2Nsb3VkOjgwMDBcIjtcbiAgICAgICAgc2V0ICRnb3RydWVfYmFja2VuZCBcImh0dHA6Ly9nb3RydWU6OTk5OVwiO1xuICAgICAgICBzZXQgJGFkbWluX2Zyb250ZW5kX2JhY2tlbmQgXCJodHRwOi8vYWRtaW5fZnJvbnRlbmQ6MzAwMFwiO1xuICAgICAgICBzZXQgJGFwcGZsb3d5X3dlYl9iYWNrZW5kIFwiaHR0cDovL2FwcGZsb3d5X3dlYjo4MFwiO1xuICAgICAgICBzZXQgJG1pbmlvX2JhY2tlbmQgXCJodHRwOi8vbWluaW86OTAwMVwiO1xuICAgICAgICBzZXQgJG1pbmlvX2FwaV9iYWNrZW5kIFwiaHR0cDovL21pbmlvOjkwMDBcIjtcbiAgICAgICAgIyBIb3N0IG5hbWUgZm9yIG1pbmlvLCB1c2VkIGludGVybmFsbHkgd2l0aGluIGRvY2tlciBjb21wb3NlXG4gICAgICAgIHNldCAkbWluaW9faW50ZXJuYWxfaG9zdCBcIm1pbmlvOjkwMDBcIjtcbiAgICAgICAgc2V0ICRwZ2FkbWluX2JhY2tlbmQgXCJodHRwOi8vcGdhZG1pbjo4MFwiO1xuXG4gICAgICAgICMgR29UcnVlXG4gICAgICAgIGxvY2F0aW9uIC9nb3RydWUvIHtcbiAgICAgICAgICAgIGlmICgkcmVxdWVzdF9tZXRob2QgPSAnT1BUSU9OUycpIHtcbiAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nICRjb3JzX29yaWdpbiBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMnICd0cnVlJyBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycycgJyonIGFsd2F5cztcbiAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzJyAnR0VULCBQT1NULCBQVVQsIERFTEVURSwgUEFUQ0gsIE9QVElPTlMnIGFsd2F5cztcbiAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdBY2Nlc3MtQ29udHJvbC1NYXgtQWdlJyAzNjAwIGFsd2F5cztcbiAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdDb250ZW50LVR5cGUnICd0ZXh0L3BsYWluIGNoYXJzZXQ9VVRGLTgnIGFsd2F5cztcbiAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdDb250ZW50LUxlbmd0aCcgMCBhbHdheXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDIwNDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJveHlfcGFzcyAkZ290cnVlX2JhY2tlbmQ7XG5cbiAgICAgICAgICAgIHJld3JpdGUgXi9nb3RydWUoLy4qKSQgJDEgYnJlYWs7XG5cbiAgICAgICAgICAgICMgQWxsb3cgaGVhZGVycyBsaWtlIHJlZGlyZWN0X3RvIHRvIGJlIGhhbmRlZCBvdmVyIHRvIHRoZSBnb3RydWVcbiAgICAgICAgICAgICMgZm9yIGNvcnJlY3QgcmVkaXJlY3RpbmdcbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgSG9zdCAkaHR0cF9ob3N0O1xuICAgICAgICAgICAgcHJveHlfcGFzc19yZXF1ZXN0X2hlYWRlcnMgb247XG4gICAgICAgIH1cblxuICAgICAgICAjIFdlYlNvY2tldFxuICAgICAgICBsb2NhdGlvbiAvd3Mge1xuICAgICAgICAgICAgcHJveHlfcGFzcyAkYXBwZmxvd3lfY2xvdWRfYmFja2VuZDtcblxuICAgICAgICAgICAgcHJveHlfaHR0cF92ZXJzaW9uIDEuMTtcbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgVXBncmFkZSAkaHR0cF91cGdyYWRlO1xuICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBDb25uZWN0aW9uIFwiVXBncmFkZVwiO1xuICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBIb3N0ICRob3N0O1xuICAgICAgICAgICAgcHJveHlfcmVhZF90aW1lb3V0IDg2NDAwcztcbiAgICAgICAgfVxuXG4gICAgICAgIGxvY2F0aW9uIC9hcGkge1xuICAgICAgICAgICAgcHJveHlfcGFzcyAkYXBwZmxvd3lfY2xvdWRfYmFja2VuZDtcbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1SZXF1ZXN0LUlkICRyZXF1ZXN0X2lkO1xuICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBIb3N0ICRodHRwX2hvc3Q7XG5cbiAgICAgICAgICAgICMgU2V0IENPUlMgaGVhZGVycyBmb3Igb3RoZXIgcmVxdWVzdHNcbiAgICAgICAgICAgIGlmICgkcmVxdWVzdF9tZXRob2QgPSAnT1BUSU9OUycpIHtcbiAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nICRjb3JzX29yaWdpbiBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcycgJ0dFVCwgUE9TVCwgUFVULCBERUxFVEUsIFBBVENILCBPUFRJT05TJyBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycycgJ0NvbnRlbnQtVHlwZSwgQXV0aG9yaXphdGlvbiwgQWNjZXB0LCBDbGllbnQtVmVyc2lvbiwgRGV2aWNlLUlkJyBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtTWF4LUFnZScgMzYwMCBhbHdheXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDIwNDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyAkY29yc19vcmlnaW4gYWx3YXlzO1xuICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcycgJ0dFVCwgUE9TVCwgUFVULCBERUxFVEUsIFBBVENILCBPUFRJT05TJyBhbHdheXM7XG4gICAgICAgICAgICBhZGRfaGVhZGVyICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJyAnQ29udGVudC1UeXBlLCBBdXRob3JpemF0aW9uLCBBY2NlcHQsIENsaWVudC1WZXJzaW9uLCBEZXZpY2UtSWQnIGFsd2F5cztcbiAgICAgICAgICAgIGFkZF9oZWFkZXIgJ0FjY2Vzcy1Db250cm9sLU1heC1BZ2UnIDM2MDAgYWx3YXlzO1xuXG4gICAgICAgICAgICBsb2NhdGlvbiB+KiBeL2FwaS93b3Jrc3BhY2UvKFthLXpBLVowLTlfLV0rKS9wdWJsaXNoJCB7XG4gICAgICAgICAgICAgICAgcHJveHlfcGFzcyAkYXBwZmxvd3lfY2xvdWRfYmFja2VuZDtcbiAgICAgICAgICAgICAgICBwcm94eV9yZXF1ZXN0X2J1ZmZlcmluZyBvZmY7XG4gICAgICAgICAgICAgICAgY2xpZW50X21heF9ib2R5X3NpemUgMjU2TTtcbiAgICAgICAgICAgICAgICBpZiAoJHJlcXVlc3RfbWV0aG9kID0gJ09QVElPTlMnKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZF9oZWFkZXIgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicgJGNvcnNfb3JpZ2luIGFsd2F5cztcbiAgICAgICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcycgJ0dFVCwgUE9TVCwgUFVULCBERUxFVEUsIFBBVENILCBPUFRJT05TJyBhbHdheXM7XG4gICAgICAgICAgICAgICAgICAgIGFkZF9oZWFkZXIgJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnICdDb250ZW50LVR5cGUsIEF1dGhvcml6YXRpb24sIEFjY2VwdCwgQ2xpZW50LVZlcnNpb24sIERldmljZS1JZCcgYWx3YXlzO1xuICAgICAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdBY2Nlc3MtQ29udHJvbC1NYXgtQWdlJyAzNjAwIGFsd2F5cztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIwNDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nICRjb3JzX29yaWdpbiBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcycgJ0dFVCwgUE9TVCwgUFVULCBERUxFVEUsIFBBVENILCBPUFRJT05TJyBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycycgJ0NvbnRlbnQtVHlwZSwgQXV0aG9yaXphdGlvbiwgQWNjZXB0LCBDbGllbnQtVmVyc2lvbiwgRGV2aWNlLUlkJyBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtTWF4LUFnZScgMzYwMCBhbHdheXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICMgQXBwRmxvd3ktQ2xvdWRcbiAgICAgICAgICAgIGxvY2F0aW9uIC9hcGkvY2hhdCB7XG4gICAgICAgICAgICAgICAgcHJveHlfcGFzcyAkYXBwZmxvd3lfY2xvdWRfYmFja2VuZDtcblxuICAgICAgICAgICAgICAgIHByb3h5X2h0dHBfdmVyc2lvbiAxLjE7XG4gICAgICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBDb25uZWN0aW9uIFwiXCI7XG4gICAgICAgICAgICAgICAgY2h1bmtlZF90cmFuc2Zlcl9lbmNvZGluZyBvbjtcbiAgICAgICAgICAgICAgICBwcm94eV9idWZmZXJpbmcgb2ZmO1xuICAgICAgICAgICAgICAgIHByb3h5X2NhY2hlIG9mZjtcblxuICAgICAgICAgICAgICAgIHByb3h5X3JlYWRfdGltZW91dCA2MDBzO1xuICAgICAgICAgICAgICAgIHByb3h5X2Nvbm5lY3RfdGltZW91dCA2MDBzO1xuICAgICAgICAgICAgICAgIHByb3h5X3NlbmRfdGltZW91dCA2MDBzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsb2NhdGlvbiAvYXBpL2ltcG9ydCB7XG4gICAgICAgICAgICAgICAgcHJveHlfcGFzcyAkYXBwZmxvd3lfY2xvdWRfYmFja2VuZDtcblxuICAgICAgICAgICAgICAgICMgU2V0IGhlYWRlcnNcbiAgICAgICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFgtUmVxdWVzdC1JZCAkcmVxdWVzdF9pZDtcbiAgICAgICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIEhvc3QgJGh0dHBfaG9zdDtcblxuICAgICAgICAgICAgICAgICMgSGFuZGxlIENPUlNcbiAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nICRjb3JzX29yaWdpbiBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcycgJ0dFVCwgUE9TVCwgUFVULCBERUxFVEUsIFBBVENILCBPUFRJT05TJyBhbHdheXM7XG4gICAgICAgICAgICAgICAgYWRkX2hlYWRlciAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycycgJ0NvbnRlbnQtVHlwZSwgQXV0aG9yaXphdGlvbiwgQWNjZXB0LCBEZXZpY2UtSWQnIGFsd2F5cztcbiAgICAgICAgICAgICAgICBhZGRfaGVhZGVyICdBY2Nlc3MtQ29udHJvbC1NYXgtQWdlJyAzNjAwIGFsd2F5cztcblxuICAgICAgICAgICAgICAgICMgVGltZW91dHNcbiAgICAgICAgICAgICAgICBwcm94eV9yZWFkX3RpbWVvdXQgNjAwcztcbiAgICAgICAgICAgICAgICBwcm94eV9jb25uZWN0X3RpbWVvdXQgNjAwcztcbiAgICAgICAgICAgICAgICBwcm94eV9zZW5kX3RpbWVvdXQgNjAwcztcblxuICAgICAgICAgICAgICAgICMgRGlzYWJsZSBidWZmZXJpbmcgZm9yIGxhcmdlIGZpbGUgdXBsb2Fkc1xuICAgICAgICAgICAgICAgIHByb3h5X3JlcXVlc3RfYnVmZmVyaW5nIG9mZjtcbiAgICAgICAgICAgICAgICBwcm94eV9idWZmZXJpbmcgb2ZmO1xuICAgICAgICAgICAgICAgIHByb3h5X2NhY2hlIG9mZjtcbiAgICAgICAgICAgICAgICBjbGllbnRfbWF4X2JvZHlfc2l6ZSAyRztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICMgTWluaW8gV2ViIFVJXG4gICAgICAgICMgRGVyaXZlIGZyb206IGh0dHBzOi8vbWluLmlvL2RvY3MvbWluaW8vbGludXgvaW50ZWdyYXRpb25zL3NldHVwLW5naW54LXByb3h5LXdpdGgtbWluaW8uaHRtbFxuICAgICAgICAjIE9wdGlvbmFsIE1vZHVsZSwgY29tbWVudCB0aGlzIHNlY3Rpb24gaWYgeW91IGRpZCBub3QgZGVwbG95IG1pbmlvIGluIGRvY2tlci1jb21wb3NlLnltbFxuICAgICAgICAjIFRoaXMgZW5kcG9pbnQgaXMgbWVhbnQgdG8gYmUgdXNlZCBmb3IgdGhlIE1pbklPIFdlYiBVSSwgYWNjZXNzaWJsZSB2aWEgdGhlIGFkbWluIHBvcnRhbFxuICAgICAgICBsb2NhdGlvbiAvbWluaW8vIHtcbiAgICAgICAgICAgIHByb3h5X3Bhc3MgJG1pbmlvX2JhY2tlbmQ7XG5cbiAgICAgICAgICAgIHJld3JpdGUgXi9taW5pby8oLiopIC8kMSBicmVhaztcbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgSG9zdCAkaHR0cF9ob3N0O1xuICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLVJlYWwtSVAgJHJlbW90ZV9hZGRyO1xuICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLUZvcndhcmRlZC1Gb3IgJHByb3h5X2FkZF94X2ZvcndhcmRlZF9mb3I7XG4gICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFgtRm9yd2FyZGVkLVByb3RvICRzY2hlbWU7XG4gICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFgtTmdpblgtUHJveHkgdHJ1ZTtcblxuICAgICAgICAgICAgIyMgVGhpcyBpcyBuZWNlc3NhcnkgdG8gcGFzcyB0aGUgY29ycmVjdCBJUCB0byBiZSBoYXNoZWRcbiAgICAgICAgICAgIHJlYWxfaXBfaGVhZGVyIFgtUmVhbC1JUDtcblxuICAgICAgICAgICAgcHJveHlfY29ubmVjdF90aW1lb3V0IDMwMHM7XG5cbiAgICAgICAgICAgICMjIFRvIHN1cHBvcnQgd2Vic29ja2V0cyBpbiBNaW5JTyB2ZXJzaW9ucyByZWxlYXNlZCBhZnRlciBKYW51YXJ5IDIwMjNcbiAgICAgICAgICAgIHByb3h5X2h0dHBfdmVyc2lvbiAxLjE7XG4gICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFVwZ3JhZGUgJGh0dHBfdXBncmFkZTtcbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgQ29ubmVjdGlvbiBcInVwZ3JhZGVcIjtcbiAgICAgICAgICAgICMgU29tZSBlbnZpcm9ubWVudHMgbWF5IGVuY291bnRlciBDT1JTIGVycm9ycyAoS3ViZXJuZXRlcyArIE5naW54IEluZ3Jlc3MpXG4gICAgICAgICAgICAjIFVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gc2V0IHRoZSBPcmlnaW4gcmVxdWVzdCB0byBhbiBlbXB0eSBzdHJpbmdcbiAgICAgICAgICAgICMgcHJveHlfc2V0X2hlYWRlciBPcmlnaW4gJyc7XG5cbiAgICAgICAgICAgIGNodW5rZWRfdHJhbnNmZXJfZW5jb2Rpbmcgb2ZmO1xuICAgICAgICB9XG5cbiAgICAgICAgIyBPcHRpb25hbCBNb2R1bGUsIGNvbW1lbnQgdGhpcyBzZWN0aW9uIGlmIHlvdSBkaWQgbm90IGRlcGxveSBtaW5pbyBpbiBkb2NrZXItY29tcG9zZS55bWxcbiAgICAgICAgIyBUaGlzIGlzIHVzZWQgZm9yIHByZXNpZ25lZCB1cmwsIHdoaWNoIGlzIG5lZWRzIHRvIGJlIGV4cG9zZWQgdG8gdGhlIEFwcEZsb3d5IGNsaWVudCBhcHBsaWNhdGlvbi5cbiAgICAgICAgbG9jYXRpb24gL21pbmlvLWFwaS8ge1xuICAgICAgICAgICAgcHJveHlfcGFzcyAkbWluaW9fYXBpX2JhY2tlbmQ7XG5cbiAgICAgICAgICAgICMgU2V0IHRoZSBob3N0IHRvIGludGVybmFsIGhvc3QgYmVjYXVzZSB0aGUgcHJlc2lnbmVkIHVybCB3YXMgc2lnbmVkIGFnYWluc3QgdGhlIGludGVybmFsIGhvc3RcbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgSG9zdCAkbWluaW9faW50ZXJuYWxfaG9zdDtcbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1SZWFsLUlQICRyZW1vdGVfYWRkcjtcbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtRm9yICRwcm94eV9hZGRfeF9mb3J3YXJkZWRfZm9yO1xuICAgICAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLUZvcndhcmRlZC1Qcm90byAkc2NoZW1lO1xuXG4gICAgICAgICAgICByZXdyaXRlIF4vbWluaW8tYXBpLyguKikgLyQxIGJyZWFrO1xuXG4gICAgICAgICAgICBwcm94eV9jb25uZWN0X3RpbWVvdXQgMzAwcztcbiAgICAgICAgICAgICMgRGVmYXVsdCBpcyBIVFRQLzEsIGtlZXBhbGl2ZSBpcyBvbmx5IGVuYWJsZWQgaW4gSFRUUC8xLjFcbiAgICAgICAgICAgIHByb3h5X2h0dHBfdmVyc2lvbiAxLjE7XG4gICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIENvbm5lY3Rpb24gXCJcIjtcbiAgICAgICAgICAgIGNodW5rZWRfdHJhbnNmZXJfZW5jb2Rpbmcgb2ZmO1xuICAgICAgICB9XG5cbiAgICAgICAgIyBQZ0FkbWluXG4gICAgICAgICMgT3B0aW9uYWwgTW9kdWxlLCBjb21tZW50IHRoaXMgc2VjdGlvbiBpZiB5b3UgZGlkIG5vdCBkZXBsb3kgcGdhZG1pbiBpbiBkb2NrZXItY29tcG9zZS55bWxcbiAgICAgICAgbG9jYXRpb24gL3BnYWRtaW4vIHtcbiAgICAgICAgICAgIHNldCAkcGdhZG1pbiBwZ2FkbWluO1xuICAgICAgICAgICAgcHJveHlfcGFzcyAkcGdhZG1pbl9iYWNrZW5kO1xuXG4gICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFgtU2NyaXB0LU5hbWUgL3BnYWRtaW47XG4gICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFgtU2NoZW1lICRzY2hlbWU7XG4gICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIEhvc3QgJGhvc3Q7XG4gICAgICAgICAgICBwcm94eV9yZWRpcmVjdCBvZmY7XG4gICAgICAgIH1cblxuICAgICAgICAjIEFkbWluIEZyb250ZW5kXG4gICAgICAgICMgT3B0aW9uYWwgTW9kdWxlLCBjb21tZW50IHRoaXMgc2VjdGlvbiBpZiB5b3UgZGlkIG5vdCBkZXBsb3kgYWRtaW5fZnJvbnRlbmQgaW4gZG9ja2VyLWNvbXBvc2UueW1sXG4gICAgICAgIGxvY2F0aW9uIC9jb25zb2xlIHtcbiAgICAgICAgICAgIHByb3h5X3Bhc3MgJGFkbWluX2Zyb250ZW5kX2JhY2tlbmQ7XG5cbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1TY2hlbWUgJHNjaGVtZTtcbiAgICAgICAgICAgIHByb3h5X3NldF9oZWFkZXIgSG9zdCAkaG9zdDtcbiAgICAgICAgfVxuXG4gICAgICAgICMgQXBwRmxvd3kgV2ViXG4gICAgICAgIGxvY2F0aW9uIC8ge1xuICAgICAgICAgICAgcHJveHlfcGFzcyAkYXBwZmxvd3lfd2ViX2JhY2tlbmQ7XG4gICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIFgtU2NoZW1lICRzY2hlbWU7XG4gICAgICAgICAgICBwcm94eV9zZXRfaGVhZGVyIEhvc3QgJGhvc3Q7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblwiXCJcIiIKfQ==
The exact Docker Compose and template configuration this template deploys.
Version: latest
A self-hosted, modern note-taking web app that saves your notes as plain text Markdown files.
Version: latest
Flatnotes with TOTP authentication enabled (username + password + one-time passcode).
Version: 0.25.0
A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search. Previously known as Hoarder.
Version: latest
Take notes, plan tasks and track habits - free, ad-free, open source, with all data on your own server. Native apps for Windows, Linux, Android, iOS and macOS sync to it.
Version: v2
SilverBullet is a personal knowledge base and collaborative note-taking platform.
Version: stable
Affine Pro is a modern, self-hosted platform designed for collaborative content creation and project management. It offers an intuitive interface, seamless real-time collaboration, and powerful tools for organizing tasks, notes, and ideas.
Dokploy is a free, open source deployment platform. Deploy App Flowy and 499+ other templates on your own infrastructure with a single click.