
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta name="robots" content="noindex, nofollow" />
  <link rel="icon" type="image/png" href="/static/analyzer/img/ddosnull.icon.png">
  <link rel="stylesheet" href="/static/analyzer/altcha.css">
  <title>Verifying Your Browser</title>

  <script>
    (function() {
      if (location.protocol === 'http:' &&
          location.hostname !== 'localhost' &&
          location.hostname !== '127.0.0.1') {
        location.replace('https:' + window.location.href.slice(window.location.protocol.length));
      }
      if (document.referrer && !document.referrer.includes(window.location.hostname)) {
        sessionStorage.setItem('original_referrer', document.referrer);
      }
    })();
  </script>

  <!-- ALTCHA widget -->
  <script type="module" src="https://cdn.jsdelivr.net/npm/altcha/dist/altcha.min.js"></script>

  <style>
:root {
  --bg: #050608;
  --text: #e5e7eb;
  --card-bg: #0d1117;
  --card-shadow: rgba(0,0,0,.5);
  --heading: #e5e7eb;
  --border: rgba(255,255,255,.05);
  --muted: #6b7280;
  --link: #3b82f6;
  --link-hover: #60a5fa;
  --altcha-bg: #0d1117;
  --altcha-fg: #e5e7eb;
}
@media (prefers-color-scheme: light) {
  :root {
    --bg: #f8fafc;
    --text: #1e293b;
    --card-bg: #fff;
    --card-shadow: rgba(0,0,0,.1);
    --heading: #1e293b;
    --border: rgba(0,0,0,.08);
    --muted: #64748b;
    --link: #3b82f6;
    --link-hover: #2563eb;
    --altcha-bg: #f1f5f9;
    --altcha-fg: #1e293b;
  }
}

