{"id":6373,"date":"2026-07-10T15:45:57","date_gmt":"2026-07-10T15:45:57","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-8-test-1-speaking\/"},"modified":"2026-07-12T03:16:22","modified_gmt":"2026-07-12T03:16:22","slug":"celpip-set-8-test-1-speaking","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-8-test-1-speaking\/","title":{"rendered":"CELPIP Speaking \u2014 Set 8 \u00b7 Practice Test 1"},"content":{"rendered":"<div id=\"clp-spk-root\" style=\"min-height:300px\">\n<p style=\"text-align:center;padding:40px 0;color:#888\">Loading CELPIP Speaking\u2026<\/p>\n<\/div>\n<p><script>eval(atob(\"d2luZG93LkNMUFNQS19EQVRBPXsic2V0Ijo4LCJ0ZXN0IjoxLCJ0aXRsZSI6IkNFTFBJUCBTcGVha2luZyBcdTIwMTQgU2V0IDggXHUwMGI3IFByYWN0aWNlIFRlc3QgMSIsImhlYWRlciI6IlByYWN0aWNlIFRlc3QgMSIsImltZ3MiOnsic2NlbmUiOiJodHRwczovL2FsbGVuZ2xpc2g0dS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDcvczh0MS1zY2VuZS5qcGciLCJvcHRBIjoiaHR0cHM6Ly9hbGxlbmdsaXNoNHUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA3L3M4dDEtb3B0LWEuanBnIiwib3B0QiI6Imh0dHBzOi8vYWxsZW5nbGlzaDR1LmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNy9zOHQxLW9wdC1iLmpwZyIsIm9wdE90aGVyIjoiaHR0cHM6Ly9hbGxlbmdsaXNoNHUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA3L3M4dDEtb3B0LW90aGVyLmpwZyIsInVudXN1YWwiOiJodHRwczovL2FsbGVuZ2xpc2g0dS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDcvczh0MS11bnVzdWFsLmpwZyJ9LCJvdGhlclVybCI6Ii9jZWxwaXAtc2V0LTgtdGVzdC0yLXNwZWFraW5nLyIsInRhc2tzIjpbeyJrIjoidyIsIm51bSI6MCwidHlwZUVuIjoiU3BlYWtpbmcgUHJhY3RpY2UgVGFzayIsInByZXAiOjMwLCJyZWMiOjYwLCJ3YXJtdXAiOnRydWUsInByb21wdCI6IlRhbGsgYWJvdXQgb25lIG9mIHlvdXIgYmVzdCBmcmllbmRzLiIsImltZyI6bnVsbCwidGlwcyI6eyJidWxsZXRzIjpbIlRoZSBQcmFjdGljZSBUYXNrICh3YXJtLXVwKSBpcyBOT1Qgc2NvcmVkIFx1MjAxNCBpdCBpcyBoZXJlIHRvIGhlbHAgeW91IGdldCB1c2VkIHRvIHRoZSBjb250cm9scyBhbmQgd2FybSB1cCB5b3VyIHZvaWNlLiIsIlNwZWFrIG5hdHVyYWxseSBhYm91dCBhIGJlc3QgZnJpZW5kOiB0aGVpciBuYW1lLCBob3cgeW91IG1ldCwgdGhlaXIgcGVyc29uYWxpdHksIGEgbWVtb3J5IHlvdSBzaGFyZS4iLCJVc2UgaXQgdG8gYWRqdXN0IHlvdXIgcG9zdHVyZSwgbWljcm9waG9uZSBkaXN0YW5jZSwgYW5kIHNwZWFraW5nIHBhY2UuIl0sInBocmFzZXMiOlsiTXkgYmVzdCBmcmllbmQncyBuYW1lIGlzXHUyMDI2IiwiV2UgbWV0IHdoZW5cdTIwMjYiLCJXaGF0IEkgbGlrZSBtb3N0IGFib3V0IGhpbS9oZXIgaXNcdTIwMjYiXX0sInM2IjpudWxsLCJzOSI6bnVsbH0seyJrIjoidDEiLCJudW0iOjEsInR5cGVFbiI6IkdpdmluZyBBZHZpY2UiLCJwcmVwIjozMCwicmVjIjo5MCwicHJvbXB0IjoiWW91ciBmcmllbmQgaXMgbm90IHN1cmUgd2hhdCB0byBnZXQgaGlzIG1vdGhlciBmb3IgaGVyIGJpcnRoZGF5LiBHaXZlIGhpbSBzb21lIGFkdmljZSBhYm91dCB3aGF0IGtpbmQgb2YgZ2lmdCBoZSBzaG91bGQgZ2V0IGhlci4iLCJpbWciOm51bGwsInRpcHMiOnsiYnVsbGV0cyI6WyJPcGVuaW5nOiBncmVldCB5b3VyIGZyaWVuZCBhbmQgcmVzdGF0ZSB0aGUgc2l0dWF0aW9uIGluIG9uZSBzZW50ZW5jZS4iLCJCb2R5OiBnaXZlIDJcdTIwMTMzIHBpZWNlcyBvZiBhZHZpY2UsIGVhY2ggd2l0aCBhIHJlYXNvbiBvciBleGFtcGxlIChGaXJzdFx1MjAyNiwgYmVjYXVzZVx1MjAyNjsgQW5vdGhlciBpZGVhIGlzXHUyMDI2KS4iLCJDbG9zaW5nOiBlbmNvdXJhZ2UgdGhlbSBhbmQgd2lzaCB0aGVtIGx1Y2suIiwiR2l2ZSAyLTMgZ2lmdCBkaXJlY3Rpb25zIHdpdGggcmVhc29uczogc29tZXRoaW5nIHBlcnNvbmFsIChmcmFtZWQgZmFtaWx5IHBob3RvLCBwaG90byBhbGJ1bSksIHNvbWV0aGluZyBmb3IgSEVSIGhvYmJ5IG9yIHJlbGF4YXRpb24gKHNwYSBkYXksIGdhcmRlbiB0b29scywgY29uY2VydCB0aWNrZXRzKSwgcGx1cyBmbG93ZXJzIGFuZCBhIGhhbmR3cml0dGVuIGNhcmQuIFdhcm4gYWdhaW5zdCBib3JpbmcgcHJhY3RpY2FsIGdpZnRzIGxpa2Uga2l0Y2hlbiBhcHBsaWFuY2VzLiBXaXRoIDkwIHNlY29uZHMsIHJlbWluZCBoaW0gdGhlIHRob3VnaHQgbWF0dGVycyBtb3JlIHRoYW4gdGhlIHByaWNlLiJdLCJwaHJhc2VzIjpbIklmIEkgd2VyZSB5b3UsIEknZFx1MjAyNiIsIllvdSBzaG91bGQgZGVmaW5pdGVseVx1MjAyNiIsIkFub3RoZXIgb3B0aW9uIGlzIHRvXHUyMDI2IiwiVHJ1c3QgbWUsIHlvdSB3b24ndCByZWdyZXQgaXQuIl19LCJzNiI6Ik1pa2UsIGRvIG5vdCBzdHJlc3MgXHUyMDE0IG1vdGhlcnMgYXJlIGFjdHVhbGx5IGVhc3kgdG8gbWFrZSBoYXBweSwgaWYgeW91IHRoaW5rIGFib3V0IGhlciwgbm90IGFib3V0IHRoZSBzaG9wLiBIZXJlIGlzIG15IGFkdmljZS4gRmlyc3QsIHRoZSBiZXN0IGdpZnRzIGZvciBtb3RoZXJzIGFyZSBwZXJzb25hbC4gWW91IGNvdWxkIHByaW50IHlvdXIgZmF2b3VyaXRlIGZhbWlseSBwaG90b3MgYW5kIHB1dCB0aGVtIGluIGEgYmVhdXRpZnVsIGZyYW1lIG9yIGEgc21hbGwgYWxidW0uIFlvdXIgbW90aGVyIHdpbGwgY3J5IHdpdGggaGFwcGluZXNzLCBJIHByb21pc2UuIFNlY29uZCwgdGhpbmsgYWJvdXQgd2hhdCBzaGUgbG92ZXMgdG8gZG8uIERvZXMgc2hlIGxpa2UgZ2FyZGVuaW5nPyBCdXkgaGVyIG5pY2UgZ2FyZGVuIHRvb2xzIG9yIHNwZWNpYWwgZmxvd2Vycy4gRG9lcyBzaGUgd29yayB0b28gbXVjaD8gR2l2ZSBoZXIgYSBzcGEgZGF5LCBzbyBzaGUgY2FuIGZpbmFsbHkgcmVsYXguIEEgZ2lmdCBjb25uZWN0ZWQgdG8gaGVyIGhvYmJ5IHNob3dzIHRoYXQgeW91IHJlYWxseSBrbm93IGhlci4gVGhpcmQsIHdoYXRldmVyIHlvdSBjaG9vc2UsIGFkZCBmcmVzaCBmbG93ZXJzIGFuZCBhIGNhcmQgdGhhdCB5b3Ugd3JpdGUgeW91cnNlbGYsIG5vdCBqdXN0IHlvdXIgbmFtZSBcdTIwMTQgd3JpdGUgd2h5IHlvdSBhcmUgdGhhbmtmdWwgZm9yIGhlci4gTm93LCB3aGF0IHlvdSBzaG91bGQgbm90IGJ1eTogcGxlYXNlLCBubyBraXRjaGVuIG1hY2hpbmVzISBBIHZhY3V1bSBjbGVhbmVyIG9yIGEgYmxlbmRlciBpcyBub3QgYSBiaXJ0aGRheSBnaWZ0IGZvciB5b3VyIG1vdGhlciwgaXQgaXMgYSBnaWZ0IGZvciB0aGUgaG91c2UuIEFuZCBkbyBub3QganVzdCBnaXZlIG1vbmV5IFx1MjAxNCBpdCBmZWVscyBjb2xkLiBSZW1lbWJlciwgc2hlIGRvZXMgbm90IHdhbnQgYW4gZXhwZW5zaXZlIHRoaW5nLiBTaGUgd2FudHMgdG8gc2VlIHRoYXQgeW91IHRob3VnaHQgYWJvdXQgaGVyLiBHb29kIGx1Y2shIiwiczkiOiJNaWtlLCByZWxheCBcdTIwMTQgY2hvb3NpbmcgYSBnaWZ0IGZvciB5b3VyIG11bSBpcyBtdWNoIHNpbXBsZXIgb25jZSB5b3UgcmVhbGl6ZSBvbmUgdGhpbmc6IHNoZSBkb2Vzbid0IHdhbnQgYSBwcm9kdWN0LCBzaGUgd2FudHMgcHJvb2YgdGhhdCB5b3Uga25vdyBoZXIgYW5kIGFwcHJlY2lhdGUgaGVyLiBTbyBoZXJlJ3MgaG93IEknZCB0aGluayBhYm91dCBpdCwgaW4gdGhyZWUgZGlyZWN0aW9ucy4gRGlyZWN0aW9uIG9uZTogdGhlIHNlbnRpbWVudGFsIGdpZnQuIE1vdGhlcnMgYXJlIGFsbW9zdCBkZWZlbmNlbGVzcyBhZ2FpbnN0IGFueXRoaW5nIGludm9sdmluZyB0aGVpciBjaGlsZHJlbiBcdTIwMTQgYSBmcmFtZWQgcGhvdG8gZnJvbSBhIGZhbWlseSB0cmlwLCBhIHByaW50ZWQgYWxidW0gb2YgdGhlIGxhc3QgZmV3IHllYXJzLCBldmVuIGEgc2hvcnQgbGV0dGVyIGFib3V0IHdoYXQgc2hlJ3MgdGF1Z2h0IHlvdS4gSXQgY29zdHMgdmVyeSBsaXR0bGUgYW5kIGxhbmRzIGhhcmRlciB0aGFuIGFueXRoaW5nIGZyb20gYSBsdXh1cnkgc3RvcmUuIERpcmVjdGlvbiB0d286IGEgZ2lmdCBhaW1lZCBhdCBoZXIgbGlmZSwgbm90IHlvdXJzLiBUaGluayBhYm91dCB3aGF0IHNoZSBnZW51aW5lbHkgZW5qb3lzIFx1MjAxNCBpZiBzaGUgZ2FyZGVucywgZ2V0IHF1YWxpdHkgdG9vbHMgb3IgYSByYXJlIHJvc2U7IGlmIHNoZSdzIGJlZW4gZXhoYXVzdGVkIGxhdGVseSwgYm9vayBoZXIgYSBzcGEgYWZ0ZXJub29uIG9yIGEgbmljZSByZXN0YXVyYW50IGRpbm5lciB3aGVyZSBzaGUgY29va3Mgbm90aGluZyBhbmQgd2FzaGVzIG5vIGRpc2hlczsgaWYgc2hlIGxvdmVzIG11c2ljLCB0aWNrZXRzIHRvIGEgc2hvdywgYW5kIGdvIHdpdGggaGVyIFx1MjAxNCBzaGFyZWQgdGltZSBkb3VibGVzIHRoZSBnaWZ0LiBEaXJlY3Rpb24gdGhyZWU6IHRoZSByZWxpYWJsZSBjbGFzc2ljcyBkb25lIHByb3Blcmx5IFx1MjAxNCBoZXIgZmF2b3VyaXRlIGZsb3dlcnMsIGdvb2QgY2hvY29sYXRlLCBwbHVzIGEgaGFuZHdyaXR0ZW4gY2FyZCB3aXRoIGFjdHVhbCBzZW50ZW5jZXMgaW4gaXQuIE5vdyB0aGUgd2FybmluZ3M6IGF2b2lkIGhvdXNlaG9sZCBhcHBsaWFuY2VzIGF0IGFsbCBjb3N0cyBcdTIwMTQgYSBibGVuZGVyIHNheXMgdGhhbmtzIGZvciBjb29raW5nLCBub3QgaGFwcHkgYmlydGhkYXkgXHUyMDE0IGFuZCBhdm9pZCBoYW5kaW5nIG92ZXIgY2FzaCwgd2hpY2ggb3V0c291cmNlcyB0aGUgdGhpbmtpbmcuIEFuZCBkb24ndCBjaGFzZSBhIGJpZyBwcmljZSB0YWc7IGFuIGV4cGVuc2l2ZSBidXQgZ2VuZXJpYyBnaWZ0IGxvc2VzIHRvIGEgbW9kZXN0IGJ1dCBwZXJzb25hbCBvbmUgZXZlcnkgc2luZ2xlIHRpbWUuIEhvbmVzdGx5LCB0aGUgcGhvdG8gYWxidW0gcGx1cyBmbG93ZXJzIHBsdXMgYSByZWFsIGNhcmQgaXMgYSBjb21iaW5hdGlvbiB0aGF0IGhhcyBuZXZlciBvbmNlIGZhaWxlZCBpbiB0aGUgaGlzdG9yeSBvZiBtb3RoZXJzLiJ9LHsiayI6InQyIiwibnVtIjoyLCJ0eXBlRW4iOiJUYWxraW5nIGFib3V0IGEgUGVyc29uYWwgRXhwZXJpZW5jZSIsInByZXAiOjMwLCJyZWMiOjYwLCJwcm9tcHQiOiJUYWxrIGFib3V0IGEgdGltZSB3aGVuIHlvdSBjcmVhdGVkIHNvbWV0aGluZyB5b3UgbGlrZWQuIE1heWJlIGl0IHdhcyBhIGJlYXV0aWZ1bCBwaWVjZSBvZiBhcnR3b3JrLCBhIGRlbGljaW91cyBtZWFsLCBvciBhIGNyYWZ0IHByb2plY3QuIFdoYXQgZGlkIHlvdSBjcmVhdGUsIHdoeSBkaWQgeW91IGNyZWF0ZSBpdCwgYW5kIHdoYXQgd2FzIGl0IGxpa2UgdG8gY3JlYXRlIGl0PyIsImltZyI6bnVsbCwidGlwcyI6eyJidWxsZXRzIjpbIkFuc3dlciBldmVyeSBwYXJ0IG9mIHRoZSBxdWVzdGlvbiAod2hhdCBoYXBwZW5lZCBcdTIwMTMgaG93IGl0IHVuZm9sZGVkIFx1MjAxMyB0aGUgb3V0Y29tZSAvIHdoeSBpdCBpcyBtZW1vcmFibGUpLiIsIlVzZSBwYXN0IHRlbnNlcyBhbmQgdGVsbCBpdCBpbiBvcmRlcjogVGhpcyBoYXBwZW5lZFx1MjAyNiBcdTIxOTIgVGhlblx1MjAyNiBcdTIxOTIgSW4gdGhlIGVuZFx1MjAyNiIsIkZpbmlzaCB3aXRoIGEgZmVlbGluZyBvciBhIGxlc3NvbiBsZWFybmVkLiIsIkFuc3dlciB0aGUgdGhyZWUgcGFydHM6IHdoYXQgeW91IGNyZWF0ZWQgLSB3aHkgLSB3aGF0IHRoZSBwcm9jZXNzIHdhcyBsaWtlIChpbmNsdWRlIG9uZSBkaWZmaWN1bHR5KS4gUHJpZGUgaW4gdGhlIHJlc3VsdCBpcyB0aGUgbmF0dXJhbCBlbmRpbmcuIl0sInBocmFzZXMiOlsiVGhpcyBoYXBwZW5lZCBhYm91dCB0d28geWVhcnMgYWdvXHUyMDI2IiwiQXQgZmlyc3RcdTIwMjYsIGJ1dCB0aGVuXHUyMDI2IiwiV2hhdCBtYWRlIGl0IHVuZm9yZ2V0dGFibGUgd2FzXHUyMDI2IiwiTG9va2luZyBiYWNrLCBcdTIwMjYiXX0sInM2IjoiSSB3YW50IHRvIHRhbGsgYWJvdXQgdGhlIHRpbWUgSSBjb29rZWQgYSBiaWcgcG90IG9mIHBobywgdGhlIGZhbW91cyBWaWV0bmFtZXNlIG5vb2RsZSBzb3VwLCBjb21wbGV0ZWx5IGZyb20gc2NyYXRjaC4gSSBtYWRlIGl0IGxhc3QgeWVhciBmb3IgbXkgQ2FuYWRpYW4gZnJpZW5kcywgYmVjYXVzZSB0aGV5IGFsd2F5cyBvcmRlcmVkIHBobyBpbiByZXN0YXVyYW50cywgYW5kIEkgd2FudGVkIHRvIHNob3cgdGhlbSB0aGUgcmVhbCwgaG9tZW1hZGUgdGFzdGUuIExldCBtZSB0ZWxsIHlvdSwgaXQgd2FzIG5vdCBlYXN5ISBSZWFsIHBobyBicm90aCBuZWVkcyBtYW55IGhvdXJzLiBJIHN0YXJ0ZWQgaW4gdGhlIG1vcm5pbmc6IEkgcm9hc3RlZCB0aGUgZ2luZ2VyIGFuZCBvbmlvbnMsIHRvYXN0ZWQgdGhlIHNwaWNlcyBcdTIwMTQgc3RhciBhbmlzZSwgY2lubmFtb24sIGFuZCBjbG92ZXMgXHUyMDE0IGFuZCB0aGVuIHRoZSBib25lcyBjb29rZWQgc2xvd2x5IGZvciBlaWdodCBob3Vycy4gTXkgd2hvbGUgYXBhcnRtZW50IHNtZWxsZWQgYW1hemluZy4gVGhlIGhhcmRlc3QgcGFydCB3YXMgYmVpbmcgcGF0aWVudCBhbmQga2VlcGluZyB0aGUgYnJvdGggY2xlYXIsIG5vdCBjbG91ZHkuIEluIHRoZSBldmVuaW5nLCBteSBmcmllbmRzIGFycml2ZWQsIGFuZCBJIHByZXBhcmVkIHRoZSBib3dsczogZnJlc2ggbm9vZGxlcywgdGhpbiBzbGljZXMgb2YgYmVlZiwgaGVyYnMsIGxpbWUsIGFuZCB0aGUgaG90IGJyb3RoIG9uIHRvcC4gV2hlbiBteSBmcmllbmRzIHRyaWVkIHRoZSBmaXJzdCBzcG9vbiwgdGhleSB3ZW50IHF1aWV0LCBhbmQgdGhlbiBvbmUgc2FpZCBpdCB3YXMgdGhlIGJlc3Qgc291cCBvZiBoaXMgbGlmZS4gSSBmZWx0IHNvIHByb3VkLiBOb3cgdGhleSBhc2sgbWUgdG8gY29vayBwaG8gZXZlcnkgbW9udGgsIGFuZCBob25lc3RseSwgdGhhdCBwb3Qgb2Ygc291cCBpcyBvbmUgb2YgbXkgZmF2b3VyaXRlIGNyZWF0aW9ucyBldmVyLiIsInM5IjoiSSdkIGxpa2UgdG8gdGVsbCB5b3UgYWJvdXQgdGhlIGRheSBJIG1hZGUgYXV0aGVudGljIHBobyBmcm9tIHNjcmF0Y2ggXHUyMDE0IHRoZSBWaWV0bmFtZXNlIG5vb2RsZSBzb3VwIFx1MjAxNCBiZWNhdXNlIGl0J3MgcHJvYmFibHkgdGhlIGNyZWF0aW9uIEknbSBwcm91ZGVzdCBvZiBvdXRzaWRlIG9mIHdvcmsuIFRoZSBtb3RpdmF0aW9uIHdhcyBzaW1wbGU6IG15IENhbmFkaWFuIGZyaWVuZHMga25ldyBwaG8gb25seSBmcm9tIGZvb2QgY291cnRzLCBhbmQgSSBrZXB0IHRlbGxpbmcgdGhlbSB0aGF0IHJlYWwsIGhvbWVtYWRlIHBobyBpcyBhIGRpZmZlcmVudCB1bml2ZXJzZS4gRXZlbnR1YWxseSBzb21lb25lIHNhaWQgcHJvdmUgaXQsIGFuZCBJIHRvb2sgdGhlIGJhaXQuIFdoYXQgSSBoYWRuJ3QgZnVsbHkgYXBwcmVjaWF0ZWQgd2FzIHdoYXQgSSdkIHNpZ25lZCB1cCBmb3IuIFByb3BlciBwaG8gYnJvdGggaXMgYSBmdWxsLWRheSBwcm9qZWN0OiBJIHdhcyB1cCBlYXJseSBjaGFycmluZyBnaW5nZXIgYW5kIG9uaW9ucyBvdmVyIGFuIG9wZW4gZmxhbWUsIHRvYXN0aW5nIHN0YXIgYW5pc2UsIGNpbm5hbW9uIGFuZCBjbG92ZXMgdW50aWwgdGhlIGtpdGNoZW4gc21lbGxlZCBsaWtlIGEgc3BpY2UgbWFya2V0LCB0aGVuIHNpbW1lcmluZyBiZWVmIGJvbmVzIGZvciBlaWdodCBwYXRpZW50IGhvdXJzLCBza2ltbWluZyBjb25zdGFudGx5LCBiZWNhdXNlIHRoZSBtYXJrIG9mIGEgZ29vZCBicm90aCBpcyB0aGF0IGl0IHN0YXlzIGNyeXN0YWwgY2xlYXIgd2hpbGUgdHVybmluZyBkZWVwbHkgcmljaC4gVGhlcmUgd2FzIGEgY3Jpc2lzIGFyb3VuZCBob3VyIGZpdmUgd2hlbiBpdCBsb29rZWQgY2xvdWR5IGFuZCBJIG5lYXJseSBwYW5pY2tlZCwgYnV0IGxvd2VyaW5nIHRoZSBoZWF0IHJlc2N1ZWQgaXQuIFRoZSBhc3NlbWJseSB0aGF0IGV2ZW5pbmcgd2FzIHRoZSBqb3lmdWwgcGFydDogZnJlc2ggcmljZSBub29kbGVzLCBwYXBlci10aGluIGJlZWYgdGhhdCBjb29rcyBpbiB0aGUgaG90IGJyb3RoLCBhIG1vdW50YWluIG9mIGJhc2lsLCBsaW1lIGFuZCBjaGlsaSBvbiB0aGUgc2lkZS4gQW5kIHRoZSBwYXlvZmYgXHUyMDE0IG15IGZyaWVuZHMgdG9vayBvbmUgc3Bvb25mdWwgYW5kIHNpbXBseSB3ZW50IHNpbGVudCwgd2hpY2ggaW4gZm9vZCB0ZXJtcyBpcyBhIHN0YW5kaW5nIG92YXRpb24uIE9uZSBvZiB0aGVtIHN0aWxsIGNhbGxzIGl0IHRoZSBiZXN0IHNvdXAgb2YgaGlzIGxpZmUuIFdoYXQgSSBsb3ZlZCBhYm91dCBjcmVhdGluZyBpdCB3YXMgdGhlIGhvbmVzdHkgb2YgdGhlIHByb2Nlc3M6IG5vIHNob3J0Y3V0cywganVzdCB0aW1lLCBjYXJlIGFuZCBhdHRlbnRpb24gXHUyMDE0IGFuZCBhIHJlc3VsdCB5b3UgY291bGQgdGFzdGUuIEl0J3MgYmVjb21lIGEgbW9udGhseSB0cmFkaXRpb24gbm93LCBhbmQgZXZlcnkgcG90IHN0aWxsIGdpdmVzIG1lIHRoYXQgc2FtZSBxdWlldCBwcmlkZS4ifSx7ImsiOiJ0MyIsIm51bSI6MywidHlwZUVuIjoiRGVzY3JpYmluZyBhIFNjZW5lIiwicHJlcCI6MzAsInJlYyI6NjAsInByb21wdCI6IkRlc2NyaWJlIHNvbWUgdGhpbmdzIHRoYXQgYXJlIGhhcHBlbmluZyBpbiB0aGUgcGljdHVyZSBiZWxvdyBhcyB3ZWxsIGFzIHlvdSBjYW4uIFRoZSBwZXJzb24gd2l0aCB3aG9tIHlvdSBhcmUgc3BlYWtpbmcgY2Fubm90IHNlZSB0aGUgcGljdHVyZS4iLCJpbWciOiJzY2VuZSIsInRpcHMiOnsiYnVsbGV0cyI6WyJGaXJzdCBzZW50ZW5jZTogZ2l2ZSB0aGUgb3ZlcnZpZXcgKHdoZXJlIGl0IGlzLCB3aGF0IHRoZSBhdG1vc3BoZXJlIGlzIGxpa2UpLiIsIkRlc2NyaWJlIDRcdTIwMTM2IGRldGFpbHMgYnkgbG9jYXRpb246IGluIHRoZSBmb3JlZ3JvdW5kIC8gb24gdGhlIGxlZnQgLyBhdCB0aGUgYmFja1x1MjAyNjsgdXNlIHRoZSBwcmVzZW50IGNvbnRpbnVvdXMuIiwiVGhlIGxpc3RlbmVyIENBTk5PVCBzZWUgdGhlIHBpY3R1cmUgXHUyMDE0IGJlIHNwZWNpZmljOyB3aGVuIHVuc3VyZSwgdXNlIHNlZW1zIC8gYXBwZWFycyAvIGxvb2tzIGxpa2UuIiwiQSBiaWcgZmFtaWx5IHByZXBhcmluZyBhIGhvbGlkYXkgZGlubmVyIChpdCBsb29rcyBsaWtlIFRoYW5rc2dpdmluZyk6IGdvIGluIG9yZGVyIC0gdGhlIGxvbmcgdGFibGUgd2l0aCB0aGUgcm9hc3RlZCB0dXJrZXksIHNhbGFkIGJvd2wgYW5kIHRyYXkgb2Ygc3R1ZmZpbmcgLT4gdGhlIGdyYW5kbW90aGVyIGluIHRoZSBhcHJvbiBjdXR0aW5nIGEgcGllIGF0IHRoZSByb3VuZCB0YWJsZSAtPiB0aGUgb2xkZXIgbGFkeSBpbiBwdXJwbGUgc2l0dGluZyBvbiBhIHN0b29sIC0+IHRoZSBncm91cCB0b2FzdGluZyB3aXRoIHdpbmUgb24gdGhlIGxlZnQgKGEgd29tYW4gaG9sZGluZyBhIGJhYnkgYW1vbmcgdGhlbSkgLT4gdGhlIG1hbiBpbiBibHVlIHdvcmtpbmcgYXQgdGhlIHRhYmxlIGFuZCB0aGUgYm95IHJlYWNoaW5nIGZvciBhIGRyaW5rIC0+IHRoZSBib3kgaW4gZ3JlZW4gY2FycnlpbmcgYSBzdGFjayBvZiBwbGF0ZXMgLT4gdGhlIHdoaXRlIGNhdCBwbGF5aW5nIHdpdGggYSBiYWxsIG9mIHJlZCB5YXJuLCBhbmQgdGhlIGZpc2ggdGFuayBvbiB0aGUgd2FsbC4iXSwicGhyYXNlcyI6WyJJbiB0aGUgZm9yZWdyb3VuZCwgXHUyMDI2IiwiT24gdGhlIHJpZ2h0LWhhbmQgc2lkZSwgXHUyMDI2IiwiSXQgbG9va3MgbGlrZVx1MjAyNiIsIlRoZSB3aG9sZSBwbGFjZSBmZWVsc1x1MjAyNiJdfSwiczYiOiJUaGlzIHBpY3R1cmUgc2hvd3MgYSBiaWcgZmFtaWx5IHByZXBhcmluZyBhIGhvbGlkYXkgZGlubmVyIHRvZ2V0aGVyLCBtYXliZSBUaGFua3NnaXZpbmcsIGluIGEgd2FybSB5ZWxsb3cgZGluaW5nIHJvb20uIEluIHRoZSBtaWRkbGUsIHRoZXJlIGlzIGEgbG9uZyB3aGl0ZSB0YWJsZSBmdWxsIG9mIGZvb2Q6IGEgYmlnIHJvYXN0ZWQgdHVya2V5LCBhIGJvd2wgb2YgZ3JlZW4gc2FsYWQsIGEgdHJheSBvZiBzdHVmZmluZywgYW5kIHNvbWUgcGluayBkcmlua3MuIEFuIG9sZGVyIHdvbWFuIHdpdGggZ3JleSBoYWlyLCBpbiBhIHB1cnBsZSBzd2VhdGVyLCBpcyBzaXR0aW5nIG9uIGEgc3Rvb2wgYXQgdGhlIHRhYmxlIGFuZCBzbWlsaW5nLiBCZWhpbmQgaGVyLCB0aGUgZ3JhbmRtb3RoZXIgaW4gYSBjb2xvdXJmdWwgYXByb24gaXMgc3RhbmRpbmcgYXQgYSBzbWFsbCByb3VuZCB0YWJsZSBhbmQgY3V0dGluZyBhIHBpZS4gT24gdGhlIGxlZnQgc2lkZSwgc29tZSBhZHVsdHMgYXJlIGNlbGVicmF0aW5nOiBhIG1hbiBpbiBhIGJyb3duIHNoaXJ0IGFuZCBhIG1hbiBpbiBhIHN0cmlwZWQgZ3JlZW4gc2hpcnQgYXJlIGhvbGRpbmcgZ2xhc3NlcyBvZiByZWQgd2luZSwgYW5kIGEgd29tYW4gaW4gcGluayBpcyBob2xkaW5nIGEgc21hbGwgYmFieS4gQW5vdGhlciB3b21hbiwgaW4gYSBkYXJrIHJlZCBzd2VhdGVyLCBpcyBvcGVuaW5nIGEgd2luZSBib3R0bGUuIE9uIHRoZSByaWdodCwgYSBtYW4gaW4gYSBibHVlIHNoaXJ0IGlzIHByZXBhcmluZyBzb21ldGhpbmcgYXQgdGhlIHRhYmxlLCBhIGJveSBpbiBhIGxpZ2h0IGJsdWUgc2hpcnQgaXMgcmVhY2hpbmcgZm9yIGEgZHJpbmssIGFuZCBhIGJveSBpbiBhIGdyZWVuIFQtc2hpcnQgaXMgY2FyZWZ1bGx5IGNhcnJ5aW5nIGEgYmlnIHN0YWNrIG9mIHBsYXRlcy4gSW4gdGhlIGJvdHRvbSBjb3JuZXIsIGEgd2hpdGUgY2F0IGlzIHBsYXlpbmcgd2l0aCBhIHJlZCBiYWxsIG9mIHlhcm4uIFRoZXJlIGlzIGV2ZW4gYSBmaXNoIHRhbmsgd2l0aCBvcmFuZ2UgZmlzaCBvbiB0aGUgd2FsbC4gRXZlcnlvbmUgbG9va3MgYnVzeSBhbmQgaGFwcHkgdG9nZXRoZXIuIiwiczkiOiJUaGlzIGlzIGEgd29uZGVyZnVsbHkgYnVzeSBob2xpZGF5LWRpbm5lciBzY2VuZSBcdTIwMTQgYSB0aHJlZS1nZW5lcmF0aW9uIGZhbWlseSBpbiBmdWxsIHByZS1mZWFzdCBjaGFvcywgYW5kIGl0IGxvb2tzIGEgbG90IGxpa2UgVGhhbmtzZ2l2aW5nLiBUaGUgY2VudHJlcGllY2UgaXMgYSBsb25nIHRhYmxlIGFic29sdXRlbHkgbG9hZGVkIHdpdGggZm9vZDogYSBnb2xkZW4gcm9hc3RlZCB0dXJrZXkgb24gYSBwbGF0dGVyLCBhIGJpZyBib3dsIG9mIGdyZWVuIHNhbGFkLCBhIHRyYXkgb2Ygc3R1ZmZpbmcsIGFuZCBnbGFzc2VzIG9mIHNvbWV0aGluZyBwaW5rIHdhaXRpbmcgdG8gYmUgaGFuZGVkIG91dC4gQW4gZWxkZXJseSBsYWR5IGluIGEgcHVycGxlIHN3ZWF0ZXIgaGFzIGNsYWltZWQgaGVyIHN0b29sIGF0IHRoZSB0YWJsZSBhbmQgaXMgd2F0Y2hpbmcgdGhlIGFjdGlvbiB3aXRoIHRoZSBjYWxtIG9mIHNvbWVvbmUgd2hvIGhhcyBjb29rZWQgZm9ydHkgb2YgdGhlc2UgZGlubmVycyBhbmQgaXMgZGVsaWdodGVkIGl0J3Mgbm8gbG9uZ2VyIGhlciBqb2IuIFRoYXQgam9iIG5vdyBiZWxvbmdzIHRvIHRoZSBncmFuZG1vdGhlciBpbiB0aGUgZmxvd2VyeSBhcHJvbiBiZWhpbmQgaGVyLCB3aG8gaXMgY2FyZWZ1bGx5IHNsaWNpbmcgYSBwaWUgYXQgYSBzbWFsbCByb3VuZCB0YWJsZS4gVGhlIGxlZnQgc2lkZSBvZiB0aGUgcm9vbSBpcyB0aGUgY2VsZWJyYXRpb24gY29ybmVyOiB0d28gbWVuIFx1MjAxNCBvbmUgaW4gYnJvd24sIG9uZSBpbiBhIGdyZWVuIHN0cmlwZWQgc3dlYXRlciBcdTIwMTQgYXJlIGNsaW5raW5nIGdsYXNzZXMgb2YgcmVkIHdpbmUgd2l0aCBhIHdvbWFuIGluIHBpbmsgd2hvIGlzIGJhbGFuY2luZyBhIGJhYnkgb24gaGVyIGFybSwgd2hpbGUgYW5vdGhlciB3b21hbiBpbiBhIG1hcm9vbiBzd2VhdGVyIHdvcmtzIG9uIG9wZW5pbmcgdGhlIG5leHQgYm90dGxlLiBPdmVyIG9uIHRoZSByaWdodCwgdGhlIGxhYm91ciBjb250aW51ZXM6IGEgZGFyay1oYWlyZWQgbWFuIGluIGJsdWUgaXMgYnVzeSBhdCB0aGUgdGFibGUsIGEgYm95IGluIGEgcGFsZSBibHVlIHNoaXJ0IGlzIHNuZWFraW5nIGEgcmVhY2ggdG93YXJkIHRoZSBkcmlua3MsIGFuZCBhIHlvdW5nZXIgYm95IGluIGdyZWVuIGlzIHRyYW5zcG9ydGluZyBhIHRvd2VyIG9mIHBsYXRlcyB3aXRoIGV4dHJlbWUgY29uY2VudHJhdGlvbi4gQW5kIGluIHRoZSBib3R0b20gbGVmdCwgY29tcGxldGVseSBpbmRpZmZlcmVudCB0byB0aGUgaHVtYW5zLCBhIHdoaXRlIGNhdCBpcyBoYXBwaWx5IHVucmF2ZWxsaW5nIGEgYmFsbCBvZiByZWQgeWFybi4gV2l0aCB0aGUgd2FsbCBjbG9jaywgdGhlIGZpc2ggdGFuayBnbG93aW5nIG9yYW5nZSwgYW5kIHRoZSB3aW5kb3cgc2hvd2luZyB0aGUgZ2FyZGVuLCB0aGUgd2hvbGUgcm9vbSByYWRpYXRlcyB3YXJtdGggXHUyMDE0IGEgZmFtaWx5IGF0IGl0cyBub2lzeSwgbG92aW5nIGJlc3QuIn0seyJrIjoidDQiLCJudW0iOjQsInR5cGVFbiI6Ik1ha2luZyBQcmVkaWN0aW9ucyIsInByZXAiOjMwLCJyZWMiOjYwLCJwcm9tcHQiOiJJbiB0aGlzIHBpY3R1cmUsIHdoYXQgZG8geW91IHRoaW5rIHdpbGwgbW9zdCBwcm9iYWJseSBoYXBwZW4gbmV4dD8iLCJpbWciOiJzY2VuZSIsInRpcHMiOnsiYnVsbGV0cyI6WyJFYWNoIHByZWRpY3Rpb24gPSB3aWxsIC8gYmUgZ29pbmcgdG8gLyB3aWxsIHByb2JhYmx5ICsgYSBSRUFTT04gYmFzZWQgb24gYSBkZXRhaWwgaW4gdGhlIHBpY3R1cmUuIiwiTWFrZSAzXHUyMDEzNCBwcmVkaWN0aW9ucyBhYm91dCBkaWZmZXJlbnQgcGVvcGxlIFx1MjAxNCBkb24ndCBzdG9wIGF0IG9uZSBpZGVhLiIsIkZpbmlzaCB3aXRoIG9uZSBvdmVyYWxsIHByZWRpY3Rpb24gZm9yIHRoZSB3aG9sZSBzY2VuZS4iLCJTYW1lIGRpbm5lciBhcyBUYXNrIDMgLSBub3cgcHJlZGljdDogdGhlIGJveSB3aWxsIGRlbGl2ZXIgdGhlIHBsYXRlcyBzYWZlbHkgKG9yIG5lYXJseSBkcm9wIHRoZW0pLCB0aGUgZmFtaWx5IHdpbGwgc2l0IGRvd24gYW5kIHRvYXN0LCBzb21lb25lIHdpbGwgY2FydmUgdGhlIHR1cmtleSwgdGhlIGdyYW5kbW90aGVyIHdpbGwgc2VydmUgaGVyIHBpZSBmb3IgZGVzc2VydCwgdGhlIGNhdCB3aWxsIHRhbmdsZSB0aGUgeWFybiBhcm91bmQgYSBjaGFpciwgYW5kIHRoZSBiYWJ5IHdpbGwgc3RlYWwgZXZlcnlvbmUncyBhdHRlbnRpb24uIl0sInBocmFzZXMiOlsiXHUyMDI2aXMgYWJvdXQgdG9cdTIwMjYiLCJIZSdsbCBtb3N0IGxpa2VseVx1MjAyNiIsIkp1ZGdpbmcgYnlcdTIwMjYsIEkgZXhwZWN0XHUyMDI2IiwiV2l0aGluIG1pbnV0ZXMsIFx1MjAyNiJdfSwiczYiOiJJIHRoaW5rIHRoaXMgZmFtaWx5IGRpbm5lciB3aWxsIHN0YXJ0IHZlcnkgc29vbiwgYW5kIGhlcmUgaXMgd2hhdCB3aWxsIGhhcHBlbiBuZXh0LiBGaXJzdCwgdGhlIGJveSBpbiBncmVlbiBjYXJyeWluZyB0aGUgc3RhY2sgb2YgcGxhdGVzIHdpbGwgd2FsayB2ZXJ5IHNsb3dseSBhbmQgY2FyZWZ1bGx5IHRvIHRoZSB0YWJsZSBcdTIwMTQgZXZlcnlvbmUgd2lsbCBob2xkIHRoZWlyIGJyZWF0aCBcdTIwMTQgYW5kIGhlIHdpbGwgcHV0IHRoZSBwbGF0ZXMgZG93biBzYWZlbHkuIE1heWJlIG9uZSBwbGF0ZSB3aWxsIGFsbW9zdCBmYWxsLCBhbmQgdGhlIHdob2xlIGZhbWlseSB3aWxsIHNob3V0IE9oISBhbmQgdGhlbiBsYXVnaC4gVGhlbiB0aGUgZ3JhbmRtb3RoZXIgd2lsbCBmaW5pc2ggY3V0dGluZyB0aGUgcGllIGFuZCBicmluZyBpdCB0byB0aGUgYmlnIHRhYmxlIGZvciBkZXNzZXJ0LiBUaGUgYWR1bHRzIHdpbGwgc3RvcCB0YWxraW5nLCBldmVyeW9uZSB3aWxsIGZpbmQgYSBjaGFpciwgYW5kIHRoZSBtYW4gaW4gYnJvd24gd2lsbCBtYWtlIGEgd2FybSB0b2FzdCB0byB0aGUgZmFtaWx5LiBBZnRlciB0aGF0LCBzb21lb25lIHdpbGwgY2FydmUgdGhlIGJpZyB0dXJrZXksIGFuZCB0aGUgcm9vbSB3aWxsIGJlY29tZSBxdWlldCBmb3IgYSBtaW51dGUsIGJlY2F1c2UgZXZlcnlvbmUgd2lsbCBiZSBlYXRpbmcgYW5kIGVuam95aW5nLiBUaGUgYmFieSB3aWxsIHByb2JhYmx5IHN0YXJ0IGxhdWdoaW5nIG9yIGNyeWluZywgYW5kIGV2ZXJ5b25lIHdpbGwgbG9vayBhdCB0aGUgYmFieSBpbnN0ZWFkIG9mIHRoZSBmb29kLiBBbmQgdGhlIHdoaXRlIGNhdCB3aWxsIGtlZXAgcGxheWluZyBhbmQgd2lsbCByb2xsIHRoZSByZWQgeWFybiBhcm91bmQgYSBjaGFpciBsZWcsIHNvIGFmdGVyIGRpbm5lciBzb21lYm9keSB3aWxsIHNwZW5kIHRlbiBtaW51dGVzIHVudGFuZ2xpbmcgaXQuIEl0IHdpbGwgYmUgYSBwZXJmZWN0LCB3YXJtIGZhbWlseSBldmVuaW5nLiIsInM5IjoiRXZlcnl0aGluZyBpbiB0aGlzIHJvb20gaXMgb25lIHN0ZXAgYXdheSBmcm9tIGRpbm5lciwgc28gbGV0IG1lIHByZWRpY3QgdGhlIHNlcXVlbmNlLiBGaXJzdCwgYWxsIGV5ZXMgd2lsbCBiZSBvbiB0aGUgYm95IGluIGdyZWVuIGFuZCBoaXMgdG93ZXIgb2YgcGxhdGVzIFx1MjAxNCBoZSdsbCBtYWtlIHRoZSBqb3VybmV5IHRvIHRoZSB0YWJsZSB3aXRoIHRoZSBjb25jZW50cmF0aW9uIG9mIGEgYm9tYi1kaXNwb3NhbCBleHBlcnQsIHdvYmJsZSBvbmNlIGZvciBkcmFtYXRpYyBlZmZlY3QsIGFuZCBsYW5kIHRoZW0gc2FmZWx5IHRvIGEgcm91bmQgb2YgZmFtaWx5IGFwcGxhdXNlLiBUaGUgZ3JhbmRtb3RoZXIgd2lsbCBmaW5pc2ggd2l0aCB0aGUgcGllLCBzZXQgaXQgcHJvdWRseSBvbiB0aGUgc2lkZSBmb3IgZGVzc2VydCwgYW5kIHVudGllIGhlciBhcHJvbiBcdTIwMTQgdGhlIHVuaXZlcnNhbCBzaWduYWwgdGhhdCBjb29raW5nIGlzIG9mZmljaWFsbHkgb3Zlci4gVGhlbiBjb21lcyB0aGUgZ2F0aGVyaW5nOiB0aGUgd2luZS10b2FzdGluZyBncm91cCBvbiB0aGUgbGVmdCB3aWxsIGRyaWZ0IHRvIHRoZWlyIGNoYWlycywgdGhlIG1hbiBpbiBicm93biB3aWxsIHRhcCBoaXMgZ2xhc3MgYW5kIGRlbGl2ZXIgYSBzaG9ydCwgd2FybSB0b2FzdCBcdTIwMTQgcHJvYmFibHkgc29tZXRoaW5nIGFib3V0IGJlaW5nIGdyYXRlZnVsIGV2ZXJ5b25lIGNvdWxkIGNvbWUgXHUyMDE0IGFuZCB0aGUgY2FydmluZyBvZiB0aGUgdHVya2V5IHdpbGwgYmVnaW4sIHdpdGggYXQgbGVhc3QgdHdvIHBlb3BsZSBwaG90b2dyYXBoaW5nIGl0LiBGb3IgYSBmZXcgbWludXRlcyB0aGUgcm9vbSB3aWxsIGFjdHVhbGx5IGdvIHF1aWV0LCB3aGljaCBpbiBhIGZhbWlseSB0aGlzIHNpemUgaXMgdGhlIGhpZ2hlc3QgY29tcGxpbWVudCBhIGNvb2sgY2FuIHJlY2VpdmUuIFRoZSBiYWJ5LCBvZiBjb3Vyc2UsIHdpbGwgZGVjaWRlIG1pZC1kaW5uZXIgdG8gYmVjb21lIHRoZSBtYWluIGV2ZW50LCBlaXRoZXIgYnkgbGF1Z2hpbmcgYXQgdGhlIHR1cmtleSBvciBjcnlpbmcgYXQgaXQsIGFuZCBldmVyeSBhZHVsdCB3aWxsIHRha2UgdHVybnMgbWFraW5nIGZhY2VzLiBNZWFud2hpbGUsIGRvd24gYXQgZmxvb3IgbGV2ZWwsIHRoZSBjYXQgaXMgZ3VhcmFudGVlZCB0byB3ZWF2ZSB0aGF0IHJlZCB5YXJuIGFyb3VuZCB0aHJlZSBjaGFpciBsZWdzIGFuZCBhIHRhYmxlIGxlZywgY3JlYXRpbmcgYSBwdXp6bGUgc29tZW9uZSB3aWxsIGRpc2NvdmVyIG9ubHkgd2hlbiB0aGV5IHN0YW5kIHVwLiBBbmQgdGhlIGV2ZW5pbmcgd2lsbCBlbmQgZXhhY3RseSBhcyBpdCBzaG91bGQ6IHdpdGggcGllLCBjb2ZmZWUsIGFuZCB0aGUgZ3JhbmRtb3RoZXIgYmVpbmcgdG9sZCwgZm9yIHRoZSBmb3J0aWV0aCB5ZWFyIHJ1bm5pbmcsIHRoYXQgc2hlJ3Mgb3V0ZG9uZSBoZXJzZWxmLiJ9LHsiayI6InQ1IiwibnVtIjo1LCJ0eXBlRW4iOiJDb21wYXJpbmcgYW5kIFBlcnN1YWRpbmciLCJwaGFzZWQiOnRydWUsImNob29zZSI6eyJwcmVwIjo2MCwic2l0dWF0aW9uIjoiWW91ciBmcmllbmRzIHdhbnQgdG8gZG8gc29tZXRoaW5nIGZ1biB0b2dldGhlciBvbiB0aGUgd2Vla2VuZCwgYW5kIHRoZXkgYXNrZWQgeW91IHRvIGNob29zZSBhbiBhY3Rpdml0eS4gWW91IGZvdW5kIHR3byBzdWl0YWJsZSBvcHRpb25zLiBVc2luZyB0aGUgcGljdHVyZXMgYW5kIGluZm9ybWF0aW9uIGJlbG93LCBjaG9vc2UgdGhlIG9wdGlvbiB0aGF0IHlvdSBwcmVmZXIuIEluIHRoZSBuZXh0IHNlY3Rpb24sIHlvdSB3aWxsIG5lZWQgdG8gcGVyc3VhZGUgYSBmcmllbmQgdGhhdCB5b3VyIGNob2ljZSBpcyB0aGUgYmV0dGVyIGNob2ljZS4iLCJub3RlIjoiSWYgeW91IGRvIG5vdCBjaG9vc2UgYW4gb3B0aW9uLCB0aGUgY29tcHV0ZXIgd2lsbCBjaG9vc2Ugb25lIGZvciB5b3UuIFlvdSBkbyBub3QgbmVlZCB0byBzcGVhayBmb3IgdGhpcyBwYXJ0LiIsIm9wdGlvbnMiOlt7InRpdGxlIjoiU2thdGluZyBpbiB0aGUgUGFyayIsImltZyI6Im9wdEEiLCJidWxsZXRzIjpbInNvY2lhbGl6ZSBhbmQgZ2V0IG91dGRvb3IgZXhlcmNpc2UgYXQgdGhlIHNhbWUgdGltZSIsInJlbnQgc2thdGVzICgkMTApIG9yIGJyaW5nIHlvdXIgb3duIiwibGlnaHQgcmVmcmVzaG1lbnRzIGF0IHRoZSBjYWZlIl19LHsidGl0bGUiOiJCb3dsaW5nIiwiaW1nIjoib3B0QiIsImJ1bGxldHMiOlsid29yayB3aXRoIHlvdXIgdGVhbSB0byB3aW4gYWdhaW5zdCBvdGhlciB0ZWFtcywgb3IganVzdCBwbGF5IGZvciBmdW4iLCJyZW50IHNob2VzICgkNSkgYXQgdGhlIGJvd2xpbmcgYWxsZXkiLCJmdWxsIG1lbnUgYXZhaWxhYmxlIGF0IHRoZSByZXN0YXVyYW50Il19XX0sInNwZWFrIjp7InByZXAiOjYwLCJyZWMiOjYwLCJwcm9tcHQiOiJZb3VyIGZyaWVuZCBpcyBzdWdnZXN0aW5nIGEgZGlmZmVyZW50IGFjdGl2aXR5IChzaG93biBiZWxvdykuIFBlcnN1YWRlIHlvdXIgZnJpZW5kIHRoYXQgdGhlIGFjdGl2aXR5IHlvdSBjaG9zZSBpcyB0aGUgYmV0dGVyIGNob2ljZSBieSBjb21wYXJpbmcgdGhlIHR3by4iLCJvdGhlckxhYmVsIjoiWW91ciBGcmllbmQncyBDaG9pY2UiLCJvdGhlciI6eyJ0aXRsZSI6IkljZSBzd2ltbWluZyIsImltZyI6Im9wdE90aGVyIiwiYnVsbGV0cyI6WyJzd2ltIGluIGljeSB3YXRlciIsImZyZWUgdG93ZWwgcHJvdmlkZWQgYWZ0ZXIgdGhlIHN3aW0iLCIkMTUgZm9yIGFsbC1kYXkgcG9vbCBhY2Nlc3MiXX19LCJ0aXBzIjp7ImJ1bGxldHMiOlsiU3RydWN0dXJlOiBhY2tub3dsZWRnZSB0aGUgb3RoZXIgcGVyc29uJ3MgY2hvaWNlIFx1MjE5MiBnaXZlIDJcdTIwMTMzIGFkdmFudGFnZXMgb2YgeW91cnMgKGRpcmVjdCBjb21wYXJpc29uKSBcdTIxOTIgd3JhcCB1cC4iLCJDb21wYXJlIHVzaW5nIHRoZSBudW1iZXJzIG9uIHRoZSBjYXJkczogcHJpY2UsIGR1cmF0aW9uLCBjYXBhY2l0eSwgZXhwZXJpZW5jZS4iLCJZb3UgZG8gTk9UIG5lZWQgdG8gc3BlYWsgZHVyaW5nIHRoZSBjaG9vc2luZyBzdGVwIFx1MjAxNCBqdXN0IGNsaWNrIGFuIG9wdGlvbi4iLCJUaGUgc2FtcGxlcyBiZWxvdyBjaG9vc2UgQm93bGluZyAoZXZlcnlvbmUgY2FuIHBsYXkgcmVnYXJkbGVzcyBvZiBza2lsbCwgY2hlYXAgJDUgc2hvZSByZW50YWwsIGZ1bGwgcmVzdGF1cmFudCwgaW5kb29yID0gd2VhdGhlci1wcm9vZikuIFRoZSBmcmllbmQncyBjaG9pY2UgaXMgaWNlIHN3aW1taW5nIC0ganVtcGluZyBpbnRvIGljeSB3YXRlcjogZXh0cmVtZSwgZ2VudWluZWx5IHVucGxlYXNhbnQgZm9yIG1vc3QgcGVvcGxlLCBhbmQgYSBmcmVlIHRvd2VsIGRvZXMgbm90IGZpeCBoeXBvdGhlcm1pYS4gSWYgeW91IHByZWZlciBza2F0aW5nLCBzdHJlc3MgdGhlIG91dGRvb3ItZXhlcmNpc2UgKyBzb2NpYWxpemluZyBjb21iby4iXSwicGhyYXNlcyI6WyJJIHNlZSB3aHkgeW91IGxpa2VcdTIwMjYsIGJ1dFx1MjAyNiIsIkNvbXBhcmVkIHRvXHUyMDI2LCB0aGlzIG9uZVx1MjAyNiIsIkl0J3MgYmV0dGVyIHZhbHVlOiBcdTIwMjYgdmVyc3VzIFx1MjAyNiIsIklmIHRoZSBnb2FsIGlzXHUyMDI2LCB0aGUgY2hvaWNlIGlzIGNsZWFyLiJdfSwiczYiOiJMaXN0ZW4sIEkgc2F3IHlvdXIgaWNlIHN3aW1taW5nIGlkZWEsIGFuZCBJIGhhdmUgdG8gYmUgaG9uZXN0IHdpdGggeW91OiBqdW1waW5nIGludG8gaWN5IHdhdGVyIGlzIG5vdCBhIGZ1biB3ZWVrZW5kIGZvciBtb3N0IG9mIHVzISBJIHJlYWxseSB0aGluayBib3dsaW5nIGlzIHRoZSBiZXR0ZXIgY2hvaWNlIGZvciBvdXIgZ3JvdXAsIGFuZCBoZXJlIGlzIHdoeS4gRmlyc3QsIGV2ZXJ5Ym9keSBjYW4gYm93bC4gQW5uYSBoYXMgbmV2ZXIgc2thdGVkLCBUb20gaGF0ZXMgY29sZCB3YXRlciwgYnV0IGV2ZXJ5b25lIGNhbiB0aHJvdyBhIGJvd2xpbmcgYmFsbCBhbmQgbGF1Z2ggYWJvdXQgaXQuIFlvdXIgaWNlIHN3aW1taW5nIGlzIG9ubHkgZnVuIGZvciB5b3UsIG15IGZyaWVuZCBcdTIwMTQgdGhlIHJlc3Qgb2YgdXMgd2lsbCBzdGFuZCB0aGVyZSBmcmVlemluZyBhbmQgd2F0Y2hpbmcgeW91IHR1cm4gYmx1ZS4gQSBmcmVlIHRvd2VsIHdpbGwgbm90IHNhdmUgdXMhIFNlY29uZCwgdGhlIHByaWNlLiBCb3dsaW5nIHNob2VzIGNvc3Qgb25seSBmaXZlIGRvbGxhcnMsIGFuZCBpY2Ugc3dpbW1pbmcgY29zdHMgZmlmdGVlbi4gVGhpcmQsIGZvb2QuIFRoZSBib3dsaW5nIGFsbGV5IGhhcyBhIGZ1bGwgcmVzdGF1cmFudCwgc28gd2UgY2FuIHBsYXksIGVhdCBidXJnZXJzLCBhbmQgcGxheSBhZ2Fpbi4gVGhhdCBpcyBhIHdob2xlIGV2ZW5pbmcgb2YgZnVuLiBBbmQgYm93bGluZyBpcyBpbnNpZGUsIHNvIGV2ZW4gaWYgaXQgcmFpbnMgb3Igc25vd3MsIG91ciBwbGFuIGlzIHNhZmUuIFdlIGNhbiBtYWtlIHR3byB0ZWFtcywgdGhyZWUgYWdhaW5zdCB0aHJlZSwgYW5kIHRoZSBsb3NlcnMgYnV5IHBpenphLiBEb2Vzbid0IHRoYXQgc291bmQgYmV0dGVyIHRoYW4gaWNlIHdhdGVyPyBMZXQncyBnbyBib3dsaW5nLCBhbmQgaW4gc3VtbWVyLCBJIHByb21pc2UsIHdlIGNhbiB0cnkgeW91ciBjcmF6eSBzd2ltbWluZyBpZGVhLiIsInM5IjoiT2theSwgSSd2ZSBsb29rZWQgYXQgeW91ciBpY2Ugc3dpbW1pbmcgc3VnZ2VzdGlvbiwgYW5kIEkgYWRtaXJlIHlvdXIgY291cmFnZSBcdTIwMTQgYnV0IGFzIHRoZSBwZXJzb24gcmVzcG9uc2libGUgZm9yIHRoaXMgd2Vla2VuZCwgSSdtIGdvaW5nIHRvIGZpZ2h0IGhhcmQgZm9yIGJvd2xpbmcsIGFuZCBoZXJlJ3MgdGhlIGNhc2UuIEZpcnN0IGFuZCBtb3N0IGltcG9ydGFudGx5OiBpbmNsdXNpdmVuZXNzLiBPdXIgZ3JvdXAgaXMgc2l4IHZlcnkgZGlmZmVyZW50IHBlb3BsZS4gQXQgdGhlIGJvd2xpbmcgYWxsZXksIGV2ZXJ5IHNpbmdsZSBvbmUgb2YgdGhlbSBjYW4gcGFydGljaXBhdGUgXHUyMDE0IHlvdSBkb24ndCBuZWVkIHNraWxsLCBmaXRuZXNzIG9yIGJyYXZlcnkgdG8gcm9sbCBhIGJhbGwsIGFuZCBldmVuIHRoZSBmYWlsdXJlcyBhcmUgaGlsYXJpb3VzLiBJY2Ugc3dpbW1pbmcsIGJ5IGNvbnRyYXN0LCBpcyBhIG5pY2hlIGV4dHJlbWUgZXhwZXJpZW5jZTogcmVhbGlzdGljYWxseSwgeW91J2QganVtcCBpbiwgdHdvIG9mIHVzIG1pZ2h0IGRpcCBhIHRvZSwgYW5kIHRoZSBvdGhlciB0aHJlZSB3b3VsZCBzdGFuZCBzaGl2ZXJpbmcgb24gdGhlIGRlY2sgaG9sZGluZyB0b3dlbHMsIHdvbmRlcmluZyB3aHkgdGhleSBkaWRuJ3Qgc3RheSBob21lLiBBIGZyZWUgdG93ZWwgaXMgYSBuaWNlIHRvdWNoLCBidXQgaXQncyBlc3NlbnRpYWxseSB0aGUgdmVudWUgYWRtaXR0aW5nIHlvdSdsbCBiZSBpbiBtaWxkIGRpc3RyZXNzLiBTZWNvbmQsIHRoZSB2YWx1ZSBjb21wYXJpc29uOiBmaXZlIGRvbGxhcnMgZm9yIHNob2UgcmVudGFsIHZlcnN1cyBmaWZ0ZWVuIGZvciBwb29sIGFjY2VzcyBcdTIwMTQgYW5kIHRoZSBib3dsaW5nIGFsbGV5IGhhcyBhIGZ1bGwgcmVzdGF1cmFudCwgd2hpY2ggdHVybnMgdHdvIGhvdXJzIG9mIGJvd2xpbmcgaW50byBhIHdob2xlIGV2ZW5pbmcgb2YgZ2FtZXMsIGJ1cmdlcnMsIGFuZCByZW1hdGNoZXMuIFRoaXJkLCByZWxpYWJpbGl0eTogYm93bGluZyBpcyBpbmRvb3JzLCBzbyB0aGUgd2VhdGhlciBjYW4gZG8gd2hhdGV2ZXIgaXQgd2FudHM7IGFuIG91dGRvb3IgaWN5IHBvb2wgaW4gYmFkIHdlYXRoZXIgZ29lcyBmcm9tIHRvdWdoIHRvIHRvcnR1cmUuIEFuZCB0aGVyZSdzIHRoZSB0ZWFtIGFuZ2xlIFx1MjAxNCB3ZSBjYW4gc3BsaXQgdGhyZWUgYWdhaW5zdCB0aHJlZSwgaW52ZW50IGEgdHJvcGh5LCBtYWtlIHRoZSBsb3NlcnMgYnV5IGRlc3NlcnQuIFRoYXQncyB0aGUga2luZCBvZiBzaGFyZWQsIGNvbXBldGl0aXZlIGZ1biB0aGF0IGFjdHVhbGx5IGJvbmRzIGEgZ3JvdXAuIFNvIGhlcmUncyBteSBvZmZlcjogYm93bGluZyB0aGlzIHdlZWtlbmQsIGFuZCB3aGVuIHN1bW1lciBjb21lcywgSSB3aWxsIHBlcnNvbmFsbHkgc3RhbmQgYmVzaWRlIHlvdSBhdCB0aGUgaWNlIHBvb2wgXHUyMDE0IHdpdGggdGhlIGNhbWVyYS4gRGVhbD8ifSx7ImsiOiJ0NiIsIm51bSI6NiwidHlwZUVuIjoiRGVhbGluZyB3aXRoIGEgRGlmZmljdWx0IFNpdHVhdGlvbiIsInByZXAiOjYwLCJyZWMiOjYwLCJwcm9tcHQiOiJZb3UgaGF2ZSBiZWNvbWUgZnJpZW5kcyB3aXRoIG9uZSBvZiB5b3VyIGNvLXdvcmtlcnMsIFRpbmEuIFlvdSBhbmQgdHdvIG90aGVyIGNvLXdvcmtlcnMsIERhdmlkIGFuZCBBbnlhLCByZWNlbnRseSBvdmVyaGVhcmQgeW91ciBib3NzIHNheWluZyB0aGF0IFRpbmEgd2lsbCBiZSBmaXJlZCBpZiBzaGUgZG9lcyBub3Qgc3RhcnQgd29ya2luZyBoYXJkZXIuIEFueWEgc2F5cyB0aGF0IHlvdSBzaG91bGQgdGVsbCBUaW5hIHdoYXQgeW91IGhlYXJkLCBidXQgRGF2aWQgc2F5cyB0aGF0IHlvdSBzaG91bGQgbm90IHRlbGwgVGluYSB3aGF0IHlvdSBoZWFyZC4iLCJjaG9vc2VPbmUiOlsiVGFsayB0byBBbnlhLiBFeHBsYWluIHdoeSB5b3Ugd2lsbCBub3QgdGVsbCBUaW5hIHdoYXQgeW91IGhlYXJkLiIsIlRhbGsgdG8gRGF2aWQuIEV4cGxhaW4gd2h5IHlvdSB3aWxsIHRlbGwgVGluYSB3aGF0IHlvdSBoZWFyZC4iXSwiaW1nIjpudWxsLCJ0aXBzIjp7ImJ1bGxldHMiOlsiUGljayBPTkUgb3B0aW9uIChFSVRIRVIgb3IgT1IpIGltbWVkaWF0ZWx5IFx1MjAxNCBkb24ndCB3YXN0ZSB0aW1lIGRlY2lkaW5nLiIsIlN0cnVjdHVyZTogb3BlbiBwb2xpdGVseSBcdTIxOTIgZXhwbGFpbiB5b3VyIHJlYXNvbnMvZXZpZGVuY2UgXHUyMTkyIHByb3Bvc2UgYSBzb2x1dGlvbiBcdTIxOTIgc21vb3RoIHRoaW5ncyBvdmVyLiIsIlN0YXkgY2FsbSBhbmQgcmVzcGVjdGZ1bCBcdTIwMTQgaG93IHlvdSBoYW5kbGUgdGhlIHNpdHVhdGlvbiBpcyBwYXJ0IG9mIHdoYXQncyBiZWluZyByYXRlZCAoTGlzdGVuYWJpbGl0eSkuIiwiVGhlIHNhbXBsZXMgY2hvb3NlIG9wdGlvbiAyICh0ZWxsIERhdmlkIHdoeSB5b3UgV0lMTCB0ZWxsIFRpbmEpLiBLZXkgbG9naWM6IHN0YXlpbmcgc2lsZW50IHByb3RlY3RzIG5vYm9keSBleGNlcHQgeW91ciBvd24gY29tZm9ydCAtIFRpbmEgbG9zZXMgaGVyIGpvYiB3aXRob3V0IGV2ZXIgZ2V0dGluZyBhIGNoYW5jZSB0byBmaXggaXQuIFBsYW4gdG8gdGVsbCBoZXIgcHJpdmF0ZWx5LCBraW5kbHksIHdpdGhvdXQgbmFtaW5nIHRoZSBib3NzLCBmcmFtZWQgYXMgZnJpZW5kbHkgZW5jb3VyYWdlbWVudC4gQWRkcmVzcyBEYXZpZCdzIGZlYXJzOiBpdCBpcyBub3QgZ29zc2lwIGlmIHRoZSBnb2FsIGlzIHRvIGhlbHAsIGFuZCB5b3Ugd2lsbCBrZWVwIGl0IGRpc2NyZWV0LiJdLCJwaHJhc2VzIjpbIkNvdWxkIEkganVtcCBpbiBmb3IgYSBtb21lbnQ\/IiwiSSB1bmRlcnN0YW5kIHlvdXIgY29uY2VybiwgYnV0XHUyMDI2IiwiSG93IGFib3V0IHdlXHUyMDI2PyIsIkknbGwgdGFrZSByZXNwb25zaWJpbGl0eSBmb3IgdGhpcy4iXX0sInM2IjoiRGF2aWQsIGNhbiB3ZSB0YWxrIGFib3V0IFRpbmEgZm9yIGEgbWludXRlPyBJIGtub3cgeW91IHRoaW5rIHdlIHNob3VsZCBzdGF5IHF1aWV0IGFib3V0IHdoYXQgd2UgaGVhcmQsIGFuZCBJIHVuZGVyc3RhbmQgeW91ciByZWFzb25zIFx1MjAxNCB5b3UgZG8gbm90IHdhbnQgZHJhbWEsIGFuZCBpdCBmZWVscyBsaWtlIGdvc3NpcC4gQnV0IEkgaGF2ZSBkZWNpZGVkIHRvIHRlbGwgVGluYSwgYW5kIEkgd2FudCB0byBleHBsYWluIHdoeS4gVGhpbmsgYWJvdXQgd2hhdCBoYXBwZW5zIGlmIHdlIHNheSBub3RoaW5nLiBUaW5hIGtlZXBzIHdvcmtpbmcgdGhlIHNhbWUgd2F5LCB0aGUgYm9zcyBsb3NlcyBwYXRpZW5jZSwgYW5kIG9uZSBkYXkgc2hlIGlzIGZpcmVkLiBTaGUgd2lsbCBzaXQgYXQgaG9tZSBhbmQgYXNrIGhlcnNlbGY6IG15IGZyaWVuZHMgaGVhcmQgYWJvdXQgdGhpcyBhbmQgc2FpZCBub3RoaW5nPyBIb3cgY2FuIEkgbG9vayBhdCBoZXIgYWZ0ZXIgdGhhdD8gU2lsZW5jZSBkb2VzIG5vdCBwcm90ZWN0IFRpbmEsIERhdmlkIFx1MjAxNCBpdCBvbmx5IHByb3RlY3RzIHVzIGZyb20gYW4gdW5jb21mb3J0YWJsZSBjb252ZXJzYXRpb24uIElmIEkgd2FybiBoZXIgbm93LCBzaGUgaGFzIGEgcmVhbCBjaGFuY2UgdG8gZml4IHRoaW5nczogY29tZSBlYXJsaWVyLCBmaW5pc2ggaGVyIHJlcG9ydHMsIHNob3cgdGhlIGJvc3Mgc2hlIGNhcmVzLiBNYXliZSBzaGUgc2F2ZXMgaGVyIGpvYi4gQW5kIGRvIG5vdCB3b3JyeSwgSSB3aWxsIGRvIGl0IGNhcmVmdWxseS4gSSB3aWxsIHRhbGsgdG8gaGVyIHByaXZhdGVseSwgb3V0c2lkZSB0aGUgb2ZmaWNlLCBhbmQgSSB3aWxsIG5vdCBzYXkgdGhlIGJvc3MncyBuYW1lIG9yIHRoZSB3b3JkIGZpcmVkLiBJIHdpbGwganVzdCBzYXksIHBlb3BsZSBoYXZlIG5vdGljZWQsIHBsZWFzZSBiZSBjYXJlZnVsLCBJIHNheSB0aGlzIGJlY2F1c2UgSSBhbSB5b3VyIGZyaWVuZC4gVGhhdCBpcyBub3QgZ29zc2lwIFx1MjAxNCB0aGF0IGlzIGZyaWVuZHNoaXAuIEkgaG9wZSB5b3UgY2FuIHVuZGVyc3RhbmQgbXkgY2hvaWNlLiIsInM5IjoiRGF2aWQsIEkgd2FudCB0byB0YWxrIHRoaXMgdGhyb3VnaCB3aXRoIHlvdSwgYmVjYXVzZSBJIHJlc3BlY3QgeW91ciB2aWV3IGJ1dCBJJ3ZlIG1hZGUgdXAgbXkgbWluZDogSSdtIGdvaW5nIHRvIHRlbGwgVGluYSwgYW5kIEknZCByYXRoZXIgeW91IGhlYXIgbXkgcmVhc29ucyB0aGFuIGp1c3Qgc2VlIG1lIGRvIGl0LiBZb3VyIGluc3RpbmN0IFx1MjAxNCBkb24ndCBzcHJlYWQgd2hhdCB3ZSBvdmVyaGVhcmQgXHUyMDE0IGNvbWVzIGZyb20gYSBnb29kIHBsYWNlLiBQYXNzaW5nIGFsb25nIHRoZSBib3NzJ3MgcHJpdmF0ZSB3b3JkcyBmZWVscyBsaWtlIGdvc3NpcCwgYW5kIHRoZXJlJ3MgYSByaXNrIGl0IHN0aXJzIHVwIGRyYW1hLiBCdXQgd2FsayB0aHJvdWdoIHRoZSBhbHRlcm5hdGl2ZSB3aXRoIG1lLiBJZiB3ZSBzdGF5IHNpbGVudCwgVGluYSBjYXJyaWVzIG9uIGV4YWN0bHkgYXMgc2hlIGlzLCBjb21wbGV0ZWx5IHVuYXdhcmUgc2hlJ3Mgb24gdGhpbiBpY2UuIFRoZSBib3NzJ3MgcGF0aWVuY2UgcnVucyBvdXQsIGFuZCBvbmUgbW9ybmluZyBzaGUncyBwYWNraW5nIGhlciBkZXNrIGludG8gYSBib3ggXHUyMDE0IGJsaW5kc2lkZWQsIGh1bWlsaWF0ZWQsIHVuZW1wbG95ZWQuIEFuZCB0aGVuIHNoZSBsZWFybnMgdGhhdCB0aHJlZSBwZW9wbGUgc2hlIGNvbnNpZGVyZWQgZnJpZW5kcyBrbmV3IGl0IHdhcyBjb21pbmcgYW5kIGNob3NlIGNvbWZvcnQgb3ZlciBob25lc3R5LiBPdXIgc2lsZW5jZSB3b3VsZG4ndCBoYXZlIHByb3RlY3RlZCBoZXIsIERhdmlkOyBpdCB3b3VsZCBvbmx5IGhhdmUgcHJvdGVjdGVkIHVzIGZyb20gb25lIGF3a3dhcmQgY29udmVyc2F0aW9uLiBUaGF0IG1hdGggZG9lc24ndCB3b3JrIGZvciBtZS4gQSByZWFsIHdhcm5pbmcgbm93IGdpdmVzIGhlciB3aGF0IHNoZSBkZXNlcnZlczogYSBjaGFuY2UuIFNoZSBjYW4gdGlnaHRlbiB1cCBoZXIgd29yaywgYmUgdmlzaWJsZSwgbWF5YmUgZXZlbiB0YWxrIHRvIHRoZSBib3NzIHByb2FjdGl2ZWx5IFx1MjAxNCBwZW9wbGUgcmVzY3VlIHRoZWlyIGpvYnMgZnJvbSB3b3JzZSBwb3NpdGlvbnMgYWxsIHRoZSB0aW1lLCBidXQgb25seSB3aGVuIHRoZXkga25vdyB0aGV5IG5lZWQgdG8uIEFuZCBJIHByb21pc2UgeW91IEknbGwgaGFuZGxlIGl0IHdpdGggY2FyZTogcHJpdmF0ZWx5LCBvdmVyIGNvZmZlZSBhd2F5IGZyb20gdGhlIG9mZmljZSwgbm8gbmFtZXMsIG5vIHF1b3Rlcywgbm8gdGhlYXRyZS4gSnVzdDogVGluYSwgYXMgYSBmcmllbmQgXHUyMDE0IEkgdGhpbmsgeW91ciB3b3JrIGhhcyBiZWVuIG5vdGljZWQgbGF0ZWx5LCBhbmQgbm90IGluIGEgZ29vZCB3YXkuIFBsZWFzZSB0YWtlIGl0IHNlcmlvdXNseS4gVGhhdCBmcmFtaW5nIGtlZXBzIHlvdSBhbmQgQW55YSBvdXQgb2YgaXQsIGF2b2lkcyBwb2lzb25pbmcgaGVyIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBib3NzLCBhbmQgZ2l2ZXMgaGVyIGFnZW5jeS4gSWYgaXQgd2VyZSBtZSBoZWFkaW5nIGZvciB0aGF0IGNsaWZmLCBJJ2Qgd2FudCBhIGZyaWVuZCB0byBncmFiIG15IHNob3VsZGVyLiBXb3VsZG4ndCB5b3U\/In0seyJrIjoidDciLCJudW0iOjcsInR5cGVFbiI6IkV4cHJlc3NpbmcgT3BpbmlvbnMiLCJwcmVwIjozMCwicmVjIjo5MCwicHJvbXB0IjoiRG8geW91IHRoaW5rIGNpdHkgZ292ZXJubWVudHMgc2hvdWxkIHByb3ZpZGUgZnJlZSB3aXJlbGVzcyBpbnRlcm5ldCBhY2Nlc3MgdG8gYW55IGNpdGl6ZW4gd2hvIG5lZWRzIGl0PyBFeHBsYWluIHlvdXIgcmVhc29ucy4iLCJwcm9tcHRMZWFkIjoiQW5zd2VyIHRoZSBmb2xsb3dpbmcgcXVlc3Rpb24uIiwiaW1nIjpudWxsLCJ0aXBzIjp7ImJ1bGxldHMiOlsiU3RhdGUgeW91ciBwb3NpdGlvbiBjbGVhcmx5IGluIHRoZSBmaXJzdCBzZW50ZW5jZSAocGlja2luZyBvbmUgc2lkZSBpcyBlYXNpZXIgdG8gZGV2ZWxvcCB0aGFuIHN0YXlpbmcgbmV1dHJhbCkuIiwiR2l2ZSAyXHUyMDEzMyByZWFzb25zLCBlYWNoIGRldmVsb3BlZCBvdmVyIDJcdTIwMTMzIHNlbnRlbmNlcyB3aXRoIGFuIGV4YW1wbGU7IDkwIHNlY29uZHMgaXMgbG9uZyBcdTIwMTQgZG9uJ3Qgc3RvcCBlYXJseS4iLCJBY2tub3dsZWRnZSB0aGUgb3RoZXIgc2lkZSBpbiBvbmUgc2VudGVuY2UgKFRoYXQgc2FpZCwgXHUyMDI2KSB0aGVuIGNvbmNsdWRlIFx1MjAxNCBpdCBzaG93cyBiYWxhbmNlZCB0aGlua2luZy4iLCJQaWNrIG9uZSBzaWRlICh0aGUgc2FtcGxlcyBhcmd1ZSBZRVMgLSBjaXR5LXByb3ZpZGVkIGZyZWUgd2lmaSBmb3IgdGhvc2Ugd2hvIG5lZWQgaXQpLiBDb25jcmV0ZSByZWFzb25zOiB0aGUgaW50ZXJuZXQgaXMgbm93IGFuIGVzc2VudGlhbCB1dGlsaXR5IChqb2JzLCBzY2hvb2wsIGdvdmVybm1lbnQgc2VydmljZXMgYXJlIG9ubGluZSksIHRoZSBkaWdpdGFsIGRpdmlkZSBwdW5pc2hlcyBsb3ctaW5jb21lIGZhbWlsaWVzIGFuZCBzZW5pb3JzLCBhbmQgY29ubmVjdGVkIGNpdGl6ZW5zIGJvb3N0IHRoZSBsb2NhbCBlY29ub215IC0gdGhlbiBjb25jZWRlIG9uZSBzZW50ZW5jZSBhYm91dCBjb3N0IGFuZCBleGlzdGluZyBwcm92aWRlcnMuIl0sInBocmFzZXMiOlsiSWYgSSBoYWQgdG8gY2hvb3NlLCBJJ2Qgc2F5XHUyMDI2IiwiTXkgbWFpbiByZWFzb24gaXNcdTIwMjYiLCJGb3IgZXhhbXBsZSwgXHUyMDI2IiwiVGhhdCBzYWlkLCBcdTIwMjYiLCJBbGwgdGhpbmdzIGNvbnNpZGVyZWQsIFx1MjAyNiJdfSwiczYiOiJZZXMsIEkgYmVsaWV2ZSBjaXR5IGdvdmVybm1lbnRzIHNob3VsZCBwcm92aWRlIGZyZWUgd2lyZWxlc3MgaW50ZXJuZXQgdG8gY2l0aXplbnMgd2hvIG5lZWQgaXQsIGFuZCBJIGhhdmUgdGhyZWUgcmVhc29ucy4gRmlyc3QsIHRoZSBpbnRlcm5ldCB0b2RheSBpcyBub3QgYSBsdXh1cnkgXHUyMDE0IGl0IGlzIGEgYmFzaWMgbmVlZCwgbGlrZSB3YXRlciBvciBlbGVjdHJpY2l0eS4gSm9iIGFwcGxpY2F0aW9ucyBhcmUgb25saW5lLiBTY2hvb2wgaG9tZXdvcmsgaXMgb25saW5lLiBHb3Zlcm5tZW50IHNlcnZpY2VzLCBkb2N0b3IgYXBwb2ludG1lbnRzLCBiYW5raW5nIFx1MjAxNCBldmVyeXRoaW5nIGlzIG9ubGluZS4gSWYgYSBwZXJzb24gaGFzIG5vIGludGVybmV0LCB0aGV5IGNhbm5vdCBmdWxseSBsaXZlIGluIHRoZSBtb2Rlcm4gd29ybGQuIFNlY29uZCwgdGhpbmsgYWJvdXQgd2hvIGhhcyBubyBpbnRlcm5ldDogcG9vciBmYW1pbGllcywgc2VuaW9ycywgYW5kIG5ldyBpbW1pZ3JhbnRzLiBBIGNoaWxkIGZyb20gYSBwb29yIGZhbWlseSBjYW5ub3QgZG8gaGVyIGhvbWV3b3JrLCB3aGlsZSBoZXIgY2xhc3NtYXRlcyBmaW5pc2ggaXQgZWFzaWx5IGF0IGhvbWUuIFRoYXQgaXMgbm90IGZhaXIsIGFuZCBmcmVlIGNpdHkgd2lmaSBpbiBsaWJyYXJpZXMsIHBhcmtzLCBhbmQgYnVzZXMgd291bGQgZml4IGEgYmlnIHBhcnQgb2YgdGhpcyBwcm9ibGVtLiBUaGlyZCwgZnJlZSBpbnRlcm5ldCBhY3R1YWxseSBoZWxwcyB0aGUgY2l0eSdzIGVjb25vbXkuIFBlb3BsZSBjYW4gZmluZCBqb2JzIGZhc3RlciwgbGVhcm4gbmV3IHNraWxscyBvbmxpbmUsIGFuZCBzdGFydCBzbWFsbCBidXNpbmVzc2VzLiBPZiBjb3Vyc2UsIHNvbWUgcGVvcGxlIHNheSBpdCBpcyBleHBlbnNpdmUgZm9yIHRheHBheWVycywgYW5kIGludGVybmV0IGNvbXBhbmllcyB3aWxsIG5vdCBsaWtlIGl0LiBUaGF0IGlzIHRydWUuIEJ1dCByb2FkcyBhbmQgc3RyZWV0IGxpZ2h0cyBhcmUgZXhwZW5zaXZlIHRvbywgYW5kIHdlIGJ1aWxkIHRoZW0gYmVjYXVzZSBldmVyeW9uZSBuZWVkcyB0aGVtLiBJbiBteSBvcGluaW9uLCBpbnRlcm5ldCBpcyB0aGUgbmV3IHJvYWQuIFNvIHllcywgY2l0aWVzIHNob3VsZCBwcm92aWRlIGl0LiIsInM5IjoiWWVzIFx1MjAxNCBJIGZpcm1seSBiZWxpZXZlIGNpdHkgZ292ZXJubWVudHMgc2hvdWxkIHByb3ZpZGUgZnJlZSB3aXJlbGVzcyBpbnRlcm5ldCB0byBjaXRpemVucyB3aG8gbmVlZCBpdCwgYW5kIEknZCBmcmFtZSBpdCBhcyBhIHF1ZXN0aW9uIG9mIHdoYXQgY291bnRzIGFzIGVzc2VudGlhbCBpbmZyYXN0cnVjdHVyZSBpbiB0aGlzIGNlbnR1cnkuIE15IGZpcnN0IHJlYXNvbjogdGhlIGludGVybmV0IGhhcyBxdWlldGx5IGJlY29tZSBhIHV0aWxpdHkuIEpvYiBhcHBsaWNhdGlvbnMgYXJlIGV4Y2x1c2l2ZWx5IG9ubGluZTsgY2hpbGRyZW4ncyBob21ld29yayBsaXZlcyBvbiBzY2hvb2wgcG9ydGFsczsgZ292ZXJubWVudCBiZW5lZml0cywgdGF4IGZpbGluZywgbWVkaWNhbCBhcHBvaW50bWVudHMgYW5kIGJhbmtpbmcgaGF2ZSBhbGwgbWlncmF0ZWQgdG8gdGhlIHdlYi4gVGVsbGluZyBzb21lb25lIHRvIHBhcnRpY2lwYXRlIGluIG1vZGVybiBzb2NpZXR5IHdpdGhvdXQgaW50ZXJuZXQgYWNjZXNzIGlzIGxpa2UgdGVsbGluZyB0aGVtIHRvIGNvbXBldGUgaW4gYW4gZWNvbm9teSB3aXRob3V0IHJvYWRzLiBXaGVuIHNvbWV0aGluZyBiZWNvbWVzIGEgcHJlY29uZGl0aW9uIGZvciBkYWlseSBsaWZlLCB0aGVyZSdzIGEgc3Ryb25nIGNhc2UgZm9yIHB1YmxpYyBwcm92aXNpb24gXHUyMDE0IHdlIGFjY2VwdGVkIHRoaXMgbG9naWMgbG9uZyBhZ28gZm9yIHdhdGVyLCBlbGVjdHJpY2l0eSBhbmQgc3RyZWV0IGxpZ2h0aW5nLiBTZWNvbmQsIHRoZSBkaWdpdGFsIGRpdmlkZSBpcyBicnV0YWxseSByZWdyZXNzaXZlLiBUaGUgcGVvcGxlIHdpdGhvdXQgcmVsaWFibGUgYWNjZXNzIFx1MjAxNCBsb3ctaW5jb21lIGZhbWlsaWVzLCBzZW5pb3JzLCByZWNlbnQgaW1taWdyYW50cyBcdTIwMTQgYXJlIHByZWNpc2VseSB0aGUgcGVvcGxlIHdobyBtb3N0IG5lZWQgb25saW5lIGpvYiBib2FyZHMsIEVuZ2xpc2ggY291cnNlcyBhbmQgZ292ZXJubWVudCBzZXJ2aWNlcy4gQSBzdHVkZW50IHdyaXRpbmcgZXNzYXlzIG9uIGEgcGhvbmUgaW4gYSBwYXJraW5nIGxvdCBvdXRzaWRlIGEgY2xvc2VkIGxpYnJhcnkgaXNuJ3QgYSBoeXBvdGhldGljYWw7IGl0J3MgYSBkb2N1bWVudGVkIHJlYWxpdHkgaW4gbWFueSBjaXRpZXMuIEZyZWUgbXVuaWNpcGFsIHdpZmkgaW4gdHJhbnNpdCwgcGFya3MsIGxpYnJhcmllcyBhbmQgbG93LWluY29tZSBuZWlnaGJvdXJob29kcyBkaXJlY3RseSBuYXJyb3dzIHRoYXQgZ2FwLiBUaGlyZCwgdGhlIGVjb25vbWljcyBhY3R1YWxseSBmYXZvdXIgaXQ6IGNvbm5lY3RlZCBjaXRpemVucyBmaW5kIHdvcmsgZmFzdGVyLCB1cHNraWxsIG9ubGluZSwgcnVuIHNtYWxsIGJ1c2luZXNzZXMsIGFuZCBhY2Nlc3MgY2l0eSBzZXJ2aWNlcyBkaWdpdGFsbHkgXHUyMDE0IHdoaWNoIGNvc3RzIHRoZSBnb3Zlcm5tZW50IGxlc3MgdGhhbiBwYXBlciBhbmQgY291bnRlcnMuIFN0dWRpZXMgb2YgY2l0aWVzIHdpdGggcHVibGljIHdpZmkgY29uc2lzdGVudGx5IHNob3cgbG9jYWwgZWNvbm9taWMgZ2FpbnMgdGhhdCBkd2FyZiB0aGUgb3BlcmF0aW5nIGNvc3RzLiBOb3csIHRoZSBjb25jZXNzaW9uczogeWVzLCBpdCBjb3N0cyB0YXhwYXllciBtb25leTsgeWVzLCB0ZWxlY29tIGNvbXBhbmllcyB3aWxsIG9iamVjdCB0byBzdWJzaWRpemVkIGNvbXBldGl0aW9uOyBhbmQgbmV0d29yayBtYWludGVuYW5jZSBpcyBhIHJlYWwgb25nb2luZyBjb21taXRtZW50LiBCdXQgbm90ZSB0aGUgcXVlc3Rpb24gc2F5cyBjaXRpemVucyB3aG8gbmVlZCBpdCBcdTIwMTQgdGhpcyBpc24ndCBmcmVlIE5ldGZsaXggZm9yIGV2ZXJ5b25lLCBpdCdzIGEgc2FmZXR5IG5ldCBmb3IgY29ubmVjdGl2aXR5LiBBcyB0YXJnZXRlZCBzb2NpYWwgaW5mcmFzdHJ1Y3R1cmUsIEknZCBjYWxsIGl0IG9uZSBvZiB0aGUgY2hlYXBlc3QgZmFpcm5lc3MgaW52ZXN0bWVudHMgYSBtb2Rlcm4gY2l0eSBjYW4gbWFrZS4ifSx7ImsiOiJ0OCIsIm51bSI6OCwidHlwZUVuIjoiRGVzY3JpYmluZyBhbiBVbnVzdWFsIFNpdHVhdGlvbiIsInByZXAiOjMwLCJyZWMiOjYwLCJwcm9tcHQiOiJZb3UgdmlzaXQgYSBsYW5kZmlsbCBvbiBhIGZpZWxkIHRyaXAgd2l0aCB5b3VyIHNjaG9vbC4gWW91ciBmcmllbmQgU2FtIGNvdWxkbid0IG1ha2UgaXQuIENhbGwgaGVyLCBkZXNjcmliZSB3aGF0IHlvdSBzZWUsIGFuZCBhc2sgaGVyIGlmIHNoZSB3b3VsZCBsaWtlIHlvdSB0byB0YWtlIG5vdGVzIGZvciBoZXIuIiwiaW1nIjoidW51c3VhbCIsInRpcHMiOnsiYnVsbGV0cyI6WyJUaGlzIGlzIGEgUEhPTkUgQ0FMTDogZ3JlZXQgdGhlIHJpZ2h0IHBlcnNvbiAodGhlIHBvbGljZSAvIHlvdXIgZnJpZW5kKSwgdGhlbiBzYXkgd2hlcmUgeW91IGFyZS4iLCJEZXNjcmliZSBmcm9tIGdlbmVyYWwgdG8gc3BlY2lmaWM7IHRoZSBwaWN0dXJlIGlzIG1lYW50IHRvIGJlIHN0cmFuZ2UgXHUyMDE0IGp1c3QgZGVzY3JpYmUgd2hhdCB5b3Ugc2VlLCB1c2luZyAnSXQgbG9va3MgbGlrZSAvIGFzIGlmXHUyMDI2Jy4iLCJFbmQgd2l0aCBhIHJlcXVlc3QgZm9yIGFjdGlvbiAoc2VuZCBhIHBhdHJvbCAvIGFzayB3aGVyZSB0byBidXkpLiIsIlRoaXMgaXMgYSBwaG9uZSBjYWxsIHRvIFNhbS4gS2V5IGRldGFpbHM6IG1vdW50YWlucyBvZiBnYXJiYWdlIHVuZGVyIGEgYnJpZ2h0IGJsdWUgc2t5IC0gYSBjcnVzaGVkIHBpbmsgY2FyLCBhbiB1cHNpZGUtZG93biByZWQgYmljeWNsZSBvbiBhIHBpbGUsIGEgYnJva2VuIFRWIHdpdGggYSBjcmFja2VkIHNjcmVlbiwgYW4gb2xkIGZyaWRnZSB3aXRoIGEgc2VhZ3VsbCBzdGFuZGluZyBvbiBpdCwgYSBiaWcgeWVsbG93IGV4Y2F2YXRvciBkaWdnaW5nIGluIHRoZSBtaWRkbGUsIHNlYWd1bGxzIGNpcmNsaW5nIG92ZXJoZWFkIChvbmUgZmx5aW5nIG9mZiB3aXRoIGZvb2QpLCBhbmQgLSB0aGUgYmVzdCBwYXJ0IC0gYSBmYW1pbHkgb2YgcmFjY29vbnMgKGEgbW90aGVyIGFuZCB0aHJlZSBiYWJpZXMpIG5leHQgdG8gYSBiYW5hbmEgcGVlbC4gRW5kIGJ5IG9mZmVyaW5nIHRvIHRha2Ugbm90ZXMgZm9yIGhlci4iXSwicGhyYXNlcyI6WyJJJ20gY2FsbGluZyB0byByZXBvcnRcdTIwMjYiLCJQaWN0dXJlIHRoaXM6IFx1MjAyNiIsIkl0IGxvb2tzIGFzIGlmXHUyMDI2IiwiQ291bGQgeW91IHNlbmRcdTIwMjYgLyBEbyB5b3Uga25vdyB3aGVyZVx1MjAyNj8iXX0sInM2IjoiU2FtLCBoaSEgSXQncyBtZSwgY2FsbGluZyBmcm9tIHRoZSBmaWVsZCB0cmlwIFx1MjAxNCB5b3Ugd2lsbCBub3QgYmVsaWV2ZSBob3cgaW50ZXJlc3RpbmcgdGhlIGxhbmRmaWxsIGFjdHVhbGx5IGlzLiBMZXQgbWUgZGVzY3JpYmUgd2hhdCBJIHNlZS4gRmlyc3QsIGltYWdpbmUgbW91bnRhaW5zIG9mIGdhcmJhZ2UsIHJlYWxseSB0YWxsIGhpbGxzLCB1bmRlciBhIGJlYXV0aWZ1bCBibHVlIHNreSB3aXRoIHdoaXRlIGNsb3VkcyBcdTIwMTQgYSBzdHJhbmdlIGNvbWJpbmF0aW9uISBPbiBvbmUgcGlsZSwgdGhlcmUgaXMgYSBjcnVzaGVkIHBpbmsgY2FyLCBhbmQgYW4gb2xkIHJlZCBiaWN5Y2xlIGlzIGx5aW5nIHVwc2lkZSBkb3duIG9uIHRvcCBvZiBhbm90aGVyIHBpbGUuIEkgY2FuIHNlZSBhIGJyb2tlbiBUViB3aXRoIGEgYmlnIGNyYWNrIGluIHRoZSBzY3JlZW4sIGFuIG9sZCBmcmlkZ2UsIG1hdHRyZXNzZXMsIGJhZ3MsIGFuZCBmdXJuaXR1cmUgZXZlcnl3aGVyZS4gSW4gdGhlIG1pZGRsZSwgYSBodWdlIHllbGxvdyBleGNhdmF0b3IgaXMgd29ya2luZyBcdTIwMTQgaXRzIGJpZyBhcm0gaXMgZGlnZ2luZyBpbnRvIHRoZSBnYXJiYWdlIGFuZCBtb3ZpbmcgaXQgYXJvdW5kLiBBYm92ZSB1cywgc2VhZ3VsbHMgYXJlIGZseWluZyBpbiBjaXJjbGVzLCBhbmQgb25lIGJpcmQganVzdCBzdG9sZSBzb21lIGZvb2QgYW5kIGZsZXcgYXdheSB3aXRoIGl0ISBCdXQgaGVyZSBpcyB0aGUgYmVzdCBwYXJ0LCBTYW06IGEgcmFjY29vbiBmYW1pbHkgbGl2ZXMgaGVyZSEgSSBjYW4gc2VlIGEgbW90aGVyIHJhY2Nvb24gYW5kIHRocmVlIGxpdHRsZSBiYWJ5IHJhY2Nvb25zIHdhbGtpbmcgbmVhciBhIGJhbmFuYSBwZWVsLiBUaGV5IGFyZSBzbyBjdXRlISBUaGUgdGVhY2hlciBzYXlzIHRoZSBsYW5kZmlsbCByZWNlaXZlcyBodW5kcmVkcyBvZiB0b25uZXMgb2YgZ2FyYmFnZSBldmVyeSBkYXkgXHUyMDE0IGl0IHJlYWxseSBtYWtlcyB5b3UgdGhpbmsgYWJvdXQgaG93IG11Y2ggd2UgdGhyb3cgYXdheS4gRG8geW91IHdhbnQgbWUgdG8gdGFrZSBub3RlcyBmb3IgeW91PyBJIGtub3cgdGhpcyBjb3VudHMgZm9yIG91ciBzY2llbmNlIGNsYXNzLiBJIHdpbGwgd3JpdGUgZXZlcnl0aGluZyBkb3duISIsInM5IjoiU2FtLCBpdCdzIG1lIFx1MjAxNCBJJ20gYXQgdGhlIGxhbmRmaWxsIHdpdGggdGhlIGNsYXNzLCBhbmQgSSBoYXZlIHRvIHRlbGwgeW91LCB0aGlzIGZpZWxkIHRyaXAgaXMgd2VpcmRseSBmYXNjaW5hdGluZywgc28gbGV0IG1lIHBhaW50IHlvdSB0aGUgcGljdHVyZSB5b3UncmUgbWlzc2luZy4gSW1hZ2luZSBhY3R1YWwgbW91bnRhaW5zIG9mIGdhcmJhZ2Ugcm9sbGluZyBpbnRvIHRoZSBkaXN0YW5jZSwgYWxsIHVuZGVyIHRoaXMgcmlkaWN1bG91cyBwb3N0Y2FyZC1ibHVlIHNreSB3aXRoIGZsdWZmeSBjbG91ZHMgXHUyMDE0IHRoZSBjb250cmFzdCBpcyBzdXJyZWFsLiBUaGUgcGlsZXMgYXJlIGxpa2UgYW4gYXJjaGFlb2xvZ3kgb2YgcGVvcGxlJ3MgbGl2ZXM6IHRoZXJlJ3MgYSBjcnVzaGVkIHBpbmsgY2FyIGZsYXR0ZW5lZCBsaWtlIGEgc29kYSBjYW4sIGEgcmVkIGJpY3ljbGUgbHlpbmcgdXBzaWRlIGRvd24gd2l0aCBpdHMgd2hlZWwgaW4gdGhlIGFpciwgYSB0ZWxldmlzaW9uIHdpdGggYSBodWdlIGNyYWNrIGFjcm9zcyB0aGUgc2NyZWVuLCBhbiBvbGQgcmVmcmlnZXJhdG9yIFx1MjAxNCB3aGljaCwgYnkgdGhlIHdheSwgY3VycmVudGx5IGhhcyBhIHNlYWd1bGwgc3RhbmRpbmcgb24gdG9wIG9mIGl0IGxpa2UgYSBsaXR0bGUga2luZyBzdXJ2ZXlpbmcgaGlzIGtpbmdkb20uIEluIHRoZSBtaWRkbGUgb2YgaXQgYWxsLCBhIGdpYW50IHllbGxvdyBleGNhdmF0b3IgaXMgYXQgd29yaywgY2xhd2luZyBpbnRvIHRoZSBwaWxlcyBhbmQgc2hpZnRpbmcgdG9ubmVzIG9mIHRyYXNoIHdpdGggZXZlcnkgc2Nvb3A7IHRoZSBzY2FsZSBvZiBpdCBvbmx5IG1ha2VzIHNlbnNlIHdoZW4geW91IHNlZSBpdCBtb3ZlLiBPdmVyaGVhZCB0aGVyZSdzIGEgd2hvbGUgYWlyIGZvcmNlIG9mIHNlYWd1bGxzIHdoZWVsaW5nIGFyb3VuZCwgYW5kIG9uZSBvZiB0aGVtIGp1c3QgbWFkZSBvZmYgd2l0aCBzb21lYm9keSdzIGxlZnRvdmVyIGx1bmNoIGluIGl0cyBiZWFrLiBCdXQgdGhlIGFic29sdXRlIGhpZ2hsaWdodDogYSBmYW1pbHkgb2YgcmFjY29vbnMgXHUyMDE0IGEgbW90aGVyIGFuZCB0aHJlZSBiYWJpZXMgXHUyMDE0IHBpY2tpbmcgdGhlaXIgd2F5IGJldHdlZW4gdGhlIHBpbGVzIG5lYXIgYSBiYW5hbmEgcGVlbCwgY29tcGxldGVseSBhdCBob21lLiBUaGUgZ3VpZGUgdG9sZCB1cyB0aGlzIHNpdGUgdGFrZXMgaW4gaHVuZHJlZHMgb2YgdG9ubmVzIG9mIHdhc3RlIGV2ZXJ5IHNpbmdsZSBkYXksIGFuZCBob25lc3RseSwgc2VlaW5nIGl0IGluIHBlcnNvbiBoaXRzIGRpZmZlcmVudGx5IHRoYW4gYW55IHN0YXRpc3RpYyBcdTIwMTQgSSBrZWVwIHRoaW5raW5nIGFib3V0IGhvdyBtdWNoIG9mIHRoaXMgY291bGQgaGF2ZSBiZWVuIHJlY3ljbGVkLiBBbnl3YXksIEkga25vdyB0aGlzIGZlZWRzIGludG8gb3VyIHNjaWVuY2UgcmVwb3J0IFx1MjAxNCB3b3VsZCB5b3UgbGlrZSBtZSB0byB0YWtlIGRldGFpbGVkIG5vdGVzIGZvciB5b3U\/IE51bWJlcnMsIHRoZSByZWN5Y2xpbmcgcHJvY2VzcywgcGhvdG9zIG9mIHRoZSByYWNjb29ucyBcdTIwMTQgSSdsbCBnZXQgaXQgYWxsLiBKdXN0IHNheSB0aGUgd29yZCEifV0sInVpIjp7InN0YXJ0VGVzdCI6IlN0YXJ0IHRoZSB0ZXN0IiwibWljRW5hYmxlIjoiRW5hYmxlIG1pY3JvcGhvbmUiLCJtaWNSZWFkeSI6Ik1pY3JvcGhvbmUgcmVhZHkiLCJtaWNCbG9ja2VkIjoiTWljcm9waG9uZSBpcyBibG9ja2VkIG9yIHVuYXZhaWxhYmxlIFx1MjAxNCB0aGUgcGFnZSB3aWxsIHJ1biBpbiB0aW1lci1vbmx5IG1vZGUgKHlvdSBjYW4gc3RpbGwgcHJhY3Rpc2Ugc3BlYWtpbmcgYWxvbmcgd2l0aCB0aGUgdGltZXJzKS4iLCJtaWNOb3RlIjoiUmVjb3JkaW5ncyBhcmUgc3RvcmVkIHRlbXBvcmFyaWx5IGluIHlvdXIgYnJvd3NlciBvbmx5IFx1MjAxNCBub3RoaW5nIGlzIHVwbG9hZGVkIHRvIGFueSBzZXJ2ZXIuIFRoZXkgYXJlIGxvc3Qgd2hlbiB5b3UgY2xvc2UgdGhlIHBhZ2UsIHNvIGRvd25sb2FkIGFueSB5b3Ugd2FudCB0byBrZWVwLiIsInByZXBUaXRsZSI6IlByZXBhcmF0aW9uIFRpbWUiLCJyZWNUaXRsZSI6IlJlY29yZGluZyIsInN0YXJ0UHJlcCI6Ilx1MjViNiBTdGFydCBwcmVwYXJhdGlvbiIsInNraXBQcmVwIjoiU2tpcCBcdTIwMTQgcmVjb3JkIG5vdyBcdTAwYmIiLCJzdG9wUmVjIjoiXHUyNWEwIFN0b3AgcmVjb3JkaW5nIiwicmVjb3JkZWQiOiJSZWNvcmRlZCIsInJlUmVjb3JkIjoiXHUyMWJiIFJlY29yZCBhZ2FpbiIsImRvd25sb2FkIjoiXHUyYjA3IERvd25sb2FkIiwidGltZXJPbmx5IjoiVGltZXItb25seSBtb2RlIChub3QgcmVjb3JkaW5nKSIsInNwZWFrTm93IjoiU1BFQUsgTk9XIFx1MjAxNCByZWNvcmRpbmcgc3RvcHMgYXV0b21hdGljYWxseSB3aGVuIHRpbWUgaXMgdXAiLCJuZXh0IjoiTkVYVCIsImNob29zZUhpbnQiOiJDbGljayB0byBjaG9vc2Ugb25lIG9wdGlvbiBcdTIwMTQgaWYgdGhlIDYwIHNlY29uZHMgcnVuIG91dCwgdGhlIHN5c3RlbSBjaG9vc2VzIGZvciB5b3UiLCJjb25maXJtQ2hvaWNlIjoiQ29uZmlybSBjaG9pY2UgJiBjb250aW51ZSBcdTAwYmIiLCJ5b3VyQ2hvaWNlIjoiWW91ciBDaG9pY2UiLCJ0aXBzVG9nZ2xlIjoiXHVkODNkXHVkY2ExIFRpcHMgJiBzYW1wbGUgYW5zd2VycyAob3BlbiBhZnRlciB5b3UgZmluaXNoIHNwZWFraW5nKSIsInRhYlRpcHMiOiJPdXRsaW5lICYgcGhyYXNlcyIsInRhYlM2IjoiU2FtcGxlIENMQiA2IiwidGFiUzkiOiJTYW1wbGUgQ0xCIDkiLCJ0YWJSdWJyaWMiOiJTZWxmLWFzc2Vzc21lbnQiLCJydWJyaWNOb3RlIjoiTGlzdGVuIHRvIHlvdXIgcmVjb3JkaW5nLCB0aGVuIHJhdGUgeW91cnNlbGYgMVx1MjAxMzUgb24gZWFjaCBjcml0ZXJpb24gKHRoZSA0IG9mZmljaWFsIENFTFBJUCByYXRpbmcgZGltZW5zaW9ucyk6IiwicnVicmljQ3JpdCI6WyJDb250ZW50ICYgQ29oZXJlbmNlIFx1MjAxNCBjb21wbGV0ZSBpZGVhcywgbG9naWNhbCBmbG93IiwiVm9jYWJ1bGFyeSBcdTIwMTQgcmFuZ2UgYW5kIHByZWNpc2lvbiIsIkxpc3RlbmFiaWxpdHkgXHUyMDE0IHByb251bmNpYXRpb24sIGludG9uYXRpb24sIGZsdWVuY3kiLCJUYXNrIEZ1bGZpbGxtZW50IFx1MjAxNCBhZGRyZXNzZXMgdGhlIHRhc2ssIGFwcHJvcHJpYXRlIGxlbmd0aCJdLCJlc3RpbWF0ZSI6IkVzdGltYXRlZCBsZXZlbCAoZm9yIHJlZmVyZW5jZSk6IiwiZXN0RGlzY2xhaW1lciI6IlNlbGYtYXNzZXNzbWVudCBpcyBhIHJvdWdoIGd1aWRlIG9ubHkgXHUyMDE0IGl0IGRvZXMgbm90IHJlcGxhY2UgYW4gb2ZmaWNpYWwgc2NvcmUuIiwidXNlZnVsUGhyYXNlcyI6IlVzZWZ1bCBwaHJhc2VzIiwiZW5kVGl0bGUiOiJTcGVha2luZyB0ZXN0IGNvbXBsZXRlISIsImVuZFN1YiI6IlJlcGxheSBlYWNoIHRhc2ssIGNvbXBhcmUgeW91ciBhbnN3ZXJzIHdpdGggdGhlIENMQiA2IC8gQ0xCIDkgc2FtcGxlcywgdGhlbiByYXRlIHlvdXJzZWxmLiIsImVuZE5vUmVjIjoibm90IHJlY29yZGVkIiwiZW5kUmVkbyI6Ilx1MjFiYiBTdGFydCBvdmVyIiwiZW5kVDIiOiJDb250aW51ZSB0byBQcmFjdGljZSBUZXN0IiwiZW5kSHViIjoiXHUyMTkwIEJhY2sgdG8gQ0VMUElQIEh1YiIsIndhcm11cEJhZGdlIjoiV2FybS11cCBcdTIwMTQgbm90IHNjb3JlZCIsImludHJvTm90ZXMiOlsiQW4gYWNjdXJhdGUgc2ltdWxhdGlvbiBvZiB0aGUgcmVhbCBDRUxQSVAgR2VuZXJhbCBTcGVha2luZyB0ZXN0OiAxIHByYWN0aWNlICh3YXJtLXVwKSB0YXNrICsgOCBzY29yZWQgdGFza3MsIGFib3V0IDIwIG1pbnV0ZXMgaW4gdG90YWwuIiwiRWFjaCB0YXNrOiByZWFkIHRoZSBwcm9tcHQgXHUyMTkyIDxiPlByZXBhcmF0aW9uPC9iPiBjb3VudGRvd24gXHUyMTkyIHN3aXRjaGVzIGF1dG9tYXRpY2FsbHkgdG8gPGI+UmVjb3JkaW5nPC9iPiAod2l0aCBhIGJlZXApIFx1MjE5MiBzdG9wcyB3aGVuIHRpbWUgaXMgdXAuIiwiT24gdGhlIHJlYWwgdGVzdCB5b3UgY2Fubm90IGdvIGJhY2sgdG8gYSBwcmV2aW91cyB0YXNrLiBJbiBwcmFjdGljZSBtb2RlLCB5b3UgY2FuIGNsaWNrIHRoZSBudW1iZXJlZCBjaGlwcyBhYm92ZSB0byByZXZpc2l0IGFueSB0YXNrLiIsIkFmdGVyIHNwZWFraW5nIG9uIGVhY2ggdGFzaywgb3BlbiA8Yj5UaXBzICYgc2FtcGxlIGFuc3dlcnM8L2I+IHRvIGNvbXBhcmUgeW91ciByZXNwb25zZSB3aXRoIHRoZSBDTEIgNiBhbmQgQ0xCIDkgc2FtcGxlcy4iXSwiaGVyb1RhZyI6IkNFTFBJUCBHZW5lcmFsIFx1MjAxNCBTcGVha2luZyIsImhlcm9NZXRhIjpbIjggdGFza3MgKyB3YXJtLXVwIiwifjIwIG1pbnV0ZXMiLCJSZWNvcmQgJiByZXBsYXkiLCJDTEIgNiAvIENMQiA5IHNhbXBsZXMiXX19OwovKiBDRUxQSVAgU3BlYWtpbmcgRW5naW5lIHYxLjAgLSBBbGxFbmdsaXNoNFUgLSB2YW5pbGxhIEpTLCBwcmVmaXggY2xwLXNwayAqLwooZnVuY3Rpb24oKXsKInVzZSBzdHJpY3QiOwp2YXIgRCA9IHdpbmRvdy5DTFBTUEtfREFUQSwgVSA9IEQudWk7CnZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscC1zcGstcm9vdCIpOwppZighcm9vdCkgcmV0dXJuOwoKLyogLS0tLS0tLS0tLSBzdHlsZSAtLS0tLS0tLS0tICovCnZhciBDU1MgPSAiIisKIi5jbHAtc3BrLXdyYXB7bWF4LXdpZHRoOjExNDBweDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MCAxNHB4IDYwcHg7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMjMyNzJkOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWR9IisKIi5jbHAtc3BrLXdyYXAgKntib3gtc2l6aW5nOmJvcmRlci1ib3h9IisKIi5jbHAtc3BrLWhlcm97YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCM3ZjFkMWQgMCUsI2I5MWMxYyA1NSUsI2RjMjYyNiAxMDAlKTtib3JkZXItcmFkaXVzOjE4cHg7Y29sb3I6I2ZmZjtwYWRkaW5nOjMwcHggMzBweCAyNnB4O21hcmdpbjoxOHB4IDAgMjBweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59IisKIi5jbHAtc3BrLWhlcm86YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotNjBweDt0b3A6LTYwcHg7d2lkdGg6MjIwcHg7aGVpZ2h0OjIyMHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDgpfSIrCiIuY2xwLXNway1oZXJvIC50YWd7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xNik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4zNSk7cGFkZGluZzozcHggMTJweDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtc2l6ZToxMi41cHg7bGV0dGVyLXNwYWNpbmc6LjZweDtmb250LXdlaWdodDo2MDB9IisKIi5jbHAtc3BrLWhlcm8gaDF7bWFyZ2luOjEwcHggMCA2cHg7Zm9udC1zaXplOjI3cHg7bGluZS1oZWlnaHQ6MS4yNTtjb2xvcjojZmZmfSIrCiIuY2xwLXNway1oZXJvIC5tZXRhe2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6OHB4O21hcmdpbi10b3A6MTJweH0iKwoiLmNscC1zcGstaGVybyAubWV0YSBzcGFue2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMjIpO3BhZGRpbmc6NHB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDtmb250LXNpemU6MTIuNXB4fSIrCiIuY2xwLXNway1jaGlwc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjdweDttYXJnaW46MCAwIDE0cHh9IisKIi5jbHAtc3BrLWNoaXB7bWluLXdpZHRoOjM4cHg7aGVpZ2h0OjM0cHg7Ym9yZGVyLXJhZGl1czo5cHg7Ym9yZGVyOjEuNXB4IHNvbGlkICNkM2Q4ZGY7YmFja2dyb3VuZDojZmZmO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O2NvbG9yOiM1YjY1NzI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowIDEwcHh9IisKIi5jbHAtc3BrLWNoaXAuY3Vye2JhY2tncm91bmQ6IzBiNTdkMDtib3JkZXItY29sb3I6IzBiNTdkMDtjb2xvcjojZmZmfSIrCiIuY2xwLXNway1jaGlwLmRvbmV7YmFja2dyb3VuZDojZTZmNGVhO2JvcmRlci1jb2xvcjojN2JjMzk0O2NvbG9yOiMxZTdiM2V9IisKIi5jbHAtc3BrLXBhbmVse2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkOWRkZTM7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMnB4IDEwcHggcmdiYSgzMCw0MCw2MCwuMDYpfSIrCiIuY2xwLXNway1iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtiYWNrZ3JvdW5kOiNlY2VjZWU7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2Q1ZDVkODtwYWRkaW5nOjlweCAxNHB4O2ZsZXgtd3JhcDp3cmFwfSIrCiIuY2xwLXNway1iYXIgLnR7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNC41cHg7Y29sb3I6IzNjNDA0Nn0iKwoiLmNscC1zcGstYmFyIC5te21hcmdpbi1sZWZ0OmF1dG87Zm9udC1zaXplOjEyLjVweDtjb2xvcjojNTU1O3doaXRlLXNwYWNlOm5vd3JhcH0iKwoiLmNscC1zcGstYmFyIC5tIGJ7Y29sb3I6IzIzMjcyZH0iKwoiLmNscC1zcGstbmV4dHtiYWNrZ3JvdW5kOiMxNDY3YzY7Y29sb3I6I2ZmZjtib3JkZXI6MDtib3JkZXItcmFkaXVzOjRweDtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEyLjVweDtsZXR0ZXItc3BhY2luZzouOHB4O3BhZGRpbmc6N3B4IDE4cHg7Y3Vyc29yOnBvaW50ZXJ9IisKIi5jbHAtc3BrLW5leHQ6aG92ZXJ7YmFja2dyb3VuZDojMGY1N2FifSIrCiIuY2xwLXNway1ib2R5e3BhZGRpbmc6MThweCAyMHB4IDIycHh9IisKIi5jbHAtc3BrLXByb21wdHtkaXNwbGF5OmZsZXg7Z2FwOjlweDtjb2xvcjojMGI1Mzk0O2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTUuNXB4O2xpbmUtaGVpZ2h0OjEuNX0iKwoiLmNscC1zcGstcHJvbXB0IC5pe2ZsZXg6MCAwIGF1dG87d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiMyYzdjYjA7Y29sb3I6I2ZmZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo4MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MnB4fSIrCiIuY2xwLXNway1sZWFke2NvbG9yOiMwYjUzOTQ7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1ib3R0b206NHB4fSIrCiIuY2xwLXNway1jaG9vc2Uxe21hcmdpbjoxNHB4IDAgMDtwYWRkaW5nOjEycHggMTZweDtiYWNrZ3JvdW5kOiNmNWY3ZmE7Ym9yZGVyOjFweCBzb2xpZCAjZGZlNGVhO2JvcmRlci1yYWRpdXM6OXB4O2ZvbnQtc2l6ZToxNC41cHg7bGluZS1oZWlnaHQ6MS41NX0iKwoiLmNscC1zcGstY2hvb3NlMSAuZXtmb250LXdlaWdodDo4MDA7Y29sb3I6IzhhMWYxZjtsZXR0ZXItc3BhY2luZzouNHB4fSIrCiIuY2xwLXNway1pbWd7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6NTQwcHg7d2lkdGg6MTAwJTtib3JkZXI6MXB4IHNvbGlkICNjZmQ0ZGE7Ym9yZGVyLXJhZGl1czo4cHg7bWFyZ2luOjE2cHggMCA0cHh9IisKIi5jbHAtc3BrLW5vdGV7Zm9udC1zaXplOjEycHg7Y29sb3I6IzhhOTI5YzttYXJnaW4tdG9wOjZweH0iKwoiLmNscC1zcGstdGltZXJyb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjIwcHggMCA2cHh9IisKIi5jbHAtc3BrLXRpbWVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE2cHg7YmFja2dyb3VuZDojZTllY2VmO2JvcmRlcjoxcHggc29saWQgI2Q2ZGFkZTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxNnB4IDI2cHg7bWluLXdpZHRoOjMwMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9IisKIi5jbHAtc3BrLXRpbWVyIC5pY3t3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2Y4ZjlmYTtib3JkZXI6MXB4IHNvbGlkICNkNmRhZGU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToyMnB4fSIrCiIuY2xwLXNway10aW1lciAubGJ7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMzMzM4M2Y7Zm9udC1zaXplOjE1cHh9IisKIi5jbHAtc3BrLXRpbWVyIC5ue2ZvbnQtc2l6ZToyNnB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjojMGI1N2QwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtczttaW4td2lkdGg6NTJweDt0ZXh0LWFsaWduOmNlbnRlcn0iKwoiLmNscC1zcGstdGltZXIucmVje2JhY2tncm91bmQ6I2ZkZWNlYjtib3JkZXItY29sb3I6I2YzYjZiM30iKwoiLmNscC1zcGstdGltZXIucmVjIC5ue2NvbG9yOiNjNjI4Mjh9IisKIi5jbHAtc3BrLXRpbWVyLnJlYyAuaWN7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjojZjNiNmIzfSIrCiIuY2xwLXNway1kb3R7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNlNTM5MzU7ZGlzcGxheTppbmxpbmUtYmxvY2s7YW5pbWF0aW9uOmNscGJsaW5rIDFzIGluZmluaXRlfSIrCiJAa2V5ZnJhbWVzIGNscGJsaW5rezAlLDEwMCV7b3BhY2l0eToxfTUwJXtvcGFjaXR5Oi4yNX19IisKIi5jbHAtc3BrLWN0cntkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXdyYXA6d3JhcDttYXJnaW46MTRweCAwIDJweH0iKwoiLmNscC1zcGstYnRue2JvcmRlcjoxLjVweCBzb2xpZCAjYzljZmQ2O2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMzMzODNmO2JvcmRlci1yYWRpdXM6OXB4O3BhZGRpbmc6OXB4IDE4cHg7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMy41cHg7Y3Vyc29yOnBvaW50ZXJ9IisKIi5jbHAtc3BrLWJ0bjpob3Zlcntib3JkZXItY29sb3I6IzlhYTNhZH0iKwoiLmNscC1zcGstYnRuLnByaXtiYWNrZ3JvdW5kOiMwYjU3ZDA7Ym9yZGVyLWNvbG9yOiMwYjU3ZDA7Y29sb3I6I2ZmZn0iKwoiLmNscC1zcGstYnRuLnByaTpob3ZlcntiYWNrZ3JvdW5kOiMwYTRjYjV9IisKIi5jbHAtc3BrLWJ0bi53YXJue2JhY2tncm91bmQ6I2M2MjgyODtib3JkZXItY29sb3I6I2M2MjgyODtjb2xvcjojZmZmfSIrCiIuY2xwLXNway1zcGVha25vd3t0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojYzYyODI4O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTNweDttYXJnaW4tdG9wOjhweDtsZXR0ZXItc3BhY2luZzouM3B4fSIrCiIuY2xwLXNway1yZXZpZXd7bWFyZ2luOjE2cHggYXV0byAwO21heC13aWR0aDo2NDBweDtiYWNrZ3JvdW5kOiNmMmY5ZjM7Ym9yZGVyOjFweCBzb2xpZCAjYmZlM2M2O2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjE0cHggMThweH0iKwoiLmNscC1zcGstcmV2aWV3IC5va3tjb2xvcjojMWU3YjNlO2ZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTQuNXB4fSIrCiIuY2xwLXNway1yZXZpZXcgYXVkaW97d2lkdGg6MTAwJTttYXJnaW46MTBweCAwIDhweH0iKwoiLmNscC1zcGstbWlje21hcmdpbjoxMnB4IGF1dG8gMDttYXgtd2lkdGg6NjQwcHg7YmFja2dyb3VuZDojZmZmOGU2O2JvcmRlcjoxcHggc29saWQgI2VjZDlhMDtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMHB4IDE2cHg7Zm9udC1zaXplOjEzcHg7Y29sb3I6IzdhNWIxMn0iKwoiLmNscC1zcGstb3B0c3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjE2cHg7bWFyZ2luOjE4cHggMCA0cHh9IisKIi5jbHAtc3BrLWNhcmR7Ym9yZGVyOjJweCBzb2xpZCAjZDVkYWUwO2JvcmRlci1yYWRpdXM6MTFweDtwYWRkaW5nOjEzcHggMTVweCAxNXB4O2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6I2ZmZjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzfSIrCiIuY2xwLXNway1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjojOGZiNGU4fSIrCiIuY2xwLXNway1jYXJkLnNlbHtib3JkZXItY29sb3I6IzJlOWU0ZjtiYWNrZ3JvdW5kOiNlZWY5ZjB9IisKIi5jbHAtc3BrLWNhcmQucGxhaW57Y3Vyc29yOmRlZmF1bHR9IisKIi5jbHAtc3BrLWNhcmQgLmhke3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiM2Yjc0ODA7bGV0dGVyLXNwYWNpbmc6LjNweDttYXJnaW4tYm90dG9tOjhweH0iKwoiLmNscC1zcGstY2FyZCBpbWd7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjdweDtib3JkZXI6MXB4IHNvbGlkICNlMmU2ZWF9IisKIi5jbHAtc3BrLWNhcmQgLnR0e2ZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTVweDttYXJnaW46MTBweCAwIDZweDtjb2xvcjojMjMyNzJkfSIrCiIuY2xwLXNway1jYXJkIHVse21hcmdpbjowO3BhZGRpbmctbGVmdDoxOHB4O2ZvbnQtc2l6ZToxMy41cHg7bGluZS1oZWlnaHQ6MS41NTtjb2xvcjojM2M0MzRifSIrCiIuY2xwLXNway1jYXJkIC5waWNre21hcmdpbi10b3A6MTBweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo4MDA7Y29sb3I6IzJlOWU0Zjtmb250LXNpemU6MTNweDttaW4taGVpZ2h0OjE4cHh9IisKIi5jbHAtc3BrLWhpbnR7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzZiNzQ4MDtmb250LXNpemU6MTNweDttYXJnaW4tdG9wOjEwcHh9IisKIi5jbHAtc3BrLWFjY3ttYXJnaW4tdG9wOjIycHg7Ym9yZGVyOjFweCBzb2xpZCAjZDlkZGUzO2JvcmRlci1yYWRpdXM6MTFweDtvdmVyZmxvdzpoaWRkZW59IisKIi5jbHAtc3BrLWFjYz5idXR0b257d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZDojZjZmN2Y5O2JvcmRlcjowO3BhZGRpbmc6MTJweCAxNnB4O2ZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTRweDtjb2xvcjojM2M0MDQ2O2N1cnNvcjpwb2ludGVyfSIrCiIuY2xwLXNway1hY2Nib2R5e2Rpc3BsYXk6bm9uZTtwYWRkaW5nOjE0cHggMTZweCAxOHB4O2JhY2tncm91bmQ6I2ZmZn0iKwoiLmNscC1zcGstYWNjLm9wZW4gLmNscC1zcGstYWNjYm9keXtkaXNwbGF5OmJsb2NrfSIrCiIuY2xwLXNway10YWJze2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi1ib3R0b206MTJweH0iKwoiLmNscC1zcGstdGFie2JvcmRlcjoxLjVweCBzb2xpZCAjYzljZmQ2O2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6NnB4IDE1cHg7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMi41cHg7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6IzRhNTI1Y30iKwoiLmNscC1zcGstdGFiLm9ue2JhY2tncm91bmQ6IzBiNTdkMDtib3JkZXItY29sb3I6IzBiNTdkMDtjb2xvcjojZmZmfSIrCiIuY2xwLXNway10YWJwYW5le2Rpc3BsYXk6bm9uZTtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNjV9IisKIi5jbHAtc3BrLXRhYnBhbmUub257ZGlzcGxheTpibG9ja30iKwoiLmNscC1zcGstdGFicGFuZSB1bHtwYWRkaW5nLWxlZnQ6MjBweDttYXJnaW46OHB4IDB9IisKIi5jbHAtc3BrLXRhYnBhbmUgbGl7bWFyZ2luOjVweCAwfSIrCiIuY2xwLXNway1zYW1wbGV7YmFja2dyb3VuZDojZjhmOWZiO2JvcmRlcjoxcHggc29saWQgI2UzZTdlYztib3JkZXItbGVmdDo0cHggc29saWQgIzBiNTdkMDtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjEzcHggMTZweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0iKwoiLmNscC1zcGstc2FtcGxlLnM2e2JvcmRlci1sZWZ0LWNvbG9yOiNlOGExM2N9IisKIi5jbHAtc3BrLXBocntkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjdweDttYXJnaW4tdG9wOjEwcHh9IisKIi5jbHAtc3BrLXBociBzcGFue2JhY2tncm91bmQ6I2VlZjNmYjtib3JkZXI6MXB4IHNvbGlkICNjZGRkZjU7Y29sb3I6IzE3NGE5Yztib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6NHB4IDEycHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDB9IisKIi5jbHAtc3BrLXJ1Yntib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJTtmb250LXNpemU6MTMuNXB4fSIrCiIuY2xwLXNway1ydWIgdGR7cGFkZGluZzo3cHggNnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWYwZjN9IisKIi5jbHAtc3BrLXN0YXJ7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjE5cHg7Y29sb3I6I2M5Y2ZkNjtwYWRkaW5nOjAgMXB4O3VzZXItc2VsZWN0Om5vbmV9IisKIi5jbHAtc3BrLXN0YXIub257Y29sb3I6I2YwYTcxYn0iKwoiLmNscC1zcGstZXN0e21hcmdpbi10b3A6MTBweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzFlN2IzZX0iKwoiLmNscC1zcGstYmFkZ2V7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDojZmZmM2NkO2JvcmRlcjoxcHggc29saWQgI2U4ZDQ4Yjtjb2xvcjojN2E1YjEyO2JvcmRlci1yYWRpdXM6OTk5cHg7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO3BhZGRpbmc6M3B4IDEycHg7bWFyZ2luLWJvdHRvbToxMHB4fSIrCiIuY2xwLXNway1pbnRybyB1bHtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNztwYWRkaW5nLWxlZnQ6MjBweH0iKwoiLmNscC1zcGstaW50cm8gbGl7bWFyZ2luOjdweCAwfSIrCiIuY2xwLXNway1taWNyb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcDtiYWNrZ3JvdW5kOiNmNmY3Zjk7Ym9yZGVyOjFweCBzb2xpZCAjZTBlNGU5O2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjEzcHggMTZweDttYXJnaW46MTZweCAwfSIrCiIuY2xwLXNway1taWNzdHtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzLjVweH0iKwoiLmNscC1zcGstbWljc3Qub2t7Y29sb3I6IzFlN2IzZX0uY2xwLXNway1taWNzdC5iYWR7Y29sb3I6I2M2MjgyOH0iKwoiLmNscC1zcGstZW5kIHRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt3aWR0aDoxMDAlO2ZvbnQtc2l6ZToxNHB4fSIrCiIuY2xwLXNway1lbmQgdGQsLmNscC1zcGstZW5kIHRoe3BhZGRpbmc6OXB4IDhweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWNlZmYyO3RleHQtYWxpZ246bGVmdH0iKwoiLmNscC1zcGstZW5kIGF1ZGlve2hlaWdodDozNHB4O21heC13aWR0aDoyMzBweH0iKwoiQG1lZGlhKG1heC13aWR0aDo3MDBweCl7LmNscC1zcGstb3B0c3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfS5jbHAtc3BrLWJhciAubXtvcmRlcjozO21hcmdpbi1sZWZ0OjA7d2lkdGg6MTAwJX0uY2xwLXNway1oZXJvIGgxe2ZvbnQtc2l6ZToyMnB4fS5jbHAtc3BrLWJvZHl7cGFkZGluZzoxNHB4IDEycHggMThweH19IjsKdmFyIHN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsgc3QudGV4dENvbnRlbnQgPSBDU1M7IGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3QpOwoKLyogLS0tLS0tLS0tLSBzdGF0ZSAtLS0tLS0tLS0tICovCnZhciBTID0gewogIGN1cjogLTEsICAgICAgICAgICAgLyogLTEgaW50cm8sIDAuLjggdGFza3MsIDk5IGVuZCAqLwogIG1pY1N0YXRlOiAiaWRsZSIsICAgLyogaWRsZXxva3xiYWQgKi8KICBzdHJlYW06IG51bGwsIHJlY29yZGVyOiBudWxsLCBjaHVua3M6IFtdLAogIHRpbWVyOiBudWxsLCBwaGFzZToge30sIHQ1Y2hvaWNlOiB7fSwgcmVjczoge30sIHJ1YnJpYzoge30sCiAgbWltZTogIiIsIGV4dDogIndlYm0iCn07CkQudGFza3MuZm9yRWFjaChmdW5jdGlvbih0KXsgUy5waGFzZVt0LmtdID0gdC5waGFzZWQgPyAiY2hvb3NlLWlkbGUiIDogImlkbGUiOyB9KTsKCmZ1bmN0aW9uIHBpY2tNaW1lKCl7CiAgaWYoIXdpbmRvdy5NZWRpYVJlY29yZGVyKSByZXR1cm4gbnVsbDsKICB2YXIgY2FuZHMgPSBbWyJhdWRpby93ZWJtO2NvZGVjcz1vcHVzIiwid2VibSJdLFsiYXVkaW8vd2VibSIsIndlYm0iXSxbImF1ZGlvL21wNCIsIm00YSJdLFsiYXVkaW8vb2dnO2NvZGVjcz1vcHVzIiwib2dnIl1dOwogIGZvcih2YXIgaT0wO2k8Y2FuZHMubGVuZ3RoO2krKyl7IHRyeXsgaWYoTWVkaWFSZWNvcmRlci5pc1R5cGVTdXBwb3J0ZWQoY2FuZHNbaV1bMF0pKSByZXR1cm4gY2FuZHNbaV07IH1jYXRjaChlKXt9IH0KICByZXR1cm4gWyIiLCJ3ZWJtIl07Cn0KZnVuY3Rpb24gZW5zdXJlTWljKGNiKXsKICBpZihTLm1pY1N0YXRlPT09Im9rIikgcmV0dXJuIGNiKHRydWUpOwogIGlmKFMubWljU3RhdGU9PT0iYmFkIikgcmV0dXJuIGNiKGZhbHNlKTsKICBpZighbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyB8fCAhbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgfHwgIXdpbmRvdy5NZWRpYVJlY29yZGVyKXsgUy5taWNTdGF0ZT0iYmFkIjsgcmV0dXJuIGNiKGZhbHNlKTsgfQogIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbihmdW5jdGlvbihzdHJlYW0pewogICAgUy5zdHJlYW0gPSBzdHJlYW07IHZhciBtID0gcGlja01pbWUoKTsgUy5taW1lID0gbVswXTsgUy5leHQgPSBtWzFdOyBTLm1pY1N0YXRlPSJvayI7IGNiKHRydWUpOwogIH0pLmNhdGNoKGZ1bmN0aW9uKCl7IFMubWljU3RhdGU9ImJhZCI7IGNiKGZhbHNlKTsgfSk7Cn0KZnVuY3Rpb24gYmVlcChuKXsKICB0cnl7CiAgICB2YXIgY3R4ID0gd2luZG93Ll9fY2xwQUMgPSB3aW5kb3cuX19jbHBBQyB8fCBuZXcgKHdpbmRvdy5BdWRpb0NvbnRleHR8fHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQpKCk7CiAgICB2YXIgdDAgPSBjdHguY3VycmVudFRpbWU7CiAgICBmb3IodmFyIGk9MDtpPG47aSsrKXsKICAgICAgdmFyIG8gPSBjdHguY3JlYXRlT3NjaWxsYXRvcigpLCBnID0gY3R4LmNyZWF0ZUdhaW4oKTsKICAgICAgby5mcmVxdWVuY3kudmFsdWUgPSA4ODA7IG8uY29ubmVjdChnKTsgZy5jb25uZWN0KGN0eC5kZXN0aW5hdGlvbik7CiAgICAgIGcuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLjAwMDEsdDAraSowLjI1KTsgZy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMC4xOCx0MCtpKjAuMjUrMC4wMik7CiAgICAgIGcuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSx0MCtpKjAuMjUrMC4xOCk7CiAgICAgIG8uc3RhcnQodDAraSowLjI1KTsgby5zdG9wKHQwK2kqMC4yNSswLjIpOwogICAgfQogIH1jYXRjaChlKXt9Cn0KZnVuY3Rpb24gc3RvcFRpbWVyKCl7IGlmKFMudGltZXIpeyBjbGVhckludGVydmFsKFMudGltZXIpOyBTLnRpbWVyPW51bGw7IH0gfQpmdW5jdGlvbiBjb3VudGRvd24oc2Vjcywgb25UaWNrLCBvbkVuZCl7CiAgc3RvcFRpbWVyKCk7CiAgdmFyIGVuZCA9IERhdGUubm93KCkgKyBzZWNzKjEwMDA7CiAgb25UaWNrKHNlY3MpOwogIFMudGltZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpewogICAgdmFyIGxlZnQgPSBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKChlbmQtRGF0ZS5ub3coKSkvMTAwMCkpOwogICAgb25UaWNrKGxlZnQpOwogICAgaWYobGVmdDw9MCl7IHN0b3BUaW1lcigpOyBvbkVuZCgpOyB9CiAgfSwgMjUwKTsKfQpmdW5jdGlvbiBzdG9wUmVjb3JkaW5nKCl7CiAgaWYoUy5yZWNvcmRlciAmJiBTLnJlY29yZGVyLnN0YXRlIT09ImluYWN0aXZlIil7IHRyeXsgUy5yZWNvcmRlci5zdG9wKCk7IH1jYXRjaChlKXt9IH0KICBTLnJlY29yZGVyID0gbnVsbDsKfQpmdW5jdGlvbiBsZWF2ZUNsZWFudXAoKXsgc3RvcFRpbWVyKCk7IHN0b3BSZWNvcmRpbmcoKTsgfQoKLyogLS0tLS0tLS0tLSBoZWxwZXJzIC0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gZWwodGFnLCBjbHMsIGh0bWwpeyB2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7IGlmKGNscyllLmNsYXNzTmFtZT1jbHM7IGlmKGh0bWwhPW51bGwpZS5pbm5lckhUTUw9aHRtbDsgcmV0dXJuIGU7IH0KZnVuY3Rpb24gZm10TWV0YSh0KXsKICBpZih0LnBoYXNlZCkgcmV0dXJuICIiOwogIHJldHVybiAiUHJlcGFyYXRpb246IDxiPiIrdC5wcmVwKyIgc2Vjb25kczwvYj4gJm5ic3A7UmVjb3JkaW5nOiA8Yj4iK3QucmVjKyIgc2Vjb25kczwvYj4iOwp9CmZ1bmN0aW9uIHRhc2tUaXRsZSh0KXsKICBpZih0Lndhcm11cCkgcmV0dXJuIEQuaGVhZGVyKyIgLSBTcGVha2luZyBQcmFjdGljZSBUYXNrIjsKICByZXR1cm4gRC5oZWFkZXIrIiAtIFNwZWFraW5nIFRhc2sgIit0Lm51bSsiOiAiK3QudHlwZUVuOwp9CmZ1bmN0aW9uIGVzdFRleHQoYXZnKXsKICBpZihhdmc+PTQuNSkgcmV0dXJuICJDTEIgOSsiOyBpZihhdmc+PTMuNSkgcmV0dXJuICJDTEIgN1x1MjAxMzgiOyBpZihhdmc+PTIuNSkgcmV0dXJuICJDTEIgNVx1MjAxMzYiOyByZXR1cm4gIkNMQiA0IG9yIGJlbG93IjsKfQoKLyogLS0tLS0tLS0tLSByZW5kZXIgLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiByZW5kZXIoKXsKICBsZWF2ZUNsZWFudXAoKTsKICByb290LmlubmVySFRNTCA9ICIiOwogIHZhciB3cmFwID0gZWwoImRpdiIsImNscC1zcGstd3JhcCIpOwogIHdyYXAuYXBwZW5kQ2hpbGQoaGVybygpKTsKICBpZihTLmN1cj49MCAmJiBTLmN1cjxELnRhc2tzLmxlbmd0aCkgd3JhcC5hcHBlbmRDaGlsZChjaGlwcygpKTsKICBpZihTLmN1cj09PS0xKSB3cmFwLmFwcGVuZENoaWxkKGludHJvKCkpOwogIGVsc2UgaWYoUy5jdXI9PT05OSkgd3JhcC5hcHBlbmRDaGlsZChlbmRTY3JlZW4oKSk7CiAgZWxzZSB3cmFwLmFwcGVuZENoaWxkKHRhc2tQYW5lbChELnRhc2tzW1MuY3VyXSkpOwogIHJvb3QuYXBwZW5kQ2hpbGQod3JhcCk7CiAgdHJ5eyB3aW5kb3cuc2Nyb2xsVG8oe3RvcDogcm9vdC5vZmZzZXRUb3AtMTAsIGJlaGF2aW9yOiJzbW9vdGgifSk7IH1jYXRjaChlKXt9Cn0KZnVuY3Rpb24gaGVybygpewogIHZhciBoID0gZWwoImRpdiIsImNscC1zcGstaGVybyIpOwogIGguYXBwZW5kQ2hpbGQoZWwoInNwYW4iLCJ0YWciLFUuaGVyb1RhZykpOwogIGguYXBwZW5kQ2hpbGQoZWwoImgxIixudWxsLEQudGl0bGUuc3BsaXQoIlx1MjAxNCIpWzFdID8gIlNwZWFraW5nIFx1MjAxNCIrRC50aXRsZS5zcGxpdCgiXHUyMDE0IilbMV0gOiBELnRpdGxlKSk7CiAgdmFyIG0gPSBlbCgiZGl2IiwibWV0YSIpOwogIFUuaGVyb01ldGEuZm9yRWFjaChmdW5jdGlvbih4KXsgbS5hcHBlbmRDaGlsZChlbCgic3BhbiIsbnVsbCx4KSk7IH0pOwogIGguYXBwZW5kQ2hpbGQobSk7CiAgcmV0dXJuIGg7Cn0KZnVuY3Rpb24gY2hpcHMoKXsKICB2YXIgYyA9IGVsKCJkaXYiLCJjbHAtc3BrLWNoaXBzIik7CiAgRC50YXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHQsaSl7CiAgICB2YXIgYiA9IGVsKCJidXR0b24iLCJjbHAtc3BrLWNoaXAiKyhpPT09Uy5jdXI\/IiBjdXIiOihTLnJlY3NbdC5rXT8iIGRvbmUiOiIiKSksIHQud2FybXVwPyJXIjpTdHJpbmcodC5udW0pKTsKICAgIGIudGl0bGUgPSB0LnR5cGVFbjsKICAgIGIub25jbGljayA9IGZ1bmN0aW9uKCl7IFMuY3VyPWk7IHJlbmRlcigpOyB9OwogICAgYy5hcHBlbmRDaGlsZChiKTsKICB9KTsKICB2YXIgZSA9IGVsKCJidXR0b24iLCJjbHAtc3BrLWNoaXAiKyhTLmN1cj09PTk5PyIgY3VyIjoiIiksIlx1ZDgzY1x1ZGZjMSIpOwogIGUudGl0bGUgPSAiRmluaXNoIjsgZS5vbmNsaWNrID0gZnVuY3Rpb24oKXsgUy5jdXI9OTk7IHJlbmRlcigpOyB9OwogIGMuYXBwZW5kQ2hpbGQoZSk7CiAgcmV0dXJuIGM7Cn0KZnVuY3Rpb24gaW50cm8oKXsKICB2YXIgcCA9IGVsKCJkaXYiLCJjbHAtc3BrLXBhbmVsIGNscC1zcGstaW50cm8iKTsKICB2YXIgYmFyID0gZWwoImRpdiIsImNscC1zcGstYmFyIik7CiAgYmFyLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwidCIsRC5oZWFkZXIrIiAtIFNwZWFraW5nIikpOwogIHZhciBueCA9IGVsKCJidXR0b24iLCJjbHAtc3BrLW5leHQiLFUubmV4dCk7IG54LnN0eWxlLm1hcmdpbkxlZnQ9ImF1dG8iOwogIG54Lm9uY2xpY2sgPSBmdW5jdGlvbigpeyBTLmN1cj0wOyByZW5kZXIoKTsgfTsKICBiYXIuYXBwZW5kQ2hpbGQobngpOwogIHAuYXBwZW5kQ2hpbGQoYmFyKTsKICB2YXIgYiA9IGVsKCJkaXYiLCJjbHAtc3BrLWJvZHkiKTsKICB2YXIgcHIgPSBlbCgiZGl2IiwiY2xwLXNway1wcm9tcHQiKTsKICBwci5hcHBlbmRDaGlsZChlbCgic3BhbiIsImkiLCJpIikpOyBwci5hcHBlbmRDaGlsZChlbCgic3BhbiIsbnVsbCwiU3BlYWtpbmcgVGVzdCBJbnN0cnVjdGlvbnMiKSk7CiAgYi5hcHBlbmRDaGlsZChwcik7CiAgdmFyIHVsID0gZWwoInVsIik7CiAgVS5pbnRyb05vdGVzLmZvckVhY2goZnVuY3Rpb24oeCl7IHVsLmFwcGVuZENoaWxkKGVsKCJsaSIsbnVsbCx4KSk7IH0pOwogIGIuYXBwZW5kQ2hpbGQodWwpOwogIHZhciBtaWNyb3cgPSBlbCgiZGl2IiwiY2xwLXNway1taWNyb3ciKTsKICB2YXIgbWJ0biA9IGVsKCJidXR0b24iLCJjbHAtc3BrLWJ0biBwcmkiLFUubWljRW5hYmxlKTsKICB2YXIgbXN0ID0gZWwoInNwYW4iLCJjbHAtc3BrLW1pY3N0IiwiIik7CiAgbWJ0bi5vbmNsaWNrID0gZnVuY3Rpb24oKXsKICAgIG1idG4uZGlzYWJsZWQgPSB0cnVlOwogICAgZW5zdXJlTWljKGZ1bmN0aW9uKG9rKXsKICAgICAgbXN0LmNsYXNzTmFtZSA9ICJjbHAtc3BrLW1pY3N0ICIrKG9rPyJvayI6ImJhZCIpOwogICAgICBtc3QuaW5uZXJIVE1MID0gb2sgPyAiXHUyNzE0ICIrVS5taWNSZWFkeSA6ICJcdTI3MTYgIitVLm1pY0Jsb2NrZWQ7CiAgICAgIGlmKCFvaykgbWJ0bi5kaXNhYmxlZCA9IGZhbHNlOwogICAgfSk7CiAgfTsKICBtaWNyb3cuYXBwZW5kQ2hpbGQobWJ0bik7IG1pY3Jvdy5hcHBlbmRDaGlsZChtc3QpOwogIGIuYXBwZW5kQ2hpbGQobWljcm93KTsKICBiLmFwcGVuZENoaWxkKGVsKCJkaXYiLCJjbHAtc3BrLW5vdGUiLFUubWljTm90ZSkpOwogIHZhciBjdHIgPSBlbCgiZGl2IiwiY2xwLXNway1jdHIiKTsKICB2YXIgZ28gPSBlbCgiYnV0dG9uIiwiY2xwLXNway1idG4gcHJpIixVLnN0YXJ0VGVzdCsiIFx1MjViNiIpOwogIGdvLnN0eWxlLmZvbnRTaXplPSIxNXB4IjsgZ28uc3R5bGUucGFkZGluZz0iMTJweCAyNnB4IjsKICBnby5vbmNsaWNrID0gZnVuY3Rpb24oKXsgUy5jdXI9MDsgcmVuZGVyKCk7IH07CiAgY3RyLmFwcGVuZENoaWxkKGdvKTsKICBiLmFwcGVuZENoaWxkKGN0cik7CiAgcC5hcHBlbmRDaGlsZChiKTsKICByZXR1cm4gcDsKfQoKLyogLS0tLS0tLS0tLSB0YXNrIHBhbmVsIC0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gdGFza1BhbmVsKHQpewogIHZhciBwID0gZWwoImRpdiIsImNscC1zcGstcGFuZWwiKTsKICB2YXIgYmFyID0gZWwoImRpdiIsImNscC1zcGstYmFyIik7CiAgYmFyLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwidCIsdGFza1RpdGxlKHQpKSk7CiAgdmFyIG1ldGEgPSBlbCgic3BhbiIsIm0iLCB0LnBoYXNlZCA\/IHBoYXNlZE1ldGEodCkgOiBmbXRNZXRhKHQpKTsKICBiYXIuYXBwZW5kQ2hpbGQobWV0YSk7CiAgdmFyIG54ID0gZWwoImJ1dHRvbiIsImNscC1zcGstbmV4dCIsVS5uZXh0KTsKICBueC5vbmNsaWNrID0gZnVuY3Rpb24oKXsgUy5jdXIgPSAoUy5jdXIrMSA8IEQudGFza3MubGVuZ3RoKSA\/IFMuY3VyKzEgOiA5OTsgcmVuZGVyKCk7IH07CiAgYmFyLmFwcGVuZENoaWxkKG54KTsKICBwLmFwcGVuZENoaWxkKGJhcik7CiAgdmFyIGIgPSBlbCgiZGl2IiwiY2xwLXNway1ib2R5Iik7CiAgaWYodC53YXJtdXApIGIuYXBwZW5kQ2hpbGQoZWwoImRpdiIsImNscC1zcGstYmFkZ2UiLFUud2FybXVwQmFkZ2UpKTsKICBpZih0LnBoYXNlZCkgcmVuZGVyVDUodCxiLG1ldGEpOwogIGVsc2UgcmVuZGVyU3RkKHQsYik7CiAgaWYodC50aXBzKSBiLmFwcGVuZENoaWxkKGFjY29yZGlvbih0KSk7CiAgcC5hcHBlbmRDaGlsZChiKTsKICByZXR1cm4gcDsKfQpmdW5jdGlvbiBwaGFzZWRNZXRhKHQpewogIHZhciBwaCA9IFMucGhhc2VbdC5rXXx8IiI7CiAgaWYocGguaW5kZXhPZigiY2hvb3NlIik9PT0wKSByZXR1cm4gIlByZXBhcmF0aW9uOiA8Yj4iK3QuY2hvb3NlLnByZXArIiBzZWNvbmRzPC9iPiI7CiAgcmV0dXJuICJQcmVwYXJhdGlvbjogPGI+Iit0LnNwZWFrLnByZXArIiBzZWNvbmRzPC9iPiAmbmJzcDtSZWNvcmRpbmc6IDxiPiIrdC5zcGVhay5yZWMrIiBzZWNvbmRzPC9iPiI7Cn0KZnVuY3Rpb24gcHJvbXB0Um93KHRleHQsIGxlYWQpewogIHZhciBib3ggPSBlbCgiZGl2Iik7CiAgaWYobGVhZCl7IGJveC5hcHBlbmRDaGlsZChlbCgiZGl2IiwiY2xwLXNway1sZWFkIixsZWFkKSk7IH0KICB2YXIgcHIgPSBlbCgiZGl2IiwiY2xwLXNway1wcm9tcHQiKTsKICBwci5hcHBlbmRDaGlsZChlbCgic3BhbiIsImkiLCJpIikpOwogIHByLmFwcGVuZENoaWxkKGVsKCJzcGFuIixudWxsLHRleHQpKTsKICBib3guYXBwZW5kQ2hpbGQocHIpOwogIHJldHVybiBib3g7Cn0KZnVuY3Rpb24gcmVuZGVyU3RkKHQsYil7CiAgYi5hcHBlbmRDaGlsZChwcm9tcHRSb3codC5wcm9tcHQsIHQucHJvbXB0TGVhZCkpOwogIGlmKHQuY2hvb3NlT25lKXsKICAgIHZhciBjID0gZWwoImRpdiIsImNscC1zcGstY2hvb3NlMSIsIjxkaXYgY2xhc3M9J2UnPkNob29zZSBPTkU6PC9kaXY+PGRpdiBjbGFzcz0nZScgc3R5bGU9J21hcmdpbi10b3A6NnB4Jz5FSVRIRVI8L2Rpdj48ZGl2PiIrdC5jaG9vc2VPbmVbMF0rIjwvZGl2PjxkaXYgY2xhc3M9J2UnIHN0eWxlPSdtYXJnaW4tdG9wOjZweCc+T1I8L2Rpdj48ZGl2PiIrdC5jaG9vc2VPbmVbMV0rIjwvZGl2PiIpOwogICAgYi5hcHBlbmRDaGlsZChjKTsKICB9CiAgaWYodC5pbWcgJiYgRC5pbWdzW3QuaW1nXSl7CiAgICB2YXIgaW0gPSBlbCgiaW1nIiwiY2xwLXNway1pbWciKTsgaW0uc3JjID0gRC5pbWdzW3QuaW1nXTsgaW0uYWx0ID0gdC50eXBlRW47CiAgICBiLmFwcGVuZENoaWxkKGltKTsKICB9CiAgYi5hcHBlbmRDaGlsZCh0aW1lckJsb2NrKHQuaywgdC5wcmVwLCB0LnJlYywgInQiKSk7Cn0KZnVuY3Rpb24gcmVuZGVyVDUodCxiLG1ldGFFbCl7CiAgdmFyIHBoID0gUy5waGFzZVt0LmtdOwogIGlmKHBoLmluZGV4T2YoImNob29zZSIpPT09MCl7CiAgICBiLmFwcGVuZENoaWxkKHByb21wdFJvdyh0LmNob29zZS5zaXR1YXRpb24pKTsKICAgIGIuYXBwZW5kQ2hpbGQoZWwoImRpdiIsImNscC1zcGstbm90ZSIsdC5jaG9vc2Uubm90ZSkpOwogICAgdmFyIGdyaWQgPSBlbCgiZGl2IiwiY2xwLXNway1vcHRzIik7CiAgICB0LmNob29zZS5vcHRpb25zLmZvckVhY2goZnVuY3Rpb24obyxpZHgpewogICAgICB2YXIgY2FyZCA9IGVsKCJkaXYiLCJjbHAtc3BrLWNhcmQiKyhTLnQ1Y2hvaWNlW3Qua109PT1pZHg\/IiBzZWwiOiIiKSk7CiAgICAgIGNhcmQuYXBwZW5kQ2hpbGQoaW1nVGl0bGVCdWxsZXRzKG8pKTsKICAgICAgdmFyIHBrID0gZWwoImRpdiIsInBpY2siLCBTLnQ1Y2hvaWNlW3Qua109PT1pZHggPyAiXHUyNzE0IFNlbGVjdGVkIiA6ICIiKTsKICAgICAgY2FyZC5hcHBlbmRDaGlsZChwayk7CiAgICAgIGNhcmQub25jbGljayA9IGZ1bmN0aW9uKCl7CiAgICAgICAgUy50NWNob2ljZVt0LmtdID0gaWR4OwogICAgICAgIGdyaWQucXVlcnlTZWxlY3RvckFsbCgiLmNscC1zcGstY2FyZCIpLmZvckVhY2goZnVuY3Rpb24oY2Qsail7CiAgICAgICAgICBjZC5jbGFzc05hbWUgPSAiY2xwLXNway1jYXJkIisoaj09PWlkeD8iIHNlbCI6IiIpOwogICAgICAgICAgY2QucXVlcnlTZWxlY3RvcigiLnBpY2siKS50ZXh0Q29udGVudCA9IChqPT09aWR4KT8iXHUyNzE0IFNlbGVjdGVkIjoiIjsKICAgICAgICB9KTsKICAgICAgICBjYnRuLnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lLWJsb2NrIjsKICAgICAgfTsKICAgICAgZ3JpZC5hcHBlbmRDaGlsZChjYXJkKTsKICAgIH0pOwogICAgYi5hcHBlbmRDaGlsZChncmlkKTsKICAgIGIuYXBwZW5kQ2hpbGQoZWwoImRpdiIsImNscC1zcGstaGludCIsVS5jaG9vc2VIaW50KSk7CiAgICAvKiBjb3VudGRvd24gZm9yIGNob29zZSBwaGFzZSAqLwogICAgdmFyIHRyb3cgPSBlbCgiZGl2IiwiY2xwLXNway10aW1lcnJvdyIpOwogICAgdmFyIHRtID0gZWwoImRpdiIsImNscC1zcGstdGltZXIiKTsKICAgIHRtLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwiaWMiLCJcdWQ4M2RcdWRkNTIiKSk7CiAgICB2YXIgbGIgPSBlbCgiZGl2Iik7IGxiLmFwcGVuZENoaWxkKGVsKCJkaXYiLCJsYiIsVS5wcmVwVGl0bGUpKTsKICAgIHRtLmFwcGVuZENoaWxkKGxiKTsKICAgIHZhciBuID0gZWwoInNwYW4iLCJuIixTdHJpbmcodC5jaG9vc2UucHJlcCkpOwogICAgdG0uYXBwZW5kQ2hpbGQobik7CiAgICB0cm93LmFwcGVuZENoaWxkKHRtKTsKICAgIGIuYXBwZW5kQ2hpbGQodHJvdyk7CiAgICB2YXIgY3RyID0gZWwoImRpdiIsImNscC1zcGstY3RyIik7CiAgICB2YXIgc3RhcnQgPSBlbCgiYnV0dG9uIiwiY2xwLXNway1idG4gcHJpIixVLnN0YXJ0UHJlcCk7CiAgICB2YXIgY2J0biA9IGVsKCJidXR0b24iLCJjbHAtc3BrLWJ0biIsVS5jb25maXJtQ2hvaWNlKTsKICAgIGNidG4uc3R5bGUuZGlzcGxheSA9IChTLnQ1Y2hvaWNlW3Qua10hPW51bGwpPyJpbmxpbmUtYmxvY2siOiJub25lIjsKICAgIHZhciBnb1NwZWFrID0gZnVuY3Rpb24oKXsKICAgICAgc3RvcFRpbWVyKCk7CiAgICAgIGlmKFMudDVjaG9pY2VbdC5rXT09bnVsbCkgUy50NWNob2ljZVt0LmtdID0gMDsKICAgICAgUy5waGFzZVt0LmtdID0gInNwZWFrIjsKICAgICAgcmVuZGVyKCk7CiAgICB9OwogICAgc3RhcnQub25jbGljayA9IGZ1bmN0aW9uKCl7CiAgICAgIHN0YXJ0LmRpc2FibGVkID0gdHJ1ZTsKICAgICAgUy5waGFzZVt0LmtdID0gImNob29zZS1ydW4iOwogICAgICBjb3VudGRvd24odC5jaG9vc2UucHJlcCwgZnVuY3Rpb24obGVmdCl7IG4udGV4dENvbnRlbnQgPSBTdHJpbmcobGVmdCk7IH0sIGdvU3BlYWspOwogICAgfTsKICAgIGNidG4ub25jbGljayA9IGdvU3BlYWs7CiAgICBjdHIuYXBwZW5kQ2hpbGQoc3RhcnQpOyBjdHIuYXBwZW5kQ2hpbGQoY2J0bik7CiAgICBiLmFwcGVuZENoaWxkKGN0cik7CiAgICBpZihTLnBoYXNlW3Qua109PT0iY2hvb3NlLXJ1biIpewogICAgICBzdGFydC5kaXNhYmxlZCA9IHRydWU7CiAgICAgIGNvdW50ZG93bih0LmNob29zZS5wcmVwLCBmdW5jdGlvbihsZWZ0KXsgbi50ZXh0Q29udGVudD1TdHJpbmcobGVmdCk7IH0sIGdvU3BlYWspOwogICAgfQogIH0gZWxzZSB7CiAgICBtZXRhRWwuaW5uZXJIVE1MID0gcGhhc2VkTWV0YSh0KTsKICAgIGIuYXBwZW5kQ2hpbGQocHJvbXB0Um93KHQuc3BlYWsucHJvbXB0KSk7CiAgICB2YXIgZ3JpZCA9IGVsKCJkaXYiLCJjbHAtc3BrLW9wdHMiKTsKICAgIHZhciBvdGhlciA9IGVsKCJkaXYiLCJjbHAtc3BrLWNhcmQgcGxhaW4iKTsKICAgIG90aGVyLmFwcGVuZENoaWxkKGVsKCJkaXYiLCJoZCIsdC5zcGVhay5vdGhlckxhYmVsKSk7CiAgICBvdGhlci5hcHBlbmRDaGlsZChpbWdUaXRsZUJ1bGxldHModC5zcGVhay5vdGhlcikpOwogICAgZ3JpZC5hcHBlbmRDaGlsZChvdGhlcik7CiAgICB2YXIgY2hvc2VuID0gdC5jaG9vc2Uub3B0aW9uc1tTLnQ1Y2hvaWNlW3Qua10hPW51bGwgPyBTLnQ1Y2hvaWNlW3Qua10gOiAwXTsKICAgIHZhciBtaW5lID0gZWwoImRpdiIsImNscC1zcGstY2FyZCBwbGFpbiBzZWwiKTsKICAgIG1pbmUuYXBwZW5kQ2hpbGQoZWwoImRpdiIsImhkIixVLnlvdXJDaG9pY2UpKTsKICAgIG1pbmUuYXBwZW5kQ2hpbGQoaW1nVGl0bGVCdWxsZXRzKGNob3NlbikpOwogICAgZ3JpZC5hcHBlbmRDaGlsZChtaW5lKTsKICAgIGIuYXBwZW5kQ2hpbGQoZ3JpZCk7CiAgICBiLmFwcGVuZENoaWxkKHRpbWVyQmxvY2sodC5rLCB0LnNwZWFrLnByZXAsIHQuc3BlYWsucmVjLCAidDVzIikpOwogIH0KfQpmdW5jdGlvbiBpbWdUaXRsZUJ1bGxldHMobyl7CiAgdmFyIGJveCA9IGVsKCJkaXYiKTsKICBpZihvLmltZyAmJiBELmltZ3Nbby5pbWddKXsgdmFyIGltID0gZWwoImltZyIpOyBpbS5zcmMgPSBELmltZ3Nbby5pbWddOyBpbS5hbHQgPSBvLnRpdGxlOyBib3guYXBwZW5kQ2hpbGQoaW0pOyB9CiAgYm94LmFwcGVuZENoaWxkKGVsKCJkaXYiLCJ0dCIsby50aXRsZSkpOwogIHZhciB1bCA9IGVsKCJ1bCIpOwogIG8uYnVsbGV0cy5mb3JFYWNoKGZ1bmN0aW9uKHgpeyB1bC5hcHBlbmRDaGlsZChlbCgibGkiLG51bGwseCkpOyB9KTsKICBib3guYXBwZW5kQ2hpbGQodWwpOwogIHJldHVybiBib3g7Cn0KCi8qIC0tLS0tLS0tLS0gcHJlcC9yZWNvcmQgYmxvY2sgLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiB0aW1lckJsb2NrKGtleSwgcHJlcFNlY3MsIHJlY1NlY3MsIG1vZGUpewogIHZhciBib3ggPSBlbCgiZGl2Iik7CiAgdmFyIHRyb3cgPSBlbCgiZGl2IiwiY2xwLXNway10aW1lcnJvdyIpOwogIHZhciB0bSA9IGVsKCJkaXYiLCJjbHAtc3BrLXRpbWVyIik7CiAgdmFyIGljID0gZWwoInNwYW4iLCJpYyIsIlx1ZDgzZFx1ZGQ1MiIpOwogIHZhciBsYiA9IGVsKCJkaXYiKTsgdmFyIGxidCA9IGVsKCJkaXYiLCJsYiIsVS5wcmVwVGl0bGUpOyBsYi5hcHBlbmRDaGlsZChsYnQpOwogIHZhciBuID0gZWwoInNwYW4iLCJuIixTdHJpbmcocHJlcFNlY3MpKTsKICB0bS5hcHBlbmRDaGlsZChpYyk7IHRtLmFwcGVuZENoaWxkKGxiKTsgdG0uYXBwZW5kQ2hpbGQobik7CiAgdHJvdy5hcHBlbmRDaGlsZCh0bSk7IGJveC5hcHBlbmRDaGlsZCh0cm93KTsKICB2YXIgc3BlYWtub3cgPSBlbCgiZGl2IiwiY2xwLXNway1zcGVha25vdyIsIiIpOyBib3guYXBwZW5kQ2hpbGQoc3BlYWtub3cpOwogIHZhciBjdHIgPSBlbCgiZGl2IiwiY2xwLXNway1jdHIiKTsgYm94LmFwcGVuZENoaWxkKGN0cik7CiAgdmFyIHJldmlld1Nsb3QgPSBlbCgiZGl2Iik7IGJveC5hcHBlbmRDaGlsZChyZXZpZXdTbG90KTsKICB2YXIgbWljbm90ZSA9IGVsKCJkaXYiKTsgYm94LmFwcGVuZENoaWxkKG1pY25vdGUpOwoKICBmdW5jdGlvbiBzaG93SWRsZSgpewogICAgY3RyLmlubmVySFRNTCA9ICIiOyBzcGVha25vdy50ZXh0Q29udGVudCA9ICIiOwogICAgdG0uY2xhc3NOYW1lID0gImNscC1zcGstdGltZXIiOyBsYnQudGV4dENvbnRlbnQgPSBVLnByZXBUaXRsZTsgaWMudGV4dENvbnRlbnQgPSAiXHVkODNkXHVkZDUyIjsgbi50ZXh0Q29udGVudCA9IFN0cmluZyhwcmVwU2Vjcyk7CiAgICB2YXIgc3RhcnQgPSBlbCgiYnV0dG9uIiwiY2xwLXNway1idG4gcHJpIixVLnN0YXJ0UHJlcCk7CiAgICBzdGFydC5vbmNsaWNrID0gc3RhcnRQcmVwOwogICAgY3RyLmFwcGVuZENoaWxkKHN0YXJ0KTsKICAgIGlmKFMucmVjc1trZXldKSBzaG93UmV2aWV3KGZhbHNlKTsKICB9CiAgZnVuY3Rpb24gc3RhcnRQcmVwKCl7CiAgICBlbnN1cmVNaWMoZnVuY3Rpb24oKXsKICAgICAgY3RyLmlubmVySFRNTCA9ICIiOwogICAgICB2YXIgc2tpcCA9IGVsKCJidXR0b24iLCJjbHAtc3BrLWJ0biIsVS5za2lwUHJlcCk7CiAgICAgIHNraXAub25jbGljayA9IGZ1bmN0aW9uKCl7IHN0b3BUaW1lcigpOyBzdGFydFJlYygpOyB9OwogICAgICBjdHIuYXBwZW5kQ2hpbGQoc2tpcCk7CiAgICAgIGNvdW50ZG93bihwcmVwU2VjcywgZnVuY3Rpb24obGVmdCl7IG4udGV4dENvbnRlbnQgPSBTdHJpbmcobGVmdCk7IH0sIGZ1bmN0aW9uKCl7IHN0YXJ0UmVjKCk7IH0pOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIHN0YXJ0UmVjKCl7CiAgICBiZWVwKDIpOwogICAgdG0uY2xhc3NOYW1lID0gImNscC1zcGstdGltZXIgcmVjIjsKICAgIGljLmlubmVySFRNTCA9ICI8c3BhbiBjbGFzcz0nY2xwLXNway1kb3QnPjwvc3Bhbj4iOwogICAgbi50ZXh0Q29udGVudCA9IFN0cmluZyhyZWNTZWNzKTsKICAgIGN0ci5pbm5lckhUTUwgPSAiIjsKICAgIHZhciBzdG9wcGVkID0gZmFsc2U7CiAgICB2YXIgaGF2ZU1pYyA9IChTLm1pY1N0YXRlPT09Im9rIiAmJiBTLnN0cmVhbSk7CiAgICBsYnQudGV4dENvbnRlbnQgPSBoYXZlTWljID8gVS5yZWNUaXRsZSA6IFUudGltZXJPbmx5OwogICAgc3BlYWtub3cudGV4dENvbnRlbnQgPSBVLnNwZWFrTm93OwogICAgbWljbm90ZS5pbm5lckhUTUwgPSBoYXZlTWljID8gIiIgOiAiPGRpdiBjbGFzcz0nY2xwLXNway1taWMnPiIrVS5taWNCbG9ja2VkKyI8L2Rpdj4iOwogICAgdmFyIHQwID0gRGF0ZS5ub3coKTsKICAgIHZhciBmaW5pc2ggPSBmdW5jdGlvbigpewogICAgICBpZihzdG9wcGVkKSByZXR1cm47IHN0b3BwZWQgPSB0cnVlOwogICAgICBzdG9wVGltZXIoKTsgYmVlcCgxKTsKICAgICAgc3BlYWtub3cudGV4dENvbnRlbnQgPSAiIjsKICAgICAgdmFyIHNlY3MgPSBNYXRoLm1pbihyZWNTZWNzLCBNYXRoLnJvdW5kKChEYXRlLm5vdygpLXQwKS8xMDAwKSk7CiAgICAgIGlmKGhhdmVNaWMgJiYgUy5yZWNvcmRlcil7CiAgICAgICAgUy5yZWNvcmRlci5vbnN0b3AgPSBmdW5jdGlvbigpewogICAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihTLmNodW5rcywgUy5taW1lP3t0eXBlOlMubWltZX06dW5kZWZpbmVkKTsKICAgICAgICAgIGlmKFMucmVjc1trZXldICYmIFMucmVjc1trZXldLnVybCl7IHRyeXsgVVJMLnJldm9rZU9iamVjdFVSTChTLnJlY3Nba2V5XS51cmwpOyB9Y2F0Y2goZSl7fSB9CiAgICAgICAgICBTLnJlY3Nba2V5XSA9IHsgYmxvYjogYmxvYiwgdXJsOiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpLCBzZWNzOiBzZWNzIH07CiAgICAgICAgICBTLnJlY29yZGVyID0gbnVsbDsKICAgICAgICAgIHNob3dJZGxlKCk7IHNob3dSZXZpZXcodHJ1ZSk7CiAgICAgICAgfTsKICAgICAgICB0cnl7IFMucmVjb3JkZXIuc3RvcCgpOyB9Y2F0Y2goZSl7IFMucmVjc1trZXldID0ge2Jsb2I6bnVsbCx1cmw6bnVsbCxzZWNzOnNlY3N9OyBzaG93SWRsZSgpOyBzaG93UmV2aWV3KHRydWUpOyB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgUy5yZWNzW2tleV0gPSB7IGJsb2I6bnVsbCwgdXJsOm51bGwsIHNlY3M6IHNlY3MgfTsKICAgICAgICBzaG93SWRsZSgpOyBzaG93UmV2aWV3KHRydWUpOwogICAgICB9CiAgICB9OwogICAgaWYoaGF2ZU1pYyl7CiAgICAgIFMuY2h1bmtzID0gW107CiAgICAgIHRyeXsKICAgICAgICBTLnJlY29yZGVyID0gUy5taW1lID8gbmV3IE1lZGlhUmVjb3JkZXIoUy5zdHJlYW0se21pbWVUeXBlOlMubWltZX0pIDogbmV3IE1lZGlhUmVjb3JkZXIoUy5zdHJlYW0pOwogICAgICAgIFMucmVjb3JkZXIub25kYXRhYXZhaWxhYmxlID0gZnVuY3Rpb24oZXYpeyBpZihldi5kYXRhICYmIGV2LmRhdGEuc2l6ZSkgUy5jaHVua3MucHVzaChldi5kYXRhKTsgfTsKICAgICAgICBTLnJlY29yZGVyLnN0YXJ0KCk7CiAgICAgIH1jYXRjaChlKXsgUy5yZWNvcmRlciA9IG51bGw7IGhhdmVNaWMgPSBmYWxzZTsgbGJ0LnRleHRDb250ZW50ID0gVS50aW1lck9ubHk7IH0KICAgIH0KICAgIHZhciBzdG9wID0gZWwoImJ1dHRvbiIsImNscC1zcGstYnRuIHdhcm4iLFUuc3RvcFJlYyk7CiAgICBzdG9wLm9uY2xpY2sgPSBmaW5pc2g7CiAgICBjdHIuYXBwZW5kQ2hpbGQoc3RvcCk7CiAgICBjb3VudGRvd24ocmVjU2VjcywgZnVuY3Rpb24obGVmdCl7IG4udGV4dENvbnRlbnQgPSBTdHJpbmcobGVmdCk7IH0sIGZpbmlzaCk7CiAgfQogIGZ1bmN0aW9uIHNob3dSZXZpZXcoc2Nyb2xsVG8pewogICAgdmFyIHIgPSBTLnJlY3Nba2V5XTsgaWYoIXIpIHJldHVybjsKICAgIHJldmlld1Nsb3QuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIgcnYgPSBlbCgiZGl2IiwiY2xwLXNway1yZXZpZXciKTsKICAgIHJ2LmFwcGVuZENoaWxkKGVsKCJkaXYiLCJvayIsIlx1MjcxNCAiK1UucmVjb3JkZWQrIiAoIityLnNlY3MrInMpIikpOwogICAgaWYoci51cmwpewogICAgICB2YXIgYXUgPSBlbCgiYXVkaW8iKTsgYXUuY29udHJvbHMgPSB0cnVlOyBhdS5zcmMgPSByLnVybDsKICAgICAgcnYuYXBwZW5kQ2hpbGQoYXUpOwogICAgICB2YXIgcm93ID0gZWwoImRpdiIsImNscC1zcGstY3RyIik7CiAgICAgIHZhciBkbCA9IGVsKCJhIiwiY2xwLXNway1idG4iLFUuZG93bmxvYWQpOwogICAgICBkbC5ocmVmID0gci51cmw7IGRsLmRvd25sb2FkID0gImNlbHBpcC1zIitELnNldCsidCIrRC50ZXN0KyItdGFzayIrKGtleT09PSJ3Ij8iMCI6a2V5LnJlcGxhY2UoInQiLCIiKSkrIi4iK1MuZXh0OwogICAgICByb3cuYXBwZW5kQ2hpbGQoZGwpOwogICAgICBydi5hcHBlbmRDaGlsZChyb3cpOwogICAgfQogICAgcmV2aWV3U2xvdC5hcHBlbmRDaGlsZChydik7CiAgICBpZihzY3JvbGxUbyl7IHRyeXsgcnYuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJjZW50ZXIifSk7IH1jYXRjaChlKXt9IH0KICB9CiAgc2hvd0lkbGUoKTsKICByZXR1cm4gYm94Owp9CgovKiAtLS0tLS0tLS0tIHRpcHMvc2FtcGxlcyBhY2NvcmRpb24gLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiBhY2NvcmRpb24odCl7CiAgdmFyIGFjYyA9IGVsKCJkaXYiLCJjbHAtc3BrLWFjYyIpOwogIHZhciBidG4gPSBlbCgiYnV0dG9uIixudWxsLFUudGlwc1RvZ2dsZSk7CiAgYnRuLm9uY2xpY2sgPSBmdW5jdGlvbigpeyBhY2MuY2xhc3NOYW1lID0gYWNjLmNsYXNzTmFtZS5pbmRleE9mKCJvcGVuIik+LTEgPyAiY2xwLXNway1hY2MiIDogImNscC1zcGstYWNjIG9wZW4iOyB9OwogIGFjYy5hcHBlbmRDaGlsZChidG4pOwogIHZhciBib2R5ID0gZWwoImRpdiIsImNscC1zcGstYWNjYm9keSIpOwogIHZhciB0YWJzID0gZWwoImRpdiIsImNscC1zcGstdGFicyIpOwogIHZhciBwYW5lcyA9IFtdOwogIGZ1bmN0aW9uIGFkZFRhYihsYWJlbCwgcGFuZUJ1aWxkZXIpewogICAgdmFyIGkgPSBwYW5lcy5sZW5ndGg7CiAgICB2YXIgdGIgPSBlbCgiYnV0dG9uIiwiY2xwLXNway10YWIiKyhpPT09MD8iIG9uIjoiIiksbGFiZWwpOwogICAgdmFyIHBuID0gZWwoImRpdiIsImNscC1zcGstdGFicGFuZSIrKGk9PT0wPyIgb24iOiIiKSk7CiAgICBwYW5lQnVpbGRlcihwbik7CiAgICB0Yi5vbmNsaWNrID0gZnVuY3Rpb24oKXsKICAgICAgdGFicy5xdWVyeVNlbGVjdG9yQWxsKCIuY2xwLXNway10YWIiKS5mb3JFYWNoKGZ1bmN0aW9uKHgsail7IHguY2xhc3NOYW1lID0gImNscC1zcGstdGFiIisoaj09PWk\/IiBvbiI6IiIpOyB9KTsKICAgICAgYm9keS5xdWVyeVNlbGVjdG9yQWxsKCIuY2xwLXNway10YWJwYW5lIikuZm9yRWFjaChmdW5jdGlvbih4LGopeyB4LmNsYXNzTmFtZSA9ICJjbHAtc3BrLXRhYnBhbmUiKyhqPT09aT8iIG9uIjoiIik7IH0pOwogICAgfTsKICAgIHRhYnMuYXBwZW5kQ2hpbGQodGIpOyBwYW5lcy5wdXNoKHBuKTsKICB9CiAgYWRkVGFiKFUudGFiVGlwcywgZnVuY3Rpb24ocG4pewogICAgdmFyIHVsID0gZWwoInVsIik7CiAgICB0LnRpcHMuYnVsbGV0cy5mb3JFYWNoKGZ1bmN0aW9uKHgpeyB1bC5hcHBlbmRDaGlsZChlbCgibGkiLG51bGwseCkpOyB9KTsKICAgIHBuLmFwcGVuZENoaWxkKHVsKTsKICAgIHBuLmFwcGVuZENoaWxkKGVsKCJkaXYiLG51bGwsIjxiPiIrVS51c2VmdWxQaHJhc2VzKyI6PC9iPiIpKTsKICAgIHZhciBwaCA9IGVsKCJkaXYiLCJjbHAtc3BrLXBociIpOwogICAgdC50aXBzLnBocmFzZXMuZm9yRWFjaChmdW5jdGlvbih4KXsgcGguYXBwZW5kQ2hpbGQoZWwoInNwYW4iLG51bGwseCkpOyB9KTsKICAgIHBuLmFwcGVuZENoaWxkKHBoKTsKICB9KTsKICBpZih0LnM2KSBhZGRUYWIoVS50YWJTNiwgZnVuY3Rpb24ocG4peyBwbi5hcHBlbmRDaGlsZChlbCgiZGl2IiwiY2xwLXNway1zYW1wbGUgczYiLHQuczYpKTsgfSk7CiAgaWYodC5zOSkgYWRkVGFiKFUudGFiUzksIGZ1bmN0aW9uKHBuKXsgcG4uYXBwZW5kQ2hpbGQoZWwoImRpdiIsImNscC1zcGstc2FtcGxlIix0LnM5KSk7IH0pOwogIGlmKCF0Lndhcm11cCkgYWRkVGFiKFUudGFiUnVicmljLCBmdW5jdGlvbihwbil7CiAgICBwbi5hcHBlbmRDaGlsZChlbCgiZGl2IixudWxsLFUucnVicmljTm90ZSkpOwogICAgdmFyIHRiID0gZWwoInRhYmxlIiwiY2xwLXNway1ydWIiKTsKICAgIGlmKCFTLnJ1YnJpY1t0LmtdKSBTLnJ1YnJpY1t0LmtdID0gWzAsMCwwLDBdOwogICAgdmFyIGVzdEQgPSBlbCgiZGl2IiwiY2xwLXNway1lc3QiLCIiKTsKICAgIFUucnVicmljQ3JpdC5mb3JFYWNoKGZ1bmN0aW9uKGNyLGNpKXsKICAgICAgdmFyIHRyID0gZWwoInRyIik7CiAgICAgIHRyLmFwcGVuZENoaWxkKGVsKCJ0ZCIsbnVsbCxjcikpOwogICAgICB2YXIgdGQgPSBlbCgidGQiKTsgdGQuc3R5bGUud2hpdGVTcGFjZSA9ICJub3dyYXAiOyB0ZC5zdHlsZS50ZXh0QWxpZ24gPSAicmlnaHQiOwogICAgICBmb3IodmFyIHMyPTE7czI8PTU7czIrKyl7CiAgICAgICAgKGZ1bmN0aW9uKHN2KXsKICAgICAgICAgIHZhciBzcCA9IGVsKCJzcGFuIiwiY2xwLXNway1zdGFyIisoUy5ydWJyaWNbdC5rXVtjaV0+PXN2PyIgb24iOiIiKSwiXHUyNjA1Iik7CiAgICAgICAgICBzcC5vbmNsaWNrID0gZnVuY3Rpb24oKXsKICAgICAgICAgICAgUy5ydWJyaWNbdC5rXVtjaV0gPSBzdjsKICAgICAgICAgICAgdGQucXVlcnlTZWxlY3RvckFsbCgiLmNscC1zcGstc3RhciIpLmZvckVhY2goZnVuY3Rpb24oeCxqKXsgeC5jbGFzc05hbWUgPSAiY2xwLXNway1zdGFyIisoajxzdj8iIG9uIjoiIik7IH0pOwogICAgICAgICAgICB1cGQoKTsKICAgICAgICAgIH07CiAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChzcCk7CiAgICAgICAgfSkoczIpOwogICAgICB9CiAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgdGIuYXBwZW5kQ2hpbGQodHIpOwogICAgfSk7CiAgICBwbi5hcHBlbmRDaGlsZCh0Yik7CiAgICBwbi5hcHBlbmRDaGlsZChlc3REKTsKICAgIHBuLmFwcGVuZENoaWxkKGVsKCJkaXYiLCJjbHAtc3BrLW5vdGUiLFUuZXN0RGlzY2xhaW1lcikpOwogICAgZnVuY3Rpb24gdXBkKCl7CiAgICAgIHZhciBhcnIgPSBTLnJ1YnJpY1t0LmtdOyB2YXIgZG9uZSA9IGFyci5ldmVyeShmdW5jdGlvbih4KXtyZXR1cm4geD4wO30pOwogICAgICBlc3RELnRleHRDb250ZW50ID0gZG9uZSA\/IChVLmVzdGltYXRlKyIgIitlc3RUZXh0KGFyci5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStiO30sMCkvNCkpIDogIiI7CiAgICB9CiAgICB1cGQoKTsKICB9KTsKICBib2R5Lmluc2VydEJlZm9yZSh0YWJzLCBib2R5LmZpcnN0Q2hpbGQpOwogIHBhbmVzLmZvckVhY2goZnVuY3Rpb24ocG4peyBib2R5LmFwcGVuZENoaWxkKHBuKTsgfSk7CiAgYWNjLmFwcGVuZENoaWxkKGJvZHkpOwogIHJldHVybiBhY2M7Cn0KCi8qIC0tLS0tLS0tLS0gZW5kIHNjcmVlbiAtLS0tLS0tLS0tICovCmZ1bmN0aW9uIGVuZFNjcmVlbigpewogIHZhciBwID0gZWwoImRpdiIsImNscC1zcGstcGFuZWwgY2xwLXNway1lbmQiKTsKICB2YXIgYmFyID0gZWwoImRpdiIsImNscC1zcGstYmFyIik7CiAgYmFyLmFwcGVuZENoaWxkKGVsKCJzcGFuIiwidCIsRC5oZWFkZXIrIiAtIFNwZWFraW5nIFx1MjAxNCAiK1UuZW5kVGl0bGUpKTsKICBwLmFwcGVuZENoaWxkKGJhcik7CiAgdmFyIGIgPSBlbCgiZGl2IiwiY2xwLXNway1ib2R5Iik7CiAgYi5hcHBlbmRDaGlsZChlbCgiZGl2IixudWxsLCI8Yj4iK1UuZW5kVGl0bGUrIjwvYj4gIitVLmVuZFN1YikpOwogIHZhciB0YiA9IGVsKCJ0YWJsZSIpOwogIHZhciB0aHIgPSBlbCgidHIiKTsgWyJUYXNrIiwiVHlwZSIsIlJlY29yZGluZyIsIiJdLmZvckVhY2goZnVuY3Rpb24oaCl7IHRoci5hcHBlbmRDaGlsZChlbCgidGgiLG51bGwsaCkpOyB9KTsKICB0Yi5hcHBlbmRDaGlsZCh0aHIpOwogIHZhciBucmVjID0gMDsKICBELnRhc2tzLmZvckVhY2goZnVuY3Rpb24odCxpKXsKICAgIHZhciB0ciA9IGVsKCJ0ciIpOwogICAgdHIuYXBwZW5kQ2hpbGQoZWwoInRkIixudWxsLCI8Yj4iKyh0Lndhcm11cD8iVyI6dC5udW0pKyI8L2I+IikpOwogICAgdHIuYXBwZW5kQ2hpbGQoZWwoInRkIixudWxsLHQudHlwZUVuKSk7CiAgICB2YXIgciA9IFMucmVjc1t0LmtdOwogICAgdmFyIHRkID0gZWwoInRkIik7CiAgICBpZihyICYmIHIudXJsKXsgbnJlYysrOyB2YXIgYXUgPSBlbCgiYXVkaW8iKTsgYXUuY29udHJvbHMgPSB0cnVlOyBhdS5zcmMgPSByLnVybDsgdGQuYXBwZW5kQ2hpbGQoYXUpOyB9CiAgICBlbHNlIGlmKHIpeyBucmVjKys7IHRkLnRleHRDb250ZW50ID0gci5zZWNzKyJzICgiK1UudGltZXJPbmx5KyIpIjsgfQogICAgZWxzZSB0ZC5pbm5lckhUTUwgPSAiPHNwYW4gc3R5bGU9J2NvbG9yOiNjNjI4MjgnPiIrVS5lbmROb1JlYysiPC9zcGFuPiI7CiAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICB2YXIgdGQyID0gZWwoInRkIik7CiAgICB2YXIgZ28gPSBlbCgiYnV0dG9uIiwiY2xwLXNway1idG4iLCJcdTIxOTIiKTsKICAgIGdvLm9uY2xpY2sgPSBmdW5jdGlvbigpeyBTLmN1cj1pOyByZW5kZXIoKTsgfTsKICAgIHRkMi5hcHBlbmRDaGlsZChnbyk7CiAgICB0ci5hcHBlbmRDaGlsZCh0ZDIpOwogICAgdGIuYXBwZW5kQ2hpbGQodHIpOwogIH0pOwogIGIuYXBwZW5kQ2hpbGQodGIpOwogIC8qIHJ1YnJpYyBhdmcgKi8KICB2YXIgdmFscyA9IFtdOwogIE9iamVjdC5rZXlzKFMucnVicmljKS5mb3JFYWNoKGZ1bmN0aW9uKGspeyB2YXIgYT1TLnJ1YnJpY1trXTsgaWYoYSAmJiBhLmV2ZXJ5KGZ1bmN0aW9uKHgpe3JldHVybiB4PjA7fSkpIHZhbHMucHVzaChhLnJlZHVjZShmdW5jdGlvbih4LHkpe3JldHVybiB4K3k7fSwwKS80KTsgfSk7CiAgaWYodmFscy5sZW5ndGgpewogICAgdmFyIGF2ZyA9IHZhbHMucmVkdWNlKGZ1bmN0aW9uKGEsYyl7cmV0dXJuIGErYzt9LDApL3ZhbHMubGVuZ3RoOwogICAgYi5hcHBlbmRDaGlsZChlbCgiZGl2IiwiY2xwLXNway1lc3QiLFUuZXN0aW1hdGUrIiAiK2VzdFRleHQoYXZnKSsiICgiK3ZhbHMubGVuZ3RoKyIgdGFzayhzKSBzZWxmLXJhdGVkKSIpKTsKICAgIGIuYXBwZW5kQ2hpbGQoZWwoImRpdiIsImNscC1zcGstbm90ZSIsVS5lc3REaXNjbGFpbWVyKSk7CiAgfQogIHZhciBjdHIgPSBlbCgiZGl2IiwiY2xwLXNway1jdHIiKTsKICB2YXIgcmVkbyA9IGVsKCJidXR0b24iLCJjbHAtc3BrLWJ0biIsVS5lbmRSZWRvKTsKICByZWRvLm9uY2xpY2sgPSBmdW5jdGlvbigpewogICAgT2JqZWN0LmtleXMoUy5yZWNzKS5mb3JFYWNoKGZ1bmN0aW9uKGspeyBpZihTLnJlY3Nba10mJlMucmVjc1trXS51cmwpeyB0cnl7VVJMLnJldm9rZU9iamVjdFVSTChTLnJlY3Nba10udXJsKTt9Y2F0Y2goZSl7fSB9IH0pOwogICAgUy5yZWNzID0ge307IFMucnVicmljID0ge307IFMudDVjaG9pY2UgPSB7fTsKICAgIEQudGFza3MuZm9yRWFjaChmdW5jdGlvbih0KXsgUy5waGFzZVt0LmtdID0gdC5waGFzZWQ\/ImNob29zZS1pZGxlIjoiaWRsZSI7IH0pOwogICAgUy5jdXIgPSAtMTsgcmVuZGVyKCk7CiAgfTsKICB2YXIgdDIgPSBlbCgiYSIsImNscC1zcGstYnRuIHByaSIsVS5lbmRUMisiICIrKEQudGVzdD09PTE\/MjoxKSsiIFx1MjE5MiIpOyB0Mi5ocmVmID0gRC5vdGhlclVybDsKICB2YXIgaHViID0gZWwoImEiLCJjbHAtc3BrLWJ0biIsVS5lbmRIdWIpOyBodWIuaHJlZiA9ICIvY2VscGlwLyI7CiAgY3RyLmFwcGVuZENoaWxkKHJlZG8pOyBjdHIuYXBwZW5kQ2hpbGQodDIpOyBjdHIuYXBwZW5kQ2hpbGQoaHViKTsKICBiLmFwcGVuZENoaWxkKGN0cik7CiAgYi5hcHBlbmRDaGlsZChlbCgiZGl2IiwiY2xwLXNway1taWMiLFUubWljTm90ZSkpOwogIHAuYXBwZW5kQ2hpbGQoYik7CiAgcmV0dXJuIHA7Cn0KCi8qIGV4cG9zZSBmb3IgdGVzdHMgKi8Kd2luZG93LkNMUFNQSyA9IHsgc3RhdGU6IFMsIGRhdGE6IEQsIGdvdG86IGZ1bmN0aW9uKGkpeyBTLmN1cj1pOyByZW5kZXIoKTsgfSwgcmVuZGVyOiByZW5kZXIgfTsKcmVuZGVyKCk7Cn0pKCk7Cg==\"));<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Speaking Set 8 Practice Test 1: all 8 official-style tasks with on-screen prep and recording timers, sample responses and self-assessment tips. 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-6373","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6373","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=6373"}],"version-history":[{"count":1,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6373\/revisions"}],"predecessor-version":[{"id":6517,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6373\/revisions\/6517"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}