CINXE.COM
FAQs
<!DOCTYPE html> <html lang="en"> <head> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- OneTrust Cookies Consent Notice start for contest.techbriefs.com --> <script src="https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="64457799-0d46-4cbd-b1bc-b931e8f8df9a" tb-donotmove></script> <script type="text/javascript" tb-donotmove> function OptanonWrapper() { } </script> <!-- OneTrust Cookies Consent Notice end for contest.techbriefs.com --> <link rel="preconnect" href="https://cdnjs.cloudflare.com/"> <link rel="preconnect" href="https://fonts.gstatic.com/"> <link rel="preconnect" href="https://fonts.googleapis.com/"> <link rel="preconnect" href="https://res.cloudinary.com/"> <link rel="preconnect" href="https://kit.fontawesome.com/"> <link rel="preconnect" href="https://kit-pro.fontawesome.com/"> <link rel="preconnect" href="https://www.googletagmanager.com/"> <link rel="preconnect" href="https://www.googletagservices.com/"> <link rel="preconnect" href="https://www.google-analytics.com/"> <link rel="preconnect" href="https://cdn.shareaholic.net"> <link rel="preconnect" href="https://olytics.omeda.com"> <link rel="preconnect" href="https://securepubads.g.doubleclick.net/"> <link rel="preconnect" href="https://px.ads.linkedin.com"> <link rel="preconnect" href="https://snap.licdn.com"> <link rel="preconnect" href="https://cdn-ukwest.onetrust.com"> <link rel="preconnect" href="https://agent.extrawatch.com"> <link rel="preload" as="style" href="/templates/ctf_2019/css/template.min.css?t=1716788610" integrity="sha512-F9gZzNqGLMtFzYq2oxq8kTyzLIjCuSsA2lb2mTTPvqkKnEZ0oqTEpujAJ5zywetxQT4izs4tIjAWmpw/QYCXPQ==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/cloudinary-core/2.13.1/cloudinary-core-shrinkwrap.min.js" integrity="sha512-stp48jOOmT4TXnB4bMJ0rlcR7XagE92cqr7pEb+oFQox6qNSyKiN31GajDsg5VVn+HgM5mhOZinSRXowsRmgPg==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://kit.fontawesome.com/796c614b26.js" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js" integrity="sha512-JRlcvSZAXT8+5SQQAvklXGJuxXTouyq8oIMaYERZQasB8SBDHZaUbeASsJWpk0UUrf89DP3/aefPPrlMR1h1yQ==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js" integrity="sha512-q583ppKrCRc7N5O0n2nzUiJ+suUv7Et1JGels4bXOaMFQcamPk9HjdUknZuuFjBNs7tsMuadge5k9RzdmO+1GQ==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/plugins/print/ls.print.min.js" integrity="sha512-tY3D/iSWSdQE2NSLW/mRWQd/bvHAGjyCLRwSd23sqNbbgVnUaah2t+ZpX7hdBOskZ7PqYvwe4E+qxNARGojJGQ==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.3/js/bootstrap.bundle.min.js" integrity="sha512-i9cEfJwUwViEPFKdC1enz4ZRGBj8YQo6QByFTF92YXHi7waCqyexvRD75S5NVTsSiTv7rKWqG9Y5eFxmRsOn0A==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/11.14.5/sweetalert2.all.min.js" integrity="sha512-m4zOGknNg3h+mK09EizkXi9Nf7B3zwsN9ow+YkYIPZoA6iX2vSzLezg4FnW0Q6Z1CPaJdwgUFQ3WSAUC4E/5Hg==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.14.0-beta3/css/bootstrap-select.min.css" integrity="sha512-g2SduJKxa4Lbn3GW+Q7rNz+pKP9AWMR++Ta8fgwsZRCUsawjPvF/BxSMkGS61VsR9yinGoEgrHPGPn2mrj8+4w==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.14.0-beta3/js/bootstrap-select.min.js" integrity="sha512-yrOmjPdp8qH8hgLfWpSFhC/+R9Cj9USL8uJxYIveJZGAiedxyIxwNw4RsLDlcjNlIRR4kkHaDHSmNHAkxFTmgg==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <meta charset="utf-8"> <meta name="author" content="<a href="https://contest.techbriefs.com/account/profile/admin">Administrator (admin)</a>"> <meta name="robots" content="index, follow"> <meta name="keywords" content="Tech Briefs, Design Engineering, Technology Transfer, electronics, semiconductors, ICs, sensors, test & measurement, data acquisition, photonics, materials, computer software, mechanics, mechanical components, machinery, automation, manufacturing, fabrication, prototyping, mathematics, information sciences, life sciences, motion control, imaging"> <meta name="description" content="The Create the Future Design Contest was launched in 2002 by the publishers of NASA Tech Briefs magazine to help stimulate and reward engineering innovation. Th"> <title>FAQs</title> <link href="https://contest.techbriefs.com/faqs" rel="canonical"> <style> /*! inlined from /media/plg_system_webauthn/css/button.min.css by ntb_minifier */ @charset "UTF-8"; button[class*="plg_system_webauthn_login_button"] { max-height: 3rem; padding: .25rem; } button[class*="plg_system_webauthn_login_button"] span[class*="icon"] { text-align: center; vertical-align: sub; width: 1em; font-size: 1.25em; display: inline-block; } button[class*="plg_system_webauthn_login_button"] img[class*="icon"] { text-align: center; vertical-align: middle; height: 2.5rem; padding: 0 .25em 2px; font-size: 1.5em; display: inline-block; } button[class*="plg_system_webauthn_login_button"] span[class*="icon"]:not(:last-child) { margin-inline-end: .5em; } /* end /media/plg_system_webauthn/css/button.min.css */ </style> <style>/** * Critical CSS created by criticalcss.com * file: /css/critical/article-default.css' * createdAt : 2024-05-27T05:52:29.000Z * resultStatus : GOOD * originalSize : 558272 * size : 0 * validationStatus : GOOD */ @charset "UTF-8";@font-face{font-family:Cabin;font-style:normal;font-weight:400;font-stretch:normal;font-display:swap;src:url(https://fonts.gstatic.com/s/cabin/v27/u-4X0qWljRw-PfU81xCKCpdpbgZJl6XFpfEd7eA9BIxxkV2EH7ilwg.ttf) format('truetype')}@font-face{font-family:Cabin;font-style:normal;font-weight:700;font-stretch:normal;font-display:swap;src:url(https://fonts.gstatic.com/s/cabin/v27/u-4X0qWljRw-PfU81xCKCpdpbgZJl6XFpfEd7eA9BIxxkbqDH7ilwg.ttf) format('truetype')}@font-face{font-family:'Exo 2';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/exo2/v21/7cH1v4okm5zmbvwkAx_sfcEuiD8jvvKsN9C6.ttf) format('truetype')}@font-face{font-family:'Exo 2';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/exo2/v21/7cH1v4okm5zmbvwkAx_sfcEuiD8jYPWsN9C6.ttf) format('truetype')}:root{--bs-blue:#144c89;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#b9519f;--bs-red:#ec1f27;--bs-orange:#f79420;--bs-yellow:#f3ec19;--bs-green:#69bd45;--bs-teal:#6ecddd;--bs-cyan:#00abe9;--bs-white:#ffffff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-inverse:#000000;--bs-navbar:#adb5bd;--bs-navitem:#ffffff;--bs-primary-light:#144c89;--bs-error:#ec1f27;--bs-primary:#144c89;--bs-secondary:#00abe9;--bs-success:#69bd45;--bs-info:#00abe9;--bs-warning:#f3ec19;--bs-danger:#ec1f27;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-inverse-rgb:0,0,0;--bs-navbar-rgb:173,181,189;--bs-navitem-rgb:255,255,255;--bs-primary-light-rgb:20,76,137;--bs-error-rgb:236,31,39;--bs-primary-rgb:20,76,137;--bs-secondary-rgb:0,171,233;--bs-success-rgb:105,189,69;--bs-info-rgb:0,171,233;--bs-warning-rgb:243,236,25;--bs-danger-rgb:236,31,39;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:"Cabin",sans-serif;--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:Cabin,sans-serif;--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#ffffff;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.25rem;--bs-border-radius-sm:0.2rem;--bs-border-radius-lg:0.3rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#144c89;--bs-link-hover-color:#0a2746;--bs-code-color:#b9519f;--bs-highlight-bg:#fdfbd1}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid #495057;opacity:.25}h2,h3,h4,h5{margin-top:0;margin-bottom:.5rem;font-family:"Exo 2",sans-serif;font-weight:600;line-height:1.2}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}p{margin-top:0}ol,ul{padding-left:2rem;margin-top:0}ol,p,ul{margin-bottom:1rem}a{color:var(--bs-link-color);text-decoration:none}img,svg{vertical-align:middle}button{border-radius:0;text-transform:none}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[type=button],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{padding:0;border-style:none}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}iframe{border:0}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}img{max-width:100%;height:auto}.container,.container-fluid,.container-xl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-xl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1*var(--bs-gutter-y));margin-right:calc(-.5*var(--bs-gutter-x));margin-left:calc(-.5*var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-top:var(--bs-gutter-y)}.col-2{flex:0 0 auto;width:16.66666667%}.col-4{flex:0 0 auto;width:33.33333333%}.col-6{flex:0 0 auto;width:50%}.col-8{flex:0 0 auto;width:66.66666667%}.offset-2{margin-left:16.66666667%}@media (min-width:576px){.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}}@media (min-width:768px){.col-md-1,.col-md-2{flex:0 0 auto;width:8.33333333%}.col-md-2{width:16.66666667%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-7{flex:0 0 auto;width:58.33333333%}}@media (min-width:992px){.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}}@media (min-width:1200px){.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-4{flex:0 0 auto;width:33.33333333%}}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group .btn{position:relative;z-index:2}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.btn{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:#212529;--bs-btn-bg:transparent;--bs-btn-border-width:1px;--bs-btn-border-color:transparent;--bs-btn-border-radius:0.25rem;--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);text-align:center;vertical-align:middle;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-image:var(--bs-gradient)}.btn-primary{--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-color:#ffffff;--bs-btn-bg:#144c89;--bs-btn-border-color:#144c89;--bs-btn-hover-color:#ffffff;--bs-btn-hover-bg:#114174;--bs-btn-hover-border-color:#103d6e;--bs-btn-focus-shadow-rgb:55,103,155;--bs-btn-active-color:#ffffff;--bs-btn-active-bg:#103d6e;--bs-btn-active-border-color:#0f3967;--bs-btn-disabled-color:#ffffff;--bs-btn-disabled-bg:#144c89;--bs-btn-disabled-border-color:#144c89}.btn-secondary{--bs-btn-color:#000000;--bs-btn-bg:#00abe9;--bs-btn-border-color:#00abe9;--bs-btn-hover-color:#000000;--bs-btn-hover-bg:#26b8ec;--bs-btn-hover-border-color:#1ab3eb;--bs-btn-focus-shadow-rgb:0,145,198;--bs-btn-active-color:#000000;--bs-btn-active-bg:#33bced;--bs-btn-active-border-color:#1ab3eb;--bs-btn-disabled-color:#000000;--bs-btn-disabled-bg:#00abe9;--bs-btn-disabled-border-color:#00abe9;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125)}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.nav{--bs-nav-link-padding-x:0.7rem;--bs-nav-link-padding-y:0.7rem;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:#6c757d;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color)}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(0, 0, 0, 0.55);--bs-navbar-hover-color:rgba(0, 0, 0, 0.7);--bs-navbar-disabled-color:rgba(0, 0, 0, 0.3);--bs-navbar-active-color:rgba(0, 0, 0, 0.9);--bs-navbar-brand-padding-y:0.25rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(0, 0, 0, 0.9);--bs-navbar-brand-hover-color:rgba(0, 0, 0, 0.9);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(0, 0, 0, 0.1);--bs-navbar-toggler-border-radius:0.25rem;--bs-navbar-toggler-focus-width:0.25rem;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);background-image:var(--bs-gradient)}.navbar>.container-xl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.7rem;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius)}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}.navbar-dark{--bs-navbar-color:rgba(255, 255, 255, 0.85);--bs-navbar-hover-color:rgba(255, 255, 255, 0.5);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#ffffff;--bs-navbar-brand-color:#ffffff;--bs-navbar-brand-hover-color:#ffffff;--bs-navbar-toggler-border-color:transparent;--bs-navbar-toggler-icon-bg:none}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-border-width:1px;--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:0.25rem;--bs-card-inner-border-radius:calc(0.25rem - 1px);--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(0, 0, 0, 0.03);--bs-card-bg:#ffffff;--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.breadcrumb{display:flex;list-style:none;--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0.5rem;--bs-breadcrumb-margin-bottom:0;--bs-breadcrumb-font-size:0.875rem;--bs-breadcrumb-bg:transparent;--bs-breadcrumb-divider-color:#adb5bd;--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:#adb5bd;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "|")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:1px solid var(--bs-alert-border-color);--bs-alert-border-radius:0.25rem;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-inverse{--bs-alert-color:black;--bs-alert-bg:#cccccc;--bs-alert-border-color:#b3b3b3}.alert-inverse .alert-link{color:#000}.alert-inverse,.alert-navbar,.alert-navitem{background-image:var(--bs-gradient)}.alert-navbar{--bs-alert-color:#686d71;--bs-alert-bg:#eff0f2;--bs-alert-border-color:#e6e9eb}.alert-navbar .alert-link{color:#53575a}.alert-navitem{--bs-alert-color:#666666;--bs-alert-bg:white;--bs-alert-border-color:white}.alert-navitem .alert-link{color:#525252}.alert-cdnjs,.alert-cleanup,.alert-primary,.alert-primary-light{--bs-alert-color:#0c2e52;--bs-alert-bg:#d0dbe7;--bs-alert-border-color:#b9c9dc;background-image:var(--bs-gradient)}.alert-cdnjs .alert-link,.alert-cleanup .alert-link,.alert-primary .alert-link,.alert-primary-light .alert-link{color:#0a2542}.alert-admin,.alert-cloudinary,.alert-criticalcss,.alert-secondary{--bs-alert-color:#00678c;--bs-alert-bg:#cceefb;--bs-alert-border-color:#b3e6f8;background-image:var(--bs-gradient)}.alert-admin .alert-link,.alert-cloudinary .alert-link,.alert-criticalcss .alert-link,.alert-secondary .alert-link{color:#005270}.alert-success{--bs-alert-color:#3f7129;--bs-alert-bg:#e1f2da;--bs-alert-border-color:#d2ebc7;background-image:var(--bs-gradient)}.alert-success .alert-link{color:#325a21}.alert-cache,.alert-info{--bs-alert-color:#00678c;--bs-alert-bg:#cceefb;--bs-alert-border-color:#b3e6f8;background-image:var(--bs-gradient)}.alert-cache .alert-link,.alert-info .alert-link{color:#005270}.alert-notice,.alert-warning{--bs-alert-color:#615e0a;--bs-alert-bg:#fdfbd1;--bs-alert-border-color:#fbf9ba;background-image:var(--bs-gradient)}.alert-notice .alert-link,.alert-warning .alert-link{color:#4e4b08}.alert-danger,.alert-error{--bs-alert-color:#8e1317;--bs-alert-bg:#fbd2d4;--bs-alert-border-color:#f9bcbe}.alert-danger .alert-link,.alert-error .alert-link{color:#720f12}.alert-danger,.alert-dark,.alert-error,.alert-light{background-image:var(--bs-gradient)}.alert-light{--bs-alert-color:#636464;--bs-alert-bg:#fefefe;--bs-alert-border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{--bs-alert-color:#141619;--bs-alert-bg:#d3d3d4;--bs-alert-border-color:#bcbebf}.alert-dark .alert-link{color:#101214}.list-group{--bs-list-group-color:#212529;--bs-list-group-bg:#ffffff;--bs-list-group-border-color:rgba(0, 0, 0, 0.125);--bs-list-group-border-width:1px;--bs-list-group-border-radius:0.25rem;--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:#495057;--bs-list-group-action-hover-color:#495057;--bs-list-group-action-hover-bg:#f8f9fa;--bs-list-group-action-active-color:#212529;--bs-list-group-action-active-bg:#e9ecef;--bs-list-group-disabled-color:#6c757d;--bs-list-group-disabled-bg:#ffffff;--bs-list-group-active-color:#ffffff;--bs-list-group-active-bg:#144c89;--bs-list-group-active-border-color:#144c89;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item+.list-group-item{border-top-width:0}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-bg:#ffffff;--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:1px;--bs-modal-border-radius:0.3rem;--bs-modal-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius:calc(0.3rem - 1px);--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:1px;--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin)}.modal.fade .modal-dialog{transform:translate(0,-50px)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}.align-top{vertical-align:top!important}.d-inline-block{display:inline-block!important}.d-flex{display:flex!important}.d-none{display:none!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.w-75{width:75%!important}.w-100{width:100%!important}.h-100{height:100%!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-nowrap{flex-wrap:nowrap!important}.justify-content-center{justify-content:center!important}.justify-content-around{justify-content:space-around!important}.align-items-end{align-items:flex-end!important}.m-0{margin:0!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.mt-1{margin-top:.25rem!important}.mt-5{margin-top:3rem!important}.me-2{margin-right:.5rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-3{margin-bottom:1rem!important}.ms-3{margin-left:1rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.px-0{padding-right:0!important;padding-left:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.pt-3{padding-top:1rem!important}.pb-0{padding-bottom:0!important}.text-center{text-align:center!important}.text-uppercase{text-transform:uppercase!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.bg-navbar{--bs-bg-opacity:1;background-color:rgba(var(--bs-navbar-rgb),var(--bs-bg-opacity))!important}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-error-rgb),var(--bs-bg-opacity))!important;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.nav-link{font-family:"Exo 2",sans-serif;font-weight:600;font-size:16px;text-transform:uppercase}.menu-top-nav .nav-bottom .nav-item .nav-link{font-size:11px;border-left:1px solid #fff;height:100%;letter-spacing:.1em}@media (max-width:1000px){.menu-top-nav .nav-bottom .nav-item .nav-link{letter-spacing:.05em;padding-left:.45rem;padding-right:.45rem}}@media (max-width:925px){.menu-top-nav .nav-bottom .nav-item .nav-link{letter-spacing:.025em;padding-left:.4rem;padding-right:.4rem}}@media (max-width:875px){.menu-top-nav .nav-bottom .nav-item .nav-link{letter-spacing:.01em;padding-left:.35rem;padding-right:.35rem}}@media (max-width:850px){.menu-top-nav .nav-bottom .nav-item .nav-link{padding-left:.25rem;padding-right:.25rem}}.menu-top-nav .nav-bottom li:last-child{border-right:1px solid #fff}.navbar{font-family:Cabin,sans-serif;font-weight:700}.navbar-side{position:fixed;top:0;left:0;border-right:2px solid #495057;overflow-y:scroll;z-index:1000;transform:translateX(-100%);width:100%}@media (min-width:576px){.navbar-side{width:50%}}@media (min-width:768px){.d-md-block{display:block!important}.d-md-flex{display:flex!important}.navbar-side{width:35%}}@media (min-width:1200px){.navbar-side{width:28%}}.navbar-side .nav-link{font-size:16px;padding-top:.5rem;padding-bottom:.5rem}.navbar-toggler{padding:.75rem!important}.navbar-toggler-left{position:absolute}.module.card h4{color:#fff;text-transform:uppercase;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;font-weight:400;letter-spacing:.25rem;font-size:1.1rem}.module.card .card-body,.module.card .card-header{padding-top:.25rem;padding-bottom:.25rem}.module.card .card-header{background:#00abe9}.module.card .card-header h4{font-size:1.25rem}.module.card .list-group-item{font-size:1.25rem;font-family:"Exo 2",sans-serif}.module.card .card-body{background:#adb5bd;font-family:Cabin,sans-serif}.alert-message{font-size:smaller}article{font-family:Cabin,sans-serif}.blur-up{filter:blur(5px)}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000;opacity:.6;z-index:990}nav.header-nav .logolarge{vertical-align:middle;height:150px;max-height:150px}@media (max-width:1199.98px){nav.header-nav .logolarge{max-height:140px}}@media (max-width:991.98px){nav.header-nav .logolarge{max-height:130px}}@media (max-width:767.98px){.navbar{border-bottom:5px solid #adb5bd}nav.header-nav .logolarge{max-height:120px}}@media (max-width:575.98px){nav.header-nav .logolarge{max-height:100px;max-width:100%;padding-left:5px;padding-right:5px}}nav.header-nav .principal-sponsors{max-width:400px;max-height:165px;border-radius:.5rem;background-image:linear-gradient(rgba(20,76,137,.15),rgba(255,255,255,0) 50%,rgba(20,76,137,.15))}@media (max-width:1199.98px){nav.header-nav .principal-sponsors{max-height:155px;max-width:375px}}@media (max-width:991.98px){nav.header-nav .principal-sponsors{max-height:145px;max-width:325px}}nav.header-nav .principal-sponsors-header h3{line-height:.5;font-weight:200;font-size:1.1rem;letter-spacing:.35rem}@media (max-width:1199.98px){nav.header-nav .principal-sponsors-header h3{font-size:1rem;letter-spacing:.35rem}}@media (max-width:991.98px){nav.header-nav .principal-sponsors-header h3{font-size:.9rem;letter-spacing:.3rem}div#login-menu ul{flex-direction:column!important}}@media (max-width:767.98px){nav.header-nav .principal-sponsors{max-height:135px;max-width:280px}nav.header-nav .principal-sponsors-header h3{font-size:.8rem;letter-spacing:.25rem}}@media (max-width:575.98px){nav.header-nav .principal-sponsors{max-height:100px;max-width:40%;padding-left:5px;padding-right:5px}nav.header-nav .principal-sponsors-header h3{font-size:.5rem;letter-spacing:.1rem}}.overlay,.printmessage{display:none}.cls-1{fill:#6fccdd}.cls-2{fill:#fff}.cls-3{fill:#06b0d8}.cls-4{fill:#f79420}.cls-5{fill:#fbb03a}.cls-6{fill:#faed23}.cls-7{fill:#f7ec13}.cls-8{fill:#6abd45}.cls-9{fill:#b9529f}.cls-10{fill:#c1272d}.cls-11{fill:#ec2027}.cls-12{fill:#d2d3d4}:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.cb_template .alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.cb_template .alert-heading{color:inherit}.cb_template .alert-link{font-weight:700}.cb_template .alert-dismissible{padding-right:4rem}.cb_template .alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.cb_template .alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.cb_template .alert-primary hr{border-top-color:#9fcdff}.cb_template .alert-primary .alert-link{color:#002752}.cb_template .alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.cb_template .alert-secondary hr{border-top-color:#c8cbcf}.cb_template .alert-secondary .alert-link{color:#202326}.cb_template .alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.cb_template .alert-success hr{border-top-color:#b1dfbb}.cb_template .alert-success .alert-link{color:#0b2e13}.cb_template .alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.cb_template .alert-info hr{border-top-color:#abdde5}.cb_template .alert-info .alert-link{color:#062c33}.cb_template .alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.cb_template .alert-warning hr{border-top-color:#ffe8a1}.cb_template .alert-warning .alert-link{color:#533f03}.cb_template .alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.cb_template .alert-danger hr{border-top-color:#f1b0b7}.cb_template .alert-danger .alert-link{color:#491217}.cb_template .alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.cb_template .alert-light hr{border-top-color:#ececf6}.cb_template .alert-light .alert-link{color:#686868}.cb_template .alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.cb_template .alert-dark hr{border-top-color:#b9bbbe}.cb_template .alert-dark .alert-link{color:#040505}</style> <script type="application/json" class="joomla-script-options new">{"joomla.jtext":{"PLG_SYSTEM_WEBAUTHN_ERR_CANNOT_FIND_USERNAME":"Cannot find the username field in the login module. Sorry, Passwordless authentication will not work on this site unless you use a different login module.","PLG_SYSTEM_WEBAUTHN_ERR_EMPTY_USERNAME":"You need to enter your username (but NOT your password) before selecting the Web Authentication login button.","PLG_SYSTEM_WEBAUTHN_ERR_INVALID_USERNAME":"The specified username does not correspond to a user account that has enabled passwordless login on this site."},"system.paths":{"root":"","rootFull":"https:\/\/contest.techbriefs.com\/","base":"","baseFull":"https:\/\/contest.techbriefs.com\/"},"csrf.token":"9549293c07a81f871e1437d9cf51bbf7","system.keepalive":{"interval":3600000,"uri":"\/component\/ajax\/?format=json"}}</script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/toast.min.js by ntb_minifier */ import { e as enableDismissTrigger, d as define$Plugin, B as BaseComponent, E as EventHandler, r as reflow } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap toast.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'toast'; const DATA_KEY = 'bs.toast'; const EVENT_KEY = `.${DATA_KEY}`; const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`; const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`; const EVENT_FOCUSIN = `focusin${EVENT_KEY}`; const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`; const EVENT_HIDE = `hide${EVENT_KEY}`; const EVENT_HIDDEN = `hidden${EVENT_KEY}`; const EVENT_SHOW = `show${EVENT_KEY}`; const EVENT_SHOWN = `shown${EVENT_KEY}`; const CLASS_NAME_FADE = 'fade'; const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility const CLASS_NAME_SHOW = 'show'; const CLASS_NAME_SHOWING = 'showing'; const DefaultType = { animation: 'boolean', autohide: 'boolean', delay: 'number' }; const Default = { animation: true, autohide: true, delay: 5000 }; /** * Class definition */ class Toast extends BaseComponent { constructor(element, config) { super(element, config); this._timeout = null; this._hasMouseInteraction = false; this._hasKeyboardInteraction = false; this._setListeners(); } // Getters static get Default() { return Default; } static get DefaultType() { return DefaultType; } static get NAME() { return NAME; } // Public show() { const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); if (showEvent.defaultPrevented) { return; } this._clearTimeout(); if (this._config.animation) { this._element.classList.add(CLASS_NAME_FADE); } const complete = () => { this._element.classList.remove(CLASS_NAME_SHOWING); EventHandler.trigger(this._element, EVENT_SHOWN); this._maybeScheduleHide(); }; this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated reflow(this._element); this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); this._queueCallback(complete, this._element, this._config.animation); } hide() { if (!this.isShown()) { return; } const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (hideEvent.defaultPrevented) { return; } const complete = () => { this._element.classList.add(CLASS_NAME_HIDE); // @deprecated this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); EventHandler.trigger(this._element, EVENT_HIDDEN); }; this._element.classList.add(CLASS_NAME_SHOWING); this._queueCallback(complete, this._element, this._config.animation); } dispose() { this._clearTimeout(); if (this.isShown()) { this._element.classList.remove(CLASS_NAME_SHOW); } super.dispose(); } isShown() { return this._element.classList.contains(CLASS_NAME_SHOW); } // Private _maybeScheduleHide() { if (!this._config.autohide) { return; } if (this._hasMouseInteraction || this._hasKeyboardInteraction) { return; } this._timeout = setTimeout(() => { this.hide(); }, this._config.delay); } _onInteraction(event, isInteracting) { switch (event.type) { case 'mouseover': case 'mouseout': { this._hasMouseInteraction = isInteracting; break; } case 'focusin': case 'focusout': { this._hasKeyboardInteraction = isInteracting; break; } } if (isInteracting) { this._clearTimeout(); return; } const nextElement = event.relatedTarget; if (this._element === nextElement || this._element.contains(nextElement)) { return; } this._maybeScheduleHide(); } _setListeners() { EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true)); EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false)); EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true)); EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false)); } _clearTimeout() { clearTimeout(this._timeout); this._timeout = null; } // Static static $Interface(config) { return this.each(function () { const data = Toast.getOrCreateInstance(this, config); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`); } data[config](this); } }); } } /** * Data API implementation */ enableDismissTrigger(Toast); /** * $ */ define$Plugin(Toast); window.bootstrap = window.bootstrap || {}; window.bootstrap.Toast = Toast; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const toasts = Joomla.getOptions('bootstrap.toast'); // Initialise the elements if (typeof toasts === 'object' && toasts !== null) { Object.keys(toasts).forEach(toast => { const opt = toasts[toast]; const options = { animation: opt.animation ? opt.animation : true, autohide: opt.autohide ? opt.autohide : true, delay: opt.delay ? opt.delay : 5000 }; const elements = Array.from(document.querySelectorAll(toast)); if (elements.length) { elements.map(el => new window.bootstrap.Toast(el, options)); } }); } } export { Toast as T }; /* end /media/vendor/bootstrap/js/toast.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/scrollspy.min.js by ntb_minifier */ import { E as EventHandler, S as SelectorEngine, d as define$Plugin, B as BaseComponent, c as getElement, f as isDisabled, i as isVisible } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap scrollspy.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'scrollspy'; const DATA_KEY = 'bs.scrollspy'; const EVENT_KEY = `.${DATA_KEY}`; const DATA_API_KEY = '.data-api'; const EVENT_ACTIVATE = `activate${EVENT_KEY}`; const EVENT_CLICK = `click${EVENT_KEY}`; const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`; const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; const CLASS_NAME_ACTIVE = 'active'; const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; const SELECTOR_TARGET_LINKS = '[href]'; const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; const SELECTOR_NAV_LINKS = '.nav-link'; const SELECTOR_NAV_ITEMS = '.nav-item'; const SELECTOR_LIST_ITEMS = '.list-group-item'; const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; const SELECTOR_DROPDOWN = '.dropdown'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; const Default = { offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons rootMargin: '0px 0px -25%', smoothScroll: false, target: null, threshold: [0.1, 0.5, 1] }; const DefaultType = { offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons rootMargin: 'string', smoothScroll: 'boolean', target: 'element', threshold: 'array' }; /** * Class definition */ class ScrollSpy extends BaseComponent { constructor(element, config) { super(element, config); // this._element is the observablesContainer and config.target the menu links wrapper this._targetLinks = new Map(); this._observableSections = new Map(); this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element; this._activeTarget = null; this._observer = null; this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }; this.refresh(); // initialize } // Getters static get Default() { return Default; } static get DefaultType() { return DefaultType; } static get NAME() { return NAME; } // Public refresh() { this._initializeTargetsAndObservables(); this._maybeEnableSmoothScroll(); if (this._observer) { this._observer.disconnect(); } else { this._observer = this._getNewObserver(); } for (const section of this._observableSections.values()) { this._observer.observe(section); } } dispose() { this._observer.disconnect(); super.dispose(); } // Private _configAfterMerge(config) { // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin; if (typeof config.threshold === 'string') { config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value)); } return config; } _maybeEnableSmoothScroll() { if (!this._config.smoothScroll) { return; } // unregister any previous listeners EventHandler.off(this._config.target, EVENT_CLICK); EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => { const observableSection = this._observableSections.get(event.target.hash); if (observableSection) { event.preventDefault(); const root = this._rootElement || window; const height = observableSection.offsetTop - this._element.offsetTop; if (root.scrollTo) { root.scrollTo({ top: height, behavior: 'smooth' }); return; } // Chrome 60 doesn't support `scrollTo` root.scrollTop = height; } }); } _getNewObserver() { const options = { root: this._rootElement, threshold: this._config.threshold, rootMargin: this._config.rootMargin }; return new IntersectionObserver(entries => this._observerCallback(entries), options); } // The logic of selection _observerCallback(entries) { const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`); const activate = entry => { this._previousScrollData.visibleEntryTop = entry.target.offsetTop; this._process(targetElement(entry)); }; const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; this._previousScrollData.parentScrollTop = parentScrollTop; for (const entry of entries) { if (!entry.isIntersecting) { this._activeTarget = null; this._clearActiveClass(targetElement(entry)); continue; } const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop if (userScrollsDown && entryIsLowerThanPrevious) { activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration if (!parentScrollTop) { return; } continue; } // if we are scrolling up, pick the smallest offsetTop if (!userScrollsDown && !entryIsLowerThanPrevious) { activate(entry); } } } _initializeTargetsAndObservables() { this._targetLinks = new Map(); this._observableSections = new Map(); const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); for (const anchor of targetLinks) { // ensure that the anchor has an id and is not disabled if (!anchor.hash || isDisabled(anchor)) { continue; } const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element); // ensure that the observableSection exists & is visible if (isVisible(observableSection)) { this._targetLinks.set(decodeURI(anchor.hash), anchor); this._observableSections.set(anchor.hash, observableSection); } } } _process(target) { if (this._activeTarget === target) { return; } this._clearActiveClass(this._config.target); this._activeTarget = target; target.classList.add(CLASS_NAME_ACTIVE); this._activateParents(target); EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target }); } _activateParents(target) { // Activate dropdown parents if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE); return; } for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { // Set triggered links parents as active // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { item.classList.add(CLASS_NAME_ACTIVE); } } } _clearActiveClass(parent) { parent.classList.remove(CLASS_NAME_ACTIVE); const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent); for (const node of activeNodes) { node.classList.remove(CLASS_NAME_ACTIVE); } } // Static static $Interface(config) { return this.each(function () { const data = ScrollSpy.getOrCreateInstance(this, config); if (typeof config !== 'string') { return; } if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { throw new TypeError(`No method named "${config}"`); } data[config](); }); } } /** * Data API implementation */ EventHandler.on(window, EVENT_LOAD_DATA_API, () => { for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { ScrollSpy.getOrCreateInstance(spy); } }); /** * $ */ define$Plugin(ScrollSpy); window.bootstrap = window.bootstrap || {}; window.bootstrap.Scrollspy = ScrollSpy; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const scrollspys = Joomla.getOptions('bootstrap.scrollspy'); // Initialise the elements if (typeof scrollspys === 'object' && scrollspys !== null) { Object.keys(scrollspys).forEach(scrollspy => { const opt = scrollspys[scrollspy]; const options = { offset: opt.offset ? opt.offset : 10, method: opt.method ? opt.method : 'auto' }; if (opt.target) { options.target = opt.target; } const elements = Array.from(document.querySelectorAll(scrollspy)); if (elements.length) { elements.map(el => new window.bootstrap.Scrollspy(el, options)); } }); } } export { ScrollSpy as S }; /* end /media/vendor/bootstrap/js/scrollspy.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/offcanvas.min.js by ntb_minifier */ import { E as EventHandler, S as SelectorEngine, f as isDisabled, i as isVisible, e as enableDismissTrigger, d as define$Plugin, B as BaseComponent, k as ScrollBarHelper, l as Backdrop, F as FocusTrap } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap offcanvas.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'offcanvas'; const DATA_KEY = 'bs.offcanvas'; const EVENT_KEY = `.${DATA_KEY}`; const DATA_API_KEY = '.data-api'; const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`; const ESCAPE_KEY = 'Escape'; const CLASS_NAME_SHOW = 'show'; const CLASS_NAME_SHOWING = 'showing'; const CLASS_NAME_HIDING = 'hiding'; const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; const OPEN_SELECTOR = '.offcanvas.show'; const EVENT_SHOW = `show${EVENT_KEY}`; const EVENT_SHOWN = `shown${EVENT_KEY}`; const EVENT_HIDE = `hide${EVENT_KEY}`; const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`; const EVENT_HIDDEN = `hidden${EVENT_KEY}`; const EVENT_RESIZE = `resize${EVENT_KEY}`; const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`; const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`; const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="offcanvas"]'; const Default = { backdrop: true, keyboard: true, scroll: false }; const DefaultType = { backdrop: '(boolean|string)', keyboard: 'boolean', scroll: 'boolean' }; /** * Class definition */ class Offcanvas extends BaseComponent { constructor(element, config) { super(element, config); this._isShown = false; this._backdrop = this._initializeBackDrop(); this._focustrap = this._initializeFocusTrap(); this._addEventListeners(); } // Getters static get Default() { return Default; } static get DefaultType() { return DefaultType; } static get NAME() { return NAME; } // Public toggle(relatedTarget) { return this._isShown ? this.hide() : this.show(relatedTarget); } show(relatedTarget) { if (this._isShown) { return; } const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget }); if (showEvent.defaultPrevented) { return; } this._isShown = true; this._backdrop.show(); if (!this._config.scroll) { new ScrollBarHelper().hide(); } this._element.setAttribute('aria-modal', true); this._element.setAttribute('role', 'dialog'); this._element.classList.add(CLASS_NAME_SHOWING); const completeCallBack = () => { if (!this._config.scroll || this._config.backdrop) { this._focustrap.activate(); } this._element.classList.add(CLASS_NAME_SHOW); this._element.classList.remove(CLASS_NAME_SHOWING); EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget }); }; this._queueCallback(completeCallBack, this._element, true); } hide() { if (!this._isShown) { return; } const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (hideEvent.defaultPrevented) { return; } this._focustrap.deactivate(); this._element.blur(); this._isShown = false; this._element.classList.add(CLASS_NAME_HIDING); this._backdrop.hide(); const completeCallback = () => { this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING); this._element.removeAttribute('aria-modal'); this._element.removeAttribute('role'); if (!this._config.scroll) { new ScrollBarHelper().reset(); } EventHandler.trigger(this._element, EVENT_HIDDEN); }; this._queueCallback(completeCallback, this._element, true); } dispose() { this._backdrop.dispose(); this._focustrap.deactivate(); super.dispose(); } // Private _initializeBackDrop() { const clickCallback = () => { if (this._config.backdrop === 'static') { EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); return; } this.hide(); }; // 'static' option will be translated to true, and booleans will keep their value const isVisible = Boolean(this._config.backdrop); return new Backdrop({ className: CLASS_NAME_BACKDROP, isVisible, isAnimated: true, rootElement: this._element.parentNode, clickCallback: isVisible ? clickCallback : null }); } _initializeFocusTrap() { return new FocusTrap({ trapElement: this._element }); } _addEventListeners() { EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { if (event.key !== ESCAPE_KEY) { return; } if (this._config.keyboard) { this.hide(); return; } EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); }); } // Static static $Interface(config) { return this.each(function () { const data = Offcanvas.getOrCreateInstance(this, config); if (typeof config !== 'string') { return; } if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { throw new TypeError(`No method named "${config}"`); } data[config](this); }); } } /** * Data API implementation */ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { const target = SelectorEngine.getElementFromSelector(this); if (['A', 'AREA'].includes(this.tagName)) { event.preventDefault(); } if (isDisabled(this)) { return; } EventHandler.one(target, EVENT_HIDDEN, () => { // focus on trigger when it is closed if (isVisible(this)) { this.focus(); } }); // avoid conflict when clicking a toggler of an offcanvas, while another is open const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); if (alreadyOpen && alreadyOpen !== target) { Offcanvas.getInstance(alreadyOpen).hide(); } const data = Offcanvas.getOrCreateInstance(target); data.toggle(this); }); EventHandler.on(window, EVENT_LOAD_DATA_API, () => { for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { Offcanvas.getOrCreateInstance(selector).show(); } }); EventHandler.on(window, EVENT_RESIZE, () => { for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) { if (getComputedStyle(element).position !== 'fixed') { Offcanvas.getOrCreateInstance(element).hide(); } } }); enableDismissTrigger(Offcanvas); /** * $ */ define$Plugin(Offcanvas); window.bootstrap = window.bootstrap || {}; window.bootstrap.Offcanvas = Offcanvas; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const offcanvases = Joomla.getOptions('bootstrap.offcanvas'); // Initialise the elements if (typeof offcanvases === 'object' && offcanvases !== null) { Object.keys(offcanvases).forEach(offcanvas => { const opt = offcanvases[offcanvas]; const options = { backdrop: opt.backdrop ? opt.backdrop : true, keyboard: opt.keyboard ? opt.keyboard : true, scroll: opt.scroll ? opt.scroll : true }; const elements = Array.from(document.querySelectorAll(offcanvas)); if (elements.length) { elements.map(el => new window.bootstrap.Offcanvas(el, options)); } }); } } export { Offcanvas as O }; /* end /media/vendor/bootstrap/js/offcanvas.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/collapse.min.js by ntb_minifier */ import { E as EventHandler, S as SelectorEngine, d as define$Plugin, B as BaseComponent, r as reflow, c as getElement } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap collapse.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'collapse'; const DATA_KEY = 'bs.collapse'; const EVENT_KEY = `.${DATA_KEY}`; const DATA_API_KEY = '.data-api'; const EVENT_SHOW = `show${EVENT_KEY}`; const EVENT_SHOWN = `shown${EVENT_KEY}`; const EVENT_HIDE = `hide${EVENT_KEY}`; const EVENT_HIDDEN = `hidden${EVENT_KEY}`; const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`; const CLASS_NAME_SHOW = 'show'; const CLASS_NAME_COLLAPSE = 'collapse'; const CLASS_NAME_COLLAPSING = 'collapsing'; const CLASS_NAME_COLLAPSED = 'collapsed'; const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; const CLASS_NAME_HORIZONTAL = 'collapse-horizontal'; const WIDTH = 'width'; const HEIGHT = 'height'; const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'; const Default = { parent: null, toggle: true }; const DefaultType = { parent: '(null|element)', toggle: 'boolean' }; /** * Class definition */ class Collapse extends BaseComponent { constructor(element, config) { super(element, config); this._isTransitioning = false; this._triggerArray = []; const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE); for (const elem of toggleList) { const selector = SelectorEngine.getSelectorFromElement(elem); const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element); if (selector !== null && filterElement.length) { this._triggerArray.push(elem); } } this._initializeChildren(); if (!this._config.parent) { this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); } if (this._config.toggle) { this.toggle(); } } // Getters static get Default() { return Default; } static get DefaultType() { return DefaultType; } static get NAME() { return NAME; } // Public toggle() { if (this._isShown()) { this.hide(); } else { this.show(); } } show() { if (this._isTransitioning || this._isShown()) { return; } let activeChildren = []; // find active children if (this._config.parent) { activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, { toggle: false })); } if (activeChildren.length && activeChildren[0]._isTransitioning) { return; } const startEvent = EventHandler.trigger(this._element, EVENT_SHOW); if (startEvent.defaultPrevented) { return; } for (const activeInstance of activeChildren) { activeInstance.hide(); } const dimension = this._getDimension(); this._element.classList.remove(CLASS_NAME_COLLAPSE); this._element.classList.add(CLASS_NAME_COLLAPSING); this._element.style[dimension] = 0; this._addAriaAndCollapsedClass(this._triggerArray, true); this._isTransitioning = true; const complete = () => { this._isTransitioning = false; this._element.classList.remove(CLASS_NAME_COLLAPSING); this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); this._element.style[dimension] = ''; EventHandler.trigger(this._element, EVENT_SHOWN); }; const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); const scrollSize = `scroll${capitalizedDimension}`; this._queueCallback(complete, this._element, true); this._element.style[dimension] = `${this._element[scrollSize]}px`; } hide() { if (this._isTransitioning || !this._isShown()) { return; } const startEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (startEvent.defaultPrevented) { return; } const dimension = this._getDimension(); this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; reflow(this._element); this._element.classList.add(CLASS_NAME_COLLAPSING); this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); for (const trigger of this._triggerArray) { const element = SelectorEngine.getElementFromSelector(trigger); if (element && !this._isShown(element)) { this._addAriaAndCollapsedClass([trigger], false); } } this._isTransitioning = true; const complete = () => { this._isTransitioning = false; this._element.classList.remove(CLASS_NAME_COLLAPSING); this._element.classList.add(CLASS_NAME_COLLAPSE); EventHandler.trigger(this._element, EVENT_HIDDEN); }; this._element.style[dimension] = ''; this._queueCallback(complete, this._element, true); } _isShown() { let element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._element; return element.classList.contains(CLASS_NAME_SHOW); } // Private _configAfterMerge(config) { config.toggle = Boolean(config.toggle); // Coerce string values config.parent = getElement(config.parent); return config; } _getDimension() { return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; } _initializeChildren() { if (!this._config.parent) { return; } const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE); for (const element of children) { const selected = SelectorEngine.getElementFromSelector(element); if (selected) { this._addAriaAndCollapsedClass([element], this._isShown(selected)); } } } _getFirstLevelChildren(selector) { const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element)); } _addAriaAndCollapsedClass(triggerArray, isOpen) { if (!triggerArray.length) { return; } for (const element of triggerArray) { element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); element.setAttribute('aria-expanded', isOpen); } } // Static static $Interface(config) { const _config = {}; if (typeof config === 'string' && /show|hide/.test(config)) { _config.toggle = false; } return this.each(function () { const data = Collapse.getOrCreateInstance(this, _config); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`); } data[config](); } }); } } /** * Data API implementation */ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { event.preventDefault(); } for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) { Collapse.getOrCreateInstance(element, { toggle: false }).toggle(); } }); /** * $ */ define$Plugin(Collapse); window.bootstrap = window.bootstrap || {}; window.bootstrap.Collapse = Collapse; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const collapses = { ...Joomla.getOptions('bootstrap.collapse'), ...Joomla.getOptions('bootstrap.accordion') }; // Initialise the elements Object.keys(collapses).forEach(collapse => { const opt = collapses[collapse]; const options = { toggle: opt.toggle ? opt.toggle : true }; if (opt.parent) { options.parent = opt.parent; } const elements = Array.from(document.querySelectorAll(collapse)); if (elements.length) { elements.map(el => new window.bootstrap.Collapse(el, options)); } }); } export { Collapse as C }; /* end /media/vendor/bootstrap/js/collapse.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/button.min.js by ntb_minifier */ import { E as EventHandler, d as define$Plugin, B as BaseComponent } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap button.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'button'; const DATA_KEY = 'bs.button'; const EVENT_KEY = `.${DATA_KEY}`; const DATA_API_KEY = '.data-api'; const CLASS_NAME_ACTIVE = 'active'; const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]'; const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`; /** * Class definition */ class Button extends BaseComponent { // Getters static get NAME() { return NAME; } // Public toggle() { // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE)); } // Static static $Interface(config) { return this.each(function () { const data = Button.getOrCreateInstance(this); if (config === 'toggle') { data[config](); } }); } } /** * Data API implementation */ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => { event.preventDefault(); const button = event.target.closest(SELECTOR_DATA_TOGGLE); const data = Button.getOrCreateInstance(button); data.toggle(); }); /** * $ */ define$Plugin(Button); window.bootstrap = window.bootstrap || {}; window.bootstrap.Button = Button; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const buttons = Joomla.getOptions('bootstrap.button'); // Initialise the elements if (buttons && buttons.length) { buttons.forEach(selector => { Array.from(document.querySelectorAll(selector)).map(el => new window.bootstrap.Button(el)); }); } } export { Button as B }; /* end /media/vendor/bootstrap/js/button.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/alert.min.js by ntb_minifier */ import { e as enableDismissTrigger, d as define$Plugin, B as BaseComponent, E as EventHandler } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap alert.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'alert'; const DATA_KEY = 'bs.alert'; const EVENT_KEY = `.${DATA_KEY}`; const EVENT_CLOSE = `close${EVENT_KEY}`; const EVENT_CLOSED = `closed${EVENT_KEY}`; const CLASS_NAME_FADE = 'fade'; const CLASS_NAME_SHOW = 'show'; /** * Class definition */ class Alert extends BaseComponent { // Getters static get NAME() { return NAME; } // Public close() { const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); if (closeEvent.defaultPrevented) { return; } this._element.classList.remove(CLASS_NAME_SHOW); const isAnimated = this._element.classList.contains(CLASS_NAME_FADE); this._queueCallback(() => this._destroyElement(), this._element, isAnimated); } // Private _destroyElement() { this._element.remove(); EventHandler.trigger(this._element, EVENT_CLOSED); this.dispose(); } // Static static $Interface(config) { return this.each(function () { const data = Alert.getOrCreateInstance(this); if (typeof config !== 'string') { return; } if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { throw new TypeError(`No method named "${config}"`); } data[config](this); }); } } /** * Data API implementation */ enableDismissTrigger(Alert, 'close'); /** * $ */ define$Plugin(Alert); window.bootstrap = window.bootstrap || {}; window.bootstrap.Alert = Alert; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const alerts = Joomla.getOptions('bootstrap.alert'); // Initialise the elements if (alerts && alerts.length) { alerts.forEach(selector => { Array.from(document.querySelectorAll(selector)).map(el => new window.bootstrap.Alert(el)); }); } } export { Alert as A }; /* end /media/vendor/bootstrap/js/alert.min.js */ </script> <script type="module"> /*! inlined from /media/system/js/keepalive.min.js by ntb_minifier */ /** * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ /** * Keepalive javascript behavior * * Used for keeping the session alive * * @package Joomla.JavaScript * @since 3.7.0 */ if (!window.Joomla) { throw new Error('Joomla API was not properly initialised'); } const keepAliveOptions = Joomla.getOptions('system.keepalive'); const keepAliveInterval = keepAliveOptions && keepAliveOptions.interval ? parseInt(keepAliveOptions.interval, 10) : 45 * 1000; let keepAliveUri = keepAliveOptions && keepAliveOptions.uri ? keepAliveOptions.uri.replace(/&/g, '&') : ''; // Fallback in case no keepalive uri was found. if (keepAliveUri === '') { const systemPaths = Joomla.getOptions('system.paths'); keepAliveUri = `${systemPaths ? `${systemPaths.root}/index.php` : window.location.pathname}?option=com_ajax&format=json`; } setInterval(() => fetch(keepAliveUri, { method: 'POST' }), keepAliveInterval); /* end /media/system/js/keepalive.min.js */ </script> <meta name="pubdate" content="20100222"> <!-- Google Tag Manager --> <script>(function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-NBC2RTV');</script> <!-- End Google Tag Manager --> <!-- favicons --> <link rel="apple-touch-icon-precomposed" sizes="57x57" href="/templates/ctf_2019/favicos/apple-touch-icon-57x57.png" /> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/templates/ctf_2019/favicos/apple-touch-icon-114x114.png" /> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/templates/ctf_2019/favicos/apple-touch-icon-72x72.png" /> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/templates/ctf_2019/favicos/apple-touch-icon-144x144.png" /> <link rel="apple-touch-icon-precomposed" sizes="60x60" href="/templates/ctf_2019/favicos/apple-touch-icon-60x60.png" /> <link rel="apple-touch-icon-precomposed" sizes="120x120" href="/templates/ctf_2019/favicos/apple-touch-icon-120x120.png" /> <link rel="apple-touch-icon-precomposed" sizes="76x76" href="/templates/ctf_2019/favicos/apple-touch-icon-76x76.png" /> <link rel="apple-touch-icon-precomposed" sizes="152x152" href="/templates/ctf_2019/favicos/apple-touch-icon-152x152.png" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-196x196.png" sizes="196x196" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-96x96.png" sizes="96x96" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-32x32.png" sizes="32x32" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-16x16.png" sizes="16x16" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-128.png" sizes="128x128" /> <meta name="application-name" content=" " /> <meta name="msapplication-TileColor" content="#FFFFFF" /> <meta name="msapplication-TileImage" content="/templates/ctf_2019/favicos/mstile-144x144.png" /> <meta name="msapplication-square70x70logo" content="/templates/ctf_2019/favicos/mstile-70x70.png" /> <meta name="msapplication-square150x150logo" content="/templates/ctf_2019/favicos/mstile-150x150.png" /> <meta name="msapplication-wide310x150logo" content="/templates/ctf_2019/favicos/mstile-310x150.png" /> <meta name="msapplication-square310x310logo" content="/templates/ctf_2019/favicos/mstile-310x310.png" /> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NBC2RTV" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <!--googleoff: all--> <header class="header"> <div class="header-container container-fluid p-0"> <nav class="header-nav navbar navbar-expand-sm navbar-dark bg-primary px-0 py-1"> <div class="row w-100"> <div class="col-xl-2 col-lg-2 col-md-1 col-sm-1 col-xs-1 col-2 align-top h-100"> <button type="button" id="navbar-side-button-small" class="hamburger navbar-toggler navbar-toggler-left" data-bs-toggle="collapse" data-bs-target=".navbar-side"> <span class="fas fa-bars"></span> </button> <div id="hamburger-menu" class="navbar-collapse collapse d-none"> <ul class="navbar-nav me-auto"> <li class="nav-item active"> <a id="navbar-side-button-large" class="nav-link ms-3"> <span class="fas fa-bars"></span> </a></li></ul></div></div> <div class="col-xl-4 col-lg-4 col-md-4 col-sm-5 col-xs-4 col-4 py-2 ctf-logo"> <div class="d-flex justify-content-around align-items-end"> <div> <a href="/"> <svg class="logolarge py-1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2734.14 1993.33"><defs><style>.cls-1{fill:#6fccdd;}.cls-2{fill:#fff;}.cls-3{fill:#06b0d8;}.cls-4{fill:#f79420;}.cls-5{fill:#fbb03a;}.cls-6{fill:#faed23;}.cls-7{fill:#f7ec13;}.cls-8{fill:#6abd45;}.cls-9{fill:#b9529f;}.cls-10{fill:#c1272d;}.cls-11{fill:#ec2027;}.cls-12{fill:#d2d3d4;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><polygon class="cls-1" points="1112.55 1624.74 1112.34 1683.17 606.53 1681.18 606.95 1622.8 1112.55 1624.74"/><path class="cls-2" d="M634.37,536.36V519.21h37.84v78.34H634.37q-16.71-42.43-55.73-42.43-19.36,0-34.37,10.06a67.37,67.37,0,0,0-23.36,27.42,87.79,87.79,0,0,0-8.35,38.5,82.63,82.63,0,0,0,7.91,36.28,66,66,0,0,0,22.1,26.32q14.19,9.82,32.66,9.82a55.9,55.9,0,0,0,39.54-15.74q16.77-15.75,22.54-41.47l43.9,20.84q-24.83,77.46-110.12,77.45-36.66,0-64.07-14t-42.2-39.91Q450,664.79,450,630.2q0-32.67,15.22-58.83a108.58,108.58,0,0,1,42.05-41q26.84-14.85,60.09-14.86Q607.77,515.52,634.37,536.36Z"/><path class="cls-2" d="M830.61,584.84V631.4q-20.4,1.33-32.45,6.43a37.17,37.17,0,0,0-18.62,17.51Q773,667.76,773,690.81v15.38h30.89V742H694.91V706.19h28.53V623H696.39V586.61h72.43v39.46a59.48,59.48,0,0,1,20.25-29.7q14.77-11.82,36.66-11.82A29.45,29.45,0,0,1,830.61,584.84Z"/><path class="cls-2" d="M1007.93,674.7H892q1.77,17.89,12.34,28.31t27.27,10.42q18.47,0,36.06-18.32l38.43,12.41q-12.72,19.07-31.49,28.6t-44.49,9.54q-25.73,0-45.45-9.68a72.26,72.26,0,0,1-30.6-27.42q-10.87-17.73-10.86-41.69A83,83,0,0,1,854.55,624a81.23,81.23,0,0,1,30.6-30.09,84,84,0,0,1,41.91-10.86q24.54,0,42.72,11.31t28,32.08Q1007.63,647.21,1007.93,674.7ZM924.71,616q-13.31,0-21.36,7.68t-10.12,23.51H958q-2.07-13.89-11.31-22.55A31.05,31.05,0,0,0,924.71,616Z"/><path class="cls-2" d="M1172,648.69v57.5h25.12V742h-74.49V729.84q-21.15,14.48-42.27,14.48-25.57,0-40.94-13.16T1024,695.69q0-23.66,17.22-37.91T1087,643.51a66.94,66.94,0,0,1,17.67,2.14,100.08,100.08,0,0,1,18,7.32V640.56q0-11.82-7.39-18.92T1093,614.55q-16.11,0-28.53,12.41l-39.91-7.24q18.18-36.68,75.09-36.67,39,0,55.65,16T1172,648.69Zm-80.56,64.74q13.29,0,31.19-16v-13.9q-16-10.35-29.27-10.35-10.63,0-16.26,5t-5.61,14.34Q1071.44,713.45,1091.39,713.43Z"/><path class="cls-2" d="M1296.05,586.61V623h-28.67v67.84c0,4.83.93,8.46,2.81,10.86s5.37,3.63,10.49,3.63q6.35,0,15.37-3.25v34.44q-20,7.83-37.54,7.83-20.25,0-30.37-10.27T1218,705V623h-19.66V586.6H1218V562.51L1267.38,527v59.57Z"/><path class="cls-2" d="M1475.57,674.7H1359.68Q1361.45,692.6,1372,703t27.27,10.42q18.48,0,36.07-18.32l38.42,12.41q-12.7,19.07-31.48,28.6t-44.49,9.54q-25.72,0-45.46-9.68t-30.59-27.42q-10.87-17.73-10.86-41.69A82.87,82.87,0,0,1,1322.22,624a81.27,81.27,0,0,1,30.59-30.09,84,84,0,0,1,41.91-10.86q24.52,0,42.71,11.31t28,32.08Q1475.27,647.21,1475.57,674.7ZM1392.35,616q-13.3,0-21.36,7.68t-10.13,23.51h64.74q-2.05-13.89-11.3-22.55A31.05,31.05,0,0,0,1392.35,616Z"/><path class="cls-2" d="M1590.06,653.17V674h-16.39v38.78q0,4.14,1.61,6.21t6,2.07a26.65,26.65,0,0,0,8.78-1.86v19.69a59,59,0,0,1-21.46,4.48q-11.58,0-17.36-5.87t-5.79-16.6V674h-11.24V653.17h11.24V639.41l28.22-20.28v34h16.39Z"/><path class="cls-2" d="M1667.11,651.15q13.52,0,20.32,8.19t6.8,23.83v38.35h13.18V742h-41.57V684.52c0-3.67-.7-6.29-2.07-7.86s-3.68-2.36-6.88-2.36q-6.6,0-14.88,5.41v41.82h12.42V742h-55V721.53h14.36V635h-14.36V614.66H1642v45.79Q1655.71,651.14,1667.11,651.15Z"/><path class="cls-2" d="M1808.42,703.52h-66.23q1,10.23,7,16.18t15.58,6q10.56,0,20.62-10.48l22,7.09a47.23,47.23,0,0,1-18,16.35q-10.74,5.45-25.44,5.45t-26-5.54a41.29,41.29,0,0,1-17.49-15.66q-6.19-10.14-6.21-23.83a47.35,47.35,0,0,1,6.47-24.5,46.44,46.44,0,0,1,17.48-17.19,48,48,0,0,1,24-6.21q14,0,24.42,6.46a42.39,42.39,0,0,1,16,18.33Q1808.26,687.81,1808.42,703.52ZM1760.86,670c-5.06,0-9.14,1.47-12.21,4.39s-5,7.41-5.78,13.44h37a21.33,21.33,0,0,0-6.47-12.89A17.69,17.69,0,0,0,1760.86,670Z"/><path class="cls-2" d="M651.51,873V831.77H562.24v68.59h64.64v50.45H562.24v77.06h46.12v50.45H442.41v-50.45h42.38V831.77H442.41V781.32H708.47V873Z"/><path class="cls-2" d="M829.42,1027.08q17,0,36.66-15V919.67H834.35V871.18H931.9v159.44h33.9v47.69H866.08V1061q-30.95,20.49-60.11,20.5-30.15,0-46.9-16.76t-16.76-46.11V919.67H711.17V871.18h96.57v130.47q0,14.58,4.63,20T829.42,1027.08Z"/><path class="cls-2" d="M1106.65,871.18v48.49h-38.23v90.46q0,9.66,3.74,14.48t14,4.83q8.47,0,20.5-4.34V1071q-26.61,10.46-50.06,10.45-27,0-40.5-13.69t-13.5-38.73V919.66H976.38V871.17h26.21V839.05l65.83-47.3v79.41h38.23Z"/><path class="cls-2" d="M1244.36,1027.08q17,0,36.65-15V919.67h-31.72V871.18h97.55v159.44h33.9v47.69H1281V1061q-30.94,20.49-60.1,20.5-30.17,0-46.91-16.76t-16.75-46.11V919.67h-31.14V871.18h96.56v130.47q0,14.58,4.63,20T1244.36,1027.08Z"/><path class="cls-2" d="M1576.57,868.81v62.08q-27.19,1.77-43.25,8.58t-24.83,23.35q-8.77,16.56-8.77,47.31v20.5h41.19v47.69H1395.66v-47.69h38v-111h-36.06V871.18h96.56V923.8a79.4,79.4,0,0,1,27-39.61q19.71-15.77,48.87-15.78A42.06,42.06,0,0,1,1576.57,868.81Z"/><path class="cls-2" d="M1813.41,988.64H1658.9q2.37,23.85,16.46,37.74t36.36,13.9q24.63,0,48.08-24.44l51.24,16.55q-16.95,25.42-42,38.14t-59.31,12.71q-34.29,0-60.61-12.92t-40.8-36.55q-14.47-23.65-14.48-55.57,0-31.53,15.08-57.16a108.09,108.09,0,0,1,40.8-40.1,111.91,111.91,0,0,1,55.87-14.49q32.72,0,57,15.08t37.34,42.77Q1813,952,1813.41,988.64Zm-111-78.24q-17.73,0-28.48,10.25T1660.47,952h86.33q-2.76-18.53-15.08-30.06A41.38,41.38,0,0,0,1702.45,910.4Z"/><polygon class="cls-3" points="467.4 1239.41 513.45 1275.39 345.54 1489.76 299.6 1453.74 467.4 1239.41"/><polygon class="cls-4" points="380.34 1144.36 417.01 1189.68 205.2 1360.76 168.6 1315.47 380.34 1144.36"/><polygon class="cls-5" points="316.86 1032.07 342.43 1084.63 97.53 1203.67 71.99 1151.15 316.86 1032.07"/><polygon class="cls-6" points="280.26 908.45 293.35 965.35 27.88 1026.22 14.89 969.38 280.26 908.45"/><polygon class="cls-7" points="272.44 779.72 272.33 838.04 0 837.66 0.14 779.34 272.44 779.72"/><polygon class="cls-8" points="293.77 652.66 280.53 709.42 15.23 647.8 28.43 590.99 293.77 652.66"/><polygon class="cls-1" points="343.05 533.51 317.45 585.94 72.85 466.17 98.5 413.82 343.05 533.51"/><polygon class="cls-9" points="417.98 428.53 381.24 473.85 169.91 302.15 206.58 256.87 417.98 428.53"/><polygon class="cls-10" points="514.58 343.14 468.61 378.97 301.25 164.12 347.33 128.32 514.58 343.14"/><polygon class="cls-11" points="632.12 295.88 577.39 316.08 483.37 60.48 538.08 40.37 632.12 295.88"/><polygon class="cls-4" points="758.83 271.78 700.95 279.15 666.86 9 724.66 1.62 758.83 271.78"/><polygon class="cls-5" points="887.66 276.82 829.67 270.95 857.18 0 915.23 5.97 887.66 276.82"/><polygon class="cls-7" points="1025.69 305.78 969.84 288.91 1048.85 28.33 1104.63 45.15 1025.69 305.78"/><polygon class="cls-7" points="1141.27 362.9 1090.71 333.9 1226.3 97.71 1276.88 126.83 1141.27 362.9"/><path class="cls-2" d="M604.15,1337.13h27.74c21,0,38.23,17.12,38.23,39.11s-17.37,39.11-38.23,39.11H604.15Zm19.56,61h4.39c11.68,0,21.66-6.64,21.66-21.89,0-14-8.88-21.89-21.46-21.89h-4.59v43.78Z"/><path class="cls-2" d="M723.65,1354.35v13.07h22.06v17.22H723.65v13.49H746.9v17.22H704.09v-78.22H746.9v17.22Z"/><path class="cls-2" d="M825.2,1357.25a20.13,20.13,0,0,0-13-5.18c-3.59,0-8.38,2.18-8.38,6.54,0,4.56,5.29,6.33,8.68,7.47l5,1.56c10.48,3.21,18.56,8.71,18.56,21.37,0,7.77-1.79,15.77-7.78,21s-13.77,7.37-21.36,7.37a45.22,45.22,0,0,1-26.45-8.92l8.39-16.39c4.89,4.47,10.68,8.1,17.36,8.1,4.59,0,9.48-2.39,9.48-7.88,0-5.71-7.68-7.68-11.87-8.92-12.27-3.63-20.36-7-20.36-22.09,0-15.88,10.88-26.26,26-26.26a50,50,0,0,1,23.55,6.44Z"/><path class="cls-2" d="M889.82,1415.35H870.26v-78.22h19.56Z"/><path class="cls-2" d="M1002.55,1371.67c-.2,11.41-1,21.16-7.69,30.91-7.38,10.69-18.46,15.36-31,15.36-23.65,0-40.12-16.71-40.12-41.29,0-25.42,16.57-42.12,40.82-42.12,15.47,0,27.45,7.27,33.93,21.89l-18.56,8.09c-2.7-7.47-8.38-12.45-16.27-12.45-12.87,0-19.56,12.76-19.56,24.69,0,12.14,7,24.49,19.86,24.49,8.48,0,15-4.57,15.77-13.59h-16v-16Z"/><path class="cls-2" d="M1036.43,1337.13H1056l35.83,47.82h.19v-47.82h19.57v78.22H1092l-35.83-47.93h-.2v47.93h-19.56v-78.22Z"/><path class="cls-2" d="M657.94,1501.79a21,21,0,0,0-17.17-8.61c-12,0-20.06,9.54-20.06,21.68,0,12.35,8.19,21.27,20.36,21.27a22.13,22.13,0,0,0,16.86-8.3v24.38c-6.48,2.07-11.18,3.63-17.27,3.63a41,41,0,0,1-28.24-11.51c-8.28-7.78-12.07-17.95-12.07-29.57a41.78,41.78,0,0,1,11.08-28.63,40,40,0,0,1,28.64-12.66,44.52,44.52,0,0,1,17.86,3.94v24.38Z"/><path class="cls-2" d="M757.9,1513.2c0,25.32-17.46,43.16-41.62,43.16s-41.61-17.85-41.61-43.16c0-23.65,20-40.25,41.61-40.25S757.9,1489.55,757.9,1513.2Zm-62.88.1c0,13.49,9.58,23.35,21.26,23.35s21.26-9.85,21.26-23.35c0-10.78-9.58-20.64-21.26-20.64S695,1502.52,695,1513.3Z"/><path class="cls-2" d="M775.4,1475.55H795l35.83,47.82h.2v-47.82h19.56v78.22H831l-35.83-47.93H795v47.93H775.4Z"/><path class="cls-2" d="M901.69,1553.77H882.13v-61H866v-17.22h51.9v17.22H901.7v61Z"/><path class="cls-2" d="M953,1492.77v13.07H975v17.22H953v13.49H976.2v17.22H933.39v-78.22H976.2v17.22Z"/><path class="cls-2" d="M1038,1495.67a20.13,20.13,0,0,0-13-5.18c-3.59,0-8.38,2.18-8.38,6.54,0,4.56,5.29,6.33,8.68,7.47l5,1.56c10.48,3.21,18.56,8.71,18.56,21.37,0,7.77-1.79,15.77-7.78,21s-13.77,7.37-21.36,7.37a45.22,45.22,0,0,1-26.45-8.92l8.39-16.39c4.89,4.47,10.68,8.1,17.36,8.1,4.59,0,9.48-2.39,9.48-7.88,0-5.71-7.68-7.68-11.87-8.92-12.27-3.63-20.36-6.95-20.36-22.09,0-15.88,10.88-26.26,25.95-26.26a50,50,0,0,1,23.55,6.44Z"/><path class="cls-2" d="M1096.59,1553.77H1077v-61h-16.16v-17.22h51.9v17.22H1096.6v61Z"/><path class="cls-1" d="M631.82,1795.7s46.9,5.65,57.67,11.53c82.71,45.16-9.56,184.55,92.28,184.55,92.28,0-39.51,1.55,141.49,1.55l20-1.55c101.84,0,9.57-139.39,92.28-184.55,10.77-5.88,57.67-11.53,57.67-11.53V1738H631.83v57.67Z"/><g id="Layer_2-2" data-name="Layer 2"><path class="cls-2" d="M1646,1583.28h-10.75v-82.94h12.35c26.54,0,34.77,8.8,34.77,24,0,17.49-13.84,24.2-30.2,24.2H1646v34.76Zm0-44h3.43c11,0,22.88-2,22.88-15.18,0-13-12.81-14.52-23.45-14.52H1646v29.7Z"/><path class="cls-2" d="M1777,1583.28h-13l-25.39-35.09h-4.46v35.09h-10.75v-82.94h13c7.66,0,15.9.11,22.76,3.85a23.21,23.21,0,0,1-9.38,43Zm-42.9-43.67h3.43c11,0,22.88-2,22.88-15.18,0-13-12.81-14.85-23.45-14.85h-2.86v30Z"/><path class="cls-2" d="M1901.18,1541.81c0,24.64-20.25,43.23-45.18,43.23s-45.18-18.59-45.18-43.23c0-23.76,20.47-43.23,45.18-43.23S1901.18,1518.05,1901.18,1541.81Zm-10.76,0c0-18.26-14.18-33.55-34.43-33.55s-34.43,15.29-34.43,33.55c0,18.92,15.78,33.55,34.43,33.55S1890.42,1560.73,1890.42,1541.81Z"/><path class="cls-2" d="M1942.13,1500.34H1960c26.42,0,48.38,13.42,48.38,41,0,28.27-21.5,41.91-48.73,41.91h-17.5v-82.94Zm10.75,73.48h3.77c22,0,40.95-7.92,40.95-32s-19-32-40.95-32h-3.77Z"/><path class="cls-2" d="M2059.83,1500.34v49c0,13.53,4.23,26.07,20.82,26.07s20.82-12.54,20.82-26.07v-49h10.75v52.47c0,18.26-11.78,32.23-31.57,32.23s-31.57-14-31.57-32.23v-52.47Z"/><path class="cls-2" d="M2221.34,1516.18a35.68,35.68,0,0,0-22.76-8.14,33.77,33.77,0,1,0-.23,67.54,35.3,35.3,0,0,0,23-8.58v12.21a48.07,48.07,0,0,1-22.65,5.83c-24.59,0-45-18.81-45-42.79,0-24.53,20.47-43.67,45.87-43.67a42.87,42.87,0,0,1,21.73,5.61v12Z"/><path class="cls-2" d="M2265.61,1500.34h46.32v9.46h-35.57V1533h34.54v9.46h-34.54v31.35h35.57v9.46h-46.32Z"/><path class="cls-2" d="M2355.75,1500.34h17.84c26.42,0,48.38,13.42,48.38,41,0,28.27-21.5,41.91-48.73,41.91h-17.5v-82.94Zm10.75,73.48h3.77c22,0,40.95-7.92,40.95-32s-19-32-40.95-32h-3.77Z"/><path class="cls-2" d="M2527.78,1500.34h10.52c16.24,0,31.57,4.07,31.57,22.77,0,6.05-3.43,13.09-9.26,15.73v.22c10.18,1.76,17.27,11.33,17.27,21,0,16.61-14.75,23.21-30,23.21h-20.13v-82.94Zm10.75,36.74h2.75c10.18,0,18.53-2,18.53-13.86,0-11.66-8.24-13.64-18.3-13.64h-3v27.5Zm0,37h8.24c9.95,0,20.36-2.86,20.36-14.63s-12.35-14.08-22-14.08h-6.63V1574Z"/><path class="cls-2" d="M2612.43,1500.34h12.35l21.16,35.42,21.16-35.42h12.35l-28.14,46.86v36.08h-10.75V1547.2Z"/><path class="cls-2" d="M2035.07,1645.34h43.65l33.5,60.87,33.27-60.87h43.88v165.15h-42v-93l-35.16,61.34h-.7L2076.36,1718v92.48h-41.29Z"/><path class="cls-2" d="M2203.28,1645.34H2317v37.28h-71.72v27.13h64.65v35.15h-64.65v28.31h72.66v37.28H2203.28Z"/><path class="cls-2" d="M2327.14,1645.34h54.26c53.08,0,83.28,32.08,83.28,80.69v2.83c0,48.6-30.43,81.63-84,81.63h-53.56V1645.34Zm42.47,38v89.18h12.27c23.59,0,39.4-13.92,39.4-43.41V1727c0-29.73-15.81-43.65-39.4-43.65Z"/><path class="cls-2" d="M2474.59,1645.34h42.46v165.15h-42.46Z"/><path class="cls-2" d="M2578.63,1644.39h42.94l58.27,166.09h-44.59l-9.67-29.73h-51.9l-9.44,29.73h-43.65ZM2615,1746.78l-15.34-48.36-15.34,48.36Z"/><path class="cls-2" d="M1847.41,1810.75v-35.48h98v35.48Zm89.67-65.94v-35.48h-89.66v35.48Zm8.32-65.94v-35.48h-98v35.48Zm-206.59,41.39-27.61,46c4.78-9.83-2.93-15-7.74-16.49-8.08-3.1-33.43-8.09-49.88-12.9a63.26,63.26,0,0,1-18-8.36,44.17,44.17,0,0,1-18.69-36.26c0-10.21,5.09-51.56,68.51-51.56,52.13,0,66.28,30.48,67.52,48.71h-42.65c-1.51-6.64-7.5-14.45-25.8-14.56-4.22,0-21.13.44-22.77,11.42a9.87,9.87,0,0,0,3.95,9.8c2.62,2,7.31,3.07,9,3.58,7.71,2.32,24.59,5.57,32.89,7.61C1722,1710.77,1732.35,1715.14,1738.81,1720.26Zm-53.68,55.36c-16.77,0-27.73-4.28-31.31-21.54h-43.13c0,6.91,3.62,36.25,29.87,48.56,14.7,6.9,31.12,8.12,43.89,8.12l26.36-43.87C1709,1769.37,1705.32,1775.62,1685.13,1775.62Z"/><path class="cls-12" d="M1847.41,1643.39H1785l-46.19,76.87-27.61,46-.4.67-26.36,43.87h44.49l21.33-35.5h58v35.5h39.2V1643.39Zm-39.19,101.38h-39.65l39.65-66Z"/><path class="cls-12" d="M2680.64,1960.54H1635.71V1841.23H2680.64ZM1945.55,1932a39.4,39.4,0,0,0,23.9-8.09v-31.06h-26v12.92h10.32v9.67a13.43,13.43,0,0,1-7.53,1.95c-8.37,0-14.79-6.6-14.79-18.51v-.93c0-10.79,6.32-18,14.6-18,5.58,0,9.3,2.32,12.74,5.39l9.3-12.74a33.4,33.4,0,0,0-22.41-7.91c-18,0-31.34,13.58-31.34,33.11v1.3C1914.3,1919.42,1927.79,1932,1945.55,1932Zm78.83-1.12H2041v-20.18h6l11.06,20.18h18.88l-13.39-23.62c6.88-3.44,11.62-9.49,11.62-19.16v-.46c0-6.6-2-11.63-5.67-15.25-4.19-4.28-10.79-6.6-19.53-6.6h-25.57Zm16.65-33.47v-17h8.18c5.58,0,9.12,2.79,9.12,8.37v.19c0,5.21-3.35,8.46-9,8.46Zm116.41,34.68c17.48,0,30.23-13.67,30.23-33.11v-1.4c0-19.53-12.56-33-30.13-33s-30.23,13.67-30.23,33.11v1.4C2127.31,1918.58,2139.86,1932.06,2157.44,1932.06Zm.09-15.15c-7.72,0-13.12-6.88-13.12-18.13v-1c0-11.25,5.3-18,13-18s13.11,6.88,13.11,18.13v1C2170.55,1910.12,2165.34,1916.91,2157.53,1916.91ZM2267.61,1932c15.9,0,26.59-8.28,26.59-27.15v-39.06h-16.92v39.8c0,7.72-3.72,11.25-9.58,11.25s-9.58-3.72-9.58-11.53v-39.52h-16.83v39.34C2241.29,1923.6,2251.71,1932,2267.61,1932Zm82.09-1.12h16.65V1912h6.41c14.23-.19,25.58-7.62,25.58-23.25v-.37c0-14.6-10.05-22.6-25.39-22.6H2349.7Zm16.65-32.54v-18.23h5.77c6,0,9.48,3.07,9.48,9v.28c0,5.49-3.53,8.93-9.39,8.93Z"/><path class="cls-12" d="M2696.31,1845h-7.26v-3.71h18.52V1845h-7.26v19.08h-4Z"/><path class="cls-12" d="M2711.73,1841.28H2716l6.94,10.78,6.93-10.78h4.27v22.79h-4v-16.35l-7.2,10.75h-.13l-7.13-10.68v16.28h-3.94v-22.79Z"/></g></g></g></svg></a></div></div></div> <div class="principal-sponsors col-xl-4 col-lg-4 col-md-5 col-sm-6 col-xs-7 col-6 mx-auto bg-light"> <div class="d-flex flex-column "> <div class="principal-sponsors-header mx-auto pt-3 mb-0"> <div class="d-flex justify-content-center"> <h3 class="text-primary">PLATINUM SPONSORS</h3></div></div> <div> <img src='https://res.cloudinary.com/tbmg/f_auto,q_auto:best/v1614086394/ctf/extra/sponsors/sponsors_merged_2021.png' class=' lazyload blur-up' width='725' height='236' alt='Platinum Sponsors' /></div></div></div> <div class="col-xl-2 col-lg-2 col-md-2 d-md-block d-none"> <div class="d-flex flex-row-reverse"> <div id="login-menu" class="navbar-collapse collapse"> <ul class="navbar-nav ms-auto"><li class="nav-item"> <a class="nav-link" href="#" data-bs-toggle="modal" data-bs-target="#cb-form">Login</a></li> <li class="nav-item"> <a class="nav-link" href="/account/registration">Sign Up</a></li></ul></div></div></div></div> </nav> <nav class="main-nav bg-navbar navbar navbar-expand-sm navbar-light main-nav py-0"> <div class="main-nav-container container-xl mx-auto px-0"><div class="menu-top-nav"> <ul class="nav navbar-nav nav-bottom flex-nowrap d-md-flex d-none mx-auto"> <li class="nav-item"> <a class="nav-link " href="/how-to-vote">How to Vote</a></li></ul></div><div class="menu-top-nav"> <ul class="nav navbar-nav nav-bottom flex-nowrap d-md-flex d-none mx-auto"> <li class="nav-item"> <a class="nav-link " href="/about">About</a></li> <li class="nav-item"> <a class="nav-link " href="/contest-rules">Rules & Tips</a></li> <li class="nav-item"> <a class="nav-link " href="/2024/entries">Entries</a></li> <li class="nav-item"> <a class="nav-link " href="/archive">Archive</a></li> <li class="nav-item"> <a class="nav-link " href="/prizes">Prizes</a></li> <li class="nav-item"> <a class="nav-link " href="/faqs">FAQs</a></li> <li class="nav-item"> <a class="nav-link contact-us" href="#contactus">Contact</a></li></ul></div><div id="navbarSideContainer" class="navbar-side h-100 p-0 bg-light"> <ul class="nav flex-column nav"> <li id="navbar-side-close" class="nav-item text-right bg-secondary"> <a class="nav-link pb-0" href="#"> <i class="fas fa-2x fa-window-close"></i> </a></li> <li class="nav-item bg-secondary"><form id="searchform" class="form-inline nav-link w-75" action="/search" method="get"> <div class="input-group"> <input type="text" name="q" placeholder="Search" id="searchbox" class="form-control" value=""> <div class="input-group-append"> <button class="btn btn-primary" type="button" onclick="$('#searchform').submit()"> <span class="fas fa-search"></span> </button></div></div></form></li><li class="nav-item"> <a class="nav-link" href="#" data-bs-toggle="modal" data-bs-target="#cb-form">Login</a></li> <li class="nav-item"> <a class="nav-link" href="/account/registration">Sign Up</a></li> <!--<hr class="border border-secondary w-75">--> <hr class="border-secondary m-0 w-100"> <li class="nav-item"> <a class="nav-link" href="/how-to-vote">How to Vote</a></li><hr class="border-secondary m-0 w-100"> <li class="nav-item"> <a class="nav-link" href="/about">About</a></li> <li class="nav-item"> <a class="nav-link" href="/contest-rules">Rules & Tips</a></li> <li class="nav-item"> <a class="nav-link" href="/2024/entries">Entries</a></li> <li class="nav-item"> <a class="nav-link" href="/archive">Archive</a></li> <li class="nav-item"> <a class="nav-link" href="/prizes">Prizes</a></li> <li class="nav-item"> <a class="nav-link" href="/faqs">FAQs</a></li> <li class="nav-item"> <a class="nav-link" href="#contactus">Contact</a></li></ul></div><div class="overlay"></div></div> </nav></div> </header> <section id="print-only-message" class="printmessage"> </section> <!--googleon: all--> <div class="container"> <nav aria-label="breadcrumb"> <ol itemscope itemtype="https://schema.org/BreadcrumbList" class="breadcrumb pt-3 text-uppercase"> <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/" class="pathway"><span itemprop="name">Home</span></a> <meta itemprop="position" content="1"></li> <li class="breadcrumb-item active" aria-current="page"> <span itemprop="name"> FAQs</span> <meta itemprop="position" content="2"></li></ol> </nav> <!-- Main story section --> <section id="content" class="row my-3"> <section id="mainstory" class="left-column col-lg-8 col-md-7 .col-12"> <div> <!--googleoff: all--> <div id="system-message-container"></div> <!--googlon: all--> <article class="item-page" itemscope itemtype="https://schema.org/Article"> <meta itemprop="inLanguage" content="en-GB"/> <div class="card article"> <div class="card-header bg-primary"> <h2 class="font-weight-normal text-white mb-0 " itemprop="headline"> FAQs</h2></div><aside class="ms-auto me-2 mt-1 mb-0 d-inline-block"> <ul class="list-inline mb-0"> <li class="list-inline-item"> <a href="https://www.shareaholic.com/api/share/?apikey=18e410eb5fc79f84f064431251ed4713&apitype=1&v=1&service=facebook&link=https://contest.techbriefs.com/faqs&title=FAQs" rel="nofollow" target="_blank"><i class="fa-brands fa-facebook text-secondary"></i></a></li> <li class="list-inline-item"> <i class=""></i> <a href="https://www.shareaholic.com/api/share/?apikey=18e410eb5fc79f84f064431251ed4713&apitype=1&v=1&service=twitter&link=https://contest.techbriefs.com/faqs&title=FAQs" rel="nofollow" target="_blank"><i class="fa-brands fa-x-twitter text-secondary"></i></a></li> <li class="list-inline-item"> <a href="https://www.shareaholic.com/api/share/?apikey=18e410eb5fc79f84f064431251ed4713&apitype=1&v=1&service=linkedin&link=https://contest.techbriefs.com/faqs&title=FAQs" rel="nofollow" target="_blank"><i class="fa-brands fa-linkedin text-secondary"></i></a></li> <li class="list-inline-item"> <a href="#" onclick="$('html, body').animate({scrollTop:($('#disqus_thread').offset().top)},500);"><i class="fa-duotone fa-comment-alt text-secondary"></i></a></li></ul> </aside><div class="card-body article"> <div itemprop="articleBody"> <p><a name="top"></a></p> <h3>ENTRY RULES</h3> <ul> <li><a href="#q1">Can I enter a patented or patent-pending idea in this year's contest?</a></li> <li><a href="#q1a">I am not ready to disclose my idea on the public web site. Can I still enter the contest?</a></li> <li><a href="#q2">Do I lose control over my idea once I enter it in the contest?</a></li> <li><a href="#q3">Can I enter the contest if I reside outside the United States?</a></li> <li><a href="#q4">Can I enter the contest with a description shorter than 500 words? </a></li> <li><a href="#q5">How do you count words? My word count doesn't look as expected.</a></li> <li><a href="#q6">Are entry ideas developed by a team or group eligible to compete?</a></li> <li><a href="#q7">Can I enter the contest without providing image(s) to illustrate my entry? </a></li> <li><a href="#q8">I would like to submit more than one image. Can I do that?</a></li> <li><a href="#q9">Can I mail supplemental materials to support my entry?</a></li> <li><a href="#q10">How many ideas or designs can I submit? </a></li> <li><a href="#q12">Is it possible to include photos of a prototype model in my contest submission? </a></li> <li><a href="#q13">Are any prototypes required? </a></li> <li><a href="#q14">Can I submit a Word, Excel or PowerPoint file?</a></li> <li><a href="#q15">May I submit a design idea that I submitted in a previous Create the Future contest?</a></li> <li><a href="#q16">I registered for a previous contest. Do I need to register again this year?</a></li> <li><a href="#q40">Are there file size limitations for illustrations?</a></li> <li><a href="#q42">When trying to submit my entry, I received an error message "File extension not allowed!"</a></li> <li><a href="#q43">If I enter the contest with an idea that isn't patented, how is it protected?</a></li></ul> <h3>UPDATES OR EDITS TO ENTRIES</h3> <ul> <li><a href="#q17">Can I update or add something to my entry? </a></li> <li><a href="#q18">Can I update my "Meet the Entrant" questionnaire responses? </a></li> <li><a href="#q19">Can I change my "Meet the Entrant" questionnaire responses without changing my page views count?</a></li> <li><a href="#q20">How do I delete my entry?</a></li> <li><a href="#q20">How do I change the category of my entry?</a></li> <li><a href="#q20">How do I make my entry public/private?</a></li> <li><a href="#q20">How do I check my entry's status?</a></li></ul> <h3>QUALIFICATION PROCESS</h3> <ul> <li><a href="#q21">What does "qualification" mean? </a></li> <li><a href="#q22">My entry was declared "unqualified." Can I fix it? </a></li></ul> <h3>POPULAR VOTE PRIZES</h3> <ul> <li><a href="#q23">How does voting work? </a></li> <li><a href="#q24">Can I vote if I entered the contest? Can I vote if I didn't enter the contest? </a></li> <li><a href="#q25">How long do I have to cast my votes? </a></li> <li><a href="#q26">What impact does the popular vote have on the judging for grand or category prizes?</a></li> <li><a href="#q38">Why do I need to register to vote on entries?</a></li> <li><a href="#q39">Why did the number of votes decrease for my entry?</a></li></ul> <!--<h3>PAGE VIEWS</h3> <ul> <li><a href="#q27">Why do entry page view numbers matter? </a></li> <li><a href="#q28">How do I increase my entry's page views? </a></li> <li><a href="#q29">What are unacceptable forms of entry promotion? What if I do something you don't find acceptable? </a></li> <li><a href="#q30">If I hide my entry, and then publish it again, do I keep my previous page views? </a></li> <li><a href="#q31">How are you measuring page views for the most visited entries? </a></li> <li><a href="#q32">Why don't my page views increase automatically when I load my own page? </a></li> <li><a href="#q33">Do views of my uploaded image file count towards page views? </a></li></ul>--> <h3>GENERAL INFORMATION</h3> <ul> <li><a href="#q34">How do sponsors benefit from underwriting the contest? </a></li> <li><a href="#q35">Does the use of sponsor products influence the selection of winning entries?</a></li> <li><a href="#q36">Can I still win if I’m not an engineer or a scientist?</a></li> <li><a href="#q37">I found something offensive on the site or in an entry. Can you please do something about it?</a></li></ul> <h4 id="rules">ENTRY RULES</h4> <div itemscope="" itemtype="https://schema.org/FAQPage"> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q1">Can I enter a patented or patent-pending idea in this year's contest?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. You may wish to indicate patent status in the check-off box provided on the Entry Form.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q1a">I am not ready to disclose my idea on the public web site. Can I still enter the contest?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. On the Entry Form, you can elect not to publish your entry on the web site. You will still be eligible for the grand prize and category prizes, but this will prevent you from competing for popular vote prizes since that is based on public voting. The contest sponsors are not responsible for the protection of intellectual property contained in any of the entries, but will take all necessary precautions to ensure the confidentiality of non-published entries, which will only be viewed by the judges and contest administrators. If your entry is chosen as one of the winners, it will be publicly disclosed when the winners are announced.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q2">Do I lose control over my idea once I enter it in the contest?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>No. Per the Rules, the entrant retains ownership of the idea. The contest sponsors are only interested in helping to promote and reward innovative design ideas. There is absolutely NO transfer of intellectual property. </p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q3">Can I enter the contest if I reside outside the United States?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. However, eligibility to win prizes is restricted to countries (and states) which do not outlaw a contest with the prize value offered by this contest.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q4">Can I enter the contest with a description shorter than 500 words?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. However, the more complete your entry description, the better your chances of winning. Your visual materials will also improve your chances of winning. Your entry description should cover how the invention works, what makes it novel, how it would be produced, and where it would be applied. If the description is too short and does not cover these points, it will be disqualified.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q5">How do you count words? My word count doesn't look as expected.</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>The word counter checks for spaces between words. You should paste your text from a plain text format (such as Notepad) to reduce the risk of invisible characters that inflate the word count. Because of issues with text from other document formats, we allow a small buffer of 515 words before we reject more text in the text input form.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q6">Are entry ideas developed by a team or group eligible to compete?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. The entry should be submitted by the team or group leader whom you designate, and this person should be listed in the “Entrant Name” field. Where prompted on the Entry Form, list all other members of the team.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q7">Can I enter the contest without providing image(s) to illustrate my entry?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>No. At least one image is required to accompany the text. This could be a drawing, diagram, photo, or any other visual aid to help the judges. The illustration(s) must complement the descriptive text. A generic photo or photo of the entrant will be rejected. Entries without any associated images will be disqualified. The image(s) must be uploaded and submitted electronically with the Entry Form. You must have ownership of or authorization to use the images you submit. Stock photos may not be used without first obtaining the rights to do so.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q8">I would like to submit more than one image. Can I do that?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. You can upload up to three separate images when submitting your entry.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q9">Can I mail supplemental materials to support my entry?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>No. We cannot accept any materials by mail or e-mail. We can only accept the text, illustration(s), and (optional) video when you complete your Entry Form online.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q10">How many ideas or designs can I submit?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>There is no limit to the number of entries you can submit, but each entry must be a substantially different design idea. Identical or very similar ideas in multiple categories from the same entrant or entry team will be disqualified.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q12">Is it possible to include photos of a prototype model in my contest submission?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. Any type of image, including photos of prototypes, can be submitted, provided they are in one of the valid image formats indicated on the Entry Form.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q13">Are any prototypes required?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>No. Prototypes are not required. If you do have a prototype, you should indicate this on the entry form where asked.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q14">Can I submit a Word, Excel or PowerPoint file? </h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>No. Only entries with valid illustration formats will be accepted via the web site. Accepted formats include PDF, GIF, JPEG, and PNG.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q15">May I submit a design idea that I submitted in a previous Create the Future contest?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Previous entries may be resubmitted if there is an update or significant change to the design, or if new applications have been identified.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q16">I registered for a previous contest. Do I need to register again this year?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>No, if you have entered the contest in 2010 or later you do not need to re-register. However, if you last entered the contest prior to 2010 you will need to re-register.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q40">Are there file size limitations for illustrations?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>File sizes must be kept under 2MB per illustration and PDF documents should contain a single image each. If you attempt to submit larger files, the entry form upload may time out.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q42">When trying to submit my entry, I received an error message "File extension not allowed!"</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>That is most likely because you attempted to submit an illustration in a file type we do not accept. File type options include PDF, GIF, JPEG, or PNG.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q43">If I enter the contest with an idea that isn't patented, how is it protected?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>When you enter you have the option to hide your entry from public view, in which case it will only be seen by the contest administrators and judges, and only revealed publicly if chosen among the winners.<br />There is a small amount of risk in publishing your idea if you do not have or do not plan to apply for a patent, but otherwise how will your idea see the light of day and attract potential partners and funding sources?</p></div></div></div> <p class="my-5"><a href="#top">^ Back to top </a></p> <h4 id="updates">UPDATES OR EDITS TO ENTRIES</h4> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q17">Can I update or add something to my entry?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>If your description was incomplete, you should delete your entry and re-enter. You may do this by 1) logging in to the site with your email address and password; 2) going to your profile page at http://contest.techbriefs.com/profile where you can delete your original entry; and 3) resubmitting your entire entry using the entry form. We cannot accept separate e-mail addendums or revisions.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q18">Can I update my "Meet the Entrant" questionnaire responses?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. You may log in to the web site to edit this information from your entrant profile page.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q19">Can I change my "Meet the Entrant" questionnaire responses without changing my page views count?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. You may change your questionnaire responses and it will not change your page views count. </p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q20">How do I delete my entry? <br />How do I change the category of my entry? <br />How do I make my entry public/private? <br />How do I check my entry's status?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Login to the contest site and visit your profile at <a href="/profile">http://contest.techbriefs.com/profile</a>. <br />At the bottom of the page you will see your entries. <br />Here are the instructions: <br /><img data-src="/media/plg_content_ctf_profile/images/using_this_page.png" alt="" border="0" / class="lazyload"></p></div></div></div> <p class="my-5"><a href="#top">^ Back to top </a></p> <h4 id="qualification">QUALIFICATION PROCESS</h4> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q21">What does "qualification" mean?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Qualification is a pre-filter on entries to verify they meet the contest requirements as described in the Contest Rules. Administrators will screen out inappropriate or incomplete entries before the judges receive the entries.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q22">My entry was declared "unqualified." Can I fix it?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>You may fix it by signing in, deleting the old entry, and re-entering. Entries cannot be edited after submission and qualification review. The most common reasons for disqualifying entries are: 1) no illustration provided; 2) entry description is too short; 3) illustrations submitted in an unacceptable format and/or with an excessive amount of text. An entry may also be disqualified if deemed frivolous by the administrators.</p></div></div></div> <p class="my-5"><a href="#top">^ Back to top </a></p> <h4 id="votes">POPULAR VOTE PRIZES</h4> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q23">How does voting work?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>To vote, you must register with us, providing some basic contact information. After you register, you will be able to log in using your password. When you log in, you will have the option of casting one vote per entry. You can also post comments or questions about entries. Voting takes place on the entry description page.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q24">Can I vote if I entered the contest? Can I vote if I didn't enter the contest?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes, voting is possible for both contest entrants and visitors to the site. Entrants should use their existing email login and password and do not need to re-register to vote. Please tell other people to vote! The more votes cast, the more reliable the results will be.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q25">How long do I have to cast my votes?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Voting will continue until September 9, 2024, 11:59 pm EDT.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q26">What impact does the popular vote have on the judging for grand or category prizes?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>None. The selection of the grand prize and category winners is based on the scores of an independent industry panel, who judge the entries strictly on the criteria listed in the Rules.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q38">Why do I need to register to vote on entries?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>We require voter registration to ensure a fair voting process...one vote per entry per person. This information is not shared or published. It should take less than a minute to register, and then you can vote on as many different entries as you would like once you log in.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q39">Why did the number of votes decrease for my entry?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>The Contest Administrators will adjust the vote counts at any point in the competition to discount votes from registrants who have not registered properly or who attempt to vote for a single entry multiple times (including any attempt to use e-mail aliases). Votes will not count if the registrant does not accurately complete the required fields on the registration form or if the registrant attempts to enter fraudulent data.</p></div></div></div> <p class="my-5"><a href="#top">^ Back to top </a></p> <!--<h4 id="views">PAGE VIEWS</h4> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q27">Why do entry page view numbers matter?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>One of the options for contest web site visitors is to sort the published entries by number of page views. Those with higher numbers will appear first and potentially garner more interest and votes.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q28">How do I increase my entry's page views?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Some suggestions for driving traffic to your entry page: Advertise your entry on blogs, social media sites, and bookmarking sites such as “del.icio.us” and “stumbleupon.” Use interesting tags that attract attention, but please make them relevant or the site administrators may adjust these for you. Make sure the first few sentences of your published full entry or summary are interesting and grab the casual site visitor. Include a striking image. Your log files should show evidence of referral traffic to keep to the spirit of this competition, otherwise your entry may be subject to manual page view adjustment by the contest administrators. You may be asked to provide evidence of public web referrers at any time by the administrators.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q29">What are unacceptable forms of entry promotion? What if I do something you don't find acceptable?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Unacceptable forms of self-promotion include posting your entry in public forums where it is not relevant to the discussion topic; using generic visuals that do not make clear that you are linking to a specific contest entry; using the contest logo or other visuals from the contest site for your personal advertisement purposes. Use of bots and repeated reloading over extended periods of time is also unacceptable. Forms of advertisement that lead to email complaints about entry promotion being “off-topic” in forums/groups/mailing lists/sites will be investigated by the site administrators. Contestants who use these methods may have their entries hidden from public view on the site.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q30">If I hide my entry, and then publish it again, do I keep my previous page views?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. Your previous page view count will be maintained, unless your entry has been subject to manual page view adjustment due to suspicious activity.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q31">How are you measuring page views for the most visited entries?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>We are tracking based on both time of visit and visitor. We have an algorithm that looks for views by unique human visitors within a time window. Any numbers that appear to be suspect or the result of an automated process may be subject to manual review, and may be adjusted for accuracy at any time by the contest administrators. You may be challenged at any time to provide evidence of public page referrers on other web sites, to account for your page view count.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q32">Why don't my page views increase automatically when I load my own page?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>We update the entry page view statistics several times a day from a database, so you won't see updates on every page load. We also screen for repeat visits by the same person.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q33">Do views of my uploaded image file count towards page views?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>No, only views of your full entry details page are counted.</p></div></div></div> <p class="my-5"><a href="#top">^ Back to top </a></p>--> <h4 id="general">GENERAL INFORMATION</h4> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q34">How do sponsors benefit from underwriting the contest?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Sponsors are supporting the contest to help create opportunity and goodwill among members of the design engineering community. Links within the site will help interested visitors and participants learn more about sponsor products and services.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q35">Does the use of sponsor products influence the selection of winning entries? </h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>No. Winning entries will be selected an independent panel of judges on the basis of three criteria: innovation, feasibility/manufacturability, and marketability. </p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q36">Can I still win if I’m not an engineer or a scientist?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>Yes. We encourage entries by students and entrepreneurs.</p></div></div></div> <div itemscope="" itemprop="mainEntity" itemtype="https://schema.org/Question"> <h5 itemprop="name" id="q37">I found something offensive on the site or in an entry. Can you please do something about it?</h5> <div itemscope="" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text"> <p>If you see something that is offensive, <a class="contact-us" href="#contactus">contact the contest administrators</a>. We will review it as soon as possible.</p></div></div></div></div> <p class="mt-5">If you have other questions about the contest, please <a class="contact-us" href="#contactus">contact the contest administrators</a>.</p> <p class="my-5"><a href="#top">^ Back to top </a></p></div></div></div> </article></div> </section> <!--googleoff: all--> <section id="sidebar" class="right-column col-lg-4 col-md-5 d-md-block d-none"> <div><div class="module card text-center mb-3"> <div class="card-header py-1"> <h4>View Entries by</h4></div> <div id="mod-custom260" class="mod-custom custom"> <div class="card-body"> <h4>Contest Category</h4></div> <ul class="list-group list-group-flush"> <li class="list-group-item"><a href="/2024/entries/aerospace-and-defense/by-date">Aerospace & Defense</a></li> <li class="list-group-item"><a href="/2024/entries/automotive-transportation/by-date">Automotive/Transportation</a></li> <li class="list-group-item"><a href="/2024/entries/medical/by-date">Medical</a></li> <li class="list-group-item"><a href="/2024/entries/electronics/by-date">Electronics</a></li> <li class="list-group-item"><a href="/2024/entries/manufacturing-and-materials/by-date">Manufacturing & Materials</a></li> <li class="list-group-item"><a href="/2024/entries/robotics-and-automation/by-date">Robotics & Automation</a></li> <li class="list-group-item"><a href="/2024/entries/sustainable-technology/by-date">Sustainable Technology</a></li></ul> <div class="card-body"> <h4>Also</h4></div> <ul class="list-group list-group-flush"> <li class="list-group-item"><a href="/tags">Tag Cloud</a></li> <li class="list-group-item"><a href="/2024/entrants">2024 Entrants</a></li> <li class="list-group-item"><a href="/2024/top-votes">Number of Votes</a></li> <li class="list-group-item"><a href="/2024/entries/by-views">Number of Page Views</a></li> <li class="list-group-item"><a href="/2024/entries">View All Entries</a></li></ul></div></div> <div class="module card text-center mb-3"> <div class="card-header py-1"> <h4>2023 Contest Results</h4></div> <div id="mod-custom216" class="mod-custom custom"> <ul class="list-group list-group-flush"> <li class="list-group-item"><a href="/2023/winners">Grand Prize & Category Winners</a></li> <li class="list-group-item"><a href="/2023/top-100">Top 100 Entries</a></li> <li class="list-group-item"><a href="/2023/entries">Browse All the Entries</a></li> <li class="list-group-item"><a href="/2023/top-votes">Final Voting Scoreboard</a></li> <li class="list-group-item"><a href="/2023/judges">Meet the Judges </a></li></ul></div></div> <div class="_right"> <h3>Follow Us</h3> <div id="ctf_followus" class="mt-3"> <a class="text-info fs-5" href="https://www.shareaholic.com/v2/follow/?apikey=18e410eb5fc79f84f064431251ed4713&service_nickname=facebook&username=CreateTheFutureContest" rel="nofollow" target="_blank"><i class="fa-brands fa-facebook fa-2xl"></i></a> <a class="text-info fs-5 ms-4" href="https://www.shareaholic.com/v2/follow/?apikey=18e410eb5fc79f84f064431251ed4713&service_nickname=twitter&username=CTFcontest" rel="nofollow" target="_blank"><i class="fa-brands fa-twitter fa-2xl"></i></a> <a class="text-info fs-5 ms-4" href="https://www.shareaholic.com/v2/follow/?apikey=18e410eb5fc79f84f064431251ed4713&service_nickname=linkedin_company&username=sae-media-group" rel="nofollow" target="_blank"><i class="fa-brands fa-linkedin fa-2xl"></i></a></div></div></div> </section> <!--googlon: all--> </section> <!--googleoff: all--> <div id="footer"> <footer> <div class="loginbar"> <div id="cb-form" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" > <div class="modal-dialog modal-sm mt-5" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Sign In</h5> <button type="button" class="btn btn-secondary" data-bs_dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button></div> <div class="modal-body"> <form action="https://contest.techbriefs.com/account/login" method="post" id="login-form" class="form-inline cbLoginForm" data-bs-target="#cb-form"> <input type="hidden" name="option" value="com_comprofiler"/> <input type="hidden" name="view" value="login"/> <input type="hidden" name="op2" value="login"/> <input type="hidden" name="return" value="B:aHR0cHM6Ly9jb250ZXN0LnRlY2hicmllZnMuY29tL2ZhcXM="/> <input type="hidden" name="message" value="0"/> <input type="hidden" name="loginfrom" value="loginmodule"/> <input type="hidden" name="9549293c07a81f871e1437d9cf51bbf7" value="1" /> <div class="form-group mb-3 w-100"> <input name="username" type="username" class="form-control col-8" id="inputUserName" aria-describedby="userNameHelp" placeholder="Username"></div> <div class="form-group mb-3 w-100"> <input name="passwd" type="password" class="form-control col-8" id="inputPassword" placeholder="Password"></div> <button type="submit" class="btn btn-primary offset-2 col-8 mb-3">Submit <i class="fas fa-sign-in"></i></button> <a href="https://contest.techbriefs.com/account/forgot-login" class=" offset-2 col-8"> <span class="fas fa-unlock-alt"></span></span> Forgot Login? </a></form></div></div></div></div></div> <div class=" notify"> <div id="mod-custom142" class="mod-custom custom"> <p> Contest Notifications: <a href="/2023/winners">Click here for the full list of 2023 winning entries</a></p></div></div> <div class=""> <ul class="mod-menu mod-list nav "> <li class="nav-item item-10"><a href="https://www.saemediagroup.com/" >© 2024 SAE Media Group</a></li><li class="nav-item item-9"><a href="/privacy" class="ms-3">Privacy Policy</a></li><li class="nav-item item-854"><a href="https://status.saemediagroup.com/" class="ms-3">Service Status</a></li></ul></div> </footer> <!-- End of footer --> </div> <!--googleon: all--> </div> <!--googleoff: all--> <script src="https://cdnjs.cloudflare.com/ajax/libs/cloudinary-core/2.13.1/cloudinary-core-shrinkwrap.min.js" tb-donotmove crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-stp48jOOmT4TXnB4bMJ0rlcR7XagE92cqr7pEb+oFQox6qNSyKiN31GajDsg5VVn+HgM5mhOZinSRXowsRmgPg=="></script><script src="https://kit.fontawesome.com/796c614b26.js" tb-donotmove async crossorigin="anonymous" referrerpolicy="no-referrer"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js" tb-donotmove async crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-JRlcvSZAXT8+5SQQAvklXGJuxXTouyq8oIMaYERZQasB8SBDHZaUbeASsJWpk0UUrf89DP3/aefPPrlMR1h1yQ=="></script><script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js" tb-donotmove async crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-q583ppKrCRc7N5O0n2nzUiJ+suUv7Et1JGels4bXOaMFQcamPk9HjdUknZuuFjBNs7tsMuadge5k9RzdmO+1GQ=="></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" tb-donotmove crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g=="></script><script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.3/js/bootstrap.bundle.min.js" tb-donotmove crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-i9cEfJwUwViEPFKdC1enz4ZRGBj8YQo6QByFTF92YXHi7waCqyexvRD75S5NVTsSiTv7rKWqG9Y5eFxmRsOn0A=="></script><script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.14.0-beta3/js/bootstrap-select.min.js" defer tb-donotmove crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-yrOmjPdp8qH8hgLfWpSFhC/+R9Cj9USL8uJxYIveJZGAiedxyIxwNw4RsLDlcjNlIRR4kkHaDHSmNHAkxFTmgg=="></script><script type="text/javascript" tb-donotmove> $(function () { var cl = cloudinary.Cloudinary.new({ cloud_name: "tbmg" }); cl.config({ defaultBreakpoints: [100,200,400,500,800,1000,1200], responsive_use_breakpoints: true, }); cl.responsive(); }); var match_md_max = window.matchMedia("(max-width: 991px)"); $(function () { var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl) }) }); </script> <link rel="preload" href="https://cdn.shareaholic.net/assets/pub/shareaholic.js" as="script"/> <meta name="shareaholic:site_id" content="18e410eb5fc79f84f064431251ed4713"/> <script data-cfasync="false" async src="https://cdn.shareaholic.net/assets/pub/shareaholic.js"></script> <script tb-donotmove> window.fwSettings = { 'widget_id': 30000000144 }; !function () { if ("function" != typeof window.FreshworksWidget) { var n = function () { n.q.push(arguments) }; n.q = [], window.FreshworksWidget = n } }() </script> <script type='text/javascript' src='https://widget.freshworks.com/widgets/30000000144.js' async defer tb-donotmove> </script> <script src="/media/system/js/core.js" tb-donotmove></script> <!--googleon: all--> <!-- moved to end by ntb_minifier --> <link href="https://olytics.omeda.com/olytics/css/v3/p/olytics.css" rel="stylesheet" /> <link href="/components/com_comprofiler/plugin/templates/default/bootstrap.min.css?v=49a2bdfe30936590" rel="stylesheet" /> <link href="/components/com_comprofiler/plugin/templates/default/fontawesome.min.css?v=49a2bdfe30936590" rel="stylesheet" /> <link href="/components/com_comprofiler/plugin/templates/default/template.min.css?v=49a2bdfe30936590" rel="stylesheet" /> <script src="/media/system/js/core.js?37ffe4186289eba9c5df81bea44080aff77b9684"></script> <script src="/media/vendor/bootstrap/js/bootstrap-es5.min.js?5.3.2" nomodule defer></script> <script src="/media/vendor/bootstrap/js/tab.min.js?5.3.2" type="module"></script> <script src="/media/vendor/bootstrap/js/popover.min.js?5.3.2" type="module"></script> <script src="/media/vendor/bootstrap/js/modal.min.js?5.3.2" type="module"></script> <script src="/media/vendor/bootstrap/js/dropdown.min.js?5.3.2" type="module"></script> <script src="/media/vendor/bootstrap/js/carousel.min.js?5.3.2" type="module"></script> <link rel="stylesheet" href="/templates/ctf_2019/css/template.min.css?t=1716788610" crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-F9gZzNqGLMtFzYq2oxq8kTyzLIjCuSsA2lb2mTTPvqkKnEZ0oqTEpujAJ5zywetxQT4izs4tIjAWmpw/QYCXPQ=="/> <script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/plugins/print/ls.print.min.js" defer crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-tY3D/iSWSdQE2NSLW/mRWQd/bvHAGjyCLRwSd23sqNbbgVnUaah2t+ZpX7hdBOskZ7PqYvwe4E+qxNARGojJGQ=="></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/11.14.5/sweetalert2.all.min.js" crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-m4zOGknNg3h+mK09EizkXi9Nf7B3zwsN9ow+YkYIPZoA6iX2vSzLezg4FnW0Q6Z1CPaJdwgUFQ3WSAUC4E/5Hg=="></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.14.0-beta3/css/bootstrap-select.min.css" media="print" onload="this.media='all'" crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-g2SduJKxa4Lbn3GW+Q7rNz+pKP9AWMR++Ta8fgwsZRCUsawjPvF/BxSMkGS61VsR9yinGoEgrHPGPn2mrj8+4w=="/> <!-- inline scripts moved by ntb_minifier --> <script> /*! inlined from /media/system/js/keepalive-es5.min.js by ntb_minifier */ (function(){'use strict';if(!window.Joomla){throw new Error('Joomla API was not properly initialised');} var keepAliveOptions=Joomla.getOptions('system.keepalive');var keepAliveInterval=keepAliveOptions&&keepAliveOptions.interval?parseInt(keepAliveOptions.interval,10):45*1000;var keepAliveUri=keepAliveOptions&&keepAliveOptions.uri?keepAliveOptions.uri.replace(/&/g,'&'):'';if(keepAliveUri===''){var systemPaths=Joomla.getOptions('system.paths');keepAliveUri=(systemPaths?systemPaths.root+"/index.php":window.location.pathname)+"?option=com_ajax&format=json";} setInterval(function(){return fetch(keepAliveUri,{method:'POST'});},keepAliveInterval);})(); /*! inlined from /media/plg_system_webauthn/js/login.min.js by ntb_minifier */ window.Joomla=window.Joomla||{};((Joomla,document)=>{const interpolateParameters=(object,prefix='')=>{let encodedString='';Object.keys(object).forEach(prop=>{if(typeof object[prop]!=='object'){if(encodedString.length>0){encodedString+='&';} if(prefix===''){encodedString+=`${encodeURIComponent(prop)}=${encodeURIComponent(object[prop])}`;}else{encodedString+=`${encodeURIComponent(prefix)}[${encodeURIComponent(prop)}]=${encodeURIComponent(object[prop])}`;} return;} encodedString+=`${interpolateParameters(object[prop], prop)}`;});return encodedString;};const findField=(form,fieldSelector)=>{const elInputs=form.querySelectorAll(fieldSelector);if(!elInputs.length){return null;} return elInputs[0];};const lookForField=(outerElement,fieldSelector)=>{let elInput=null;if(!outerElement){return elInput;} const elElement=outerElement.parentElement;if(elElement.nodeName==='FORM'){elInput=findField(elElement,fieldSelector);return elInput;} const elForms=elElement.querySelectorAll('form');if(elForms.length){for(let i=0;i<elForms.length;i+=1){elInput=findField(elForms[i],fieldSelector);if(elInput!==null){return elInput;}}} return null;};const handleLoginError=message=>{Joomla.renderMessages({error:[message]});};const handleLoginChallenge=publicKey=>{const arrayToBase64String=a=>btoa(String.fromCharCode(...a));const base64url2base64=input=>{let output=input.replace(/-/g,'+').replace(/_/g,'/');const pad=output.length%4;if(pad){if(pad===1){throw new Error('InvalidLengthError: Input base64url string is the wrong length to determine padding');} output+=new Array(5-pad).join('=');} return output;};if(!publicKey.challenge){handleLoginError(Joomla.Text._('PLG_SYSTEM_WEBAUTHN_ERR_INVALID_USERNAME'));return;} publicKey.challenge=Uint8Array.from(window.atob(base64url2base64(publicKey.challenge)),c=>c.charCodeAt(0));if(publicKey.allowCredentials){publicKey.allowCredentials=publicKey.allowCredentials.map(data=>{data.id=Uint8Array.from(window.atob(base64url2base64(data.id)),c=>c.charCodeAt(0));return data;});} navigator.credentials.get({publicKey}).then(data=>{const publicKeyCredential={id:data.id,type:data.type,rawId:arrayToBase64String(new Uint8Array(data.rawId)),response:{authenticatorData:arrayToBase64String(new Uint8Array(data.response.authenticatorData)),clientDataJSON:arrayToBase64String(new Uint8Array(data.response.clientDataJSON)),signature:arrayToBase64String(new Uint8Array(data.response.signature)),userHandle:data.response.userHandle?arrayToBase64String(new Uint8Array(data.response.userHandle)):null}};const paths=Joomla.getOptions('system.paths');window.location=`${paths ? `${paths.base}/index.php` : window.location.pathname}?${Joomla.getOptions('csrf.token')}=1&option=com_ajax&group=system&plugin=webauthn&`+`format=raw&akaction=login&encoding=redirect&data=${btoa(JSON.stringify(publicKeyCredential))}`;}).catch(error=>{handleLoginError(error);});};Joomla.plgSystemWebauthnLogin=formId=>{const elFormContainer=document.getElementById(formId);const elUsername=lookForField(elFormContainer,'input[name=username]');const elReturn=lookForField(elFormContainer,'input[name=return]');if(elUsername===null){Joomla.renderMessages({error:[Joomla.Text._('PLG_SYSTEM_WEBAUTHN_ERR_CANNOT_FIND_USERNAME')]});return false;} const username=elUsername.value;const returnUrl=elReturn?elReturn.value:null;if(username===''){Joomla.renderMessages({error:[Joomla.Text._('PLG_SYSTEM_WEBAUTHN_ERR_EMPTY_USERNAME')]});return false;} const postBackData={option:'com_ajax',group:'system',plugin:'webauthn',format:'raw',akaction:'challenge',encoding:'raw',username,returnUrl};postBackData[Joomla.getOptions('csrf.token')]=1;const paths=Joomla.getOptions('system.paths');Joomla.request({url:`${paths ? `${paths.base}/index.php` : window.location.pathname}?${Joomla.getOptions('csrf.token')}=1`,method:'POST',data:interpolateParameters(postBackData),onSuccess(rawResponse){let jsonData={};try{jsonData=JSON.parse(rawResponse);}catch(e){} handleLoginChallenge(jsonData);},onError:xhr=>{handleLoginError(`${xhr.status} ${xhr.statusText}`);}});return false;};const loginButtons=[].slice.call(document.querySelectorAll('.plg_system_webauthn_login_button'));if(loginButtons.length){loginButtons.forEach(button=>{button.addEventListener('click',({currentTarget})=>{Joomla.plgSystemWebauthnLogin(currentTarget.getAttribute('data-webauthn-form'));});});}})(Joomla,document); /*! inlined from /media/mod_menu/js/menu-es5.min.js by ntb_minifier */ (function(){'use strict';(function(){function topLevelMouseOver(el,settings){var ulChild=el.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','false');ulChild.classList.add(settings.menuHoverClass);}} function topLevelMouseOut(el,settings){var ulChild=el.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','true');ulChild.classList.remove(settings.menuHoverClass);}} function setupNavigation(nav){var settings={menuHoverClass:'show-menu',dir:'ltr'};var topLevelChilds=nav.querySelectorAll(':scope > li');topLevelChilds.forEach(function(topLevelEl){var linkEl=topLevelEl.querySelector('a');if(linkEl){linkEl.tabIndex='0';linkEl.addEventListener('mouseover',topLevelMouseOver(topLevelEl,settings));linkEl.addEventListener('mouseout',topLevelMouseOut(topLevelEl,settings));} var spanEl=topLevelEl.querySelector('span');if(spanEl){spanEl.tabIndex='0';spanEl.addEventListener('mouseover',topLevelMouseOver(topLevelEl,settings));spanEl.addEventListener('mouseout',topLevelMouseOut(topLevelEl,settings));} topLevelEl.addEventListener('mouseover',function(_ref){var target=_ref.target;var ulChild=target.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','false');ulChild.classList.add(settings.menuHoverClass);}});topLevelEl.addEventListener('mouseout',function(_ref2){var target=_ref2.target;var ulChild=target.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','true');ulChild.classList.remove(settings.menuHoverClass);}});topLevelEl.addEventListener('focus',function(_ref3){var target=_ref3.target;var ulChild=target.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','true');ulChild.classList.add(settings.menuHoverClass);}});topLevelEl.addEventListener('blur',function(_ref4){var target=_ref4.target;var ulChild=target.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','false');ulChild.classList.remove(settings.menuHoverClass);}});topLevelEl.addEventListener('keydown',function(event){var keyName=event.key;var curEl=event.target;var curLiEl=curEl.parentElement;var curUlEl=curLiEl.parentElement;var prevLiEl=curLiEl.previousElementSibling;var nextLiEl=curLiEl.nextElementSibling;if(!prevLiEl){prevLiEl=curUlEl.children[curUlEl.children.length-1];} if(!nextLiEl){var _curUlEl$children=curUlEl.children;nextLiEl=_curUlEl$children[0];} switch(keyName){case'ArrowLeft':event.preventDefault();if(settings.dir==='rtl'){nextLiEl.children[0].focus();}else{prevLiEl.children[0].focus();} break;case'ArrowRight':event.preventDefault();if(settings.dir==='rtl'){prevLiEl.children[0].focus();}else{nextLiEl.children[0].focus();} break;case'ArrowUp':{event.preventDefault();var parent=curLiEl.parentElement.parentElement;if(parent.nodeName==='LI'){parent.children[0].focus();}else{prevLiEl.children[0].focus();} break;} case'ArrowDown':event.preventDefault();if(curLiEl.classList.contains('parent')){var child=curLiEl.querySelector('ul');if(child!=null){var childLi=child.querySelector('li');childLi.children[0].focus();}else{nextLiEl.children[0].focus();}}else{nextLiEl.children[0].focus();} break;}});});} document.addEventListener('DOMContentLoaded',function(){var navs=document.querySelectorAll('.nav');[].forEach.call(navs,function(nav){setupNavigation(nav);});});})();})();(function(){var cx='015407278790088682131:yshqqymtj30';var gcse=document.createElement('script');gcse.type='text/javascript';gcse.async=true;gcse.src=(document.location.protocol=='https:'?'https:':'http:')+'//www.google.com/cse/cse.js?cx='+cx;var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(gcse,s);})();window.olytics||(window.olytics=[]),window.olytics.methods=["fire","confirm"],window.olytics.factory=function(i){return function(){var t=Array.prototype.slice.call(arguments);return t.unshift(i),window.olytics.push(t),window.olytics}};for(var i=0;i<window.olytics.methods.length;i++){var method=window.olytics.methods[i];window.olytics[method]=window.olytics.factory(method)} olytics.load=function(i){if(!document.getElementById("olyticsImport")){window.a=window.olytics;var t=document.createElement("script");t.async=!0,t.id="olyticsImport",t.type="text/javascript";var o="";void 0!==i&&void 0!==i.oid&&(o=i.oid),t.setAttribute("data-oid",o),t.src="https://olytics.omeda.com/olytics/js/v3/p/olytics.min.js",t.addEventListener("load",function(t){for(olytics.initialize({Olytics:i});window.a.length>0;){var o=window.a.shift(),s=o.shift();olytics[s]&&olytics[s].apply(olytics,o)}},!1);var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}},olytics.load({oid:"c1d61b8c10b7440fb3c59fe5b6424a6b"});$(document).ready(function(){olytics.fire({behaviorId:'7566A8018245A8G',category:'Article,General',tag:''});});$(document).ready(function(){$('#cb-form').on('shown.bs.modal',function(){$('#inputUserName').focus();})});var _extraWatchParams=_extraWatchParams||[];_extraWatchParams.projectId='db832384-b716-4141-b539-b453c5613e25';(function(){var ew=document.createElement('script');ew.type='text/javascript';ew.async=true;ew.src='https://agent.extrawatch.com/agent/js/ew.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ew,s);})();FreshworksWidget('hide','launcher');FreshworksWidget('identify','ticketForm',{name:'',email:'',});FreshworksWidget('prefill','ticketForm',{group_id:30000055696,});FreshworksWidget('hide','ticketForm',['group_id']);$(function(){$("a.contact-us").click(function(){FreshworksWidget('open');});}); /*! inlined from /templates/ctf_2019/js/custom.min.js by ntb_minifier */ $(window).scroll(function(){if($(document).scrollTop()>202){$('nav').addClass('shrink');$('.main-nav').addClass('main-nav-stick');$('body').addClass('body-pad');}else{$('nav').removeClass('shrink');$('.main-nav').removeClass('main-nav-stick');$('body').removeClass('body-pad');}});$(function(){function showNavbarSide(){$('#navbarSideContainer').addClass('reveal');$('.overlay').show();} function hideNavbarSide(){$('#navbarSideContainer').removeClass('reveal');$('.overlay').hide();} $('[id*=navbar-side-button]').on('click',function(){showNavbarSide();});$('[id*=search-side-button]').on('click',function(){showNavbarSide();$('#searchbox').focus();});$('.overlay').on('click',function(){hideNavbarSide();});$('#navbar-side-close').on('click',function(){hideNavbarSide();});});function checkWidth(){if($(window).width()>=768)$('.tb-filter-show').addClass("show");else $('.tb-filter-show').removeClass("show");} $(document).ready(checkWidth);$(window).resize(checkWidth); </script> <!-- JoomlaWorks "Disqus Comments (for Joomla)" (v3.7.0) --> <script>var disqus_config = function(){this.language = '';};</script> <script id="dsq-count-scr" src="//createthefuture.disqus.com/count.js" async></script> </body> </html>