.messages { margin-bottom:1rem; padding:1rem; background:#2e7d32; color:#fff; border-radius:4px; }
.message.success { background:#2e7d32; }
.icon { width:20px; height:20px; }

.button { background:#3b82f6; border:0; color:#fff; padding:6px 14px; font-size:.9rem; cursor:pointer; border-radius:4px; margin-left:.5rem; line-height:1.5; display:inline-block; text-align:center; text-decoration:none; }
.button:hover { background:#2563eb; }

.inline-form { display:inline-flex; align-items:center; gap:.5rem; }
.inline-form select { padding:4px 6px; background:var(--card-bg); color:var(--text); border:1px solid var(--border); border-radius:3px; font-size:.85rem; }

body { background:var(--bg); color:var(--text); font-family:"Segoe UI", Tahoma, sans-serif; margin:0; padding:2rem; }

@media (max-width:600px){
    body { font-size:1.1rem; padding:.5rem; }
    .button { padding:3px 7px; font-size:.7rem; margin-left:.1rem; }
    .inline-form { gap:.1rem; font-size:.75rem; }
    .inline-form select { font-size:.75rem; }
}

.login-container { max-width:420px; margin:3rem auto; background:var(--card-bg); padding:2rem; border-radius:8px; box-shadow:0 0 10px var(--card-shadow); }
.login-container h2 { text-align:center; margin-bottom:1.25rem; color:var(--heading); font-weight:600; }

.login-container .button { width:100%; margin-top:1rem; }

.error-message { background:#f44336; color:#fff; padding:.8rem; border-radius:4px; margin-bottom:1rem; text-align:center; }
.links { display:flex; justify-content:space-between; margin-top:.75rem; font-size:.9rem; }

.stretched-link { position:relative; z-index:1; color:var(--link); text-decoration:none; }
.stretched-link::after { content:""; position:absolute; inset:-10px 0 -10px 0; z-index:0; }
.stretched-link:hover { text-decoration:underline; }

.logo { text-align:center; margin-bottom:1rem; }
.logo img { display:inline-block; width:50%; max-width:180px; filter: drop-shadow(0 0 8px var(--card-shadow)); }

/* ==== ALTCHA widget ==== */
altcha-widget {
    display:block;
    margin-top:.5rem;
    --altcha-bg: var(--altcha-bg);
    --altcha-fg: var(--altcha-fg);
    --altcha-border: var(--border);
    --altcha-radius: 8px;
    --altcha-shadow: 0 0 0 1px var(--border);
    --altcha-link: var(--link);
    --altcha-accent: #3b82f6;
    --altcha-border-width: 0;
}

.altcha-wrap {
    background:var(--altcha-bg);
    border:1px solid var(--border);
    border-radius:8px;
    padding:12px;
    box-shadow: inset 0 0 0 1px var(--border);
    text-align: center;
}

.altcha-wrap altcha-widget { display: inline-block; }

/* Helper text */
.muted { color:var(--muted); font-size:.85rem; text-align:center; margin-top:.5rem; }

.brand-footer {
    margin-top: -40px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    opacity: .75;
    font-size: .85rem;
    color: var(--muted);
}

.brand-footer a { color:var(--link); text-decoration:none; }
.brand-footer a:hover { color:var(--link-hover); text-decoration:underline; }
.brand-footer img { width:22px; height:22px; filter:drop-shadow(0 0 4px var(--card-shadow)); border-radius:4px; }
.brand-footer strong { color:var(--heading); }
</style>
</head>
<body>

  <div class="login-container" role="main" aria-labelledby="verify-title">
    <div class="logo">
      <!-- Swap to your logo if you like -->
      <!-- <img src="/static/img/logo-light.svg" alt="Your Logo" /> -->
    </div>

    <h2 id="verify-title">Verifying Your Browser</h2>

    

    

    <form method="post" action="/recaptcha/" novalidate>
      <input type="hidden" name="csrfmiddlewaretoken" value="jTIrSs8TSoblK17hW0xuI4ysHZdCIfe83wKlVfWB77VnbTYxE9RYitVLvbyjPueZ">
      <input type="hidden" name="next" value="/blog/pets/feed"/>

      <div class="altcha-wrap">
        <altcha-widget
          challengeurl="/recaptcha/verify/"
          auto="onload"
          hidefooter
          hidelogo
        ></altcha-widget>
      </div>

      <button type="submit" class="button">Continue</button>

      <p class="muted">Verifying automatically... This protects the site from bots.</p>
  </div>



      <noscript>
        <div class="error-message">JavaScript is required to complete verification.</div>
      </noscript>
    </form>

                  <div class="brand-footer">
          <img src="https://app.ddosnull.com:4433/static/analyzer/img/ddosnull.icon.png" alt="ddosNull" />
          <span>Powered by <a href="https://ddosnull.com/" target="_blank"><strong>ddosNull</strong></a></span>
      </div>



  <script>
  document.addEventListener("DOMContentLoaded", () => {
    const altcha = document.querySelector("altcha-widget");
    const btn = document.querySelector("button[type='submit']");
    btn.disabled = true;
    btn.style.opacity = "0.6";
    altcha.addEventListener("verified", () => {
      btn.disabled = false;
      btn.style.opacity = "1";
    });
    altcha.addEventListener("expired", () => {
      btn.disabled = true;
      btn.style.opacity = "0.6";
    });
  });
</script>

<!---
<script>
  document.addEventListener("DOMContentLoaded", () => {
    const altcha = document.querySelector("altcha-widget");
    const form = document.querySelector("form");

    // Auto-submit when verified
    altcha.addEventListener("verified", () => {
      form.submit();
    });
  });
</script>
-->

<script>
document.addEventListener("DOMContentLoaded", () => {
    const altcha = document.querySelector("altcha-widget");
    const form = document.querySelector("form");
    const btn = document.querySelector("button[type='submit']");
    let submitting = false;

    // Initial disabled state
    btn.disabled = true;
    btn.style.opacity = "0.6";

    // When ALTCHA verifies → enable and auto-submit
    altcha.addEventListener("verified", () => {
        if (submitting) return;  // safety guard

        btn.disabled = false;
        btn.style.opacity = "1";

        // Start submit
        submitting = true;
        btn.disabled = true;
        btn.innerText = "Redirecting…";
        btn.style.opacity = "0.6";
        form.submit();
    });

    // If ALTCHA expires → disable button again
    altcha.addEventListener("expired", () => {
        if (!submitting) {
            btn.disabled = true;
            btn.style.opacity = "0.6";
        }
    });

    // Also disable button immediately on manual submit (just in case)
    form.addEventListener("submit", () => {
        if (!submitting) {
            submitting = true;
            btn.disabled = true;
            btn.innerText = "Redirecting…";
            btn.style.opacity = "0.6";
        }
    });
});
</script>


</body>
</html>
