{"id":6146,"date":"2026-07-06T05:43:01","date_gmt":"2026-07-06T05:43:01","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-11-test-1-listening\/"},"modified":"2026-07-12T03:25:08","modified_gmt":"2026-07-12T03:25:08","slug":"celpip-set-11-test-1-listening","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-11-test-1-listening\/","title":{"rendered":"CELPIP Set 11 \u2013 Practice Test 1 Listening"},"content":{"rendered":"<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;600;700;800&#038;display=swap\" rel=\"stylesheet\">\n<div class=\"clp-wrap\" id=\"clpApp\" data-variant=\"A\">\n<p>  <!-- ============ 1. HERO ============ --><\/p>\n<section class=\"clp-hero\" data-screen-label=\"Hero\">\n<div class=\"clp-aurora\"><span><\/span><span><\/span><span><\/span><\/div>\n<div class=\"clp-hero-shimmer\"><\/div>\n<div class=\"clp-hero-badges\">\n      <span class=\"clp-badge-brand\">CELPIP<\/span><br \/>\n      <span class=\"clp-badge-set\">Set 11 &#183; Practice Test 1<\/span>\n    <\/div>\n<h1>CELPIP Listening Practice Test<\/h1>\n<div class=\"clp-hero-chips\">\n      <span class=\"clp-chip\">6 parts<\/span><br \/>\n      <span class=\"clp-chip\">38 questions<\/span><br \/>\n      <span class=\"clp-chip\">~47 minutes<\/span><br \/>\n      <span class=\"clp-chip\">Everything plays once<\/span>\n    <\/div>\n<p>    <button class=\"clp-cta\" id=\"clpStart\">Start test<\/button><br \/>\n  <\/section>\n<p>  <!-- ============ Sticky practice toolbar ============ --><\/p>\n<div class=\"clp-toolbar\" id=\"clpToolbar\" hidden data-screen-label=\"Toolbar\">\n    <span class=\"clp-score-chip\" id=\"clpScoreChip\">Answered 0\/38<\/span><br \/>\n    <span class=\"clp-toolbar-spacer\"><\/span><br \/>\n    <button class=\"clp-tbtn\" id=\"clpTimerToggle\">Timer: on<\/button><br \/>\n    <button class=\"clp-tbtn clp-tbtn-check\" id=\"clpCheck\">Check answers<\/button><br \/>\n    <button class=\"clp-tbtn\" id=\"clpReset\">Reset<\/button>\n  <\/div>\n<p>  <!-- ============ 2. CAT SIMULATOR ============ --><\/p>\n<section class=\"clp-sim\" id=\"clpSim\" data-screen-label=\"CAT Simulator\">\n<div class=\"clp-dots\" id=\"clpDots\"><\/div>\n<div class=\"clp-cat\" id=\"clpCat\"><\/div>\n<\/section>\n<p>  <!-- ============ 3. RESULTS ============ --><\/p>\n<section class=\"clp-results\" id=\"clpResults\" hidden data-screen-label=\"Results\"><\/section>\n<\/div>\n<p><script>eval(atob('dmFyIENMUF9BVURJTz17IjAuMCI6Imh0dHBzOi8vYWxsZW5nbGlzaDR1LmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNy9jZWxwaXAtczExdDEtcDFzMS5tcDMiLCIwLjEiOiJodHRwczovL2FsbGVuZ2xpc2g0dS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDcvY2VscGlwLXMxMXQxLXAxczIubXAzIiwiMC4yIjoiaHR0cHM6Ly9hbGxlbmdsaXNoNHUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA3L2NlbHBpcC1zMTF0MS1wMXMzLm1wMyIsIjEuMCI6Imh0dHBzOi8vYWxsZW5nbGlzaDR1LmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNy9jZWxwaXAtczExdDEtcDIubXAzIiwiMi4wIjoiaHR0cHM6Ly9hbGxlbmdsaXNoNHUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA3L2NlbHBpcC1zMTF0MS1wMy5tcDMiLCIzLjAiOiJodHRwczovL2FsbGVuZ2xpc2g0dS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDcvY2VscGlwLXMxMXQxLXA0Lm1wMyIsIjUuMCI6Imh0dHBzOi8vYWxsZW5nbGlzaDR1LmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNy9jZWxwaXAtczExdDEtcDYubXAzIiwiNC4wIjoiaHR0cHM6Ly9hbGxlbmdsaXNoNHUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA3L2NlbHBpcC1zMTF0MS1wNS5tcDQifTt2YXIgQ0xQX0FVRElPX1ZJREVPPXsiNC4wIjoxfTsKCihmdW5jdGlvbigpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cy50ZXh0Q29udGVudD0iXG4vKiA9PT09PT09PT09PT0gQ0VMUElQIExpc3RlbmluZyBQcmFjdGljZSBcdTIwMTQgc2NvcGVkLCBXb3JkUHJlc3Mtc2FmZSA9PT09PT09PT09PT0gKi9cbi5jbHAtd3JhcHtcbiAgLyogVkFSSUFOVF9DSFJPTUVfU1RBUlQgKi9cbiAgLS1iYXItYmc6I0U4RUJFRjtcbiAgLS1iYXItYm9yZGVyOiNEM0Q5RTA7XG4gIC0tYmFyLXRleHQ6IzFGMjkzNztcbiAgLS1wYW5lbC1tZWRpYS1iZzojRjRGNUY3O1xuICAtLXBhbmVsLW1lZGlhLWJvcmRlcjojRTNFNkVBO1xuICAtLW1lZGlhLWNhcmQtYmc6I0VDRUVGMTtcbiAgLS1tZWRpYS1jYXJkLWJvcmRlcjojRDhEREUzO1xuICAtLXBhbmVsLXEtYmc6I0U5RjRGNztcbiAgLS1wYW5lbC1xLWJvcmRlcjojRDZFOEVEO1xuICAtLWRkLW9wZW4tYmc6I0NCRUJGNDtcbiAgLyogVkFSSUFOVF9DSFJPTUVfRU5EICovXG4gIC0tbmF2eTojMDUwRTIwOyAtLWRhcms6IzBBMTYyODsgLS1iOTAwOiMwRDIzNTI7IC0tYjcwMDojMTI0NUE4OyAtLWI1MDA6IzI1NjNFQjtcbiAgLS1iNDAwOiMzQjgyRjY7IC0tYjIwMDojOTNDNUZEOyAtLWIxMDA6I0RCRUFGRTsgLS1iNTA6I0VGRjZGRjtcbiAgLS10ZWFsOiMwRDk0ODg7IC0tY3lhbjojMDZCNkQ0OyAtLWdyZWVuOiMxMEI5ODE7IC0tZ3JlZW41MDojRUNGREY1O1xuICAtLXJvc2U6I0Y0M0Y1RTsgLS1vcmFuZ2U6I0Y5NzMxNjtcbiAgLS10ZXh0OiMwRjE3MkE7IC0tbXV0ZWQ6IzQ3NTU2OTsgLS1zdWJ0bGU6Izk0QTNCODsgLS1ib3JkZXI6I0UyRThGMDtcbiAgLS1jcmltc29uOiNCNDJCM0M7IC0td2hpdGU6I0ZGRkZGRjsgLS1wYWdlOiNGOEZBRkY7XG4gIGZvbnQtZmFtaWx5OidQbHVzIEpha2FydGEgU2Fucycsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sc2Fucy1zZXJpZjtcbiAgY29sb3I6dmFyKC0tdGV4dCk7XG4gIG1heC13aWR0aDoxMTQwcHg7IG1hcmdpbjowIGF1dG87IHBhZGRpbmc6MTZweCAxNnB4IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OjEuNTsgZm9udC1zaXplOjE2cHg7XG59XG4uY2xwLXdyYXAgKiwgLmNscC13cmFwICo6OmJlZm9yZSwgLmNscC13cmFwICo6OmFmdGVyeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH1cbi5jbHAtd3JhcCBidXR0b257IGZvbnQtZmFtaWx5OmluaGVyaXQ7IGN1cnNvcjpwb2ludGVyOyB9XG4uY2xwLXdyYXAgaDEsLmNscC13cmFwIGgyLC5jbHAtd3JhcCBoMywuY2xwLXdyYXAgcHsgbWFyZ2luOjA7IH1cblxuLyogPT09PT09PT09PT09IEhFUk8gPT09PT09PT09PT09ICovXG4uY2xwLWhlcm97XG4gIHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IGJvcmRlci1yYWRpdXM6MjJweDtcbiAgYmFja2dyb3VuZDp2YXIoLS1uYXZ5KTsgY29sb3I6I2ZmZjtcbiAgcGFkZGluZzozNnB4IDQwcHg7XG4gIGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBnYXA6MTRweDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDtcbiAgYm94LXNoYWRvdzowIDIwcHggNDBweCAtMjBweCByZ2JhKDUsMTQsMzIsLjQ1KSwgMCA0cHggMTJweCAtNnB4IHJnYmEoNSwxNCwzMiwuMyk7XG59XG4uY2xwLWF1cm9yYXsgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH1cbi5jbHAtYXVyb3JhIHNwYW57XG4gIHBvc2l0aW9uOmFic29sdXRlOyBib3JkZXItcmFkaXVzOjUwJTsgZmlsdGVyOmJsdXIoNjBweCk7IG9wYWNpdHk6LjU7XG4gIGFuaW1hdGlvbjpjbHBGbG9hdCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlO1xufVxuLmNscC1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMSl7IHdpZHRoOjQyMHB4OyBoZWlnaHQ6NDIwcHg7IGxlZnQ6LTEyMHB4OyB0b3A6LTIwMHB4OyBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzEyNDVBOCAwJSx0cmFuc3BhcmVudCA3MCUpOyB9XG4uY2xwLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgyKXsgd2lkdGg6MzgwcHg7IGhlaWdodDozODBweDsgcmlnaHQ6LTgwcHg7IHRvcDotMTYwcHg7IGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMEQ5NDg4IDAlLHRyYW5zcGFyZW50IDcwJSk7IGFuaW1hdGlvbi1kZWxheTotNHM7IH1cbi5jbHAtYXVyb3JhIHNwYW46bnRoLWNoaWxkKDMpeyB3aWR0aDozNDBweDsgaGVpZ2h0OjM0MHB4OyByaWdodDoyMiU7IGJvdHRvbTotMjQwcHg7IGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDAlLHRyYW5zcGFyZW50IDcwJSk7IGFuaW1hdGlvbi1kZWxheTotOHM7IH1cbkBrZXlmcmFtZXMgY2xwRmxvYXR7XG4gIGZyb217IHRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoMSk7IH1cbiAgdG97IHRyYW5zZm9ybTp0cmFuc2xhdGUzZCg0MHB4LDI2cHgsMCkgc2NhbGUoMS4xMik7IH1cbn1cbi5jbHAtaGVyby1zaGltbWVye1xuICBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgcG9pbnRlci1ldmVudHM6bm9uZTtcbiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTE1ZGVnLCB0cmFuc3BhcmVudCAzMCUsIHJnYmEoMTQ3LDE5NywyNTMsLjEwKSA0NSUsIHJnYmEoNiwxODIsMjEyLC4xMikgNTAlLCB0cmFuc3BhcmVudCA2NSUpO1xuICBiYWNrZ3JvdW5kLXNpemU6MjUwJSAxMDAlO1xuICBhbmltYXRpb246Y2xwU2hpbW1lciA3cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgY2xwU2hpbW1lcnsgMCV7YmFja2dyb3VuZC1wb3NpdGlvbjoxMjAlIDA7fSA1NSV7YmFja2dyb3VuZC1wb3NpdGlvbjotNDAlIDA7fSAxMDAle2JhY2tncm91bmQtcG9zaXRpb246LTQwJSAwO30gfVxuLmNscC1oZXJvLWJhZGdlc3sgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgYWxpZ24taXRlbXM6Y2VudGVyOyBmbGV4LXdyYXA6d3JhcDsgcG9zaXRpb246cmVsYXRpdmU7IH1cbi5jbHAtYmFkZ2UtYnJhbmR7XG4gIGJhY2tncm91bmQ6dmFyKC0tY3JpbXNvbik7IGNvbG9yOiNmZmY7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zaXplOjEycHg7XG4gIGxldHRlci1zcGFjaW5nOi4xMmVtOyBwYWRkaW5nOjVweCAxMnB4OyBib3JkZXItcmFkaXVzOjZweDtcbn1cbi5jbHAtYmFkZ2Utc2V0eyBjb2xvcjp2YXIoLS1iMjAwKTsgZm9udC1zaXplOjEzcHg7IGZvbnQtd2VpZ2h0OjYwMDsgfVxuLmNscC1oZXJvIGgxeyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOmNsYW1wKDI2cHgsNHZ3LDQwcHgpOyBmb250LXdlaWdodDo4MDA7IGxldHRlci1zcGFjaW5nOi0uMDJlbTsgbGluZS1oZWlnaHQ6MS4xMjsgfVxuLmNscC1oZXJvLWNoaXBzeyBkaXNwbGF5OmZsZXg7IGdhcDo4cHg7IGZsZXgtd3JhcDp3cmFwOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfVxuLmNscC1jaGlwe1xuICBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA5KTsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDE0NywxOTcsMjUzLC4yNSk7XG4gIGNvbG9yOiNEQkVBRkU7IGZvbnQtc2l6ZToxM3B4OyBmb250LXdlaWdodDo2MDA7IHBhZGRpbmc6NnB4IDE0cHg7IGJvcmRlci1yYWRpdXM6MzJweDtcbiAgYmFja2Ryb3AtZmlsdGVyOmJsdXIoNHB4KTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBlYXNlLCBiYWNrZ3JvdW5kIC4yNXMgZWFzZTtcbn1cbi5jbHAtY2hpcDpob3ZlcnsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTUpOyB9XG4uY2xwLWN0YXtcbiAgcG9zaXRpb246cmVsYXRpdmU7IGJhY2tncm91bmQ6dmFyKC0tYjUwMCk7IGNvbG9yOiNmZmY7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjEwcHg7XG4gIGZvbnQtc2l6ZToxNnB4OyBmb250LXdlaWdodDo3MDA7IHBhZGRpbmc6MTNweCAzNHB4OyBtYXJnaW4tdG9wOjJweDtcbiAgYm94LXNoYWRvdzowIDEwcHggMjJweCAtOHB4IHJnYmEoMzcsOTksMjM1LC42NSk7XG4gIHRyYW5zaXRpb246dHJhbnNmb3JtIC4yMnMgZWFzZSwgYm94LXNoYWRvdyAuMjJzIGVhc2UsIGJhY2tncm91bmQgLjIycyBlYXNlO1xufVxuLmNscC1jdGE6aG92ZXJ7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpOyBiYWNrZ3JvdW5kOnZhcigtLWI0MDApOyBib3gtc2hhZG93OjAgMTRweCAyNnB4IC04cHggcmdiYSgzNyw5OSwyMzUsLjc1KTsgfVxuXG4vKiA9PT09PT09PT09PT0gU1RJQ0tZIFRPT0xCQVIgPT09PT09PT09PT09ICovXG4uY2xwLXRvb2xiYXJbaGlkZGVuXXsgZGlzcGxheTpub25lOyB9XG4uY2xwLXRvb2xiYXJ7XG4gIHBvc2l0aW9uOnN0aWNreTsgdG9wOjhweDsgei1pbmRleDo2MDtcbiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMHB4OyBmbGV4LXdyYXA6d3JhcDtcbiAgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45Mik7IGJhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7XG4gIGJvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLXJhZGl1czoxNnB4O1xuICBwYWRkaW5nOjhweCAxMnB4OyBtYXJnaW46MThweCAwIDA7XG4gIGJveC1zaGFkb3c6MCA4cHggMjRweCAtMTRweCByZ2JhKDE1LDIzLDQyLC4yNSksIDAgMnB4IDZweCAtNHB4IHJnYmEoMTUsMjMsNDIsLjEyKTtcbiAgbWluLWhlaWdodDo1MnB4O1xufVxuLmNscC1zY29yZS1jaGlwe1xuICBmb250LXdlaWdodDo4MDA7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjp2YXIoLS1iOTAwKTtcbiAgYmFja2dyb3VuZDp2YXIoLS1iNTApOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApOyBib3JkZXItcmFkaXVzOjMycHg7IHBhZGRpbmc6N3B4IDE2cHg7XG59XG4uY2xwLXRidG57XG4gIGJvcmRlci1yYWRpdXM6MTBweDsgZm9udC1zaXplOjEzcHg7IGZvbnQtd2VpZ2h0OjcwMDsgcGFkZGluZzo5cHggMTZweDtcbiAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBiYWNrZ3JvdW5kOiNmZmY7IGNvbG9yOnZhcigtLW11dGVkKTtcbiAgbWluLWhlaWdodDo0MHB4OyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZSwgYm94LXNoYWRvdyAuMnMgZWFzZSwgYmFja2dyb3VuZCAuMnMgZWFzZTtcbn1cbi5jbHAtdGJ0bjpob3ZlcnsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IGJveC1zaGFkb3c6MCA2cHggMTRweCAtOHB4IHJnYmEoMTUsMjMsNDIsLjMpOyB9XG4uY2xwLXRidG4tY2hlY2t7IGJhY2tncm91bmQ6dmFyKC0tZ3JlZW4pOyBib3JkZXItY29sb3I6dmFyKC0tZ3JlZW4pOyBjb2xvcjojZmZmOyB9XG4uY2xwLXRidG4tY2hlY2s6aG92ZXJ7IGJhY2tncm91bmQ6IzBjYTY3ODsgfVxuLmNscC10YnRuW2Rpc2FibGVkXXsgb3BhY2l0eTouNTsgY3Vyc29yOm5vdC1hbGxvd2VkOyB0cmFuc2Zvcm06bm9uZTsgYm94LXNoYWRvdzpub25lOyB9XG4uY2xwLXRvb2xiYXItc3BhY2VyeyBmbGV4OjE7IH1cblxuLyogPT09PT09PT09PT09IENBVCBTSU1VTEFUT1IgPT09PT09PT09PT09ICovXG4uY2xwLXNpbXsgbWFyZ2luLXRvcDoxOHB4OyB9XG4uY2xwLWRvdHN7IGRpc3BsYXk6ZmxleDsgZ2FwOjZweDsgbWFyZ2luOjAgMCAxMHB4IDJweDsgfVxuLmNscC1kb3R7XG4gIGJvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYmFja2dyb3VuZDojZmZmOyBjb2xvcjp2YXIoLS1zdWJ0bGUpO1xuICBmb250LXNpemU6MTFweDsgZm9udC13ZWlnaHQ6NzAwOyBib3JkZXItcmFkaXVzOjMycHg7IHBhZGRpbmc6NHB4IDEwcHg7XG4gIHRyYW5zaXRpb246YmFja2dyb3VuZCAuMjVzIGVhc2UsIGNvbG9yIC4yNXMgZWFzZTtcbn1cbi5jbHAtZG90LmNscC1kb25leyBiYWNrZ3JvdW5kOnZhcigtLWIxMDApOyBib3JkZXItY29sb3I6dmFyKC0tYjIwMCk7IGNvbG9yOnZhcigtLWI5MDApOyB9XG4uY2xwLWRvdC5jbHAtY3VyeyBiYWNrZ3JvdW5kOnZhcigtLWI1MDApOyBib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7IGNvbG9yOiNmZmY7IH1cbi5jbHAtZG90LmNscC1jbGlja2FibGV7IGN1cnNvcjpwb2ludGVyOyB9XG4uY2xwLWRvdDpub3QoLmNscC1jbGlja2FibGUpeyBjdXJzb3I6ZGVmYXVsdDsgfVxuXG4uY2xwLWNhdHtcbiAgcG9zaXRpb246cmVsYXRpdmU7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6MTBweDsgb3ZlcmZsb3c6dmlzaWJsZTtcbiAgYmFja2dyb3VuZDojZmZmO1xuICBib3gtc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJnYmEoMTUsMjMsNDIsLjIyKSwgMCAycHggOHB4IC01cHggcmdiYSgxNSwyMyw0MiwuMSk7XG59XG4uY2xwLWJhcntcbiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMnB4O1xuICBiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOjEwcHggMTBweCAwIDA7XG4gIHBhZGRpbmc6OXB4IDEycHg7IG1pbi1oZWlnaHQ6NDRweDtcbn1cbi5jbHAtYmFyLXRpdGxleyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjp2YXIoLS1iYXItdGV4dCk7IGZsZXg6MTsgbWluLXdpZHRoOjA7IH1cbi5jbHAtYmFyLXRpbWVyeyBmb250LXNpemU6MTJweDsgY29sb3I6dmFyKC0tYmFyLXRleHQpOyB3aGl0ZS1zcGFjZTpub3dyYXA7IH1cbi5jbHAtYmFyLXRpbWVyIGJ7IGZvbnQtd2VpZ2h0OjgwMDsgfVxuLmNscC1uZXh0e1xuICBiYWNrZ3JvdW5kOnZhcigtLWI3MDApOyBjb2xvcjojZmZmOyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo0cHg7XG4gIGZvbnQtc2l6ZToxMXB4OyBmb250LXdlaWdodDo3MDA7IGxldHRlci1zcGFjaW5nOi4wOGVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gIHBhZGRpbmc6N3B4IDE2cHg7IG1pbi1oZWlnaHQ6MzBweDtcbiAgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycyBlYXNlLCB0cmFuc2Zvcm0gLjJzIGVhc2U7XG59XG4uY2xwLW5leHQ6aG92ZXJ7IGJhY2tncm91bmQ6dmFyKC0tYjkwMCk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOyB9XG4uY2xwLXNjcmVlbnsgYm9yZGVyLXJhZGl1czowIDAgMTBweCAxMHB4OyBvdmVyZmxvdzpoaWRkZW47IH1cblxuLmNscC1pbnN0cntcbiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyBnYXA6OXB4O1xuICBwYWRkaW5nOjE0cHggMTZweCAxMnB4OyBiYWNrZ3JvdW5kOiNmZmY7XG59XG4uY2xwLWluZm97XG4gIGZsZXg6bm9uZTsgd2lkdGg6MThweDsgaGVpZ2h0OjE4cHg7IG1hcmdpbi10b3A6MnB4OyBib3JkZXItcmFkaXVzOjUwJTtcbiAgYmFja2dyb3VuZDp2YXIoLS1iNTAwKTsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXNpemU6MTFweDsgZm9udC1zdHlsZTppdGFsaWM7XG4gIGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgZm9udC1mYW1pbHk6R2VvcmdpYSxzZXJpZjtcbn1cbi5jbHAtaW5zdHIgcHsgZm9udC1zaXplOjE0cHg7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6dmFyKC0tYjkwMCk7IH1cblxuLyogaW50cm8gc2NyZWVuICovXG4uY2xwLWludHJvLWJvZHl7IHBhZGRpbmc6NnB4IDIwcHggMjZweCA0NHB4OyBiYWNrZ3JvdW5kOiNmZmY7IH1cbi5jbHAtaW50cm8tYm9keSBoM3sgZm9udC1zaXplOjE1cHg7IGZvbnQtd2VpZ2h0OjgwMDsgY29sb3I6dmFyKC0tdGV4dCk7IG1hcmdpbi1ib3R0b206MTJweDsgfVxuLmNscC1idWxsZXRzeyBsaXN0LXN0eWxlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBnYXA6MTBweDsgbWF4LXdpZHRoOjY0MHB4OyB9XG4uY2xwLWJ1bGxldHMgbGl7XG4gIGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IGZvbnQtc2l6ZToxNHB4OyBmb250LXdlaWdodDo2MDA7IGNvbG9yOnZhcigtLWI5MDApO1xuICBwYWRkaW5nLWJvdHRvbToxMHB4OyBib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgdmFyKC0tYm9yZGVyKTtcbn1cbi5jbHAtYnVsbGV0cyBsaTo6YmVmb3JleyBjb250ZW50OlwiXCI7IGZsZXg6bm9uZTsgd2lkdGg6OHB4OyBoZWlnaHQ6OHB4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDp2YXIoLS1iNDAwKTsgbWFyZ2luLXRvcDo2cHg7IH1cblxuLyogbWVkaWEgc2NyZWVuICovXG4uY2xwLW1lZGlhLXBhbmVse1xuICBiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLW1lZGlhLWJnKTsgYm9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tcGFuZWwtbWVkaWEtYm9yZGVyKTtcbiAgcGFkZGluZzozNHB4IDIwcHggMjZweDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjE0cHg7XG59XG4uY2xwLW1lZGlhLWNhcmR7XG4gIHdpZHRoOjEwMCU7IG1heC13aWR0aDo1MjBweDtcbiAgYmFja2dyb3VuZDp2YXIoLS1tZWRpYS1jYXJkLWJnKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1tZWRpYS1jYXJkLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6MTBweDtcbiAgcGFkZGluZzoyMnB4IDI2cHg7XG59XG4uY2xwLW1lZGlhLWNhcmQuY2xwLWlzLXZpZGVveyBtYXgtd2lkdGg6NjYwcHg7IHBhZGRpbmc6MTJweDsgfVxuLmNscC1tZWRpYS16b25leyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjE4cHg7IH1cbi5jbHAtaXMtdmlkZW8gLmNscC1tZWRpYS16b25le1xuICBhc3BlY3QtcmF0aW86MTYvOTsgd2lkdGg6MTAwJTsgYm9yZGVyLXJhZGl1czo2cHg7IGJhY2tncm91bmQ6dmFyKC0tZGFyayk7XG4gIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBtYXJnaW4tYm90dG9tOjEycHg7XG4gIGNvbG9yOiNmZmY7XG59XG4uY2xwLXNwZWFrZXJ7XG4gIGZsZXg6bm9uZTsgd2lkdGg6NTZweDsgaGVpZ2h0OjU2cHg7IGJvcmRlci1yYWRpdXM6OHB4OyBiYWNrZ3JvdW5kOiNmZmY7XG4gIGJvcmRlcjoxcHggc29saWQgdmFyKC0tbWVkaWEtY2FyZC1ib3JkZXIpO1xuICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgY29sb3I6dmFyKC0tbXV0ZWQpO1xufVxuLmNscC1pcy12aWRlbyAuY2xwLXNwZWFrZXJ7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTIpOyBib3JkZXI6bm9uZTsgY29sb3I6I2ZmZjsgd2lkdGg6NjRweDsgaGVpZ2h0OjY0cHg7IGJvcmRlci1yYWRpdXM6NTAlOyB9XG4uY2xwLW1lZGlhLW1haW57IGZsZXg6MTsgbWluLXdpZHRoOjA7IH1cbi5jbHAtaXMtdmlkZW8gLmNscC1tZWRpYS1tYWlueyBwYWRkaW5nOjAgMTBweCA0cHg7IH1cbi5jbHAtbWVkaWEtbGFiZWx7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjp2YXIoLS10ZXh0KTsgbWFyZ2luLWJvdHRvbToxMHB4OyB9XG4uY2xwLXByb2dyZXNzeyBoZWlnaHQ6OHB4OyBib3JkZXItcmFkaXVzOjZweDsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLW1lZGlhLWNhcmQtYm9yZGVyKTsgb3ZlcmZsb3c6aGlkZGVuOyB9XG4uY2xwLWlzLXZpZGVvIC5jbHAtcHJvZ3Jlc3N7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuNik7IH1cbi5jbHAtcHJvZ3Jlc3MtZmlsbHsgaGVpZ2h0OjEwMCU7IHdpZHRoOjAlOyBiYWNrZ3JvdW5kOnZhcigtLWN5YW4pOyBib3JkZXItcmFkaXVzOjZweDsgdHJhbnNpdGlvbjp3aWR0aCAuM3MgbGluZWFyOyB9XG4uY2xwLW1lZGlhLW1ldGF7XG4gIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTBweDsgZm9udC1zaXplOjEzcHg7IGNvbG9yOnZhcigtLW11dGVkKTsgZm9udC13ZWlnaHQ6NjAwO1xufVxuLmNscC1tZWRpYS1tZXRhIHN2Z3sgZGlzcGxheTpibG9jazsgfVxuLmNscC1vbmNlLW5vdGV7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjp2YXIoLS1zdWJ0bGUpOyBmb250LXdlaWdodDo2MDA7IH1cblxuLyogcXVlc3Rpb24gc2NyZWVuICovXG4uY2xwLXEtcGFuZWx7XG4gIGJhY2tncm91bmQ6dmFyKC0tcGFuZWwtcS1iZyk7IGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXEtYm9yZGVyKTtcbiAgcGFkZGluZzoyMHB4IDIycHggMzBweDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDoyMHB4O1xufVxuLmNscC1xeyBmb250LXNpemU6MTUuNXB4OyBmb250LXdlaWdodDo2MDA7IGNvbG9yOnZhcigtLXRleHQpOyBsaW5lLWhlaWdodDoyOyB9XG4uY2xwLXFudW17IGZvbnQtd2VpZ2h0OjcwMDsgfVxuLmNscC1kZHtcbiAgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6OHB4O1xuICBib3JkZXI6bm9uZTsgYm9yZGVyLWJvdHRvbToycHggZG90dGVkIHZhcigtLXN1YnRsZSk7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XG4gIGNvbG9yOnZhcigtLWI3MDApOyBmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NjAwO1xuICBwYWRkaW5nOjRweCA4cHggM3B4OyBtYXJnaW46MCAycHg7IG1pbi1oZWlnaHQ6MzJweDsgbWF4LXdpZHRoOjEwMCU7XG4gIGJvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO1xuICB0cmFuc2l0aW9uOmJhY2tncm91bmQgLjJzIGVhc2U7XG59XG4uY2xwLWRkOmhvdmVyeyBiYWNrZ3JvdW5kOnJnYmEoMzcsOTksMjM1LC4wOCk7IH1cbi5jbHAtZGQuY2xwLW9wZW57IGJhY2tncm91bmQ6dmFyKC0tZGQtb3Blbi1iZyk7IH1cbi5jbHAtZGQgLmNscC1kZC10ZXh0e1xuICBvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7IHdoaXRlLXNwYWNlOm5vd3JhcDsgbWF4LXdpZHRoOjQyMHB4O1xufVxuLmNscC1kZCAuY2xwLWRkLWNhcmV0eyBmb250LXNpemU6OXB4OyBjb2xvcjp2YXIoLS1iNzAwKTsgZmxleDpub25lOyB9XG4uY2xwLWRkLmNscC11bmFuc3dlcmVkIC5jbHAtZGQtdGV4dHsgbGV0dGVyLXNwYWNpbmc6MnB4OyBjb2xvcjp2YXIoLS1zdWJ0bGUpOyB9XG4uY2xwLWRkLmNscC1tYXJrLXJpZ2h0eyBiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApOyBib3JkZXI6MnB4IHNvbGlkIHZhcigtLWdyZWVuKTsgYm9yZGVyLXJhZGl1czo2cHg7IGNvbG9yOiMwNDc4NTc7IH1cbi5jbHAtZGQuY2xwLW1hcmstd3Jvbmd7IGJhY2tncm91bmQ6I0ZGRjFGMjsgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1yb3NlKTsgYm9yZGVyLXJhZGl1czo2cHg7IGNvbG9yOiNCRTEyM0M7IH1cbi5jbHAtZGRbZGlzYWJsZWRdeyBjdXJzb3I6ZGVmYXVsdDsgfVxuLmNscC1yZXZlYWx7XG4gIGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZToxMy41cHg7IGZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6IzA0Nzg1NzsgbGluZS1oZWlnaHQ6MS41O1xuICBtYXJnaW46MnB4IDAgMCAyNnB4O1xufVxuLmNscC1yZXZlYWwgYnsgZm9udC13ZWlnaHQ6ODAwOyB9XG4uY2xwLXRvZG8tdGFne1xuICBmb250LXNpemU6MTBweDsgZm9udC13ZWlnaHQ6ODAwOyBsZXR0ZXItc3BhY2luZzouMDhlbTsgY29sb3I6dmFyKC0tb3JhbmdlKTtcbiAgYm9yZGVyOjFweCBzb2xpZCBjdXJyZW50Q29sb3I7IGJvcmRlci1yYWRpdXM6NHB4OyBwYWRkaW5nOjFweCA2cHg7IG1hcmdpbi1sZWZ0OjhweDsgdmVydGljYWwtYWxpZ246MnB4O1xufVxuXG4vKiBkcm9wZG93biBwb3B1cCAqL1xuLmNscC1wb3B7XG4gIHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjgwOyB3aWR0aDptaW4oMzQwcHgsIGNhbGMoMTAwdncgLSA0OHB4KSk7XG4gIGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOjEwcHg7XG4gIGJveC1zaGFkb3c6MCAxOHB4IDQwcHggLTEycHggcmdiYSgxNSwyMyw0MiwuMjgpLCAwIDRweCAxMnB4IC02cHggcmdiYSgxNSwyMyw0MiwuMTQpO1xuICBwYWRkaW5nOjZweDsgXG59XG4uY2xwLW9wdHtcbiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMXB4OyB3aWR0aDoxMDAlO1xuICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OyBib3JkZXI6bm9uZTsgdGV4dC1hbGlnbjpsZWZ0O1xuICBmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjp2YXIoLS10ZXh0KTtcbiAgcGFkZGluZzoxMHB4IDEycHg7IG1pbi1oZWlnaHQ6NDJweDsgYm9yZGVyLXJhZGl1czo2cHg7XG4gIGJvcmRlci1ib3R0b206MXB4IGRvdHRlZCB2YXIoLS1ib3JkZXIpO1xuICB0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlO1xufVxuLmNscC1vcHQ6bGFzdC1jaGlsZHsgYm9yZGVyLWJvdHRvbTpub25lOyB9XG4uY2xwLW9wdDpob3ZlcnsgYmFja2dyb3VuZDp2YXIoLS1iNTApOyB9XG4uY2xwLXJhZGlve1xuICBmbGV4Om5vbmU7IHdpZHRoOjE3cHg7IGhlaWdodDoxN3B4OyBib3JkZXItcmFkaXVzOjUwJTtcbiAgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1zdWJ0bGUpOyBiYWNrZ3JvdW5kOiNmZmY7IHBvc2l0aW9uOnJlbGF0aXZlO1xufVxuLmNscC1vcHQuY2xwLXNlbCAuY2xwLXJhZGlveyBib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7IH1cbi5jbHAtb3B0LmNscC1zZWwgLmNscC1yYWRpbzo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6XCJcIjsgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OjIuNXB4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDp2YXIoLS1iNTAwKTtcbn1cblxuLyogcHJlLXN0YXJ0IC8gZmluaXNoICovXG4uY2xwLWlkbGV7XG4gIHBhZGRpbmc6NTZweCAyNHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZDojZmZmOyBib3JkZXItcmFkaXVzOjAgMCAxMHB4IDEwcHg7XG59XG4uY2xwLWlkbGUgcHsgY29sb3I6dmFyKC0tbXV0ZWQpOyBmb250LXNpemU6MTVweDsgZm9udC13ZWlnaHQ6NjAwOyBtYXgtd2lkdGg6NDgwcHg7IG1hcmdpbjowIGF1dG87IH1cbi5jbHAtZmluaXNoeyBwYWRkaW5nOjQ4cHggMjRweCA1NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZDojZmZmOyB9XG4uY2xwLWZpbmlzaCBoM3sgZm9udC1zaXplOjIycHg7IGZvbnQtd2VpZ2h0OjgwMDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9XG4uY2xwLWZpbmlzaCBweyBjb2xvcjp2YXIoLS1tdXRlZCk7IGZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo2MDA7IG1hcmdpbi1ib3R0b206MjJweDsgfVxuLmNscC1maW5pc2gtY2hlY2t7XG4gIGJhY2tncm91bmQ6dmFyKC0tZ3JlZW4pOyBjb2xvcjojZmZmOyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czoxMHB4O1xuICBmb250LXNpemU6MTZweDsgZm9udC13ZWlnaHQ6NzAwOyBwYWRkaW5nOjEzcHggMzJweDsgbWluLWhlaWdodDo0NHB4O1xuICBib3gtc2hhZG93OjAgMTBweCAyMnB4IC04cHggcmdiYSgxNiwxODUsMTI5LC41NSk7XG4gIHRyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlLCBiYWNrZ3JvdW5kIC4ycyBlYXNlO1xufVxuLmNscC1maW5pc2gtY2hlY2s6aG92ZXJ7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpOyBiYWNrZ3JvdW5kOiMwY2E2Nzg7IH1cblxuLyogPT09PT09PT09PT09IFJFU1VMVFMgPT09PT09PT09PT09ICovXG4uY2xwLXJlc3VsdHN7IG1hcmdpbi10b3A6MzBweDsgfVxuLmNscC1yZXN1bHRzIGgyeyBmb250LXNpemU6MjRweDsgZm9udC13ZWlnaHQ6ODAwOyBsZXR0ZXItc3BhY2luZzotLjAxZW07IG1hcmdpbi1ib3R0b206MTZweDsgfVxuLmNscC1yZXMtZ3JpZHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6YXV0byAxZnI7IGdhcDoxNnB4OyBhbGlnbi1pdGVtczpzdHJldGNoOyB9XG4uY2xwLWNhcmR7XG4gIGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOjE2cHg7IHBhZGRpbmc6MjJweDtcbiAgYm94LXNoYWRvdzowIDEwcHggMzBweCAtMjBweCByZ2JhKDE1LDIzLDQyLC4yNSksIDAgMnB4IDhweCAtNnB4IHJnYmEoMTUsMjMsNDIsLjA4KTtcbiAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBlYXNlLCBib3gtc2hhZG93IC4yNXMgZWFzZTtcbn1cbi5jbHAtY2FyZDpob3ZlcnsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6MCAxNnB4IDM2cHggLTIwcHggcmdiYSgxNSwyMyw0MiwuMyk7IH1cbi5jbHAtcmluZy1jYXJkeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6OHB4OyBtaW4td2lkdGg6MjIwcHg7IH1cbi5jbHAtcmluZy13cmFweyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTMycHg7IGhlaWdodDoxMzJweDsgfVxuLmNscC1yaW5nLXdyYXAgc3ZneyB0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IGRpc3BsYXk6YmxvY2s7IH1cbi5jbHAtcmluZy1udW17XG4gIHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDowOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjtcbiAgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBmb250LXdlaWdodDo4MDA7XG59XG4uY2xwLXJpbmctbnVtIGJ7IGZvbnQtc2l6ZToyOHB4OyBsaW5lLWhlaWdodDoxOyBjb2xvcjp2YXIoLS1iOTAwKTsgfVxuLmNscC1yaW5nLW51bSBzcGFueyBmb250LXNpemU6MTJweDsgY29sb3I6dmFyKC0tc3VidGxlKTsgZm9udC13ZWlnaHQ6NzAwOyB9XG4uY2xwLXJpbmctY2FyZCBoM3sgZm9udC1zaXplOjE0cHg7IGNvbG9yOnZhcigtLW11dGVkKTsgZm9udC13ZWlnaHQ6NzAwOyB9XG4uY2xwLXBhcnQtY2hpcHN7IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IGdhcDoxMHB4OyBtYXJnaW4tdG9wOjEycHg7IH1cbi5jbHAtcGFydC1jaGlwe1xuICBib3JkZXItcmFkaXVzOjMycHg7IHBhZGRpbmc6OHB4IDE2cHg7IGZvbnQtc2l6ZToxM3B4OyBmb250LXdlaWdodDo3MDA7XG4gIGJhY2tncm91bmQ6dmFyKC0tYjUwKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1iMTAwKTsgY29sb3I6dmFyKC0tYjkwMCk7XG59XG4uY2xwLXBhcnQtY2hpcCBieyBmb250LXdlaWdodDo4MDA7IH1cbi5jbHAtY2xiLXJvd3tcbiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxNHB4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luLXRvcDoxNnB4O1xuICBwYWRkaW5nOjE0cHggMTZweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBiYWNrZ3JvdW5kOnZhcigtLWI1MCk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7XG59XG4uY2xwLWNsYi1iYWRnZXtcbiAgYmFja2dyb3VuZDp2YXIoLS1jcmltc29uKTsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXNpemU6MTRweDtcbiAgYm9yZGVyLXJhZGl1czoxMHB4OyBwYWRkaW5nOjhweCAxNnB4O1xufVxuLmNscC1jbGItcm93IHB7IGZvbnQtc2l6ZToxM3B4OyBjb2xvcjp2YXIoLS1tdXRlZCk7IGZvbnQtd2VpZ2h0OjYwMDsgZmxleDoxOyBtaW4td2lkdGg6MjAwcHg7IH1cbi5jbHAtdHJhbnNjcmlwdHN7IG1hcmdpbi10b3A6MTZweDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDoxMHB4OyB9XG4uY2xwLXRyLWNhcmR7IGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOjE2cHg7IG92ZXJmbG93OmhpZGRlbjsgfVxuLmNscC10ci1oZWFke1xuICB3aWR0aDoxMDAlOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGdhcDoxMHB4O1xuICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OyBib3JkZXI6bm9uZTsgcGFkZGluZzoxNXB4IDIwcHg7IHRleHQtYWxpZ246bGVmdDtcbiAgZm9udC1zaXplOjE0cHg7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6dmFyKC0tdGV4dCk7IG1pbi1oZWlnaHQ6NDhweDtcbn1cbi5jbHAtdHItaGVhZDpob3ZlcnsgYmFja2dyb3VuZDp2YXIoLS1iNTApOyB9XG4uY2xwLXRyLWhlYWQgLmNscC10ci1jYXJldHsgY29sb3I6dmFyKC0tc3VidGxlKTsgZm9udC1zaXplOjExcHg7IHRyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlOyB9XG4uY2xwLXRyLWNhcmQuY2xwLW9wZW4gLmNscC10ci1jYXJldHsgdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOyB9XG4uY2xwLXRyLWJvZHl7IGRpc3BsYXk6bm9uZTsgcGFkZGluZzowIDIwcHggMThweDsgZm9udC1zaXplOjE0cHg7IGNvbG9yOnZhcigtLW11dGVkKTsgZm9udC13ZWlnaHQ6NTAwOyBsaW5lLWhlaWdodDoxLjc7IH1cbi5jbHAtdHItY2FyZC5jbHAtb3BlbiAuY2xwLXRyLWJvZHl7IGRpc3BsYXk6YmxvY2s7IH1cbi5jbHAtdHItdG9kb3sgY29sb3I6dmFyKC0tb3JhbmdlKTsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MTIuNXB4OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjhweDsgfVxuXG4vKiBzY3JvbGwgcmV2ZWFsICovXG4uY2xwLXJldnsgb3BhY2l0eTowOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgxNnB4KTsgdHJhbnNpdGlvbjpvcGFjaXR5IC41cyBlYXNlLCB0cmFuc2Zvcm0gLjVzIGVhc2U7IH1cbi5jbHAtcmV2LmNscC1pbnsgb3BhY2l0eToxOyB0cmFuc2Zvcm06bm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT0gUkVTUE9OU0lWRSA9PT09PT09PT09PT0gKi9cbkBtZWRpYSAobWF4LXdpZHRoOjcwMHB4KXtcbiAgLmNscC13cmFweyBwYWRkaW5nOjEwcHggMTBweCA0MHB4OyB9XG4gIC5jbHAtaGVyb3sgcGFkZGluZzoyOHB4IDIycHg7IGJvcmRlci1yYWRpdXM6MTZweDsgfVxuICAuY2xwLXF7IGZvbnQtc2l6ZToxNXB4OyB9XG4gIC5jbHAtZGR7IG1pbi1oZWlnaHQ6NDBweDsgfVxuICAuY2xwLWRkIC5jbHAtZGQtdGV4dHsgbWF4LXdpZHRoOjE4MHB4OyB9XG4gIC5jbHAtYmFyeyBmbGV4LXdyYXA6d3JhcDsgfVxuICAuY2xwLWJhci10aXRsZXsgZmxleC1iYXNpczoxMDAlOyB9XG4gIC5jbHAtcS1wYW5lbHsgcGFkZGluZzoxNnB4IDE0cHggMjZweDsgfVxuICAuY2xwLWludHJvLWJvZHl7IHBhZGRpbmctbGVmdDoyMHB4OyB9XG4gIC5jbHAtcmVzLWdyaWR7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7IH1cbiAgLmNscC1tZWRpYS1jYXJkeyBwYWRkaW5nOjE2cHg7IH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXtcbiAgLmNscC13cmFwICosIC5jbHAtd3JhcCAqOjpiZWZvcmUsIC5jbHAtd3JhcCAqOjphZnRlcntcbiAgICBhbmltYXRpb246bm9uZSAhaW1wb3J0YW50OyB0cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuY2xwLXJldnsgb3BhY2l0eToxOyB0cmFuc2Zvcm06bm9uZTsgfVxufVxuXG4uY2xwLWF1cm9yYSBzcGFue2ZpbHRlcjpibHVyKDM2cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfVxuLmNscC1oZXJvLXNoaW1tZXJ7d2lsbC1jaGFuZ2U6YmFja2dyb3VuZC1wb3NpdGlvbn1cbiI7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTt9KSgpOwoKJ3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgVEVTVF9EQVRBIFx1MjAxNCBzd2FwIGluIG5ldyBzZXRzIGhlcmUgd2l0aG91dCB0b3VjaGluZyBtYXJrdXAuCiAgIFNoYXBlOiB7IHBhcnRzOlt7IG5hbWUsIGhlYWRlclRpdGxlLCBpbnRyb1RpdGxlLCBpbnRyb0J1bGxldHNbXSwKICAgICAgICAgICAgcUluc3RydWN0aW9uLCB0cmFuc2NyaXB0LCBzZWN0aW9uczpbeyBsYWJlbCwgbWVkaWFUeXBlLAogICAgICAgICAgICBkdXJhdGlvbihzZWMpLCB0aW1lTWludXRlcywgbWVkaWFJbnN0cnVjdGlvbiwKICAgICAgICAgICAgcXVlc3Rpb25zOlt7IG4sIHN0ZW0sIG9wdGlvbnNbNF0sIGtleSgxLTQpLCB0b2RvPyB9XSB9XSB9XSB9CiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwp2YXIgVEVTVF9EQVRBID0geyJ0ZXN0TGFiZWwiOiJTZXQgMTEgXHUyMDEzIFByYWN0aWNlIFRlc3QgMSIsInNldE5vIjoiMTEiLCJ0ZXN0Tm8iOiIxIiwicGFydHMiOlt7Im5hbWUiOiJQYXJ0IDE6IExpc3RlbmluZyB0byBQcm9ibGVtIFNvbHZpbmciLCJoZWFkZXJUaXRsZSI6IlNldCAxMSBcdTIwMTMgUHJhY3RpY2UgVGVzdCAxIFx1MjAxMyBMaXN0ZW5pbmcgUGFydCAxOiBMaXN0ZW5pbmcgdG8gUHJvYmxlbSBTb2x2aW5nIiwiaW50cm9UaXRsZSI6Ikxpc3RlbmluZyB0byBQcm9ibGVtIFNvbHZpbmciLCJpbnRyb0J1bGxldHMiOlsiWW91IGFyZSBhYm91dCB0byBoZWFyIGEgY29udmVyc2F0aW9uIGJldHdlZW4gYSBtYW4gYW5kIGEgd29tYW4gYXQgdGhlIHRpbGUgc3RvcmUuIFRoZSB3b21hbiB3b3JrcyBhdCB0aGUgdGlsZSBzdG9yZSwgYW5kIHRoZSBtYW4gaXMgYSBjdXN0b21lci4gSXQgcGxheXMgaW4gdGhyZWUgc2VjdGlvbnMsIGFuZCBlYWNoIHNlY3Rpb24gcGxheXMgb25seSBvbmNlLiIsIkFmdGVyIGVhY2ggc2VjdGlvbiwgcXVlc3Rpb25zIHdpbGwgYXBwZWFyLiBDaG9vc2UgdGhlIGJlc3Qgd2F5IHRvIGFuc3dlciBlYWNoIHF1ZXN0aW9uLiJdLCJxSW5zdHJ1Y3Rpb24iOiJDaG9vc2UgdGhlIGJlc3Qgd2F5IHRvIGFuc3dlciBlYWNoIHF1ZXN0aW9uIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggXHUyNWJlICkuIiwidHJhbnNjcmlwdCI6IlBhcnQgMTogTGlzdGVuaW5nIHRvIFByb2JsZW0gU29sdmluZ1xuWW91IGFyZSBhYm91dCB0byBoZWFyIGEgY29udmVyc2F0aW9uIGJldHdlZW4gYSBtYW4gYW5kIGEgd29tYW4gYXQgdGhlIHRpbGUgc3RvcmUuIFRoZVxud29tYW4gd29ya3MgYXQgdGhlIHRpbGUgc3RvcmUsIGFuZCB0aGUgbWFuIGlzIGEgY3VzdG9tZXIuXG5TZWN0aW9uIDE6XG5XT01BTjogICAgICAgIEhpISBIb3cgY2FuIEkgaGVscCB5b3U\/XG5NQU46IEhpISBJXHUyMDE5dmUganVzdCBtb3ZlZCBpbnRvIHRoZSBhcmVhLiBUaGUgaG91c2UgSSBib3VnaHQgaXMgYSBiZWF1dGlmdWwgb2xkIGhvbWVcdTIwMTRcbm1heWJlIGJ1aWx0IGFib3V0IGEgY2VudHVyeSBhZ29cdTIwMTRidXQgdGhlIHRpbGVzIGhhdmUgcHJvYmFibHkgYmVlbiB0aGVyZSBmb3IgYSBmZXdcbmRlY2FkZXMgYXQgbGVhc3QhXG5XT01BTjogICAgICAgIEFoIHllcyAuIC4gLiB0aGVzZSBvbGQgaG91c2VzISBJcyBpdCB0aGUgdGlsZXMgaW4gdGhlIGJhdGhyb29tLCBvciB0aGUga2l0Y2hlblxudGlsZXM\/XG5NQU46IFdlbGwsIHRoZSBvbmVzIGluIHRoZSBiYXRocm9vbSBuZWVkIHdvcmsgcmlnaHQgYXdheVx1MjAxNHNldmVyYWwgb2YgdGhlbSBhcmVcbmNyYWNrZWQgb3IgYnJva2VuLiBUaGUgb25lcyBpbiB0aGUga2l0Y2hlbiBqdXN0IGhhdmUgYSB2ZXJ5IG9sZC1mYXNoaW9uZWQgc3R5bGUsIHNvIG1heWJlXG5JXHUyMDE5bGwgZG8gdGhvc2UgbGF0ZXIuXG5XT01BTjogT0suIFNvLCBpdCBzb3VuZHMgbGlrZSB3ZSBrbm93IHdoaWNoIHJvb20gdG8gc3RhcnQgd2l0aCB0aGVuLiBEbyB5b3UgaGF2ZVxudGhlIG1lYXN1cmVtZW50cz9cbk1BTjogSXRcdTIwMTlzIGFib3V0XHUyMDE0d2VsbFx1MjAxNGl0XHUyMDE5cyBhIHNtYWxsIGJhdGhyb29tLiBNYXliZSBhdmVyYWdlLXNpemVkLlxuV09NQU46IFdlbGwsIGNvdWxkIHlvdSBjb21lIGJhY2ssIG1heWJlIHRvbW9ycm93LCB3aXRoIHRoZSBwcmVjaXNlIGRldGFpbHM\/XG5UaG9zZSB3aWxsIGhlbHAgdXMgbmFycm93IGRvd24gb3VyIG9wdGlvbnMuIFdlIFx1MjAxOHJlIG9wZW4gZnJvbSA5OjAwIGEubS4gdG8gNTowMCBwLm0uXG5ldmVyeSBkYXkuXG5TZWN0aW9uIDI6XG5NQU46IEhpIGFnYWluISBIZXJlIGFyZSB0aGUgbWVhc3VyZW1lbnRzLlxuV09NQU46IEdyZWF0ISBUaGVzZSB3aWxsIGhlbHAgdXMgY2hvb3NlIHRoZSByaWdodCBzaXplcyBhbmQgcXVhbnRpdGllcy4gU28sIG92ZXJcbmhlcmUsIHdlIGhhdmUgd2FsbCB0aWxlcywgYW5kIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBzdG9yZSwgd2UgaGF2ZSBvdXIgc2VsZWN0aW9uIG9mIGZsb29yXG50aWxlc1xuTUFOOiBXZWxsLCBJXHUyMDE5ZCBsaWtlIG15IHdob2xlIGJhdGhyb29tIHRvIGxvb2sgdGhlIHNhbWUuIFdoeSBkb25cdTIwMTl0IEkgdHJ5IHRoZXNlIHdoaXRlXG50aWxlcz8gVGhleSBsb29rIG5pY2UgYW5kIHBsYWluLiBJIGNvdWxkIGp1c3QgdXNlIHRoZW0gZm9yIGV2ZXJ5dGhpbmcuXG5XT01BTjogV2VsbCwgdGhvc2UgYXJlIG5pY2UsIGJ1dCBtYW55IHBlb3BsZSB3b3VsZCBiZSB3b3JyaWVkIGFib3V0IHNhZmV0eS4gRmxvb3JcbnRpbGVzXHUyMDE0aW4gdGhlIGtpdGNoZW4sIGFuZCBlc3BlY2lhbGx5IGluIHRoZSBiYXRocm9vbVx1MjAxNGdlbmVyYWxseSBoYXZlIGEgcm91Z2gsIGJ1bXB5XG50ZXh0dXJlLiBZb3Uga25vdywgc28geW91IGRvblx1MjAxOXQgc2xpcCBvbiBhIHdldCBmbG9vci4gSG93IGFib3V0IHRob3NlIG9uZXMgb3ZlciB0aGVyZT9cbk1BTjogV2hvYSEgSSBkb25cdTIwMTl0IGxpa2UgdGhhdCBwYXR0ZXJuIG9uIHRoZSB0aWxlcyBhdCBhbGwhXG5XT01BTjogICAgICAgIFJpZ2h0LiBXZWxsLCBob3cgYWJvdXQgdGhvc2UgZmxvd2VyZWQgb25lcz9cbk1BTjogWW91IGtub3csIGlmIElcdTIwMTltIHVzaW5nIHRoZXNlIHdoaXRlIG9uZXMgZm9yIHRoZSB3YWxsLCBwcm9iYWJseSB0aG9zZSBvbmVzXHUyMDE0YmVsb3dcbnRoZSBmbG93ZXJlZCBvbmVzXHUyMDE0d2lsbCBiZSBiZXN0IGZvciB0aGUgZmxvb3IuIFRob3NlIHdpbGwgZ2l2ZSBtZSBhIHNpbWlsYXIgbG9va1xudGhyb3VnaG91dCB0aGUgcm9vbS5cblNlY3Rpb24gMzpcbldPTUFOOiAgICAgICAgSGVsbG8gYWdhaW4hIEhvdyBhcmUgdGhlIHdoaXRlIHRpbGVzIHdvcmtpbmcgb3V0PyBBcmUgeW91IGhhcHB5IHdpdGhcbnRoZW0\/XG5NQU46IFRoZXkgbG9vayBncmVhdCBzbyBmYXIhIEkgcmVhbGx5IGFwcHJlY2lhdGUgeW91ciBhZHZpY2UuIEJ1dCBJIHNlZW0gdG8gaGF2ZSBydW4gb3V0LlxuV09NQU46ICAgICAgICBPaCBubyEgSW4gdGhlIG1pZGRsZSBvZiB5b3VyIHByb2plY3QhIFRoYXRcdTIwMTlzIHRvbyBiYWQuXG5NQU46IFllcy4gSXRcdTIwMTlzIGNvbXBsZXRlbHkgbXkgZmF1bHRcdTIwMTRJIG11c3QgaGF2ZSBtYWRlIGEgbWlzdGFrZSB3aGVuIG1lYXN1cmluZy5cbldPTUFOOiBPSy4gSVx1MjAxOW0ganVzdCBnb25uYSBsb29rIHVwIHRoZSBpbnZlbnRvcnkgaW4gb3VyIGRhdGFiYXNlLiBIbW0gLiAuIC4gaXQgbG9va3Ncbmxpa2Ugd2UgYXJlIG91dCBvZiBzdG9jayBmb3IgYm90aC4gU2hvdWxkIEkgb3JkZXIgdGhlbSBmcm9tIHRoZSBtYW51ZmFjdHVyZXIgZm9yIHlvdT9cbk1BTjogWWVzLCBwbGVhc2UgcHV0IGluIHRoZSBvcmRlci4gU2luY2UgSVx1MjAxOW0gaGVyZSwgSVx1MjAxOWxsIHRha2UgYSBsb29rIGF0IHRoZSBraXRjaGVuIHRpbGVcbnNlY3Rpb25cbldPTUFOOiAgICAgICAgVGhhdFx1MjAxOXMgcmlnaHQhIFlvdSBzYWlkIHRoZSBraXRjaGVuIGlzIHlvdXIgbmV4dCBwcm9qZWN0ISIsInNlY3Rpb25zIjpbeyJsYWJlbCI6IkNvbnZlcnNhdGlvbiBcdTIwMTQgU2VjdGlvbiAxIiwiZHVyYXRpb24iOjUwLCJtZWRpYUluc3RydWN0aW9uIjoiTGlzdGVuIHRvIHRoZSBmb2xsb3dpbmcgY29udmVyc2F0aW9uLiBZb3Ugd2lsbCBoZWFyIGl0IG9ubHkgb25jZS4iLCJtZWRpYVR5cGUiOiJhdWRpbyIsInRpbWVNaW51dGVzIjoyLCJxdWVzdGlvbnMiOlt7Im4iOjEsInN0ZW0iOiJXaGF0IGlzIHRoZSBtYW4gcGxhbm5pbmcgdG8gZG8\/Iiwib3B0aW9ucyI6WyJQZXJmb3JtIGEgcmVwYWlyIGluIGhpcyBiYXRocm9vbS4iLCJTZWxsIGFuIG9sZCBob3VzZSBpbiB0aGUgYXJlYS4iLCJSZWRlY29yYXRlIHRoZSBraXRjaGVuIHRoaXMgd2Vlay4iLCJCdWlsZCBhIG5ldyBob21lIGZyb20gc2NyYXRjaC4iXSwia2V5IjowLCJyZWNvbiI6dHJ1ZX0seyJuIjoyLCJzdGVtIjoiV2h5IGlzIHRoZSB3b21hbiB1bmFibGUgdG8gaGVscCB0aGUgbWFuIHJpZ2h0IG5vdz8iLCJvcHRpb25zIjpbIlNoZSBpcyBhYm91dCB0byBjbG9zZSB0aGUgc3RvcmUuIiwiU2hlIGhhcyBydW4gb3V0IG9mIGZsb29yIHRpbGVzLiIsIlNoZSBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uLiIsIlNoZSBuZWVkcyB0byBjaGVjayB3aXRoIGEgbWFuYWdlci4iXSwia2V5IjoyLCJyZWNvbiI6dHJ1ZX1dfSx7ImxhYmVsIjoiQ29udmVyc2F0aW9uIFx1MjAxNCBTZWN0aW9uIDIiLCJkdXJhdGlvbiI6NTQsIm1lZGlhSW5zdHJ1Y3Rpb24iOiJMaXN0ZW4gdG8gdGhlIG5leHQgcGFydCBvZiB0aGUgY29udmVyc2F0aW9uLiBZb3Ugd2lsbCBoZWFyIGl0IG9ubHkgb25jZS4iLCJtZWRpYVR5cGUiOiJhdWRpbyIsInRpbWVNaW51dGVzIjoyLCJxdWVzdGlvbnMiOlt7Im4iOjMsInN0ZW0iOiJXaGF0IGRpZCB0aGUgbWFuIHdhbnQgdG8gZG8\/Iiwib3B0aW9ucyI6WyJNYXRjaCB0aGUga2l0Y2hlbiBhbmQgYmF0aHJvb20gY29sb3Vycy4iLCJCdXkgdGhlIHNhbWUgdGlsZXMgZm9yIGhpcyBiYXRocm9vbSBmbG9vciBhbmQgd2FsbHMuIiwiUmV0dXJuIHRoZSB0aWxlcyBoZSBib3VnaHQgZWFybGllci4iLCJDaG9vc2UgYSBib2xkIHBhdHRlcm4gZm9yIHRoZSB3YWxscy4iXSwia2V5IjoxLCJyZWNvbiI6dHJ1ZX0seyJuIjo0LCJzdGVtIjoiV2hhdCBwcm9ibGVtIGRvZXMgdGhlIHdvbWFuIHNlZSB3aXRoIHRoZSBtYW4ncyB0aWxlIGNob2ljZT8iLCJvcHRpb25zIjpbIlRoZSB0aWxlIGNvbG91ciB3aWxsIHNob3cgZXZlcnkgc3RhaW4uIiwiVGhlIHRpbGUgc2l6ZSBpcyB0b28gbGFyZ2UgZm9yIHRoZSByb29tLiIsIlRoZSB0aWxlIHRleHR1cmUgbWF5IGJlIHRvbyBzbW9vdGguIiwiVGhlIHRpbGUgcGF0dGVybiBpcyBvbGQtZmFzaGlvbmVkLiJdLCJrZXkiOjIsInJlY29uIjp0cnVlfSx7Im4iOjUsInN0ZW0iOiJXaGljaCBmbG9vciB0aWxlcyB3aWxsIHRoZSBtYW4gcHJvYmFibHkgYnV5PyIsIm9wdGlvbnMiOlsiRmxvd2VyZWQgcGF0dGVybmVkIHRpbGVzLiIsIlBsYWluIHdoaXRlIGZsb29yIHRpbGVzLiIsIlJvdWdoIGdyZXkgc3RvbmUgdGlsZXMuIiwiQnJpZ2h0bHkgY29sb3VyZWQgdGlsZXMuIl0sImtleSI6MSwicmVjb24iOnRydWV9XX0seyJsYWJlbCI6IkNvbnZlcnNhdGlvbiBcdTIwMTQgU2VjdGlvbiAzIiwiZHVyYXRpb24iOjM2LCJtZWRpYUluc3RydWN0aW9uIjoiTGlzdGVuIHRvIHRoZSBmaW5hbCBwYXJ0IG9mIHRoZSBjb252ZXJzYXRpb24uIFlvdSB3aWxsIGhlYXIgaXQgb25seSBvbmNlLiIsIm1lZGlhVHlwZSI6ImF1ZGlvIiwidGltZU1pbnV0ZXMiOjIsInF1ZXN0aW9ucyI6W3sibiI6Niwic3RlbSI6IldoeSBoYXMgdGhlIG1hbiByZXR1cm5lZCB0byB0aGUgc3RvcmU\/Iiwib3B0aW9ucyI6WyJUbyByZXR1cm4gc29tZSBicm9rZW4gdGlsZXMuIiwiVG8gYXNrIGZvciBhIHJlZnVuZCBvbiBoaXMgb3JkZXIuIiwiVG8gcHVyY2hhc2UgbW9yZSBiYXRocm9vbSB0aWxlcy4iLCJUbyBjb21wbGFpbiBhYm91dCB0aGUgYWR2aWNlLiJdLCJrZXkiOjIsInJlY29uIjp0cnVlfSx7Im4iOjcsInN0ZW0iOiJIb3cgZG9lcyB0aGUgd29tYW4gcmVzcG9uZCB0byB0aGUgbWFuPyIsIm9wdGlvbnMiOlsiU2hlIGZlZWxzIGJhZGx5IGFib3V0IHRoZSBtYW4ncyBwcm9ibGVtLiIsIlNoZSBibGFtZXMgdGhlIG1hbiBmb3IgdGhlIG1pc3Rha2UuIiwiU2hlIHJlZnVzZXMgdG8gcGxhY2UgYW5vdGhlciBvcmRlci4iLCJTaGUgaWdub3JlcyB0aGUgbWFuJ3MgcmVxdWVzdC4iXSwia2V5IjowLCJyZWNvbiI6dHJ1ZX0seyJuIjo4LCJzdGVtIjoiV2hhdCBkb2VzIHRoZSB3b21hbiBsb29rIGZvcj8iLCJvcHRpb25zIjpbIkEgY2hlYXBlciBicmFuZCBvZiB0aWxlcy4iLCJUaGUgc2FtZSB0aWxlcyBpbiBjdXJyZW50IHN0b2NrLiIsIkEgZGlmZmVyZW50IHN0b3JlIGxvY2F0aW9uLiIsIlRoZSBtYW4ncyBvcmlnaW5hbCByZWNlaXB0LiJdLCJrZXkiOjEsInJlY29uIjp0cnVlfV19XX0seyJuYW1lIjoiUGFydCAyOiBMaXN0ZW5pbmcgdG8gYSBEYWlseSBMaWZlIENvbnZlcnNhdGlvbiIsImhlYWRlclRpdGxlIjoiU2V0IDExIFx1MjAxMyBQcmFjdGljZSBUZXN0IDEgXHUyMDEzIExpc3RlbmluZyBQYXJ0IDI6IExpc3RlbmluZyB0byBhIERhaWx5IExpZmUgQ29udmVyc2F0aW9uIiwiaW50cm9UaXRsZSI6Ikxpc3RlbmluZyB0byBhIERhaWx5IExpZmUgQ29udmVyc2F0aW9uIiwiaW50cm9CdWxsZXRzIjpbIllvdSB3aWxsIGhlYXIgYSBjb252ZXJzYXRpb24gYmV0d2VlbiB0d28gcGVvcGxlLCBhIGJyb3RoZXIgYW5kIGEgc2lzdGVyLCB3aG8gYXJlIGF0IGEgbWFsbC4gSXQgcGxheXMgb25seSBvbmNlLiIsIkFmdGVyIHRoZSBjb252ZXJzYXRpb24sIHF1ZXN0aW9ucyB3aWxsIGFwcGVhci4gQ2hvb3NlIHRoZSBiZXN0IHdheSB0byBhbnN3ZXIgZWFjaCBxdWVzdGlvbi4iXSwicUluc3RydWN0aW9uIjoiQ2hvb3NlIHRoZSBiZXN0IHdheSB0byBhbnN3ZXIgZWFjaCBxdWVzdGlvbiBmcm9tIHRoZSBkcm9wLWRvd24gbWVudSAoIFx1MjViZSApLiIsInRyYW5zY3JpcHQiOiJQYXJ0IDI6IExpc3RlbmluZyB0byBhIERhaWx5IExpZmUgQ29udmVyc2F0aW9uXG5Zb3Ugd2lsbCBoZWFyIGEgY29udmVyc2F0aW9uIGJldHdlZW4gdHdvIHBlb3BsZSwgYSBicm90aGVyIGFuZCBhIHNpc3Rlciwgd2hvIGFyZSBhdCBhXG5tYWxsLlxuV09NQU46IE9rYXksIHNvIHlvdSBoYXZlIGEgYnVuY2ggb2Ygc3R1ZmYgeW91IHdhbnQgdG8gYnV5LCBhbmQgSSBoYXZlIGEgYnVuY2ggb2ZcbnN0dWZmIEkgd2FudCB0byBidXkgLiAuIC4gU2hhbGwgd2UganVzdCBzcGxpdCB1cCBhbmQgbWVldCBiYWNrIGF0IHRoZSBmb29kIGNvdXJ0IGZvciBsdW5jaD9cbkluLCBzYXksIGFuIGhvdXI\/XG5NQU46IEFjdHVhbGx5LCBJIHdhcyBob3BpbmcgeW91IG1pZ2h0IGNvbWUgd2l0aCBtZSBhdCBsZWFzdCB0byB0aGUgZnJhbWluZyBzdG9yZS4gWW91XG5oYXZlIGEgbXVjaCBiZXR0ZXIgZXllIGZvciB0aGF0IGtpbmQgb2YgdGhpbmcuIEkga25vdyB3aGF0IHNvcnQgb2YgcG9zdGVyIEkgd2FudCB0byBidXkgZm9yXG5NaWNoYWVsLCBidXQgSSBoYXZlIG5vIGlkZWEgd2hhdCBraW5kIG9mIGZyYW1lIGl0IHdpbGwgbG9vayBnb29kIGluLlxuV09NQU46ICAgICAgICBCdXQgdGhlIHBlcnNvbiBhdCB0aGUgc3RvcmUgc2hvdWxkIGJlIGFibGUgdG8gaGVscCB5b3Ugd2l0aCB0aGF0LlxuTUFOOiBcdTIwMWNTaG91bGRcdTIwMWQgaXMgdGhlIGtleSB3b3JkLiBJXHUyMDE5dmUgbm90aWNlZCBtb3JlIGFuZCBtb3JlIHRoYXQgdGhlIHBlb3BsZSB3aG8gd29yayBpblxuc3RvcmVzIGRvblx1MjAxOXQgaGF2ZSBhbnkgc3BlY2lhbCBleHBlcnRpc2UgYWJvdXQgdGhlIHN0dWZmIHNvbGQgaW4gdGhhdCBzdG9yZS4gSSB0cmllZCB0byBidXkgYVxucGFpciBvZiBzaG9lcyB0aGUgb3RoZXIgZGF5LCBhbmQgSSBzd2VhciB0aGUgcGVyc29uIGRpZG5cdTIwMTl0IGtub3cgYSBzaG9lbGFjZSBmcm9tIGEgYnVja2xlLlxuV09NQU46IFlvdSBrbm93LCB5b3VcdTIwMTlyZSByaWdodDogSSBoYWQgdGhlIHNhbWUgZXhwZXJpZW5jZSB3aGVuIEkgdHJpZWQgdG8gYnV5IGFcbnRvYXN0ZXIuIFNvIG9rYXksIElcdTIwMTlsbCBjb21lIHdpdGggeW91IHRvIHRoZSBmcmFtaW5nIHN0b3JlLCBidXQgSVx1MjAxOWQgcmVhbGx5IGxpa2UgdG8gZ28gdG8gbXlcbmZhdm91cml0ZSBzdG9yZSBmaXJzdC4gVGhleSBoYXZlIGEgc2FsZSBvbiBzd2VhdHNoaXJ0cywgYW5kIEkgd2FudCB0byBnZXQgdGhlcmUgYmVmb3JlXG50aGV5XHUyMDE5cmUgc29sZCBvdXQgb2YgdGhlIGNvbG91ciBhbmQgc2l6ZSBJIHdhbnQuXG5NQU46IEZhaXIgZW5vdWdoLiBCdXQgc2luY2UgSVx1MjAxOW0gbm90IHRocmlsbGVkIGFib3V0IGdvaW5nIGludG8gY2xvdGhpbmcgc3RvcmVzLCBJXHUyMDE5bGwganVzdFxud2FpdCBvdXRzaWRlLCBva2F5P1xuV09NQU46ICAgICAgICBObyBwcm9ibGVtLiBBY3R1YWxseSwgSSB0aGluayB0aGF0XHUyMDE5cyB3aGVyZSB0aGUgZm91bnRhaW4gaXMsIHdpdGggYWxsIHRoZVxuYmVuY2hlcy5cbk1BTjogUGVyZmVjdC4gQWZ0ZXIgdGhhdCwgSSBkb25cdTIwMTl0IG1pbmQgc3BsaXR0aW5nIHVwLiBXaWxsIGl0IHJlYWxseSB0YWtlIHlvdSBqdXN0IGFuIGhvdXI\/XG5JdFx1MjAxOXMgU2F0dXJkYXlcdTIwMTR0aGlzIHBsYWNlIGlzIGNyb3dkZWQhXG5XT01BTjogICAgICAgIEdvb2QgcG9pbnQuIEJldHRlciBtYWtlIGl0IHR3byBob3Vycy4gTWF5YmUgYnkgdGhlbiwgdGhlIGZvb2QgY291cnQgd29uXHUyMDE5dFxuYmUgYXMgYnVzeS5cbk1BTjogVGhhdCB3b3VsZCBiZSBuaWNlLiBJIGhhdGUgYmVpbmcgam9zdGxlZCB3aGVuIElcdTIwMTl2ZSBnb3QgYSBmdWxsIHRyYXkgb2YgZm9vZC4gQW5kIElcdTIwMTltXG5wbGFubmluZyB0byBnZXQgZXhhY3RseSB0aGF0IGF0IHRoZSBuZXcgVGhhaSByZXN0YXVyYW50IHRoYXRcdTIwMTlzIG9wZW5lZCB1cC4gVGhleSBoYXZlIGFcbmJ1ZmZldC5cbldPTUFOOiAgICAgICAgUmVhbGx5PyBJIGRpZG5cdTIwMTl0IGtub3cgdGhhdC4gR3Vlc3Mgd2hvIGVsc2Ugd2lsbCBiZSBnZXR0aW5nIGEgZnVsbCB0cmF5IG9mXG5mb29kISIsInNlY3Rpb25zIjpbeyJsYWJlbCI6IkNvbnZlcnNhdGlvbiIsImR1cmF0aW9uIjo5MCwibWVkaWFJbnN0cnVjdGlvbiI6Ikxpc3RlbiB0byB0aGUgZm9sbG93aW5nIGNvbnZlcnNhdGlvbi4gWW91IHdpbGwgaGVhciBpdCBvbmx5IG9uY2UuIEl0IGlzIGFib3V0IDIgbWludXRlcyBsb25nLiIsIm1lZGlhVHlwZSI6ImF1ZGlvIiwidGltZU1pbnV0ZXMiOjMsInF1ZXN0aW9ucyI6W3sibiI6MSwic3RlbSI6IldoYXQgYXJlIHRoZXkgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQ\/Iiwib3B0aW9ucyI6WyJXaGF0IGdpZnQgdG8gYnV5IGZvciBNaWNoYWVsLiIsIldobyBnb2VzIHdoZXJlLCBhbmQgd2hlbi4iLCJXaGljaCByZXN0YXVyYW50IHNlcnZlcyBsdW5jaC4iLCJIb3cgbXVjaCBtb25leSB0byBzcGVuZC4iXSwia2V5IjoxLCJyZWNvbiI6dHJ1ZX0seyJuIjoyLCJzdGVtIjoiV2h5IGRvZXMgdGhlIG1hbiB3YW50IHRoZSB3b21hbiB0byBjb21lIHdpdGggaGltIHRvIHRoZSBmcmFtaW5nIHN0b3JlPyIsIm9wdGlvbnMiOlsiSGUgdmFsdWVzIGhlciBqdWRnZW1lbnQgYWJvdXQgcGljdHVyZSBmcmFtZXMuIiwiSGUgd2FudHMgaGVyIHRvIHBheSBmb3IgdGhlIHBvc3Rlci4iLCJIZSBuZWVkcyBoZXIgdG8gY2FycnkgdGhlIGZyYW1lLiIsIkhlIGhvcGVzIHNoZSB3aWxsIGRyaXZlIGhpbSBob21lLiJdLCJrZXkiOjAsInJlY29uIjp0cnVlfSx7Im4iOjMsInN0ZW0iOiJXaGF0IGxpa2VseSBoYXBwZW5lZCB3aGVuIHRoZSB3b21hbiB0cmllZCB0byBidXkgYSB0b2FzdGVyPyIsIm9wdGlvbnMiOlsiU2hlIGJvdWdodCB0aGUgd3Jvbmcgc2l6ZS4iLCJTaGUgd2FzIHVuYWJsZSB0byBnZXQgaW5mb3JtZWQgYWR2aWNlLiIsIlNoZSBmb3VuZCB0aGUgc3RvcmUgd2FzIGNsb3NlZC4iLCJTaGUgcmV0dXJuZWQgaXQgdGhlIG5leHQgZGF5LiJdLCJrZXkiOjEsInJlY29uIjp0cnVlfSx7Im4iOjQsInN0ZW0iOiJXaGF0IGRvZXMgdGhlIHdvbWFuIHBsYW4gdG8gZG8gYXQgdGhlIGZvb2QgY291cnQ\/Iiwib3B0aW9ucyI6WyJNZWV0IGEgZnJpZW5kIGZvciBjb2ZmZWUuIiwiV2FpdCBvdXRzaWRlIGJ5IHRoZSBmb3VudGFpbi4iLCJCdXkgYSBsb3Qgb2YgZm9vZCBmcm9tIGEgbmV3IHJlc3RhdXJhbnQuIiwiTG9vayBmb3IgYSBzYWxlIG9uIHN3ZWF0c2hpcnRzLiJdLCJrZXkiOjIsInJlY29uIjp0cnVlfSx7Im4iOjUsInN0ZW0iOiJXaGF0IHdvcmQgYmVzdCBkZXNjcmliZXMgdGhlIG1hbGw\/Iiwib3B0aW9ucyI6WyJxdWlldCIsImJ1c3kiLCJlbXB0eSIsIm1vZGVybiJdLCJrZXkiOjEsInJlY29uIjp0cnVlfV19XX0seyJuYW1lIjoiUGFydCAzOiBMaXN0ZW5pbmcgZm9yIEluZm9ybWF0aW9uIiwiaGVhZGVyVGl0bGUiOiJTZXQgMTEgXHUyMDEzIFByYWN0aWNlIFRlc3QgMSBcdTIwMTMgTGlzdGVuaW5nIFBhcnQgMzogTGlzdGVuaW5nIGZvciBJbmZvcm1hdGlvbiIsImludHJvVGl0bGUiOiJMaXN0ZW5pbmcgZm9yIEluZm9ybWF0aW9uIiwiaW50cm9CdWxsZXRzIjpbIllvdSB3aWxsIGhlYXIgYSBjb252ZXJzYXRpb24gYmV0d2VlbiBhIG1hbiBhbmQgYSB3b21hbi4gSXQgcGxheXMgb25seSBvbmNlLiIsIkFmdGVyIHRoZSBjb252ZXJzYXRpb24sIHF1ZXN0aW9ucyB3aWxsIGFwcGVhci4gQ2hvb3NlIHRoZSBiZXN0IHdheSB0byBhbnN3ZXIgZWFjaCBxdWVzdGlvbi4iXSwicUluc3RydWN0aW9uIjoiQ2hvb3NlIHRoZSBiZXN0IHdheSB0byBhbnN3ZXIgZWFjaCBxdWVzdGlvbiBmcm9tIHRoZSBkcm9wLWRvd24gbWVudSAoIFx1MjViZSApLiIsInRyYW5zY3JpcHQiOiJQYXJ0IDM6IExpc3RlbmluZyBmb3IgSW5mb3JtYXRpb25cbllvdSB3aWxsIGhlYXIgYSBjb252ZXJzYXRpb24gYmV0d2VlbiBhIG1hbiBhbmQgYSB3b21hbi5cbldPTUFOOiAgICAgICAgR29vZCBtb3JuaW5nLiBOb3J0aHdlc3QgSHlkcm8uIENvbnN0YW5jZSBzcGVha2luZy4gSG93IGNhbiBJIGhlbHBcbnlvdT9cbk1BTjogWW91IGNhbiBoZWxwIG1lIGZlZWwgbGVzcyBjb25mdXNlZCwgSSBob3BlLiBJIGxpdmUgYXQgNzQzIFJvc2Vtb3VudCBBdmVudWUsXG5BcGFydG1lbnQgNS5cbldPTUFOOiBPSy4gT25lIG1vbWVudCBwbGVhc2Ugd2hpbGUgSSBicmluZyB1cCB5b3VyIGFjY291bnQuIFBlcmZlY3QuIEhvdyBjYW4gSVxuaGVscCB5b3UgdG9kYXksIHNpcj9cbk1BTjogSVx1MjAxOXZlIGJlZW4gbGl2aW5nIGhlcmUgYWxtb3N0IGZvdXIgbW9udGhzLCBzaW5jZSBEZWNlbWJlci4gWWVzdGVyZGF5IG15IGxhbmRsb3JkXG50b2xkIG1lIEkgc2hvdWxkXHUyMDE5dmUgcGhvbmVkIHlvdSB0byBzZXQgdXAgbXkgaHlkcm8gYWNjb3VudCBhbmQgYXJyYW5nZSB0byBtYWtlXG5wYXltZW50cy4gSGVyZSBpdCBpcyBsYXRlIE1hcmNoLiBJIGhhdmVuXHUyMDE5dCByZWNlaXZlZCBhIHNpbmdsZSBoeWRybyBiaWxsLCBhbmQgSSBoYXZlblx1MjAxOXQgcGFpZFxuTm9ydGh3ZXN0IEh5ZHJvIG9uZSBjZW50LiBUaGUgZWxlY3RyaWNpdHkgYmlsbCBmb3IgdGhpcyBhcGFydG1lbnQgbXVzdCBiZSB0aHJlZSBtb250aHNcbm92ZXJkdWUuXG5XT01BTjogICAgICAgIFdlbGwgLiAuIC4gYWN0dWFsbHksIGl0IGFwcGVhcnMgdGhhdCBzb21lb25lXHUyMDE5cyBiZWVuIHBheWluZyB0aGUgY29zdHMgZm9yIHlvdS5cbk1BTjogU2VyaW91c2x5PyBXaG8\/XG5XT01BTjogICAgICAgIElcdTIwMTltIGFmcmFpZCBJXHUyMDE5bSBub3QgYWxsb3dlZCB0byBkaXNjbG9zZSB0aGF0IGluZm9ybWF0aW9uLlxuTUFOOiBXYXMgaXQgdGhlIGxhc3QgdGVuYW50IHdobyBsaXZlZCBoZXJlPyBJIGtub3cgc2hlIG1vdmVkIHRvIEJlaWppbmcuIERpZG5cdTIwMTl0IHNoZVxubm90aWZ5IHlvdSB0aGF0IHNoZVx1MjAxOWQgbW92ZWQgb3V0IGFuZCBjYW5jZWxsZWQgaGVyIGh5ZHJvIGFjY291bnQ\/XG5XT01BTjogSVx1MjAxOW0gYWZyYWlkIEkgY2FuXHUyMDE5dCBkaXNjbG9zZSB0aGF0IHBlcnNvbmFsIGluZm9ybWF0aW9uLiBCdXQgSSBjYW4gdGVsbCB5b3UgdGhhdFxud2Ugd2lsbCByZWdpc3RlciB5b3UgYXMgcmVzcG9uc2libGUgZm9yIHRoaXMgYWNjb3VudCwgYW5kIHdlXHUyMDE5bGwgc2VuZCB5b3UgYSBoeWRybyBiaWxsIGZvciBhXG50b3RhbCBvZiAkMjQwLCBjb3ZlcmluZyBEZWNlbWJlciAxc3QgdGhyb3VnaCBNYXJjaCAzMXN0LiBBbnkgcGVyc29uIG9yIG9yZ2FuaXphdGlvblxud2hvIHdhcyBwYXlpbmcgeW91ciBoeWRybyBiaWxsIHdpbGwgYmUgcmVpbWJ1cnNlZC5cbk1BTjogTm8gcHJvYmxlbS4gSVx1MjAxOW0gcmVzcG9uc2libGUgZm9yIHRoZSBiaWxsLCBhbmQgSSB3YW50IHRvIHBheS4gSSB3YXMgd29ycmllZCB0aGF0IG15XG5lbGVjdHJpY2l0eSB3b3VsZCBiZSBjdXQgb2ZmIGZvciBub25wYXltZW50LlxuV09NQU46IEFjdHVhbGx5LCBOb3J0aHdlc3QgSHlkcm8gaGFzIGEgcG9saWN5IG9mIG5vdCBjdXR0aW5nIG9mZiBwZW9wbGVcdTIwMTlzXG5lbGVjdHJpY2l0eSBkdXJpbmcgdGhlIHdpbnRlciBtb250aHMuIEl0XHUyMDE5cyAyMCBiZWxvdyB6ZXJvIG91dHNpZGUuIFBlb3BsZSAuIC4gLiB3ZWxsLCB0aGV5XG5kZXBlbmQgb24gdXMgdG8gc3Vydml2ZS4gQnV0IC4gLiAuIGlmIGFuIGFjY291bnQgZ29lcyB1bnBhaWQgZm9yIHRocmVlIG1vbnRocyBpbiB0aGVcbnN1bW1lciwgdGhlbiB3ZSBkbyBjdXQgb2ZmIHRoZSBwb3dlci5cbk1BTjogVGhhdFx1MjAxOXMgYSBnb29kIHBvbGljeSEgTm90IHRoYXQgSSdtIHRoZSB0eXBlIG9mIHBlcnNvbiB3aG8gZG9lc25cdTIwMTl0IHBheSBteSBiaWxscywgYnV0XG5pdFx1MjAxOXMgZ29vZCB0byBrbm93LiAsIHNvdW5kcyBnb29kISBXb3VsZCB5b3UgYmUgYWJsZSB0byBzaG93IG1lIHdoZXJlIEkgY291bGQgZ2V0IGFsbFxudGhlc2UgdGhpbmdzP1xuV09NQU46ICAgICAgICBXZWxsLCB3ZVx1MjAxOXJlIGhhcHB5IHRvIGhlbHAuXG5NQU46IFRoYW5rIGdvb2RuZXNzIGl0XHUyMDE5cyB3aW50ZXIhIEkgTE9WRSB3aW50ZXIhIiwic2VjdGlvbnMiOlt7ImxhYmVsIjoiQ29udmVyc2F0aW9uIiwiZHVyYXRpb24iOjExNiwibWVkaWFJbnN0cnVjdGlvbiI6Ikxpc3RlbiB0byB0aGUgZm9sbG93aW5nIGNvbnZlcnNhdGlvbi4gWW91IHdpbGwgaGVhciBpdCBvbmx5IG9uY2UuIEl0IGlzIGFib3V0IDIgbWludXRlcyBsb25nLiIsIm1lZGlhVHlwZSI6ImF1ZGlvIiwidGltZU1pbnV0ZXMiOjMsInF1ZXN0aW9ucyI6W3sibiI6MSwic3RlbSI6IldoeSBkaWQgdGhlIG1hbiBjYWxsIHRoZSB3b21hbj8iLCJvcHRpb25zIjpbIlRvIHJlcG9ydCBhIHBvd2VyIG91dGFnZS4iLCJUbyBzdGFydCBhIG5ldyBwb3dlciBhY2NvdW50LiIsIlRvIGRpc3B1dGUgYSBsYXJnZSBiaWxsLiIsIlRvIGNhbmNlbCBoaXMgb2xkIHNlcnZpY2UuIl0sImtleSI6MSwicmVjb24iOnRydWV9LHsibiI6Miwic3RlbSI6IldoeSBpcyB0aGUgbWFuIGFza2luZyBhYm91dCB0aGUgc2l0dWF0aW9uIG5vdz8iLCJvcHRpb25zIjpbIkhpcyBsYW5kbG9yZCBleHBsYWluZWQgaGlzIHJlc3BvbnNpYmlsaXR5LiIsIkhpcyBwb3dlciB3YXMganVzdCBjdXQgb2ZmLiIsIkhlIHJlY2VpdmVkIGEgYmlsbCBpbiB0aGUgbWFpbC4iLCJIZSBpcyBtb3Zpbmcgb3V0IG9mIHRoZSBhcGFydG1lbnQuIl0sImtleSI6MCwicmVjb24iOnRydWV9LHsibiI6Mywic3RlbSI6IldoeSBkb2VzIHRoZSBtYW4gd2FudCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZm9ybWVyIHRlbmFudD8iLCJvcHRpb25zIjpbIkhlIHdhbnRzIHRvIHJldHVybiBoZXIgbWFpbC4iLCJIZSBpcyBjdXJpb3VzIGFib3V0IHRoZSBwYXltZW50LiIsIkhlIG5lZWRzIGhlciBuZXcgYWRkcmVzcy4iLCJIZSBwbGFucyB0byByZXBvcnQgaGVyLiJdLCJrZXkiOjEsInJlY29uIjp0cnVlfSx7Im4iOjQsInN0ZW0iOiJXaHkgZG9lcyB0aGUgbWFuIG5vdyBoYXZlIHBvd2VyIGluIGhpcyBhcGFydG1lbnQ\/Iiwib3B0aW9ucyI6WyJUaGUgY29tcGFueSBtYWRlIGFuIGVycm9yLiIsIkhpcyBsYW5kbG9yZCBjb3ZlcmVkIHRoZSBjb3N0LiIsIlNvbWVvbmUgZWxzZSBpcyBwYXlpbmcgZm9yIGhpbS4iLCJIZSBwYWlkIHRoZSBiaWxsIGluIGFkdmFuY2UuIl0sImtleSI6MiwicmVjb24iOnRydWV9LHsibiI6NSwic3RlbSI6IldoaWNoIHBvd2VyIGNvbXBhbnkgcG9saWN5IGlzIHRoZSBtYW4gaGFwcHkgd2l0aD8iLCJvcHRpb25zIjpbIkJpbGxzIGNhbiBiZSBwYWlkIGluIGluc3RhbG1lbnRzLiIsIlBvd2VyIGlzIGtlcHQgb24gZHVyaW5nIHRoZSB3aW50ZXIuIiwiTmV3IGFjY291bnRzIGdldCBhIGRpc2NvdW50LiIsIkxhdGUgZmVlcyBhcmUgbmV2ZXIgY2hhcmdlZC4iXSwia2V5IjoxLCJyZWNvbiI6dHJ1ZX0seyJuIjo2LCJzdGVtIjoiV2hhdCB3aWxsIHRoZSB3b21hbiBkbyBhZnRlciB0aGUgcGhvbmUgY2FsbD8iLCJvcHRpb25zIjpbIkN1dCBvZmYgdGhlIG1hbidzIGVsZWN0cmljaXR5LiIsIkNvbnRhY3QgdGhlIGZvcm1lciB0ZW5hbnQuIiwiU2VuZCBoaW0gYSBmb3VyLW1vbnRoIHBvd2VyIGJpbGwuIiwiUmVmdW5kIHRoZSBtYW4ncyBwYXltZW50LiJdLCJrZXkiOjIsInJlY29uIjp0cnVlfV19XX0seyJuYW1lIjoiUGFydCA0OiBMaXN0ZW5pbmcgdG8gYSBOZXdzIEl0ZW0iLCJoZWFkZXJUaXRsZSI6IlNldCAxMSBcdTIwMTMgUHJhY3RpY2UgVGVzdCAxIFx1MjAxMyBMaXN0ZW5pbmcgUGFydCA0OiBMaXN0ZW5pbmcgdG8gYSBOZXdzIEl0ZW0iLCJpbnRyb1RpdGxlIjoiTGlzdGVuaW5nIHRvIGEgTmV3cyBJdGVtIiwiaW50cm9CdWxsZXRzIjpbIllvdSB3aWxsIGhlYXIgYSBuZXdzIHN0b3J5IGFib3V0IGEgYm95LiBJdCBwbGF5cyBvbmx5IG9uY2UuIiwiQWZ0ZXIgdGhlIG5ld3MgaXRlbSwgY29tcGxldGUgZWFjaCBzdGF0ZW1lbnQgdXNpbmcgdGhlIGRyb3AtZG93biBtZW51LiJdLCJxSW5zdHJ1Y3Rpb24iOiJDaG9vc2UgdGhlIGJlc3Qgd2F5IHRvIGNvbXBsZXRlIGVhY2ggc3RhdGVtZW50IGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggXHUyNWJlICkuIiwidHJhbnNjcmlwdCI6IlBhcnQgNDogTGlzdGVuaW5nIHRvIGEgTmV3cyBJdGVtXG5Zb3Ugd2lsbCBoZWFyIGEgbmV3cyBzdG9yeSBhYm91dCBhIGJveS5cblNldmVuLXllYXItb2xkIER1c3RpbiBTYW5kb3ZhbCBnb3QgYm90aCBhIHNjb2xkaW5nIGFuZCBhIGhlcm8ncyBhcHBsYXVzZSBlYXJsaWVyIHRoaXNcbndlZWsgd2hlbiBoaXMgbWlzY2hpZXZvdXMgYW50aWNzIGxlYWQgaGltIHRvIHNhdmUgYW5vdGhlciBjaGlsZCdzIGxpZmUuIER1c3Rpbiwgd2hvIGxvdmVzXG5sZWF2aW5nIHByYW5rIG1lc3NhZ2VzIG9uIGhpcyBob21lIGFuc3dlcmluZyBtYWNoaW5lLCBwb2NrZXRlZCBoaXMgbW90aGVyJ3MgY2VsbHBob25lXG53aXRob3V0IGhlciBrbm93bGVkZ2UsIGFuZCB3ZW50IHRvIHBsYXkgYXQgdGhlIHBhcmsgaW4gdGhlaXIgdG93bmhvdXNlIGNvbXBsZXguIEhlXG5pbnRlbmRlZCB0byBtYWtlIGFub3RoZXIgcHJhbmsgY2FsbCB3aGlsZSBoaXMgbW90aGVyIHdhcyBnYXJkZW5pbmcgaW4gdGhlaXIgeWFyZC5cblRoaXMgdGltZSwgaG93ZXZlciwgRHVzdGluJ3MgYW50aWNzIHNhdmVkIHRoZSBkYXkuIEluIHRoZSBwYXJrLCBoZSBzYXcgYSBjaGlsZCBseWluZyBvbiB0aGVcbmdyb3VuZCB1bmNvbnNjaW91cy4gRHVzdGluIGltbWVkaWF0ZWx5IGNhbGxlZCA5MTEgd2l0aCBoaXMgbW90aGVyJ3MgY2VsbHBob25lLCBhbmQgYW5cbmFtYnVsYW5jZSBhcnJpdmVkIHdpdGhpbiBtaW51dGVzLiBQYXJhbWVkaWNzIGRpc2NvdmVyZWQgdGhhdCB0aGUgbmluZS15ZWFyLW9sZCB2aWN0aW0sXG5KYW1lcyBTb29uZywgaGFkIGJlZW4gc3R1bmcgYnkgYSBiZWUgYW5kIG5lZWRlZCB0cmVhdG1lbnQgZm9yIGFuYXBoeWxheGlzLCBhXG5wb3RlbnRpYWxseSBmYXRhbCBhbGxlcmdpYyByZWFjdGlvbi4gVGhlIGJveSByZWNvdmVyZWQgcXVpY2tseSBpbiB0aGUgaG9zcGl0YWwuXG5EdXN0aW5cdTIwMTlzIG1vdGhlciB3YXMgZXhhc3BlcmF0ZWQgdG8gZGlzY292ZXIgaGVyIHNvbiBoYWQgdGFrZW4gaGVyIHBob25lLCBhbmQgc3Rlcm5seVxud2FybmVkIGhpbSBub3QgdG8gZG8gc28gYWdhaW4uIEhvd2V2ZXIsIHNoZSB3YXMgaGFwcHkgdG8gbGVhcm4gc29tZXRoaW5nIHBvc2l0aXZlXG5jYW1lIG91dCBvZiBpdC4gSmFtZXNcdTIwMTlzIGZhdGhlciBwcmVzZW50ZWQgRHVzdGluIHdpdGggYSBjZWxscGhvbmUgYXMgYSB0aGFuayB5b3UgZm9yIHNhdmluZ1xuaGlzIHNvbi4gU2luY2UgdGhlIGluY2lkZW50LCBEdXN0aW5cdTIwMTlzIG1vdGhlciBoYXNuXHUyMDE5dCByZWNlaXZlZCBhbnkgbW9yZSBwcmFuayBjYWxscy4iLCJzZWN0aW9ucyI6W3sibGFiZWwiOiJOZXdzIEl0ZW0iLCJkdXJhdGlvbiI6NzEsIm1lZGlhSW5zdHJ1Y3Rpb24iOiJMaXN0ZW4gdG8gdGhlIGZvbGxvd2luZyBuZXdzIGl0ZW0uIFlvdSB3aWxsIGhlYXIgaXQgb25seSBvbmNlLiIsIm1lZGlhVHlwZSI6ImF1ZGlvIiwidGltZU1pbnV0ZXMiOjMsInF1ZXN0aW9ucyI6W3sibiI6MSwic3RlbSI6IkR1c3RpbidzIG1vdGhlciB3YXMiLCJvcHRpb25zIjpbImRlbGlnaHRlZCBieSBEdXN0aW4uIiwicmVsaWV2ZWQgdG8gZ2V0IGhlciBwaG9uZS4iLCJhbm5veWVkIHdpdGggSmFtZXMuIiwiZnJ1c3RyYXRlZCB3aXRoIER1c3Rpbi4iXSwia2V5IjozfSx7Im4iOjIsInN0ZW0iOiJEdXN0aW4gdG9vayB0aGUgcGhvbmUgaW4gb3JkZXIgdG8iLCJvcHRpb25zIjpbImNhbGwgaGlzIGZyaWVuZC4iLCJkbyBhIGdvb2QgZGVlZC4iLCJwbGF5IGEgdHJpY2suIiwiY2FsbCBhbiBhbWJ1bGFuY2UuIl0sImtleSI6Mn0seyJuIjozLCJzdGVtIjoiRHVzdGluIGNhbGxlZCA5MTEgYmVjYXVzZSIsIm9wdGlvbnMiOlsiaGUgaGFkIGFuIGFsbGVyZ2ljIHJlYWN0aW9uLiIsImhpcyBmcmllbmQgd2FzIGJhZGx5IGh1cnQuIiwiaGUgc2F3IGFuIGFjY2lkZW50IG9jY3VyLiIsImhlIGZvdW5kIHNvbWVvbmUgaW4gZGFuZ2VyLiJdLCJrZXkiOjN9LHsibiI6NCwic3RlbSI6IkR1c3RpbidzIG93biBwaG9uZSB3YXMiLCJvcHRpb25zIjpbImZvdW5kIGJ5IHBhcmFtZWRpY3MuIiwiZ2l2ZW4gdG8gaGltIGFzIGEgZ2lmdC4iLCJsb2FuZWQgdG8gaGlzIG1vdGhlci4iLCJib3Jyb3dlZCBieSBKYW1lcy4iXSwia2V5IjoxfSx7Im4iOjUsInN0ZW0iOiJKYW1lcyIsIm9wdGlvbnMiOlsid2FzIGluIGhvc3BpdGFsIGZvciBhIGxvbmcgdGltZS4iLCJuZWFybHkgZGllZCBpbiB0aGUgcGxheWdyb3VuZC4iLCJjYWxsZWQgRHVzdGluJ3MgbW90aGVyIGltbWVkaWF0ZWx5LiIsImxvdmVkIHRvIHBsYXkgdHJpY2tzIG9uIER1c3Rpbi4iXSwia2V5IjoxfV19XX0seyJuYW1lIjoiUGFydCA1OiBMaXN0ZW5pbmcgdG8gYSBEaXNjdXNzaW9uIiwiaGVhZGVyVGl0bGUiOiJTZXQgMTEgXHUyMDEzIFByYWN0aWNlIFRlc3QgMSBcdTIwMTMgTGlzdGVuaW5nIFBhcnQgNTogTGlzdGVuaW5nIHRvIGEgRGlzY3Vzc2lvbiIsImludHJvVGl0bGUiOiJMaXN0ZW5pbmcgdG8gYSBEaXNjdXNzaW9uIiwiaW50cm9CdWxsZXRzIjpbIllvdSB3aWxsIHdhdGNoIGEgY29udmVyc2F0aW9uIGFtb25nIHRocmVlIHBlb3BsZS4gVGhlcmUgYXJlIHR3byBtZW4sIEpvc2ggYW5kIFJ5YW4sIGFuZCBvbmUgd29tYW4sIE5hZGluZS4gVGhleSBhcmUgZnJpZW5kcyB3aG8gaGF2ZSBydW4gaW50byBlYWNoIG90aGVyIGluIGEgbmVpZ2hib3Job29kIGNvZmZlZSBzaG9wLiBJdCBwbGF5cyBvbmx5IG9uY2UuIiwiQWZ0ZXIgdGhlIGRpc2N1c3Npb24sIHF1ZXN0aW9ucyB3aWxsIGFwcGVhci4gQ2hvb3NlIHRoZSBiZXN0IGFuc3dlciB0byBlYWNoIHF1ZXN0aW9uLiJdLCJxSW5zdHJ1Y3Rpb24iOiJDaG9vc2UgdGhlIGJlc3Qgd2F5IHRvIGFuc3dlciBlYWNoIHF1ZXN0aW9uIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggXHUyNWJlICkuIiwidHJhbnNjcmlwdCI6IlBhcnQgNTogTGlzdGVuaW5nIHRvIGEgRGlzY3Vzc2lvblxuWW91IHdpbGwgd2F0Y2ggYSBjb252ZXJzYXRpb24gYW1vbmcgdGhyZWUgcGVvcGxlLiBUaGVyZSBhcmUgdHdvIG1lbiwgSm9zaCBhbmQgUnlhbixcbmFuZCBvbmUgd29tYW4sIE5hZGluZS4gVGhleSBhcmUgZnJpZW5kcyB3aG8gaGF2ZSBydW4gaW50byBlYWNoIG90aGVyIGluIGFcbm5laWdoYm9yaG9vZCBjb2ZmZWUgc2hvcC5cbk5hZGluZTogICAgICAgLi4uIFRoYXRcdTIwMTlzIGEgZ3JlYXQgaWRlYSwgbGV0XHUyMDE5cyBkbyB0aGF0IVxuUnlhbjogWWVhaCFcbk5hZGluZTogICAgICAgSGV5IEpvc2ghXG5Kb3NoOiBPaCwgaGV5IE5hZGluZSwgaGV5IFJ5YW4uIEkgZGlkblx1MjAxOXQgc2VlIHlvdSBndXlzIHRoZXJlISBXaGF0IGFyZSB5b3UgdXAgdG8\/XG5OYWRpbmU6ICAgICAgIFdlXHUyMDE5cmUgZ29pbmcgdG8gZ2V0IGljZWQgY29mZmVlc1x1MjAxNGl0XHUyMDE5cyBzbyB3YXJtIG91dCB0b2RheSEgV2hhdCBhcmUgeW91IHVwXG50bz9cbkpvc2g6IEkgd2FzIGp1c3QgZG9pbmcgc29tZSByZWFkaW5nLCB3YWl0aW5nIGZvciB0aGUgYnVzIHRvIHRha2UgbWUgdXAgdG8gdGhlIGNhbXB1cy5cbkRpZCB5b3UgZ3V5cyBzZWUgdGhpcyBhcnRpY2xlIG9uIHRoZSBuZXcgcHJvZ3JhbSB0aGV5XHUyMDE5cmUgbWFraW5nIGZvciB0aGUgaG9tZWxlc3MgaW4gb3VyXG5uZWlnaGJvdXJob29kPyBBcHBhcmVudGx5LCB0aGV5XHUyMDE5cmUgZ29pbmcgdG8gYmUgY3JlYXRpbmcgYW4gXHUyMDFjRXh0cmVtZSBXZWF0aGVyIENlbnRyZVx1MjAxZFxuZm9yIHdoZW4gdGhlIHRlbXBlcmF0dXJlIGRyb3BzIGJlbG93IC0yLlxuUnlhbjogT2gsIEkgaGVhcmQgYWJvdXQgdGhpcy4gU29tZWJvZHkgYXQgd29yayB3YXMgdGFsa2luZyBhYm91dCBpdC4gSXRcdTIwMTlzIHRoYXQgY2h1cmNoIHVwXG50aGUgc3RyZWV0LiBUaGV5IG9mZmVyIGEgdmFyaWV0eSBvZiBzZXJ2aWNlcywgYnV0IHRoZSBtYWluIG9uZSBpcyB0aGV5IGhhdmUgYSBwbGFjZSBmb3IgdXAgdG9cbjE1IHBlb3BsZSB0byBzbGVlcCB3aGVuIGl0XHUyMDE5cyBjb2xkIG91dHNpZGUuIEkgdGhpbmsgdGhhdFx1MjAxOXMgZmFudGFzdGljLlxuTmFkaW5lOiAgICAgICBZb3UgZG8\/IEkgZG9uXHUyMDE5dCBrbm93IC4gLiAuIEkgbWVhbiwgaXQga2luZCBvZiBzY2FyZXMgbWUgdG8gaGF2ZSBhbGwgdGhvc2VcbnBlb3BsZSBzbyBjbG9zZSB0byBvdXIgaG91c2UuIEFuZCB0aGV5XHUyMDE5cmUgYWx3YXlzIGxlYXZpbmcgdHJhc2ggZXZlcnl3aGVyZS4gWW91IGtub3csXG53aGVuIHRoZXkgcHV0IHRoYXQgaG9tZWxlc3MgY2VudHJlIG5leHQgdG8gbXkgYnJvdGhlclx1MjAxOXMgaG91c2UsIGhpcyBnb3QgaGlzIGNhciBicm9rZW5cbmludG8uXG5Kb3NoOiBSZWFsbHk\/IFRoYXRcdTIwMTlzIGF3ZnVsLiBCdXQgSSBtZWFuLCBJIGRvblx1MjAxOXQgcmVhbGx5IHNlZSB0aGlzIGNhdXNpbmcgYSBzcGlrZSBpbiBjcmltZS4gSVxudGhpbmsgaXRcdTIwMTlzIG1haW5seSBqdXN0IGZvciB0aGUgcGVvcGxlIHRoYXQgYXJlIGFscmVhZHkgbGl2aW5nIG9uIHRoZSBzdHJlZXQgaW4gdGhlXG5uZWlnaGJvdXJob29kLiBMaWtlLCB5b3Uga25vdyB0aGF0IGd1eSBDbGFyZW5jZSB3aG8gY29tZXMgaW4gaGVyZSBhbGwgdGhlIHRpbWUgZm9yXG5jb2ZmZWU\/IEkgdGhpbmsgSVx1MjAxOWQgZmVlbCBiZXR0ZXIga25vd2luZyB0aGF0IGhlIGhhcyBhIHBsYWNlIHRvIHNsZWVwIGF0IG5pZ2h0LlxuUnlhbjogSSBhZ3JlZS4gSVx1MjAxOXZlIGJlZW4gdGhpbmtpbmcgYWJvdXQgdm9sdW50ZWVyaW5nIGF0IHRoaXMgcGxhY2UuIEkgbWVhbiwgdGhleSBuZWVkIGhlbHBcbm1ha2luZyBkaW5uZXJzIHNvbWV0aW1lcy4gV2hhdCBkbyB5b3UgdGhpbmssIE5hZGluZT9cbk5hZGluZTogICAgICAgICBJIGRvblx1MjAxOXQga25vdy4gVG8gYmUgaG9uZXN0LCBDbGFyZW5jZSBraW5kYSBzY2FyZXMgbWUuIEkgbWVhbiwgaGUgY2FuIGJlXG5yZWFsbHkgbG91ZCB3aGVuIGhlIGNvbWVzIGluIGhlcmUgc29tZXRpbWVzLiBCdXQgSSBrbm93IGhlIG5lZWRzIGEgcGxhY2UgdG8gc2xlZXAgd2hlblxuaXRcdTIwMTlzIGNvbGQgb3V0LCBhbmQgaGVcdTIwMTlzIG5vdCB0aGUgb25seSBvbmUuIE1heWJlIEkgc2hvdWxkIHZvbHVudGVlciwgdG9vLlxuUnlhbjogSSB0aGluayBzbyEgSSBtZWFuLCBpdCB3b3VsZCBiZSBhIGdyZWF0IG9wcG9ydHVuaXR5IGZvciB1cyB0byBsZWFybiBtb3JlIGFib3V0IHRoZVxubmVpZ2hib3VyaG9vZC4gSSBqdXN0IGRvblx1MjAxOXQga25vdyB3aGF0IHdlIGRvIHRvIHNpZ24gdXAuXG5Kb3NoOiBXZWxsLCBpdCBzYXlzIGhlcmUgdGhhdCB0aGVyZVx1MjAxOXMgYW4gaW5mb3JtYXRpb24gbWVldGluZyBvbiB2b2x1bnRlZXJpbmcsIHRvbW9ycm93XG5uaWdodCBhdCB0aGUgY2h1cmNoIGF0IHNpeCBvXHUyMDE5Y2xvY2suIElmIHlvdSBndXlzIGFyZSBnb2luZywgSVx1MjAxOWxsIGNvbWUgdG9vLiBNYXliZSBJIGNvdWxkXG5ldmVuIGludml0ZSBzb21lIG9mIG15IGNsYXNzbWF0ZXMuXG5OYWRpbmU6ICAgICAgIFdlbGwsIEkgaGF2ZSB3YW50ZWQgdG8gZG8gc29tZSBtb3JlIHdvcmsgd2l0aCB0aGUgY29tbXVuaXR5LiBJIG1lYW4sXG5JXHUyMDE5dmUganVzdCBuZXZlciB2b2x1bnRlZXJlZCBmb3IgYW55dGhpbmcgYmVmb3JlLiBJIHdvdWxkIGJlIGZ1biBpZiB5b3UgdHdvIHdlcmUgdGhlcmUuXG5PSywgbGV0XHUyMDE5cyBkbyBpdC5cblJ5YW46IFNvdW5kcyBncmVhdC5cbkxpc3RlbmluZyIsInNlY3Rpb25zIjpbeyJsYWJlbCI6IkRpc2N1c3Npb24gKHZpZGVvKSIsImR1cmF0aW9uIjoyMTEsIm1lZGlhSW5zdHJ1Y3Rpb24iOiJXYXRjaCB0aGUgZGlzY3Vzc2lvbi4gWW91IHdpbGwgd2F0Y2ggaXQgb25seSBvbmNlLiBJdCBpcyBhYm91dCAxLjUgdG8gMiBtaW51dGVzIGxvbmcuIiwibWVkaWFUeXBlIjoidmlkZW8iLCJ0aW1lTWludXRlcyI6MywicXVlc3Rpb25zIjpbeyJuIjoxLCJzdGVtIjoiV2hhdCBpcyB0aGUgbWFpbiBwdXJwb3NlIG9mIHRoZSBuZXcgcHJvZ3JhbT8iLCJvcHRpb25zIjpbInRvIHByb3ZpZGUgc2FmZSBzaGVsdGVyIGluIHRoZSBjb21tdW5pdHkiLCJ0byBlbmNvdXJhZ2UgcmVzaWRlbnRzIHRvIHZvbHVudGVlciIsInRvIHByZWRpY3QgZXh0cmVtZSB3ZWF0aGVyIGNvbmRpdGlvbnMiLCJ0byBwcmVwYXJlIG1lYWxzIGZvciBwZW9wbGUgaW4gbmVlZCJdLCJrZXkiOjB9LHsibiI6Miwic3RlbSI6IldoZW4gd2lsbCB0aGUgc2hlbHRlciBiZSBvcGVuPyIsIm9wdGlvbnMiOlsiYWZ0ZXIgZGlubmVyIHRpbWUiLCJ3aGVuIGl0J3MgZnJlZXppbmcgb3V0ZG9vcnMiLCJ0b21vcnJvdyBhdCA2IHAubS4iLCJ3aGVuIHRoZSBuZXcgY2h1cmNoIG9wZW5zIl0sImtleSI6MX0seyJuIjozLCJzdGVtIjoiV2hhdCBkb2VzIHRoZSBwcm9ncmFtIG5lZWQgdm9sdW50ZWVycyB0byBkbz8iLCJvcHRpb25zIjpbIm1ha2UgY29mZmVlIiwicHJlcGFyZSBtZWFscyIsImNsZWFuIHN0cmVldHMiLCJtYWtlIGJlZHMiXSwia2V5IjoxfSx7Im4iOjQsInN0ZW0iOiJXaHkgaXMgdGhlIHdvbWFuIChOYWRpbmUpIHVuc3VyZSBhYm91dCB0aGUgbmV3IHByb2dyYW0\/Iiwib3B0aW9ucyI6WyJTaGUgaXMgd29ycmllZCB0aGF0IGl0IHdpbGwgYmUgcG9vcmx5IG9yZ2FuaXplZC4iLCJTaGUgaXMgYW54aW91cyBhYm91dCBoZXIgYnJvdGhlcidzIGNhci4iLCJTaGUgaXMgY29uY2VybmVkIGFib3V0IHBlcnNvbmFsIHNhZmV0eS4iLCJTaGUgaGFzIG5ldmVyIHZvbHVudGVlcmVkIGJlZm9yZS4iXSwia2V5IjoyfSx7Im4iOjUsInN0ZW0iOiJXaGF0IGlzIHRoZSB5b3VuZ2VyIG1hbidzIChKb3NoJ3MpIGF0dGl0dWRlIHRvd2FyZCB0aGUgcHJvZ3JhbT8iLCJvcHRpb25zIjpbImNvbmNlcm5lZCIsImNyaXRpY2FsIiwiZXhjaXRlZCIsImFwcHJvdmluZyJdLCJrZXkiOjN9LHsibiI6Niwic3RlbSI6IldobyBpcyB0aGUgbWFuLCBDbGFyZW5jZSwgd2hvbSB0aGV5IGFyZSBkaXNjdXNzaW5nPyIsIm9wdGlvbnMiOlsiYSBtYW4gd2l0aG91dCBhIHJlc2lkZW5jZSIsImEgdm9sdW50ZWVyIGZyb20gdGhlIGNodXJjaCIsImFuIGVtcGxveWVlIG9mIHRoZSBjb2ZmZWUgc2hvcCIsImEgY29vcmRpbmF0b3IgZm9yIHRoZSBzaGVsdGVyIl0sImtleSI6MH0seyJuIjo3LCJzdGVtIjoiV2hhdCBpcyBKb3NoJ3Mgb2NjdXBhdGlvbj8iLCJvcHRpb25zIjpbInNvY2lhbCB3b3JrZXIiLCJjb2xsZWdlIHN0dWRlbnQiLCJuZXdzcGFwZXIgcmVwb3J0ZXIiLCJjb2ZmZWUgc2hvcCBlbXBsb3llZSJdLCJrZXkiOjF9LHsibiI6OCwic3RlbSI6IldoeSBhcmUgdGhlIHRocmVlIHNwZWFrZXJzIG1lZXRpbmcgdG9tb3Jyb3c\/Iiwib3B0aW9ucyI6WyJ0byBwcmVwYXJlIG1lYWxzIHRvZ2V0aGVyIiwidG8gdm9sdW50ZWVyIGZvciB0aGUgc2hlbHRlciIsInRvIGpvaW4gdGhlIGluZm9ybWF0aW9uIHNlc3Npb24iLCJ0byBtZWV0IEpvc2gncyBjbGFzc21hdGVzIl0sImtleSI6Mn1dfV19LHsibmFtZSI6IlBhcnQgNjogTGlzdGVuaW5nIGZvciBWaWV3cG9pbnRzIiwiaGVhZGVyVGl0bGUiOiJTZXQgMTEgXHUyMDEzIFByYWN0aWNlIFRlc3QgMSBcdTIwMTMgTGlzdGVuaW5nIFBhcnQgNjogTGlzdGVuaW5nIGZvciBWaWV3cG9pbnRzIiwiaW50cm9UaXRsZSI6Ikxpc3RlbmluZyBmb3IgVmlld3BvaW50cyIsImludHJvQnVsbGV0cyI6WyJZb3Ugd2lsbCBoZWFyIGEgcHJlc2VudGF0aW9uIGFib3V0IGN5Y2xpbmcgaW4gdGhlIGNpdHkuIEl0IHBsYXlzIG9ubHkgb25jZS4iLCJBZnRlciB0aGUgcmVwb3J0LCBjb21wbGV0ZSBlYWNoIHN0YXRlbWVudCB1c2luZyB0aGUgZHJvcC1kb3duIG1lbnUuIl0sInFJbnN0cnVjdGlvbiI6IkNob29zZSB0aGUgYmVzdCB3YXkgdG8gY29tcGxldGUgZWFjaCBzdGF0ZW1lbnQgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCBcdTI1YmUgKS4iLCJ0cmFuc2NyaXB0IjoiUGFydCA2OiBMaXN0ZW5pbmcgZm9yIFZpZXdwb2ludHMuXG5Zb3Ugd2lsbCBoZWFyIGEgcHJlc2VudGF0aW9uIGFib3V0IGN5Y2xpbmcgaW4gdGhlIGNpdHkuXG5UaGUgYWRkaXRpb24gb2YgYmlrZSBsYW5lcyBpbiBkZW5zZWx5IHBvcHVsYXRlZCB1cmJhbiBhcmVhcyB0aHJvdWdob3V0IG1ham9yIENhbmFkaWFuXG5jaXRpZXMgaXMgb24gdGhlIHJpc2UsIGNyZWF0aW5nIHRlbnNpb24gYmV0d2VlbiBjeWNsaXN0cyBhbmQgY2FyIGRyaXZlcnMuXG5TaGFubm9uIFR1bHUsIGFuIGF2aWQgYmlrZXIgYW5kIGNhbXBhaWduZXIgZm9yIGNpdHkgY3ljbGluZyBpbiBUb3JvbnRvLCBzYXlzIHRoYXQgYmlrZVxubGFuZXMgaGF2ZSBiZWVuIGFic2VudCBmb3IgdG9vIGxvbmcgaW4gY2l0eSBwbGFubmluZy4gU2hlIGJlbGlldmVzIGl0IGlzIHRoZSBsb25nIHdhaXQgdGhhdFxuaGFzIGNyZWF0ZWQgYSBjdWx0dXJlIG9mIGNhciBkcml2ZXJzIHRoYXQgYXJlIG5vdyBpcnJhdGlvbmFsbHkgYW5ub3llZCBhdCBoYXZpbmcgdG9cbmFjY29tbW9kYXRlIGZvciBkaWZmZXJlbnQgbW9kZXMgb2YgdHJhbnNwb3J0LiBUaGUgbXVuaWNpcGFsIGdvdmVybm1lbnQsIG1lYW53aGlsZSwgaXNcbmhlc2l0YW50IHRvIHN1cHBvcnQgY3ljbGlzdHMgb3ZlciBkcml2ZXJzLiBBbmQgeWV0LCBoYWQgbWFqb3IgYmlrZSBsYW5lcyBiZWVuIGFyb3VuZFxudHdlbnR5IHllYXJzIGFnbywgVHVsdSBzdWdnZXN0cywgdGhlIGJpa2UgY3VsdHVyZSB3b3VsZCBoYXZlIGdyb3duIHNpbmNlIHRoZW4sIGFuZCBub1xub25lIHdvdWxkIGJlIGJhdHRpbmcgYW4gZXllIG5vdy4gU2hlIHBvaW50cyB0byBjaXRpZXMgc3VjaCBhcyBBbXN0ZXJkYW0sIHdoZXJlIDQwJSBvZlxuY29tbXV0aW5nIGlzIGRvbmUgYnkgYmlrZSBhbmQgdGhlIGluZnJhc3RydWN0dXJlIGhhcyBiZWVuIGluIHBsYWNlIGZvciBkZWNhZGVzLlxuRm9yIFR1bHUsIHRoZSBtYWluIG5lZWQgZm9yIGJpa2UgbGFuZXMgaXMgc2FmZXR5LiBIYXZpbmcgYmVlbiBpbiB0d28gc2VyaW91cyBiaWtlXG5hY2NpZGVudHMgaW4gd2hpY2ggbm8gYmlrZSBsYW5lIHdhcyBhdmFpbGFibGUsIFR1bHUgdW5kZXJzdGFuZHMgdGhlIG5lZWQgZm9yIGEgZGVzaWduYXRlZFxuY3ljbGlzdCByb2Fkd2F5LiBUdWx1IHNheXMgc3RhdGlzdGljcyBzaG93IHRoYXQgbGVzcyBiaWtlIGFjY2lkZW50cyBvY2N1ciB3aGVuIGN5Y2xpc3RzXG5oYXZlIHRoZWlyIG93biBsYW5lLlxuRnJlZCBNb3JyaXMgaXMgdGhlIGNoYWlyIG9mIHRoZSBQcm92aW5jaWFsIE1vdW50YWluIEJpa2luZyBBc3NvY2lhdGlvbi4gSGlzIHBhc3Npb24gZm9yXG5jeWNsaW5nIGRvZXMgbm90LCBob3dldmVyLCBwbGFjZSBoaW0gaW4gdGhlIHNhbWUgY2FtcCBhcyBUdWx1LiBPbiB0aGUgY29udHJhcnksIE1vcnJpc1xuY291bnRlcnMgdGhhdCB3aGlsZSByZWNyZWF0aW9uYWwgYmljeWNsaW5nIGlzIHdvbmRlcmZ1bCwgYmlrZXMgaGF2ZSBubyBwbGFjZSBpbiBjaXR5IHRyYWZmaWMuXG5GaXZlIHllYXJzIGFnbywgaGUgd2FzIGluIGFuIGFjY2lkZW50IGluIHdoaWNoIGhlIHdhcyBjeWNsaW5nIGluIGEgZGVzaWduYXRlZCBsYW5lLlxuTW9ycmlzIGFyZ3VlcyBiaWtlIGxhbmVzIGNyZWF0ZSB0aGUgaWxsdXNpb24gb2Ygc2FmZXR5IGJlY2F1c2UgY3ljbGlzdHMgYXNzdW1lIGRyaXZlcnMgYXJlXG5sb29raW5nIG91dCBmb3IgdGhlbS4gSGUgc2F5cyBiaWtlIGxhbmVzIGFjdHVhbGx5IGluY3JlYXNlIHRoZSBjaGFuY2Ugb2YgY2FyIGRyaXZlcnNcbmhpdHRpbmcgY3ljbGlzdHMgd2hlbiB0aGV5IGFjY2lkZW50YWxseSB0dXJuIGluIGZyb250IG9mIHRoZW0uIE1vcnJpcyBjcml0aWNpemVkIGN5Y2xpc3RzIGZvclxuYmVpbmcgYWdncmVzc2l2ZS4gVGhleSBkb25cdTIwMTl0IHdhbnQgdG8gbG9zZSB0aGVpciBtb21lbnR1bSBhbmQgY29tZSB0byBhIGZ1bGwgc3RvcCBhdFxuaW50ZXJzZWN0aW9ucyBhbmQgc28gdGhleSB0YWtlIGNoYW5jZXMgdG8gbWFpbnRhaW4gc3BlZWQuXG5Nb3JyaXMgYWdyZWVzIHdpdGggVHVsdSB0aGF0IGlmIG1vcmUgY2l0eSBiaWtlIGxhbmVzIGhhZCBiZWVuIGJ1aWx0IGluIFRvcm9udG8gZGVjYWRlc1xuYWdvLCB0aGluZ3Mgd291bGQgYmUgbXVjaCBkaWZmZXJlbnQuIE1vcmUgYmlrZSBsYW5lcyB0aGVuIHdvdWxkIGhhdmUgbWVhbnQgYSBtdWNoXG5zdHJvbmdlciBiaWtlIGN1bHR1cmUgbm93LCBhbmQgY2FyIGRyaXZlcnMgd291bGQgYmUgbW9yZSBhY2NlcHRpbmcgYW5kIGF3YXJlLiBCdXRcbk1vcnJpcyBzYXlzIGl0XHUyMDE5cyBtdWNoIHRvbyBsYXRlIHRvIHRyeSBhbmQgYWRkIGJpa2UgbGFuZXMgaW50byBhbHJlYWR5IGRlbnNlLCBwb3B1bGF0ZWRcbmFyZWFzLiBEb2luZyBzbywgaGUgc2F5cywgd2lsbCBqdXN0IGNhdXNlIG1vcmUgYWdncmVzc2lvbiBvbiBib3RoIHNpZGVzLlxuVHVsdSBkaXNhZ3JlZXMuIEluIGEgdGltZSB3aGVuIGNpdGllcyBhcmUgdHJ5aW5nIHRvIHJlZHVjZSBmb3NzaWwgZnVlbCBlbWlzc2lvbnMgYW5kXG5lbmNvdXJhZ2UgZW52aXJvbm1lbnRhbGx5IGZyaWVuZGx5IHdheXMgb2YgbGl2aW5nLCBzaGUgYXJndWVzLCBkZXZlbG9waW5nIGEgZ2VuZXJhdGlvblxub2YgYmljeWNsZSBjb21tdXRlcnMgaXMgY3J1Y2lhbCB0byB0aGUgaGVhbHRoIG9mIG91ciBjaXRpZXMgYW5kIG91ciBwbGFuZXQuIiwic2VjdGlvbnMiOlt7ImxhYmVsIjoiUmVwb3J0IiwiZHVyYXRpb24iOjE4MCwibWVkaWFJbnN0cnVjdGlvbiI6Ikxpc3RlbiB0byB0aGUgZm9sbG93aW5nIHJlcG9ydC4gWW91IHdpbGwgaGVhciBpdCBvbmx5IG9uY2UuIEl0IGlzIGFib3V0IDMgbWludXRlcyBsb25nLiIsIm1lZGlhVHlwZSI6ImF1ZGlvIiwidGltZU1pbnV0ZXMiOjQsInF1ZXN0aW9ucyI6W3sibiI6MSwic3RlbSI6IldoeSBhcmUgc29tZSBjaXRpZXMgYmV0dGVyIGZvciBjeWNsaXN0cz8iLCJvcHRpb25zIjpbIlRoZXkgaGF2ZSBtb3JlIHB1YmxpYyB0cmFuc3BvcnRhdGlvbiBvcHRpb25zLiIsIkN5Y2xpbmcgdHJhZmZpYyBoYWQgYmVlbiBpbnRlZ3JhdGVkIGRlY2FkZXMgYWdvLiIsIlRoZXkgaGF2ZSB3aWRlciByb2FkcyBhbmQgbW9yZSBiaWtlIGxhbmVzLiIsIlRoZSBjeWNsaXN0cyBhcmUgYmV0dGVyIGVkdWNhdGVkIGFuZCB0cmFpbmVkLiJdLCJrZXkiOjF9LHsibiI6Miwic3RlbSI6IlR1bHUgZGlmZmVycyBmcm9tIE1vcnJpcyBiZWNhdXNlIHNoZSBiZWxpZXZlcyIsIm9wdGlvbnMiOlsiY3ljbGlzdHMgYXJlIG11Y2ggbW9yZSBjYXJlZnVsIHRoYW4gY2FyIGRyaXZlcnMuIiwiY3ljbGluZyBpcyBnb29kIGV4ZXJjaXNlIGZvciBhbGwgYWdlcy4iLCJpdCdzIHRvbyBsYXRlIHRvIHByb21vdGUgY2l0eSBjeWNsaW5nIGluIG1hbnkgY2l0aWVzLiIsImJpa2UgbGFuZXMgaW1wcm92ZSB0aGUgc2FmZXR5IG9mIGNpdHkgY3ljbGlzdHMuIl0sImtleSI6M30seyJuIjozLCJzdGVtIjoiTW9ycmlzIGFuZCBUdWx1IGFyZSBib3RoIiwib3B0aW9ucyI6WyJhZHZvY2F0ZXMgZm9yIGN5Y2xpc3RzJyBpbnRlcmVzdHMuIiwib3B0aW1pc3RpYyBhYm91dCBjaXR5IGN5Y2xpbmcuIiwiY2FtcGFpZ25lcnMgZm9yIGNpdHkgY3ljbGluZy4iLCJ3b3JyaWVkIGFib3V0IGdvdmVybm1lbnQgcG9saWN5LiJdLCJrZXkiOjB9LHsibiI6NCwic3RlbSI6Ik1vcnJpcyB3b3VsZCByZWNvbW1lbmQgdGhhdCBjeWNsaXN0cyIsIm9wdGlvbnMiOlsiYmUgbW9yZSBhc3NlcnRpdmUgd2hlbiBjeWNsaW5nIGluIGNpdHkgdHJhZmZpYy4iLCJjeWNsZSBpbiBwYXJrcyBvciBzcGFyc2VseSBwb3B1bGF0ZWQgYXJlYXMuIiwiZGVtYW5kIGNpdHkgcGxhbm5pbmcgdGhhdCBhY2NvbW1vZGF0ZXMgY3ljbGluZy4iLCJvbmx5IGN5Y2xlIG9uIHJvYWRzIHdpdGggcHJvcGVybHkgYnVpbHQgYmlrZSBsYW5lcy4iXSwia2V5IjoxfSx7Im4iOjUsInN0ZW0iOiJJbiBUb3JvbnRvLCIsIm9wdGlvbnMiOlsidGhlcmUgaXMgcmVzaXN0YW5jZSB0byBpbnRlZ3JhdGluZyBiaWN5Y2xlIHRyYWZmaWMuIiwiY2FyIGRyaXZlcnMgdGVuZCB0byBiZSBtb3JlIGFnZ3Jlc3NpdmUgdGhhbiBjeWNsaXN0cy4iLCJjeWNsaXN0cyBhcmUgYSBwb2xpdGljYWxseSBpbmZsdWVudGlhbCBncm91cC4iLCJ0aGVyZSdzIGJlZW4gYSBjb21wcm9taXNlIGJldHdlZW4gY3ljbGlzdHMgYW5kIGRyaXZlcnMuIl0sImtleSI6MH0seyJuIjo2LCJzdGVtIjoiTW9ycmlzIGNyaXRpY2l6ZXMgY3ljbGlzdHMgZm9yIiwib3B0aW9ucyI6WyJjeWNsaW5nIG9uIHJvYWRzIHdpdGhvdXQgYmlrZSBsYW5lcy4iLCJpZ25vcmluZyB0cmFmZmljIHJ1bGVzIHdoZW4gY3ljbGluZy4iLCJjeWNsaW5nIG9uIHRoZSBzaWRld2Fsa3Mgb2YgYnVzeSBzdHJlZXRzLiIsImJlaW5nIHRvbyB0aW1pZCB3aGVuIGN5Y2xpbmcgaW4gY2l0aWVzLiJdLCJrZXkiOjF9XX1dfV19OwoKdmFyIENFTFBJUF9ZVCA9IHsgdmlkZW9JZDogJycgfTsgIC8qIGUuZy4gJ2RRdzR3OVdnWGNRJyBcdTIwMTQgU2V0IDExIFRlc3QgMSBmdWxsIGxpc3RlbmluZyB2aWRlbyAqLwp2YXIgQ0xQX0NIQVBURVJTID0geyAnMC4wJzpbMCw1MjBdLCAnMC4xJzpbMCw1MjBdLCAnMC4yJzpbMCw1MjBdLCAnMS4wJzpbNTIwLDg1M10sICcyLjAnOls4NTMsMTI3Ml0sICczLjAnOlsxMjcyLDEzNjRdLCAnNC4wJzpbMTM2NCwxNTAzXSwgJzUuMCc6WzE1MDMsMTc1N10gfTsKCi8qIFRPRE86IHBsYWNlaG9sZGVyIG1hcHBpbmcgXHUyMDE0IHZlcmlmeSBhZ2FpbnN0IHRoZSBvZmZpY2lhbCBDRUxQSVAgc2NvcmUgY2hhcnQuICovCmZ1bmN0aW9uIGNsYkVzdGltYXRlKHJhdyl7CiAgaWYgKHJhdyA+PSAzNSkgcmV0dXJuIHsgbGV2ZWw6ICdDRUxQSVAgMTBcdTIwMTMxMicsIG5vdGU6ICdBZHZhbmNlZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDMwKSByZXR1cm4geyBsZXZlbDogJ0NFTFBJUCA5JywgICAgICAgIG5vdGU6ICdFZmZlY3RpdmUgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAyNykgcmV0dXJuIHsgbGV2ZWw6ICdDRUxQSVAgOCcsICAgICAgICBub3RlOiAnR29vZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDIyKSByZXR1cm4geyBsZXZlbDogJ0NFTFBJUCA3JywgICAgICAgIG5vdGU6ICdBZGVxdWF0ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDE3KSByZXR1cm4geyBsZXZlbDogJ0NFTFBJUCA2JywgICAgICAgIG5vdGU6ICdEZXZlbG9waW5nIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMTEpIHJldHVybiB7IGxldmVsOiAnQ0VMUElQIDUnLCAgICAgICAgbm90ZTogJ0FjcXVpcmluZyBwcm9maWNpZW5jeScgfTsKICByZXR1cm4gICAgICAgICAgICB7IGxldmVsOiAnQ0VMUElQIDQgb3IgYmVsb3cnLCAgIG5vdGU6ICdLZWVwIHByYWN0aWNpbmchJyB9Owp9CgovKiA9PT09PT09PT09PT09PT09PT09PT0gZW5naW5lID09PT09PT09PT09PT09PT09PT09PSAqLwooZnVuY3Rpb24oKXsKICB2YXIgcmVkdWNlZE1vdGlvbiA9IHdpbmRvdy5tYXRjaE1lZGlhICYmIHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpLm1hdGNoZXM7CiAgdmFyIGNhdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHBDYXQnKTsKICB2YXIgZG90c0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscERvdHMnKTsKICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHBUb29sYmFyJyk7CiAgdmFyIHJlc3VsdHNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHBSZXN1bHRzJyk7CiAgdmFyIHNjb3JlQ2hpcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHBTY29yZUNoaXAnKTsKCiAgdmFyIFRPVEFMX1EgPSAwOwogIFRFU1RfREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHApeyBwLnNlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24ocyl7IFRPVEFMX1EgKz0gcy5xdWVzdGlvbnMubGVuZ3RoOyB9KTsgfSk7CgogIHZhciBzY3JlZW5zID0gW107CiAgVEVTVF9EQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCwgcGkpewogICAgc2NyZWVucy5wdXNoKHsgdHlwZTogJ2ludHJvJywgcGk6IHBpIH0pOwogICAgcGFydC5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHNlYywgc2kpewogICAgICBzY3JlZW5zLnB1c2goeyB0eXBlOiAnbWVkaWEnLCBwaTogcGksIHNpOiBzaSB9KTsKICAgICAgc2NyZWVucy5wdXNoKHsgdHlwZTogJ3EnLCBwaTogcGksIHNpOiBzaSB9KTsKICAgIH0pOwogIH0pOwogIHNjcmVlbnMucHVzaCh7IHR5cGU6ICdmaW5pc2gnIH0pOwoKICB2YXIgc3RhdGUgPSB7CiAgICBzdGFydGVkOiBmYWxzZSwKICAgIGlkeDogMCwKICAgIGFuc3dlcnM6IHt9LCAgICAgIC8qICJwaS5zaS5xaSIgLT4gb3B0aW9uIGluZGV4ICgwLTMpICovCiAgICBjaGVja2VkOiBmYWxzZSwKICAgIHRpbWVyT246IHRydWUKICB9OwogIHZhciBtZWRpYVRpbWVyID0gbnVsbCwgcVRpbWVyID0gbnVsbCwgcVJlbWFpbmluZyA9IDA7CiAgdmFyIHBvcHVwID0gbnVsbCwgb3BlblRyaWdnZXIgPSBudWxsOwoKICBmdW5jdGlvbiBxS2V5KHBpLCBzaSwgcWkpeyByZXR1cm4gcGkgKyAnLicgKyBzaSArICcuJyArIHFpOyB9CiAgZnVuY3Rpb24gZm10KHNlYyl7IHZhciBtID0gTWF0aC5mbG9vcihzZWMvNjApLCBzID0gc2VjICUgNjA7IHJldHVybiBtICsgJzonICsgKHMgPCAxMCA\/ICcwJyA6ICcnKSArIHM7IH0KICBmdW5jdGlvbiBlbCh0YWcsIGNscywgdGV4dCl7CiAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsKICAgIGlmIChjbHMpIGUuY2xhc3NOYW1lID0gY2xzOwogICAgaWYgKHRleHQgIT09IHVuZGVmaW5lZCkgZS50ZXh0Q29udGVudCA9IHRleHQ7CiAgICByZXR1cm4gZTsKICB9CiAgZnVuY3Rpb24gc2Nyb2xsVG9FbCh0YXJnZXQsIG9mZnNldCl7CiAgICB2YXIgeSA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cucGFnZVlPZmZzZXQgLSAob2Zmc2V0IHx8IDcwKTsKICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogeSwgYmVoYXZpb3I6IHJlZHVjZWRNb3Rpb24gPyAnYXV0bycgOiAnc21vb3RoJyB9KTsKICB9CiAgZnVuY3Rpb24gY2xlYXJUaW1lcnMoKXsKICAgIGlmIChtZWRpYVRpbWVyKXsgY2xlYXJJbnRlcnZhbChtZWRpYVRpbWVyKTsgbWVkaWFUaW1lciA9IG51bGw7IH0KICAgIGlmIChxVGltZXIpeyBjbGVhckludGVydmFsKHFUaW1lcik7IHFUaW1lciA9IG51bGw7IH0KICB9CiAgZnVuY3Rpb24gYW5zd2VyZWRDb3VudCgpeyByZXR1cm4gT2JqZWN0LmtleXMoc3RhdGUuYW5zd2VycykubGVuZ3RoOyB9CiAgZnVuY3Rpb24gdXBkYXRlU2NvcmVDaGlwKCl7CiAgICBpZiAoc3RhdGUuY2hlY2tlZCl7CiAgICAgIHNjb3JlQ2hpcC50ZXh0Q29udGVudCA9ICdTY29yZSAnICsgY29tcHV0ZVNjb3JlKCkudG90YWwgKyAnLycgKyBUT1RBTF9ROwogICAgfSBlbHNlIHsKICAgICAgc2NvcmVDaGlwLnRleHRDb250ZW50ID0gJ0Fuc3dlcmVkICcgKyBhbnN3ZXJlZENvdW50KCkgKyAnLycgKyBUT1RBTF9ROwogICAgfQogIH0KICBmdW5jdGlvbiBjb21wdXRlU2NvcmUoKXsKICAgIHZhciB0b3RhbCA9IDAsIHBlclBhcnQgPSBbXTsKICAgIFRFU1RfREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQsIHBpKXsKICAgICAgdmFyIGMgPSAwLCBuID0gMDsKICAgICAgcGFydC5zZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHNlYywgc2kpewogICAgICAgIHNlYy5xdWVzdGlvbnMuZm9yRWFjaChmdW5jdGlvbihxLCBxaSl7CiAgICAgICAgICBuKys7CiAgICAgICAgICBpZiAoc3RhdGUuYW5zd2Vyc1txS2V5KHBpLCBzaSwgcWkpXSA9PT0gcS5rZXkgLSAxKXsgYysrOyB0b3RhbCsrOyB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgICBwZXJQYXJ0LnB1c2goeyBjb3JyZWN0OiBjLCB0b3RhbDogbiB9KTsKICAgIH0pOwogICAgcmV0dXJuIHsgdG90YWw6IHRvdGFsLCBwZXJQYXJ0OiBwZXJQYXJ0IH07CiAgfQoKICAvKiAtLS0tLS0tLS0tIGRyb3Bkb3duIHBvcHVwIC0tLS0tLS0tLS0gKi8KICBmdW5jdGlvbiBjbG9zZVBvcHVwKCl7CiAgICBpZiAocG9wdXApeyBwb3B1cC5yZW1vdmUoKTsgcG9wdXAgPSBudWxsOyB9CiAgICBpZiAob3BlblRyaWdnZXIpeyBvcGVuVHJpZ2dlci5jbGFzc0xpc3QucmVtb3ZlKCdjbHAtb3BlbicpOyBvcGVuVHJpZ2dlciA9IG51bGw7IH0KICB9CiAgZnVuY3Rpb24gb3BlblBvcHVwKHRyaWdnZXIsIHBpLCBzaSwgcWkpewogICAgaWYgKG9wZW5UcmlnZ2VyID09PSB0cmlnZ2VyKXsgY2xvc2VQb3B1cCgpOyByZXR1cm47IH0KICAgIGNsb3NlUG9wdXAoKTsKICAgIHZhciBxID0gVEVTVF9EQVRBLnBhcnRzW3BpXS5zZWN0aW9uc1tzaV0ucXVlc3Rpb25zW3FpXTsKICAgIHZhciBrZXkgPSBxS2V5KHBpLCBzaSwgcWkpOwogICAgcG9wdXAgPSBlbCgnZGl2JywgJ2NscC1wb3AnKTsKICAgIHEub3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG9wdCwgb2kpewogICAgICB2YXIgYiA9IGVsKCdidXR0b24nLCAnY2xwLW9wdCcgKyAoc3RhdGUuYW5zd2Vyc1trZXldID09PSBvaSA\/ICcgY2xwLXNlbCcgOiAnJykpOwogICAgICBiLnR5cGUgPSAnYnV0dG9uJzsKICAgICAgYi5hcHBlbmRDaGlsZChlbCgnc3BhbicsICdjbHAtcmFkaW8nKSk7CiAgICAgIGIuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCAnJywgb3B0KSk7CiAgICAgIGIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7CiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgc3RhdGUuYW5zd2Vyc1trZXldID0gb2k7CiAgICAgICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICAgICAgY2xvc2VQb3B1cCgpOwogICAgICAgIHNldFRyaWdnZXJMYWJlbCh0cmlnZ2VyLCBvcHQsIGZhbHNlKTsKICAgICAgfSk7CiAgICAgIHBvcHVwLmFwcGVuZENoaWxkKGIpOwogICAgfSk7CiAgICBjYXQuYXBwZW5kQ2hpbGQocG9wdXApOwogICAgLyogcG9zaXRpb246IGJlbG93IHRyaWdnZXIsIGZsaXAgYWJvdmUgd2hlbiBuZWFyIHZpZXdwb3J0IGJvdHRvbSAqLwogICAgcG9wdXAuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOwogICAgdmFyIGNhdFJlY3QgPSBjYXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICB2YXIgdFJlY3QgPSB0cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIHBvcFcgPSBwb3B1cC5vZmZzZXRXaWR0aCwgcG9wSCA9IHBvcHVwLm9mZnNldEhlaWdodDsKICAgIHZhciBsZWZ0ID0gdFJlY3QubGVmdCAtIGNhdFJlY3QubGVmdDsKICAgIGxlZnQgPSBNYXRoLm1heCg4LCBNYXRoLm1pbihsZWZ0LCBjYXQuY2xpZW50V2lkdGggLSBwb3BXIC0gOCkpOwogICAgdmFyIHRvcDsKICAgIGlmICh0UmVjdC5ib3R0b20gKyBwb3BIICsgMjQgPiB3aW5kb3cuaW5uZXJIZWlnaHQgJiYgdFJlY3QudG9wIC0gcG9wSCAtIDggPiAwKXsKICAgICAgdG9wID0gdFJlY3QudG9wIC0gY2F0UmVjdC50b3AgLSBwb3BIIC0gNjsgICAvKiBmbGlwIGFib3ZlICovCiAgICB9IGVsc2UgewogICAgICB0b3AgPSB0UmVjdC5ib3R0b20gLSBjYXRSZWN0LnRvcCArIDY7CiAgICB9CiAgICBwb3B1cC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7CiAgICBwb3B1cC5zdHlsZS50b3AgPSB0b3AgKyAncHgnOwogICAgcG9wdXAuc3R5bGUudmlzaWJpbGl0eSA9ICcnOwogICAgdHJpZ2dlci5jbGFzc0xpc3QuYWRkKCdjbHAtb3BlbicpOwogICAgb3BlblRyaWdnZXIgPSB0cmlnZ2VyOwogIH0KICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgIGlmIChwb3B1cCAmJiAhcG9wdXAuY29udGFpbnMoZXYudGFyZ2V0KSAmJiBldi50YXJnZXQgIT09IG9wZW5UcmlnZ2VyICYmICghb3BlblRyaWdnZXIgfHwgIW9wZW5UcmlnZ2VyLmNvbnRhaW5zKGV2LnRhcmdldCkpKXsKICAgICAgY2xvc2VQb3B1cCgpOwogICAgfQogIH0pOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjbG9zZVBvcHVwKTsKICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZnVuY3Rpb24oKXsgLyoga2VlcCBwb3B1cCBhbmNob3JlZDogY2xvc2Ugb24gc2Nyb2xsICovIGlmIChwb3B1cCkgY2xvc2VQb3B1cCgpOyB9LCB7IHBhc3NpdmU6IHRydWUgfSk7CgogIGZ1bmN0aW9uIHNldFRyaWdnZXJMYWJlbCh0cmlnZ2VyLCB0ZXh0LCB1bmFuc3dlcmVkKXsKICAgIHRyaWdnZXIuY2xhc3NMaXN0LnRvZ2dsZSgnY2xwLXVuYW5zd2VyZWQnLCAhIXVuYW5zd2VyZWQpOwogICAgdHJpZ2dlci5xdWVyeVNlbGVjdG9yKCcuY2xwLWRkLXRleHQnKS50ZXh0Q29udGVudCA9IHVuYW5zd2VyZWQgPyAnXHUyMDI2XHUyMDI2XHUyMDI2XHUyMDI2JyA6IHRleHQ7CiAgfQoKICAvKiAtLS0tLS0tLS0tIGRvdHMgLS0tLS0tLS0tLSAqLwogIGZ1bmN0aW9uIHJlbmRlckRvdHMoKXsKICAgIGRvdHNFbC5pbm5lckhUTUwgPSAnJzsKICAgIHZhciBjdXJQaSA9IC0xOwogICAgdmFyIHMgPSBzY3JlZW5zW3N0YXRlLmlkeF07CiAgICBpZiAocyAmJiBzLnBpICE9PSB1bmRlZmluZWQpIGN1clBpID0gcy5waTsKICAgIGlmIChzICYmIHMudHlwZSA9PT0gJ2ZpbmlzaCcpIGN1clBpID0gVEVTVF9EQVRBLnBhcnRzLmxlbmd0aDsgLyogYWxsIGRvbmUgKi8KICAgIFRFU1RfREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQsIHBpKXsKICAgICAgdmFyIGQgPSBlbCgnYnV0dG9uJywgJ2NscC1kb3QnLCAnUCcgKyAocGkgKyAxKSk7CiAgICAgIGQudHlwZSA9ICdidXR0b24nOwogICAgICBpZiAocGkgPT09IGN1clBpKSBkLmNsYXNzTGlzdC5hZGQoJ2NscC1jdXInKTsKICAgICAgZWxzZSBpZiAocGkgPCBjdXJQaSB8fCBzdGF0ZS5jaGVja2VkKSBkLmNsYXNzTGlzdC5hZGQoJ2NscC1kb25lJyk7CiAgICAgIGlmIChzdGF0ZS5jaGVja2VkKXsKICAgICAgICBkLmNsYXNzTGlzdC5hZGQoJ2NscC1jbGlja2FibGUnKTsKICAgICAgICBkLnRpdGxlID0gJ1JldmlldyAnICsgcGFydC5uYW1lOwogICAgICAgIGQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JlZW5zLmxlbmd0aDsgaSsrKXsKICAgICAgICAgICAgaWYgKHNjcmVlbnNbaV0udHlwZSA9PT0gJ3EnICYmIHNjcmVlbnNbaV0ucGkgPT09IHBpKXsgc3RhdGUuaWR4ID0gaTsgYnJlYWs7IH0KICAgICAgICAgIH0KICAgICAgICAgIHJlbmRlcigpOyBzY3JvbGxUb0VsKGNhdCk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZC50aXRsZSA9IHBhcnQubmFtZTsKICAgICAgfQogICAgICBkb3RzRWwuYXBwZW5kQ2hpbGQoZCk7CiAgICB9KTsKICB9CgogIC8qIC0tLS0tLS0tLS0gY2hyb21lIHBpZWNlcyAtLS0tLS0tLS0tICovCiAgZnVuY3Rpb24gbWFrZUJhcih0aXRsZSwgd2l0aFRpbWVyKXsKICAgIHZhciBiYXIgPSBlbCgnZGl2JywgJ2NscC1iYXInKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnc3BhbicsICdjbHAtYmFyLXRpdGxlJywgdGl0bGUpKTsKICAgIGlmICh3aXRoVGltZXIgJiYgc3RhdGUudGltZXJPbil7CiAgICAgIHZhciB0ID0gZWwoJ3NwYW4nLCAnY2xwLWJhci10aW1lcicpOwogICAgICB0LmlkID0gJ2NscFFUaW1lcic7CiAgICAgIHQuaW5uZXJIVE1MID0gJ1RpbWUgcmVtYWluaW5nOiA8Yj4nICsgZm10KHFSZW1haW5pbmcpICsgJzwvYj4nOwogICAgICBiYXIuYXBwZW5kQ2hpbGQodCk7CiAgICB9CiAgICB2YXIgbmV4dCA9IGVsKCdidXR0b24nLCAnY2xwLW5leHQnLCAnTmV4dCcpOwogICAgbmV4dC50eXBlID0gJ2J1dHRvbic7CiAgICBuZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgY2xvc2VQb3B1cCgpOwogICAgICBpZiAoc3RhdGUuaWR4IDwgc2NyZWVucy5sZW5ndGggLSAxKXsgc3RhdGUuaWR4Kys7IHJlbmRlcigpOyBzY3JvbGxUb0VsKGNhdCk7IH0KICAgIH0pOwogICAgaWYgKHNjcmVlbnNbc3RhdGUuaWR4XS50eXBlID09PSAnZmluaXNoJykgbmV4dC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgYmFyLmFwcGVuZENoaWxkKG5leHQpOwogICAgcmV0dXJuIGJhcjsKICB9CiAgZnVuY3Rpb24gbWFrZUluc3RyKHRleHQpewogICAgdmFyIHJvdyA9IGVsKCdkaXYnLCAnY2xwLWluc3RyJyk7CiAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCAnY2xwLWluZm8nLCAnaScpKTsKICAgIHJvdy5hcHBlbmRDaGlsZChlbCgncCcsICcnLCB0ZXh0KSk7CiAgICByZXR1cm4gcm93OwogIH0KICB2YXIgU1BFQUtFUl9TVkcgPSAnPHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNiAyNiIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPicgKwogICAgJzxyZWN0IHg9IjMiIHk9IjkiIHdpZHRoPSI2IiBoZWlnaHQ9IjgiIHJ4PSIxIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4nICsKICAgICc8cGF0aCBkPSJNOSA5IEwxNSA0IEwxNSAyMiBMOSAxNyBaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4nICsKICAgICc8cGF0aCBkPSJNMTggOSBhNS41IDUuNSAwIDAgMSAwIDgiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPicgKwogICAgJzxwYXRoIGQ9Ik0yMC41IDYuNSBhOSA5IDAgMCAxIDAgMTMiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPic7CiAgdmFyIFBMQVlfU1ZHID0gJzxzdmcgd2lkdGg9IjI2IiBoZWlnaHQ9IjI2IiB2aWV3Qm94PSIwIDAgMjYgMjYiIGZpbGw9Im5vbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nICsKICAgICc8cGF0aCBkPSJNOCA1IEwyMSAxMyBMOCAyMSBaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz48L3N2Zz4nOwoKICAvKiAtLS0tLS0tLS0tIHNjcmVlbnMgLS0tLS0tLS0tLSAqLwogIGZ1bmN0aW9uIHJlbmRlckludHJvKHNjciwgcm9vdCl7CiAgICB2YXIgcGFydCA9IFRFU1RfREFUQS5wYXJ0c1tzY3IucGldOwogICAgcm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2NyZWVuLWxhYmVsJywgcGFydC5uYW1lICsgJyBcdTIwMTQgSW5zdHJ1Y3Rpb25zJyk7CiAgICByb290LmFwcGVuZENoaWxkKG1ha2VJbnN0cignSW5zdHJ1Y3Rpb25zOicpKTsKICAgIHZhciBib2R5ID0gZWwoJ2RpdicsICdjbHAtaW50cm8tYm9keScpOwogICAgYm9keS5hcHBlbmRDaGlsZChlbCgnaDMnLCAnJywgcGFydC5pbnRyb1RpdGxlKSk7CiAgICB2YXIgdWwgPSBlbCgndWwnLCAnY2xwLWJ1bGxldHMnKTsKICAgIHBhcnQuaW50cm9CdWxsZXRzLmZvckVhY2goZnVuY3Rpb24oYil7IHVsLmFwcGVuZENoaWxkKGVsKCdsaScsICcnLCBiKSk7IH0pOwogICAgYm9keS5hcHBlbmRDaGlsZCh1bCk7CiAgICByb290LmFwcGVuZENoaWxkKGJvZHkpOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyTWVkaWEoc2NyLCByb290KXsKICAgIHZhciBwYXJ0ID0gVEVTVF9EQVRBLnBhcnRzW3Njci5waV07CiAgICB2YXIgc2VjID0gcGFydC5zZWN0aW9uc1tzY3Iuc2ldOwogICAgcm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2NyZWVuLWxhYmVsJywgcGFydC5uYW1lICsgJyBcdTIwMTQgTWVkaWEnKTsKICAgIHJvb3QuYXBwZW5kQ2hpbGQobWFrZUluc3RyKHNlYy5tZWRpYUluc3RydWN0aW9uKSk7CnZhciBfYWs9c2NyLnBpKyIuIitzY3Iuc2ksX2F1PSh0eXBlb2YgQ0xQX0FVRElPIT09InVuZGVmaW5lZCIpJiZDTFBfQVVESU9bX2FrXTtpZihfYXUpe3ZhciBfaXNWPSh0eXBlb2YgQ0xQX0FVRElPX1ZJREVPIT09InVuZGVmaW5lZCIpJiZDTFBfQVVESU9fVklERU9bX2FrXTt2YXIgX3A9ZWwoImRpdiIsImNscC1tZWRpYS1wYW5lbCIpO3ZhciBfYz1lbCgiZGl2IiwiY2xwLW1lZGlhLWNhcmQiKyhfaXNWPyIgY2xwLWlzLXZpZGVvIjoiIikpO3ZhciBfbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KF9pc1Y\/InZpZGVvIjoiYXVkaW8iKTtfbS5zcmM9X2F1O19tLmNvbnRyb2xzPXRydWU7X20ucHJlbG9hZD0ibm9uZSI7X20uY2xhc3NOYW1lPSJjbHAtcmVhbG1lZGlhIjtfbS5zZXRBdHRyaWJ1dGUoImNvbnRyb2xzTGlzdCIsIm5vZG93bmxvYWQiKTtfbS5zdHlsZS5jc3NUZXh0PV9pc1Y\/IndpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojMDAwO2Rpc3BsYXk6YmxvY2siOiJ3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2siO19jLmFwcGVuZENoaWxkKF9tKTtfcC5hcHBlbmRDaGlsZChfYyk7X3AuYXBwZW5kQ2hpbGQoZWwoImRpdiIsImNscC1vbmNlLW5vdGUiLCJJbiB0aGUgcmVhbCB0ZXN0IHRoaXMgcmVjb3JkaW5nIHBsYXlzIG9uY2UuIEZvciBwcmFjdGljZSB5b3UgY2FuIHJlcGxheSBpdCBcdTIwMTQgYnV0IHRyeSB0byBsaXN0ZW4gb25seSBvbmNlIGZpcnN0LiIpKTtyb290LmFwcGVuZENoaWxkKF9wKTtyZXR1cm47fQoKICAgIGlmIChDRUxQSVBfWVQudmlkZW9JZCl7CiAgICAgIHZhciBjaCA9IENMUF9DSEFQVEVSU1tzY3IucGkgKyAnLicgKyBzY3Iuc2ldIHx8IFswLCAwXTsKICAgICAgdmFyIHZwYW5lbCA9IGVsKCdkaXYnLCAnY2xwLW1lZGlhLXBhbmVsJyk7CiAgICAgIHZhciB2Y2FyZCA9IGVsKCdkaXYnLCAnY2xwLW1lZGlhLWNhcmQgY2xwLWlzLXZpZGVvJyk7CiAgICAgIHZhciB3cmFwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgIHdyYXAuc3R5bGUuY3NzVGV4dCA9ICdwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2FzcGVjdC1yYXRpbzoxNi85O2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiMwMDA7JzsKICAgICAgdmFyIGlmciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwogICAgICBpZnIuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUtbm9jb29raWUuY29tL2VtYmVkLycgKyBDRUxQSVBfWVQudmlkZW9JZCArICc\/c3RhcnQ9JyArIGNoWzBdICsgKGNoWzFdID8gJyZlbmQ9JyArIGNoWzFdIDogJycpICsgJyZyZWw9MCZtb2Rlc3RicmFuZGluZz0xJzsKICAgICAgaWZyLmFsbG93ID0gJ2F1dG9wbGF5OyBlbmNyeXB0ZWQtbWVkaWE7IHBpY3R1cmUtaW4tcGljdHVyZSc7CiAgICAgIGlmci5hbGxvd0Z1bGxzY3JlZW4gPSB0cnVlOwogICAgICBpZnIudGl0bGUgPSAnQ0VMUElQIExpc3RlbmluZyBtZWRpYSc7CiAgICAgIGlmci5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXI6MDsnOwogICAgICB3cmFwLmFwcGVuZENoaWxkKGlmcik7CiAgICAgIHZjYXJkLmFwcGVuZENoaWxkKHdyYXApOwogICAgICB2cGFuZWwuYXBwZW5kQ2hpbGQodmNhcmQpOwogICAgICB2cGFuZWwuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsICdjbHAtb25jZS1ub3RlJywgJ0luIHRoZSByZWFsIHRlc3QgdGhpcyBwbGF5cyBvbmx5IG9uY2UgXHUyMDE0IHByZXNzIE5FWFQgd2hlbiBpdCBlbmRzLicpKTsKICAgICAgcm9vdC5hcHBlbmRDaGlsZCh2cGFuZWwpOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIHBhbmVsID0gZWwoJ2RpdicsICdjbHAtbWVkaWEtcGFuZWwnKTsKICAgIHZhciBjYXJkID0gZWwoJ2RpdicsICdjbHAtbWVkaWEtY2FyZCcgKyAoc2VjLm1lZGlhVHlwZSA9PT0gJ3ZpZGVvJyA\/ICcgY2xwLWlzLXZpZGVvJyA6ICcnKSk7CiAgICAvKiAuY2xwLW1lZGlhLXpvbmUgaXMgdGhlIGZ1dHVyZSBZb3VUdWJlLWVtYmVkIHRhcmdldCAoZGF0YS1tZWRpYS1zbG90KSAqLwogICAgdmFyIHpvbmUgPSBlbCgnZGl2JywgJ2NscC1tZWRpYS16b25lJyk7CiAgICB6b25lLnNldEF0dHJpYnV0ZSgnZGF0YS1tZWRpYS1zbG90Jywgc2NyLnBpICsgJy4nICsgc2NyLnNpKTsKICAgIHZhciBpY29uID0gZWwoJ2RpdicsICdjbHAtc3BlYWtlcicpOwogICAgaWNvbi5pbm5lckhUTUwgPSBzZWMubWVkaWFUeXBlID09PSAndmlkZW8nID8gUExBWV9TVkcgOiBTUEVBS0VSX1NWRzsKICAgIHZhciBtYWluID0gZWwoJ2RpdicsICdjbHAtbWVkaWEtbWFpbicpOwogICAgdmFyIGxhYmVsID0gZWwoJ2RpdicsICdjbHAtbWVkaWEtbGFiZWwnLCAnUGxheWluZ1x1MjAyNicpOwogICAgdmFyIHByb2cgPSBlbCgnZGl2JywgJ2NscC1wcm9ncmVzcycpOwogICAgdmFyIGZpbGwgPSBlbCgnZGl2JywgJ2NscC1wcm9ncmVzcy1maWxsJyk7CiAgICBwcm9nLmFwcGVuZENoaWxkKGZpbGwpOwoKICAgIGlmIChzZWMubWVkaWFUeXBlID09PSAndmlkZW8nKXsKICAgICAgem9uZS5hcHBlbmRDaGlsZChpY29uKTsKICAgICAgY2FyZC5hcHBlbmRDaGlsZCh6b25lKTsKICAgICAgbWFpbi5hcHBlbmRDaGlsZChsYWJlbCk7CiAgICAgIG1haW4uYXBwZW5kQ2hpbGQocHJvZyk7CiAgICAgIGNhcmQuYXBwZW5kQ2hpbGQobWFpbik7CiAgICB9IGVsc2UgewogICAgICBtYWluLmFwcGVuZENoaWxkKGxhYmVsKTsKICAgICAgbWFpbi5hcHBlbmRDaGlsZChwcm9nKTsKICAgICAgem9uZS5hcHBlbmRDaGlsZChpY29uKTsKICAgICAgem9uZS5hcHBlbmRDaGlsZChtYWluKTsKICAgICAgY2FyZC5hcHBlbmRDaGlsZCh6b25lKTsKICAgIH0KICAgIHBhbmVsLmFwcGVuZENoaWxkKGNhcmQpOwoKICAgIHZhciBtZXRhID0gZWwoJ2RpdicsICdjbHAtbWVkaWEtbWV0YScpOwogICAgdmFyIHRpbWVTcGFuID0gZWwoJ3NwYW4nLCAnJywgJzA6MDAgLyAnICsgZm10KHNlYy5kdXJhdGlvbikpOwogICAgbWV0YS5hcHBlbmRDaGlsZCh0aW1lU3Bhbik7CiAgICB2YXIgdm9sID0gZWwoJ3NwYW4nLCAnJyk7CiAgICB2b2wuaW5uZXJIVE1MID0gJzxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjYgMjYiIGZpbGw9Im5vbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nICsKICAgICAgJzxyZWN0IHg9IjMiIHk9IjkiIHdpZHRoPSI2IiBoZWlnaHQ9IjgiIHJ4PSIxIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4nICsKICAgICAgJzxwYXRoIGQ9Ik05IDkgTDE1IDQgTDE1IDIyIEw5IDE3IFoiIGZpbGw9ImN1cnJlbnRDb2xvciIvPicgKwogICAgICAnPHBhdGggZD0iTTE4IDkgYTUuNSA1LjUgMCAwIDEgMCA4IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4nOwogICAgbWV0YS5hcHBlbmRDaGlsZCh2b2wpOwogICAgcGFuZWwuYXBwZW5kQ2hpbGQobWV0YSk7CiAgICBwYW5lbC5hcHBlbmRDaGlsZChlbCgnZGl2JywgJ2NscC1vbmNlLW5vdGUnLCAoc2VjLm1lZGlhVHlwZSA9PT0gJ3ZpZGVvJyA\/ICdUaGlzIHZpZGVvIHBsYXlzJyA6ICdUaGlzIHJlY29yZGluZyBwbGF5cycpICsgJyBvbmx5IG9uY2UgXHUyMDE0IGp1c3QgbGlrZSB0aGUgcmVhbCB0ZXN0LicpKTsKICAgIGlmICghQ0VMUElQX1lULnZpZGVvSWQpeyBwYW5lbC5hcHBlbmRDaGlsZChlbCgnZGl2JywgJ2NscC1vbmNlLW5vdGUnLCAnT2ZmaWNpYWwgYXVkaW8vdmlkZW8gaXMgYmVpbmcgcHJlcGFyZWQgXHUyMDE0IHRoZSBiYXIgYWJvdmUgaXMgYSBzaW11bGF0aW9uLiBQcmVzcyBORVhUIHRvIGNvbnRpbnVlLicpKTsgfQogICAgcm9vdC5hcHBlbmRDaGlsZChwYW5lbCk7CgogICAgLyogc2ltdWxhdGVkIHBsYXliYWNrICovCiAgICB2YXIgZWxhcHNlZCA9IDA7CiAgICBtZWRpYVRpbWVyID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsKICAgICAgZWxhcHNlZCsrOwogICAgICBpZiAoZWxhcHNlZCA+PSBzZWMuZHVyYXRpb24pewogICAgICAgIGVsYXBzZWQgPSBzZWMuZHVyYXRpb247CiAgICAgICAgY2xlYXJJbnRlcnZhbChtZWRpYVRpbWVyKTsgbWVkaWFUaW1lciA9IG51bGw7CiAgICAgICAgbGFiZWwudGV4dENvbnRlbnQgPSAnRmluaXNoZWQnOwogICAgICB9CiAgICAgIGZpbGwuc3R5bGUud2lkdGggPSBNYXRoLnJvdW5kKGVsYXBzZWQgLyBzZWMuZHVyYXRpb24gKiAxMDApICsgJyUnOwogICAgICB0aW1lU3Bhbi50ZXh0Q29udGVudCA9IGZtdChlbGFwc2VkKSArICcgLyAnICsgZm10KHNlYy5kdXJhdGlvbik7CiAgICB9LCAxMDAwKTsKICB9CgogIGZ1bmN0aW9uIHJlbmRlclF1ZXN0aW9ucyhzY3IsIHJvb3QpewogICAgdmFyIHBhcnQgPSBURVNUX0RBVEEucGFydHNbc2NyLnBpXTsKICAgIHZhciBzZWMgPSBwYXJ0LnNlY3Rpb25zW3Njci5zaV07CiAgICByb290LnNldEF0dHJpYnV0ZSgnZGF0YS1zY3JlZW4tbGFiZWwnLCBwYXJ0Lm5hbWUgKyAnIFx1MjAxNCBRdWVzdGlvbnMnKTsKICAgIHJvb3QuYXBwZW5kQ2hpbGQobWFrZUluc3RyKHBhcnQucUluc3RydWN0aW9uKSk7CgogICAgdmFyIHBhbmVsID0gZWwoJ2RpdicsICdjbHAtcS1wYW5lbCcpOwogICAgc2VjLnF1ZXN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHEsIHFpKXsKICAgICAgdmFyIGtleSA9IHFLZXkoc2NyLnBpLCBzY3Iuc2ksIHFpKTsKICAgICAgdmFyIHJvdyA9IGVsKCdkaXYnLCAnY2xwLXEnKTsKICAgICAgdmFyIG51bSA9IGVsKCdzcGFuJywgJ2NscC1xbnVtJywgcS5uICsgJy4gJyk7CiAgICAgIHJvdy5hcHBlbmRDaGlsZChudW0pOwogICAgICByb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocS5zdGVtICsgJyAnKSk7CgogICAgICB2YXIgZGQgPSBlbCgnYnV0dG9uJywgJ2NscC1kZCcpOwogICAgICBkZC50eXBlID0gJ2J1dHRvbic7CiAgICAgIGRkLmFwcGVuZENoaWxkKGVsKCdzcGFuJywgJ2NscC1kZC10ZXh0JykpOwogICAgICBkZC5hcHBlbmRDaGlsZChlbCgnc3BhbicsICdjbHAtZGQtY2FyZXQnLCAnXHUyNUJDJykpOwogICAgICB2YXIgYW5zID0gc3RhdGUuYW5zd2Vyc1trZXldOwogICAgICBzZXRUcmlnZ2VyTGFiZWwoZGQsIGFucyAhPT0gdW5kZWZpbmVkID8gcS5vcHRpb25zW2Fuc10gOiAnJywgYW5zID09PSB1bmRlZmluZWQpOwogICAgICByb3cuYXBwZW5kQ2hpbGQoZGQpOwoKICAgICAgaWYgKHEudG9kbyl7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywgJ2NscC10b2RvLXRhZycsICdUT0RPJykpOwogICAgICB9CgogICAgICBpZiAoc3RhdGUuY2hlY2tlZCl7CiAgICAgICAgZGQuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgIHZhciBjb3JyZWN0ID0gYW5zID09PSBxLmtleSAtIDE7CiAgICAgICAgZGQuY2xhc3NMaXN0LmFkZChjb3JyZWN0ID8gJ2NscC1tYXJrLXJpZ2h0JyA6ICdjbHAtbWFyay13cm9uZycpOwogICAgICAgIGlmICghY29ycmVjdCl7CiAgICAgICAgICB2YXIgcmV2ID0gZWwoJ3NwYW4nLCAnY2xwLXJldmVhbCcpOwogICAgICAgICAgcmV2LmlubmVySFRNTCA9ICdDb3JyZWN0IGFuc3dlcjogPGI+PC9iPic7CiAgICAgICAgICByZXYucXVlcnlTZWxlY3RvcignYicpLnRleHRDb250ZW50ID0gcS5vcHRpb25zW3Eua2V5IC0gMV07CiAgICAgICAgICByb3cuYXBwZW5kQ2hpbGQocmV2KTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZGQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7CiAgICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgIG9wZW5Qb3B1cChkZCwgc2NyLnBpLCBzY3Iuc2ksIHFpKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBwYW5lbC5hcHBlbmRDaGlsZChyb3cpOwogICAgfSk7CiAgICByb290LmFwcGVuZENoaWxkKHBhbmVsKTsKCiAgICAvKiBjb3VudGRvd24gKi8KICAgIHFSZW1haW5pbmcgPSBzZWMudGltZU1pbnV0ZXMgKiA2MDsKICAgIHN0YXJ0UVRpbWVyKCk7CiAgfQogIGZ1bmN0aW9uIHN0YXJ0UVRpbWVyKCl7CiAgICBpZiAocVRpbWVyKSBjbGVhckludGVydmFsKHFUaW1lcik7CiAgICBpZiAoIXN0YXRlLnRpbWVyT24pIHJldHVybjsKICAgIHFUaW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uKCl7CiAgICAgIGlmIChxUmVtYWluaW5nID4gMCkgcVJlbWFpbmluZy0tOwogICAgICB2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHBRVGltZXInKTsKICAgICAgaWYgKHQpIHQuaW5uZXJIVE1MID0gJ1RpbWUgcmVtYWluaW5nOiA8Yj4nICsgZm10KHFSZW1haW5pbmcpICsgJzwvYj4nOwogICAgICBpZiAocVJlbWFpbmluZyA8PSAwKXsgY2xlYXJJbnRlcnZhbChxVGltZXIpOyBxVGltZXIgPSBudWxsOyB9CiAgICB9LCAxMDAwKTsKICB9CgogIGZ1bmN0aW9uIHJlbmRlckZpbmlzaChyb290KXsKICAgIHJvb3Quc2V0QXR0cmlidXRlKCdkYXRhLXNjcmVlbi1sYWJlbCcsICdFbmQgb2YgVGVzdCcpOwogICAgdmFyIGJveCA9IGVsKCdkaXYnLCAnY2xwLWZpbmlzaCcpOwogICAgYm94LmFwcGVuZENoaWxkKGVsKCdoMycsICcnLCAnRW5kIG9mIHRoZSBMaXN0ZW5pbmcgVGVzdCcpKTsKICAgIGJveC5hcHBlbmRDaGlsZChlbCgncCcsICcnLCAnWW91IGhhdmUgYW5zd2VyZWQgJyArIGFuc3dlcmVkQ291bnQoKSArICcgb2YgJyArIFRPVEFMX1EgKyAnIHF1ZXN0aW9ucy4gQ2hlY2sgeW91ciBhbnN3ZXJzIHRvIHNlZSB5b3VyIHNjb3JlLCBwYXJ0LWJ5LXBhcnQgcmVzdWx0cywgYW5kIHRyYW5zY3JpcHRzLicpKTsKICAgIHZhciBidG4gPSBlbCgnYnV0dG9uJywgJ2NscC1maW5pc2gtY2hlY2snLCAnQ2hlY2sgYW5zd2VycycpOwogICAgYnRuLnR5cGUgPSAnYnV0dG9uJzsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNoZWNrQW5zd2Vycyk7CiAgICBib3guYXBwZW5kQ2hpbGQoYnRuKTsKICAgIHJvb3QuYXBwZW5kQ2hpbGQoYm94KTsKICB9CgogIGZ1bmN0aW9uIHJlbmRlcigpewogICAgY2xlYXJUaW1lcnMoKTsKICAgIGNsb3NlUG9wdXAoKTsKICAgIGNhdC5pbm5lckhUTUwgPSAnJzsKICAgIHZhciBzY3IgPSBzY3JlZW5zW3N0YXRlLmlkeF07CgogICAgaWYgKCFzdGF0ZS5zdGFydGVkKXsKICAgICAgdmFyIGJhcjAgPSBlbCgnZGl2JywgJ2NscC1iYXInKTsKICAgICAgYmFyMC5hcHBlbmRDaGlsZChlbCgnc3BhbicsICdjbHAtYmFyLXRpdGxlJywgVEVTVF9EQVRBLnRlc3RMYWJlbCArICcgXHUyMDEzIExpc3RlbmluZyBUZXN0JykpOwogICAgICBjYXQuYXBwZW5kQ2hpbGQoYmFyMCk7CiAgICAgIHZhciBpZGxlID0gZWwoJ2RpdicsICdjbHAtaWRsZScpOwogICAgICB2YXIgcCA9IGVsKCdwJywgJycsICdQcmVzcyBcdTIwMUNTdGFydCB0ZXN0XHUyMDFEIGFib3ZlIHRvIGJlZ2luLiBUaGUgdGVzdCBoYXMgNiBwYXJ0cyBhbmQgMzggcXVlc3Rpb25zLCBhbmQgZXZlcnkgcmVjb3JkaW5nIGFuZCB2aWRlbyBwbGF5cyBvbmx5IG9uY2UgXHUyMDE0IGp1c3QgbGlrZSB0aGUgcmVhbCBjb21wdXRlci1kZWxpdmVyZWQgdGVzdC4nKTsKICAgICAgaWRsZS5hcHBlbmRDaGlsZChwKTsKICAgICAgY2F0LmFwcGVuZENoaWxkKGlkbGUpOwogICAgICByZW5kZXJEb3RzKCk7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB2YXIgaXNRID0gc2NyLnR5cGUgPT09ICdxJzsKICAgIGlmIChpc1EpewogICAgICB2YXIgc2VjID0gVEVTVF9EQVRBLnBhcnRzW3Njci5waV0uc2VjdGlvbnNbc2NyLnNpXTsKICAgICAgcVJlbWFpbmluZyA9IHNlYy50aW1lTWludXRlcyAqIDYwOwogICAgfQogICAgdmFyIHRpdGxlID0gc2NyLnR5cGUgPT09ICdmaW5pc2gnCiAgICAgID8gVEVTVF9EQVRBLnRlc3RMYWJlbCArICcgXHUyMDEzIExpc3RlbmluZyBUZXN0JwogICAgICA6IFRFU1RfREFUQS5wYXJ0c1tzY3IucGldLmhlYWRlclRpdGxlOwogICAgY2F0LmFwcGVuZENoaWxkKG1ha2VCYXIodGl0bGUsIGlzUSkpOwoKICAgIHZhciBzY3JlZW4gPSBlbCgnZGl2JywgJ2NscC1zY3JlZW4nKTsKICAgIGlmIChzY3IudHlwZSA9PT0gJ2ludHJvJykgcmVuZGVySW50cm8oc2NyLCBzY3JlZW4pOwogICAgZWxzZSBpZiAoc2NyLnR5cGUgPT09ICdtZWRpYScpIHJlbmRlck1lZGlhKHNjciwgc2NyZWVuKTsKICAgIGVsc2UgaWYgKHNjci50eXBlID09PSAncScpIHJlbmRlclF1ZXN0aW9ucyhzY3IsIHNjcmVlbik7CiAgICBlbHNlIHJlbmRlckZpbmlzaChzY3JlZW4pOwogICAgY2F0LmFwcGVuZENoaWxkKHNjcmVlbik7CiAgICByZW5kZXJEb3RzKCk7CiAgfQoKICAvKiAtLS0tLS0tLS0tIHJlc3VsdHMgLS0tLS0tLS0tLSAqLwogIGZ1bmN0aW9uIGNoZWNrQW5zd2VycygpewogICAgaWYgKHN0YXRlLmNoZWNrZWQpIHJldHVybjsKICAgIHN0YXRlLmNoZWNrZWQgPSB0cnVlOwogICAgdmFyIHNjb3JlID0gY29tcHV0ZVNjb3JlKCk7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIHJlbmRlcigpOwogICAgcmVuZGVyUmVzdWx0cyhzY29yZSk7CiAgICByZXN1bHRzRWwuaGlkZGVuID0gZmFsc2U7CiAgICBzY3JvbGxUb0VsKHJlc3VsdHNFbCk7CiAgfQoKICBmdW5jdGlvbiByZW5kZXJSZXN1bHRzKHNjb3JlKXsKICAgIHJlc3VsdHNFbC5pbm5lckhUTUwgPSAnJzsKICAgIHJlc3VsdHNFbC5hcHBlbmRDaGlsZChlbCgnaDInLCAnJywgJ1lvdXIgcmVzdWx0cycpKTsKICAgIHZhciBncmlkID0gZWwoJ2RpdicsICdjbHAtcmVzLWdyaWQnKTsKCiAgICAvKiByaW5nIGNhcmQgKi8KICAgIHZhciByaW5nQ2FyZCA9IGVsKCdkaXYnLCAnY2xwLWNhcmQgY2xwLXJpbmctY2FyZCBjbHAtcmV2Jyk7CiAgICB2YXIgd3JhcCA9IGVsKCdkaXYnLCAnY2xwLXJpbmctd3JhcCcpOwogICAgdmFyIFIgPSA1NiwgQyA9IDIgKiBNYXRoLlBJICogUjsKICAgIHdyYXAuaW5uZXJIVE1MID0KICAgICAgJzxzdmcgd2lkdGg9IjEzMiIgaGVpZ2h0PSIxMzIiIHZpZXdCb3g9IjAgMCAxMzIgMTMyIj4nICsKICAgICAgJzxjaXJjbGUgY3g9IjY2IiBjeT0iNjYiIHI9IicgKyBSICsgJyIgc3Ryb2tlPSIjRTJFOEYwIiBzdHJva2Utd2lkdGg9IjExIiBmaWxsPSJub25lIi8+JyArCiAgICAgICc8Y2lyY2xlIGlkPSJjbHBSaW5nIiBjeD0iNjYiIGN5PSI2NiIgcj0iJyArIFIgKyAnIiBzdHJva2U9IiMxMEI5ODEiIHN0cm9rZS13aWR0aD0iMTEiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgJyArCiAgICAgICdzdHJva2UtZGFzaGFycmF5PSInICsgQyArICciIHN0cm9rZS1kYXNob2Zmc2V0PSInICsgQyArICciLz48L3N2Zz4nOwogICAgdmFyIG51bSA9IGVsKCdkaXYnLCAnY2xwLXJpbmctbnVtJyk7CiAgICB2YXIgYmlnID0gZWwoJ2InLCAnJywgJzAnKTsKICAgIG51bS5hcHBlbmRDaGlsZChiaWcpOwogICAgbnVtLmFwcGVuZENoaWxkKGVsKCdzcGFuJywgJycsICdvdXQgb2YgJyArIFRPVEFMX1EpKTsKICAgIHdyYXAuYXBwZW5kQ2hpbGQobnVtKTsKICAgIHJpbmdDYXJkLmFwcGVuZENoaWxkKHdyYXApOwogICAgcmluZ0NhcmQuYXBwZW5kQ2hpbGQoZWwoJ2gzJywgJycsICdUb3RhbCBzY29yZScpKTsKICAgIGdyaWQuYXBwZW5kQ2hpbGQocmluZ0NhcmQpOwoKICAgIC8qIGJyZWFrZG93biBjYXJkICovCiAgICB2YXIgYmQgPSBlbCgnZGl2JywgJ2NscC1jYXJkIGNscC1yZXYnKTsKICAgIGJkLmFwcGVuZENoaWxkKGVsKCdoMycsICcnLCAnUGFydC1ieS1wYXJ0IGJyZWFrZG93bicpKTsKICAgIHZhciBjaGlwcyA9IGVsKCdkaXYnLCAnY2xwLXBhcnQtY2hpcHMnKTsKICAgIHNjb3JlLnBlclBhcnQuZm9yRWFjaChmdW5jdGlvbihwcCwgcGkpewogICAgICB2YXIgYyA9IGVsKCdzcGFuJywgJ2NscC1wYXJ0LWNoaXAnKTsKICAgICAgYy5pbm5lckhUTUwgPSAnUCcgKyAocGkgKyAxKSArICcgPGI+JyArIHBwLmNvcnJlY3QgKyAnLycgKyBwcC50b3RhbCArICc8L2I+JzsKICAgICAgY2hpcHMuYXBwZW5kQ2hpbGQoYyk7CiAgICB9KTsKICAgIGJkLmFwcGVuZENoaWxkKGNoaXBzKTsKCiAgICB2YXIgZXN0ID0gY2xiRXN0aW1hdGUoc2NvcmUudG90YWwpOwogICAgdmFyIGNsYiA9IGVsKCdkaXYnLCAnY2xwLWNsYi1yb3cnKTsKICAgIGNsYi5hcHBlbmRDaGlsZChlbCgnc3BhbicsICdjbHAtY2xiLWJhZGdlJywgZXN0LmxldmVsKSk7CiAgICBjbGIuYXBwZW5kQ2hpbGQoZWwoJ3AnLCAnJywgZXN0Lm5vdGUgKyAnIFx1MjAxNCBlc3RpbWF0ZWQgZnJvbSBhIHJhdyBzY29yZSBvZiAnICsgc2NvcmUudG90YWwgKyAnLycgKyBUT1RBTF9RICsgJy4gVE9ETzogcGxhY2Vob2xkZXIgbWFwcGluZyBcdTIwMTQgdmVyaWZ5IGFnYWluc3QgdGhlIG9mZmljaWFsIENFTFBJUCBzY29yZSBjaGFydC4nKSk7CiAgICBiZC5hcHBlbmRDaGlsZChjbGIpOwogICAgZ3JpZC5hcHBlbmRDaGlsZChiZCk7CiAgICByZXN1bHRzRWwuYXBwZW5kQ2hpbGQoZ3JpZCk7CgogICAgLyogdHJhbnNjcmlwdHMgKi8KICAgIHZhciB0cldyYXAgPSBlbCgnZGl2JywgJ2NscC10cmFuc2NyaXB0cycpOwogICAgVEVTVF9EQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCwgcGkpewogICAgICB2YXIgY2FyZCA9IGVsKCdkaXYnLCAnY2xwLXRyLWNhcmQgY2xwLXJldicpOwogICAgICB2YXIgaGVhZCA9IGVsKCdidXR0b24nLCAnY2xwLXRyLWhlYWQnKTsKICAgICAgaGVhZC50eXBlID0gJ2J1dHRvbic7CiAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCAnJywgJ1RyYW5zY3JpcHQgXHUyMDE0ICcgKyBwYXJ0Lm5hbWUpKTsKICAgICAgaGVhZC5hcHBlbmRDaGlsZChlbCgnc3BhbicsICdjbHAtdHItY2FyZXQnLCAnXHUyNUJDJykpOwogICAgICBoZWFkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgY2FyZC5jbGFzc0xpc3QudG9nZ2xlKCdjbHAtb3BlbicpOyB9KTsKICAgICAgdmFyIGJvZHkgPSBlbCgnZGl2JywgJ2NscC10ci1ib2R5Jyk7CiAgICAgIGJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocGFydC50cmFuc2NyaXB0KSk7CiAgICAgIGlmIChwYXJ0LnRyYW5zY3JpcHRUb2RvKXsKICAgICAgICBib2R5LmFwcGVuZENoaWxkKGVsKCdzcGFuJywgJ2NscC10ci10b2RvJywgJ1RPRE86IHJlcGxhY2UgdGhpcyBzdW1tYXJ5IHdpdGggdGhlIGZ1bGwgb2ZmaWNpYWwgdHJhbnNjcmlwdC4nKSk7CiAgICAgIH0KICAgICAgY2FyZC5hcHBlbmRDaGlsZChoZWFkKTsKICAgICAgY2FyZC5hcHBlbmRDaGlsZChib2R5KTsKICAgICAgdHJXcmFwLmFwcGVuZENoaWxkKGNhcmQpOwogICAgfSk7CiAgICByZXN1bHRzRWwuYXBwZW5kQ2hpbGQodHJXcmFwKTsKCiAgICAvKiByZXZlYWwgKyBjb3VudC11cCAqLwogICAgdmFyIHJldkVscyA9IHJlc3VsdHNFbC5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwLXJldicpOwogICAgaWYgKCdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93ICYmICFyZWR1Y2VkTW90aW9uKXsKICAgICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7CiAgICAgICAgICBpZiAoZW4uaXNJbnRlcnNlY3RpbmcpeyBlbi50YXJnZXQuY2xhc3NMaXN0LmFkZCgnY2xwLWluJyk7IGlvLnVub2JzZXJ2ZShlbi50YXJnZXQpOyB9CiAgICAgICAgfSk7CiAgICAgIH0sIHsgdGhyZXNob2xkOiAwLjE1IH0pOwogICAgICByZXZFbHMuZm9yRWFjaChmdW5jdGlvbihlKXsgaW8ub2JzZXJ2ZShlKTsgfSk7CiAgICB9IGVsc2UgewogICAgICByZXZFbHMuZm9yRWFjaChmdW5jdGlvbihlKXsgZS5jbGFzc0xpc3QuYWRkKCdjbHAtaW4nKTsgfSk7CiAgICB9CgogICAgdmFyIHJpbmcgPSByZXN1bHRzRWwucXVlcnlTZWxlY3RvcignI2NscFJpbmcnKTsKICAgIHZhciB0YXJnZXQgPSBzY29yZS50b3RhbDsKICAgIGlmIChyZWR1Y2VkTW90aW9uKXsKICAgICAgYmlnLnRleHRDb250ZW50ID0gdGFyZ2V0OwogICAgICByaW5nLnN0eWxlLnN0cm9rZURhc2hvZmZzZXQgPSBDICogKDEgLSB0YXJnZXQgLyBUT1RBTF9RKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciB0MCA9IG51bGwsIERVUiA9IDExMDA7CiAgICAgIGZ1bmN0aW9uIHN0ZXAodHMpewogICAgICAgIGlmICghdDApIHQwID0gdHM7CiAgICAgICAgdmFyIHAgPSBNYXRoLm1pbigxLCAodHMgLSB0MCkgLyBEVVIpOwogICAgICAgIHZhciBlYXNlID0gMSAtIE1hdGgucG93KDEgLSBwLCAzKTsKICAgICAgICBiaWcudGV4dENvbnRlbnQgPSBNYXRoLnJvdW5kKGVhc2UgKiB0YXJnZXQpOwogICAgICAgIHJpbmcuc3R5bGUuc3Ryb2tlRGFzaG9mZnNldCA9IEMgKiAoMSAtIChlYXNlICogdGFyZ2V0KSAvIFRPVEFMX1EpOwogICAgICAgIGlmIChwIDwgMSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApOwogICAgICB9CiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTsKICAgIH0KICB9CgogIC8qIC0tLS0tLS0tLS0gdG9vbGJhciAvIGNvbnRyb2xzIC0tLS0tLS0tLS0gKi8KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwU3RhcnQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICBzdGF0ZS5zdGFydGVkID0gdHJ1ZTsKICAgIHN0YXRlLmlkeCA9IDA7CiAgICB0b29sYmFyLmhpZGRlbiA9IGZhbHNlOwogICAgcmVuZGVyKCk7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIHNjcm9sbFRvRWwoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscFNpbScpKTsKICB9KTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwQ2hlY2snKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICBpZiAoIXN0YXRlLnN0YXJ0ZWQpIHJldHVybjsKICAgIGNoZWNrQW5zd2VycygpOwogIH0pOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHBSZXNldCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHN0YXRlLnN0YXJ0ZWQgPSBmYWxzZTsKICAgIHN0YXRlLmlkeCA9IDA7CiAgICBzdGF0ZS5hbnN3ZXJzID0ge307CiAgICBzdGF0ZS5jaGVja2VkID0gZmFsc2U7CiAgICByZXN1bHRzRWwuaGlkZGVuID0gdHJ1ZTsKICAgIHJlc3VsdHNFbC5pbm5lckhUTUwgPSAnJzsKICAgIHRvb2xiYXIuaGlkZGVuID0gdHJ1ZTsKICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgcmVuZGVyKCk7CiAgICBzY3JvbGxUb0VsKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHBBcHAnKSwgMjApOwogIH0pOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHBUaW1lclRvZ2dsZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHN0YXRlLnRpbWVyT24gPSAhc3RhdGUudGltZXJPbjsKICAgIHRoaXMudGV4dENvbnRlbnQgPSAnVGltZXI6ICcgKyAoc3RhdGUudGltZXJPbiA\/ICdvbicgOiAnb2ZmJyk7CiAgICB2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHBRVGltZXInKTsKICAgIGlmICghc3RhdGUudGltZXJPbil7CiAgICAgIGlmIChxVGltZXIpeyBjbGVhckludGVydmFsKHFUaW1lcik7IHFUaW1lciA9IG51bGw7IH0KICAgICAgaWYgKHQpIHQucmVtb3ZlKCk7CiAgICB9IGVsc2UgaWYgKHNjcmVlbnNbc3RhdGUuaWR4XSAmJiBzY3JlZW5zW3N0YXRlLmlkeF0udHlwZSA9PT0gJ3EnKXsKICAgICAgcmVuZGVyKCk7CiAgICB9CiAgfSk7CgogIHVwZGF0ZVNjb3JlQ2hpcCgpOwogIHJlbmRlcigpOwp9KSgpOwo='));<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Listening Set 11 Practice Test 1: 6-part computer-delivered listening test in the real exam format, with audio, instant scoring and answer key. 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-6146","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6146","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=6146"}],"version-history":[{"count":1,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6146\/revisions"}],"predecessor-version":[{"id":6596,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6146\/revisions\/6596"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}