{"id":1938,"date":"2026-06-08T12:51:23","date_gmt":"2026-06-08T12:51:23","guid":{"rendered":"https:\/\/allenglish4u.com\/cambridge-ket-1-test-3-rw\/"},"modified":"2026-07-05T02:44:35","modified_gmt":"2026-07-05T02:44:35","slug":"cambridge-ket-1-test-3-rw","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/cambridge-ket-1-test-3-rw\/","title":{"rendered":"Cambridge KET 1 \u2014 Test 3 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 1 &#8212; Test 3<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>TOMATO JUICE<br><sub style=\"font-size:11px;font-weight:600;font-style:italic\">10% extra = FREE<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">B<\/span>NO<br>RIGHT TURN<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">C<\/span>ADMISSION<br><sub style=\"font-size:10px;font-weight:600\">Schoolchildren, Students<br>&amp; Over-65s &#8212; &#163;6.00 \/ &#163;3.00<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">D<\/span>Pat&#8217;s Pizza Place<br><sub style=\"font-size:11px;font-weight:600;font-style:italic\">Open 12 noon till late,<br>seven days a week<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">E<\/span>Beach Umbrellas<br>For Hire<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">F<\/span>YELLOWBIRD TAXIS<br><sub style=\"font-size:11px;font-weight:600;font-style:italic\">24-hour service<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">G<\/span>7.30 p.m. &#8211; 9.30 p.m.<br><sub style=\"font-size:11px;font-weight:600\">Adult Swimming Only<\/sub><\/div>\n      <div class=\"notice\" style=\"opacity:.55\"><span class=\"notice-letter\">H<\/span>NO SMOKING<br>SECTION<br><sub style=\"font-size:10px;color:var(--muted);font-style:italic;font-weight:600\">(example)<\/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\">Going to a restaurant<\/h2>\n        <p>Read the sentences (6&#8211;10) about going to a restaurant. 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> A new restaurant has just <u>opened<\/u> near our house. <b>(Answer: C)<\/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> What&#8217;s the time? &#8212; <b>B<\/b> Half past eight.\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\">Telephone conversation: Maria &#038; Tom<\/h2>\n        <p>Complete the telephone conversation. What does Tom say to Maria? 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>Maria:<\/b> Hello, Tom. This is Maria.<\/p>\n      <p><b>Tom:<\/b> <span style=\"color:var(--accent-1);font-weight:700\">(Example: E)<\/span><\/p>\n      <p><b>Maria:<\/b> Fine. Thank you for the party last night. I had a great time.<\/p>\n      <p><b>Tom:<\/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>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Maria:<\/b> Tom, did I leave my coat at your house last night?<\/p>\n      <p><b>Tom:<\/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>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Maria:<\/b> It&#8217;s green with a black collar.<\/p>\n      <p><b>Tom:<\/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>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Maria:<\/b> I&#8217;m going to work now. Can I come and get it this evening?<\/p>\n      <p><b>Tom:<\/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>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Maria:<\/b> I&#8217;ll come at 6.30.<\/p>\n      <p><b>Tom:<\/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>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Maria:<\/b> OK. Goodbye.<\/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, two people left their coats behind. What colour is yours?<\/div>\n      <div><b>B<\/b> You&#8217;ll have to come before 7.15. I&#8217;m going out then.<\/div>\n      <div><b>C<\/b> Yes, there&#8217;s a green one here.<\/div>\n      <div><b>D<\/b> What time is it?<\/div>\n      <div style=\"opacity:.5\"><b>E<\/b> Hi Maria, how are you? <i>(example)<\/i><\/div>\n      <div><b>F<\/b> All right, see you later.<\/div>\n      <div><b>G<\/b> It&#8217;s a beautiful coat, isn&#8217;t it?<\/div>\n      <div><b>H<\/b> Good. I&#8217;m glad you enjoyed it.<\/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\">Visit the Edinburgh Festival!<\/h2>\n        <p>Read the article about the Edinburgh Festival. 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>VISIT THE EDINBURGH FESTIVAL!<\/h3>\n      <p>Every year, thousands of people come to Edinburgh, the capital city of Scotland, to be part of the Edinburgh Festival. For three weeks every August and September the city is filled with actors and artists from all over the world. They come to Edinburgh for the biggest arts festival in Britain. During this time the streets of the city are alive with music and dance from early morning until late at night. You can even see artists painting pictures on the streets. One of the best parts of the Festival is the &#8216;Fringe&#8217;, where students do comedy shows in small halls and caf&#233;s.<\/p>\n      <p>Tens of thousands of tourists come to the Festival to see new films and plays and hear music played by famous musicians. This year, you can see over five hundred performances with actors from more than forty countries.<\/p>\n      <p>The tickets for these performances are quite cheap and it is usually easier to see your favourite star in Edinburgh than it is in London. So come to Edinburgh next summer, but remember it can be difficult to find a room, so why not book your hotel now!<\/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> Edinburgh is the capital of Scotland. &#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\">The Rhino &#8212; gap fill<\/h2>\n        <p>Read the information about rhinos. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"cloze-passage\">\n      <h3>THE RHINO<\/h3>\n      <p>There <u><b style=\"color:var(--accent-1)\">are<\/b><\/u> five different types of rhino in the world today. The Black and White Rhino live in <span data-q=\"28\" class=\"cloze-blank\">[28]<\/span> open fields of Africa. The others live in forests in Asia.<\/p>\n      <p>All rhinos have big, heavy bodies. Their skin is very hard and they have very <span data-q=\"29\" class=\"cloze-blank\">[29]<\/span> hair. The great body <span data-q=\"30\" class=\"cloze-blank\">[30]<\/span> the rhino stands <span data-q=\"31\" class=\"cloze-blank\">[31]<\/span> four short legs. Each foot has three toes. They usually walk very <span data-q=\"32\" class=\"cloze-blank\">[32]<\/span>, but they can run at 50 kilometres an hour. Rhinos are usually quiet and calm animals, and they only <span data-q=\"33\" class=\"cloze-blank\">[33]<\/span> grass and other plants.<\/p>\n      <p>A baby rhino weighs 40 kilos when it is born. It has been inside its mother <span data-q=\"34\" class=\"cloze-blank\">[34]<\/span> about fifteen months. An adult rhino weighs over 200 kilos and may <span data-q=\"35\" class=\"cloze-blank\">[35]<\/span> to be 50 years old.<\/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\">At the beach &#8212; spell the word<\/h2>\n        <p>Read the descriptions (36&#8211;40) of things you can see at the beach. The first letter is given. Type the word. <b>Example (0):<\/b> You lie on this on the beach. &#8594; <b>towel<\/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 letter from Kostas to his friend John. Type <b>ONE word<\/b> for each space (41&#8211;50). (Example: <i>me<\/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:'Courier New',monospace\">\n        <p style=\"text-align:right;font-style:normal\">17 Green Street<br>Camden<br>London<br><br>29th August 2002<\/p>\n        <p>Dear John,<\/p>\n        <p>Thank you for helping (Example: <u>me<\/u>) with my English. You are <input class=\"input-blank\" data-q=\"41\" type=\"text\"> very good teacher. I enjoyed my stay <input class=\"input-blank\" data-q=\"42\" type=\"text\"> Cambridge.<\/p>\n        <p>Now I am staying at my brother&#8217;s flat. <input class=\"input-blank\" data-q=\"43\" type=\"text\"> is studying to be a doctor. I will stay <input class=\"input-blank\" data-q=\"44\" type=\"text\"> him for two weeks and then go home <input class=\"input-blank\" data-q=\"45\" type=\"text\"> Greece.<\/p>\n        <p>I like London very <input class=\"input-blank\" data-q=\"46\" type=\"text\">. We <input class=\"input-blank\" data-q=\"47\" type=\"text\"> to Regents Park by bus yesterday. It <input class=\"input-blank\" data-q=\"48\" type=\"text\"> very sunny and we had a good time.<\/p>\n        <p>Tonight, I am <input class=\"input-blank\" data-q=\"49\" type=\"text\"> to see a film with my brother and some <input class=\"input-blank\" data-q=\"50\" type=\"text\"> his friends.<\/p>\n        <p>I&#8217;ll write again from Greece.<\/p>\n        <p>Best wishes,<\/p>\n        <p><i>Kostas<\/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\">Young People&#8217;s Camp &#8212; application form<\/h2>\n        <p>Read the advertisement and the letter about the Young People&#8217;s Camp. Fill in the information on the Application Form (51&#8211;55).<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:18px 20px;font-size:14.5px;line-height:1.7;margin-bottom:18px\">\n      <div style=\"text-align:center;border:2px solid var(--accent-1);border-radius:12px;padding:14px 16px;margin-bottom:16px;background:var(--light-1)\">\n        <div class=\"serif\" style=\"font-size:21px;color:var(--accent-2);margin-bottom:6px\">Young People&#8217;s Camp<\/div>\n        <div style=\"font-weight:700\">3&#8211;9 August &nbsp;<span style=\"color:var(--muted)\">OR<\/span>&nbsp; 10&#8211;16 August<\/div>\n        <div style=\"font-weight:600;margin:4px 0\">Ages 12&#8211;16<\/div>\n        <div style=\"font-weight:700;color:var(--accent-1)\">Horse-riding &#183; Swimming &#183; Sports<\/div>\n        <div style=\"font-size:13px;color:var(--muted);margin-top:6px\">Write to: Mrs Smith, Sunnysands Campsite, Westsea<\/div>\n      <\/div>\n      <p style=\"text-align:right;font-style:italic;color:var(--muted);margin-bottom:8px\">Crow Cottage, Bradley<\/p>\n      <p style=\"margin-bottom:8px\">Dear Mrs Smith,<\/p>\n      <p style=\"margin-bottom:8px\">We would like our daughter, Claire, to have a place at the camp at the beginning of August. She is thirteen years old. She likes swimming and playing the piano. Her best friend, Rosie Brown, wants to come to the camp, too.<\/p>\n      <p style=\"margin-bottom:0\"><i>Linda and Derek Drake<\/i><\/p>\n    <\/div>\n\n    <div class=\"form-card\">\n      <h4>Young People&#8217;s Camp &#8212; Application Form<\/h4>\n      <div class=\"form-row\"><label>Name:<\/label><span style=\"font-weight:600;color:var(--accent-2);font-style:italic\">Claire Drake<\/span><\/div>\n      <div class=\"form-row\"><label>Age next birthday:<\/label><input class=\"input-blank\" data-q=\"51\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Address:<\/label><input class=\"input-blank\" data-q=\"52\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Hobbies:<\/label><input class=\"input-blank\" data-q=\"53\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Dates:<\/label><input class=\"input-blank\" data-q=\"54\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Would like to be in the same tent as:<\/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 Eric<\/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 Eric. Write a note to Eric and answer his 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          I&#8217;ll make the meal tonight.<br>\n          Would you like meat or fish?<br>\n          What vegetables do you want?<br>\n          What time will you be home?<br>\n          Eric\n        <\/div>\n        Your note must include:\n        <ul>\n          <li>whether you prefer <b>meat or fish<\/b><\/li>\n          <li>the <b>vegetables<\/b> you want (or &#8216;any vegetables&#8217; \/ &#8216;no vegetables&#8217;)<\/li>\n          <li>the <b>time<\/b> you will be home<\/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\">Sample answers &#8212; 3 examples covering different scenarios<\/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; meat + named vegetables (30 words)<\/b>\n          <p style=\"margin-top:6px\">Hi Eric,<\/p>\n          <p>Thanks for cooking tonight! I&#8217;d really like meat, please. For vegetables, I&#8217;d love some carrots and potatoes. I&#8217;ll be home at about seven o&#8217;clock. See you soon!<\/p>\n          <p>Sam<\/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; fish + any vegetables (28 words)<\/b>\n          <p style=\"margin-top:6px\">Dear Eric,<\/p>\n          <p>Thank you! I would prefer fish tonight, please. I&#8217;m happy with any vegetables you choose. I should be home by half past six. Can&#8217;t wait!<\/p>\n          <p>Alex<\/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; meat + no vegetables (29 words)<\/b>\n          <p style=\"margin-top:6px\">Hi Eric,<\/p>\n          <p>Thanks a lot for making dinner. I&#8217;d like meat rather than fish, and no vegetables for me, please. I&#8217;ll get home at around eight tonight. Thank you!<\/p>\n          <p>Jo<\/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 1 Test 3 &#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('CihmdW5jdGlvbigpewovLyA9PT09PSBIZWFkZXIgc2Nyb2xsID09PT09CnZhciBoZHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hkcicpOwp2YXIgc2V0U29saWQ9ZnVuY3Rpb24oKXtpZih3aW5kb3cuc2Nyb2xsWT40MCloZHIuY2xhc3NMaXN0LmFkZCgnc29saWQnKTtlbHNlIGhkci5jbGFzc0xpc3QucmVtb3ZlKCdzb2xpZCcpfTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsc2V0U29saWQse3Bhc3NpdmU6dHJ1ZX0pO3NldFNvbGlkKCk7CgovLyBkcmF3ZXIKdmFyIGhhbWI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hhbWInKSxkcmF3ZXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RyYXdlcicpLGRDbG9zZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJhd2VyQ2xvc2UnKTsKaWYoaGFtYiloYW1iLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe2RyYXdlci5jbGFzc0xpc3QuYWRkKCdvcGVuJyl9KTsKaWYoZENsb3NlKWRDbG9zZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtkcmF3ZXIuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpfSk7CmlmKGRyYXdlcilkcmF3ZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0PT09ZHJhd2VyKWRyYXdlci5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyl9KTsKCi8vID09PT09IERBVEEgPT09PT0KLy8gTUNRIHF1ZXN0aW9uczogZWFjaCBlbnRyeSA9IHtuLCB0ZXh0LCBvcHRzOlt7bCx0fV0sIGFuc30KdmFyIFAxID0gWwogIHtuOjEsdGV4dDonWW91IGNhbiBnZXQgYSBjYXIgYXQgYW55IHRpbWUuJyxvcHRzOidBQkNERUZHJyxhbnM6J0YnfSwKICB7bjoyLHRleHQ6J1lvdSBwYXkgdGhlIHNhbWUgcHJpY2UgYnV0IHlvdSBnZXQgbW9yZS4nLG9wdHM6J0FCQ0RFRkcnLGFuczonQSd9LAogIHtuOjMsdGV4dDonSW4gdGhlIGV2ZW5pbmcsIGNoaWxkcmVuIG1heSBub3QgY29tZSBpbi4nLG9wdHM6J0FCQ0RFRkcnLGFuczonRyd9LAogIHtuOjQsdGV4dDonVGhlcmUgYXJlIHR3byBwcmljZXMgZm9yIHRpY2tldHMuJyxvcHRzOidBQkNERUZHJyxhbnM6J0MnfSwKICB7bjo1LHRleHQ6J1lvdSBjYW4gYnV5IGZvb2QgaGVyZSBvbiBTdW5kYXkuJyxvcHRzOidBQkNERUZHJyxhbnM6J0QnfSwKXTsKdmFyIFAyID0gWwogIHtuOjYsdGV4dDonT25lIGRheSwgd2UgZGVjaWRlZCB0byBnbyB0aGVyZSBmb3IgYSBfX19fXyAuJyxvcHRzOltbJ0EnLCdwbGF0ZSddLFsnQicsJ21lYWwnXSxbJ0MnLCdkaXNoJ11dLGFuczonQid9LAogIHtuOjcsdGV4dDonRmlyc3Qgd2UgdGVsZXBob25lZCB0byBfX19fXyBhIHRhYmxlLicsb3B0czpbWydBJywnYm9vayddLFsnQicsJ2tlZXAnXSxbJ0MnLCd0YWtlJ11dLGFuczonQSd9LAogIHtuOjgsdGV4dDonVGhlIF9fX19fIHdhcyB2ZXJ5IGxvbmcgc28gaXQgd2FzIGRpZmZpY3VsdCB0byBjaG9vc2Ugd2hhdCB0byBlYXQuJyxvcHRzOltbJ0EnLCdhZHZlcnRpc2VtZW50J10sWydCJywncHJvZ3JhbW1lJ10sWydDJywnbWVudSddXSxhbnM6J0MnfSwKICB7bjo5LHRleHQ6J1RoZSBmb29kIHdhcyB2ZXJ5IF9fX19fIHNvIGV2ZXJ5b25lIGVuam95ZWQgaXQuJyxvcHRzOltbJ0EnLCdnb29kJ10sWydCJywnc3dlZXQnXSxbJ0MnLCdncmVhdCddXSxhbnM6J0EnfSwKICB7bjoxMCx0ZXh0OidXZSB3ZXJlIHBsZWFzZWQgd2hlbiB3ZSBnb3QgdGhlIGJpbGwgYmVjYXVzZSBpdCB3YXMgcXVpdGUgX19fX18gLicsb3B0czpbWydBJywnbGl0dGxlJ10sWydCJywnY2hlYXAnXSxbJ0MnLCdzbWFsbCddXSxhbnM6J0InfSwKXTsKdmFyIFAzYSA9IFsKICB7bjoxMSx0ZXh0OiJXaHkgZG9uJ3QgeW91IGFzayBTYW5kcmE\/IixvcHRzOltbJ0EnLCdJIGhvcGUgc28uJ10sWydCJywnTmV2ZXIgbWluZC4nXSxbJ0MnLCJUaGF0J3MgYSBnb29kIGlkZWEuIl1dLGFuczonQyd9LAogIHtuOjEyLHRleHQ6J0NvbmdyYXR1bGF0aW9ucyEnLG9wdHM6W1snQScsIkknbSBzb3JyeS4iXSxbJ0InLCdUaGFuayB5b3UuJ10sWydDJywnV2hhdCBhIHBpdHkhJ11dLGFuczonQid9LAogIHtuOjEzLHRleHQ6J0hvdyBpcyB5b3VyIHNvbj8nLG9wdHM6W1snQScsJ0ZpbmUsIHRoYW5rcy4nXSxbJ0InLCdGb3VyIG1vbnRocyBvbGQuJ10sWydDJywnV2l0aCBoaXMgZmF0aGVyLiddXSxhbnM6J0EnfSwKICB7bjoxNCx0ZXh0OidDYW4gSSBoZWxwIHlvdT8nLG9wdHM6W1snQScsIkF0IHR3byBvJ2Nsb2NrLiJdLFsnQicsJ0kgY2FuIGhlbHAgeW91LiddLFsnQycsJ1llcywgcGxlYXNlLiddXSxhbnM6J0MnfSwKICB7bjoxNSx0ZXh0OiJJJ2QgbGlrZSB0byB0cnkgdGhvc2Ugc2hvZXMgb24sIHBsZWFzZS4iLG9wdHM6W1snQScsJ1doYXQgc2l6ZSBhcmUgeW91PyddLFsnQicsJ0FyZSB0aGV5IGJsYWNrPyddLFsnQycsJ0RvIHlvdSBsaWtlIGl0PyddXSxhbnM6J0EnfSwKXTsKdmFyIFAzYkFucyA9IHsxNjonSCcsMTc6J0EnLDE4OidDJywxOTonQicsMjA6J0YnfTsKdmFyIFA0ID0gWwogIHtuOjIxLHRleHQ6J1RoZSBFZGluYnVyZ2ggRmVzdGl2YWwgaXMgYSBtb250aCBsb25nLicsb3B0czpbWydBJywnUmlnaHQnXSxbJ0InLCdXcm9uZyddLFsnQycsIkRvZXNuJ3Qgc2F5Il1dLGFuczonQid9LAogIHtuOjIyLHRleHQ6J1RoZSBFZGluYnVyZ2ggRmVzdGl2YWwgaXMgaW4gT2N0b2Jlci4nLG9wdHM6W1snQScsJ1JpZ2h0J10sWydCJywnV3JvbmcnXSxbJ0MnLCJEb2Vzbid0IHNheSJdXSxhbnM6J0InfSwKICB7bjoyMyx0ZXh0OidBY3RvcnMgY29tZSB0byB0aGUgRWRpbmJ1cmdoIEZlc3RpdmFsIGZyb20gbG90cyBvZiBkaWZmZXJlbnQgY291bnRyaWVzLicsb3B0czpbWydBJywnUmlnaHQnXSxbJ0InLCdXcm9uZyddLFsnQycsIkRvZXNuJ3Qgc2F5Il1dLGFuczonQSd9LAogIHtuOjI0LHRleHQ6J1lvdSBjYW4gaGVhciBtdXNpYyBhbGwgZGF5Licsb3B0czpbWydBJywnUmlnaHQnXSxbJ0InLCdXcm9uZyddLFsnQycsIkRvZXNuJ3Qgc2F5Il1dLGFuczonQSd9LAogIHtuOjI1LHRleHQ6J01vcmUgdGhhbiB0ZW4gdGhvdXNhbmQgc3R1ZGVudHMgY29tZSB0byB0aGUgRWRpbmJ1cmdoIEZlc3RpdmFsIGV2ZXJ5IHllYXIuJyxvcHRzOltbJ0EnLCdSaWdodCddLFsnQicsJ1dyb25nJ10sWydDJywiRG9lc24ndCBzYXkiXV0sYW5zOidDJ30sCiAge246MjYsdGV4dDonSXQgaXMgZXhwZW5zaXZlIHRvIGdvIHRvIHRoZSB0aGVhdHJlIGluIEVkaW5idXJnaC4nLG9wdHM6W1snQScsJ1JpZ2h0J10sWydCJywnV3JvbmcnXSxbJ0MnLCJEb2Vzbid0IHNheSJdXSxhbnM6J0InfSwKICB7bjoyNyx0ZXh0OidJdCBpcyB1c3VhbGx5IG1vcmUgZGlmZmljdWx0IHRvIHNlZSBmYW1vdXMgYWN0b3JzIGluIExvbmRvbiB0aGFuIGluIEVkaW5idXJnaC4nLG9wdHM6W1snQScsJ1JpZ2h0J10sWydCJywnV3JvbmcnXSxbJ0MnLCJEb2Vzbid0IHNheSJdXSxhbnM6J0EnfSwKXTsKdmFyIFA1ID0gWwogIHtuOjI4LG9wdHM6W1snQScsJ3RoZXNlJ10sWydCJywndGhlJ10sWydDJywnYW4nXV0sYW5zOidCJ30sCiAge246Mjksb3B0czpbWydBJywnbGl0dGxlJ10sWydCJywnbWFueSddLFsnQycsJ2ZldyddXSxhbnM6J0EnfSwKICB7bjozMCxvcHRzOltbJ0EnLCd0byddLFsnQicsJ29mJ10sWydDJywnZm9yJ11dLGFuczonQid9LAogIHtuOjMxLG9wdHM6W1snQScsJ29uJ10sWydCJywnaW4nXSxbJ0MnLCdhdCddXSxhbnM6J0EnfSwKICB7bjozMixvcHRzOltbJ0EnLCdzbG93J10sWydCJywnc2xvd2VyJ10sWydDJywnc2xvd2x5J11dLGFuczonQyd9LAogIHtuOjMzLG9wdHM6W1snQScsJ2VhdCddLFsnQicsJ2VhdHMnXSxbJ0MnLCdhdGUnXV0sYW5zOidBJ30sCiAge246MzQsb3B0czpbWydBJywnc2luY2UnXSxbJ0InLCdkdXJpbmcnXSxbJ0MnLCdmb3InXV0sYW5zOidDJ30sCiAge246MzUsb3B0czpbWydBJywnbGl2ZXMnXSxbJ0InLCdsaXZpbmcnXSxbJ0MnLCdsaXZlJ11dLGFuczonQyd9LApdOwp2YXIgUDYgPSBbCiAge246MzYsdGV4dDonWW91IGNhbiBoYXZlIGEgcmlkZSBvbiB0aGUgd2F0ZXIgaW4gdGhpcy4nLGZpcnN0OidiJyxhbnM6J2JvYXQnfSwKICB7bjozNyx0ZXh0OidZb3UgbWF5IHNlZSB0aGVzZSBzd2ltbWluZyBpbiB0aGUgd2F0ZXIuJyxmaXJzdDonZicsYW5zOidmaXNoJ30sCiAge246MzgsdGV4dDonWW91IHB1dCB0aGVzZSBvbiB3aGVuIHRoZSBzdW4gaXMgdG9vIHN0cm9uZyBmb3IgeW91ciBleWVzLicsZmlyc3Q6J3MnLGFuczonc3VuZ2xhc3Nlcyd9LAogIHtuOjM5LHRleHQ6J1Blb3BsZSBlbmpveSB0aHJvd2luZyBhbmQgY2F0Y2hpbmcgdGhpcy4nLGZpcnN0OidiJyxhbnM6J2JhbGwnfSwKICB7bjo0MCx0ZXh0OidZb3UgY2FuIG1ha2UgdGhpcyB3aXRoIGJyZWFkIGF0IGhvbWUgYW5kIGVhdCBpdCBvbiB0aGUgYmVhY2guJyxmaXJzdDoncycsYW5zOidzYW5kd2ljaCd9LApdOwovLyBQYXJ0IDcgXHUyMDE0IGxldHRlciBjbG96ZTogYWNjZXB0ZWQgYW5zd2Vycwp2YXIgUDdBbnMgPSB7CiAgNDE6WydhJ10sCiAgNDI6WydpbicsJ25lYXInXSwKICA0MzpbJ2hlJ10sCiAgNDQ6Wyd3aXRoJ10sCiAgNDU6Wyd0byddLAogIDQ2OlsnbXVjaCddLAogIDQ3Olsnd2VudCcsJ3RyYXZlbGxlZCcsJ3RyYXZlbGVkJ10sCiAgNDg6Wyd3YXMnXSwKICA0OTpbJ2dvaW5nJywncGxhbm5pbmcnXSwKICA1MDpbJ29mJ10sCn07Ci8vIFBhcnQgOAp2YXIgUDhBbnMgPSB7CiAgNTE6WycxNCcsJ2ZvdXJ0ZWVuJywnMTQgeWVhcnMnLCdmb3VydGVlbiB5ZWFycycsJzE0IHllYXJzIG9sZCcsJ2ZvdXJ0ZWVuIHllYXJzIG9sZCcsJygxNCknLCcxNCAoeWVhcnMpIChvbGQpJ10sCiAgNTI6Wydjcm93IGNvdHRhZ2UsIGJyYWRsZXknLCdjcm93IGNvdHRhZ2UgYnJhZGxleScsJ2Nyb3cgY290dGFnZScsJ2JyYWRsZXknXSwKICA1MzpbJ3N3aW1taW5nIGFuZCBwbGF5aW5nIHRoZSBwaWFubycsJ3N3aW1taW5nIGFuZCB0aGUgcGlhbm8nLCdzd2ltbWluZyBhbmQgcGxheWluZyBwaWFubycsJ3N3aW1taW5nIGFuZCBwaWFubycsJ3N3aW1taW5nLCBwbGF5aW5nIHRoZSBwaWFubycsJ3N3aW1taW5nIGFuZCBwbGF5aW5nIHRoZSBwaWFuby4nLCdzd2ltbWluZyBhbmQgcGxheWluZyBwaWFuby4nXSwKICA1NDpbJzMtOSBhdWd1c3QnLCczXHUyMDEzOSBhdWd1c3QnLCczIC0gOSBhdWd1c3QnLCczIHRvIDkgYXVndXN0JywnMy05IGF1ZycsJzMgOSBhdWd1c3QnXSwKICA1NTpbJ3Jvc2llIGJyb3duJywncm9zaWUnLCdicm93biddCn07CgovLyA9PT09PSBSZW5kZXJpbmcgPT09PT0KZnVuY3Rpb24gcmVuZGVyTUNRKGxpc3RFbCwgZGF0YSl7CiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgdmFyIGRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5jbGFzc05hbWU9J3EtaXRlbSc7IGRpdi5kYXRhc2V0LnFpZD1xLm47CiAgICB2YXIgb3B0c0hUTUw9Jyc7CiAgICBpZihBcnJheS5pc0FycmF5KHEub3B0cykpewogICAgICBxLm9wdHMuZm9yRWFjaChmdW5jdGlvbihvKXsKICAgICAgICBvcHRzSFRNTCArPSAnPGxhYmVsIGNsYXNzPSJvcHQiIGRhdGEtbGV0dGVyPSInK29bMF0rJyI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJxJytxLm4rJyIgdmFsdWU9Iicrb1swXSsnIj48c3BhbiBjbGFzcz0ib3B0LWxldHRlciI+JytvWzBdKyc8L3NwYW4+ICcrZXNjYXBlSHRtbChvWzFdKSsnPC9sYWJlbD4nOwogICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgIC8vIHN0cmluZyBvZiBsZXR0ZXJzIChQMSkKICAgICAgZm9yKHZhciBpPTA7aTxxLm9wdHMubGVuZ3RoO2krKyl7CiAgICAgICAgdmFyIEw9cS5vcHRzW2ldOwogICAgICAgIG9wdHNIVE1MICs9ICc8bGFiZWwgY2xhc3M9Im9wdCIgZGF0YS1sZXR0ZXI9IicrTCsnIj48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InEnK3EubisnIiB2YWx1ZT0iJytMKyciPjxzcGFuIGNsYXNzPSJvcHQtbGV0dGVyIj4nK0wrJzwvc3Bhbj48L2xhYmVsPic7CiAgICAgIH0KICAgIH0KICAgIGRpdi5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icS10ZXh0Ij48YiBjbGFzcz0icW4iPicrcS5uKycuPC9iPjxzcGFuPicrZXNjYXBlSHRtbChxLnRleHQpKyc8L3NwYW4+PC9kaXY+JysKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0icS1vcHRzIj4nK29wdHNIVE1MKyc8L2Rpdj4nKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmZWVkYmFjayI+PC9kaXY+JzsKICAgIGxpc3RFbC5hcHBlbmRDaGlsZChkaXYpOwogIH0pOwp9CmZ1bmN0aW9uIGVzY2FwZUh0bWwocyl7cmV0dXJuIFN0cmluZyhzKS5yZXBsYWNlKC9bJjw+IiddL2csZnVuY3Rpb24oYyl7cmV0dXJuIHsnJic6JyZhbXA7JywnPCc6JyZsdDsnLCc+JzonJmd0OycsJyInOicmcXVvdDsnLCInIjonJiMzOTsnfVtjXX0pfQoKcmVuZGVyTUNRKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJ0MUxpc3QnKSxQMSk7CnJlbmRlck1DUShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydDJMaXN0JyksUDIpOwpyZW5kZXJNQ1EoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcnQzYUxpc3QnKSxQM2EpOwpyZW5kZXJNQ1EoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcnQ0TGlzdCcpLFA0KTsKCi8vIFBhcnQgNSBcdTIwMTQgcmVuZGVyIGFzIE1DUSBsaXN0IHVuZGVyIHRoZSBwYXNzYWdlCnJlbmRlck1DUShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydDVMaXN0JyksUDUubWFwKGZ1bmN0aW9uKHEpe3JldHVybiB7bjpxLm4sdGV4dDonUXVlc3Rpb24gJytxLm4rJyBcdTIwMTQgY2hvb3NlIHRoZSBiZXN0IHdvcmQgZm9yIHRoZSBnYXAuJyxvcHRzOnEub3B0cyxhbnM6cS5hbnN9fSkpOwoKLy8gUGFydCA2IFx1MjAxNCBmaXJzdC1sZXR0ZXIgKyBkYXNoZXMgKyBpbnB1dAooZnVuY3Rpb24oKXsKICB2YXIgbGlzdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydDZMaXN0Jyk7CiAgUDYuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgIHZhciBkYXNoQ291bnQgPSBxLmFucy5sZW5ndGggLSAxOwogICAgdmFyIGRhc2hlcyA9IG5ldyBBcnJheShkYXNoQ291bnQpLmZpbGwoJ18nKS5qb2luKCcgJyk7CiAgICB2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBkaXYuY2xhc3NOYW1lPSdxLWl0ZW0nOyBkaXYuZGF0YXNldC5xaWQ9cS5uOwogICAgZGl2LmlubmVySFRNTD0nPGRpdiBjbGFzcz0icS10ZXh0Ij48YiBjbGFzcz0icW4iPicrcS5uKycuPC9iPjxzcGFuPicrZXNjYXBlSHRtbChxLnRleHQpKyc8L3NwYW4+PC9kaXY+JysKICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9IndvcmQtcm93Ij48c3BhbiBjbGFzcz0iZmlyc3QtbGV0dGVyIj4nK3EuZmlyc3QrJzwvc3Bhbj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0LWJsYW5rIiBkYXRhLXE9IicrcS5uKyciIHBsYWNlaG9sZGVyPSInK2Rhc2hlcysnIiBzdHlsZT0ibWluLXdpZHRoOjIwMHB4Ij48L2Rpdj4nKwogICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmVlZGJhY2siPjwvZGl2Pic7CiAgICBsaXN0LmFwcGVuZENoaWxkKGRpdik7CiAgfSk7Cn0pKCk7CgovLyA9PT09PSBXaXJlIG9wdGlvbiBjbGlja3MgPT09PT0KZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm9wdCcpLmZvckVhY2goZnVuY3Rpb24ob3B0KXsKICBvcHQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgdmFyIGlucHV0PW9wdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpOwogICAgdmFyIGdyb3VwPW9wdC5wYXJlbnRFbGVtZW50OwogICAgZ3JvdXAucXVlcnlTZWxlY3RvckFsbCgnLm9wdCcpLmZvckVhY2goZnVuY3Rpb24obyl7by5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpfSk7CiAgICBvcHQuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTsKICAgIGlucHV0LmNoZWNrZWQ9dHJ1ZTsKICAgIHVwZGF0ZVByb2dyZXNzKCk7CiAgfSk7Cn0pOwoKLy8gaW5wdXRzCmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbnB1dC1ibGFuaywucS1zZWxlY3QnKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKXsKICBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsdXBkYXRlUHJvZ3Jlc3MpOwogIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsdXBkYXRlUHJvZ3Jlc3MpOwp9KTsKCi8vID09PT09IFN1Ym1pdCAmIEdyYWRlID09PT09CmZ1bmN0aW9uIGdldE1jcUFucyhxaWQpewogIHZhciBzZWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0icScrcWlkKyciXTpjaGVja2VkJyk7CiAgcmV0dXJuIHNlbD9zZWwudmFsdWU6bnVsbDsKfQpmdW5jdGlvbiBnZXRJbnB1dEFucyhxaWQpewogIHZhciBlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaW5wdXQtYmxhbmtbZGF0YS1xPSInK3FpZCsnIl0nKTsKICByZXR1cm4gZWw\/ZWwudmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk6Jyc7Cn0KZnVuY3Rpb24gZ2V0U2VsZWN0QW5zKHFpZCl7CiAgdmFyIGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5xLXNlbGVjdFtkYXRhLXFpZD0iJytxaWQrJyJdJyk7CiAgcmV0dXJuIGVsP2VsLnZhbHVlOicnOwp9CmZ1bmN0aW9uIHRvdGFsUXMoKXtyZXR1cm4gNTV9CgpmdW5jdGlvbiBhbnN3ZXJlZENvdW50KCl7CiAgdmFyIG49MDsKICAvLyBNQ1E6IFAxKDEtNSkgUDIoNi0xMCkgUDNhKDExLTE1KSBQNCgyMS0yNykgUDUoMjgtMzUpCiAgWzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1XS5mb3JFYWNoKGZ1bmN0aW9uKHEpe2lmKGdldE1jcUFucyhxKSluKyt9KTsKICBbMTYsMTcsMTgsMTksMjBdLmZvckVhY2goZnVuY3Rpb24ocSl7aWYoZ2V0U2VsZWN0QW5zKHEpKW4rK30pOwogIC8vIGlucHV0cwogIGZvcih2YXIgaT0zNjtpPD01NTtpKyspe2lmKGdldElucHV0QW5zKGkpKW4rK30KICByZXR1cm4gbjsKfQpmdW5jdGlvbiB1cGRhdGVQcm9ncmVzcygpewogIHZhciBhPWFuc3dlcmVkQ291bnQoKSwgdG90YWw9dG90YWxRcygpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbnN3ZXJlZENvdW50JykudGV4dENvbnRlbnQ9YTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZ0ZpbGwnKS5zdHlsZS53aWR0aD0oYS90b3RhbCoxMDApKyclJzsKfQoKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1Ym1pdEJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogIHZhciBzY29yZT0wOwogIC8vIE1DUSBwYXJ0cwogIHZhciBtY3FQYXJ0cz1bUDEsUDIsUDNhLFA0LFA1XTsKICBtY3FQYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpewogICAgcGFydC5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgICB2YXIgdj1nZXRNY3FBbnMocS5uKSwgaXRlbT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucS1pdGVtW2RhdGEtcWlkPSInK3EubisnIl0nKTsKICAgICAgaWYoIWl0ZW0pcmV0dXJuOwogICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ2Fuc3dlcmVkJyk7CiAgICAgIC8vIG1hcmsgY29ycmVjdC9pbmNvcnJlY3Qgb3B0cwogICAgICBpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKG8pewogICAgICAgIHZhciBMPW8uZGF0YXNldC5sZXR0ZXI7CiAgICAgICAgaWYoTD09PXEuYW5zKXtvLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3Qtb3B0Jyl9CiAgICAgICAgaWYodj09PUwpaWYoTCE9PXEuYW5zKXtvLmNsYXNzTGlzdC5hZGQoJ3dyb25nLW9wdCcpfQogICAgICB9KTsKICAgICAgdmFyIGZiPWl0ZW0ucXVlcnlTZWxlY3RvcignLmZlZWRiYWNrJyk7CiAgICAgIGlmKHY9PT1xLmFucyl7c2NvcmUrKzsgaXRlbS5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7IGZiLnRleHRDb250ZW50PSdcdTI3MTQgQ29ycmVjdCBcdTIwMTQgJytxLmFuc30KICAgICAgZWxzZXtpdGVtLmNsYXNzTGlzdC5hZGQoJ3dyb25nJyk7IGZiLnRleHRDb250ZW50PSdcdTI3MTggV3JvbmcgXHUyMDE0IGNvcnJlY3QgYW5zd2VyOiAnK3EuYW5zICsgKHY\/KCcgKHlvdSBjaG9zZSAnK3YrJyknKTonIChubyBhbnN3ZXIpJyl9CiAgICB9KTsKICB9KTsKICAvLyBQYXJ0IDNiIHNlbGVjdHMKICB2YXIgcDNiRmI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcnQzYkZlZWRiYWNrJyk7CiAgcDNiRmIuaW5uZXJIVE1MPScnOwogIE9iamVjdC5rZXlzKFAzYkFucykuZm9yRWFjaChmdW5jdGlvbihxaWQpewogICAgdmFyIHY9Z2V0U2VsZWN0QW5zKHFpZCksIGNvcnJlY3Q9UDNiQW5zW3FpZF07CiAgICB2YXIgZWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnEtc2VsZWN0W2RhdGEtcWlkPSInK3FpZCsnIl0nKTsKICAgIGlmKGVsKXtlbC5zdHlsZS5ib3JkZXJDb2xvcj0odj09PWNvcnJlY3Q\/JyMxMEI5ODEnOicjRUY0NDQ0Jyk7IGVsLnN0eWxlLmJvcmRlcldpZHRoPScycHgnOyBlbC5zdHlsZS5ib3JkZXJTdHlsZT0nc29saWQnfQogICAgdmFyIG5vdGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBub3RlLnN0eWxlLmNzc1RleHQ9J3BhZGRpbmc6OHB4IDEycHg7Ym9yZGVyLXJhZGl1czo4cHg7bWFyZ2luLXRvcDo2cHg7Zm9udC1zaXplOjEzLjVweDtmb250LXdlaWdodDo2MDA7Jysodj09PWNvcnJlY3Q\/J2JhY2tncm91bmQ6cmdiYSgxNiwxODUsMTI5LC4xMik7Y29sb3I6IzA2NUY0Nic6J2JhY2tncm91bmQ6cmdiYSgyMzksNjgsNjgsLjEwKTtjb2xvcjojOTkxQjFCJyk7CiAgICBub3RlLmlubmVySFRNTD0nPGI+UScrcWlkKyc8L2I+OiAnKyh2PT09Y29ycmVjdD8nXHUyNzE0IENvcnJlY3QgKCcrY29ycmVjdCsnKSc6J1x1MjcxOCBXcm9uZyBcdTIwMTQgY29ycmVjdDogJytjb3JyZWN0Kyh2PycsIHlvdSBjaG9zZSAnK3Y6Jywgbm8gYW5zd2VyJykpOwogICAgcDNiRmIuYXBwZW5kQ2hpbGQobm90ZSk7CiAgICBpZih2PT09Y29ycmVjdClzY29yZSsrOwogIH0pOwogIC8vIFBhcnQgNgogIFA2LmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICB2YXIgdj1nZXRJbnB1dEFucyhxLm4pLCBlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaW5wdXQtYmxhbmtbZGF0YS1xPSInK3EubisnIl0nKSwgaXRlbT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucS1pdGVtW2RhdGEtcWlkPSInK3EubisnIl0nKTsKICAgIGlmKCFlbHx8IWl0ZW0pcmV0dXJuOwogICAgaXRlbS5jbGFzc0xpc3QuYWRkKCdhbnN3ZXJlZCcpOwogICAgdmFyIG9rPSh2PT09cS5hbnMudG9Mb3dlckNhc2UoKSk7CiAgICBpZihvayl7c2NvcmUrKzsgZWwuY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpOyBpdGVtLmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3QnKTsgaXRlbS5xdWVyeVNlbGVjdG9yKCcuZmVlZGJhY2snKS50ZXh0Q29udGVudD0nXHUyNzE0IENvcnJlY3QnfQogICAgZWxzZXtlbC5jbGFzc0xpc3QuYWRkKCd3cm9uZycpOyBpdGVtLmNsYXNzTGlzdC5hZGQoJ3dyb25nJyk7IGl0ZW0ucXVlcnlTZWxlY3RvcignLmZlZWRiYWNrJykudGV4dENvbnRlbnQ9J1x1MjcxOCBXcm9uZyBcdTIwMTQgY29ycmVjdDogJytxLmFuc30KICB9KTsKICAvLyBQYXJ0IDcKICBPYmplY3Qua2V5cyhQN0FucykuZm9yRWFjaChmdW5jdGlvbihxaWQpewogICAgdmFyIHY9Z2V0SW5wdXRBbnMocWlkKSwgZWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmlucHV0LWJsYW5rW2RhdGEtcT0iJytxaWQrJyJdJyksIGFjY2VwdGVkPVA3QW5zW3FpZF07CiAgICBpZighZWwpcmV0dXJuOwogICAgdmFyIG9rPWFjY2VwdGVkLmluZGV4T2Yodik+PTA7CiAgICBpZihvayl7c2NvcmUrKzsgZWwuY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpfSBlbHNlIHtlbC5jbGFzc0xpc3QuYWRkKCd3cm9uZycpOyBlbC50aXRsZT0nQ29ycmVjdDogJythY2NlcHRlZC5qb2luKCcgLyAnKX0KICB9KTsKICAvLyBQYXJ0IDgKICBPYmplY3Qua2V5cyhQOEFucykuZm9yRWFjaChmdW5jdGlvbihxaWQpewogICAgdmFyIHY9Z2V0SW5wdXRBbnMocWlkKSwgZWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmlucHV0LWJsYW5rW2RhdGEtcT0iJytxaWQrJyJdJyksIGFjY2VwdGVkPVA4QW5zW3FpZF07CiAgICBpZighZWwpcmV0dXJuOwogICAgdmFyIG9rPWFjY2VwdGVkLmluZGV4T2Yodik+PTA7CiAgICBpZihvayl7c2NvcmUrKzsgZWwuY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpfSBlbHNlIHtlbC5jbGFzc0xpc3QuYWRkKCd3cm9uZycpOyBlbC50aXRsZT0nQ29ycmVjdDogJythY2NlcHRlZC5qb2luKCcgLyAnKX0KICB9KTsKCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njb3JlTm93JykudGV4dENvbnRlbnQ9c2NvcmU7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbmFsU2NvcmUnKS50ZXh0Q29udGVudD1zY29yZTsKICB2YXIgcGN0PU1hdGgucm91bmQoc2NvcmUvNTUqMTAwKTsKICB2YXIgbXNnPScnOwogIGlmKHBjdD49ODUpIG1zZz0nXHV7MUYzQzZ9IEV4Y2VsbGVudCEgWW91IGFyZSB3ZWxsIHByZXBhcmVkIGZvciB0aGUgcmVhbCBLRVQgZXhhbS4nOwogIGVsc2UgaWYocGN0Pj03MCkgbXNnPSdcdXsxRjQ0RH0gR29vZCBqb2IhIEEgZmV3IG1vcmUgdGVzdHMgYW5kIHlvdSB3aWxsIGJlIHJlYWR5Lic7CiAgZWxzZSBpZihwY3Q+PTUwKSBtc2c9J1x1ezFGNERBfSBLZWVwIHByYWN0aXNpbmcgXHUyMDE0IHJldmlldyB0aGUgd3JvbmcgYW5zd2VycyBhYm92ZS4nOwogIGVsc2UgbXNnPSdcdXsxRjRBQX0gU3RhcnQgd2l0aCB0aGUgYmFzaWNzLiBSZXJlYWQgdGhlIHBhc3NhZ2VzIGFuZCB0cnkgYWdhaW4uJzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0c01zZycpLnRleHRDb250ZW50PW1zZzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0c0Jhbm5lcicpLmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTsKICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHNCYW5uZXInKS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J2NlbnRlcid9KX0sMTIwKTsKfSk7Cgpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXRCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICBpZighY29uZmlybSgnUmVzZXQgYWxsIGFuc3dlcnM\/JykpcmV0dXJuOwogIGxvY2F0aW9uLnJlbG9hZCgpOwp9KTsKCi8vIFdyaXRpbmcgd29yZCBjb3VudGVyCnZhciB0YT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd3JpdGluZ0FyZWEnKSx3Yz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2NDb3VudGVyJyk7CnRhLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JyxmdW5jdGlvbigpewogIHZhciB3PXRhLnZhbHVlLnRyaW0oKS5zcGxpdCgvXHMrLykuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aDsKICB3Yy50ZXh0Q29udGVudD13Kycgd29yZHMgXHUwMEI3IHRhcmdldCAyNVx1MjAxMzM1JzsKICB3Yy5jbGFzc0xpc3QucmVtb3ZlKCdvaycsJ292ZXInKTsKICBpZih3Pj0yNSlpZih3PD0zNSl3Yy5jbGFzc0xpc3QuYWRkKCdvaycpOwogIGVsc2UgaWYodz4zNSl3Yy5jbGFzc0xpc3QuYWRkKCdvdmVyJyk7Cn0pOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FtcGxlVG9nZ2xlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbXBsZUJveCcpLmNsYXNzTGlzdC50b2dnbGUoJ3Nob3cnKTsKfSk7CgovLyA9PT09PSBTSE9XIEFOU1dFUiBQRVItUSBGRUFUVVJFID09PT09CmZ1bmN0aW9uIGdldEFuc0ZvclEobil7CiAgaWYobj49MSkgaWYobjw9NSkgcmV0dXJuIChQMS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1ufSl8fHt9KS5hbnM7CiAgaWYobj49NikgaWYobjw9MTApIHJldHVybiAoUDIuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uPT09bn0pfHx7fSkuYW5zOwogIGlmKG4+PTExKSBpZihuPD0xNSkgcmV0dXJuIChQM2EuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uPT09bn0pfHx7fSkuYW5zOwogIGlmKG4+PTIxKSBpZihuPD0yNykgcmV0dXJuIChQNC5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm49PT1ufSl8fHt9KS5hbnM7CiAgaWYobj49MjgpIGlmKG48PTM1KSByZXR1cm4gKFA1LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubj09PW59KXx8e30pLmFuczsKICByZXR1cm4gbnVsbDsKfQovLyBNQ1EgcS1pdGVtczogYXBwZW5kIFNob3cgQW5zd2VyIGJ1dHRvbgpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucS1pdGVtJykuZm9yRWFjaChmdW5jdGlvbihpdGVtKXsKICBpZihpdGVtLnF1ZXJ5U2VsZWN0b3IoJy5zaG93LWFucy1idG4nKSkgcmV0dXJuOwogIHZhciBxaWQ9cGFyc2VJbnQoaXRlbS5kYXRhc2V0LnFpZCk7CiAgdmFyIGJ0bj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICBidG4uY2xhc3NOYW1lPSdzaG93LWFucy1idG4nOyBidG4udHlwZT0nYnV0dG9uJzsKICBidG4uaW5uZXJIVE1MPSdcdXsxRjQ0MX0gU2hvdyBBbnN3ZXInOwogIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciBpc1A2PWZhbHNlOyBpZihxaWQ+PTM2KSBpZihxaWQ8PTQwKSBpc1A2PXRydWU7CiAgICBpZihpc1A2KXsKICAgICAgLy8gUGFydCA2IHNwZWxsIGlucHV0CiAgICAgIHZhciBwNnE9UDYuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uPT09cWlkfSk7CiAgICAgIHZhciBpbnB1dD1pdGVtLnF1ZXJ5U2VsZWN0b3IoJy5pbnB1dC1ibGFuaycpOwogICAgICBpZihpbnB1dCkgaWYocDZxKXtpbnB1dC52YWx1ZT1wNnEuYW5zOyBpbnB1dC5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7IGlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTt9CiAgICAgIHZhciBmYjY9aXRlbS5xdWVyeVNlbGVjdG9yKCcuZmVlZGJhY2snKTsKICAgICAgaWYoZmI2KSBpZihwNnEpe2l0ZW0uY2xhc3NMaXN0LmFkZCgnYW5zd2VyZWQnKTsgaXRlbS5jbGFzc0xpc3QuYWRkKCdjb3JyZWN0Jyk7IGZiNi50ZXh0Q29udGVudD0nXHV7MUY0NDF9IEFuc3dlcjogJytwNnEuYW5zO30KICAgIH0gZWxzZSB7CiAgICAgIHZhciBhbnM9Z2V0QW5zRm9yUShxaWQpOwogICAgICBpZighYW5zKSByZXR1cm47CiAgICAgIC8vIGhpZ2hsaWdodCBjb3JyZWN0IG9wdGlvbgogICAgICB2YXIgY29ycmVjdE9wdD1pdGVtLnF1ZXJ5U2VsZWN0b3IoJy5vcHRbZGF0YS1sZXR0ZXI9IicrYW5zKyciXScpOwogICAgICBpZihjb3JyZWN0T3B0KXtjb3JyZWN0T3B0LmNsYXNzTGlzdC5hZGQoJ2NvcnJlY3Qtb3B0Jyk7fQogICAgICAvLyBzaW11bGF0ZSBjbGljayBzbyB1cGRhdGVQcm9ncmVzcyBmaXJlcwogICAgICB2YXIgZmI9aXRlbS5xdWVyeVNlbGVjdG9yKCcuZmVlZGJhY2snKTsKICAgICAgaWYoZmIpe2l0ZW0uY2xhc3NMaXN0LmFkZCgnYW5zd2VyZWQnKTsgZmIuc3R5bGUuYmFja2dyb3VuZD0ncmdiYSgxNiwxODUsMTI5LC4xMiknOyBmYi5zdHlsZS5jb2xvcj0nIzA2NUY0Nic7IGZiLnRleHRDb250ZW50PSdcdXsxRjQ0MX0gQW5zd2VyOiAnK2Fuczt9CiAgICB9CiAgICBidG4uZGlzYWJsZWQ9dHJ1ZTsKICB9KTsKICBpdGVtLmFwcGVuZENoaWxkKGJ0bik7Cn0pOwovLyBQYXJ0IDNiIHNlbGVjdHM6IGFwcGVuZCBpbmxpbmUgU2hvdyBBbnN3ZXIgYnV0dG9uClsxNiwxNywxOCwxOSwyMF0uZm9yRWFjaChmdW5jdGlvbihxaWQpewogIHZhciBzZWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnEtc2VsZWN0W2RhdGEtcWlkPSInK3FpZCsnIl0nKTsKICBpZighc2VsKSByZXR1cm47CiAgdmFyIGJ0bj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICBidG4uY2xhc3NOYW1lPSdzaG93LWFucy1idG4taW5saW5lJzsgYnRuLnR5cGU9J2J1dHRvbic7CiAgdmFyIGFucz1QM2JBbnNbcWlkXTsKICBidG4uaW5uZXJIVE1MPSdcdXsxRjQ0MX0gJythbnM7CiAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgc2VsLnZhbHVlPWFuczsgc2VsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnKSk7CiAgICBzZWwuc3R5bGUuYm9yZGVyQ29sb3I9JyMxMEI5ODEnOyBzZWwuc3R5bGUuYm9yZGVyV2lkdGg9JzJweCc7IHNlbC5zdHlsZS5ib3JkZXJTdHlsZT0nc29saWQnOwogICAgYnRuLmRpc2FibGVkPXRydWU7CiAgfSk7CiAgc2VsLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJlbmQnLCBidG4pOwp9KTsKLy8gUGFydCA3ICYgOCBpbnB1dHM6IGFwcGVuZCBpbmxpbmUgU2hvdyBBbnN3ZXIgYnV0dG9uCmZvcih2YXIgcWk9NDE7cWk8PTU1O3FpKyspewogIChmdW5jdGlvbihxaWQpewogICAgdmFyIGlucD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaW5wdXQtYmxhbmtbZGF0YS1xPSInK3FpZCsnIl0nKTsKICAgIGlmKCFpbnApIHJldHVybjsKICAgIHZhciBhbnM9KHFpZDw9NTApP1A3QW5zW3FpZF1bMF06UDhBbnNbcWlkXVswXTsKICAgIHZhciBidG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICBidG4uY2xhc3NOYW1lPSdzaG93LWFucy1idG4taW5saW5lJzsgYnRuLnR5cGU9J2J1dHRvbic7CiAgICBidG4uaW5uZXJIVE1MPSdcdXsxRjQ0MX0gJythbnM7CiAgICBidG4udGl0bGU9J0NsaWNrIHRvIGZpbGw6ICcrYW5zOwogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgICBpbnAudmFsdWU9YW5zOyBpbnAuY2xhc3NMaXN0LmFkZCgnY29ycmVjdCcpOyBpbnAuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpOwogICAgICBidG4uZGlzYWJsZWQ9dHJ1ZTsKICAgIH0pOwogICAgaW5wLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJlbmQnLCBidG4pOwogIH0pKHFpKTsKfQoKfSkoKTsK'));<\/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 1 &#8212; Test 3Reading &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-1938","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1938","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=1938"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1938\/revisions"}],"predecessor-version":[{"id":5943,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1938\/revisions\/5943"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=1938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}