{"id":3843,"date":"2026-06-14T18:33:14","date_gmt":"2026-06-14T18:33:14","guid":{"rendered":"https:\/\/allenglish4u.com\/cambridge-ket-3-test-2-rw\/"},"modified":"2026-07-05T02:44:14","modified_gmt":"2026-07-05T02:44:14","slug":"cambridge-ket-3-test-2-rw","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/cambridge-ket-3-test-2-rw\/","title":{"rendered":"KET 3 \u2014 Test 2 Reading &#038; Writing"},"content":{"rendered":"\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\n\/* escape WP wrapper *\/\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\n:root{\n  --accent-1:#F97316;\n  --accent-2:#F43F5E;\n  --gold:#F9C74F;\n  --green:#10B981;\n  --red:#EF4444;\n  --light-1:#FFF7ED;\n  --light-2:#FFFBF5;\n  --white:#FFFFFF;\n  --text:#0F172A;\n  --muted:#475569;\n  --subtle:#64748B;\n  --border:#E2E8F0;\n  --dark-1:#1B0F02;\n  --dark-2:#2D1A06;\n  --r-10:10px; --r-16:16px; --r-22:22px;\n  --sh-card:0 2px 8px rgba(0,0,0,.06);\n  --sh-lg:0 12px 40px rgba(0,0,0,.12);\n}\n*{margin:0;padding:0;box-sizing:border-box}\nhtml{scroll-behavior:smooth}\nbody{\n  font-family:'Plus Jakarta Sans',system-ui,sans-serif !important;\n  color:var(--text);\n  background:var(--light-2);\n  -webkit-font-smoothing:antialiased;\n  overflow-x:hidden;\n}\n.serif{font-family:'Fraunces',Georgia,serif !important;font-weight:700;letter-spacing:-.01em}\n.wrap{max-width:1080px;margin:0 auto;padding:0 24px}\na{color:inherit;text-decoration:none}\nbutton{font-family:inherit !important;cursor:pointer;border:none;background:none}\n\n\/* HEADER (same pattern as cambridge index) *\/\n.header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .28s ease,box-shadow .28s ease;border-bottom:1px solid transparent;}\n.header.solid{background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border);box-shadow:0 1px 0 rgba(15,23,42,.02);}\n.header-inner{display:flex;align-items:center;gap:28px;height:72px;max-width:1200px;margin:0 auto;padding:0 24px}\n.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}\n.brand img{width:40px;height:40px;border-radius:11px;object-fit:cover;box-shadow:var(--sh-card)}\n.brand-name{font-weight:800;font-size:18px;letter-spacing:-.02em;color:#fff;transition:color .28s ease}\n.header.solid .brand-name{color:var(--text)}\n.nav{display:flex;align-items:center;gap:4px;margin-left:8px}\n.nav a{position:relative;padding:9px 13px;font-size:14.5px;font-weight:600;color:rgba(255,255,255,.82);border-radius:var(--r-10);transition:color .16s ease,background .16s ease;}\n.nav a:hover{color:#fff;background:rgba(255,255,255,.08)}\n.header.solid .nav a{color:var(--muted)}\n.header.solid .nav a:hover{color:var(--text);background:var(--light-1)}\n.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}\n.btn-back{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;font-weight:700;font-size:14px;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);transition:background .16s ease}\n.btn-back:hover{background:rgba(255,255,255,.22)}\n.header.solid .btn-back{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.hamburger{display:none;width:40px;height:40px;border-radius:50%;color:#fff;align-items:center;justify-content:center}\n.header.solid .hamburger{color:var(--text)}\n\n\/* HERO *\/\n.hero{\n  position:relative;min-height:380px;padding:120px 0 60px;\n  background:linear-gradient(135deg,#FB923C 0%,#F43F5E 55%,#7C2D12 100%);\n  color:#fff;overflow:hidden;\n}\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:14px}\n.hero h1{font-size:clamp(34px,5vw,52px);line-height:1.05;margin-bottom:14px}\n.hero h1 span{font-style:italic;color:var(--gold)}\n.hero p.sub{font-size:17px;line-height:1.6;max-width:680px;opacity:.95;margin-bottom:22px}\n.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}\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.cta-row{display:flex;gap:12px;flex-wrap:wrap}\n.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:#fff;color:var(--text);font-weight:700;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:transform .16s ease}\n.btn-primary:hover{transform:translateY(-2px)}\n.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-weight:700;font-size:15px;border:1px solid rgba(255,255,255,.32);transition:background .16s ease}\n.btn-ghost:hover{background:rgba(255,255,255,.22)}\n\n\/* SCORE BAR *\/\n.score-bar{\n  position:sticky;top:72px;z-index:50;\n  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);\n  border-bottom:1px solid var(--border);\n  padding:14px 0;\n}\n.sb-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}\n.sb-prog{flex:1;min-width:200px}\n.sb-prog-bar{height:8px;background:var(--light-1);border-radius:999px;overflow:hidden}\n.sb-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent-1),var(--accent-2));border-radius:999px;transition:width .3s ease;width:0}\n.sb-prog-label{font-size:12px;color:var(--muted);margin-top:5px;font-weight:600}\n.sb-score{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;color:var(--text)}\n.sb-score b{font-size:18px;color:var(--accent-1)}\n.btn-submit{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:14px;box-shadow:0 6px 18px rgba(249,115,22,.32);transition:transform .15s ease,opacity .15s ease}\n.btn-submit:hover{transform:translateY(-1px)}\n.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}\n.btn-reset{padding:10px 16px;border-radius:999px;background:#fff;color:var(--muted);font-weight:600;font-size:13px;border:1px solid var(--border);transition:background .15s ease}\n.btn-reset:hover{background:var(--light-1);color:var(--text)}\n\n\/* PARTS *\/\n.part-section{padding:48px 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:24px}\n.part-num{\n  flex-shrink:0;width:60px;height:60px;border-radius:18px;\n  background:linear-gradient(135deg,var(--accent-1),var(--accent-2));\n  color:#fff;display:grid;place-items:center;\n  font-family:'Fraunces',serif !important;font-weight:700;font-size:26px;\n  box-shadow:0 8px 22px rgba(249,115,22,.3);\n}\n.part-head-text h2{font-size:26px;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;letter-spacing:.04em;margin-bottom:8px}\n.part-head-text p{color:var(--muted);font-size:15px;line-height:1.55;max-width:740px}\n\n\/* PART 1 &#8212; notice match *\/\n.notices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:20px 0 28px}\n.notice{\n  background:#fff;border:2px solid var(--border);border-radius:14px;padding:18px 14px;text-align:center;\n  font-weight:700;letter-spacing:.02em;color:var(--text);min-height:88px;display:grid;place-items:center;\n  font-size:14.5px;line-height:1.35;\n  box-shadow:0 1px 3px rgba(0,0,0,.04);\n}\n.notice-letter{position:absolute;top:6px;left:8px;font-size:11px;font-weight:800;color:var(--accent-1);background:var(--light-1);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;}\n.notice{position:relative}\n\n\/* questions list *\/\n.q-list{display:flex;flex-direction:column;gap:14px;margin-top:8px}\n.q-item{\n  background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 20px;\n  display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease,box-shadow .2s ease;\n}\n.q-item.correct{border-color:var(--green);box-shadow:0 0 0 3px rgba(16,185,129,.12)}\n.q-item.wrong{border-color:var(--red);box-shadow:0 0 0 3px rgba(239,68,68,.12)}\n.q-num{font-weight:800;color:var(--accent-1);font-size:14px;min-width:30px}\n.q-text{flex:1;font-size:15.5px;line-height:1.55;color:var(--text);display:flex;gap:10px;align-items:flex-start}\n.q-text b.qn{color:var(--accent-1);font-weight:800}\n.q-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}\n.opt{\n  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:10px;\n  background:#F8FAFF;border:1.5px solid var(--border);font-weight:600;font-size:14px;color:var(--text);\n  cursor:pointer;transition:all .15s ease;user-select:none;\n}\n.opt:hover{background:var(--light-1);border-color:var(--accent-1)}\n.opt input{display:none}\n.opt .opt-letter{font-weight:800;color:var(--accent-1);background:#fff;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:12.5px;border:1px solid var(--border)}\n.opt.selected{background:linear-gradient(100deg,rgba(249,115,22,.12),rgba(244,63,94,.12));border-color:var(--accent-1)}\n.opt.selected .opt-letter{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.opt.correct-opt{background:rgba(16,185,129,.12) !important;border-color:var(--green) !important}\n.opt.correct-opt .opt-letter{background:var(--green) !important;color:#fff !important;border-color:transparent !important}\n.opt.wrong-opt{background:rgba(239,68,68,.10) !important;border-color:var(--red) !important}\n.opt.wrong-opt .opt-letter{background:var(--red) !important;color:#fff !important;border-color:transparent !important}\n.feedback{font-size:13px;font-weight:600;display:none;padding:8px 12px;border-radius:8px;margin-top:4px}\n.q-item.answered .feedback{display:block}\n.q-item.correct .feedback{background:rgba(16,185,129,.12);color:#065F46}\n.q-item.wrong .feedback{background:rgba(239,68,68,.10);color:#991B1B}\n\n\/* PART 2 \/ cloze with input *\/\n.input-blank{\n  display:inline-block;min-width:90px;border:none;border-bottom:2px dashed var(--accent-1);\n  background:transparent;font-family:inherit !important;font-size:15.5px;color:var(--text);font-weight:600;\n  padding:2px 6px;margin:0 4px;text-align:center;outline:none;\n}\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\n\/* PART 4 &#8212; passage *\/\n.passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;\n  padding:24px 26px;margin:8px 0 20px;\n  font-size:15.5px;line-height:1.7;color:var(--text);\n  box-shadow:var(--sh-card);\n  position:relative;\n}\n.passage h3{font-family:'Fraunces',serif !important;font-size:22px;text-align:center;margin-bottom:14px;letter-spacing:.02em;color:var(--accent-2)}\n.passage p{margin-bottom:10px}\n\n\/* PART 5 &#8212; cloze passage *\/\n.cloze-passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px 26px;\n  font-size:16px;line-height:1.8;color:var(--text);box-shadow:var(--sh-card);margin-bottom:24px;\n}\n.cloze-passage h3{font-family:'Fraunces',serif !important;font-size:24px;text-align:center;color:var(--accent-2);margin-bottom:14px}\n\n\/* PART 6 &#8212; single word with first letter *\/\n.word-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}\n.first-letter{font-weight:700;color:var(--accent-1);font-size:18px;font-family:'Fraunces',serif}\n.dashes{color:var(--muted);letter-spacing:6px;font-weight:600}\n\n\/* PART 8 &#8212; form *\/\n.form-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px;max-width:560px}\n.form-card h4{font-family:'Fraunces',serif !important;font-size:20px;text-align:center;color:var(--accent-2);margin-bottom:6px;border-bottom:2px solid var(--accent-1);padding-bottom:8px;display:inline-block;width:100%}\n.form-row{display:flex;gap:12px;align-items:center;margin-top:14px;flex-wrap:wrap}\n.form-row label{flex:0 0 200px;font-weight:600;color:var(--text);font-size:14.5px}\n.form-row .input-blank{flex:1;min-width:200px;text-align:left;font-size:14.5px}\n\n\/* PART 9 &#8212; writing *\/\n.writing-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px}\n.prompt-box{background:var(--light-1);border-left:4px solid var(--accent-1);padding:14px 18px;border-radius:0 12px 12px 0;margin-bottom:18px;font-size:15px;line-height:1.6}\n.prompt-box ul{margin:10px 0 4px 22px}\n.prompt-box li{margin-bottom:4px}\n.writing-area{width:100%;min-height:160px;padding:14px;font-family:inherit !important;font-size:15px;line-height:1.55;border:2px solid var(--border);border-radius:12px;background:#FAFBFC;color:var(--text);outline:none;resize:vertical;transition:border-color .2s ease}\n.writing-area:focus{border-color:var(--accent-1);background:#fff}\n.wc-counter{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--muted);font-weight:600}\n.wc-counter.ok{color:var(--green)}\n.wc-counter.over{color:var(--red)}\n.sample-toggle{margin-top:14px;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:13.5px;border:none;cursor:pointer}\n.sample-box{display:none;margin-top:14px;padding:14px 18px;background:#FEF3C7;border-left:4px solid var(--gold);border-radius:0 12px 12px 0;font-size:14.5px;line-height:1.6}\n.sample-box.show{display:block}\n.sample-box h5{font-family:'Fraunces',serif !important;font-size:16px;margin-bottom:8px;color:#92400E}\n\n\/* SHOW ANSWER PER-Q BUTTONS *\/\n.show-ans-btn{\n  display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:8px;\n  background:rgba(249,115,22,.10);color:var(--accent-1);font-weight:700;font-size:12px;\n  border:1px solid rgba(249,115,22,.30);cursor:pointer;transition:all .15s ease;\n  font-family:inherit !important;align-self:flex-start;margin-top:4px;letter-spacing:.02em;\n}\n.show-ans-btn:hover{background:rgba(249,115,22,.18);border-color:var(--accent-1)}\n.show-ans-btn[disabled]{opacity:.45;cursor:not-allowed}\n.show-ans-btn .emoji{width:14px;height:14px}\n.show-ans-btn-inline{\n  display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;\n  background:rgba(249,115,22,.10);color:var(--accent-1);font-weight:700;font-size:11.5px;\n  border:1px solid rgba(249,115,22,.28);cursor:pointer;font-family:inherit !important;\n  margin-left:4px;vertical-align:middle;transition:all .15s ease;\n}\n.show-ans-btn-inline:hover{background:rgba(249,115,22,.18)}\n.show-ans-btn-inline[disabled]{opacity:.45;cursor:not-allowed}\n\n\/* RESULTS BANNER *\/\n.results-banner{\n  display:none;margin:32px auto;padding:30px;border-radius:22px;\n  background:linear-gradient(135deg,#FB923C,#F43F5E);color:#fff;text-align:center;max-width:720px;\n  box-shadow:0 16px 50px rgba(249,115,22,.3);\n}\n.results-banner.show{display:block}\n.results-banner h3{font-size:30px;font-family:'Fraunces',serif !important;margin-bottom:10px}\n.results-banner .score-big{font-size:64px;font-weight:800;line-height:1;margin:14px 0;font-family:'Fraunces',serif}\n.results-banner p{opacity:.95;font-size:15px}\n\n\/* FOOTER *\/\n.footer{background:var(--dark-1);color:#9CA3AF;padding:36px 0;text-align:center;font-size:13.5px}\n.footer a{color:var(--gold);font-weight:600}\n\n\/* MOBILE *\/\n@media (max-width:820px){\n  .nav{display:none}\n  .hamburger{display:flex}\n  .hero{padding:110px 0 50px}\n  .part-head{flex-direction:column;gap:12px}\n  .part-num{width:50px;height:50px;font-size:22px}\n  .notices-grid{grid-template-columns:repeat(2,1fr)}\n  .form-row label{flex:1 1 100%}\n  .form-row .input-blank{width:100%}\n  .sb-inner{gap:10px}\n  .sb-prog{order:3;flex:1 1 100%}\n}\n\n\/* mobile drawer *\/\n.drawer{position:fixed;inset:0;background:rgba(15,23,42,.65);z-index:200;display:none;align-items:flex-start;justify-content:flex-end}\n.drawer.open{display:flex}\n.drawer-panel{width:280px;background:#fff;height:100%;padding:24px;display:flex;flex-direction:column;gap:8px}\n.drawer-panel a{padding:12px 14px;border-radius:10px;font-weight:600;color:var(--text)}\n.drawer-panel a:hover{background:var(--light-1)}\n.drawer-close{align-self:flex-end;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}\n<\/style>\n\n<!-- HEADER -->\n<header class=\"header\" id=\"hdr\">\n  <div class=\"header-inner\">\n    <a href=\"https:\/\/allenglish4u.com\" class=\"brand\">\n      <img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/04\/Transparent-background-MacBook-Pro-cua-Hang.png\" alt=\"AE4U\">\n      <span class=\"brand-name\">All English 4U<\/span>\n    <\/a>\n    <nav class=\"nav\">\n      <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"active\">Cambridge<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n      <\/nav>\n    <div class=\"header-right\">\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-back\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M19 12H5M11 18l-6-6 6-6\"\/><\/svg>\n        Back\n      <\/a>\n      <button class=\"hamburger\" id=\"hamb\" aria-label=\"Menu\">\n        <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M3 6h18M3 12h18M3 18h18\"\/><\/svg>\n      <\/button>\n    <\/div>\n  <\/div>\n<\/header>\n\n<div class=\"drawer\" id=\"drawer\">\n  <div class=\"drawer-panel\">\n    <button class=\"drawer-close\" id=\"drawerClose\" aria-label=\"Close\">\n      <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg>\n    <\/button>\n    <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">Cambridge<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n    <\/div>\n<\/div>\n\n<!-- HERO -->\n<section class=\"hero\">\n  <div class=\"wrap\">\n    <span class=\"kicker\">Cambridge English &#183; Key (KET)<\/span>\n    <h1 class=\"serif\">KET 3 &#8212; Test 2<br><span>Reading &amp; Writing<\/span><\/h1>\n    <p class=\"sub\">Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn from instant feedback.<\/p>\n    <div class=\"hero-meta\">\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>1 hour 10 minutes<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>9 Parts<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>55 auto-graded<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>+ Writing prompt<\/span>\n    <\/div>\n    <div class=\"cta-row\">\n      <a href=\"#part1\" class=\"btn-primary\">\n        Start Test\n        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n      <\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-ghost\">All Cambridge Tests<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- SCORE BAR -->\n<div class=\"score-bar\" id=\"scoreBar\">\n  <div class=\"wrap sb-inner\">\n    <div class=\"sb-score\">Score <b><span id=\"scoreNow\">0<\/span>\/55<\/b><\/div>\n    <div class=\"sb-prog\">\n      <div class=\"sb-prog-bar\"><div class=\"sb-prog-fill\" id=\"progFill\"><\/div><\/div>\n      <div class=\"sb-prog-label\"><span id=\"answeredCount\">0<\/span> of 55 answered<\/div>\n    <\/div>\n    <button class=\"btn-submit\" id=\"submitBtn\">\n      <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n      Submit &amp; Grade\n    <\/button>\n    <button class=\"btn-reset\" id=\"resetBtn\">Reset<\/button>\n  <\/div>\n<\/div>\n\n<!-- ============== PART 1 ============== -->\n<section class=\"part-section\" id=\"part1\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">1<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 1&#8211;5<\/span>\n        <h2 class=\"serif\">Match the notice<\/h2>\n        <p>Which notice (A&#8211;H) says this (1&#8211;5)? For questions 1&#8211;5, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"notices-grid\">\n      <div class=\"notice\"><span class=\"notice-letter\">A<\/span>SCHOOL UNIFORM<br>DEPARTMENT<br><sub style=\"font-size:11px;font-weight:600\">This floor<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">B<\/span>DANGER!<br><sub style=\"font-size:11px;font-weight:600\">No hard hat? No boots?<\/sub><br>NO ENTRANCE<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">C<\/span>NO BICYCLES<br>AGAINST THIS WINDOW<\/div>\n      <div class=\"notice\" style=\"opacity:.55\"><span class=\"notice-letter\">D<\/span>KEEP OUT<br><sub style=\"font-size:10px;color:var(--muted);font-style:italic;font-weight:600\">(example)<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">E<\/span>BICYCLES ONLY<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">F<\/span>Exit to<br>Shoemaker Road<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">G<\/span>DANGER!<br>KEEP AWAY<br>FROM CHILDREN<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">H<\/span>BICYCLES TO RENT<br><sub style=\"font-size:11px;font-weight:600\">Adults &#163;3.50 per hour<br>Children &#163;2.00 per hour<\/sub><\/div>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part1List\">\n      <!-- Q1-5 -->\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 2 ============== -->\n<section class=\"part-section\" id=\"part2\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">2<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 6&#8211;10<\/span>\n        <h2 class=\"serif\">Sally&#39;s first day at school<\/h2>\n        <p>Read the sentences (6&#8211;10) about Sally&#39;s first day at school. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example:<\/b> It was the morning of Sally&#39;s first <u>day<\/u> at her new school. <b>(Answer: B)<\/b>\n    <\/div>\n    <div class=\"q-list\" id=\"part2List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3a ============== -->\n<section class=\"part-section\" id=\"part3a\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 11&#8211;15<\/span>\n        <h2 class=\"serif\">Complete the conversations<\/h2>\n        <p>Complete the five conversations. Choose the correct answer (A, B or C).<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example:<\/b> How are you? &#8212; <b>C<\/b> I&#39;m fine.\n    <\/div>\n    <div class=\"q-list\" id=\"part3aList\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3b ============== -->\n<section class=\"part-section\" id=\"part3b\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 16&#8211;20<\/span>\n        <h2 class=\"serif\">Conversation at an airport: Stephen &amp; the assistant<\/h2>\n        <p>Complete the conversation at an airport. What does Stephen say to the airport assistant? For each blank, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;margin-bottom:18px;font-size:14.5px;line-height:1.7\">\n      <p><b>Assistant:<\/b> Good morning. Can I see your ticket, please?<\/p>\n      <p><b>Stephen:<\/b> <span style=\"color:var(--accent-1);font-weight:700\">(Example: G)<\/span><\/p>\n      <p><b>Assistant:<\/b> You&#39;re going to fly to Scotland.<\/p>\n      <p><b>Stephen:<\/b> <select class=\"q-select\" data-qid=\"16\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> I&#39;m sorry, but there&#39;s a short delay because of fog.<\/p>\n      <p><b>Stephen:<\/b> <select class=\"q-select\" data-qid=\"17\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> About an hour. It won&#39;t be any more.<\/p>\n      <p><b>Stephen:<\/b> <select class=\"q-select\" data-qid=\"18\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> It&#39;s on the first floor. Can I take your suitcases now, please?<\/p>\n      <p><b>Stephen:<\/b> <select class=\"q-select\" data-qid=\"19\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> Yes, you can take one piece of luggage with you. Where would you like to sit?<\/p>\n      <p><b>Stephen:<\/b> <select class=\"q-select\" data-qid=\"20\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Assistant:<\/b> There you are. Number 24A. Enjoy your trip.<\/p>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;font-size:14px;line-height:1.85\">\n      <b style=\"color:var(--accent-1);display:block;margin-bottom:6px\">Choices:<\/b>\n      <div><b>A<\/b> Well, I suppose I can get something to eat. Where&#39;s the restaurant?<\/div>\n      <div><b>B<\/b> Here&#39;s my passport.<\/div>\n      <div><b>C<\/b> Yes, that&#39;s right. I&#39;m going to visit my family.<\/div>\n      <div><b>D<\/b> By the window, please.<\/div>\n      <div><b>E<\/b> Yes, but not this bag. Is it all right to take it on the plane?<\/div>\n      <div><b>F<\/b> That&#39;s bad news. How long for?<\/div>\n      <div style=\"opacity:.5\"><b>G<\/b> Yes, here you are. <i>(example)<\/i><\/div>\n      <div><b>H<\/b> Can I smoke if I sit there?<\/div>\n    <\/div>\n\n    <div id=\"part3bFeedback\" style=\"margin-top:14px\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 4 ============== -->\n<section class=\"part-section\" id=\"part4\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">4<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 21&#8211;27<\/span>\n        <h2 class=\"serif\">Bill Prince-Smith<\/h2>\n        <p>Read the article about Bill Prince-Smith, a writer. Are sentences 21&#8211;27 <b>&#8216;Right&#8217; (A)<\/b> or <b>&#8216;Wrong&#8217; (B)<\/b>? If there is not enough information to answer &#8216;Right&#8217; or &#8216;Wrong&#8217;, choose <b>&#8216;Doesn&#8217;t say&#8217; (C)<\/b>.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"passage\">\n      <h3>BILL PRINCE-SMITH<\/h3>\n      <p>Bill Prince-Smith was a farmer and a teacher and a dentist before he became a writer of children&#39;s books at the age of 60. Now, thirteen years later, he has written more than 80 books. Every day, he goes into his office and writes. In the evening, he gives the work to his wife to read. &#39;She tells me when she doesn&#39;t like something,&#39; says Bill. &#39;My ten grandchildren don&#39;t live near here but they also read my stories and say if they are good or bad.&#39; And so Bill has learned what young children want to read.<\/p>\n      <p>Bill writes about the life in his village and on the farms near it. His fifth book is his favourite: <i>The Sheepdog<\/i> is about a farmer and the dog that helps him. &#39;I have always liked animals,&#39; says Bill, &#39;and dogs are so clever, they learn very quickly.&#39;<\/p>\n      <p>Last year, the book was made into a film with real animals and actors. The film-makers used the latest computer technology to make people think that the animals are speaking. Bill was very pleased with the film. &#39;Sometimes film-makers change books, but they didn&#39;t change mine and I love the film.&#39;<\/p>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px 18px;margin-bottom:18px;font-size:14px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example (0):<\/b> Bill Prince-Smith has had several jobs. &#8594; <b>A (Right)<\/b>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part4List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 5 ============== -->\n<section class=\"part-section\" id=\"part5\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">5<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 28&#8211;35<\/span>\n        <h2 class=\"serif\">Otters &#8212; gap fill<\/h2>\n        <p>Read the article about an animal, the otter. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"cloze-passage\">\n      <h3>Otters<\/h3>\n      <p>Not many people <u><b style=\"color:var(--accent-1)\">have<\/b><\/u> seen an otter. These animals live <span data-q=\"28\" class=\"cloze-blank\">[28]<\/span> rivers and make their homes from small pieces of wood. They usually come <span data-q=\"29\" class=\"cloze-blank\">[29]<\/span> at night. Otters are very good in the water and can swim at more than 10 kilometres <span data-q=\"30\" class=\"cloze-blank\">[30]<\/span> hour. They have thick brown hair and this <span data-q=\"31\" class=\"cloze-blank\">[31]<\/span> them warm in the water. An otter can close <span data-q=\"32\" class=\"cloze-blank\">[32]<\/span> ears and nose. This means otters can stay under water <span data-q=\"33\" class=\"cloze-blank\">[33]<\/span> several minutes.<\/p>\n      <p>Twenty years ago, there were <span data-q=\"34\" class=\"cloze-blank\">[34]<\/span> otters in Great Britain. The water in the rivers was so dirty that many fish and insects died and the otters couldn&#39;t find anything to eat. But today there is lots of food for them <span data-q=\"35\" class=\"cloze-blank\">[35]<\/span> the rivers are clean again.<\/p>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part5List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 6 ============== -->\n<section class=\"part-section\" id=\"part6\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">6<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 36&#8211;40<\/span>\n        <h2 class=\"serif\">On the road &#8212; spell the word<\/h2>\n        <p>Read the descriptions (36&#8211;40) of some things you can see when you travel by road. The first letter is given. Type the word. <b>Example (0):<\/b> You can drive fast here. &#8594; <b>motorway<\/b><\/p>\n      <\/div>\n    <\/div>\n    <div class=\"q-list\" id=\"part6List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 7 ============== -->\n<section class=\"part-section\" id=\"part7\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">7<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 41&#8211;50<\/span>\n        <h2 class=\"serif\">Complete this letter<\/h2>\n        <p>Read the notes from Ahmed, the Student Secretary. Type <b>ONE word<\/b> for each space (41&#8211;50). (Example: <i>like<\/i>)<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"max-width:580px;margin:0 auto\">\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:24px 26px;font-size:14.5px;line-height:1.95;font-family:&#39;Courier New&#39;,monospace\">\n        <p><b>TO ALL STUDENTS!<\/b><\/p>\n        <p>Would you (Example: <u>like<\/u>) to come on a camping trip <input class=\"input-blank\" data-q=\"41\" type=\"text\"> weekend?<\/p>\n        <p>We are going to <input class=\"input-blank\" data-q=\"42\" type=\"text\"> to the forest in the school bus and we will stay at a camp-site <input class=\"input-blank\" data-q=\"43\" type=\"text\"> Friday to Sunday. <input class=\"input-blank\" data-q=\"44\" type=\"text\"> has hot showers and <input class=\"input-blank\" data-q=\"45\" type=\"text\"> small shop and you <input class=\"input-blank\" data-q=\"46\" type=\"text\"> rent bicycles there.<\/p>\n        <p>The trip <input class=\"input-blank\" data-q=\"47\" type=\"text\"> &#163;25. It is very cold there <input class=\"input-blank\" data-q=\"48\" type=\"text\"> night, so you should take warm clothes and you will <input class=\"input-blank\" data-q=\"49\" type=\"text\"> to wear strong shoes. <input class=\"input-blank\" data-q=\"50\" type=\"text\"> you want to come, tell me today.<\/p>\n        <p><i>Ahmed<\/i><\/p>\n        <p><i>Student Secretary<\/i><\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 8 ============== -->\n<section class=\"part-section\" id=\"part8\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">8<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 51&#8211;55<\/span>\n        <h2 class=\"serif\">Summer Job Application Form<\/h2>\n        <p>Read the advertisement for summer jobs and the e-mail message. Fill in the information on the Summer Job Application Form (51&#8211;55).<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:18px\">\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:16px 18px;font-size:14px;line-height:1.6\">\n        <div style=\"text-align:center;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:10px\"><b>GRANTON UNIVERSITY<\/b><br><b>STUDENT JOBS &#8212; AUGUST<\/b><\/div>\n        <p style=\"margin-bottom:6px\"><b>Europe Computers:<\/b> Cleaner, start next month.<\/p>\n        <p style=\"margin-bottom:6px\"><b>Mill Farm:<\/b> Fruit pickers, until end of this month.<\/p>\n        <p style=\"margin-bottom:0\"><b>Brown&#39;s Hotel:<\/b> Receptionist needed now, for 4 weeks, must speak a foreign language.<\/p>\n      <\/div>\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:16px 18px;font-size:14px;line-height:1.6\">\n        <div style=\"border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:10px\"><b>To:<\/b> J &amp; S Becker<br><b>From:<\/b> Helen<\/div>\n        <p style=\"margin-bottom:8px\">Hi Mum and Dad! My history course finishes on 28 July. I want to find a job for a month where I can practise my French and German and perhaps use a computer.<\/p>\n        <p style=\"margin-bottom:8px\">I&#39;ll come back home to Canada in September.<\/p>\n        <p style=\"margin-bottom:0\"><i>Love Helen<\/i><\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"form-card\">\n      <h4>SUMMER JOB APPLICATION FORM<\/h4>\n      <div class=\"form-row\"><label>Name:<\/label><span style=\"font-weight:600;color:var(--accent-2);font-style:italic\">Helen Becker<\/span><\/div>\n      <div class=\"form-row\"><label>Nationality:<\/label><input class=\"input-blank\" data-q=\"51\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>University course:<\/label><input class=\"input-blank\" data-q=\"52\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Foreign languages:<\/label><input class=\"input-blank\" data-q=\"53\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Job wanted at:<\/label><input class=\"input-blank\" data-q=\"54\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Which month can you work?<\/label><input class=\"input-blank\" data-q=\"55\" type=\"text\"><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 9 &#8212; WRITING ============== -->\n<section class=\"part-section\" id=\"part9\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">9<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Question 56<\/span>\n        <h2 class=\"serif\">Writing &#8212; note to Chris<\/h2>\n        <p>This part is <b>not auto-graded<\/b>. Write your note, then click <i>Show Sample Answer<\/i> to see multiple examples.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"writing-card\">\n      <div class=\"prompt-box\">\n        <b>Read this note from your friend, Chris. Write a note to Chris and answer the questions.<\/b>\n        <div style=\"background:#fff;border:1px dashed var(--accent-1);border-radius:10px;padding:12px 14px;margin:12px 0;font-style:italic;line-height:1.55\">\n          Why didn&#39;t you come to the party last night?<br>\n          Can you meet me on Saturday? What do you want to do?<br><br>\n          Chris\n        <\/div>\n        Your note must include:\n        <ul>\n          <li><b>why<\/b> you didn&#39;t come to the party<\/li>\n          <li><b>whether<\/b> you can meet Chris on Saturday<\/li>\n          <li><b>what<\/b> you want to do<\/li>\n        <\/ul>\n        Write 25&#8211;35 words.\n      <\/div>\n      <textarea class=\"writing-area\" id=\"writingArea\" placeholder=\"Type your note here...\"><\/textarea>\n      <div class=\"wc-counter\" id=\"wcCounter\">0 words &#183; target 25&#8211;35<\/div>\n      <button class=\"sample-toggle\" id=\"sampleToggle\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n        Show Sample Answer\n      <\/button>\n      <div class=\"sample-box\" id=\"sampleBox\">\n        <h5 style=\"margin-bottom:14px\">Real Cambridge sample answers &#8212; with examiner marks<\/h5>\n\n        <div style=\"background:#fff;border-left:3px solid var(--green);padding:10px 14px;margin-bottom:12px;border-radius:0 8px 8px 0\">\n          <b style=\"color:var(--green);font-size:12.5px;letter-spacing:.05em\">SAMPLE A &#8212; Mark 5\/5 (all three parts clearly communicated)<\/b>\n          <p style=\"margin-top:6px\">Chris, I&#39;m sorry I could not come on the party last night because I met my old friends and went with them to the cinema. I can meet you on Saturday and we can go to restaurant.<\/p>\n          <p>bye &#8212; Sophia<\/p>\n        <\/div>\n\n        <div style=\"background:#fff;border-left:3px solid var(--accent-1);padding:10px 14px;margin-bottom:12px;border-radius:0 8px 8px 0\">\n          <b style=\"color:var(--accent-1);font-size:12.5px;letter-spacing:.05em\">SAMPLE B &#8212; Mark 4\/5 (communicated, but some errors)<\/b>\n          <p style=\"margin-top:6px\">I am realy sorry for not coming but my mother forbad me to come. I am free on Saturday, why not go to the cinema.<\/p>\n        <\/div>\n\n        <div style=\"background:#fff;border-left:3px solid var(--red);padding:10px 14px;border-radius:0 8px 8px 0\">\n          <b style=\"color:var(--red);font-size:12.5px;letter-spacing:.05em\">SAMPLE C &#8212; Mark 3\/5 (one part not communicated)<\/b>\n          <p style=\"margin-top:6px\">Dear Chris, I was very ill last night and had to stay in the bed but I&#39;m fine now and I want to go to the zoo.<\/p>\n          <p>Masaya<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- RESULTS BANNER -->\n<div class=\"wrap\">\n  <div class=\"results-banner\" id=\"resultsBanner\">\n    <h3>Your KET 3 Test 2 &#8212; Reading &amp; Writing score<\/h3>\n    <div class=\"score-big\"><span id=\"finalScore\">0<\/span>\/55<\/div>\n    <p id=\"resultsMsg\">Great effort! Scroll up to review your answers &#8212; correct ones are highlighted in green and wrong ones in red.<\/p>\n    <div style=\"margin-top:18px\"><button class=\"btn-primary\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\" style=\"background:#fff;color:var(--accent-2)\">Back to top<\/button><\/div>\n  <\/div>\n<\/div>\n\n<!-- FOOTER -->\n<footer class=\"footer\">\n  <div class=\"wrap\">\n    <p>&#169; 2026 All English 4U &#183; <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">All Cambridge Tests<\/a> &#183; <a href=\"https:\/\/allenglish4u.com\/contact\/\">Contact<\/a><\/p>\n  <\/div>\n<\/footer>\n\n<script>eval(atob('CihmdW5jdGlvbigpewovLyA9PT09PSBIZWFkZXIgc2Nyb2xsID09PT09CnZhciBoZHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hkcicpOwp2YXIgc2V0U29saWQ9ZnVuY3Rpb24oKXtpZih3aW5kb3cuc2Nyb2xsWT40MCloZHIuY2xhc3NMaXN0LmFkZCgnc29saWQnKTtlbHNlIGhkci5jbGFzc0xpc3QucmVtb3ZlKCdzb2xpZCcpfTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsc2V0U29saWQse3Bhc3NpdmU6dHJ1ZX0pO3NldFNvbGlkKCk7CgovLyBkcmF3ZXIKdmFyIGhhbWI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hhbWInKSxkcmF3ZXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RyYXdlcicpLGRDbG9zZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJhd2VyQ2xvc2UnKTsKaWYoaGFtYiloYW1iLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe2RyYXdlci5jbGFzc0xpc3QuYWRkKCdvcGVuJyl9KTsKaWYoZENsb3NlKWRDbG9zZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtkcmF3ZXIuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpfSk7CmlmKGRyYXdlcilkcmF3ZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0PT09ZHJhd2VyKWRyYXdlci5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyl9KTsKCi8vID09PT09IERBVEEgPT09PT0KLy8gTUNRIHF1ZXN0aW9uczogZWFjaCBlbnRyeSA9IHtuLCB0ZXh0LCBvcHRzOlt7bCx0fV0sIGFuc30KdmFyIFAxID0gWwogIHtuOjEsdGV4dDoiWW91IGNhbid0IGxlYXZlIHlvdXIgYmljeWNsZSBoZXJlLiIsb3B0czonQUJDRUZHSCcsYW5zOidDJ30sCiAge246Mix0ZXh0OiJBZHVsdHMgc2hvdWxkbid0IGxldCBjaGlsZHJlbiBwbGF5IHdpdGggdGhpcy4iLG9wdHM6J0FCQ0VGR0gnLGFuczonRyd9LAogIHtuOjMsdGV4dDoiWW91IGNhbiBidXkgY2hpbGRyZW4ncyBjbG90aGVzIGhlcmUuIixvcHRzOidBQkNFRkdIJyxhbnM6J0EnfSwKICB7bjo0LHRleHQ6J0RvIG5vdCBjb21lIGluIGlmIHlvdSBhcmUgbm90IHdlYXJpbmcgdGhlIHJpZ2h0IGNsb3RoZXMuJyxvcHRzOidBQkNFRkdIJyxhbnM6J0InfSwKICB7bjo1LHRleHQ6J1VzZSB0aGlzIGRvb3IgdG8gZ28gb3V0c2lkZS4nLG9wdHM6J0FCQ0VGR0gnLGFuczonRid9LApdOwp2YXIgUDIgPSBbCiAge246Nix0ZXh0OidTYWxseSBmZWx0IHJhdGhlciBfX19fXyBiZWNhdXNlIHNoZSBkaWRuXCd0IGtub3cgYW55Ym9keS4nLG9wdHM6W1snQScsJ3VuaGFwcHknXSxbJ0InLCdwb29yJ10sWydDJywnc2luZ2xlJ11dLGFuczonQSd9LAogIHtuOjcsdGV4dDonVGhlIHRlYWNoZXIgX19fX18gU2FsbHkgdG8gdGhlIGNsYXNzcm9vbS4nLG9wdHM6W1snQScsJ3B1dCddLFsnQicsJ3dlbnQnXSxbJ0MnLCd0b29rJ11dLGFuczonQyd9LAogIHtuOjgsdGV4dDonU2FsbHkgc2F0IG5leHQgdG8gYSBnaXJsIHdpdGggYmxvbmRlIF9fX19fIGNhbGxlZCBBbXkuJyxvcHRzOltbJ0EnLCdleWVzJ10sWydCJywndGVldGgnXSxbJ0MnLCdoYWlyJ11dLGFuczonQyd9LAogIHtuOjksdGV4dDonQXQgbHVuY2h0aW1lLCBBbXkgZ2F2ZSBTYWxseSBhbiBhcHBsZSBhbmQgX19fX18gaGVyIGFsbCBhYm91dCB0aGUgc2Nob29sLicsb3B0czpbWydBJywndG9sZCddLFsnQicsJ2xlYXJuZWQnXSxbJ0MnLCdzYWlkJ11dLGFuczonQSd9LAogIHtuOjEwLHRleHQ6IkJ5IHRoZSBlbmQgb2YgdGhlIGFmdGVybm9vbiwgQW15IHdhcyBTYWxseSdzIF9fX19fIGZyaWVuZC4iLG9wdHM6W1snQScsJ2xvdmVseSddLFsnQicsJ2Jlc3QnXSxbJ0MnLCdleGNlbGxlbnQnXV0sYW5zOidCJ30sCl07CnZhciBQM2EgPSBbCiAge246MTEsdGV4dDonXHUwMEEzNTAwIGlzIHRvbyBleHBlbnNpdmUuJyxvcHRzOltbJ0EnLCdOb3QgbWFueS4nXSxbJ0InLCdXaHkgbm90PyddLFsnQycsJ0kgYWdyZWUuJ11dLGFuczonQyd9LAogIHtuOjEyLHRleHQ6IkkndmUgZ290IGFuIGFwcG9pbnRtZW50IHdpdGggbXkgZG9jdG9yIHRvZGF5LiIsb3B0czpbWydBJywnSG93IGRvZXMgaGUgZmVlbD8nXSxbJ0InLCJXaGF0J3MgdGhlIG1hdHRlciB3aXRoIHlvdT8iXSxbJ0MnLCdXaG8gZG8geW91IHdhbnQ\/J11dLGFuczonQid9LAogIHtuOjEzLHRleHQ6J1dvdWxkIHlvdSBsaWtlIGFueXRoaW5nIGVsc2U\/JyxvcHRzOltbJ0EnLCdUaGF0XCdzIGFsbCwgdGhhbmsgeW91LiddLFsnQicsJ1llcywgSSBsaWtlIGV2ZXJ5dGhpbmcuJ10sWydDJywnVHdvLCBwbGVhc2UuJ11dLGFuczonQSd9LAogIHtuOjE0LHRleHQ6IldoZW4gaXMgeW91ciBtb3RoZXIncyBiaXJ0aGRheT8iLG9wdHM6W1snQScsJ1NoZVwncyB0aGlydHktbmluZS4nXSxbJ0InLCdJdCB3YXMgbGFzdCB3ZWVrLiddLFsnQycsJ0l0XCdzIGEgbG9uZyB0aW1lLiddXSxhbnM6J0InfSwKICB7bjoxNSx0ZXh0OidTaGFsbCB3ZSBnbyB0byB0aGUgc2hvcHMgbm93Pycsb3B0czpbWydBJywnSVwnbSB0b28gdGlyZWQuJ10sWydCJywnVGhleVwncmUgdmVyeSBnb29kLiddLFsnQycsJ05vdCBhdCBhbGwuJ11dLGFuczonQSd9LApdOwp2YXIgUDNiQW5zID0gezE2OidDJywxNzonRicsMTg6J0EnLDE5OidFJywyMDonRCd9Owp2YXIgUDQgPSBbCiAge246MjEsdGV4dDonQmlsbCBiZWNhbWUgYSB3cml0ZXIgdGhpcnRlZW4geWVhcnMgYWdvLicsb3B0czpbWydBJywnUmlnaHQnXSxbJ0InLCdXcm9uZyddLFsnQycsIkRvZXNuJ3Qgc2F5Il1dLGFuczonQSd9LAogIHtuOjIyLHRleHQ6J0JpbGwgd3JpdGVzIGhpcyBib29rcyBpbiB0aGUgZXZlbmluZ3MuJyxvcHRzOltbJ0EnLCdSaWdodCddLFsnQicsJ1dyb25nJ10sWydDJywiRG9lc24ndCBzYXkiXV0sYW5zOidCJ30sCiAge246MjMsdGV4dDonQmlsbCBzaG93cyBoaXMgd3JpdGluZyB0byBoaXMgd2lmZS4nLG9wdHM6W1snQScsJ1JpZ2h0J10sWydCJywnV3JvbmcnXSxbJ0MnLCJEb2Vzbid0IHNheSJdXSxhbnM6J0EnfSwKICB7bjoyNCx0ZXh0OidCaWxsIHdyaXRlcyBib29rcyBhYm91dCBoaXMgZ3JhbmRjaGlsZHJlbi4nLG9wdHM6W1snQScsJ1JpZ2h0J10sWydCJywnV3JvbmcnXSxbJ0MnLCJEb2Vzbid0IHNheSJdXSxhbnM6J0InfSwKICB7bjoyNSx0ZXh0OiJUaGUgU2hlZXBkb2cgd2FzIEJpbGwncyBmaXJzdCBib29rLiIsb3B0czpbWydBJywnUmlnaHQnXSxbJ0InLCdXcm9uZyddLFsnQycsIkRvZXNuJ3Qgc2F5Il1dLGFuczonQid9LAogIHtuOjI2LHRleHQ6J0JpbGwgcHJlZmVycyB3cml0aW5nIGFib3V0IGFuaW1hbHMgdG8gd3JpdGluZyBhYm91dCBwZW9wbGUuJyxvcHRzOltbJ0EnLCdSaWdodCddLFsnQicsJ1dyb25nJ10sWydDJywiRG9lc24ndCBzYXkiXV0sYW5zOidDJ30sCiAge246MjcsdGV4dDonVGhlIGZpbG0gb2YgVGhlIFNoZWVwZG9nIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBib29rLicsb3B0czpbWydBJywnUmlnaHQnXSxbJ0InLCdXcm9uZyddLFsnQycsIkRvZXNuJ3Qgc2F5Il1dLGFuczonQid9LApdOwp2YXIgUDUgPSBbCiAge246Mjgsb3B0czpbWydBJywnYXQnXSxbJ0InLCduZWFyJ10sWydDJywnbmV4dCddXSxhbnM6J0InfSwKICB7bjoyOSxvcHRzOltbJ0EnLCdhd2F5J10sWydCJywnb2ZmJ10sWydDJywnb3V0J11dLGFuczonQyd9LAogIHtuOjMwLG9wdHM6W1snQScsJ29uZSddLFsnQicsJ2FuJ10sWydDJywnYSddXSxhbnM6J0InfSwKICB7bjozMSxvcHRzOltbJ0EnLCdrZWVwcyddLFsnQicsJ2tlZXAnXSxbJ0MnLCdrZXB0J11dLGFuczonQSd9LAogIHtuOjMyLG9wdHM6W1snQScsJ3RoZSddLFsnQicsJ3RoZWlyJ10sWydDJywnaXRzJ11dLGFuczonQyd9LAogIHtuOjMzLG9wdHM6W1snQScsJ3NpbmNlJ10sWydCJywnZHVyaW5nJ10sWydDJywnZm9yJ11dLGFuczonQyd9LAogIHtuOjM0LG9wdHM6W1snQScsJ2ZldyddLFsnQicsJ2xpdHRsZSddLFsnQycsJ2FueSddXSxhbnM6J0EnfSwKICB7bjozNSxvcHRzOltbJ0EnLCdhZnRlciddLFsnQicsJ2JlY2F1c2UnXSxbJ0MnLCd3aGVuJ11dLGFuczonQid9LApdOwp2YXIgUDYgPSBbCiAge246MzYsdGV4dDonR28gaGVyZSB3aGVuIHlvdSBuZWVkIHBldHJvbCBmb3IgeW91ciBjYXIuJyxmaXJzdDonZycsYW5zOidnYXJhZ2UnfSwKICB7bjozNyx0ZXh0OidUaGlzIHdpbGwgdGFrZSB5b3Ugb3ZlciBhIHJpdmVyIG9yIGFub3RoZXIgcm9hZC4nLGZpcnN0OidiJyxhbnM6J2JyaWRnZSd9LAogIHtuOjM4LHRleHQ6J1lvdSBtdXN0IHNob3cgdGhpcyBwZXJzb24geW91ciBkcml2aW5nIGxpY2VuY2UgaWYgaGUgYXNrcyBmb3IgaXQuJyxmaXJzdDoncCcsYW5zOidwb2xpY2VtYW4nfSwKICB7bjozOSx0ZXh0OidZb3UgY2FuIGdvIGxlZnQsIHJpZ2h0IG9yIHN0cmFpZ2h0IG9uIGF0IHRoaXMgcGxhY2Ugd2hlcmUgdHdvIHJvYWRzIG1lZXQuJyxmaXJzdDonYycsYW5zOidjcm9zc3JvYWRzJ30sCiAge246NDAsdGV4dDonSWYgdGhlc2UgYXJlIHJlZCwgdGhlIHRyYWZmaWMgaGFzIHRvIHdhaXQuJyxmaXJzdDonbCcsYW5zOidsaWdodHMnfSwKXTsKLy8gUGFydCA3IFx1MjAxNCBsZXR0ZXIgY2xvemU6IGFjY2VwdGVkIGFuc3dlcnMKdmFyIFA3QW5zID0gewogIDQxOlsnbmV4dCcsJ3RoaXMnXSwKICA0MjpbJ2dvJywndHJhdmVsJywnZHJpdmUnXSwKICA0MzpbJ2Zyb20nXSwKICA0NDpbJ2l0J10sCiAgNDU6WydhJywnb25lJ10sCiAgNDY6WydjYW4nXSwKICA0NzpbJ2Nvc3RzJywnaXMnXSwKICA0ODpbJ2F0JywnZXZlcnknXSwKICA0OTpbJ2hhdmUnLCduZWVkJywnd2FudCddLAogIDUwOlsnaWYnXSwKfTsKLy8gUGFydCA4CnZhciBQOEFucyA9IHsKICA1MTpbJ2NhbmFkaWFuJ10sCiAgNTI6WydoaXN0b3J5J10sCiAgNTM6WydmcmVuY2ggYW5kIGdlcm1hbicsJ2ZyZW5jaCAmIGdlcm1hbicsJ2dlcm1hbiBhbmQgZnJlbmNoJywnZnJlbmNoLCBnZXJtYW4nLCdmcmVuY2ggYW5kIGdlcm1hbi4nLCdmcmVuY2ggZ2VybWFuJ10sCiAgNTQ6WyJicm93bidzIGhvdGVsIiwnYnJvd25zIGhvdGVsJywnYnJvd24gaG90ZWwnLCJicm93bidzIiwnYnJvd25zJywnYnJvd24nXSwKICA1NTpbJ2F1Z3VzdCddLAp9OwoKLy8gPT09PT0gUmVuZGVyaW5nID09PT09CmZ1bmN0aW9uIHJlbmRlck1DUShsaXN0RWwsIGRhdGEpewogIGRhdGEuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgIHZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBkaXYuY2xhc3NOYW1lPSdxLWl0ZW0nOyBkaXYuZGF0YXNldC5xaWQ9cS5uOwogICAgdmFyIG9wdHNIVE1MPScnOwogICAgaWYoQXJyYXkuaXNBcnJheShxLm9wdHMpKXsKICAgICAgcS5vcHRzLmZvckVhY2goZnVuY3Rpb24obyl7CiAgICAgICAgb3B0c0hUTUwgKz0gJzxsYWJlbCBjbGFzcz0ib3B0IiBkYXRhLWxldHRlcj0iJytvWzBdKyciPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icScrcS5uKyciIHZhbHVlPSInK29bMF0rJyI+PHNwYW4gY2xhc3M9Im9wdC1sZXR0ZXIiPicrb1swXSsnPC9zcGFuPiAnK2VzY2FwZUh0bWwob1sxXSkrJzwvbGFiZWw+JzsKICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICAvLyBzdHJpbmcgb2YgbGV0dGVycyAoUDEpCiAgICAgIGZvcih2YXIgaT0wO2k8cS5vcHRzLmxlbmd0aDtpKyspewogICAgICAgIHZhciBMPXEub3B0c1tpXTsKICAgICAgICBvcHRzSFRNTCArPSAnPGxhYmVsIGNsYXNzPSJvcHQiIGRhdGEtbGV0dGVyPSInK0wrJyI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJxJytxLm4rJyIgdmFsdWU9IicrTCsnIj48c3BhbiBjbGFzcz0ib3B0LWxldHRlciI+JytMKyc8L3NwYW4+PC9sYWJlbD4nOwogICAgICB9CiAgICB9CiAgICBkaXYuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InEtdGV4dCI+PGIgY2xhc3M9InFuIj4nK3EubisnLjwvYj48c3Bhbj4nK2VzY2FwZUh0bWwocS50ZXh0KSsnPC9zcGFuPjwvZGl2PicrCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InEtb3B0cyI+JytvcHRzSFRNTCsnPC9kaXY+JysKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmVlZGJhY2siPjwvZGl2Pic7CiAgICBsaXN0RWwuYXBwZW5kQ2hpbGQoZGl2KTsKICB9KTsKfQpmdW5jdGlvbiBlc2NhcGVIdG1sKHMpe3JldHVybiBTdHJpbmcocykucmVwbGFjZSgvWyY8PiInXS9nLGZ1bmN0aW9uKGMpe3JldHVybiB7JyYnOicmYW1wOycsJzwnOicmbHQ7JywnPic6JyZndDsnLCciJzonJnF1b3Q7JywiJyI6JyYjMzk7J31bY119KX0KCnJlbmRlck1DUShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydDFMaXN0JyksUDEpOwpyZW5kZXJNQ1EoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcnQyTGlzdCcpLFAyKTsKcmVuZGVyTUNRKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJ0M2FMaXN0JyksUDNhKTsKcmVuZGVyTUNRKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJ0NExpc3QnKSxQNCk7CgovLyBQYXJ0IDUgXHUyMDE0IHJlbmRlciBhcyBNQ1EgbGlzdCB1bmRlciB0aGUgcGFzc2FnZQpyZW5kZXJNQ1EoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcnQ1TGlzdCcpLFA1Lm1hcChmdW5jdGlvbihxKXtyZXR1cm4ge246cS5uLHRleHQ6J1F1ZXN0aW9uICcrcS5uKycgXHUyMDE0IGNob29zZSB0aGUgYmVzdCB3b3JkIGZvciB0aGUgZ2FwLicsb3B0czpxLm9wdHMsYW5zOnEuYW5zfX0pKTsKCi8vIFBhcnQgNiBcdTIwMTQgZmlyc3QtbGV0dGVyICsgZGFzaGVzICsgaW5wdXQKKGZ1bmN0aW9uKCl7CiAgdmFyIGxpc3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcnQ2TGlzdCcpOwogIFA2LmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICB2YXIgZGFzaENvdW50ID0gcS5hbnMubGVuZ3RoIC0gMTsKICAgIHZhciBkYXNoZXMgPSBuZXcgQXJyYXkoZGFzaENvdW50KS5maWxsKCdfJykuam9pbignICcpOwogICAgdmFyIGRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgZGl2LmNsYXNzTmFtZT0ncS1pdGVtJzsgZGl2LmRhdGFzZXQucWlkPXEubjsKICAgIGRpdi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InEtdGV4dCI+PGIgY2xhc3M9InFuIj4nK3EubisnLjwvYj48c3Bhbj4nK2VzY2FwZUh0bWwocS50ZXh0KSsnPC9zcGFuPjwvZGl2PicrCiAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJ3b3JkLXJvdyI+PHNwYW4gY2xhc3M9ImZpcnN0LWxldHRlciI+JytxLmZpcnN0Kyc8L3NwYW4+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dC1ibGFuayIgZGF0YS1xPSInK3EubisnIiBwbGFjZWhvbGRlcj0iJytkYXNoZXMrJyIgc3R5bGU9Im1pbi13aWR0aDoyMDBweCI+PC9kaXY+JysKICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZlZWRiYWNrIj48L2Rpdj4nOwogICAgbGlzdC5hcHBlbmRDaGlsZChkaXYpOwogIH0pOwp9KSgpOwoKLy8gPT09PT0gV2lyZSBvcHRpb24gY2xpY2tzID09PT09CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKG9wdCl7CiAgb3B0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihlKXsKICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgIHZhciBpbnB1dD1vcHQucXVlcnlTZWxlY3RvcignaW5wdXQnKTsKICAgIHZhciBncm91cD1vcHQucGFyZW50RWxlbWVudDsKICAgIGdyb3VwLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe28uY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKX0pOwogICAgb3B0LmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7CiAgICBpbnB1dC5jaGVja2VkPXRydWU7CiAgICB1cGRhdGVQcm9ncmVzcygpOwogIH0pOwp9KTsKCi8vIGlucHV0cwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuaW5wdXQtYmxhbmssLnEtc2VsZWN0JykuZm9yRWFjaChmdW5jdGlvbihlbCl7CiAgZWwuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLHVwZGF0ZVByb2dyZXNzKTsKICBlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHVwZGF0ZVByb2dyZXNzKTsKfSk7CgovLyA9PT09PSBTdWJtaXQgJiBHcmFkZSA9PT09PQpmdW5jdGlvbiBnZXRNY3FBbnMocWlkKXsKICB2YXIgc2VsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9InEnK3FpZCsnIl06Y2hlY2tlZCcpOwogIHJldHVybiBzZWw\/c2VsLnZhbHVlOm51bGw7Cn0KZnVuY3Rpb24gZ2V0SW5wdXRBbnMocWlkKXsKICB2YXIgZWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmlucHV0LWJsYW5rW2RhdGEtcT0iJytxaWQrJyJdJyk7CiAgcmV0dXJuIGVsP2VsLnZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpOicnOwp9CmZ1bmN0aW9uIGdldFNlbGVjdEFucyhxaWQpewogIHZhciBlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucS1zZWxlY3RbZGF0YS1xaWQ9IicrcWlkKyciXScpOwogIHJldHVybiBlbD9lbC52YWx1ZTonJzsKfQpmdW5jdGlvbiB0b3RhbFFzKCl7cmV0dXJuIDU1fQoKZnVuY3Rpb24gYW5zd2VyZWRDb3VudCgpewogIHZhciBuPTA7CiAgLy8gTUNROiBQMSgxLTUpIFAyKDYtMTApIFAzYSgxMS0xNSkgUDQoMjEtMjcpIFA1KDI4LTM1KQogIFsxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwzMywzNCwzNV0uZm9yRWFjaChmdW5jdGlvbihxKXtpZihnZXRNY3FBbnMocSkpbisrfSk7CiAgWzE2LDE3LDE4LDE5LDIwXS5mb3JFYWNoKGZ1bmN0aW9uKHEpe2lmKGdldFNlbGVjdEFucyhxKSluKyt9KTsKICAvLyBpbnB1dHMKICBmb3IodmFyIGk9MzY7aTw9NTU7aSsrKXtpZihnZXRJbnB1dEFucyhpKSluKyt9CiAgcmV0dXJuIG47Cn0KZnVuY3Rpb24gdXBkYXRlUHJvZ3Jlc3MoKXsKICB2YXIgYT1hbnN3ZXJlZENvdW50KCksIHRvdGFsPXRvdGFsUXMoKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYW5zd2VyZWRDb3VudCcpLnRleHRDb250ZW50PWE7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dGaWxsJykuc3R5bGUud2lkdGg9KGEvdG90YWwqMTAwKSsnJSc7Cn0KCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJtaXRCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICB2YXIgc2NvcmU9MDsKICAvLyBNQ1EgcGFydHMKICB2YXIgbWNxUGFydHM9W1AxLFAyLFAzYSxQNCxQNV07CiAgbWNxUGFydHMuZm9yRWFjaChmdW5jdGlvbihwYXJ0KXsKICAgIHBhcnQuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgICAgdmFyIHY9Z2V0TWNxQW5zKHEubiksIGl0ZW09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnEtaXRlbVtkYXRhLXFpZD0iJytxLm4rJyJdJyk7CiAgICAgIGlmKCFpdGVtKXJldHVybjsKICAgICAgaXRlbS5jbGFzc0xpc3QuYWRkKCdhbnN3ZXJlZCcpOwogICAgICAvLyBtYXJrIGNvcnJlY3QvaW5jb3JyZWN0IG9wdHMKICAgICAgaXRlbS5xdWVyeVNlbGVjdG9yQWxsKCcub3B0JykuZm9yRWFjaChmdW5jdGlvbihvKXsKICAgICAgICB2YXIgTD1vLmRhdGFzZXQubGV0dGVyOwogICAgICAgIGlmKEw9PT1xLmFucyl7by5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0LW9wdCcpfQogICAgICAgIGlmKHY9PT1MKWlmKEwhPT1xLmFucyl7by5jbGFzc0xpc3QuYWRkKCd3cm9uZy1vcHQnKX0KICAgICAgfSk7CiAgICAgIHZhciBmYj1pdGVtLnF1ZXJ5U2VsZWN0b3IoJy5mZWVkYmFjaycpOwogICAgICBpZih2PT09cS5hbnMpe3Njb3JlKys7IGl0ZW0uY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpOyBmYi50ZXh0Q29udGVudD0nXHUyNzE0IENvcnJlY3QgXHUyMDE0ICcrcS5hbnN9CiAgICAgIGVsc2V7aXRlbS5jbGFzc0xpc3QuYWRkKCd3cm9uZycpOyBmYi50ZXh0Q29udGVudD0nXHUyNzE4IFdyb25nIFx1MjAxNCBjb3JyZWN0IGFuc3dlcjogJytxLmFucyArICh2PygnICh5b3UgY2hvc2UgJyt2KycpJyk6JyAobm8gYW5zd2VyKScpfQogICAgfSk7CiAgfSk7CiAgLy8gUGFydCAzYiBzZWxlY3RzCiAgdmFyIHAzYkZiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJ0M2JGZWVkYmFjaycpOwogIHAzYkZiLmlubmVySFRNTD0nJzsKICBPYmplY3Qua2V5cyhQM2JBbnMpLmZvckVhY2goZnVuY3Rpb24ocWlkKXsKICAgIHZhciB2PWdldFNlbGVjdEFucyhxaWQpLCBjb3JyZWN0PVAzYkFuc1txaWRdOwogICAgdmFyIGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5xLXNlbGVjdFtkYXRhLXFpZD0iJytxaWQrJyJdJyk7CiAgICBpZihlbCl7ZWwuc3R5bGUuYm9yZGVyQ29sb3I9KHY9PT1jb3JyZWN0PycjMTBCOTgxJzonI0VGNDQ0NCcpOyBlbC5zdHlsZS5ib3JkZXJXaWR0aD0nMnB4JzsgZWwuc3R5bGUuYm9yZGVyU3R5bGU9J3NvbGlkJ30KICAgIHZhciBub3RlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgbm90ZS5zdHlsZS5jc3NUZXh0PSdwYWRkaW5nOjhweCAxMnB4O2JvcmRlci1yYWRpdXM6OHB4O21hcmdpbi10b3A6NnB4O2ZvbnQtc2l6ZToxMy41cHg7Zm9udC13ZWlnaHQ6NjAwOycrKHY9PT1jb3JyZWN0PydiYWNrZ3JvdW5kOnJnYmEoMTYsMTg1LDEyOSwuMTIpO2NvbG9yOiMwNjVGNDYnOidiYWNrZ3JvdW5kOnJnYmEoMjM5LDY4LDY4LC4xMCk7Y29sb3I6Izk5MUIxQicpOwogICAgbm90ZS5pbm5lckhUTUw9JzxiPlEnK3FpZCsnPC9iPjogJysodj09PWNvcnJlY3Q\/J1x1MjcxNCBDb3JyZWN0ICgnK2NvcnJlY3QrJyknOidcdTI3MTggV3JvbmcgXHUyMDE0IGNvcnJlY3Q6ICcrY29ycmVjdCsodj8nLCB5b3UgY2hvc2UgJyt2OicsIG5vIGFuc3dlcicpKTsKICAgIHAzYkZiLmFwcGVuZENoaWxkKG5vdGUpOwogICAgaWYodj09PWNvcnJlY3Qpc2NvcmUrKzsKICB9KTsKICAvLyBQYXJ0IDYKICBQNi5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgdmFyIHY9Z2V0SW5wdXRBbnMocS5uKSwgZWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmlucHV0LWJsYW5rW2RhdGEtcT0iJytxLm4rJyJdJyksIGl0ZW09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnEtaXRlbVtkYXRhLXFpZD0iJytxLm4rJyJdJyk7CiAgICBpZighZWx8fCFpdGVtKXJldHVybjsKICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnYW5zd2VyZWQnKTsKICAgIHZhciBvaz0odj09PXEuYW5zLnRvTG93ZXJDYXNlKCkpOwogICAgaWYob2spe3Njb3JlKys7IGVsLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTsgaXRlbS5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7IGl0ZW0ucXVlcnlTZWxlY3RvcignLmZlZWRiYWNrJykudGV4dENvbnRlbnQ9J1x1MjcxNCBDb3JyZWN0J30KICAgIGVsc2V7ZWwuY2xhc3NMaXN0LmFkZCgnd3JvbmcnKTsgaXRlbS5jbGFzc0xpc3QuYWRkKCd3cm9uZycpOyBpdGVtLnF1ZXJ5U2VsZWN0b3IoJy5mZWVkYmFjaycpLnRleHRDb250ZW50PSdcdTI3MTggV3JvbmcgXHUyMDE0IGNvcnJlY3Q6ICcrcS5hbnN9CiAgfSk7CiAgLy8gUGFydCA3CiAgT2JqZWN0LmtleXMoUDdBbnMpLmZvckVhY2goZnVuY3Rpb24ocWlkKXsKICAgIHZhciB2PWdldElucHV0QW5zKHFpZCksIGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5pbnB1dC1ibGFua1tkYXRhLXE9IicrcWlkKyciXScpLCBhY2NlcHRlZD1QN0Fuc1txaWRdOwogICAgaWYoIWVsKXJldHVybjsKICAgIHZhciBvaz1hY2NlcHRlZC5pbmRleE9mKHYpPj0wOwogICAgaWYob2spe3Njb3JlKys7IGVsLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKX0gZWxzZSB7ZWwuY2xhc3NMaXN0LmFkZCgnd3JvbmcnKTsgZWwudGl0bGU9J0NvcnJlY3Q6ICcrYWNjZXB0ZWQuam9pbignIC8gJyl9CiAgfSk7CiAgLy8gUGFydCA4CiAgT2JqZWN0LmtleXMoUDhBbnMpLmZvckVhY2goZnVuY3Rpb24ocWlkKXsKICAgIHZhciB2PWdldElucHV0QW5zKHFpZCksIGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5pbnB1dC1ibGFua1tkYXRhLXE9IicrcWlkKyciXScpLCBhY2NlcHRlZD1QOEFuc1txaWRdOwogICAgaWYoIWVsKXJldHVybjsKICAgIHZhciBvaz1hY2NlcHRlZC5pbmRleE9mKHYpPj0wOwogICAgaWYob2spe3Njb3JlKys7IGVsLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKX0gZWxzZSB7ZWwuY2xhc3NMaXN0LmFkZCgnd3JvbmcnKTsgZWwudGl0bGU9J0NvcnJlY3Q6ICcrYWNjZXB0ZWQuam9pbignIC8gJyl9CiAgfSk7CgogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY29yZU5vdycpLnRleHRDb250ZW50PXNjb3JlOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaW5hbFNjb3JlJykudGV4dENvbnRlbnQ9c2NvcmU7CiAgdmFyIHBjdD1NYXRoLnJvdW5kKHNjb3JlLzU1KjEwMCk7CiAgdmFyIG1zZz0nJzsKICBpZihwY3Q+PTg1KSBtc2c9J1x1ezFGM0M2fSBFeGNlbGxlbnQhIFlvdSBhcmUgd2VsbCBwcmVwYXJlZCBmb3IgdGhlIHJlYWwgS0VUIGV4YW0uJzsKICBlbHNlIGlmKHBjdD49NzApIG1zZz0nXHV7MUY0NER9IEdvb2Qgam9iISBBIGZldyBtb3JlIHRlc3RzIGFuZCB5b3Ugd2lsbCBiZSByZWFkeS4nOwogIGVsc2UgaWYocGN0Pj01MCkgbXNnPSdcdXsxRjREQX0gS2VlcCBwcmFjdGlzaW5nIFx1MjAxNCByZXZpZXcgdGhlIHdyb25nIGFuc3dlcnMgYWJvdmUuJzsKICBlbHNlIG1zZz0nXHV7MUY0QUF9IFN0YXJ0IHdpdGggdGhlIGJhc2ljcy4gUmVyZWFkIHRoZSBwYXNzYWdlcyBhbmQgdHJ5IGFnYWluLic7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHNNc2cnKS50ZXh0Q29udGVudD1tc2c7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHNCYW5uZXInKS5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7CiAgc2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzQmFubmVyJykuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidjZW50ZXInfSl9LDEyMCk7Cn0pOwoKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0QnRuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgaWYoIWNvbmZpcm0oJ1Jlc2V0IGFsbCBhbnN3ZXJzPycpKXJldHVybjsKICBsb2NhdGlvbi5yZWxvYWQoKTsKfSk7CgovLyBXcml0aW5nIHdvcmQgY291bnRlcgp2YXIgdGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyaXRpbmdBcmVhJyksd2M9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3djQ291bnRlcicpOwp0YS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsZnVuY3Rpb24oKXsKICB2YXIgdz10YS52YWx1ZS50cmltKCkuc3BsaXQoL1xzKy8pLmZpbHRlcihCb29sZWFuKS5sZW5ndGg7CiAgd2MudGV4dENvbnRlbnQ9dysnIHdvcmRzIFx1MDBCNyB0YXJnZXQgMjVcdTIwMTMzNSc7CiAgd2MuY2xhc3NMaXN0LnJlbW92ZSgnb2snLCdvdmVyJyk7CiAgaWYodz49MjUpaWYodzw9MzUpd2MuY2xhc3NMaXN0LmFkZCgnb2snKTsKICBlbHNlIGlmKHc+MzUpd2MuY2xhc3NMaXN0LmFkZCgnb3ZlcicpOwp9KTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbXBsZVRvZ2dsZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW1wbGVCb3gnKS5jbGFzc0xpc3QudG9nZ2xlKCdzaG93Jyk7Cn0pOwoKLy8gPT09PT0gU0hPVyBBTlNXRVIgUEVSLVEgRkVBVFVSRSA9PT09PQpmdW5jdGlvbiBnZXRBbnNGb3JRKG4pewogIGlmKG4+PTEpIGlmKG48PTUpIHJldHVybiAoUDEuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uPT09bn0pfHx7fSkuYW5zOwogIGlmKG4+PTYpIGlmKG48PTEwKSByZXR1cm4gKFAyLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubj09PW59KXx8e30pLmFuczsKICBpZihuPj0xMSkgaWYobjw9MTUpIHJldHVybiAoUDNhLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubj09PW59KXx8e30pLmFuczsKICBpZihuPj0yMSkgaWYobjw9MjcpIHJldHVybiAoUDQuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uPT09bn0pfHx7fSkuYW5zOwogIGlmKG4+PTI4KSBpZihuPD0zNSkgcmV0dXJuIChQNS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1ufSl8fHt9KS5hbnM7CiAgcmV0dXJuIG51bGw7Cn0KLy8gTUNRIHEtaXRlbXM6IGFwcGVuZCBTaG93IEFuc3dlciBidXR0b24KZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnEtaXRlbScpLmZvckVhY2goZnVuY3Rpb24oaXRlbSl7CiAgaWYoaXRlbS5xdWVyeVNlbGVjdG9yKCcuc2hvdy1hbnMtYnRuJykpIHJldHVybjsKICB2YXIgcWlkPXBhcnNlSW50KGl0ZW0uZGF0YXNldC5xaWQpOwogIHZhciBidG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgYnRuLmNsYXNzTmFtZT0nc2hvdy1hbnMtYnRuJzsgYnRuLnR5cGU9J2J1dHRvbic7CiAgYnRuLmlubmVySFRNTD0nXHV7MUY0NDF9IFNob3cgQW5zd2VyJzsKICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICB2YXIgaXNQNj1mYWxzZTsgaWYocWlkPj0zNikgaWYocWlkPD00MCkgaXNQNj10cnVlOwogICAgaWYoaXNQNil7CiAgICAgIC8vIFBhcnQgNiBzcGVsbCBpbnB1dAogICAgICB2YXIgcDZxPVA2LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubj09PXFpZH0pOwogICAgICB2YXIgaW5wdXQ9aXRlbS5xdWVyeVNlbGVjdG9yKCcuaW5wdXQtYmxhbmsnKTsKICAgICAgaWYoaW5wdXQpIGlmKHA2cSl7aW5wdXQudmFsdWU9cDZxLmFuczsgaW5wdXQuY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpOyBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7fQogICAgICB2YXIgZmI2PWl0ZW0ucXVlcnlTZWxlY3RvcignLmZlZWRiYWNrJyk7CiAgICAgIGlmKGZiNikgaWYocDZxKXtpdGVtLmNsYXNzTGlzdC5hZGQoJ2Fuc3dlcmVkJyk7IGl0ZW0uY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpOyBmYjYudGV4dENvbnRlbnQ9J1x1ezFGNDQxfSBBbnN3ZXI6ICcrcDZxLmFuczt9CiAgICB9IGVsc2UgewogICAgICB2YXIgYW5zPWdldEFuc0ZvclEocWlkKTsKICAgICAgaWYoIWFucykgcmV0dXJuOwogICAgICAvLyBoaWdobGlnaHQgY29ycmVjdCBvcHRpb24KICAgICAgdmFyIGNvcnJlY3RPcHQ9aXRlbS5xdWVyeVNlbGVjdG9yKCcub3B0W2RhdGEtbGV0dGVyPSInK2FucysnIl0nKTsKICAgICAgaWYoY29ycmVjdE9wdCl7Y29ycmVjdE9wdC5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0LW9wdCcpO30KICAgICAgLy8gc2ltdWxhdGUgY2xpY2sgc28gdXBkYXRlUHJvZ3Jlc3MgZmlyZXMKICAgICAgdmFyIGZiPWl0ZW0ucXVlcnlTZWxlY3RvcignLmZlZWRiYWNrJyk7CiAgICAgIGlmKGZiKXtpdGVtLmNsYXNzTGlzdC5hZGQoJ2Fuc3dlcmVkJyk7IGZiLnN0eWxlLmJhY2tncm91bmQ9J3JnYmEoMTYsMTg1LDEyOSwuMTIpJzsgZmIuc3R5bGUuY29sb3I9JyMwNjVGNDYnOyBmYi50ZXh0Q29udGVudD0nXHV7MUY0NDF9IEFuc3dlcjogJythbnM7fQogICAgfQogICAgYnRuLmRpc2FibGVkPXRydWU7CiAgfSk7CiAgaXRlbS5hcHBlbmRDaGlsZChidG4pOwp9KTsKLy8gUGFydCAzYiBzZWxlY3RzOiBhcHBlbmQgaW5saW5lIFNob3cgQW5zd2VyIGJ1dHRvbgpbMTYsMTcsMTgsMTksMjBdLmZvckVhY2goZnVuY3Rpb24ocWlkKXsKICB2YXIgc2VsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5xLXNlbGVjdFtkYXRhLXFpZD0iJytxaWQrJyJdJyk7CiAgaWYoIXNlbCkgcmV0dXJuOwogIHZhciBidG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgYnRuLmNsYXNzTmFtZT0nc2hvdy1hbnMtYnRuLWlubGluZSc7IGJ0bi50eXBlPSdidXR0b24nOwogIHZhciBhbnM9UDNiQW5zW3FpZF07CiAgYnRuLmlubmVySFRNTD0nXHV7MUY0NDF9ICcrYW5zOwogIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHNlbC52YWx1ZT1hbnM7IHNlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJykpOwogICAgc2VsLnN0eWxlLmJvcmRlckNvbG9yPScjMTBCOTgxJzsgc2VsLnN0eWxlLmJvcmRlcldpZHRoPScycHgnOyBzZWwuc3R5bGUuYm9yZGVyU3R5bGU9J3NvbGlkJzsKICAgIGJ0bi5kaXNhYmxlZD10cnVlOwogIH0pOwogIHNlbC5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2FmdGVyZW5kJywgYnRuKTsKfSk7Ci8vIFBhcnQgNyAmIDggaW5wdXRzOiBhcHBlbmQgaW5saW5lIFNob3cgQW5zd2VyIGJ1dHRvbgpmb3IodmFyIHFpPTQxO3FpPD01NTtxaSsrKXsKICAoZnVuY3Rpb24ocWlkKXsKICAgIHZhciBpbnA9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmlucHV0LWJsYW5rW2RhdGEtcT0iJytxaWQrJyJdJyk7CiAgICBpZighaW5wKSByZXR1cm47CiAgICB2YXIgYW5zPShxaWQ8PTUwKT9QN0Fuc1txaWRdWzBdOlA4QW5zW3FpZF1bMF07CiAgICB2YXIgYnRuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgYnRuLmNsYXNzTmFtZT0nc2hvdy1hbnMtYnRuLWlubGluZSc7IGJ0bi50eXBlPSdidXR0b24nOwogICAgYnRuLmlubmVySFRNTD0nXHV7MUY0NDF9ICcrYW5zOwogICAgYnRuLnRpdGxlPSdDbGljayB0byBmaWxsOiAnK2FuczsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICAgICAgaW5wLnZhbHVlPWFuczsgaW5wLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTsgaW5wLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTsKICAgICAgYnRuLmRpc2FibGVkPXRydWU7CiAgICB9KTsKICAgIGlucC5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2FmdGVyZW5kJywgYnRuKTsKICB9KShxaSk7Cn0KCn0pKCk7Cg=='));<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>All English 4U Grammar IELTS TOEFL Cambridge CELPIP Dictation Back Grammar IELTS TOEFL Cambridge CELPIP Dictation Cambridge English &#183; Key (KET) KET 3 &#8212; Test 2Reading &amp; Writing Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn [&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-3843","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/3843","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=3843"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/3843\/revisions"}],"predecessor-version":[{"id":5913,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/3843\/revisions\/5913"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=3843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}