CINXE.COM

Architecture Overview | CockroachDB Docs

<!DOCTYPE html> <html lang="en"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://www.cockroachlabs.com/docs/stable/architecture/overview.html","20221201132227","https://web.archive.org/","web","/_static/", "1669900947"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="Learn about the inner-workings of the CockroachDB architecture."> <meta name="keywords" content=""> <title>Architecture Overview | CockroachDB Docs</title><link rel="canonical" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/stable/architecture/overview.html"> <link rel="shortcut icon" href="/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/favicon.png" type="image/png"> <style> /*! * Bootstrap v4.5.2 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */@import "https://web.archive.org/web/20221201132227cs_/https://www.cockroachlabs.com/docs/css/theme-blue.css";: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: #6933FF;--secondary: #C0C6D9;--success: #28a745;--info: #17a2b8;--warning: #ffc107;--danger: #ff4136;--light: #f8f9fa;--dark: #343a40;--electric-purple: #6933FF;--black: #000;--ice-temple: #1BF8EC;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: "Source Sans Pro";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Source Sans Pro";font-size:1rem;font-weight:400;line-height:1.725;color:#242A35;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:600}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#05f;text-decoration:none;background-color:transparent}a:hover{color:#05f;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role="button"]{cursor:pointer}select{word-wrap:normal}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:none}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:5px;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}.container,.container-fluid,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:12px;padding-left:12px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1600px}}.row{display:flex;flex-wrap:wrap;margin-right:-12px;margin-left:-12px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-xl,.col-xl-auto,.col-xl-12,.col-xl-11,.col-xl-10,.col-xl-9,.col-xl-8,.col-xl-7,.col-xl-6,.col-xl-5,.col-xl-4,.col-xl-3,.col-xl-2,.col-xl-1,.col-lg,.col-lg-auto,.col-lg-12,.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-md,.col-md-auto,.col-md-12,.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-sm,.col-sm-auto,.col-sm-12,.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col,.col-auto,.col-12,.col-11,.col-10,.col-9,.col-8,.col-7,.col-6,.col-5,.col-4,.col-3,.col-2,.col-1{position:relative;width:100%;padding-right:12px;padding-left:12px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.form-control{display:block;width:100%;height:calc(1.725em + 1rem + 2px);padding:.5rem 1rem;font-size:1rem;font-weight:400;line-height:1.725;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:5px;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#c7b3ff;outline:0;box-shadow:0 0 0 3px rgba(105,51,255,0.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input.form-control[type="date"],input.form-control[type="time"],input.form-control[type="datetime-local"],input.form-control[type="month"]{appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.725}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:4px;padding-bottom:4px;font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.5rem 0;margin-bottom:0;font-size:1rem;line-height:1.725;color:#242A35;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + 8px);padding:3px 14px;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:6px}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.725;color:#fff;background-color:rgba(40,167,69,0.9);border-radius:5px}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#28a745;padding-right:calc(1.725em + 1rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.43125em + .25rem) center;background-size:calc(.8625em + .5rem) calc(.8625em + .5rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 3px rgba(40,167,69,0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.725em + 1rem);background-position:top calc(.43125em + .25rem) right calc(.43125em + .25rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#28a745;padding-right:calc(.75em + 2.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 2rem/calc(.8625em + .5rem) calc(.8625em + .5rem)}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 3px rgba(40,167,69,0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#28a745}.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip,.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip{display:block}.was-validated .custom-control-input:valid~.custom-control-label,.custom-control-input.is-valid~.custom-control-label{color:#28a745}.was-validated .custom-control-input:valid~.custom-control-label::before,.custom-control-input.is-valid~.custom-control-label::before{border-color:#28a745}.was-validated .custom-control-input:valid:checked~.custom-control-label::before,.custom-control-input.is-valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.was-validated .custom-control-input:valid:focus~.custom-control-label::before,.custom-control-input.is-valid:focus~.custom-control-label::before{box-shadow:0 0 0 3px rgba(40,167,69,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.was-validated .custom-file-input:valid~.custom-file-label,.custom-file-input.is-valid~.custom-file-label{border-color:#28a745}.was-validated .custom-file-input:valid:focus~.custom-file-label,.custom-file-input.is-valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 3px rgba(40,167,69,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#ff4136}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.725;color:#fff;background-color:rgba(255,65,54,0.9);border-radius:5px}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#ff4136;padding-right:calc(1.725em + 1rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ff4136' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff4136' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.43125em + .25rem) center;background-size:calc(.8625em + .5rem) calc(.8625em + .5rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#ff4136;box-shadow:0 0 0 3px rgba(255,65,54,0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.725em + 1rem);background-position:top calc(.43125em + .25rem) right calc(.43125em + .25rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#ff4136;padding-right:calc(.75em + 2.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ff4136' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff4136' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 2rem/calc(.8625em + .5rem) calc(.8625em + .5rem)}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#ff4136;box-shadow:0 0 0 3px rgba(255,65,54,0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#ff4136}.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip,.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip{display:block}.was-validated .custom-control-input:invalid~.custom-control-label,.custom-control-input.is-invalid~.custom-control-label{color:#ff4136}.was-validated .custom-control-input:invalid~.custom-control-label::before,.custom-control-input.is-invalid~.custom-control-label::before{border-color:#ff4136}.was-validated .custom-control-input:invalid:checked~.custom-control-label::before,.custom-control-input.is-invalid:checked~.custom-control-label::before{border-color:#ff7169;background-color:#ff7169}.was-validated .custom-control-input:invalid:focus~.custom-control-label::before,.custom-control-input.is-invalid:focus~.custom-control-label::before{box-shadow:0 0 0 3px rgba(255,65,54,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before{border-color:#ff4136}.was-validated .custom-file-input:invalid~.custom-file-label,.custom-file-input.is-invalid~.custom-file-label{border-color:#ff4136}.was-validated .custom-file-input:invalid:focus~.custom-file-label,.custom-file-input.is-invalid:focus~.custom-file-label{border-color:#ff4136;box-shadow:0 0 0 3px rgba(255,65,54,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#242A35;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.5rem 1rem;font-size:1rem;line-height:1.725;border-radius:5px;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#242A35;text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:0 0 0 3px rgba(105,51,255,0.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#6933FF;border-color:#6933FF}.btn-primary:hover{color:#fff;background-color:#4d0dff;border-color:#40f}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#4d0dff;border-color:#40f;box-shadow:0 0 0 3px rgba(128,82,255,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#6933FF;border-color:#6933FF}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary.active:not(:disabled):not(.disabled),.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#40f;border-color:#4000f2}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary.active:not(:disabled):not(.disabled):focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(128,82,255,0.5)}.btn-secondary{color:#212529;background-color:#C0C6D9;border-color:#C0C6D9}.btn-secondary:hover{color:#212529;background-color:#a8b0cb;border-color:#a0a9c6}.btn-secondary:focus,.btn-secondary.focus{color:#212529;background-color:#a8b0cb;border-color:#a0a9c6;box-shadow:0 0 0 3px rgba(168,174,191,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;background-color:#C0C6D9;border-color:#C0C6D9}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary.active:not(:disabled):not(.disabled),.show>.btn-secondary.dropdown-toggle{color:#212529;background-color:#a0a9c6;border-color:#98a2c1}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary.active:not(:disabled):not(.disabled):focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(168,174,191,0.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 3px rgba(72,180,97,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled):active,.btn-success.active:not(:disabled):not(.disabled),.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success.active:not(:disabled):not(.disabled):focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(72,180,97,0.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 3px rgba(58,176,195,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled):active,.btn-info.active:not(:disabled):not(.disabled),.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info.active:not(:disabled):not(.disabled):focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(58,176,195,0.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning:focus,.btn-warning.focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 3px rgba(222,170,12,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning.active:not(:disabled):not(.disabled),.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning.active:not(:disabled):not(.disabled):focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(222,170,12,0.5)}.btn-danger{color:#fff;background-color:#ff4136;border-color:#ff4136}.btn-danger:hover{color:#fff;background-color:#ff1d10;border-color:#ff1103}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#ff1d10;border-color:#ff1103;box-shadow:0 0 0 3px rgba(255,94,84,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#ff4136;border-color:#ff4136}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger.active:not(:disabled):not(.disabled),.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#ff1103;border-color:#f50d00}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger.active:not(:disabled):not(.disabled):focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(255,94,84,0.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light:focus,.btn-light.focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 3px rgba(216,217,219,0.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled):active,.btn-light.active:not(:disabled):not(.disabled),.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light.active:not(:disabled):not(.disabled):focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(216,217,219,0.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 3px rgba(82,88,93,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark.active:not(:disabled):not(.disabled),.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark.active:not(:disabled):not(.disabled):focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(82,88,93,0.5)}.btn-electric-purple{color:#fff;background-color:#6933FF;border-color:#6933FF}.btn-electric-purple:hover{color:#fff;background-color:#4d0dff;border-color:#40f}.btn-electric-purple:focus,.btn-electric-purple.focus{color:#fff;background-color:#4d0dff;border-color:#40f;box-shadow:0 0 0 3px rgba(128,82,255,0.5)}.btn-electric-purple.disabled,.btn-electric-purple:disabled{color:#fff;background-color:#6933FF;border-color:#6933FF}.btn-electric-purple:not(:disabled):not(.disabled):active,.btn-electric-purple.active:not(:disabled):not(.disabled),.show>.btn-electric-purple.dropdown-toggle{color:#fff;background-color:#40f;border-color:#4000f2}.btn-electric-purple:not(:disabled):not(.disabled):active:focus,.btn-electric-purple.active:not(:disabled):not(.disabled):focus,.show>.btn-electric-purple.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(128,82,255,0.5)}.btn-black{color:#fff;background-color:#000;border-color:#000}.btn-black:hover{color:#fff;background-color:#000;border-color:#000}.btn-black:focus,.btn-black.focus{color:#fff;background-color:#000;border-color:#000;box-shadow:0 0 0 3px rgba(38,38,38,0.5)}.btn-black.disabled,.btn-black:disabled{color:#fff;background-color:#000;border-color:#000}.btn-black:not(:disabled):not(.disabled):active,.btn-black.active:not(:disabled):not(.disabled),.show>.btn-black.dropdown-toggle{color:#fff;background-color:#000;border-color:#000}.btn-black:not(:disabled):not(.disabled):active:focus,.btn-black.active:not(:disabled):not(.disabled):focus,.show>.btn-black.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(38,38,38,0.5)}.btn-ice-temple{color:#212529;background-color:#1BF8EC;border-color:#1BF8EC}.btn-ice-temple:hover{color:#212529;background-color:#07e6da;border-color:#07d9ce}.btn-ice-temple:focus,.btn-ice-temple.focus{color:#212529;background-color:#07e6da;border-color:#07d9ce;box-shadow:0 0 0 3px rgba(28,216,207,0.5)}.btn-ice-temple.disabled,.btn-ice-temple:disabled{color:#212529;background-color:#1BF8EC;border-color:#1BF8EC}.btn-ice-temple:not(:disabled):not(.disabled):active,.btn-ice-temple.active:not(:disabled):not(.disabled),.show>.btn-ice-temple.dropdown-toggle{color:#212529;background-color:#07d9ce;border-color:#06cdc2}.btn-ice-temple:not(:disabled):not(.disabled):active:focus,.btn-ice-temple.active:not(:disabled):not(.disabled):focus,.show>.btn-ice-temple.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(28,216,207,0.5)}.btn-outline-primary{color:#6933FF;border-color:#6933FF}.btn-outline-primary:hover{color:#fff;background-color:#6933FF;border-color:#6933FF}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 3px rgba(105,51,255,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#6933FF;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary.active:not(:disabled):not(.disabled),.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#6933FF;border-color:#6933FF}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(105,51,255,0.5)}.btn-outline-secondary{color:#C0C6D9;border-color:#C0C6D9}.btn-outline-secondary:hover{color:#212529;background-color:#C0C6D9;border-color:#C0C6D9}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 3px rgba(192,198,217,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#C0C6D9;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary.active:not(:disabled):not(.disabled),.show>.btn-outline-secondary.dropdown-toggle{color:#212529;background-color:#C0C6D9;border-color:#C0C6D9}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(192,198,217,0.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 3px rgba(40,167,69,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success.active:not(:disabled):not(.disabled),.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(40,167,69,0.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 3px rgba(23,162,184,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info.active:not(:disabled):not(.disabled),.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(23,162,184,0.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 3px rgba(255,193,7,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning.active:not(:disabled):not(.disabled),.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(255,193,7,0.5)}.btn-outline-danger{color:#ff4136;border-color:#ff4136}.btn-outline-danger:hover{color:#fff;background-color:#ff4136;border-color:#ff4136}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 3px rgba(255,65,54,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#ff4136;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger.active:not(:disabled):not(.disabled),.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#ff4136;border-color:#ff4136}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(255,65,54,0.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 3px rgba(248,249,250,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light.active:not(:disabled):not(.disabled),.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(248,249,250,0.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 3px rgba(52,58,64,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark.active:not(:disabled):not(.disabled),.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(52,58,64,0.5)}.btn-outline-electric-purple{color:#6933FF;border-color:#6933FF}.btn-outline-electric-purple:hover{color:#fff;background-color:#6933FF;border-color:#6933FF}.btn-outline-electric-purple:focus,.btn-outline-electric-purple.focus{box-shadow:0 0 0 3px rgba(105,51,255,0.5)}.btn-outline-electric-purple.disabled,.btn-outline-electric-purple:disabled{color:#6933FF;background-color:transparent}.btn-outline-electric-purple:not(:disabled):not(.disabled):active,.btn-outline-electric-purple.active:not(:disabled):not(.disabled),.show>.btn-outline-electric-purple.dropdown-toggle{color:#fff;background-color:#6933FF;border-color:#6933FF}.btn-outline-electric-purple:not(:disabled):not(.disabled):active:focus,.btn-outline-electric-purple.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-electric-purple.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(105,51,255,0.5)}.btn-outline-black{color:#000;border-color:#000}.btn-outline-black:hover{color:#fff;background-color:#000;border-color:#000}.btn-outline-black:focus,.btn-outline-black.focus{box-shadow:0 0 0 3px rgba(0,0,0,0.5)}.btn-outline-black.disabled,.btn-outline-black:disabled{color:#000;background-color:transparent}.btn-outline-black:not(:disabled):not(.disabled):active,.btn-outline-black.active:not(:disabled):not(.disabled),.show>.btn-outline-black.dropdown-toggle{color:#fff;background-color:#000;border-color:#000}.btn-outline-black:not(:disabled):not(.disabled):active:focus,.btn-outline-black.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-black.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(0,0,0,0.5)}.btn-outline-ice-temple{color:#1BF8EC;border-color:#1BF8EC}.btn-outline-ice-temple:hover{color:#212529;background-color:#1BF8EC;border-color:#1BF8EC}.btn-outline-ice-temple:focus,.btn-outline-ice-temple.focus{box-shadow:0 0 0 3px rgba(27,248,236,0.5)}.btn-outline-ice-temple.disabled,.btn-outline-ice-temple:disabled{color:#1BF8EC;background-color:transparent}.btn-outline-ice-temple:not(:disabled):not(.disabled):active,.btn-outline-ice-temple.active:not(:disabled):not(.disabled),.show>.btn-outline-ice-temple.dropdown-toggle{color:#212529;background-color:#1BF8EC;border-color:#1BF8EC}.btn-outline-ice-temple:not(:disabled):not(.disabled):active:focus,.btn-outline-ice-temple.active:not(:disabled):not(.disabled):focus,.show>.btn-outline-ice-temple.dropdown-toggle:focus{box-shadow:0 0 0 3px rgba(27,248,236,0.5)}.btn-link{font-weight:400;color:#05f;text-decoration:none}.btn-link:hover{color:#05f;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline}.btn-link:disabled,.btn-link.disabled{color:#6c757d;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:3px 14px;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input.btn-block[type="submit"],input.btn-block[type="reset"],input.btn-block[type="button"]{width:100%}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#242A35;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:5px}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^="top"],.dropdown-menu[x-placement^="right"],.dropdown-menu[x-placement^="bottom"],.dropdown-menu[x-placement^="left"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#6933FF}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:10.5px;padding-left:10.5px}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type="radio"],.btn-group-toggle>.btn input[type="checkbox"],.btn-group-toggle>.btn-group>.btn input[type="radio"],.btn-group-toggle>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus~.custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.5rem 1rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.725;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:5px}.input-group-text input[type="radio"],.input-group-text input[type="checkbox"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:6px}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + 8px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:3px 14px;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:2rem}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:5px;border-top-right-radius:5px}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:5px}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#6933FF}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.284375rem;padding-bottom:.284375rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:5px}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:#000}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link{color:#000}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:#000;border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23000' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#000}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,0.125);border-radius:5px}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:4px;border-top-right-radius:4px}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125)}.card-header:first-child{border-radius:4px 4px 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125)}.card-footer:last-child{border-radius:0 0 4px 4px}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:4px}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:4px;border-top-right-radius:4px}.card-img,.card-img-bottom{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.card-deck .card{margin-bottom:12px}@media (min-width: 576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-12px;margin-left:-12px}.card-deck .card{flex:1 0 0%;margin-right:12px;margin-bottom:0;margin-left:12px}}.card-group>.card{margin-bottom:12px}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width: 576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Source Sans Pro";font-style:normal;font-weight:400;line-height:1.725;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:5px}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#6933FF !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#40f !important}.bg-secondary{background-color:#C0C6D9 !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#a0a9c6 !important}.bg-success{background-color:#28a745 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#1e7e34 !important}.bg-info{background-color:#17a2b8 !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#117a8b !important}.bg-warning{background-color:#ffc107 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#d39e00 !important}.bg-danger{background-color:#ff4136 !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#ff1103 !important}.bg-light{background-color:#f8f9fa !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5 !important}.bg-dark{background-color:#343a40 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124 !important}.bg-electric-purple{background-color:#6933FF !important}a.bg-electric-purple:hover,a.bg-electric-purple:focus,button.bg-electric-purple:hover,button.bg-electric-purple:focus{background-color:#40f !important}.bg-black{background-color:#000 !important}a.bg-black:hover,a.bg-black:focus,button.bg-black:hover,button.bg-black:focus{background-color:#000 !important}.bg-ice-temple{background-color:#1BF8EC !important}a.bg-ice-temple:hover,a.bg-ice-temple:focus,button.bg-ice-temple:hover,button.bg-ice-temple:focus{background-color:#07d9ce !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #D6DBE7 !important}.border-top{border-top:1px solid #D6DBE7 !important}.border-right{border-right:1px solid #D6DBE7 !important}.border-bottom{border-bottom:1px solid #D6DBE7 !important}.border-left{border-left:1px solid #D6DBE7 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#6933FF !important}.border-secondary{border-color:#C0C6D9 !important}.border-success{border-color:#28a745 !important}.border-info{border-color:#17a2b8 !important}.border-warning{border-color:#ffc107 !important}.border-danger{border-color:#ff4136 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#343a40 !important}.border-electric-purple{border-color:#6933FF !important}.border-black{border-color:#000 !important}.border-ice-temple{border-color:#1BF8EC !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:.2rem !important}.rounded{border-radius:5px !important}.rounded-top{border-top-left-radius:5px !important;border-top-right-radius:5px !important}.rounded-right{border-top-right-radius:5px !important;border-bottom-right-radius:5px !important}.rounded-bottom{border-bottom-right-radius:5px !important;border-bottom-left-radius:5px !important}.rounded-left{border-top-left-radius:5px !important;border-bottom-left-radius:5px !important}.rounded-lg{border-radius:6px !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media (min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media (min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media (min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media (min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.8571428571%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media (min-width: 576px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media (min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media (min-width: 992px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media (min-width: 1200px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow,.btn-outline-purple:hover{box-shadow:0px 7px 13px rgba(71,88,114,0.301) !important}.shadow-lg{box-shadow:0px 12px 24px rgba(71,88,114,0.54) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.m-45{margin:1.875rem !important}.mt-45,.my-45{margin-top:1.875rem !important}.mr-45,.mx-45{margin-right:1.875rem !important}.mb-45,.my-45{margin-bottom:1.875rem !important}.ml-45,.mx-45{margin-left:1.875rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.p-45{padding:1.875rem !important}.pt-45,.py-45{padding-top:1.875rem !important}.pr-45,.px-45{padding-right:1.875rem !important}.pb-45,.py-45{padding-bottom:1.875rem !important}.pl-45,.px-45{padding-left:1.875rem !important}.m-n1{margin:-.25rem !important}.mt-n1,.my-n1{margin-top:-.25rem !important}.mr-n1,.mx-n1{margin-right:-.25rem !important}.mb-n1,.my-n1{margin-bottom:-.25rem !important}.ml-n1,.mx-n1{margin-left:-.25rem !important}.m-n2{margin:-.5rem !important}.mt-n2,.my-n2{margin-top:-.5rem !important}.mr-n2,.mx-n2{margin-right:-.5rem !important}.mb-n2,.my-n2{margin-bottom:-.5rem !important}.ml-n2,.mx-n2{margin-left:-.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-n45{margin:-1.875rem !important}.mt-n45,.my-n45{margin-top:-1.875rem !important}.mr-n45,.mx-n45{margin-right:-1.875rem !important}.mb-n45,.my-n45{margin-bottom:-1.875rem !important}.ml-n45,.mx-n45{margin-left:-1.875rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.m-sm-45{margin:1.875rem !important}.mt-sm-45,.my-sm-45{margin-top:1.875rem !important}.mr-sm-45,.mx-sm-45{margin-right:1.875rem !important}.mb-sm-45,.my-sm-45{margin-bottom:1.875rem !important}.ml-sm-45,.mx-sm-45{margin-left:1.875rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.p-sm-45{padding:1.875rem !important}.pt-sm-45,.py-sm-45{padding-top:1.875rem !important}.pr-sm-45,.px-sm-45{padding-right:1.875rem !important}.pb-sm-45,.py-sm-45{padding-bottom:1.875rem !important}.pl-sm-45,.px-sm-45{padding-left:1.875rem !important}.m-sm-n1{margin:-.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem !important}.m-sm-n2{margin:-.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-n45{margin:-1.875rem !important}.mt-sm-n45,.my-sm-n45{margin-top:-1.875rem !important}.mr-sm-n45,.mx-sm-n45{margin-right:-1.875rem !important}.mb-sm-n45,.my-sm-n45{margin-bottom:-1.875rem !important}.ml-sm-n45,.mx-sm-n45{margin-left:-1.875rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.m-md-45{margin:1.875rem !important}.mt-md-45,.my-md-45{margin-top:1.875rem !important}.mr-md-45,.mx-md-45{margin-right:1.875rem !important}.mb-md-45,.my-md-45{margin-bottom:1.875rem !important}.ml-md-45,.mx-md-45{margin-left:1.875rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.p-md-45{padding:1.875rem !important}.pt-md-45,.py-md-45{padding-top:1.875rem !important}.pr-md-45,.px-md-45{padding-right:1.875rem !important}.pb-md-45,.py-md-45{padding-bottom:1.875rem !important}.pl-md-45,.px-md-45{padding-left:1.875rem !important}.m-md-n1{margin:-.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem !important}.m-md-n2{margin:-.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-n45{margin:-1.875rem !important}.mt-md-n45,.my-md-n45{margin-top:-1.875rem !important}.mr-md-n45,.mx-md-n45{margin-right:-1.875rem !important}.mb-md-n45,.my-md-n45{margin-bottom:-1.875rem !important}.ml-md-n45,.mx-md-n45{margin-left:-1.875rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.m-lg-45{margin:1.875rem !important}.mt-lg-45,.my-lg-45{margin-top:1.875rem !important}.mr-lg-45,.mx-lg-45{margin-right:1.875rem !important}.mb-lg-45,.my-lg-45{margin-bottom:1.875rem !important}.ml-lg-45,.mx-lg-45{margin-left:1.875rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.p-lg-45{padding:1.875rem !important}.pt-lg-45,.py-lg-45{padding-top:1.875rem !important}.pr-lg-45,.px-lg-45{padding-right:1.875rem !important}.pb-lg-45,.py-lg-45{padding-bottom:1.875rem !important}.pl-lg-45,.px-lg-45{padding-left:1.875rem !important}.m-lg-n1{margin:-.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem !important}.m-lg-n2{margin:-.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-n45{margin:-1.875rem !important}.mt-lg-n45,.my-lg-n45{margin-top:-1.875rem !important}.mr-lg-n45,.mx-lg-n45{margin-right:-1.875rem !important}.mb-lg-n45,.my-lg-n45{margin-bottom:-1.875rem !important}.ml-lg-n45,.mx-lg-n45{margin-left:-1.875rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.m-xl-45{margin:1.875rem !important}.mt-xl-45,.my-xl-45{margin-top:1.875rem !important}.mr-xl-45,.mx-xl-45{margin-right:1.875rem !important}.mb-xl-45,.my-xl-45{margin-bottom:1.875rem !important}.ml-xl-45,.mx-xl-45{margin-left:1.875rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.p-xl-45{padding:1.875rem !important}.pt-xl-45,.py-xl-45{padding-top:1.875rem !important}.pr-xl-45,.px-xl-45{padding-right:1.875rem !important}.pb-xl-45,.py-xl-45{padding-bottom:1.875rem !important}.pl-xl-45,.px-xl-45{padding-left:1.875rem !important}.m-xl-n1{margin:-.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem !important}.m-xl-n2{margin:-.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-n45{margin:-1.875rem !important}.mt-xl-n45,.my-xl-n45{margin-top:-1.875rem !important}.mr-xl-n45,.mx-xl-n45{margin-right:-1.875rem !important}.mb-xl-n45,.my-xl-n45{margin-bottom:-1.875rem !important}.ml-xl-n45,.mx-xl-n45{margin-left:-1.875rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:600 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#6933FF !important}a.text-primary:hover,a.text-primary:focus{color:#3d00e6 !important}.text-secondary{color:#C0C6D9 !important}a.text-secondary:hover,a.text-secondary:focus{color:#909bbc !important}.text-success{color:#28a745 !important}a.text-success:hover,a.text-success:focus{color:#19692c !important}.text-info{color:#17a2b8 !important}a.text-info:hover,a.text-info:focus{color:#0f6674 !important}.text-warning{color:#ffc107 !important}a.text-warning:hover,a.text-warning:focus{color:#ba8b00 !important}.text-danger{color:#ff4136 !important}a.text-danger:hover,a.text-danger:focus{color:#e90d00 !important}.text-light{color:#f8f9fa !important}a.text-light:hover,a.text-light:focus{color:#cbd3da !important}.text-dark{color:#343a40 !important}a.text-dark:hover,a.text-dark:focus{color:#121416 !important}.text-electric-purple{color:#6933FF !important}a.text-electric-purple:hover,a.text-electric-purple:focus{color:#3d00e6 !important}.text-black{color:#000 !important}a.text-black:hover,a.text-black:focus{color:#000 !important}.text-ice-temple{color:#1BF8EC !important}a.text-ice-temple:hover,a.text-ice-temple:focus{color:#06c1b6 !important}.text-body{color:#242A35 !important}.text-muted{color:#6c757d !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;overflow-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.text-gray-100{color:#F5F7FA !important}a.text-gray-100:hover,a.text-gray-100:focus{color:#c2cee1 !important}.text-gray-200{color:#E7ECF3 !important}a.text-gray-200:hover,a.text-gray-200:focus{color:#b4c4da !important}.text-gray-300{color:#D6DBE7 !important}a.text-gray-300:hover,a.text-gray-300:focus{color:#a6b1cb !important}.text-gray-400{color:#C0C6D9 !important}a.text-gray-400:hover,a.text-gray-400:focus{color:#909bbc !important}.text-gray-500{color:#7E89A9 !important}a.text-gray-500:hover,a.text-gray-500:focus{color:#576383 !important}.text-gray-600{color:#475872 !important}a.text-gray-600:hover,a.text-gray-600:focus{color:#2a3443 !important}.text-gray-700{color:#394455 !important}a.text-gray-700:hover,a.text-gray-700:focus{color:#1a1f27 !important}.text-gray-800{color:#242A35 !important}a.text-gray-800:hover,a.text-gray-800:focus{color:#050607 !important}.text-gray-900{color:#060C12 !important}a.text-gray-900:hover,a.text-gray-900:focus{color:#000 !important}body.menu_open{overflow:hidden}body.menu_open nav.mobile_expanded{overflow-y:auto;display:block}body.menu_open header{margin-left:-100vw}body.menu_open header nav.mobile .hamburger span:nth-child(1),body.menu_open header nav.mobile .hamburger span:nth-child(4){top:8px;width:0%;left:50%}body.menu_open header nav.mobile .hamburger span:nth-child(2){-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}body.menu_open header nav.mobile .hamburger span:nth-child(3){-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}body.menu_open #content,body.menu_open .col-sidebar,body.menu_open #version-switcher{margin-left:-100vw;box-shadow:none}nav.mobile_expanded{position:fixed;right:0;top:0;bottom:0;z-index:900;width:100vw;overflow:auto;display:none}nav.mobile_expanded a:hover,nav.mobile_expanded a.current-menu-item{color:#54B30E}nav.mobile_expanded a.current-menu-item{background:#efefef}nav.mobile_expanded .mobile-nav__link,nav.mobile_expanded .mobile-nav__dropdown-label{display:block;color:#152849;font-family:'Source Sans Pro', sans-serif;font-size:13px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:600;line-height:20px;letter-spacing:1.5px;text-transform:uppercase;-webkit-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);cursor:pointer}nav.mobile_expanded .mobile-nav__link{padding:30px 0 30px 20px;border-bottom:1px solid #DADADA}nav.mobile_expanded .mobile-subnav{display:none}nav.mobile_expanded .mobile-subnav__section:not(:last-child){margin-bottom:30px}nav.mobile_expanded .mobile-subnav__label{display:block;margin:20px 0 10px;font-family:'Source Sans Pro', sans-serif;font-size:13px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:600;line-height:20px;letter-spacing:1.5px;text-transform:uppercase;color:#54B30E}nav.mobile_expanded .mobile-subnav__link{display:block;margin-bottom:10px;color:#152849;font-family:'Source Sans Pro', sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:25px}nav.mobile_expanded .mobile-menu-dropdown{width:100%;padding:30px 0 30px 20px;border-bottom:1px solid #DADADA}nav.mobile_expanded .mobile-menu-dropdown .blue-arrow{display:block;margin-top:3px;margin-right:25px;cursor:pointer}nav.mobile_expanded .close-wrap{height:60px;border-bottom:1px solid #dadada;padding:15px 0 0 15px}nav.mobile_expanded .hamburger{position:absolute;top:0;right:4px;width:45px;height:45px;margin-right:5px;margin-top:5px;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);cursor:pointer}nav.mobile_expanded .hamburger span{display:block;position:absolute;background-color:#152849;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;height:4px;width:20px;opacity:1;left:0;right:0;margin:0 auto;top:50%;transform:translateY(-50%);-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99)}nav.mobile_expanded .hamburger span:nth-child(1),nav.mobile_expanded .hamburger span:nth-child(4){top:8px;width:0%;left:50%}nav.mobile_expanded .hamburger span:nth-child(2){-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}nav.mobile_expanded .hamburger span:nth-child(3){-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}nav.mobile_expanded .hamburger:hover{border-color:#152849}nav.mobile_expanded .hamburger:hover .hamburger_inner{border-color:#152849}.logo{width:180px;margin-top:3px;float:left;line-height:20px;font-size:0}@media screen and (min-width: 767px) and (max-width: 992px){.logo{line-height:23px}}@media screen and (min-width: 992px){.logo{width:209px;margin-top:3px}}header{width:100%;float:left;padding:15px;background:#FFFFFF;height:60px}@media screen and (min-width: 992px){header{border-bottom:1px solid transparent}.single-post header nav.desktop a.blog-nav{color:#54B30E;text-decoration:none}}header.navbar-fixed-top{display:flex;position:fixed;justify-content:center;border-bottom:1px solid #DADADA}@media screen and (min-width: 992px){header.navbar-fixed-top{border-bottom:unset}}header.scrolled{background:#FFFFFF;border-bottom:1px solid #DADADA}header .navbar-fixed-top--inner{width:100%;max-width:1600px}header nav.mobile{float:right}@media screen and (min-width: 992px){header nav.mobile{display:none}}header nav.mobile .hamburger{width:21px;height:20px;float:right;margin-top:5px;position:relative;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99)}header nav.mobile .hamburger span{display:block;position:absolute;background-color:#54B30E;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;height:4px;width:100%;opacity:1;left:0;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99)}header nav.mobile .hamburger span:nth-child(1){top:0px}header nav.mobile .hamburger span:nth-child(2),header nav.mobile .hamburger span:nth-child(3){top:8px}header nav.mobile .hamburger span:nth-child(4){top:16px}header nav.desktop{display:none}@media screen and (min-width: 992px){header nav.desktop{display:inline-block;float:right}}header nav.desktop .desktop-menu__item,header nav.desktop .desktop-menu__item-link{float:left;padding:0;font-family:'Source Sans Pro', sans-serif;font-size:13px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:600;line-height:20px;letter-spacing:1.5px;line-height:45px;text-transform:uppercase;color:#152849;-webkit-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99)}header nav.desktop .desktop-menu__item.current-menu-item,header nav.desktop .desktop-menu__item:hover,header nav.desktop .desktop-menu__item-link.current-menu-item,header nav.desktop .desktop-menu__item-link:hover{color:#54B30E;text-decoration:none}header nav.desktop .desktop-menu__item{position:relative}header nav.desktop .desktop-menu__item:hover{cursor:pointer;color:#54B30E}header nav.desktop .desktop-menu__item:hover .desktop-menu__dropdown-container{opacity:1;pointer-events:all}header nav.desktop .desktop-menu__item-link{margin:0 5px;text-decoration:none}@media (min-width: 1024px){header nav.desktop .desktop-menu__item-link{margin:0 10px}}header nav.desktop .desktop-menu__dropdown-container{display:flex;position:absolute;width:fit-content;top:40px;left:0px;padding:15px;background-color:#ffffff;border-radius:5px;box-shadow:0 2px 5px 0 rgba(17,29,57,0.1),0 4px 20px 0 rgba(17,29,57,0.12);opacity:0;pointer-events:none;transition:opacity 0.4s ease;z-index:1}header nav.desktop .desktop-menu__subnav-section{width:fit-content;margin:0 15px}header nav.desktop .desktop-menu__subnav-section:not(:last-child){border-right:1px solid #DADADA}header nav.desktop .desktop-menu__subnav-section--product{min-width:180px}header nav.desktop .desktop-menu__subnav-section--resources{min-width:150px}header nav.desktop .desktop-menu__subnav-label{display:block}header nav.desktop .desktop-menu__subnav-link{display:block;font-family:'Source Sans Pro', sans-serif;font-size:13px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:600;line-height:20px;letter-spacing:1.5px;letter-spacing:0;line-height:35px;text-transform:none;color:#152849}header nav.desktop .desktop-menu__subnav-link:hover{color:#54B30E}@media screen and (min-width: 767px){header nav.desktop .button--header{margin-right:0}}.home-header{height:auto;background:linear-gradient(102.66deg, #37A806 33.41%, #0788FF 106.55%)}@media (min-width: 1200px){.home-header{height:405px}.home-header .card-header-overlap{min-height:268px}.home-header .card-header-overlap-text{min-height:250px}}@media (min-width: 992px){.home-header{margin-left:-3rem;margin-right:-3rem}}.card-link{box-shadow:0px 7px 13px rgba(71,88,114,0.301)}.card-link:hover{box-shadow:0px 12px 24px rgba(71,88,114,0.54);transition:all 0.2s ease-in-out}.card-link a:hover{text-decoration:none}.bg-blackk-texture-logo{background:url(https://web.archive.org/web/20221201132227im_/https://cockroach-labs-docs.imgix.net/bg-black-texture-logo.png?auto=format,compress&q=40);background-size:cover}.bg-dark-wing{background:url(https://web.archive.org/web/20221201132227im_/https://cockroach-labs-docs.imgix.net/bg-dark-wing.png?auto=format,compress&q=40);background-size:cover}body.sidenav-open{overflow:hidden}body.sidenav-open:before{content:"";display:block;position:fixed;top:50px;bottom:0px;left:0px;right:0px;background-color:rgba(4,2,28,0.73);z-index:1}.col-sidebar{display:flex;flex-flow:column;height:100%}.col-sidebar .col-sidebar-content{flex:0 1 auto}.col-sidebar .stiky-spacer{flex:1 1 auto}.col-sidebar .form-control{max-width:196px;background-size:17px 17px;background-repeat:no-repeat;background-position:10px center;padding-left:30px}@media screen and (max-width: 991px){#sidebarMenu{height:auto;position:fixed;z-index:10;background-color:#fff;top:108px;border-top:1px solid #D6DBE7;border-bottom:1px solid #D6DBE7;height:60%;overflow:scroll;padding-bottom:15px}}.col-sidebar-content{max-height:calc(100vh - 50px);overflow-y:scroll;position:-webkit-sticky;position:sticky;top:0}@media screen and (min-width: 992px){.col-sidebar-content{top:118px}}.nav-docs-mobile{position:fixed;top:54px;z-index:999;background:#fff}.nav-docs-mobile .h3{font-size:22px}.nav-docs-mobile .arrow-down{padding:4px;border-width:2px 0 0 2px;margin:0}#sidebar,.js-sidebar{width:100%;padding:10px 0 5px 15px;display:flex;flex-direction:column;font-family:'Source Sans Pro', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#sidebar.nav--collapsed,.js-sidebar.nav--collapsed{padding:0}#sidebar.nav--collapsed:before,.js-sidebar.nav--collapsed:before{display:none}#sidebar .sidenav-arrow,.js-sidebar .sidenav-arrow{display:none}@media screen and (min-width: 0) and (max-width: 767px){#sidebar .sidenav-arrow,.js-sidebar .sidenav-arrow{display:block;position:fixed;z-index:1030;top:114px;right:15px}}#sidebar ul,.js-sidebar ul{margin:0;padding:0}#sidebar ul li,.js-sidebar ul li{list-style:none;position:relative;padding:4px 0 4px 20px;margin:0}#sidebar ul li .nav-expand,.js-sidebar ul li .nav-expand{position:absolute;top:13px;left:2px;transform:rotate(-90deg);-webkit-transform:rotate(-90deg)}#sidebar ul li.visited a,.js-sidebar ul li.visited a{color:#6933FF}#sidebar ul li.visited code,.js-sidebar ul li.visited code{color:#6933FF}#sidebar ul li.active>a .nav-expand,.js-sidebar ul li.active>a .nav-expand{transform:rotate(0deg);-webkit-transform:rotate(0deg)}#sidebar .tier-1 a,.js-sidebar .tier-1 a{color:#242A35}#sidebar .tier-1.active>a,.js-sidebar .tier-1.active>a{color:#6933FF}#sidebar .tier-2 a,#sidebar .tier-2 code,.js-sidebar .tier-2 a,.js-sidebar .tier-2 code{color:#242A35}#sidebar .tier-2 a:hover,#sidebar .tier-2 code:hover,.js-sidebar .tier-2 a:hover,.js-sidebar .tier-2 code:hover{text-decoration:none;color:#6933FF}#sidebar .tier-2.active>a,.js-sidebar .tier-2.active>a{color:#6933FF}.landing-page .landing-page__tutorial{margin:16px 0 10px;width:100%}.landing-page .landing-page__tutorial--tile{display:inline-flex;justify-content:center;align-items:center;height:55px;width:calc(33% - 9px);border:none;box-shadow:1px 1px 10px #DADADA;margin-right:5px;margin-bottom:20px;margin-left:5px}@media screen and (min-width: 544px){.landing-page .landing-page__tutorial--tile{height:75px;width:calc(33% - 8.5px)}}.landing-page .landing-page__tutorial--tile.install .landing-page__tutorial--tile-label:after{content:'Install'}@media screen and (min-width: 767px){.landing-page .landing-page__tutorial--tile.install .landing-page__tutorial--tile-label:after{content:'Install CockroachDB'}}@media screen and (min-width: 992px){.landing-page .landing-page__tutorial--tile.install .landing-page__tutorial--tile-label:after{content:'Install'}}@media screen and (min-width: 1330px){.landing-page .landing-page__tutorial--tile.install .landing-page__tutorial--tile-label:after{content:'Install CockroachDB'}}.landing-page .landing-page__tutorial--tile.start-cluster .landing-page__tutorial--tile-label:after{content:'Start cluster'}@media screen and (min-width: 767px){.landing-page .landing-page__tutorial--tile.start-cluster .landing-page__tutorial--tile-label:after{content:'Start a cluster'}}@media screen and (min-width: 992px){.landing-page .landing-page__tutorial--tile.start-cluster .landing-page__tutorial--tile-label:after{content:'Start cluster'}}@media screen and (min-width: 1200px){.landing-page .landing-page__tutorial--tile.start-cluster .landing-page__tutorial--tile-label:after{content:'Start a cluster'}}.landing-page .landing-page__tutorial--tile.build-app .landing-page__tutorial--tile-label:after{content:'Build an app'}.landing-page .landing-page__tutorial--tile:first-child{margin-left:0}.landing-page .landing-page__tutorial--tile:last-child{margin-right:0}.landing-page .landing-page__tutorial--tile:hover{border-bottom:none}.landing-page .landing-page__tutorial--tile:hover .landing-page__tutorial--tile-label{color:#6933FF}.landing-page .landing-page__tutorial--tile-icon{display:none}@media screen and (min-width: 544px){.landing-page .landing-page__tutorial--tile-icon{display:initial;margin-right:10px;margin-bottom:2px}}.landing-page .landing-page__tutorial--tile-label{font-family:'Source Sans Pro', sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:25px;color:#142848;margin-top:5px}@media screen and (min-width: 544px){.landing-page .landing-page__tutorial--tile-label{font-family:'Source Sans Pro', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:22.6px}}.landing-page .landing-page__video-wrapper{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.landing-page iframe{position:absolute;top:0;left:0;width:100%;height:100%}#maincontent{position:relative;padding-top:115px}@media screen and (min-width: 992px){#maincontent{padding-top:95px}}#maincontent #main-content{margin:0 15px}@media screen and (min-width: 992px){#maincontent #main-content{margin:0 auto;min-height:625px;max-width:1600px}}#maincontent #main-content .content-col{padding-bottom:100px;max-width:100%;min-width:0;padding-top:105px;overflow-x:scroll}@media screen and (min-width: 992px){#maincontent #main-content .content-col{padding-top:0;min-height:625px;margin-left:310px;margin-right:45px}#maincontent #main-content .content-col.no-sidebar{padding-left:30px}#maincontent #main-content .content-col.no-toc{padding-right:30px}}#maincontent #main-content .content-col--landing{padding-top:30px}section.footer{background:#F5F7FA;padding:0 0 20px;z-index:1;position:relative}@media screen and (min-width: 992px){section.footer{padding:0 0 40px}}section.footer .container{width:100%;padding-left:0;padding-right:0;margin:0;max-width:100%}@media screen and (min-width: 992px){section.footer .container{padding:60px 0 20px 45px;margin:0 auto;width:1500px}}section.footer .footer__flex-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap}@media screen and (min-width: 992px){section.footer .footer__flex-wrap{width:68%}}section.footer .footer__right{display:flex;border-bottom:solid 1px #DADADA}@media screen and (min-width: 992px){section.footer .footer__right{border-bottom:none;border-left:solid 1px #DADADA;width:25%;padding-top:0;padding-left:60px;margin-left:50px}}section.footer .footer-nav{width:100%;list-style:none;margin-bottom:0}@media screen and (max-width: 991px){section.footer .footer-nav{border-top:1px solid #DADADA;padding:20px}}@media screen and (min-width: 992px){section.footer .footer-nav{width:calc(100% / 4 - 1px);padding-left:0}section.footer .footer-nav--product{-webkit-box-ordinal-group:-1;-ms-flex-order:-2;order:-2}section.footer .footer-nav--documentation{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}}section.footer .footer-nav li{color:#152849;list-style:none;text-align:left;padding:0;margin:0 10px 0 0;text-indent:0}@media screen and (min-width: 992px){section.footer .footer-nav li{width:100%;margin-right:20px}}section.footer .footer-nav li a{font-family:'Source Sans Pro', sans-serif;font-size:14px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#111D39;line-height:40px;text-transform:none;display:block;-webkit-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99)}@media screen and (min-width: 992px){section.footer .footer-nav li a{line-height:25px;margin-bottom:10px}}section.footer .footer-nav li a:hover{color:#190F33}section.footer .footer-nav li.header{font-family:'Poppins', sans-serif;font-size:14px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:5px}@media screen and (min-width: 992px){section.footer .footer-nav li.header{margin-bottom:15px}}section.footer .footer-nav li:before{content:"";display:none;left:auto;top:auto}section.footer .footer-sub-nav{display:none;margin-top:20px;padding-left:0}@media screen and (min-width: 992px){section.footer .footer-sub-nav{display:block}}section.footer .copyright{margin:20px 0 0 20px;font-family:'Source Sans Pro', sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:25px;color:#152849}@media screen and (min-width: 992px){section.footer .copyright{text-align:left;width:100%;margin-top:15px;margin-left:0}}section.footer .blue-arrow{margin-right:-12px;cursor:pointer}.footer{z-index:1;position:relative;background:#F5F7FA}.footer-nav{width:100%;list-style:none;margin-bottom:0}.footer-nav li{list-style:none;text-align:left;padding:0;margin:0 10px 0 0;text-indent:0}@media screen and (min-width: 992px){.footer-nav li{width:100%;margin-right:20px}}.footer-nav li a{font-family:'Source Sans Pro', sans-serif;font-size:14px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#111D39;line-height:40px;text-transform:none;display:block;-webkit-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:color 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99)}@media screen and (min-width: 992px){.footer-nav li a{line-height:25px;margin-bottom:10px}}.footer-nav li a:hover{color:#6933FF}.footer-nav li.header{font-family:'Poppins', sans-serif;font-size:14px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:5px}@media screen and (min-width: 992px){.footer-nav li.header{margin-bottom:15px}}.footer-nav li:before{content:"";display:none;left:auto;top:auto}.copyright{margin:20px 0 0 20px;font-family:'Source Sans Pro', sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:25px;color:#152849}@media screen and (min-width: 992px){.copyright{text-align:left;width:100%;margin-top:15px;margin-left:0}}#footer-mktoForm_1083{width:100% !important}#footer-mktoForm_1083.mkto-footer-form #Email{display:block;width:70% !important;height:calc(1.725em + 1rem + 2px);padding:0.5rem 1rem;font-size:1rem;font-weight:400;line-height:1.725;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:5px;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;border-top-right-radius:0;border-bottom-right-radius:0}#footer-mktoForm_1083.mkto-footer-form .mktoButton{border-radius:5px;display:inline-block;font-weight:400;color:#fff;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:0.5rem 1rem;font-size:1rem;line-height:1.725;background:#6933FF;height:calc(1.725em + 1rem + 2px);margin-left:-1px;border-top-left-radius:0px;border-bottom-left-radius:0px}#footer-mktoForm_1083.mkto-footer-form .mktoButton:hover{background-color:#6933FF !important;box-shadow:-4px 4px 7px -3px rgba(25,15,51,0.5)}@media screen and (min-width: 0) and (max-width: 767px){#topnav{position:fixed;top:0;background-color:#fff;width:100%;z-index:10}#topnav div{background-color:#fff}#topnav #topnav-form{border-top:1px solid #D6DBE7}}.search{position:relative}.search .fa-search{position:absolute;top:10px;left:15px;color:#6933FF;font-size:20px}.search #search-input{background-color:white;border:none;border-radius:5px;box-shadow:0 0 8px #DADADA;height:40px;width:calc(100% - 30px);outline:0px none;padding:3px 10px 0px 45px;transition:all 0.15s ease 0s;margin-bottom:10px;font-size:16px;line-height:40px}.search #search-input::-webkit-input-placeholder{color:#bcbcbc}.search #search-input:focus{border-color:#6933FF}@media (min-width: 1200px){.search #search-input{width:100%}}#sidebar li.search-wrap,.js-sidebar li.search-wrap{margin-bottom:0}@media screen and (min-width: 1200px){#sidebar li.search-wrap,.js-sidebar li.search-wrap{position:fixed;top:130px;width:235px;padding-top:50px;padding-bottom:0;background:#ffffff;z-index:2}}.search-item{margin-top:30px}.search-link{color:#999988;font-family:'Source Sans Pro', sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:25px;margin-bottom:5px}.search-snippet{font-family:'Source Sans Pro', sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:25px}.clear-search{display:none;position:absolute;top:2px;right:calc(0% + 30px);height:38px;width:35px;border-radius:50%;outline:none;cursor:pointer}@media screen and (min-width: 1200px){.clear-search{right:0}}.clear-search:before,.clear-search:after{content:'';position:absolute;height:1px;width:11px;top:50%;left:6px;margin-top:-1px;background:#152849;transform:rotate(45deg)}.clear-search:after{transform:rotate(-45deg)}.col-sidebar .form-control{height:40px}.scroll-to-top{z-index:1000;position:absolute;right:15px;bottom:auto;display:none;cursor:pointer;opacity:0;-webkit-transition:opacity 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:opacity 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:opacity 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:opacity 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99)}.scroll-to-top img{width:45px;height:45px}@media screen and (min-width: 992px){.scroll-to-top img{width:50px;height:50px}}.scroll-to-top.fixed{position:fixed;bottom:225px;top:auto}.scroll-to-top.loaded{opacity:1}.button--primary{font-family:'Poppins', sans-serif;font-size:18px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:1.725;letter-spacing:0.1px;font-weight:600;text-transform:capitalize;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);display:inline-block;border:1px solid transparent;line-height:1.725;white-space:nowrap;color:#FFFFFF;padding:18px 25px 16px;background-color:#6933FF}.button--primary:focus{color:#FFFFFF}.button--primary:hover{background-color:#FFFFFF;color:#6933FF}.btn-redirect{font-family:'Poppins', sans-serif;font-size:18px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:1.725;letter-spacing:0.1px;font-weight:600;text-transform:capitalize;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);display:inline-block;border:1px solid transparent;line-height:1.725;white-space:nowrap;white-space:break-spaces;color:#FFFFFF;background:linear-gradient(-90deg, #190F33 0%, #0037A5 48.3%, #6933FF 100%);box-shadow:none}.btn-redirect:hover{color:#fff;box-shadow:-4px 4px 7px -3px rgba(25,15,51,0.5)}.btn-redirect:focus{border:1px solid #237300;box-shadow:none;color:#FFFFFF}.btn-redirect:active:focus{border:1px solid #237300;box-shadow:none;color:#FFFFFF}.btn-outline-primary{font-family:'Poppins', sans-serif;font-size:18px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:1.725;letter-spacing:0.1px;font-weight:600;text-transform:capitalize;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);display:inline-block;border:1px solid transparent;line-height:1.725;white-space:nowrap;color:#6933FF;text-align:center;background-color:#FFFFFF;border-color:#6933FF;border-width:2px;font-family:'Poppins', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn-outline-primary:focus{border-color:#6933FF;background-color:#6933FF;box-shadow:0 0 0 3px #6933FF}.btn-outline-primary:hover{border-color:#6933FF;background-color:#6933FF;color:#fff}.btn-outline-primary:not(:disabled):not(.disabled):active{border-color:#6933FF;background-color:#6933FF}.btn-outline-primary:not(:disabled):not(.disabled):active:focus{border-color:#6933FF;background-color:#6933FF;box-shadow:0 0 0 3px #6933FF}.btn-outline-secondary{font-family:'Poppins', sans-serif;font-size:18px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:1.725;letter-spacing:0.1px;font-weight:600;text-transform:capitalize;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);display:inline-block;border:1px solid transparent;line-height:1.725;white-space:nowrap;color:#394455;text-align:center;background-color:#FFFFFF;border-color:#C0C6D9}.btn-outline-secondary:focus{border-color:#7E89A9;background-color:#F5F7FA;box-shadow:0 0 0 3px #F5F7FA}.btn-outline-secondary:hover{background-color:#F5F7FA;color:#242A35}.btn-outline-secondary:not(:disabled):not(.disabled):active{border-color:#7E89A9;background-color:#F5F7FA}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus{border-color:#7E89A9;background-color:#F5F7FA;box-shadow:0 0 0 3px #F5F7FA}.btn--sm{padding:3px 14px}.button--header{font-family:'Poppins', sans-serif;font-size:18px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:1.725;letter-spacing:0.1px;font-weight:600;text-transform:capitalize;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);display:inline-block;border:1px solid transparent;line-height:1.725;white-space:nowrap;display:none;height:30px;font-family:'Source Sans Pro', sans-serif;font-size:10px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:13px;background-color:#6933FF;border-color:#6933FF;border-width:1px;border-radius:0px;padding:8.25px 16px;color:#FFFFFF;margin-right:15px}.button--header:focus,.button--header:hover{color:#FFFFFF}@media screen and (min-width: 767px){.button--header{display:inline-block}}@media screen and (min-width: 992px){.button--header{height:40px;font-size:12px;line-height:40px;margin-left:5px;padding:0 17px}.button--header:hover{background-color:#FFFFFF;color:#6933FF;border:1px solid #6933FF}}@media (min-width: 1024px){.button--header{margin-left:10px}}.button--header--alt{background-color:#FFFFFF;color:#6933FF}.button--header--alt:focus,.button--header--alt:hover{color:#6933FF}@media screen and (min-width: 992px){.button--header--alt:hover{background-color:#6933FF;color:#FFFFFF}}.blue-arrow{display:inline-block;border:solid #152849;padding:4px;margin-left:4px;transition:transform 0.2s ease, margin-bottom 0.2s ease;transform:rotate(45deg);-webkit-transform:rotate(45deg);float:right;cursor:pointer}@media screen and (min-width: 992px){.blue-arrow{display:none}}.blue-arrow--up{border-width:2px 0 0 2px;margin-top:3px}.blue-arrow--down{border-width:0 2px 2px 0;margin-bottom:3px}.arrow-down{display:inline-block;border:solid #152849;border-width:0 2px 2px 0;padding:2px;margin-left:4px;margin-bottom:2px;transition:transform 0.2s ease, margin-bottom 0.2s ease;transform:rotate(45deg);-webkit-transform:rotate(45deg);cursor:pointer}.arrow-down--pre{transform:rotate(-45deg);-webkit-transform:rotate(-45deg);margin-left:0;border-width:0 1px 1px 0;margin:0 3px}.arrow-up{display:inline-block;border:solid #152849;border-width:2px 0 0 2px;padding:2px;margin-left:4px;margin-bottom:0;transition:transform 0.2s ease, margin-bottom 0.2s ease;transform:rotate(45deg);-webkit-transform:rotate(45deg);cursor:pointer}.arrow-up--pre{transform:rotate(-45deg);-webkit-transform:rotate(-45deg);margin-left:0;border-width:0 1px 1px 0;margin:0 3px}.contribute .btn-contribute{font-family:'Poppins', sans-serif;font-size:18px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:1.725;letter-spacing:0.1px;font-weight:600;text-transform:capitalize;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-moz-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);-o-transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);transition:all 0.2s cubic-bezier(0.16, 0.68, 0.43, 0.99);display:inline-block;border:1px solid transparent;line-height:1.725;white-space:nowrap;font-size:14px;font-weight:600;font-style:normal;border:1px solid #D6DBE7;box-sizing:border-box;background:#F5F7FA;color:#242A35;line-height:24px;letter-spacing:0.1px;align-items:center;width:134px;height:32px;margin-top:9px;margin-right:55px;text-align:center}.contribute .btn-contribute:focus{outline:0;box-shadow:0 0 0 3px #E7ECF3;border:1px solid #7E89A9;border-radius:3px}@media screen and (min-width: 571px){.contribute .btn-contribute{margin-left:3px}}.contribute .btn-contribute:after{display:none}.contribute .dropdown-menu{border:none;box-shadow:0 5px 10px 0 rgba(0,0,0,0.1),0 10px 20px 0 rgba(0,0,0,0.1)}@media screen and (min-width: 571px){.contribute .dropdown-menu{left:1px}}.contribute .dropdown-menu>li>a{font-family:'Source Sans Pro', sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:25px;font-size:14px;line-height:22px;color:#394455;margin:7px 0 7px}.contribute .dropdown-menu>li>a:focus{text-decoration:none;background-color:transparent;color:#394455}.contribute .dropdown-menu>li>a:hover{text-decoration:none;background-color:transparent;color:#394455}.btn-outline-purple{border:2px solid #6933FF;background-color:white;color:#6933FF}.btn-outline-purple:hover{color:#6933FF}.version-tag{display:inline-block;position:relative;color:#24CAFF;font-family:'Source Sans Pro', sans-serif;font-size:13px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:20px;margin-left:5px}.version-tag:before{margin-right:5px;background-size:16px;width:16px;height:16px;display:inline-block;content:''}p .version-tag,.clickable-header .version-tag{font-family:'Source Sans Pro', sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:30px}.algolia-docsearch-suggestion--highlight{font-weight:bold}.post-content .search-by-algolia{float:right;height:16px;margin-top:45px;margin-right:5px}#version-switcher{border:1px solid #C0C6D9;border-radius:5px;z-index:2;display:inline-block;position:relative;height:32px}#version-switcher:hover{background-color:#F5F7FA}#version-switcher:active{background-color:#F5F7FA;border:1px solid #7E89A9}#version-switcher.open{background-color:#F5F7FA;box-shadow:0px 0px 0px 4px #F5F7FA}#version-switcher .tier-1{margin:0}#version-switcher .tier-1 a{line-height:32px !important;margin:0;padding:0 25px 0 10px;font-family:'Poppins', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#00294D}#version-switcher .tier-1 a:hover{text-decoration:none}#version-switcher .tier-1 a .version-name{font-family:'Poppins', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;color:#6933FF;text-transform:none;letter-spacing:normal}#version-switcher .tier-1 a .arrow{right:10px;top:14px;position:absolute}#version-switcher .nav li ul{margin:3px 0 0 0;box-shadow:0px 8px 8px rgba(67,90,111,0.231);background:#FFFFFF;border-radius:5px;padding:0;list-style:none}#version-switcher .tier-2{margin:0}#version-switcher .tier-2 a{font-family:'Source Sans Pro', sans-serif;font-size:14px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-transform:none;letter-spacing:normal;border-bottom:none;padding:0px 16px;height:32px}#version-switcher .tier-2 a:hover{color:#fff;background-color:#6933FF;text-decoration:none}#version-switcher .tier-2.active a{font-family:'Source Sans Pro', sans-serif;font-size:14px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;background-color:#F5F7FA}#version-switcher .tier-2.active a:hover{background-color:#6933FF}#version-switcher .tier-2 .version-text--page-dne{color:#152849;font-style:italic;font-size:12px}#version-switcher .tier-2 .version--page-dne:hover{color:#333}#version-switcher .tier-2 .version--mobile{display:block}@media screen and (min-width: 1200px){#version-switcher .tier-2 .version--mobile{display:none}}#version-switcher .tier-2 .version--desktop{display:none}@media screen and (min-width: 1200px){#version-switcher .tier-2 .version--desktop{display:block}}.navbar-footer{height:auto}.navbar-footer .nav-item{padding:0}.badge-new{background:rgba(180,241,170,0.6);border-radius:50px;color:#237300;font-family:'Source Sans Pro', sans-serif;font-size:12px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:normal;padding:4px 10px;margin-left:5px}.main-nav-contained-800 *{font-family:"Poppins",sans-serif}.main-nav-contained-800 .dropdown-menu{max-width:885px;left:0;right:0;margin:auto}.main-nav-contained-800 .dropdown-menu.docs,.main-nav-contained-800 .dropdown-menu.company{max-width:605px}.main-nav-contained-800 .btn-pill-mmkting{line-height:1.333}.main-nav-contained-800 li{margin-bottom:0}.megamenu-main{z-index:1;font-family:"Poppins",sans-serif;text-align:center}.megamenu-main .column-large-icon-box{height:80px}.nav-bg-img{position:absolute;top:0;left:0}.navbar-light .navbar-nav{font-family:"Poppins",sans-serif}.navbar-light .navbar-nav .nav-item{margin-bottom:0}.navbar-light .navbar-nav .nav-item.active .nav-link{color:#6933FF}.navbar-light .navbar-nav .nav-link{padding-top:8px;padding-bottom:8px;line-height:1.333;text-align:center}.navbar-light .navbar-nav .nav-link:focus{color:#000;font-weight:normal;outline:none}.navbar-light .navbar-nav .nav-link:hover{color:#6933FF}.navbar-light .navbar-nav .nav-link.text-small{color:#6e6e6e;padding:0;line-height:19.9px}.navbar-light .navbar-nav .show .dropdown-toggle{color:#6933FF}.megamenu{position:static}.megamenu.show .dropdown-toggle:before{background-size:11px 15px;background-repeat:no-repeat;width:15px;height:11px;bottom:0;left:50%}.megamenu .dropdown-toggle:before{position:absolute;content:"";width:15px;height:11px;bottom:0;left:50%;background-size:11px 15px;background-repeat:no-repeat}.megamenu .dropdown-toggle:after{display:none}.megamenu .callout-title{font-size:19px}.megamenu .column-title{font-size:14px}.megamenu .item-title{font-size:14px}.megamenu .dropdown-menu{background:none;border:none;width:100%}.main-nav-wrapper{z-index:9999;background-color:white}.main-nav h3{font-size:24px;line-height:30px;font-weight:600}.main-nav h6{font-size:24px;font-weight:600;line-height:28px;margin:0 0 8px 0}.main-nav .small{font-size:15px;line-height:19.9px;font-family:"Poppins",sans-serif}.main-nav .link-black{color:#000}.main-nav p{margin-bottom:0;margin-top:0}.main-nav a:hover{text-decoration:none;color:#6933FF}.main-nav .list-unstyled{padding-left:0;list-style:none}.main-nav .btn-close{box-sizing:content-box;width:1em;height:1em;padding:0.25em;color:#000;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3E%3C/svg%3E") no-repeat 50%/1em auto;background-clip:content-box;border:0;border-radius:5px;opacity:0.5}.main-nav .btn-outline-primary:hover{color:#fff}.main-nav .btn-link{color:#6933FF}.main-nav .btn-link:hover{color:#6933FF;text-decoration:none}@media (max-width: 991px){.main-nav .navbar-collapse{position:fixed;top:54px;width:100%;left:0;height:80%;overflow:scroll}}.main-nav .navbar-collapse h2{font-size:25.88px;font-weight:400;height:42px;line-height:31.056px;margin:0;font-family:"Poppins",sans-serif}.main-nav .navbar-collapse .card .card-header{padding:8px 16px}.main-nav .navbar-toggler{border:none}.main-nav .navbar .nav-icon-md{display:none}@media (min-width: 992px) and (max-width: 1080px){.main-nav .navbar .nav-text-md{display:none}.main-nav .navbar .nav-link.nav-icon-md{display:block;padding-left:6px;padding-right:6px}.main-nav .navbar .nav-link.nav-icon-md circle{fill:#ffffff}}@media (min-width: 992px){.main-nav .navbar{padding-top:29px;padding-bottom:29px;padding-left:0;padding-right:0}.main-nav .navbar .btn-nav-cta{line-height:1.33;font-size:15px;font-weight:500}}.main-nav .navbar .btn-close{right:10px;top:10px;background-size:12px 12px}.main-nav .navbar .small9{font-size:9px}.main-nav .navbar .small10{font-size:10px;font-weight:500;line-height:13.33px;font-weight:600}.main-nav .navbar .font-weight-semi-bold{font-weight:600}.main-nav .navbar .font-weight-medium{font-weight:500}.main-nav .navbar .navbar-brand{margin-bottom:7px;padding:0;margin-bottom:3px;margin-top:0 !important}.main-nav .navbar .nav-link{position:relative}@media (min-width: 992px){.main-nav .navbar .nav-link{padding-left:17px;padding-right:17px}}.main-nav .navbar .dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;background-repeat:no-repeat;padding:20px;margin-top:none;box-shadow:inset 0 0.125rem 0.25rem rgba(0,0,0,0.075);border-top:none;margin-top:0}.main-nav .navbar .dropdown-menu .btn{border-width:2px;padding:0.75rem 0.45rem;font-size:0.9rem}.main-nav .navbar .dropdown-toggle:before{position:absolute;content:"";width:15px;height:11px;bottom:0;left:50%;background-size:11px 15px;background-repeat:no-repeat}.main-nav .navbar .dropdown-toggle:after{display:none}.main-nav .navbar .card-header .btn-link-chevron-right:after{content:"";flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transform:rotate(-90deg)}.main-nav .navbar .card-header button[aria-expanded="true"]:after{content:"";flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transform:rotate(180deg)}.main-nav .navbar .card-header button[aria-expanded="false"]:after{content:"";flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform 0.2s ease-in-out}.bg-cover{background-size:cover;background-repeat:no-repeat;background-position:center center}.bg-cover__bg-3-1{background-image:url("https://web.archive.org/web/20221201132227im_/https://cockroach-labs-docs.imgix.net/bg-3-1.png?auto=format,compress&w=1200&q=40")}.bg-cover__bg-early-3-1{background-image:url("https://web.archive.org/web/20221201132227im_/https://cockroach-labs-docs.imgix.net/bg-early-3-1.png?auto=format,compress&w=1200&q=40")}.bg-cover__bg-gradient-purple-blue{background:linear-gradient(90deg, #0037A5 0%, #6933FF 50.38%, #00FCED 100%)}.font-size-16{font-size:16px}.font-weight-medium{font-weight:500}.text-xs{font-size:13px}.semibold{font-weight:600}.font-poppins-sb{font-family:'Poppins', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold}.font-family-poppins{font-family:'Poppins', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.overline{font-family:'Poppins', sans-serif;font-size:18px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;margin-bottom:0}.text-inherit{text-transform:inherit}.lh-n{line-height:normal}html{height:100%}body{height:100%;color:#242A35}strong{font-family:'Source Sans Pro', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;font-weight:700}p{font-family:'Source Sans Pro', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:22.6px}@media screen and (min-width: 992px){p{margin-bottom:12px}}h1,h2{margin-top:30px;margin-bottom:20px}h3,h4,h5,h6{margin-top:40px;margin-bottom:20px}@media screen and (min-width: 767px){h3,h4,h5,h6{margin-top:40px}}h1{font-family:'Poppins', sans-serif;font-size:26px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:35px}@media screen and (min-width: 992px){h1{font-family:'Poppins', sans-serif;font-size:50px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:85px}}h2{font-family:'Poppins', sans-serif;font-size:36px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:40px}h2.clickable-header{cursor:pointer}h2 code{font-size:26px}h3{font-family:'Poppins', sans-serif;font-size:20px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:32px}h3.clickable-header{cursor:pointer}h3 strong,h3 b{font-family:'Poppins', sans-serif;font-size:24px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold}h3 code{font-size:20px}h4,.h4{font-family:'Poppins', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;font-weight:bold;line-height:26px}h4 code,.h4 code{font-size:18px}h5,.h5{font-family:'Poppins', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:24px}h5 code,.h5 code{font-size:16px}h6,.h6{font-family:'Poppins', sans-serif;font-size:24px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:28px}.sub-heading{font-size:20px;line-height:30px}pre.prettyprint{margin-bottom:20px}.pre-scrollable{max-height:340px;overflow-y:scroll}pre{overflow:auto;display:block;padding:20px;margin:0 0 15px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;white-space:pre-wrap}pre code{background-color:#242A35;color:#F5F7FA;padding:0;font-size:inherit;white-space:pre;word-wrap:normal;border:0}code{font-family:'Source Code Pro', monospace, Arial, Helvetica, sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:24px;border-radius:3px;padding:2px 2px;background-color:#F5F7FA;color:#475872}@media screen and (min-width: 0) and (max-width: 767px){code{word-break:break-word}}pre,code{font-family:'Source Code Pro', monospace, Arial, Helvetica, sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:24px;border-radius:3px;padding:2px 2px;font-size:14px;line-height:25px;hyphens:none}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{background:none}ul,ol{font-family:'Source Sans Pro', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:22.6px;padding-left:25px}ul li,ol li{margin-bottom:10px}a.external:after{display:inline-block;content:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images//external.svg);padding-left:4px}a code{color:#05f}a code:hover{text-decoration:underline;color:#05f}.breadcrumb>.active{color:#777 !important}h1:target:before,h2:target:before,h3:target:before,h4:target:before,h5:target:before,h6:target:before,td a:target:before,p a[name]:target:before{content:'';display:block;height:155px;margin-top:-155px}.post-content img{margin:12px 0px 3px 0px}@media screen and (min-width: 992px){.post-content ul,.post-content ol{margin-bottom:20px}}.post-content h1{font-family:'Poppins', sans-serif;font-size:36px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:48px}.post-content h2{font-family:'Poppins', sans-serif;font-size:26px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:32px}.post-content h3{font-family:'Poppins', sans-serif;font-size:20px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:26px}.post-content h4{font-family:'Poppins', sans-serif;font-size:18px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:22.6px}.post-content h5{font-family:'Poppins', sans-serif;font-size:16px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:22.6px}.post-summary{margin-bottom:12px}.bs-example{margin:20px}.breadcrumb li{color:gray}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}thead,tbody,tfoot,tr,td,th{font-family:'Source Sans Pro', sans-serif;font-size:14px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;border-color:#D6DBE7;border-style:solid;border-width:0}th,td{padding:.25rem .5rem}tbody tr.eol{background-color:#fffaea !important}.table-bordered>:not(caption)>*,table>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*,table>:not(caption)>*>*{border-width:0 1px}table{border-color:inherit;border-style:solid;border-width:1px;width:100%;border-color:#D6DBE7}table>tbody{vertical-align:inherit}table>thead{vertical-align:bottom}th{font-weight:600}table col[class*="col-"]{position:static;display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{position:static;display:table-cell;float:none}table tr td{hyphens:auto}.filter-options{margin-bottom:20px}.filter-options button{margin:3px}.post-content a.fa-rss{color:orange}.navbar-inverse .navbar-nav>li>a{background-color:transparent;margin-top:10px}.post-content .rssfeedLink{color:#248EC2}dl dt p{margin-left:20px}dl dd{margin-top:10px;margin-bottom:10px}dl.dl-horizontal dd{padding-top:20px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{border-radius:5px}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{border-radius:5px}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#444}}img.screenshotSmall{max-width:300px}figcaption{padding-bottom:12px;padding-top:6px;max-width:90%;margin-bottom:20px}table.dataTable thead{background-color:#444}table td{hyphens:auto}section table tr.success{background-color:#dff0d8 !important}table tr.info{background-color:#d9edf7 !important}section table tr.warning,table tr.testing,table tr.testing>td.sorting_1{background-color:#fcf8e3 !important}section table tr.danger,table tr.preference,table tr.preference>td.sorting_1{background-color:#f2dede !important}.orange{color:orange}table.profile thead tr th{background-color:#248ec2}table.request thead tr th{background-color:#ED1951}.audienceLabel{margin:10px;float:right;border:1px solid #dedede;padding:7px}.prefaceAudienceLabel{color:gray;text-align:center;margin:5px}span.myLabel{padding-left:10px;padding-right:10px}button.cursorNorm{cursor:default}hr.faded{border:0;height:1px;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0));background-image:-moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0));background-image:-ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0));background-image:-o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0))}hr.shaded{height:12px;border:0;box-shadow:inset 0 6px 6px -6px rgba(0,0,0,0.5);margin-top:70px;background:white;width:100%;margin-bottom:10px}i.border{padding:10px 20px;background-color:whitesmoke;border:1px solid #777;text-align:center;margin-left:auto;margin-right:auto;width:100%}a[data-toggle]{color:#248EC2}.alert,.callout{overflow:hidden}ol li ol li{list-style-type:lower-alpha}li img{clear:both}.tab-content{padding:15px;background-color:#FAFAFA}.alert-warning{color:#444}div.alert code{background-color:transparent !important;text-transform:none}.alert a{text-decoration:underline}div.tags{padding:10px 5px}.tabLabel{font-weight:normal}hr{border:0;border-bottom:1px solid #ccc;background:#999;margin:30px 0px;width:90%;margin-left:auto;margin-right:auto}button.cursorNorm{cursor:pointer}span.otherProgrammingLanguages{font-style:normal}.seriesNext,.seriesContext{margin-top:15px;margin-bottom:15px}.seriescontext ol li{list-style-type:upper-roman}ol.series li{list-style-type:decimal;margin-left:40px;padding-left:0px}#sidebar .nav ul,.js-sidebar .nav ul{background-color:#FAFAFA}.nav ul.series li{list-style:decimal;font-size:12px}.nav ul.series li a:hover{background-color:transparent}.nav ul.series{padding-left:30px}.nav ul.series{background-color:#FAFAFA}span.muted{color:#C0C0C0}.highlight .err{color:#a61717;background-color:transparent !important}table p{margin-top:12px;margin-bottom:12px}pre,table code{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}#json-box-container pre{margin:0px}dd{margin-left:20px}.post-content img.inline{margin:0px;margin-bottom:6px}.horizontal-scroll{overflow-x:auto}.note code,.alert code,.warning code,div#toc code{color:inherit;padding:0px}.alert{margin-bottom:10px}a.accordion-toggle{font-style:normal}.post-header{display:flex;flex-wrap:wrap;justify-content:space-between}.post-header h1{font-family:'Poppins', sans-serif;font-size:36px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;line-height:40px}.post-title-main{margin-top:0;margin-bottom:0}.cockroachdb-training{width:100%;max-width:800px}.landing-column-title{font-family:'Source Sans Pro', sans-serif;font-size:15px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:1.2px;padding-top:15px;padding-bottom:10px}.landing-column-content p{line-height:25px}.row.display-flex{display:flex;flex-wrap:wrap}.row.display-flex>[class*='col-']{display:flex;flex-direction:column}#search-hits mark{background:none;font-weight:bold}#search-stats{margin-top:-10px}#search-pages .ais-Pagination{margin:45px 0}#search-pages .ais-Pagination-list{padding:0}#search-pages .ais-Pagination-item{display:inline}#search-pages .ais-Pagination-item.ais-Pagination-item--previousPage a,#search-pages .ais-Pagination-item.ais-Pagination-item--nextPage a{color:#192847;font-size:15px}#search-pages .ais-Pagination-item a{font-size:16px;line-height:46px;text-align:center;letter-spacing:-0.0941177px;color:#192847;padding:4px}#search-pages .ais-Pagination-item.ais-Pagination-item--selected a{color:#497EDA;font-weight:900}.caption-sm{font-family:'Source Sans Pro', sans-serif;font-size:12px;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:600;line-height:20px}.bg-white-transparent{background:rgba(255,255,255,0.16)}.bg-purple-transparent{background:rgba(206,192,242,0.16)}.close-card{right:30px;top:30px;z-index:1}@media (min-width: 992px){.close-card{right:15px;top:15px}}.text-purple-300{color:#542ABD}.lh-n{line-height:normal}.page-not-found{width:60%;margin:0 auto;padding:50px;text-align:center}#page-not-found-heading{color:#212B36;font-size:20px;letter-spacing:-0.01em;line-height:32px}#page-not-found-body{color:#637282;font-size:14px;letter-spacing:0.1px;line-height:22px}.contribute li{padding:0 10px}@media screen and (min-width: 992px){.border-md-left{border-left:1px solid #C0C6D9}}@media screen and (min-width: 992px){.border-md-bottom{border-bottom:1px solid #C0C6D9}}::marker{color:#242A35}a.btn-primary:hover{color:#fff}.col-sidebar .form-control{background-image:url("https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-mag-glass.svg")}.main-nav .navbar .dropdown-menu{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/nav-bg.svg)}.main-nav .navbar .dropdown-toggle:before{background-image:url("https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-chevron-down.svg")}.main-nav .navbar.show .dropdown-toggle:before{background-image:url("https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-chevron-up.svg")}.col-sidebar .form-control{background-image:url("https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-mag-glass.svg")}#sidebar .burger,.js-sidebar .burger{content:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/hamburger.svg)}#sidebar ul li .nav-expand,.js-sidebar ul li .nav-expand{content:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/arrow-down.svg)}.landing-page__tutorial--tile.install .landing-page__tutorial--tile-icon{content:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/cl-download.svg)}.landing-page__tutorial--tile.start-cluster .landing-page__tutorial--tile-icon{content:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/cl-flag-finish.svg)}.landing-page__tutorial--tile.build-app .landing-page__tutorial--tile-icon{content:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/cl-settings.svg)}.version-tag:before{margin-right:5px;background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-megaphone.png);background-repeat:no-repeat;background-position:center center}#version-switcher .tier-1 a .arrow{content:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/caret-filled-down-blue.svg)}.megamenu.show .dropdown-toggle:before{background-image:url("https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-chevron-up.svg")}.megamenu .dropdown-toggle:before{background-image:url("https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images//icon-chevron-down.svg")}@media (min-width: 700px){#os-tabs button#mac:before{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-apple.png)}#os-tabs button#mac-intel:before{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-apple.png)}#os-tabs button#mac-arm:before{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-apple.png)}#os-tabs button#linux:before{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-linux.png)}#os-tabs button#linux-intel:before{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-linux.png)}#os-tabs button#linux-arm:before{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-linux.png)}#os-tabs button#windows:before{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-windows.png)}#os-tabs button#source:before{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-zipfile.png)}#os-tabs button#docker:before{background-image:url(https://web.archive.org/web/20221201132227im_/https://www.cockroachlabs.com/docs/images/icon-docker.png)}} </style> <link rel="preload" href="/web/20221201132227/https://www.cockroachlabs.com/docs/css/customstyles.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="/web/20221201132227cs_/https://www.cockroachlabs.com/docs/css/customstyles.css"></noscript> <script> var pageConfig = { tocNotNested: false }; </script> <script> function whenAvailable(name, callback, isJqueryFn = false) { var interval = 500; // ms var evaluation = isJqueryFn ? $()[name] : window[name]; window.setTimeout(function() { if (evaluation) { callback(); } else { whenAvailable(name, callback, isJqueryFn); } }, interval); } </script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/jquery.min.js"></script><script> !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e<analytics.methods.length;e++){var key=analytics.methods[e];analytics[key]=analytics.factory(key)}analytics.load=function(key,e){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.src="https://web.archive.org/web/20221201132227/https://cdn.segment.com/analytics.js/v1/" + key + "/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);analytics._loadOptions=e};analytics._writeKey="Mz68FzJ2r4poMQ4bQTniyvZF9yF0ycET";;analytics.SNIPPET_VERSION="4.15.3"; analytics.load("Mz68FzJ2r4poMQ4bQTniyvZF9yF0ycET", { user: { cookie: { key: "crl_brand_ajs_user_id", oldKey: "crl_brand_ajs_user", }, localStorage: { key: "crl_brand_ajs_user_traits", }, }, group: { cookie: { key: "crl_brand_ajs_group_id", }, localStorage: { key: "crl_brand_ajs_group_properties", } } }); analytics.page(); }}(); </script> <link rel="preconnect dns-prefetch" href="//go.cockroachlabs.com"/> <link rel="preconnect dns-prefetch" href="//cockroach-labs-docs.imgix.net"/> <link rel="preload" href="//web.archive.org/web/20221201132227/https://go.cockroachlabs.com/js/forms2/js/forms2.min.js" as="script"/> <link rel="preconnect" href="https://web.archive.org/web/20221201132227/https://fonts.googleapis.com/"> <link rel="preconnect" href="https://web.archive.org/web/20221201132227/https://fonts.gstatic.com/" crossorigin> <link href="https://web.archive.org/web/20221201132227cs_/https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&amp;family=Source+Code+Pro&amp;family=Source+Sans+Pro:wght@300;400;600;700" rel="stylesheet"> <noscript><link rel="stylesheet" href="https://web.archive.org/web/20221201132227cs_/https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&amp;family=Source+Code+Pro&amp;family=Source+Sans+Pro:wght@300;400;600;700"></noscript> <link rel="preconnect dns-prefetch" href="https://app.convertflow.co/"> <link rel="preconnect dns-prefetch" href="https://js.convertflow.co/" data-proofer-ignore> <link rel="preload" as="image" href="https://web.archive.org/web/20221201132227/https://cockroach-labs-docs.imgix.net/bg-3-1.png?auto=format,compress&amp;w=1200&amp;q=40"/> <link rel="preload" as="image" href="https://web.archive.org/web/20221201132227/https://cockroach-labs-docs.imgix.net/bg-early-3-1.png?auto=format,compress&amp;w=1200&amp;q=40"/> </head> <body> <div class="shadow-sm main-nav-wrapper position-fixed w-100" data-nosnippet> <div class="container-xl main-nav main-nav-contained-800 "> <nav class="navbar navbar-expand-lg navbar-light"> <a class="navbar-brand mr-0 mr-md-2 d-xl-block mt-auto" href="/web/20221201132227/https://www.cockroachlabs.com/docs/"><img width="170" height="24" alt="Cockroach Labs" class="br0 db mb0" src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/1c17b3053b29646cdddc53965186a02179b59842/69991/docs/images/cockroachlabs-logo-170.png"></a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <!-- Mobile nav --> <div class="d-lg-none pt-2"> <div class="accordion " id="accordionExample"> <!-- Mobile product --> <div class="card"> <div class="card-header bg-white" id="mobileProduct"> <h2 class="mb-0"> <button class="btn btn-link btn-block text-left d-flex justify-content-between align-items-center" type="button" data-toggle="collapse" data-target="#collapseProduct" aria-expanded="false" aria-controls="mobileProduct"> Product </button> </h2> </div> <div id="collapseProduct" class="collapse" aria-labelledby="mobileProduct" data-parent="#accordionExample"> <div class="card-body bg-gray-f4"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-4"> <div> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/"><img width="209px" class="py-3" src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/0f5701202f747df53d152cbf490b961d8a462231/2b7dc/docs/images/menu-product.png" alt="Product"></a> <p class="mb-4 mt-0 text-primary font-weight-medium font-size-16 lh-n"> A distributed SQL datatabase<br> designed for speed, scale,<br>and survival </p> <div class="pb-45"> <a class="btn btn-primary rounded-pill px-4 py-2 text-white btn-pill-mmkting" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product">Our Product</a> <a class="btn btn-outline-purple text-primary rounded-pill px-4 py-2 ml-3 btn-pill-mmkting" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/pricing">Pricing</a> </div> <a class="pb-2 pb-md-0 d-block text-primary semibold text-xs " href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/get-started">Compare deployment options <svg width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.7197 0.564462L10.7117 4.55642C10.9566 4.80139 10.9566 5.19856 10.7117 5.44352L6.7197 9.43548C6.47474 9.68045 6.07757 9.68045 5.8326 9.43548C5.58763 9.19052 5.58763 8.79335 5.8326 8.54838L8.75373 5.62725H1.52266C1.17623 5.62725 0.895386 5.34641 0.895386 4.99997C0.895386 4.65354 1.17623 4.3727 1.52266 4.3727H8.75373L5.8326 1.45156C5.58763 1.2066 5.58763 0.809429 5.8326 0.564462C6.07757 0.319496 6.47474 0.319496 6.7197 0.564462Z" fill="#6933FF"/> </svg> </a> </div> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3">Capabilities</p> <ul class="mb-0 mb-md-3 list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/scale/">Elastic Scale <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/resilience/">Built-in Survivability <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-4"> <p class="d-none d-md-block font-size-16 lh-n semibold my-3">&nbsp;</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/geo-partitioning/">Global Data <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/sql/">Familiar, Consistent SQL <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> </div> </div> </div> </div> <!-- Mobile solutions --> <div class="card"> <div class="card-header bg-white" id="mobileSolutions"> <h2 class="mb-0"> <button class="btn btn-link btn-block text-left d-flex justify-content-between align-items-center" type="button" data-toggle="collapse" data-target="#collapseSolutions" aria-expanded="false" aria-controls="mobileSolutions"> Solutions </button> </h2> </div> <div id="collapseSolutions" class="collapse" aria-labelledby="mobileSolutions" data-parent="#accordionExample"> <div class="card-body bg-gray-f4"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3 text-primary">By Industries</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/solutions/verticals/financialservices/">Finance <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/solutions/verticals/gambling/">Gambling <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/solutions/verticals/gaming/">Gaming <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/manufacturing-logistics">Manufacturing &amp; Logistics <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/solutions/verticals/retail-ecommerce/">Retail &amp; eCommerce <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/startups">Startups <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3 text-primary">By Use Case</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/cloud-native-kubernetes">Cloud-Native &amp; Kubernetes <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/scale-resilience">Scale &amp; Resilience <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/privacy-compliance">Data Privacy &amp; Security <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/distributed-apps">Distributed Apps <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3">Customer Stories</p> <div> <p class="mb-4 mt-0 font-size-16 lh-n"> See how our customers use CockroachDB to handle their critical workloads. </p> <div class="pb-45"> <a class="btn btn-black rounded-pill px-4 py-2" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/customers/">Read case studies</a> </div> </div> </div> </div> </div> </div> </div> <!-- Mobile Resources --> <div class="card"> <div class="card-header bg-white" id="mobileResources"> <h2 class="mb-0"> <button class="btn btn-link btn-block text-left d-flex justify-content-between align-items-center" type="button" data-toggle="collapse" data-target="#collapseResources" aria-expanded="false" aria-controls="mobileResources"> Resources </button> </h2> </div> <div id="collapseResources" class="collapse" aria-labelledby="mobileResources" data-parent="#accordionExample"> <div class="card-body bg-gray-f4"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-4"> <div> <div class="mb-4 mt-3 text-primary font-weight-medium font-size-16 lh-n"> <h3 class="text-primary">Cockroach <br>University</h3>World-class training and tutorials for beginners and advanced use cases. </div> <div class="pb-45"> <a class="btn btn-primary rounded-pill px-4 py-2" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/cockroach-university">Sign up for free</a> </div> </div> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3">Learn</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/guides">Guides &amp; Tech Briefs <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/blog/">Blog <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/developers/">Developers <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/community/tech-talks/">Tech Talks <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3">Support</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://github.com/cockroachdb/cockroach">GitHub <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/join-community/">Slack <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://support.cockroachlabs.com/hc/en-us?__hstc=181257784.2bc4222d759d3d555572287e7b610f03.1579111962927.1604502276741.1604544514798.361&amp;__hssc=181257784.63.1604544514798&amp;__hsfp=407609322">Support Portal <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> </div> </div> </div> </div> <!-- Mobile Docs --> <div class="card"> <div class="card-header bg-white" id="mobileDocs"> <h2 class="mb-0"> <button class="btn btn-link btn-block text-left d-flex justify-content-between align-items-center" type="button" data-toggle="collapse" data-target="#collapseDocs" aria-expanded="false" aria-controls="mobileDocs"> Docs </button> </h2> </div> <div id="collapseDocs" class="collapse" aria-labelledby="mobileDocs" data-parent="#accordionExample"> <div class="card-body bg-gray-f4"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-6"> <div> <div class="mb-4 mt-3 text-primary font-weight-medium font-size-16 lh-n"> <h3 class="text-primary">Docs Hub<br></h3> Access tutorials, guides, example applications, and much more. </div> <div class="pb-md-45"> <a class="btn btn-primary rounded-pill px-4 py-2" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/">Explore</a> </div> </div> </div> <div class="col-md-6"> <p class="font-size-16 lh-n semibold mb-1 mt-0">&nbsp;</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/cockroachcloud/quickstart">Quickstart <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/stable/frequently-asked-questions.html">FAQ <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/stable/example-apps.html">Example applications <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/stable/architecture/overview.html">Architecture Overview <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> </div> </div> </div> </div> <!-- Mobile Company --> <div class="card"> <div class="card-header bg-white" id="mobileCompany"> <h2 class="mb-0"> <button class="btn btn-link btn-block text-left d-flex justify-content-between align-items-center" type="button" data-toggle="collapse" data-target="#collapseCompany" aria-expanded="false" aria-controls="mobileCompany"> Company </button> </h2> </div> <div id="collapseCompany" class="collapse" aria-labelledby="mobileCompany" data-parent="#accordionExample"> <div class="card-body bg-gray-f4"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-5"> <p class="font-size-16 lh-n semibold my-3 text-primary">About us</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/blog/culture/">Company News &amp; Culture <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/about/">Our Story <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/partners/">Partners <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/careers/">Work at Cockroach Labs <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-6 offset-md-1"> <p class="font-size-16 lh-n semibold my-3">Customer Stories</p> <div> <p class="mb-4 mt-0 text-small lh-n"> CockroachDB is trusted by innovators around the world, big and small. Take a look at how they use CockroachDB to build future-proofed applications. </p> <div class="pb-45"> <a class="btn btn-black rounded-pill px-4 py-2" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/customers/">Read case studies</a> </div> </div> </div> </div> </div> </div> </div> <!-- blog --> <div class="card"> <div class="card-header bg-white" id="mobileBlog"> <h2 class="mb-0"> <a class="btn btn-link btn-block text-left btn-link-chevron-right d-flex justify-content-between align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/featured-blog/">Blog</a> </h2> </div> </div> <div class="card"> <div class="card-header bg-white" id=""> <h2 class="mb-0"> <a class="btn btn-link btn-block text-left btn-link-chevron-right d-flex justify-content-between align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/contact/">Contact Us</a> </h2> </div> </div> <div class="card"> <div class="card-header bg-white" id=""> <h2 class="mb-0"> <a class="btn btn-link btn-block text-left" href="https://web.archive.org/web/20221201132227/https://cockroachlabs.cloud/">Sign In</a> </h2> </div> </div> </div> </div> <!-- end mobile nav --> <!-- Desktop nav --> <ul class="d-none d-lg-flex navbar-nav mr-auto mb-2 mb-lg-0 mt-auto"> <li class="nav-item dropdown position-static"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Product</a> <div class="dropdown-menu w-100 p-45" aria-labelledby="navbarDropdown"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-4"> <div> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/"><img width="209px" class="py-3" src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/0f5701202f747df53d152cbf490b961d8a462231/2b7dc/docs/images/menu-product.png" alt="Product"></a> <p class="mb-4 mt-0 text-primary font-weight-medium font-size-16 lh-n"> A distributed SQL datatabase<br> designed for speed, scale,<br>and survival </p> <div class="pb-45"> <a class="btn btn-primary rounded-pill px-4 py-2 text-white btn-pill-mmkting" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product">Our Product</a> <a class="btn btn-outline-purple text-primary rounded-pill px-4 py-2 ml-3 btn-pill-mmkting" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/pricing">Pricing</a> </div> <a class="pb-2 pb-md-0 d-block text-primary semibold text-xs " href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/get-started">Compare deployment options <svg width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.7197 0.564462L10.7117 4.55642C10.9566 4.80139 10.9566 5.19856 10.7117 5.44352L6.7197 9.43548C6.47474 9.68045 6.07757 9.68045 5.8326 9.43548C5.58763 9.19052 5.58763 8.79335 5.8326 8.54838L8.75373 5.62725H1.52266C1.17623 5.62725 0.895386 5.34641 0.895386 4.99997C0.895386 4.65354 1.17623 4.3727 1.52266 4.3727H8.75373L5.8326 1.45156C5.58763 1.2066 5.58763 0.809429 5.8326 0.564462C6.07757 0.319496 6.47474 0.319496 6.7197 0.564462Z" fill="#6933FF"/> </svg> </a> </div> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3">Capabilities</p> <ul class="mb-0 mb-md-3 list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/scale/">Elastic Scale <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/resilience/">Built-in Survivability <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-4"> <p class="d-none d-md-block font-size-16 lh-n semibold my-3">&nbsp;</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/geo-partitioning/">Global Data <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/sql/">Familiar, Consistent SQL <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> </div> </div> </li> <li class="nav-item dropdown position-static"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Solutions</a> <div class="dropdown-menu w-100 p-45" aria-labelledby="navbarDropdown"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3 text-primary">By Industries</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/solutions/verticals/financialservices/">Finance <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/solutions/verticals/gambling/">Gambling <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/solutions/verticals/gaming/">Gaming <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/manufacturing-logistics">Manufacturing &amp; Logistics <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/solutions/verticals/retail-ecommerce/">Retail &amp; eCommerce <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/startups">Startups <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3 text-primary">By Use Case</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/cloud-native-kubernetes">Cloud-Native &amp; Kubernetes <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/scale-resilience">Scale &amp; Resilience <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/privacy-compliance">Data Privacy &amp; Security <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/distributed-apps">Distributed Apps <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3">Customer Stories</p> <div> <p class="mb-4 mt-0 font-size-16 lh-n"> See how our customers use CockroachDB to handle their critical workloads. </p> <div class="pb-45"> <a class="btn btn-black rounded-pill px-4 py-2" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/customers/">Read case studies</a> </div> </div> </div> </div> </div> </li> <li class="nav-item dropdown position-static"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Resources</a> <div class="dropdown-menu w-100 p-45" aria-labelledby="navbarDropdown"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-4"> <div> <div class="mb-4 mt-3 text-primary font-weight-medium font-size-16 lh-n"> <h3 class="text-primary">Cockroach <br>University</h3>World-class training and tutorials for beginners and advanced use cases. </div> <div class="pb-45"> <a class="btn btn-primary rounded-pill px-4 py-2" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/cockroach-university">Sign up for free</a> </div> </div> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3">Learn</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/guides">Guides &amp; Tech Briefs <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/blog/">Blog <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/developers/">Developers <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/community/tech-talks/">Tech Talks <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-4"> <p class="font-size-16 lh-n semibold my-3">Support</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://github.com/cockroachdb/cockroach">GitHub <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/join-community/">Slack <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://support.cockroachlabs.com/hc/en-us?__hstc=181257784.2bc4222d759d3d555572287e7b610f03.1579111962927.1604502276741.1604544514798.361&amp;__hssc=181257784.63.1604544514798&amp;__hsfp=407609322">Support Portal <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> </div> </div> </li> <li class="nav-item dropdown position-static"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Docs</a> <div class="dropdown-menu w-100 p-45 docs" aria-labelledby="navbarDropdown"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-6"> <div> <div class="mb-4 mt-3 text-primary font-weight-medium font-size-16 lh-n"> <h3 class="text-primary">Docs Hub<br></h3> Access tutorials, guides, example applications, and much more. </div> <div class="pb-md-45"> <a class="btn btn-primary rounded-pill px-4 py-2" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/">Explore</a> </div> </div> </div> <div class="col-md-6"> <p class="font-size-16 lh-n semibold mb-1 mt-0">&nbsp;</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/cockroachcloud/quickstart">Quickstart <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/stable/frequently-asked-questions.html">FAQ <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/stable/example-apps.html">Example applications <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/stable/architecture/overview.html">Architecture Overview <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> </div> </div> </li> <li class="nav-item dropdown position-static"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Company</a> <div class="dropdown-menu w-100 p-45 company" aria-labelledby="navbarDropdown"> <button class="d-none d-md-block btn-close position-absolute"></button> <div class="row"> <div class="col-md-5"> <p class="font-size-16 lh-n semibold my-3 text-primary">About us</p> <ul class="list-unstyled p-0"> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/blog/culture/">Company News &amp; Culture <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/about/">Our Story <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/partners/">Partners <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> <li class="border-bottom"> <a class="text-xs text-black d-flex pb-2 pt-3 align-items-center" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/careers/">Work at Cockroach Labs <svg class="ml-auto" width="11" height="10" viewbox="0 0 11 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.98691 0.624521L9.97887 4.61648C10.2238 4.86145 10.2238 5.25862 9.97887 5.50358L5.98691 9.49554C5.74195 9.74051 5.34478 9.74051 5.09981 9.49554C4.85485 9.25057 4.85485 8.85341 5.09981 8.60844L8.02094 5.68731H0.789873C0.443439 5.68731 0.162598 5.40647 0.162598 5.06003C0.162598 4.7136 0.443439 4.43276 0.789873 4.43276H8.02094L5.09981 1.51162C4.85485 1.26666 4.85485 0.869487 5.09981 0.624521C5.34478 0.379554 5.74195 0.379554 5.98691 0.624521Z" fill="black"/> </svg> </a> </li> </ul> </div> <div class="col-md-6 offset-md-1"> <p class="font-size-16 lh-n semibold my-3">Customer Stories</p> <div> <p class="mb-4 mt-0 text-small lh-n"> CockroachDB is trusted by innovators around the world, big and small. Take a look at how they use CockroachDB to build future-proofed applications. </p> <div class="pb-45"> <a class="btn btn-black rounded-pill px-4 py-2" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/customers/">Read case studies</a> </div> </div> </div> </div> </div> </li> </ul> <!-- end desktop nav --> <!-- right side nave --> <div class="ml-auto"> <ul class="d-none d-lg-flex navbar-nav mr-auto mb-2 mb-lg-0 mt-auto"> <li class="nav-item"> <a class="nav-link nav-text-md" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/contact/" role="button"> Contact Us</a> <a class="nav-link nav-icon-md" href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/contact/" role="button"><img class="" width="32" src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/7ffb43afb5e068be42ae20c0e8b8672b0f4c18f4/c198f/docs/images/icons/icon-envelope.png" alt="Sign in"></a> </li> <li class="nav-item"> <a href="https://web.archive.org/web/20221201132227/https://cockroachlabs.cloud/" class="nav-link nav-text-md">Sign In</a> <a href="https://web.archive.org/web/20221201132227/https://cockroachlabs.cloud/" class="nav-link nav-icon-md"> <svg width="22" height="22" viewbox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"> <circle cx="11" cy="11" r="10.25" fill="white" stroke="black" stroke-width="1.5"/> <circle cx="11" cy="9" r="2.25" stroke="black" stroke-width="1.5"/> <path d="M6 16C6.47619 14.6667 8.14286 12 11 12C13.8571 12 15.5238 14.6667 16 16" stroke="black" stroke-width="1.5" stroke-linecap="round"/> </svg> </a> </li> <li class="nav-item d-flex justify-content-center flex-column"> <a class="btn btn-primary rounded-pill px-3 font-family-poppins py-1 ml-2" href="https://web.archive.org/web/20221201132227/https://cockroachlabs.cloud/signup">Start Instantly</a> </li> </ul> </div> <!-- End right side nav --> </div> </nav> </div> </div> <div class="container-fluid"> <div class="row" id="maincontent"> <div class="nav-docs-mobile d-flex d-lg-none w-100 justify-content-between align-items-center px-4 py-2 border-top border-bottom" data-toggle="collapse" data-target="#sidebarMenu" aria-expanded="false" aria-controls="sidebarMenu" data-nosnippet> <div class="h3 m-0"> Docs Menu </div> <div class="sidenav-arrow mr-4"> <div class="arrow-down"> </div> </div> </div> <nav id="sidebarMenu" class="col-lg-2 d-lg-block sidebar collapse border-right pt-3 pr-md-0"> <div class="col-sidebar" data-nosnippet> <div class="col-sidebar-content"> <div class="mb-3 px-3"> <form action="/web/20221201132227/https://www.cockroachlabs.com/docs/search.html"> <input class="form-control" name="query" type="text" placeholder="Search"> </form> </div> <ul id="sidebar" class="js-sidebar nav pt-0" style="display: none"> <div class="sidenav-arrow mr-4"></div> </ul> </div> <div class="stiky-spacer"></div> </div> </nav> <!-- Smaller column col-xl-8 --> <main role="main" class="col col-lg-8 ml-sm-auto px-lg-5"> <div class="cf-5329-area-16739"></div> <div class="mt-3 mb-4"> <div id="version-switcher"> <ul class="nav"> <li class="tier-1"> <a href="#"> Version <span class="version-name">v22.1.11</span> <div class="arrow"></div> </a> <ul class="list-unstyled" style="display: none"> <li class="tier-2 "> <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/dev/architecture/overview.html" class="version--mobile"> v22.2.0-rc.3 (Dev) </a> <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/dev/architecture/overview.html" class="version--desktop"> v22.2.0-rc.3 (Dev) </a> </li> <li class="tier-2 active"> <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/stable/architecture/overview.html" class="version--mobile"> v22.1.11 (Stable) </a> <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/stable/architecture/overview.html" class="version--desktop"> v22.1.11 (Stable) </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v21.2/architecture/overview"> v21.2.17 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v21.2/architecture/overview"> v21.2.17 </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v21.1/architecture/overview"> v21.1.21 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v21.1/architecture/overview"> v21.1.21 </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v20.2/architecture/overview"> v20.2.19 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v20.2/architecture/overview"> v20.2.19 </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v20.1/architecture/overview"> v20.1.17 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v20.1/architecture/overview"> v20.1.17 </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v19.2/architecture/overview"> v19.2.12 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v19.2/architecture/overview"> v19.2.12 </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v19.1/architecture/overview"> v19.1.11 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v19.1/architecture/overview"> v19.1.11 </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v2.1/architecture/overview"> v2.1.11 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v2.1/architecture/overview"> v2.1.11 </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v2.0/architecture/overview"> v2.0.7 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v2.0/architecture/overview"> v2.0.7 </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v1.1/architecture/overview"> v1.1.9 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v1.1/architecture/overview"> v1.1.9 </a> </li> <li class="tier-2 "> <a class="version--mobile" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v1.0/cockroachdb-architecture"> v1.0.7 </a> <a class="version--desktop" href="/web/20221201132227/https://www.cockroachlabs.com/docs/v1.0/cockroachdb-architecture"> v1.0.7 </a> </li> </ul> </li> </ul> </div> </div> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/initVersionSwitcher.js" async></script> <div class="post-header mb-3"> <h1 class="post-title-main w-100">Architecture Overview</h1> <div class="d-block d-lg-none"> <div> <div class="contribute dropdown"> <button class="btn-contribute dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <i class="fab fa-github"></i> Contribute <span class="carat-arrow-down"><img src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/bf83ecd2a83cbda4a4afecf5fe53b5083aef785b/5d54e/docs/images/carat-down-fill.svg" alt="Carat arrow pointing down"></span> </button> <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"> <li><a href="https://web.archive.org/web/20221201132227/https://github.com/cockroachdb/docs/edit/master/v22.1/architecture/overview.md" target="blank" id="edit-this-page" data-proofer-ignore>Edit This Page</a></li> <li><a href="https://web.archive.org/web/20221201132227/https://github.com/cockroachdb/docs/issues/new?title=Feedback:%20Architecture Overview&amp;body=Page%3A%20https%3A%2F%2Fcockroachlabs.com/docs/v22.1/architecture/overview.html%0A%0A%23%23%20What is the reason for your feedback?%0A%0A[%20]%20Missing the information I need%0A%0A[%20]%20Too complicated%0A%0A[%20]%20Out of date%0A%0A[%20]%20Something is broken%0A%0A[%20]%20Other%0A%0A%23%23%20Additional details&amp;" target="blank" data-proofer-ignore>Report Doc Issue</a></li> </ul> </div> </div> </div> </div> <div class="post-content"> <div id="mobile-toc-toggler" class="d-inline-block d-lg-none mb-4"> On this page <span class="carat-arrow-down d-inline-flex"><img src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/bf83ecd2a83cbda4a4afecf5fe53b5083aef785b/5d54e/docs/images/carat-down-fill.svg" alt="Carat arrow pointing down"></span> </div> <div id="toc" class="d-none"></div> <p>CockroachDB was designed to create the source-available database we would want to use: one that is both scalable and consistent. Developers often have questions about how we&#39;ve achieved this, and this guide sets out to detail the inner workings of the <code>cockroach</code> process as a means of explanation.</p> <p>However, you definitely do not need to understand the underlying architecture to use CockroachDB. These pages give serious users and database enthusiasts a high-level framework to explain what&#39;s happening under the hood.</p> <div class="bs-callout bs-callout--success"><div class="bs-callout__label">Tip:</div> <p>If these docs interest you, consider taking the free <a href="https://web.archive.org/web/20221201132227/https://university.cockroachlabs.com/courses/course-v1:crl+intro-to-distributed-sql-and-cockroachdb+self-paced/about">Intro to Distributed SQL</a> course on Cockroach University. </div></p> <h2 id="using-this-guide">Using this guide</h2> <p>This guide is broken out into pages detailing each layer of CockroachDB. We recommended reading through the layers sequentially, starting with this overview and then proceeding to the <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/sql-layer">SQL layer</a>.</p> <p>If you&#39;re looking for a high-level understanding of CockroachDB, you can read the <strong>Overview</strong> section of each layer. For more technical detail鈥攆or example, if you&#39;re interested in <a href="https://web.archive.org/web/20221201132227/https://cockroachlabs.atlassian.net/wiki/x/QQFdB">contributing to the project</a>鈥攜ou should read the <strong>Components</strong> sections as well.</p> <div class="bs-callout bs-callout--info"><div class="bs-callout__label">Note:</div> <p>This guide details how CockroachDB is built, but does not explain how to build an application using CockroachDB. For more information about how to develop applications that use CockroachDB, check out our <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/developer-guide-overview">Developer Guide</a>. </div></p> <h2 id="goals-of-cockroachdb">Goals of CockroachDB</h2> <p>CockroachDB was designed to meet the following goals:</p> <ul> <li>Make life easier for humans. This means being low-touch and highly automated for <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/recommended-production-settings">operators</a> and simple to reason about for <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/developer-guide-overview">developers</a>.</li> <li>Offer industry-leading consistency, even on massively scaled deployments. This means enabling distributed transactions, as well as removing the pain of eventual consistency issues and stale reads.</li> <li>Create an always-on database that accepts reads and writes on all nodes without generating conflicts.</li> <li>Allow flexible deployment in any environment, without tying you to any platform or vendor.</li> <li>Support familiar tools for working with relational data (i.e., SQL).</li> </ul> <p>With the confluence of these features, we hope that CockroachDB helps you build global, scalable, resilient deployments and applications.</p> <p>It&#39;s helpful to understand a few terms before reading our architecture documentation.</p> <h2 id="database-terms">Database terms</h2> <table><thead> <tr> <th>Term</th> <th>Definition</th> </tr> </thead><tbody> <tr> <td><strong>consistency</strong></td> <td>The requirement that a transaction must change affected data only in allowed ways. CockroachDB uses &quot;consistency&quot; in both the sense of <a href="https://web.archive.org/web/20221201132227/https://en.wikipedia.org/wiki/ACID">ACID semantics</a> and the <a href="https://web.archive.org/web/20221201132227/https://en.wikipedia.org/wiki/CAP_theorem">CAP theorem</a>, albeit less formally than either definition.</td> </tr> <tr> <td><strong>isolation</strong></td> <td>The degree to which a transaction may be affected by other transactions running at the same time. CockroachDB provides the <a href="https://web.archive.org/web/20221201132227/https://en.wikipedia.org/wiki/Serializability"><code>SERIALIZABLE</code></a> isolation level, which is the highest possible and guarantees that every committed transaction has the same result as if each transaction were run one at a time.</td> </tr> <tr> <td><strong>consensus</strong></td> <td><a name="architecture-overview-consensus"></a> The process of reaching agreement on whether a transaction is committed or aborted. CockroachDB uses the <a href="#architecture-raft">Raft consensus protocol</a>. In CockroachDB, when a range receives a write, a quorum of nodes containing replicas of the range acknowledge the write. This means your data is safely stored and a majority of nodes agree on the database&#39;s current state, even if some of the nodes are offline.<br/><br/>When a write does not achieve consensus, forward progress halts to maintain consistency within the cluster.</td> </tr> <tr> <td><strong>replication</strong></td> <td>The process of creating and distributing copies of data, as well as ensuring that those copies remain consistent. CockroachDB requires all writes to propagate to a <a href="https://web.archive.org/web/20221201132227/https://en.wikipedia.org/wiki/Quorum_%28distributed_computing%29">quorum</a> of copies of the data before being considered committed. This ensures the consistency of your data.</td> </tr> <tr> <td><strong>transaction</strong></td> <td>A set of operations performed on a database that satisfy the requirements of <a href="https://web.archive.org/web/20221201132227/https://en.wikipedia.org/wiki/ACID">ACID semantics</a>. This is a crucial feature for a consistent system to ensure developers can trust the data in their database. For more information about how transactions work in CockroachDB, see <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/transaction-layer">Transaction Layer</a>.</td> </tr> <tr> <td><strong>multi-active availability</strong></td> <td>A consensus-based notion of high availability that lets each node in the cluster handle reads and writes for a subset of the stored data (on a per-range basis). This is in contrast to <em>active-passive replication</em>, in which the active node receives 100% of request traffic, and <em>active-active</em> replication, in which all nodes accept requests but typically cannot guarantee that reads are both up-to-date and fast.</td> </tr> </tbody></table> <h2 id="cockroachdb-architecture-terms">CockroachDB architecture terms</h2> <table><thead> <tr> <th>Term</th> <th>Definition</th> </tr> </thead><tbody> <tr> <td><strong>cluster</strong></td> <td>A group of interconnected storage nodes that collaboratively organize transactions, fault tolerance, and data rebalancing.</td> </tr> <tr> <td><strong>node</strong></td> <td>An individual instance of CockroachDB. One or more nodes form a cluster.</td> </tr> <tr> <td><strong>range</strong></td> <td><a name="architecture-range"></a> CockroachDB stores all user data (tables, indexes, etc.) and almost all system data in a sorted map of key-value pairs. This keyspace is divided into contiguous chunks called <em>ranges</em>, such that every key is found in one range.<br/><br/>From a SQL perspective, a table and its secondary indexes initially map to a single range, where each key-value pair in the range represents a single row in the table (also called the <em>primary index</em> because the table is sorted by the primary key) or a single row in a secondary index. As soon as the size of a range reaches 512 MiB (<a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/configure-replication-zones#range-max-bytes">the default</a>), it is split into two ranges. This process continues for these new ranges as the table and its indexes continue growing.</td> </tr> <tr> <td><strong>replica</strong> <a name="architecture-replica"></a></td> <td>A copy of a range stored on a node. By default, there are three <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/configure-replication-zones#num_replicas">replicas</a> of each range on different nodes.</td> </tr> <tr> <td><strong>leaseholder</strong> <a name="architecture-leaseholder"></a></td> <td>The replica that holds the &quot;range lease.&quot; This replica receives and coordinates all read and write requests for the range.<br/><br/>For most types of tables and queries, the leaseholder is the only replica that can serve consistent reads (reads that return &quot;the latest&quot; data).</td> </tr> <tr> <td><strong>Raft protocol</strong> <a name="architecture-raft"></a></td> <td>The <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/replication-layer#raft">consensus protocol</a> employed in CockroachDB that ensures that your data is safely stored on multiple nodes and that those nodes agree on the current state even if some of them are temporarily disconnected.</td> </tr> <tr> <td><strong>Raft leader</strong></td> <td>For each range, the replica that is the &quot;leader&quot; for write requests. The leader uses the Raft protocol to ensure that a majority of replicas (the leader and enough followers) agree, based on their Raft logs, before committing the write. The Raft leader is almost always the same replica as the leaseholder.</td> </tr> <tr> <td><strong>Raft log</strong></td> <td>A time-ordered log of writes to a range that its replicas have agreed on. This log exists on-disk with each replica and is the range&#39;s source of truth for consistent replication.</td> </tr> </tbody></table> <h2 id="overview">Overview</h2> <p>CockroachDB starts running on machines with two commands:</p> <ul> <li><a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/cockroach-start"><code>cockroach start</code></a> with a <code>--join</code> flag for all of the initial nodes in the cluster, so the process knows all of the other machines it can communicate with.</li> <li><a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/cockroach-init"><code>cockroach init</code></a> to perform a one-time initialization of the cluster.</li> </ul> <p>Once the CockroachDB cluster is initialized, developers interact with CockroachDB through a <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/postgresql-compatibility">PostgreSQL-compatible</a> SQL API. Thanks to the symmetrical behavior of all nodes in a cluster, you can send <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/sql-layer">SQL requests</a> to any node; this makes CockroachDB easy to integrate with load balancers.</p> <p>After receiving SQL remote procedure calls (RPCs), nodes convert them into key-value (KV) operations that work with our <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/transaction-layer">distributed, transactional key-value store</a>.</p> <p>As these RPCs start filling your cluster with data, CockroachDB starts <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/distribution-layer">algorithmically distributing your data among the nodes of the cluster</a>, breaking the data up into 512 MiB chunks that we call ranges. Each range is replicated to at least 3 nodes by default to ensure survivability. This ensures that if any nodes go down, you still have copies of the data which can be used for:</p> <ul> <li>Continuing to serve reads and writes.</li> <li>Consistently replicating the data to other nodes.</li> </ul> <p>If a node receives a read or write request it cannot directly serve, it finds the node that can handle the request, and communicates with that node. This means you do not need to know where in the cluster a specific portion of your data is stored; CockroachDB tracks it for you, and enables symmetric read/write behavior from each node.</p> <p>Any changes made to the data in a range rely on a <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/replication-layer">consensus algorithm</a> to ensure that the majority of the range&#39;s replicas agree to commit the change. This is how CockroachDB achieves the industry-leading isolation guarantees that allow it to provide your application with consistent reads and writes, regardless of which node you communicate with.</p> <p>Ultimately, data is written to and read from disk using an efficient <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/storage-layer">storage engine</a>, which is able to keep track of the data&#39;s timestamp. This has the benefit of letting us support the SQL standard <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/as-of-system-time"><code>AS OF SYSTEM TIME</code></a> clause, letting you find historical data for a period of time.</p> <p>While the high-level overview above gives you a notion of what CockroachDB does, looking at how CockroachDB operates at each of these layers will give you much greater understanding of our architecture.</p> <h3 id="layers">Layers</h3> <p>At the highest level, CockroachDB converts clients&#39; SQL statements into key-value (KV) data, which is distributed among nodes and written to disk. CockroachDB&#39;s architecture is manifested as a number of layers, each of which interacts with the layers directly above and below it as relatively opaque services.</p> <p>The following pages describe the function each layer performs, while mostly ignoring the details of other layers. This description is true to the experience of the layers themselves, which generally treat the other layers as black-box APIs. There are some interactions that occur between layers that require an understanding of each layer&#39;s function to understand the entire process.</p> <table><thead> <tr> <th>Layer</th> <th>Order</th> <th>Purpose</th> </tr> </thead><tbody> <tr> <td><a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/sql-layer">SQL</a></td> <td>1</td> <td>Translate client SQL queries to KV operations.</td> </tr> <tr> <td><a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/transaction-layer">Transactional</a></td> <td>2</td> <td>Allow atomic changes to multiple KV entries.</td> </tr> <tr> <td><a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/distribution-layer">Distribution</a></td> <td>3</td> <td>Present replicated KV ranges as a single entity.</td> </tr> <tr> <td><a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/replication-layer">Replication</a></td> <td>4</td> <td>Consistently and synchronously replicate KV ranges across many nodes. This layer also enables consistent reads using a consensus algorithm.</td> </tr> <tr> <td><a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/storage-layer">Storage</a></td> <td>5</td> <td>Read and write KV data on disk.</td> </tr> </tbody></table> <h2 id="whats-next">What&#39;s next?</h2> <p>Start by learning about what CockroachDB does with your SQL statements at the <a href="/web/20221201132227/https://www.cockroachlabs.com/docs/v22.1/architecture/sql-layer">SQL layer</a>.</p> <div id="feedback-prompt"> <div id="feedback-prompt-bottom"> <p class="feedback-question">Was this helpful?</p><br> <a href="#yes-feedback" id="yes-button-bottom" class="yes-button" data-proofer-ignore><img class="mt-0 mb-0" src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/6a577863ca956d24df9cca33c2affac2ba667c46/d89b9/docs/images/icon-thumbs-up.svg" alt="Yes"/></a> <a href="#no-feedback" id="no-button-bottom" class="no-button" data-proofer-ignore><img class="mt-0 mb-0" src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/bebc9d0c5869ba369d4825cb6a625841e109c4a1/53dc5/docs/images/icon-thumbs-down.svg" alt="No"/></a> </div> </div> <script> $(document).ready(function(){ $("#yes-button-bottom").bind("click", function () { $('#feedback-prompt-bottom').html('<p class="feedback-response-bottom">Thanks for the feedback!</p>') $('#feedback-prompt-toc').hide() }); $("#no-button-bottom").bind("click", function () { $('#feedback-prompt-bottom').html('<p class="feedback-response-bottom">Thank you.</p><p><a href="https://web.archive.org/web/20221201132227/https://github.com/cockroachdb/docs/issues/new?title=Feedback:%20Architecture Overview&amp;body=Page%3A%20https%3A%2F%2Fcockroachlabs.com/docs/v22.1/architecture/overview.html%0A%0A%23%23%20What is the reason for your feedback?%0A%0A&#91;%20&#93;%20Missing the information I need%0A%0A&#91;%20&#93;%20Too complicated%0A%0A&#91;%20&#93;%20Out of date%0A%0A&#91;%20&#93;%20Something is broken%0A%0A&#91;%20&#93;%20Other%0A%0A%23%23%20Additional details&amp;" target="blank" data-proofer-ignore>Please tell us more.</a></p></p>') $('#feedback-prompt-toc').hide() }); }); </script> <script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'docsArea' : 'reference.architecture' }); </script> </div> </main> <div class="toc-col col-md-2"> <div class="toc-col-contents"> <!-- lets all elements scroll --> <div class="d-none d-lg-block pb-4"> <div> <div class="contribute dropdown"> <button class="btn-contribute dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <i class="fab fa-github"></i> Contribute <span class="carat-arrow-down"><img src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/bf83ecd2a83cbda4a4afecf5fe53b5083aef785b/5d54e/docs/images/carat-down-fill.svg" alt="Carat arrow pointing down"></span> </button> <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"> <li><a href="https://web.archive.org/web/20221201132227/https://github.com/cockroachdb/docs/edit/master/v22.1/architecture/overview.md" target="blank" id="edit-this-page" data-proofer-ignore>Edit This Page</a></li> <li><a href="https://web.archive.org/web/20221201132227/https://github.com/cockroachdb/docs/issues/new?title=Feedback:%20Architecture Overview&amp;body=Page%3A%20https%3A%2F%2Fcockroachlabs.com/docs/v22.1/architecture/overview.html%0A%0A%23%23%20What is the reason for your feedback?%0A%0A[%20]%20Missing the information I need%0A%0A[%20]%20Too complicated%0A%0A[%20]%20Out of date%0A%0A[%20]%20Something is broken%0A%0A[%20]%20Other%0A%0A%23%23%20Additional details&amp;" target="blank" data-proofer-ignore>Report Doc Issue</a></li> </ul> </div> </div> </div> <div class="toc-right-title">On this page</div> <div id="toc-right"> </div> <div id="feedback-prompt"> <div id="feedback-prompt-toc"> <p class="feedback-question">Was this helpful?</p><br> <a href="#yes-feedback" id="yes-button-toc" class="yes-button" data-proofer-ignore><img class="mt-0 mb-0" src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/6a577863ca956d24df9cca33c2affac2ba667c46/d89b9/docs/images/icon-thumbs-up.svg" alt="Yes"/></a> <a href="#no-feedback" id="no-button-toc" class="no-button" data-proofer-ignore><img class="mt-0 mb-0" src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/bebc9d0c5869ba369d4825cb6a625841e109c4a1/53dc5/docs/images/icon-thumbs-down.svg" alt="No"/></a> </div> </div> <script> $(document).ready(function(){ $("#yes-button-toc").bind("click", function () { $('#feedback-prompt-toc').html('<p class="feedback-response-toc">Thanks for the feedback!</p>') $('#feedback-prompt-bottom').hide() }); $("#no-button-toc").bind("click", function () { $('#feedback-prompt-toc').html('<p class="feedback-response-toc">Thank you.</p><p><a href="https://web.archive.org/web/20221201132227/https://github.com/cockroachdb/docs/issues/new?title=Feedback:%20Architecture Overview&amp;body=Page%3A%20https%3A%2F%2Fcockroachlabs.com/docs/v22.1/architecture/overview.html%0A%0A%23%23%20What is the reason for your feedback?%0A%0A&#91;%20&#93;%20Missing the information I need%0A%0A&#91;%20&#93;%20Too complicated%0A%0A&#91;%20&#93;%20Out of date%0A%0A&#91;%20&#93;%20Something is broken%0A%0A&#91;%20&#93;%20Other%0A%0A%23%23%20Additional details&amp;" target="blank" data-proofer-ignore>Please tell us more.</a></p></p>') $('#feedback-prompt-bottom').hide() }); }); </script> <div class="cf-5329-area-16738"> </div> </div> </div> </div> </div> <div class="footer py-5" data-nosnippet> <div class="container"> <div class="row"> <div class="col-6 col-sm-3 col-lg-2"> <p class="font-weight-bold pb-2">Product</p> <ul class="footer-nav p-0"> <ul class="p-0"> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/">CockroachDB</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/product/cockroachcloud/">CockroachDB Cloud</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/compare/">Compare</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/pricing/">Pricing</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/get-started-cockroachdb/">Get CockroachDB</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://cockroachlabs.cloud/">Sign In</a> </li> </ul> </ul> </div> <div class="col-6 col-sm-3 col-lg-2"> <p class="font-weight-bold pb-2">Resources</p> <ul class="footer-nav p-0"> <li> <a href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/guides/">Guides</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/community/tech-talks/">Webinars</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://resources.cockroachlabs.com/videos">Videos</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/stable/architecture/overview.html">Architecture Overview</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/stable/frequently-asked-questions.html">FAQ</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/security/">Security</a> </li> </ul> </div> <div class="col-6 col-sm-3 col-lg-2"> <p class="font-weight-bold pb-2">Learn</p> <ul class="footer-nav p-0"> <li><a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/docs/">Docs</a></li> <li> <a href="https://web.archive.org/web/20221201132227/https://university.cockroachlabs.com/">University</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/developers/">Developers</a> </li> </ul> <p class="font-weight-bold py-2 mb-0 mb-md-2">Support Channels</p> <ul class="footer-nav p-0"> <li><a href="https://web.archive.org/web/20221201132227/https://forum.cockroachlabs.com/">Forum</a></li> <li> <a href="https://web.archive.org/web/20221201132227/https://cockroa.ch/slack">Slack</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://support.cockroachlabs.com/hc/en-us">Support Portal</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/contact/">Contact Us</a> </li> </ul> </div> <div class="col-6 col-sm-3 col-lg-2"> <p class="font-weight-bold pb-2">Company</p> <ul class="footer-nav p-0"> <li><a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/about/">About</a></li> <li><a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/blog/">Blog</a></li> <li><a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/careers/">Careers</a></li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/customers/">Customers</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/community/events/">Events</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/press/">News</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/privacy/">Privacy</a> </li> <li> <a href="https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/website-terms-of-use/" class="footer-link"> Terms of Use </a> </li> </ul> </div> <div class="col-12 col-lg-4 pt-lg-3 border-md-left"> <div class="pl-xl-5 pl-0"> <p class="font-weight-bold pb-2 mt-0">Get developer news</p> <form id="footer-mktoForm_1083" class="mkto-install-form mkto-footer-form"></form> <p class="js-ty-mktoForm_1083" style="display: none;">Thanks!</p> <script> whenAvailable("MktoForms2", function() { const MktoForms21083 = MktoForms2; MktoForms21083.loadForm('//web.archive.org/web/20221201132227/https://go.cockroachlabs.com', '350-QIN-827', 1083, function (form) { const form_mktoForm_1083 = $('#footer-mktoForm_1083'); form.render(form_mktoForm_1083) form.onSuccess(function (values, followUpUrl) { form.getFormElem().hide(); document.querySelector('.js-ty-mktoForm_1083').style.display = 'block'; return false; }); // Move button next to input MktoForms21083.whenReady(function (form) { $('#footer-mktoForm_1083 input').css('width', ''); $('#footer-mktoForm_1083 .mktoButtonWrap').css('margin-left', ''); $('#footer-mktoForm_1083 .mktoButtonRow').css('display', 'flex'); $('#footer-mktoForm_1083 .mktoButtonRow').insertAfter('#footer-mktoForm_1083 #Email'); }); }); }); </script> </div> </div> </div> </div> </div> <div id="newsletter-footer-popout"> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-6"> <div class="news-header"> Keep up-to-date with CockroachDB software releases and usage best practices </div> </div> <div class="col-xs-12 col-sm-6"> <div id="hubspot-footer-popup-form"> <form id="news-mktoForm_1083"></form> <p class="js-ty_1083" style="display: none;">Thanks!</p> <script> whenAvailable("MktoForms2", function() { const NewsMktoForms21083 = MktoForms2; const Newsform_mktoForm_1083 = $('#news-mktoForm_1083'); NewsMktoForms21083.loadForm("//web.archive.org/web/20221201132227/https://go.cockroachlabs.com", "350-QIN-827", 1083, function(form_1083){ form_1083.render(Newsform_mktoForm_1083); form_1083.onSuccess(function(values, followUpUrl) { form_1083.getFormElem().hide(); document.querySelector('.js-ty_1083').style.display = 'block'; return false; }); // Move button next to input NewsMktoForms21083.whenReady(function () { $('#news-mktoForm_1083 .mktoButtonRow').insertAfter('#news-mktoForm_1083 #Email'); $('#news-mktoForm_1083 .mktoButtonRow').css('display', 'flex'); }); }); }); </script> </div> </div> </div> </div> <div class="newsletter-close"> <img src="https://web.archive.org/web/20221201132227im_/https://d33wubrfki0l68.cloudfront.net/ed954f75c8d5972218a40f84a4e370252b77457b/28ac7/docs/images/close_icon.png" alt="close icon" style="max-width: 25px;" data-proofer-ignore/> </div> </div> <script> $(document).ready(function () { //*footer*// var $footer_popout = $("#newsletter-footer-popout"), $footer_close = $("#newsletter-footer-popout .newsletter-close"); if (window.location.pathname.indexOf('/advisories/') > -1 ) { $footer_popout.addClass("animate"); } else { $(window).scroll(function () { var cookie = getCookie("popout"); if (!cookie && window.innerWidth >= 768) { if ( $(window).scrollTop() + $(window).height() >= $(document).height() * 0.75 ) { $footer_popout.addClass("animate"); setCookie("popout", 1); } } }); } $footer_close.on("click", function () { $footer_popout.removeClass("animate"); }); function setCookie(key, value) { var expires = new Date(); expires.setTime(expires.getTime() + 7 * 24 * 60 * 60 * 1000); document.cookie = key + "=" + value + ";expires=" + expires.toUTCString(); } function getCookie(key) { var keyValue = document.cookie.match("(^|;) ?" + key + "=([^;]*)(;|$)"); return keyValue ? keyValue[2] : null; } }); </script> <script> (function(){ $(function() { const $sidebar = $('#sidebar'); const $sidebars = $('.js-sidebar'); const navgocoOptions = { caretHtml: '', accordion: true, openClass: 'active', save: false, cookie: { name: 'navgoco', expires: false, path: '/' }, slide: { duration: 150, easing: 'swing' } }; // Initialize navgoco with config options $sidebar.navgoco($.extend(navgocoOptions, { onToggleAfter: function() { if ($(this.el).attr('id') == 'sidebar' && $('#version-switcher').hasClass('open')) { closeVersionSwitcher(); } } })); $sidebar.show(); // Loop over the left sidebar and top nav mobile version $sidebars.each((k, sidebar)=>{ // console.log(sidebar); // sidebar.navgoco($.extend(navgocoOptions, { // onToggleAfter: function() { // if ($(this.el).attr('id') == 'sidebar' && // $('#version-switcher').hasClass('open')) { // closeVersionSwitcher(); // } // } // })); // sidebar.show(); }); }); // called from sidebar.js.html function renderSidebar(sidebar) { // We derive the version from the URL rather than hardcoding // `page.version` so that the source of pages for "named" // versions, like stable and edge, can be identical to the // source for the underlying version, like v1.0 or v1.1. // Otherwise, the sidebar for a `stable` page would // inappropriately link to the underlying `v1.0` page instead // of the `stable` alias. const pageVersion = (function () { const pathComponents = location.pathname .replace(sidebar.baseUrl, '') .replace(/^\//, '') .split('/'); // The version is the first directory component in the URL, // if it exists. if (pathComponents.length > 1 && sidebar.isVersionDirectory(pathComponents[0])) { return pathComponents[0]; } // Non-versioned pages link to stable docs. return "stable"; })(); // Given a sidebar hierarchy (see _data/sidebar-data-v1.0.json // for an example), returns a jQuery <ul> element with the // following structure: // // <ul> // <li class="tier-1"> // <a href=""></a> // <ul> // // </ul> // </li> // </ul> // // Additionally injects breadcrumbs for the active sidebar // entry, if any, into the `.collapsed-header` element above. function renderItems(items, paths) { if (!items || items.length == 0) return $(); const lis = items.map(function (item) { const urls = (item.urls || []).map(function (url) { var url = url.replace("${VERSION}", pageVersion); // This condition makes it possible to use external // urls in the sidebar. if (!/^https?:/.test(url)) { url = 'https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com' + sidebar.baseUrl + url; } return url; }); // this ensures page will be highlighted in sidebar even if URL is accessed without `.html` appended var activePathname if (!/^https?:/.test(location.pathname)) { activePathname = 'https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com' + location.pathname } else { activePathname = location.pathname } if (location.pathname.slice(-5) !== '.html') { activePathname += '.html' } const active = (urls.indexOf(activePathname) !== -1); if (active) { // This mutation inside an otherwise pure function is // unfortunate, but doing it here avoids a separate // traversal of the sidebar data. const breadcrumbs = $("<div>") .addClass("collapsed-header__pre") .html(paths.join("<div class=\"arrow-down arrow-down--pre\"></div>\n")); const title = $("<div>").html(item.title); $(".collapsed-header").empty().append(breadcrumbs, title); } const subitems = renderItems(item.items, paths.concat(item.title)); const a = $("<a>") .attr("href", urls[0] || "#") .html(item.title); if (subitems.length > 0 && !item.is_top_level) { a.append(" ").append($("<div>").addClass("nav-expand")); } return $("<li>") .addClass("tier-" + (paths.length + 1)) .toggleClass("active", active) .toggleClass("visited", active) .append(a) .append(subitems); }); return $("<ul>").append(lis); } const $sidebar = $('#sidebar'); const $html = renderItems(sidebar.items, []).html(); $sidebar.html($html) .find("li.active") .parents('li') .toggleClass("active"); }; const sidebar = { baseUrl: "/docs", isVersionDirectory: function (d) { // Version directories either are one of the named version // aliases specified in _config.yml or have the form "vX.X", // like "v1.0" or "v1.10". return {"dev":"v22.2","stable":"v22.1","cloud":"v22.1"}[d] || /^v\d+.\d+$/.test(d); }, items:[ { "title": "Docs Home", "is_top_level": true, "urls": [ "/" ] }, { "title": "Get Started", "is_top_level": true, "items": [{ "title": "Quickstart", "urls": [ "/cockroachcloud/quickstart.html" ] }, { "title": "Learn CockroachDB SQL", "urls": [ "/cockroachcloud/learn-cockroachdb-sql.html", "/${VERSION}/learn-cockroachdb-sql.html" ] }, { "title": "Build a Sample Application", "items": [ { "title": "JavaScript/TypeScript", "urls": [ "/${VERSION}/build-a-nodejs-app-with-cockroachdb.html", "/${VERSION}/build-a-nodejs-app-with-cockroachdb-sequelize.html", "/${VERSION}/build-a-nodejs-app-with-cockroachdb-knexjs.html", "/${VERSION}/build-a-nodejs-app-with-cockroachdb-prisma.html", "/${VERSION}/build-a-typescript-app-with-cockroachdb.html" ] }, { "title": "Python", "urls": [ "/${VERSION}/build-a-python-app-with-cockroachdb-psycopg3.html", "/${VERSION}/build-a-python-app-with-cockroachdb.html", "/${VERSION}/build-a-python-app-with-cockroachdb-sqlalchemy.html", "/${VERSION}/build-a-python-app-with-cockroachdb-django.html", "/${VERSION}/build-a-python-app-with-cockroachdb-pony.html" ] }, { "title": "Golang", "urls": [ "/${VERSION}/build-a-go-app-with-cockroachdb.html", "/${VERSION}/build-a-go-app-with-cockroachdb-gorm.html", "/${VERSION}/build-a-go-app-with-cockroachdb-pq.html", "/${VERSION}/build-a-go-app-with-cockroachdb-upperdb.html" ] }, { "title": "Java", "urls": [ "/${VERSION}/build-a-java-app-with-cockroachdb.html", "/${VERSION}/build-a-java-app-with-cockroachdb-hibernate.html", "/${VERSION}/build-a-java-app-with-cockroachdb-jooq.html", "/${VERSION}/build-a-spring-app-with-cockroachdb-mybatis.html" ] }, { "title": "Ruby", "urls": [ "/${VERSION}/build-a-ruby-app-with-cockroachdb.html", "/${VERSION}/build-a-ruby-app-with-cockroachdb-activerecord.html" ] }, { "title": "C# (.NET)", "urls": [ "/${VERSION}/build-a-csharp-app-with-cockroachdb.html" ] }, { "title": "Rust", "urls": [ "/${VERSION}/build-a-rust-app-with-cockroachdb.html" ] } ] }, { "title": "Build a Serverless Application", "items": [ { "title": "AWS Lambda", "urls": [ "/${VERSION}/deploy-lambda-function.html" ] }, { "title": "Google Cloud Run", "urls": [ "/${VERSION}/deploy-app-gcr.html" ] }, { "title": "Netlify", "urls": [ "/${VERSION}/deploy-app-netlify.html" ] }, { "title": "Vercel", "urls": [ "/${VERSION}/deploy-app-vercel.html" ] }, { "title": "Serverless Function Best Practices", "urls": [ "/${VERSION}/serverless-function-best-practices.html" ] } ] }, { "title": "Glossary", "urls": [ "/${VERSION}/architecture/glossary.html" ] }, { "title": "FAQs", "items": [ { "title": "CockroachDB FAQs", "urls": [ "/${VERSION}/frequently-asked-questions.html" ] }, { "title": "CockroachDB Cloud FAQs", "urls": [ "/cockroachcloud/serverless-faqs.html", "/cockroachcloud/frequently-asked-questions.html" ] }, { "title": "SQL FAQs", "urls": [ "/${VERSION}/sql-faqs.html" ] }, { "title": "Operational FAQs", "urls": [ "/${VERSION}/operational-faqs.html" ] }, { "title": "Availability FAQs", "urls": [ "/${VERSION}/multi-active-availability.html" ] }, { "title": "Licensing FAQs", "urls": [ "/${VERSION}/licensing-faqs.html" ] }, { "title": "Enterprise Features", "urls": [ "/${VERSION}/enterprise-licensing.html" ] }, { "title": "CockroachDB in Comparison", "urls": [ "/${VERSION}/cockroachdb-in-comparison.html" ] } ] } ] } , { "title": "Develop", "is_top_level": true, "items": [ { "title": "Developer Guide Overview", "urls": [ "/${VERSION}/developer-guide-overview.html" ] }, { "title": "Connect to CockroachDB", "items": [ { "title": "Install a Driver or ORM Framework", "urls": [ "/${VERSION}/install-client-drivers.html" ] }, { "title": "Connect to a Cluster", "urls": [ "/${VERSION}/connect-to-the-database.html" ] }, { "title": "Use Connection Pools", "urls": [ "/${VERSION}/connection-pooling.html" ] } ] }, { "title": "Design a Database Schema", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/schema-design-overview.html" ] }, { "title": "Create a Database", "urls": [ "/${VERSION}/schema-design-database.html" ] }, { "title": "Create a User-defined Schema", "urls": [ "/${VERSION}/schema-design-schema.html" ] }, { "title": "Create a Table", "urls": [ "/${VERSION}/schema-design-table.html" ] }, { "title": "Secondary Indexes", "urls": [ "/${VERSION}/schema-design-indexes.html" ] }, { "title": "Update a Database Schema", "items": [ { "title": "Change and Remove Objects", "urls": [ "/${VERSION}/schema-design-update.html" ] }, { "title": "Online Schema Changes", "urls": [ "/${VERSION}/online-schema-changes.html" ] } ] }, { "title": "Advanced Schema Design", "items": [ { "title": "Computed Columns", "urls": [ "/${VERSION}/computed-columns.html" ] }, { "title": "Group Columns into Families", "urls": [ "/${VERSION}/column-families.html" ] }, { "title": "Index a Subset of Rows", "urls": [ "/${VERSION}/partial-indexes.html" ] }, { "title": "Index Sequential Keys", "urls": [ "/${VERSION}/hash-sharded-indexes.html" ] }, { "title": "Index JSON and Array Data", "urls": [ "/${VERSION}/inverted-indexes.html" ] }, { "title": "Index Expressions", "urls": [ "/${VERSION}/expression-indexes.html" ] }, { "title": "Index Spatial Data", "urls": [ "/${VERSION}/spatial-indexes.html" ] }, { "title": "Scale to Multiple Regions", "urls": [ "/${VERSION}/multiregion-scale-application.html" ] } ] } ] }, { "title": "Write Data", "items": [ { "title": "Insert Data", "urls": [ "/${VERSION}/insert-data.html" ] }, { "title": "Update Data", "urls": [ "/${VERSION}/update-data.html" ] }, { "title": "Bulk-update Data", "urls": [ "/${VERSION}/bulk-update-data.html" ] }, { "title": "Delete Data", "urls": [ "/${VERSION}/delete-data.html" ] }, { "title": "Bulk-delete Data", "urls": [ "/${VERSION}/bulk-delete-data.html" ] }, { "title": "Batch Delete Expired Data with Row-Level TTL", "urls": [ "/${VERSION}/row-level-ttl.html" ] } ] }, { "title": "Read Data", "items": [ { "title": "Select Rows of Data", "urls": [ "/${VERSION}/query-data.html" ] }, { "title": "Reuse Query Results", "items": [ { "title": "Reusable Views", "urls": [ "/${VERSION}/views.html" ] }, { "title": "Subqueries", "urls": [ "/${VERSION}/subqueries.html" ] } ] }, { "title": "Temporary Tables", "urls": [ "/${VERSION}/temporary-tables.html" ] }, { "title": "Paginate Results", "urls": [ "/${VERSION}/pagination.html" ] }, { "title": "Follower Reads", "urls": [ "/${VERSION}/follower-reads.html" ] }, { "title": "<code>AS OF SYSTEM TIME</code>", "urls": [ "/${VERSION}/as-of-system-time.html" ] }, { "title": "Query Spatial Data", "urls": [ "/${VERSION}/query-spatial-data.html" ] } ] }, { "title": "Transactions", "items": [ { "title": "Transactions Overview", "urls": [ "/${VERSION}/transactions.html" ] }, { "title": "Advanced Client-side Transaction Retries", "urls": [ "/${VERSION}/advanced-client-side-transaction-retries.html" ] } ] }, { "title": "Test Your Application Locally", "urls": [ "/${VERSION}/local-testing.html" ] }, { "title": "Troubleshoot Common Problems", "urls": [ "/${VERSION}/error-handling-and-troubleshooting.html" ] }, { "title": "Optimize Statement Performance", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/make-queries-fast.html" ] }, { "title": "Statement Tuning with <code>EXPLAIN</code>", "urls": [ "/${VERSION}/sql-tuning-with-explain.html" ] }, { "title": "Apply SQL Statement Performance Rules", "urls": [ "/${VERSION}/apply-statement-performance-rules.html" ] }, { "title": "Map SQL Activity using an Application Name", "urls": [ "/${VERSION}/map-sql-activity-to-app.html" ] }, { "title": "SQL Performance Best Practices", "urls": [ "/${VERSION}/performance-best-practices-overview.html" ] }, { "title": "Performance Tuning Recipes", "urls": [ "/${VERSION}/performance-recipes.html" ] }, { "title": "Performance Features", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/performance-features-overview.html" ] }, { "title": "Indexes", "urls": [ "/${VERSION}/indexes.html" ] }, { "title": "Cost-Based Optimizer", "urls": [ "/${VERSION}/cost-based-optimizer.html" ] }, { "title": "Vectorized Execution Engine", "urls": [ "/${VERSION}/vectorized-execution.html" ] }, { "title": "Load-Based Splitting", "urls": [ "/${VERSION}/load-based-splitting.html" ] }, { "title": "Admission Control", "urls": [ "/${VERSION}/admission-control.html" ] } ] } ] }, { "title": "Example Applications", "items": [ { "title": "Overview of Example Applications", "urls": [ "/${VERSION}/example-apps.html" ] }, { "title": "Build the Roach Data Application using Spring Boot", "items": [ { "title": "Spring Boot with JDBC", "urls": [ "/${VERSION}/build-a-spring-app-with-cockroachdb-jdbc.html" ] }, { "title": "Spring Boot with JPA", "urls": [ "/${VERSION}/build-a-spring-app-with-cockroachdb-jpa.html" ] } ] }, { "title": "The MovR Example Application", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/movr.html" ] }, { "title": "Global Application", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/movr-flask-overview.html" ] }, { "title": "Global Application Use Case", "urls": [ "/${VERSION}/movr-flask-use-case.html" ] }, { "title": "Multi-region Database Schema", "urls": [ "/${VERSION}/movr-flask-database.html" ] }, { "title": "Set up a Development Environment", "urls": [ "/${VERSION}/movr-flask-setup.html" ] }, { "title": "Develop a Global Application", "urls": [ "/${VERSION}/movr-flask-application.html" ] }, { "title": "Deploy a Global Application", "urls": [ "/${VERSION}/movr-flask-deployment.html" ] } ] } ] }, { "title": "Deploy a Python To-Do App with Flask, Kubernetes, and CockroachDB Cloud", "urls": [ "/cockroachcloud/deploy-a-python-to-do-app-with-flask-kubernetes-and-cockroachcloud.html" ] } ] }, { "title": "Tutorials", "items": [ { "title": "Schema Migration Tools", "items": [ { "title": "Alembic", "urls": [ "/${VERSION}/alembic.html" ] }, { "title": "Flyway", "urls": [ "/${VERSION}/flyway.html" ] }, { "title": "Liquibase", "urls": [ "/${VERSION}/liquibase.html" ] } ] }, { "title": "GUIs & IDEs", "items": [ { "title": "DBeaver GUI", "urls": [ "/${VERSION}/dbeaver.html" ] }, { "title": "IntelliJ IDEA", "urls": [ "/${VERSION}/intellij-idea.html" ] } ] }, { "title": "Data Security Tools", "items": [ { "title": "Satori", "urls": [ "/${VERSION}/satori-integration.html" ] }, { "title": "HashiCorp Vault", "urls": [ "/${VERSION}/hashicorp-integration.html" ] } ] } ] }, { "title": "SQL Playground", "is_top_level": true, "urls": [ "/tutorials/sql-playground.html" ] } ] } , { "title": "Deploy", "is_top_level": true, "items": [ { "title": "Deployment Options", "items": [ { "title": "Choose a Deployment Option", "urls": [ "/${VERSION}/choose-a-deployment-option.html" ] }, { "title": "CockroachDB Cloud", "items": [ { "title": "Create an Account", "urls": [ "/cockroachcloud/create-an-account.html" ] }, { "title": "CockroachDB Serverless", "items": [ { "title": "CockroachDB Serverless Pricing", "items": [ { "title": "Pricing Overview", "urls": [ "/cockroachcloud/learn-about-pricing.html" ] }, { "title": "Learn about Request Units", "urls": [ "/cockroachcloud/learn-about-request-units.html" ] }, { "title": "Optimize Your CockroachDB Serverless Workload", "urls": [ "/cockroachcloud/optimize-serverless-workload.html" ] } ] }, { "title": "Create a CockroachDB Serverless Cluster", "urls": [ "/cockroachcloud/create-a-serverless-cluster.html" ] }, { "title": "Connect to Your Cluster", "urls": [ "/cockroachcloud/connect-to-a-serverless-cluster.html" ] } ] }, { "title": "CockroachDB Dedicated", "items": [ { "title": "Plan Your CockroachDB Dedicated Cluster", "urls": [ "/cockroachcloud/plan-your-cluster.html" ] }, { "title": "Create a CockroachDB Dedicated Cluster", "urls": [ "/cockroachcloud/create-your-cluster.html" ] }, { "title": "Connect to Your Cluster", "urls": [ "/cockroachcloud/connect-to-your-cluster.html" ] }, { "title": "Move into Production", "urls": [ "/cockroachcloud/production-checklist.html" ] } ] } ] }, { "title": "CockroachDB Self-Hosted", "items": [ { "title": "Get Started", "items": [ { "title": "Install CockroachDB", "urls": [ "/${VERSION}/install-cockroachdb.html", "/${VERSION}/install-cockroachdb-mac.html", "/${VERSION}/install-cockroachdb-linux.html", "/${VERSION}/install-cockroachdb-windows.html" ] }, { "title": "Start a Local Cluster", "items": [ { "title": "Start From Binary", "urls": [ "/${VERSION}/secure-a-cluster.html", "/${VERSION}/start-a-local-cluster.html" ] }, { "title": "Start In Kubernetes", "urls": [ "/${VERSION}/orchestrate-a-local-cluster-with-kubernetes.html", "/${VERSION}/orchestrate-a-local-cluster-with-kubernetes-insecure.html" ] }, { "title": "Start In Docker", "urls": [ "/${VERSION}/start-a-local-cluster-in-docker-mac.html", "/${VERSION}/start-a-local-cluster-in-docker-linux.html", "/${VERSION}/start-a-local-cluster-in-docker-windows.html" ] }, { "title": "Simulate a Multi-Region Cluster on localhost", "urls": [ "/${VERSION}/simulate-a-multi-region-cluster-on-localhost.html" ] } ] } ] }, { "title": "Production Checklist", "urls": [ "/${VERSION}/recommended-production-settings.html" ] }, { "title": "Kubernetes Deployment", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/kubernetes-overview.html" ] }, { "title": "Single-Cluster Deployment", "urls": [ "/${VERSION}/deploy-cockroachdb-with-kubernetes.html", "/${VERSION}/deploy-cockroachdb-with-kubernetes-insecure.html" ] }, { "title": "OpenShift Deployment", "urls": [ "/${VERSION}/deploy-cockroachdb-with-kubernetes-openshift.html" ] }, { "title": "Multi-Cluster Deployment", "urls": [ "/${VERSION}/orchestrate-cockroachdb-with-kubernetes-multi-cluster.html" ] } ] }, { "title": "Manual Deployment", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/manual-deployment.html" ] }, { "title": "On-Premises Deployment", "urls": [ "/${VERSION}/deploy-cockroachdb-on-premises.html", "/${VERSION}/deploy-cockroachdb-on-premises-insecure.html" ] }, { "title": "Deploy on AWS", "urls": [ "/${VERSION}/deploy-cockroachdb-on-aws.html", "/${VERSION}/deploy-cockroachdb-on-aws-insecure.html" ] }, { "title": "Deploy on Azure", "urls": [ "/${VERSION}/deploy-cockroachdb-on-microsoft-azure.html", "/${VERSION}/deploy-cockroachdb-on-microsoft-azure-insecure.html" ] }, { "title": "Deploy on Digital Ocean", "urls": [ "/${VERSION}/deploy-cockroachdb-on-digital-ocean.html", "/${VERSION}/deploy-cockroachdb-on-digital-ocean-insecure.html" ] }, { "title": "Deploy on Google Cloud Platform GCE", "urls": [ "/${VERSION}/deploy-cockroachdb-on-google-cloud-platform.html", "/${VERSION}/deploy-cockroachdb-on-google-cloud-platform-insecure.html" ] } ] } ] } ] }, { "title": "Multi-Region Capabilities", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/multiregion-overview.html" ] }, { "title": "How to Choose a Multi-Region Configuration", "urls": [ "/${VERSION}/choosing-a-multi-region-configuration.html" ] }, { "title": "When to Use ZONE vs. REGION Survival Goals", "urls": [ "/${VERSION}/when-to-use-zone-vs-region-survival-goals.html" ] }, { "title": "When to Use REGIONAL vs. GLOBAL Tables", "urls": [ "/${VERSION}/when-to-use-regional-vs-global-tables.html" ] }, { "title": "Data Domiciling with CockroachDB", "urls": [ "/${VERSION}/data-domiciling.html" ] }, { "title": "Migrate to Multi-Region SQL", "urls": [ "/${VERSION}/migrate-to-multiregion-sql.html" ] }, { "title": "Table Partitioning", "urls": [ "/${VERSION}/partitioning.html" ] }, { "title": "Topology Patterns", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/topology-patterns.html" ] }, { "title": "Development", "urls": [ "/${VERSION}/topology-development.html" ] }, { "title": "Basic Production", "urls": [ "/${VERSION}/topology-basic-production.html" ] }, { "title": "Regional Tables", "urls": [ "/${VERSION}/regional-tables.html" ] }, { "title": "Global Tables", "urls": [ "/${VERSION}/global-tables.html" ] }, { "title": "Follower Reads", "urls": [ "/${VERSION}/topology-follower-reads.html" ] }, { "title": "Follow-the-Workload", "urls": [ "/${VERSION}/topology-follow-the-workload.html" ] } ] } ] }, { "title": "Explore CockroachDB Features", "items": [{ "title": "Replication & Rebalancing", "urls": [ "/${VERSION}/demo-replication-and-rebalancing.html" ] }, { "title": "Fault Tolerance & Recovery", "urls": [ "/${VERSION}/demo-fault-tolerance-and-recovery.html" ] }, { "title": "Multi-Region Performance", "urls": [ "/${VERSION}/demo-low-latency-multi-region-deployment.html" ] }, { "title": "Serializable Transactions", "urls": [ "/${VERSION}/demo-serializable.html" ] }, { "title": "Spatial Data", "urls": [ "/${VERSION}/spatial-tutorial.html" ] }, { "title": "Cross-Cloud Migration", "urls": [ "/${VERSION}/demo-automatic-cloud-migration.html" ] }, { "title": "JSON Support", "urls": [ "/${VERSION}/demo-json-support.html" ] } ] } ] } , { "title": "Manage", "is_top_level": true, "items": [ { "title": "Manage CockroachDB Cloud Clusters", "items": [ { "title": "Manage a CockroachDB Serverless Cluster", "urls": [ "/cockroachcloud/serverless-cluster-management.html" ] }, { "title": "Manage a CockroachDB Dedicated Cluster", "urls": [ "/cockroachcloud/cluster-management.html" ] }, { "title": "Manage Billing", "urls": [ "/cockroachcloud/billing-management.html" ] }, { "title": "Use the Cloud API", "urls": [ "/cockroachcloud/cloud-api.html" ] }, { "title": "Use the <code>ccloud</code> command", "urls": [ "/cockroachcloud/ccloud-get-started.html" ] } ] }, { "title": "Operate CockroachDB on Kubernetes", "items": [ { "title": "Pod Scheduling", "urls": [ "/${VERSION}/schedule-cockroachdb-kubernetes.html" ] }, { "title": "Resource Management", "urls": [ "/${VERSION}/configure-cockroachdb-kubernetes.html" ] }, { "title": "Certificate Management", "urls": [ "/${VERSION}/secure-cockroachdb-kubernetes.html" ] }, { "title": "Cluster Scaling", "urls": [ "/${VERSION}/scale-cockroachdb-kubernetes.html" ] }, { "title": "Cluster Monitoring", "urls": [ "/${VERSION}/monitor-cockroachdb-kubernetes.html" ] }, { "title": "Cluster Upgrades", "urls": [ "/${VERSION}/upgrade-cockroachdb-kubernetes.html" ] }, { "title": "Optimizing Performance", "urls": [ "/${VERSION}/kubernetes-performance.html" ] } ] }, { "title": "Back Up and Restore Data", "items": [ { "title": "Backup and Restore Overview", "urls": [ "/${VERSION}/backup-and-restore-overview.html" ] }, { "title": "Backup Architecture", "urls": [ "/${VERSION}/backup-architecture.html" ] }, { "title": "Back Up and Restore CockroachDB Cloud Clusters", "items": [ { "title": "Run Bulk Operations", "urls": [ "/cockroachcloud/run-bulk-operations.html" ] }, { "title": "Restore Data from a Backup", "urls": [ "/cockroachcloud/backups-page.html" ] } ] }, { "title": "Back Up and Restore CockroachDB Self-Hosted Clusters", "items": [ { "title": "Full and Incremental Backups", "urls": [ "/${VERSION}/take-full-and-incremental-backups.html" ] }, { "title": "Backups with Revision History and Point-in-time Restore", "urls": [ "/${VERSION}/take-backups-with-revision-history-and-restore-from-a-point-in-time.html" ] }, { "title": "Encrypted Backup and Restore", "urls": [ "/${VERSION}/take-and-restore-encrypted-backups.html" ] }, { "title": "Locality-aware Backup and Restore", "urls": [ "/${VERSION}/take-and-restore-locality-aware-backups.html" ] }, { "title": "Scheduled Backups", "urls": [ "/${VERSION}/manage-a-backup-schedule.html" ] } ] } ] }, { "title": "File Storage for Bulk Operations", "items": [ { "title": "Cloud Storage", "urls": [ "/${VERSION}/use-cloud-storage-for-bulk-operations.html" ] }, { "title": "Userfile Storage", "urls": [ "/${VERSION}/use-userfile-for-bulk-operations.html" ] }, { "title": "Local File Server", "urls": [ "/${VERSION}/use-a-local-file-server-for-bulk-operations.html" ] } ] }, { "title": "Security", "items": [ { "title": "Secure CockroachDB Cloud Clusters", "items": [ { "title": "Customer-Managed Encryption Keys (CMEK) for CockroachDB Dedicated", "urls": [], "items": [ { "title": "Manage Customer-Managed Encryption Keys (CMEK) for CockroachDB Dedicated", "urls": [ "/cockroachcloud/managing-cmek.html" ] }, { "title": "Provisioning AWS KMS Keys and IAM Roles for CMEK", "urls": [ "/cockroachcloud/cmek-ops-aws.html" ] }, { "title": "Provisioning GCP KMS Keys and Service Accounts for CMEK", "urls": [ "/cockroachcloud/cmek-ops-gcp.html" ] }, { "title": "Customer-Managed Encryption Keys (CMEK) Frequently Asked Questions (FAQ)", "urls": [ "/cockroachcloud/cmek-faq.html" ] } ] }, { "title": "Authentication", "items": [ { "title": "Authentication Overview", "urls": [ "/cockroachcloud/authentication.html" ] }, { "title": "Single Sign-On (SSO)", "urls": [ "/cockroachcloud/cloud-org-sso.html" ] }, { "title": "Configure Cloud Organization SSO", "urls": [ "/cockroachcloud/configure-cloud-org-sso.html" ] } ] }, { "title": "User Authorization", "urls": [ "/cockroachcloud/user-authorization.html" ] }, { "title": "Network Authorization", "urls": [ "/cockroachcloud/network-authorization.html" ] }, { "title": "SQL Audit Logging", "urls": [ "/cockroachcloud/sql-audit-logging.html" ] }, { "title": "Export Cloud Organization Audit Logs", "urls": [ "/cockroachcloud/cloud-org-audit-logs.html" ] }, { "title": "Manage Console Access", "urls": [ "/cockroachcloud/console-access-management.html" ] } ] }, { "title": "Secure CockroachDB Self-Hosted Clusters", "items": [ { "title": "Managing Security Certificates", "items": [ { "title": "Use the CockroachDB CLI to provision a development cluster", "urls": [ "/${VERSION}/manage-certs-cli.html" ] }, { "title": "Manage PKI certificates for a CockroachDB deployment with HashiCorp Vault", "urls": [ "/${VERSION}/manage-certs-vault.html" ] }, { "title": "Create Security Certificates using OpenSSL", "urls": [ "/${VERSION}/create-security-certificates-openssl.html" ] }, { "title": "Using Online Certificate Status Protocol (OCSP) with CockroachDB", "urls": [ "/${VERSION}/manage-certs-revoke-ocsp.html" ] } ] }, { "title": "Authentication", "urls": [ "/${VERSION}/authentication.html" ] }, { "title": "Encryption", "urls": [ "/${VERSION}/encryption.html" ] }, { "title": "Authorization", "urls": [ "/${VERSION}/authorization.html" ] }, { "title": "SQL Audit Logging", "urls": [ "/${VERSION}/sql-audit-logging.html" ] }, { "title": "GSSAPI Authentication", "urls": [ "/${VERSION}/gssapi_authentication.html" ] }, { "title": "Single Sign-on", "urls": [ "/${VERSION}/sso.html" ] }, { "title": "Rotate Security Certificates", "urls": [ "/${VERSION}/rotate-certificates.html" ] } ] }, { "title": "CockroachDB General Security Tutorials", "items": [ { "title": "Configure SQL Authentication for Hardened Serverless Cluster Security", "urls": [ "/${VERSION}/security-reference/config-secure-hba.html" ] }, { "title": "Using Hashicorp Vault's Dynamic Secrets for Enhanced Database Credential Security", "urls": [ "/${VERSION}/vault-db-secrets-tutorial.html" ] } ] } ] }, { "title": "Monitoring and Alerting", "items": [ { "title": "Monitor a CockroachDB Cloud Cluster", "items": [ { "title": "Cluster Overview Page", "urls": [ "/cockroachcloud/cluster-overview-page.html" ] }, { "title": "Alerts Page", "urls": [ "/cockroachcloud/alerts-page.html" ] }, { "title": "Monitoring Page", "urls": [ "/cockroachcloud/monitoring-page.html" ] }, { "title": "Statements Page", "urls": [ "/cockroachcloud/statements-page.html" ] }, { "title": "Sessions Page", "urls": [ "/cockroachcloud/sessions-page.html" ] }, { "title": "Transactions Page", "urls": [ "/cockroachcloud/transactions-page.html" ] }, { "title": "Databases Page", "urls": [ "/cockroachcloud/databases-page.html" ] } ] }, { "title": "Monitor a CockroachDB Self-Hosted Cluster", "items": [ { "title": "Monitoring Clusters Overview", "urls": [ "/${VERSION}/monitoring-and-alerting.html" ] }, { "title": "Common Issues to Monitor", "urls": [ "/${VERSION}/common-issues-to-monitor.html" ] }, { "title": "Enable the Node Map", "urls": [ "/${VERSION}/enable-node-map.html" ] }, { "title": "Use Prometheus and Alertmanager", "urls": [ "/${VERSION}/monitor-cockroachdb-with-prometheus.html" ] }, { "title": "Cluster API", "urls": [ "/${VERSION}/cluster-api.html" ] } ] }, { "title": "Third-Party Monitoring Integrations", "items": [ { "title": "Third-Party Monitoring Integration Overview", "urls": [ "/${VERSION}/third-party-monitoring-tools.html" ] }, { "title": "Monitor CockroachDB self-hosted with Datadog", "urls": [ "/${VERSION}/datadog.html" ] }, { "title": "Monitor with DBmarlin", "urls": [ "/${VERSION}/dbmarlin.html" ] }, { "title": "Monitor with Kibana", "urls": [ "/${VERSION}/kibana.html" ] } ] } ] }, { "title": "Logging", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/logging-overview.html" ] }, { "title": "Configure Logs", "urls": [ "/${VERSION}/configure-logs.html" ] }, { "title": "Logging Use Cases", "urls": [ "/${VERSION}/logging-use-cases.html" ] }, { "title": "Export Logs From CockroachDB dedicated", "urls": [ "/cockroachcloud/export-logs.html" ] } ] }, { "title": "Cluster Maintenance", "items": [ { "title": "Upgrade a Cluster", "items": [ { "title": "Uprade a CockroachDB Cloud Cluster", "items": [ { "title": "Upgrade Policy", "urls": [ "/cockroachcloud/upgrade-policy.html" ] }, { "title": "Upgrade to v22.1", "urls": [ "/cockroachcloud/upgrade-to-v22.1.html" ] }, { "title": "Upgrade to v21.2", "urls": [ "/cockroachcloud/upgrade-to-v21.2.html" ] }, { "title": "Upgrade to v21.1", "urls": [ "/cockroachcloud/upgrade-to-v21.1.html" ] }, { "title": "Upgrade to v20.2", "urls": [ "/cockroachcloud/upgrade-to-v20.2.html" ] }, { "title": "Upgrade to v20.1", "urls": [ "/cockroachcloud/upgrade-to-v20.1.html" ] } ] }, { "title": "Upgrade a CockroachDB Self-Hosted Cluster", "items": [ { "title": "Upgrade to CockroachDB v22.1", "urls": [ "/${VERSION}/upgrade-cockroach-version.html" ] } ] } ] }, { "title": "Manage Long-Running Queries", "urls": [ "/${VERSION}/manage-long-running-queries.html" ] }, { "title": "Node Shutdown", "urls": [ "/${VERSION}/node-shutdown.html" ] }, { "title": "Disaster Recovery", "urls": [ "/${VERSION}/disaster-recovery.html" ] } ] }, { "title": "Replication Controls", "urls": [ "/${VERSION}/configure-replication-zones.html" ] }, { "title": "Troubleshooting", "items": [ { "title": "Troubleshooting Overview", "urls": [ "/${VERSION}/troubleshooting-overview.html" ] }, { "title": "Common Errors and Solutions", "urls": [ "/${VERSION}/common-errors.html" ] }, { "title": "Troubleshoot Cluster Setup", "urls": [ "/${VERSION}/cluster-setup-troubleshooting.html" ] }, { "title": "Troubleshoot Statement Behavior", "urls": [ "/${VERSION}/query-behavior-troubleshooting.html" ] }, { "title": "Troubleshoot CockroachDB Cloud", "urls": [ "/cockroachcloud/troubleshooting-page.html" ] }, { "title": "Replication Reports", "urls": [ "/${VERSION}/query-replication-reports.html" ] }, { "title": "Support Resources", "urls": [ "/${VERSION}/support-resources.html" ] }, { "title": "File an Issue", "urls": [ "/${VERSION}/file-an-issue.html" ] } ] } ] } , { "title": "Migrate", "is_top_level": true, "items": [ { "title": "Migration Overview", "urls": [ "/${VERSION}/migration-overview.html" ] }, { "title": "Migrations Page", "urls": [ "/cockroachcloud/migrations-page.html" ] }, { "title": "Migrate Data to CockroachDB", "items": [ { "title": "Migrate data using AWS DMS", "urls": [ "/${VERSION}/aws-dms.html" ] }, { "title": "Migrate from CSV", "urls": [ "/${VERSION}/migrate-from-csv.html" ] }, { "title": "Migrate from Avro", "urls": [ "/${VERSION}/migrate-from-avro.html" ] }, { "title": "Migrate from Shapefiles", "urls": [ "/${VERSION}/migrate-from-shapefiles.html" ] }, { "title": "Migrate from OpenStreetMap", "urls": [ "/${VERSION}/migrate-from-openstreetmap.html" ] }, { "title": "Migrate from GeoJSON", "urls": [ "/${VERSION}/migrate-from-geojson.html" ] }, { "title": "Migrate from GeoPackage", "urls": [ "/${VERSION}/migrate-from-geopackage.html" ] }, { "title": "Import Performance Best Practices", "urls": [ "/${VERSION}/import-performance-best-practices.html" ] } ] }, { "title": "Migrate from Serverless to Dedicated", "urls": [ "/cockroachcloud/migrate-from-serverless-to-dedicated.html" ] }, { "title": "Export Spatial Data", "urls": [ "/${VERSION}/export-spatial-data.html" ] } ] } , { "title": "Stream Data", "is_top_level": true, "items": [ { "title": "Change Data Capture Overview", "urls": [ "/${VERSION}/change-data-capture-overview.html" ] }, { "title": "Get Started with Changefeeds", "items": [ { "title": "Create and Configure Changefeeds", "urls": [ "/${VERSION}/create-and-configure-changefeeds.html" ] }, { "title": "Changefeed Messages", "urls": [ "/${VERSION}/changefeed-messages.html" ] }, { "title": "Changefeed Sinks", "urls": [ "/${VERSION}/changefeed-sinks.html" ] }, { "title": "Changefeed Examples", "urls": [ "/${VERSION}/changefeed-examples.html" ] } ] }, { "title": "Work with Changefeeds", "items": [ { "title": "Changefeeds on Tables with Column Families", "urls": [ "/${VERSION}/changefeeds-on-tables-with-column-families.html" ] }, { "title": "Export Data with Changefeeds", "urls": [ "/${VERSION}/export-data-with-changefeeds.html" ] }, { "title": "Changefeeds in Multi-Region Deployments", "urls": [ "/${VERSION}/changefeeds-in-multi-region-deployments.html" ] } ] }, { "title": "Monitor and Debug Changefeeds", "urls": [ "/${VERSION}/monitor-and-debug-changefeeds.html" ] }, { "title": "Tutorials", "items": [ { "title": "Stream a Changefeed from CockroachDB Cloud to Snowflake", "urls": [ "/cockroachcloud/stream-changefeed-to-snowflake-aws.html" ] }, { "title": "Stream a Changefeed to a Confluent Cloud Kafka Cluster", "urls": [ "/${VERSION}/stream-a-changefeed-to-a-confluent-cloud-kafka-cluster.html" ] } ] }, { "title": "Advanced Changefeed Configuration", "urls": [ "/${VERSION}/advanced-changefeed-configuration.html" ] } ] } , { "title": "Reference", "is_top_level": true, "items": [ { "title": "Architecture", "items": [ { "title": "Architecture Overview", "urls": [ "/${VERSION}/architecture/overview.html" ] }, { "title": "SQL Layer", "urls": [ "/${VERSION}/architecture/sql-layer.html" ] }, { "title": "Transaction Layer", "urls": [ "/${VERSION}/architecture/transaction-layer.html" ] }, { "title": "Distribution Layer", "urls": [ "/${VERSION}/architecture/distribution-layer.html" ] }, { "title": "Replication Layer", "urls": [ "/${VERSION}/architecture/replication-layer.html" ] }, { "title": "Storage Layer", "urls": [ "/${VERSION}/architecture/storage-layer.html" ] }, { "title": "Life of a Distributed Transaction", "urls": [ "/${VERSION}/architecture/life-of-a-distributed-transaction.html" ] }, { "title": "Reads and Writes Overview", "urls": [ "/${VERSION}/architecture/reads-and-writes-overview.html" ] }, { "title": "CockroachDB Cloud Architecture", "urls": [ "/cockroachcloud/architecture.html" ] } ] }, { "title": "SQL", "items": [ { "title": "SQL Overview", "urls": [ "/${VERSION}/sql-feature-support.html" ] }, { "title": "PostgreSQL Compatibility", "urls": [ "/${VERSION}/postgresql-compatibility.html" ] }, { "title": "SQL Syntax", "items": [ { "title": "Full SQL Grammar", "urls": [ "/${VERSION}/sql-grammar.html" ] }, { "title": "Keywords & Identifiers", "urls": [ "/${VERSION}/keywords-and-identifiers.html" ] }, { "title": "Constants", "urls": [ "/${VERSION}/sql-constants.html" ] }, { "title": "Selection Queries", "urls": [ "/${VERSION}/selection-queries.html" ] }, { "title": "Table Expressions", "urls": [ "/${VERSION}/table-expressions.html" ] }, { "title": "Common Table Expressions", "urls": [ "/${VERSION}/common-table-expressions.html" ] }, { "title": "Scalar Expressions", "urls": [ "/${VERSION}/scalar-expressions.html" ] }, { "title": "<code>NULL</code> Handling", "urls": [ "/${VERSION}/null-handling.html" ] } ] }, { "title": "SQL Statements", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/sql-statements.html" ] }, { "title": "<code>ADD COLUMN</code>", "urls": [ "/${VERSION}/add-column.html" ] }, { "title": "<code>ADD CONSTRAINT</code>", "urls": [ "/${VERSION}/add-constraint.html" ] }, { "title": "<code>ADD REGION</code> (Enterprise)", "urls": [ "/${VERSION}/add-region.html" ] }, { "title": "<code>ADD SUPER REGION</code> (Enterprise)", "urls": [ "/${VERSION}/add-super-region.html" ] }, { "title": "<code>ALTER BACKUP</code> (Enterprise)", "urls": [ "/${VERSION}/alter-backup.html" ] }, { "title": "<code>ALTER CHANGEFEED</code> (Enterprise)", "urls": [ "/${VERSION}/alter-changefeed.html" ] }, { "title": "<code>ALTER COLUMN</code>", "urls": [ "/${VERSION}/alter-column.html" ] }, { "title": "<code>ALTER DATABASE</code>", "urls": [ "/${VERSION}/alter-database.html" ] }, { "title": "<code>ALTER DEFAULT PRIVILEGES</code>", "urls": [ "/${VERSION}/alter-default-privileges.html" ] }, { "title": "<code>ALTER INDEX</code>", "urls": [ "/${VERSION}/alter-index.html" ] }, { "title": "<code>ALTER PARTITION</code> (Enterprise)", "urls": [ "/${VERSION}/alter-partition.html" ] }, { "title": "<code>ALTER PRIMARY KEY</code>", "urls": [ "/${VERSION}/alter-primary-key.html" ] }, { "title": "<code>ALTER RANGE</code>", "urls": [ "/${VERSION}/alter-range.html" ] }, { "title": "<code>ALTER RANGE ... RELOCATE</code>", "urls": [ "/${VERSION}/alter-range-relocate.html" ] }, { "title": "<code>ALTER ROLE</code>", "urls": [ "/${VERSION}/alter-role.html" ] }, { "title": "<code>ALTER SCHEMA</code>", "urls": [ "/${VERSION}/alter-schema.html" ] }, { "title": "<code>ALTER SEQUENCE</code>", "urls": [ "/${VERSION}/alter-sequence.html" ] }, { "title": "<code>ALTER SUPER REGION</code> (Enterprise)", "urls": [ "/${VERSION}/alter-super-region.html" ] }, { "title": "<code>ALTER TABLE</code>", "urls": [ "/${VERSION}/alter-table.html" ] }, { "title": "<code>ALTER TYPE</code>", "urls": [ "/${VERSION}/alter-type.html" ] }, { "title": "<code>ALTER USER</code>", "urls": [ "/${VERSION}/alter-user.html" ] }, { "title": "<code>ALTER VIEW</code>", "urls": [ "/${VERSION}/alter-view.html" ] }, { "title": "<code>EXPERIMENTAL_AUDIT</code>", "urls": [ "/${VERSION}/experimental-audit.html" ] }, { "title": "<code>BACKUP</code>", "urls": [ "/${VERSION}/backup.html" ] }, { "title": "<code>BEGIN</code>", "urls": [ "/${VERSION}/begin-transaction.html" ] }, { "title": "<code>CANCEL JOB</code>", "urls": [ "/${VERSION}/cancel-job.html" ] }, { "title": "<code>CANCEL QUERY</code>", "urls": [ "/${VERSION}/cancel-query.html" ] }, { "title": "<code>CANCEL SESSION</code>", "urls": [ "/${VERSION}/cancel-session.html" ] }, { "title": "<code>COMMENT ON</code>", "urls": [ "/${VERSION}/comment-on.html" ] }, { "title": "<code>COMMIT</code>", "urls": [ "/${VERSION}/commit-transaction.html" ] }, { "title": "<code>CONFIGURE ZONE</code>", "urls": [ "/${VERSION}/configure-zone.html" ] }, { "title": "<code>COPY FROM</code>", "urls": [ "/${VERSION}/copy-from.html" ] }, { "title": "<code>CREATE CHANGEFEED</code> (Enterprise)", "urls": [ "/${VERSION}/create-changefeed.html" ] }, { "title": "<code>CREATE DATABASE</code>", "urls": [ "/${VERSION}/create-database.html" ] }, { "title": "<code>CREATE INDEX</code>", "urls": [ "/${VERSION}/create-index.html" ] }, { "title": "<code>CREATE ROLE</code>", "urls": [ "/${VERSION}/create-role.html" ] }, { "title": "<code>CREATE SCHEDULE FOR BACKUP</code>", "urls": [ "/${VERSION}/create-schedule-for-backup.html" ] }, { "title": "<code>CREATE SCHEMA</code>", "urls": [ "/${VERSION}/create-schema.html" ] }, { "title": "<code>CREATE SEQUENCE</code>", "urls": [ "/${VERSION}/create-sequence.html" ] }, { "title": "<code>CREATE STATISTICS</code>", "urls": [ "/${VERSION}/create-statistics.html" ] }, { "title": "<code>CREATE TABLE</code>", "urls": [ "/${VERSION}/create-table.html" ] }, { "title": "<code>CREATE TABLE AS</code>", "urls": [ "/${VERSION}/create-table-as.html" ] }, { "title": "<code>CREATE TYPE</code>", "urls": [ "/${VERSION}/create-type.html" ] }, { "title": "<code>CREATE USER</code>", "urls": [ "/${VERSION}/create-user.html" ] }, { "title": "<code>CREATE VIEW</code>", "urls": [ "/${VERSION}/create-view.html" ] }, { "title": "<code>DELETE</code>", "urls": [ "/${VERSION}/delete.html" ] }, { "title": "<code>DROP COLUMN</code>", "urls": [ "/${VERSION}/drop-column.html" ] }, { "title": "<code>DROP CONSTRAINT</code>", "urls": [ "/${VERSION}/drop-constraint.html" ] }, { "title": "<code>DROP DATABASE</code>", "urls": [ "/${VERSION}/drop-database.html" ] }, { "title": "<code>DROP REGION (Enterprise)</code>", "urls": [ "/${VERSION}/drop-region.html" ] }, { "title": "<code>DROP SUPER REGION</code> (Enterprise)", "urls": [ "/${VERSION}/drop-super-region.html" ] }, { "title": "<code>DROP TYPE</code>", "urls": [ "/${VERSION}/drop-type.html" ] }, { "title": "<code>DROP INDEX</code>", "urls": [ "/${VERSION}/drop-index.html" ] }, { "title": "<code>DROP ROLE</code>", "urls": [ "/${VERSION}/drop-role.html" ] }, { "title": "<code>DROP SCHEDULES</code>", "urls": [ "/${VERSION}/drop-schedules.html" ] }, { "title": "<code>DROP SCHEMA</code>", "urls": [ "/${VERSION}/drop-schema.html" ] }, { "title": "<code>DROP SEQUENCE</code>", "urls": [ "/${VERSION}/drop-sequence.html" ] }, { "title": "<code>DROP TABLE</code>", "urls": [ "/${VERSION}/drop-table.html" ] }, { "title": "<code>DROP USER</code>", "urls": [ "/${VERSION}/drop-user.html" ] }, { "title": "<code>DROP VIEW</code>", "urls": [ "/${VERSION}/drop-view.html" ] }, { "title": "<code>EXPERIMENTAL CHANGEFEED FOR</code>", "urls": [ "/${VERSION}/changefeed-for.html" ] }, { "title": "<code>EXPLAIN</code>", "urls": [ "/${VERSION}/explain.html" ] }, { "title": "<code>EXPLAIN ANALYZE</code>", "urls": [ "/${VERSION}/explain-analyze.html" ] }, { "title": "<code>EXPORT</code>", "urls": [ "/${VERSION}/export.html" ] }, { "title": "<code>GRANT</code>", "urls": [ "/${VERSION}/grant.html" ] }, { "title": "<code>IMPORT</code>", "urls": [ "/${VERSION}/import.html" ] }, { "title": "<code>IMPORT INTO</code>", "urls": [ "/${VERSION}/import-into.html" ] }, { "title": "<code>INSERT</code>", "urls": [ "/${VERSION}/insert.html" ] }, { "title": "<code>JOIN</code>", "urls": [ "/${VERSION}/joins.html" ] }, { "title": "<code>LIMIT</code>/<code>OFFSET</code>", "urls": [ "/${VERSION}/limit-offset.html" ] }, { "title": "<code>ORDER BY</code>", "urls": [ "/${VERSION}/order-by.html" ] }, { "title": "<code>OWNER TO</code>", "urls": [ "/${VERSION}/owner-to.html" ] }, { "title": "<code>PARTITION BY</code> (Enterprise)", "urls": [ "/${VERSION}/partition-by.html" ] }, { "title": "<code>PAUSE JOB</code>", "urls": [ "/${VERSION}/pause-job.html" ] }, { "title": "<code>PAUSE SCHEDULES</code>", "urls": [ "/${VERSION}/pause-schedules.html" ] }, { "title": "<code>PLACEMENT (RESTRICTED | DEFAULT)</code>", "urls": [ "/${VERSION}/placement-restricted.html" ] }, { "title": "<code>REASSIGN OWNED</code>", "urls": [ "/${VERSION}/reassign-owned.html" ] }, { "title": "<code>REFRESH</code>", "urls": [ "/${VERSION}/refresh.html" ] }, { "title": "<code>RENAME COLUMN</code>", "urls": [ "/${VERSION}/rename-column.html" ] }, { "title": "<code>RENAME CONSTRAINT</code>", "urls": [ "/${VERSION}/rename-constraint.html" ] }, { "title": "<code>RENAME DATABASE</code>", "urls": [ "/${VERSION}/rename-database.html" ] }, { "title": "<code>RENAME INDEX</code>", "urls": [ "/${VERSION}/rename-index.html" ] }, { "title": "<code>RENAME TABLE</code>", "urls": [ "/${VERSION}/rename-table.html" ] }, { "title": "<code>RELEASE SAVEPOINT</code>", "urls": [ "/${VERSION}/release-savepoint.html" ] }, { "title": "<code>RESET CLUSTER SETTING</code>", "urls": [ "/${VERSION}/reset-cluster-setting.html" ] }, { "title": "<code>RESET &#123;session variable&#125;</code>", "urls": [ "/${VERSION}/reset-vars.html" ] }, { "title": "<code>RESET &#123;storage parameter&#125;</code>", "urls": [ "/${VERSION}/reset-storage-parameter.html" ] }, { "title": "<code>RESTORE</code>", "urls": [ "/${VERSION}/restore.html" ] }, { "title": "<code>RESUME JOB</code>", "urls": [ "/${VERSION}/resume-job.html" ] }, { "title": "<code>RESUME SCHEDULES</code>", "urls": [ "/${VERSION}/resume-schedules.html" ] }, { "title": "<code>REVOKE</code>", "urls": [ "/${VERSION}/revoke.html" ] }, { "title": "<code>ROLLBACK</code>", "urls": [ "/${VERSION}/rollback-transaction.html" ] }, { "title": "<code>SAVEPOINT</code>", "urls": [ "/${VERSION}/savepoint.html" ] }, { "title": "<code>SELECT</code>", "urls": [ "/${VERSION}/select-clause.html" ] }, { "title": "<code>SELECT FOR UPDATE</code>", "urls": [ "/${VERSION}/select-for-update.html" ] }, { "title": "<code>SET CLUSTER SETTING</code>", "urls": [ "/${VERSION}/set-cluster-setting.html" ] }, { "title": "<code>SET &#123;session variable&#125;</code>", "urls": [ "/${VERSION}/set-vars.html" ] }, { "title": "<code>SET &#123;storage parameter&#125;</code>", "urls": [ "/${VERSION}/set-storage-parameter.html" ] }, { "title": "<code>SET LOCALITY</code>", "urls": [ "/${VERSION}/set-locality.html" ] }, { "title": "<code>SET PRIMARY REGION (Enterprise)</code>", "urls": [ "/${VERSION}/set-primary-region.html" ] }, { "title": "<code>SET SCHEMA</code>", "urls": [ "/${VERSION}/set-schema.html" ] }, { "title": "<code>SET TRANSACTION</code>", "urls": [ "/${VERSION}/set-transaction.html" ] }, { "title": "<code>SHOW BACKUP</code>", "urls": [ "/${VERSION}/show-backup.html" ] }, { "title": "<code>SHOW CLUSTER SETTING</code>", "urls": [ "/${VERSION}/show-cluster-setting.html" ] }, { "title": "<code>SHOW COLUMNS</code>", "urls": [ "/${VERSION}/show-columns.html" ] }, { "title": "<code>SHOW CONSTRAINTS</code>", "urls": [ "/${VERSION}/show-constraints.html" ] }, { "title": "<code>SHOW CREATE</code>", "urls": [ "/${VERSION}/show-create.html" ] }, { "title": "<code>SHOW CREATE SCHEDULE</code>", "urls": [ "/${VERSION}/show-create-schedule.html" ] }, { "title": "<code>SHOW DATABASES</code>", "urls": [ "/${VERSION}/show-databases.html" ] }, { "title": "<code>SHOW DEFAULT PRIVILEGES</code>", "urls": [ "/${VERSION}/show-default-privileges.html" ] }, { "title": "<code>SHOW ENUMS</code>", "urls": [ "/${VERSION}/show-enums.html" ] }, { "title": "<code>SHOW FULL TABLE SCANS</code>", "urls": [ "/${VERSION}/show-full-table-scans.html" ] }, { "title": "<code>SHOW GRANTS</code>", "urls": [ "/${VERSION}/show-grants.html" ] }, { "title": "<code>SHOW INDEX</code>", "urls": [ "/${VERSION}/show-index.html" ] }, { "title": "<code>SHOW JOBS</code>", "urls": [ "/${VERSION}/show-jobs.html" ] }, { "title": "<code>SHOW LOCALITY</code>", "urls": [ "/${VERSION}/show-locality.html" ] }, { "title": "<code>SHOW PARTITIONS</code> (Enterprise)", "urls": [ "/${VERSION}/show-partitions.html" ] }, { "title": "<code>SHOW RANGES</code>", "urls": [ "/${VERSION}/show-ranges.html" ] }, { "title": "<code>SHOW RANGE FOR ROW</code>", "urls": [ "/${VERSION}/show-range-for-row.html" ] }, { "title": "<code>SHOW REGIONS</code>", "urls": [ "/${VERSION}/show-regions.html" ] }, { "title": "<code>SHOW &#123;session variable&#125;</code>", "urls": [ "/${VERSION}/show-vars.html" ] }, { "title": "<code>SHOW SUPER REGIONS</code>", "urls": [ "/${VERSION}/show-super-regions.html" ] }, { "title": "<code>SHOW ROLES</code>", "urls": [ "/${VERSION}/show-roles.html" ] }, { "title": "<code>SHOW SCHEDULES</code>", "urls": [ "/${VERSION}/show-schedules.html" ] }, { "title": "<code>SHOW SCHEMAS</code>", "urls": [ "/${VERSION}/show-schemas.html" ] }, { "title": "<code>SHOW SEQUENCES</code>", "urls": [ "/${VERSION}/show-sequences.html" ] }, { "title": "<code>SHOW SESSIONS</code>", "urls": [ "/${VERSION}/show-sessions.html" ] }, { "title": "<code>SHOW STATEMENTS</code>", "urls": [ "/${VERSION}/show-statements.html" ] }, { "title": "<code>SHOW STATISTICS</code>", "urls": [ "/${VERSION}/show-statistics.html" ] }, { "title": "<code>SHOW SAVEPOINT STATUS</code>", "urls": [ "/${VERSION}/show-savepoint-status.html" ] }, { "title": "<code>SHOW TABLES</code>", "urls": [ "/${VERSION}/show-tables.html" ] }, { "title": "<code>SHOW TRACE FOR SESSION</code>", "urls": [ "/${VERSION}/show-trace.html" ] }, { "title": "<code>SHOW TRANSACTIONS</code>", "urls": [ "/${VERSION}/show-transactions.html" ] }, { "title": "<code>SHOW TYPES</code>", "urls": [ "/${VERSION}/show-types.html" ] }, { "title": "<code>SHOW USERS</code>", "urls": [ "/${VERSION}/show-users.html" ] }, { "title": "<code>SHOW ZONE CONFIGURATIONS</code>", "urls": [ "/${VERSION}/show-zone-configurations.html" ] }, { "title": "<code>SPLIT AT</code>", "urls": [ "/${VERSION}/split-at.html" ] }, { "title": "<code>SURVIVE {ZONE,REGION} FAILURE</code>", "urls": [ "/${VERSION}/survive-failure.html" ] }, { "title": "<code>TRUNCATE</code>", "urls": [ "/${VERSION}/truncate.html" ] }, { "title": "<code>UNSPLIT AT</code>", "urls": [ "/${VERSION}/unsplit-at.html" ] }, { "title": "<code>UPDATE</code>", "urls": [ "/${VERSION}/update.html" ] }, { "title": "<code>UPSERT</code>", "urls": [ "/${VERSION}/upsert.html" ] }, { "title": "<code>VALIDATE CONSTRAINT</code>", "urls": [ "/${VERSION}/validate-constraint.html" ] }, { "title": "<code>WITH &#123;storage parameter&#125;</code>", "urls": [ "/${VERSION}/with-storage-parameter.html" ] } ] }, { "title": "Data Types", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/data-types.html" ] }, { "title": "<code>ARRAY</code>", "urls": [ "/${VERSION}/array.html" ] }, { "title": "<code>BIT</code>", "urls": [ "/${VERSION}/bit.html" ] }, { "title": "<code>BOOL</code>", "urls": [ "/${VERSION}/bool.html" ] }, { "title": "<code>BYTES</code>", "urls": [ "/${VERSION}/bytes.html" ] }, { "title": "<code>COLLATE</code>", "urls": [ "/${VERSION}/collate.html" ] }, { "title": "<code>DATE</code>", "urls": [ "/${VERSION}/date.html" ] }, { "title": "<code>DECIMAL</code>", "urls": [ "/${VERSION}/decimal.html" ] }, { "title": "<code>ENUM</code>", "urls": [ "/${VERSION}/enum.html" ] }, { "title": "<code>FLOAT</code>", "urls": [ "/${VERSION}/float.html" ] }, { "title": "<code>INET</code>", "urls": [ "/${VERSION}/inet.html" ] }, { "title": "<code>INT</code>", "urls": [ "/${VERSION}/int.html" ] }, { "title": "<code>INTERVAL</code>", "urls": [ "/${VERSION}/interval.html" ] }, { "title": "<code>JSONB</code>", "urls": [ "/${VERSION}/jsonb.html" ] }, { "title": "<code>OID</code>", "urls": [ "/${VERSION}/oid.html" ] }, { "title": "<code>SERIAL</code>", "urls": [ "/${VERSION}/serial.html" ] }, { "title": "<code>STRING</code>", "urls": [ "/${VERSION}/string.html" ] }, { "title": "<code>TIME</code>", "urls": [ "/${VERSION}/time.html" ] }, { "title": "<code>TIMESTAMP</code>", "urls": [ "/${VERSION}/timestamp.html" ] }, { "title": "<code>UUID</code>", "urls": [ "/${VERSION}/uuid.html" ] } ] }, { "title": "Constraints", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/constraints.html" ] }, { "title": "Check", "urls": [ "/${VERSION}/check.html" ] }, { "title": "Default Value", "urls": [ "/${VERSION}/default-value.html" ] }, { "title": "Foreign Key", "urls": [ "/${VERSION}/foreign-key.html" ] }, { "title": "Not Null", "urls": [ "/${VERSION}/not-null.html" ] }, { "title": "Primary Key", "urls": [ "/${VERSION}/primary-key.html" ] }, { "title": "Unique", "urls": [ "/${VERSION}/unique.html" ] } ] }, { "title": "Functions and Operators", "urls": [ "/${VERSION}/functions-and-operators.html" ] }, { "title": "Window Functions", "urls": [ "/${VERSION}/window-functions.html" ] }, { "title": "Name Resolution", "urls": [ "/${VERSION}/sql-name-resolution.html" ] }, { "title": "System Catalogs", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/system-catalogs.html" ] }, { "title": "<code>crdb_internal</code>", "urls": [ "/${VERSION}/crdb-internal.html" ] }, { "title": "<code>information_schema</code>", "urls": [ "/${VERSION}/information-schema.html" ] }, { "title": "<code>pg_catalog</code>", "urls": [ "/${VERSION}/pg-catalog.html" ] }, { "title": "<code>pg_extension</code>", "urls": [ "/${VERSION}/pg-extension.html" ] } ] }, { "title": "Spatial Features", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/spatial-features.html" ] }, { "title": "Work with Spatial Data", "urls": [ "/${VERSION}/spatial-data.html" ] }, { "title": "Spatial and GIS Glossary", "urls": [ "/${VERSION}/spatial-glossary.html" ] }, { "title": "POINT", "urls": [ "/${VERSION}/point.html" ] }, { "title": "LINESTRING", "urls": [ "/${VERSION}/linestring.html" ] }, { "title": "POLYGON", "urls": [ "/${VERSION}/polygon.html" ] }, { "title": "MULTIPOINT", "urls": [ "/${VERSION}/multipoint.html" ] }, { "title": "MULTILINESTRING", "urls": [ "/${VERSION}/multilinestring.html" ] }, { "title": "MULTIPOLYGON", "urls": [ "/${VERSION}/multipolygon.html" ] }, { "title": "GEOMETRYCOLLECTION", "urls": [ "/${VERSION}/geometrycollection.html" ] }, { "title": "Well Known Text (WKT)", "urls": [ "/${VERSION}/well-known-text.html" ] }, { "title": "Well Known Binary (WKB)", "urls": [ "/${VERSION}/well-known-binary.html" ] }, { "title": "GeoJSON", "urls": [ "/${VERSION}/geojson.html" ] }, { "title": "SRID 4326 - longitude and latitude", "urls": [ "/${VERSION}/srid-4326.html" ] }, { "title": "ST_Contains", "urls": [ "/${VERSION}/st_contains.html" ] }, { "title": "ST_Within", "urls": [ "/${VERSION}/st_within.html" ] }, { "title": "ST_Intersects", "urls": [ "/${VERSION}/st_intersects.html" ] }, { "title": "ST_CoveredBy", "urls": [ "/${VERSION}/st_coveredby.html" ] }, { "title": "ST_Covers", "urls": [ "/${VERSION}/st_covers.html" ] }, { "title": "ST_Disjoint", "urls": [ "/${VERSION}/st_disjoint.html" ] }, { "title": "ST_Equals", "urls": [ "/${VERSION}/st_equals.html" ] }, { "title": "ST_Overlaps", "urls": [ "/${VERSION}/st_overlaps.html" ] }, { "title": "ST_Touches", "urls": [ "/${VERSION}/st_touches.html" ] }, { "title": "ST_ConvexHull", "urls": [ "/${VERSION}/st_convexhull.html" ] }, { "title": "ST_Union", "urls": [ "/${VERSION}/st_union.html" ] } ] }, { "title": "Experimental Features", "urls": [ "/${VERSION}/experimental-features.html" ] } ] }, { "title": "Cluster Settings", "urls": [ "/${VERSION}/cluster-settings.html" ] }, { "title": "Security", "items": [ { "title": "Security Overview", "urls": [ "/${VERSION}/security-reference/security-overview.html" ] }, { "title": "Authentication", "urls": [ "/${VERSION}/security-reference/authentication.html" ], "items": [ { "title": "SASL/SCRAM-SHA-256 Secure Password-based Authentication", "urls": [ "/${VERSION}/security-reference/scram-authentication.html" ] } ] }, { "title": "Authorization", "urls": [ "/${VERSION}/security-reference/authorization.html" ] }, { "title": "Encryption", "urls": [ "/${VERSION}/security-reference/encryption.html" ] }, { "title": "Public Key Infrastructure (PKI) and Transport Layer Security (TLS)", "urls": [ "/${VERSION}/security-reference/transport-layer-security.html" ] }, { "title": "Customer-Managed Encryption Keys (CMEK)", "urls": [ "/cockroachcloud/cmek.html" ] } ] }, { "title": "CLI", "items": [ { "title": "<code>cockroach</code> Commands Overview", "urls": [ "/${VERSION}/cockroach-commands.html" ] }, { "title": "Client Connection Parameters", "urls": [ "/${VERSION}/connection-parameters.html" ] }, { "title": "<code>cockroach</code> Commands", "items": [ { "title": "<code>cockroach start</code>", "urls": [ "/${VERSION}/cockroach-start.html" ] }, { "title": "<code>cockroach init</code>", "urls": [ "/${VERSION}/cockroach-init.html" ] }, { "title": "<code>cockroach start-single-node</code>", "urls": [ "/${VERSION}/cockroach-start-single-node.html" ] }, { "title": "<code>cockroach cert</code>", "urls": [ "/${VERSION}/cockroach-cert.html" ] }, { "title": "<code>cockroach sql</code>", "urls": [ "/${VERSION}/cockroach-sql.html" ] }, { "title": "<code>cockroach sqlfmt</code>", "urls": [ "/${VERSION}/cockroach-sqlfmt.html" ] }, { "title": "<code>cockroach node</code>", "urls": [ "/${VERSION}/cockroach-node.html" ] }, { "title": "<code>cockroach nodelocal upload</code>", "urls": [ "/${VERSION}/cockroach-nodelocal-upload.html" ] }, { "title": "<code>cockroach auth-session</code>", "urls": [ "/${VERSION}/cockroach-auth-session.html" ] }, { "title": "<code>cockroach demo</code>", "urls": [ "/${VERSION}/cockroach-demo.html" ] }, { "title": "<code>cockroach debug ballast</code>", "urls": [ "/${VERSION}/cockroach-debug-ballast.html" ] }, { "title": "<code>cockroach debug encryption-active-key</code>", "urls": [ "/${VERSION}/cockroach-debug-encryption-active-key.html" ] }, { "title": "<code>cockroach debug job-trace</code>", "urls": [ "/${VERSION}/cockroach-debug-job-trace.html" ] }, { "title": "<code>cockroach debug list-files</code>", "urls": [ "/${VERSION}/cockroach-debug-list-files.html" ] }, { "title": "<code>cockroach debug merge-logs</code>", "urls": [ "/${VERSION}/cockroach-debug-merge-logs.html" ] }, { "title": "<code>cockroach debug zip</code>", "urls": [ "/${VERSION}/cockroach-debug-zip.html" ] }, { "title": "<code>cockroach statement-diag</code>", "urls": [ "/${VERSION}/cockroach-statement-diag.html" ] }, { "title": "<code>cockroach gen</code>", "urls": [ "/${VERSION}/cockroach-gen.html" ] }, { "title": "<code>cockroach userfile upload</code>", "urls": [ "/${VERSION}/cockroach-userfile-upload.html" ] }, { "title": "<code>cockroach userfile list</code>", "urls": [ "/${VERSION}/cockroach-userfile-list.html" ] }, { "title": "<code>cockroach userfile get</code>", "urls": [ "/${VERSION}/cockroach-userfile-get.html" ] }, { "title": "<code>cockroach userfile delete</code>", "urls": [ "/${VERSION}/cockroach-userfile-delete.html" ] }, { "title": "<code>cockroach version</code>", "urls": [ "/${VERSION}/cockroach-version.html" ] }, { "title": "<code>cockroach workload</code>", "urls": [ "/${VERSION}/cockroach-workload.html" ] }, { "title": "<code>cockroach import</code>", "urls": [ "/${VERSION}/cockroach-import.html" ] } ] }, { "title": "The <code>cockroach-sql</code> command", "urls": [ "/${VERSION}/cockroach-sql-binary.html" ] } ] }, { "title": "DB Console", "items": [ { "title": "DB Console Overview", "urls": [ "/${VERSION}/ui-overview.html" ] }, { "title": "Cluster Overview Page", "urls": [ "/${VERSION}/ui-cluster-overview-page.html" ] }, { "title": "Metrics Dashboards", "items": [ { "title": "Overview Dashboard", "urls": [ "/${VERSION}/ui-overview-dashboard.html" ] }, { "title": "Hardware Dashboard", "urls": [ "/${VERSION}/ui-hardware-dashboard.html" ] }, { "title": "Runtime Dashboard", "urls": [ "/${VERSION}/ui-runtime-dashboard.html" ] }, { "title": "SQL Dashboard", "urls": [ "/${VERSION}/ui-sql-dashboard.html" ] }, { "title": "Storage Dashboard", "urls": [ "/${VERSION}/ui-storage-dashboard.html" ] }, { "title": "Replication Dashboard", "urls": [ "/${VERSION}/ui-replication-dashboard.html" ] }, { "title": "Distributed Dashboard", "urls": [ "/${VERSION}/ui-distributed-dashboard.html" ] }, { "title": "Queues Dashboard", "urls": [ "/${VERSION}/ui-queues-dashboard.html" ] }, { "title": "Slow Requests Dashboard", "urls": [ "/${VERSION}/ui-slow-requests-dashboard.html" ] }, { "title": "Changefeeds Dashboard", "urls": [ "/${VERSION}/ui-cdc-dashboard.html" ] }, { "title": "Overload Dashboard", "urls": [ "/${VERSION}/ui-overload-dashboard.html" ] }, { "title": "Custom Chart", "urls": [ "/${VERSION}/ui-custom-chart-debug-page.html" ] } ] }, { "title": "Databases Page", "urls": [ "/${VERSION}/ui-databases-page.html" ] }, { "title": "Sessions Page", "urls": [ "/${VERSION}/ui-sessions-page.html" ] }, { "title": "Statements Page", "urls": [ "/${VERSION}/ui-statements-page.html" ] }, { "title": "Transactions Page", "urls": [ "/${VERSION}/ui-transactions-page.html" ] }, { "title": "Network Latency Page", "urls": [ "/${VERSION}/ui-network-latency-page.html" ] }, { "title": "Hot Ranges Page", "urls": [ "/${VERSION}/ui-hot-ranges-page.html" ] }, { "title": "Jobs Page", "urls": [ "/${VERSION}/ui-jobs-page.html" ] }, { "title": "Advanced Debug Page", "urls": [ "/${VERSION}/ui-debug-pages.html" ] } ] }, { "title": "Transaction Retry Error Reference", "urls": [ "/${VERSION}/transaction-retry-error-reference.html" ] }, { "title": "Cluster API", "urls": [ "/api/cluster/v2.html" ] }, { "title": "Cloud API", "urls": [ "/api/cloud/v1.html" ] }, { "title": "Logging", "items": [ { "title": "Logging Levels and Channels", "urls": [ "/${VERSION}/logging.html" ] }, { "title": "Log Formats", "urls": [ "/${VERSION}/log-formats.html" ] }, { "title": "Notable Event Types", "urls": [ "/${VERSION}/eventlog.html" ] } ] }, { "title": "API Support Policy", "urls": [ "/${VERSION}/api-support-policy.html" ] }, { "title": "Diagnostics Reporting", "urls": [ "/${VERSION}/diagnostics-reporting.html" ] }, { "title": "Benchmarking", "items": [ { "title": "Overview", "urls": [ "/${VERSION}/performance.html" ] }, { "title": "Benchmarking Instructions", "urls": [ "/${VERSION}/performance-benchmarking-with-tpcc-local.html", "/${VERSION}/performance-benchmarking-with-tpcc-local-multiregion.html", "/${VERSION}/performance-benchmarking-with-tpcc-small.html", "/${VERSION}/performance-benchmarking-with-tpcc-medium.html", "/${VERSION}/performance-benchmarking-with-tpcc-large.html" ] }, { "title": "Serverless Performance Benchmarking", "urls": [ "/cockroachcloud/serverless-benchmarking.html" ] } ] }, { "title": "Unsupported Features in CockroachDB Serverless", "urls": [ "/cockroachcloud/serverless-unsupported-features.html" ] }, { "title": "Third-Party Support", "items": [ { "title": "Tools Supported by Cockroach Labs", "urls": [ "/${VERSION}/third-party-database-tools.html" ] }, { "title": "Tools Supported by the Community", "urls": [ "/${VERSION}/community-tooling.html" ] } ] } ] } , { "title": "Releases", "is_top_level": true, "items": [ { "title": "CockroachDB", "items": [ { "title": "All Releases", "urls": [ "/releases/index.html" ] }, { "title": "v22.1", "urls": [ "/releases/v22.1.html" ] }, { "title": "v21.2", "urls": [ "/releases/v21.2.html" ] }, { "title": "Latest Testing Release", "urls": [ "/releases/v22.2.html" ] }, { "title": "Release Support Policy", "urls": [ "/releases/release-support-policy.html" ] }, { "title": "Known Limitations", "urls": [ "/${VERSION}/known-limitations.html" ] }, { "title": "Technical Advisories", "urls": [ "/advisories/index.html", "/advisories/index.html" ] } ] }, { "title": "CockroachDB Cloud", "urls": [ "/releases/cloud.html" ] }, { "title": "CockroachDB Kubernetes Operator", "urls": [ "/releases/kubernetes-operator.html" ] } ] } , { "title": "Online Courses", "is_top_level": true, "urls": [ "https://web.archive.org/web/20221201132227/https://www.cockroachlabs.com/cockroach-university/" ] } ] }; // implemented in initSidebar.js renderSidebar(sidebar); })(); </script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/searchInputRendering.js" async></script> <script src="//web.archive.org/web/20221201132227js_/https://go.cockroachlabs.com/js/forms2/js/forms2.min.js" defer></script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/jquery.cookie.min.js" defer></script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/jquery.navgoco.min.js" defer></script> <!-- bs 4.X --> <script src="https://web.archive.org/web/20221201132227js_/https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="" crossorigin="anonymous" defer></script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/toc.js" defer></script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/cookieUtils.js" defer></script> <script src="https://web.archive.org/web/20221201132227js_/https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js" defer></script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/customscripts.js" defer></script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/setDocsContext.js" defer></script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/anchor.js" defer></script> <script> whenAvailable('anchors', function() { anchors.add('h2, h3, h4, h5'); }); </script> <script src="/web/20221201132227js_/https://www.cockroachlabs.com/docs/js/tocRightScrollHighlight.js" defer></script> <!-- 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://web.archive.org/web/20221201132227/https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NR8LC4');</script> <!-- End Google Tag Manager --> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://web.archive.org/web/20221201132227if_/https://www.googletagmanager.com/ns.html?id=GTM-NR8LC4" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Start of Google Remarketing Tag --> <script type="text/javascript" src="https://web.archive.org/web/20221201132227js_/https://www.googleadservices.com/pagead/conversion.js"></script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="https://web.archive.org/web/20221201132227im_/https://googleads.g.doubleclick.net/pagead/viewthroughconversion/947366135/?value=0&amp;guid=ON&amp;script=0" data-proofer-ignore/> </div> </noscript> <style> iframe[name=google_conversion_frame]{ display: none; } </style> <!-- End of Google Remarketing Tag --> </body> </html> <!-- FILE ARCHIVED ON 13:22:27 Dec 01, 2022 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 02:08:03 Nov 25, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.576 exclusion.robots: 0.027 exclusion.robots.policy: 0.017 esindex: 0.009 cdx.remote: 14.728 LoadShardBlock: 168.9 (3) PetaboxLoader3.datanode: 130.619 (4) PetaboxLoader3.resolve: 141.507 (3) load_resource: 144.022 -->

Pages: 1 2 3 4 5 6 7 8 9 10