( ′∀`)σ≡σ☆))Д′)レ(゚∀゚;)ヘ=З=З=Зε≡(ノ´_ゝ`)ノ HEX
HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux mail.thebrand.ai 6.8.0-107-generic #107-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 13 19:51:50 UTC 2026 x86_64
User: www-data (33)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/tmpr/../tmpr/..//tmpr/../tmpr/..//welcome.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta charset="UTF-8">
    <link rel="icon" type="image/svg+xml" href="https://www.thebrand.aifavicon.svg">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Brand AI | Your Entire Brand. One Intelligent Platform.</title>

    <!-- SEO Meta Tags -->
<meta name="description" content="Design, analyze, and grow your brand effortlessly. Create logos, websites, and marketing assets in minutes with AI-powered branding tools—all in one platform." />
  <meta name="keywords" content="AI brand creator, AI branding platform, brand builder AI, create brand identity online, AI design tool, logo generator, brand insights, branding templates" />
      <link rel="canonical" href="https://www.thebrand.ai/">

    <!-- Open Graph / Facebook -->
    <meta property="og:type" content="website">
    <meta property="og:url" content="https://www.thebrand.ai/">
    <meta property="og:title" content="Brand AI | Your Entire Brand. One Intelligent Platform.">
    <meta property="og:description"
          content="Brand AI -Create, design, and scale your brand with AI. From logos to websites, templates to insights—everything your brand needs in one intelligent platform.">
    <meta property="og:image" content="https://picsum.photos/seed/brandai-og/1200/630">

    <!-- Twitter -->
    <meta property="twitter:card" content="summary_large_image">
    <meta property="twitter:url" content="https://www.thebrand.ai/">
    <meta property="twitter:title" content="Brand AI | Your Entire Brand. One Intelligent Platform.">
    <meta property="twitter:description"
          content="Brand AI -Create, design, and scale your brand with AI. From logos to websites, templates to insights—everything your brand needs in one intelligent platform.">
    <meta property="twitter:image" content="https://picsum.photos/seed/brandai-og/1200/630">

    <!-- Google Fonts -->
    <link rel="preconnect" href="https://fonts.googleapis.com/">
    <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin="">
    <link href="index_files/css2.css" rel="stylesheet">

    <script src="index_files/3.4.17"></script>
    <script>
        tailwind.config = {
            theme: {
                extend: {
                    fontFamily: {
                        sans: ['Inter', 'sans-serif'],
                    },
                    colors: {
                        'brand-cyan': '#03bef3',
                        'brand-midnight': '#0b0f29',
                        'brand-magenta': '#ff00a8',
                    },
                },
            },
        }
    </script>
    <style>
        html {
            scroll-behavior: smooth;
        }

        #root:empty {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            font-family: 'Inter', sans-serif;
            color: #4a5568;
            font-size: 1.25rem;
        }

        #root:empty::after {
            content: "Loading Brand AI...";
            animation: pulse 1.5s infinite ease-in-out;
        }

        @keyframes pulse {
            0%, 100% {
                opacity: 1;
            }
            50% {
                opacity: 0.5;
            }
        }
    </style>
 
    <script type="importmap">
    {
      "imports": {
        "react": "https://aistudiocdn.com/react@^19.2.0",
        "react/": "https://aistudiocdn.com/react@^19.2.0/",
        "react-dom/": "https://aistudiocdn.com/react-dom@^19.2.0/"
      }
    }

    </script>
    <!-- Babel for in-browser JSX transpilation -->
    <script src="index_files/babel.min.js"></script>
    <style>*, ::before, ::after {
        --tw-border-spacing-x: 0;
        --tw-border-spacing-y: 0;
        --tw-translate-x: 0;
        --tw-translate-y: 0;
        --tw-rotate: 0;
        --tw-skew-x: 0;
        --tw-skew-y: 0;
        --tw-scale-x: 1;
        --tw-scale-y: 1;
        --tw-pan-x: ;
        --tw-pan-y: ;
        --tw-pinch-zoom: ;
        --tw-scroll-snap-strictness: proximity;
        --tw-gradient-from-position: ;
        --tw-gradient-via-position: ;
        --tw-gradient-to-position: ;
        --tw-ordinal: ;
        --tw-slashed-zero: ;
        --tw-numeric-figure: ;
        --tw-numeric-spacing: ;
        --tw-numeric-fraction: ;
        --tw-ring-inset: ;
        --tw-ring-offset-width: 0px;
        --tw-ring-offset-color: #fff;
        --tw-ring-color: rgb(59 130 246 / 0.5);
        --tw-ring-offset-shadow: 0 0 #0000;
        --tw-ring-shadow: 0 0 #0000;
        --tw-shadow: 0 0 #0000;
        --tw-shadow-colored: 0 0 #0000;
        --tw-blur: ;
        --tw-brightness: ;
        --tw-contrast: ;
        --tw-grayscale: ;
        --tw-hue-rotate: ;
        --tw-invert: ;
        --tw-saturate: ;
        --tw-sepia: ;
        --tw-drop-shadow: ;
        --tw-backdrop-blur: ;
        --tw-backdrop-brightness: ;
        --tw-backdrop-contrast: ;
        --tw-backdrop-grayscale: ;
        --tw-backdrop-hue-rotate: ;
        --tw-backdrop-invert: ;
        --tw-backdrop-opacity: ;
        --tw-backdrop-saturate: ;
        --tw-backdrop-sepia: ;
        --tw-contain-size: ;
        --tw-contain-layout: ;
        --tw-contain-paint: ;
        --tw-contain-style:
    }

    ::backdrop {
        --tw-border-spacing-x: 0;
        --tw-border-spacing-y: 0;
        --tw-translate-x: 0;
        --tw-translate-y: 0;
        --tw-rotate: 0;
        --tw-skew-x: 0;
        --tw-skew-y: 0;
        --tw-scale-x: 1;
        --tw-scale-y: 1;
        --tw-pan-x: ;
        --tw-pan-y: ;
        --tw-pinch-zoom: ;
        --tw-scroll-snap-strictness: proximity;
        --tw-gradient-from-position: ;
        --tw-gradient-via-position: ;
        --tw-gradient-to-position: ;
        --tw-ordinal: ;
        --tw-slashed-zero: ;
        --tw-numeric-figure: ;
        --tw-numeric-spacing: ;
        --tw-numeric-fraction: ;
        --tw-ring-inset: ;
        --tw-ring-offset-width: 0px;
        --tw-ring-offset-color: #fff;
        --tw-ring-color: rgb(59 130 246 / 0.5);
        --tw-ring-offset-shadow: 0 0 #0000;
        --tw-ring-shadow: 0 0 #0000;
        --tw-shadow: 0 0 #0000;
        --tw-shadow-colored: 0 0 #0000;
        --tw-blur: ;
        --tw-brightness: ;
        --tw-contrast: ;
        --tw-grayscale: ;
        --tw-hue-rotate: ;
        --tw-invert: ;
        --tw-saturate: ;
        --tw-sepia: ;
        --tw-drop-shadow: ;
        --tw-backdrop-blur: ;
        --tw-backdrop-brightness: ;
        --tw-backdrop-contrast: ;
        --tw-backdrop-grayscale: ;
        --tw-backdrop-hue-rotate: ;
        --tw-backdrop-invert: ;
        --tw-backdrop-opacity: ;
        --tw-backdrop-saturate: ;
        --tw-backdrop-sepia: ;
        --tw-contain-size: ;
        --tw-contain-layout: ;
        --tw-contain-paint: ;
        --tw-contain-style:
    }

    /* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */
    *, ::after, ::before {
        box-sizing: border-box;
        border-width: 0;
        border-style: solid;
        border-color: #e5e7eb
    }

    ::after, ::before {
        --tw-content: ''
    }

    :host, html {
        line-height: 1.5;
        -webkit-text-size-adjust: 100%;
        -moz-tab-size: 4;
        tab-size: 4;
        font-family: Inter, sans-serif;
        font-feature-settings: normal;
        font-variation-settings: normal;
        -webkit-tap-highlight-color: transparent
    }

    body {
        margin: 0;
        line-height: inherit
    }

    hr {
        height: 0;
        color: inherit;
        border-top-width: 1px
    }

    abbr:where([title]) {
        -webkit-text-decoration: underline dotted;
        text-decoration: underline dotted
    }

    h1, h2, h3, h4, h5, h6 {
        font-size: inherit;
        font-weight: inherit
    }

    a {
        color: inherit;
        text-decoration: inherit
    }

    b, strong {
        font-weight: bolder
    }

    code, kbd, pre, samp {
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
        font-feature-settings: normal;
        font-variation-settings: normal;
        font-size: 1em
    }

    small {
        font-size: 80%
    }

    sub, sup {
        font-size: 75%;
        line-height: 0;
        position: relative;
        vertical-align: baseline
    }

    sub {
        bottom: -.25em
    }

    sup {
        top: -.5em
    }

    table {
        text-indent: 0;
        border-color: inherit;
        border-collapse: collapse
    }

    button, input, optgroup, select, textarea {
        font-family: inherit;
        font-feature-settings: inherit;
        font-variation-settings: inherit;
        font-size: 100%;
        font-weight: inherit;
        line-height: inherit;
        letter-spacing: inherit;
        color: inherit;
        margin: 0;
        padding: 0
    }

    button, select {
        text-transform: none
    }

    button, input:where([type=button]), input:where([type=reset]), input:where([type=submit]) {
        -webkit-appearance: button;
        background-color: transparent;
        background-image: none
    }

    :-moz-focusring {
        outline: auto
    }

    :-moz-ui-invalid {
        box-shadow: none
    }

    progress {
        vertical-align: baseline
    }

    ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
        height: auto
    }

    [type=search] {
        -webkit-appearance: textfield;
        outline-offset: -2px
    }

    ::-webkit-search-decoration {
        -webkit-appearance: none
    }

    ::-webkit-file-upload-button {
        -webkit-appearance: button;
        font: inherit
    }

    summary {
        display: list-item
    }

    blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre {
        margin: 0
    }

    fieldset {
        margin: 0;
        padding: 0
    }

    legend {
        padding: 0
    }

    menu, ol, ul {
        list-style: none;
        margin: 0;
        padding: 0
    }

    dialog {
        padding: 0
    }

    textarea {
        resize: vertical
    }

    input::placeholder, textarea::placeholder {
        opacity: 1;
        color: #9ca3af
    }

    [role=button], button {
        cursor: pointer
    }

    :disabled {
        cursor: default
    }

    audio, canvas, embed, iframe, img, object, svg, video {
        display: block;
        vertical-align: middle
    }

    img, video {
        max-width: 100%;
        height: auto
    }

    [hidden]:where(:not([hidden=until-found])) {
        display: none
    }

    .container {
        width: 100%
    }

    @media (min-width: 640px) {
        .container {
            max-width: 640px
        }
    }

    @media (min-width: 768px) {
        .container {
            max-width: 768px
        }
    }

    @media (min-width: 1024px) {
        .container {
            max-width: 1024px
        }
    }

    @media (min-width: 1280px) {
        .container {
            max-width: 1280px
        }
    }

    @media (min-width: 1536px) {
        .container {
            max-width: 1536px
        }
    }

    .sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border-width: 0
    }

    .absolute {
        position: absolute
    }

    .relative {
        position: relative
    }

    .sticky {
        position: sticky
    }

    .inset-0 {
        inset: 0px
    }

    .bottom-\[-30\%\] {
        bottom: -30%
    }

    .left-\[-30\%\] {
        left: -30%
    }

    .right-\[-30\%\] {
        right: -30%
    }

    .top-0 {
        top: 0px
    }

    .top-\[-30\%\] {
        top: -30%
    }

    .z-0 {
        z-index: 0
    }

    .z-10 {
        z-index: 10
    }

    .z-50 {
        z-index: 50
    }

    .col-span-2 {
        grid-column: span 2 / span 2
    }

    .mx-auto {
        margin-left: auto;
        margin-right: auto
    }

    .mb-10 {
        margin-bottom: 2.5rem
    }

    .mb-12 {
        margin-bottom: 3rem
    }

    .mb-2 {
        margin-bottom: 0.5rem
    }

    .mb-4 {
        margin-bottom: 1rem
    }

    .mb-6 {
        margin-bottom: 1.5rem
    }

    .mb-8 {
        margin-bottom: 2rem
    }

    .mt-12 {
        margin-top: 3rem
    }

    .mt-4 {
        margin-top: 1rem
    }

    .mt-8 {
        margin-top: 2rem
    }

    .block {
        display: block
    }

    .inline-block {
        display: inline-block
    }

    .flex {
        display: flex
    }

    .grid {
        display: grid
    }

    .hidden {
        display: none
    }

    .aspect-\[4\/3\] {
        aspect-ratio: 4/3
    }

    .h-10 {
        height: 2.5rem
    }

    .h-4\/5 {
        height: 80%
    }

    .h-6 {
        height: 1.5rem
    }

    .h-8 {
        height: 2rem
    }

    .h-full {
        height: 100%
    }

    .min-h-\[480px\] {
        min-height: 480px
    }

    .min-h-\[520px\] {
        min-height: 520px
    }

    .min-h-\[70vh\] {
        min-height: 70vh
    }

    .w-10 {
        width: 2.5rem
    }

    .w-32 {
        width: 8rem
    }

    .w-4\/5 {
        width: 80%
    }

    .w-6 {
        width: 1.5rem
    }

    .w-8 {
        width: 2rem
    }

    .w-full {
        width: 100%
    }

    .max-w-2xl {
        max-width: 42rem
    }

    .max-w-3xl {
        max-width: 48rem
    }

    .scale-105 {
        --tw-scale-x: 1.05;
        --tw-scale-y: 1.05;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .transform {
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .grid-cols-1 {
        grid-template-columns: repeat(1, minmax(0, 1fr))
    }

    .grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .flex-col {
        flex-direction: column
    }

    .flex-wrap {
        flex-wrap: wrap
    }

    .items-center {
        align-items: center
    }

    .justify-center {
        justify-content: center
    }

    .justify-between {
        justify-content: space-between
    }

    .gap-2 {
        gap: 0.5rem
    }

    .gap-4 {
        gap: 1rem
    }

    .gap-6 {
        gap: 1.5rem
    }

    .gap-8 {
        gap: 2rem
    }

    .space-x-4 > :not([hidden]) ~ :not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-right: calc(1rem * var(--tw-space-x-reverse));
        margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)))
    }

    .space-x-6 > :not([hidden]) ~ :not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-right: calc(1.5rem * var(--tw-space-x-reverse));
        margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))
    }

    .space-x-8 > :not([hidden]) ~ :not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-right: calc(2rem * var(--tw-space-x-reverse));
        margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)))
    }

    .space-y-2 > :not([hidden]) ~ :not([hidden]) {
        --tw-space-y-reverse: 0;
        margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
        margin-bottom: calc(0.5rem * var(--tw-space-y-reverse))
    }

    .overflow-hidden {
        overflow: hidden
    }

    .truncate {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .rounded-2xl {
        border-radius: 1rem
    }

    .rounded-3xl {
        border-radius: 1.5rem
    }

    .rounded-full {
        border-radius: 9999px
    }

    .rounded-lg {
        border-radius: 0.5rem
    }

    .border {
        border-width: 1px
    }

    .border-t {
        border-top-width: 1px
    }

    .border-gray-300 {
        --tw-border-opacity: 1;
        border-color: rgb(209 213 219 / var(--tw-border-opacity, 1))
    }

    .border-gray-800 {
        --tw-border-opacity: 1;
        border-color: rgb(31 41 55 / var(--tw-border-opacity, 1))
    }

    .bg-black {
        --tw-bg-opacity: 1;
        background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1))
    }

    .bg-black\/10 {
        background-color: rgb(0 0 0 / 0.1)
    }

    .bg-brand-cyan {
        --tw-bg-opacity: 1;
        background-color: rgb(3 190 243 / var(--tw-bg-opacity, 1))
    }

    .bg-brand-midnight {
        --tw-bg-opacity: 1;
        background-color: rgb(11 15 41 / var(--tw-bg-opacity, 1))
    }

    .bg-cyan-100 {
        --tw-bg-opacity: 1;
        background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1))
    }

    .bg-gray-100 {
        --tw-bg-opacity: 1;
        background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1))
    }

    .bg-gray-200 {
        --tw-bg-opacity: 1;
        background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1))
    }

    .bg-gray-50 {
        --tw-bg-opacity: 1;
        background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1))
    }

    .bg-white {
        --tw-bg-opacity: 1;
        background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1))
    }

    .bg-white\/10 {
        background-color: rgb(255 255 255 / 0.1)
    }

    .bg-white\/80 {
        background-color: rgb(255 255 255 / 0.8)
    }

    .bg-opacity-20 {
        --tw-bg-opacity: 0.2
    }

    .bg-gradient-to-br {
        background-image: linear-gradient(to bottom right, var(--tw-gradient-stops))
    }

    .bg-gradient-to-tl {
        background-image: linear-gradient(to top left, var(--tw-gradient-stops))
    }

    .from-brand-cyan {
        --tw-gradient-from: #03bef3 var(--tw-gradient-from-position);
        --tw-gradient-to: rgb(3 190 243 / 0) var(--tw-gradient-to-position);
        --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
    }

    .to-transparent {
        --tw-gradient-to: transparent var(--tw-gradient-to-position)
    }

    .object-cover {
        object-fit: cover
    }

    .p-3 {
        padding: 0.75rem
    }

    .p-5 {
        padding: 1.25rem
    }

    .p-8 {
        padding: 2rem
    }

    .px-4 {
        padding-left: 1rem;
        padding-right: 1rem
    }

    .px-5 {
        padding-left: 1.25rem;
        padding-right: 1.25rem
    }

    .px-6 {
        padding-left: 1.5rem;
        padding-right: 1.5rem
    }

    .px-8 {
        padding-left: 2rem;
        padding-right: 2rem
    }

    .py-12 {
        padding-top: 3rem;
        padding-bottom: 3rem
    }

    .py-2 {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem
    }

    .py-20 {
        padding-top: 5rem;
        padding-bottom: 5rem
    }

    .py-3 {
        padding-top: 0.75rem;
        padding-bottom: 0.75rem
    }

    .py-4 {
        padding-top: 1rem;
        padding-bottom: 1rem
    }

    .pt-8 {
        padding-top: 2rem
    }

    .text-left {
        text-align: left
    }

    .text-center {
        text-align: center
    }

    .font-sans {
        font-family: Inter, sans-serif
    }

    .text-3xl {
        font-size: 1.875rem;
        line-height: 2.25rem
    }

    .text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem
    }

    .text-5xl {
        font-size: 3rem;
        line-height: 1
    }

    .text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem
    }

    .text-sm {
        font-size: 0.875rem;
        line-height: 1.25rem
    }

    .text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem
    }

    .font-bold {
        font-weight: 700
    }

    .font-extrabold {
        font-weight: 800
    }

    .font-medium {
        font-weight: 500
    }

    .font-semibold {
        font-weight: 600
    }

    .uppercase {
        text-transform: uppercase
    }

    .tracking-tight {
        letter-spacing: -0.025em
    }

    .text-brand-cyan {
        --tw-text-opacity: 1;
        color: rgb(3 190 243 / var(--tw-text-opacity, 1))
    }

    .text-brand-midnight {
        --tw-text-opacity: 1;
        color: rgb(11 15 41 / var(--tw-text-opacity, 1))
    }

    .text-gray-300 {
        --tw-text-opacity: 1;
        color: rgb(209 213 219 / var(--tw-text-opacity, 1))
    }

    .text-gray-400 {
        --tw-text-opacity: 1;
        color: rgb(156 163 175 / var(--tw-text-opacity, 1))
    }

    .text-gray-600 {
        --tw-text-opacity: 1;
        color: rgb(75 85 99 / var(--tw-text-opacity, 1))
    }

    .text-gray-700 {
        --tw-text-opacity: 1;
        color: rgb(55 65 81 / var(--tw-text-opacity, 1))
    }

    .text-gray-800 {
        --tw-text-opacity: 1;
        color: rgb(31 41 55 / var(--tw-text-opacity, 1))
    }

    .text-white {
        --tw-text-opacity: 1;
        color: rgb(255 255 255 / var(--tw-text-opacity, 1))
    }

    .opacity-50 {
        opacity: 0.5
    }

    .opacity-80 {
        opacity: 0.8
    }

    .opacity-90 {
        opacity: 0.9
    }

    .shadow-lg {
        --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
    }

    .shadow-md {
        --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
    }

    .shadow-sm {
        --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
        --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
    }

    .blur-3xl {
        --tw-blur: blur(64px);
        filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
    }

    .filter {
        filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
    }

    .backdrop-blur-sm {
        --tw-backdrop-blur: blur(4px);
        -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
        backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)
    }

    .transition-all {
        transition-property: all;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms
    }

    .transition-colors {
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms
    }

    .transition-opacity {
        transition-property: opacity;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms
    }

    .transition-transform {
        transition-property: transform;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms
    }

    .duration-300 {
        transition-duration: 300ms
    }

    .duration-500 {
        transition-duration: 500ms
    }

    .ease-in-out {
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
    }

    .hover\:-translate-y-1:hover {
        --tw-translate-y: -0.25rem;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .hover\:-translate-y-2:hover {
        --tw-translate-y: -0.5rem;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .hover\:scale-105:hover {
        --tw-scale-x: 1.05;
        --tw-scale-y: 1.05;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .hover\:scale-110:hover {
        --tw-scale-x: 1.1;
        --tw-scale-y: 1.1;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .hover\:border-brand-cyan:hover {
        --tw-border-opacity: 1;
        border-color: rgb(3 190 243 / var(--tw-border-opacity, 1))
    }

    .hover\:bg-cyan-200:hover {
        --tw-bg-opacity: 1;
        background-color: rgb(165 243 252 / var(--tw-bg-opacity, 1))
    }

    .hover\:bg-gray-200:hover {
        --tw-bg-opacity: 1;
        background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1))
    }

    .hover\:bg-gray-300:hover {
        --tw-bg-opacity: 1;
        background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1))
    }

    .hover\:bg-white\/20:hover {
        background-color: rgb(255 255 255 / 0.2)
    }

    .hover\:text-brand-cyan:hover {
        --tw-text-opacity: 1;
        color: rgb(3 190 243 / var(--tw-text-opacity, 1))
    }

    .hover\:opacity-90:hover {
        opacity: 0.9
    }

    .hover\:shadow-xl:hover {
        --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
    }

    .focus\:outline-none:focus {
        outline: 2px solid transparent;
        outline-offset: 2px
    }

    .group:hover .group-hover\:-translate-y-1 {
        --tw-translate-y: -0.25rem;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .group:hover .group-hover\:scale-105 {
        --tw-scale-x: 1.05;
        --tw-scale-y: 1.05;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .group:hover .group-hover\:scale-110 {
        --tw-scale-x: 1.1;
        --tw-scale-y: 1.1;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .group:hover .group-hover\:bg-black\/0 {
        background-color: rgb(0 0 0 / 0)
    }

    .group:hover .group-hover\:bg-opacity-10 {
        --tw-bg-opacity: 0.1
    }

    .group:hover .group-hover\:text-brand-cyan {
        --tw-text-opacity: 1;
        color: rgb(3 190 243 / var(--tw-text-opacity, 1))
    }

    .group:hover .group-hover\:opacity-100 {
        opacity: 1
    }

    @media (min-width: 640px) {
        .sm\:grid-cols-3 {
            grid-template-columns: repeat(3, minmax(0, 1fr))
        }
    }

    @media (min-width: 768px) {
        .md\:col-span-2 {
            grid-column: span 2 / span 2
        }

        .md\:mt-0 {
            margin-top: 0px
        }

        .md\:flex {
            display: flex
        }

        .md\:hidden {
            display: none
        }

        .md\:min-h-\[520px\] {
            min-height: 520px
        }

        .md\:min-h-\[80vh\] {
            min-height: 80vh
        }

        .md\:grid-cols-2 {
            grid-template-columns: repeat(2, minmax(0, 1fr))
        }

        .md\:grid-cols-3 {
            grid-template-columns: repeat(3, minmax(0, 1fr))
        }

        .md\:grid-cols-4 {
            grid-template-columns: repeat(4, minmax(0, 1fr))
        }

        .md\:flex-row {
            flex-direction: row
        }

        .md\:gap-12 {
            gap: 3rem
        }

        .md\:gap-4 {
            gap: 1rem
        }

        .md\:gap-8 {
            gap: 2rem
        }

        .md\:py-24 {
            padding-top: 6rem;
            padding-bottom: 6rem
        }

        .md\:py-28 {
            padding-top: 7rem;
            padding-bottom: 7rem
        }

        .md\:text-2xl {
            font-size: 1.5rem;
            line-height: 2rem
        }

        .md\:text-4xl {
            font-size: 2.25rem;
            line-height: 2.5rem
        }

        .md\:text-5xl {
            font-size: 3rem;
            line-height: 1
        }

        .md\:text-6xl {
            font-size: 3.75rem;
            line-height: 1
        }

        .md\:text-7xl {
            font-size: 4.5rem;
            line-height: 1
        }

        .md\:text-base {
            font-size: 1rem;
            line-height: 1.5rem
        }

        .md\:text-xl {
            font-size: 1.25rem;
            line-height: 1.75rem
        }
    }

    @media (min-width: 1024px) {
        .lg\:col-span-1 {
            grid-column: span 1 / span 1
        }

        .lg\:grid-cols-3 {
            grid-template-columns: repeat(3, minmax(0, 1fr))
        }

        .lg\:grid-cols-5 {
            grid-template-columns: repeat(5, minmax(0, 1fr))
        }

        .lg\:text-8xl {
            font-size: 6rem;
            line-height: 1
        }
    }

    @media (min-width: 1280px) {
        .xl\:grid-cols-6 {
            grid-template-columns: repeat(6, minmax(0, 1fr))
        }
    }</style>
    <script type="module">function _extends() {
        return _extends = Object.assign ? Object.assign.bind() : function (n) {
            for (var e = 1; e < arguments.length; e++) {
                var t = arguments[e];
                for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
            }
            return n;
        }, _extends.apply(null, arguments);
    }

    import React, {useState} from 'react';
    import ReactDOM from 'react-dom/client';

    // --- START OF constants.tsx ---
    var FEATURES_PRIMARY = [{
        title: 'Bring Your Brand to Life with Brand Creator',
        description: 'Quickly and effortlessly create a powerful, professional brand identity and logos that stand out and drive business growth.',
        link: 'https://www.thebrand.ai/brandcreator/index',
        buttonText: 'Explore Brand Creator',
        imageUrl: 'https://picsum.photos/seed/design-assets/800/600',
        bgColor: '#1E003B' // Deep Purple/Indigo
    }, {
        title: 'Revolutionize Your Brand with AI Insights',
        description: 'Supercharge your brand with intelligent solutions, design, and big data to drive growth, engagement, and measurable success.',
        link: 'https://www.thebrand.ai/insights/',
        buttonText: 'Explore Insights',
        imageUrl: 'https://picsum.photos/seed/data-viz/800/600',
        bgColor: '#003D5B' // Dark Cyan/Blue
    }, {
        title: 'Build a Website Easily with Brand Sites',
        description: 'Choose from over 100 amazing templates to build a stunning website that empowers your brand to stand out.',
        link: 'https://www.thebrand.ai/sites/index',
        buttonText: 'Explore Brand Sites',
        imageUrl: 'https://picsum.photos/seed/web-design/800/600',
        bgColor: '#004C4C' // Dark Teal
    }];
    var FEATURES_SECONDARY = [{
        title: 'Meet the Visual Suite',
        description: 'Your entire workflow in one place. From bespoke designs and insightful blogs to tailored strategies—all powered by AI.',
        link: 'https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit',
        buttonText: 'Explore Visual Suite',
        imageUrl: 'https://picsum.photos/seed/brand-suite/1200/800',
        bgColor: '#3D004F',
        // Dark Magenta/Purple
        size: 'large'
    }, {
        title: 'Present with impact',
        description: 'Reimagine presentations with cinematic visuals, smart collaboration, and AI-powered tools.',
        link: 'https://www.thebrand.ai/i/designs',
        buttonText: 'Try Presentations',
        imageUrl: 'https://picsum.photos/seed/impact-pres/1200/800',
        bgColor: '#005F58',
        // Deep Teal/Green
        size: 'large'
    }];
    var FEATURES_TERTIARY = [{
        title: 'Define your Brand Identity',
        description: 'A central hub to build, manage, and evolve your unique brand identity as you scale.',
        link: 'https://www.thebrand.ai/i/account/build_brand',
        buttonText: 'Build My Brand',
        imageUrl: 'https://picsum.photos/seed/brand-guide/800/600',
        bgColor: '#1A237E' // Dark Indigo
    }, {
        title: 'End-to-end platform for large organizations',
        description: 'Scale brand consistency with enterprise-grade tools, security, and support for large organizations.',
        link: '#',
        buttonText: 'Explore Enterprise',
        imageUrl: 'https://picsum.photos/seed/corporate-dash/800/600',
        bgColor: '#00263E' // Very Dark Blue
    }, {
        title: 'Unlock Growth with Insight Journeys',
        description: "Explore expert-led journeys to transform your startup's growth, overcome challenges, and achieve success.",
        link: 'https://www.thebrand.ai/insights/dashboard?feature=browsejourneys',
        buttonText: 'Discover Your Path',
        imageUrl: 'https://picsum.photos/seed/growth-path/800/600',
        bgColor: '#01579B' // Light Blue
    }];
    var CostIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-10 w-10",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 10v-1m-5.293-6.293l-.707.707M17.293 7.707l.707-.707M5.707 16.293l.707.707M16.586 17H19a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2.414"
    }));
    var TimeIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-10 w-10",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"
    }));
    var ToolsIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-10 w-10",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z"
    }));
    var PROBLEM_CARDS = [{
        icon: /*#__PURE__*/React.createElement(CostIcon, null),
        title: 'Agency-Level Budgets',
        description: 'SMEs and governments need top-tier strategy but lack the budget for expensive agencies.'
    }, {
        icon: /*#__PURE__*/React.createElement(TimeIcon, null),
        title: 'Months of Guesswork',
        description: 'Founders and marketers waste precious time guessing their next move instead of acting on clear insights.'
    }, {
        icon: /*#__PURE__*/React.createElement(ToolsIcon, null),
        title: 'Juggling a Dozen Tools',
        description: 'Creatives juggle multiple, disconnected tools to create a single campaign, with none of them talking to each other.'
    }];
    var SmeIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4v-5h5v5h-5z"
    }));
    var GovernmentIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M12 21l-2-2m2 2l2-2m2 2l2-2M5 15l-2-2m2 2l2-2m2 2l2-2m2 2l2-2M5 21v-6a2 2 0 012-2h10a2 2 0 012 2v6"
    }), " ", /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M3 21h18M5 10l7-7 7 7"
    }));
    var StartupIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M13 10V3L4 14h7v7l9-11h-7z"
    }));
    var MarketerIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
    }), /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"
    }));
    var CorporateIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4V5h5v7h-5z"
    }));
    var TARGET_MARKETS = [{
        icon: /*#__PURE__*/React.createElement(SmeIcon, null),
        name: 'SMEs'
    }, {
        icon: /*#__PURE__*/React.createElement(GovernmentIcon, null),
        name: 'Governments'
    }, {
        icon: /*#__PURE__*/React.createElement(StartupIcon, null),
        name: 'Startups'
    }, {
        icon: /*#__PURE__*/React.createElement(MarketerIcon, null),
        name: 'Marketers'
    }, {
        icon: /*#__PURE__*/React.createElement(CorporateIcon, null),
        name: 'Corporations'
    }];
    var FacebookIcon = () => /*#__PURE__*/React.createElement("svg", {
        className: "w-6 h-6",
        fill: "currentColor",
        viewBox: "0 0 24 24",
        "aria-hidden": "true"
    }, /*#__PURE__*/React.createElement("path", {
        fillRule: "evenodd",
        d: "M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z",
        clipRule: "evenodd"
    }));
    var TwitterIcon = () => /*#__PURE__*/React.createElement("svg", {
        className: "w-6 h-6",
        fill: "currentColor",
        viewBox: "0 0 24 24",
        "aria-hidden": "true"
    }, /*#__PURE__*/React.createElement("path", {
        d: "M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.71v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"
    }));
    var InstagramIcon = () => /*#__PURE__*/React.createElement("svg", {
        className: "w-6 h-6",
        fill: "currentColor",
        viewBox: "0 0 24 24",
        "aria-hidden": "true"
    }, /*#__PURE__*/React.createElement("path", {
        fillRule: "evenodd",
        d: "M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.024.06 1.378.06 3.808s-.012 2.784-.06 3.808c-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.024.048-1.378.06-3.808.06s-2.784-.012-3.808-.06c-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.048-1.024-.06-1.378-.06-3.808s.012-2.784.06-3.808c.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 016.08 2.525c.636-.247 1.363-.416 2.427-.465C9.53 2.013 9.884 2 12.315 2zM12 7.044c-2.583 0-4.666 2.083-4.666 4.666s2.083 4.666 4.666 4.666 4.666-2.083 4.666-4.666S14.583 7.044 12 7.044zm0 7.666c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.917-7.916a1.146 1.146 0 100-2.292 1.146 1.146 0 000 2.292z",
        clipRule: "evenodd"
    }));
    var LinkedInIcon = () => /*#__PURE__*/React.createElement("svg", {
        className: "w-6 h-6",
        fill: "currentColor",
        viewBox: "0 0 24 24",
        "aria-hidden": "true"
    }, /*#__PURE__*/React.createElement("path", {
        d: "M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"
    }));
    var TEMPLATE_CATEGORIES = [{
        category: 'Social Media',
        templates: [{
            title: "Facebook Post",
            url: "https://www.thebrand.ai/i/social-media/facebook-post"
        }, {
            title: "Instagram Post",
            url: "https://www.thebrand.ai/i/social-media/instagram-posts"
        }, {
            title: "Instagram Story",
            url: "https://www.thebrand.ai/i/social-media/instagram-story"
        }, {
            title: "LinkedIn Post",
            url: "https://www.thebrand.ai/i/social-media/linkedin-post"
        }, {
            title: "Twitter Post",
            url: "https://www.thebrand.ai/i/social-media/twitter"
        }, {
            title: "Pinterest Pin",
            url: "https://www.thebrand.ai/i/social-media/pinterest-pin-graphic-templates"
        }, {
            title: "IGTV Cover",
            url: "https://www.thebrand.ai/i/social-media/igtv-cover"
        }, {
            title: "Highlight Cover",
            url: "https://www.thebrand.ai/i/social-media/instagram-highlight-cover"
        }, {
            title: "YouTube Graphics",
            url: "https://www.thebrand.ai/i/social-media/youtube-graphic-templates"
        }, {
            title: "Twitch Graphics",
            url: "https://www.thebrand.ai/i/social-media/online-streaming"
        }]
    }, {
        category: 'Invites & Cards',
        templates: [{
            title: "Business Card",
            url: "https://www.thebrand.ai/i/invites-and-cards/business-card-85x55mm"
        }, {
            title: "US Business Card",
            url: "https://www.thebrand.ai/i/invites-and-cards/business-card-us"
        }, {
            title: "Greeting Card",
            url: "https://www.thebrand.ai/i/invites-and-cards/card"
        }, {
            title: "Invitation",
            url: "https://www.thebrand.ai/i/invites-and-cards/invitation-13.9x10.7cm"
        }]
    }, {
        category: 'Documents',
        templates: [{
            title: "Presentation 16:9",
            url: "https://www.thebrand.ai/i/documents/presentation-16-9"
        }, {
            title: "Resume",
            url: "https://www.thebrand.ai/i/documents/resume"
        }, {
            title: "Letterhead A4",
            url: "https://www.thebrand.ai/i/documents/letterhead-a4"
        }, {
            title: "Proposal A4",
            url: "https://www.thebrand.ai/i/documents/proposal-a4"
        }, {
            title: "Flyer A4",
            url: "https://www.thebrand.ai/i/documents/flyer-a4"
        }, {
            title: "Newsletter",
            url: "https://www.thebrand.ai/i/documents/newsletter"
        }, {
            title: "Invoice A4",
            url: "https://www.thebrand.ai/i/documents/invoice-a4"
        }, {
            title: "Report A4",
            url: "https://www.thebrand.ai/i/documents/report-a4"
        }, {
            title: "Certificate",
            url: "https://www.thebrand.ai/i/documents/certificate"
        }, {
            title: "Menu A4",
            url: "https://www.thebrand.ai/i/documents/menu-a4"
        }, {
            title: "Checklist",
            url: "https://www.thebrand.ai/i/documents/checklist"
        }, {
            title: "Schedule",
            url: "https://www.thebrand.ai/i/documents/schedule"
        }, {
            title: "Workbook",
            url: "https://www.thebrand.ai/i/documents/workbook"
        }, {
            title: "eBook",
            url: "https://www.thebrand.ai/i/documents/ebook"
        }, {
            title: "Whitepaper",
            url: "https://www.thebrand.ai/i/documents/whitepaper"
        }]
    }, {
        category: 'Advertising',
        templates: [{
            title: "Poster",
            url: "https://www.thebrand.ai/i/advertising/poster-a3"
        }, {
            title: "Banner",
            url: "https://www.thebrand.ai/i/advertising/banner-2x6ft"
        }, {
            title: "Billboard",
            url: "https://www.thebrand.ai/i/advertising/billboard"
        }, {
            title: "Flyer",
            url: "https://www.thebrand.ai/i/advertising/flyer-us"
        }, {
            title: "Yard Sign",
            url: "https://www.thebrand.ai/i/advertising/yard-sign"
        }, {
            title: "Roll-up Banner",
            url: "https://www.thebrand.ai/i/advertising/roll-up-banner"
        }, {
            title: "Brochure",
            url: "https://www.thebrand.ai/i/advertising/brochure"
        }]
    }, {
        category: 'Covers',
        templates: [{
            title: "Book Cover",
            url: "https://www.thebrand.ai/i/covers/book-cover"
        }, {
            title: "Magazine Cover",
            url: "https://www.thebrand.ai/i/covers/magazine-cover"
        }, {
            title: "Report Cover",
            url: "https://www.thebrand.ai/i/covers/report-cover"
        }, {
            title: "Planner Cover",
            url: "https://www.thebrand.ai/i/covers/planner-cover"
        }, {
            title: "eBook Cover",
            url: "https://www.thebrand.ai/i/covers/ebook-cover"
        }]
    }];
    // --- END OF constants.tsx ---

    // --- START OF components/Logo.tsx ---
    var Logo = _ref => {
        var {
            className,
            theme = 'light'
        } = _ref;
        var theColor = theme === 'dark' ? '#9CA3AF' : '#808080';
        var brandColor = theme === 'dark' ? '#FFFFFF' : '#333333';
        return /*#__PURE__*/React.createElement("svg", {
            width: "110",
            height: "30",
            viewBox: "0 0 110 30",
            className: className,
            xmlns: "http://www.w3.org/2000/svg",
            "aria-label": "The Brand Logo"
        }, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("g", {
            transform: "translate(0, -2) rotate(-5, 15, 15)"
        }, /*#__PURE__*/React.createElement("path", {
            d: "M0,3.993C0,1.788,1.788,0,3.993,0h22.013C28.212,0,30,1.788,30,3.993v22.013 c0,2.205-1.788,3.993-3.993,3.993H3.993C1.788,30,0,28.212,0,26.007V3.993z",
            fill: "#29B6F6"
        }), /*#__PURE__*/React.createElement("text", {
            x: "15",
            y: "21",
            textAnchor: "middle",
            fontSize: "18",
            fontWeight: "bold",
            fill: "white",
            style: {
                fontFamily: 'inherit'
            }
        }, "B")), /*#__PURE__*/React.createElement("text", {
            x: "40",
            y: "12",
            fontSize: "9",
            fill: theColor,
            fontWeight: "600",
            style: {
                fontFamily: 'inherit'
            }
        }, "THE"), /*#__PURE__*/React.createElement("text", {
            x: "40",
            y: "27",
            fontSize: "16",
            fill: brandColor,
            fontWeight: "bold",
            style: {
                fontFamily: 'inherit'
            }
        }, "Brand")));
    };
    // --- END OF components/Logo.tsx ---

    // --- START OF components/Header.tsx ---
      
      var Header = () => {
        var [isMenuOpen, setIsMenuOpen] = useState(false);
        var navLinks = [{
            name: 'Brand Creator',
            href: 'https://www.thebrand.ai/brandcreator/index'
        }, {
            name: 'Templates',
            href: 'https://www.thebrand.ai/i/designs'
        }, {
            name: 'Insights',
            href: 'https://www.thebrand.ai/insights/'
        }, {
            name: 'Blogs',
            href: 'https://www.thebrand.ai/blogs'
        }
            , {
                name: 'Pricing',
                href: 'https://www.thebrand.ai/brandpay/choose'
            }
             
            ];
        return /*#__PURE__*/React.createElement("header", {
            className: "bg-white/80 backdrop-blur-sm sticky top-0 z-50 shadow-sm"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 py-4"
        }, /*#__PURE__*/React.createElement("div", {
            className: "flex items-center justify-between"
        }, /*#__PURE__*/React.createElement("div", {
            className: "flex items-center space-x-8"
        }, /*#__PURE__*/React.createElement("a", {
            href: "/",
            "aria-label": "Brand AI Homepage"
        }, /*#__PURE__*/React.createElement(Logo, null)), /*#__PURE__*/React.createElement("nav", {
            className: "hidden md:flex items-center space-x-6"
        }, navLinks.map(link => /*#__PURE__*/React.createElement("a", {
            key: link.name,
            href: link.href,
            className: "text-gray-600 hover:text-brand-cyan font-medium transition-colors"
        }, link.name)))), /*#__PURE__*/React.createElement("div", {
            className: "hidden md:flex items-center space-x-4"
        }, /*#__PURE__*/React.createElement("a", {
            href: "https://bit.ly/2LpQJmO",
            target: "_blank",
            rel: "noopener noreferrer",
            className: "font-semibold text-gray-600 hover:text-brand-cyan transition-colors border border-gray-300 rounded-lg py-2 px-4 text-sm hover:border-brand-cyan"
        }, "Download App"),
        


        /*#__PURE__*/React.createElement("a", {
            href: "https://www.thebrand.ai/brandcreator/dashboard/auth-signin?url=home",
            target: "_self",
            onClick: () => { window.location.href = "https://www.thebrand.ai/brandcreator/dashboard/auth-signin?url=home"; },
            className: "font-bold text-gray-600 hover:text-brand-cyan transition-colors"
        }, "Log in"), /*#__PURE__*/React.createElement("a", {
            href: "https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home",
            target: "_self",
            onClick: () => { window.location.href = "https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"; },
            className: "bg-brand-cyan text-white font-bold py-2 px-4 rounded-lg hover:opacity-90 transition-opacity"
        }, "Sign up for free")), /*#__PURE__*/React.createElement("div", {
            className: "md:hidden"
        }, /*#__PURE__*/React.createElement("button", {
            onClick: () => setIsMenuOpen(!isMenuOpen),
            className: "text-gray-800 focus:outline-none",
            "aria-label": "Toggle menu"
        }, /*#__PURE__*/React.createElement("svg", {
            className: "w-6 h-6",
            fill: "none",
            stroke: "currentColor",
            viewBox: "0 0 24 24",
            xmlns: "http://www.w3.org/2000/svg"
        }, /*#__PURE__*/React.createElement("path", {
            strokeLinecap: "round",
            strokeLinejoin: "round",
            strokeWidth: "2",
            d: isMenuOpen ? "M6 18L18 6M6 6l12 12" : "M4 6h16M4 12h16M4 18h16"
        }))))), isMenuOpen && /*#__PURE__*/React.createElement("div", {
            className: "md:hidden mt-4"
        }, /*#__PURE__*/React.createElement("nav", {
            className: "flex flex-col space-y-4"
        }, navLinks.map(link => /*#__PURE__*/React.createElement("a", {
            key: link.name,
            href: link.href,
            className: "text-gray-600 hover:text-brand-cyan font-medium transition-colors"
        }, link.name)), /*#__PURE__*/React.createElement("div", {
            className: "flex flex-col space-y-3 pt-4 border-t"
        }, /*#__PURE__*/React.createElement("a", {
            href: "https://bit.ly/2LpQJmO",
            target: "_blank",
            rel: "noopener noreferrer",
            className: "w-full text-center border border-gray-300 text-gray-600 font-bold py-2 px-4 rounded-lg hover:border-brand-cyan hover:text-brand-cyan transition-colors"
        }, "Download App"), /*#__PURE__*/React.createElement("a", {
            href: "https://www.thebrand.ai/brandcreator/dashboard/auth-signin?url=home",
            target: "_self",
            onClick: () => { window.location.href = "https://www.thebrand.ai/brandcreator/dashboard/auth-signin?url=home"; },
            className: "font-bold text-gray-600 hover:text-brand-cyan transition-colors"
        }, "Log in"), /*#__PURE__*/React.createElement("a", {
            href: "https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home",
            target: "_self",
            onClick: () => { window.location.href = "https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"; },
            className: "w-full text-center bg-brand-cyan text-white font-bold py-2 px-4 rounded-lg hover:opacity-90 transition-opacity"
        }, "Sign up for free"))))));
    };
    // --- END OF components/Header.tsx ---

    // --- START OF components/Footer.tsx ---
    var Footer = () => {
        var socialLinks = [{
            name: 'Facebook',
            href: 'https://facebook.com/TheBrandApp',
            icon: /*#__PURE__*/React.createElement(FacebookIcon, null)
        }, {
            name: 'Twitter',
            href: 'https://twitter.com/thebrandhq',
            icon: /*#__PURE__*/React.createElement(TwitterIcon, null)
        }, {
            name: 'Instagram',
            href: 'https://www.instagram.com/thebrandapp',
            icon: /*#__PURE__*/React.createElement(InstagramIcon, null)
        }, {
            name: 'LinkedIn',
            href: 'https://www.linkedin.com/company/the-brand-app',
            icon: /*#__PURE__*/React.createElement(LinkedInIcon, null)
        }];
        var footerSections = [{
            title: 'Features',
            links: [{
                name: 'Brand Creator',
                href: 'https://www.thebrand.ai/brandcreator/index'
            }, {
                name: 'My Designs',
                href: 'https://www.thebrand.ai/i/account/designs'
            }, {
                name: 'Templates',
                href: 'https://www.thebrand.ai/i'
            }, {
                name: 'Brand Toolkit',
                href: 'https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit'
            }]
        }, {
            title: 'Resources',
            links: [{
                name: 'Insights',
                href: 'https://www.thebrand.ai/insights/'
            }, {
                name: 'Blogs',
                href: 'https://www.thebrand.ai/blogs'
            }, {
                name: 'Brand Journeys',
                href: 'https://www.thebrand.ai/insights/dashboard?feature=browsejourneys'
            }, {
                name: 'Sites',
                href: 'https://www.thebrand.ai/sites/index'
            }]
        }, {
            title: 'Account',
            links: [{
                name: 'My Brand Identity',
                href: 'https://www.thebrand.ai/i/account/build_brand'
            }, {
                name: 'Update Brand Details',
                href: '#'
            }, {
                name: 'Onboarding',
                href: 'https://www.thebrand.ai/insights/auth-onboard'
            }]
        }, {
            title: 'Company',
            links: [{
                name: 'About Us',
                href: '#'
            }, {
                name: 'Contact Us',
                href: 'https://www.thebrand.ai/i/contact'
            }, {
                name: 'Careers',
                href: '#'
            }]
        }];
        return /*#__PURE__*/React.createElement("footer", {
            className: "bg-brand-midnight text-white"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 py-12"
        }, /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8"
        }, /*#__PURE__*/React.createElement("div", {
            className: "col-span-2 lg:col-span-1"
        }, /*#__PURE__*/React.createElement("a", {
            href: "/",
            "aria-label": "Brand AI Homepage"
        }, /*#__PURE__*/React.createElement(Logo, {
            theme: "dark"
        })), /*#__PURE__*/React.createElement("p", {
            className: "mt-4 text-gray-400"
        }, "Your vision, amplified.")), footerSections.map(section => /*#__PURE__*/React.createElement("div", {
            key: section.title
        }, /*#__PURE__*/React.createElement("h3", {
            className: "font-bold uppercase text-gray-400"
        }, section.title), /*#__PURE__*/React.createElement("ul", {
            className: "mt-4 space-y-2"
        }, section.links.map(link => /*#__PURE__*/React.createElement("li", {
            key: link.name
        }, /*#__PURE__*/React.createElement("a", {
            href: link.href,
            className: "text-gray-300 hover:text-brand-cyan transition-colors"
        }, link.name))))))), /*#__PURE__*/React.createElement("div", {
            className: "mt-12 pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center"
        }, /*#__PURE__*/React.createElement("p", {
            className: "text-gray-400"
        }, "\xA9 ", new Date().getFullYear(), " Brand AI. All rights reserved."), /*#__PURE__*/React.createElement("div", {
            className: "flex space-x-4 mt-4 md:mt-0"
        }, socialLinks.map(social => /*#__PURE__*/React.createElement("a", {
            key: social.name,
            href: social.href,
            className: "text-gray-400 hover:text-brand-cyan transition-colors",
            "aria-label": social.name
        }, /*#__PURE__*/React.createElement("span", {
            className: "sr-only"
        }, social.name), social.icon))))));
    };
    // --- END OF components/Footer.tsx ---

    // --- START OF components/FeatureCard.tsx ---
    var FeatureCard = _ref2 => {
        var {
            title,
            description,
            link,
            buttonText,
            imageUrl,
            bgColor,
            size = 'normal'
        } = _ref2;
        var sizeClasses = {
            normal: 'min-h-[480px] md:min-h-[520px]',
            large: 'min-h-[520px] md:col-span-2 lg:col-span-1' // Special classes can be added here
        };
        return /*#__PURE__*/React.createElement("div", {
            className: "relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 ".concat(sizeClasses[size]),
            style: {
                backgroundColor: bgColor
            }
        }, /*#__PURE__*/React.createElement("div", {
            className: "z-10 relative"
        }, /*#__PURE__*/React.createElement("h3", {
            className: "text-3xl md:text-4xl font-bold mb-4"
        }, title), description && /*#__PURE__*/React.createElement("p", {
            className: "text-lg opacity-90 mb-6"
        }, description), /*#__PURE__*/React.createElement("a", {
            href: link,
            className: "bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block"
        }, buttonText)), /*#__PURE__*/React.createElement("div", {
            className: "absolute inset-0 z-0"
        }, /*#__PURE__*/React.createElement("img", {
            src: imageUrl,
            alt: title,
            className: "w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out",
            loading: "lazy",
            decoding: "async"
        }), /*#__PURE__*/React.createElement("div", {
            className: "absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"
        })));
    };
    // --- END OF components/FeatureCard.tsx ---

    // --- START OF components/TemplateCard.tsx ---
    var TemplateCard = _ref3 => {
        var {
            title,
            url
        } = _ref3;
        var imageSeed = title.replace(/\s+/g, '-').toLowerCase();
        return /*#__PURE__*/React.createElement("a", {
            href: url,
            className: "block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"
        }, /*#__PURE__*/React.createElement("div", {
            className: "relative aspect-[4/3] overflow-hidden"
        }, /*#__PURE__*/React.createElement("img", {
            src: "https://picsum.photos/seed/".concat(imageSeed, "/400/300"),
            alt: title,
            className: "w-full h-full object-cover group-hover:scale-105 transition-transform duration-300",
            loading: "lazy",
            decoding: "async"
        }), /*#__PURE__*/React.createElement("div", {
            className: "absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"
        })), /*#__PURE__*/React.createElement("div", {
            className: "p-3"
        }, /*#__PURE__*/React.createElement("h4", {
            className: "text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300"
        }, title)));
    };
    // --- END OF components/TemplateCard.tsx ---

    // --- START OF components/InteractiveTemplates.tsx ---
    var InteractiveTemplates = () => {
        var [activeTab, setActiveTab] = useState(TEMPLATE_CATEGORIES[0].category);
        var activeCategory = TEMPLATE_CATEGORIES.find(cat => cat.category === activeTab);
        return /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6"
        }, /*#__PURE__*/React.createElement("div", {
            className: "text-center mb-12"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold mb-4"
        }, "Templates for absolutely anything"), /*#__PURE__*/React.createElement("p", {
            className: "text-lg md:text-xl text-gray-600 max-w-2xl mx-auto"
        }, "Jumpstart your next project with thousands of professional templates for any occasion."), /*#__PURE__*/React.createElement("a", {
            href: "https://www.thebrand.ai/brandcreator/index",
            className: "mt-8 inline-block bg-brand-cyan text-white font-bold py-3 px-8 rounded-lg text-lg hover:opacity-90 transition-opacity"
        }, "Create Your Brand Now")), /*#__PURE__*/React.createElement("div", {
            className: "flex flex-wrap justify-center gap-2 md:gap-4 mb-10"
        }, TEMPLATE_CATEGORIES.map(cat => /*#__PURE__*/React.createElement("button", {
            key: cat.category,
            onClick: () => setActiveTab(cat.category),
            className: "py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base ".concat(activeTab === cat.category ? 'bg-brand-cyan text-white shadow-lg transform scale-105' : 'bg-gray-200 text-gray-700 hover:bg-gray-300')
        }, cat.category))), /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-6 md:gap-8"
        }, activeCategory === null || activeCategory === void 0 ? void 0 : activeCategory.templates.map(template => /*#__PURE__*/React.createElement(TemplateCard, {
            key: template.title,
            title: template.title,
            url: template.url
        }))));
    };
    // --- END OF components/InteractiveTemplates.tsx ---

    // --- START OF App.tsx ---
    var App = () => {
        return /*#__PURE__*/React.createElement("div", {
            className: "bg-white text-gray-800 font-sans"
        }, /*#__PURE__*/React.createElement(Header, null), /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement("section", {
            className: "relative text-white overflow-hidden bg-brand-midnight"
        }, /*#__PURE__*/React.createElement("div", {
            "aria-hidden": "true",
            className: "absolute inset-0 z-0 opacity-50"
        }, /*#__PURE__*/React.createElement("div", {
            className: "absolute top-[-30%] left-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-br from-brand-cyan to-transparent filter blur-3xl"
        }), /*#__PURE__*/React.createElement("div", {
            className: "absolute bottom-[-30%] right-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-tl from-brand-cyan to-transparent filter blur-3xl"
        })), /*#__PURE__*/React.createElement("div", {
            className: "relative z-10 flex flex-col items-center justify-center min-h-[70vh] md:min-h-[80vh] px-4 text-center"
        }, /*#__PURE__*/React.createElement("h1", {
            className: "text-5xl md:text-7xl lg:text-8xl font-extrabold mb-4 tracking-tight"
        }, "Your Entire Brand. One Intelligent Platform."), /*#__PURE__*/React.createElement("p", {
            className: "text-lg md:text-2xl max-w-3xl mb-8"
        }, "Imagine the creative firepower of a design agency, the strategic insight of a consultant, and the brilliance of a top-tier marketing team\u2014all at your fingertips. That's Brand AI."), /*#__PURE__*/React.createElement("div", {
            className: "flex flex-wrap justify-center gap-4"
        }, /*#__PURE__*/React.createElement("a", {
            href: "https://www.thebrand.ai/brandcreator/index",
            className: "bg-white text-brand-midnight font-bold py-3 px-8 rounded-lg text-lg hover:bg-gray-200 transition-all duration-300 transform hover:scale-105"
        }, "Start creating for free"), /*#__PURE__*/React.createElement("a", {
            href: "https://www.thebrand.ai/i/",
            className: "bg-white/10 backdrop-blur-sm text-white font-bold py-3 px-8 rounded-lg text-lg hover:bg-white/20 transition-all duration-300 transform hover:scale-105"
        }, "Browse Templates")))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28 bg-gray-50"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 text-center"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold mb-4"
        }, "The old way is broken."), /*#__PURE__*/React.createElement("p", {
            className: "text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12"
        }, "Did you know 90% of businesses struggle to stand out? They spend months and thousands on solutions that don\u2019t deliver."), /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-1 md:grid-cols-3 gap-8 text-left"
        }, PROBLEM_CARDS.map((card, index) => /*#__PURE__*/React.createElement("div", {
            key: index,
            className: "bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300"
        }, /*#__PURE__*/React.createElement("div", {
            className: "text-brand-cyan mb-4"
        }, card.icon), /*#__PURE__*/React.createElement("h3", {
            className: "text-xl font-bold mb-2"
        }, card.title), /*#__PURE__*/React.createElement("p", {
            className: "text-gray-600"
        }, card.description)))))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold text-center mb-12"
        }, "An entire toolkit, powered by AI."), /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"
        }, FEATURES_PRIMARY.map((feature, index) => /*#__PURE__*/React.createElement(FeatureCard, _extends({
            key: index
        }, feature)))))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-24 bg-brand-midnight text-white"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 text-center"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-5xl md:text-6xl font-extrabold mb-4 tracking-tight"
        }, "34,000+ users and growing."), /*#__PURE__*/React.createElement("p", {
            className: "text-lg md:text-xl opacity-80 max-w-3xl mx-auto"
        }, "Trusted by governments, SMEs, and startups worldwide. All achieved through organic growth fueled by user trust and referrals."))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28 bg-gray-50"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold text-center mb-12"
        }, "All the tools. All in one place."), /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-1 md:grid-cols-2 gap-8"
        }, FEATURES_SECONDARY.map((feature, index) => /*#__PURE__*/React.createElement(FeatureCard, _extends({
            key: index
        }, feature)))))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 text-center"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold mb-12"
        }, "Hyper-contextual solutions for everyone."), /*#__PURE__*/React.createElement("div", {
            className: "flex flex-wrap justify-center gap-8 md:gap-12"
        }, TARGET_MARKETS.map((market, index) => /*#__PURE__*/React.createElement("div", {
            key: index,
            className: "flex flex-col items-center text-center w-32"
        }, /*#__PURE__*/React.createElement("div", {
            className: "bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200"
        }, market.icon), /*#__PURE__*/React.createElement("h3", {
            className: "font-semibold text-gray-700"
        }, market.name)))))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28 bg-gray-50"
        }, /*#__PURE__*/React.createElement(InteractiveTemplates, null)), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold text-center mb-12"
        }, "Your brand's entire ecosystem, connected."), /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"
        }, FEATURES_TERTIARY.map((feature, index) => /*#__PURE__*/React.createElement(FeatureCard, _extends({
            key: index
        }, feature))))))), /*#__PURE__*/React.createElement(Footer, null));
    };
    // --- END OF App.tsx ---

    // --- START OF index.tsx ---
    var rootElement = document.getElementById('root');
    if (!rootElement) {
        throw new Error("Could not find root element to mount to");
    }
    var root = ReactDOM.createRoot(rootElement);
    root.render(/*#__PURE__*/React.createElement(React.StrictMode, null, /*#__PURE__*/React.createElement(App, null)));
    // --- END OF index.tsx ---
    //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwiUmVhY3RET00iLCJGRUFUVVJFU19QUklNQVJZIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImxpbmsiLCJidXR0b25UZXh0IiwiaW1hZ2VVcmwiLCJiZ0NvbG9yIiwiRkVBVFVSRVNfU0VDT05EQVJZIiwic2l6ZSIsIkZFQVRVUkVTX1RFUlRJQVJZIiwiQ29zdEljb24iLCJjcmVhdGVFbGVtZW50IiwieG1sbnMiLCJjbGFzc05hbWUiLCJmaWxsIiwidmlld0JveCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwiZCIsIlRpbWVJY29uIiwiVG9vbHNJY29uIiwiUFJPQkxFTV9DQVJEUyIsImljb24iLCJTbWVJY29uIiwiR292ZXJubWVudEljb24iLCJTdGFydHVwSWNvbiIsIk1hcmtldGVySWNvbiIsIkNvcnBvcmF0ZUljb24iLCJUQVJHRVRfTUFSS0VUUyIsIm5hbWUiLCJGYWNlYm9va0ljb24iLCJmaWxsUnVsZSIsImNsaXBSdWxlIiwiVHdpdHRlckljb24iLCJJbnN0YWdyYW1JY29uIiwiTGlua2VkSW5JY29uIiwiVEVNUExBVEVfQ0FURUdPUklFUyIsImNhdGVnb3J5IiwidGVtcGxhdGVzIiwidXJsIiwiTG9nbyIsIl9yZWYiLCJ0aGVtZSIsInRoZUNvbG9yIiwiYnJhbmRDb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwidHJhbnNmb3JtIiwieCIsInkiLCJ0ZXh0QW5jaG9yIiwiZm9udFNpemUiLCJmb250V2VpZ2h0Iiwic3R5bGUiLCJmb250RmFtaWx5IiwiSGVhZGVyIiwiaXNNZW51T3BlbiIsInNldElzTWVudU9wZW4iLCJuYXZMaW5rcyIsImhyZWYiLCJtYXAiLCJrZXkiLCJ0YXJnZXQiLCJyZWwiLCJvbkNsaWNrIiwiRm9vdGVyIiwic29jaWFsTGlua3MiLCJmb290ZXJTZWN0aW9ucyIsImxpbmtzIiwic2VjdGlvbiIsIkRhdGUiLCJnZXRGdWxsWWVhciIsInNvY2lhbCIsIkZlYXR1cmVDYXJkIiwiX3JlZjIiLCJzaXplQ2xhc3NlcyIsIm5vcm1hbCIsImxhcmdlIiwiY29uY2F0IiwiYmFja2dyb3VuZENvbG9yIiwic3JjIiwiYWx0IiwibG9hZGluZyIsImRlY29kaW5nIiwiVGVtcGxhdGVDYXJkIiwiX3JlZjMiLCJpbWFnZVNlZWQiLCJyZXBsYWNlIiwidG9Mb3dlckNhc2UiLCJJbnRlcmFjdGl2ZVRlbXBsYXRlcyIsImFjdGl2ZVRhYiIsInNldEFjdGl2ZVRhYiIsImFjdGl2ZUNhdGVnb3J5IiwiZmluZCIsImNhdCIsInRlbXBsYXRlIiwiQXBwIiwiY2FyZCIsImluZGV4IiwiZmVhdHVyZSIsIl9leHRlbmRzIiwibWFya2V0Iiwicm9vdEVsZW1lbnQiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiRXJyb3IiLCJyb290IiwiY3JlYXRlUm9vdCIsInJlbmRlciIsIlN0cmljdE1vZGUiXSwic291cmNlcyI6WyJJbmxpbmUgQmFiZWwgc2NyaXB0Il0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICAgaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuICAgICAgaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuXG4gICAgICAvLyAtLS0gU1RBUlQgT0YgY29uc3RhbnRzLnRzeCAtLS1cbiAgICAgIGNvbnN0IEZFQVRVUkVTX1BSSU1BUlkgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJ0JyaW5nIFlvdXIgQnJhbmQgdG8gTGlmZSB3aXRoIEJyYW5kIENyZWF0b3InLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUXVpY2tseSBhbmQgZWZmb3J0bGVzc2x5IGNyZWF0ZSBhIHBvd2VyZnVsLCBwcm9mZXNzaW9uYWwgYnJhbmQgaWRlbnRpdHkgYW5kIGxvZ29zIHRoYXQgc3RhbmQgb3V0IGFuZCBkcml2ZSBidXNpbmVzcyBncm93dGguJyxcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvYnJhbmRjcmVhdG9yL2luZGV4JyxcbiAgICAgICAgICBidXR0b25UZXh0OiAnRXhwbG9yZSBCcmFuZCBDcmVhdG9yJyxcbiAgICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkL2Rlc2lnbi1hc3NldHMvODAwLzYwMCcsXG4gICAgICAgICAgYmdDb2xvcjogJyMxRTAwM0InLCAvLyBEZWVwIFB1cnBsZS9JbmRpZ29cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnUmV2b2x1dGlvbml6ZSBZb3VyIEJyYW5kIHdpdGggQUkgSW5zaWdodHMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU3VwZXJjaGFyZ2UgeW91ciBicmFuZCB3aXRoIGludGVsbGlnZW50IHNvbHV0aW9ucywgZGVzaWduLCBhbmQgYmlnIGRhdGEgdG8gZHJpdmUgZ3Jvd3RoLCBlbmdhZ2VtZW50LCBhbmQgbWVhc3VyYWJsZSBzdWNjZXNzLicsXG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2luc2lnaHRzLycsXG4gICAgICAgICAgYnV0dG9uVGV4dDogJ0V4cGxvcmUgSW5zaWdodHMnLFxuICAgICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zL3NlZWQvZGF0YS12aXovODAwLzYwMCcsXG4gICAgICAgICAgYmdDb2xvcjogJyMwMDNENUInLCAvLyBEYXJrIEN5YW4vQmx1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6ICdCdWlsZCBhIFdlYnNpdGUgRWFzaWx5IHdpdGggQnJhbmQgU2l0ZXMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2hvb3NlIGZyb20gb3ZlciAxMDAgYW1hemluZyB0ZW1wbGF0ZXMgdG8gYnVpbGQgYSBzdHVubmluZyB3ZWJzaXRlIHRoYXQgZW1wb3dlcnMgeW91ciBicmFuZCB0byBzdGFuZCBvdXQuJyxcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvc2l0ZXMvaW5kZXgnLFxuICAgICAgICAgIGJ1dHRvblRleHQ6ICdFeHBsb3JlIEJyYW5kIFNpdGVzJyxcbiAgICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkL3dlYi1kZXNpZ24vODAwLzYwMCcsXG4gICAgICAgICAgYmdDb2xvcjogJyMwMDRDNEMnLCAvLyBEYXJrIFRlYWxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IEZFQVRVUkVTX1NFQ09OREFSWSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnTWVldCB0aGUgVmlzdWFsIFN1aXRlJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1lvdXIgZW50aXJlIHdvcmtmbG93IGluIG9uZSBwbGFjZS4gRnJvbSBiZXNwb2tlIGRlc2lnbnMgYW5kIGluc2lnaHRmdWwgYmxvZ3MgdG8gdGFpbG9yZWQgc3RyYXRlZ2llc+KAlGFsbCBwb3dlcmVkIGJ5IEFJLicsXG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2luc2lnaHRzL2Rhc2hib2FyZD9mZWF0dXJlPWJyYW5kdG9vbGtpdCcsXG4gICAgICAgICAgYnV0dG9uVGV4dDogJ0V4cGxvcmUgVmlzdWFsIFN1aXRlJyxcbiAgICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkL2JyYW5kLXN1aXRlLzEyMDAvODAwJyxcbiAgICAgICAgICBiZ0NvbG9yOiAnIzNEMDA0RicsIC8vIERhcmsgTWFnZW50YS9QdXJwbGVcbiAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6ICdQcmVzZW50IHdpdGggaW1wYWN0JyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlaW1hZ2luZSBwcmVzZW50YXRpb25zIHdpdGggY2luZW1hdGljIHZpc3VhbHMsIHNtYXJ0IGNvbGxhYm9yYXRpb24sIGFuZCBBSS1wb3dlcmVkIHRvb2xzLicsXG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZGVzaWducycsXG4gICAgICAgICAgYnV0dG9uVGV4dDogJ1RyeSBQcmVzZW50YXRpb25zJyxcbiAgICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkL2ltcGFjdC1wcmVzLzEyMDAvODAwJyxcbiAgICAgICAgICBiZ0NvbG9yOiAnIzAwNUY1OCcsIC8vIERlZXAgVGVhbC9HcmVlblxuICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBGRUFUVVJFU19URVJUSUFSWSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnRGVmaW5lIHlvdXIgQnJhbmQgSWRlbnRpdHknLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQSBjZW50cmFsIGh1YiB0byBidWlsZCwgbWFuYWdlLCBhbmQgZXZvbHZlIHlvdXIgdW5pcXVlIGJyYW5kIGlkZW50aXR5IGFzIHlvdSBzY2FsZS4nLFxuICAgICAgICAgIGxpbms6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FjY291bnQvYnVpbGRfYnJhbmQnLFxuICAgICAgICAgIGJ1dHRvblRleHQ6ICdCdWlsZCBNeSBCcmFuZCcsXG4gICAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL3BpY3N1bS5waG90b3Mvc2VlZC9icmFuZC1ndWlkZS84MDAvNjAwJyxcbiAgICAgICAgICBiZ0NvbG9yOiAnIzFBMjM3RScsIC8vIERhcmsgSW5kaWdvXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJ0VuZC10by1lbmQgcGxhdGZvcm0gZm9yIGxhcmdlIG9yZ2FuaXphdGlvbnMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2NhbGUgYnJhbmQgY29uc2lzdGVuY3kgd2l0aCBlbnRlcnByaXNlLWdyYWRlIHRvb2xzLCBzZWN1cml0eSwgYW5kIHN1cHBvcnQgZm9yIGxhcmdlIG9yZ2FuaXphdGlvbnMuJyxcbiAgICAgICAgICBsaW5rOiAnIycsXG4gICAgICAgICAgYnV0dG9uVGV4dDogJ0V4cGxvcmUgRW50ZXJwcmlzZScsXG4gICAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL3BpY3N1bS5waG90b3Mvc2VlZC9jb3Jwb3JhdGUtZGFzaC84MDAvNjAwJyxcbiAgICAgICAgICBiZ0NvbG9yOiAnIzAwMjYzRScsIC8vIFZlcnkgRGFyayBCbHVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJ1VubG9jayBHcm93dGggd2l0aCBJbnNpZ2h0IEpvdXJuZXlzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFeHBsb3JlIGV4cGVydC1sZWQgam91cm5leXMgdG8gdHJhbnNmb3JtIHlvdXIgc3RhcnR1cCdzIGdyb3d0aCwgb3ZlcmNvbWUgY2hhbGxlbmdlcywgYW5kIGFjaGlldmUgc3VjY2Vzcy5cIixcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvZGFzaGJvYXJkP2ZlYXR1cmU9YnJvd3Nlam91cm5leXMnLFxuICAgICAgICAgIGJ1dHRvblRleHQ6ICdEaXNjb3ZlciBZb3VyIFBhdGgnLFxuICAgICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zL3NlZWQvZ3Jvd3RoLXBhdGgvODAwLzYwMCcsXG4gICAgICAgICAgYmdDb2xvcjogJyMwMTU3OUInLCAvLyBMaWdodCBCbHVlXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBDb3N0SWNvbiA9ICgpID0+IChcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3NOYW1lPVwiaC0xMCB3LTEwXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlV2lkdGg9ezJ9PlxuICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTEyIDhjLTEuNjU3IDAtMyAuODk1LTMgMnMxLjM0MyAyIDMgMiAzIC44OTUgMyAyLTEuMzQzIDItMyAybTAtOGMxLjExIDAgMi4wOC40MDIgMi41OTkgMU0xMiA4VjdtMCAxMHYtMW0tNS4yOTMtNi4yOTNsLS43MDcuNzA3TTE3LjI5MyA3LjcwN2wuNzA3LS43MDdNNS43MDcgMTYuMjkzbC43MDcuNzA3TTE2LjU4NiAxN0gxOWEyIDIgMCAwMDItMlY5YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnY2YTIgMiAwIDAwMiAyaDIuNDE0XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBUaW1lSWNvbiA9ICgpID0+IChcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3NOYW1lPVwiaC0xMCB3LTEwXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlV2lkdGg9ezJ9PlxuICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTEyIDh2NGwzIDNtNi0zYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKTtcblxuICAgICAgY29uc3QgVG9vbHNJY29uID0gKCkgPT4gKFxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzc05hbWU9XCJoLTEwIHctMTBcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTEgNGEyIDIgMCAxMTQgMHYxYTEgMSAwIDAwMSAxaDNhMSAxIDAgMDExIDF2M2ExIDEgMCAwMS0xIDFoLTFhMiAyIDAgMTAwIDRoMWExIDEgMCAwMTEgMXYzYTEgMSAwIDAxLTEgMWgtM2ExIDEgMCAwMS0xLTF2LTFhMiAyIDAgMTAtNCAwdjFhMSAxIDAgMDEtMSAxSDdhMSAxIDAgMDEtMS0xdi0zYTEgMSAwIDAwLTEtMUg0YTIgMiAwIDExMC00aDFhMSAxIDAgMDAxLTFWN2ExIDEgMCAwMTEtMWgzYTEgMSAwIDAwMS0xVjR6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBQUk9CTEVNX0NBUkRTID0gW1xuICAgICAgICB7XG4gICAgICAgICAgaWNvbjogPENvc3RJY29uIC8+LFxuICAgICAgICAgIHRpdGxlOiAnQWdlbmN5LUxldmVsIEJ1ZGdldHMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU01FcyBhbmQgZ292ZXJubWVudHMgbmVlZCB0b3AtdGllciBzdHJhdGVneSBidXQgbGFjayB0aGUgYnVkZ2V0IGZvciBleHBlbnNpdmUgYWdlbmNpZXMuJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWNvbjogPFRpbWVJY29uIC8+LFxuICAgICAgICAgIHRpdGxlOiAnTW9udGhzIG9mIEd1ZXNzd29yaycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdGb3VuZGVycyBhbmQgbWFya2V0ZXJzIHdhc3RlIHByZWNpb3VzIHRpbWUgZ3Vlc3NpbmcgdGhlaXIgbmV4dCBtb3ZlIGluc3RlYWQgb2YgYWN0aW5nIG9uIGNsZWFyIGluc2lnaHRzLidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGljb246IDxUb29sc0ljb24gLz4sXG4gICAgICAgICAgdGl0bGU6ICdKdWdnbGluZyBhIERvemVuIFRvb2xzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NyZWF0aXZlcyBqdWdnbGUgbXVsdGlwbGUsIGRpc2Nvbm5lY3RlZCB0b29scyB0byBjcmVhdGUgYSBzaW5nbGUgY2FtcGFpZ24sIHdpdGggbm9uZSBvZiB0aGVtIHRhbGtpbmcgdG8gZWFjaCBvdGhlci4nXG4gICAgICAgIH1cbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IFNtZUljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzTmFtZT1cImgtOCB3LThcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTkgMjFWNWEyIDIgMCAwMC0yLTJIN2EyIDIgMCAwMC0yIDJ2MTZtMTQgMGgybS0yIDBoLTVtLTkgMEgzbTIgMHYtNG0wIDRoNW0wIDB2LTRtMCA0aDVtLTUtNHYtNWg1djVoLTV6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuICAgICAgY29uc3QgR292ZXJubWVudEljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzTmFtZT1cImgtOCB3LThcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTIgMjFsLTItMm0yIDJsMi0ybTIgMmwyLTJNNSAxNWwtMi0ybTIgMmwyLTJtMiAybDItMm0yIDJsMi0yTTUgMjF2LTZhMiAyIDAgMDEyLTJoMTBhMiAyIDAgMDEyIDJ2NlwiIC8+IDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTMgMjFoMThNNSAxMGw3LTcgNyA3XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuICAgICAgY29uc3QgU3RhcnR1cEljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzTmFtZT1cImgtOCB3LThcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTMgMTBWM0w0IDE0aDd2N2w5LTExaC03elwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKTtcbiAgICAgIGNvbnN0IE1hcmtldGVySWNvbiA9ICgpID0+IChcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3NOYW1lPVwiaC04IHctOFwiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZVdpZHRoPXsyfT5cbiAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgZD1cIk0xMSAzLjA1NUE5LjAwMSA5LjAwMSAwIDEwMjAuOTQ1IDEzSDExVjMuMDU1elwiIC8+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMjAuNDg4IDlIMTVWMy41MTJBOS4wMjUgOS4wMjUgMCAwMTIwLjQ4OCA5elwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKTtcbiAgICAgIGNvbnN0IENvcnBvcmF0ZUljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzTmFtZT1cImgtOCB3LThcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTkgMjFWNWEyIDIgMCAwMC0yLTJIN2EyIDIgMCAwMC0yIDJ2MTZtMTQgMGgybS0yIDBoLTVtLTkgMEgzbTIgMHYtNG0wIDRoNW0wIDB2LTRtMCA0aDVtLTUtNFY1aDV2N2gtNXpcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IFRBUkdFVF9NQVJLRVRTID0gW1xuICAgICAgICB7IGljb246IDxTbWVJY29uIC8+LCBuYW1lOiAnU01FcycgfSxcbiAgICAgICAgeyBpY29uOiA8R292ZXJubWVudEljb24gLz4sIG5hbWU6ICdHb3Zlcm5tZW50cycgfSxcbiAgICAgICAgeyBpY29uOiA8U3RhcnR1cEljb24gLz4sIG5hbWU6ICdTdGFydHVwcycgfSxcbiAgICAgICAgeyBpY29uOiA8TWFya2V0ZXJJY29uIC8+LCBuYW1lOiAnTWFya2V0ZXJzJyB9LFxuICAgICAgICB7IGljb246IDxDb3Jwb3JhdGVJY29uIC8+LCBuYW1lOiAnQ29ycG9yYXRpb25zJyB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgRmFjZWJvb2tJY29uID0gKCkgPT4gKFxuICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNiBoLTZcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDxwYXRoIGZpbGxSdWxlPVwiZXZlbm9kZFwiIGQ9XCJNMjIgMTJjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMFMyIDYuNDc3IDIgMTJjMCA0Ljk5MSAzLjY1NyA5LjEyOCA4LjQzOCA5Ljg3OHYtNi45ODdoLTIuNTRWMTJoMi41NFY5Ljc5N2MwLTIuNTA2IDEuNDkyLTMuODkgMy43NzctMy44OSAxLjA5NCAwIDIuMjM4LjE5NSAyLjIzOC4xOTV2Mi40NmgtMS4yNmMtMS4yNDMgMC0xLjYzLjc3MS0xLjYzIDEuNTYyVjEyaDIuNzczbC0uNDQzIDIuODloLTIuMzN2Ni45ODhDMTguMzQzIDIxLjEyOCAyMiAxNi45OTEgMjIgMTJ6XCIgY2xpcFJ1bGU9XCJldmVub2RkXCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBUd2l0dGVySWNvbiA9ICgpID0+IChcbiAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTYgaC02XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTguMjkgMjAuMjUxYzcuNTQ3IDAgMTEuNjc1LTYuMjUzIDExLjY3NS0xMS42NzUgMC0uMTc4IDAtLjM1NS0uMDEyLS41M0E4LjM0OCA4LjM0OCAwIDAwMjIgNS45MmE4LjE5IDguMTkgMCAwMS0yLjM1Ny42NDYgNC4xMTggNC4xMTggMCAwMDEuODA0LTIuMjcgOC4yMjQgOC4yMjQgMCAwMS0yLjYwNS45OTYgNC4xMDcgNC4xMDcgMCAwMC02Ljk5MyAzLjc0MyAxMS42NSAxMS42NSAwIDAxLTguNDU3LTQuMjg3IDQuMTA2IDQuMTA2IDAgMDAxLjI3IDUuNDc3QTQuMDcyIDQuMDcyIDAgMDEyLjggOS43MXYuMDUyYTQuMTA1IDQuMTA1IDAgMDAzLjI5MiA0LjAyMiA0LjA5NSA0LjA5NSAwIDAxLTEuODUzLjA3IDQuMTA4IDQuMTA4IDAgMDAzLjgzNCAyLjg1QTguMjMzIDguMjMzIDAgMDEyIDE4LjQwN2ExMS42MTYgMTEuNjE2IDAgMDA2LjI5IDEuODRcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IEluc3RhZ3JhbUljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy02IGgtNlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgPHBhdGggZmlsbFJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMi4zMTUgMmMyLjQzIDAgMi43ODQuMDEzIDMuODA4LjA2IDEuMDY0LjA0OSAxLjc5MS4yMTggMi40MjcuNDY1YTQuOTAyIDQuOTAyIDAgMDExLjc3MiAxLjE1MyA0LjkwMiA0LjkwMiAwIDAxMS4xNTMgMS43NzJjLjI0Ny42MzYuNDE2IDEuMzYzLjQ2NSAyLjQyNy4wNDggMS4wMjQuMDYgMS4zNzguMDYgMy44MDhzLS4wMTIgMi43ODQtLjA2IDMuODA4Yy0uMDQ5IDEuMDY0LS4yMTggMS43OTEtLjQ2NSAyLjQyN2E0LjkwMiA0LjkwMiAwIDAxLTEuMTUzIDEuNzcyIDQuOTAyIDQuOTAyIDAgMDEtMS43NzIgMS4xNTNjLS42MzYuMjQ3LTEuMzYzLjQxNi0yLjQyNy40NjUtMS4wMjQuMDQ4LTEuMzc4LjA2LTMuODA4LjA2cy0yLjc4NC0uMDEyLTMuODA4LS4wNmMtMS4wNjQtLjA0OS0xLjc5MS0uMjE4LTIuNDI3LS40NjVhNC45MDIgNC45MDIgMCAwMS0xLjc3Mi0xLjE1MyA0LjkwMiA0LjkwMiAwIDAxLTEuMTUzLTEuNzcyYy0uMjQ3LS42MzYtLjQxNi0xLjM2My0uNDY1LTIuNDI3LS4wNDgtMS4wMjQtLjA2LTEuMzc4LS4wNi0zLjgwOHMuMDEyLTIuNzg0LjA2LTMuODA4Yy4wNDktMS4wNjQuMjE4LTEuNzkxLjQ2NS0yLjQyN2E0LjkwMiA0LjkwMiAwIDAxMS4xNTMtMS43NzJBNC45MDIgNC45MDIgMCAwMTYuMDggMi41MjVjLjYzNi0uMjQ3IDEuMzYzLS40MTYgMi40MjctLjQ2NUM5LjUzIDIuMDEzIDkuODg0IDIgMTIuMzE1IDJ6TTEyIDcuMDQ0Yy0yLjU4MyAwLTQuNjY2IDIuMDgzLTQuNjY2IDQuNjY2czIuMDgzIDQuNjY2IDQuNjY2IDQuNjY2IDQuNjY2LTIuMDgzIDQuNjY2LTQuNjY2UzE0LjU4MyA3LjA0NCAxMiA3LjA0NHptMCA3LjY2NmMtMS42NTcgMC0zLTEuMzQzLTMtM3MxLjM0My0zIDMtMyAzIDEuMzQzIDMgMy0xLjM0MyAzLTMgM3ptNC45MTctNy45MTZhMS4xNDYgMS4xNDYgMCAxMDAtMi4yOTIgMS4xNDYgMS4xNDYgMCAwMDAgMi4yOTJ6XCIgY2xpcFJ1bGU9XCJldmVub2RkXCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBMaW5rZWRJbkljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy02IGgtNlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0xOSAwaC0xNGMtMi43NjEgMC01IDIuMjM5LTUgNXYxNGMwIDIuNzYxIDIuMjM5IDUgNSA1aDE0YzIuNzYyIDAgNS0yLjIzOSA1LTV2LTE0YzAtMi43NjEtMi4yMzgtNS01LTV6bS0xMSAxOWgtM3YtMTFoM3YxMXptLTEuNS0xMi4yNjhjLS45NjYgMC0xLjc1LS43OS0xLjc1LTEuNzY0cy43ODQtMS43NjQgMS43NS0xLjc2NCAxLjc1Ljc5IDEuNzUgMS43NjQtLjc4MyAxLjc2NC0xLjc1IDEuNzY0em0xMy41IDEyLjI2OGgtM3YtNS42MDRjMC0zLjM2OC00LTMuMTEzLTQgMHY1LjYwNGgtM3YtMTFoM3YxLjc2NWMxLjM5Ni0yLjU4NiA3LTIuNzc3IDcgMi40NzZ2Ni43NTl6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBURU1QTEFURV9DQVRFR09SSUVTID0gW1xuICAgICAgICAgIHsgXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnU29jaWFsIE1lZGlhJywgXG4gICAgICAgICAgICAgIHRlbXBsYXRlczogW1xuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJGYWNlYm9vayBQb3N0XCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL3NvY2lhbC1tZWRpYS9mYWNlYm9vay1wb3N0XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiSW5zdGFncmFtIFBvc3RcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvc29jaWFsLW1lZGlhL2luc3RhZ3JhbS1wb3N0c1wiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkluc3RhZ3JhbSBTdG9yeVwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEvaW5zdGFncmFtLXN0b3J5XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiTGlua2VkSW4gUG9zdFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEvbGlua2VkaW4tcG9zdFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlR3aXR0ZXIgUG9zdFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEvdHdpdHRlclwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlBpbnRlcmVzdCBQaW5cIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvc29jaWFsLW1lZGlhL3BpbnRlcmVzdC1waW4tZ3JhcGhpYy10ZW1wbGF0ZXNcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJJR1RWIENvdmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL3NvY2lhbC1tZWRpYS9pZ3R2LWNvdmVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiSGlnaGxpZ2h0IENvdmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL3NvY2lhbC1tZWRpYS9pbnN0YWdyYW0taGlnaGxpZ2h0LWNvdmVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiWW91VHViZSBHcmFwaGljc1wiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEveW91dHViZS1ncmFwaGljLXRlbXBsYXRlc1wiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlR3aXRjaCBHcmFwaGljc1wiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEvb25saW5lLXN0cmVhbWluZ1wiIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnSW52aXRlcyAmIENhcmRzJywgXG4gICAgICAgICAgICAgIHRlbXBsYXRlczogW1xuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJCdXNpbmVzcyBDYXJkXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2ludml0ZXMtYW5kLWNhcmRzL2J1c2luZXNzLWNhcmQtODV4NTVtbVwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlVTIEJ1c2luZXNzIENhcmRcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvaW52aXRlcy1hbmQtY2FyZHMvYnVzaW5lc3MtY2FyZC11c1wiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkdyZWV0aW5nIENhcmRcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvaW52aXRlcy1hbmQtY2FyZHMvY2FyZFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkludml0YXRpb25cIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvaW52aXRlcy1hbmQtY2FyZHMvaW52aXRhdGlvbi0xMy45eDEwLjdjbVwiIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnRG9jdW1lbnRzJywgXG4gICAgICAgICAgICAgIHRlbXBsYXRlczogW1xuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJQcmVzZW50YXRpb24gMTY6OVwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvcHJlc2VudGF0aW9uLTE2LTlcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJSZXN1bWVcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL3Jlc3VtZVwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkxldHRlcmhlYWQgQTRcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL2xldHRlcmhlYWQtYTRcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJQcm9wb3NhbCBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvcHJvcG9zYWwtYTRcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJGbHllciBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvZmx5ZXItYTRcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJOZXdzbGV0dGVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2RvY3VtZW50cy9uZXdzbGV0dGVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiSW52b2ljZSBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvaW52b2ljZS1hNFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlJlcG9ydCBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvcmVwb3J0LWE0XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiQ2VydGlmaWNhdGVcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL2NlcnRpZmljYXRlXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiTWVudSBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvbWVudS1hNFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkNoZWNrbGlzdFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvY2hlY2tsaXN0XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiU2NoZWR1bGVcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL3NjaGVkdWxlXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiV29ya2Jvb2tcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL3dvcmtib29rXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiZUJvb2tcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL2Vib29rXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiV2hpdGVwYXBlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvd2hpdGVwYXBlclwiIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnQWR2ZXJ0aXNpbmcnLCBcbiAgICAgICAgICAgICAgdGVtcGxhdGVzOiBbXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlBvc3RlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9hZHZlcnRpc2luZy9wb3N0ZXItYTNcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJCYW5uZXJcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvYWR2ZXJ0aXNpbmcvYmFubmVyLTJ4NmZ0XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiQmlsbGJvYXJkXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FkdmVydGlzaW5nL2JpbGxib2FyZFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkZseWVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FkdmVydGlzaW5nL2ZseWVyLXVzXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiWWFyZCBTaWduXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FkdmVydGlzaW5nL3lhcmQtc2lnblwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlJvbGwtdXAgQmFubmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FkdmVydGlzaW5nL3JvbGwtdXAtYmFubmVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiQnJvY2h1cmVcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvYWR2ZXJ0aXNpbmcvYnJvY2h1cmVcIiB9LFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IFxuICAgICAgICAgICAgICBjYXRlZ29yeTogJ0NvdmVycycsIFxuICAgICAgICAgICAgICB0ZW1wbGF0ZXM6IFtcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiQm9vayBDb3ZlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9jb3ZlcnMvYm9vay1jb3ZlclwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIk1hZ2F6aW5lIENvdmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2NvdmVycy9tYWdhemluZS1jb3ZlclwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlJlcG9ydCBDb3ZlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9jb3ZlcnMvcmVwb3J0LWNvdmVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiUGxhbm5lciBDb3ZlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9jb3ZlcnMvcGxhbm5lci1jb3ZlclwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcImVCb29rIENvdmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2NvdmVycy9lYm9vay1jb3ZlclwiIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIC8vIC0tLSBFTkQgT0YgY29uc3RhbnRzLnRzeCAtLS1cblxuXG4gICAgICAvLyAtLS0gU1RBUlQgT0YgY29tcG9uZW50cy9Mb2dvLnRzeCAtLS1cbiAgICAgIGNvbnN0IExvZ28gPSAoeyBjbGFzc05hbWUsIHRoZW1lID0gJ2xpZ2h0JyB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHRoZUNvbG9yID0gdGhlbWUgPT09ICdkYXJrJyA/ICcjOUNBM0FGJyA6ICcjODA4MDgwJztcbiAgICAgICAgY29uc3QgYnJhbmRDb2xvciA9IHRoZW1lID09PSAnZGFyaycgPyAnI0ZGRkZGRicgOiAnIzMzMzMzMyc7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8c3ZnIFxuICAgICAgICAgICAgd2lkdGg9XCIxMTBcIiBcbiAgICAgICAgICAgIGhlaWdodD1cIjMwXCIgXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDExMCAzMFwiIFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJUaGUgQnJhbmQgTG9nb1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLCAtMikgcm90YXRlKC01LCAxNSwgMTUpXCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAsMy45OTNDMCwxLjc4OCwxLjc4OCwwLDMuOTkzLDBoMjIuMDEzQzI4LjIxMiwwLDMwLDEuNzg4LDMwLDMuOTkzdjIyLjAxMyBjMCwyLjIwNS0xLjc4OCwzLjk5My0zLjk5MywzLjk5M0gzLjk5M0MxLjc4OCwzMCwwLDI4LjIxMiwwLDI2LjAwN1YzLjk5M3pcIiBmaWxsPVwiIzI5QjZGNlwiLz5cbiAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9XCIxNVwiIHk9XCIyMVwiIHRleHRBbmNob3I9XCJtaWRkbGVcIiBmb250U2l6ZT1cIjIwXCIgZm9udFdlaWdodD1cImJvbGRcIiBmaWxsPVwid2hpdGVcIiBzdHlsZT17e2ZvbnRGYW1pbHk6ICdpbmhlcml0J319PkI8L3RleHQ+XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgPHRleHQgeD1cIjQwXCIgeT1cIjEyXCIgZm9udFNpemU9XCI5XCIgZmlsbD17dGhlQ29sb3J9IGZvbnRXZWlnaHQ9XCI2MDBcIiBzdHlsZT17e2ZvbnRGYW1pbHk6ICdpbmhlcml0J319PlRIRTwvdGV4dD5cbiAgICAgICAgICAgICAgPHRleHQgeD1cIjQwXCIgeT1cIjI3XCIgZm9udFNpemU9XCIxNlwiIGZpbGw9e2JyYW5kQ29sb3J9IGZvbnRXZWlnaHQ9XCJib2xkXCIgc3R5bGU9e3tmb250RmFtaWx5OiAnaW5oZXJpdCd9fT5CcmFuZDwvdGV4dD5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICAvLyAtLS0gRU5EIE9GIGNvbXBvbmVudHMvTG9nby50c3ggLS0tXG5cblxuICAgICAgLy8gLS0tIFNUQVJUIE9GIGNvbXBvbmVudHMvSGVhZGVyLnRzeCAtLS1cbiAgICAgIGNvbnN0IEhlYWRlciA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgW2lzTWVudU9wZW4sIHNldElzTWVudU9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgIGNvbnN0IG5hdkxpbmtzID0gW1xuICAgICAgICAgIHsgbmFtZTogJ0JyYW5kIENyZWF0b3InLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvYnJhbmRjcmVhdG9yL2luZGV4JyB9LFxuICAgICAgICAgIHsgbmFtZTogJ1RlbXBsYXRlcycsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pL2Rlc2lnbnMnIH0sXG4gICAgICAgICAgeyBuYW1lOiAnSW5zaWdodHMnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvJyB9LFxuICAgICAgICAgIHsgbmFtZTogJ1ByaWNpbmcnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvYnJhbmRwYXkvY2hvb3NlJyB9LFxuICAgICAgICAgIHsgbmFtZTogJ0Jsb2dzJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2Jsb2dzJyB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJiZy13aGl0ZS84MCBiYWNrZHJvcC1ibHVyLXNtIHN0aWNreSB0b3AtMCB6LTUwIHNoYWRvdy1zbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02IHB5LTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtOFwiPlxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9cIiBhcmlhLWxhYmVsPVwiQnJhbmQgQUkgSG9tZXBhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPExvZ28gLz5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwiaGlkZGVuIG1kOmZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNlwiPlxuICAgICAgICAgICAgICAgICAgICB7bmF2TGlua3MubWFwKChsaW5rKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGEga2V5PXtsaW5rLm5hbWV9IGhyZWY9e2xpbmsuaHJlZn0gY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWJyYW5kLWN5YW4gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsaW5rLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIG1kOmZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNFwiPlxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vYml0Lmx5LzJMcFFKbU9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtYnJhbmQtY3lhbiB0cmFuc2l0aW9uLWNvbG9ycyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgcHktMiBweC00IHRleHQtc20gaG92ZXI6Ym9yZGVyLWJyYW5kLWN5YW5cIj5Eb3dubG9hZCBBcHA8L2E+XG4gICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cImZvbnQtYm9sZCB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtYnJhbmQtY3lhbiB0cmFuc2l0aW9uLWNvbG9yc1wiPkxvZyBpbjwvYT5cbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3NOYW1lPVwiYmctYnJhbmQtY3lhbiB0ZXh0LXdoaXRlIGZvbnQtYm9sZCBweS0yIHB4LTQgcm91bmRlZC1sZyBob3ZlcjpvcGFjaXR5LTkwIHRyYW5zaXRpb24tb3BhY2l0eVwiPlNpZ24gdXAgZm9yIGZyZWU8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZDpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gb25DbGljaz17KCkgPT4gc2V0SXNNZW51T3BlbighaXNNZW51T3Blbil9IGNsYXNzTmFtZT1cInRleHQtZ3JheS04MDAgZm9jdXM6b3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy02IGgtNlwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9XCIyXCIgZD17aXNNZW51T3BlbiA/IFwiTTYgMThMMTggNk02IDZsMTIgMTJcIiA6IFwiTTQgNmgxNk00IDEyaDE2TTQgMThoMTZcIn0+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAge2lzTWVudU9wZW4gJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWQ6aGlkZGVuIG10LTRcIj5cbiAgICAgICAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTRcIj5cbiAgICAgICAgICAgICAgICAgICAge25hdkxpbmtzLm1hcCgobGluaykgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxhIGtleT17bGluay5uYW1lfSBocmVmPXtsaW5rLmhyZWZ9IGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1icmFuZC1jeWFuIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGluay5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTMgcHQtNCBib3JkZXItdFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2JpdC5seS8yTHBRSm1PXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGNsYXNzTmFtZT1cInctZnVsbCB0ZXh0LWNlbnRlciBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHRleHQtZ3JheS02MDAgZm9udC1ib2xkIHB5LTIgcHgtNCByb3VuZGVkLWxnIGhvdmVyOmJvcmRlci1icmFuZC1jeWFuIGhvdmVyOnRleHQtYnJhbmQtY3lhbiB0cmFuc2l0aW9uLWNvbG9yc1wiPkRvd25sb2FkIEFwcDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cImZvbnQtYm9sZCB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtYnJhbmQtY3lhbiB0cmFuc2l0aW9uLWNvbG9yc1wiPkxvZyBpbjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cInctZnVsbCB0ZXh0LWNlbnRlciBiZy1icmFuZC1jeWFuIHRleHQtd2hpdGUgZm9udC1ib2xkIHB5LTIgcHgtNCByb3VuZGVkLWxnIGhvdmVyOm9wYWNpdHktOTAgdHJhbnNpdGlvbi1vcGFjaXR5XCI+U2lnbiB1cCBmb3IgZnJlZTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIC8vIC0tLSBFTkQgT0YgY29tcG9uZW50cy9IZWFkZXIudHN4IC0tLVxuXG5cbiAgICAgIC8vIC0tLSBTVEFSVCBPRiBjb21wb25lbnRzL0Zvb3Rlci50c3ggLS0tXG4gICAgICBjb25zdCBGb290ZXIgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvY2lhbExpbmtzID0gW1xuICAgICAgICAgIHsgbmFtZTogJ0ZhY2Vib29rJywgaHJlZjogJ2h0dHBzOi8vZmFjZWJvb2suY29tL1RoZUJyYW5kQXBwJywgaWNvbjogPEZhY2Vib29rSWNvbiAvPiB9LFxuICAgICAgICAgIHsgbmFtZTogJ1R3aXR0ZXInLCBocmVmOiAnaHR0cHM6Ly90d2l0dGVyLmNvbS90aGVicmFuZGhxJywgaWNvbjogPFR3aXR0ZXJJY29uIC8+IH0sXG4gICAgICAgICAgeyBuYW1lOiAnSW5zdGFncmFtJywgaHJlZjogJ2h0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vdGhlYnJhbmRhcHAnLCBpY29uOiA8SW5zdGFncmFtSWNvbiAvPiB9LFxuICAgICAgICAgIHsgbmFtZTogJ0xpbmtlZEluJywgaHJlZjogJ2h0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L3RoZS1icmFuZC1hcHAnLCBpY29uOiA8TGlua2VkSW5JY29uIC8+IH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgZm9vdGVyU2VjdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdGZWF0dXJlcycsXG4gICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICdCcmFuZCBDcmVhdG9yJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2JyYW5kY3JlYXRvci9pbmRleCcgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnTXkgRGVzaWducycsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FjY291bnQvZGVzaWducycgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnVGVtcGxhdGVzJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZGVzaWducycgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnQnJhbmQgVG9vbGtpdCcsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pbnNpZ2h0cy9kYXNoYm9hcmQ/ZmVhdHVyZT1icmFuZHRvb2xraXQnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdSZXNvdXJjZXMnLFxuICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgeyBuYW1lOiAnSW5zaWdodHMnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvJyB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdCbG9ncycsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9ibG9ncycgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnQnJhbmQgSm91cm5leXMnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvZGFzaGJvYXJkP2ZlYXR1cmU9YnJvd3Nlam91cm5leXMnIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ1NpdGVzJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL3NpdGVzL2luZGV4JyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOiAnQWNjb3VudCcsXG4gICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICdNeSBCcmFuZCBJZGVudGl0eScsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FjY291bnQvYnVpbGRfYnJhbmQnIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ1VwZGF0ZSBCcmFuZCBEZXRhaWxzJywgaHJlZjogJyMnIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ09uYm9hcmRpbmcnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvYXV0aC1vbmJvYXJkJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOiAnQ29tcGFueScsXG4gICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICdBYm91dCBVcycsIGhyZWY6ICcjJyB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdDb250YWN0IFVzJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvY29udGFjdCcgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnQ2FyZWVycycsIGhyZWY6ICcjJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGZvb3RlciBjbGFzc05hbWU9XCJiZy1icmFuZC1taWRuaWdodCB0ZXh0LXdoaXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lciBteC1hdXRvIHB4LTYgcHktMTJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0yIG1kOmdyaWQtY29scy00IGxnOmdyaWQtY29scy01IGdhcC04XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtc3Bhbi0yIGxnOmNvbC1zcGFuLTFcIj5cbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvXCIgYXJpYS1sYWJlbD1cIkJyYW5kIEFJIEhvbWVwYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxMb2dvIHRoZW1lPVwiZGFya1wiIC8+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC00IHRleHQtZ3JheS00MDBcIj5Zb3VyIHZpc2lvbiwgYW1wbGlmaWVkLjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7Zm9vdGVyU2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGtleT17c2VjdGlvbi50aXRsZX0+XG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJmb250LWJvbGQgdXBwZXJjYXNlIHRleHQtZ3JheS00MDBcIj57c2VjdGlvbi50aXRsZX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwibXQtNCBzcGFjZS15LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VjdGlvbi5saW5rcy5tYXAoKGxpbmspID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2xpbmsubmFtZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9e2xpbmsuaHJlZn0gY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LWJyYW5kLWN5YW4gdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bGluay5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTEyIHB0LTggYm9yZGVyLXQgYm9yZGVyLWdyYXktODAwIGZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDBcIj4mY29weTsge25ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0gQnJhbmQgQUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9wPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBzcGFjZS14LTQgbXQtNCBtZDptdC0wXCI+XG4gICAgICAgICAgICAgICAgICB7c29jaWFsTGlua3MubWFwKChzb2NpYWwpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGEga2V5PXtzb2NpYWwubmFtZX0gaHJlZj17c29jaWFsLmhyZWZ9IGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1icmFuZC1jeWFuIHRyYW5zaXRpb24tY29sb3JzXCIgYXJpYS1sYWJlbD17c29jaWFsLm5hbWV9PlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj57c29jaWFsLm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIHtzb2NpYWwuaWNvbn1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgICk7XG4gICAgICB9O1xuICAgICAgLy8gLS0tIEVORCBPRiBjb21wb25lbnRzL0Zvb3Rlci50c3ggLS0tXG5cblxuICAgICAgLy8gLS0tIFNUQVJUIE9GIGNvbXBvbmVudHMvRmVhdHVyZUNhcmQudHN4IC0tLVxuICAgICAgY29uc3QgRmVhdHVyZUNhcmQgPSAoe1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIGxpbmssXG4gICAgICAgIGJ1dHRvblRleHQsXG4gICAgICAgIGltYWdlVXJsLFxuICAgICAgICBiZ0NvbG9yLFxuICAgICAgICBzaXplID0gJ25vcm1hbCdcbiAgICAgIH0pID0+IHtcbiAgICAgICAgY29uc3Qgc2l6ZUNsYXNzZXMgPSB7XG4gICAgICAgICAgbm9ybWFsOiAnbWluLWgtWzQ4MHB4XSBtZDptaW4taC1bNTIwcHhdJyxcbiAgICAgICAgICBsYXJnZTogJ21pbi1oLVs1MjBweF0gbWQ6Y29sLXNwYW4tMiBsZzpjb2wtc3Bhbi0xJywgLy8gU3BlY2lhbCBjbGFzc2VzIGNhbiBiZSBhZGRlZCBoZXJlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2ByZWxhdGl2ZSByb3VuZGVkLTN4bCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LWxnIGdyb3VwIHRleHQtd2hpdGUgcC04IGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMCBlYXNlLWluLW91dCB0cmFuc2Zvcm0gaG92ZXI6LXRyYW5zbGF0ZS15LTIgJHtzaXplQ2xhc3Nlc1tzaXplXX1gfVxuICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBiZ0NvbG9yIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ6LTEwIHJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBtZDp0ZXh0LTR4bCBmb250LWJvbGQgbWItNFwiPnt0aXRsZX08L2gzPlxuICAgICAgICAgICAgICB7ZGVzY3JpcHRpb24gJiYgPHAgY2xhc3NOYW1lPVwidGV4dC1sZyBvcGFjaXR5LTkwIG1iLTZcIj57ZGVzY3JpcHRpb259PC9wPn1cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPXtsaW5rfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXdoaXRlIHRleHQtZ3JheS04MDAgZm9udC1ib2xkIHB5LTIgcHgtNiByb3VuZGVkLWxnIHRleHQtbWQgaG92ZXI6YmctZ3JheS0yMDAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0IHRyYW5zZm9ybSBncm91cC1ob3ZlcjotdHJhbnNsYXRlLXktMSBpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2J1dHRvblRleHR9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHotMFwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz17aW1hZ2VVcmx9IGFsdD17dGl0bGV9IGNsYXNzTmFtZT1cInctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyIG9wYWNpdHktODAgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAgZ3JvdXAtaG92ZXI6c2NhbGUtMTEwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMCBlYXNlLWluLW91dFwiIGxvYWRpbmc9XCJsYXp5XCIgZGVjb2Rpbmc9XCJhc3luY1wiIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBiZy1ibGFjayBiZy1vcGFjaXR5LTIwIGdyb3VwLWhvdmVyOmJnLW9wYWNpdHktMTAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tNTAwIGVhc2UtaW4tb3V0XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICAvLyAtLS0gRU5EIE9GIGNvbXBvbmVudHMvRmVhdHVyZUNhcmQudHN4IC0tLVxuXG5cbiAgICAgIC8vIC0tLSBTVEFSVCBPRiBjb21wb25lbnRzL1RlbXBsYXRlQ2FyZC50c3ggLS0tXG4gICAgICBjb25zdCBUZW1wbGF0ZUNhcmQgPSAoeyB0aXRsZSwgdXJsIH0pID0+IHtcbiAgICAgICAgY29uc3QgaW1hZ2VTZWVkID0gdGl0bGUucmVwbGFjZSgvXFxzKy9nLCAnLScpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj17dXJsfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvY2sgZ3JvdXAgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gYmctZ3JheS0xMDAgc2hhZG93LXNtIGhvdmVyOnNoYWRvdy14bCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgdHJhbnNmb3JtIGhvdmVyOi10cmFuc2xhdGUteS0xXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGFzcGVjdC1bNC8zXSBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIHNyYz17YGh0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkLyR7aW1hZ2VTZWVkfS80MDAvMzAwYH1cbiAgICAgICAgICAgICAgICBhbHQ9e3RpdGxlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyIGdyb3VwLWhvdmVyOnNjYWxlLTEwNSB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDBcIlxuICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzEwIGdyb3VwLWhvdmVyOmJnLWJsYWNrLzAgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMzAwXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zXCI+XG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTgwMCB0cnVuY2F0ZSBncm91cC1ob3Zlcjp0ZXh0LWJyYW5kLWN5YW4gdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMzAwXCI+XG4gICAgICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIC8vIC0tLSBFTkQgT0YgY29tcG9uZW50cy9UZW1wbGF0ZUNhcmQudHN4IC0tLVxuXG5cbiAgICAgIC8vIC0tLSBTVEFSVCBPRiBjb21wb25lbnRzL0ludGVyYWN0aXZlVGVtcGxhdGVzLnRzeCAtLS1cbiAgICAgIGNvbnN0IEludGVyYWN0aXZlVGVtcGxhdGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGUoVEVNUExBVEVfQ0FURUdPUklFU1swXS5jYXRlZ29yeSk7XG5cbiAgICAgICAgY29uc3QgYWN0aXZlQ2F0ZWdvcnkgPSBURU1QTEFURV9DQVRFR09SSUVTLmZpbmQoY2F0ID0+IGNhdC5jYXRlZ29yeSA9PT0gYWN0aXZlVGFiKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyIG14LWF1dG8gcHgtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBtYi0xMlwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBtZDp0ZXh0LTV4bCBmb250LWJvbGQgbWItNFwiPlRlbXBsYXRlcyBmb3IgYWJzb2x1dGVseSBhbnl0aGluZzwvaDI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1sZyBtZDp0ZXh0LXhsIHRleHQtZ3JheS02MDAgbWF4LXctMnhsIG14LWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgSnVtcHN0YXJ0IHlvdXIgbmV4dCBwcm9qZWN0IHdpdGggdGhvdXNhbmRzIG9mIHByb2Zlc3Npb25hbCB0ZW1wbGF0ZXMgZm9yIGFueSBvY2Nhc2lvbi5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2JyYW5kY3JlYXRvci9pbmRleFwiIGNsYXNzTmFtZT1cIm10LTggaW5saW5lLWJsb2NrIGJnLWJyYW5kLWN5YW4gdGV4dC13aGl0ZSBmb250LWJvbGQgcHktMyBweC04IHJvdW5kZWQtbGcgdGV4dC1sZyBob3ZlcjpvcGFjaXR5LTkwIHRyYW5zaXRpb24tb3BhY2l0eVwiPlxuICAgICAgICAgICAgICAgICAgQ3JlYXRlIFlvdXIgQnJhbmQgTm93XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1jZW50ZXIgZ2FwLTIgbWQ6Z2FwLTQgbWItMTBcIj5cbiAgICAgICAgICAgICAge1RFTVBMQVRFX0NBVEVHT1JJRVMubWFwKGNhdCA9PiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtjYXQuY2F0ZWdvcnl9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVUYWIoY2F0LmNhdGVnb3J5KX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHB5LTIgcHgtNSByb3VuZGVkLWZ1bGwgZm9udC1zZW1pYm9sZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgdGV4dC1zbSBtZDp0ZXh0LWJhc2UgJHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVGFiID09PSBjYXQuY2F0ZWdvcnlcbiAgICAgICAgICAgICAgICAgICAgICA/ICdiZy1icmFuZC1jeWFuIHRleHQtd2hpdGUgc2hhZG93LWxnIHRyYW5zZm9ybSBzY2FsZS0xMDUnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnYmctZ3JheS0yMDAgdGV4dC1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTMwMCdcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXQuY2F0ZWdvcnl9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMiBzbTpncmlkLWNvbHMtMyBtZDpncmlkLWNvbHMtNCBsZzpncmlkLWNvbHMtNSB4bDpncmlkLWNvbHMtNiBnYXAtNiBtZDpnYXAtOFwiPlxuICAgICAgICAgICAgICB7YWN0aXZlQ2F0ZWdvcnk/LnRlbXBsYXRlcy5tYXAodGVtcGxhdGUgPT4gKFxuICAgICAgICAgICAgICAgIDxUZW1wbGF0ZUNhcmQgXG4gICAgICAgICAgICAgICAgICBrZXk9e3RlbXBsYXRlLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgdGl0bGU9e3RlbXBsYXRlLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgdXJsPXt0ZW1wbGF0ZS51cmx9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICAvLyAtLS0gRU5EIE9GIGNvbXBvbmVudHMvSW50ZXJhY3RpdmVUZW1wbGF0ZXMudHN4IC0tLVxuXG5cbiAgICAgIC8vIC0tLSBTVEFSVCBPRiBBcHAudHN4IC0tLVxuICAgICAgY29uc3QgQXBwID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgdGV4dC1ncmF5LTgwMCBmb250LXNhbnNcIj5cbiAgICAgICAgICAgIDxIZWFkZXIgLz5cbiAgICAgICAgICAgIDxtYWluPlxuICAgICAgICAgICAgICB7LyogSGVybyBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJyZWxhdGl2ZSB0ZXh0LXdoaXRlIG92ZXJmbG93LWhpZGRlbiBiZy1icmFuZC1taWRuaWdodFwiPlxuICAgICAgICAgICAgICAgIHsvKiBTdHlsaXNoIEJhY2tncm91bmQgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHotMCBvcGFjaXR5LTUwXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC1bLTMwJV0gbGVmdC1bLTMwJV0gdy00LzUgaC00LzUgcm91bmRlZC1mdWxsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tYnJhbmQtY3lhbiB0by10cmFuc3BhcmVudCBmaWx0ZXIgYmx1ci0zeGxcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgYm90dG9tLVstMzAlXSByaWdodC1bLTMwJV0gdy00LzUgaC00LzUgcm91bmRlZC1mdWxsIGJnLWdyYWRpZW50LXRvLXRsIGZyb20tYnJhbmQtY3lhbiB0by10cmFuc3BhcmVudCBmaWx0ZXIgYmx1ci0zeGxcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgei0xMCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtaW4taC1bNzB2aF0gbWQ6bWluLWgtWzgwdmhdIHB4LTQgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTV4bCBtZDp0ZXh0LTd4bCBsZzp0ZXh0LTh4bCBmb250LWV4dHJhYm9sZCBtYi00IHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIFlvdXIgZW50aXJlIG1hcmtldGluZyB0ZWFtLCBpbiBvbmUgQUkuXG4gICAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1sZyBtZDp0ZXh0LTJ4bCBtYXgtdy0zeGwgbWItOFwiPlxuICAgICAgICAgICAgICAgICAgICBJbWFnaW5lIHRoZSBjcmVhdGl2ZSBmaXJlcG93ZXIgb2YgYSBkZXNpZ24gYWdlbmN5LCB0aGUgc3RyYXRlZ2ljIGluc2lnaHQgb2YgYSBjb25zdWx0YW50LCBhbmQgdGhlIGJyaWxsaWFuY2Ugb2YgYSB0b3AtdGllciBtYXJrZXRpbmcgdGVhbeKAlGFsbCBhdCB5b3VyIGZpbmdlcnRpcHMuIFRoYXQncyBCcmFuZCBBSS5cbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvYnJhbmRjcmVhdG9yL2luZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy13aGl0ZSB0ZXh0LWJyYW5kLW1pZG5pZ2h0IGZvbnQtYm9sZCBweS0zIHB4LTggcm91bmRlZC1sZyB0ZXh0LWxnIGhvdmVyOmJnLWdyYXktMjAwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCB0cmFuc2Zvcm0gaG92ZXI6c2NhbGUtMTA1XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IGNyZWF0aW5nIGZvciBmcmVlXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy13aGl0ZS8xMCBiYWNrZHJvcC1ibHVyLXNtIHRleHQtd2hpdGUgZm9udC1ib2xkIHB5LTMgcHgtOCByb3VuZGVkLWxnIHRleHQtbGcgaG92ZXI6Ymctd2hpdGUvMjAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIHRyYW5zZm9ybSBob3ZlcjpzY2FsZS0xMDVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgRXhwbG9yZSBBSSBGZWF0dXJlc1xuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBUaGUgUHJvYmxlbSBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweS0yMCBtZDpweS0yOCBiZy1ncmF5LTUwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC00eGwgbWQ6dGV4dC01eGwgZm9udC1ib2xkIG1iLTRcIj5UaGUgb2xkIHdheSBpcyBicm9rZW4uPC9oMj5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbGcgbWQ6dGV4dC14bCB0ZXh0LWdyYXktNjAwIG1heC13LTN4bCBteC1hdXRvIG1iLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIERpZCB5b3Uga25vdyA5MCUgb2YgYnVzaW5lc3NlcyBzdHJ1Z2dsZSB0byBzdGFuZCBvdXQ/IFRoZXkgc3BlbmQgbW9udGhzIGFuZCB0aG91c2FuZHMgb24gc29sdXRpb25zIHRoYXQgZG9u4oCZdCBkZWxpdmVyLlxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0zIGdhcC04IHRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICB7UFJPQkxFTV9DQVJEUy5tYXAoKGNhcmQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJiZy13aGl0ZSBwLTggcm91bmRlZC0yeGwgc2hhZG93LW1kIGhvdmVyOnNoYWRvdy14bCBob3ZlcjotdHJhbnNsYXRlLXktMiB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1icmFuZC1jeWFuIG1iLTRcIj57Y2FyZC5pY29ufTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkIG1iLTJcIj57Y2FyZC50aXRsZX08L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMFwiPntjYXJkLmRlc2NyaXB0aW9ufTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBUb29scyBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweS0yMCBtZDpweS0yOFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyIG14LWF1dG8gcHgtNlwiPlxuICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtNHhsIG1kOnRleHQtNXhsIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBtYi0xMlwiPlxuICAgICAgICAgICAgICAgICAgICBBbiBlbnRpcmUgdG9vbGtpdCwgcG93ZXJlZCBieSBBSS5cbiAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTMgZ2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAge0ZFQVRVUkVTX1BSSU1BUlkubWFwKChmZWF0dXJlLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxGZWF0dXJlQ2FyZCBrZXk9e2luZGV4fSB7Li4uZmVhdHVyZX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBUcmFjdGlvbiBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweS0yMCBtZDpweS0yNCBiZy1icmFuZC1taWRuaWdodCB0ZXh0LXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC01eGwgbWQ6dGV4dC02eGwgZm9udC1leHRyYWJvbGQgbWItNCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAzNCwwMDArIHVzZXJzIGFuZCBncm93aW5nLlxuICAgICAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbGcgbWQ6dGV4dC14bCBvcGFjaXR5LTgwIG1heC13LTN4bCBteC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgIFRydXN0ZWQgYnkgZ292ZXJubWVudHMsIFNNRXMsIGFuZCBzdGFydHVwcyB3b3JsZHdpZGUuIEFsbCBhY2hpZXZlZCB0aHJvdWdoIG9yZ2FuaWMgZ3Jvd3RoIGZ1ZWxlZCBieSB1c2VyIHRydXN0IGFuZCByZWZlcnJhbHMuXG4gICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgICAgICB7LyogQWxsIGluIG9uZSBwbGFjZSBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweS0yMCBtZDpweS0yOCBiZy1ncmF5LTUwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02XCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC00eGwgbWQ6dGV4dC01eGwgZm9udC1ib2xkIHRleHQtY2VudGVyIG1iLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIEFsbCB0aGUgdG9vbHMuIEFsbCBpbiBvbmUgcGxhY2UuXG4gICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC04XCI+XG4gICAgICAgICAgICAgICAgICAgIHtGRUFUVVJFU19TRUNPTkRBUlkubWFwKChmZWF0dXJlLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxGZWF0dXJlQ2FyZCBrZXk9e2luZGV4fSB7Li4uZmVhdHVyZX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBUYXJnZXQgTWFya2V0IFNlY3Rpb24gKi99XG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB5LTIwIG1kOnB5LTI4XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC00eGwgbWQ6dGV4dC01eGwgZm9udC1ib2xkIG1iLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIEh5cGVyLWNvbnRleHR1YWwgc29sdXRpb25zIGZvciBldmVyeW9uZS5cbiAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY2VudGVyIGdhcC04IG1kOmdhcC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICB7VEFSR0VUX01BUktFVFMubWFwKChtYXJrZXQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlciB3LTMyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLWN5YW4tMTAwIHRleHQtYnJhbmQtY3lhbiByb3VuZGVkLWZ1bGwgcC01IG1iLTQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIHRyYW5zZm9ybSBob3ZlcjpzY2FsZS0xMTAgaG92ZXI6YmctY3lhbi0yMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge21hcmtldC5pY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktNzAwXCI+e21hcmtldC5uYW1lfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgICAgICB7LyogVGVtcGxhdGVzIFNlY3Rpb24gKi99XG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB5LTIwIG1kOnB5LTI4IGJnLWdyYXktNTBcIj5cbiAgICAgICAgICAgICAgICA8SW50ZXJhY3RpdmVUZW1wbGF0ZXMgLz5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBFY29zeXN0ZW0gU2VjdGlvbiAqL31cbiAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHktMjAgbWQ6cHktMjhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lciBteC1hdXRvIHB4LTZcIj5cbiAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBtZDp0ZXh0LTV4bCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbWItMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgWW91ciBicmFuZCdzIGVudGlyZSBlY29zeXN0ZW0sIGNvbm5lY3RlZC5cbiAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTMgZ2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAge0ZFQVRVUkVTX1RFUlRJQVJZLm1hcCgoZmVhdHVyZSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8RmVhdHVyZUNhcmQga2V5PXtpbmRleH0gey4uLmZlYXR1cmV9IC8+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgICAgIDxGb290ZXIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICAvLyAtLS0gRU5EIE9GIEFwcC50c3ggLS0tXG5cblxuICAgICAgLy8gLS0tIFNUQVJUIE9GIGluZGV4LnRzeCAtLS1cbiAgICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTtcbiAgICAgIGlmICghcm9vdEVsZW1lbnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGZpbmQgcm9vdCBlbGVtZW50IHRvIG1vdW50IHRvXCIpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByb290ID0gUmVhY3RET00uY3JlYXRlUm9vdChyb290RWxlbWVudCk7XG4gICAgICByb290LnJlbmRlcihcbiAgICAgICAgPFJlYWN0LlN0cmljdE1vZGU+XG4gICAgICAgICAgPEFwcCAvPlxuICAgICAgICA8L1JlYWN0LlN0cmljdE1vZGU+XG4gICAgICApO1xuICAgICAgLy8gLS0tIEVORCBPRiBpbmRleC50c3ggLS0tXG5cbiAgICAiXSwibWFwcGluZ3MiOiI7QUFDTSxPQUFPQSxLQUFLLElBQUlDLFFBQVEsUUFBUSxPQUFPO0FBQ3ZDLE9BQU9DLFFBQVEsTUFBTSxrQkFBa0I7O0FBRXZDO0FBQ0EsSUFBTUMsZ0JBQWdCLEdBQUcsQ0FDdkI7RUFDRUMsS0FBSyxFQUFFLDZDQUE2QztF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</script>
