{"id":2691,"date":"2026-06-13T11:06:20","date_gmt":"2026-06-13T11:06:20","guid":{"rendered":"https:\/\/allenglish4u.com\/cambridge-movers-1-test-3-rw\/"},"modified":"2026-06-13T11:06:20","modified_gmt":"2026-06-13T11:06:20","slug":"cambridge-movers-1-test-3-rw","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/cambridge-movers-1-test-3-rw\/","title":{"rendered":"Cambridge Movers 1 &#8211; Test 3 (Reading &#038; Writing)"},"content":{"rendered":"<!--\n================================================================\nAE4U &#183; YLE MOVERS READING & WRITING &#8212; Test 3 (Movers 1)\n6 parts &#183; 40 questions &#183; auto-graded\nP1 copy-word &#183; P2 yes\/no &#183; P3 dialogue MCQ &#183; P4 story cloze+title &#183; P5 open cloze &#183; P6 grammar MCQ\n================================================================\n-->\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400%3B500%3B600%3B700%3B800&family=Fraunces:opsz,wght@9..144,700&display=swap');\n.entry-content,.wp-block-post-content,.is-layout-constrained{max-width:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;padding-left:0 !important;padding-right:0 !important;}\n.wp-block-post-title{display:none !important;}\n:root{\n  --accent-1:#8B5CF6; --accent-2:#EC4899; --gold:#FBBF24; --green:#10B981; --red:#EF4444;\n  --light-1:#F5F3FF; --light-2:#FAF5FF; --white:#FFFFFF;\n  --text:#0F172A; --muted:#475569; --subtle:#64748B; --border:#E2E8F0;\n  --r-10:10px; --r-16:16px;\n  --sh-card:0 2px 8px rgba(0,0,0,.06);\n}\n*{margin:0;padding:0;box-sizing:border-box}\nhtml{scroll-behavior:smooth}\nbody{font-family:'Plus Jakarta Sans',system-ui,sans-serif !important;color:var(--text);background:var(--light-2);-webkit-font-smoothing:antialiased;overflow-x:hidden}\n.serif{font-family:'Fraunces',Georgia,serif !important;font-weight:700;letter-spacing:-.01em}\n.wrap{max-width:980px;margin:0 auto;padding:0 24px}\na{color:inherit;text-decoration:none}\nbutton{font-family:inherit !important;cursor:pointer;border:none;background:none}\n.hero{position:relative;min-height:240px;padding:64px 0 36px;background:linear-gradient(135deg,#8B5CF6 0%,#EC4899 60%,#7C2D12 100%);color:#fff;overflow:hidden}\n.hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.10) 0,transparent 50%);pointer-events:none}\n.hero .wrap{position:relative;z-index:1}\n.kicker{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;opacity:.92;margin-bottom:12px}\n.hero h1{font-size:clamp(28px,5vw,44px);line-height:1.05;margin-bottom:12px}\n.hero h1 span{font-style:italic;color:var(--gold)}\n.hero p.sub{font-size:15.5px;line-height:1.6;max-width:680px;opacity:.95;margin-bottom:16px}\n.hero-meta{display:flex;flex-wrap:wrap;gap:10px}\n.meta-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.24);font-size:13px;font-weight:600}\n.meta-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}\n.mini-prog{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:10px 0}\n.mini-prog-inner{display:flex;align-items:center;gap:14px}\n.mini-prog-bar{flex:1;height:6px;background:var(--light-1);border-radius:999px;overflow:hidden}\n.mini-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent-1),var(--accent-2));border-radius:999px;transition:width .3s ease;width:0}\n.mini-prog-label{font-size:12px;color:var(--muted);font-weight:700;min-width:120px}\n.mini-prog-score{font-weight:800;color:var(--accent-1);font-size:14px;min-width:84px}\n.part-section{padding:44px 0;border-bottom:1px solid var(--border)}\n.part-section:nth-of-type(even){background:#fff}\n.part-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:20px}\n.part-num{flex-shrink:0;width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#fff;display:grid;place-items:center;font-family:'Fraunces',serif !important;font-weight:700;font-size:24px;box-shadow:0 8px 22px rgba(139,92,246,.3)}\n.part-head-text h2{font-size:24px;line-height:1.15;margin-bottom:6px}\n.part-head-text .qrange{display:inline-block;font-size:12.5px;font-weight:700;color:var(--accent-1);background:var(--light-1);padding:4px 10px;border-radius:999px;margin-bottom:8px}\n.part-head-text p{color:var(--muted);font-size:14.5px;line-height:1.55;max-width:740px}\n.card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:20px;margin-top:14px}\n.show-ans-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;background:#FEF3C7;color:#7B5B00;font-weight:700;font-size:12px;border:1px solid #E8D88E;cursor:pointer}\n.show-ans-btn:hover{background:#FDE68A}\n.input-blank{display:inline-block;min-width:150px;border:none;border-bottom:2px dashed var(--accent-1);background:transparent;font-family:inherit !important;font-size:15.5px;color:var(--text);font-weight:600;padding:2px 8px;text-align:center;outline:none}\n.input-blank:focus{border-bottom-style:solid;background:var(--light-1)}\n.input-blank.correct{border-bottom-color:var(--green);color:#065F46;background:rgba(16,185,129,.10)}\n.input-blank.wrong{border-bottom-color:var(--red);color:#991B1B;background:rgba(239,68,68,.08)}\n.input-blank.revealed{border-bottom-color:var(--gold);background:#FEF3C7;color:#7B5B00}\n\/* P1\/P4 word bank *\/\n.wbank{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}\n.wbank.b9{grid-template-columns:repeat(3,1fr)}\n.wchip{border:1.5px solid var(--border);border-radius:12px;padding:8px;text-align:center;background:#FAFBFC}\n.wchip img{width:100%;aspect-ratio:1\/1;object-fit:contain;border-radius:8px;background:#fff;display:block}\n.wchip .wlabel{margin-top:6px;font-weight:700;font-size:13.5px;color:var(--text)}\n.wchip.used{opacity:.4}\n.defrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 0;border-top:1px dashed var(--border)}\n.defrow:first-child{border-top:none}\n.defrow .qn{font-weight:800;color:var(--accent-1);min-width:26px}\n.defrow .dtext{flex:1;min-width:220px;font-size:15px}\n.defrow.example{opacity:.7}\n.defrow .ex-tag{background:var(--gold);color:#fff;padding:2px 8px;border-radius:6px;font-size:11px;margin-left:6px}\n\/* yes\/no + MCQ *\/\n.yn-row,.mcq-row{padding:14px 0;border-top:1px dashed var(--border)}\n.yn-row:first-child,.mcq-row:first-child{border-top:none}\n.yn-q,.mcq-q{font-size:15px;font-weight:600;margin-bottom:8px;display:flex;gap:10px}\n.yn-q .qn,.mcq-q .qn{color:var(--accent-1);font-weight:800;min-width:26px}\n.yn-opts{display:flex;gap:10px}\n.yn-btn{padding:8px 22px;border-radius:999px;border:2px solid var(--border);font-weight:700;font-size:14px;background:#fff;cursor:pointer;min-height:40px}\n.yn-btn.sel{border-color:var(--accent-1);background:linear-gradient(100deg,rgba(139,92,246,.12),rgba(236,72,153,.12))}\n.yn-btn.correct{border-color:var(--green);background:rgba(16,185,129,.12);color:#065F46}\n.yn-btn.wrong{border-color:var(--red);background:rgba(239,68,68,.10);color:#991B1B}\n.mcq-opts{display:flex;flex-direction:column;gap:8px;margin-left:36px}\n.mcq-opt{display:flex;align-items:center;gap:10px;padding:9px 13px;border-radius:10px;border:1.5px solid var(--border);background:#fff;cursor:pointer;font-size:14.5px;min-height:42px}\n.mcq-opt .ml{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:var(--light-1);color:var(--accent-1);font-weight:800;font-size:13px;flex-shrink:0}\n.mcq-opt.sel{border-color:var(--accent-1);background:var(--light-1)}\n.mcq-opt.correct{border-color:var(--green);background:rgba(16,185,129,.08)}\n.mcq-opt.wrong{border-color:var(--red);background:rgba(239,68,68,.08)}\n.story{font-size:15.5px;line-height:2.0;color:var(--text);background:#FAFBFC;border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin:12px 0}\n.story img{max-width:420px;width:100%;height:auto;border-radius:10px;display:block;margin:0 auto 14px}\n.gap-select{font-family:inherit !important;font-size:14.5px;font-weight:700;color:var(--accent-1);border:1.5px solid var(--accent-1);border-radius:8px;padding:3px 6px;background:#fff;cursor:pointer}\n.gap-select.correct{border-color:var(--green);color:#065F46;background:rgba(16,185,129,.10)}\n.gap-select.wrong{border-color:var(--red);color:#991B1B;background:rgba(239,68,68,.08)}\n.tickbox{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px solid var(--border);border-radius:10px;margin-top:8px;cursor:pointer;font-weight:600;font-size:14.5px}\n.tickbox .tb{width:22px;height:22px;border-radius:6px;border:2px solid var(--border);display:grid;place-items:center;color:transparent}\n.tickbox.sel{border-color:var(--accent-1);background:var(--light-1)}\n.tickbox.sel .tb{background:var(--accent-1);color:#fff;border-color:transparent}\n.tickbox.correct{border-color:var(--green);background:rgba(16,185,129,.08)}\n.tickbox.wrong{border-color:var(--red);background:rgba(239,68,68,.08)}\n.hint{font-size:12.5px;color:var(--muted);text-align:center;margin-top:10px;background:var(--light-1);border:1px solid var(--border);border-radius:8px;padding:8px 12px}\n.submit-panel{background:linear-gradient(135deg,#fff,var(--light-1));border:1.5px solid var(--border);border-radius:20px;padding:28px;text-align:center;margin:36px 0}\n.submit-panel h3{font-family:'Fraunces',serif !important;font-size:22px;margin-bottom:6px}\n.submit-panel .intro{color:var(--muted);font-size:14px;margin-bottom:16px}\n.sp-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}\n.btn-submit-big{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:800;font-size:16px;box-shadow:0 10px 26px rgba(139,92,246,.35)}\n.btn-reset-big{padding:14px 24px;border-radius:999px;background:#fff;border:1.5px solid var(--border);font-weight:700;font-size:15px;color:var(--text)}\n.results-banner{display:none;background:linear-gradient(135deg,#8B5CF6,#EC4899);color:#fff;border-radius:20px;padding:30px;text-align:center;margin:24px 0}\n.results-banner.show{display:block}\n.results-banner h3{font-family:'Fraunces',serif !important;font-size:22px;margin-bottom:8px}\n.score-big{font-family:'Fraunces',serif !important;font-size:56px;line-height:1;margin:8px 0}\n.score-parts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}\n.sp-item{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.26);border-radius:12px;padding:8px 14px;font-size:13px;font-weight:700}\n.sp-item b{display:block;font-size:18px;font-family:'Fraunces',serif}\n.footer{background:#0C1322;color:rgba(255,255,255,.7);padding:28px 0;text-align:center;font-size:13.5px}\n.footer a{color:var(--gold)}\n@media(max-width:720px){.wbank{grid-template-columns:repeat(2,1fr)}.wbank.b9{grid-template-columns:repeat(3,1fr)}}\n<\/style>\n\n<section class=\"hero\">\n  <div class=\"wrap\">\n    <span class=\"kicker\">Cambridge YLE &middot; Movers<\/span>\n    <h1 class=\"serif\">Movers 1 &mdash; Test 3 <span>Reading &amp; Writing<\/span><\/h1>\n    <p class=\"sub\">6 parts with 40 questions. Read carefully, choose or write your answers, then submit to grade. Each part has a <b>Show Answers<\/b> button to study.<\/p>\n    <div class=\"hero-meta\">\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>~30 minutes<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>6 Parts &middot; 40 Questions<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>Auto-grade + Show Answers<\/span>\n    <\/div>\n  <\/div>\n<\/section>\n\n<div class=\"mini-prog\">\n  <div class=\"wrap mini-prog-inner\">\n    <div class=\"mini-prog-score\">Score <span id=\"scoreNow\">0<\/span>\/40<\/div>\n    <div class=\"mini-prog-bar\"><div class=\"mini-prog-fill\" id=\"progFill\"><\/div><\/div>\n    <div class=\"mini-prog-label\"><span id=\"answeredCount\">0<\/span> of 40 answered<\/div>\n  <\/div>\n<\/div>\n\n<section class=\"part-section\" id=\"part1\"><div class=\"wrap\">\n  <div class=\"part-head\"><div class=\"part-num\">1<\/div><div class=\"part-head-text\">\n    <span class=\"qrange\">Questions 1&ndash;6 &middot; Look and write<\/span>\n    <h2 class=\"serif\">Choose the correct words and write them<\/h2>\n    <p>Look at the pictures and read the sentences. Choose the correct word and write it on the line. There is one example.<\/p>\n  <\/div><\/div>\n  <div class=\"card\">\n    <div class=\"wbank\" id=\"p1Bank\"><\/div>\n    <div id=\"p1Rows\"><\/div>\n    <div style=\"text-align:right;margin-top:12px\"><button class=\"show-ans-btn\" data-show=\"P1ALL\">&#128065; Show Answers (Part 1)<\/button><\/div>\n  <\/div>\n<\/div><\/section>\n\n<section class=\"part-section\" id=\"part2\"><div class=\"wrap\">\n  <div class=\"part-head\"><div class=\"part-num\">2<\/div><div class=\"part-head-text\">\n    <span class=\"qrange\">Questions 7&ndash;12 &middot; Yes \/ No<\/span>\n    <h2 class=\"serif\">Look at the picture and read &mdash; yes or no?<\/h2>\n    <p>Look at the picture. Read the sentences. Are they right? Write <b>yes<\/b>. Are they wrong? Write <b>no<\/b>. There are two examples.<\/p>\n  <\/div><\/div>\n  <div class=\"card\">\n    <img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/m1t3rw_p2_scene.jpg\" alt=\"Part 2 scene: children playing outside near a school\" style=\"max-width:640px;width:100%;border-radius:12px;display:block;margin:0 auto 16px\">\n    <div id=\"p2Rows\"><\/div>\n    <div style=\"text-align:right;margin-top:12px\"><button class=\"show-ans-btn\" data-show=\"P2ALL\">&#128065; Show Answers (Part 2)<\/button><\/div>\n  <\/div>\n<\/div><\/section>\n\n<section class=\"part-section\" id=\"part3\"><div class=\"wrap\">\n  <div class=\"part-head\"><div class=\"part-num\">3<\/div><div class=\"part-head-text\">\n    <span class=\"qrange\">Questions 13&ndash;18 &middot; Choose the answer<\/span>\n    <h2 class=\"serif\">Read the conversation. Choose the best answer<\/h2>\n    <p>Bill is talking to his friend Pat. What does Pat say? Choose the best answer (A, B or C). There is one example.<\/p>\n  <\/div><\/div>\n  <div class=\"card\">\n    <div id=\"p3Rows\"><\/div>\n    <div style=\"text-align:right;margin-top:12px\"><button class=\"show-ans-btn\" data-show=\"P3ALL\">&#128065; Show Answers (Part 3)<\/button><\/div>\n  <\/div>\n<\/div><\/section>\n\n<section class=\"part-section\" id=\"part4\"><div class=\"wrap\">\n  <div class=\"part-head\"><div class=\"part-num\">4<\/div><div class=\"part-head-text\">\n    <span class=\"qrange\">Questions 19&ndash;25 &middot; Story &amp; title<\/span>\n    <h2 class=\"serif\">Read the story. Choose a word for each gap<\/h2>\n    <p>Choose the right word from the pictures for each gap and pick it from the menu. Then choose the best name for the story. There is one example.<\/p>\n  <\/div><\/div>\n  <div class=\"card\">\n    <div class=\"wbank b9\" id=\"p4Bank\"><\/div>\n    <div class=\"story\" id=\"p4Story\"><\/div>\n    <div style=\"margin-top:14px\"><b>(25) Now choose the best name for the story:<\/b><div id=\"p4Title\"><\/div><\/div>\n    <div style=\"text-align:right;margin-top:12px\"><button class=\"show-ans-btn\" data-show=\"P4ALL\">&#128065; Show Answers (Part 4)<\/button><\/div>\n  <\/div>\n<\/div><\/section>\n\n<section class=\"part-section\" id=\"part5\"><div class=\"wrap\">\n  <div class=\"part-head\"><div class=\"part-num\">5<\/div><div class=\"part-head-text\">\n    <span class=\"qrange\">Questions 26&ndash;35 &middot; Complete the sentences<\/span>\n    <h2 class=\"serif\">Read the story. Write words to complete the sentences<\/h2>\n    <p>Look at the pictures and read the story <b>&ldquo;Pasta the Parrot&rdquo;<\/b> Write words to complete the sentences. You can use 1, 2 or 3 words. There are two examples.<\/p>\n  <\/div><\/div>\n  <div class=\"card\">\n    <div class=\"story\" id=\"p5Story\"><\/div>\n    <div id=\"p5Rows\"><\/div>\n    <div style=\"text-align:right;margin-top:12px\"><button class=\"show-ans-btn\" data-show=\"P5ALL\">&#128065; Show Answers (Part 5)<\/button><\/div>\n  <\/div>\n<\/div><\/section>\n\n<section class=\"part-section\" id=\"part6\"><div class=\"wrap\">\n  <div class=\"part-head\"><div class=\"part-num\">6<\/div><div class=\"part-head-text\">\n    <span class=\"qrange\">Questions 36&ndash;40 &middot; Choose the right word<\/span>\n    <h2 class=\"serif\">Read the text. Choose the right words<\/h2>\n    <p>Read about <b>Zoos<\/b>. Choose the right word (A, B or C) for each gap. There is one example.<\/p>\n  <\/div><\/div>\n  <div class=\"card\">\n    <img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/m1t3rw_p6_zoos.jpg\" alt=\"A zoo\" style=\"max-width:420px;width:100%;display:block;margin:0 auto 14px\">\n    <div class=\"story\" id=\"p6Story\" style=\"background:#fff;border:none;padding:0\"><\/div>\n    <div id=\"p6Rows\"><\/div>\n    <div style=\"text-align:right;margin-top:12px\"><button class=\"show-ans-btn\" data-show=\"P6ALL\">&#128065; Show Answers (Part 6)<\/button><\/div>\n  <\/div>\n<\/div><\/section>\n\n<div class=\"wrap\">\n  <div class=\"submit-panel\">\n    <h3>&#127919; Finished all 40 questions?<\/h3>\n    <p class=\"intro\">Submit to grade your whole test, or use &#128065; Show Answers per part.<\/p>\n    <div class=\"sp-buttons\">\n      <button class=\"btn-submit-big\" id=\"submitBtn\">&#10003; Submit &amp; Grade All<\/button>\n      <button class=\"btn-reset-big\" id=\"resetBtn\">&#128260; Reset Test<\/button>\n    <\/div>\n  <\/div>\n  <div class=\"results-banner\" id=\"resultsBanner\">\n    <h3>&#128218; Your Movers 1 Test 3 Reading &amp; Writing score<\/h3>\n    <div class=\"score-big\"><span id=\"finalScore\">0<\/span>\/40<\/div>\n    <p id=\"resultsMsg\">Great work!<\/p>\n    <div class=\"score-parts\" id=\"scoreParts\"><\/div>\n  <\/div>\n<\/div>\n\n<footer class=\"footer\"><div class=\"wrap\"><p>&copy; 2026 All English 4U &middot; <a href=\"https:\/\/allenglish4u.com\/vi\/cambridge\/\">All Cambridge Tests<\/a> &middot; <a href=\"https:\/\/allenglish4u.com\/vi\/contact\/\">Li\u00ean h\u1ec7<\/a><\/p><\/div><\/footer>\n\n<script>eval(atob('CihmdW5jdGlvbigpewp2YXIgSU1HPSdodHRwczovL2FsbGVuZ2xpc2g0dS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDYvJzsKLyogPT09PT0gREFUQSA9PT09PSAqLwp2YXIgUDFfQkFOSz1bCiAge3c6J2EgdG93bicsaW1nOidtMXQzcndfcDFfdG93bi5qcGcnfSx7dzonbW91bnRhaW5zJyxpbWc6J20xdDNyd19wMV9tb3VudGFpbnMuanBnJ30sCiAge3c6J2EgY3VwJyxpbWc6J20xdDNyd19wMV9jdXAuanBnJ30se3c6J3N0YWlycycsaW1nOidtMXQzcndfcDFfc3RhaXJzLmpwZyd9LAogIHt3Oid0aGUgd29ybGQnLGltZzonbTF0M3J3X3AxX3dvcmxkLmpwZyd9LHt3OidhIGJvdHRsZScsaW1nOidtMXQzcndfcDFfYm90dGxlLmpwZyd9LAogIHt3OidhIGZhcm0nLGltZzonbTF0M3J3X3AxX2Zhcm0uanBnJ30se3c6J2Egem9vJyxpbWc6J20xdDNyd19wMV96b28uanBnJ30KXTsKdmFyIFAxX0VYPXtkOidZb3UgY2FuIGRyaW5rIHRlYSBpbiB0aGlzLicsYTonYSBjdXAnfTsKdmFyIFAxPVsKICB7bjoxLGQ6J01vcmUgcGVvcGxlIGxpdmUgaGVyZSB0aGFuIGluIGEgdmlsbGFnZS4nLGE6J2EgdG93bicsYWNjOlsndG93bicsJ2EgdG93biddfSwKICB7bjoyLGQ6J1Blb3BsZSBsaWtlIGNsaW1iaW5nIHRoZXNlIGluIHRoZSBob2xpZGF5cy4nLGE6J21vdW50YWlucycsYWNjOlsnbW91bnRhaW5zJywnbW91bnRhaW4nXX0sCiAge246MyxkOidZb3UgY2FuIGJ1eSBsZW1vbmFkZSBpbiB0aGlzLicsYTonYSBib3R0bGUnLGFjYzpbJ2JvdHRsZScsJ2EgYm90dGxlJ119LAogIHtuOjQsZDonWW91IGZpbmQgYW5pbWFscyBsaWtlIGNvd3MgYW5kIHNoZWVwIGhlcmUuJyxhOidhIGZhcm0nLGFjYzpbJ2Zhcm0nLCdhIGZhcm0nXX0sCiAge246NSxkOidZb3UgbmVlZCB0aGVzZSB0byBnbyB1cCB0byB0aGUgc2Vjb25kIGZsb29yLicsYTonc3RhaXJzJyxhY2M6WydzdGFpcnMnLCdzdGFpciddfSwKICB7bjo2LGQ6J0l0IGlzIGJpZyBhbmQgcm91bmQgYW5kIHdlIGFsbCBsaXZlIHRoZXJlLicsYTondGhlIHdvcmxkJyxhY2M6Wyd3b3JsZCcsJ3RoZSB3b3JsZCddfQpdOwp2YXIgUDJfRVg9W3tkOiJJdCdzIGEgc3VubnkgZGF5LiIsYToneWVzJ30se2Q6J0Egd2hpdGUgY2F0IGlzIHNpdHRpbmcgb24gdGhlIHdhbGwuJyxhOidubyd9XTsKdmFyIFAyPVsKICB7bjo3LGQ6J1RoZSB0ZWFjaGVyIGlzIHBvaW50aW5nIGF0IHRoZSBkb2cuJyxhOid5ZXMnfSwKICB7bjo4LGQ6J0EgYm95IHdpdGggcmVkIHRyb3VzZXJzIGlzIHJpZGluZyBhIGJpY3ljbGUuJyxhOidubyd9LAogIHtuOjksZDonT25lIG9mIHRoZSBjaGlsZHJlbiBoYXMgZ290IGEgc25ha2UuJyxhOid5ZXMnfSwKICB7bjoxMCxkOidUaHJlZSBib3lzIGFyZSBwbGF5aW5nIHdpdGggYSBiYWxsLicsYTonbm8nfSwKICB7bjoxMSxkOidUaGUgZ2lybCB1bmRlciB0aGUgdHJlZSBpcyBlYXRpbmcuJyxhOidubyd9LAogIHtuOjEyLGQ6J1RoZSBnaXJsIG5leHQgdG8gdGhlIHdhbGwgaXMgd2VhcmluZyB0cm91c2Vycy4nLGE6J3llcyd9Cl07CnZhciBQM19FWD17cTonSGVsbG8sIFBhdC4gU2hhbGwgSSBjYXJyeSB5b3VyIGJvb2tzPycsYW5zOidDJyxvcHRzOlt7bDonQScsdDonWWVzLCBJIHNoYWxsLid9LHtsOidCJyx0OiJZZXMsIHRoZXkncmUgbWluZS4ifSx7bDonQycsdDonWWVzLCBwbGVhc2UuJ31dfTsKdmFyIFAzPVsKICB7bjoxMyxxOiJXaHkgZGlkbid0IHlvdSBjb21lIGZvciB0YWJsZSB0ZW5uaXMgeWVzdGVyZGF5PyIsYW5zOidCJyxvcHRzOlt7bDonQScsdDonQW5kIEkgd2FzIGlsbC4nfSx7bDonQicsdDonQmVjYXVzZSBJIHdhcyB0aXJlZC4nfSx7bDonQycsdDonQnV0IEkgaGFkIHRvIGdvIHdpdGggbXkgbW90aGVyLid9XX0sCiAge246MTQscTonRG8geW91IHdhbnQgdG8gY29tZSBhbmQgc2VlIG15IG5ldyBraXRlPycsYW5zOidBJyxvcHRzOlt7bDonQScsdDoiSSd2ZSBnb3QgdG8gZ28gaG9tZS4ifSx7bDonQicsdDonSSB3YW50IGl0Lid9LHtsOidDJyx0OiJJJ20gbm90IGNvbWluZy4ifV19LAogIHtuOjE1LHE6J0NhbiB5b3UgY29tZSB0b21vcnJvdyB0aGVuPycsYW5zOidCJyxvcHRzOlt7bDonQScsdDonWW91IGNhbiBjb21lLid9LHtsOidCJyx0OiJJJ2xsIGFzayBteSBtdW0uIn0se2w6J0MnLHQ6Ikl0J3MgdG9kYXkuIn1dfSwKICB7bjoxNixxOidIYXZlIHlvdSBnb3QgaG9tZXdvcmsgdG8gZG8\/JyxhbnM6J0EnLG9wdHM6W3tsOidBJyx0OidZZXMsIGEgbG90Lid9LHtsOidCJyx0OiJZZXMsIEkndmUgZ290IHRvLiJ9LHtsOidDJyx0OidJIGRvLid9XX0sCiAge246MTcscTonV2h5IGFyZSB5b3Ugc3RvcHBpbmcgaGVyZT8nLGFuczonQicsb3B0czpbe2w6J0EnLHQ6IkkgZG9uJ3QgbGl2ZSBoZXJlLiJ9LHtsOidCJyx0OidUaGlzIGlzIG15IGhvdXNlLid9LHtsOidDJyx0OiJJJ20gbm90IHdhaXRpbmcuIn1dfSwKICB7bjoxOCxxOidIZXJlIGFyZSB5b3VyIGJvb2tzLCB0aGVuLicsYW5zOidDJyxvcHRzOlt7bDonQScsdDonT2ggeWVzLCB0aGV5IGFyZS4nfSx7bDonQicsdDonT2ggeWVzLCBwbGVhc2UuJ30se2w6J0MnLHQ6J09oIHllcywgdGhhbmtzLid9XX0KXTsKdmFyIFA0X0JBTks9Wyd0cm91c2VycycsJ2NvZmZlZScsJ3BhcnR5JywnZG9vcicsJ2xhdWdoZWQnLCdzdHJlZXQnLCd0ZWV0aCcsJ2Nvb2tlZCcsJ3JvZGUnXTsKLyogUDQgc3Rvcnk6IGdhcHMgMTktMjQsIEV4PXRyb3VzZXJzIHByZS1maWxsZWQgKi8KdmFyIFA0X1BBUlRTPVsKICB7dDonT25lIGRheSBsYXN0IHdlZWssIEppbSBnb3QgdXAgYW5kIHdlbnQgdG8gd29yay4gSGUgcHV0IG9uIGhpcyAnfSwKICB7ZXg6J3Ryb3VzZXJzJ30sCiAge3Q6Jywgc2hpcnQgYW5kIGphY2tldCB2ZXJ5IHF1aWV0bHkgYmVjYXVzZSBoaXMgZmFtaWx5IHdlcmVuJnJzcXVvO3QgYXdha2UuIFRoZW4gaGUgd2VudCB0byB0aGUgYmF0aHJvb20sIGhhZCBhIHNob3dlciBhbmQgY2xlYW5lZCBoaXMgJ30sCiAge2c6MTksYTondGVldGgnfSwKICB7dDonLiBIZSB3ZW50IGRvd25zdGFpcnMgdG8gdGhlIGtpdGNoZW4gYW5kIG1hZGUgYSBjdXAgb2YgJ30sCiAge2c6MjAsYTonY29mZmVlJ30sCiAge3Q6JyBhbmQgYXRlIHNvbWUgYnJlYWQgYW5kIGNoZWVzZS4gVGhlbiBoZSBwaWNrZWQgdXAgaGlzIGJhZyBhbmQgJ30sCiAge2c6MjEsYToncm9kZSd9LAogIHt0OicgdG8gd29yayBvbiBoaXMgYmlrZS4gSGUgd2FzIHN1cnByaXNlZCBiZWNhdXNlIHRoZSAnfSwKICB7ZzoyMixhOidzdHJlZXQnfSwKICB7dDonIHdhcyB2ZXJ5IHF1aWV0LiBUaGVyZSB3ZXJlIG5vIGNhcnMgb3IgcGVvcGxlIHRoZXJlLiBKaW0gd29ya2VkIGF0IHRoZSBsaWJyYXJ5IGJ1dCB3aGVuIGhlIHRyaWVkIHRvIG9wZW4gdGhlICd9LAogIHtnOjIzLGE6J2Rvb3InfSwKICB7dDonIG9mIHRoZSBsaWJyYXJ5LCBoZSBjb3VsZG4mcnNxdW87dC4gQSBtYW4gd2l0aCBhIGRvZyBzdG9wcGVkIHRvIHRhbGsgdG8gaGltLiAmbHNxdW87SXQmcnNxdW87cyBTdW5kYXksIHlvdSBrbm93ISZyc3F1bzsgaGUgc2FpZC4gJmxzcXVvO1RoZSBsaWJyYXJ5IGlzbiZyc3F1bzt0IG9wZW4gdG9kYXkhJnJzcXVvOyBKaW0gJ30sCiAge2c6MjQsYTonbGF1Z2hlZCd9LAogIHt0OicuICZsc3F1bztPaCBncmVhdCEmcnNxdW87IGhlIHNhaWQsICZsc3F1bztJIGNhbiBnbyBiYWNrIHRvIGJlZCEmcnNxdW87J30KXTsKdmFyIFA0X1RJVExFPXtuOjI1LGE6J0ppbSBtYWtlcyBhIG1pc3Rha2UnLG9wdHM6WydKaW0gbWFrZXMgYSBtaXN0YWtlJywiSmltJ3MgYmlnIGJyZWFrZmFzdCIsIkppbSdzIG5ldyBmcmllbmQiXX07CnZhciBQNV9TVE9SWT0iTWFyeSZyc3F1bztzIHVuY2xlIGFuZCBhdW50IGNhbWUgdG8gaGVyIGhvdXNlIGxhc3Qgd2Vlay4gVGhleSBnYXZlIGhlciBhIGJlYXV0aWZ1bCBwYXJyb3QuIEl0IHdhcyBibHVlIGFuZCB5ZWxsb3cuIE1hcnkgd2FzIHZlcnkgaGFwcHkgd2l0aCBoZXIgbmV3IHBldC4gU2hlIGNhbGxlZCBoaW0gJmxzcXVvO1Bhc3RhJnJzcXVvOy4gTWFyeSZyc3F1bztzIGF1bnQgdG9sZCBoZXIsICZsc3F1bztQYXJyb3RzIGVhdCBmcnVpdC4mcnNxdW87IE1hcnkmcnNxdW87cyB1bmNsZSBzYWlkLCAmbHNxdW87UGFycm90cyBjYW4gdGFsay4gWW91IGhhdmUgdG8gdGVhY2ggUGFzdGEgc29tZSB3b3JkcywgTWFyeS4mcnNxdW87IEZpcnN0LCBNYXJ5IHRhdWdodCB0aGUgcGFycm90IHRvIHNheSAmbHNxdW87UGFzdGEmcnNxdW87IGFuZCAmbHNxdW87SGVsbG8mcnNxdW87LiBUaGVuIGhlIGxlYXJuZWQgdG8gc2F5ICZsc3F1bztNYXJ5JnJzcXVvOywgJmxzcXVvO1llcyZyc3F1bzssICZsc3F1bztObyZyc3F1bzsgYW5kICZsc3F1bztMdW5jaCZyc3F1bzshIFRoZW4gUGFzdGEgbGVhcm5lZCBtb3JlIHdvcmRzLiBPbiBTYXR1cmRheSwgTWFyeSZyc3F1bztzIG1vdGhlciBvcGVuZWQgdGhlIGxpdmluZyByb29tIGRvb3IgYW5kIGFza2VkIE1hcnkgYW5kIGhlciB5b3VuZ2VyIGJyb3RoZXIsIEZyZWQsICZsc3F1bztXaGF0IGRvIHlvdSB3YW50IHRvIGVhdCBmb3IgbHVuY2g\/JnJzcXVvOyBGcmVkIHNob3V0ZWQsICZsc3F1bztQYXN0YSEmcnNxdW87IFRoZSBwYXJyb3Qgd2FzIHRoZXJlIHdpdGggdGhlbSBhbmQgaGUgdGhvdWdodCwgJmxzcXVvO09oIG5vISBGcmVkIHdhbnRzIHRvIGVhdCBtZSwmcnNxdW87IGFuZCBoZSBmbGV3IG91dHNpZGUuIE1hcnkgYW5kIEZyZWQgcmFuIG91dCB0byB0aGUgZ2FyZGVuLCBidXQgdGhleSBjb3VsZG4mcnNxdW87dCBzZWUgUGFzdGEuIFRoZW4gdGhlaXIgbW90aGVyIHNob3V0ZWQsICZsc3F1bztPaCEgSGUmcnNxdW87cyBoZXJlIGluIHRoZSBraXRjaGVuLiZyc3F1bzsgVGhlIGNoaWxkcmVuIHdlbnQgdG8gc2VlLiBQYXN0YSBoYWQgYSBncmFwZSBpbiBoaXMgbW91dGggYW5kIHRoZW4gaGUgZ2F2ZSBpdCB0byBNYXJ5JnJzcXVvO3MgbW90aGVyLiBTaGUgbGF1Z2hlZCBhbmQgc2FpZCwgJmxzcXVvO0kga25vdyB5b3Ugd2FudCB0byB0ZWxsIHVzIHNvbWV0aGluZy4gSXMgaXQsIHBsZWFzZSBlYXQgZnJ1aXQgYW5kIG5vdCBQYXN0YT8mcnNxdW87IFRoZSBwYXJyb3QganVtcGVkIHVwIGFuZCBkb3duLCAmbHNxdW87WWVzLCB5ZXMsJnJzcXVvOyBoZSBzYWlkISI7CnZhciBQNV9FWD1be2Q6J19fX19fICwgTWFyeSZyc3F1bztzIHVuY2xlIGFuZCBhdW50IHdlbnQgdG8gc2VlIGhlci4nLGE6J0xhc3Qgd2Vlayd9LHtkOidUaGUgcHJlc2VudCB0aGF0IHRoZXkgYnJvdWdodCBNYXJ5IHdhcycsYTonYSBiZWF1dGlmdWwgcGFycm90J31dOwp2YXIgUDU9WwogIHtuOjI2LGQ6J1RoZSBjb2xvdXJzIG9mIHRoZSBwYXJyb3Qgd2VyZSBfX18uJyxhY2M6WydibHVlIGFuZCB5ZWxsb3cnLCd5ZWxsb3cgYW5kIGJsdWUnXSxkaXNwOidibHVlIGFuZCB5ZWxsb3cnfSwKICB7bjoyNyxkOidfX18gd2FzIHRoZSBuYW1lIHRoYXQgTWFyeSBnYXZlIHRoZSBwYXJyb3QuJyxhY2M6WydwYXN0YSddLGRpc3A6J1Bhc3RhJ30sCiAge246MjgsZDonTWFyeSBjYW4gdGVhY2ggaGVyIG5ldyBwZXQgc29tZSBfX18uJyxhY2M6Wyd3b3JkcycsJ25ldyB3b3JkcycsJ3NvbWUgd29yZHMnXSxkaXNwOid3b3Jkcyd9LAogIHtuOjI5LGQ6J1RoZSBmaXJzdCB0d28gd29yZHMgdGhhdCBQYXN0YSBsZWFybmVkIHdlcmUgX19fLicsYWNjOlsncGFzdGEgYW5kIGhlbGxvJywnaGVsbG8gYW5kIHBhc3RhJywncGFzdGEsIGhlbGxvJywncGFzdGEgaGVsbG8nXSxkaXNwOidQYXN0YSBhbmQgSGVsbG8nfSwKICB7bjozMCxkOiJGcmVkLCB3aG8gd2FzIE1hcnkncyBfX18sIHdhbnRlZCB0byBlYXQgcGFzdGEgZm9yIGx1bmNoLiIsYWNjOlsneW91bmdlciBicm90aGVyJywnYnJvdGhlcicsJ2xpdHRsZSBicm90aGVyJywnaGVyIGJyb3RoZXInXSxkaXNwOicoeW91bmdlcikgYnJvdGhlcid9LAogIHtuOjMxLGQ6J1Bhc3RhIHdhcyBhZnJhaWQgYW5kIF9fXyBvdXQgdGhlIHdpbmRvdy4nLGFjYzpbJ2ZsZXcnLCdmbGV3IG91dCcsJ2ZsZXcgYXdheSddLGRpc3A6J2ZsZXcnfSwKICB7bjozMixkOiJUaGUgY2hpbGRyZW4gY291bGRuJ3QgZmluZCB0aGUgcGFycm90IGluIF9fXy4iLGFjYzpbJ3RoZSBnYXJkZW4nLCd0aGVpciBnYXJkZW4nLCdnYXJkZW4nXSxkaXNwOid0aGUgZ2FyZGVuJ30sCiAge246MzMsZDonVGhlaXIgbW90aGVyIGZvdW5kIFBhc3RhIGluIF9fXy4nLGFjYzpbJ3RoZSBraXRjaGVuJywna2l0Y2hlbiddLGRpc3A6J3RoZSBraXRjaGVuJ30sCiAge246MzQsZDoiUGFzdGEgZ2F2ZSBfX18gdG8gTWFyeSBhbmQgRnJlZCdzIG11bS4iLGFjYzpbJ2EgZ3JhcGUnLCdncmFwZScsJ3RoZSBncmFwZScsJ2EgZ3JlZW4gZ3JhcGUnXSxkaXNwOidhIGdyYXBlJ30sCiAge246MzUsZDonV2hlbiBQYXN0YSBzYWlkIF9fXywgaGUganVtcGVkIHVwIGFuZCBkb3duLicsYWNjOlsneWVzIHllcycsJ3llcywgeWVzJywneWVzJ10sZGlzcDonIlllcywgeWVzIid9Cl07CnZhciBQNl9QQVJUUz1bCiAge3Q6J1NvbWUgYmlnIHRvd25zIGhhdmUgem9vcy4gJ30se2V4OidJbnNpZGUnfSwKICB7dDonIGEgem9vIHlvdSBjYW4gZmluZCBhIGxvdCBvZiBhbmltYWxzLiBUaGVyZSBpcyBvZnRlbiBhIGhvdCBob3VzZSBmb3Igc25ha2VzLCAnfSx7ZzozNixhOidhbm90aGVyJ30sCiAge3Q6JyBob3VzZSBmb3IgYmlyZHMgYW5kIGEgYmlnIGxha2UgZm9yIGR1Y2tzIGFuZCBmaXNoLiBTb21lIHpvb3MgJ30se2c6MzcsYTonaGF2ZSd9LAogIHt0OicgZ290IGEgYmlnIGZpZWxkIHdpdGggZWxlcGhhbnRzLCBsaW9ucyBvciB0aWdlcnMuICd9LHtnOjM4LGE6J1RoZXJlJ30sCiAge3Q6JyBpcyBvZnRlbiBhIHNob3Agb3IgYSBwbGF5Z3JvdW5kIHRvby4gQ2hpbGRyZW4gbGlrZSAnfSx7ZzozOSxhOidnb2luZyd9LAogIHt0OicgdG8gdGhlIHpvbyBpbiB0aGVpciBob2xpZGF5cyBiZWNhdXNlIHRoZXkgY2FuIHNlZSB0aGUgYW5pbWFscywgcmlkZSBvbiB0aGUgZWxlcGhhbnRzIG9yIGdpdmUgZm9vZCAnfSx7Zzo0MCxhOid0byd9LAogIHt0OicgdGhlIG1vbmtleXMuJ30KXTsKdmFyIFA2X09QVFM9ezM2Olsnc29tZScsJ2Fub3RoZXInLCdhbnknXSwzNzpbJ2RvJywnYXJlJywnaGF2ZSddLDM4OlsnVGhleScsJ1RoZXJlJywnSXQnXSwzOTpbJ3dlbnQnLCdnb2luZycsJ2dvJ10sNDA6WydhdCcsJ2ZvcicsJ3RvJ119Owp2YXIgVE9UQUw9NDA7CgovKiA9PT09PSBoZWxwZXJzID09PT09ICovCmZ1bmN0aW9uIGVzYyhzKXtyZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoL1smPD4iXS9nLGZ1bmN0aW9uKGMpe3JldHVybnsnJic6JyZhbXA7JywnPCc6JyZsdDsnLCc+JzonJmd0OycsJyInOicmcXVvdDsnfVtjXX0pfQpmdW5jdGlvbiAkKHMsYyl7cmV0dXJuIChjfHxkb2N1bWVudCkucXVlcnlTZWxlY3RvcihzKX0KZnVuY3Rpb24gJCQocyxjKXtyZXR1cm4gW10uc2xpY2UuY2FsbCgoY3x8ZG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwocykpfQpmdW5jdGlvbiBub3JtKHYpe3JldHVybiB2LnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1suLCE\/XSQvLCcnKS5yZXBsYWNlKC9ccysvZywnICcpfQoKLyogPT09PT0gc3RhdGUgPT09PT0gKi8KdmFyIFAyc2VsPXt9LFAzc2VsPXt9LFA0Z2FwPXt9LFA0dGl0bGU9bnVsbCxQNmdhcD17fTsKCi8qID09PT09IFBBUlQgMSA9PT09PSAqLwooZnVuY3Rpb24oKXsKICB2YXIgYmFuaz0kKCcjcDFCYW5rJyk7CiAgUDFfQkFOSy5mb3JFYWNoKGZ1bmN0aW9uKGIpe2JhbmsuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCc8ZGl2IGNsYXNzPSJ3Y2hpcCI+PGltZyBzcmM9IicrSU1HK2IuaW1nKyciIGFsdD0iJytlc2MoYi53KSsnIj48ZGl2IGNsYXNzPSJ3bGFiZWwiPicrZXNjKGIudykrJzwvZGl2PjwvZGl2PicpO30pOwogIHZhciByb3dzPSQoJyNwMVJvd3MnKTsKICByb3dzLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywnPGRpdiBjbGFzcz0iZGVmcm93IGV4YW1wbGUiPjxzcGFuIGNsYXNzPSJxbiI+RXg8L3NwYW4+PHNwYW4gY2xhc3M9ImR0ZXh0Ij4nK2VzYyhQMV9FWC5kKSsnPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo3MDA7Y29sb3I6IzdCNUIwMCI+Jytlc2MoUDFfRVguYSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZXgtdGFnIj5FeDwvc3Bhbj48L2Rpdj4nKTsKICBQMS5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgcm93cy5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsJzxkaXYgY2xhc3M9ImRlZnJvdyI+PHNwYW4gY2xhc3M9InFuIj4nK3EubisnPC9zcGFuPjxzcGFuIGNsYXNzPSJkdGV4dCI+Jytlc2MocS5kKSsnPC9zcGFuPjxpbnB1dCBjbGFzcz0iaW5wdXQtYmxhbmsiIGRhdGEtcT0iJytxLm4rJyIgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9Ii4uLiI+PGJ1dHRvbiBjbGFzcz0ic2hvdy1hbnMtYnRuIiBkYXRhLXNob3c9IicrcS5uKyciPiYjMTI4MDY1OzwvYnV0dG9uPjwvZGl2PicpOwogIH0pOwp9KSgpOwovKiA9PT09PSBQQVJUIDIgPT09PT0gKi8KKGZ1bmN0aW9uKCl7CiAgdmFyIHI9JCgnI3AyUm93cycpOwogIFAyX0VYLmZvckVhY2goZnVuY3Rpb24oZSl7ci5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsJzxkaXYgY2xhc3M9InluLXJvdyIgc3R5bGU9Im9wYWNpdHk6LjciPjxkaXYgY2xhc3M9InluLXEiPjxzcGFuIGNsYXNzPSJxbiI+RXg8L3NwYW4+PHNwYW4+Jytlc2MoZS5kKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InluLW9wdHMiPjxzcGFuIGNsYXNzPSJ5bi1idG4gJysoZS5hPT09J3llcyc\/J2NvcnJlY3QnOicnKSsnIj55ZXM8L3NwYW4+PHNwYW4gY2xhc3M9InluLWJ0biAnKyhlLmE9PT0nbm8nPydjb3JyZWN0JzonJykrJyI+bm88L3NwYW4+PC9kaXY+PC9kaXY+Jyk7fSk7CiAgUDIuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgIHIuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCc8ZGl2IGNsYXNzPSJ5bi1yb3ciIGRhdGEtcT0iJytxLm4rJyI+PGRpdiBjbGFzcz0ieW4tcSI+PHNwYW4gY2xhc3M9InFuIj4nK3EubisnPC9zcGFuPjxzcGFuPicrZXNjKHEuZCkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ5bi1vcHRzIj48YnV0dG9uIGNsYXNzPSJ5bi1idG4iIGRhdGEteW49InllcyI+eWVzPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ieW4tYnRuIiBkYXRhLXluPSJubyI+bm88L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzaG93LWFucy1idG4iIGRhdGEtc2hvdz0iJytxLm4rJyIgc3R5bGU9Im1hcmdpbi1sZWZ0OmF1dG8iPiYjMTI4MDY1OzwvYnV0dG9uPjwvZGl2PjwvZGl2PicpOwogIH0pOwogICQkKCcjcDJSb3dzIC55bi1idG5bZGF0YS15bl0nKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICB2YXIgcm93PWIuY2xvc2VzdCgnLnluLXJvdycpLG49cm93LmRhdGFzZXQucTsKICAgICQkKCcueW4tYnRuW2RhdGEteW5dJyxyb3cpLmZvckVhY2goZnVuY3Rpb24oeCl7eC5jbGFzc0xpc3QucmVtb3ZlKCdzZWwnKX0pOwogICAgYi5jbGFzc0xpc3QuYWRkKCdzZWwnKTtQMnNlbFtuXT1iLmRhdGFzZXQueW47dXBkYXRlUHJvZ3Jlc3MoKTsKICB9KTt9KTsKfSkoKTsKLyogPT09PT0gUEFSVCAzID09PT09ICovCihmdW5jdGlvbigpewogIHZhciByPSQoJyNwM1Jvd3MnKTsKICByLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywnPGRpdiBjbGFzcz0ibWNxLXJvdyIgc3R5bGU9Im9wYWNpdHk6LjciPjxkaXYgY2xhc3M9Im1jcS1xIj48c3BhbiBjbGFzcz0icW4iPkV4PC9zcGFuPjxzcGFuPjxiPkJpbGw6PC9iPiAnK2VzYyhQM19FWC5xKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im1jcS1vcHRzIj4nK1AzX0VYLm9wdHMubWFwKGZ1bmN0aW9uKG8pe3JldHVybiAnPGRpdiBjbGFzcz0ibWNxLW9wdCAnKyhvLmw9PT1QM19FWC5hbnM\/J2NvcnJlY3QnOicnKSsnIj48c3BhbiBjbGFzcz0ibWwiPicrby5sKyc8L3NwYW4+PHNwYW4+JytvLnQrJzwvc3Bhbj48L2Rpdj4nO30pLmpvaW4oJycpKyc8L2Rpdj48L2Rpdj4nKTsKICBQMy5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgci5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsJzxkaXYgY2xhc3M9Im1jcS1yb3ciIGRhdGEtcT0iJytxLm4rJyI+PGRpdiBjbGFzcz0ibWNxLXEiPjxzcGFuIGNsYXNzPSJxbiI+JytxLm4rJzwvc3Bhbj48c3Bhbj48Yj5CaWxsOjwvYj4gJytlc2MocS5xKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im1jcS1vcHRzIj4nK3Eub3B0cy5tYXAoZnVuY3Rpb24obyl7cmV0dXJuICc8ZGl2IGNsYXNzPSJtY3Etb3B0IiBkYXRhLWw9Iicrby5sKyciPjxzcGFuIGNsYXNzPSJtbCI+JytvLmwrJzwvc3Bhbj48c3Bhbj4nK28udCsnPC9zcGFuPjwvZGl2Pic7fSkuam9pbignJykrJzwvZGl2PjxkaXYgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxidXR0b24gY2xhc3M9InNob3ctYW5zLWJ0biIgZGF0YS1zaG93PSInK3EubisnIj4mIzEyODA2NTs8L2J1dHRvbj48L2Rpdj48L2Rpdj4nKTsKICB9KTsKICAkJCgnI3AzUm93cyAubWNxLW9wdFtkYXRhLWxdJykuZm9yRWFjaChmdW5jdGlvbihvKXtvLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgdmFyIHJvdz1vLmNsb3Nlc3QoJy5tY3Etcm93Jyksbj1yb3cuZGF0YXNldC5xOwogICAgJCQoJy5tY3Etb3B0W2RhdGEtbF0nLHJvdykuZm9yRWFjaChmdW5jdGlvbih4KXt4LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbCcpfSk7CiAgICBvLmNsYXNzTGlzdC5hZGQoJ3NlbCcpO1Azc2VsW25dPW8uZGF0YXNldC5sO3VwZGF0ZVByb2dyZXNzKCk7CiAgfSk7fSk7Cn0pKCk7Ci8qID09PT09IFBBUlQgNCA9PT09PSAqLwooZnVuY3Rpb24oKXsKICB2YXIgYmFuaz0kKCcjcDRCYW5rJyk7CiAgUDRfQkFOSy5mb3JFYWNoKGZ1bmN0aW9uKHcsaSl7YmFuay5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsJzxkaXYgY2xhc3M9IndjaGlwIj48aW1nIHNyYz0iJytJTUcrJ20xdDNyd19wNF8nK3crJy5qcGciIGFsdD0iJyt3KyciPjxkaXYgY2xhc3M9IndsYWJlbCI+Jyt3Kyc8L2Rpdj48L2Rpdj4nKTt9KTsKICB2YXIgc3Rvcnk9JCgnI3A0U3RvcnknKSxodG1sPScnOwogIFA0X1BBUlRTLmZvckVhY2goZnVuY3Rpb24ocCl7CiAgICBpZihwLnQpaHRtbCs9ZXNjKHAudCkucmVwbGFjZSgnJmFtcDtsc3F1bzsnLCcmbHNxdW87JykucmVwbGFjZSgnJmFtcDtyc3F1bzsnLCcmcnNxdW87Jyk7CiAgICBlbHNlIGlmKHAuZXgpaHRtbCs9Jzx1IHN0eWxlPSJjb2xvcjp2YXIoLS1hY2NlbnQtMSk7Zm9udC13ZWlnaHQ6NzAwIj4nK3AuZXgrJzwvdT4nOwogICAgZWxzZSBpZihwLmcpewogICAgICBodG1sKz0nPHNlbGVjdCBjbGFzcz0iZ2FwLXNlbGVjdCIgZGF0YS1xPSInK3AuZysnIj48b3B0aW9uIHZhbHVlPSIiPignK3AuZysnKSBjaG9vc2U8L29wdGlvbj4nK1A0X0JBTksubWFwKGZ1bmN0aW9uKHcpe3JldHVybiAnPG9wdGlvbiB2YWx1ZT0iJyt3KyciPicrdysnPC9vcHRpb24+Jzt9KS5qb2luKCcnKSsnPC9zZWxlY3Q+JzsKICAgIH0KICB9KTsKICBzdG9yeS5pbm5lckhUTUw9aHRtbC5yZXBsYWNlKC8mYW1wOyhsc3F1b3xyc3F1b3xsZHF1b3xyZHF1byk7L2csJyYkMTsnKTsKICAkJCgnI3A0U3RvcnkgLmdhcC1zZWxlY3QnKS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3MuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJyxmdW5jdGlvbigpe1A0Z2FwW3MuZGF0YXNldC5xXT1zLnZhbHVlO3VwZGF0ZVByb2dyZXNzKCk7fSk7fSk7CiAgdmFyIHR0PSQoJyNwNFRpdGxlJyk7CiAgUDRfVElUTEUub3B0cy5mb3JFYWNoKGZ1bmN0aW9uKG8saSl7dHQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCc8ZGl2IGNsYXNzPSJ0aWNrYm94IiBkYXRhLXRpdGxlPSInK28rJyI+PHNwYW4gY2xhc3M9InRiIj4mIzEwMDAzOzwvc3Bhbj48c3Bhbj4nK2VzYyhvKSsnPC9zcGFuPjwvZGl2PicpO30pOwogICQkKCcjcDRUaXRsZSAudGlja2JveCcpLmZvckVhY2goZnVuY3Rpb24oYil7Yi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICAgICQkKCcjcDRUaXRsZSAudGlja2JveCcpLmZvckVhY2goZnVuY3Rpb24oeCl7eC5jbGFzc0xpc3QucmVtb3ZlKCdzZWwnKX0pOwogICAgYi5jbGFzc0xpc3QuYWRkKCdzZWwnKTtQNHRpdGxlPWIuZGF0YXNldC50aXRsZTt1cGRhdGVQcm9ncmVzcygpOwogIH0pO30pOwp9KSgpOwovKiA9PT09PSBQQVJUIDUgPT09PT0gKi8KKGZ1bmN0aW9uKCl7CiAgJCgnI3A1U3RvcnknKS5pbm5lckhUTUw9JzxpbWcgc3JjPSInK0lNRysnbTF0M3J3X3A1X3NjZW5lLmpwZyIgYWx0PSJNYXJ5JnJzcXVvO3MgZmFtaWx5IGF0IHRoZSB0YWJsZSI+JytQNV9TVE9SWTsKICB2YXIgcj0kKCcjcDVSb3dzJyk7CiAgUDVfRVguZm9yRWFjaChmdW5jdGlvbihlKXtyLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywnPGRpdiBjbGFzcz0iZGVmcm93IGV4YW1wbGUiPjxzcGFuIGNsYXNzPSJxbiI+RXg8L3NwYW4+PHNwYW4gY2xhc3M9ImR0ZXh0Ij4nK2UuZCsnPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo3MDA7Y29sb3I6IzdCNUIwMCI+JytlLmErJzwvc3Bhbj48c3BhbiBjbGFzcz0iZXgtdGFnIj5FeDwvc3Bhbj48L2Rpdj4nKTt9KTsKICBQNS5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgci5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsJzxkaXYgY2xhc3M9ImRlZnJvdyI+PHNwYW4gY2xhc3M9InFuIj4nK3EubisnPC9zcGFuPjxzcGFuIGNsYXNzPSJkdGV4dCI+JytxLmQrJzwvc3Bhbj48aW5wdXQgY2xhc3M9ImlucHV0LWJsYW5rIiBkYXRhLXE9IicrcS5uKyciIHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSIxLTMgd29yZHMiPjxidXR0b24gY2xhc3M9InNob3ctYW5zLWJ0biIgZGF0YS1zaG93PSInK3EubisnIj4mIzEyODA2NTs8L2J1dHRvbj48L2Rpdj4nKTsKICB9KTsKfSkoKTsKLyogPT09PT0gUEFSVCA2ID09PT09ICovCihmdW5jdGlvbigpewogIHZhciBzdG9yeT0kKCcjcDZTdG9yeScpLGh0bWw9Jyc7CiAgUDZfUEFSVFMuZm9yRWFjaChmdW5jdGlvbihwKXsKICAgIGlmKHAudClodG1sKz1lc2MocC50KS5yZXBsYWNlKC8mYW1wOyhsc3F1b3xyc3F1byk7L2csJyYkMTsnKTsKICAgIGVsc2UgaWYocC5leClodG1sKz0nPHUgc3R5bGU9ImNvbG9yOnZhcigtLWFjY2VudC0xKTtmb250LXdlaWdodDo3MDAiPicrcC5leCsnPC91Pic7CiAgICBlbHNlIGlmKHAuZyl7CiAgICAgIHZhciBMPVsnQScsJ0InLCdDJ107CiAgICAgIGh0bWwrPSc8c2VsZWN0IGNsYXNzPSJnYXAtc2VsZWN0IiBkYXRhLXE9IicrcC5nKyciPjxvcHRpb24gdmFsdWU9IiI+KCcrcC5nKycpPC9vcHRpb24+JytQNl9PUFRTW3AuZ10ubWFwKGZ1bmN0aW9uKHcsaSl7cmV0dXJuICc8b3B0aW9uIHZhbHVlPSInK0xbaV0rJyI+Jyt3Kyc8L29wdGlvbj4nO30pLmpvaW4oJycpKyc8L3NlbGVjdD4nOwogICAgfQogIH0pOwogIHN0b3J5LmlubmVySFRNTD1odG1sOwogICQkKCcjcDZTdG9yeSAuZ2FwLXNlbGVjdCcpLmZvckVhY2goZnVuY3Rpb24ocyl7cy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLGZ1bmN0aW9uKCl7UDZnYXBbcy5kYXRhc2V0LnFdPXMudmFsdWU7dXBkYXRlUHJvZ3Jlc3MoKTt9KTt9KTsKfSkoKTsKCi8qID09PT09IHByb2dyZXNzID09PT09ICovCmZ1bmN0aW9uIGFuc3dlcmVkKCl7CiAgdmFyIG49MDsKICBQMS5mb3JFYWNoKGZ1bmN0aW9uKHEpe3ZhciBlbD0kKCcuaW5wdXQtYmxhbmtbZGF0YS1xPSInK3EubisnIl0nKTtpZihlbCYmZWwudmFsdWUudHJpbSgpKW4rKzt9KTsKICBQMi5mb3JFYWNoKGZ1bmN0aW9uKHEpe2lmKFAyc2VsW3Eubl0pbisrO30pOwogIFAzLmZvckVhY2goZnVuY3Rpb24ocSl7aWYoUDNzZWxbcS5uXSluKys7fSk7CiAgWzE5LDIwLDIxLDIyLDIzLDI0XS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2lmKFA0Z2FwW2ddKW4rKzt9KTsKICBpZihQNHRpdGxlKW4rKzsKICBQNS5mb3JFYWNoKGZ1bmN0aW9uKHEpe3ZhciBlbD0kKCcuaW5wdXQtYmxhbmtbZGF0YS1xPSInK3EubisnIl0nKTtpZihlbCYmZWwudmFsdWUudHJpbSgpKW4rKzt9KTsKICBbMzYsMzcsMzgsMzksNDBdLmZvckVhY2goZnVuY3Rpb24oZyl7aWYoUDZnYXBbZ10pbisrO30pOwogIHJldHVybiBuOwp9CmZ1bmN0aW9uIHVwZGF0ZVByb2dyZXNzKCl7dmFyIGE9YW5zd2VyZWQoKTskKCcjYW5zd2VyZWRDb3VudCcpLnRleHRDb250ZW50PWE7JCgnI3Byb2dGaWxsJykuc3R5bGUud2lkdGg9KGEvVE9UQUwqMTAwKSsnJSc7fQpkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JyxmdW5jdGlvbihlKXtpZihlLnRhcmdldC5jbGFzc0xpc3QmJmUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnaW5wdXQtYmxhbmsnKSl1cGRhdGVQcm9ncmVzcygpO30pOwoKLyogPT09PT0gc2hvdyBhbnN3ZXJzID09PT09ICovCmRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpewogIHZhciBiPWUudGFyZ2V0LmNsb3Nlc3QoJy5zaG93LWFucy1idG4nKTtpZighYilyZXR1cm47CiAgdmFyIGs9Yi5kYXRhc2V0LnNob3c7CiAgaWYoaz09PSdQMUFMTCcpe1AxLmZvckVhY2goZnVuY3Rpb24ocSl7cmV2ZWFsSW5wdXQocS5uLHEuYSk7fSk7cmV0dXJuO30KICBpZihrPT09J1AyQUxMJyl7UDIuZm9yRWFjaChmdW5jdGlvbihxKXtyZXZlYWxZTihxLm4scS5hKTt9KTtyZXR1cm47fQogIGlmKGs9PT0nUDNBTEwnKXtQMy5mb3JFYWNoKGZ1bmN0aW9uKHEpe3JldmVhbE1DUShxLm4scS5hbnMpO30pO3JldHVybjt9CiAgaWYoaz09PSdQNEFMTCcpe1sxOSwyMCwyMSwyMiwyMywyNF0uZm9yRWFjaChmdW5jdGlvbihnKXt2YXIgYT1wNGFucyhnKTt2YXIgcz0kKCcuZ2FwLXNlbGVjdFtkYXRhLXE9IicrZysnIl0nKTtpZihzKXtzLnZhbHVlPWE7UDRnYXBbZ109YTt9fSk7cmV2ZWFsVGl0bGUoKTt1cGRhdGVQcm9ncmVzcygpO3JldHVybjt9CiAgaWYoaz09PSdQNUFMTCcpe1A1LmZvckVhY2goZnVuY3Rpb24ocSl7cmV2ZWFsSW5wdXQocS5uLHEuZGlzcCk7fSk7cmV0dXJuO30KICBpZihrPT09J1A2QUxMJyl7UDZfUEFSVFMuZm9yRWFjaChmdW5jdGlvbihwKXtpZihwLmcpe3ZhciBMPVsnQScsJ0InLCdDJ107dmFyIGlkeD1QNl9PUFRTW3AuZ10uaW5kZXhPZihwLmEpO3ZhciBzPSQoJy5nYXAtc2VsZWN0W2RhdGEtcT0iJytwLmcrJyJdJyk7aWYocyl7cy52YWx1ZT1MW2lkeF07UDZnYXBbcC5nXT1MW2lkeF07fX19KTt1cGRhdGVQcm9ncmVzcygpO3JldHVybjt9CiAgdmFyIHFpZD1wYXJzZUludChrKTsKICBpZihxaWQ+PTEmJnFpZDw9Nil7dmFyIHE9UDEuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uPT09cWlkfSk7cmV2ZWFsSW5wdXQocWlkLHEuYSk7fQogIGVsc2UgaWYocWlkPj03JiZxaWQ8PTEyKXt2YXIgcT1QMi5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1xaWR9KTtyZXZlYWxZTihxaWQscS5hKTt9CiAgZWxzZSBpZihxaWQ+PTEzJiZxaWQ8PTE4KXt2YXIgcT1QMy5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1xaWR9KTtyZXZlYWxNQ1EocWlkLHEuYW5zKTt9CiAgZWxzZSBpZihxaWQ+PTI2JiZxaWQ8PTM1KXt2YXIgcT1QNS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1xaWR9KTtyZXZlYWxJbnB1dChxaWQscS5kaXNwKTt9Cn0pOwpmdW5jdGlvbiByZXZlYWxJbnB1dChuLHZhbCl7dmFyIGVsPSQoJy5pbnB1dC1ibGFua1tkYXRhLXE9IicrbisnIl0nKTtpZihlbCl7ZWwudmFsdWU9dmFsO2VsLmNsYXNzTGlzdC5hZGQoJ3JldmVhbGVkJyk7dXBkYXRlUHJvZ3Jlc3MoKTt9fQpmdW5jdGlvbiByZXZlYWxZTihuLGEpe3ZhciByb3c9JCgnLnluLXJvd1tkYXRhLXE9IicrbisnIl0nKTtpZighcm93KXJldHVybjskJCgnLnluLWJ0bltkYXRhLXluXScscm93KS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LnJlbW92ZSgnc2VsJyk7aWYoeC5kYXRhc2V0LnluPT09YSl4LmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTt9KTtQMnNlbFtuXT1hO3VwZGF0ZVByb2dyZXNzKCk7fQpmdW5jdGlvbiByZXZlYWxNQ1EobixhKXt2YXIgcm93PSQoJy5tY3Etcm93W2RhdGEtcT0iJytuKyciXScpO2lmKCFyb3cpcmV0dXJuOyQkKCcubWNxLW9wdFtkYXRhLWxdJyxyb3cpLmZvckVhY2goZnVuY3Rpb24oeCl7eC5jbGFzc0xpc3QucmVtb3ZlKCdzZWwnKTtpZih4LmRhdGFzZXQubD09PWEpeC5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7fSk7UDNzZWxbbl09YTt1cGRhdGVQcm9ncmVzcygpO30KZnVuY3Rpb24gcDRhbnMoZyl7dmFyIGY9UDRfUEFSVFMuZmluZChmdW5jdGlvbihwKXtyZXR1cm4gcC5nPT09Z30pO3JldHVybiBmP2YuYTonJzt9CmZ1bmN0aW9uIHJldmVhbFRpdGxlKCl7JCQoJyNwNFRpdGxlIC50aWNrYm94JykuZm9yRWFjaChmdW5jdGlvbih4KXt4LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbCcpO2lmKHguZGF0YXNldC50aXRsZT09PVA0X1RJVExFLmEpe3guY2xhc3NMaXN0LmFkZCgnc2VsJyk7fX0pO1A0dGl0bGU9UDRfVElUTEUuYTt9CgovKiA9PT09PSBzdWJtaXQgPT09PT0gKi8KJCgnI3N1Ym1pdEJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogIHZhciBzY29yZT0wLHBhcnRzPXsxOjAsMjowLDM6MCw0OjAsNTowLDY6MH07CiAgUDEuZm9yRWFjaChmdW5jdGlvbihxKXt2YXIgZWw9JCgnLmlucHV0LWJsYW5rW2RhdGEtcT0iJytxLm4rJyJdJyk7aWYoIWVsKXJldHVybjtpZihlbC5jbGFzc0xpc3QuY29udGFpbnMoJ3JldmVhbGVkJykpcmV0dXJuO3ZhciB2PW5vcm0oZWwudmFsdWUpLnJlcGxhY2UoL14oYXxhbnx0aGUpXHMrLywnJyk7dmFyIG9rPXEuYWNjLmluZGV4T2Yobm9ybShlbC52YWx1ZSkpPj0wfHxxLmFjYy5pbmRleE9mKHYpPj0wO2lmKG9rKXtzY29yZSsrO3BhcnRzWzFdKys7ZWwuY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpO31lbHNle2VsLmNsYXNzTGlzdC5hZGQoJ3dyb25nJyk7ZWwudGl0bGU9J0NvcnJlY3Q6ICcrcS5hO319KTsKICBQMi5mb3JFYWNoKGZ1bmN0aW9uKHEpe3ZhciByb3c9JCgnLnluLXJvd1tkYXRhLXE9IicrcS5uKyciXScpO2lmKCFyb3cpcmV0dXJuOyQkKCcueW4tYnRuW2RhdGEteW5dJyxyb3cpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIHluPXguZGF0YXNldC55bjt4LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbCcpO2lmKHluPT09cS5hKXguY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpO2Vsc2UgaWYoUDJzZWxbcS5uXT09PXluKXguY2xhc3NMaXN0LmFkZCgnd3JvbmcnKTt9KTtpZihQMnNlbFtxLm5dPT09cS5hKXtzY29yZSsrO3BhcnRzWzJdKys7fX0pOwogIFAzLmZvckVhY2goZnVuY3Rpb24ocSl7dmFyIHJvdz0kKCcubWNxLXJvd1tkYXRhLXE9IicrcS5uKyciXScpO2lmKCFyb3cpcmV0dXJuOyQkKCcubWNxLW9wdFtkYXRhLWxdJyxyb3cpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGw9eC5kYXRhc2V0Lmw7eC5jbGFzc0xpc3QucmVtb3ZlKCdzZWwnKTtpZihsPT09cS5hbnMpeC5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7ZWxzZSBpZihQM3NlbFtxLm5dPT09bCl4LmNsYXNzTGlzdC5hZGQoJ3dyb25nJyk7fSk7aWYoUDNzZWxbcS5uXT09PXEuYW5zKXtzY29yZSsrO3BhcnRzWzNdKys7fX0pOwogIFsxOSwyMCwyMSwyMiwyMywyNF0uZm9yRWFjaChmdW5jdGlvbihnKXt2YXIgcz0kKCcuZ2FwLXNlbGVjdFtkYXRhLXE9IicrZysnIl0nKTtpZighcylyZXR1cm47dmFyIGE9cDRhbnMoZyk7cy5jbGFzc0xpc3QucmVtb3ZlKCdjb3JyZWN0Jywnd3JvbmcnKTtpZihQNGdhcFtnXT09PWEpe3Njb3JlKys7cGFydHNbNF0rKztzLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTt9ZWxzZSBpZihQNGdhcFtnXSlzLmNsYXNzTGlzdC5hZGQoJ3dyb25nJyk7fSk7CiAgJCQoJyNwNFRpdGxlIC50aWNrYm94JykuZm9yRWFjaChmdW5jdGlvbih4KXt4LmNsYXNzTGlzdC5yZW1vdmUoJ2NvcnJlY3QnLCd3cm9uZycpO2lmKHguZGF0YXNldC50aXRsZT09PVA0X1RJVExFLmEpeC5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7ZWxzZSBpZihQNHRpdGxlPT09eC5kYXRhc2V0LnRpdGxlKXguY2xhc3NMaXN0LmFkZCgnd3JvbmcnKTt9KTsKICBpZihQNHRpdGxlPT09UDRfVElUTEUuYSl7c2NvcmUrKztwYXJ0c1s0XSsrO30KICBQNS5mb3JFYWNoKGZ1bmN0aW9uKHEpe3ZhciBlbD0kKCcuaW5wdXQtYmxhbmtbZGF0YS1xPSInK3EubisnIl0nKTtpZighZWwpcmV0dXJuO2lmKGVsLmNsYXNzTGlzdC5jb250YWlucygncmV2ZWFsZWQnKSlyZXR1cm47dmFyIHY9bm9ybShlbC52YWx1ZSk7dmFyIG9rPXEuYWNjLmluZGV4T2Yodik+PTB8fHEuYWNjLmluZGV4T2Yodi5yZXBsYWNlKC9eKGF8YW58dGhlKVxzKy8sJycpKT49MDtpZihvayl7c2NvcmUrKztwYXJ0c1s1XSsrO2VsLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTt9ZWxzZXtlbC5jbGFzc0xpc3QuYWRkKCd3cm9uZycpO2VsLnRpdGxlPSdDb3JyZWN0OiAnK3EuZGlzcDt9fSk7CiAgUDZfUEFSVFMuZm9yRWFjaChmdW5jdGlvbihwKXtpZighcC5nKXJldHVybjt2YXIgcz0kKCcuZ2FwLXNlbGVjdFtkYXRhLXE9IicrcC5nKyciXScpO2lmKCFzKXJldHVybjt2YXIgTD1bJ0EnLCdCJywnQyddO3ZhciBjb3JyZWN0TD1MW1A2X09QVFNbcC5nXS5pbmRleE9mKHAuYSldO3MuY2xhc3NMaXN0LnJlbW92ZSgnY29ycmVjdCcsJ3dyb25nJyk7aWYoUDZnYXBbcC5nXT09PWNvcnJlY3RMKXtzY29yZSsrO3BhcnRzWzZdKys7cy5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7fWVsc2UgaWYoUDZnYXBbcC5nXSlzLmNsYXNzTGlzdC5hZGQoJ3dyb25nJyk7fSk7CiAgJCgnI3Njb3JlTm93JykudGV4dENvbnRlbnQ9c2NvcmU7JCgnI2ZpbmFsU2NvcmUnKS50ZXh0Q29udGVudD1zY29yZTsKICB2YXIgcGN0PU1hdGgucm91bmQoc2NvcmUvVE9UQUwqMTAwKTsKICB2YXIgbXNnPXBjdD49ODU\/J0V4Y2VsbGVudCEgWW91ciByZWFkaW5nIGFuZCB3cml0aW5nIGlzIHN0cm9uZy4nOnBjdD49NzA\/J0dvb2Qgam9iISBLZWVwIHByYWN0aXNpbmcuJzpwY3Q+PTUwPydOaWNlIHRyeSAmbWRhc2g7IHJldmlldyB0aGUgcGFydHMgeW91IG1pc3NlZC4nOidLZWVwIGdvaW5nICZtZGFzaDsgcmVhZCB0aGUgc3RvcmllcyBhZ2FpbiBhbmQgdXNlIFNob3cgQW5zd2Vycy4nOwogICQoJyNyZXN1bHRzTXNnJykuaW5uZXJIVE1MPW1zZzsKICB2YXIgc3A9JCgnI3Njb3JlUGFydHMnKTtzcC5pbm5lckhUTUw9Jyc7CiAgWydXb3JkcycsJ1llcy9ObycsJ0RpYWxvZ3VlJywnU3RvcnknLCdDb21wbGV0ZScsJ0dyYW1tYXInXS5mb3JFYWNoKGZ1bmN0aW9uKGxhYixpKXtzcC5pbm5lckhUTUwrPSc8ZGl2IGNsYXNzPSJzcC1pdGVtIj48Yj4nK3BhcnRzW2krMV0rJzwvYj5QJysoaSsxKSsnICcrbGFiKyc8L2Rpdj4nO30pOwogICQoJyNyZXN1bHRzQmFubmVyJykuY2xhc3NMaXN0LmFkZCgnc2hvdycpOwogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXskKCcjcmVzdWx0c0Jhbm5lcicpLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonY2VudGVyJ30pO30sMTIwKTsKfSk7CiQoJyNyZXNldEJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe2lmKCFjb25maXJtKCdSZXNldCBhbGwgYW5zd2Vycz8nKSlyZXR1cm47bG9jYXRpb24ucmVsb2FkKCk7fSk7CnVwZGF0ZVByb2dyZXNzKCk7Cn0pKCk7Cg=='));<\/script>","protected":false},"excerpt":{"rendered":"<p>Cambridge YLE &middot; Movers Movers 1 &mdash; Test 3 Reading &amp; Writing 6 parts with 40 questions. Read carefully, choose or write your answers, then submit to grade. Each part has a Show Answers button to study. ~30 minutes 6 Parts &middot; 40 Questions Auto-grade + Show Answers Score 0\/40 0 of 40 answered 1 [&hellip;]<\/p>\n","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-2691","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/2691","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=2691"}],"version-history":[{"count":0,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/2691\/revisions"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=2691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}