{"id":6406,"date":"2026-07-11T01:11:23","date_gmt":"2026-07-11T01:11:23","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-8-test-1-reading\/"},"modified":"2026-07-12T03:24:31","modified_gmt":"2026-07-12T03:24:31","slug":"celpip-set-8-test-1-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-8-test-1-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 8 \u00b7 Practice Test 1"},"content":{"rendered":"<div class=\"clpr-wrap\" id=\"clprWrap\">\n<section class=\"clpr-hero\">\n<div class=\"clpr-aurora\"><span><\/span><span><\/span><span><\/span><\/div>\n<div class=\"clpr-hero-badges\"> <span class=\"clpr-badge-brand\">AllEnglish4U<\/span> <span class=\"clpr-badge-set\">CELPIP General &middot; Set 8<\/span> <\/div>\n<h1>Reading Practice Test 1<\/h1>\n<p class=\"clpr-hero-sub\">4 parts &middot; 38 questions &middot; about 55 minutes. Read each passage and choose the best option for every drop-down. Official Paragon question set with verified answer key.<\/p>\n<div class=\"clpr-hero-chips\"> <span class=\"clpr-chip\">Part 1 &middot; Correspondence<\/span> <span class=\"clpr-chip\">Part 2 &middot; Apply a Diagram<\/span> <span class=\"clpr-chip\">Part 3 &middot; Information<\/span> <span class=\"clpr-chip\">Part 4 &middot; Viewpoints<\/span> <\/div>\n<p> <button class=\"clpr-cta\" id=\"clprStart\">Start the Reading Test<\/button> <\/section>\n<div class=\"clpr-toolbar\" id=\"clprToolbar\" hidden> <span class=\"clpr-score-chip\" id=\"clprScoreChip\">0 \/ 38 answered<\/span> <span class=\"clpr-toolbar-spacer\"><\/span> <button class=\"clpr-tbtn\" id=\"clprReset\">Reset<\/button> <button class=\"clpr-tbtn clpr-tbtn-check\" id=\"clprCheck\">Check answers<\/button> <\/div>\n<div class=\"clpr-sim\" id=\"clprSim\" hidden>\n<div class=\"clpr-dots\" id=\"clprDots\"><\/div>\n<div class=\"clpr-cat\" id=\"clprCat\"><\/div>\n<\/p><\/div>\n<div class=\"clpr-results\" id=\"clprResults\" hidden><\/div>\n<\/p><\/div>\n<p><script>eval(atob(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMSAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAxIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDEiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPlRvIHdob20gaXQgbWF5IGNvbmNlcm4sPC9wPjxwPk15IG5hbWUgaXMgSmFuZXQgV2hpdGUgYW5kIEkgYW0gYSB0ZW5hbnQgYXQgeW91ciByZXNpZGVudGlhbCByZW50YWwgcHJvcGVydHksIEdhcmRlbiBQbGF6YSwgYXQgMjU3IFBpbmUgU3RyZWV0LCBBcGFydG1lbnQgNTAyLiBJIGFtIHdyaXRpbmcgdG8gYnJpbmcgeW91ciBhdHRlbnRpb24gdG8gYW4gb25nb2luZyBpc3N1ZSByZWdhcmRpbmcgYSBicm9rZW4gaGVhdGVyIGluIG15IHJlbnRhbCB1bml0LiBVbmZvcnR1bmF0ZWx5LCBldmVuIGFmdGVyIG51bWVyb3VzIGNvbXBsYWludHMsIHRoZSBwcm9ibGVtIGhhcyB5ZXQgdG8gYmUgc29sdmVkLiBBcyB5b3UgY2FuIGltYWdpbmUsIEkgYW0gZmVlbGluZyB2ZXJ5IGZydXN0cmF0ZWQgYnkgdGhlIHdob2xlIG9yZGVhbC48L3A+PHA+VG8gcmVjYXAsIHRoZSBoZWF0ZXIgaW4gdGhlIGxpdmluZyByb29tIG9mIG15IGFwYXJ0bWVudCBpcyBicm9rZW4uIFRoZSBhdmVyYWdlIHRlbXBlcmF0dXJlIGluIHRoaXMgcm9vbSBpcyBiZXR3ZWVuIDE1Jm5kYXNoOzE3JmRlZztDIGR1cmluZyB0aGUgZGF5IGFuZCBldmVuIGxvd2VyIGF0IG5pZ2h0LiBUaGlzIGlzIHVuYWNjZXB0YWJsZSBhcyB0aGUgbG9jYWwgYnlsYXcgc3RhdGVzIHRoYXQgdGhlIGxhbmRsb3JkIG11c3Qga2VlcCB0aGUgaGVhdCBpbiByZW50YWwgYXBhcnRtZW50cyBhdCBhIG1pbmltdW0gb2YgMjAmZGVnO0MgZnJvbSBPY3RvYmVyIHRvIEFwcmlsLiBJIG9mdGVuIHdvcmsgZnJvbSBob21lIGFuZCBmaW5kIGl0IGhhcmQgdG8gYWNjb21wbGlzaCBhbnl0aGluZyB3aGVuIEkgYW0gZnJlZXppbmcgY29sZC4gSSBoYXZlIGhhZCB0byBwdXJjaGFzZSBhIHNtYWxsIGVsZWN0cmljIGhlYXRlciB0byBrZWVwIG15c2VsZiB3YXJtIHdoaWNoIGNvc3RzIG1lIG1vbmV5IG9uIG15IGVsZWN0cmljaXR5IGJpbGwuIFRoaXMgaXMgdW5mYWlyIGJlY2F1c2UgaGVhdCBpcyBzdXBwb3NlZCB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmVudCBJIHBheS4gSW4gYWRkaXRpb24gdG8gbXkgZnJ1c3RyYXRpb24gd2l0aCBpbnN1ZmZpY2llbnQgaGVhdCwgdGhlcmUgaGFzIGJlZW4gYSBsYWNrIG9mIGNvbW11bmljYXRpb24gb24geW91ciBlbmQgYWJvdXQgd2hhdCBoYXMgYmVlbiBkb25lIHRvIHNvbHZlIHRoZSBpc3N1ZS4gVGhlIHN1cGVyaW50ZW5kZW50IGhhcyBuZXZlciBjb250YWN0ZWQgbWUgdG8gbGV0IG1lIGtub3cgd2hldGhlciBhbnlvbmUgaGFzIGNvbWUgdG8gY2hlY2sgb3V0IHRoZSBoZWF0ZXIuIEkgaGFkIHRvIGNhbGwgdGhlIGhlYWQgb2ZmaWNlIG9uIFR1ZXNkYXksIEphbnVhcnkgM3JkLCB0byBmaW5kIGlmIHRoZXJlIGhhZCBiZWVuIGFueSBhdHRlbXB0IHRvIHJlY3RpZnkgdGhlIHByb2JsZW0uIEkgd2FzIHVwc2V0IHRvIGZpbmQgb3V0IHRoYXQgbm90aGluZyBoYWQgYmVlbiBkb25lLCBldmVuIGFmdGVyIHN1Ym1pdHRpbmcgdGhyZWUgY29tcGxhaW50IGZvcm1zIGFuZCBsZWF2aW5nIG11bHRpcGxlIHZvaWNlbWFpbCBtZXNzYWdlcyBhYm91dCB0aGUgaXNzdWUuPC9wPjxwPkF0IHRoaXMgcG9pbnQgSSBhbSBleHRyZW1lbHkgZGlzZ3J1bnRsZWQgd2l0aCB0aGUgc2l0dWF0aW9uIGFuZCB0aGUgcG9vciBzZXJ2aWNlIEkgaGF2ZSByZWNlaXZlZCBmcm9tIHlvdXIgY29tcGFueS4gSXQgaGFzIGJlZW4gb3ZlciAzIHdlZWtzIHRoYXQgSSZyc3F1bzt2ZSBiZWVuIHRyeWluZyB0byBkZWFsIHdpdGggdGhpcyBwcm9ibGVtLiBJIGZlZWwgdGhhdCB0aGUgbWFubmVyIGluIHdoaWNoIHRoaXMgaXNzdWUgaXMgYmVpbmcgaGFuZGxlZCBpcyBjb21wbGV0ZWx5IHVuYWNjZXB0YWJsZS4gSSB3b3VsZCBsaWtlIHRoaXMgc2l0dWF0aW9uIHRvIGJlIHJlc29sdmVkIGFzIHNvb24gYXMgcG9zc2libGUuIEkgd291bGQgYWxzbyBsaWtlIHRvIGJlIGNvbnRhY3RlZCBieSB5b3VyIG1hbmFnZXIgb3Igc3VwZXJ2aXNvciBhdCBKb2huc29uIFJlYWx0eSBNYW5hZ2VtZW50IHRvIGRpc2N1c3Mgd2hhdCBjYW4gYmUgZG9uZSB0byBtYWtlIHVwIGZvciB0aGUgdGltZSwgbW9uZXksIGFuZCBmcnVzdHJhdGlvbiB0aGlzIGlzc3VlIGhhcyBjYXVzZWQgbWUuPC9wPjxwPlNpbmNlcmVseSw8YnI+SmFuZXQgV2hpdGU8L3A+In0sImJsb2NrcyI6W3sidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24gYWNjb3JkaW5nIHRvIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiB0aGUgbWVzc2FnZS4iLCJpdGVtcyI6W3sibiI6MSwicHJlIjoiSmFuZXQgd3JvdGUgdGhpcyBsZXR0ZXIgYmVjYXVzZSIsIm9wdGlvbnMiOlsiaGVyIGFwYXJ0bWVudCBkb2Vzblx1MjAxOXQgaGF2ZSBoZWF0LiIsImhlciBoZWF0ZXIgaGFzblx1MjAxOXQgYmVlbiBmaXhlZC4iLCJzaGUgaGFkIHRvIGJ1eSBhIHNtYWxsIGhlYXRlci4iLCJoZXIgYXBhcnRtZW50IGlzIG92ZXJoZWF0ZWQuIl0sImtleSI6Mn0seyJuIjoyLCJwcmUiOiJKYW5ldCBtZW50aW9ucyB0aGUgbG9jYWwgYnlsYXcgdG8iLCJvcHRpb25zIjpbInNob3cgdGhhdCBzaGVcdTIwMTlzIGEgbGF3eWVyLiIsInByb3ZlIHRoYXQgaGVyIHJlbnQgaXMgdG9vIGhpZ2guIiwiZ2V0IHBhaWQgZm9yIGhlciBoZWF0ZXIgcHVyY2hhc2UuIiwic3VwcG9ydCBoZXIgY29tcGxhaW50LiJdLCJrZXkiOjR9LHsibiI6MywicHJlIjoiSG93IGRvZXMgSmFuZXQgZmVlbD8iLCJvcHRpb25zIjpbImFubm95ZWQiLCJ3b3JyaWVkIiwicmVsaWV2ZWQiLCJzYWQiXSwia2V5IjoxfSx7Im4iOjQsInByZSI6IkphbmV0IHdyb3RlIHRoaXMgbGV0dGVyIHRvIiwib3B0aW9ucyI6WyJzb21lb25lIGF0IEpvaG5zb24gUmVhbHR5IE1hbmFnZW1lbnQuIiwic29tZW9uZSBhdCBHYXJkZW4gUGxhemEuIiwidGhlIHN1cGVyaW50ZW5kZW50IG9mIEdhcmRlbiBQbGF6YS4iLCJ0aGUgc3VwZXJ2aXNvciBvZiBKZWZmZXJzb24gUmVhbHR5IE1hbmFnZW1lbnQuIl0sImtleSI6MX0seyJuIjo1LCJwcmUiOiJBZnRlciBKYW5ldFx1MjAxOXMgZWFybGllciBjb21wbGFpbnRzLCB0aGUgc3VwZXJpbnRlbmRlbnQiLCJvcHRpb25zIjpbImNhbGxlZCBtYW5hZ2VtZW50LiIsImxlZnQgbWVzc2FnZXMgb24gSmFuZXRcdTIwMTlzIHBob25lLiIsInRyaWVkIHRvIG1ha2UgcmVwYWlycy4iLCJkaWQgbm90aGluZy4iXSwia2V5Ijo0fSx7Im4iOjYsInByZSI6IkphbmV0IGV4cGVjdHMgSm9obnNvbiBSZWFsdHkgdG8iLCJvcHRpb25zIjpbImZpeCBoZXIgaGVhdCB0b2RheS4iLCJwYXkgZm9yIGhlciBwb3J0YWJsZSBoZWF0ZXIuIiwiZ2V0IGluIHRvdWNoIHdpdGggaGVyLiIsIm1vdmUgaGVyIHRvIGEgbmV3IGFwYXJ0bWVudC4iXSwia2V5IjozfV19LHsidHlwZSI6ImNsb3plIiwiaW5zdHIiOiJIZXJlIGlzIGEgcmVzcG9uc2UgdG8gdGhlIG1lc3NhZ2UuIENvbXBsZXRlIHRoZSByZXNwb25zZSBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwiYm9keSI6WyJEZWFyIE1zLiBXaGl0ZSxcblxuTXkgc3RhZmYgcGFzc2VkIG9uIHRvIG1lIHlvdXIgbWVzc2FnZSByZWdhcmRpbmcgIix7ImIiOjcsIm9wdGlvbnMiOlsidGhlIHRlbXBlcmF0dXJlIGluIHlvdXIgYXBhcnRtZW50IiwidGhlIGNvbXBsYWludCBhYm91dCB5b3VyIGVsZWN0cmljaXR5IGJpbGwiLCJ5b3VyIHB1cmNoYXNlZCBlbGVjdHJpYyBoZWF0ZXIiLCJ5b3VyIHJlZmVyZW5jZSB0byB0aGUgbG9jYWwgYnlsYXciXSwia2V5IjoxfSwiLiBTdGVwcyBoYXZlIGFscmVhZHkgYmVlbiB0YWtlbiB0byBzb2x2ZSB0aGUgcHJvYmxlbSwgYW5kIGEgcmVwbGFjZW1lbnQgaGVhdGVyIGlzIG9uIG9yZGVyLiBJbW1lZGlhdGVseSBhZnRlciBpdCBhcnJpdmVzLCB3ZSB3aWxsIG1ha2UgYXJyYW5nZW1lbnRzIHdpdGggeW91IHRvICIseyJiIjo4LCJvcHRpb25zIjpbInJldHVybiIsInJlcGFpciIsImluc3RhbGwiLCJwdXJjaGFzZSJdLCJrZXkiOjN9LCIgaXQuXG5cblRoZXJlIGFyZSBzZXZlcmFsIGJyb2tlbiBoZWF0ZXIgdW5pdHMgaW4gR2FyZGVuIFBsYXphIGFwYXJ0bWVudHMuIFlvdXIgc3VwZXJpbnRlbmRlbnQgaGFzIHJlcG9ydGVkIHRoZXNlIGFuZCByZXF1ZXN0ZWQgcmVwbGFjZW1lbnRzLiBPdXIgdXN1YWxseSAiLHsiYiI6OSwib3B0aW9ucyI6WyJjb25zaWRlcmF0ZSIsImVmZmljaWVudCIsInRhbGthdGl2ZSIsIm92ZXItd29ya2VkIl0sImtleSI6Mn0sIiBzdGFmZiBoYXZlIGJlZW4gbGFpZCBsb3cgd2l0aCB0aGUgZmx1LiBIZW5jZSwgd2UgYXJlIG5vdCBjb21wbGV0aW5nIHdvcmsgYXQgb3VyIHVzdWFsIGZhc3QgcGFjZS4gSSBhcG9sb2dpemUgZm9yIHRoZSBpbmNvbnZlbmllbmNlLlxuXG5JIGNhbiBtZWV0IHdpdGggeW91IGFueSBhZnRlcm5vb24gbmV4dCB3ZWVrIHRvICIseyJiIjoxMCwib3B0aW9ucyI6WyJtYWtlIGFuIGFwb2xvZ3kiLCJyZWNlaXZlIGNvbXBlbnNhdGlvbiIsImRpc2N1c3MgdGhlIHNpdHVhdGlvbiIsInJldmlldyB0aGUgYnlsYXciXSwia2V5IjozfSwiLiBQbGVhc2UgdGVsZXBob25lIHRvIG1ha2UgYW4gYXBwb2ludG1lbnQuXG5cbkFsaWNlIEplZmZlcnNvblxuXG4iLHsiYiI6MTEsIm9wdGlvbnMiOlsiU2VjcmV0YXJ5IiwiSmFuaXRvciIsIlRlY2huaWNpYW4iLCJNYW5hZ2VyIl0sImtleSI6NH0sIlxuXG5Kb2huc29uIFJlYWx0eSBNYW5hZ2VtZW50Il19XX0seyJpZCI6MiwibmFtZSI6IlJlYWRpbmcgUGFydCAyOiBSZWFkaW5nIHRvIEFwcGx5IGEgRGlhZ3JhbSIsInRpbWUiOiI4IG1pbnV0ZXMiLCJwYXNzYWdlIjp7InR5cGUiOiJ0ZXh0IiwibGFiZWwiOiJSZWFkIHRoZSBmb2xsb3dpbmcgZGlhZ3JhbS4iLCJodG1sIjoiPHN0eWxlPi5hZS1lY3B7Ym9yZGVyOjFweCBzb2xpZCAjY2JkNWUxO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6MTRweDtiYWNrZ3JvdW5kOiNmZmZ9LmFlLWVjcGhlYWR7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo4cHggMTRweDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2I5MWMxY30uYWUtZWNwaHJze2ZvbnQtc2l6ZToxMS41cHg7bGluZS1oZWlnaHQ6MS40NTtjb2xvcjojMzM0MTU1fS5hZS1lY3B0aXRsZXt0ZXh0LWFsaWduOmNlbnRlcn0uYWUtZWNwdGl0bGUgaDN7bWFyZ2luOjA7Zm9udC1zaXplOjI0cHg7bGV0dGVyLXNwYWNpbmc6MXB4O2NvbG9yOiMxZjI5Mzd9LmFlLWVjcHRpdGxlIHB7bWFyZ2luOjJweCAwIDA7Y29sb3I6I2I5MWMxYztmb250LXdlaWdodDpib2xkO2ZvbnQtc3R5bGU6aXRhbGljfS5hZS1lY3B3ZWJ7Zm9udC1zaXplOjEycHg7Y29sb3I6I2I5MWMxYzt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDpib2xkfS5hZS1lY3B3ZWIgc3BhbntkaXNwbGF5OmJsb2NrO2NvbG9yOiMxZDRlZDg7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtmb250LXdlaWdodDpub3JtYWx9LmFlLWVjcGdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxcHg7YmFja2dyb3VuZDojY2JkNWUxfS5hZS1lY3Bib3h7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MTBweCAxMnB4fS5hZS1lY3Bib3ggaDR7bWFyZ2luOjAgMCA2cHg7Y29sb3I6IzE1ODAzZDtmb250LXNpemU6MTVweH0uYWUtZWNwYm94IHB7bWFyZ2luOjAgMCA2cHg7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS40NX0uYWUtZWNwYm94IHVse21hcmdpbjowIDAgNnB4O3BhZGRpbmctbGVmdDoxOHB4O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNDV9LmFlLWVjcHByaWNle2NvbG9yOiNiOTFjMWM7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXN0eWxlOml0YWxpYzt0ZXh0LWFsaWduOmNlbnRlcn0uYWUtZWNwZGVsaXZ7cGFkZGluZzo4cHggMTJweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxM3B4O2JvcmRlci10b3A6MXB4IHNvbGlkICNjYmQ1ZTF9LmFlLWVjcGxvY3N7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpO2dhcDo4cHg7cGFkZGluZzoxMHB4IDEycHg7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS40O2JhY2tncm91bmQ6I2Y4ZmFmYztib3JkZXItdG9wOjFweCBzb2xpZCAjY2JkNWUxfUBtZWRpYShtYXgtd2lkdGg6NTYwcHgpey5hZS1lY3Bncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9LmFlLWVjcGxvY3N7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnJ9fTwvc3R5bGU+PGRpdiBjbGFzcz1cImFlLWVjcFwiPjxkaXYgY2xhc3M9XCJhZS1lY3BoZWFkXCI+PGRpdiBjbGFzcz1cImFlLWVjcGhyc1wiPjxzdHJvbmc+PHU+SG91cnM8L3U+PC9zdHJvbmc+PGJyPk1vbjogQ0xPU0VEPGJyPlQmbmRhc2g7RjogMTAgYS5tLiZuZGFzaDsxMiBtaWRuaWdodDxicj5TYXQ6IDExIGEubS4mbmRhc2g7MiBhLm0uPGJyPlN1bjogMTEgYS5tLiZuZGFzaDsxMCBwLm0uPC9kaXY+PGRpdiBjbGFzcz1cImFlLWVjcHRpdGxlXCI+PGgzPkVhcnRoIENydXN0IFBpenphPC9oMz48cD5UaGlzIHdlZWsmcnNxdW87cyBzcGVjaWFsIHByb21vdGlvbnMhPC9wPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1lY3B3ZWJcIj5WaXNpdCB1cyBvbiB0aGUgd2ViITxzcGFuPnd3dy5lY3BpenphLmNvbTwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZWNwZ3JpZFwiPjxkaXYgY2xhc3M9XCJhZS1lY3Bib3hcIj48aDQ+U1BFQ0lBTFRZIFBJWlpBUzwvaDQ+PHA+PHU+Q2hvb3NlIGZyb206PC91PjwvcD48dWw+PGxpPjxzdHJvbmc+VmVnZXRhcmlhbjwvc3Ryb25nPiAodG9tYXRvZXMsIGdyZWVuIHBlcHBlcnMsIG11c2hyb29tcyk8L2xpPjxsaT48c3Ryb25nPkdyZWVrPC9zdHJvbmc+IChtdXNocm9vbXMsIG9uaW9ucywgZ3JlZW4gb25pb25zLCBmZXRhIGNoZWVzZSk8L2xpPjxsaT48c3Ryb25nPkNoZWVzZWJ1cmdlcjwvc3Ryb25nPiAoZ3JvdW5kIGJlZWYsIG9uaW9ucywgZXh0cmEgY2hlZXNlKTwvbGk+PC91bD48cCBjbGFzcz1cImFlLWVjcHByaWNlXCI+QU5ZIFRXTyBMQVJHRSBQSVpaQVMgRk9SICQzMDwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZWNwYm94XCI+PGg0PkZPVVIgQ09STkVSUyBQSVpaQTwvaDQ+PHA+PGVtPkZvciB0aG9zZSB3aG8gY2FuJnJzcXVvO3QgZGVjaWRlISBPbmUgcGl6emEgZGl2aWRlZCBpbnRvIGZvdXIgY29ybmVycywgZWFjaCB3aXRoIGl0cyBvd24gdG9wcGluZzo8L2VtPjwvcD48dWw+PGxpPlBlcHBlcm9uaSBhbmQgTXVzaHJvb208L2xpPjxsaT5IYW0gYW5kIFBpbmVhcHBsZTwvbGk+PGxpPlNhdXNhZ2UgYW5kIEdyZWVuIFBlcHBlcjwvbGk+PGxpPkdyZWVrPC9saT48L3VsPjxwIGNsYXNzPVwiYWUtZWNwcHJpY2VcIj5PTkxZICQxNjwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZWNwYm94XCI+PGg0PlBJWlpBIEJZIFRIRSBTTElDRTwvaDQ+PHA+PHU+Q2hvb3NlIGZyb206PC91PjwvcD48dWw+PGxpPlBlcHBlcm9uaTwvbGk+PGxpPkhhbSBhbmQgUGluZWFwcGxlPC9saT48bGk+VmVnZXRhcmlhbjwvbGk+PGxpPk1lYXQgTG92ZXJzPC9saT48bGk+SG90IGFuZCBTcGljeTwvbGk+PGxpPkJCUSBDaGlja2VuPC9saT48bGk+R3JlZWs8L2xpPjxsaT5UaHJlZSBDaGVlc2VzPC9saT48L3VsPjxwIGNsYXNzPVwiYWUtZWNwcHJpY2VcIj5PTkxZICQzLjk5IFBFUiBTTElDRSAoUElDSyBVUCBPTkxZKTwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZWNwYm94XCI+PGg0PkZBTUlMWSBDT01CTzwvaDQ+PHA+PHU+SW5jbHVkZXM6PC91PjwvcD48dWw+PGxpPjIgbGFyZ2UgMy10b3BwaW5nIHBpenphczwvbGk+PGxpPjEgMkwgYm90dGxlIG9mIGEgc29mdCBkcmluazwvbGk+PGxpPjEgc2lkZSBvZiBDYWVzYXIgc2FsYWQ8L2xpPjxsaT4xIHNpZGUgb2YgZ2FybGljIGJyZWFkPC9saT48L3VsPjxwIGNsYXNzPVwiYWUtZWNwcHJpY2VcIj5PTkxZICQzODwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZWNwYm94XCI+PGg0PlBBU1MgVEhFIFBBU1RBITwvaDQ+PHA+PGVtPkF2YWlsYWJsZSBhdCB0aGUgV29vZGxhbmQgbG9jYXRpb24gb25seS48L2VtPjwvcD48cD48dT5DaG9vc2UgZnJvbTo8L3U+PC9wPjx1bD48bGk+U3BhZ2hldHRpIHdpdGggTWVhdGJhbGxzPC9saT48bGk+TGFzYWduYSAoTWVhdCBvciBWZWdldGFyaWFuKTwvbGk+PGxpPkJha2VkIFJhdmlvbGk8L2xpPjxsaT5TZWFmb29kIExpbmd1aW5pPC9saT48L3VsPjxwIGNsYXNzPVwiYWUtZWNwcHJpY2VcIj4kNyBFQUNIIE9SIDMgRk9SICQxODwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZWNwYm94XCI+PGg0PlNJREUgT1JERVJTPC9oND48cD48dT5DaG9vc2UgZnJvbTo8L3U+PC9wPjx1bD48bGk+Q2Flc2FyIFNhbGFkPC9saT48bGk+R3JlZW4gU2FsYWQ8L2xpPjxsaT5HYXJsaWMgQnJlYWQ8L2xpPjxsaT5DaGlja2VuIFdpbmdzPC9saT48bGk+QkJRIFJpYnM8L2xpPjxsaT5CcmVhZCBTdGlja3M8L2xpPjxsaT5WZWdldGFibGUgUGxhdGU8L2xpPjwvdWw+PHAgY2xhc3M9XCJhZS1lY3BwcmljZVwiPiQyIEVBQ0ggV0lUSCBQVVJDSEFTRSBPRiBMQVJHRSBQSVpaQTwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZWNwZGVsaXZcIj5GcmVlIGRlbGl2ZXJ5IGFmdGVyIDUgcC5tLiB3aXRoaW4gYSA1LWtpbG9tZXRyZSByYWRpdXMgb24gYWxsIG9yZGVycyBvdmVyICQyMCEgMTAlIG9mZiBhbGwgcGlja3VwIG9yZGVycyE8L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZWNwbG9jc1wiPjxkaXY+PHN0cm9uZz5QYWNpZmljIENlbnRyZTwvc3Ryb25nPjxicj4jMzctMTUyNyBPY2VhbiBTdC48YnI+KDc3OSkgNTU1LTEzMjE8L2Rpdj48ZGl2PjxzdHJvbmc+T2FrcmlkZ2U8L3N0cm9uZz48YnI+IzEyLTM4MjAgV29vZHJ1ZmYgQXZlLjxicj4oNzc5KSA1NTUtMjQxMjwvZGl2PjxkaXY+PHN0cm9uZz5CcmFtcHRvbjwvc3Ryb25nPjxicj4jNTAtMTc2MDMgT3N3YWxkIFN0Ljxicj4oNzc5KSA1NTUtNDIxODwvZGl2PjxkaXY+PHN0cm9uZz5Xb29kbGFuZDwvc3Ryb25nPjxicj4zNjIwIFJlZHdvb2QgQXZlLjxicj4oNzc5KSA1NTUtNjM1MDwvZGl2PjwvZGl2PjwvZGl2PiJ9LCJibG9ja3MiOlt7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiUmVhZCB0aGUgZm9sbG93aW5nIGVtYWlsIG1lc3NhZ2UgYWJvdXQgdGhlIGRpYWdyYW0gb24gdGhlIGxlZnQuIENvbXBsZXRlIHRoZSBlbWFpbCBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwiYm9keSI6WyJTdWJqZWN0OiBNYXJ5XHUyMDE5cyBQYXJ0eVxuVG86IEplbm55IFNtaXRoIDxqc21pdGhAdHJlc3dlbGwuYmMuY2E+XG5Gcm9tOiBEYXJyZWxsIFNtaXRoIDxkc21pdGhAc3RlcmxpbmdzLmNhPlxuXG5IaSBKZW5ueSxcblxuTWFyeVx1MjAxOXMgYmlydGhkYXkgcGFydHkgaXMgdGhpcyBTYXR1cmRheSBldmVuaW5nLiBJIHRoaW5rIHRoYXQgb3JkZXJpbmcgRWFydGggQ3J1c3QgUGl6emEgd2lsbCBzYXZlIGEgbG90IG9mIHJ1bm5pbmcgYXJvdW5kIGFzIHRoZXJlIGlzICIseyJiIjoxLCJvcHRpb25zIjpbInBpY2sgdXAgdW50aWwgMiBhLm0uIiwiZnJlZSBkZWxpdmVyeSBhZnRlciA1IiwicGl6emEgYnkgdGhlIHNsaWNlIiwiYSBncmVhdCBkaXNjb3VudCJdLCJrZXkiOjJ9LCIuIEFsbCB3ZSBuZWVkIHRvIGRvIGlzIG9yZGVyLiBUaGV5IGFsc28gb2ZmZXIgc29tZSBnb29kIGRlYWxzLCBhbmQgdGhlaXIgcGl6emEgaXMgY2hlYXAgYW5kIHRhc3R5LlxuXG5NYXJ5IGhhcyBhIGZyaWVuZCB3aG8gZG9lc25cdTIwMTl0IGVhdCBtZWF0LCBzbyB3ZSBuZWVkIHRvIGluY2x1ZGUgYSAiLHsiYiI6Miwib3B0aW9ucyI6WyJHcmVlayIsImxpbmd1aW5pIiwicGVwcGVyb25pIiwic2F1c2FnZSJdLCJrZXkiOjF9LCIgb3IgVmVnZXRhcmlhbiBwaXp6YS4gRWFydGggQ3J1c3QgUGl6emEgYWxzbyBzZWxscyBwYXN0YSBhbmQgd2UgY2FuIG9yZGVyICIseyJiIjozLCJvcHRpb25zIjpbInNwYWdoZXR0aSIsImNoZWVzZWJ1cmdlcnMiLCJsYXNhZ25hIiwicmlicyJdLCJrZXkiOjN9LCIgd2l0aG91dCBtZWF0LiBBbHRlcm5hdGl2ZWx5LCB3ZSBjYW4gb3JkZXIgYSAiLHsiYiI6NCwib3B0aW9ucyI6WyJmYW1pbHkgY29tYm8iLCJzaWRlIG9yZGVyIG9mIHNhbGFkIiwiRm91ciBDb3JuZXJzIFBpenphIiwiTWVhdCBMb3ZlcnMgUGl6emEiXSwia2V5IjozfSwiIGFuZCBlbnN1cmUgdGhhdCBpdFx1MjAxOXMgb25lLXF1YXJ0ZXIgR3JlZWsuIElcdTIwMTlsbCBnaXZlIHRoZW0gYSBjYWxsIGFuZCBmaW5kIG91dC4gRmluYWxseSwgZm9yIGVhY2ggbGFyZ2UgcGl6emEgd2UgYnV5LCB3ZSBjYW4gYWxzbyBnZXQgIix7ImIiOjUsIm9wdGlvbnMiOlsiYSBzaWRlIG9mIHNwYWdoZXR0aSIsImEgYm90dGxlIG9mIHBvcCIsImV4dHJhIG1lYXQgdG9wcGluZ3MiLCJhbnkgc2lkZSBvcmRlciJdLCJrZXkiOjR9LCIgZGVsaXZlcmVkIHRvIHVzIGZvciB0d28gYnVja3MuXG5cbkxldCBtZSBrbm93IHdoYXQgeW91IHRoaW5rLlxuXG5EYXJyZWxsIl19LHsidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24uIiwiaXRlbXMiOlt7Im4iOjYsInByZSI6IkVhcnRoIENydXN0IFBpenphIiwib3B0aW9ucyI6WyJvZmZlcnMgZnJlZSBkZWxpdmVyeSB0byBhbnkgbG9jYXRpb24gaW4gdGhlIGNpdHkuIiwiZG9lcyBub3QgZGVsaXZlciBmcm9tIHRoZSBXb29kbGFuZCBsb2NhdGlvbi4iLCJvZmZlcnMgZnJlZSBkZWxpdmVyeSBhZnRlciAxMCBhLm0uIG9uIHdlZWtkYXlzLiIsIm9ubHkgb2ZmZXJzIGZyZWUgZGVsaXZlcnkgdG8gc29tZSBsb2NhdGlvbnMuIl0sImtleSI6NH0seyJuIjo3LCJwcmUiOiJUaGUgYWR2ZXJ0aXNlZCBwcmljZXMiLCJvcHRpb25zIjpbIm1pZ2h0IGNoYW5nZSBuZXh0IHdlZWsuIiwiZG8gbm90IGluY2x1ZGUgdmVnZXRhcmlhbiBpdGVtcy4iLCJtYXkgYmUgZGlmZmVyZW50IGF0IHNvbWUgbG9jYXRpb25zLiIsImFyZSBub3QgYXBwbGljYWJsZSBmb3IgcGlja3VwIG9yZGVycy4iXSwia2V5IjoxfSx7Im4iOjgsInByZSI6IkRhcnJlbGwgd2FudHMgdGhlIGZvb2QgZm9yIE1hcnlcdTIwMTlzIHBhcnR5IHRvIGJlIiwib3B0aW9ucyI6WyJ0b3AgcXVhbGl0eSBJdGFsaWFuIGZvb2QuIiwiaW5leHBlbnNpdmUgYW5kIGNvbnZlbmllbnQuIiwic3BlY2lhbCBhbmQgbWVtb3JhYmxlLiIsInBpenphIGFuZCBidXJnZXJzLiJdLCJrZXkiOjJ9XX1dfSx7ImlkIjozLCJuYW1lIjoiUmVhZGluZyBQYXJ0IDM6IFJlYWRpbmcgZm9yIEluZm9ybWF0aW9uIiwidGltZSI6IjkgbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBwYXNzYWdlLiIsImh0bWwiOiI8cD48c3Ryb25nPkEuPC9zdHJvbmc+IERlc3BpdGUgdGhlIGluY3JlYXNpbmcgcHJldmFsZW5jZSBvZiBwdXJjaGFzaW5nIGFuZCBiYW5raW5nIHRocm91Z2ggZWxlY3Ryb25pYyBtZWFucywgQ2FuYWRpYW4gYmFua25vdGVzJm1kYXNoO2NvbW1vbmx5IHJlZmVycmVkIHRvIGFzICZsZHF1bztjYXJyeWluZyBjYXNoJnJkcXVvOyZtZGFzaDtyZW1haW4gYW4gaW1wb3J0YW50IHBhcnQgb2YgQ2FuYWRpYW4gc29jaWV0eS4gSG93ZXZlciwgd2l0aCB0aGUgY29udmVuaWVuY2Ugb2YgY2FycnlpbmcgY2FzaCBhbHNvIGNvbWVzIHRoZSByaXNrIG9mIGNvdW50ZXJmZWl0aW5nLCBvciBwcm9kdWNpbmcgaW1pdGF0aW9uIGN1cnJlbmN5IHdpdGhvdXQgYXV0aG9yaXphdGlvbiBmcm9tIHRoZSBnb3Zlcm5tZW50LiBDb3VudGVyZmVpdGluZyBhY2NvdW50cyBmb3IgbWlsbGlvbnMgb2YgZG9sbGFycyBvZiBsb3NzZXMgdG8gQ2FuYWRpYW4gYnVzaW5lc3NlcyBhbmQgaW5kaXZpZHVhbHMgZWFjaCB5ZWFyLiBUbyBjb21iYXQgdGhpcyBwcm9ibGVtLCB0aGUgQmFuayBvZiBDYW5hZGEgaW50cm9kdWNlZCBuZXcgcG9seW1lciBiaWxscyBpbiAyMDEzLiBUaGVzZSBkdXJhYmxlIG5ldyBiaWxscyBhcmUgY29uc2lkZXJlZCB0byBiZSBzb21lIG9mIHRoZSBtb3N0IHNlY3VyZSBiYW5rbm90ZXMgaW4gdGhlIHdvcmxkLjwvcD48cD48c3Ryb25nPkIuPC9zdHJvbmc+IFRoZSBuZXcgc2VyaWVzIG9mIHBvbHltZXIgbm90ZXMgaXMgZGVzaWduZWQgaW4gYSB3YXkgd2hpY2ggaXMgbWVhbnQgdG8gcG9ydHJheSB0aGUgQ2FuYWRpYW4gc3Bpcml0IG9mIGlubm92YXRpb24gYW5kIHRvIGNlbGVicmF0ZSBDYW5hZGEmcnNxdW87cyBuYXRpb25hbCBhbmQgaW50ZXJuYXRpb25hbCBhY2hpZXZlbWVudHMuIEVhY2ggYmlsbCBkZXBpY3RzIGEgZGlmZmVyZW50IGlubm92YXRpb24gb3IgZXZlbnQgdGhhdCBoYXMgYmVlbiBhIGNydWNpYWwgYXNwZWN0IG9mIENhbmFkaWFuIGhpc3RvcnkuIFRoZSBmaXZlLWRvbGxhciBiaWxsLCBmb3IgZXhhbXBsZSwgaWxsdXN0cmF0ZXMgdGhlIENhbmFkYXJtMiZtZGFzaDthbiBpbXBvcnRhbnQgY29udHJpYnV0aW9uIG1hZGUgdG8gdGhlIEludGVybmF0aW9uYWwgU3BhY2UgU3RhdGlvbiBpbiBBcHJpbCwgMjAwMS4gVGhlIHR3ZW50eS1kb2xsYXIgYmlsbCBkZXBpY3RzIHRoZSBDYW5hZGlhbiBOYXRpb25hbCBWaW15IE1lbW9yaWFsIGluIGhvbm91ciBvZiB0aGUgc2FjcmlmaWNlcyBtYWRlIGJ5IENhbmFkaWFucyBkdXJpbmcgdGhlIEZpcnN0IFdvcmxkIFdhci4gVGhlIG9uZS1odW5kcmVkLWRvbGxhciBiaWxsIHNob3dzIGFuIGluc3VsaW4gYm90dGxlIHRvIGNvbW1lbW9yYXRlIHRoZSAxOTIyIGRpc2NvdmVyeSBvZiBpbnN1bGluIGFzIGEgdHJlYXRtZW50IGZvciBkaWFiZXRlcyBieSBDYW5hZGlhbiByZXNlYXJjaGVycy48L3A+PHA+PHN0cm9uZz5DLjwvc3Ryb25nPiBJbiBhZGRpdGlvbiB0byB2aXN1YWxseSByZXByZXNlbnRpbmcgQ2FuYWRhLCB0aGUgbmV3IHBvbHltZXIgYmlsbHMgYXJlIGFsc28gZGVzaWduZWQgdG8gYmUgbW9yZSBmdW5jdGlvbmFsIGFuZCBlbnZpcm9ubWVudGFsbHkgZnJpZW5kbHkuIFRoZSBiaWxscyBhcmUgYWJsZSB0byB3aXRoc3RhbmQgdGVtcGVyYXR1cmVzIHJhbmdpbmcgZnJvbSAtNzUgdG8gMTQwIGRlZ3JlZXMgQ2Vsc2l1cywgYXJlIGhhcmRlciB0byB0ZWFyLCBhbmQgZG8gbm90IGFic29yYiBtb2lzdHVyZSwgdGhlcmVieSBhbGxvd2luZyB0aGVtIHRvIGJlIHdpcGVkIGNsZWFuIHdpdGggYSBkYW1wIGNsb3RoLiBUaGVzZSBpbXByb3ZlbWVudHMgbWVhbiB0aGF0LCB3aGVuIHByb3Blcmx5IGhhbmRsZWQsIHRoZSBuZXcgYmlsbHMgbGFzdCB1cCB0byAyLjUgdGltZXMgbG9uZ2VyIHRoYW4gdGhlaXIgcGFwZXIgcHJlZGVjZXNzb3JzLiBUaGlzIGluY3JlYXNlZCBsaWZlc3BhbiBhbmQgYWJpbGl0eSB0byBiZSByZWN5Y2xlZCBtZWFucyB0aGF0IHBvbHltZXIgbm90ZXMgYWNjb21wbGlzaCB0aGUgaW1wb3J0YW50IGdvYWwgb2YgcmVkdWNpbmcgZW52aXJvbm1lbnRhbCBpbXBhY3QuPC9wPjxwPjxzdHJvbmc+RC48L3N0cm9uZz4gTW9zdCBpbXBvcnRhbnRseSwgdGhlIG5ldyBwb2x5bWVyIGJpbGxzIGluY2x1ZGUgYSB3aWRlIHJhbmdlIG9mIHNlY3VyaXR5IGZlYXR1cmVzIHRoYXQgYXJlIGVhc3kgdG8gdmVyaWZ5IGFuZCBkaWZmaWN1bHQgdG8gY291bnRlcmZlaXQuIFRoZXNlIGZlYXR1cmVzIGluY2x1ZGUgcmFpc2VkIGluayBsb2NhdGVkIGluIHZhcmlvdXMgcGxhY2VzIG9uIHRoZSBzdXJmYWNlIG9mIHRoZSBiaWxsLCB2aXN1YWwgZGV0YWlscyBzdWNoIGFzIHRyYW5zcGFyZW50IHRleHQgYW5kIG1ldGFsbGljIGZlYXR1cmVzLCBhbmQgaGlkZGVuIG51bWJlcnMgdGhhdCBjYW4gb25seSBiZSBkZXRlY3RlZCB1c2luZyBhbiBpbmNhbmRlc2NlbnQgbGlnaHQuIEhvd2V2ZXIsIGluIHNwaXRlIG9mIHRoZXNlIGlubm92YXRpdmUgZmVhdHVyZXMsIHRoZSBiZXN0IHNlY3VyaXR5IGFnYWluc3QgY291bnRlcmZlaXRpbmcgaXMgc3RpbGwgZWR1Y2F0aW9uLiBUaGlzIGlzIHdoeSBmcm9udC1saW5lIGVtcGxveWVlcyBpbiBDYW5hZGlhbiBidXNpbmVzc2VzIGFyZSB0YXVnaHQgdG8gYmUgYm90aCBkaWxpZ2VudCBhbmQgY2F1dGlvdXMgd2hlbiBkZWFsaW5nIGluIGNhc2ggdHJhbnNhY3Rpb25zLjwvcD48cD48c3Ryb25nPkUuPC9zdHJvbmc+IE5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIGFib3ZlIHBhcmFncmFwaHMuPC9wPiJ9LCJibG9ja3MiOlt7InR5cGUiOiJtYXRjaCIsImluc3RyIjoiRGVjaWRlIHdoaWNoIHBhcmFncmFwaCwgQSB0byBELCBoYXMgdGhlIGluZm9ybWF0aW9uIGdpdmVuIGluIGVhY2ggc3RhdGVtZW50IGJlbG93LiBTZWxlY3QgRSBpZiB0aGUgaW5mb3JtYXRpb24gaXMgbm90IGdpdmVuIGluIGFueSBvZiB0aGUgcGFyYWdyYXBocy4iLCJsZXR0ZXJzIjpbIkEiLCJCIiwiQyIsIkQiLCJFIl0sIml0ZW1zIjpbeyJuIjoxLCJ0ZXh0IjoiVGhlIG5ldyBiaWxscyBkaXNwbGF5IHZpc3VhbCByZXByZXNlbnRhdGlvbnMgb2YgaW1wb3J0YW50IGFjY29tcGxpc2htZW50cy4iLCJrZXkiOjJ9LHsibiI6MiwidGV4dCI6IlBvbHltZXIgbm90ZXMgY29udGFpbiBmZWF0dXJlcyB0aGF0IG1ha2UgdGhlbSBtb3JlIGR1cmFibGUgdGhhbiBwYXBlciBiaWxscy4iLCJrZXkiOjN9LHsibiI6MywidGV4dCI6IkJhbmtzIGFyZSB1bmFibGUgdG8gcmVpbWJ1cnNlIGJ1c2luZXNzZXMgZm9yIGxvc3NlcyBjYXVzZWQgYnkgY291bnRlcmZlaXRpbmcuIiwia2V5Ijo1fSx7Im4iOjQsInRleHQiOiJQb2x5bWVyIGJpbGxzIGNvbnRhaW4gaW1wcm92ZW1lbnRzIHRoYXQgaGVscCBwcmV2ZW50IGlsbGVnYWwgaW1pdGF0aW9ucy4iLCJrZXkiOjR9LHsibiI6NSwidGV4dCI6IkNhbmFkaWFucyB1c2UgbXVsdGlwbGUgZm9ybXMgb2YgcGF5bWVudCBpbiB0aGVpciBkYWlseSBsaXZlcy4iLCJrZXkiOjF9LHsibiI6NiwidGV4dCI6IlRoZSBmZWF0dXJlcyBvbiBwb2x5bWVyIGJpbGxzIHRvb2sgc2V2ZXJhbCB5ZWFycyB0byBkZXNpZ24gYW5kIGRldmVsb3AuIiwia2V5Ijo1fSx7Im4iOjcsInRleHQiOiJQb2x5bWVyIGJpbGxzIHdlcmUgZGV2ZWxvcGVkIGluIHJlc3BvbnNlIHRvIHNlY3VyaXR5IGNvbmNlcm5zLiIsImtleSI6MX0seyJuIjo4LCJ0ZXh0IjoiU3VydmVpbGxhbmNlIGJ5IGluZGl2aWR1YWxzIGlzIGFsc28gaW1wb3J0YW50IHRvIGNvbWJhdCBjb3VudGVyZmVpdGluZy4iLCJrZXkiOjR9LHsibiI6OSwidGV4dCI6IlBhcGVyIGJpbGxzIG9ubHkgaGF2ZSBoYWxmIG9mIHBvbHltZXIgYmlsbHNcdTIwMTkgc2VjdXJpdHkgZmVhdHVyZXMuIiwia2V5Ijo1fV19XX0seyJpZCI6NCwibmFtZSI6IlJlYWRpbmcgUGFydCA0OiBSZWFkaW5nIGZvciBWaWV3cG9pbnRzIiwidGltZSI6IjEyIG1pbnV0ZXMiLCJwYXNzYWdlIjp7InR5cGUiOiJ0ZXh0IiwibGFiZWwiOiJSZWFkIHRoZSBmb2xsb3dpbmcgYXJ0aWNsZSBmcm9tIGEgd2Vic2l0ZS4iLCJodG1sIjoiPHA+SW4gb3VyIGRpZ2l0YWxseSBtZWRpYXRlZCBhZ2UsIG1hbnkgcGVvcGxlIHNlZWtpbmcgZGlyZWN0IGNvbW11bmlvbiB3aXRoIGZlbGxvdyBodW1hbiBiZWluZ3MgaGF2ZSBqb2luZWQgb3V0ZG9vciBydW5uaW5nIGdyb3VwcywgeW91cnMgdHJ1bHkgYW1vbmcgdGhlbS4gSW50ZXJlc3RpbmdseSwgaXQgc2VlbXMgdGhhdCB0aGUgdHlwZSBvZiBydW5uaW5nIHRlcnJhaW4gaGFzIGFuIGltcGFjdCBvbiBmb3N0ZXJpbmcgZ2VudWluZSBodW1hbiBmZWxsb3dzaGlwLCBhbW9uZyBvdGhlciBiZW5lZml0cy48L3A+PHA+VGhlIENhbmFkaWFuIEFzc29jaWF0aW9uIG9mIFNwb3J0cyBhbmQgTW92ZW1lbnQgY2xhaW1zIHRoZSBjaG9pY2Ugb2YgdGVycmFpbiwgYmUgaXQgZGlydCB0cmFpbCBvciBoYXJkIHBhdmVtZW50LCBpcyBpbW1hdGVyaWFsLiBCdXQgc3BvcnRzIHRyYWluZXIgRGF2aWQgUm9nZXJzIHBvaW50cyBvdXQgdGhhdCBoaXAgYW5kIGtuZWUgam9pbnRzIHRoYXQgcm91dGluZWx5IHBvdW5kIG9uIGRpcnQgdHJhaWxzIHN1c3RhaW4gbGVzcyBjb21wcmVzc2lvbiBhbmQsIHRoZXJlZm9yZSwgZmV3ZXIgaW5qdXJpZXMgdGhhbiB0aG9zZSByb3V0aW5lbHkgc3ViamVjdGVkIHRvIHVueWllbGRpbmcgYXNwaGFsdC4gR3JhbnRlZCwgaGFiaXR1YWwgcGF2ZW1lbnQgcG91bmRlcnMgbWF5LCBvbiB0aGVpciBmaXJzdCBtb3VudGFpbiB0cmFpbCBydW5zLCBiZSBodW1ibGVkIGJ5IHRoZSBhZ2lsaXR5IGFuZCBjb25jZW50cmF0aW9uIHJlcXVpcmVkIHRvIG5hdmlnYXRlIGFyb3VuZCByb2NrcyBhbmQgdHJlZSByb290cy4gVHJhaWwgcnVubmluZyBoYXMgaXRzIGNoYWxsZW5nZXMsIGJ1dCBpdCBpcyBhIGhlYWx0aGllciBwdXJzdWl0IHRoYW4gcm9hZCBydW5uaW5nLiBBd2F5IGZyb20gdXJiYW4gYXV0b21vYmlsZSBleGhhdXN0LCBhIHRyYWlsJnJzcXVvO3MgbHVzaCBncmVlbmVyeSwgc3R1bm5pbmcgc2NlbmVyeSwgYW5kIGJvb3N0ZWQgb3h5Z2VuIGxldmVscyBhcmUgZXhoaWxhcmF0aW5nIGFuZCBwc3ljaG9sb2dpY2FsbHkgcmVzdG9yYXRpdmUuIEkmcnNxdW87bSBwYXJ0aWFsIHRvIHdoYXQmcnNxdW87cyBrbm93biBhcyB0aGUgYmlvcGhpbGlhIGh5cG90aGVzaXM6IHRoZSBkZXNpcmUgdG8gYWZmaWxpYXRlIHdpdGggbmF0dXJlIGlzIGlubmF0ZS48L3A+PHA+SSB0aGluayB3ZSBuZWVkIHRvIHRlbGwgdGhhdCB0byBzZWFyY2ggYW5kIHJlc2N1ZSBjb29yZGluYXRvciBTaW1vbiBFcmhvbHosIHdobyBpcyBvbiBwdWJsaWMgcmVjb3JkIGFzIHdpc2hpbmcgbW9yZSBydW5uZXJzIGhhZCBhbiBhZmZpbml0eSBmb3IgcGF2ZW1lbnQuIEVyaG9seiBoYXMgcHVibGljbHkgY2FzdGlnYXRlZCB0aGUgbWFueSBub3ZpY2UgdHJhaWwgcnVubmVycyB3aG8mcnNxdW87dmUgZmFsbGVuIG9yIGxvc3QgdGhlaXIgd2F5IGFuZCBjYWxsZWQgZm9yIHJlc2N1ZS4gSW4gdGhpcyByZWdhcmQsIGl0JnJzcXVvO3MgdW5kZXJzdGFuZGFibGUgd2h5IHNvIG1hbnkgbWFyYXRob25lcnMgb3B0IHRvIHRyYWluIG9uIGFzcGhhbHQuICZsZHF1bztJdCZyc3F1bztzIG5vdCB0aGF0IEkgZG9uJnJzcXVvO3Qgd2FudCB0byBhZG1pcmUgTW90aGVyIE5hdHVyZSB3aGlsZSBJJnJzcXVvO20gcnVubmluZzsgSSBqdXN0IHdhbnQgdG8gcHV0IGluIG15IGRhaWx5IDEwIGtpbG9tZXRyZXMgd2l0aCBtaW5pbWFsIGNoYW5jZSBvZiBhIGZhY2UgcGxhbnQsJnJkcXVvOyBzYXlzIG1hcmF0aG9uZXIgTml0YSBHaWxsLiAmbGRxdW87QWxzbywgcnVubmluZyBuZWFyIG15IGRvd250b3duIGNvbmRvIGdpdmVzIG1lIGEgc2Vuc2UgSSZyc3F1bzttIGJlaW5nIG1vbml0b3JlZCBpbiBhIGdvb2Qgd2F5LiZyZHF1bzs8L3A+PHA+TWVtbyB0byBOaXRhOiBTYWZldHksIGxpa2UgYmVhdXR5LCBpcyBpbiB0aGUgZXllIG9mIHRoZSBiZWhvbGRlci4gSWYgeW91IGZhbGwgaW4gYSByb2FkIHJhY2UsIHBhcnRpY2lwYW50cyB3aWxsIGhvcCBvdmVyIHlvdSwgc2luZ2xlLW1pbmRlZGx5IGZpeGF0ZWQgb24gdGhlIGZpbmlzaCBsaW5lLiBCdXQgaW4gYSB0cmFpbCByYWNlLCB0aGV5JnJzcXVvO2xsIHN0b3AgYW5kIGNhcnJ5IHlvdSB0byB0aGUgbmVhcmVzdCBmaXJzdCBhaWQgc3RhdGlvbi4gVG8gbWUsIGlmIHRoYXQmcnNxdW87cyBub3Qgc291bC1yZXN0b3JpbmcgY29tbXVuaW9uIHdpdGggaHVtYW5pdHksIEkgZG9uJnJzcXVvO3Qga25vdyB3aGF0IGlzLjwvcD4ifSwiYmxvY2tzIjpbeyJ0eXBlIjoic3RlbWxpc3QiLCJpbnN0ciI6IlVzaW5nIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKSwgY2hvb3NlIHRoZSBiZXN0IG9wdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGluZm9ybWF0aW9uIGdpdmVuIG9uIHRoZSB3ZWJzaXRlLiIsIml0ZW1zIjpbeyJuIjoxLCJwcmUiOiJXaGF0IGlzIHRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBhcnRpY2xlPyIsIm9wdGlvbnMiOlsidG8gY2hhbGxlbmdlIGV4cGVydCBvcGluaW9ucyIsInRvIHNob3cgdGhlIGRhbmdlcnMgb2YgbWFyYXRob25zIiwidG8gcHJvbW90ZSB0aGUgd3JpdGVyXHUyMDE5cyBob2JieSIsInRvIGRlc2NyaWJlIGEgbmV3IGZpdG5lc3MgdHJlbmQiXSwia2V5IjozfSx7Im4iOjIsInByZSI6IkFjY29yZGluZyB0byB0aGUgYXJ0aWNsZSwgd2h5IGlzIHJ1bm5pbmcgcG9wdWxhciBub3dhZGF5cz8iLCJvcHRpb25zIjpbIkl0IGNhbiBiZSB0cmFja2VkIHdpdGggdGVjaG5vbG9neS4iLCJJdCBlbmNvdXJhZ2VzIHNvY2lhbCBpbnRlcmFjdGlvbi4iLCJJdCBjYW4gYmUgZG9uZSBpbiB2YXJpb3VzIGxvY2F0aW9ucy4iLCJJdCBmb3N0ZXJzIGJldHRlciBvdmVyYWxsIGhlYWx0aC4iXSwia2V5IjoyfSx7Im4iOjMsInByZSI6IldoaWNoIHRoZW9yeSBkb2VzIHRoZSBhdXRob3Igc3RhdGUgYWdyZWVtZW50IHdpdGg\/Iiwib3B0aW9ucyI6WyJNb3N0IHBlb3BsZSBwcmVmZXIgcnVubmluZyBpbiBvdXRkb29yIHNldHRpbmdzLiIsIlBlb3BsZSByZXF1aXJlIGh1bWFuIGFmZmlsaWF0aW9ucyBmb3Igc3Vydml2YWwuIiwiUGVvcGxlIGluc3RpbmN0aXZlbHkgY3JhdmUgbmF0dXJhbCBzdXJyb3VuZGluZ3MuIiwiTW9zdCBwZW9wbGUgZW5qb3kgdGhlIHNvbGl0dWRlIG9mIHRoZSBmb3Jlc3QuIl0sImtleSI6M30seyJuIjo0LCJwcmUiOiJXaGF0IGlzIHRydWUgYWJvdXQgTml0YSBHaWxsPyIsIm9wdGlvbnMiOlsiU2hlIGNvbnNpZGVycyB0cmFpbCBydW5uaW5nIGEgdGVkaW91cyBleGVyY2lzZS4iLCJTaGUgcHJpb3JpdGl6ZXMgdHJhY2sgcHJlZGljdGFiaWxpdHkgb3ZlciBzY2VuZXJ5LiIsIlNoZSBjYWxscyBmb3IgaW5jcmVhc2VkIHN1cnZlaWxsYW5jZSBmb3IgcnVubmVycy4iLCJTaGUgc3RyaXZlcyB0byBzdXJwYXNzIGhlciBkYWlseSBydW5uaW5nIHRhcmdldC4iXSwia2V5IjoyfSx7Im4iOjUsInByZSI6IldoYXQgZG9lcyB0aGUgYXV0aG9yIHN1Z2dlc3Q\/Iiwib3B0aW9ucyI6WyJSb2FkIHJhY2luZyBmb3N0ZXJzIHJlYWwgaHVtYW4gZmVsbG93c2hpcC4iLCJUcmFpbCBydW5uZXJzIGFyZSBzdHJvbmdlciBjb21wZXRpdG9ycy4iLCJSYWNlIHdpbm5pbmcgaXMgcGFyYW1vdW50IGZvciB0cmFpbCBydW5uZXJzLiIsIkhpZ2hlciBzYWZldHkgZm9yIHJvYWQgcnVubmVycyBpcyBhIG15dGguIl0sImtleSI6NH1dfSx7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiVGhlIGZvbGxvd2luZyBpcyBhIGNvbW1lbnQgYnkgYSB2aXNpdG9yIHRvIHRoZSB3ZWJzaXRlIHBhZ2UuIENvbXBsZXRlIHRoZSBjb21tZW50IGJ5IGNob29zaW5nIHRoZSBiZXN0IG9wdGlvbiB0byBmaWxsIGluIGVhY2ggYmxhbmsuIiwiYm9keSI6WyJJXHUyMDE5bSBhIHNpZGV3YWxrIGpvZ2dlciwgYW5kIG15IGludGVyZXN0IHdhcyBjZXJ0YWlubHkgcGlxdWVkIGJ5IHRoaXMgYXJ0aWNsZS4gSW4gZ2VuZXJhbCwgSSBoYWQgbWl4ZWQgcmVhY3Rpb25zIHRvIHdoYXQgd2FzIHNhaWQuIFByb3ZpZGVkIG9uZSBicmluZ3MgdGhlIHByb3BlciBlcXVpcG1lbnQgYW5kIHRha2VzIGFwcHJvcHJpYXRlIHByZWNhdXRpb25zLCBpdCBpcywgYXMgb25lIG9mIHRoZSBhdXRob3JcdTIwMTlzIHNvdXJjZXMgcG9pbnRzIG91dCwgIix7ImIiOjYsIm9wdGlvbnMiOlsiaXJyZWxldmFudCB3aGVyZSBzb21lb25lIGNob29zZXMgdG8gcnVuIiwiaW1wb3J0YW50IHRvIHJ1biB3aXRob3V0IGRpZ2l0YWwgZGV2aWNlcyIsImNsZWFyIHRoYXQgcnVubmluZyBsZWFkcyB0byBlbW90aW9uYWwgaGVhbHRoIiwic2FmZXN0IHRvIGFsdGVybmF0ZSB3YWxraW5nIHdpdGggcnVubmluZyJdLCJrZXkiOjF9LCIuIElcdTIwMTl2ZSBoaXQgdGhlIHRyYWlscyBvbiBzZXZlcmFsIG9jY2FzaW9ucywgd2hlcmUsIGFzIHRoZSBhdXRob3IgaW1wbGllcywgdGhlICIseyJiIjo3LCJvcHRpb25zIjpbIndlYXRoZXIiLCJhaXIgcXVhbGl0eSIsImdyb3VwIGNvbXBvc2l0aW9uIiwiZ3JvdW5kIHVuZGVyZm9vdCJdLCJrZXkiOjR9LCIgaXMgY29uc3RhbnRseSBjaGFuZ2luZywgZm9yY2luZyB5b3UgdG8gc3RheSBpbiB0aGUgbW9tZW50LiBJIGRvIGFncmVlIHdpdGggUm9nZXJzIHRoYXQgIix7ImIiOjgsIm9wdGlvbnMiOlsicnVubmVycyBuZWVkIHRvIGVuam95IHRoZSBzY2VuZXJ5IiwidHJhaWwgcnVubmluZyBpcyBlYXNpZXIgb24gdGhlIGJvZHkiLCJwZW9wbGUgbmVlZCB0byBhc3Nlc3MgdGhlIHJpc2tzIiwiYWxsIHJ1bm5pbmcgY2FuIGJlIG1vbm90b25vdXMiXSwia2V5IjoyfSwiLiBIb3dldmVyLCBOaXRhIEdpbGwgc2VydmVzIHRvIHJlbWluZCBtZSB0aGF0IEkgd291bGQgc3RpbGwgYmUgIix7ImIiOjksIm9wdGlvbnMiOlsibGVzcyBhZ2lsZSBvbiB0aGUgcm9hZCIsIm1vcmUgY29uZmlkZW50IG9uIHRoZSB0cmFpbHMiLCJsZXNzIGxvbmVseSBvbiB0aGUgcm9hZCIsIm1vcmUgdnVsbmVyYWJsZSBvbiB0aGUgdHJhaWxzIl0sImtleSI6NH0sIi4gRmluYWxseSwgSSBkbyB3YW50IHRvIGFkZHJlc3MgdGhlIGF1dGhvclx1MjAxOXMgdW5jaGFyaXRhYmxlIGNvbW1lbnRzIGFib3V0IHJvYWQgcnVubmVycy4gSSBmZWVsIHRoYXQgaXRcdTIwMTlzIHByZXN1bXB0dW91cyBvZiB0aGUgYXV0aG9yIHRvIGNoYXJhY3Rlcml6ZSB0aGVtIGFzICIseyJiIjoxMCwib3B0aW9ucyI6WyJhZ2dyZXNzaXZlIiwiaW5kaWZmZXJlbnQiLCJ1bmluZm9ybWVkIiwianVkZ21lbnRhbCJdLCJrZXkiOjJ9LCIgd2hlbiBvdGhlciBjb21wZXRpdG9ycyBhcmUgaW5qdXJlZC4iXX1dfV19OwoKZnVuY3Rpb24gY2xiRXN0aW1hdGVSKHJhdyl7CiAgaWYgKHJhdyA+PSAzNSkgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCAxMFx1MjAxMzEyJywgbm90ZTonQWR2YW5jZWQgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAzMCkgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA5JywgIG5vdGU6J0VmZmVjdGl2ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDI3KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDgnLCAgbm90ZTonR29vZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDIyKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDcnLCAgbm90ZTonQWRlcXVhdGUgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAxNykgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA2JywgIG5vdGU6J0RldmVsb3BpbmcgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAxMSkgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA1JywgIG5vdGU6J0FjcXVpcmluZyBwcm9maWNpZW5jeScgfTsKICByZXR1cm4geyBsZXZlbDonQ0VMUElQIDQgb3IgYmVsb3cnLCBub3RlOidLZWVwIHByYWN0aWNpbmchJyB9Owp9CgooZnVuY3Rpb24oKXsKICAvKiAtLS0tIGluamVjdCBzY29wZWQgQ1NTIChXb3JkUHJlc3Mtc2FmZTogPHN0eWxlPiBpbiBjb250ZW50IGNhbiBiZSBzdHJpcHBlZCkgLS0tLSAqLwogIHZhciBDU1MgPSBgCi5jbHByLXdyYXB7LS1uYXZ5OiMwNTBFMjA7LS1iOTAwOiMwRDIzNTI7LS1iNzAwOiMxMjQ1QTg7LS1iNTAwOiMyNTYzRUI7LS1iNDAwOiMzQjgyRjY7LS1iMjAwOiM5M0M1RkQ7LS1iMTAwOiNEQkVBRkU7LS1iNTA6I0VGRjZGRjstLXRlYWw6IzBEOTQ4ODstLWN5YW46IzA2QjZENDstLWdyZWVuOiMxMEI5ODE7LS1ncmVlbjUwOiNFQ0ZERjU7LS1yb3NlOiNGNDNGNUU7LS10ZXh0OiMwRjE3MkE7LS1tdXRlZDojNDc1NTY5Oy0tc3VidGxlOiM5NEEzQjg7LS1ib3JkZXI6I0UyRThGMDstLWJhci1iZzojRThFQkVGOy0tYmFyLWJvcmRlcjojRDNEOUUwOy0tYmFyLXRleHQ6IzFGMjkzNzstLXBhbmVsLXAtYmc6I0Y0RjVGNzstLXBhbmVsLXAtYm9yZGVyOiNFM0U2RUE7LS1wYW5lbC1xLWJnOiNFOUY0Rjc7LS1wYW5lbC1xLWJvcmRlcjojRDZFOEVEOy0tZGQtb3Blbi1iZzojQ0JFQkY0O2ZvbnQtZmFtaWx5OidQbHVzIEpha2FydGEgU2Fucycsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sU2Vnb2UgVUksUm9ib3RvLHNhbnMtc2VyaWY7Y29sb3I6dmFyKC0tdGV4dCk7bWF4LXdpZHRoOjExODBweDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MTZweCAxNnB4IDU2cHg7bGluZS1oZWlnaHQ6MS41O2ZvbnQtc2l6ZToxNnB4O30KLmNscHItd3JhcCAqLC5jbHByLXdyYXAgKjo6YmVmb3JlLC5jbHByLXdyYXAgKjo6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94O30KLmNscHItd3JhcCBidXR0b257Zm9udC1mYW1pbHk6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjt9Ci5jbHByLXdyYXAgaDEsLmNscHItd3JhcCBoMiwuY2xwci13cmFwIGgzLC5jbHByLXdyYXAgcHttYXJnaW46MDt9Ci5jbHByLWhlcm97cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MjJweDtiYWNrZ3JvdW5kOnZhcigtLW5hdnkpO2NvbG9yOiNmZmY7cGFkZGluZzozNHB4IDM4cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTNweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2JveC1zaGFkb3c6MCAyMHB4IDQwcHggLTIwcHggcmdiYSg1LDE0LDMyLC40NSk7fQouY2xwci1hdXJvcmF7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO30KLmNscHItYXVyb3JhIHNwYW57cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztib3JkZXItcmFkaXVzOjUwJTtmaWx0ZXI6Ymx1cig0NnB4KTtvcGFjaXR5Oi41NTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgxKXt3aWR0aDo0MjBweDtoZWlnaHQ6NDIwcHg7bGVmdDotMTIwcHg7dG9wOi0yMDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzEyNDVBOCAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDIpe3dpZHRoOjM4MHB4O2hlaWdodDozODBweDtyaWdodDotODBweDt0b3A6LTE2MHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMEQ5NDg4IDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMyl7d2lkdGg6MzQwcHg7aGVpZ2h0OjM0MHB4O3JpZ2h0OjIyJTtib3R0b206LTI0MHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1oZXJvLWJhZGdlc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO30KLmNscHItYmFkZ2UtYnJhbmR7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLWI5MDApO2ZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTNweDtwYWRkaW5nOjRweCAxMXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7bGV0dGVyLXNwYWNpbmc6LjAxZW07fQouY2xwci1iYWRnZS1zZXR7Y29sb3I6dmFyKC0tYjIwMCk7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NjAwO30KLmNscHItaGVybyBoMXtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6Y2xhbXAoMjZweCw0dncsNDBweCk7Zm9udC13ZWlnaHQ6ODAwO2xldHRlci1zcGFjaW5nOi0uMDJlbTtsaW5lLWhlaWdodDoxLjEyO30KLmNscHItaGVyby1zdWJ7cG9zaXRpb246cmVsYXRpdmU7Y29sb3I6I0M3RDJFMztmb250LXNpemU6MTQuNXB4O21heC13aWR0aDo3NjBweDt9Ci5jbHByLWhlcm8tY2hpcHN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fQouY2xwci1jaGlwe2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiNFNUVFRkI7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOCk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNik7cGFkZGluZzo1cHggMTFweDtib3JkZXItcmFkaXVzOjk5OXB4O30KLmNscHItY3Rhe3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi10b3A6NnB4O2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE1cHg7cGFkZGluZzoxMnB4IDIycHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JveC1zaGFkb3c6MCAxMnB4IDI0cHggLTEwcHggcmdiYSgzNyw5OSwyMzUsLjgpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMsYmFja2dyb3VuZCAuMTVzO30KLmNscHItY3RhOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO2JhY2tncm91bmQ6dmFyKC0tYjQwMCk7fQouY2xwci10b29sYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxOHB4O3BhZGRpbmc6MTBweCAxNHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxNHB4O2JveC1zaGFkb3c6MCA2cHggMThweCAtMTJweCByZ2JhKDE1LDIzLDQyLC4yNSk7cG9zaXRpb246c3RpY2t5O3RvcDo4cHg7ei1pbmRleDozMDt9Ci5jbHByLXRvb2xiYXJbaGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci10b29sYmFyLXNwYWNlcntmbGV4OjE7fQouY2xwci1zY29yZS1jaGlwe2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iOTAwKTtiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iMTAwKTtwYWRkaW5nOjZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7fQouY2xwci10YnRue2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Y29sb3I6dmFyKC0tdGV4dCk7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6OHB4IDE1cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4xMnMsYm94LXNoYWRvdyAuMTJzO30KLmNscHItdGJ0bjpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNnB4IDE0cHggLThweCByZ2JhKDE1LDIzLDQyLC4zKTt9Ci5jbHByLXRidG4tY2hlY2t7YmFja2dyb3VuZDp2YXIoLS1ncmVlbik7Ym9yZGVyLWNvbG9yOnZhcigtLWdyZWVuKTtjb2xvcjojZmZmO30KLmNscHItdGJ0bi1jaGVjazpob3ZlcntiYWNrZ3JvdW5kOiMwY2E2Nzg7fQouY2xwci10YnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZTtib3gtc2hhZG93Om5vbmU7fQouY2xwci1zaW17bWFyZ2luLXRvcDoxNnB4O30KLmNscHItc2ltW2hpZGRlbl17ZGlzcGxheTpub25lO30KLmNscHItZG90c3tkaXNwbGF5OmZsZXg7Z2FwOjhweDttYXJnaW46MCAwIDEycHggMnB4O2ZsZXgtd3JhcDp3cmFwO30KLmNscHItZG90e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo3cHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tbXV0ZWQpO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZzo2cHggMTJweDtib3JkZXItcmFkaXVzOjk5OXB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4xNXM7fQouY2xwci1kb3QgYntkaXNwbGF5OmlubGluZS1mbGV4O3dpZHRoOjE5cHg7aGVpZ2h0OjE5cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1iMTAwKTtjb2xvcjp2YXIoLS1iOTAwKTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTFweDt9Ci5jbHByLWRvdC5jbHByLWN1cntiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2JvcmRlci1jb2xvcjp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO30KLmNscHItZG90LmNscHItY3VyIGJ7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4yNSk7Y29sb3I6I2ZmZjt9Ci5jbHByLWRvdC5jbHByLWRvbmUgYntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTtjb2xvcjojZmZmO30KLmNscHItY2F0e2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzowIDEwcHggMzBweCAtMThweCByZ2JhKDE1LDIzLDQyLC40KTt9Ci5jbHByLWJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3BhZGRpbmc6MTFweCAxNnB4O2JhY2tncm91bmQ6dmFyKC0tYmFyLWJnKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLWJhci10aXRsZXtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYmFyLXRleHQpO2ZsZXg6MTttaW4td2lkdGg6MDt9Ci5jbHByLWJhci10aW1lcntmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1iYXItdGV4dCk7d2hpdGUtc3BhY2U6bm93cmFwO30KLmNscHItYmFyLXRpbWVyIGJ7Zm9udC13ZWlnaHQ6ODAwO30KLmNscHItY29sc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjA7fQouY2xwci1wYXNzYWdle3BhZGRpbmc6MjBweCAyMnB4O2JhY2tncm91bmQ6dmFyKC0tcGFuZWwtcC1iZyk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7bWF4LWhlaWdodDoxMjAwcHg7b3ZlcmZsb3c6YXV0bzt9Ci5jbHByLXFjb2x7cGFkZGluZzoxOHB4IDIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbC1xLWJnKTttYXgtaGVpZ2h0OjEyMDBweDtvdmVyZmxvdzphdXRvO30KLmNscHItcGxhYmVsLC5jbHByLWluc3Rye2Rpc3BsYXk6ZmxleDtnYXA6OXB4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO21hcmdpbi1ib3R0b206MTJweDt9Ci5jbHByLXBsYWJlbDo6YmVmb3JlLC5jbHByLWluc3RyOjpiZWZvcmV7Y29udGVudDoiaSI7ZmxleDpub25lO3dpZHRoOjE3cHg7aGVpZ2h0OjE3cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjgwMDtmb250LXN0eWxlOml0YWxpYztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDoxcHg7fQouY2xwci1wYXNzYWdlIHB7Zm9udC1zaXplOjE0LjVweDtjb2xvcjojMWUyYTNhO21hcmdpbi1ib3R0b206MTFweDtsaW5lLWhlaWdodDoxLjcyO30KLmNscHItcGltZ3t3aWR0aDoxMDAlO2hlaWdodDphdXRvO2JvcmRlcjoxcHggc29saWQgdmFyKC0tcGFuZWwtcC1ib3JkZXIpO2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2ZmZjtkaXNwbGF5OmJsb2NrO30KLmNscHItYmxvY2t7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tcGFuZWwtcS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjE2cHggMTZweDttYXJnaW4tYm90dG9tOjE2cHg7fQouY2xwci1zdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDtmb250LXNpemU6MTVweDtjb2xvcjp2YXIoLS10ZXh0KTtwYWRkaW5nOjlweCAwO2xpbmUtaGVpZ2h0OjEuNzt9Ci5jbHByLXN0ZW0gKyAuY2xwci1zdGVte2JvcmRlci10b3A6MXB4IGRhc2hlZCAjRTZFREYxO30KLmNscHItc251bXtmb250LXdlaWdodDo4MDA7Y29sb3I6dmFyKC0tYjcwMCk7fQouY2xwci1jbG96ZXtmb250LXNpemU6MTVweDtjb2xvcjp2YXIoLS10ZXh0KTtsaW5lLWhlaWdodDoyLjE1O30KLmNscHItY2xvemUgLmNscHItcGFyYXttYXJnaW4tYm90dG9tOjEycHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7fQouY2xwci1tYXRjaC1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjEycHg7cGFkZGluZzoxMXB4IDA7Zm9udC1zaXplOjE0LjVweDtsaW5lLWhlaWdodDoxLjY7fQouY2xwci1tYXRjaC1yb3cgKyAuY2xwci1tYXRjaC1yb3d7Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNFNkVERjE7fQouY2xwci1tYXRjaC1yb3cgLmNscHItc251bXttYXJnaW4tdG9wOjVweDt9Ci8qIGRyb3Bkb3duIHdpZGdldCAqLwouY2xwci1kZHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MnB4IDJweDt9Ci5jbHByLWRkLWJ0bntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O21pbi13aWR0aDo2NHB4O21heC13aWR0aDozNDBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjQjdDMkNFO2JvcmRlci1yYWRpdXM6NnB4O3BhZGRpbmc6NXB4IDlweDtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLXRleHQpO2xpbmUtaGVpZ2h0OjEuMzU7dGV4dC1hbGlnbjpsZWZ0O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTJzLGJvcmRlci1jb2xvciAuMTJzO30KLmNscHItZGQtYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fQouY2xwci1kZC5jbHByLW9wZW4gLmNscHItZGQtYnRue2JhY2tncm91bmQ6dmFyKC0tZGQtb3Blbi1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWI0MDApO30KLmNscHItZGQtdHh0e2ZsZXg6MTttaW4td2lkdGg6MDt9Ci5jbHByLWRkLXR4dC5jbHByLWVtcHR5e2NvbG9yOnZhcigtLXN1YnRsZSk7bGV0dGVyLXNwYWNpbmc6M3B4O30KLmNscHItZGQtY2FyZXR7Zm9udC1zaXplOjlweDtjb2xvcjp2YXIoLS1iNzAwKTtmbGV4Om5vbmU7fQouY2xwci1kZC1tZW51e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NjA7dG9wOmNhbGMoMTAwJSArIDRweCk7bGVmdDowO21pbi13aWR0aDoyNDBweDttYXgtd2lkdGg6MzYwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0M2RDBEQTtib3JkZXItcmFkaXVzOjhweDtib3gtc2hhZG93OjAgMTZweCAzNHB4IC0xMnB4IHJnYmEoMTUsMjMsNDIsLjQpO3BhZGRpbmc6NXB4O2Rpc3BsYXk6bm9uZTt9Ci5jbHByLWRkLmNscHItb3BlbiAuY2xwci1kZC1tZW51e2Rpc3BsYXk6YmxvY2s7fQouY2xwci1kZC1vcHR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjlweDtwYWRkaW5nOjhweCA5cHg7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS10ZXh0KTtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjQ7fQouY2xwci1kZC1vcHQ6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO30KLmNscHItZGQtb3B0IC5jbHByLXJhZGlve2ZsZXg6bm9uZTt3aWR0aDoxNXB4O2hlaWdodDoxNXB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxLjVweCBzb2xpZCAjOUFBN0I0O21hcmdpbi10b3A6MXB4O30KLmNscHItZGQtb3B0LmNscHItc2VsIC5jbHByLXJhZGlve2JvcmRlci1jb2xvcjp2YXIoLS1iNTAwKTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzI1NjNFQiA0MiUsI2ZmZiA0NyUpO30KLmNscHItZGQuY2xwci1yaWdodCAuY2xwci1kZC1idG57YmFja2dyb3VuZDp2YXIoLS1ncmVlbjUwKTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWdyZWVuKTtjb2xvcjojMDQ3ODU3O30KLmNscHItZGQuY2xwci13cm9uZyAuY2xwci1kZC1idG57YmFja2dyb3VuZDojRkZGMUYyO2JvcmRlcjoycHggc29saWQgdmFyKC0tcm9zZSk7Y29sb3I6I0JFMTIzQzt9Ci5jbHByLXNvbHZlZHtkaXNwbGF5Om5vbmU7bWFyZ2luLWxlZnQ6N3B4O2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwNDc4NTc7fQouY2xwci1kZC5jbHByLXdyb25nIC5jbHByLXNvbHZlZHtkaXNwbGF5OmlubGluZTt9Ci5jbHByLW5hdntkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxNHB4IDE4cHg7YmFja2dyb3VuZDp2YXIoLS1iYXItYmcpO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItbmF2YnRue2JhY2tncm91bmQ6dmFyKC0tYjkwMCk7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzLjVweDtwYWRkaW5nOjlweCAyMHB4O2JvcmRlci1yYWRpdXM6OXB4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4xMnMsYmFja2dyb3VuZCAuMTJzO30KLmNscHItbmF2YnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYjcwMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7fQouY2xwci1uYXZidG4uY2xwci1naG9zdHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tbXV0ZWQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1uYXZidG5bZGlzYWJsZWRde29wYWNpdHk6LjQ7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lO30KLmNscHItcmVzdWx0c3ttYXJnaW4tdG9wOjE4cHg7fQouY2xwci1yZXN1bHRzW2hpZGRlbl17ZGlzcGxheTpub25lO30KLmNscHItcmVzLWNhcmR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE4cHg7cGFkZGluZzoyNHB4IDI2cHg7Ym94LXNoYWRvdzowIDE2cHggNDBweCAtMjJweCByZ2JhKDE1LDIzLDQyLC40KTt9Ci5jbHByLXJlcy10b3B7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MjBweDtmbGV4LXdyYXA6d3JhcDt9Ci5jbHByLXJlcy1zY29yZXtmb250LXNpemU6NDRweDtmb250LXdlaWdodDo4MDA7Y29sb3I6dmFyKC0tYjcwMCk7bGluZS1oZWlnaHQ6MTt9Ci5jbHByLXJlcy1zY29yZSBzcGFue2ZvbnQtc2l6ZToyMHB4O2NvbG9yOnZhcigtLXN1YnRsZSk7fQouY2xwci1yZXMtY2xie2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjEwcHggMTZweDt9Ci5jbHByLXJlcy1jbGIgYntkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxOHB4O2NvbG9yOnZhcigtLWI5MDApO30KLmNscHItcmVzLWNsYiBzbWFsbHtjb2xvcjp2YXIoLS1tdXRlZCk7fQouY2xwci1yZXMtYnJlYWt7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MTZweDt9Ci5jbHByLXJlcy1waWxse2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1tdXRlZCk7YmFja2dyb3VuZDojRjFGNUY5O2JvcmRlci1yYWRpdXM6OTk5cHg7cGFkZGluZzo2cHggMTNweDt9Ci5jbHByLXJlcy1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDttYXJnaW4tdG9wOjE4cHg7ZmxleC13cmFwOndyYXA7fQpAbWVkaWEobWF4LXdpZHRoOjgyMHB4KXsuY2xwci1jb2xze2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7fS5jbHByLXBhc3NhZ2V7Ym9yZGVyLXJpZ2h0Om5vbmU7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tcGFuZWwtcC1ib3JkZXIpO21heC1oZWlnaHQ6bm9uZTt9LmNscHItcWNvbHttYXgtaGVpZ2h0Om5vbmU7fX0KYDsKICB2YXIgc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOyBzdC50ZXh0Q29udGVudCA9IENTUzsgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdCk7CiAgdmFyIHdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwcldyYXAnKTsKICB2YXIgc3RhcnRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclN0YXJ0Jyk7CiAgdmFyIHRvb2xiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclRvb2xiYXInKTsKICB2YXIgc2ltID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTaW0nKTsKICB2YXIgZG90c0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJEb3RzJyk7CiAgdmFyIGNhdEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJDYXQnKTsKICB2YXIgcmVzdWx0c0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXN1bHRzJyk7CiAgdmFyIHNjb3JlQ2hpcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU2NvcmVDaGlwJyk7CiAgdmFyIGNoZWNrQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJDaGVjaycpOwogIHZhciByZXNldEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmVzZXQnKTsKCiAgdmFyIFEgPSBbXTsKICB2YXIgY3VyUGFydCA9IDA7CiAgdmFyIGNoZWNrZWQgPSBmYWxzZTsKCiAgZnVuY3Rpb24gZWwodGFnLCBjbHMsIGh0bWwpeyB2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7IGlmKGNscyllLmNsYXNzTmFtZT1jbHM7IGlmKGh0bWwhPW51bGwpZS5pbm5lckhUTUw9aHRtbDsgcmV0dXJuIGU7IH0KCiAgLyogQnVpbGQgdGhlIHBlcnNpc3RlbnQgcXVlc3Rpb24gbGlzdCBPTkNFOyBhdHRhY2ggLl9xIHRvIGVhY2ggaXRlbS9ibGFuayBzbwogICAgIHJlLXJlbmRlcmluZyBhIHBhcnQgcmV1c2VzIHRoZSBzYW1lIHN0YXRlIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQuICovCiAgZnVuY3Rpb24gaW5pdFF1ZXN0aW9ucygpewogICAgUSA9IFtdOwogICAgUkRBVEEucGFydHMuZm9yRWFjaChmdW5jdGlvbihwYXJ0KXsKICAgICAgcGFydC5ibG9ja3MuZm9yRWFjaChmdW5jdGlvbihibGspewogICAgICAgIGlmKGJsay50eXBlPT09J2Nsb3plJyl7CiAgICAgICAgICBibGsuYm9keS5mb3JFYWNoKGZ1bmN0aW9uKHRvayl7IGlmKHR5cGVvZiB0b2s9PT0nb2JqZWN0Jyl7IHRvay5fcT17c2VsOm51bGwsa2V5OnRvay5rZXksbjp0b2suYixwYXJ0OnBhcnQuaWR9OyBRLnB1c2godG9rLl9xKTsgfSB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgYmxrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpeyBpdC5fcT17c2VsOm51bGwsa2V5Oml0LmtleSxuOml0Lm4scGFydDpwYXJ0LmlkfTsgUS5wdXNoKGl0Ll9xKTsgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gbWFrZURyb3Bkb3duKG9wdGlvbnMsIHFyZWYpewogICAgdmFyIGRkID0gZWwoJ3NwYW4nLCdjbHByLWRkJyk7CiAgICB2YXIgYnRuID0gZWwoJ2J1dHRvbicsJ2NscHItZGQtYnRuJyk7CiAgICB2YXIgdHh0ID0gZWwoJ3NwYW4nLCdjbHByLWRkLXR4dCBjbHByLWVtcHR5JywnICAgJyk7CiAgICB2YXIgY2FyZXQgPSBlbCgnc3BhbicsJ2NscHItZGQtY2FyZXQnLCdcdTI1YmUnKTsKICAgIGJ0bi5hcHBlbmRDaGlsZCh0eHQpOyBidG4uYXBwZW5kQ2hpbGQoY2FyZXQpOwogICAgdmFyIHNvbHZlZCA9IGVsKCdzcGFuJywnY2xwci1zb2x2ZWQnLCcnKTsKICAgIHZhciBtZW51ID0gZWwoJ3NwYW4nLCdjbHByLWRkLW1lbnUnKTsKICAgIG9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbihvcHQsIGkpewogICAgICB2YXIgbyA9IGVsKCdzcGFuJywnY2xwci1kZC1vcHQnKTsKICAgICAgby5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItcmFkaW8nKSk7CiAgICAgIG8uYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsb3B0KSk7CiAgICAgIG8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7CiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgaWYoY2hlY2tlZCkgcmV0dXJuOwogICAgICAgIHFyZWYuc2VsID0gaSsxOwogICAgICAgIHR4dC50ZXh0Q29udGVudCA9IG9wdDsgdHh0LmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOwogICAgICAgIG1lbnUucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQtb3B0JykuZm9yRWFjaChmdW5jdGlvbih4KXt4LmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItc2VsJyk7fSk7CiAgICAgICAgby5jbGFzc0xpc3QuYWRkKCdjbHByLXNlbCcpOwogICAgICAgIGNsb3NlQWxsKCk7CiAgICAgICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICAgIH0pOwogICAgICBtZW51LmFwcGVuZENoaWxkKG8pOwogICAgfSk7CiAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7CiAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBpZihjaGVja2VkKSByZXR1cm47CiAgICAgIHZhciB3YXNPcGVuID0gZGQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbHByLW9wZW4nKTsKICAgICAgY2xvc2VBbGwoKTsKICAgICAgaWYoIXdhc09wZW4pIGRkLmNsYXNzTGlzdC5hZGQoJ2NscHItb3BlbicpOwogICAgfSk7CiAgICBkZC5hcHBlbmRDaGlsZChidG4pOyBkZC5hcHBlbmRDaGlsZChzb2x2ZWQpOyBkZC5hcHBlbmRDaGlsZChtZW51KTsKICAgIHFyZWYuZGRFbCA9IGRkOyBxcmVmLnR4dEVsID0gdHh0OyBxcmVmLnNvbHZlZEVsID0gc29sdmVkOyBxcmVmLm9wdGlvbnMgPSBvcHRpb25zOwogICAgaWYocXJlZi5zZWwhPW51bGwpewogICAgICB0eHQudGV4dENvbnRlbnQgPSBvcHRpb25zW3FyZWYuc2VsLTFdOyB0eHQuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7CiAgICAgIHZhciBzbyA9IG1lbnUucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQtb3B0JylbcXJlZi5zZWwtMV07IGlmKHNvKSBzby5jbGFzc0xpc3QuYWRkKCdjbHByLXNlbCcpOwogICAgfQogICAgcmV0dXJuIGRkOwogIH0KICBmdW5jdGlvbiBjbG9zZUFsbCgpeyB3cmFwLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLmNscHItb3BlbicpLmZvckVhY2goZnVuY3Rpb24oZCl7ZC5jbGFzc0xpc3QucmVtb3ZlKCdjbHByLW9wZW4nKTt9KTsgfQogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2VBbGwpOwoKICBmdW5jdGlvbiBidWlsZFBhcnQocGkpewogICAgdmFyIHBhcnQgPSBSREFUQS5wYXJ0c1twaV07CiAgICBjYXRFbC5pbm5lckhUTUw9Jyc7CiAgICB2YXIgYmFyID0gZWwoJ2RpdicsJ2NscHItYmFyJyk7CiAgICBiYXIuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItYmFyLXRpdGxlJywgJ1ByYWN0aWNlIFRlc3QgMSBcdTIwMTMgJytwYXJ0Lm5hbWUpKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1iYXItdGltZXInLCdTdWdnZXN0ZWQgdGltZTogPGI+JytwYXJ0LnRpbWUrJzwvYj4nKSk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChiYXIpOwogICAgdmFyIGNvbHMgPSBlbCgnZGl2JywnY2xwci1jb2xzJyk7CiAgICB2YXIgbGVmdCA9IGVsKCdkaXYnLCdjbHByLXBhc3NhZ2UnKTsKICAgIGxlZnQuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItcGxhYmVsJywgcGFydC5wYXNzYWdlLmxhYmVsKSk7CiAgICBpZihwYXJ0LnBhc3NhZ2UudHlwZT09PSdpbWFnZScpewogICAgICB2YXIgaW1nID0gZWwoJ2ltZycsJ2NscHItcGltZycpOyBpbWcuc3JjID0gcGFydC5wYXNzYWdlLnNyYzsgaW1nLmFsdCA9IHBhcnQucGFzc2FnZS5hbHR8fCcnOyBsZWZ0LmFwcGVuZENoaWxkKGltZyk7CiAgICB9IGVsc2UgewogICAgICBsZWZ0LmFwcGVuZENoaWxkKGVsKCdkaXYnLG51bGwsIHBhcnQucGFzc2FnZS5odG1sKSk7CiAgICB9CiAgICB2YXIgcmlnaHQgPSBlbCgnZGl2JywnY2xwci1xY29sJyk7CiAgICBwYXJ0LmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uKGJsb2NrKXsgcmlnaHQuYXBwZW5kQ2hpbGQoYnVpbGRCbG9jayhibG9jaywgcGFydCkpOyB9KTsKICAgIGNvbHMuYXBwZW5kQ2hpbGQobGVmdCk7IGNvbHMuYXBwZW5kQ2hpbGQocmlnaHQpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQoY29scyk7CiAgICB2YXIgbmF2ID0gZWwoJ2RpdicsJ2NscHItbmF2Jyk7CiAgICB2YXIgcHJldiA9IGVsKCdidXR0b24nLCdjbHByLW5hdmJ0biBjbHByLWdob3N0JywnXHUyMTkwIFByZXZpb3VzIHBhcnQnKTsKICAgIHZhciBuZXh0ID0gZWwoJ2J1dHRvbicsJ2NscHItbmF2YnRuJywnTmV4dCBwYXJ0IFx1MjE5MicpOwogICAgcHJldi5kaXNhYmxlZCA9IChwaT09PTApOyBuZXh0LmRpc2FibGVkID0gKHBpPT09UkRBVEEucGFydHMubGVuZ3RoLTEpOwogICAgcHJldi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmKHBpPjApIGdvKHBpLTEpOyB9KTsKICAgIG5leHQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBpZihwaTxSREFUQS5wYXJ0cy5sZW5ndGgtMSkgZ28ocGkrMSk7IH0pOwogICAgbmF2LmFwcGVuZENoaWxkKHByZXYpOyBuYXYuYXBwZW5kQ2hpbGQobmV4dCk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChuYXYpOwogICAgaWYoY2hlY2tlZCkgYXBwbHlNYXJrcygpOwogIH0KCiAgZnVuY3Rpb24gYnVpbGRCbG9jayhibG9jaywgcGFydCl7CiAgICB2YXIgd3JhcEIgPSBlbCgnZGl2JywnY2xwci1ibG9jaycpOwogICAgd3JhcEIuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItaW5zdHInLCBibG9jay5pbnN0cikpOwogICAgaWYoYmxvY2sudHlwZT09PSdzdGVtbGlzdCcpewogICAgICBibG9jay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsKICAgICAgICB2YXIgcm93ID0gZWwoJ2RpdicsJ2NscHItc3RlbScpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItc251bScsIGl0Lm4rJy4nKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCBpdC5wcmUrJyAnKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bihpdC5vcHRpb25zLCBpdC5fcSkpOwogICAgICAgIHdyYXBCLmFwcGVuZENoaWxkKHJvdyk7CiAgICAgIH0pOwogICAgfSBlbHNlIGlmKGJsb2NrLnR5cGU9PT0nY2xvemUnKXsKICAgICAgdmFyIGJveCA9IGVsKCdkaXYnLCdjbHByLWNsb3plJyk7CiAgICAgIGJsb2NrLmJvZHkuZm9yRWFjaChmdW5jdGlvbih0b2spewogICAgICAgIGlmKHR5cGVvZiB0b2s9PT0nc3RyaW5nJyl7CiAgICAgICAgICB2YXIgc2VncyA9IHRvay5zcGxpdCgnXG5cbicpOwogICAgICAgICAgc2Vncy5mb3JFYWNoKGZ1bmN0aW9uKHNlZywgaWR4KXsKICAgICAgICAgICAgaWYoaWR4PjApeyBib3guYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsJzxicj48YnI+JykpOyB9CiAgICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzZWcpKTsKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBib3guYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKHRvay5vcHRpb25zLCB0b2suX3EpKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB3cmFwQi5hcHBlbmRDaGlsZChib3gpOwogICAgfSBlbHNlIGlmKGJsb2NrLnR5cGU9PT0nbWF0Y2gnKXsKICAgICAgYmxvY2suaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7CiAgICAgICAgdmFyIHJvdyA9IGVsKCdkaXYnLCdjbHByLW1hdGNoLXJvdycpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24oYmxvY2subGV0dGVycywgaXQuX3EpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXNudW0nLCBpdC5uKycuJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwgaXQudGV4dCkpOwogICAgICAgIHdyYXBCLmFwcGVuZENoaWxkKHJvdyk7CiAgICAgIH0pOwogICAgfQogICAgcmV0dXJuIHdyYXBCOwogIH0KCiAgZnVuY3Rpb24gYnVpbGREb3RzKCl7CiAgICBkb3RzRWwuaW5uZXJIVE1MPScnOwogICAgUkRBVEEucGFydHMuZm9yRWFjaChmdW5jdGlvbihwLCBpKXsKICAgICAgdmFyIGQgPSBlbCgnYnV0dG9uJywnY2xwci1kb3QnKyhpPT09Y3VyUGFydD8nIGNscHItY3VyJzonJykpOwogICAgICBkLmFwcGVuZENoaWxkKGVsKCdiJyxudWxsLChpKzEpKSk7CiAgICAgIGQuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsWydDb3JyZXNwb25kZW5jZScsJ0FwcGx5IGEgRGlhZ3JhbScsJ0luZm9ybWF0aW9uJywnVmlld3BvaW50cyddW2ldKSk7CiAgICAgIGQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBnbyhpKTsgfSk7CiAgICAgIGRvdHNFbC5hcHBlbmRDaGlsZChkKTsKICAgIH0pOwogIH0KICBmdW5jdGlvbiBnbyhwaSl7IGN1clBhcnQ9cGk7IGJ1aWxkRG90cygpOyBidWlsZFBhcnQocGkpOyBjYXRFbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOyB9CgogIGZ1bmN0aW9uIHVwZGF0ZVNjb3JlQ2hpcCgpewogICAgdmFyIGFucyA9IFEuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiBxLnNlbCE9bnVsbDt9KS5sZW5ndGg7CiAgICBzY29yZUNoaXAudGV4dENvbnRlbnQgPSBjaGVja2VkID8gKFEuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiBxLnNlbD09PXEua2V5O30pLmxlbmd0aCsnIC8gJytRLmxlbmd0aCsnIGNvcnJlY3QnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChhbnMrJyAvICcrUS5sZW5ndGgrJyBhbnN3ZXJlZCcpOwogIH0KCiAgZnVuY3Rpb24gYXBwbHlNYXJrcygpewogICAgUS5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgICBpZighcS5kZEVsKSByZXR1cm47CiAgICAgIHEuZGRFbC5jbGFzc0xpc3QucmVtb3ZlKCdjbHByLXJpZ2h0JywnY2xwci13cm9uZycpOwogICAgICBpZihxLnNlbD09PXEua2V5KXsgcS5kZEVsLmNsYXNzTGlzdC5hZGQoJ2NscHItcmlnaHQnKTsgfQogICAgICBlbHNlIHsKICAgICAgICBxLmRkRWwuY2xhc3NMaXN0LmFkZCgnY2xwci13cm9uZycpOwogICAgICAgIGlmKHEuc29sdmVkRWwpIHEuc29sdmVkRWwudGV4dENvbnRlbnQgPSAnXHUyNzEzICcrcS5vcHRpb25zW3Eua2V5LTFdOwogICAgICAgIGlmKHEuc2VsPT1udWxsICYmIHEudHh0RWwpeyBxLnR4dEVsLnRleHRDb250ZW50PScobm8gYW5zd2VyKSc7IHEudHh0RWwuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7IH0KICAgICAgfQogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBkb0NoZWNrKCl7CiAgICBjaGVja2VkID0gdHJ1ZTsKICAgIGFwcGx5TWFya3MoKTsKICAgIHZhciBjb3JyZWN0ID0gUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsPT09cS5rZXk7fSkubGVuZ3RoOwogICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICBjaGVja0J0bi5kaXNhYmxlZCA9IHRydWU7CiAgICB2YXIgYnlQYXJ0ID0ge307CiAgICBRLmZvckVhY2goZnVuY3Rpb24ocSl7IGJ5UGFydFtxLnBhcnRdPWJ5UGFydFtxLnBhcnRdfHx7YzowLHQ6MH07IGJ5UGFydFtxLnBhcnRdLnQrKzsgaWYocS5zZWw9PT1xLmtleSlieVBhcnRbcS5wYXJ0XS5jKys7IH0pOwogICAgdmFyIGVzdCA9IGNsYkVzdGltYXRlUihjb3JyZWN0KTsKICAgIHZhciBwaWxscyA9IFJEQVRBLnBhcnRzLm1hcChmdW5jdGlvbihwKXsgdmFyIGI9YnlQYXJ0W3AuaWRdfHx7YzowLHQ6MH07IHJldHVybiAnPHNwYW4gY2xhc3M9ImNscHItcmVzLXBpbGwiPlBhcnQgJytwLmlkKyc6ICcrYi5jKycvJytiLnQrJzwvc3Bhbj4nOyB9KS5qb2luKCcnKTsKICAgIHJlc3VsdHNFbC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iY2xwci1yZXMtY2FyZCI+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy10b3AiPicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtc2NvcmUiPicrY29ycmVjdCsnPHNwYW4+LycrUS5sZW5ndGgrJzwvc3Bhbj48L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWNsYiI+PGI+Jytlc3QubGV2ZWwrJzwvYj48c21hbGw+Jytlc3Qubm90ZSsnICZtaWRkb3Q7IGVzdGltYXRlZCBSZWFkaW5nIGJhbmQ8L3NtYWxsPjwvZGl2PicKICAgICAgKyAnPC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1icmVhayI+JytwaWxscysnPC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJjbHByLW5hdmJ0biBjbHByLWdob3N0IiBpZD0iY2xwclJldmlldyI+UmV2aWV3IGFuc3dlcnMgaW4gZWFjaCBwYXJ0PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iY2xwci1uYXZidG4iIGlkPSJjbHByUmV0cnkiPlRyeSBhZ2FpbjwvYnV0dG9uPjwvZGl2PicKICAgICAgKyAnPHAgc3R5bGU9Im1hcmdpbi10b3A6MTJweDtmb250LXNpemU6MTIuNXB4O2NvbG9yOnZhcigtLW11dGVkKSI+RXN0aW1hdGVkIGJhbmQgaXMgYSBzdHVkeSBndWlkZSBvbmx5LCBub3QgYW4gb2ZmaWNpYWwgQ0VMUElQIHNjb3JlLiBDb3JyZWN0IGFuc3dlcnMgYXJlIHNob3duIHdpdGggYSBncmVlbiBjaGVjayBvbiBlYWNoIGRyb3AtZG93biB5b3UgYW5zd2VyZWQgaW5jb3JyZWN0bHkuPC9wPicKICAgICAgKyAnPC9kaXY+JzsKICAgIHJlc3VsdHNFbC5oaWRkZW4gPSBmYWxzZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmV0cnknKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0QWxsKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmV2aWV3JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBnbygwKTsgfSk7CiAgICByZXN1bHRzRWwuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsKICB9CgogIGZ1bmN0aW9uIHJlc2V0QWxsKCl7CiAgICBjaGVja2VkPWZhbHNlOyBpbml0UXVlc3Rpb25zKCk7IGN1clBhcnQ9MDsKICAgIGNoZWNrQnRuLmRpc2FibGVkPWZhbHNlOwogICAgcmVzdWx0c0VsLmhpZGRlbj10cnVlOyByZXN1bHRzRWwuaW5uZXJIVE1MPScnOwogICAgYnVpbGREb3RzKCk7IGJ1aWxkUGFydCgwKTsKICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgc2ltLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7CiAgfQoKICBzdGFydEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICB3cmFwLnF1ZXJ5U2VsZWN0b3IoJy5jbHByLWhlcm8nKS5zdHlsZS5kaXNwbGF5PSdub25lJzsKICAgIHRvb2xiYXIuaGlkZGVuPWZhbHNlOyBzaW0uaGlkZGVuPWZhbHNlOwogICAgaW5pdFF1ZXN0aW9ucygpOyBjdXJQYXJ0PTA7IGNoZWNrZWQ9ZmFsc2U7CiAgICBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KDApOyB1cGRhdGVTY29yZUNoaXAoKTsKICB9KTsKICBjaGVja0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGRvQ2hlY2spOwogIHJlc2V0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwp9KSgpOw==\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 8 Practice Test 1: 4 parts, 38 questions in the real exam format with instant scoring and answer key. About 55 minutes. 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-6406","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6406","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=6406"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6406\/revisions"}],"predecessor-version":[{"id":6556,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6406\/revisions\/6556"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}