</head>
<body>
<div id="root">
    <div class="bg-white text-gray-800 font-sans">
        <header class="bg-white/80 backdrop-blur-sm sticky top-0 z-50 shadow-sm">
            <div class="container mx-auto px-6 py-4">
                <div class="flex items-center justify-between">
                    <div class="flex items-center space-x-8"><a href="https://www.thebrand.ai" aria-label="Brand AI Homepage">


                        <img src="https://www.thebrand.ai/i/uploads/logo/logo_62a4de26e93f0.png"  width="110" height="30" >

                    </a>
                        <nav class="hidden md:flex items-center space-x-6"><a
                                href="https://www.thebrand.ai/brandcreator/index"
                                class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Brand
                            Creator</a><a href="https://www.thebrand.ai/i"
                                          class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Templates</a><a
                                href="https://www.thebrand.ai/insights/"
                                class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Insights</a><a
                                href="https://www.thebrand.ai/blogs"
                                class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Blogs</a>

                            <a
                                    href="https://www.thebrand.ai/brandpay/choose"
                                    class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Pricing</a>
                        </nav>
                    </div>
                    <div class="hidden md:flex items-center space-x-4"><a href="https://bit.ly/2LpQJmO" target="_blank"
                                                                          rel="noopener noreferrer"
                                                                          class="font-semibold text-gray-600 hover:text-brand-cyan transition-colors border border-gray-300 rounded-lg py-2 px-4 text-sm hover:border-brand-cyan">Download
                        App</a><a href="https://www.thebrand.ai/brandcreator/dashboard/auth-login.php?url=home" class="font-bold text-gray-600 hover:text-brand-cyan transition-colors">Log
                        in</a><a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                 class="bg-brand-cyan text-white font-bold py-2 px-4 rounded-lg hover:opacity-90 transition-opacity">Sign
                        up for free</a></div>
                    <div class="md:hidden">
                        <button class="text-gray-800 focus:outline-none" aria-label="Toggle menu">
                            <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"
                                 xmlns="http://www.w3.org/2000/svg">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
                                      d="M4 6h16M4 12h16M4 18h16"></path>
                            </svg>
                        </button>
                    </div>
                </div>
            </div>
        </header>
        <main>
            <section class="relative text-white overflow-hidden bg-brand-midnight">
                <div aria-hidden="true" class="absolute inset-0 z-0 opacity-50">
                    <div class="absolute top-[-30%] left-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-br from-brand-cyan to-transparent filter blur-3xl"></div>
                    <div class="absolute bottom-[-30%] right-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-tl from-brand-cyan to-transparent filter blur-3xl"></div>
                </div>
                <div class="relative z-10 flex flex-col items-center justify-center min-h-[70vh] md:min-h-[80vh] px-4 text-center">
                    <h1 class="text-5xl md:text-7xl lg:text-8xl font-extrabold mb-4 tracking-tight">Your entire
                        marketing team, in one AI.</h1>
                    <p class="text-lg md:text-2xl max-w-3xl mb-8">Imagine
                        the creative firepower of a design agency, the strategic insight of a
                        consultant, and the brilliance of a top-tier marketing team—all at your
                        fingertips. That's Brand AI.</p>
                    <div class="flex flex-wrap justify-center gap-4"><a
                            href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                            class="bg-white text-brand-midnight font-bold py-3 px-8 rounded-lg text-lg hover:bg-gray-200 transition-all duration-300 transform hover:scale-105">Start
                        creating for free</a><a href="https://www.thebrand.ai/insights/"
                                                class="bg-white/10 backdrop-blur-sm text-white font-bold py-3 px-8 rounded-lg text-lg hover:bg-white/20 transition-all duration-300 transform hover:scale-105">Explore
                        AI Features</a></div>
                </div>
            </section>
            <section class="py-20 md:py-28 bg-gray-50">
                <div class="container mx-auto px-6 text-center"><h2 class="text-4xl md:text-5xl font-bold mb-4">The old
                    way is broken.</h2>
                    <p class="text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12">Did you know 90% of businesses
                        struggle to stand out? They spend months and thousands on solutions that don’t deliver.</p>
                    <div class="grid grid-cols-1 md:grid-cols-3 gap-8 text-left">
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300">
                            <div class="text-brand-cyan mb-4">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" fill="none"
                                     viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 10v-1m-5.293-6.293l-.707.707M17.293 7.707l.707-.707M5.707 16.293l.707.707M16.586 17H19a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2.414"></path>
                                </svg>
                            </div>
                            <h3 class="text-xl font-bold mb-2">Agency-Level Budgets</h3>
                            <p class="text-gray-600">SMEs and governments need top-tier strategy but lack the budget for
                                expensive agencies.</p></div>
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300">
                            <div class="text-brand-cyan mb-4">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" fill="none"
                                     viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg>
                            </div>
                            <h3 class="text-xl font-bold mb-2">Months of Guesswork</h3>
                            <p class="text-gray-600">Founders and marketers waste precious time guessing their next move
                                instead of acting on clear insights.</p></div>
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300">
                            <div class="text-brand-cyan mb-4">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" fill="none"
                                     viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z"></path>
                                </svg>
                            </div>
                            <h3 class="text-xl font-bold mb-2">Juggling a Dozen Tools</h3>
                            <p class="text-gray-600">Creatives juggle multiple, disconnected tools to create a single
                                campaign, with none of them talking to each other.</p></div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-28">
                <div class="container mx-auto px-6"><h2 class="text-4xl md:text-5xl font-bold text-center mb-12">An
                    entire toolkit, powered by AI.</h2>
                    <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(30, 0, 59);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Bring Your Brand
                                to Life with Brand Creator</h3>
                                <p class="text-lg opacity-90 mb-6">Quickly and effortlessly create a powerful,
                                    professional brand identity and logos that stand out and drive business growth.</p>
                                <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                   class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Brand Creator</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Bring Your Brand to Life with Brand Creator"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/1001-800x600.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(0, 61, 91);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Revolutionize
                                Your Brand with AI Insights</h3>
                                <p class="text-lg opacity-90 mb-6">Supercharge your brand with intelligent solutions,
                                    design, and big data to drive growth, engagement, and measurable success.</p><a
                                        href="https://www.thebrand.ai/insights/"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Insights</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Revolutionize Your Brand with AI Insights"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/879-800x600.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(0, 76, 76);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Build a Website
                                Easily with Brand Sites</h3>
                                <p class="text-lg opacity-90 mb-6">Choose from over 100 amazing templates to build a
                                    stunning website that empowers your brand to stand out.</p><a
                                        href="https://www.thebrand.ai/sites/index"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Brand Sites</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Build a Website Easily with Brand Sites"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/108-800x600.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-24 bg-brand-midnight text-white">
                <div class="container mx-auto px-6 text-center"><h2
                        class="text-5xl md:text-6xl font-extrabold mb-4 tracking-tight">34,000+ users and growing.</h2>
                    <p class="text-lg md:text-xl opacity-80 max-w-3xl mx-auto">Trusted by governments, SMEs, and
                        startups worldwide. All achieved through organic growth fueled by user trust and referrals.</p>
                </div>
            </section>
            <section class="py-20 md:py-28 bg-gray-50">
                <div class="container mx-auto px-6"><h2 class="text-4xl md:text-5xl font-bold text-center mb-12">All the
                    tools. All in one place.</h2>
                    <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[520px] md:col-span-2 lg:col-span-1"
                             style="background-color: rgb(61, 0, 79);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Meet the Visual
                                Suite</h3>
                                <p class="text-lg opacity-90 mb-6">Your entire workflow in one place. From bespoke
                                    designs and insightful blogs to tailored strategies—all powered by AI.</p><a
                                        href="https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Visual Suite</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Meet the Visual Suite"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/600-1200x800.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[520px] md:col-span-2 lg:col-span-1"
                             style="background-color: rgb(0, 95, 88);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Present with
                                impact</h3>
                                <p class="text-lg opacity-90 mb-6">Reimagine presentations with cinematic visuals, smart
                                    collaboration, and AI-powered tools.</p><a href="https://www.thebrand.ai/i/designs"
                                                                               class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Try
                                    Presentations</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Present with impact"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/553-1200x800.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-28">
                <div class="container mx-auto px-6 text-center"><h2 class="text-4xl md:text-5xl font-bold mb-12">
                    Hyper-contextual solutions for everyone.</h2>
                    <div class="flex flex-wrap justify-center gap-8 md:gap-12">
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4v-5h5v5h-5z"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">SMEs</h3></div>
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M12 21l-2-2m2 2l2-2m2 2l2-2M5 15l-2-2m2 2l2-2m2 2l2-2m2 2l2-2M5 21v-6a2 2 0 012-2h10a2 2 0 012 2v6"></path>
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M3 21h18M5 10l7-7 7 7"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">Governments</h3></div>
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M13 10V3L4 14h7v7l9-11h-7z"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">Startups</h3></div>
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"></path>
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">Marketers</h3></div>
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4V5h5v7h-5z"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">Corporations</h3></div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-28 bg-gray-50">
                <div class="container mx-auto px-6">
                    <div class="text-center mb-12"><h2 class="text-4xl md:text-5xl font-bold mb-4">Templates for
                        absolutely anything</h2>
                        <p class="text-lg md:text-xl text-gray-600 max-w-2xl mx-auto">Jumpstart your next project with
                            thousands of professional templates for any occasion.</p><a
                                href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                class="mt-8 inline-block bg-brand-cyan text-white font-bold py-3 px-8 rounded-lg text-lg hover:opacity-90 transition-opacity">Create
                            Your Brand Now</a></div>
                    <div class="flex flex-wrap justify-center gap-2 md:gap-4 mb-10">
                        <button class="py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base bg-gray-200 text-gray-700 hover:bg-gray-300">
                            Social Media
                        </button>
                        <button class="py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base bg-gray-200 text-gray-700 hover:bg-gray-300">
                            Invites &amp; Cards
                        </button>
                        <button class="py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base bg-gray-200 text-gray-700 hover:bg-gray-300">
                            Documents
                        </button>
                        <button class="py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base bg-brand-cyan text-white shadow-lg transform scale-105">
                            Advertising
                        </button>
                        <button class="py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base bg-gray-200 text-gray-700 hover:bg-gray-300">
                            Covers
                        </button>
                    </div>
                    <div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-6 md:gap-8">
                        <a href="https://www.thebrand.ai/i/advertising/poster-a3"
                           class="block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1">
                            <div class="relative aspect-[4/3] overflow-hidden"><img alt="Poster"
                                                                                    class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
                                                                                    loading="lazy" decoding="async"
                                                                                    src="index_files/192-400x300.jpg">
                                <div class="absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"></div>
                            </div>
                            <div class="p-3"><h4
                                    class="text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300">
                                Poster</h4></div>
                        </a><a href="https://www.thebrand.ai/i/advertising/banner-2x6ft"
                               class="block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1">
                        <div class="relative aspect-[4/3] overflow-hidden"><img alt="Banner"
                                                                                class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
                                                                                loading="lazy" decoding="async"
                                                                                src="index_files/313-400x300.jpg">
                            <div class="absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"></div>
                        </div>
                        <div class="p-3"><h4
                                class="text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300">
                            Banner</h4></div>
                    </a><a href="https://www.thebrand.ai/i/advertising/billboard"
                           class="block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1">
                        <div class="relative aspect-[4/3] overflow-hidden"><img alt="Billboard"
                                                                                class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
                                                                                loading="lazy" decoding="async"
                                                                                src="index_files/682-400x300.jpg">
                            <div class="absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"></div>
                        </div>
                        <div class="p-3"><h4
                                class="text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300">
                            Billboard</h4></div>
                    </a><a href="https://www.thebrand.ai/i/advertising/flyer-us"
                           class="block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1">
                        <div class="relative aspect-[4/3] overflow-hidden"><img alt="Flyer"
                                                                                class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
                                                                                loading="lazy" decoding="async"
                                                                                src="index_files/626-400x300.jpg">
                            <div class="absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"></div>
                        </div>
                        <div class="p-3"><h4
                                class="text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300">
                            Flyer</h4></div>
                    </a><a href="https://www.thebrand.ai/i/advertising/yard-sign"
                           class="block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1">
                        <div class="relative aspect-[4/3] overflow-hidden"><img alt="Yard Sign"
                                                                                class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
                                                                                loading="lazy" decoding="async"
                                                                                src="index_files/1024-400x300.jpg">
                            <div class="absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"></div>
                        </div>
                        <div class="p-3"><h4
                                class="text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300">
                            Yard Sign</h4></div>
                    </a><a href="https://www.thebrand.ai/i/advertising/roll-up-banner"
                           class="block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1">
                        <div class="relative aspect-[4/3] overflow-hidden"><img alt="Roll-up Banner"
                                                                                class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
                                                                                loading="lazy" decoding="async"
                                                                                src="index_files/217-400x300.jpg">
                            <div class="absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"></div>
                        </div>
                        <div class="p-3"><h4
                                class="text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300">
                            Roll-up Banner</h4></div>
                    </a><a href="https://www.thebrand.ai/i/advertising/brochure"
                           class="block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1">
                        <div class="relative aspect-[4/3] overflow-hidden"><img alt="Brochure"
                                                                                class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
                                                                                loading="lazy" decoding="async"
                                                                                src="index_files/888-400x300.jpg">
                            <div class="absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"></div>
                        </div>
                        <div class="p-3"><h4
                                class="text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300">
                            Brochure</h4></div>
                    </a></div>
                </div>
            </section>
            <section class="py-20 md:py-28">
                <div class="container mx-auto px-6"><h2 class="text-4xl md:text-5xl font-bold text-center mb-12">Your
                    brand's entire ecosystem, connected.</h2>
                    <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(26, 35, 126);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Define your Brand
                                Identity</h3>
                                <p class="text-lg opacity-90 mb-6">A central hub to build, manage, and evolve your
                                    unique brand identity as you scale.</p><a
                                        href="https://www.thebrand.ai/i/account/build_brand"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Build
                                    My Brand</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Define your Brand Identity"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/284-800x600.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(0, 38, 62);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">End-to-end
                                platform for large organizations</h3>
                                <p class="text-lg opacity-90 mb-6">Scale brand consistency with enterprise-grade tools,
                                    security, and support for large organizations.</p><a href="#"
                                                                                         class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Enterprise</a></div>
                            <div class="absolute inset-0 z-0"><img alt="End-to-end platform for large organizations"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/622-800x600.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(1, 87, 155);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Unlock Growth
                                with Insight Journeys</h3>
                                <p class="text-lg opacity-90 mb-6">Explore expert-led journeys to transform your
                                    startup's growth, overcome challenges, and achieve success.</p><a
                                        href="https://www.thebrand.ai/insights/dashboard?feature=browsejourneys"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Discover
                                    Your Path</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Unlock Growth with Insight Journeys"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/898-800x600.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                    </div>
                </div>
            </section>
        </main>
        <footer class="bg-brand-midnight text-white">
            <div class="container mx-auto px-6 py-12">
                <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8">
                    <div class="col-span-2 lg:col-span-1"><a href="https://www.thebrand.ai" aria-label="Brand AI Homepage">
                        <img src="https://www.thebrand.ai/i/uploads/logo/logo_62a4de26e93f0.png"  width="110" height="30" >
                    </a>
                        <p class="mt-4 text-gray-400">Your vision, amplified.</p></div>
                    <div><h3 class="font-bold uppercase text-gray-400">Features</h3>
                        <ul class="mt-4 space-y-2">
                            <li><a href="https://www.thebrand.ai/brandcreator/index"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Brand Creator</a></li>
                            <li><a href="https://www.thebrand.ai/i/account/designs"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">My Designs</a></li>
                            <li><a href="https://www.thebrand.ai/i"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Templates</a></li>
                            <li><a href="https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Brand Toolkit</a></li>
                        </ul>
                    </div>
                    <div><h3 class="font-bold uppercase text-gray-400">Resources</h3>
                        <ul class="mt-4 space-y-2">
                            <li><a href="https://www.thebrand.ai/insights/"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Insights</a></li>
                            <li><a href="https://www.thebrand.ai/blogs"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Blogs</a></li>
                            <li><a href="https://www.thebrand.ai/insights/dashboard?feature=browsejourneys"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Brand Journeys</a></li>
                            <li><a href="https://www.thebrand.ai/sites/index"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Sites</a></li>
                        </ul>
                    </div>
                    <div><h3 class="font-bold uppercase text-gray-400">Account</h3>
                        <ul class="mt-4 space-y-2">
                            <li><a href="https://www.thebrand.ai/i/account/build_brand"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">My Brand Identity</a>
                            </li>
                            <li><a href="#" class="text-gray-300 hover:text-brand-cyan transition-colors">Update Brand
                                Details</a></li>
                            <li><a href="https://www.thebrand.ai/insights/auth-onboard"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Onboarding</a></li>
                        </ul>
                    </div>
                    <div><h3 class="font-bold uppercase text-gray-400">Company</h3>
                        <ul class="mt-4 space-y-2">
                            <li><a href="#" class="text-gray-300 hover:text-brand-cyan transition-colors">About Us</a>
                            </li>
                            <li><a href="https://www.thebrand.ai/i/contact"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Contact Us</a></li>
                            <li><a href="#" class="text-gray-300 hover:text-brand-cyan transition-colors">Careers</a>
                            </li>
                        </ul>
                    </div>
                </div>
                <div class="mt-12 pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center">
                    <p class="text-gray-400">© 2025 Brand AI. All rights reserved.</p>
                    <div class="flex space-x-4 mt-4 md:mt-0"><a href="https://facebook.com/TheBrandApp"
                                                                class="text-gray-400 hover:text-brand-cyan transition-colors"
                                                                aria-label="Facebook"><span
                            class="sr-only">Facebook</span>
                        <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                            <path fill-rule="evenodd"
                                  d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z"
                                  clip-rule="evenodd"></path>
                        </svg>
                    </a><a href="https://twitter.com/thebrandhq"
                           class="text-gray-400 hover:text-brand-cyan transition-colors" aria-label="Twitter"><span
                            class="sr-only">Twitter</span>
                        <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                            <path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.71v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"></path>
                        </svg>
                    </a><a href="https://www.instagram.com/thebrandapp"
                           class="text-gray-400 hover:text-brand-cyan transition-colors" aria-label="Instagram"><span
                            class="sr-only">Instagram</span>
                        <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                            <path fill-rule="evenodd"
                                  d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.024.06 1.378.06 3.808s-.012 2.784-.06 3.808c-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.024.048-1.378.06-3.808.06s-2.784-.012-3.808-.06c-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.048-1.024-.06-1.378-.06-3.808s.012-2.784.06-3.808c.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 016.08 2.525c.636-.247 1.363-.416 2.427-.465C9.53 2.013 9.884 2 12.315 2zM12 7.044c-2.583 0-4.666 2.083-4.666 4.666s2.083 4.666 4.666 4.666 4.666-2.083 4.666-4.666S14.583 7.044 12 7.044zm0 7.666c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.917-7.916a1.146 1.146 0 100-2.292 1.146 1.146 0 000 2.292z"
                                  clip-rule="evenodd"></path>
                        </svg>
                    </a><a href="https://www.linkedin.com/company/the-brand-app"
                           class="text-gray-400 hover:text-brand-cyan transition-colors" aria-label="LinkedIn"><span
                            class="sr-only">LinkedIn</span>
                        <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                            <path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"></path>
                        </svg>
                    </a></div>
                </div>
            </div>
        </footer>
    </div>
