{"id":6452,"date":"2026-07-11T06:38:34","date_gmt":"2026-07-11T06:38:34","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-11-test-1-writing\/"},"modified":"2026-07-12T03:24:23","modified_gmt":"2026-07-12T03:24:23","slug":"celpip-set-11-test-1-writing","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-11-test-1-writing\/","title":{"rendered":"CELPIP Writing \u2014 Set 11 \u00b7 Practice Test 1"},"content":{"rendered":"<div class=\"clpw-wrap\" id=\"clpwApp\"><\/div>\n<p><script>eval(atob(\"dmFyIFdEQVRBPXsibWV0YSI6eyJicmFuZCI6IkNFTFBJUCIsInNldCI6IlNldCAxMSBcdTAwYjcgUHJhY3RpY2UgVGVzdCAxIiwidGl0bGUiOiJDRUxQSVAgV3JpdGluZyBQcmFjdGljZSBUZXN0IiwidG90YWxNaW4iOjUzfSwidGFza3MiOlt7ImlkIjoxLCJiYXJUaXRsZSI6IlByYWN0aWNlIFRlc3QgMSBcdTIwMTMgV3JpdGluZyBUYXNrIDE6IFdyaXRpbmcgYW4gRW1haWwiLCJuYW1lIjoiV3JpdGluZyBhbiBFbWFpbCIsIm1pbnV0ZXMiOjI3LCJ3b3JkQWltIjoiMTUwXHUyMDEzMjAwIHdvcmRzIiwicmVhZEhlYWQiOiJSZWFkIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24uIiwic2NlbmFyaW8iOiJZb3UgYW5kIHlvdXIgdGVlbmFnZSBkYXVnaHRlciB2aXNpdGVkIHRoZSBsb2NhbCBsaWJyYXJ5IGxhc3Qgd2Vla2VuZCB0byBmaW5kIGJvb2tzIGZvciBoZXIgc2Nob29sIHByb2plY3QuIEFmdGVyIHNlYXJjaGluZyBmb3Igc29tZSB0aW1lLCB5b3UgcmVhbGl6ZWQgdGhhdCB0aGUgbGlicmFyeSBkaWQgbm90IGhhdmUgYW55IGJvb2tzIG9uIHRoZSBzdWJqZWN0LiBUaGlzIGlzIG5vdCB0aGUgZmlyc3QgdGltZSB0aGF0IHRoZSBsaWJyYXJ5IGRpZCBub3QgaGF2ZSBzb21ldGhpbmcgeW91IG5lZWQuIiwicHJvbXB0SGVhZCI6IldyaXRlIGFuIGVtYWlsIHRvIHRoZSBsaWJyYXJpYW4gaW4gYWJvdXQgMTUwXHUyMDEzMjAwIHdvcmRzLiBZb3VyIGVtYWlsIHNob3VsZCBkbyB0aGUgZm9sbG93aW5nIHRoaW5nczoiLCJidWxsZXRzIjpbIkRlc2NyaWJlIHdoYXQgeW91IHdlcmUgdHJ5aW5nIHRvIGZpbmQuIiwiRXhwbGFpbiB3aHkgeW91IG5lZWRlZCB0aGUgYm9vayBhbmQgaG93IHlvdSB0cmllZCB0byBmaW5kIGl0LiIsIlN1Z2dlc3Qgd2hhdCB0aGUgbGlicmFyeSBjYW4gZG8gdG8gaGVscCB5b3UgZmluZCB0aGUgaW5mb3JtYXRpb24geW91IG5lZWQuIl0sIm9wdGlvbnMiOm51bGwsInNhbU5vdGUiOiJUaGVzZSBhcmUgQWxsRW5nbGlzaDRVIG1vZGVsIGFuc3dlcnMgd3JpdHRlbiBmb3IgdGhpcyBleGFjdCBUYXNrIDEgZW1haWwgcHJvbXB0ICh3cml0aW5nIHRvIHRoZSBsb2NhbCBsaWJyYXJpYW4gYWZ0ZXIgZmFpbGluZywgYWdhaW4sIHRvIGZpbmQgYm9va3MgZm9yIGEgdGVlbmFnZSBkYXVnaHRlcidzIHNjaG9vbCBwcm9qZWN0KSwgc2hvd24gYXQgdGhyZWUgc2NvcmUgbGV2ZWxzIChDRUxQSVAgNFx1MjAxMzUsIDdcdTIwMTM4IGFuZCAxMFx1MjAxMzEyKSBzbyB5b3UgY2FuIHNlZSBob3cgdGhlIHNhbWUgdGFzayByZWFkcyBhcyBpdCBpbXByb3Zlcy4gVGhleSBhcmUgQUU0VSBzdHVkeSBtb2RlbHMsIG5vdCBvZmZpY2lhbCBDRUxQSVAgc2FtcGxlczsgdGhlIDRcdTIwMTM1IG1vZGVsIGRlbGliZXJhdGVseSBrZWVwcyBzb21lIGVycm9ycy4iLCJzYW1wbGVzIjpbeyJsZXZlbCI6IkNFTFBJUCA0XHUyMDEzNSBSZXNwb25zZSIsIm5vdGUiOiJBbGwgdGhyZWUgcG9pbnRzIGNvdmVyZWQgd2l0aCBhIGNsZWFyIHJlcXVlc3Q7IHBsYWluIHBocmFzaW5nIGFuZCBzZXZlcmFsIG5hdHVyYWwgZ3JhbW1hciBzbGlwcy4iLCJ0ZXh0IjoiRGVhciBMaWJyYXJpYW4sXG5cbk15IG5hbWUgaXMgSG9hIE5ndXllbiBhbmQgSSBhbSBhIG1lbWJlciBvZiB0aGUgbG9jYWwgbGlicmFyeS4gTGFzdCB3ZWVrZW5kIEkgY29tZSB0byB0aGUgbGlicmFyeSB3aXRoIG15IHRlZW5hZ2UgZGF1Z2h0ZXIgdG8gbG9vayBmb3IgYm9va3MgZm9yIGhlciBzY2hvb2wgcHJvamVjdCBhYm91dCB2b2xjYW5vZXMuIFNoZSBpcyBpbiBncmFkZSBuaW5lIGFuZCB0aGlzIHByb2plY3QgaXMgdmVyeSBpbXBvcnRhbnQgZm9yIGhlciBzY2llbmNlIG1hcmsuXG5cbldlIHNlYXJjaCBmb3IgYWxtb3N0IG9uZSBob3VyLiBXZSBsb29rIGluIHRoZSBzY2llbmNlIHNoZWxmLCB0aGVuIHRoZSBnZW9ncmFwaHkgc2hlbGYsIGFuZCBhbHNvIHdlIGFzayB0aGUgeW91bmcgbWFuIGF0IHRoZSBkZXNrLiBCdXQgdGhlcmUgd2FzIG5vIGJvb2sgYWJvdXQgdm9sY2Fub2VzLCBub3QgZXZlbiBvbmUuIFRoaXMgaXMgbm90IHRoZSBmaXJzdCB0aW1lLiBUd28gbW9udGhzIGFnbyBJIGFsc28gY291bGQgbm90IGZpbmQgYSBib29rIGFib3V0IGhlYWx0aHkgY29va2luZy5cblxuSSBmZWVsIGEgbGl0dGxlIGRpc2FwcG9pbnRlZCwgYmVjYXVzZSBhIGxpYnJhcnkgc2hvdWxkIGhhdmUgYm9va3MgZm9yIHN0dWRlbnRzLiBQbGVhc2UsIGNhbiB5b3Ugb3JkZXIgc29tZSBib29rcyBhYm91dCB2b2xjYW5vZXMgYW5kIG90aGVyIHNjaWVuY2UgdG9waWNzIGZvciB0ZWVuYWdlcnM\/IEFsc28sIG1heWJlIHlvdSBjYW4gcHV0IGEgc21hbGwgbGlzdCBvbiB5b3VyIHdlYnNpdGUgdGhhdCBzaG93IHdoaWNoIGJvb2tzIGFyZSBhbHJlYWR5IGhlcmUuIFRoaXMgd2lsbCBzYXZlIHRpbWUgZm9yIHRoZSBuZXh0IGZhbWlseS5cblxuVGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgeW91ciBoZWxwLlxuXG5CZXN0IHJlZ2FyZHMsXG5Ib2EgTmd1eWVuIn0seyJsZXZlbCI6IkNFTFBJUCA3XHUyMDEzOCBSZXNwb25zZSIsIm5vdGUiOiJQb2xpdGUgYW5kIHdlbGwtc3RydWN0dXJlZDogc3RhdGVzIHRoZSBuZWVkLCBleHBsYWlucyB0aGUgc2VhcmNoLCBhbmQgb2ZmZXJzIHByYWN0aWNhbCBmaXhlcyBpbiBhIHByb2Zlc3Npb25hbCB0b25lLiIsInRleHQiOiJEZWFyIE1zLiBDYXJ0ZXIsXG5cbkkgYW0gd3JpdGluZyB0byB5b3UgYXMgYSByZWd1bGFyIG1lbWJlciBvZiB0aGUgY29tbXVuaXR5IGxpYnJhcnkuIExhc3Qgd2Vla2VuZCwgbXkgdGVlbmFnZSBkYXVnaHRlciBhbmQgSSB2aXNpdGVkIHRoZSBicmFuY2ggdG8gYm9ycm93IHNvbWUgYm9va3MgZm9yIGhlciBzY2hvb2wgcHJvamVjdCBvbiBjbGltYXRlIGNoYW5nZSwgYnV0IHVuZm9ydHVuYXRlbHkgd2UgbGVmdCBlbXB0eS1oYW5kZWQuXG5cbk15IGRhdWdodGVyIGlzIGluIGdyYWRlIHRlbiwgYW5kIGhlciBnZW9ncmFwaHkgdGVhY2hlciBoYXMgYXNrZWQgdGhlIGNsYXNzIHRvIHByZXBhcmUgYSBkZXRhaWxlZCByZXBvcnQgc3VwcG9ydGVkIGJ5IHByaW50ZWQgc291cmNlcyByYXRoZXIgdGhhbiB3ZWJzaXRlcy4gV2Ugc3BlbnQgbmVhcmx5IGFuIGhvdXIgc2VhcmNoaW5nIHRoZSBzY2llbmNlIGFuZCBlbnZpcm9ubWVudCBzZWN0aW9ucywgY2hlY2tlZCB0aGUgY2F0YWxvZ3VlIGNvbXB1dGVyIG5lYXIgdGhlIGVudHJhbmNlLCBhbmQgZXZlbiBhc2tlZCBhIHN0YWZmIG1lbWJlciBmb3IgYXNzaXN0YW5jZS4gU2FkbHksIHRoZSBsaWJyYXJ5IGRpZCBub3QgaGF2ZSBhIHNpbmdsZSB0aXRsZSBvbiB0aGUgc3ViamVjdC4gSSBzaG91bGQgYWRkIHRoYXQgdGhpcyBpcyBub3QgdGhlIGZpcnN0IHRpbWU7IGxhc3QgbW9udGggSSBjb3VsZCBub3QgZmluZCBhbnl0aGluZyBvbiBwZXJzb25hbCBmaW5hbmNlIGVpdGhlci5cblxuSSB1bmRlcnN0YW5kIHRoYXQgbm8gbGlicmFyeSBjYW4gc3RvY2sgZXZlcnl0aGluZywgc28gSSB3b3VsZCBsaWtlIHRvIHN1Z2dlc3QgYSBmZXcgcHJhY3RpY2FsIHNvbHV0aW9ucy4gQ291bGQgeW91IGNvbnNpZGVyIG9yZGVyaW5nIGEgc21hbGwgY29sbGVjdGlvbiBvZiB1cC10by1kYXRlIGJvb2tzIG9uIGNvbW1vbiBzY2hvb2wgdG9waWNzPyBBbiBpbnRlci1saWJyYXJ5IGxvYW4gc2VydmljZSB3b3VsZCBhbHNvIGhlbHAgZW5vcm1vdXNseSwgYW5kIGEgc2ltcGxlIG9ubGluZSByZXF1ZXN0IGZvcm0gd291bGQgbGV0IGZhbWlsaWVzIGFzayBmb3Igc3BlY2lmaWMgdGl0bGVzIGluIGFkdmFuY2UuXG5cblRoYW5rIHlvdSBmb3IgdGFraW5nIHRoZSB0aW1lIHRvIGNvbnNpZGVyIG15IHN1Z2dlc3Rpb25zLlxuXG5CZXN0IHJlZ2FyZHMsXG5NYWkgVHJhbiJ9LHsibGV2ZWwiOiJDRUxQSVAgMTBcdTIwMTMxMiBSZXNwb25zZSIsIm5vdGUiOiJNZWFzdXJlZCBhbmQgcHJlY2lzZSBcdTIwMTQgYSBjbGVhciBhY2NvdW50IG9mIHRoZSBzZWFyY2gsIGEgcmVjdXJyaW5nIHBhdHRlcm4gbm90ZWQgdGFjdGZ1bGx5LCBhbmQgY29uc3RydWN0aXZlIHByb3Bvc2Fscy4iLCJ0ZXh0IjoiRGVhciBNcy4gQ2FydGVyLFxuXG5JIGFtIHdyaXRpbmcgdG8gc2hhcmUgYW4gZXhwZXJpZW5jZSBmcm9tIGxhc3Qgd2Vla2VuZCBhbmQsIEkgaG9wZSwgdG8gc3VnZ2VzdCBhIGNvbnN0cnVjdGl2ZSB3YXkgZm9yd2FyZC4gTXkgdGVlbmFnZSBkYXVnaHRlciBhbmQgSSBjYW1lIHRvIHRoZSBsaWJyYXJ5IHRvIGdhdGhlciBzb3VyY2VzIGZvciBoZXIgaGlzdG9yeSBwcm9qZWN0IG9uIEFuY2llbnQgRWd5cHQsIGFuZCBkZXNwaXRlIG91ciBiZXN0IGVmZm9ydHMgd2Ugd2VyZSB1bmFibGUgdG8gZmluZCBhbnl0aGluZyB1c2FibGUuXG5cbkFsbG93IG1lIHRvIGV4cGxhaW4gd2hhdCB3ZSBuZWVkZWQuIEhlciB0ZWFjaGVyIHJlcXVpcmVzIGVhY2ggc3R1ZGVudCB0byBjaXRlIGF0IGxlYXN0IHRocmVlIHByaW50ZWQgYm9va3MsIHByZWNpc2VseSBzbyB0aGF0IHRoZSBjbGFzcyBsZWFybnMgdG8gd29yayBiZXlvbmQgcXVpY2sgaW50ZXJuZXQgc2VhcmNoZXMuIFdpdGggdGhhdCBpbiBtaW5kLCB3ZSBjb21iZWQgdGhyb3VnaCB0aGUgaGlzdG9yeSBhbmQgcmVmZXJlbmNlIHNlY3Rpb25zIHNoZWxmIGJ5IHNoZWxmLCBjb25zdWx0ZWQgdGhlIG9ubGluZSBjYXRhbG9ndWUgYXQgdGhlIGZyb250IGRlc2ssIGFuZCBmaW5hbGx5IGFza2VkIG9uZSBvZiB5b3VyIGFzc2lzdGFudHMsIHdobyBraW5kbHkgY29uZmlybWVkIHRoYXQgdGhlIGJyYW5jaCBzaW1wbHkgaG9sZHMgbm90aGluZyBvbiB0aGUgdG9waWMuIEkgbWVudGlvbiB0aGlzIHJlbHVjdGFudGx5LCBidXQgaXQgaXMgYSByZWN1cnJpbmcgcGF0dGVybjogYSBmZXcgd2Vla3MgYWdvIEkgc2VhcmNoZWQganVzdCBhcyBmcnVpdGxlc3NseSBmb3IgbWF0ZXJpYWwgb24gaG9tZSBnYXJkZW5pbmcuXG5cblJhdGhlciB0aGFuIG1lcmVseSBjb21wbGFpbiwgSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2Ugc29tZSBvcHRpb25zLiBBIG1vZGVzdCBhbm51YWwgYnVkZ2V0IGZvciBwb3B1bGFyIHN0dWRlbnQgc3ViamVjdHMgd291bGQgbWFrZSBhbiBpbW1lZGlhdGUgZGlmZmVyZW5jZSwgYXMgd291bGQgam9pbmluZyBhIHJlZ2lvbmFsIGludGVyLWxpYnJhcnkgbG9hbiBuZXR3b3JrIHNvIHRoYXQgdGl0bGVzIGNhbiBiZSBib3Jyb3dlZCBmcm9tIG90aGVyIGJyYW5jaGVzLiBFdmVuIGEgc2hvcnQgb25saW5lIGZvcm0sIHdoZXJlIG1lbWJlcnMgcmVxdWVzdCBzcGVjaWZpYyBib29rcywgd291bGQgaGVscCB5b3Ugc3RvY2sgd2hhdCB0aGUgY29tbXVuaXR5IGFjdHVhbGx5IHJlYWRzLlxuXG5UaGFuayB5b3UgdmVyeSBtdWNoIGZvciBjb25zaWRlcmluZyB0aGVzZSBpZGVhcy5cblxuQmVzdCByZWdhcmRzLFxuTWFpIFRyYW4ifV19LHsiaWQiOjIsImJhclRpdGxlIjoiUHJhY3RpY2UgVGVzdCAxIFx1MjAxMyBXcml0aW5nIFRhc2sgMjogUmVzcG9uZGluZyB0byBTdXJ2ZXkgUXVlc3Rpb25zIiwibmFtZSI6IlJlc3BvbmRpbmcgdG8gU3VydmV5IFF1ZXN0aW9ucyIsIm1pbnV0ZXMiOjI2LCJ3b3JkQWltIjoiMTUwXHUyMDEzMjAwIHdvcmRzIiwicmVhZEhlYWQiOiJSZWFkIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24uIiwic2NlbmFyaW9IZWFkIjoiV29yayBTY2hlZHVsZSBTdXJ2ZXkiLCJzY2VuYXJpbyI6IllvdSB3b3JrIHBhcnQtdGltZSBhdCBhIGNvbXBhbnkuIFlvdXIgbWFuYWdlciBpcyBzdXJ2ZXlpbmcgYWxsIHBhcnQtdGltZSBzdGFmZiBhYm91dCBhIG5ldyB3b3JrIHNjaGVkdWxlLiBPbmUgb3B0aW9uIGlzIHdvcmtpbmcgTW9uZGF5LCBXZWRuZXNkYXksIGFuZCBGcmlkYXkgZnJvbSAxOjAwIHAubS4gdG8gNjowMCBwLm0uIFRoZSBvdGhlciBvcHRpb24gaXMgd29ya2luZyBUdWVzZGF5LCBUaHVyc2RheSwgYW5kIFNhdHVyZGF5IGZyb20gMTA6MDAgYS5tLiB0byAzOjAwIHAubS4iLCJwcm9tcHRIZWFkIjoiQ2hvb3NlIHRoZSBvcHRpb24gdGhhdCB5b3UgcHJlZmVyLiBXaHkgZG8geW91IHByZWZlciB5b3VyIGNob2ljZT8gRXhwbGFpbiB0aGUgcmVhc29ucyBmb3IgeW91ciBjaG9pY2UuIFdyaXRlIGFib3V0IDE1MFx1MjAxMzIwMCB3b3Jkcy4iLCJidWxsZXRzIjpbXSwib3B0aW9ucyI6W3sia2V5IjoiQSIsImxhYmVsIjoiT3B0aW9uIEE6IEkgd291bGQgcHJlZmVyIHRvIHdvcmsgTW9uZGF5LCBXZWRuZXNkYXksIGFuZCBGcmlkYXkgZnJvbSAxOjAwIHAubS4gdG8gNjowMCBwLm0uIn0seyJrZXkiOiJCIiwibGFiZWwiOiJPcHRpb24gQjogSSB3b3VsZCBwcmVmZXIgdG8gd29yayBUdWVzZGF5LCBUaHVyc2RheSwgYW5kIFNhdHVyZGF5IGZyb20gMTA6MDAgYS5tLiB0byAzOjAwIHAubS4ifV0sInNhbU5vdGUiOiJUaGVzZSBhcmUgQWxsRW5nbGlzaDRVIG1vZGVsIGFuc3dlcnMgd3JpdHRlbiBmb3IgdGhpcyBleGFjdCBUYXNrIDIgb3Bpbmlvbi1zdXJ2ZXkgcHJvbXB0IChjaG9vc2luZyBiZXR3ZWVuIHR3byBwYXJ0LXRpbWUgc2NoZWR1bGVzOiBNb24vV2VkL0ZyaSBhZnRlcm5vb25zIHZlcnN1cyBUdWUvVGh1L1NhdCBtb3JuaW5ncyksIHNob3duIGF0IHRocmVlIHNjb3JlIGxldmVscyAoQ0VMUElQIDRcdTIwMTM1LCA3XHUyMDEzOCBhbmQgMTBcdTIwMTMxMikgc28geW91IGNhbiBzZWUgaG93IHRoZSBzYW1lIHRhc2sgcmVhZHMgYXMgaXQgaW1wcm92ZXMuIFRoZXkgYXJlIEFFNFUgc3R1ZHkgbW9kZWxzLCBub3Qgb2ZmaWNpYWwgQ0VMUElQIHNhbXBsZXM7IHRoZSA0XHUyMDEzNSBtb2RlbCBkZWxpYmVyYXRlbHkga2VlcHMgc29tZSBlcnJvcnMuIiwic2FtcGxlcyI6W3sibGV2ZWwiOiJDRUxQSVAgNFx1MjAxMzUgUmVzcG9uc2UiLCJub3RlIjoiT3B0aW9uIEIgZm9yIG1vcm5pbmcgZW5lcmd5IGFuZCBldmVuaW5nIHN0dWR5OyBzaW1wbGUgY29ubmVjdG9ycyBhbmQgYSBmaXJtLCBjbGVhciBwcmVmZXJlbmNlLiIsInRleHQiOiJJIGNob29zZSBPcHRpb24gQi4gSSB3b3VsZCBwcmVmZXIgdG8gd29yayBUdWVzZGF5LCBUaHVyc2RheSwgYW5kIFNhdHVyZGF5IGZyb20gMTA6MDAgYS5tLiB0byAzOjAwIHAubS5cblxuVGhlIGZpcnN0IHJlYXNvbiBpcyB0aGUgdGltZSBpbiB0aGUgZGF5LiBJIGFtIGEgbW9ybmluZyBwZXJzb24sIHNvIEkgaGF2ZSBtb3JlIGVuZXJneSBhdCAxMDowMCBhLm0uIHRoYW4gYXQgMTowMCBwLm0uIEluIHRoZSBhZnRlcm5vb24gSSB1c3VhbGx5IGZlZWwgc2xlZXB5IGFuZCBteSB3b3JrIGlzIG1vcmUgc2xvdy4gV2hlbiBJIHN0YXJ0IGluIHRoZSBtb3JuaW5nLCBJIGZpbmlzaCBteSB0YXNrcyBmYXN0ZXIgYW5kIEkgbWFrZSBsZXNzIG1pc3Rha2UuXG5cblRoZSBzZWNvbmQgcmVhc29uIGlzIG15IHN0dWR5LiBJIGFsc28gZ28gdG8gY29sbGVnZSBpbiB0aGUgZXZlbmluZywgZnJvbSBNb25kYXkgdG8gRnJpZGF5LiBJZiBJIHdvcmsgaW4gdGhlIGFmdGVybm9vbiBsaWtlIE9wdGlvbiBBLCBJIHdpbGwgYmUgdG9vIHRpcmVkIGZvciBteSBjbGFzcy4gQnV0IE9wdGlvbiBCIGZpbmlzaCBhdCAzOjAwIHAubS4sIHNvIEkgaGF2ZSB0aW1lIHRvIHJlc3QgYW5kIHRoZW4gZ28gdG8gc3R1ZHkuXG5cbkFsc28sIEkgZG9uJ3QgbWluZCB0byB3b3JrIG9uIFNhdHVyZGF5LiBNeSBmYW1pbHkgaXMgYnVzeSBvbiBTYXR1cmRheSBtb3JuaW5nIGFueXdheSwgc28gaXQgaXMgbm90IGEgcHJvYmxlbSBmb3IgbWUuIEFuZCB0aGUgb2ZmaWNlIGlzIG1vcmUgcXVpZXQgb24gU2F0dXJkYXksIHNvIEkgY2FuIGNvbmNlbnRyYXRlIHZlcnkgZ29vZC5cblxuRm9yIHRoZXNlIHJlYXNvbnMsIE9wdGlvbiBCIGlzIHRoZSBiZXN0IGNob2ljZSBmb3IgbWUuIEkgcmVhbGx5IHByZWZlciBPcHRpb24gQi4ifSx7ImxldmVsIjoiQ0VMUElQIDdcdTIwMTM4IFJlc3BvbnNlIiwibm90ZSI6Ik9wdGlvbiBBIGRlZmVuZGVkIHRocm91Z2ggd2Vla2VuZCBmYW1pbHkgdGltZSBhbmQgY2hpbGRjYXJlIGxvZ2lzdGljcywgd2l0aCBhIGZhaXIgY29uY2Vzc2lvbiB0byBjb2xsZWFndWVzLiIsInRleHQiOiJBZnRlciB0aGlua2luZyBjYXJlZnVsbHkgYWJvdXQgYm90aCBzY2hlZHVsZXMsIEkgd291bGQgY2hvb3NlIE9wdGlvbiBBOiB3b3JraW5nIE1vbmRheSwgV2VkbmVzZGF5LCBhbmQgRnJpZGF5IGZyb20gMTowMCBwLm0uIHRvIDY6MDAgcC5tLlxuXG5NeSBtYWluIHJlYXNvbiBpcyB0aGF0IHRoaXMgb3B0aW9uIGtlZXBzIG15IHdlZWtlbmQgY29tcGxldGVseSBmcmVlLiBPcHRpb24gQiB3b3VsZCByZXF1aXJlIG1lIHRvIHdvcmsgb24gU2F0dXJkYXlzLCB3aGljaCBpcyB0aGUgb25seSBkYXkgbXkgd2hvbGUgZmFtaWx5IGlzIHRvZ2V0aGVyLCBzaW5jZSBteSBodXNiYW5kIGhhcyBhIHN0YW5kYXJkIE1vbmRheS10by1GcmlkYXkgam9iLiBQcm90ZWN0aW5nIHRoYXQgc2hhcmVkIHRpbWUgbWF0dGVycyBtb3JlIHRvIG1lIHRoYW4gYWxtb3N0IGFueXRoaW5nIGVsc2UuXG5cblNlY29uZGx5LCBhbiBhZnRlcm5vb24gc3RhcnQgc3VpdHMgbXkgbGlmZSBmYXIgYmV0dGVyIHRoYW4gYW4gZWFybHkgb25lLiBJIGxvb2sgYWZ0ZXIgbXkgc29uIHVudGlsIHRoZSBzY2hvb2wgYnVzIGNvbGxlY3RzIGhpbSBhdCBub29uLCBzbyBiZWdpbm5pbmcgYXQgMTowMCBwLm0uIGxldHMgbWUgZmluaXNoIG15IHBhcmVudGluZyBkdXRpZXMgd2l0aG91dCBydXNoaW5nIG9yIHBheWluZyBmb3IgZXh0cmEgY2hpbGRjYXJlLiBBbiBlYXJsaWVyIHNjaGVkdWxlIHdvdWxkIGNyZWF0ZSBhIGdlbnVpbmUgcHJvYmxlbSBmb3IgbWUuXG5cbkkgZG8gcmVjb2duaXplIHRoYXQgc29tZSBjb2xsZWFndWVzIGxvdmUgbW9ybmluZ3MgYW5kIHdvdWxkIGhhcHBpbHkgdGFrZSB0aGUgU2F0dXJkYXkgc2hpZnQsIGFuZCB0aGF0IGlzIHBlcmZlY3RseSBmYWlyLiBIb3dldmVyLCBzaW5jZSB3ZSBhcmUgYmVpbmcgYXNrZWQgZm9yIGEgcGVyc29uYWwgcHJlZmVyZW5jZSwgbWluZSBpcyBjbGVhcjogdGhlIE1vbmRheSwgV2VkbmVzZGF5LCBhbmQgRnJpZGF5IGFmdGVybm9vbnMgZml0IG15IGZhbWlseSBhbmQgbXkgZW5lcmd5IGxldmVscyBhbG1vc3QgcGVyZmVjdGx5LlxuXG5Gb3IgYWxsIHRoZXNlIHJlYXNvbnMsIEkgd291bGQgcHJlZmVyIE9wdGlvbiBBLiJ9LHsibGV2ZWwiOiJDRUxQSVAgMTBcdTIwMTMxMiBSZXNwb25zZSIsIm5vdGUiOiJBIHJlZmxlY3RpdmUgT3B0aW9uIEIgY2FzZSBidWlsdCBvbiBwZWFrLWhvdXJzIHByb2R1Y3Rpdml0eSBhbmQgYSByZXN0IGRheSBiZXR3ZWVuIHNoaWZ0cywgY29uY2VkaW5nIHRoZSBTYXR1cmRheSBjb3N0LiIsInRleHQiOiJIYXZpbmcgd2VpZ2hlZCBib3RoIHByb3Bvc2FscyB3aXRoIHNvbWUgY2FyZSwgSSB3b3VsZCBjaG9vc2UgT3B0aW9uIEI6IFR1ZXNkYXksIFRodXJzZGF5LCBhbmQgU2F0dXJkYXkgZnJvbSAxMDowMCBhLm0uIHRvIDM6MDAgcC5tLlxuXG5NeSBmaXJzdCBjb25zaWRlcmF0aW9uIGlzIHByb2R1Y3Rpdml0eS4gTGlrZSBtYW55IHBlb3BsZSwgSSBkbyBteSBzaGFycGVzdCB0aGlua2luZyBpbiB0aGUgbGF0ZSBtb3JuaW5nLCB3aGVuIEkgYW0gcmVzdGVkIGFuZCB0aGUgZGF5IHN0aWxsIGZlZWxzIG9wZW4uIEEgc2hpZnQgdGhhdCBydW5zIGZyb20gdGVuIHVudGlsIHRocmVlIGNhcHR1cmVzIGV4YWN0bHkgdGhhdCB3aW5kb3csIHdoZXJlYXMgT3B0aW9uIEEgcHVzaGVzIHdvcmsgaW50byB0aGUgbGF0ZSBhZnRlcm5vb24sIHdoZW4gbXkgY29uY2VudHJhdGlvbiBpcyBhbHJlYWR5IGZhZGluZyBhbmQgc21hbGwgZXJyb3JzIGNyZWVwIGluLiBJZiB0aGUgY29tcGFueSB3YW50cyBteSBiZXN0IGhvdXJzLCB0aGUgbW9ybmluZyBpcyB3aGVyZSB0aGV5IGxpZS5cblxuTXkgc2Vjb25kIHJlYXNvbiBpcyB0aGUgcmh5dGhtIG9mIHRoZSB3ZWVrLiBTcHJlYWRpbmcgdGhyZWUgc2hpZnRzIGFjcm9zcyBUdWVzZGF5LCBUaHVyc2RheSwgYW5kIFNhdHVyZGF5IGxlYXZlcyBhIHJlc3QgZGF5IGJldHdlZW4gZWFjaCBvbmUsIHNvIEkgbmV2ZXIgYXJyaXZlIHdvcm4gZG93biBieSBjb25zZWN1dGl2ZSBkYXlzLiBUaGF0IHJlY292ZXJ5IGtlZXBzIG15IHBlcmZvcm1hbmNlIHN0ZWFkeSByYXRoZXIgdGhhbiBsZXR0aW5nIGl0IHNhZyB0b3dhcmQgdGhlIGVuZCBvZiBhIGJsb2NrLlxuXG5JIHdpbGwgaGFwcGlseSBjb25jZWRlIHRoZSBvYnZpb3VzIGRyYXdiYWNrOiBTYXR1cmRheSBpcyBwYXJ0IG9mIHRoZSB0cmFkaXRpb25hbCB3ZWVrZW5kLCBhbmQgY29sbGVhZ3VlcyB3aXRoIHlvdW5nIGZhbWlsaWVzIG1heSByZXNlbnQgZ2l2aW5nIGl0IHVwLiBGb3IgbWUsIHRob3VnaCwgU2F0dXJkYXlzIGFyZSBxdWlldCBhbmQgdW5odXJyaWVkLCBhbmQgYSBjYWxtIG9mZmljZSBpcyBwZXJmZWN0IGZvciBmb2N1c2VkIHdvcmsuXG5cblRha2luZyBlbmVyZ3ksIGNvbnNpc3RlbmN5LCBhbmQgbXkgb3duIGNpcmN1bXN0YW5jZXMgdG9nZXRoZXIsIG15IGZpcm0gcHJlZmVyZW5jZSBpcyBPcHRpb24gQi4ifV19XSwicnVicmljIjpbeyJrIjoiQ29udGVudCAvIENvaGVyZW5jZSIsImQiOiJBbGwgcmVxdWlyZWQgcG9pbnRzIGFyZSBjb3ZlcmVkIGFuZCBkZXZlbG9wZWQgd2l0aCBjbGVhciwgbG9naWNhbGx5IGNvbm5lY3RlZCBpZGVhcyBhbmQgcGFyYWdyYXBocy4ifSx7ImsiOiJWb2NhYnVsYXJ5IiwiZCI6IldvcmQgY2hvaWNlIGlzIHZhcmllZCwgcHJlY2lzZSBhbmQgc3VpdHMgdGhlIHRvbmUgKGEgc2VtaS1mb3JtYWwgZW1haWwgLyBhIHJlYXNvbmVkIG9waW5pb24pLiJ9LHsiayI6IlJlYWRhYmlsaXR5IiwiZCI6IkdyYW1tYXIsIHNwZWxsaW5nIGFuZCBwdW5jdHVhdGlvbiBhcmUgYWNjdXJhdGUgZW5vdWdoIHRoYXQgdGhlIHJlYWRlciBpcyBuZXZlciBzbG93ZWQgZG93bi4ifSx7ImsiOiJUYXNrIEZ1bGZpbGxtZW50IiwiZCI6IlRoZSByZXNwb25zZSBmaXRzIHRoZSBwdXJwb3NlIGFuZCBhdWRpZW5jZSwga2VlcHMgdGhlIDE1MFx1MjAxMzIwMCB3b3JkIGxlbmd0aCwgYW5kIHJlYWRzIGxpa2UgYSByZWFsIGVtYWlsIC8gc3VydmV5IGFuc3dlci4ifV0sInNjb3JpbmdOb3RlIjoiQ0VMUElQIFdyaXRpbmcgaXMgcmF0ZWQgYnkgaHVtYW4gcmF0ZXJzIG9uIGEgc2NhbGUgZnJvbSBNIHRvIDEyIHRoYXQgbWFwcyAxOjEgdG8gdGhlIENhbmFkaWFuIExhbmd1YWdlIEJlbmNobWFya3MgKENMQikuIEVhY2ggdGFzayBpcyBqdWRnZWQgaG9saXN0aWNhbGx5IG9uIGZvdXIgZGltZW5zaW9ucyBcdTIwMTQgQ29udGVudC9Db2hlcmVuY2UsIFZvY2FidWxhcnksIFJlYWRhYmlsaXR5IGFuZCBUYXNrIEZ1bGZpbGxtZW50LiBUaGVyZSBpcyBubyBzaW5nbGUgXHUyMDE4Y29ycmVjdFx1MjAxOSBhbnN3ZXIsIHNvIHVzZSB0aGUgc2FtcGxlIHJlc3BvbnNlcyBhbmQgdGhlIHNlbGYtY2hlY2sgYmVsb3cgdG8gc2VlIHdoZXJlIHlvdXIgd3JpdGluZyBzaXRzIGFuZCB3aGF0IHRvIGltcHJvdmUuIn07CihmdW5jdGlvbigpewogICJ1c2Ugc3RyaWN0IjsKICBpZih3aW5kb3cuX19jbHB3SW5pdCkgcmV0dXJuOyB3aW5kb3cuX19jbHB3SW5pdCA9IHRydWU7CgogIHZhciBMUyA9ICJhZTR1X2NscHdfczF0MV92MSI7CiAgdmFyIHN0YXRlID0geyBhY3RpdmU6MSwgc2FtcGxlczp7MTpmYWxzZSwyOmZhbHNlfSwgdGFiOnsxOjAsMjowfSwgb3B0Om51bGwsCiAgICAgICAgICAgICAgICB0ZXh0OnsxOiIiLDI6IiJ9LCBydWJyaWM6ezE6e30sMjp7fX0sCiAgICAgICAgICAgICAgICB0aW1lcjp7MTp7cmVtOldEQVRBLnRhc2tzWzBdLm1pbnV0ZXMqNjAscnVuOmZhbHNlLGl2Om51bGx9LAogICAgICAgICAgICAgICAgICAgICAgICAyOntyZW06V0RBVEEudGFza3NbMV0ubWludXRlcyo2MCxydW46ZmFsc2UsaXY6bnVsbH19IH07CgogIC8vIC0tLS0tLS0tLS0gaGVscGVycyAtLS0tLS0tLS0tCiAgZnVuY3Rpb24gZXNjKHMpeyByZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKTsgfQogIGZ1bmN0aW9uIHdjKHMpeyB2YXIgbT0oc3x8IiIpLnRyaW0oKS5tYXRjaCgvXFMrL2cpOyByZXR1cm4gbT9tLmxlbmd0aDowOyB9CiAgZnVuY3Rpb24gZm10KHNlYyl7IHNlYz1NYXRoLm1heCgwLHNlY3wwKTsgdmFyIG09TWF0aC5mbG9vcihzZWMvNjApLCBzPXNlYyU2MDsgcmV0dXJuIChtPDEwPyIwIjoiIikrbSsiOiIrKHM8MTA\/IjAiOiIiKStzOyB9CiAgZnVuY3Rpb24gbG9hZCgpeyB0cnl7IHZhciBvPUpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTFMpKTsgaWYobyYmdHlwZW9mIG89PT0ib2JqZWN0Iil7CiAgICAgICAgc3RhdGUudGV4dFsxXT1vLnQxfHwiIjsgc3RhdGUudGV4dFsyXT1vLnQyfHwiIjsgc3RhdGUub3B0PW8ub3B0fHxudWxsOwogICAgICAgIHN0YXRlLnJ1YnJpY1sxXT1vLnIxfHx7fTsgc3RhdGUucnVicmljWzJdPW8ucjJ8fHt9OyB9IH1jYXRjaChlKXt9IH0KICBmdW5jdGlvbiBzYXZlKCl7IHRyeXsgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTFMsIEpTT04uc3RyaW5naWZ5KHsKICAgICAgICB0MTpzdGF0ZS50ZXh0WzFdLCB0MjpzdGF0ZS50ZXh0WzJdLCBvcHQ6c3RhdGUub3B0LCByMTpzdGF0ZS5ydWJyaWNbMV0sIHIyOnN0YXRlLnJ1YnJpY1syXSB9KSk7IH1jYXRjaChlKXt9CiAgICAgICAgZmxhc2hTYXZlZCgpOyB9CiAgdmFyIHNhdmVkVE89bnVsbDsKICBmdW5jdGlvbiBmbGFzaFNhdmVkKCl7IHZhciBlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd1NhdmVkIik7IGlmKCFlbCkgcmV0dXJuOwogICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoImNscHctc2F2ZWQtb24iKTsgaWYoc2F2ZWRUTykgY2xlYXJUaW1lb3V0KHNhdmVkVE8pOwogICAgICAgIHNhdmVkVE89c2V0VGltZW91dChmdW5jdGlvbigpeyBlbC5jbGFzc0xpc3QucmVtb3ZlKCJjbHB3LXNhdmVkLW9uIik7IH0sMTIwMCk7IH0KCiAgLy8gLS0tLS0tLS0tLSBDU1MgLS0tLS0tLS0tLQogIHZhciBDU1MgPSAiIgogICsiLmNscHctd3JhcHstLW5hdnk6IzA1MEUyMDstLWI5MDA6IzBEMjM1MjstLWI3MDA6IzEyNDVBODstLWI1MDA6IzI1NjNFQjstLWI0MDA6IzNCODJGNjstLWIyMDA6IzkzQzVGRDstLWIxMDA6I0RCRUFGRTstLWI1MDojRUZGNkZGOy0tdGVhbDojMEQ5NDg4Oy0tZ3JlZW46IzEwQjk4MTstLWdyZWVuNTA6I0VDRkRGNTstLXJvc2U6I0Y0M0Y1RTstLXJvc2U1MDojRkZGMUYzOy0tb3JhbmdlOiNGOTczMTY7LS1hbWJlcjUwOiNGRkZCRUI7LS10ZXh0OiMwRjE3MkE7LS1tdXRlZDojNDc1NTY5Oy0tc3VidGxlOiM5NEEzQjg7LS1ib3JkZXI6I0UyRThGMDstLWNyaW1zb246I0I0MkIzQzstLXBhZ2U6I0Y4RkFGRjtmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLFNlZ29lIFVJLFJvYm90byxzYW5zLXNlcmlmO2NvbG9yOnZhcigtLXRleHQpO21heC13aWR0aDoxMTQwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjE2cHggMTZweCA1NnB4O2xpbmUtaGVpZ2h0OjEuNTU7Zm9udC1zaXplOjE2cHg7fSIKICArIi5jbHB3LXdyYXAgKiwuY2xwdy13cmFwICo6OmJlZm9yZSwuY2xwdy13cmFwICo6OmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDt9IgogICsiLmNscHctd3JhcCBidXR0b257Zm9udC1mYW1pbHk6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjt9IgogICsiLmNscHctd3JhcCBoMSwuY2xwdy13cmFwIGgyLC5jbHB3LXdyYXAgaDMsLmNscHctd3JhcCBwe21hcmdpbjowO30iCiAgLy8gaGVybwogICsiLmNscHctaGVyb3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoyMnB4O2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjM0cHggMzhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxM3B4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym94LXNoYWRvdzowIDIwcHggNDBweCAtMjBweCByZ2JhKDUsMTQsMzIsLjQ1KSwwIDRweCAxMnB4IC02cHggcmdiYSg1LDE0LDMyLC4zKTt9IgogICsiLmNscHctYXVyb3Jhe3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTt9IgogICsiLmNscHctYXVyb3JhIHNwYW57cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7ZmlsdGVyOmJsdXIoNjBweCk7b3BhY2l0eTouNTthbmltYXRpb246Y2xwd0Zsb2F0IDE0cyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7fSIKICArIi5jbHB3LWF1cm9yYSBzcGFuOm50aC1jaGlsZCgxKXt3aWR0aDo0MjBweDtoZWlnaHQ6NDIwcHg7bGVmdDotMTIwcHg7dG9wOi0yMDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzEyNDVBOCAwJSx0cmFuc3BhcmVudCA3MCUpO30iCiAgKyIuY2xwdy1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMil7d2lkdGg6MzgwcHg7aGVpZ2h0OjM4MHB4O3JpZ2h0Oi04MHB4O3RvcDotMTYwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMwRDk0ODggMCUsdHJhbnNwYXJlbnQgNzAlKTthbmltYXRpb24tZGVsYXk6LTRzO30iCiAgKyIuY2xwdy1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMyl7d2lkdGg6MzQwcHg7aGVpZ2h0OjM0MHB4O3JpZ2h0OjIyJTtib3R0b206LTI0MHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDAlLHRyYW5zcGFyZW50IDcwJSk7YW5pbWF0aW9uLWRlbGF5Oi04czt9IgogICsiQGtleWZyYW1lcyBjbHB3RmxvYXR7ZnJvbXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKDEpO310b3t0cmFuc2Zvcm06dHJhbnNsYXRlM2QoNDBweCwyNnB4LDApIHNjYWxlKDEuMTIpO319IgogICsiLmNscHctaGJhZGdlc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO30iCiAgKyIuY2xwdy1iYnJhbmR7YmFja2dyb3VuZDp2YXIoLS1jcmltc29uKTtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMTJlbTtwYWRkaW5nOjVweCAxMnB4O2JvcmRlci1yYWRpdXM6NnB4O30iCiAgKyIuY2xwdy1ic2V0e2NvbG9yOnZhcigtLWIyMDApO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDt9IgogICsiLmNscHctaGVybyBoMXtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6Y2xhbXAoMjZweCw0dncsNDBweCk7Zm9udC13ZWlnaHQ6ODAwO2xldHRlci1zcGFjaW5nOi0uMDJlbTtsaW5lLWhlaWdodDoxLjEyO30iCiAgKyIuY2xwdy1oZXJvLXN1Yntwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojQzdEMkU4O2ZvbnQtc2l6ZToxNXB4O21heC13aWR0aDo2MGNoO30iCiAgKyIuY2xwdy1oY2hpcHN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fSIKICArIi5jbHB3LWNoaXB7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE0NywxOTcsMjUzLC4yNSk7Y29sb3I6I0RCRUFGRTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7cGFkZGluZzo2cHggMTRweDtib3JkZXItcmFkaXVzOjMycHg7YmFja2Ryb3AtZmlsdGVyOmJsdXIoNHB4KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGVhc2UsYmFja2dyb3VuZCAuMjVzIGVhc2U7fSIKICArIi5jbHB3LWNoaXA6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xNSk7fSIKICArIi5jbHB3LWN0YXtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoxMHB4O2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjEzcHggMzRweDttYXJnaW4tdG9wOjJweDtib3gtc2hhZG93OjAgMTBweCAyMnB4IC04cHggcmdiYSgzNyw5OSwyMzUsLjY1KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjJzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2UsYmFja2dyb3VuZCAuMjJzIGVhc2U7fSIKICArIi5jbHB3LWN0YTpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtiYWNrZ3JvdW5kOnZhcigtLWI0MDApO2JveC1zaGFkb3c6MCAxNHB4IDI2cHggLThweCByZ2JhKDM3LDk5LDIzNSwuNzUpO30iCiAgLy8gdG9vbGJhcgogICsiLmNscHctdG9vbHN7cG9zaXRpb246c3RpY2t5O3RvcDo4cHg7ei1pbmRleDo2MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOTMpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTZweDtwYWRkaW5nOjhweCAxMnB4O21hcmdpbjoxOHB4IDAgMDtib3gtc2hhZG93OjAgOHB4IDI0cHggLTE0cHggcmdiYSgxNSwyMyw0MiwuMjUpLDAgMnB4IDZweCAtNHB4IHJnYmEoMTUsMjMsNDIsLjEyKTttaW4taGVpZ2h0OjUycHg7fSIKICArIi5jbHB3LXdjb3VudHtmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tYjkwMCk7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7Ym9yZGVyLXJhZGl1czozMnB4O3BhZGRpbmc6N3B4IDE0cHg7fSIKICArIi5jbHB3LXNwYWNlcntmbGV4OjE7fSIKICArIi5jbHB3LXNhdmVke2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1ncmVlbik7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9IgogICsiLmNscHctc2F2ZWQtb257b3BhY2l0eToxO30iCiAgKyIuY2xwdy10YnRue2JvcmRlci1yYWRpdXM6MTBweDtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7cGFkZGluZzo5cHggMTZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLW11dGVkKTttaW4taGVpZ2h0OjQwcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2UsYm94LXNoYWRvdyAuMnMgZWFzZSxiYWNrZ3JvdW5kIC4ycyBlYXNlO30iCiAgKyIuY2xwdy10YnRuOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTRweCAtOHB4IHJnYmEoMTUsMjMsNDIsLjMpO30iCiAgLy8gZG90cwogICsiLmNscHctc2lte21hcmdpbi10b3A6MThweDt9IgogICsiLmNscHctZG90c3tkaXNwbGF5OmZsZXg7Z2FwOjZweDttYXJnaW46MCAwIDEwcHggMnB4O30iCiAgKyIuY2xwdy1kb3R7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1zdWJ0bGUpO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtib3JkZXItcmFkaXVzOjMycHg7cGFkZGluZzo1cHggMTRweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjI1cyBlYXNlLGNvbG9yIC4yNXMgZWFzZTt9IgogICsiLmNscHctZG90Lm9ue2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7fSIKICArIi5jbHB3LWRvdC5maWxsZWR7YmFja2dyb3VuZDp2YXIoLS1iMTAwKTtib3JkZXItY29sb3I6dmFyKC0tYjIwMCk7Y29sb3I6dmFyKC0tYjkwMCk7fSIKICAvLyBjYXQgY2FyZAogICsiLmNscHctY2F0e3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgI0QzRDlFMDtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDojZmZmO2JveC1zaGFkb3c6MCAxMHB4IDMwcHggLTE4cHggcmdiYSgxNSwyMyw0MiwuMjIpLDAgMnB4IDhweCAtNXB4IHJnYmEoMTUsMjMsNDIsLjEpO30iCiAgKyIuY2xwdy10YXNre2Rpc3BsYXk6bm9uZTt9IgogICsiLmNscHctdGFzay5vbntkaXNwbGF5OmJsb2NrO30iCiAgKyIuY2xwdy1iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtiYWNrZ3JvdW5kOiNFOEVCRUY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI0QzRDlFMDtib3JkZXItcmFkaXVzOjEwcHggMTBweCAwIDA7cGFkZGluZzo5cHggMTRweDttaW4taGVpZ2h0OjQ0cHg7fSIKICArIi5jbHB3LWJhci10e2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMUYyOTM3O2ZsZXg6MTttaW4td2lkdGg6MDt9IgogICsiLmNscHctYmFyLXRpbWV7Zm9udC1zaXplOjEycHg7Y29sb3I6IzFGMjkzNzt3aGl0ZS1zcGFjZTpub3dyYXA7fSIKICArIi5jbHB3LWJhci10aW1lIGJ7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtczt9IgogICsiLmNscHctYmFyLXRpbWUubG93IGJ7Y29sb3I6dmFyKC0tcm9zZSk7fSIKICAvLyBzcGxpdAogICsiLmNscHctc3BsaXR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMjIwcHgsMjkwcHgpIDFmcjt9IgogICsiLmNscHctcmVhZHtiYWNrZ3JvdW5kOiNGNEY2Rjg7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjRTNFNkVBO3BhZGRpbmc6MTZweCAxNnB4IDE4cHg7fSIKICArIi5jbHB3LXdyaXRle2JhY2tncm91bmQ6I0VBRjRGNztwYWRkaW5nOjE2cHggMThweCAxOHB4O30iCiAgKyIuY2xwdy1yaGVhZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OHB4O21hcmdpbi1ib3R0b206OHB4O30iCiAgKyIuY2xwdy1pbmZve2ZsZXg6bm9uZTt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O21hcmdpbi10b3A6MXB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjExcHg7Zm9udC1zdHlsZTppdGFsaWM7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LWZhbWlseTpHZW9yZ2lhLHNlcmlmO30iCiAgKyIuY2xwdy1yaGVhZCBwe2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iOTAwKTt9IgogICsiLmNscHctc2NlbmFyaW8taHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo4MDA7Y29sb3I6IzMzNDE1NTttYXJnaW4tYm90dG9tOjRweDt9IgogICsiLmNscHctc2NlbmFyaW97Zm9udC1zaXplOjEzLjVweDtjb2xvcjojMzM0MTU1O2xpbmUtaGVpZ2h0OjEuNjt9IgogICsiLmNscHctc2FtdG9nZ2xle21hcmdpbi10b3A6MTRweDt3aWR0aDoxMDAlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY3JpbXNvbik7Y29sb3I6dmFyKC0tY3JpbXNvbik7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMy41cHg7Ym9yZGVyLXJhZGl1czo5cHg7cGFkZGluZzoxMXB4IDEycHg7dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycyBlYXNlLGNvbG9yIC4ycyBlYXNlO30iCiAgKyIuY2xwdy1zYW10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1jcmltc29uKTtjb2xvcjojZmZmO30iCiAgKyIuY2xwdy1wcm9tcHRyb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjhweDttYXJnaW4tYm90dG9tOjhweDt9IgogICsiLmNscHctcHJvbXB0cm93IHB7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO30iCiAgKyIuY2xwdy1idWxsZXRze21hcmdpbjowIDAgMTJweCAwO3BhZGRpbmctbGVmdDoyMHB4O2NvbG9yOiMzMzQxNTU7Zm9udC1zaXplOjEzLjVweDt9IgogICsiLmNscHctYnVsbGV0cyBsaXttYXJnaW46M3B4IDA7fSIKICArIi5jbHB3LW9wdHN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O21hcmdpbjowIDAgMTJweDt9IgogICsiLmNscHctb3B0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDo5cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0Q2RThFRDtib3JkZXItcmFkaXVzOjlweDtwYWRkaW5nOjEwcHggMTJweDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTMuNXB4O2NvbG9yOiMzMzQxNTU7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzIGVhc2UsYmFja2dyb3VuZCAuMnMgZWFzZTt9IgogICsiLmNscHctb3B0OmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9IgogICsiLmNscHctb3B0LnNlbHtib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7YmFja2dyb3VuZDp2YXIoLS1iNTApO30iCiAgKyIuY2xwdy1vcHQgaW5wdXR7bWFyZ2luLXRvcDozcHg7YWNjZW50LWNvbG9yOnZhcigtLWI1MDApO2ZsZXg6bm9uZTt9IgogICsiLmNscHctdGF7d2lkdGg6MTAwJTttaW4taGVpZ2h0OjI2MHB4O3Jlc2l6ZTp2ZXJ0aWNhbDtib3JkZXI6MXB4IHNvbGlkICNDOUQ2RGM7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzoxM3B4IDE0cHg7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNjtjb2xvcjojMEYxNzJBO2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93Omluc2V0IDAgMXB4IDNweCByZ2JhKDE1LDIzLDQyLC4wNSk7fSIKICArIi5jbHB3LXRhOmZvY3Vze291dGxpbmU6bm9uZTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7Ym94LXNoYWRvdzowIDAgMCAzcHggcmdiYSg1OSwxMzAsMjQ2LC4xNSk7fSIKICArIi5jbHB3LXdtZXRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6OXB4O30iCiAgKyIuY2xwdy13cGlsbHtmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjEzcHg7Ym9yZGVyLXJhZGl1czozMnB4O3BhZGRpbmc6NnB4IDE0cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7fSIKICArIi5jbHB3LXdwaWxsLmxvd3tjb2xvcjp2YXIoLS1tdXRlZCk7fSIKICArIi5jbHB3LXdwaWxsLmdvb2R7Y29sb3I6IzA0Nzg1NztiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApO2JvcmRlci1jb2xvcjojQTdGM0QwO30iCiAgKyIuY2xwdy13cGlsbC5vdmVye2NvbG9yOiNCNDUzMDk7YmFja2dyb3VuZDp2YXIoLS1hbWJlcjUwKTtib3JkZXItY29sb3I6I0ZERTY4QTt9IgogICsiLmNscHctd3BpbGwubWF4e2NvbG9yOiNCRTEyM0M7YmFja2dyb3VuZDp2YXIoLS1yb3NlNTApO2JvcmRlci1jb2xvcjojRkVDREQzO30iCiAgKyIuY2xwdy10bXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O21hcmdpbi1sZWZ0OmF1dG87fSIKICArIi5jbHB3LXRtci1idG57Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMi41cHg7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzo3cHggMTJweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjJzIGVhc2UsY29sb3IgLjJzIGVhc2UsYm9yZGVyLWNvbG9yIC4ycyBlYXNlO30iCiAgKyIuY2xwdy10bXItYnRuOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTtjb2xvcjp2YXIoLS1iNzAwKTt9IgogICsiLmNscHctdG1yLWJ0bi5ydW57YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjt9IgogIC8vIHNhbXBsZSBwYW5lbAogICsiLmNscHctc2FtcGxlc3ttYXJnaW4tdG9wOjE0cHg7Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNEM0Q5RTA7cGFkZGluZzoxNnB4IDE4cHggMjBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czowIDAgMTBweCAxMHB4O30iCiAgKyIuY2xwdy1zYW1wbGVzW2hpZGRlbl17ZGlzcGxheTpub25lO30iCiAgKyIuY2xwdy1zYW1ub3Rle2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpO21hcmdpbi1ib3R0b206MTJweDt9IgogICsiLmNscHctdGFic3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tYm90dG9tOjEycHg7fSIKICArIi5jbHB3LXRhYntib3JkZXI6MXB4IHNvbGlkICNEOURFRTU7YmFja2dyb3VuZDojRjFGM0Y2O2NvbG9yOiM0NzU1Njk7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxM3B4O2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6OXB4IDE2cHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycyBlYXNlLGNvbG9yIC4ycyBlYXNlO30iCiAgKyIuY2xwdy10YWIub257YmFja2dyb3VuZDp2YXIoLS1jcmltc29uKTtib3JkZXItY29sb3I6dmFyKC0tY3JpbXNvbik7Y29sb3I6I2ZmZjt9IgogICsiLmNscHctc2FtYm9keXtiYWNrZ3JvdW5kOiNGN0Y4RkE7Ym9yZGVyOjFweCBzb2xpZCAjRTdFQUVFO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjE2cHggMThweDt9IgogICsiLmNscHctc2FtbHZse2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzouMDZlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tY3JpbXNvbik7bWFyZ2luLWJvdHRvbTo4cHg7fSIKICArIi5jbHB3LXNhbXRleHR7Zm9udC1zaXplOjE0cHg7Y29sb3I6IzFGMjkzNztsaW5lLWhlaWdodDoxLjc7d2hpdGUtc3BhY2U6cHJlLXdyYXA7fSIKICArIi5jbHB3LXNhbWhpbnR7bWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6IzQ3NTU2OTtiYWNrZ3JvdW5kOiNFRUYyRkY7Ym9yZGVyOjFweCBzb2xpZCAjREJFM0ZGO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6OXB4IDEycHg7fSIKICArIi5jbHB3LXNhbWhpbnQgYntjb2xvcjp2YXIoLS1iOTAwKTt9IgogIC8vIHJ1YnJpYyAvIHNjb3JpbmcKICArIi5jbHB3LXBhbmVse21hcmdpbi10b3A6MThweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTZweDtwYWRkaW5nOjIwcHggMjJweDtib3gtc2hhZG93OjAgMTBweCAzMHB4IC0yMHB4IHJnYmEoMTUsMjMsNDIsLjIpO30iCiAgKyIuY2xwdy1wYW5lbCBoMntmb250LXNpemU6MTlweDtmb250LXdlaWdodDo4MDA7Y29sb3I6dmFyKC0tYjkwMCk7bWFyZ2luLWJvdHRvbTo0cHg7fSIKICArIi5jbHB3LXBhbmVsIC5jbHB3LWxlYWR7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS1tdXRlZCk7bWFyZ2luLWJvdHRvbToxNHB4O30iCiAgKyIuY2xwdy1ydWJncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTBweDt9IgogICsiLmNscHctcnVie2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjExcHg7cGFkZGluZzoxMnB4IDE0cHg7YmFja2dyb3VuZDojRkNGREZGO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4ycyBlYXNlLGJhY2tncm91bmQgLjJzIGVhc2U7fSIKICArIi5jbHB3LXJ1Yjpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fSIKICArIi5jbHB3LXJ1Yi5kb25le2JvcmRlci1jb2xvcjojQTdGM0QwO2JhY2tncm91bmQ6dmFyKC0tZ3JlZW41MCk7fSIKICArIi5jbHB3LXJ1YiBpbnB1dHttYXJnaW4tdG9wOjNweDthY2NlbnQtY29sb3I6dmFyKC0tZ3JlZW4pO2ZsZXg6bm9uZTt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O30iCiAgKyIuY2xwdy1ydWIta3tmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS1iOTAwKTt9IgogICsiLmNscHctcnViLWR7Zm9udC1zaXplOjEyLjVweDtjb2xvcjp2YXIoLS1tdXRlZCk7bGluZS1oZWlnaHQ6MS41O21hcmdpbi10b3A6MnB4O30iCiAgKyIuY2xwdy1zY29yZWJveHttYXJnaW4tdG9wOjE0cHg7Zm9udC1zaXplOjEzcHg7Y29sb3I6IzMzNDE1NTtsaW5lLWhlaWdodDoxLjY7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTRweCAxNnB4O30iCiAgKyIuY2xwdy1zY29yZWJveCBie2NvbG9yOnZhcigtLWI5MDApO30iCiAgKyIuY2xwdy1jbGJyb3d7ZGlzcGxheTpmbGV4O2dhcDo4cHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxMnB4O30iCiAgKyIuY2xwdy1jbGJ0YWd7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI3MDApO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO2JvcmRlci1yYWRpdXM6MzJweDtwYWRkaW5nOjZweCAxM3B4O30iCiAgKyIuY2xwdy1mb290e21hcmdpbi10b3A6MTZweDtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1zdWJ0bGUpO3RleHQtYWxpZ246Y2VudGVyO30iCiAgKyJAbWVkaWEobWF4LXdpZHRoOjgyMHB4KXsuY2xwdy1zcGxpdHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO30uY2xwdy1yZWFke2JvcmRlci1yaWdodDpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNFM0U2RUE7fS5jbHB3LXJ1YmdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmNscHctaGVyb3twYWRkaW5nOjI2cHggMjJweDt9fSIKICA7CgogIGZ1bmN0aW9uIGluamVjdENTUygpeyBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd1N0eWxlIikpIHJldHVybjsKICAgIHZhciBzdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOyBzdC5pZD0iY2xwd1N0eWxlIjsgc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoQ1NTKSk7CiAgICAoZG9jdW1lbnQuaGVhZHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBlbmRDaGlsZChzdCk7IH0KCiAgLy8gLS0tLS0tLS0tLSBidWlsZCAtLS0tLS0tLS0tCiAgZnVuY3Rpb24gdGFza0hUTUwodCl7CiAgICB2YXIgZD1XREFUQS50YXNrc1t0LTFdOyB2YXIgaD0iIjsKICAgIGgrPSc8ZGl2IGNsYXNzPSJjbHB3LXRhc2snKyh0PT09c3RhdGUuYWN0aXZlPycgb24nOicnKSsnIiBkYXRhLXRhc2s9IicrdCsnIiBpZD0iY2xwd1Rhc2snK3QrJyI+JzsKICAgIGgrPSAnPGRpdiBjbGFzcz0iY2xwdy1iYXIiPjxzcGFuIGNsYXNzPSJjbHB3LWJhci10Ij4nK2VzYyhkLmJhclRpdGxlKSsnPC9zcGFuPicKICAgICAgICsnPHNwYW4gY2xhc3M9ImNscHctYmFyLXRpbWUiIGlkPSJjbHB3QmFyVGltZScrdCsnIj5UaW1lIHJlbWFpbmluZzogPGI+JytmbXQoc3RhdGUudGltZXJbdF0ucmVtKSsnPC9iPjwvc3Bhbj4nCiAgICAgICArJzxidXR0b24gY2xhc3M9ImNscHctdG1yLWJ0biIgZGF0YS10bmV4dD0iJyt0KyciPicrKHQ8V0RBVEEudGFza3MubGVuZ3RoPydORVhUJzonRE9ORScpKyc8L2J1dHRvbj48L2Rpdj4nOwogICAgaCs9ICc8ZGl2IGNsYXNzPSJjbHB3LXNwbGl0Ij4nOwogICAgLy8gbGVmdAogICAgaCs9ICAnPGRpdiBjbGFzcz0iY2xwdy1yZWFkIj4nOwogICAgaCs9ICAgJzxkaXYgY2xhc3M9ImNscHctcmhlYWQiPjxzcGFuIGNsYXNzPSJjbHB3LWluZm8iPmk8L3NwYW4+PHA+Jytlc2MoZC5yZWFkSGVhZCkrJzwvcD48L2Rpdj4nOwogICAgaWYoZC5zY2VuYXJpb0hlYWQpeyBoKz0nPGRpdiBjbGFzcz0iY2xwdy1zY2VuYXJpby1oIj4nK2VzYyhkLnNjZW5hcmlvSGVhZCkrJzwvZGl2Pic7IH0KICAgIGgrPSAgICc8ZGl2IGNsYXNzPSJjbHB3LXNjZW5hcmlvIj4nK2VzYyhkLnNjZW5hcmlvKSsnPC9kaXY+JzsKICAgIGgrPSAgICc8YnV0dG9uIGNsYXNzPSJjbHB3LXNhbXRvZ2dsZSIgZGF0YS1zYW10b2dnbGU9IicrdCsnIj5DbGljayBoZXJlIHRvIHZpZXcgc2FtcGxlIHJlc3BvbnNlczwvYnV0dG9uPic7CiAgICBoKz0gICc8L2Rpdj4nOwogICAgLy8gcmlnaHQKICAgIGgrPSAgJzxkaXYgY2xhc3M9ImNscHctd3JpdGUiPic7CiAgICBoKz0gICAnPGRpdiBjbGFzcz0iY2xwdy1wcm9tcHRyb3ciPjxzcGFuIGNsYXNzPSJjbHB3LWluZm8iPmk8L3NwYW4+PHA+Jytlc2MoZC5wcm9tcHRIZWFkKSsnPC9wPjwvZGl2Pic7CiAgICBpZihkLmJ1bGxldHMgJiYgZC5idWxsZXRzLmxlbmd0aCl7IGgrPSc8dWwgY2xhc3M9ImNscHctYnVsbGV0cyI+JzsgZC5idWxsZXRzLmZvckVhY2goZnVuY3Rpb24oYil7IGgrPSc8bGk+Jytlc2MoYikrJzwvbGk+JzsgfSk7IGgrPSc8L3VsPic7IH0KICAgIGlmKGQub3B0aW9ucyl7IGgrPSc8ZGl2IGNsYXNzPSJjbHB3LW9wdHMiPic7IGQub3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG8pewogICAgICAgIGgrPSc8bGFiZWwgY2xhc3M9ImNscHctb3B0Jysoc3RhdGUub3B0PT09by5rZXk\/JyBzZWwnOicnKSsnIiBkYXRhLW9wdHdyYXA9Iicrby5rZXkrJyI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJjbHB3T3B0IiB2YWx1ZT0iJytvLmtleSsnIicrKHN0YXRlLm9wdD09PW8ua2V5PycgY2hlY2tlZCc6JycpKyc+PHNwYW4+Jytlc2Moby5sYWJlbCkrJzwvc3Bhbj48L2xhYmVsPic7IH0pOwogICAgICAgIGgrPSc8L2Rpdj4nOyB9CiAgICBoKz0gICAnPHRleHRhcmVhIGNsYXNzPSJjbHB3LXRhIiBpZD0iY2xwd1RhJyt0KyciIGRhdGEtdGE9IicrdCsnIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIHJlc3BvbnNlIGhlcmUuLi4iPicrZXNjKHN0YXRlLnRleHRbdF0pKyc8L3RleHRhcmVhPic7CiAgICBoKz0gICAnPGRpdiBjbGFzcz0iY2xwdy13bWV0ZXIiPic7CiAgICBoKz0gICAgICc8c3BhbiBjbGFzcz0iY2xwdy13cGlsbCIgaWQ9ImNscHdXcGlsbCcrdCsnIj4wIHdvcmRzPC9zcGFuPic7CiAgICBoKz0gICAgICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjVweDtjb2xvcjojNjQ3NDhCOyI+YWltICcrZXNjKGQud29yZEFpbSkrJzwvc3Bhbj4nOwogICAgaCs9ICAgICAnPHNwYW4gY2xhc3M9ImNscHctdG1yIj4nCiAgICAgICAgICAgICArJzxidXR0b24gY2xhc3M9ImNscHctdG1yLWJ0biIgZGF0YS10c3RhcnQ9IicrdCsnIj5TdGFydCB0aW1lcjwvYnV0dG9uPicKICAgICAgICAgICAgICsnPGJ1dHRvbiBjbGFzcz0iY2xwdy10bXItYnRuIiBkYXRhLXRyZXNldD0iJyt0KyciPlJlc2V0PC9idXR0b24+PC9zcGFuPic7CiAgICBoKz0gICAnPC9kaXY+JzsKICAgIGgrPSAgJzwvZGl2Pic7CiAgICBoKz0gJzwvZGl2Pic7IC8vIHNwbGl0CiAgICAvLyBzYW1wbGVzCiAgICBoKz0gJzxkaXYgY2xhc3M9ImNscHctc2FtcGxlcyIgaWQ9ImNscHdTYW0nK3QrJyIgaGlkZGVuPic7CiAgICBoKz0gICAnPGRpdiBjbGFzcz0iY2xwdy1zYW1ub3RlIj4nKyhkLnNhbU5vdGU\/ZC5zYW1Ob3RlOidUaGVzZSBhcmUgdGhlIG9mZmljaWFsIHByYWN0aWNlIHNhbXBsZSByZXNwb25zZXMgYXQgdGhyZWUgc2NvcmUgbGV2ZWxzLiBMb3dlci1sZXZlbCBzYW1wbGVzIGtlZXAgdGhlaXIgb3JpZ2luYWwgbWlzdGFrZXMgb24gcHVycG9zZSAmbWRhc2g7IHN0dWR5IHdoYXQgY2hhbmdlcyBhcyB0aGUgc2NvcmUgcmlzZXMuJykrJzwvZGl2Pic7CiAgICBoKz0gICAnPGRpdiBjbGFzcz0iY2xwdy10YWJzIiBpZD0iY2xwd1RhYnMnK3QrJyI+JzsKICAgIGQuc2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHMsaSl7IGgrPSc8YnV0dG9uIGNsYXNzPSJjbHB3LXRhYicrKGk9PT0wPycgb24nOicnKSsnIiBkYXRhLXRhYj0iJyt0KyciIGRhdGEtaT0iJytpKyciPicrZXNjKHMubGV2ZWwpKyc8L2J1dHRvbj4nOyB9KTsKICAgIGgrPSAgICc8L2Rpdj4nOwogICAgaCs9ICAgJzxkaXYgY2xhc3M9ImNscHctc2FtYm9keSIgaWQ9ImNscHdTYW1Cb2R5Jyt0KyciPjwvZGl2Pic7CiAgICBoKz0gJzwvZGl2Pic7CiAgICBoKz0nPC9kaXY+JzsKICAgIHJldHVybiBoOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyKCl7CiAgICB2YXIgcm9vdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd0FwcCIpOyBpZighcm9vdCkgcmV0dXJuOwogICAgdmFyIG09V0RBVEEubWV0YSwgaD0iIjsKICAgIC8vIGhlcm8KICAgIGgrPSc8c2VjdGlvbiBjbGFzcz0iY2xwdy1oZXJvIj48ZGl2IGNsYXNzPSJjbHB3LWF1cm9yYSI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9kaXY+JzsKICAgIGgrPSAnPGRpdiBjbGFzcz0iY2xwdy1oYmFkZ2VzIj48c3BhbiBjbGFzcz0iY2xwdy1iYnJhbmQiPicrZXNjKG0uYnJhbmQpKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNscHctYnNldCI+Jytlc2MobS5zZXQpKyc8L3NwYW4+PC9kaXY+JzsKICAgIGgrPSAnPGgxPicrZXNjKG0udGl0bGUpKyc8L2gxPic7CiAgICBoKz0gJzxwIGNsYXNzPSJjbHB3LWhlcm8tc3ViIj5Xcml0ZSB5b3VyIHJlc3BvbnNlLCB0aW1lIHlvdXJzZWxmLCB0aGVuIGNvbXBhcmUgaXQgd2l0aCBvZmZpY2lhbCBzYW1wbGUgYW5zd2VycyBhdCB0aHJlZSBzY29yZSBsZXZlbHMgJm1kYXNoOyBDRUxQSVAgNCZuZGFzaDs1LCA3Jm5kYXNoOzggYW5kIDEwJm5kYXNoOzEyLjwvcD4nOwogICAgaCs9ICc8ZGl2IGNsYXNzPSJjbHB3LWhjaGlwcyI+PHNwYW4gY2xhc3M9ImNscHctY2hpcCI+MiB0YXNrczwvc3Bhbj48c3BhbiBjbGFzcz0iY2xwdy1jaGlwIj5+JyttLnRvdGFsTWluKycgbWludXRlczwvc3Bhbj48c3BhbiBjbGFzcz0iY2xwdy1jaGlwIj4xNTAmbmRhc2g7MjAwIHdvcmRzIGVhY2g8L3NwYW4+PHNwYW4gY2xhc3M9ImNscHctY2hpcCI+U2FtcGxlIGFuc3dlcnMgaW5jbHVkZWQ8L3NwYW4+PC9kaXY+JzsKICAgIGgrPSAnPGJ1dHRvbiBjbGFzcz0iY2xwdy1jdGEiIGlkPSJjbHB3U3RhcnQiPlN0YXJ0IHdyaXRpbmc8L2J1dHRvbj4nOwogICAgaCs9Jzwvc2VjdGlvbj4nOwogICAgLy8gdG9vbGJhcgogICAgaCs9JzxkaXYgY2xhc3M9ImNscHctdG9vbHMiPjxzcGFuIGNsYXNzPSJjbHB3LXdjb3VudCIgaWQ9ImNscHdUb3RXb3JkcyI+V29yZHMgJm1kYXNoOyBUYXNrIDE6IDAgJm1pZGRvdDsgVGFzayAyOiAwPC9zcGFuPjxzcGFuIGNsYXNzPSJjbHB3LXNhdmVkIiBpZD0iY2xwd1NhdmVkIj5EcmFmdCBzYXZlZCAmIzEwMDAzOzwvc3Bhbj48c3BhbiBjbGFzcz0iY2xwdy1zcGFjZXIiPjwvc3Bhbj48YnV0dG9uIGNsYXNzPSJjbHB3LXRidG4iIGlkPSJjbHB3UmVzZXRBbGwiPlJlc2V0IGFsbDwvYnV0dG9uPjwvZGl2Pic7CiAgICAvLyBzaW0KICAgIGgrPSc8c2VjdGlvbiBjbGFzcz0iY2xwdy1zaW0iPjxkaXYgY2xhc3M9ImNscHctZG90cyIgaWQ9ImNscHdEb3RzIj4nOwogICAgV0RBVEEudGFza3MuZm9yRWFjaChmdW5jdGlvbihkKXsgaCs9JzxidXR0b24gY2xhc3M9ImNscHctZG90IiBkYXRhLWRvdD0iJytkLmlkKyciPlRhc2sgJytkLmlkKycgJm1pZGRvdDsgJytlc2MoZC5uYW1lKSsnPC9idXR0b24+JzsgfSk7CiAgICBoKz0nPC9kaXY+PGRpdiBjbGFzcz0iY2xwdy1jYXQiIGlkPSJjbHB3Q2F0Ij4nOwogICAgV0RBVEEudGFza3MuZm9yRWFjaChmdW5jdGlvbihkKXsgaCs9dGFza0hUTUwoZC5pZCk7IH0pOwogICAgaCs9JzwvZGl2Pjwvc2VjdGlvbj4nOwogICAgLy8gcnVicmljIHBhbmVsCiAgICBoKz0nPHNlY3Rpb24gY2xhc3M9ImNscHctcGFuZWwiPjxoMj5TY29yZSB5b3VyIG93biB3cml0aW5nPC9oMj48cCBjbGFzcz0iY2xwdy1sZWFkIj5UaGVyZSBpcyBubyBhbnN3ZXIga2V5IGZvciBXcml0aW5nLiBSYXRlIGVhY2ggcmVzcG9uc2UgYWdhaW5zdCB0aGUgZm91ciBvZmZpY2lhbCBDRUxQSVAgZGltZW5zaW9ucy48L3A+JzsKICAgIGgrPSc8ZGl2IGNsYXNzPSJjbHB3LXJ1YmdyaWQiIGlkPSJjbHB3UnViR3JpZCI+PC9kaXY+JzsKICAgIGgrPSc8ZGl2IGNsYXNzPSJjbHB3LXNjb3JlYm94Ij4nK2VzYyhXREFUQS5zY29yaW5nTm90ZSkrJzxkaXYgY2xhc3M9ImNscHctY2xicm93Ij48c3BhbiBjbGFzcz0iY2xwdy1jbGJ0YWciPk08L3NwYW4+PHNwYW4gY2xhc3M9ImNscHctY2xidGFnIj5DTEIgNCZuZGFzaDs1ICZyYXJyOyBkZXZlbG9waW5nPC9zcGFuPjxzcGFuIGNsYXNzPSJjbHB3LWNsYnRhZyI+Q0xCIDcmbmRhc2g7OCAmcmFycjsgYWRlcXVhdGUmbmRhc2g7Z29vZDwvc3Bhbj48c3BhbiBjbGFzcz0iY2xwdy1jbGJ0YWciPkNMQiA5Jm5kYXNoOzEyICZyYXJyOyBzdHJvbmc8L3NwYW4+PC9kaXY+PC9kaXY+JzsKICAgIGgrPSc8L3NlY3Rpb24+JzsKICAgIGgrPSc8ZGl2IGNsYXNzPSJjbHB3LWZvb3QiPkFsbEVuZ2xpc2g0VSAmbWlkZG90OyBDRUxQSVAgV3JpdGluZyBQcmFjdGljZSAmbWlkZG90OyAnK2VzYyhXREFUQS5tZXRhLnNldCkrJzwvZGl2Pic7CiAgICByb290LmlubmVySFRNTD1oOwogICAgYnVpbGRSdWJyaWMoKTsKICAgIFdEQVRBLnRhc2tzLmZvckVhY2goZnVuY3Rpb24oZCl7IHJlbmRlclNhbXBsZShkLmlkKTsgdXBkYXRlV0MoZC5pZCk7IH0pOwogICAgd2lyZUV2ZW50cygpOwogICAgcmVmcmVzaERvdHMoKTsKICAgIHVwZGF0ZVRvdGFscygpOwogIH0KCiAgZnVuY3Rpb24gYnVpbGRSdWJyaWMoKXsKICAgIHZhciBnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbHB3UnViR3JpZCIpOyBpZighZykgcmV0dXJuOyB2YXIgaD0iIjsKICAgIFdEQVRBLnJ1YnJpYy5mb3JFYWNoKGZ1bmN0aW9uKHIsaSl7CiAgICAgIHZhciBvbiA9IHN0YXRlLnJ1YnJpY1tzdGF0ZS5hY3RpdmVdICYmIHN0YXRlLnJ1YnJpY1tzdGF0ZS5hY3RpdmVdW2ldOwogICAgICBoKz0nPGxhYmVsIGNsYXNzPSJjbHB3LXJ1YicrKG9uPycgZG9uZSc6JycpKyciIGRhdGEtcnVid3JhcD0iJytpKyciPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGF0YS1ydWI9IicraSsnIicrKG9uPycgY2hlY2tlZCc6JycpKyc+PHNwYW4+PHNwYW4gY2xhc3M9ImNscHctcnViLWsiPicrZXNjKHIuaykrJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2xwdy1ydWItZCI+Jytlc2Moci5kKSsnPC9zcGFuPjwvc3Bhbj48L2xhYmVsPic7CiAgICB9KTsKICAgIGcuaW5uZXJIVE1MPWg7CiAgfQoKICBmdW5jdGlvbiByZW5kZXJTYW1wbGUodCl7CiAgICB2YXIgZD1XREFUQS50YXNrc1t0LTFdLCBpPXN0YXRlLnRhYlt0XSwgcz1kLnNhbXBsZXNbaV07CiAgICB2YXIgYm9keT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd1NhbUJvZHkiK3QpOyBpZighYm9keSkgcmV0dXJuOwogICAgYm9keS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNscHctc2FtbHZsIj4nK2VzYyhzLmxldmVsKSsnPC9kaXY+PGRpdiBjbGFzcz0iY2xwdy1zYW10ZXh0Ij4nK2VzYyhzLnRleHQpKyc8L2Rpdj4nCiAgICAgICsnPGRpdiBjbGFzcz0iY2xwdy1zYW1oaW50Ij48Yj5XaGF0IHNldHMgdGhpcyBsZXZlbCBhcGFydDo8L2I+ICcrZXNjKHMubm90ZSkrJzwvZGl2Pic7CiAgICB2YXIgdGFicz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd1RhYnMiK3QpOyBpZih0YWJzKXsgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0YWJzLmNoaWxkcmVuLGZ1bmN0aW9uKGIsYmkpeyBiLmNsYXNzTGlzdC50b2dnbGUoIm9uIixiaT09PWkpOyB9KTsgfQogIH0KCiAgZnVuY3Rpb24gdXBkYXRlV0ModCl7CiAgICB2YXIgbj13YyhzdGF0ZS50ZXh0W3RdKTsgdmFyIHBpbGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdXcGlsbCIrdCk7IGlmKCFwaWxsKSByZXR1cm47CiAgICBwaWxsLnRleHRDb250ZW50PW4rKG49PT0xPyIgd29yZCI6IiB3b3JkcyIpOwogICAgcGlsbC5jbGFzc05hbWU9ImNscHctd3BpbGwgIisobjwxNTA\/ImxvdyI6KG48PTIwMD8iZ29vZCI6KG48PTI1MD8ib3ZlciI6Im1heCIpKSk7CiAgICB1cGRhdGVUb3RhbHMoKTsKICB9CiAgZnVuY3Rpb24gdXBkYXRlVG90YWxzKCl7CiAgICB2YXIgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdUb3RXb3JkcyIpOyBpZihlbCkgZWwuaW5uZXJIVE1MPSJXb3JkcyAmbWRhc2g7IFRhc2sgMTogIit3YyhzdGF0ZS50ZXh0WzFdKSsiICZtaWRkb3Q7IFRhc2sgMjogIit3YyhzdGF0ZS50ZXh0WzJdKTsKICB9CgogIGZ1bmN0aW9uIHJlZnJlc2hEb3RzKCl7CiAgICB2YXIgZG90cz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd0RvdHMiKTsgaWYoIWRvdHMpIHJldHVybjsKICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG90cy5jaGlsZHJlbixmdW5jdGlvbihiKXsgdmFyIGlkPStiLmdldEF0dHJpYnV0ZSgiZGF0YS1kb3QiKTsKICAgICAgYi5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsaWQ9PT1zdGF0ZS5hY3RpdmUpOwogICAgICBiLmNsYXNzTGlzdC50b2dnbGUoImZpbGxlZCIsIGlkIT09c3RhdGUuYWN0aXZlICYmIHdjKHN0YXRlLnRleHRbaWRdKT4wKTsgfSk7CiAgICBXREFUQS50YXNrcy5mb3JFYWNoKGZ1bmN0aW9uKGQpeyB2YXIgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdUYXNrIitkLmlkKTsgaWYoZWwpIGVsLmNsYXNzTGlzdC50b2dnbGUoIm9uIixkLmlkPT09c3RhdGUuYWN0aXZlKTsgfSk7CiAgfQoKICBmdW5jdGlvbiBzd2l0Y2hUYXNrKHQpeyBzdGF0ZS5hY3RpdmU9dDsgcmVmcmVzaERvdHMoKTsgYnVpbGRSdWJyaWMoKTsKICAgIHZhciBjYXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdDYXQiKTsgaWYoY2F0JiZjYXQuc2Nyb2xsSW50b1ZpZXcpIGNhdC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCIsYmxvY2s6InN0YXJ0In0pOyB9CgogIC8vIHRpbWVycwogIGZ1bmN0aW9uIHRpY2sodCl7IHZhciBUPXN0YXRlLnRpbWVyW3RdOyBpZihULnJlbTw9MCl7IHN0b3BUaW1lcih0KTsgcmV0dXJuOyB9IFQucmVtLS07IHBhaW50VGltZSh0KTsgaWYoVC5yZW08PTApIHN0b3BUaW1lcih0KTsgfQogIGZ1bmN0aW9uIHBhaW50VGltZSh0KXsgdmFyIGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbHB3QmFyVGltZSIrdCk7IHZhciBUPXN0YXRlLnRpbWVyW3RdOwogICAgaWYoZWwpeyBlbC5pbm5lckhUTUw9IlRpbWUgcmVtYWluaW5nOiA8Yj4iK2ZtdChULnJlbSkrIjwvYj4iOyBlbC5jbGFzc0xpc3QudG9nZ2xlKCJsb3ciLFQucmVtPD0xMjApOyB9CiAgICB2YXIgYnRuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRzdGFydD0iJyt0KyciXScpOyBpZihidG4peyBidG4udGV4dENvbnRlbnQ9VC5ydW4\/IlBhdXNlIHRpbWVyIjooVC5yZW08PTA\/IlRpbWUgdXAiOiJTdGFydCB0aW1lciIpOyBidG4uY2xhc3NMaXN0LnRvZ2dsZSgicnVuIixULnJ1bik7IH0gfQogIGZ1bmN0aW9uIHN0YXJ0VGltZXIodCl7IHZhciBUPXN0YXRlLnRpbWVyW3RdOyBpZihULnJlbTw9MCkgcmV0dXJuOyBULnJ1bj10cnVlOyBpZihULml2KSBjbGVhckludGVydmFsKFQuaXYpOyBULml2PXNldEludGVydmFsKGZ1bmN0aW9uKCl7dGljayh0KTt9LDEwMDApOyBwYWludFRpbWUodCk7IH0KICBmdW5jdGlvbiBzdG9wVGltZXIodCl7IHZhciBUPXN0YXRlLnRpbWVyW3RdOyBULnJ1bj1mYWxzZTsgaWYoVC5pdil7IGNsZWFySW50ZXJ2YWwoVC5pdik7IFQuaXY9bnVsbDsgfSBwYWludFRpbWUodCk7IH0KICBmdW5jdGlvbiB0b2dnbGVUaW1lcih0KXsgc3RhdGUudGltZXJbdF0ucnVuP3N0b3BUaW1lcih0KTpzdGFydFRpbWVyKHQpOyB9CiAgZnVuY3Rpb24gcmVzZXRUaW1lcih0KXsgc3RvcFRpbWVyKHQpOyBzdGF0ZS50aW1lclt0XS5yZW09V0RBVEEudGFza3NbdC0xXS5taW51dGVzKjYwOyBwYWludFRpbWUodCk7IH0KCiAgLy8gLS0tLS0tLS0tLSBldmVudHMgLS0tLS0tLS0tLQogIGZ1bmN0aW9uIHdpcmVFdmVudHMoKXsKICAgIHZhciByb290PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbHB3QXBwIik7CiAgICB2YXIgc3RhcnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdTdGFydCIpOwogICAgaWYoc3RhcnQpIHN0YXJ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyBzd2l0Y2hUYXNrKDEpOyBzdGFydFRpbWVyKDEpOyB9KTsKICAgIHZhciByZXNldEFsbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd1Jlc2V0QWxsIik7CiAgICBpZihyZXNldEFsbCkgcmVzZXRBbGwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7CiAgICAgIGlmKCFjb25maXJtKCJDbGVhciBib3RoIGRyYWZ0cywgc2VsZWN0ZWQgb3B0aW9uIGFuZCB0aW1lcnMgb24gdGhpcyBkZXZpY2U\/IikpIHJldHVybjsKICAgICAgc3RhdGUudGV4dFsxXT0iIjtzdGF0ZS50ZXh0WzJdPSIiO3N0YXRlLm9wdD1udWxsO3N0YXRlLnJ1YnJpYz17MTp7fSwyOnt9fTsKICAgICAgcmVzZXRUaW1lcigxKTtyZXNldFRpbWVyKDIpOyBzYXZlKCk7IHJlbmRlcigpOyB9KTsKCiAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXsKICAgICAgdmFyIGVsPWUudGFyZ2V0LmNsb3Nlc3QoIltkYXRhLWRvdF0sW2RhdGEtc2FtdG9nZ2xlXSxbZGF0YS10YWJdLFtkYXRhLXRzdGFydF0sW2RhdGEtdHJlc2V0XSxbZGF0YS10bmV4dF0iKTsgaWYoIWVsKSByZXR1cm47CiAgICAgIGlmKGVsLmhhc0F0dHJpYnV0ZSgiZGF0YS1kb3QiKSl7IHN3aXRjaFRhc2soK2VsLmdldEF0dHJpYnV0ZSgiZGF0YS1kb3QiKSk7IH0KICAgICAgZWxzZSBpZihlbC5oYXNBdHRyaWJ1dGUoImRhdGEtc2FtdG9nZ2xlIikpeyB2YXIgdD0rZWwuZ2V0QXR0cmlidXRlKCJkYXRhLXNhbXRvZ2dsZSIpOyB2YXIgcD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd1NhbSIrdCk7CiAgICAgICAgaWYocCl7IHAuaGlkZGVuPSFwLmhpZGRlbjsgZWwudGV4dENvbnRlbnQ9cC5oaWRkZW4\/IkNsaWNrIGhlcmUgdG8gdmlldyBzYW1wbGUgcmVzcG9uc2VzIjoiSGlkZSBzYW1wbGUgcmVzcG9uc2VzIjsgaWYoIXAuaGlkZGVuKSByZW5kZXJTYW1wbGUodCk7IH0gfQogICAgICBlbHNlIGlmKGVsLmhhc0F0dHJpYnV0ZSgiZGF0YS10YWIiKSl7IHZhciB0dD0rZWwuZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpOyBzdGF0ZS50YWJbdHRdPStlbC5nZXRBdHRyaWJ1dGUoImRhdGEtaSIpOyByZW5kZXJTYW1wbGUodHQpOyB9CiAgICAgIGVsc2UgaWYoZWwuaGFzQXR0cmlidXRlKCJkYXRhLXRzdGFydCIpKXsgdG9nZ2xlVGltZXIoK2VsLmdldEF0dHJpYnV0ZSgiZGF0YS10c3RhcnQiKSk7IH0KICAgICAgZWxzZSBpZihlbC5oYXNBdHRyaWJ1dGUoImRhdGEtdHJlc2V0IikpeyByZXNldFRpbWVyKCtlbC5nZXRBdHRyaWJ1dGUoImRhdGEtdHJlc2V0IikpOyB9CiAgICAgIGVsc2UgaWYoZWwuaGFzQXR0cmlidXRlKCJkYXRhLXRuZXh0IikpeyB2YXIgY3VyPStlbC5nZXRBdHRyaWJ1dGUoImRhdGEtdG5leHQiKTsgaWYoY3VyPFdEQVRBLnRhc2tzLmxlbmd0aCl7IHN3aXRjaFRhc2soY3VyKzEpOyB9IH0KICAgIH0pOwoKICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKGUpeyB2YXIgdGE9ZS50YXJnZXQuY2xvc2VzdCgiW2RhdGEtdGFdIik7IGlmKCF0YSkgcmV0dXJuOwogICAgICB2YXIgdD0rdGEuZ2V0QXR0cmlidXRlKCJkYXRhLXRhIik7IHN0YXRlLnRleHRbdF09dGEudmFsdWU7IHVwZGF0ZVdDKHQpOyByZWZyZXNoRG90cygpOyBzYXZlKCk7IH0pOwoKICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbihlKXsKICAgICAgdmFyIG9wdD1lLnRhcmdldC5jbG9zZXN0KCdpbnB1dFtuYW1lPSJjbHB3T3B0Il0nKTsKICAgICAgaWYob3B0KXsgc3RhdGUub3B0PW9wdC52YWx1ZTsgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1vcHR3cmFwXSIpLGZ1bmN0aW9uKGwpeyBsLmNsYXNzTGlzdC50b2dnbGUoInNlbCIsbC5nZXRBdHRyaWJ1dGUoImRhdGEtb3B0d3JhcCIpPT09c3RhdGUub3B0KTsgfSk7IHNhdmUoKTsgcmV0dXJuOyB9CiAgICAgIHZhciBydWI9ZS50YXJnZXQuY2xvc2VzdCgiW2RhdGEtcnViXSIpOwogICAgICBpZihydWIpeyB2YXIgaT0rcnViLmdldEF0dHJpYnV0ZSgiZGF0YS1ydWIiKTsgaWYoIXN0YXRlLnJ1YnJpY1tzdGF0ZS5hY3RpdmVdKSBzdGF0ZS5ydWJyaWNbc3RhdGUuYWN0aXZlXT17fTsgc3RhdGUucnVicmljW3N0YXRlLmFjdGl2ZV1baV09cnViLmNoZWNrZWQ7CiAgICAgICAgdmFyIHdyYXA9cnViLmNsb3Nlc3QoIltkYXRhLXJ1YndyYXBdIik7IGlmKHdyYXApIHdyYXAuY2xhc3NMaXN0LnRvZ2dsZSgiZG9uZSIscnViLmNoZWNrZWQpOyBzYXZlKCk7IH0KICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gYm9vdCgpeyBsb2FkKCk7IGluamVjdENTUygpOyByZW5kZXIoKTsgfQogIGlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyIpIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGJvb3QpOyBlbHNlIGJvb3QoKTsKfSkoKTsKCg==\"));<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Writing Set 11 Practice Test 1: Task 1 (email) and Task 2 (survey response) with timers and word counter, plus a self-assessment guide. Free, no sign-up.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-6452","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=6452"}],"version-history":[{"count":1,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6452\/revisions"}],"predecessor-version":[{"id":6548,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6452\/revisions\/6548"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}