diff --git a/version/2.5/.nojekyll b/version/2.5/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/version/2.5/404.html b/version/2.5/404.html new file mode 100644 index 0000000000..33b4ae4fd4 --- /dev/null +++ b/version/2.5/404.html @@ -0,0 +1,15 @@ + 404 Not Found | NVIDIA FLARE

404

+This page does not exist +

+Sorry, we couldn’t find the page you’re looking for. +

Popular pages

+Back to home +
\ No newline at end of file diff --git a/version/2.5/_astro/agnostic.80a9f1f4.css b/version/2.5/_astro/agnostic.80a9f1f4.css new file mode 100644 index 0000000000..1b67cf1ef2 --- /dev/null +++ b/version/2.5/_astro/agnostic.80a9f1f4.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter Variable,Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-start-4{inset-inline-start:-1rem}.bottom-0{bottom:0}.bottom-\[60px\]{bottom:60px}.left-0{left:0}.left-4{left:1rem}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.top-8{top:2rem}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.m-0\.5{margin:.125rem}.m-6{margin:1.5rem}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.-mb-px{margin-bottom:-1px}.-mt-6{margin-top:-1.5rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.me-1{margin-inline-end:.25rem}.me-1\.5{margin-inline-end:.375rem}.me-2{margin-inline-end:.5rem}.me-3{margin-inline-end:.75rem}.ml-12{margin-left:3rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.mr-12{margin-right:3rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.ms-1{margin-inline-start:.25rem}.ms-3{margin-inline-start:.75rem}.ms-4{margin-inline-start:1rem}.ms-6{margin-inline-start:1.5rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\/4{height:75%}.h-4{height:1rem}.h-44{height:11rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[700px\]{height:700px}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-px{height:1px}.w-0{width:0px}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[300px\]{width:300px}.w-\[400px\]{width:400px}.w-\[925px\]{width:925px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-\[1500px\]{max-width:1500px}.max-w-\[1600px\]{max-width:1600px}.max-w-lg{max-width:32rem}.max-w-screen-xl{max-width:1280px}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-16{gap:4rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-16{row-gap:4rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-24>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(6rem * var(--tw-space-x-reverse));margin-left:calc(6rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(243 244 246 / var(--tw-divide-opacity))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity))}.divide-gray-900\/5>:not([hidden])~:not([hidden]){border-color:#1118270d}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.text-pretty{text-wrap:pretty}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-e-lg{border-start-end-radius:.5rem;border-end-end-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-s-lg{border-start-start-radius:.5rem;border-end-start-radius:.5rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0px}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-none{border-style:none}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity))}.border-blue-700{--tw-border-opacity: 1;border-color:rgb(29 78 216 / var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-900\/5{border-color:#1118270d}.border-nvidia{--tw-border-opacity: 1;border-color:rgb(118 185 0 / var(--tw-border-opacity))}.border-nvidia-light{--tw-border-opacity: 1;border-color:rgb(213 235 195 / var(--tw-border-opacity))}.border-slate-400{--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-blue-700{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900\/10{background-color:#1118271a}.bg-gray-900\/50{background-color:#11182780}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity))}.bg-nvidia{--tw-bg-opacity: 1;background-color:rgb(118 185 0 / var(--tw-bg-opacity))}.bg-nvidia\/20{background-color:#76b90033}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-white\/50{background-color:#ffffff80}.bg-opacity-60{--tw-bg-opacity: .6}.stroke-gray-400{stroke:#9ca3af}.stroke-gray-500{stroke:#6b7280}.stroke-nvidia{stroke:#76b900}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-20{padding-left:5rem;padding-right:5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-6{padding-left:1.5rem}.pr-12{padding-right:3rem}.ps-10{padding-inline-start:2.5rem}.ps-12{padding-inline-start:3rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[26px\]{font-size:26px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity))}.text-neutral-200{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.text-neutral-400{--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.text-nvidia{--tw-text-opacity: 1;color:rgb(118 185 0 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-4{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-gray-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity))}.ring-gray-600\/20{--tw-ring-color: rgb(75 85 99 / .2)}.ring-green-600\/20{--tw-ring-color: rgb(22 163 74 / .2)}.ring-nvidia\/10{--tw-ring-color: rgb(118 185 0 / .1)}.ring-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.hover\:bg-blue-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 64 175 / var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.hover\:bg-green-500:hover{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:stroke-gray-600:hover{stroke:#4b5563}.hover\:stroke-nvidia:hover{stroke:#76b900}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.hover\:text-gray-100:hover{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.hover\:text-neutral-100:hover{--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.hover\:text-nvidia:hover{--tw-text-opacity: 1;color:rgb(118 185 0 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-nvidia:focus{--tw-border-opacity: 1;border-color:rgb(118 185 0 / var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity))}.focus\:ring-gray-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity))}.focus\:ring-nvidia:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(118 185 0 / var(--tw-ring-opacity))}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-nvidia:focus-visible{outline-color:#76b900}.group:hover .group-hover\:text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.peer:checked~.peer-checked\:border-nvidia{--tw-border-opacity: 1;border-color:rgb(118 185 0 / var(--tw-border-opacity))}.peer:checked~.peer-checked\:bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity))}.peer:checked~.peer-checked\:text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity))}.peer:checked~.peer-checked\:ring-green-600\/20{--tw-ring-color: rgb(22 163 74 / .2)}@media (min-width: 640px){.sm\:mt-16{margin-top:4rem}.sm\:mt-20{margin-top:5rem}.sm\:mt-24{margin-top:6rem}.sm\:mt-32{margin-top:8rem}.sm\:mt-6{margin-top:1.5rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-6{gap:1.5rem}.sm\:py-16{padding-top:4rem;padding-bottom:4rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:pb-10{padding-bottom:2.5rem}.sm\:pb-32{padding-bottom:8rem}.sm\:pt-16{padding-top:4rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:leading-8{line-height:2rem}}@media (min-width: 768px){.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:mb-0{margin-bottom:0}.md\:mr-14{margin-right:3.5rem}.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:w-36{width:9rem}.md\:w-auto{width:auto}.md\:max-w-2xl{max-width:42rem}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:justify-between{justify-content:space-between}.md\:space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.md\:space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.md\:border-b-0{border-bottom-width:0px}.md\:border-r{border-right-width:1px}.md\:border-r-2{border-right-width:2px}.md\:border-nvidia{--tw-border-opacity: 1;border-color:rgb(118 185 0 / var(--tw-border-opacity))}}@media (min-width: 1024px){.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mt-0{margin-top:0}.lg\:mt-16{margin-top:4rem}.lg\:grid{display:grid}.lg\:w-screen{width:100vw}.lg\:max-w-none{max-width:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-8{padding-top:2rem;padding-bottom:2rem}.lg\:pt-4{padding-top:1rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}.lg\:tracking-tight{letter-spacing:-.025em}}.rtl\:rotate-180:where([dir=rtl],[dir=rtl] *){--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:space-x-reverse:where([dir=rtl],[dir=rtl] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 1}.rtl\:text-right:where([dir=rtl],[dir=rtl] *){text-align:right}@media (prefers-color-scheme: dark){.dark\:border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:border-nvidia-light{--tw-border-opacity: 1;border-color:rgb(213 235 195 / var(--tw-border-opacity))}.dark\:border-transparent{border-color:transparent}.dark\:bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity))}.dark\:bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.dark\:bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:bg-gray-800\/50{background-color:#1f293780}.dark\:bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.dark\:bg-gray-900\/80{background-color:#111827cc}.dark\:bg-green-900{--tw-bg-opacity: 1;background-color:rgb(20 83 45 / var(--tw-bg-opacity))}.dark\:text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-nvidia-light{--tw-text-opacity: 1;color:rgb(213 235 195 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity))}.dark\:ring-gray-900{--tw-ring-opacity: 1;--tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity))}.dark\:hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:hover\:text-blue-500:hover{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.dark\:hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:hover\:text-nvidia-light:hover{--tw-text-opacity: 1;color:rgb(213 235 195 / var(--tw-text-opacity))}.dark\:hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.dark\:focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}.peer:checked~.dark\:peer-checked\:text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}}.\[\&\>span\]\:bg-gray-100>span{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.\[\&\>span\]\:bg-nvidia-light>span{--tw-bg-opacity: 1;background-color:rgb(213 235 195 / var(--tw-bg-opacity))}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/NVFlare/version/2.5/_astro/inter-cyrillic-ext-wght-normal.1c3007b8.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/NVFlare/version/2.5/_astro/inter-cyrillic-wght-normal.eba94878.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/NVFlare/version/2.5/_astro/inter-greek-ext-wght-normal.81f77e51.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/NVFlare/version/2.5/_astro/inter-greek-wght-normal.d92c6cbc.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/NVFlare/version/2.5/_astro/inter-vietnamese-wght-normal.15df7612.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/NVFlare/version/2.5/_astro/inter-latin-ext-wght-normal.a2bfd9fe.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/NVFlare/version/2.5/_astro/inter-latin-wght-normal.88df0b5a.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}img{content-visibility:auto} diff --git a/version/2.5/_astro/data_privacy_arch.594309a1.png b/version/2.5/_astro/data_privacy_arch.594309a1.png new file mode 100644 index 0000000000..8eafaa78fa Binary files /dev/null and b/version/2.5/_astro/data_privacy_arch.594309a1.png differ diff --git a/version/2.5/_astro/exam.0ae316a0.jpg b/version/2.5/_astro/exam.0ae316a0.jpg new file mode 100644 index 0000000000..9138a5a296 Binary files /dev/null and b/version/2.5/_astro/exam.0ae316a0.jpg differ diff --git a/version/2.5/_astro/fed_auth_arch.cccd9c44.png b/version/2.5/_astro/fed_auth_arch.cccd9c44.png new file mode 100644 index 0000000000..eb0da49d21 Binary files /dev/null and b/version/2.5/_astro/fed_auth_arch.cccd9c44.png differ diff --git a/version/2.5/_astro/framework_agnostic.f644b428.png b/version/2.5/_astro/framework_agnostic.f644b428.png new file mode 100644 index 0000000000..870daa02df Binary files /dev/null and b/version/2.5/_astro/framework_agnostic.f644b428.png differ diff --git a/version/2.5/_astro/glide.min.b8c7f528.js b/version/2.5/_astro/glide.min.b8c7f528.js new file mode 100644 index 0000000000..93fbf8361a --- /dev/null +++ b/version/2.5/_astro/glide.min.b8c7f528.js @@ -0,0 +1,9 @@ +import{c as te}from"./hoisted.f6a06418.js";/*! + * Glide.js v3.6.0 + * (c) 2013-2023 Jędrzej Chałubek (https://github.com/jedrzejchalubek/) + * Released under the MIT License. + */function tt(n){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?tt=function(e){return typeof e}:tt=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},tt(n)}function it(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}function xt(n,e){for(var s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ie(n){if(n===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}function re(n,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ie(n)}function se(n){var e=ne();return function(){var i=K(n),f;if(e){var u=K(this).constructor;f=Reflect.construct(i,arguments,u)}else f=i.apply(this,arguments);return re(this,f)}}function oe(n,e){for(;!Object.prototype.hasOwnProperty.call(n,e)&&(n=K(n),n!==null););return n}function et(){return typeof Reflect<"u"&&Reflect.get?et=Reflect.get:et=function(e,s,i){var f=oe(e,s);if(f){var u=Object.getOwnPropertyDescriptor(f,s);return u.get?u.get.call(arguments.length<3?e:i):u.value}},et.apply(this,arguments)}var ae={type:"slider",startAt:0,perView:1,focusAt:0,gap:10,autoplay:!1,hoverpause:!0,keyboard:!0,bound:!1,swipeThreshold:80,dragThreshold:120,perSwipe:"",touchRatio:.5,touchAngle:45,animationDuration:400,rewind:!0,rewindDuration:800,animationTimingFunc:"cubic-bezier(.165, .840, .440, 1)",waitForTransition:!0,throttle:10,direction:"ltr",peek:0,cloningRatio:1,breakpoints:{},lazy:!1,lazyScrollThreshold:1.2,lazyInitialSlidesLoaded:2,classes:{swipeable:"glide--swipeable",dragging:"glide--dragging",direction:{ltr:"glide--ltr",rtl:"glide--rtl"},type:{slider:"glide--slider",carousel:"glide--carousel"},slide:{clone:"glide__slide--clone",active:"glide__slide--active"},arrow:{disabled:"glide__arrow--disabled"},nav:{active:"glide__bullet--active"}}};function I(n){console.error("[Glide warn]: ".concat(n))}function P(n){return parseInt(n)}function ue(n){return parseFloat(n)}function lt(n){return typeof n=="string"}function $(n){var e=tt(n);return e==="function"||e==="object"&&!!n}function nt(n){return typeof n=="function"}function Bt(n){return typeof n>"u"}function ft(n){return n.constructor===Array}function ce(n,e,s){var i={};for(var f in e)nt(e[f])?i[f]=e[f](n,i,s):I("Extension must be a function");for(var u in i)nt(i[u].mount)&&i[u].mount();return i}function R(n,e,s){Object.defineProperty(n,e,s)}function le(n){return Object.keys(n).sort().reduce(function(e,s){return e[s]=n[s],e[s],e},{})}function dt(n,e){var s=Object.assign({},n,e);return e.hasOwnProperty("classes")&&(s.classes=Object.assign({},n.classes,e.classes),e.classes.hasOwnProperty("direction")&&(s.classes.direction=Object.assign({},n.classes.direction,e.classes.direction)),e.classes.hasOwnProperty("type")&&(s.classes.type=Object.assign({},n.classes.type,e.classes.type)),e.classes.hasOwnProperty("slide")&&(s.classes.slide=Object.assign({},n.classes.slide,e.classes.slide)),e.classes.hasOwnProperty("arrow")&&(s.classes.arrow=Object.assign({},n.classes.arrow,e.classes.arrow)),e.classes.hasOwnProperty("nav")&&(s.classes.nav=Object.assign({},n.classes.nav,e.classes.nav))),e.hasOwnProperty("breakpoints")&&(s.breakpoints=Object.assign({},n.breakpoints,e.breakpoints)),s}var fe=function(){function n(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};it(this,n),this.events=e,this.hop=e.hasOwnProperty}return rt(n,[{key:"on",value:function(s,i){if(ft(s)){for(var f=0;f1&&arguments[1]!==void 0?arguments[1]:{};it(this,n),this._c={},this._t=[],this._e=new fe,this.disabled=!1,this.selector=e,this.settings=dt(ae,s),this.index=this.settings.startAt}return rt(n,[{key:"mount",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this._e.emit("mount.before"),$(s)?this._c=ce(this,s,this._e):I("You need to provide a object on `mount()`"),this._e.emit("mount.after"),this}},{key:"mutate",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return ft(s)?this._t=s:I("You need to provide a array on `mutate()`"),this}},{key:"update",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.settings=dt(this.settings,s),s.hasOwnProperty("startAt")&&(this.index=s.startAt),this._e.emit("update"),this}},{key:"go",value:function(s){return this._c.Run.make(s),this}},{key:"move",value:function(s){return this._c.Transition.disable(),this._c.Move.make(s),this}},{key:"destroy",value:function(){return this._e.emit("destroy"),this}},{key:"play",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return s&&(this.settings.autoplay=s),this._e.emit("play"),this}},{key:"pause",value:function(){return this._e.emit("pause"),this}},{key:"disable",value:function(){return this.disabled=!0,this}},{key:"enable",value:function(){return this.disabled=!1,this}},{key:"on",value:function(s,i){return this._e.on(s,i),this}},{key:"isType",value:function(s){return this.settings.type===s}},{key:"settings",get:function(){return this._o},set:function(s){$(s)?this._o=s:I("Options must be an `object` instance.")}},{key:"index",get:function(){return this._i},set:function(s){this._i=P(s)}},{key:"type",get:function(){return this.settings.type}},{key:"disabled",get:function(){return this._d},set:function(s){this._d=!!s}}]),n}();function he(n,e,s){var i={mount:function(){this._o=!1},make:function(y){var p=this;n.disabled||(!n.settings.waitForTransition||n.disable(),this.move=y,s.emit("run.before",this.move),this.calculate(),s.emit("run",this.move),e.Transition.after(function(){p.isStart()&&s.emit("run.start",p.move),p.isEnd()&&s.emit("run.end",p.move),p.isOffset()&&(p._o=!1,s.emit("run.offset",p.move)),s.emit("run.after",p.move),n.enable()}))},calculate:function(){var y=this.move,p=this.length,b=y.steps,S=y.direction,H=1;if(S==="="){if(n.settings.bound&&P(b)>p){n.index=p;return}n.index=b;return}if(S===">"&&b===">"){n.index=p;return}if(S==="<"&&b==="<"){n.index=0;return}if(S==="|"&&(H=n.settings.perView||1),S===">"||S==="|"&&b===">"){var O=f(H);O>p&&(this._o=!0),n.index=u(O,H);return}if(S==="<"||S==="|"&&b==="<"){var L=d(H);L<0&&(this._o=!0),n.index=h(L,H);return}I("Invalid direction pattern [".concat(S).concat(b,"] has been used"))},isStart:function(){return n.index<=0},isEnd:function(){return n.index>=this.length},isOffset:function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0;return y?this._o?y==="|>"?this.move.direction==="|"&&this.move.steps===">":y==="|<"?this.move.direction==="|"&&this.move.steps==="<":this.move.direction===y:!1:this._o},isBound:function(){return n.isType("slider")&&n.settings.focusAt!=="center"&&n.settings.bound}};function f(m){var y=n.index;return n.isType("carousel")?y+m:y+(m-y%m)}function u(m,y){var p=i.length;return m<=p?m:n.isType("carousel")?m-(p+1):n.settings.rewind?i.isBound()&&!i.isEnd()?p:0:i.isBound()?p:Math.floor(p/y)*y}function d(m){var y=n.index;if(n.isType("carousel"))return y-m;var p=Math.ceil(y/m);return(p-1)*m}function h(m,y){var p=i.length;return m>=0?m:n.isType("carousel")?m+(p+1):n.settings.rewind?i.isBound()&&i.isStart()?p:Math.floor(p/y)*y:0}return R(i,"move",{get:function(){return this._m},set:function(y){var p=y.substr(1);this._m={direction:y.substr(0,1),steps:p?P(p)?P(p):p:0}}}),R(i,"length",{get:function(){var y=n.settings,p=e.Html.slides.length;return this.isBound()?p-1-(P(y.perView)-1)+P(y.focusAt):p-1}}),R(i,"offset",{get:function(){return this._o}}),i}function zt(){return new Date().getTime()}function U(n,e,s){var i,f,u,d,h=0;s||(s={});var m=function(){h=s.leading===!1?0:zt(),i=null,d=n.apply(f,u),i||(f=u=null)},y=function(){var b=zt();!h&&s.leading===!1&&(h=b);var S=e-(b-h);return f=this,u=arguments,S<=0||S>e?(i&&(clearTimeout(i),i=null),h=b,d=n.apply(f,u),i||(f=u=null)):!i&&s.trailing!==!1&&(i=setTimeout(m,S)),d};return y.cancel=function(){clearTimeout(i),h=0,i=f=u=null},y}var Z={ltr:["marginLeft","marginRight"],rtl:["marginRight","marginLeft"]};function ve(n,e,s){var i={apply:function(u){for(var d=0,h=u.length;d0&&arguments[0]!==void 0?arguments[0]:0;this.offset=d,s.emit("move",{movement:this.value}),e.Transition.after(function(){s.emit("move.after",{movement:u.value})})}};return R(i,"offset",{get:function(){return i._o},set:function(u){i._o=Bt(u)?0:P(u)}}),R(i,"translate",{get:function(){return e.Sizes.slideWidth*n.index}}),R(i,"value",{get:function(){var u=this.offset,d=this.translate;return e.Direction.is("rtl")?d+u:d-u}}),s.on(["build.before","run"],function(){i.make()}),i}function ye(n,e,s){var i={setupSlides:function(){for(var u="".concat(this.slideWidth,"px"),d=e.Html.slides,h=0;h0&&arguments[0]!==void 0?arguments[0]:[],d=e.Html.slides,h=n.settings,m=h.perView,y=h.classes,p=h.cloningRatio;if(d.length!==0)for(var b=+!!n.settings.peek,S=m+b+Math.round(m/2),H=d.slice(0,S).reverse(),O=d.slice(S*-1),L=0;L0&&arguments[0]!==void 0?arguments[0]:{};it(this,n),this.listeners=e}return rt(n,[{key:"on",value:function(s,i,f){var u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;lt(s)&&(s=[s]);for(var d=0;d2&&arguments[2]!==void 0?arguments[2]:!1;lt(s)&&(s=[s]);for(var u=0;u":"<","<":">","=":"="};function Te(n,e,s){var i={mount:function(){this.value=n.settings.direction},resolve:function(u){var d=u.slice(0,1);return this.is("rtl")?u.split(d).join(ke[d]):u},is:function(u){return this.value===u},addClass:function(){e.Html.root.classList.add(n.settings.classes.direction[this.value])},removeClass:function(){e.Html.root.classList.remove(n.settings.classes.direction[this.value])}};return R(i,"value",{get:function(){return i._v},set:function(u){Se.indexOf(u)>-1?i._v=u:I("Direction value must be `ltr` or `rtl`")}}),s.on(["destroy","update"],function(){i.removeClass()}),s.on("update",function(){i.mount()}),s.on(["build.before","update"],function(){i.addClass()}),i}function Oe(n,e){return{modify:function(i){return e.Direction.is("rtl")?-i:i}}}function He(n,e){return{modify:function(i){var f=Math.floor(i/e.Sizes.slideWidth);return i+e.Gaps.value*f}}}function xe(n,e){return{modify:function(i){return i+e.Clones.grow/2}}}function ze(n,e){return{modify:function(i){if(n.settings.focusAt>=0){var f=e.Peek.value;return $(f)?i-f.before:i-f}return i}}}function Ae(n,e){return{modify:function(i){var f=e.Gaps.value,u=e.Sizes.width,d=n.settings.focusAt,h=e.Sizes.slideWidth;return d==="center"?i-(u/2-h/2):i-h*d-f*d}}}function Re(n,e,s){var i=[He,xe,ze,Ae].concat(n._t,[Oe]);return{mutate:function(u){for(var d=0;d")||e.Run.isOffset("|>")?u+(d-h):(d+h)%u},getTravelDistance:function(){var u=e.Sizes.slideWidth*n.settings.perView;return e.Run.isOffset(">")||e.Run.isOffset("|>")?u*-1:u}};return s.on("move",function(f){if(!n.isType("carousel")||!e.Run.isOffset())return i.set(f.movement);e.Transition.after(function(){s.emit("translate.jump"),i.set(e.Sizes.slideWidth*n.index)});var u=e.Sizes.slideWidth*e.Translate.getStartIndex();return i.set(u-e.Translate.getTravelDistance())}),s.on("destroy",function(){i.remove()}),i}function Pe(n,e,s){var i=!1,f={compose:function(d){var h=n.settings;return i?"".concat(d," 0ms ").concat(h.animationTimingFunc):"".concat(d," ").concat(this.duration,"ms ").concat(h.animationTimingFunc)},set:function(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";e.Html.wrapper.style.transition=this.compose(d)},remove:function(){e.Html.wrapper.style.transition=""},after:function(d){setTimeout(function(){d()},this.duration)},enable:function(){i=!1,this.set()},disable:function(){i=!0,this.set()}};return R(f,"duration",{get:function(){var d=n.settings;return n.isType("slider")&&e.Run.offset?d.rewindDuration:d.animationDuration}}),s.on("move",function(){f.set()}),s.on(["build.before","resize","translate.jump"],function(){f.disable()}),s.on("run",function(){f.enable()}),s.on("destroy",function(){f.remove()}),f}var It=!1;try{var Lt=Object.defineProperty({},"passive",{get:function(){It=!0}});window.addEventListener("testPassive",null,Lt),window.removeEventListener("testPassive",null,Lt)}catch{}var vt=It,G=["touchstart","mousedown"],Pt=["touchmove","mousemove"],Mt=["touchend","touchcancel","mouseup","mouseleave"],Et=["mousedown","mousemove","mouseup","mouseleave"];function Me(n,e,s){var i=new F,f=0,u=0,d=0,h=!1,m=vt?{passive:!0}:!1,y={mount:function(){this.bindSwipeStart()},start:function(b){if(!h&&!n.disabled){this.disable();var S=this.touches(b);f=null,u=P(S.pageX),d=P(S.pageY),this.bindSwipeMove(),this.bindSwipeEnd(),s.emit("swipe.start")}},move:function(b){if(!n.disabled){var S=n.settings,H=S.touchAngle,O=S.touchRatio,L=S.classes,M=this.touches(b),j=P(M.pageX)-u,B=P(M.pageY)-d,D=Math.abs(j<<2),Q=Math.abs(B<<2),A=Math.sqrt(D+Q),J=Math.sqrt(Q);if(f=Math.asin(J/A),f*180/Math.PIj&&D"))):e.Move.make(),e.Html.root.classList.remove(L.dragging),this.unbindSwipeMove(),this.unbindSwipeEnd(),s.emit("swipe.end")}},bindSwipeStart:function(){var b=this,S=n.settings,H=S.swipeThreshold,O=S.dragThreshold;H&&i.on(G[0],e.Html.wrapper,function(L){b.start(L)},m),O&&i.on(G[1],e.Html.wrapper,function(L){b.start(L)},m)},unbindSwipeStart:function(){i.off(G[0],e.Html.wrapper,m),i.off(G[1],e.Html.wrapper,m)},bindSwipeMove:function(){var b=this;i.on(Pt,e.Html.wrapper,U(function(S){b.move(S)},n.settings.throttle),m)},unbindSwipeMove:function(){i.off(Pt,e.Html.wrapper,m)},bindSwipeEnd:function(){var b=this;i.on(Mt,e.Html.wrapper,function(S){b.end(S)})},unbindSwipeEnd:function(){i.off(Mt,e.Html.wrapper)},touches:function(b){return Et.indexOf(b.type)>-1?b:b.touches[0]||b.changedTouches[0]},threshold:function(b){var S=n.settings;return Et.indexOf(b.type)>-1?S.dragThreshold:S.swipeThreshold},enable:function(){return h=!1,e.Transition.enable(),this},disable:function(){return h=!0,e.Transition.disable(),this}};return s.on("build.after",function(){e.Html.root.classList.add(n.settings.classes.swipeable)}),s.on("destroy",function(){y.unbindSwipeStart(),y.unbindSwipeMove(),y.unbindSwipeEnd(),i.destroy()}),y}function Ee(n,e,s){var i=new F,f={mount:function(){this.bind()},bind:function(){i.on("dragstart",e.Html.wrapper,this.dragstart)},unbind:function(){i.off("dragstart",e.Html.wrapper)},dragstart:function(d){d.preventDefault()}};return s.on("destroy",function(){f.unbind(),i.destroy()}),f}function je(n,e,s){var i=n.settings,f=!1,u={mount:function(){i.lazy&&(this._wrapper=e.Html.root,this._slideElements=this._wrapper.querySelectorAll(".glide__slide"))},withinView:function(){var h=this._wrapper.getBoundingClientRect();h.bottom>0&&h.right>0&&h.top<=(window.innerHeight*i.lazyScrollThreshold||document.documentElement.clientHeight)*i.lazyScrollThreshold&&h.left<=(window.innerWidth*i.lazyScrollThreshold||document.documentElement.clientWidth*i.lazyScrollThreshold)&&this.lazyLoad()},lazyLoad:function(){var h,m=i.lazyInitialSlidesLoaded-1;f=!0,n.index+m"))),d.code==="ArrowLeft"&&e.Run.make(e.Direction.resolve("".concat(h,"<")))}};return s.on(["destroy","update"],function(){f.unbind()}),s.on("update",function(){f.mount()}),s.on("destroy",function(){i.destroy()}),f}function qe(n,e,s){var i=new F,f={mount:function(){this.enable(),this.start(),n.settings.hoverpause&&this.bind()},enable:function(){this._e=!0},disable:function(){this._e=!1},start:function(){var d=this;this._e&&(this.enable(),n.settings.autoplay&&Bt(this._i)&&(this._i=setInterval(function(){d.stop(),e.Run.make(">"),d.start(),s.emit("autoplay")},this.time)))},stop:function(){this._i=clearInterval(this._i)},bind:function(){var d=this;i.on("mouseover",e.Html.root,function(){d._e&&d.stop()}),i.on("mouseout",e.Html.root,function(){d._e&&d.start()})},unbind:function(){i.off(["mouseover","mouseout"],e.Html.root)}};return R(f,"time",{get:function(){var d=e.Html.slides[n.index].getAttribute("data-glide-autoplay");return P(d||n.settings.autoplay)}}),s.on(["destroy","update"],function(){f.unbind()}),s.on(["run.before","swipe.start","update"],function(){f.stop()}),s.on(["pause","destroy"],function(){f.disable(),f.stop()}),s.on(["run.after","swipe.end"],function(){f.start()}),s.on(["play"],function(){f.enable(),f.start()}),s.on("update",function(){f.mount()}),s.on("destroy",function(){i.destroy()}),f}function jt(n){return $(n)?le(n):(I("Breakpoints option must be an object"),{})}function Fe(n,e,s){var i=new F,f=n.settings,u=jt(f.breakpoints),d=Object.assign({},f),h={match:function(y){if(typeof window.matchMedia<"u"){for(var p in y)if(y.hasOwnProperty(p)&&window.matchMedia("(max-width: ".concat(p,"px)")).matches)return y[p]}return d}};return Object.assign(f,h.match(u)),i.on("resize",window,U(function(){n.settings=dt(f,h.match(u))},n.settings.throttle)),s.on("update",function(){u=jt(u),d=Object.assign({},f)}),s.on("destroy",function(){i.off("resize",window)}),h}var Ye={Html:me,Translate:Le,Transition:Pe,Direction:Te,Peek:ge,Sizes:ye,Gaps:ve,Move:pe,Clones:be,Resize:_e,Build:we,Run:he,Swipe:Me,Images:Ee,Anchors:Be,Controls:We,Keyboard:Ne,Autoplay:qe,Breakpoints:Fe,Lazy:je},$e=function(n){ee(s,n);var e=se(s);function s(){return it(this,s),e.apply(this,arguments)}return rt(s,[{key:"mount",value:function(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return et(K(s.prototype),"mount",this).call(this,Object.assign({},Ye,f))}}]),s}(de),Xe={exports:{}};/*! + * Glide.js v3.6.0 + * (c) 2013-2023 Jędrzej Chałubek (https://github.com/jedrzejchalubek/) + * Released under the MIT License. + */(function(n,e){(function(s,i){n.exports=i()})(te,function(){function s(o){return s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(o)}function i(o,t){if(!(o instanceof t))throw new TypeError("Cannot call a class as a function")}function f(o,t){for(var c=0;c"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var c,r=d(o);if(t){var a=d(this).constructor;c=Reflect.construct(r,arguments,a)}else c=r.apply(this,arguments);return m(this,c)}}function p(o,t){for(;!Object.prototype.hasOwnProperty.call(o,t)&&(o=d(o))!==null;);return o}function b(){return b=typeof Reflect<"u"&&Reflect.get?Reflect.get:function(o,t,c){var r=p(o,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(arguments.length<3?o:c):a.value}},b.apply(this,arguments)}var S={type:"slider",startAt:0,perView:1,focusAt:0,gap:10,autoplay:!1,hoverpause:!0,keyboard:!0,bound:!1,swipeThreshold:80,dragThreshold:120,perSwipe:"",touchRatio:.5,touchAngle:45,animationDuration:400,rewind:!0,rewindDuration:800,animationTimingFunc:"cubic-bezier(.165, .840, .440, 1)",waitForTransition:!0,throttle:10,direction:"ltr",peek:0,cloningRatio:1,breakpoints:{},lazy:!1,lazyScrollThreshold:1.2,lazyInitialSlidesLoaded:2,classes:{swipeable:"glide--swipeable",dragging:"glide--dragging",direction:{ltr:"glide--ltr",rtl:"glide--rtl"},type:{slider:"glide--slider",carousel:"glide--carousel"},slide:{clone:"glide__slide--clone",active:"glide__slide--active"},arrow:{disabled:"glide__arrow--disabled"},nav:{active:"glide__bullet--active"}}};function H(o){console.error("[Glide warn]: ".concat(o))}function O(o){return parseInt(o)}function L(o){return typeof o=="string"}function M(o){var t=s(o);return t==="function"||t==="object"&&!!o}function j(o){return typeof o=="function"}function B(o){return o===void 0}function D(o){return o.constructor===Array}function Q(o,t,c){var r={};for(var a in t)j(t[a])?r[a]=t[a](o,r,c):H("Extension must be a function");for(var l in r)j(r[l].mount)&&r[l].mount();return r}function A(o,t,c){Object.defineProperty(o,t,c)}function J(o,t){var c=Object.assign({},o,t);return t.hasOwnProperty("classes")&&(c.classes=Object.assign({},o.classes,t.classes),t.classes.hasOwnProperty("direction")&&(c.classes.direction=Object.assign({},o.classes.direction,t.classes.direction)),t.classes.hasOwnProperty("type")&&(c.classes.type=Object.assign({},o.classes.type,t.classes.type)),t.classes.hasOwnProperty("slide")&&(c.classes.slide=Object.assign({},o.classes.slide,t.classes.slide)),t.classes.hasOwnProperty("arrow")&&(c.classes.arrow=Object.assign({},o.classes.arrow,t.classes.arrow)),t.classes.hasOwnProperty("nav")&&(c.classes.nav=Object.assign({},o.classes.nav,t.classes.nav))),t.hasOwnProperty("breakpoints")&&(c.breakpoints=Object.assign({},o.breakpoints,t.breakpoints)),c}var Vt=function(){function o(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};i(this,o),this.events=t,this.hop=t.hasOwnProperty}return u(o,[{key:"on",value:function(t,c){if(!D(t)){this.hop.call(this.events,t)||(this.events[t]=[]);var r=this.events[t].push(c)-1;return{remove:function(){delete this.events[t][r]}}}for(var a=0;a1&&arguments[1]!==void 0?arguments[1]:{};i(this,o),this._c={},this._t=[],this._e=new Vt,this.disabled=!1,this.selector=t,this.settings=J(S,c),this.index=this.settings.startAt}return u(o,[{key:"mount",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this._e.emit("mount.before"),M(t)?this._c=Q(this,t,this._e):H("You need to provide a object on `mount()`"),this._e.emit("mount.after"),this}},{key:"mutate",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return D(t)?this._t=t:H("You need to provide a array on `mutate()`"),this}},{key:"update",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.settings=J(this.settings,t),t.hasOwnProperty("startAt")&&(this.index=t.startAt),this._e.emit("update"),this}},{key:"go",value:function(t){return this._c.Run.make(t),this}},{key:"move",value:function(t){return this._c.Transition.disable(),this._c.Move.make(t),this}},{key:"destroy",value:function(){return this._e.emit("destroy"),this}},{key:"play",value:function(){var t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return t&&(this.settings.autoplay=t),this._e.emit("play"),this}},{key:"pause",value:function(){return this._e.emit("pause"),this}},{key:"disable",value:function(){return this.disabled=!0,this}},{key:"enable",value:function(){return this.disabled=!1,this}},{key:"on",value:function(t,c){return this._e.on(t,c),this}},{key:"isType",value:function(t){return this.settings.type===t}},{key:"settings",get:function(){return this._o},set:function(t){M(t)?this._o=t:H("Options must be an `object` instance.")}},{key:"index",get:function(){return this._i},set:function(t){this._i=O(t)}},{key:"type",get:function(){return this.settings.type}},{key:"disabled",get:function(){return this._d},set:function(t){this._d=!!t}}]),o}();function gt(){return new Date().getTime()}function X(o,t,c){var r,a,l,v,g=0;c||(c={});var _=function(){g=c.leading===!1?0:gt(),r=null,v=o.apply(a,l),r||(a=l=null)},T=function(){var k=gt();g||c.leading!==!1||(g=k);var w=t-(k-g);return a=this,l=arguments,w<=0||w>t?(r&&(clearTimeout(r),r=null),g=k,v=o.apply(a,l),r||(a=l=null)):r||c.trailing===!1||(r=setTimeout(_,w)),v};return T.cancel=function(){clearTimeout(r),g=0,r=a=l=null},T}var st={ltr:["marginLeft","marginRight"],rtl:["marginRight","marginLeft"]};function pt(o){if(o&&o.parentNode){for(var t=o.parentNode.firstChild,c=[];t;t=t.nextSibling)t.nodeType===1&&t!==o&&c.push(t);return c}return[]}function yt(o){return!!(o&&o instanceof window.HTMLElement)}function ot(o){return Array.prototype.slice.call(o)}var wt='[data-glide-el="track"]',V=function(){function o(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};i(this,o),this.listeners=t}return u(o,[{key:"on",value:function(t,c,r){var a=arguments.length>3&&arguments[3]!==void 0&&arguments[3];L(t)&&(t=[t]);for(var l=0;l2&&arguments[2]!==void 0&&arguments[2];L(t)&&(t=[t]);for(var a=0;a":"<","<":">","=":"="};function Ft(o,t){return{modify:function(c){return t.Direction.is("rtl")?-c:c}}}function Yt(o,t){return{modify:function(c){var r=Math.floor(c/t.Sizes.slideWidth);return c+t.Gaps.value*r}}}function Xt(o,t){return{modify:function(c){return c+t.Clones.grow/2}}}function Kt(o,t){return{modify:function(c){if(o.settings.focusAt>=0){var r=t.Peek.value;return M(r)?c-r.before:c-r}return c}}}function $t(o,t){return{modify:function(c){var r=t.Gaps.value,a=t.Sizes.width,l=o.settings.focusAt,v=t.Sizes.slideWidth;return l==="center"?c-(a/2-v/2):c-v*l-r*l}}}var bt=!1;try{var _t=Object.defineProperty({},"passive",{get:function(){bt=!0}});window.addEventListener("testPassive",null,_t),window.removeEventListener("testPassive",null,_t)}catch{}var at=bt,C=["touchstart","mousedown"],St=["touchmove","mousemove"],kt=["touchend","touchcancel","mouseup","mouseleave"],Tt=["mousedown","mousemove","mouseup","mouseleave"],ut='[data-glide-el^="controls"]',Ut="".concat(ut,' [data-glide-dir*="<"]'),Jt="".concat(ut,' [data-glide-dir*=">"]');function Ot(o){return M(o)?(t=o,Object.keys(t).sort().reduce(function(c,r){return c[r]=t[r],c[r],c},{})):(H("Breakpoints option must be an object"),{});var t}var Qt={Html:function(o,t,c){var r={mount:function(){this.root=o.selector,this.track=this.root.querySelector(wt),this.collectSlides()},collectSlides:function(){this.slides=ot(this.wrapper.children).filter(function(a){return!a.classList.contains(o.settings.classes.slide.clone)})}};return A(r,"root",{get:function(){return r._r},set:function(a){L(a)&&(a=document.querySelector(a)),yt(a)?r._r=a:H("Root element must be a existing Html node")}}),A(r,"track",{get:function(){return r._t},set:function(a){yt(a)?r._t=a:H("Could not find track element. Please use ".concat(wt," attribute."))}}),A(r,"wrapper",{get:function(){return r.track.children[0]}}),c.on("update",function(){r.collectSlides()}),r},Translate:function(o,t,c){var r={set:function(a){var l=function(g,_,T){var k=[Yt,Xt,Kt,$t].concat(g._t,[Ft]);return{mutate:function(w){for(var x=0;x")||t.Run.isOffset("|>")?a+(l-v):(l+v)%a},getTravelDistance:function(){var a=t.Sizes.slideWidth*o.settings.perView;return t.Run.isOffset(">")||t.Run.isOffset("|>")?-1*a:a}};return c.on("move",function(a){if(!o.isType("carousel")||!t.Run.isOffset())return r.set(a.movement);t.Transition.after(function(){c.emit("translate.jump"),r.set(t.Sizes.slideWidth*o.index)});var l=t.Sizes.slideWidth*t.Translate.getStartIndex();return r.set(l-t.Translate.getTravelDistance())}),c.on("destroy",function(){r.remove()}),r},Transition:function(o,t,c){var r=!1,a={compose:function(l){var v=o.settings;return r?"".concat(l," 0ms ").concat(v.animationTimingFunc):"".concat(l," ").concat(this.duration,"ms ").concat(v.animationTimingFunc)},set:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";t.Html.wrapper.style.transition=this.compose(l)},remove:function(){t.Html.wrapper.style.transition=""},after:function(l){setTimeout(function(){l()},this.duration)},enable:function(){r=!1,this.set()},disable:function(){r=!0,this.set()}};return A(a,"duration",{get:function(){var l=o.settings;return o.isType("slider")&&t.Run.offset?l.rewindDuration:l.animationDuration}}),c.on("move",function(){a.set()}),c.on(["build.before","resize","translate.jump"],function(){a.disable()}),c.on("run",function(){a.enable()}),c.on("destroy",function(){a.remove()}),a},Direction:function(o,t,c){var r={mount:function(){this.value=o.settings.direction},resolve:function(a){var l=a.slice(0,1);return this.is("rtl")?a.split(l).join(qt[l]):a},is:function(a){return this.value===a},addClass:function(){t.Html.root.classList.add(o.settings.classes.direction[this.value])},removeClass:function(){t.Html.root.classList.remove(o.settings.classes.direction[this.value])}};return A(r,"value",{get:function(){return r._v},set:function(a){Nt.indexOf(a)>-1?r._v=a:H("Direction value must be `ltr` or `rtl`")}}),c.on(["destroy","update"],function(){r.removeClass()}),c.on("update",function(){r.mount()}),c.on(["build.before","update"],function(){r.addClass()}),r},Peek:function(o,t,c){var r={mount:function(){this.value=o.settings.peek}};return A(r,"value",{get:function(){return r._v},set:function(a){M(a)?(a.before=O(a.before),a.after=O(a.after)):a=O(a),r._v=a}}),A(r,"reductor",{get:function(){var a=r.value,l=o.settings.perView;return M(a)?a.before/l+a.after/l:2*a/l}}),c.on(["resize","update"],function(){r.mount()}),r},Sizes:function(o,t,c){var r={setupSlides:function(){for(var a="".concat(this.slideWidth,"px"),l=t.Html.slides,v=0;v0&&arguments[0]!==void 0?arguments[0]:0;this.offset=l,c.emit("move",{movement:this.value}),t.Transition.after(function(){c.emit("move.after",{movement:a.value})})}};return A(r,"offset",{get:function(){return r._o},set:function(a){r._o=B(a)?0:O(a)}}),A(r,"translate",{get:function(){return t.Sizes.slideWidth*o.index}}),A(r,"value",{get:function(){var a=this.offset,l=this.translate;return t.Direction.is("rtl")?l+a:l-a}}),c.on(["build.before","run"],function(){r.make()}),r},Clones:function(o,t,c){var r={mount:function(){this.items=[],o.isType("carousel")&&(this.items=this.collect())},collect:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],l=t.Html.slides,v=o.settings,g=v.perView,_=v.classes,T=v.cloningRatio;if(l.length!==0)for(var k=+!!o.settings.peek,w=g+k+Math.round(g/2),x=l.slice(0,w).reverse(),z=l.slice(-1*w),E=0;El?void(o.index=l):void(o.index=v);if(g!==">"||v!==">")if(g!=="<"||v!=="<"){if(g==="|"&&(_=o.settings.perView||1),g===">"||g==="|"&&v===">"){var T=function(w){var x=o.index;return o.isType("carousel")?x+w:x+(w-x%w)}(_);return T>l&&(this._o=!0),void(o.index=function(w,x){var z=r.length;return w<=z?w:o.isType("carousel")?w-(z+1):o.settings.rewind?r.isBound()&&!r.isEnd()?z:0:r.isBound()?z:Math.floor(z/x)*x}(T,_))}if(g==="<"||g==="|"&&v==="<"){var k=function(w){var x=o.index;return o.isType("carousel")?x-w:(Math.ceil(x/w)-1)*w}(_);return k<0&&(this._o=!0),void(o.index=function(w,x){var z=r.length;return w>=0?w:o.isType("carousel")?w+(z+1):o.settings.rewind?r.isBound()&&r.isStart()?z:Math.floor(z/x)*x:0}(k,_))}H("Invalid direction pattern [".concat(g).concat(v,"] has been used"))}else o.index=0;else o.index=l},isStart:function(){return o.index<=0},isEnd:function(){return o.index>=this.length},isOffset:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0;return a?!!this._o&&(a==="|>"?this.move.direction==="|"&&this.move.steps===">":a==="|<"?this.move.direction==="|"&&this.move.steps==="<":this.move.direction===a):this._o},isBound:function(){return o.isType("slider")&&o.settings.focusAt!=="center"&&o.settings.bound}};return A(r,"move",{get:function(){return this._m},set:function(a){var l=a.substr(1);this._m={direction:a.substr(0,1),steps:l?O(l)?O(l):l:0}}}),A(r,"length",{get:function(){var a=o.settings,l=t.Html.slides.length;return this.isBound()?l-1-(O(a.perView)-1)+O(a.focusAt):l-1}}),A(r,"offset",{get:function(){return this._o}}),r},Swipe:function(o,t,c){var r=new V,a=0,l=0,v=0,g=!1,_=!!at&&{passive:!0},T={mount:function(){this.bindSwipeStart()},start:function(k){if(!g&&!o.disabled){this.disable();var w=this.touches(k);a=null,l=O(w.pageX),v=O(w.pageY),this.bindSwipeMove(),this.bindSwipeEnd(),c.emit("swipe.start")}},move:function(k){if(!o.disabled){var w=o.settings,x=w.touchAngle,z=w.touchRatio,E=w.classes,W=this.touches(k),N=O(W.pageX)-l,q=O(W.pageY)-v,Y=Math.abs(N<<2),Ht=Math.abs(q<<2),Zt=Math.sqrt(Y+Ht),Gt=Math.sqrt(Ht);if(!(180*(a=Math.asin(Gt/Zt))/Math.PIN&&Y"))):t.Move.make(),t.Html.root.classList.remove(E.dragging),this.unbindSwipeMove(),this.unbindSwipeEnd(),c.emit("swipe.end")}},bindSwipeStart:function(){var k=this,w=o.settings,x=w.swipeThreshold,z=w.dragThreshold;x&&r.on(C[0],t.Html.wrapper,function(E){k.start(E)},_),z&&r.on(C[1],t.Html.wrapper,function(E){k.start(E)},_)},unbindSwipeStart:function(){r.off(C[0],t.Html.wrapper,_),r.off(C[1],t.Html.wrapper,_)},bindSwipeMove:function(){var k=this;r.on(St,t.Html.wrapper,X(function(w){k.move(w)},o.settings.throttle),_)},unbindSwipeMove:function(){r.off(St,t.Html.wrapper,_)},bindSwipeEnd:function(){var k=this;r.on(kt,t.Html.wrapper,function(w){k.end(w)})},unbindSwipeEnd:function(){r.off(kt,t.Html.wrapper)},touches:function(k){return Tt.indexOf(k.type)>-1?k:k.touches[0]||k.changedTouches[0]},threshold:function(k){var w=o.settings;return Tt.indexOf(k.type)>-1?w.dragThreshold:w.swipeThreshold},enable:function(){return g=!1,t.Transition.enable(),this},disable:function(){return g=!0,t.Transition.disable(),this}};return c.on("build.after",function(){t.Html.root.classList.add(o.settings.classes.swipeable)}),c.on("destroy",function(){T.unbindSwipeStart(),T.unbindSwipeMove(),T.unbindSwipeEnd(),r.destroy()}),T},Images:function(o,t,c){var r=new V,a={mount:function(){this.bind()},bind:function(){r.on("dragstart",t.Html.wrapper,this.dragstart)},unbind:function(){r.off("dragstart",t.Html.wrapper)},dragstart:function(l){l.preventDefault()}};return c.on("destroy",function(){a.unbind(),r.destroy()}),a},Anchors:function(o,t,c){var r=new V,a=!1,l=!1,v={mount:function(){this._a=t.Html.wrapper.querySelectorAll("a"),this.bind()},bind:function(){r.on("click",t.Html.wrapper,this.click)},unbind:function(){r.off("click",t.Html.wrapper)},click:function(g){l&&(g.stopPropagation(),g.preventDefault())},detach:function(){if(l=!0,!a){for(var g=0;g"))),l.code==="ArrowLeft"&&t.Run.make(t.Direction.resolve("".concat(v,"<")))}};return c.on(["destroy","update"],function(){a.unbind()}),c.on("update",function(){a.mount()}),c.on("destroy",function(){r.destroy()}),a},Autoplay:function(o,t,c){var r=new V,a={mount:function(){this.enable(),this.start(),o.settings.hoverpause&&this.bind()},enable:function(){this._e=!0},disable:function(){this._e=!1},start:function(){var l=this;this._e&&(this.enable(),o.settings.autoplay&&B(this._i)&&(this._i=setInterval(function(){l.stop(),t.Run.make(">"),l.start(),c.emit("autoplay")},this.time)))},stop:function(){this._i=clearInterval(this._i)},bind:function(){var l=this;r.on("mouseover",t.Html.root,function(){l._e&&l.stop()}),r.on("mouseout",t.Html.root,function(){l._e&&l.start()})},unbind:function(){r.off(["mouseover","mouseout"],t.Html.root)}};return A(a,"time",{get:function(){var l=t.Html.slides[o.index].getAttribute("data-glide-autoplay");return O(l||o.settings.autoplay)}}),c.on(["destroy","update"],function(){a.unbind()}),c.on(["run.before","swipe.start","update"],function(){a.stop()}),c.on(["pause","destroy"],function(){a.disable(),a.stop()}),c.on(["run.after","swipe.end"],function(){a.start()}),c.on(["play"],function(){a.enable(),a.start()}),c.on("update",function(){a.mount()}),c.on("destroy",function(){r.destroy()}),a},Breakpoints:function(o,t,c){var r=new V,a=o.settings,l=Ot(a.breakpoints),v=Object.assign({},a),g={match:function(_){if(window.matchMedia!==void 0){for(var T in _)if(_.hasOwnProperty(T)&&window.matchMedia("(max-width: ".concat(T,"px)")).matches)return _[T]}return v}};return Object.assign(a,g.match(l)),r.on("resize",window,X(function(){o.settings=J(a,g.match(l))},o.settings.throttle)),c.on("update",function(){l=Ot(l),v=Object.assign({},a)}),c.on("destroy",function(){r.off("resize",window)}),g},Lazy:function(o,t,c){var r=o.settings,a=!1,l={mount:function(){r.lazy&&(this._wrapper=t.Html.root,this._slideElements=this._wrapper.querySelectorAll(".glide__slide"))},withinView:function(){var v=this._wrapper.getBoundingClientRect();v.bottom>0&&v.right>0&&v.top<=(window.innerHeight*r.lazyScrollThreshold||document.documentElement.clientHeight)*r.lazyScrollThreshold&&v.left<=(window.innerWidth*r.lazyScrollThreshold||document.documentElement.clientWidth*r.lazyScrollThreshold)&&this.lazyLoad()},lazyLoad:function(){var v,g=r.lazyInitialSlidesLoaded-1;a=!0,v=o.index+g0&&arguments[0]!==void 0?arguments[0]:{};return b(d(c.prototype),"mount",this).call(this,Object.assign({},Qt,r))}}]),c}(Wt);return Ct})})(Xe);export{$e as G}; diff --git a/version/2.5/_astro/google_colab.svg.6e34820a.png b/version/2.5/_astro/google_colab.svg.6e34820a.png new file mode 100644 index 0000000000..4cf7c49ee8 Binary files /dev/null and b/version/2.5/_astro/google_colab.svg.6e34820a.png differ diff --git a/version/2.5/_astro/hoisted.c06c1089.js b/version/2.5/_astro/hoisted.c06c1089.js new file mode 100644 index 0000000000..38bd1a3850 --- /dev/null +++ b/version/2.5/_astro/hoisted.c06c1089.js @@ -0,0 +1 @@ +import"./hoisted.f6a06418.js";document.addEventListener("DOMContentLoaded",function(){const e=window.location.pathname;if(e.startsWith("/NVFlare/research")){document.getElementById("404-message").innerText="Redirecting to NVFlare GitHub research folder...";const t=e.replace("/NVFlare/research","");window.location.href=`https://github.com/NVIDIA/NVFlare/tree/main/research${t}`}}); diff --git a/version/2.5/_astro/hoisted.c7c1cb33.js b/version/2.5/_astro/hoisted.c7c1cb33.js new file mode 100644 index 0000000000..55b52fc9ac --- /dev/null +++ b/version/2.5/_astro/hoisted.c7c1cb33.js @@ -0,0 +1 @@ +import"./hoisted.f6a06418.js";import{G as i}from"./glide.min.b8c7f528.js";const l={type:"carousel",animationDuration:1500,autoplay:7e3,perView:3,gap:32,dragThreshold:!1,breakpoints:{1280:{perView:2},1024:{perView:1}}};var s=new i(document.getElementById("highlights-glide"),l).mount();s.on("move.after",function(g){var t=document.getElementById("highlights-bullets");for(const e of t.children)e.classList.contains("glide__bullet--active")?e.classList.replace("bg-gray-200","bg-white"):e.classList.replace("bg-white","bg-gray-200")});const a=document.getElementById("highlights-glide");a?.classList.add("hidden"); diff --git a/version/2.5/_astro/hoisted.f26e2814.js b/version/2.5/_astro/hoisted.f26e2814.js new file mode 100644 index 0000000000..2035a8da84 --- /dev/null +++ b/version/2.5/_astro/hoisted.f26e2814.js @@ -0,0 +1,5 @@ +import"./hoisted.f6a06418.js";import{G as z}from"./glide.min.b8c7f528.js";var V={exports:{}};(function(d){(function(){if(typeof Prism<"u"){var p=Object.assign||function(e,n){for(var i in n)n.hasOwnProperty(i)&&(e[i]=n[i]);return e},h={"remove-trailing":"boolean","remove-indent":"boolean","left-trim":"boolean","right-trim":"boolean","break-lines":"number",indent:"number","remove-initial-line-feed":"boolean","tabs-to-spaces":"number","spaces-to-tabs":"number"};b.prototype={setDefaults:function(e){this.defaults=p(this.defaults,e)},normalize:function(e,n){for(var i in n=p(this.defaults,n)){var r=i.replace(/-(\w)/g,function(a,s){return s.toUpperCase()});i!=="normalize"&&r!=="setDefaults"&&n[i]&&this[r]&&(e=this[r].call(this,e,n[i]))}return e},leftTrim:function(e){return e.replace(/^\s+/,"")},rightTrim:function(e){return e.replace(/\s+$/,"")},tabsToSpaces:function(e,n){return n=0|n||4,e.replace(/\t/g,new Array(++n).join(" "))},spacesToTabs:function(e,n){return n=0|n||4,e.replace(RegExp(" {"+n+"}","g")," ")},removeTrailing:function(e){return e.replace(/\s*?$/gm,"")},removeInitialLineFeed:function(e){return e.replace(/^(?:\r?\n|\r)/,"")},removeIndent:function(e){var n=e.match(/^[^\S\n\r]*(?=\S)/gm);return n&&n[0].length?(n.sort(function(i,r){return i.length-r.length}),n[0].length?e.replace(RegExp("^"+n[0],"gm"),""):e):e},indent:function(e,n){return e.replace(/^[^\S\n\r]*(?=\S)/gm,new Array(++n).join(" ")+"$&")},breakLines:function(e,n){n=n===!0?80:0|n||80;for(var i=e.split(` +`),r=0;rn&&(a[t]=` +`+a[t],s=o)}i[r]=a.join("")}return i.join(` +`)}},d.exports&&(d.exports=b),Prism.plugins.NormalizeWhitespace=new b({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",function(e){var n=Prism.plugins.NormalizeWhitespace;if((!e.settings||e.settings["whitespace-normalization"]!==!1)&&Prism.util.isActive(e.element,"whitespace-normalization",!0))if(e.element&&e.element.parentNode||!e.code){var i=e.element.parentNode;if(e.code&&i&&i.nodeName.toLowerCase()==="pre"){for(var r in e.settings==null&&(e.settings={}),h)if(Object.hasOwnProperty.call(h,r)){var a=h[r];if(i.hasAttribute("data-"+r))try{var s=JSON.parse(i.getAttribute("data-"+r)||"true");typeof s===a&&(e.settings[r]=s)}catch{}}for(var t=i.childNodes,o="",l="",c=!1,f=0;f]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python;(function(){if(typeof Prism<"u"&&typeof document<"u"){var d="line-numbers",p=/\n(?!$)/g,h=Prism.plugins.lineNumbers={getLine:function(e,n){if(e.tagName==="PRE"&&e.classList.contains(d)){var i=e.querySelector(".line-numbers-rows");if(i){var r=parseInt(e.getAttribute("data-start"),10)||1,a=r+(i.children.length-1);na&&(n=a);var s=n-r;return i.children[s]}}},resize:function(e){g([e])},assumeViewportIndependence:!0},b=void 0;window.addEventListener("resize",function(){h.assumeViewportIndependence&&b===window.innerWidth||(b=window.innerWidth,g(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))}),Prism.hooks.add("complete",function(e){if(e.code){var n=e.element,i=n.parentNode;if(i&&/pre/i.test(i.nodeName)&&!n.querySelector(".line-numbers-rows")&&Prism.util.isActive(n,d)){n.classList.remove(d),i.classList.add(d);var r,a=e.code.match(p),s=a?a.length+1:1,t=new Array(s+1).join("");(r=document.createElement("span")).setAttribute("aria-hidden","true"),r.className="line-numbers-rows",r.innerHTML=t,i.hasAttribute("data-start")&&(i.style.counterReset="linenumber "+(parseInt(i.getAttribute("data-start"),10)-1)),e.element.appendChild(r),g([i]),Prism.hooks.run("line-numbers",e)}}}),Prism.hooks.add("line-numbers",function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0})}function g(e){if((e=e.filter(function(i){var r,a=(r=i,r?window.getComputedStyle?getComputedStyle(r):r.currentStyle||null:null)["white-space"];return a==="pre-wrap"||a==="pre-line"})).length!=0){var n=e.map(function(i){var r=i.querySelector("code"),a=i.querySelector(".line-numbers-rows");if(r&&a){var s=i.querySelector(".line-numbers-sizer"),t=r.textContent.split(p);s||((s=document.createElement("span")).className="line-numbers-sizer",r.appendChild(s)),s.innerHTML="0",s.style.display="block";var o=s.getBoundingClientRect().height;return s.innerHTML="",{element:i,lines:t,lineHeights:[],oneLinerHeight:o,sizer:s}}}).filter(Boolean);n.forEach(function(i){var r=i.sizer,a=i.lines,s=i.lineHeights,t=i.oneLinerHeight;s[a.length-1]=void 0,a.forEach(function(o,l){if(o&&o.length>1){var c=r.appendChild(document.createElement("span"));c.style.display="block",c.textContent=o}else s[l]=t})}),n.forEach(function(i){for(var r=i.sizer,a=i.lineHeights,s=0,t=0;t ",document.body.appendChild(u),d=u.offsetHeight===38,document.body.removeChild(u)}return d}()?parseInt:parseFloat)(getComputedStyle(t).lineHeight),S=Prism.util.isActive(t,p),P=t.querySelector("code"),k=S?t:P||t,w=[],T=P.textContent.match(b),q=T?T.length+1:1,C=P&&k!=P?function(u,A){var v=getComputedStyle(u),y=getComputedStyle(A);function m(E){return+E.substr(0,E.length-2)}return A.offsetTop+m(y.borderTopWidth)+m(y.paddingTop)-m(v.paddingTop)}(t,P):0;c.forEach(function(u){var A=u.split("-"),v=+A[0],y=+A[1]||v;if(!((y=Math.min(q+f,y))v&&m.setAttribute("data-end",String(y)),m.style.top=(v-f-1)*L+C+"px",m.textContent=new Array(y-v+2).join(` +`)});w.push(function(){m.style.width=t.scrollWidth+"px"}),w.push(function(){k.appendChild(m)})}});var N=t.id;if(S&&Prism.util.isActive(t,h)&&N){i(t,h)||w.push(function(){t.classList.add(h)});var I=parseInt(t.getAttribute("data-start")||"1");n(".line-numbers-rows > span",t).forEach(function(u,A){var v=A+I;u.onclick=function(){var y=N+"."+v;g=!1,location.hash=y,setTimeout(function(){g=!0},1)}})}return function(){w.forEach(r)}}};var e=0;Prism.hooks.add("before-sanity-check",function(t){var o=t.element.parentElement;if(a(o)){var l=0;n(".line-highlight",o).forEach(function(c){l+=c.textContent.length,c.parentNode.removeChild(c)}),l&&/^(?: \n)+$/.test(t.code.slice(-l))&&(t.code=t.code.slice(0,-l))}}),Prism.hooks.add("complete",function t(o){var l=o.element.parentElement;if(a(l)){clearTimeout(e);var c=Prism.plugins.lineNumbers,f=o.plugins&&o.plugins.lineNumbers;i(l,p)&&c&&!f?Prism.hooks.add("line-numbers",t):(Prism.plugins.lineHighlight.highlightLines(l)(),e=setTimeout(s,1))}}),window.addEventListener("hashchange",s),window.addEventListener("resize",function(){n("pre").filter(a).map(function(t){return Prism.plugins.lineHighlight.highlightLines(t)}).forEach(r)})}function n(t,o){return Array.prototype.slice.call((o||document).querySelectorAll(t))}function i(t,o){return t.classList.contains(o)}function r(t){t()}function a(t){return!!(t&&/pre/i.test(t.nodeName)&&(t.hasAttribute("data-line")||t.id&&Prism.util.isActive(t,h)))}function s(){var t=location.hash.slice(1);n(".temporary.line-highlight").forEach(function(f){f.parentNode.removeChild(f)});var o=(t.match(/\.([\d,-]+)$/)||[,""])[1];if(o&&!document.getElementById(t)){var l=t.slice(0,t.lastIndexOf(".")),c=document.getElementById(l);c&&(c.hasAttribute("data-line")||c.setAttribute("data-line",""),Prism.plugins.lineHighlight.highlightLines(c,o,"temporary ")(),g&&document.querySelector(".temporary.line-highlight").scrollIntoView())}}})();const $={type:"slider",animationDuration:300,rewind:!0,bound:!1,focusAt:0,startAt:0,perView:3,gap:32,peek:{before:0,after:45},dragThreshold:!0,breakpoints:{1280:{perView:3},1024:{perView:2},768:{perView:1}}},M=document.querySelectorAll(".glide");M.forEach(d=>{let p=d.querySelectorAll(".glide__slide"),h=d.querySelectorAll(".glide__bullet");var b=new z(d,$).mount();for(let g of p)g.addEventListener("click",function(){let n=this.dataset.index;b.go("="+n)});b.on("move.after",function(g){p.forEach(e=>{var n=document.getElementById(e.id+"-video");e.classList.contains("glide__slide--active")?(e.classList.replace("opacity-70","opacity-100"),e.classList.replace("shadow-md","shadow-xl"),e.classList.add("bg-white"),n?.classList.remove("hidden")):(e.classList.replace("opacity-100","opacity-70"),e.classList.replace("shadow-xl","shadow-md"),e.classList.remove("bg-white"),n?.classList.add("hidden"))}),h.forEach(e=>{e.classList.contains("glide__bullet--active")?e.classList.replace("bg-gray-200","bg-white"):e.classList.replace("bg-white","bg-gray-200")})})});const R={type:"slider",animationDuration:300,rewindDuration:300,perView:1,gap:32,dragThreshold:!1,touchRatio:0,swipeThreshold:!1},_=document.getElementById("series-glide");var H=new z(_,R).mount(),W=_.querySelectorAll(".glide__slide");H.on("move.after",function(d){W.forEach(p=>{var h=document.getElementById(p.id+"-content");p.classList.contains("glide__slide--active")?h?.classList.remove("hidden"):h?.classList.add("hidden")})});_.addEventListener("click",O);function O(){H.update()} diff --git a/version/2.5/_astro/hoisted.f6a06418.js b/version/2.5/_astro/hoisted.f6a06418.js new file mode 100644 index 0000000000..8534b06b9d --- /dev/null +++ b/version/2.5/_astro/hoisted.f6a06418.js @@ -0,0 +1,9 @@ +var B=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},N={exports:{}};(function(G){var W=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */var i=function(g){var h=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,b=0,x={},s={manual:g.Prism&&g.Prism.manual,disableWorkerMessageHandler:g.Prism&&g.Prism.disableWorkerMessageHandler,util:{encode:function a(e){return e instanceof y?new y(e.type,a(e.content),e.alias):Array.isArray(e)?e.map(a):e.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(n){var a=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(n.stack)||[])[1];if(a){var e=document.getElementsByTagName("script");for(var t in e)if(e[t].src==a)return e[t]}return null}},isActive:function(a,e,t){for(var n="no-"+e;a;){var r=a.classList;if(r.contains(e))return!0;if(r.contains(n))return!1;a=a.parentElement}return!!t}},languages:{plain:x,plaintext:x,text:x,txt:x,extend:function(a,e){var t=s.util.clone(s.languages[a]);for(var n in e)t[n]=e[n];return t},insertBefore:function(a,e,t,n){n=n||s.languages;var r=n[a],l={};for(var o in r)if(r.hasOwnProperty(o)){if(o==e)for(var u in t)t.hasOwnProperty(u)&&(l[u]=t[u]);t.hasOwnProperty(o)||(l[o]=r[o])}var d=n[a];return n[a]=l,s.languages.DFS(s.languages,function(v,w){w===d&&v!=a&&(this[v]=l)}),l},DFS:function a(e,t,n,r){r=r||{};var l=s.util.objId;for(var o in e)if(e.hasOwnProperty(o)){t.call(e,o,e[o],n||o);var u=e[o],d=s.util.type(u);d==="Object"&&!r[l(u)]?(r[l(u)]=!0,a(u,t,null,r)):d==="Array"&&!r[l(u)]&&(r[l(u)]=!0,a(u,t,o,r))}}},plugins:{},highlightAll:function(a,e){s.highlightAllUnder(document,a,e)},highlightAllUnder:function(a,e,t){var n={callback:t,container:a,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};s.hooks.run("before-highlightall",n),n.elements=Array.prototype.slice.apply(n.container.querySelectorAll(n.selector)),s.hooks.run("before-all-elements-highlight",n);for(var r=0,l;l=n.elements[r++];)s.highlightElement(l,e===!0,n.callback)},highlightElement:function(a,e,t){var n=s.util.getLanguage(a),r=s.languages[n];s.util.setLanguage(a,n);var l=a.parentElement;l&&l.nodeName.toLowerCase()==="pre"&&s.util.setLanguage(l,n);var o=a.textContent,u={element:a,language:n,grammar:r,code:o};function d(w){u.highlightedCode=w,s.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,s.hooks.run("after-highlight",u),s.hooks.run("complete",u),t&&t.call(u.element)}if(s.hooks.run("before-sanity-check",u),l=u.element.parentElement,l&&l.nodeName.toLowerCase()==="pre"&&!l.hasAttribute("tabindex")&&l.setAttribute("tabindex","0"),!u.code){s.hooks.run("complete",u),t&&t.call(u.element);return}if(s.hooks.run("before-highlight",u),!u.grammar){d(s.util.encode(u.code));return}if(e&&g.Worker){var v=new Worker(s.filename);v.onmessage=function(w){d(w.data)},v.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else d(s.highlight(u.code,u.grammar,u.language))},highlight:function(a,e,t){var n={code:a,grammar:e,language:t};if(s.hooks.run("before-tokenize",n),!n.grammar)throw new Error('The language "'+n.language+'" has no grammar.');return n.tokens=s.tokenize(n.code,n.grammar),s.hooks.run("after-tokenize",n),y.stringify(s.util.encode(n.tokens),n.language)},tokenize:function(a,e){var t=e.rest;if(t){for(var n in t)e[n]=t[n];delete e.rest}var r=new T;return S(r,r.head,a),C(a,r,e,r.head,0),L(r)},hooks:{all:{},add:function(a,e){var t=s.hooks.all;t[a]=t[a]||[],t[a].push(e)},run:function(a,e){var t=s.hooks.all[a];if(!(!t||!t.length))for(var n=0,r;r=t[n++];)r(e)}},Token:y};g.Prism=s;function y(a,e,t,n){this.type=a,this.content=e,this.alias=t,this.length=(n||"").length|0}y.stringify=function a(e,t){if(typeof e=="string")return e;if(Array.isArray(e)){var n="";return e.forEach(function(d){n+=a(d,t)}),n}var r={type:e.type,content:a(e.content,t),tag:"span",classes:["token",e.type],attributes:{},language:t},l=e.alias;l&&(Array.isArray(l)?Array.prototype.push.apply(r.classes,l):r.classes.push(l)),s.hooks.run("wrap",r);var o="";for(var u in r.attributes)o+=" "+u+'="'+(r.attributes[u]||"").replace(/"/g,""")+'"';return"<"+r.tag+' class="'+r.classes.join(" ")+'"'+o+">"+r.content+""};function $(a,e,t,n){a.lastIndex=e;var r=a.exec(t);if(r&&n&&r[1]){var l=r[1].length;r.index+=l,r[0]=r[0].slice(l)}return r}function C(a,e,t,n,r,l){for(var o in t)if(!(!t.hasOwnProperty(o)||!t[o])){var u=t[o];u=Array.isArray(u)?u:[u];for(var d=0;d=l.reach);A+=m.value.length,m=m.next){var E=m.value;if(e.length>a.length)return;if(!(E instanceof y)){var z=1,F;if(q){if(F=$(U,A,a,H),!F||F.index>=a.length)break;var I=F.index,J=F.index+F[0].length,k=A;for(k+=m.value.length;I>=k;)m=m.next,k+=m.value.length;if(k-=m.value.length,A=k,m.value instanceof y)continue;for(var _=m;_!==e.tail&&(kl.reach&&(l.reach=O);var D=m.prev;j&&(D=S(e,D,j),A+=j.length),M(e,D,z);var K=new y(o,w?s.tokenize(P,w):P,X,P);if(m=S(e,D,K),Z&&S(e,m,Z),z>1){var R={cause:o+","+d,reach:O};C(a,e,t,m.prev,A,R),l&&R.reach>l.reach&&(l.reach=R.reach)}}}}}}function T(){var a={value:null,prev:null,next:null},e={value:null,prev:a,next:null};a.next=e,this.head=a,this.tail=e,this.length=0}function S(a,e,t){var n=e.next,r={value:t,prev:e,next:n};return e.next=r,n.prev=r,a.length++,r}function M(a,e,t){for(var n=e.next,r=0;r/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},i.languages.markup.tag.inside["attr-value"].inside.entity=i.languages.markup.entity,i.languages.markup.doctype.inside["internal-subset"].inside=i.languages.markup,i.hooks.add("wrap",function(g){g.type==="entity"&&(g.attributes.title=g.content.replace(/&/,"&"))}),Object.defineProperty(i.languages.markup.tag,"addInlined",{value:function(h,b){var x={};x["language-"+b]={pattern:/(^$)/i,lookbehind:!0,inside:i.languages[b]},x.cdata=/^$/i;var s={"included-cdata":{pattern://i,inside:x}};s["language-"+b]={pattern:/[\s\S]+/,inside:i.languages[b]};var y={};y[h]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return h}),"i"),lookbehind:!0,greedy:!0,inside:s},i.languages.insertBefore("markup","cdata",y)}}),Object.defineProperty(i.languages.markup.tag,"addAttribute",{value:function(g,h){i.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+g+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[h,"language-"+h],inside:i.languages[h]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),i.languages.html=i.languages.markup,i.languages.mathml=i.languages.markup,i.languages.svg=i.languages.markup,i.languages.xml=i.languages.extend("markup",{}),i.languages.ssml=i.languages.xml,i.languages.atom=i.languages.xml,i.languages.rss=i.languages.xml,function(g){var h=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;g.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+h.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+h.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+h.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+h.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:h,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},g.languages.css.atrule.inside.rest=g.languages.css;var b=g.languages.markup;b&&(b.tag.addInlined("style","css"),b.tag.addAttribute("style","css"))}(i),i.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},i.languages.javascript=i.languages.extend("clike",{"class-name":[i.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),i.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,i.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:i.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:i.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:i.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:i.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:i.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),i.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:i.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),i.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),i.languages.markup&&(i.languages.markup.tag.addInlined("script","javascript"),i.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),i.languages.js=i.languages.javascript,function(){if(typeof i>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var g="Loading…",h=function(f,c){return"✖ Error "+f+" while fetching file: "+c},b="✖ Error: File does not exist or is empty",x={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},s="data-src-status",y="loading",$="loaded",C="failed",T="pre[data-src]:not(["+s+'="'+$+'"]):not(['+s+'="'+y+'"])';function S(f,c,p){var a=new XMLHttpRequest;a.open("GET",f,!0),a.onreadystatechange=function(){a.readyState==4&&(a.status<400&&a.responseText?c(a.responseText):a.status>=400?p(h(a.status,a.statusText)):p(b))},a.send(null)}function M(f){var c=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(f||"");if(c){var p=Number(c[1]),a=c[2],e=c[3];return a?e?[p,Number(e)]:[p,void 0]:[p,p]}}i.hooks.add("before-highlightall",function(f){f.selector+=", "+T}),i.hooks.add("before-sanity-check",function(f){var c=f.element;if(c.matches(T)){f.code="",c.setAttribute(s,y);var p=c.appendChild(document.createElement("CODE"));p.textContent=g;var a=c.getAttribute("data-src"),e=f.language;if(e==="none"){var t=(/\.(\w+)$/.exec(a)||[,"none"])[1];e=x[t]||t}i.util.setLanguage(p,e),i.util.setLanguage(c,e);var n=i.plugins.autoloader;n&&n.loadLanguages(e),S(a,function(r){c.setAttribute(s,$);var l=M(c.getAttribute("data-range"));if(l){var o=r.split(/\r\n?|\n/g),u=l[0],d=l[1]==null?o.length:l[1];u<0&&(u+=o.length),u=Math.max(0,Math.min(u-1,o.length)),d<0&&(d+=o.length),d=Math.max(0,Math.min(d,o.length)),r=o.slice(u,d).join(` +`),c.hasAttribute("data-start")||c.setAttribute("data-start",String(u+1))}p.textContent=r,i.highlightElement(p)},function(r){c.setAttribute(s,C),p.textContent=r})}}),i.plugins.fileHighlight={highlight:function(c){for(var p=(c||document).querySelectorAll(T),a=0,e;e=p[a++];)i.highlightElement(e)}};var L=!1;i.fileHighlight=function(){L||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),L=!0),i.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(N);export{B as c}; diff --git a/version/2.5/_astro/index.937a8479.css b/version/2.5/_astro/index.937a8479.css new file mode 100644 index 0000000000..9bbb1fb488 --- /dev/null +++ b/version/2.5/_astro/index.937a8479.css @@ -0,0 +1 @@ +code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px white;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#905}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function,.token.class-name{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:10;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px #0003;border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:linear-gradient(to right,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}@media print{.line-highlight{-webkit-print-color-adjust:exact;color-adjust:exact}}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:#997a6666;color:#f5f2f0;font:700 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.line-numbers .line-highlight:before,.line-numbers .line-highlight:after{content:none}pre[id].linkable-line-numbers span.line-numbers-rows{pointer-events:all}pre[id].linkable-line-numbers span.line-numbers-rows>span:before{cursor:pointer}pre[id].linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:#80808033}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right} diff --git a/version/2.5/_astro/inter-cyrillic-ext-wght-normal.1c3007b8.woff2 b/version/2.5/_astro/inter-cyrillic-ext-wght-normal.1c3007b8.woff2 new file mode 100644 index 0000000000..a61a0be57f Binary files /dev/null and b/version/2.5/_astro/inter-cyrillic-ext-wght-normal.1c3007b8.woff2 differ diff --git a/version/2.5/_astro/inter-cyrillic-wght-normal.eba94878.woff2 b/version/2.5/_astro/inter-cyrillic-wght-normal.eba94878.woff2 new file mode 100644 index 0000000000..b655a43884 Binary files /dev/null and b/version/2.5/_astro/inter-cyrillic-wght-normal.eba94878.woff2 differ diff --git a/version/2.5/_astro/inter-greek-ext-wght-normal.81f77e51.woff2 b/version/2.5/_astro/inter-greek-ext-wght-normal.81f77e51.woff2 new file mode 100644 index 0000000000..9117b5b040 Binary files /dev/null and b/version/2.5/_astro/inter-greek-ext-wght-normal.81f77e51.woff2 differ diff --git a/version/2.5/_astro/inter-greek-wght-normal.d92c6cbc.woff2 b/version/2.5/_astro/inter-greek-wght-normal.d92c6cbc.woff2 new file mode 100644 index 0000000000..eb38b38ea0 Binary files /dev/null and b/version/2.5/_astro/inter-greek-wght-normal.d92c6cbc.woff2 differ diff --git a/version/2.5/_astro/inter-latin-ext-wght-normal.a2bfd9fe.woff2 b/version/2.5/_astro/inter-latin-ext-wght-normal.a2bfd9fe.woff2 new file mode 100644 index 0000000000..3df865d7f0 Binary files /dev/null and b/version/2.5/_astro/inter-latin-ext-wght-normal.a2bfd9fe.woff2 differ diff --git a/version/2.5/_astro/inter-latin-wght-normal.88df0b5a.woff2 b/version/2.5/_astro/inter-latin-wght-normal.88df0b5a.woff2 new file mode 100644 index 0000000000..40255432a3 Binary files /dev/null and b/version/2.5/_astro/inter-latin-wght-normal.88df0b5a.woff2 differ diff --git a/version/2.5/_astro/inter-vietnamese-wght-normal.15df7612.woff2 b/version/2.5/_astro/inter-vietnamese-wght-normal.15df7612.woff2 new file mode 100644 index 0000000000..ce21ca172e Binary files /dev/null and b/version/2.5/_astro/inter-vietnamese-wght-normal.15df7612.woff2 differ diff --git a/version/2.5/_astro/mammography.71b39188.jpg b/version/2.5/_astro/mammography.71b39188.jpg new file mode 100644 index 0000000000..14e0a3b9be Binary files /dev/null and b/version/2.5/_astro/mammography.71b39188.jpg differ diff --git a/version/2.5/_astro/mammography_graphs.a24fb268.jpg b/version/2.5/_astro/mammography_graphs.a24fb268.jpg new file mode 100644 index 0000000000..da0af75da6 Binary files /dev/null and b/version/2.5/_astro/mammography_graphs.a24fb268.jpg differ diff --git a/version/2.5/_astro/nvflare_graphic_animation.2aed1503.mp4 b/version/2.5/_astro/nvflare_graphic_animation.2aed1503.mp4 new file mode 100644 index 0000000000..c67f7a8f82 Binary files /dev/null and b/version/2.5/_astro/nvflare_graphic_animation.2aed1503.mp4 differ diff --git a/version/2.5/_astro/nvflare_research.27fc5aaf.png b/version/2.5/_astro/nvflare_research.27fc5aaf.png new file mode 100644 index 0000000000..282b247561 Binary files /dev/null and b/version/2.5/_astro/nvflare_research.27fc5aaf.png differ diff --git a/version/2.5/_astro/nvidia_eye.c483f1b1.png b/version/2.5/_astro/nvidia_eye.c483f1b1.png new file mode 100644 index 0000000000..3f84d7641a Binary files /dev/null and b/version/2.5/_astro/nvidia_eye.c483f1b1.png differ diff --git a/version/2.5/_astro/pancreas.dbc98a35.jpg b/version/2.5/_astro/pancreas.dbc98a35.jpg new file mode 100644 index 0000000000..630e3fc714 Binary files /dev/null and b/version/2.5/_astro/pancreas.dbc98a35.jpg differ diff --git a/version/2.5/_astro/sun.070ed2d5.jpg b/version/2.5/_astro/sun.070ed2d5.jpg new file mode 100644 index 0000000000..0a3970d666 Binary files /dev/null and b/version/2.5/_astro/sun.070ed2d5.jpg differ diff --git a/version/2.5/agnostic/index.html b/version/2.5/agnostic/index.html new file mode 100644 index 0000000000..b9f8f1a037 --- /dev/null +++ b/version/2.5/agnostic/index.html @@ -0,0 +1,30 @@ + NVIDIA FLARE

+Framework Agnostic +

+NVIDIA FLARE is designed as a federated computing platform that is agnostic to frameworks, workloads, datasets, and domains. + View the Tutorial Catalog to see different examples in these categories. +

framework agnostic

+Framework Agnostic +

+NVIDIA FLARE is compatible with any machine learning or deep learning framework. + This versatility is demonstrated through various example repositories, including those for PyTorch, TensorFlow, PyTorch Lightning, XGBoost, Scikit-learn, GraphSAGE, Hugging Face, NeMo, Bio-Nemo, and MONAI. + Most machine learning problems can easily be converted from centralized algorithms to federated algorithms using NVIDIA FLARE. +

+Domain Agnostic +

+NVIDIA FLARE is also domain agnostic, making it suitable for applications in medical imaging, drug discovery, self-driving cars, financial services, medical devices, energy, and more. + This broad applicability is reflected in the diverse industries of our customers. +

+Model Agnostic +

+NVIDIA FLARE supports a wide variety of models, including decision trees, classification, regression, various types of LLM fine-tuning, and XGBoost. + Regardless of the model type, NVIDIA FLARE can work with them all. +

+Task Agnostic +

+Thanks to its generic design, NVIDIA FLARE is task agnostic. + It can handle any type of task or payload, without mandating a specific type of computation. + NVIDIA FLARE provides coordination and communication, allowing users to leverage its capabilities for tasks such as Federated Statistics, Multi-Party Private Set Intersection (PSI), and Federated Retrieval-Augmented Generation (RAG) tasks. +

\ No newline at end of file diff --git a/version/2.5/catalog/index.html b/version/2.5/catalog/index.html new file mode 100644 index 0000000000..12318aa509 --- /dev/null +++ b/version/2.5/catalog/index.html @@ -0,0 +1,137 @@ + NVIDIA FLARE

+Tutorial Catalog +

+Explore our extensive catalog of tutorials of NVIDIA FLARE features and examples for various applications. + Use the tags to filter by categories such as level, applications, frameworks, etc. + or search for keywords. + + To read more, visit our +documentation and +GitHub. +

\ No newline at end of file diff --git a/version/2.5/favicon.ico b/version/2.5/favicon.ico new file mode 100644 index 0000000000..424df87200 Binary files /dev/null and b/version/2.5/favicon.ico differ diff --git a/version/2.5/index.html b/version/2.5/index.html new file mode 100644 index 0000000000..097d1c742f --- /dev/null +++ b/version/2.5/index.html @@ -0,0 +1,269 @@ + NVIDIA FLARE +
NVIDIA logo

+NVIDIA FLARE +

+NVIDIA FLARE™ (NVIDIA Federated Learning Application Runtime + Environment) is a domain-agnostic, open-source, and extensible SDK + for Federated Learning. It allows researchers and data scientists + to adapt existing ML/DL workflow to a federated paradigm and + enables platform developers to build a secure, privacy-preserving + offering for a distributed multi-party collaboration. +

+Getting Started with NVIDIA FLARE +

+Begin your NVIDIA FLARE journey with these guides + designed to help you quickly grasp essential concepts. + Follow along with the videos below, and try it out yourself. +

+Example Code +

+Try out these example code blocks below, where we showcase how simple it is to adapt + a popular machine learning framework to a federated learning scenario with NVIDIA FLARE. + For more details, refer to the getting started walkthrough guide above. +

NVIDIA logo Run in Google Colab View on Github

+Tutorials +

+These progressive tutorial series cover various aspects of NVIDIA FLARE from core concepts and basic tools to advanced algorithms and deployments. + For a comprehensive list of all tutorials, view the tutorial catalog below. +

+Why NVIDIA FLARE? +

Research & Productivity

Provides user-friendly APIs for client and server programming. Use the Simulator and POC modes to quickly simulate a federated learning application.

Framework Agnostic

Designed as a federated computing platform agnostic to frameworks, workloads, datasets, and domains. Federated learning apps are built on this foundation.

Open Architecture Design

Flexible open architecture allows for extensive customization, with a modular design that ensures each layer can be easily pluggable with custom components.

Security & Privacy

Prioritizes security with secure provisioning, event-based security plugins, authorization control, data filtering, audit logs, and advanced privacy-preserving algorithms.

3rd Party Integration

Enables a seamless integration with external 3rd-party systems with the FlareAgent to receive tasks and submit results to the NVIDIA FLARE server.

Cloud Deployment

Supports cross-cloud deployment with various management tools. Designed for robust, production-scale deployment in real-world federated learning scenarios.

+Learn More +

What is Federated Learning?

Federated Learning is a distributed learning paradigm where training occurs across multiple clients, each with their own local datasets. This enables the creation of common robust models without sharing sensitive local data, helping solve issues of data privacy and security.

+Read more

Blogs & Articles

NVIDIA Federated Learning Technical Blogs covering various applications and topics.

+Read more

Publications & Talks

List of NVIDIA FLARE related papers and publications along with videos from blogs and talks.

+Read more

\ No newline at end of file diff --git a/version/2.5/research/index.html b/version/2.5/research/index.html new file mode 100644 index 0000000000..b2c2060c58 --- /dev/null +++ b/version/2.5/research/index.html @@ -0,0 +1,48 @@ + NVIDIA FLARE

+Research with NVIDIA FLARE +

+Learn how NVIDIA FLARE faciliates research from simulation tools to real-world case studies. +

+Research Tools +

+NVIDIA FLARE is an excellent research tool, offering robust simulation capabilities and extensive support for experimentation in federated learning. + Many researchers need to simulate federated learning scenarios without setting up an actual federated learning system. + NVIDIA FLARE allows for repeated experimentation with different parameters, facilitating quick evaluations and monitoring of results. +

+NVIDIA FLARE Simulation Tools +

Simulator: + The Simulator is a multi-threaded/process simulation tool that offers both a Command Line Interface (CLI) and a Python API. + It enables the simulation of different numbers of clients and the execution of various federated learning jobs. + Once a simulation is complete, users can deploy the same code in production without any changes. + Additionally, users can utilize an Integrated Development Environment (IDE) debugger to step through the code for easier debugging. +

Proof of Concept (POC) Mode: + POC mode simulates real-world deployment on a local host. + Clients and servers can be deployed in different directories and launched using separate terminals, each representing a different client or server startup. + This mode allows for job submissions to the server as would occur in a real production environment. +

+Interaction Methods with FL Server +

Admin Console: + Issue interactive commands such as submitting jobs, listing jobs, and aborting jobs. +

Job CLI: + Command-line interface is used for job submission. +

FLARE API: + Allows submission and listing of jobs through Python code. +

+Experiment Tracking Tools Integration +

Experiment tracking: + FLARE supports logging metrics using FLARE's metrics tracking log writers. Users can choose from TensorBoard, MLflow, or W&B syntax. + Metrics can be streamed to either the FL server or FL client, and changing the metric system does not require any code changes. +

+Research Works +

+NVIDIA FLARE offers a lot of state of art research work, here is a quick view of the recent work. + Learn more in the research directory in our GitHub and view our list of Publications. +

NVFLARE research

+Case Studies +

+NVIDIA has worked with several institutions to test and validate the utility of federated learning. We hope this will help to inspire or relate to your research cases. +

+Here are five real life implementations in healthcare, pushing the envelope for training robust, generalizable AI models: +

  • EXAM AI Model for Predicting Oxygen Requirements in COVID Patients
  • ADOPS (ACR DASA OSU Partners HealthCare Stanford)
  • University of Minnesota and Fairview X-Ray COVID AI Model
  • SUN Initiative Prostate Cancer AI Model
  • CT Pancreas Segmentation AI Model

EXAM AI Model for Predicting Oxygen Requirements in COVID Patients

AI model to predict oxygen requirements
NVIDIA researchers, Massachusetts General Brigham Hospital

During COVID-19, it was challenging to determine which patients would need a higher level of care in the near future, despite perhaps presenting with minimal symptoms. Therefore the goal of this study was to train a previously developed AI model that determines whether a person with COVID-19 symptoms will need supplemental oxygen hours or even days after an initial exam. The approach included a separate server hosted on AWS, which held the global deep neural network. Each client-site received a copy of the model to train on its own dataset and FLARE was used to aggregate to form a global model.

Training was completed in two weeks and produced a global model with .94 Area Under the Curve (AUC), resulting in excellent prediction for the level of oxygen required by incoming patients.

Federated learning for predicting clinical outcomes in patients with COVID-19

ADOPS (ACR DASA OSU Partners HealthCare Stanford)

Breast Mammography AI Model. Early detection: breast density classification Improvement
The American College of Radiology (ACR), Diagnosticos da America (DASA), Ohio State University (OSU), Partners HealthCare (PHS), and Stanford University

Breast Mammography AI Model Early detection through mammography is critical when it comes to reducing breast cancer deaths, but breast density can make it harder to detect the disease. The team used a 2D mammography classification model provided by PHS, which was trained using NVIDIA Clara Train on NVIDIA GPUs. The model was then retrained using NVIDIA Clara Federated Learning at PHS, as well as the client-sites, without any data being transferred.

Each institution obtained a better performing model that had an overall superior predictive power on their own local dataset. In doing so, Federated Learning enabled improved breast density classification from mammograms, which could lead to better breast cancer risk assessment.

Federated Learning for Breast Density Classification: A Real-World Implementation

University of Minnesota and Fairview X-Ray COVID AI Model

Improve AI models for COVID-19 diagnosis based on chest X-rays
University of Minnesota and Fairview Mhealth, Indiana University (Indiana, USA), and Emory University (Georgia, USA)

The goal of this study was to improve real-world AI models for COVID-19 diagnosis based on chest X-rays. This study leveraged a three-phase pipeline composed of U-Net lung segmentation, a conditional Generative Adversarial Network (cGAN) for outlier detection, and a DenseNet121 COVID-19 Classification model. The aggregate multi-institutional dataset consisted of approximately 80,000 labeled images with a 30/70% positive/negative COVID classification. This classification model was trained with a federation of Federated Learning server and Federated Learning clients at University of Minnesota and Fairview (Minnesota, USA), with additional participant clients at Indiana University (Indiana, USA) and Emory University (Georgia, USA) using a mix of cloud (AWS/Azure) and local servers.

Initial results showed an improvement in performance of the global model of 5% AUROC and 8% AUPRC on the UMN local dataset as compared to the UMN local model.

SUN Initiative Prostate Cancer AI Model

Federated segmentation model
SUNY, UCLA, NIH

Prostate cancer is a common cancer of the prostate gland in men. Accurate segmentation of the prostate gland is useful for developing AI models to help in detection of Prostate cancer. In this initiative, we tested the hypothesis that Federated Learning can be used to train a segmentation model comparable to one trained from a pooled data (PD) set.

The results showed equivalent performance from both the experimental Federated Learning and benchmark PD models, showing the feasibility of training an AI model in a Federated Learning approach.

CT Pancreas Segmentation AI Model

Automated segmentation model of the pancreas and pancreatic tumors in abdominal CT
National Taiwan University, Taiwan, and Nagoya University, Japan

The aim of this experiment was to build models for the automated segmentation of the pancreas and pancreatic tumors in abdominal CT. A 3D segmentation model based on neural architecture search developed by NVIDIA's Applied Research team was collaboratively trained using Federated Learning.

The global Federated Learning model achieved a segmentation performance of 82.3% Dice score on healthy pancreatic patients on average.

\ No newline at end of file diff --git a/version/2.5/security/index.html b/version/2.5/security/index.html new file mode 100644 index 0000000000..1fd924bb30 --- /dev/null +++ b/version/2.5/security/index.html @@ -0,0 +1,15 @@ + NVIDIA FLARE

+NVIDIA FLARE Security +

+NVIDIA FLARE implements comprehensive security measures across various areas. +

Identity Security: + Ensures authentication and authorization of communicating parties.

  • Authentication: Utilizes Public Key Infrastructure (PKI) technology. For FL projects, a Root CA with a self-signed root certificate issues all necessary certificates for communicating parties.
  • Roles: Defines roles such as Project Admin, Organization Admin, Lead, and Member.
  • Centralized Authorization: Enforces authorization based on user roles via NVIDIA FLARE servers.
  • Federated Authorization: Allows each site to enforce their own defined authorization rules.
  • Site Policy Management: Enables sites to define their own policies for resource management, authorization, and privacy protection.
  • Event-Based Plugins: Supports site-specific authentication integration with site authentication systems and allows site-specific plugins for authorization enforcement.
  • Data Privacy Enforcement: Uses a filter mechanism to enforce data privacy policies.
federated authorization Communication Security: + Ensures the confidentiality of data communication messages. +
  • Message Serialization: Applies techniques to ensure safe serialization and deserialization processes between communicating parties.

Component Security: + Leverages a plugin mechanism to detect unsafe components.

Auditing: + Provides built-in audit logs for increased transparency and accountability.

Privacy Protection: + Offers multiple approaches to safeguard data privacy.

  • Filtering Mechanism
  • Traditional Privacy Enhancing Technologies (PET): Includes differential privacy techniques.
  • Homomorphic Encryption
  • Multi-party Private Set Intersection (PSI)
  • Confidential Computing
data privacy +To learn more, visit the Security section in our documention. +
\ No newline at end of file