{"id":206,"date":"2026-09-24T02:25:25","date_gmt":"2026-09-24T02:25:25","guid":{"rendered":"https:\/\/pawpampering.com\/en\/?page_id=206"},"modified":"2026-09-30T07:14:02","modified_gmt":"2026-09-30T07:14:02","slug":"dog-coat-quiz","status":"publish","type":"page","link":"https:\/\/pawpampering.com\/en_gb\/dog-coat-quiz\/","title":{"rendered":"Does Your Dog Have a Double Coat? Take the Free Coat Quiz"},"content":{"rendered":"\n<!-- Paw Pampering coat quiz. Paste into ONE WordPress \"Custom HTML\" block. Settings are in PPQ_CONFIG at the top of the script. -->\n<div class=\"ppq\" id=\"ppq\" data-screen=\"intro\">\n<style>\n.ppq{--ppq-bg:#f4f1eb;--ppq-card:#ffffff;--ppq-ink:#20302c;--ppq-muted:#55655e;--ppq-green:#1d4644;--ppq-green-2:#2d5f5b;--ppq-soft:#eaf1ee;--ppq-rust:#9d5433;--ppq-rust-2:#83432a;--ppq-line:#e1dacb;--ppq-warn:#fbf1e6;--ppq-warn-line:#c9803f;\n  max-width:760px;margin:0 auto;padding:0 16px;box-sizing:border-box;color:var(--ppq-ink);font:17px\/1.6 -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;text-align:left}\n.ppq *,.ppq *::before,.ppq *::after{box-sizing:border-box}\n.ppq .ppq-card{background:var(--ppq-card);border:1px solid var(--ppq-line);border-radius:18px;box-shadow:0 1px 2px rgba(29,70,68,.05),0 12px 32px -12px rgba(29,70,68,.18);padding:34px 36px;margin:0 0 28px}\n.ppq h2,.ppq h3,.ppq h4,.ppq legend.ppq-q{font-family:Georgia,\"Times New Roman\",serif;color:var(--ppq-green);font-weight:700;letter-spacing:-.01em;line-height:1.2;margin:0;padding:0;text-transform:none}\n.ppq .ppq-eyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ppq-rust);margin:0 0 12px}\n.ppq .ppq-title{font-size:38px;line-height:1.15;margin:0 0 14px}\n.ppq .ppq-lead{font-size:19px;color:var(--ppq-muted);margin:0 0 22px}\n.ppq p{margin:0 0 14px}\n.ppq ul.ppq-ticks{list-style:none;margin:0 0 26px;padding:0}\n.ppq ul.ppq-ticks li{position:relative;padding:0 0 0 32px;margin:0 0 10px}\n.ppq ul.ppq-ticks li::before{content:\"\";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;background:var(--ppq-soft) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%231d4644' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\") center\/20px no-repeat}\n.ppq .ppq-btn{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:14px 28px;border:0;border-radius:12px;background:var(--ppq-rust);color:#fff;font-family:inherit;font-size:17px;font-weight:700;line-height:1.2;text-decoration:none;text-align:center;cursor:pointer;box-shadow:0 6px 16px -8px rgba(157,84,51,.8);transition:background .15s,transform .15s}\n.ppq .ppq-btn:hover{background:var(--ppq-rust-2);color:#fff;transform:translateY(-1px)}\n.ppq .ppq-btn[disabled]{background:#c9b8ad;box-shadow:none;cursor:not-allowed;transform:none}\n.ppq .ppq-btn.ppq-green{background:var(--ppq-green);box-shadow:0 6px 16px -8px rgba(29,70,68,.8)}\n.ppq .ppq-btn.ppq-green:hover{background:var(--ppq-green-2)}\n.ppq .ppq-link{appearance:none;-webkit-appearance:none;background:none;border:0;padding:10px 4px;min-height:44px;color:var(--ppq-green);font-family:inherit;font-size:16px;font-weight:600;line-height:1.3;text-decoration:underline;text-underline-offset:3px;cursor:pointer}\n.ppq .ppq-link:hover{color:var(--ppq-rust)}\n.ppq :focus-visible{outline:3px solid #d08a5c;outline-offset:3px;border-radius:8px}\n.ppq .ppq-small{font-size:14px;color:var(--ppq-muted)}\n.ppq .ppq-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}\n.ppq .ppq-step{font-size:14px;font-weight:700;color:var(--ppq-green);letter-spacing:.02em}\n.ppq .ppq-bar{height:6px;background:var(--ppq-soft);border-radius:99px;overflow:hidden;margin:0 0 26px}\n.ppq .ppq-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--ppq-green),var(--ppq-green-2));border-radius:99px;transition:width .35s ease}\n.ppq fieldset{border:0;margin:0;padding:0;min-width:0}\n.ppq legend.ppq-q{font-size:28px;line-height:1.22;margin:0 0 8px;float:left;width:100%}\n.ppq .ppq-help{clear:both;color:var(--ppq-muted);margin:0 0 18px;padding-top:4px}\n.ppq .ppq-opts{clear:both;display:grid;gap:10px;margin:0 0 22px}\n.ppq .ppq-opt{position:relative;display:block}\n.ppq .ppq-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}\n.ppq .ppq-opt label{display:flex;align-items:center;gap:14px;min-height:58px;padding:14px 16px;border:1.5px solid var(--ppq-line);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;font-weight:500;line-height:1.35}\n.ppq .ppq-opt label:hover{border-color:var(--ppq-green-2);background:#fbfcfb}\n.ppq .ppq-mark{flex:0 0 22px;width:22px;height:22px;border:2px solid #9aaaa3;border-radius:50%;display:grid;place-items:center;background:#fff}\n.ppq .ppq-multi .ppq-mark{border-radius:6px}\n.ppq .ppq-opt input:checked+label{border-color:var(--ppq-green);background:var(--ppq-soft);box-shadow:inset 0 0 0 1px var(--ppq-green)}\n.ppq .ppq-opt input:checked+label .ppq-mark{border-color:var(--ppq-green);background:var(--ppq-green)}\n.ppq .ppq-opt input:checked+label .ppq-mark::after{content:\"\";width:10px;height:6px;border:solid #fff;border-width:0 0 2.5px 2.5px;transform:translateY(-1px) rotate(-45deg)}\n.ppq .ppq-opt input:focus-visible+label{outline:3px solid #d08a5c;outline-offset:2px}\n.ppq .ppq-otext{flex:1}\n.ppq .ppq-otext small{display:block;font-weight:400;color:var(--ppq-muted);font-size:14.5px;margin-top:2px}\n.ppq .ppq-sel{display:none;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ppq-green)}\n.ppq .ppq-opt input:checked+label .ppq-sel{display:inline}\n.ppq .ppq-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}\n.ppq .ppq-figure{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px;clear:both}\n.ppq .ppq-figure figure{margin:0;background:var(--ppq-bg);border-radius:12px;padding:12px 12px 10px;text-align:center}\n.ppq .ppq-figure svg{width:100%;height:auto;display:block;max-width:220px;margin:0 auto 6px}\n.ppq .ppq-figure figcaption{font-size:14px;line-height:1.35;color:var(--ppq-ink)}\n.ppq .ppq-figure figcaption b{display:block;color:var(--ppq-green)}\n.ppq .ppq-field{margin:0 0 16px}\n.ppq .ppq-field label{display:block;font-weight:700;margin:0 0 6px}\n.ppq .ppq-field label span{font-weight:400;color:var(--ppq-muted)}\n.ppq .ppq-field input{width:100%;min-height:52px;padding:12px 14px;border:1.5px solid #b9c3be;border-radius:10px;font-family:inherit;font-size:17px;line-height:1.3;color:var(--ppq-ink);background:#fff}\n.ppq .ppq-field input:focus{border-color:var(--ppq-green);outline:3px solid #d08a5c;outline-offset:1px}\n.ppq .ppq-field input[aria-invalid=\"true\"]{border-color:#b4472a;background:#fff8f6}\n.ppq .ppq-err{display:none;color:#a33a20;font-weight:600;font-size:15px;margin:6px 0 0}\n.ppq .ppq-err.ppq-on{display:block}\n.ppq .ppq-note{background:var(--ppq-bg);border-radius:10px;padding:12px 14px;font-size:14.5px;color:var(--ppq-muted);margin:0 0 18px}\n.ppq .ppq-note a{color:var(--ppq-green)}\n.ppq .ppq-alert{border:2px solid var(--ppq-warn-line);background:var(--ppq-warn);border-radius:14px;padding:20px 22px;margin:0 0 24px}\n.ppq .ppq-alert h3{font-size:22px;color:#7a3f17;margin:0 0 10px}\n.ppq .ppq-alert ul{margin:0;padding-left:20px}\n.ppq .ppq-alert li{margin:0 0 8px}\n.ppq .ppq-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;background:var(--ppq-soft);color:var(--ppq-green);border-radius:99px;padding:5px 12px;margin:0 0 14px}\n.ppq .ppq-badge.ppq-likely{background:#f6ecdf;color:#7a4a1f}\n.ppq .ppq-rtitle{font-size:34px;line-height:1.15;margin:0 0 8px}\n.ppq .ppq-breeds{color:var(--ppq-muted);margin:0 0 20px}\n.ppq .ppq-facts{display:grid;gap:12px;margin:0 0 24px}\n.ppq .ppq-fact{background:var(--ppq-bg);border-radius:12px;padding:14px 16px}\n.ppq .ppq-fact dt{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ppq-rust);margin:0 0 4px}\n.ppq .ppq-fact dd{margin:0}\n.ppq .ppq-sub{font-size:24px;margin:6px 0 14px}\n.ppq .ppq-offers{display:grid;gap:14px;margin:0 0 22px}\n.ppq .ppq-offer{border:1.5px solid var(--ppq-line);border-radius:14px;padding:20px;background:#fff}\n.ppq .ppq-offer.ppq-main{border-color:var(--ppq-green);box-shadow:0 10px 26px -16px rgba(29,70,68,.6)}\n.ppq .ppq-offer .ppq-kicker{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ppq-rust);margin:0 0 4px}\n.ppq .ppq-offer h4{font-family:Georgia,serif;font-size:21px;color:var(--ppq-green);margin:0 0 6px}\n.ppq .ppq-offer p{margin:0 0 14px}\n.ppq .ppq-free{border:1.5px dashed var(--ppq-green-2);background:var(--ppq-soft);border-radius:14px;padding:18px 20px;margin:0 0 22px}\n.ppq .ppq-free h4{font-family:Georgia,serif;font-size:20px;color:var(--ppq-green);margin:0 0 6px}\n.ppq .ppq-tools{display:flex;flex-wrap:wrap;gap:6px 18px;border-top:1px solid var(--ppq-line);padding-top:14px;margin-top:6px}\n.ppq .ppq-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n.ppq .ppq-faq h2{font-size:28px;margin:0 0 14px}\n.ppq .ppq-faq details{border-bottom:1px solid var(--ppq-line);padding:4px 0}\n.ppq .ppq-faq summary{cursor:pointer;font-weight:700;padding:12px 34px 12px 0;min-height:44px;list-style:none;color:var(--ppq-green);position:relative}\n.ppq .ppq-faq summary::-webkit-details-marker{display:none}\n.ppq .ppq-faq summary::after{content:\"+\";position:absolute;right:4px;top:8px;font-size:24px;font-weight:400;color:var(--ppq-rust)}\n.ppq .ppq-faq details[open] summary::after{content:\"\\2212\"}\n.ppq .ppq-faq details p{margin:0 0 14px}\n.ppq [hidden]{display:none!important}\n.ppq .ppq-check{background:var(--ppq-bg);border-radius:16px;padding:10px;margin:0 0 24px}\n.ppq .ppq-hero{display:block;width:100%;height:auto;border-radius:12px;margin:0 0 16px}\n.ppq .ppq-check-text{padding:0 6px}\n.ppq .ppq-check-text h3{font-size:20px;margin:0 0 10px}\n.ppq .ppq-check-text ol{margin:0 0 14px;padding-left:22px}\n.ppq .ppq-check-text li{margin:0 0 6px}\n.ppq .ppq-panels{display:grid;grid-template-columns:1fr 1fr;gap:10px}\n.ppq .ppq-panels img{display:block;width:100%;height:auto;border-radius:10px;background:#fbf8f3}\n.ppq .ppq-qpanels{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px;clear:both}\n.ppq .ppq-qpanels img{display:block;width:100%;height:auto;border-radius:10px;background:#fbf8f3}\n@media (max-width:640px){\n  .ppq .ppq-check{padding:10px 10px 12px}\n  .ppq .ppq-hero{margin:0 0 12px}\n}\n.ppq .ppq-name{margin:0 0 18px;max-width:420px}\n.ppq .ppq-sw{flex:0 0 44px;width:44px;height:44px;border-radius:10px;background:#f4ede3;display:block}\n.ppq .ppq-why{background:var(--ppq-soft);border-radius:10px;padding:12px 14px;font-size:15.5px;margin:0 0 20px}\n.ppq .ppq-offer-in{display:flex;gap:16px;align-items:flex-start}\n.ppq .ppq-offer-in img{flex:0 0 88px;width:88px;height:auto;border-radius:8px;border:1px solid var(--ppq-line);background:#fff}\n.ppq .ppq-launch{display:inline-block;font-size:14px;font-weight:700;color:var(--ppq-rust);background:#f8ece5;border-radius:8px;padding:4px 10px;margin:0 0 12px}\n.ppq .ppq-normal{border-left:4px solid var(--ppq-green-2);padding:4px 0 4px 14px;margin:0 0 22px}\n.ppq .ppq-article h2{font-size:28px;margin:0 0 12px}\n.ppq .ppq-article h3{font-size:21px;margin:22px 0 8px}\n.ppq .ppq-article ol{padding-left:22px}\n.ppq .ppq-table{width:100%;border-collapse:collapse;font-size:15.5px;margin:6px 0 10px}\n.ppq .ppq-table th,.ppq .ppq-table td{text-align:left;vertical-align:top;padding:10px 8px;border-bottom:1px solid var(--ppq-line)}\n.ppq .ppq-table th{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ppq-rust)}\n.ppq .ppq-byline{display:flex;gap:14px;align-items:flex-start;border-top:1px solid var(--ppq-line);padding-top:18px;margin-top:22px}\n.ppq .ppq-byline img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:50% 30%;flex:0 0 64px;border:2px solid var(--ppq-line);background:var(--ppq-bg)}\n.ppq .ppq-byline p{margin:0;font-size:15px;color:var(--ppq-muted)}\n.ppq .ppq-byline b{color:var(--ppq-ink)}\n\n.ppq .ppq-coat-cards{display:none;margin:12px 0 18px}\n.ppq .ppq-coat-cards>div{padding:16px 0;border-bottom:1px solid var(--ppq-line)}\n.ppq .ppq-coat-cards dt{font-weight:700;color:var(--ppq-ink);margin-bottom:8px}\n.ppq .ppq-coat-cards dd{margin:8px 0 0;line-height:1.65}\n@media (max-width:600px){.ppq .ppq-offer-in img{flex-basis:70px;width:70px}.ppq .ppq-table{display:none}.ppq .ppq-coat-cards{display:block}.ppq .ppq-byline{flex-direction:column;gap:12px}.ppq .ppq-byline p{font-size:16px;line-height:1.65}}\n@media (max-width:600px){\n  .ppq{font-size:16.5px}\n  .ppq .ppq-card{padding:24px 18px;border-radius:14px}\n  .ppq .ppq-title{font-size:30px}\n  .ppq .ppq-lead{font-size:17.5px}\n  .ppq legend.ppq-q{font-size:23px}\n  .ppq .ppq-rtitle{font-size:28px}\n  .ppq .ppq-btn{width:100%}\n  .ppq .ppq-nav{flex-direction:column-reverse;align-items:stretch}\n  .ppq .ppq-nav .ppq-link{align-self:center}\n  .ppq .ppq-figure{gap:8px}\n}\n@media (prefers-reduced-motion:reduce){.ppq *{transition:none!important}}\n@media print{\n  .ppq .ppq-tools,.ppq .ppq-offers,.ppq .ppq-free,.ppq .ppq-faq,.ppq .ppq-btn{display:none!important}\n  .ppq .ppq-card{box-shadow:none;border:1px solid #ccc}\n}\n<\/style>\n\n<div class=\"ppq-sr\" aria-live=\"polite\" id=\"ppq-live\"><\/div>\n<span id=\"ppq-remaining\" hidden>198<\/span>\n\n<!-- INTRO -->\n<section class=\"ppq-card\" data-view=\"intro\" aria-labelledby=\"ppq-intro-h\">\n  <span class=\"ppq-eyebrow\">Free coat quiz &middot; about a minute<\/span>\n  <h2 class=\"ppq-title\" id=\"ppq-intro-h\" tabindex=\"-1\">Not sure what your dog&#8217;s coat needs? Start here.<\/h2>\n  <p class=\"ppq-lead\">Six quick questions suggest a coat group and explain common shedding patterns. A useful starting point before buying another brush. No email is needed to see your result.<\/p>\n  <div class=\"ppq-check\">\n    <img fetchpriority=\"high\" class=\"ppq-hero\" src=\"https:\/\/pawpampering.com\/wp-content\/uploads\/2026\/09\/dog-coat-quiz-hero-1200.jpg\" alt=\"A fluffy double-coated dog lying on a rug with loose fur around it\" width=\"1200\" height=\"800\" loading=\"eager\" decoding=\"async\">\n    <div class=\"ppq-check-text\">\n      <h3>A gentle starting check, not a final answer<\/h3><ol><li>Only if your dog is comfortable, gently part a small area of coat at the shoulder or side.<\/li><li>Look for a softer layer beneath the outer hairs. Do not pull tufts or keep brushing to test the coat.<\/li><li>A visible undercoat is a clue. Not seeing one does not prove it is absent. Ask a knowledgeable groomer when unclear.<\/li><\/ol>\n    <\/div>\n    <div class=\"ppq-panels\"><img src=\"https:\/\/pawpampering.com\/wp-content\/uploads\/2026\/09\/coat-check-double.jpg\" alt=\"Double coat: long outer guard hairs with a soft, dense, paler undercoat above the skin\" width=\"752\" height=\"532\" loading=\"lazy\" decoding=\"async\"><img src=\"https:\/\/pawpampering.com\/wp-content\/uploads\/2026\/09\/coat-check-single.jpg\" alt=\"Single coat: the same hair all the way down to the skin\" width=\"752\" height=\"532\" loading=\"lazy\" decoding=\"async\"><\/div>\n  <\/div>\n  <ul class=\"ppq-ticks\">\n    <li>Your dog&#8217;s coat group, in plain English<\/li>\n    <li>General shedding patterns, without a promised start or finish date<\/li>\n    <li>What to keep an eye on for your dog&#8217;s coat type<\/li>\n  <\/ul>\n  <div class=\"ppq-field ppq-name\"><label for=\"ppq-dogname\">Your dog&#8217;s name <span>(optional)<\/span><\/label><input id=\"ppq-dogname\" type=\"text\" autocomplete=\"off\" maxlength=\"30\"><\/div>\n  <p><button type=\"button\" class=\"ppq-btn\" data-act=\"start\">Start the quiz<\/button><\/p>\n  <p class=\"ppq-small\">Not next to your dog right now? Answer from memory. This quiz is for learning, not a substitute for advice from a vet or groomer.<\/p>\n<\/section>\n\n<!-- QUESTION -->\n<section class=\"ppq-card\" data-view=\"question\" hidden>\n  <div class=\"ppq-head\"><span class=\"ppq-step\" id=\"ppq-step\">Question 1 of 6<\/span><\/div>\n  <div class=\"ppq-bar\" aria-hidden=\"true\"><span id=\"ppq-bar-fill\" style=\"width:0%\"><\/span><\/div>\n  <form id=\"ppq-qform\" novalidate><\/form>\n<\/section>\n\n<!-- EMAIL -->\n<section class=\"ppq-card\" data-view=\"email\" hidden aria-labelledby=\"ppq-email-h\">\n  <span class=\"ppq-eyebrow\">Your result is ready<\/span>\n  <h2 class=\"ppq-title\" id=\"ppq-email-h\" tabindex=\"-1\" style=\"font-size:30px\">Want a copy in your inbox?<\/h2>\n  <p id=\"ppq-email-lead\">Your result appears on this page. You can print it for your own reference.<\/p>\n  <form id=\"ppq-eform\" novalidate>\n    <div class=\"ppq-field\"><label for=\"ppq-fname\">First name <span>(optional)<\/span><\/label><input id=\"ppq-fname\" name=\"first_name\" type=\"text\" autocomplete=\"given-name\"><\/div>\n    <div class=\"ppq-field\"><label for=\"ppq-email\">Email address<\/label><input id=\"ppq-email\" name=\"email\" type=\"email\" autocomplete=\"email\" inputmode=\"email\" aria-describedby=\"ppq-email-err\" required><p class=\"ppq-err\" id=\"ppq-email-err\">Please enter an email address like name@example.com.<\/p><\/div>\n    <p class=\"ppq-note\">Email delivery is not currently offered by this quiz. <a href=\"#\" id=\"ppq-privacy\" target=\"_blank\" rel=\"noopener\">Privacy Policy<\/a><\/p>\n    <div class=\"ppq-nav\"><button type=\"button\" class=\"ppq-link\" data-act=\"skip\">No thanks, just show my result<\/button><button type=\"submit\" class=\"ppq-btn\">Email me my result<\/button><\/div>\n  <\/form>\n<\/section>\n\n<!-- RESULT -->\n<section data-view=\"result\" hidden>\n  <div id=\"ppq-result\"><\/div>\n<\/section>\n\n<!-- Visible guide below the quiz -->\n<section class=\"ppq-card ppq-article\" aria-labelledby=\"ppq-art-h\">\n  <h2 id=\"ppq-art-h\">How to tell if your dog has a double coat<\/h2>\n  <p>A double coat has two layers. The long outer hairs, called guard hairs, protect against water and dirt. Underneath is a soft, dense undercoat that insulates. Many double-coated dogs shed more heavily in spring and fall, while also shedding at other times. The pattern varies by dog and environment.<\/p>\n  <h3>Look gently and allow an uncertain result<\/h3><p>Part a small area only where handling is comfortable. Age, season, clipping and mixed-coat characteristics can make the layers hard to distinguish. Stop if your dog is uncomfortable. A quick home check does not establish the safest tool or diagnose hair loss.<\/p>\n  <h3>The five coat groups<\/h3>\n  <p>These broad groups help organize this site&#8217;s guidance. Breed examples are clues, not a diagnosis or a guarantee of coat type. Mixed coats can be difficult to classify; ask a qualified groomer if you are unsure.<\/p>\n  <table class=\"ppq-table\">\n    <thead><tr><th scope=\"col\">Group<\/th><th scope=\"col\">Breed examples<\/th><th scope=\"col\">What you&#8217;re dealing with<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td><b>Short double<\/b><\/td><td>Labrador Retriever, Greater Swiss Mountain Dog, Cardigan and Pembroke Welsh Corgi<\/td><td>Short hair may carry dense undercoat. Shedding timing varies by dog.<\/td><\/tr>\n      <tr><td><b>Medium double<\/b><\/td><td>Border Collie, Australian Shepherd<\/td><td>Length and feathering vary. Check for tangles gently.<\/td><\/tr>\n      <tr><td><b>Long double<\/b><\/td><td>Newfoundland, Bernese Mountain Dog, Great Pyrenees, Saint Bernard<\/td><td>Volume. Mats form out of sight, close to the skin.<\/td><\/tr>\n      <tr><td><b>Dense \/ arctic double<\/b><\/td><td>Pomeranian, Samoyed, American Eskimo Dog, Alaskan Malamute<\/td><td>A dense coat that may need an individual grooming routine.<\/td><\/tr>\n      <tr><td><b>Single or curly<\/b><\/td><td>Poodle, Maltese, Greyhound, Whippet<\/td><td>Care needs differ. Curly coats can retain shed hair; smooth coats also shed.<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <dl class=\"ppq-coat-cards\"><div><dt>Short double<\/dt><dd><strong>Breed examples:<\/strong> Labrador Retriever, Greater Swiss Mountain Dog, Cardigan and Pembroke Welsh Corgi<\/dd><dd><strong>Coat care:<\/strong> Short hair may carry dense undercoat. Shedding timing varies by dog.<\/dd><\/div><div><dt>Medium double<\/dt><dd><strong>Breed examples:<\/strong> Border Collie, Australian Shepherd<\/dd><dd><strong>Coat care:<\/strong> Length and feathering vary. Check for tangles gently.<\/dd><\/div><div><dt>Long double<\/dt><dd><strong>Breed examples:<\/strong> Newfoundland, Bernese Mountain Dog, Great Pyrenees, Saint Bernard<\/dd><dd><strong>Coat care:<\/strong> Volume. Mats form out of sight, close to the skin.<\/dd><\/div><div><dt>Dense \/ arctic double<\/dt><dd><strong>Breed examples:<\/strong> Pomeranian, Samoyed, American Eskimo Dog, Alaskan Malamute<\/dd><dd><strong>Coat care:<\/strong> A dense coat that may need an individual grooming routine.<\/dd><\/div><div><dt>Single or curly<\/dt><dd><strong>Breed examples:<\/strong> Poodle, Maltese, Greyhound, Whippet<\/dd><dd><strong>Coat care:<\/strong> Care needs differ. Curly coats can retain shed hair; smooth coats also shed.<\/dd><\/div><\/dl>\n  <h3>If your dog is between two groups<\/h3>\n  <p>Treat the quiz as a starting point. Ask a qualified groomer to check the coat before choosing a tool or schedule; the longer-looking coat is not automatically the safer choice.<\/p>\n  <div class=\"ppq-byline\"><img decoding=\"async\" src=\"https:\/\/pawpampering.com\/wp-content\/uploads\/2026\/09\/michael-northcutt-portrait-150x150.jpg\" alt=\"Michael Northcutt\" width=\"64\" height=\"64\" loading=\"lazy\"><p><b>Written by Michael Northcutt<\/b>, Certified Companion Animal Rehabilitation Therapist, credentialed through the NC State University College of Veterinary Medicine. The groups are broad categories used by this guide. Not a vet, and nothing here is veterinary advice.<\/p><\/div>\n<\/section>\n\n<!-- FAQ (always visible below the quiz) -->\n<section class=\"ppq-card ppq-faq\" aria-labelledby=\"ppq-faq-h\">\n  <h2 id=\"ppq-faq-h\">Coat questions people ask<\/h2><p class=\"ppq-small\">Further reading: <a href=\"https:\/\/www.akc.org\/expert-advice\/health\/managing-dog-shedding\/\" rel=\"noopener\">AKC on managing shedding<\/a> and <a href=\"https:\/\/vcahospitals.com\/know-your-pet\/seasonal-flank-alopecia\" rel=\"noopener\">VCA on seasonal hair loss and diagnosis<\/a>. These sources do not endorse the quiz.<\/p>\n  <details><summary>How do I know if my dog has a double coat?<\/summary><p>A softer layer beneath the outer hairs can suggest undercoat. Not seeing one does not prove it is absent. Gently part a small area only if handling is comfortable, and ask a knowledgeable groomer if uncertain. Do not pull tufts to test it.<\/p><\/details>\n  <details><summary>Should I shave my double-coated dog in summer?<\/summary><p>Do not shave a double coat simply because the weather is hot. Ask your vet or a qualified groomer before clipping; medical needs or severe matting can change the advice for an individual dog.<\/p><\/details>\n  <details><summary>When do double-coated dogs shed the most?<\/summary><p>Many double-coated dogs shed more heavily in spring and fall. Indoor living and individual differences can change the pattern. Duration varies; a quiz cannot predict an exact start or finish date.<\/p><\/details>\n  <details><summary>Can heavy shedding be a sign of a problem?<\/summary><p>Contact your vet about new patchy or bald areas, a sudden change in shedding, or itching, redness, sores, pain, or a bad smell. Skin can look comfortable even when hair loss has a medical cause.<\/p><\/details>\n<\/section>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"How do I know if my dog has a double coat?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A softer layer beneath the outer hairs can suggest undercoat. Not seeing one does not prove it is absent. Gently part a small area only if handling is comfortable, and ask a knowledgeable groomer if uncertain. Do not pull tufts to test it.\"}},{\"@type\":\"Question\",\"name\":\"Should I shave my double-coated dog in summer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Do not shave a double coat simply because the weather is hot. Ask your vet or a qualified groomer before clipping; medical needs or severe matting can change the advice for an individual dog.\"}},{\"@type\":\"Question\",\"name\":\"When do double-coated dogs shed the most?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Many double-coated dogs shed more heavily in spring and fall. Indoor living and individual differences can change the pattern. Duration varies; a quiz cannot predict an exact start or finish date.\"}},{\"@type\":\"Question\",\"name\":\"Can heavy shedding be a sign of a problem?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Contact your vet about new patchy or bald areas, a sudden change in shedding, or itching, redness, sores, pain, or a bad smell. Skin can look comfortable even when hair loss has a medical cause.\"}}]}\n<\/script>\n\n<script>(function(){var b=\"KGZ1bmN0aW9uKCl7CiJ1c2Ugc3RyaWN0IjsKLyogLS0tLS0tLS0tLSBTRVRUSU5HUzogdGhlIG9ubHkgcGFydCB5b3Ugc2hvdWxkIG5lZWQgdG8gZWRpdCAtLS0tLS0tLS0tICovCnZhciBQUFFfQ09ORklHID0gewogIC8vIEZ1bm5lbEtpdCBBdXRvbWF0aW9ucyAiV2ViaG9vayByZWNlaXZlZCIgVVJMLiBMZWF2ZSBlbXB0eSBhbmQgdGhlIGVtYWlsIHN0ZXAgaXMgc2tpcHBlZCBlbnRpcmVseSwKICAvLyBzbyBubyBlbWFpbCBhZGRyZXNzIGlzIGV2ZXIgY29sbGVjdGVkIGFuZCB0aGVuIGxvc3QuCiAgd2ViaG9va1VybDogIiIsCiAgd2ViaG9va1VybFNpbmdsZTogIiIsCiAgcHJpdmFjeVVybDogImh0dHBzOi8vcGF3cGFtcGVyaW5nLmNvbS9lbi9wcml2YWN5LXBvbGljeS8iLAogIGNhbGVuZGFyUGRmOiAiIiwKICBjb2F0VGVzdFBkZjogImh0dHBzOi8vcGF3cGFtcGVyaW5nLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wOS9UaGUtVGhpcnR5LVNlY29uZC1Db2F0LVRlc3QtcmV2aWV3ZWQtMjAyNjA5MjUucGRmIiwKICB1cmxzOiB7CiAgICBwbGFuOiAgImh0dHBzOi8vcGF3cGFtcGVyaW5nLmNvbS9lbi9wcm9kdWN0L3NoZWRkaW5nLXNlYXNvbi1wbGFuLyIsCiAgICByYWtlOiAgImh0dHBzOi8vcGF3cGFtcGVyaW5nLmNvbS9lbi9wcm9kdWN0L3Bhdy1wYW1wZXJpbmctdW5kZXJjb2F0LXJha2UvIiwKICAgIGdsb3ZlOiAiaHR0cHM6Ly9wYXdwYW1wZXJpbmcuY29tL2VuL3Byb2R1Y3QvcGF3LXBhbXBlcmluZy1wZXQtaGFpci1yZW1vdmFsLWdsb3ZlLyIsCiAgICBjb21iOiAgImh0dHBzOi8vcGF3cGFtcGVyaW5nLmNvbS9lbi9wcm9kdWN0L3Bhdy1wYW1wZXJpbmctY29tYi1jYXJlLWtpdC8iLAogICAgc21lbGw6ICJodHRwczovL3Bhd3BhbXBlcmluZy5jb20vZW4vcHJvZHVjdC90aGUtc21lbGwtbm9ib2R5LW1lbnRpb25zLyIKICB9LAogIGltYWdlczogewogICAgcGxhbjogICJodHRwczovL3Bhd3BhbXBlcmluZy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDkvcGxhbi1jb3Zlci0yMzJ4MzAwLmpwZyIsCiAgICByYWtlOiAgImh0dHBzOi8vcGF3cGFtcGVyaW5nLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wOS9yYWtlLWhlcm8tMzAweDMwMC5qcGciLAogICAgZ2xvdmU6ICJodHRwczovL3Bhd3BhbXBlcmluZy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDkvZ2xvdmUtaGVyby0zMDB4MzAwLmpwZyIsCiAgICBjb21iOiAgImh0dHBzOi8vcGF3cGFtcGVyaW5nLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wOS9zdXBwbGllci1zaXgtcGllY2Utb3ZlcnZpZXctMzAweDMwMC5qcGciLAogICAgc21lbGw6ICJodHRwczovL3Bhd3BhbXBlcmluZy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDkvdGhlLXNtZWxsLW5vYm9keS1tZW50aW9ucy1jb3Zlci0yMzJ4MzAwLmpwZyIKICB9LAogIC8vIExhdW5jaCBwcmljZSBsaW5lLiBPbmx5IHNob3duIHdoaWxlIHRoZSBbcHBfcmVtYWluaW5nXSBzbmlwcGV0IGlzIGFjdGl2ZSBhbmQgcmVwb3J0cyBzZWF0cyBsZWZ0LgogIGxhdW5jaDogeyBwcmljZTogIiQxNyIsIHJlZ3VsYXI6ICIkMjciLCBsaW1pdDogMjAwLCBzaG93Q291bnRBZnRlclNvbGQ6IDEyIH0sCiAgdmVyc2lvbjogImNvYXQtcXVpei0yLjItaW1tZWRpYXRlLXJlc3VsdHMiCn07Ci8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKdmFyIHJvb3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBwcSIpOwppZighcm9vdCkgcmV0dXJuOwp2YXIgbGl2ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHBxLWxpdmUiKTsKdmFyIHFmb3JtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcHEtcWZvcm0iKTsKCmZ1bmN0aW9uIHRyYWNrKG5hbWUscHJvcHMpe3RyeXt3aW5kb3cuZGF0YUxheWVyPXdpbmRvdy5kYXRhTGF5ZXJ8fFtdO3ZhciBvPXtldmVudDpuYW1lLHF1aXpfdmVyc2lvbjpQUFFfQ09ORklHLnZlcnNpb259O2Zvcih2YXIgayBpbiBwcm9wcyl7b1trXT1wcm9wc1trXTt9d2luZG93LmRhdGFMYXllci5wdXNoKG8pO31jYXRjaChlKXt9fQpmdW5jdGlvbiBlc2Mocyl7cmV0dXJuIFN0cmluZyhzKS5yZXBsYWNlKC9bJjw+IiddL2csZnVuY3Rpb24oYyl7cmV0dXJueyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwiXCIiOiImcXVvdDsiLCInIjoiJiMzOTsifVtjXTt9KTt9Cgp2YXIgRklHPSc8ZGl2IGNsYXNzPSJwcHEtcXBhbmVscyI+PGltZyBzcmM9Imh0dHBzOi8vcGF3cGFtcGVyaW5nLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wOS9jb2F0LWNoZWNrLWRvdWJsZS5qcGciIGFsdD0iRG91YmxlIGNvYXQ6IGxvbmcgb3V0ZXIgZ3VhcmQgaGFpcnMgd2l0aCBhIHNvZnQsIGRlbnNlLCBwYWxlciB1bmRlcmNvYXQgYWJvdmUgdGhlIHNraW4iIHdpZHRoPSI3NTIiIGhlaWdodD0iNTMyIiBkZWNvZGluZz0iYXN5bmMiPjxpbWcgc3JjPSJodHRwczovL3Bhd3BhbXBlcmluZy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDkvY29hdC1jaGVjay1zaW5nbGUuanBnIiBhbHQ9IlNpbmdsZSBjb2F0OiB0aGUgc2FtZSBoYWlyIGFsbCB0aGUgd2F5IGRvd24gdG8gdGhlIHNraW4iIHdpZHRoPSI3NTIiIGhlaWdodD0iNTMyIiBkZWNvZGluZz0iYXN5bmMiPjwvZGl2Pic7Cgp2YXIgUVVFU1RJT05TPVsKIHtpZDoibG9va3MiLHE6IldoaWNoIG9mIHRoZXNlIGRvZ3MgaGFzIGEgY29hdCBtb3N0IGxpa2Uge3Bvc30\/IixoZWxwOiJUaGVzZSBleGFtcGxlcyBhcmUgY2x1ZXMgdG8gYSBicm9hZCBjb2F0IGdyb3VwLiBNaXhlZCBjb2F0cyBjYW4gdmFyeSwgc28gY2hvb3NlIHRoZSBjbG9zZXN0IGRlc2NyaXB0aW9uIG9yIHNlbGVjdCBub25lLiIsc3c6e3Nob3J0OiJzaG9ydCIsbWVkaXVtOiJtZWRpdW0iLGxvbmc6ImxvbmciLGFyY3RpYzoiZmx1ZmZ5IixzaW5nbGU6InNpbmdsZSIsbm9uZToidW5zdXJlIn0sb3B0czpbCiAgIFsic2hvcnQiLCJMYWJyYWRvciwgQ29yZ2kgb3IgR3JlYXRlciBTd2lzcyBNb3VudGFpbiBEb2ciLCIiXSwKICAgWyJtZWRpdW0iLCJCb3JkZXIgQ29sbGllIG9yIEF1c3RyYWxpYW4gU2hlcGhlcmQiLCIiXSwKICAgWyJsb25nIiwiQmVybmVzZSBNb3VudGFpbiBEb2csIE5ld2ZvdW5kbGFuZCwgR3JlYXQgUHlyZW5lZXMgb3IgU2FpbnQgQmVybmFyZCIsIiJdLAogICBbImFyY3RpYyIsIlNhbW95ZWQsIFBvbWVyYW5pYW4sIEFtZXJpY2FuIEVza2ltbyBEb2cgb3IgQWxhc2thbiBNYWxhbXV0ZSIsIiJdLAogICBbInNpbmdsZSIsIlBvb2RsZSwgTWFsdGVzZSwgR3JleWhvdW5kIG9yIFdoaXBwZXQiLCIiXSwKICAgWyJub25lIiwiTm9uZSBvZiB0aGVzZSIsIiJdXX0sCiB7aWQ6ImZlZWwiLHE6IldoYXQgZG9lcyB7cG9zfSBjb2F0IGxvb2sgYW5kIGZlZWwgbGlrZT8iLHN3OntzaG9ydDoic2hvcnQiLG1lZGl1bToibWVkaXVtIixmbG93aW5nOiJsb25nIixwbHVzaDoiZmx1ZmZ5IixjdXJseToiY3VybHkiLHNsZWVrOiJzbGVlayIsd2lyeToid2lyeSIsdW5zdXJlOiJ1bnN1cmUifSxvcHRzOlsKICAgWyJzaG9ydCIsIlNob3J0LCBkZW5zZSBhbmQgYSBsaXR0bGUgY29hcnNlIiwiIl0sCiAgIFsibWVkaXVtIiwiTWVkaXVtIGxlbmd0aCwgc29mdCwgbGllcyBmYWlybHkgZmxhdCIsIiJdLAogICBbImZsb3dpbmciLCJMb25nIGFuZCBoZWF2eSwgd2l0aCBmZWF0aGVyaW5nIG9uIHRoZSBsZWdzIG9yIHRhaWwiLCIiXSwKICAgWyJwbHVzaCIsIlRoaWNrIGFuZCBmbHVmZnksIGl0IHN0YW5kcyBvdXQgZnJvbSB0aGUgYm9keSIsIiJdLAogICBbImN1cmx5IiwiQ3VybHkgb3Igd2F2eSIsIiJdLAogICBbInNsZWVrIiwiVmVyeSBzaG9ydCwgdGhpbiBhbmQgc2xlZWsiLCIiXSwKICAgWyJ3aXJ5IiwiV2lyeSBvciByb3VnaCwgbGlrZSBtYW55IHRlcnJpZXJzIiwiIl0sCiAgIFsidW5zdXJlIiwiTm90IHN1cmUsIG9yIGEgcmVhbCBtaXgiLCIiXV19LAoge2lkOiJsYXllciIscToiSWYge2RvZ30gaXMgY29tZm9ydGFibGUsIGdlbnRseSBwYXJ0IGEgbGl0dGxlIGNvYXQgYXQgdGhlIHNob3VsZGVyIG9yIHNpZGUuIFdoYXQgY2FuIHlvdSBzZWU\/IiwKICAgaGVscDoiQ2hvb3NlIHVuc3VyZSBpZiB0aGUgY29hdCBpcyB1bmNsZWFyIG9yIGhhbmRsaW5nIGlzIHVuY29tZm9ydGFibGUuIERvIG5vdCBwdWxsIGEgdHVmdCB0byB0ZXN0IGl0LiIsZmlnOnRydWUsb3B0czpbCiAgIFsiZG91YmxlIiwiQSBzb2Z0ZXIsIHBhbGVyLCBkZW5zZXIgbGF5ZXIgdW5kZXIgdGhlIGxvbmcgaGFpcnMiLCIiXSwKICAgWyJzaW5nbGUiLCJUaGUgc2FtZSBoYWlyIGFsbCB0aGUgd2F5IGRvd24gdG8gdGhlIHNraW4iLCIiXSwKICAgWyJ1bnN1cmUiLCJJIGNhbid0IHRlbGwsIG9yIEknbGwgY2hlY2sgbGF0ZXIiLCIiXV19LAoge2lkOiJwYXR0ZXJuIixxOiJXaGVuIGlzIHtwb3N9IGxvb3NlIGhhaXIgYXQgaXRzIHdvcnN0PyIsb3B0czpbCiAgIFsiYnVyc3RzIiwiQSBjb3VwbGUgb2YgYmlnIGJ1cnN0cyBhIHllYXIsIG9mdGVuIHNwcmluZyBhbmQgZmFsbCIsIiJdLAogICBbImJvdGgiLCJTb21lIGFsbCB5ZWFyLCBwbHVzIGJpZyBidXJzdHMiLCIiXSwKICAgWyJzdGVhZHkiLCJGYWlybHkgc3RlYWR5IGFsbCB5ZWFyIiwiIl0sCiAgIFsidGFuZ2xlcyIsIkl0IGhhcmRseSBzaGVkcywgYnV0IGl0IHRhbmdsZXMgb3IgbWF0cyIsIiJdLAogICBbIm5ldyIsIkkgaGF2ZSBub3QgY2FyZWQgZm9yIHRoaXMgZG9nIGZvciBhIGZ1bGwgeWVhciB5ZXQiLCIiXV19LAoge2lkOiJmbGFncyIsbXVsdGk6dHJ1ZSxxOiJJcyBhbnkgb2YgdGhpcyB0cnVlIGZvciB7ZG9nfSByaWdodCBub3c\/IixoZWxwOiJQaWNrIGFsbCB0aGF0IGFwcGx5LiBJZiB5b3Ugc2VsZWN0IGEgY29uY2Vybiwgd2Ugc2hvdyBndWlkYW5jZSBvbiBnZXR0aW5nIGhlbHAgYW5kIGxlYXZlIG91dCBwcm9kdWN0IHJlY29tbWVuZGF0aW9ucy4iLG9wdHM6WwogICBbIm1hdHMiLCJUaWdodCBtYXRzIGNsb3NlIHRvIHRoZSBza2luIiwiIl0sCiAgIFsic2tpbiIsIlJlZCwgc29yZSBvciBzY2FiYnkgc2tpbiwgb3IgYmFsZCBwYXRjaGVzIiwiIl0sCiAgIFsicGFpbiIsIlB1bGxzIGF3YXkgb3Igc2VlbXMgc29yZSB3aGVuIGJydXNoZWQiLCIiXSwKICAgWyJub25lIiwiTm9uZSBvZiB0aGVzZSIsIiJdXX0sCiB7aWQ6ImdvYWwiLHE6IldoYXQgd291bGQgaGVscCBtb3N0IHJpZ2h0IG5vdz8iLG9wdHM6WwogICBbIndlZWtzIiwiUGxhbm5pbmcgY2FyZSB3aGVuIHNoZWRkaW5nIGNoYW5nZXMiLCIiXSwKICAgWyJ1bmRlcmNvYXQiLCJCcnVzaGluZyB0aGF0IGFjdHVhbGx5IGdldHMgdGhlIHVuZGVyY29hdCBvdXQiLCIiXSwKICAgWyJob3VzZSIsIkdldHRpbmcgaGFpciBvZmYgdGhlIGNvdWNoLCBjYXIgYW5kIGNsb3RoZXMiLCIiXSwKICAgWyJzbWVsbCIsIkEgaG91c2UgdGhhdCBkb2Vzbid0IHNtZWxsIGxpa2UgZG9nIiwiIixmdW5jdGlvbigpe3JldHVybiAhIVBQUV9DT05GSUcudXJscy5zbWVsbDt9XSwKICAgWyJ0b2xlcmF0ZSIsIkhlbHBpbmcgbXkgZG9nIGZlZWwgY29tZm9ydGFibGUgd2l0aCBicnVzaGluZyIsIiJdXX0KXTsKCi8vIHNtYWxsIGNvYXQgc3dhdGNoZXMgc2hvd24gYmVzaWRlIGFuc3dlcnMKdmFyIFNXPShmdW5jdGlvbigpewogZnVuY3Rpb24gZyhpbm5lcil7cmV0dXJuICc8c3ZnIGNsYXNzPSJwcHEtc3ciIHZpZXdCb3g9IjAgMCA0NCA0NCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxyZWN0IHdpZHRoPSI0NCIgaGVpZ2h0PSI0NCIgcng9IjEwIiBmaWxsPSIjZjRlZGUzIi8+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNWEzZDI3IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+Jytpbm5lcisnPC9nPjwvc3ZnPic7fQogZnVuY3Rpb24gbGluZXMoZm4sbil7dmFyIHM9IiI7Zm9yKHZhciBpPTA7aTxuO2krKyl7cys9Zm4oaSk7fXJldHVybiBzO30KIHJldHVybiB7CiAgc2hvcnQ6ZyhsaW5lcyhmdW5jdGlvbihpKXt2YXIgeD03K2kqNDtyZXR1cm4gJzxwYXRoIGQ9Ik0nK3grJyAzNCBsMiAtOSIvPic7fSw4KSksCiAgbWVkaXVtOmcobGluZXMoZnVuY3Rpb24oaSl7dmFyIHg9NitpKjU7cmV0dXJuICc8cGF0aCBkPSJNJyt4KycgMzYgcTMgLTggNyAtMTYiLz4nO30sNykpLAogIGxvbmc6ZyhsaW5lcyhmdW5jdGlvbihpKXt2YXIgeD01K2kqNjtyZXR1cm4gJzxwYXRoIGQ9Ik0nK3grJyA4IHE2IDEyIDAgMjAgcS00IDYgMiAxMCIvPic7fSw2KSksCiAgZmx1ZmZ5OmcoJzxnIHN0cm9rZT0iI2I5OTQ2NiI+JytsaW5lcyhmdW5jdGlvbihpKXt2YXIgYT1pKjMwKk1hdGguUEkvMTgwO3JldHVybiAnPHBhdGggZD0iTTIyIDIyIEwnKygyMisxNCpNYXRoLmNvcyhhKSkudG9GaXhlZCgxKSsnICcrKDIyKzE0Kk1hdGguc2luKGEpKS50b0ZpeGVkKDEpKyciLz4nO30sMTIpKyc8L2c+JyksCiAgY3VybHk6ZyhsaW5lcyhmdW5jdGlvbihpKXt2YXIgeD0xMCsoaSUzKSoxMix5PTEyK01hdGguZmxvb3IoaS8zKSoxNDtyZXR1cm4gJzxwYXRoIGQ9Ik0nK3grJyAnK3krJyBhNCA0IDAgMSAxIC0xIDYgYTMgMyAwIDEgMCA0IC0yIi8+Jzt9LDYpKSwKICBzbGVlazpnKGxpbmVzKGZ1bmN0aW9uKGkpe3ZhciB5PTEyK2kqNTtyZXR1cm4gJzxwYXRoIGQ9Ik04ICcreSsnIGgyOCIvPic7fSw1KSksCiAgd2lyeTpnKGxpbmVzKGZ1bmN0aW9uKGkpe3ZhciB4PTgraSo3O3JldHVybiAnPHBhdGggZD0iTScreCsnIDM0IGwzIC02IGwtMyAtNSBsMyAtNiBsLTIgLTYiLz4nO30sNSkpLAogIHNpbmdsZTpnKCc8cGF0aCBkPSJNOSAxMyBhMy41IDMuNSAwIDEgMSAtMSA1IGEyLjUgMi41IDAgMSAwIDMgLTIiLz48cGF0aCBkPSJNOSAyNiBhMy41IDMuNSAwIDEgMSAtMSA1IGEyLjUgMi41IDAgMSAwIDMgLTIiLz48cGF0aCBkPSJNMjUgMTIgaDEyIi8+PHBhdGggZD0iTTI1IDE4IGgxMiIvPjxwYXRoIGQ9Ik0yNSAyNCBoMTIiLz48cGF0aCBkPSJNMjUgMzAgaDEyIi8+JyksCiAgdW5zdXJlOmcoJzxwYXRoIGQ9Ik0xNyAxNiBhNSA1IDAgMSAxIDcgNSBjLTIgMSAtMiAzIC0yIDUiIC8+PGNpcmNsZSBjeD0iMjIiIGN5PSIzMSIgcj0iMS4yIiBmaWxsPSIjNWEzZDI3Ii8+JykKIH07Cn0pKCk7Cgp2YXIgR1JPVVBTPXsKIHNob3J0OntuYW1lOiJTaG9ydCBkb3VibGUgY29hdCIsYnJlZWRzOiJMYWJyYWRvciBSZXRyaWV2ZXIsIEdyZWF0ZXIgU3dpc3MgTW91bnRhaW4gRG9nLCBDYXJkaWdhbiBhbmQgUGVtYnJva2UgV2Vsc2ggQ29yZ2kiLAogICBkZWFsOiJTaG9ydCBjb2F0cyBtYXkgaGF2ZSBkZW5zZSB1bmRlcmNvYXQuIFNoZWRkaW5nIHRpbWluZyB2YXJpZXMgYnkgZG9nLiIsCiAgIGJsb3c6Ik9mdGVuIHNwcmluZyBhbmQgZmFsbCwgd2l0aCB0aW1pbmcgYW5kIGR1cmF0aW9uIHZhcnlpbmcgYnkgZG9nLiIsCiAgIHdhdGNoOiJIYWlyIGV2ZXJ5d2hlcmUsIGFsbCB5ZWFyLiBUaGlzIGdyb3VwIGtlZXBzIHNoZWRkaW5nIGJldHdlZW4gdGhlIGJpZyBidXJzdHMsIHdoaWNoIGlzIHdoeSBvd25lcnMgb2Z0ZW4gdGhpbmsgdGhlIHNlYXNvbnMgZG9uJ3QgYXBwbHkgdG8gdGhlbS4ifSwKIG1lZGl1bTp7bmFtZToiTWVkaXVtIGRvdWJsZSBjb2F0IixicmVlZHM6IkJvcmRlciBDb2xsaWUsIEF1c3RyYWxpYW4gU2hlcGhlcmQiLAogICBkZWFsOiJBIG1lZGl1bS1sZW5ndGggY29hdCB3aXRoIGFuIHVuZGVyY29hdC4gRmVhdGhlcmluZyBhbmQgZGVuc2l0eSB2YXJ5IGJ5IGRvZy4iLAogICBibG93OiJPZnRlbiBzcHJpbmcgYW5kIGZhbGwsIHdpdGggdGltaW5nIGFuZCBkdXJhdGlvbiB2YXJ5aW5nIGJ5IGRvZy4iLAogICB3YXRjaDoiVGhlIGZlYXRoZXJpbmcgYmVoaW5kIHRoZSBsZWdzIGFuZCBvbiB0aGUgdGFpbC4gTWF0cyBzdGFydCB0aGVyZSBhbmQgc3RheSBoaWRkZW4gdW50aWwgdGhleSdyZSB0aWdodC4ifSwKIGxvbmc6e25hbWU6IkxvbmcgZG91YmxlIGNvYXQiLGJyZWVkczoiTmV3Zm91bmRsYW5kLCBCZXJuZXNlIE1vdW50YWluIERvZywgR3JlYXQgUHlyZW5lZXMsIFNhaW50IEJlcm5hcmQiLAogICBkZWFsOiJWb2x1bWUuIE1hdHMgZm9ybSBvdXQgb2Ygc2lnaHQsIGNsb3NlIHRvIHRoZSBza2luLCBiZWhpbmQgdGhlIGVhcnMgYW5kIHVuZGVyIHRoZSBsZWdzLiIsCiAgIGJsb3c6Ik9mdGVuIHNwcmluZyBhbmQgZmFsbC4gVGhlIGxlbmd0aCBvZiBhIGhlYXZ5IHNoZWQgdmFyaWVzLiIsCiAgIHdhdGNoOiJCZWhpbmQgdGhlIGVhcnMsIHRoZSBhcm1waXRzIGFuZCB0aGUgc2tpcnQuIFRocmVlIHBsYWNlcyB5b3Ugd29uJ3Qgc2VlIHVubGVzcyB5b3UgbG9vayBvbiBwdXJwb3NlLiJ9LAogYXJjdGljOntuYW1lOiJEZW5zZSAvIGFyY3RpYyBkb3VibGUgY29hdCIsYnJlZWRzOiJQb21lcmFuaWFuLCBTYW1veWVkLCBBbWVyaWNhbiBFc2tpbW8gRG9nLCBBbGFza2FuIE1hbGFtdXRlIiwKICAgZGVhbDoiQSBkZW5zZSB1bmRlcmNvYXQuIEFzayBhIHF1YWxpZmllZCBncm9vbWVyIGFib3V0IHN1aXRhYmxlIHRvb2xzIGFuZCBhdm9pZCByZXBlYXRlZGx5IHdvcmtpbmcgb25lIGFyZWEuIiwKICAgYmxvdzoiU2Vhc29uYWwgc2hlZGRpbmcgbWF5IGJlIGhlYXZpZXIgaW4gc3ByaW5nIG9yIGZhbGwuIEluZGl2aWR1YWwgcGF0dGVybnMgdmFyeS4iLAogICB3YXRjaDoiQ2hhbmdlcyBmcm9tIHlvdXIgZG9nJ3MgdXN1YWwgcGF0dGVybi4gQXNrIHlvdXIgdmV0IGFib3V0IG5ldyB0aGlubmluZyBvciBiYWxkIGFyZWFzLCBldmVuIHdpdGhvdXQgcmVkIG9yIGl0Y2h5IHNraW4uIn0sCiBzaW5nbGU6e25hbWU6IlNtb290aCBzaW5nbGUgLyBjdXJseSBjb2F0IixicmVlZHM6IlBvb2RsZSwgTWFsdGVzZSwgR3JleWhvdW5kLCBXaGlwcGV0IiwKICAgZGVhbDoiVGhpcyBicm9hZCBncm91cCBpbmNsdWRlcyBzbW9vdGggYW5kIGN1cmx5IGNvYXRzIHdpdGggZGlmZmVyZW50IGNhcmUgbmVlZHMuIEV2ZW4gc2luZ2xlLWNvYXRlZCBkb2dzIHNoZWQuIiwKICAgYmxvdzoiUGF0dGVybnMgdmFyeS4gQ3VybHkgY29hdHMgbWF5IHJldGFpbiBzaGVkIGhhaXIgYW5kIGRldmVsb3AgdGFuZ2xlcy4iLAogICB3YXRjaDoiU21vb3RoIGNvYXRzIG1heSBzaGVkOyBjdXJseSBjb2F0cyBtYXkgcmV0YWluIGxvb3NlIGhhaXIgYW5kIHRhbmdsZS4gQXNrIGFib3V0IHRoZSBhY3R1YWwgY29hdCBhbmQgc3VpdGFibGUgY2FyZS4ifSwKIHdpcnk6e25hbWU6Ildpcnkgb3Igcm91Z2ggY29hdCIsYnJlZWRzOiJNYW55IHRlcnJpZXJzIGFuZCBzY2huYXV6ZXJzIGhhdmUgdGhpcyBjb2F0IiwKICAgZGVhbDoiV2lyeSBjb2F0cyBkb24ndCBmaXQgbmVhdGx5IGludG8gdGhlIGZpdmUgZ3JvdXBzIG91ciBndWlkZXMgYXJlIGJ1aWx0IGFyb3VuZC4gVGhleSBvZnRlbiBuZWVkIGEgZ3Jvb21lcidzIHRlY2huaXF1ZXMgdGhhdCBhcmUgc3BlY2lmaWMgdG8gdGhpcyBjb2F0LiIsCiAgIGJsb3c6IlZhcmllcyBieSBicmVlZCBhbmQgYnkgaG93IHRoZSBjb2F0IGlzIGtlcHQuIiwKICAgd2F0Y2g6IlRoZSBiZWFyZCwgZXllYnJvd3MgYW5kIGxlZ3MsIHdoZXJlIGRlYnJpcyBhbmQgdGFuZ2xlcyBidWlsZCB1cC4ifSwKIHVua25vd246e25hbWU6IldlIGNhbid0IHRlbGwgeWV0IixicmVlZHM6IiIsCiAgIGRlYWw6IlRoZXNlIGFuc3dlcnMgYXJlIG5vdCBlbm91Z2ggdG8gc2V0dGxlIHRoZSBjb2F0IGdyb3VwLiBNaXhlZCBjb2F0cyBhbmQgYSBxdWljayB2aXN1YWwgY2hlY2sgY2FuIGJlIGluY29uY2x1c2l2ZS4gQXNrIGEga25vd2xlZGdlYWJsZSBncm9vbWVyIHRvIGFzc2VzcyB0aGUgYWN0dWFsIGNvYXQuIiwKICAgYmxvdzoiRGVwZW5kcyBvbiB0aGUgY29hdCBncm91cC4iLAogICB3YXRjaDoiVGhlIGxheWVyIHVuZGVyIHRoZSBsb25nIGhhaXJzLiBBIGhvbWUgY2hlY2sgY2FuIGJlIGluY29uY2x1c2l2ZTsgYSBncm9vbWVyIGNhbiBoZWxwIGNvbmZpcm0gdGhlIGNvYXQuIn0KfTsKdmFyIE9SREVSPVsic2hvcnQiLCJtZWRpdW0iLCJsb25nIiwiYXJjdGljIl07Cgp2YXIgYW5zd2Vycz17fSwgaWR4PTAsIHJlc3VsdD1udWxsLCBlbWFpbGVkPWZhbHNlLCBkb2dOYW1lPSIiOwpmdW5jdGlvbiBwb3MoY2FwKXtpZighZG9nTmFtZSlyZXR1cm4gY2FwPyJZb3VyIGRvZydzIjoieW91ciBkb2cncyI7cmV0dXJuIGRvZ05hbWUrKC9zJC9pLnRlc3QoZG9nTmFtZSk\/IiciOiIncyIpO30KZnVuY3Rpb24gZG5hbWUoY2FwKXtyZXR1cm4gZG9nTmFtZXx8KGNhcD8iWW91ciBkb2ciOiJ5b3VyIGRvZyIpO30KZnVuY3Rpb24gZmlsbCh0KXtyZXR1cm4gU3RyaW5nKHQpLnJlcGxhY2UoL1x7cG9zXH0vZyxwb3MoZmFsc2UpKS5yZXBsYWNlKC9ce1Bvc1x9L2cscG9zKHRydWUpKS5yZXBsYWNlKC9ce2RvZ1x9L2csZG5hbWUoZmFsc2UpKS5yZXBsYWNlKC9ce0RvZ1x9L2csZG5hbWUodHJ1ZSkpO30KCmZ1bmN0aW9uIHZpc2libGVPcHRzKHEpe3JldHVybiBxLm9wdHMuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiAhb1szXXx8b1szXSgpO30pO30KZnVuY3Rpb24gc2hvdyh2aWV3KXsKICByb290LnNldEF0dHJpYnV0ZSgiZGF0YS1zY3JlZW4iLHZpZXcpOwogIHZhciB2aWV3cz1yb290LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLXZpZXddIik7CiAgZm9yKHZhciBpPTA7aTx2aWV3cy5sZW5ndGg7aSsrKXt2aWV3c1tpXS5oaWRkZW49dmlld3NbaV0uZ2V0QXR0cmlidXRlKCJkYXRhLXZpZXciKSE9PXZpZXc7fQp9CmZ1bmN0aW9uIGFubm91bmNlKHQpe2xpdmUudGV4dENvbnRlbnQ9IiI7c2V0VGltZW91dChmdW5jdGlvbigpe2xpdmUudGV4dENvbnRlbnQ9dDt9LDYwKTt9CmZ1bmN0aW9uIHNjcm9sbFRvcCgpe3ZhciByPXJvb3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoci50b3A8MHx8ci50b3A+d2luZG93LmlubmVySGVpZ2h0KjAuNCl7d2luZG93LnNjcm9sbFRvKHt0b3A6d2luZG93LnBhZ2VZT2Zmc2V0K3IudG9wLTI0LGJlaGF2aW9yOiJzbW9vdGgifSk7fX0KCmZ1bmN0aW9uIHJlbmRlclEoKXsKICB2YXIgcT1RVUVTVElPTlNbaWR4XSwgbj1RVUVTVElPTlMubGVuZ3RoLCB0eXBlPXEubXVsdGk\/ImNoZWNrYm94IjoicmFkaW8iOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcHEtc3RlcCIpLnRleHRDb250ZW50PSJRdWVzdGlvbiAiKyhpZHgrMSkrIiBvZiAiK247CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBwcS1iYXItZmlsbCIpLnN0eWxlLndpZHRoPU1hdGgucm91bmQoaWR4L24qMTAwKSsiJSI7CiAgdmFyIGN1cj1hbnN3ZXJzW3EuaWRdLCBoPSc8ZmllbGRzZXQgY2xhc3M9IicrKHEubXVsdGk\/InBwcS1tdWx0aSI6IiIpKyciPjxsZWdlbmQgY2xhc3M9InBwcS1xIiBpZD0icHBxLWxlZ2VuZCIgdGFiaW5kZXg9Ii0xIj4nK2VzYyhmaWxsKHEucSkpKyc8L2xlZ2VuZD4nOwogIGlmKHEuaGVscCkgaCs9JzxwIGNsYXNzPSJwcHEtaGVscCI+Jytlc2MoZmlsbChxLmhlbHApKSsnPC9wPic7CiAgaWYocS5maWcpIGgrPUZJRzsKICBoKz0nPGRpdiBjbGFzcz0icHBxLW9wdHMiPic7CiAgdmlzaWJsZU9wdHMocSkuZm9yRWFjaChmdW5jdGlvbihvLGkpewogICAgdmFyIGlkPSJwcHEtIitxLmlkKyItIitvWzBdOwogICAgdmFyIGNoZWNrZWQ9cS5tdWx0aT8oY3VyJiZjdXIuaW5kZXhPZihvWzBdKT4tMSk6KGN1cj09PW9bMF0pOwogICAgaCs9JzxkaXYgY2xhc3M9InBwcS1vcHQiPjxpbnB1dCB0eXBlPSInK3R5cGUrJyIgaWQ9IicraWQrJyIgbmFtZT0iJytxLmlkKyciIHZhbHVlPSInK29bMF0rJyInKyhjaGVja2VkPyIgY2hlY2tlZCI6IiIpKyc+PGxhYmVsIGZvcj0iJytpZCsnIj48c3BhbiBjbGFzcz0icHBxLW1hcmsiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PHNwYW4gY2xhc3M9InBwcS1vdGV4dCI+Jytlc2MoZmlsbChvWzFdKSkrKG9bMl0\/JzxzbWFsbD4nK2VzYyhvWzJdKSsnPC9zbWFsbD4nOicnKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJwcHEtc2VsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+U2VsZWN0ZWQ8L3NwYW4+PC9sYWJlbD48L2Rpdj4nOwogIH0pOwogIGgrPSc8L2Rpdj48L2ZpZWxkc2V0PjxkaXYgY2xhc3M9InBwcS1uYXYiPicrCiAgICAgKGlkeD4wPyc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBwcS1saW5rIiBkYXRhLWFjdD0iYmFjayI+JmxhcnI7IEJhY2s8L2J1dHRvbj4nOic8c3Bhbj48L3NwYW4+JykrCiAgICAgJzxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0icHBxLWJ0biBwcHEtZ3JlZW4iIGlkPSJwcHEtbmV4dCInKyhoYXNBbnN3ZXIocSk\/IiI6IiBkaXNhYmxlZCIpKyc+JysoaWR4PT09bi0xPyJTZWUgbXkgcmVzdWx0IjoiTmV4dCIpKyc8L2J1dHRvbj48L2Rpdj4nOwogIHFmb3JtLmlubmVySFRNTD1oOwogIHRyYWNrKCJxdWl6X3F1ZXN0aW9uX3ZpZXciLHtxdWVzdGlvbjpxLmlkLHN0ZXA6aWR4KzF9KTsKfQpmdW5jdGlvbiBoYXNBbnN3ZXIocSl7dmFyIGE9YW5zd2Vyc1txLmlkXTtyZXR1cm4gcS5tdWx0aT8oYSYmYS5sZW5ndGg+MCk6ISFhO30KZnVuY3Rpb24gcmVhZFEoKXsKICB2YXIgcT1RVUVTVElPTlNbaWR4XSwgZWxzPXFmb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9IicrcS5pZCsnIl0nKTsKICBpZihxLm11bHRpKXt2YXIgdj1bXTtmb3IodmFyIGk9MDtpPGVscy5sZW5ndGg7aSsrKXtpZihlbHNbaV0uY2hlY2tlZCl2LnB1c2goZWxzW2ldLnZhbHVlKTt9YW5zd2Vyc1txLmlkXT12O30KICBlbHNle2Fuc3dlcnNbcS5pZF09bnVsbDtmb3IodmFyIGo9MDtqPGVscy5sZW5ndGg7aisrKXtpZihlbHNbal0uY2hlY2tlZClhbnN3ZXJzW3EuaWRdPWVsc1tqXS52YWx1ZTt9fQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcHEtbmV4dCIpLmRpc2FibGVkPSFoYXNBbnN3ZXIocSk7Cn0KdmFyIHBvaW50ZXJQaWNrPWZhbHNlOwpxZm9ybS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQuY2xvc2VzdCYmZS50YXJnZXQuY2xvc2VzdCgiLnBwcS1vcHQiKSlwb2ludGVyUGljaz10cnVlO30pOwpxZm9ybS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKGUpewogIHZhciBxPVFVRVNUSU9OU1tpZHhdOwogIGlmKHEubXVsdGkmJmUudGFyZ2V0LnR5cGU9PT0iY2hlY2tib3giKXsKICAgIHZhciBib3hlcz1xZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPSInK3EuaWQrJyJdJyk7CiAgICBpZihlLnRhcmdldC52YWx1ZT09PSJub25lIiYmZS50YXJnZXQuY2hlY2tlZCl7Zm9yKHZhciBpPTA7aTxib3hlcy5sZW5ndGg7aSsrKXtpZihib3hlc1tpXS52YWx1ZSE9PSJub25lIilib3hlc1tpXS5jaGVja2VkPWZhbHNlO319CiAgICBlbHNlIGlmKGUudGFyZ2V0LmNoZWNrZWQpe2Zvcih2YXIgaz0wO2s8Ym94ZXMubGVuZ3RoO2srKyl7aWYoYm94ZXNba10udmFsdWU9PT0ibm9uZSIpYm94ZXNba10uY2hlY2tlZD1mYWxzZTt9fQogIH0KICByZWFkUSgpOwogIHRyYWNrKCJxdWl6X2Fuc3dlcl9zZWxlY3RlZCIse3F1ZXN0aW9uOnEuaWQsYW5zd2VyOnEubXVsdGk\/YW5zd2Vyc1txLmlkXS5qb2luKCIsIik6YW5zd2Vyc1txLmlkXX0pOwogIC8vIFZpc2l0b3JzIGNob29zZSBOZXh0IGV4cGxpY2l0bHkgc28gdGhleSBjYW4gcmV2aWV3IG9yIGNoYW5nZSBhbiBhbnN3ZXIuCiAgcG9pbnRlclBpY2s9ZmFsc2U7Cn0pOwpxZm9ybS5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTtuZXh0KCk7fSk7CnFmb3JtLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXt2YXIgYj1lLnRhcmdldC5jbG9zZXN0JiZlLnRhcmdldC5jbG9zZXN0KCJbZGF0YS1hY3Q9YmFja10iKTtpZihiKXt0cmFjaygicXVpel9iYWNrX2NsaWNrZWQiLHtmcm9tOlFVRVNUSU9OU1tpZHhdLmlkfSk7aWR4LS07cmVuZGVyUSgpO2ZvY3VzTGVnZW5kKCk7fX0pOwpmdW5jdGlvbiBmb2N1c0xlZ2VuZCgpe3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcHEtbGVnZW5kIik7aWYobCl7bC5mb2N1cyh7cHJldmVudFNjcm9sbDp0cnVlfSk7fWFubm91bmNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcHEtc3RlcCIpLnRleHRDb250ZW50KyIuICIrZmlsbChRVUVTVElPTlNbaWR4XS5xKSk7c2Nyb2xsVG9wKCk7fQpmdW5jdGlvbiBuZXh0KCl7CiAgaWYoIWhhc0Fuc3dlcihRVUVTVElPTlNbaWR4XSkpcmV0dXJuOwogIGlmKGlkeDxRVUVTVElPTlMubGVuZ3RoLTEpe2lkeCsrO3JlbmRlclEoKTtmb2N1c0xlZ2VuZCgpO3JldHVybjt9CiAgcmVzdWx0PXNjb3JlKCk7CiAgdHJhY2soInF1aXpfY29tcGxldGVkIix7cmVzdWx0X2dyb3VwOnJlc3VsdC5ncm91cCxjb25maWRlbmNlOnJlc3VsdC5jb25maWRlbmNlLHNhZmV0eV9mbGFnOnJlc3VsdC5mbGFncy5sZW5ndGg+MH0pOwogIHNob3dSZXN1bHQoKTsKfQoKZnVuY3Rpb24gaXNEb3VibGUoZyl7cmV0dXJuIE9SREVSLmluZGV4T2YoZyk+LTE7fQpmdW5jdGlvbiBsb25nZXIoYSxiKXtyZXR1cm4gT1JERVIuaW5kZXhPZihhKT49T1JERVIuaW5kZXhPZihiKT9hOmI7fQpmdW5jdGlvbiBzY29yZSgpewogIHZhciBmPWFuc3dlcnMuZmVlbCwgbD1hbnN3ZXJzLmxheWVyLCBrPWFuc3dlcnMubG9va3MsIHA9YW5zd2Vycy5wYXR0ZXJuOwogIHZhciBmcm9tRmVlbD17c2hvcnQ6InNob3J0IixtZWRpdW06Im1lZGl1bSIsZmxvd2luZzoibG9uZyIscGx1c2g6ImFyY3RpYyJ9W2ZdfHxudWxsOwogIHZhciBmcm9tTG9va3M9aXNEb3VibGUoayk\/azpudWxsOwogIHZhciBncm91cCwgY29uZmlkZW5jZSwgd2h5OwogIGlmKGY9PT0id2lyeSIpe2dyb3VwPSJ3aXJ5Ijtjb25maWRlbmNlPSJsaWtlbHkiO30KICBlbHNlIGlmKGw9PT0iZG91YmxlIil7CiAgICBpZihmcm9tRmVlbCYmZnJvbUxvb2tzKXtncm91cD1mcm9tRmVlbD09PWZyb21Mb29rcz9mcm9tRmVlbDoidW5rbm93bl9kb3VibGUiO30KICAgIGVsc2V7Z3JvdXA9ZnJvbUxvb2tzfHxmcm9tRmVlbDt9CiAgICBpZighZ3JvdXApe2dyb3VwPSJ1bmtub3duX2RvdWJsZSI7fQogICAgY29uZmlkZW5jZT0oZnJvbUZlZWwmJmZyb21Mb29rcyYmZnJvbUZlZWwhPT1mcm9tTG9va3MpPyJiZXR3ZWVuIjoiY2hlY2tlZCI7CiAgfQogIGVsc2UgaWYobD09PSJzaW5nbGUiKXtncm91cD0oKGY9PT0iY3VybHkifHxmPT09InNsZWVrIikmJiFmcm9tTG9va3MpPyJzaW5nbGUiOiJ1bmtub3duIjtjb25maWRlbmNlPSJsaWtlbHkiO30KICBlbHNlewogICAgdmFyIHNpbmdsZVZvdGVzPShmPT09ImN1cmx5Inx8Zj09PSJzbGVlayI\/MTowKSsoaz09PSJzaW5nbGUiPzE6MCkrKHA9PT0idGFuZ2xlcyI\/MTowKTsKICAgIHZhciBkYmw9ZnJvbUxvb2tzfHxmcm9tRmVlbDsKICAgIGlmKHNpbmdsZVZvdGVzPj0xJiYhZGJsKXtncm91cD0ic2luZ2xlIjt9CiAgICBlbHNlIGlmKGRibCYmc2luZ2xlVm90ZXM9PT0wKXtncm91cD0oZnJvbUZlZWwmJmZyb21Mb29rcyYmZnJvbUZlZWwhPT1mcm9tTG9va3MpPyJ1bmtub3duIjpkYmw7fQogICAgZWxzZXtncm91cD0idW5rbm93biI7fQogICAgY29uZmlkZW5jZT0ibGlrZWx5IjsKICB9CiAgdmFyIGZsYWdzPShhbnN3ZXJzLmZsYWdzfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4IT09Im5vbmUiO30pOwogIHJldHVybiB7Z3JvdXA6Z3JvdXAsY29uZmlkZW5jZTpjb25maWRlbmNlLGZsYWdzOmZsYWdzLGdvYWw6YW5zd2Vycy5nb2FsfTsKfQoKZnVuY3Rpb24gZmFjdExpc3QoZyl7CiAgcmV0dXJuICc8ZGwgY2xhc3M9InBwcS1mYWN0cyI+JysKICAgJzxkaXYgY2xhc3M9InBwcS1mYWN0Ij48ZHQ+V2hhdCB5b3VcJ3JlIGRlYWxpbmcgd2l0aDwvZHQ+PGRkPicrZXNjKGcuZGVhbCkrJzwvZGQ+PC9kaXY+JysKICAgJzxkaXYgY2xhc3M9InBwcS1mYWN0Ij48ZHQ+V2hlbiBpdCBzaGVkcyBoYXJkZXN0PC9kdD48ZGQ+Jytlc2MoZy5ibG93KSsnPC9kZD48L2Rpdj4nKwogICAnPGRpdiBjbGFzcz0icHBxLWZhY3QiPjxkdD5XaGF0IHRvIGtlZXAgYW4gZXllIG9uPC9kdD48ZGQ+Jytlc2MoZy53YXRjaCkrJzwvZGQ+PC9kaXY+PC9kbD4nOwp9CmZ1bmN0aW9uIGxhdW5jaE5vdGUoKXsgcmV0dXJuICIiOyB9CmZ1bmN0aW9uIG9mZmVyKGtleSxraWNrZXIsdGl0bGUsYm9keSxjdGEsbWFpbixleHRyYSl7CiAgdmFyIHU9UFBRX0NPTkZJRy51cmxzW2tleV07IGlmKCF1KSByZXR1cm4gIiI7CiAgdmFyIGltZz1QUFFfQ09ORklHLmltYWdlcyYmUFBRX0NPTkZJRy5pbWFnZXNba2V5XT8nPGltZyBzcmM9IicrZXNjKFBQUV9DT05GSUcuaW1hZ2VzW2tleV0pKyciIGFsdD0iIiB3aWR0aD0iODgiIGxvYWRpbmc9ImxhenkiPic6Jyc7CiAgcmV0dXJuICc8ZGl2IGNsYXNzPSJwcHEtb2ZmZXInKyhtYWluPyIgcHBxLW1haW4iOiIiKSsnIj48ZGl2IGNsYXNzPSJwcHEtb2ZmZXItaW4iPicraW1nKyc8ZGl2PjxwIGNsYXNzPSJwcHEta2lja2VyIj4nK2VzYyhraWNrZXIpKyc8L3A+PGg0PicrZXNjKHRpdGxlKSsnPC9oND4nKyhleHRyYXx8JycpKyc8cD4nK2VzYyhib2R5KSsnPC9wPjwvZGl2PjwvZGl2PjxhIGNsYXNzPSJwcHEtYnRuJysobWFpbj8iIjoiIHBwcS1ncmVlbiIpKyciIGhyZWY9IicrZXNjKHUpKyciIGRhdGEtb2ZmZXI9Iicra2V5KyciPicrZXNjKGN0YSkrJzwvYT48L2Rpdj4nOwp9CmZ1bmN0aW9uIHNhZmV0eUJsb2NrKGZsYWdzKXsKICBpZighZmxhZ3MubGVuZ3RoKSByZXR1cm4gIiI7CiAgdmFyIGxpPSIiOwogIGlmKGZsYWdzLmluZGV4T2YoIm1hdHMiKT4tMSkgbGkrPSc8bGk+PGI+VGlnaHQgbWF0czo8L2I+IGRvIG5vdCBwdWxsIGEgYnJ1c2ggb3IgcmFrZSB0aHJvdWdoIHRoZW0gb3IgY3V0IG5lYXIgdGhlIHNraW4uIEFycmFuZ2UgaGVscCBmcm9tIGEgcXVhbGlmaWVkIGdyb29tZXIgb3IgdmV0LiBQYWluIG9yIGlycml0YXRlZCBza2luIG5lZWRzIHZldGVyaW5hcnkgYWR2aWNlLjwvbGk+JzsKICBpZihmbGFncy5pbmRleE9mKCJza2luIik+LTEpIGxpKz0nPGxpPjxiPlNvcmUgc2tpbiBvciBiYWxkIHBhdGNoZXM6PC9iPiB0aGF0IGlzblwndCBub3JtYWwgc2hlZGRpbmcuIExlYXZlIHRoYXQgYXJlYSBhbG9uZSBhbmQgdGFsayB0byB5b3VyIHZldCwgZXNwZWNpYWxseSBpZiB0aGVyZVwncyBpdGNoaW5nLCByZWRuZXNzLCBzb3JlcywgYmxlZWRpbmcgb3IgYSBiYWQgc21lbGwuPC9saT4nOwogIGlmKGZsYWdzLmluZGV4T2YoInBhaW4iKT4tMSkgbGkrPSc8bGk+PGI+UHVsbGluZyBhd2F5IG9yIHNlZW1pbmcgc29yZTo8L2I+IHN0b3AgYnJ1c2hpbmcgZm9yIG5vdy4gSWYgJytlc2MoZG5hbWUoZmFsc2UpKSsnIHNlZW1zIHRvIGJlIGluIHBhaW4sIGFzayB5b3VyIHZldCB0byB0YWtlIGEgbG9vayBiZWZvcmUgeW91IHN0YXJ0IGFnYWluLjwvbGk+JzsKICByZXR1cm4gJzxkaXYgY2xhc3M9InBwcS1hbGVydCIgcm9sZT0ibm90ZSIgYXJpYS1sYWJlbGxlZGJ5PSJwcHEtYWxlcnQtaCI+PGgzIGlkPSJwcHEtYWxlcnQtaCI+UGF1c2UgYmVmb3JlIHlvdSBicnVzaCBhbnkgZnVydGhlcjwvaDM+PHVsPicrbGkrJzwvdWw+PHAgc3R5bGU9Im1hcmdpbjoxMnB4IDAgMCI+WW91ciBjb2F0IHJlc3VsdCBpcyBiZWxvdy4gRXZlcnl0aGluZyBpbiBpdCBpcyBmb3IgbGF0ZXIsIG9uY2UgdGhvc2UgdGhpbmdzIGFyZSBzb3J0ZWQuPC9wPjwvZGl2Pic7Cn0KCmZ1bmN0aW9uIHdoeVRleHQocil7CiAgdmFyIGJpdHM9W10sIGE9YW5zd2VyczsKICBpZihhLmxheWVyPT09ImRvdWJsZSIpIGJpdHMucHVzaCgieW91IGZvdW5kIGEgc29mdCwgcGFsZXIgbGF5ZXIgdW5kZXIgdGhlIGxvbmcgaGFpcnMiKTsKICBpZihhLmxheWVyPT09InNpbmdsZSIpIGJpdHMucHVzaCgieW91IGZvdW5kIHRoZSBzYW1lIGhhaXIgYWxsIHRoZSB3YXkgdG8gdGhlIHNraW4iKTsKICB2YXIgbG9va3M9e3Nob3J0OiJhIExhYnJhZG9yIG9yIENvcmdpIixtZWRpdW06ImEgQm9yZGVyIENvbGxpZSBvciBBdXNzaWUiLGxvbmc6ImEgQmVybmVzZSBvciBOZXdmb3VuZGxhbmQiLGFyY3RpYzoiYSBTYW1veWVkIG9yIFBvbWVyYW5pYW4iLHNpbmdsZToiYSBQb29kbGUgb3IgR3JleWhvdW5kIn1bYS5sb29rc107CiAgaWYobG9va3MpIGJpdHMucHVzaCgidGhlIGNvYXQgbG9va3MgbW9zdCBsaWtlICIrbG9va3MpOwogIHZhciBmZWVsPXtzaG9ydDoic2hvcnQgYW5kIGRlbnNlIixtZWRpdW06Im1lZGl1bSBhbmQgc29mdCIsZmxvd2luZzoibG9uZyBhbmQgaGVhdnkiLHBsdXNoOiJ0aGljayBhbmQgZmx1ZmZ5IixjdXJseToiY3VybHkgb3Igd2F2eSIsc2xlZWs6InNob3J0IGFuZCBzbGVlayIsd2lyeToid2lyeSBvciByb3VnaCJ9W2EuZmVlbF07CiAgaWYoZmVlbCkgYml0cy5wdXNoKCJ5b3UgZGVzY3JpYmVkIGl0IGFzICIrZmVlbCk7CiAgaWYoIWJpdHMubGVuZ3RoKSByZXR1cm4gIiI7CiAgdmFyIHQ9Yml0cy5sZW5ndGg+MT9iaXRzLnNsaWNlKDAsLTEpLmpvaW4oIiwgIikrIiwgYW5kICIrYml0c1tiaXRzLmxlbmd0aC0xXTpiaXRzWzBdOwogIHJldHVybiB0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSkrIi4iOwp9CmZ1bmN0aW9uIHNob3dSZXN1bHQoKXsKICB2YXIgcj1yZXN1bHQsIGtleT1yLmdyb3VwPT09InVua25vd25fZG91YmxlIj8idW5rbm93biI6ci5ncm91cCwgZz1HUk9VUFNba2V5XTsKICB2YXIgZGJsPWlzRG91YmxlKHIuZ3JvdXApfHxyLmdyb3VwPT09InVua25vd25fZG91YmxlIjsKICB2YXIgYmFkZ2U9IiI7CiAgaWYoci5jb25maWRlbmNlPT09ImNoZWNrZWQiKSBiYWRnZT0nPHNwYW4gY2xhc3M9InBwcS1iYWRnZSI+QSBzdGFydGluZyBjbHVlIGZyb20geW91ciBhbnN3ZXJzLCBub3QgYSBjb25maXJtZWQgY29hdCBhc3Nlc3NtZW50PC9zcGFuPic7CiAgZWxzZSBpZihyLmNvbmZpZGVuY2U9PT0iYmV0d2VlbiIpIGJhZGdlPSc8c3BhbiBjbGFzcz0icHBxLWJhZGdlIHBwcS1saWtlbHkiPkJldHdlZW4gZ3JvdXBzOiBhc2sgYSBncm9vbWVyIHRvIGNvbmZpcm08L3NwYW4+JzsKICBlbHNlIGlmKGtleSE9PSJ1bmtub3duIiYma2V5IT09IndpcnkiKSBiYWRnZT0nPHNwYW4gY2xhc3M9InBwcS1iYWRnZSBwcHEtbGlrZWx5Ij5Qcm92aXNpb25hbCByZXN1bHQuIEFzayBhIGdyb29tZXIgaWYgdW5zdXJlPC9zcGFuPic7CiAgdmFyIHRpdGxlPShyLmdyb3VwPT09InVua25vd25fZG91YmxlIik\/IlBvc3NpYmxlIGRvdWJsZSBjb2F0LCBncm91cCB1bmNsZWFyIjpnLm5hbWU7CiAgdmFyIGg9JzxkaXYgY2xhc3M9InBwcS1jYXJkIj4nK3NhZmV0eUJsb2NrKHIuZmxhZ3MpKwogICAnPHNwYW4gY2xhc3M9InBwcS1leWVicm93Ij4nK2VzYyhwb3ModHJ1ZSkpKycgY29hdCBncm91cDwvc3Bhbj4nKwogICAnPGgyIGNsYXNzPSJwcHEtcnRpdGxlIiBpZD0icHBxLXJoIiB0YWJpbmRleD0iLTEiPicrZXNjKHRpdGxlKSsnPC9oMj4nK2JhZGdlKwogICAoZy5icmVlZHM\/JzxwIGNsYXNzPSJwcHEtYnJlZWRzIj4nK2VzYyhnLmJyZWVkcykrJzwvcD4nOicnKTsKICBpZihyLmdyb3VwPT09InVua25vd25fZG91YmxlIil7CiAgICBoKz0nPHA+Jytlc2MoZG5hbWUodHJ1ZSkpKycgbWF5IGhhdmUgYW4gdW5kZXJjb2F0LCBidXQgeW91ciBvdGhlciBhbnN3ZXJzIGRpZG5cJ3QgcG9pbnQgY2xlYXJseSB0byBvbmUgb2YgdGhlIGZvdXIgZG91YmxlLWNvYXQgZ3JvdXBzLiBUaGF0XCdzIGNvbW1vbiB3aXRoIG1peGVkIGJyZWVkcy4gQSBxdWFsaWZpZWQgZ3Jvb21lciBjYW4gY2hlY2sgdGhlIGNvYXQgYW5kIGhlbHAgeW91IGNob29zZSBzdWl0YWJsZSB0b29scyBhbmQgYSByb3V0aW5lIGJlZm9yZSB5b3UgYnV5IGEgZ3VpZGUuPC9wPic7CiAgfSBlbHNlIHsgaCs9ZmFjdExpc3QoZyk7IH0KICB2YXIgd2h5PXdoeVRleHQocik7IGlmKHdoeSkgaCs9JzxwIGNsYXNzPSJwcHEtd2h5Ij48Yj5XaHkgdGhpcyByZXN1bHQ6PC9iPiAnK2VzYyh3aHkpKyc8L3A+JzsKICBpZihpc0RvdWJsZShyLmdyb3VwKSkgaCs9JzxwIGNsYXNzPSJwcHEtc21hbGwiPlNlYXNvbmFsIHJlZmVyZW5jZXMgYXJlIGdlbmVyYWwgcGF0dGVybnMsIG5vdCBjYWxlbmRhciBwcmVkaWN0aW9ucy48L3A+JysKICAgICc8ZGl2IGNsYXNzPSJwcHEtbm9ybWFsIj48cCBzdHlsZT0ibWFyZ2luOjAiPjxiPklzIHRoaXMgbXVjaCBoYWlyIG5vcm1hbD88L2I+IEhlYXZ5IHNlYXNvbmFsIHNoZWRkaW5nIGNhbiBoYXBwZW4sIGJ1dCBuZXcgcGF0Y2h5IG9yIGJhbGQgYXJlYXMgZGVzZXJ2ZSBhIGNhbGwgdG8geW91ciB2ZXQsIGV2ZW4gaWYgdGhlIHNraW4gbG9va3MgaGVhbHRoeS4gU3VkZGVuIGNoYW5nZXMsIGl0Y2hpbmcsIHNvcmVuZXNzLCBvciByZWRuZXNzIGFsc28gbmVlZCBhdHRlbnRpb24uIFRoaXMgcXVpeiBjYW5ub3QgcnVsZSBvdXQgYSBtZWRpY2FsIGNhdXNlLjwvcD48L2Rpdj4nOwogIGlmKHIuY29uZmlkZW5jZT09PSJiZXR3ZWVuIikgaCs9JzxwIGNsYXNzPSJwcHEtc21hbGwiPllvdXIgYW5zd2VycyBzYXQgYmV0d2VlbiB0d28gZ3JvdXBzLiBUaGlzIHJlc3VsdCBjYW5ub3QgZXN0YWJsaXNoIHRoZSBzYWZlc3QgdG9vbCBvciByb3V0aW5lLiBBc2sgYSBxdWFsaWZpZWQgZ3Jvb21lciB0byBjaGVjayB0aGUgY29hdCBiZWZvcmUgY2hvb3NpbmcuPC9wPic7CgogIC8vIGZyZWUgcmVzb3VyY2UKICB2YXIgbWF0cz1yLmZsYWdzLmluZGV4T2YoIm1hdHMiKT4tMSwgc2tpbj1yLmZsYWdzLmluZGV4T2YoInNraW4iKT4tMTsKICB2YXIgZnJlZT0iIjsKICBpZihrZXk9PT0idW5rbm93biIpewogICAgZnJlZT0nPGRpdiBjbGFzcz0icHBxLWZyZWUiPjxoND5GcmVlOiBUaGUgVGhpcnR5LVNlY29uZCBDb2F0IFRlc3Q8L2g0PjxwPkEgb25lLXBhZ2UgZ3VpZGUgdG8gYSBnZW50bGUgc3RhcnRpbmcgY2hlY2sgYW5kIGl0cyBsaW1pdHMuIEFzayBhIGdyb29tZXIgaWYgdGhlIHJlc3VsdCBpcyB1bmNsZWFyLjwvcD48YSBjbGFzcz0icHBxLWJ0biBwcHEtZ3JlZW4iIGhyZWY9IicrZXNjKFBQUV9DT05GSUcuY29hdFRlc3RQZGYpKyciIGRhdGEtb2ZmZXI9ImNvYXRfdGVzdCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPkRvd25sb2FkIHRoZSBjb2F0IHRlc3QgKFBERik8L2E+PC9kaXY+JzsKICB9CgogIC8vIG9mZmVycwogIHZhciBvPSIiOwogIGlmKGRibCl7CiAgICB2YXIgcGxhbkJvZHk9IlR3ZWx2ZSBtb250aHMgZm9yICIrcG9zKGZhbHNlKSsiIGNvYXQgZ3JvdXA6IHNjaGVkdWxlIHJlZmVyZW5jZXMgZm9yIG9yZGluYXJ5IGFuZCBoZWF2aWVyLXNoZWRkaW5nIHdlZWtzLCB3aXRoIG5vdGVzIHRvIGRpc2N1c3Mgb3IgYWRhcHQgd2l0aCB5b3VyIGdyb29tZXIuIE5vIGZpeGVkIHBhc3MgY291bnQgZ3VhcmFudGVlcyBzYWZlIGdyb29taW5nLiI7CiAgICBpZihyLmdvYWw9PT0idG9sZXJhdGUiKSBwbGFuQm9keSs9IiBJdCBjb21lcyB3aXRoIGEgU2V2ZW4tRGF5IEJydXNoIFRyYWluaW5nIENhcmQgZm9yIGRvZ3Mgd2hvIGhhdGUgYmVpbmcgYnJ1c2hlZC4iOwogICAgaWYoci5nb2FsPT09IndlZWtzIikgcGxhbkJvZHk9IkNvYXQtZ3JvdXAgcmVmZXJlbmNlcyBhbmQgYSAyMS1kYXkgb2JzZXJ2YXRpb24gcmVjb3JkLiBZb3VyIGRvZyBtYXkgbmVlZCBhIGRpZmZlcmVudCBzY2hlZHVsZTsgdGhlIGd1aWRlIGNhbm5vdCBwcmVkaWN0IHdoZW4gc2hlZGRpbmcgc3RhcnRzIG9yIGVuZHMuIjsKICAgIG8rPW9mZmVyKCJwbGFuIiwiVGhlIG5leHQgc3RlcCBmb3IgIitkbmFtZShmYWxzZSksIlRoZSBTaGVkZGluZyBTZWFzb24gUGxhbiIscGxhbkJvZHksIlNlZSB0aGUgUGxhbiIsdHJ1ZSxsYXVuY2hOb3RlKCkpOwogICAgaWYoIW1hdHMmJiFza2luJiYoci5nb2FsPT09InVuZGVyY29hdCJ8fHIuZ29hbD09PSJ3ZWVrcyIpKSBvKz1vZmZlcigicmFrZSIsIlRoZSB0b29sIGZvciB0aGUgam9iIiwiVGhlIFBhdyBQYW1wZXJpbmcgVW5kZXJjb2F0IFJha2UiLCJDaGVjayB0aGlzIHNwZWNpZmljIHRvb2wncyBpbnN0cnVjdGlvbnMgYW5kIGNvbmZpcm0gc3VpdGFiaWxpdHkgd2l0aCBhIGtub3dsZWRnZWFibGUgZ3Jvb21lci4gRG8gbm90IHJha2UgdGlnaHQgbWF0cyBvciByZXBlYXRlZGx5IHdvcmsgb25lIGFyZWEuIiwiU2VlIHRoZSByYWtlIixmYWxzZSk7CiAgICBpZihyLmdvYWw9PT0iaG91c2UiKSBvKz1vZmZlcigiZ2xvdmUiLCJGb3IgdGhlIGhhaXIgYWxyZWFkeSBpbiB0aGUgaG91c2UiLCJUaGUgUGV0IEhhaXIgUmVtb3ZhbCBHbG92ZSIsIlB1bGwgaXQgYWNyb3NzIHRoZSBjb3VjaCBhbmQgdGhlIGhhaXIgcm9sbHMgdXAgaW50byBjbHVtcHMgeW91IGNhbiBwaWNrIG9mZi4gRm9yIGNvdWNoZXMsIGJlZGRpbmcsIGNsb3RoZXMgYW5kIGNhciBzZWF0cy4iLCJTZWUgdGhlIGdsb3ZlIixmYWxzZSk7CiAgICBpZihyLmdvYWw9PT0ic21lbGwiKSBvKz1vZmZlcigic21lbGwiLCJGb3IgdGhlIHNtZWxsIiwiVGhlIFNtZWxsIE5vYm9keSBNZW50aW9ucyIsIkEgc2hvcnQgZ3VpZGUgdG8gd2hlcmUgZG9nIHNtZWxsIHJlYWxseSBidWlsZHMgdXAgaW4gYSBob3VzZSwgYW5kIGhvdyB0byBnZXQgcmlkIG9mIGl0IGluc3RlYWQgb2YgY292ZXJpbmcgaXQgdXAuIiwiU2VlIHRoZSBndWlkZSIsZmFsc2UpOwogIH0gZWxzZSBpZihrZXk9PT0ic2luZ2xlIil7CiAgICBoKz0nPHA+VGhpcyBwcm92aXNpb25hbCByZXN1bHQgaW5jbHVkZXMgdmVyeSBkaWZmZXJlbnQgY29hdCB0eXBlcy4gU21vb3RoIGNvYXRzIG1heSBzaGVkOyBjdXJseSBvciBtaXhlZCBjb2F0cyBtYXkgcmV0YWluIGxvb3NlIGhhaXIgYW5kIHRhbmdsZS4gVGhlIFBsYW4gZm9jdXNlcyBvbiBkb3VibGUgY29hdHMuIEFzayBhIGtub3dsZWRnZWFibGUgZ3Jvb21lciBhYm91dCB0aGUgYWN0dWFsIGNvYXQsIHRvb2xzIGFuZCBjYXJlIG5lZWRzIGJlZm9yZSBjaG9vc2luZyBhIHJvdXRpbmUuPC9wPic7CiAgICBpZighbWF0cyYmIXNraW4pIG8rPW9mZmVyKCJjb21iIiwiRm9yIHJlZ3VsYXIgY29tYmluZyIsIlRoZSBDb21iIENhcmUgS2l0IiwiU2l4IGRpZmZlcmVudCBjb21icywgaW5jbHVkaW5nIGEgc21hbGwgb25lIGZvciB0aGUgZmFjZSBhbmQgYSBtZXRhbCBjb21iIGZvciBjaGVja2luZyBmb3IgaGlkZGVuIHRhbmdsZXMgYWZ0ZXIgYnJ1c2hpbmcuIiwiU2VlIHRoZSBraXQiLHRydWUpOwogIH0gZWxzZSBpZihrZXk9PT0id2lyeSIpewogICAgaCs9JzxwPldlXCdkIHJhdGhlciBiZSBzdHJhaWdodCB3aXRoIHlvdTogb3VyIHNoZWRkaW5nIGd1aWRlcyBhcmUgYnVpbHQgZm9yIGRvdWJsZSBjb2F0cywgc28gdGhleSBhcmVuXCd0IHRoZSByaWdodCBmaXQgaGVyZS4gQSBncm9vbWVyIHdobyBrbm93cyB5b3VyIGJyZWVkIGlzIHRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0LjwvcD4nOwogICAgaWYoIW1hdHMmJiFza2luKSBvKz1vZmZlcigiY29tYiIsIkZvciB0YW5nbGUgY2hlY2tzIGJldHdlZW4gZ3Jvb21zIiwiVGhlIENvbWIgQ2FyZSBLaXQiLCJTaXggZGlmZmVyZW50IGNvbWJzLCBpbmNsdWRpbmcgYSBmaW5lIG9uZSBmb3IgdGhlIGZhY2UgYW5kIGJlYXJkIGFuZCBhIG1ldGFsIGNvbWIgZm9yIGZpbmRpbmcgaGlkZGVuIHRhbmdsZXMuIiwiU2VlIHRoZSBraXQiLGZhbHNlKTsKICB9CiAgaWYoci5nb2FsPT09ImhvdXNlIiYmIWRibCkgbys9b2ZmZXIoImdsb3ZlIiwiRm9yIHRoZSBoYWlyIGFscmVhZHkgaW4gdGhlIGhvdXNlIiwiVGhlIFBldCBIYWlyIFJlbW92YWwgR2xvdmUiLCJQdWxsIGl0IGFjcm9zcyB0aGUgY291Y2ggYW5kIHRoZSBoYWlyIHJvbGxzIHVwIGludG8gY2x1bXBzIHlvdSBjYW4gcGljayBvZmYuIiwiU2VlIHRoZSBnbG92ZSIsZmFsc2UpOwoKICBpZihyLmZsYWdzLmxlbmd0aCkgbz0iIjsKICBoKz1mcmVlKyhvPyc8aDMgY2xhc3M9InBwcS1zdWIiPldoYXQgd2lsbCBoZWxwIG1vc3Q8L2gzPjxkaXYgY2xhc3M9InBwcS1vZmZlcnMiPicrbysnPC9kaXY+JzonJyk7CiAgaCs9JzxkaXYgY2xhc3M9InBwcS10b29scyI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJwcHEtbGluayIgZGF0YS1hY3Q9InByaW50Ij5QcmludCBteSByZXN1bHQ8L2J1dHRvbj4nKwogICAgIChQUFFfQ09ORklHLndlYmhvb2tVcmwmJiFlbWFpbGVkPyc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBwcS1saW5rIiBkYXRhLWFjdD0idG9lbWFpbCI+RW1haWwgbWUgbXkgcmVzdWx0PC9idXR0b24+JzonJykrCiAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icHBxLWxpbmsiIGRhdGEtYWN0PSJyZXN0YXJ0Ij5TdGFydCBhZ2FpbjwvYnV0dG9uPjwvZGl2PicrCiAgICAgJzxwIGNsYXNzPSJwcHEtc21hbGwiIHN0eWxlPSJtYXJnaW4tdG9wOjE0cHgiPlRoaXMgcmVzdWx0IGlzIGZvciBsZWFybmluZyBvbmx5LiBJdCBpc25cJ3QgYSBkaWFnbm9zaXMgb3IgYSBzdWJzdGl0dXRlIGZvciBhZHZpY2UgZnJvbSB5b3VyIHZldCBvciBncm9vbWVyLjwvcD48L2Rpdj4nOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcHEtcmVzdWx0IikuaW5uZXJIVE1MPWg7CiAgc2hvdygicmVzdWx0Iik7CiAgdmFyIHJoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcHEtcmgiKTsgcmguZm9jdXMoe3ByZXZlbnRTY3JvbGw6dHJ1ZX0pOwogIGFubm91bmNlKHBvcyh0cnVlKSsiIHJlc3VsdDogIit0aXRsZSsoci5mbGFncy5sZW5ndGg\/Ii4gVGhlcmUncyBhIHNhZmV0eSBub3RlIGZpcnN0LiI6IiIpKTsKICBzY3JvbGxUb3AoKTsKICBpZihyLmZsYWdzLmxlbmd0aCkgdHJhY2soInNhZmV0eV9hbGVydF9zaG93biIse2ZsYWdzOnIuZmxhZ3Muam9pbigiLCIpfSk7CiAgdHJhY2soInJlc3VsdF92aWV3ZWQiLHtyZXN1bHRfZ3JvdXA6ci5ncm91cCxjb25maWRlbmNlOnIuY29uZmlkZW5jZSxnb2FsOnIuZ29hbCxzYWZldHlfZmxhZzpyLmZsYWdzLmxlbmd0aD4wLGVtYWlsX2NhcHR1cmVkOmVtYWlsZWR9KTsKfQoKLy8gZW1haWwgZm9ybQp2YXIgZWZvcm09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBwcS1lZm9ybSIpLCBlbWFpbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHBxLWVtYWlsIiksIGVycj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHBxLWVtYWlsLWVyciIpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHBxLXByaXZhY3kiKS5ocmVmPVBQUV9DT05GSUcucHJpdmFjeVVybDsKZnVuY3Rpb24gdmFsaWRFbWFpbCh2KXtyZXR1cm4gL15bXlxzQF0rQFteXHNAXStcLlteXHNAXXsyLH0kLy50ZXN0KHYpO30KZnVuY3Rpb24gc2V0RXJyKG9uKXtlbWFpbC5zZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIsb24\/InRydWUiOiJmYWxzZSIpO2Vyci5jbGFzc0xpc3QudG9nZ2xlKCJwcHEtb24iLG9uKTt9CmVtYWlsLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe2lmKGVtYWlsLmdldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIik9PT0idHJ1ZSImJnZhbGlkRW1haWwoZW1haWwudmFsdWUudHJpbSgpKSlzZXRFcnIoZmFsc2UpO30pOwplZm9ybS5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLGZ1bmN0aW9uKGUpewogIGUucHJldmVudERlZmF1bHQoKTsKICB2YXIgdj1lbWFpbC52YWx1ZS50cmltKCk7CiAgaWYoIXZhbGlkRW1haWwodikpe3NldEVycih0cnVlKTtlbWFpbC5mb2N1cygpO2Fubm91bmNlKGVyci50ZXh0Q29udGVudCk7cmV0dXJuO30KICBzZXRFcnIoZmFsc2UpOwogIHZhciBidG49ZWZvcm0ucXVlcnlTZWxlY3RvcigiYnV0dG9uW3R5cGU9c3VibWl0XSIpOyBidG4uZGlzYWJsZWQ9dHJ1ZTsgYnRuLnRleHRDb250ZW50PSJTZW5kaW5nLi4uIjsKICB2YXIgcGF5bG9hZD17ZW1haWw6dixkb2dfbmFtZTpkb2dOYW1lLGNvYXRfZ3JvdXBfbmFtZToocmVzdWx0Lmdyb3VwPT09InVua25vd25fZG91YmxlIj8iUG9zc2libGUgZG91YmxlIGNvYXQsIGdyb3VwIHVuY2xlYXIiOkdST1VQU1tyZXN1bHQuZ3JvdXBdLm5hbWUpLGZpcnN0X25hbWU6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBwcS1mbmFtZSIpLnZhbHVlLnRyaW0oKSxjb2F0X2dyb3VwOnJlc3VsdC5ncm91cCxjb25maWRlbmNlOnJlc3VsdC5jb25maWRlbmNlLAogICAgZ29hbDpyZXN1bHQuZ29hbHx8IiIsc2FmZXR5X2ZsYWc6cmVzdWx0LmZsYWdzLmxlbmd0aD4wPyJ5ZXMiOiJubyIsc291cmNlOiJjb2F0LXF1aXoiLHF1aXpfdmVyc2lvbjpQUFFfQ09ORklHLnZlcnNpb24sCiAgICBjb25zZW50X3RleHQ6KHJlc3VsdC5ncm91cD09PSJzaW5nbGUiPyJXZSdsbCBzZW5kIHlvdXIgcmVzdWx0LCBwbHVzIGFuIG9jY2FzaW9uYWwgZ3Jvb21pbmcgdGlwLiBVbnN1YnNjcmliZSBhbnkgdGltZS4iOiJXZSdsbCBzZW5kIHlvdXIgcmVzdWx0IGFuZCB0aGUgY2FsZW5kYXIsIHBsdXMgYW4gb2NjYXNpb25hbCBzaGVkZGluZyB0aXAuIFVuc3Vic2NyaWJlIGFueSB0aW1lLiIpLAogICAgc3VibWl0dGVkX2F0Om5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxwYWdlOmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVswXX07CiAgdmFyIGRvbmU9ZnVuY3Rpb24ob2spe2VtYWlsZWQ9b2s7YnRuLmRpc2FibGVkPWZhbHNlO2J0bi50ZXh0Q29udGVudD0iRW1haWwgbWUgbXkgcmVzdWx0Ijt0cmFjayhvaz8iZW1haWxfc3VibWl0dGVkIjoiZW1haWxfZmFpbGVkIix7cmVzdWx0X2dyb3VwOnJlc3VsdC5ncm91cH0pO3Nob3dSZXN1bHQoKTsKICAgIGlmKCFvayl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpO24uY2xhc3NOYW1lPSJwcHEtbm90ZSI7bi50ZXh0Q29udGVudD0iU29ycnksIHdlIGNvdWxkbid0IHNlbmQgdGhlIGVtYWlsIGp1c3Qgbm93LiBZb3VyIHJlc3VsdCBpcyBiZWxvdywgYW5kIHRoZSBkb3dubG9hZCBsaW5rIHdvcmtzLiI7dmFyIGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BwcS1yZXN1bHQgLnBwcS1jYXJkIik7aWYoYyljLmluc2VydEJlZm9yZShuLGMuZmlyc3RDaGlsZCk7fX07CiAgdHJ5ewogICAgZmV0Y2goKHJlc3VsdC5ncm91cD09PSJzaW5nbGUiJiZQUFFfQ09ORklHLndlYmhvb2tVcmxTaW5nbGUpP1BQUV9DT05GSUcud2ViaG9va1VybFNpbmdsZTpQUFFfQ09ORklHLndlYmhvb2tVcmwse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHBheWxvYWQpfSkKICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzKXtkb25lKHJlcy5vayk7fSkuY2F0Y2goZnVuY3Rpb24oKXtkb25lKGZhbHNlKTt9KTsKICB9Y2F0Y2goeCl7ZG9uZShmYWxzZSk7fQp9KTsKCnJvb3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpewogIHZhciB0PWUudGFyZ2V0LmNsb3Nlc3Q\/ZS50YXJnZXQuY2xvc2VzdCgiW2RhdGEtYWN0XSxbZGF0YS1vZmZlcl0iKTpudWxsOyBpZighdCkgcmV0dXJuOwogIHZhciBhPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWFjdCIpOwogIGlmKHQuaGFzQXR0cmlidXRlKCJkYXRhLW9mZmVyIikpe3RyYWNrKHQuZ2V0QXR0cmlidXRlKCJkYXRhLW9mZmVyIik9PT0iY2FsZW5kYXIifHx0LmdldEF0dHJpYnV0ZSgiZGF0YS1vZmZlciIpPT09ImNvYXRfdGVzdCI\/ImxlYWRfbWFnbmV0X2NsaWNrZWQiOiJvZmZlcl9jbGlja2VkIix7b2ZmZXI6dC5nZXRBdHRyaWJ1dGUoImRhdGEtb2ZmZXIiKSxyZXN1bHRfZ3JvdXA6cmVzdWx0JiZyZXN1bHQuZ3JvdXB9KTtyZXR1cm47fQogIGlmKGE9PT0ic3RhcnQiKXtpZHg9MDthbnN3ZXJzPXt9O2RvZ05hbWU9KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcHEtZG9nbmFtZSIpLnZhbHVlfHwiIikucmVwbGFjZSgvWzw+XS9nLCIiKS50cmltKCkuc2xpY2UoMCwzMCk7c2hvdygicXVlc3Rpb24iKTtyZW5kZXJRKCk7Zm9jdXNMZWdlbmQoKTt0cmFjaygicXVpel9zdGFydCIse30pO30KICBlbHNlIGlmKGE9PT0ic2tpcCIpe3RyYWNrKCJlbWFpbF9nYXRlX3NraXBwZWQiLHtyZXN1bHRfZ3JvdXA6cmVzdWx0Lmdyb3VwfSk7c2hvd1Jlc3VsdCgpO30KICBlbHNlIGlmKGE9PT0idG9lbWFpbCIpe3Nob3coImVtYWlsIik7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBwcS1lbWFpbC1oIikuZm9jdXMoe3ByZXZlbnRTY3JvbGw6dHJ1ZX0pO3Njcm9sbFRvcCgpO30KICBlbHNlIGlmKGE9PT0icHJpbnQiKXt0cmFjaygicmVzdWx0X3ByaW50ZWQiLHtyZXN1bHRfZ3JvdXA6cmVzdWx0Lmdyb3VwfSk7d2luZG93LnByaW50KCk7fQogIGVsc2UgaWYoYT09PSJyZXN0YXJ0Iil7dHJhY2soInF1aXpfcmVzdGFydCIse30pO2Fuc3dlcnM9e307aWR4PTA7cmVzdWx0PW51bGw7ZW1haWxlZD1mYWxzZTtzaG93KCJpbnRybyIpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcHEtaW50cm8taCIpLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOnRydWV9KTtzY3JvbGxUb3AoKTt9Cn0pOwp0cmFjaygicXVpel9sYW5kaW5nX3ZpZXciLHt9KTsKLy8gdGVzdCBob29rLCBvbmx5IGFjdGl2ZSB3aGVuIHRoZSBmaWxlIGlzIG9wZW5lZCBsb2NhbGx5LCBuZXZlciBvbiB0aGUgbGl2ZSBzaXRlCmlmKGxvY2F0aW9uLnByb3RvY29sPT09ImZpbGU6Iil7d2luZG93Ll9fcHBxPXtjb25maWc6UFBRX0NPTkZJRyxzY29yZTpmdW5jdGlvbihhKXthbnN3ZXJzPWE7cmV0dXJuIHNjb3JlKCk7fX07fQp9KSgpOwo=\";var s=new TextDecoder().decode(Uint8Array.from(atob(b),function(c){return c.charCodeAt(0);}));(0,eval)(s);})();<\/script>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Free coat quiz &middot; about a minute Not sure what your dog&#8217;s coat needs? Start here. Six quick questions suggest a coat group and explain common shedding patterns. A useful starting point before buying another brush. No email is needed to see your result. A gentle starting check, not a final answer Only if your [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":270,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"bwfblock_default_font":"","order-bump-settings":[],"_wpfnl_thankyou_order_overview":"on","_wpfnl_thankyou_order_details":"on","_wpfnl_thankyou_billing_details":"on","_wpfnl_thankyou_shipping_details":"on","_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"class_list":["post-206","page","type-page","status-publish","has-post-thumbnail","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/pawpampering.com\/en_gb\/wp-json\/wp\/v2\/pages\/206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pawpampering.com\/en_gb\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pawpampering.com\/en_gb\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pawpampering.com\/en_gb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pawpampering.com\/en_gb\/wp-json\/wp\/v2\/comments?post=206"}],"version-history":[{"count":18,"href":"https:\/\/pawpampering.com\/en_gb\/wp-json\/wp\/v2\/pages\/206\/revisions"}],"predecessor-version":[{"id":774,"href":"https:\/\/pawpampering.com\/en_gb\/wp-json\/wp\/v2\/pages\/206\/revisions\/774"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pawpampering.com\/en_gb\/wp-json\/wp\/v2\/media\/270"}],"wp:attachment":[{"href":"https:\/\/pawpampering.com\/en_gb\/wp-json\/wp\/v2\/media?parent=206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}