</div>
<script type="text/babel" data-type="module">
    import React, {useState} from 'react';
    import ReactDOM from 'react-dom/client';

    // --- START OF constants.tsx ---
    const FEATURES_PRIMARY = [
        {
            title: 'Bring Your Brand to Life with Brand Creator',
            description: 'Quickly and effortlessly create a powerful, professional brand identity and logos that stand out and drive business growth.',
            link: 'https://www.thebrand.ai/brandcreator/index',
            buttonText: 'Explore Brand Creator',
            imageUrl: 'https://picsum.photos/seed/design-assets/800/600',
            bgColor: '#1E003B', // Deep Purple/Indigo
        },
        {
            title: 'Revolutionize Your Brand with AI Insights',
            description: 'Supercharge your brand with intelligent solutions, design, and big data to drive growth, engagement, and measurable success.',
            link: 'https://www.thebrand.ai/insights/',
            buttonText: 'Explore Insights',
            imageUrl: 'https://picsum.photos/seed/data-viz/800/600',
            bgColor: '#003D5B', // Dark Cyan/Blue
        },
        {
            title: 'Build a Website Easily with Brand Sites',
            description: 'Choose from over 100 amazing templates to build a stunning website that empowers your brand to stand out.',
            link: 'https://www.thebrand.ai/sites/index',
            buttonText: 'Explore Brand Sites',
            imageUrl: 'https://picsum.photos/seed/web-design/800/600',
            bgColor: '#004C4C', // Dark Teal
        },
    ];

    const FEATURES_SECONDARY = [
        {
            title: 'Meet the Visual Suite',
            description: 'Your entire workflow in one place. From bespoke designs and insightful blogs to tailored strategies—all powered by AI.',
            link: 'https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit',
            buttonText: 'Explore Visual Suite',
            imageUrl: 'https://picsum.photos/seed/brand-suite/1200/800',
            bgColor: '#3D004F', // Dark Magenta/Purple
            size: 'large',
        },
        {
            title: 'Present with impact',
            description: 'Reimagine presentations with cinematic visuals, smart collaboration, and AI-powered tools.',
            link: 'https://www.thebrand.ai/i/designs',
            buttonText: 'Try Presentations',
            imageUrl: 'https://picsum.photos/seed/impact-pres/1200/800',
            bgColor: '#005F58', // Deep Teal/Green
            size: 'large',
        },
    ];

    const FEATURES_TERTIARY = [
        {
            title: 'Define your Brand Identity',
            description: 'A central hub to build, manage, and evolve your unique brand identity as you scale.',
            link: 'https://www.thebrand.ai/i/account/build_brand',
            buttonText: 'Build My Brand',
            imageUrl: 'https://picsum.photos/seed/brand-guide/800/600',
            bgColor: '#1A237E', // Dark Indigo
        },
        {
            title: 'End-to-end platform for large organizations',
            description: 'Scale brand consistency with enterprise-grade tools, security, and support for large organizations.',
            link: '#',
            buttonText: 'Explore Enterprise',
            imageUrl: 'https://picsum.photos/seed/corporate-dash/800/600',
            bgColor: '#00263E', // Very Dark Blue
        },
        {
            title: 'Unlock Growth with Insight Journeys',
            description: "Explore expert-led journeys to transform your startup's growth, overcome challenges, and achieve success.",
            link: 'https://www.thebrand.ai/insights/dashboard?feature=browsejourneys',
            buttonText: 'Discover Your Path',
            imageUrl: 'https://picsum.photos/seed/growth-path/800/600',
            bgColor: '#01579B', // Light Blue
        },
    ];

    const CostIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-10 w-10" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 10v-1m-5.293-6.293l-.707.707M17.293 7.707l.707-.707M5.707 16.293l.707.707M16.586 17H19a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2.414"/>
        </svg>
    );

    const TimeIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-10 w-10" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
        </svg>
    );

    const ToolsIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-10 w-10" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z"/>
        </svg>
    );

    const PROBLEM_CARDS = [
        {
            icon: <CostIcon/>,
            title: 'Agency-Level Budgets',
            description: 'SMEs and governments need top-tier strategy but lack the budget for expensive agencies.'
        },
        {
            icon: <TimeIcon/>,
            title: 'Months of Guesswork',
            description: 'Founders and marketers waste precious time guessing their next move instead of acting on clear insights.'
        },
        {
            icon: <ToolsIcon/>,
            title: 'Juggling a Dozen Tools',
            description: 'Creatives juggle multiple, disconnected tools to create a single campaign, with none of them talking to each other.'
        }
    ];

    const SmeIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4v-5h5v5h-5z"/>
        </svg>
    );
    const GovernmentIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M12 21l-2-2m2 2l2-2m2 2l2-2M5 15l-2-2m2 2l2-2m2 2l2-2m2 2l2-2M5 21v-6a2 2 0 012-2h10a2 2 0 012 2v6"/>
            <path strokeLinecap="round" strokeLinejoin="round" d="M3 21h18M5 10l7-7 7 7"/>
        </svg>
    );
    const StartupIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round" d="M13 10V3L4 14h7v7l9-11h-7z"/>
        </svg>
    );
    const MarketerIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round" d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"/>
            <path strokeLinecap="round" strokeLinejoin="round" d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"/>
        </svg>
    );
    const CorporateIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4V5h5v7h-5z"/>
        </svg>
    );

    const TARGET_MARKETS = [
        {icon: <SmeIcon/>, name: 'SMEs'},
        {icon: <GovernmentIcon/>, name: 'Governments'},
        {icon: <StartupIcon/>, name: 'Startups'},
        {icon: <MarketerIcon/>, name: 'Marketers'},
        {icon: <CorporateIcon/>, name: 'Corporations'},
    ];

    const FacebookIcon = () => (
        <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
            <path fillRule="evenodd"
                  d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z"
                  clipRule="evenodd"/>
        </svg>
    );

    const TwitterIcon = () => (
        <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
            <path
                d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.71v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"/>
        </svg>
    );

    const InstagramIcon = () => (
        <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
            <path fillRule="evenodd"
                  d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.024.06 1.378.06 3.808s-.012 2.784-.06 3.808c-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.024.048-1.378.06-3.808.06s-2.784-.012-3.808-.06c-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.048-1.024-.06-1.378-.06-3.808s.012-2.784.06-3.808c.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 016.08 2.525c.636-.247 1.363-.416 2.427-.465C9.53 2.013 9.884 2 12.315 2zM12 7.044c-2.583 0-4.666 2.083-4.666 4.666s2.083 4.666 4.666 4.666 4.666-2.083 4.666-4.666S14.583 7.044 12 7.044zm0 7.666c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.917-7.916a1.146 1.146 0 100-2.292 1.146 1.146 0 000 2.292z"
                  clipRule="evenodd"/>
        </svg>
    );

    const LinkedInIcon = () => (
        <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
            <path
                d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/>
        </svg>
    );

    const TEMPLATE_CATEGORIES = [
        {
            category: 'Social Media',
            templates: [
                {title: "Facebook Post", url: "https://www.thebrand.ai/i/social-media/facebook-post"},
                {title: "Instagram Post", url: "https://www.thebrand.ai/i/social-media/instagram-posts"},
                {title: "Instagram Story", url: "https://www.thebrand.ai/i/social-media/instagram-story"},
                {title: "LinkedIn Post", url: "https://www.thebrand.ai/i/social-media/linkedin-post"},
                {title: "Twitter Post", url: "https://www.thebrand.ai/i/social-media/twitter"},
                {title: "Pinterest Pin", url: "https://www.thebrand.ai/i/social-media/pinterest-pin-graphic-templates"},
                {title: "IGTV Cover", url: "https://www.thebrand.ai/i/social-media/igtv-cover"},
                {title: "Highlight Cover", url: "https://www.thebrand.ai/i/social-media/instagram-highlight-cover"},
                {title: "YouTube Graphics", url: "https://www.thebrand.ai/i/social-media/youtube-graphic-templates"},
                {title: "Twitch Graphics", url: "https://www.thebrand.ai/i/social-media/online-streaming"},
            ]
        },
        {
            category: 'Invites & Cards',
            templates: [
                {title: "Business Card", url: "https://www.thebrand.ai/i/invites-and-cards/business-card-85x55mm"},
                {title: "US Business Card", url: "https://www.thebrand.ai/i/invites-and-cards/business-card-us"},
                {title: "Greeting Card", url: "https://www.thebrand.ai/i/invites-and-cards/card"},
                {title: "Invitation", url: "https://www.thebrand.ai/i/invites-and-cards/invitation-13.9x10.7cm"},
            ]
        },
        {
            category: 'Documents',
            templates: [
                {title: "Presentation 16:9", url: "https://www.thebrand.ai/i/documents/presentation-16-9"},
                {title: "Resume", url: "https://www.thebrand.ai/i/documents/resume"},
                {title: "Letterhead A4", url: "https://www.thebrand.ai/i/documents/letterhead-a4"},
                {title: "Proposal A4", url: "https://www.thebrand.ai/i/documents/proposal-a4"},
                {title: "Flyer A4", url: "https://www.thebrand.ai/i/documents/flyer-a4"},
                {title: "Newsletter", url: "https://www.thebrand.ai/i/documents/newsletter"},
                {title: "Invoice A4", url: "https://www.thebrand.ai/i/documents/invoice-a4"},
                {title: "Report A4", url: "https://www.thebrand.ai/i/documents/report-a4"},
                {title: "Certificate", url: "https://www.thebrand.ai/i/documents/certificate"},
                {title: "Menu A4", url: "https://www.thebrand.ai/i/documents/menu-a4"},
                {title: "Checklist", url: "https://www.thebrand.ai/i/documents/checklist"},
                {title: "Schedule", url: "https://www.thebrand.ai/i/documents/schedule"},
                {title: "Workbook", url: "https://www.thebrand.ai/i/documents/workbook"},
                {title: "eBook", url: "https://www.thebrand.ai/i/documents/ebook"},
                {title: "Whitepaper", url: "https://www.thebrand.ai/i/documents/whitepaper"},
            ]
        },
        {
            category: 'Advertising',
            templates: [
                {title: "Poster", url: "https://www.thebrand.ai/i/advertising/poster-a3"},
                {title: "Banner", url: "https://www.thebrand.ai/i/advertising/banner-2x6ft"},
                {title: "Billboard", url: "https://www.thebrand.ai/i/advertising/billboard"},
                {title: "Flyer", url: "https://www.thebrand.ai/i/advertising/flyer-us"},
                {title: "Yard Sign", url: "https://www.thebrand.ai/i/advertising/yard-sign"},
                {title: "Roll-up Banner", url: "https://www.thebrand.ai/i/advertising/roll-up-banner"},
                {title: "Brochure", url: "https://www.thebrand.ai/i/advertising/brochure"},
            ]
        },
        {
            category: 'Covers',
            templates: [
                {title: "Book Cover", url: "https://www.thebrand.ai/i/covers/book-cover"},
                {title: "Magazine Cover", url: "https://www.thebrand.ai/i/covers/magazine-cover"},
                {title: "Report Cover", url: "https://www.thebrand.ai/i/covers/report-cover"},
                {title: "Planner Cover", url: "https://www.thebrand.ai/i/covers/planner-cover"},
                {title: "eBook Cover", url: "https://www.thebrand.ai/i/covers/ebook-cover"},
            ]
        },
    ];
    // --- END OF constants.tsx ---


    // --- START OF components/Logo.tsx ---
    const Logo = ({className, theme = 'light'}) => {
        const theColor = theme === 'dark' ? '#9CA3AF' : '#808080';
        const brandColor = theme === 'dark' ? '#FFFFFF' : '#333333';


    };
    // --- END OF components/Logo.tsx ---


    // --- START OF components/Header.tsx ---
    const Header = () => {
        const [isMenuOpen, setIsMenuOpen] = useState(false);

        const navLinks = [
            {name: 'Brand Creator', href: 'https://www.thebrand.ai/brandcreator/index'},
            {name: 'Templates', href: 'https://www.thebrand.ai/i'},
            {name: 'Insights', href: 'https://www.thebrand.ai/insights/'},
            {name: 'Blogs', href: 'https://www.thebrand.ai/blogs'},
            {name: 'Pricing', href: 'https://www.thebrand.ai/brandpay/choose'},
        ];

        return (
            <header className="bg-white/80 backdrop-blur-sm sticky top-0 z-50 shadow-sm">
                <div className="container mx-auto px-6 py-4">
                    <div className="flex items-center justify-between">
                        <div className="flex items-center space-x-8">
                            <a href="/" aria-label="Brand AI Homepage">
                                <img src="https://www.thebrand.ai/i/uploads/logo/logo_62a4de26e93f0.png"  width="110" height="30" />
                            </a>
                            <nav className="hidden md:flex items-center space-x-6">
                                {navLinks.map((link) => (
                                    <a key={link.name} href={link.href}
                                       className="text-gray-600 hover:text-brand-cyan font-medium transition-colors">
                                        {link.name}
                                    </a>
                                ))}
                            </nav>
                        </div>
                        <div className="hidden md:flex items-center space-x-4">
                            <a href="https://bit.ly/2LpQJmO" target="_blank" rel="noopener noreferrer"
                               className="font-semibold text-gray-600 hover:text-brand-cyan transition-colors border border-gray-300 rounded-lg py-2 px-4 text-sm hover:border-brand-cyan">Download
                                App</a>
                            <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-signin.php?url=home" className="font-bold text-gray-600 hover:text-brand-cyan transition-colors">Log
                                in</a>
                            <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                               className="bg-brand-cyan text-white font-bold py-2 px-4 rounded-lg hover:opacity-90 transition-opacity">Sign
                                up for free</a>
                        </div>
                        <div className="md:hidden">
                            <button onClick={() => setIsMenuOpen(!isMenuOpen)}
                                    className="text-gray-800 focus:outline-none" aria-label="Toggle menu">
                                <svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"
                                     xmlns="http://www.w3.org/2000/svg">
                                    <path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2"
                                          d={isMenuOpen ? "M6 18L18 6M6 6l12 12" : "M4 6h16M4 12h16M4 18h16"}></path>
                                </svg>
                            </button>
                        </div>
                    </div>
                    {isMenuOpen && (
                        <div className="md:hidden mt-4">
                            <nav className="flex flex-col space-y-4">
                                {navLinks.map((link) => (
                                    <a key={link.name} href={link.href}
                                       className="text-gray-600 hover:text-brand-cyan font-medium transition-colors">
                                        {link.name}
                                    </a>
                                ))}
                                <div className="flex flex-col space-y-3 pt-4 border-t">
                                    <a href="https://bit.ly/2LpQJmO" target="_blank" rel="noopener noreferrer"
                                       className="w-full text-center border border-gray-300 text-gray-600 font-bold py-2 px-4 rounded-lg hover:border-brand-cyan hover:text-brand-cyan transition-colors">Download
                                        App</a>
                                    <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                       className="font-bold text-gray-600 hover:text-brand-cyan transition-colors">Log
                                        in</a>
                                    <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                       className="w-full text-center bg-brand-cyan text-white font-bold py-2 px-4 rounded-lg hover:opacity-90 transition-opacity">Sign
                                        up for free</a>
                                </div>
                            </nav>
                        </div>
                    )}
                </div>
            </header>
        );
    };
    // --- END OF components/Header.tsx ---


    // --- START OF components/Footer.tsx ---
    const Footer = () => {
        const socialLinks = [
            {name: 'Facebook', href: 'https://facebook.com/TheBrandApp', icon: <FacebookIcon/>},
            {name: 'Twitter', href: 'https://twitter.com/thebrandhq', icon: <TwitterIcon/>},
            {name: 'Instagram', href: 'https://www.instagram.com/thebrandapp', icon: <InstagramIcon/>},
            {name: 'LinkedIn', href: 'https://www.linkedin.com/company/the-brand-app', icon: <LinkedInIcon/>},
        ];

        const footerSections = [
            {
                title: 'Features',
                links: [
                    {name: 'Brand Creator', href: 'https://www.thebrand.ai/brandcreator/index'},
                    {name: 'My Designs', href: 'https://www.thebrand.ai/i/account/designs'},
                    {name: 'Templates', href: 'https://www.thebrand.ai/i/designs'},
                    {name: 'Brand Toolkit', href: 'https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit'},
                ],
            },
            {
                title: 'Resources',
                links: [
                    {name: 'Insights', href: 'https://www.thebrand.ai/insights/'},
                    {name: 'Blogs', href: 'https://www.thebrand.ai/blogs'},
                    {name: 'Brand Journeys', href: 'https://www.thebrand.ai/insights/dashboard?feature=browsejourneys'},
                    {name: 'Sites', href: 'https://www.thebrand.ai/sites/index'},
                ],
            },
            {
                title: 'Account',
                links: [
                    {name: 'My Brand Identity', href: 'https://www.thebrand.ai/i/account/build_brand'},
                    {name: 'Update Brand Details', href: '#'},
                    {name: 'Onboarding', href: 'https://www.thebrand.ai/insights/auth-onboard'},
                ],
            },
            {
                title: 'Company',
                links: [
                    {name: 'About Us', href: '#'},
                    {name: 'Contact Us', href: 'https://www.thebrand.ai/i/contact'},
                    {name: 'Careers', href: '#'},
                ],
            },
        ];

        return (
            <footer className="bg-brand-midnight text-white">
                <div className="container mx-auto px-6 py-12">
                    <div className="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8">
                        <div className="col-span-2 lg:col-span-1">
                            <a href="/" aria-label="Brand AI Homepage">
        <img src="https://www.thebrand.ai/i/uploads/logo/logo_62a4de26e93f0.png"  width="110" height="30" />
                            </a>
                            <p className="mt-4 text-gray-400">Your vision, amplified.</p>
                        </div>
                        {footerSections.map((section) => (
                            <div key={section.title}>
                                <h3 className="font-bold uppercase text-gray-400">{section.title}</h3>
                                <ul className="mt-4 space-y-2">
                                    {section.links.map((link) => (
                                        <li key={link.name}>
                                            <a href={link.href}
                                               className="text-gray-300 hover:text-brand-cyan transition-colors">
                                                {link.name}
                                            </a>
                                        </li>
                                    ))}
                                </ul>
                            </div>
                        ))}
                    </div>
                    <div
                        className="mt-12 pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center">
                        <p className="text-gray-400">&copy; {new Date().getFullYear()} Brand AI. All rights
                            reserved.</p>
                        <div className="flex space-x-4 mt-4 md:mt-0">
                            {socialLinks.map((social) => (
                                <a key={social.name} href={social.href}
                                   className="text-gray-400 hover:text-brand-cyan transition-colors"
                                   aria-label={social.name}>
                                    <span className="sr-only">{social.name}</span>
                                    {social.icon}
                                </a>
                            ))}
                        </div>
                    </div>
                </div>
            </footer>
        );
    };
    // --- END OF components/Footer.tsx ---


    // --- START OF components/FeatureCard.tsx ---
    const FeatureCard = ({
                             title,
                             description,
                             link,
                             buttonText,
                             imageUrl,
                             bgColor,
                             size = 'normal'
                         }) => {
        const sizeClasses = {
            normal: 'min-h-[480px] md:min-h-[520px]',
            large: 'min-h-[520px] md:col-span-2 lg:col-span-1', // Special classes can be added here
        };

        return (
            <div
                className={`relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 ${sizeClasses[size]}`}
                style={{backgroundColor: bgColor}}
            >
                <div className="z-10 relative">
                    <h3 className="text-3xl md:text-4xl font-bold mb-4">{title}</h3>
                    {description && <p className="text-lg opacity-90 mb-6">{description}</p>}
                    <a
                        href={link}
                        className="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block"
                    >
                        {buttonText}
                    </a>
                </div>
                <div className="absolute inset-0 z-0">
                    <img src={imageUrl} alt={title}
                         className="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                         loading="lazy" decoding="async"/>
                    <div
                        className="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                </div>
            </div>
        );
    };
    // --- END OF components/FeatureCard.tsx ---


    // --- START OF components/TemplateCard.tsx ---
    const TemplateCard = ({title, url}) => {
        const imageSeed = title.replace(/\s+/g, '-').toLowerCase();

        return (
            <a
                href={url}
                className="block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"
            >
                <div className="relative aspect-[4/3] overflow-hidden">
                    <img
                        src={`https://picsum.photos/seed/${imageSeed}/400/300`}
                        alt={title}
                        className="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
                        loading="lazy"
                        decoding="async"
                    />
                    <div
                        className="absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"></div>
                </div>
                <div className="p-3">
                    <h4 className="text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300">
                        {title}
                    </h4>
                </div>
            </a>
        );
    };
    // --- END OF components/TemplateCard.tsx ---


    // --- START OF components/InteractiveTemplates.tsx ---
    const InteractiveTemplates = () => {
        const [categories, setCategories] = useState(TEMPLATE_CATEGORIES);
        const [activeTab, setActiveTab] = useState(TEMPLATE_CATEGORIES[0].category);

        // Load categories from categories.json and map to local structure
        React.useEffect(() => {
            fetch('categories.json')
                .then(res => res.json())
                .then(data => {
                    const mapped = (Array.isArray(data) ? data : []).map(cat => ({
                        category: cat.label,
                        templates: (Array.isArray(cat.children) ? cat.children : []).map(child => ({
                            title: child.label,
                            url: child.url,
                        })),
                    }));
                    // Ensure desired order with "More" appearing after "Covers"
                    const desiredOrder = [
                        'Social Media',
                        'Invites & Cards',
                        'Documents',
                        'Advertising',
                        'Covers',
                        'More'
                    ];
                    const ordered = mapped.slice().sort((a, b) => {
                        const ai = desiredOrder.indexOf(a.category);
                        const bi = desiredOrder.indexOf(b.category);
                        if (ai === -1 && bi === -1) return 0;
                        if (ai === -1) return 1;
                        if (bi === -1) return -1;
                        return ai - bi;
                    });
                    if (mapped.length) {
                        setCategories(ordered);
                        setActiveTab(ordered[0].category);
                    }
                })
                .catch(() => {
                    // fallback: keep TEMPLATE_CATEGORIES
                });
        }, []);

        const activeCategory = categories.find(cat => cat.category === activeTab);

        return (
            <div className="container mx-auto px-6">
                <div className="text-center mb-12">
                    <h2 className="text-4xl md:text-5xl font-bold mb-4">Templates for absolutely anything</h2>
                    <p className="text-lg md:text-xl text-gray-600 max-w-2xl mx-auto">
                        Jumpstart your next project with thousands of professional templates for any occasion.
                    </p>
                    <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                       className="mt-8 inline-block bg-brand-cyan text-white font-bold py-3 px-8 rounded-lg text-lg hover:opacity-90 transition-opacity">
                        Create Your Brand Now
                    </a>
                </div>

                <div className="flex flex-wrap justify-center gap-2 md:gap-4 mb-10">
                    {categories.map(cat => (
                        <button
                            key={cat.category}
                            onClick={() => setActiveTab(cat.category)}
                            className={`py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base ${
                                activeTab === cat.category
                                    ? 'bg-brand-cyan text-white shadow-lg transform scale-105'
                                    : 'bg-gray-200 text-gray-700 hover:bg-gray-300'
                                }`}
                        >
                            {cat.category}
                        </button>
                    ))}
                </div>

                <div
                    className="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-6 md:gap-8">
                    {activeCategory?.templates.map(template => (
                        <TemplateCard
                            key={template.title}
                            title={template.title}
                            url={template.url}
                        />
                    ))}
                </div>
            </div>
        );
    };
    // --- END OF components/InteractiveTemplates.tsx ---


    // --- START OF App.tsx ---
    const App = () => {
        return (
            <div className="bg-white text-gray-800 font-sans">
                <Header/>
                <main>
                    {/* Hero Section */}
                    <section className="relative text-white overflow-hidden bg-brand-midnight">
                        {/* Stylish Background */}
                        <div aria-hidden="true" className="absolute inset-0 z-0 opacity-50">
                            <div
                                className="absolute top-[-30%] left-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-br from-brand-cyan to-transparent filter blur-3xl"></div>
                            <div
                                className="absolute bottom-[-30%] right-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-tl from-brand-cyan to-transparent filter blur-3xl"></div>
                        </div>

                        <div
                            className="relative z-10 flex flex-col items-center justify-center min-h-[70vh] md:min-h-[80vh] px-4 text-center">
                            <h1 className="text-5xl md:text-7xl lg:text-8xl font-extrabold mb-4 tracking-tight">
        Your Entire Brand.<br />One Intelligent Platform.
                            </h1>
                            <p className="text-lg md:text-2xl max-w-3xl mb-8">
                                Imagine the creative firepower of a design agency, the strategic insight of a
                                consultant, and the brilliance of a top-tier marketing team—all at your fingertips.
                                That's Brand AI.
                            </p>
                            <div className="flex flex-wrap justify-center gap-4">
                                <a
                                    href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                    className="bg-white text-brand-midnight font-bold py-3 px-8 rounded-lg text-lg hover:bg-gray-200 transition-all duration-300 transform hover:scale-105"
                                >
                                    Start creating for free
                                </a>
                                <a
                                    href="https://www.thebrand.ai/i/"
                                    className="bg-white/10 backdrop-blur-sm text-white font-bold py-3 px-8 rounded-lg text-lg hover:bg-white/20 transition-all duration-300 transform hover:scale-105"
                                >
                                  Browse Templates
                                </a>
                            </div>
                        </div>
                    </section>

                    {/* The Problem Section */}
                    <section className="py-20 md:py-28 bg-gray-50">
                        <div className="container mx-auto px-6 text-center">
                            <h2 className="text-4xl md:text-5xl font-bold mb-4">The old way is broken.</h2>
                            <p className="text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12">
                                Did you know 90% of businesses struggle to stand out? They spend months and thousands on
                                solutions that don’t deliver.
                            </p>
                            <div className="grid grid-cols-1 md:grid-cols-3 gap-8 text-left">
                                {PROBLEM_CARDS.map((card, index) => (
                                    <div key={index}
                                         className="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300">
                                        <div className="text-brand-cyan mb-4">{card.icon}</div>
                                        <h3 className="text-xl font-bold mb-2">{card.title}</h3>
                                        <p className="text-gray-600">{card.description}</p>
                                    </div>
                                ))}
                            </div>
                        </div>
                    </section>

                    {/* Tools Section */}
                    <section className="py-20 md:py-28">
                        <div className="container mx-auto px-6">
                            <h2 className="text-4xl md:text-5xl font-bold text-center mb-12">
                                An entire toolkit, powered by AI.
                            </h2>
                            <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
                                {FEATURES_PRIMARY.map((feature, index) => (
                                    <FeatureCard key={index} {...feature} />
                                ))}
                            </div>
                        </div>
                    </section>

                    {/* Traction Section */}
                    <section className="py-20 md:py-24 bg-brand-midnight text-white">
                        <div className="container mx-auto px-6 text-center">
                            <h2 className="text-5xl md:text-6xl font-extrabold mb-4 tracking-tight">
                                34,000+ users and growing.
                            </h2>
                            <p className="text-lg md:text-xl opacity-80 max-w-3xl mx-auto">
                                Trusted by governments, SMEs, and startups worldwide. All achieved through organic
                                growth fueled by user trust and referrals.
                            </p>
                        </div>
                    </section>

                    {/* All in one place Section */}
                    <section className="py-20 md:py-28 bg-gray-50">
                        <div className="container mx-auto px-6">
                            <h2 className="text-4xl md:text-5xl font-bold text-center mb-12">
                                All the tools. All in one place.
                            </h2>
                            <div className="grid grid-cols-1 md:grid-cols-2 gap-8">
                                {FEATURES_SECONDARY.map((feature, index) => (
                                    <FeatureCard key={index} {...feature} />
                                ))}
                            </div>
                        </div>
                    </section>

                    {/* Target Market Section */}
                    <section className="py-20 md:py-28">
                        <div className="container mx-auto px-6 text-center">
                            <h2 className="text-4xl md:text-5xl font-bold mb-12">
                                Hyper-contextual solutions for everyone.
                            </h2>
                            <div className="flex flex-wrap justify-center gap-8 md:gap-12">
                                {TARGET_MARKETS.map((market, index) => (
                                    <div key={index} className="flex flex-col items-center text-center w-32">
                                        <div
                                            className="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                            {market.icon}
                                        </div>
                                        <h3 className="font-semibold text-gray-700">{market.name}</h3>
                                    </div>
                                ))}
                            </div>
                        </div>
                    </section>

                    {/* Templates Section */}
                    <section className="py-20 md:py-28 bg-gray-50">
                        <InteractiveTemplates/>
                    </section>

                    {/* Ecosystem Section */}
                    <section className="py-20 md:py-28">
                        <div className="container mx-auto px-6">
                            <h2 className="text-4xl md:text-5xl font-bold text-center mb-12">
                                Your brand's entire ecosystem, connected.
                            </h2>
                            <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
                                {FEATURES_TERTIARY.map((feature, index) => (
                                    <FeatureCard key={index} {...feature} />
                                ))}
                            </div>
                        </div>
                    </section>
                </main>
                {/* Testimonials Section (Minimal Layout) */}
                <section className="py-20 md:py-28">
                    <div className="container mx-auto px-6 text-center">
                        <h2 className="text-4xl md:text-5xl font-bold mb-12">Testimonials</h2>
                        <div className="grid grid-cols-1 md:grid-cols-2 gap-8 text-left">
                            <blockquote className="bg-gray-50 border border-gray-300 p-8 rounded-2xl">
                                <p className="text-xl text-gray-800 font-medium mb-4">“Brand AI gave us agency-level design without agency-level cost.”</p>
                                <cite className="text-gray-600">— Maria R., Founder, The Cozy Bookstore</cite>
                            </blockquote>
                            <blockquote className="bg-gray-50 border border-gray-300 p-8 rounded-2xl">
                                <p className="text-xl text-gray-800 font-medium mb-4">“AI-powered insights helped us outperform competitors and stay ahead of trends.”</p>
                                <cite className="text-gray-600">— Chris T., Head of Analytics, Fitness First Gyms</cite>
                            </blockquote>
                        </div>
                    </div>
                </section>
                {/* Pre-Footer CTA Section */}
                <section className="py-20 md:py-28 bg-brand-midnight text-white">
                    <div className="container mx-auto px-6 text-center">
                        <h2 className="text-4xl md:text-5xl font-bold mb-4">
                            Where creativity meets clarity.
                        </h2>
                        <p className="text-lg md:text-xl text-gray-300 max-w-3xl mx-auto mb-8">
                            Brand brings design, strategy, and insight together—so you can build, scale, and express your brand with the precision of AI and the artistry of a designer.
                        </p>
                        <div className="flex flex-wrap justify-center gap-4">
                            <a
                                href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                className="bg-white text-brand-midnight font-bold py-3 px-8 rounded-lg text-lg hover:bg-gray-200 transition-all duration-300 transform hover:scale-105"
                            >
                                Start for Free
                            </a>
                            <a
                                href="https://www.thebrand.ai/i/"
                                className="bg-white/10 backdrop-blur-sm text-white font-bold py-3 px-8 rounded-lg text-lg hover:bg-white/20 transition-all duration-300 transform hover:scale-105"
                            >
                                Explore Templates
                            </a>
                        </div>
                    </div>
                </section>
                <Footer/>
            </div>
        );
    };
    // --- END OF App.tsx ---


    // --- START OF index.tsx ---
    const rootElement = document.getElementById('root');
    if (!rootElement) {
        throw new Error("Could not find root element to mount to");
    }

    const root = ReactDOM.createRoot(rootElement);
    root.render(
        <React.StrictMode>
            <App/>
        </React.StrictMode>
    );
    // --- END OF index.tsx ---

</script>

</body>
</html>