diff --git a/404.html b/404.html
index 10ec84a64..4399eeb6d 100644
--- a/404.html
+++ b/404.html
@@ -9,7 +9,7 @@
-
+
diff --git a/assets/css/styles.52abc4d3.css b/assets/css/styles.52abc4d3.css
new file mode 100644
index 000000000..746598b7d
--- /dev/null
+++ b/assets/css/styles.52abc4d3.css
@@ -0,0 +1 @@
+.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.loadingRing_RJI3 div{box-sizing:border-box}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.content_knG7 a,.hitFooter_E9YW a,.suggestion_fB_2.cursor_eG29 mark{text-decoration:underline}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items,.searchResultItem_U687>h2{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}:root,[data-theme=dark]{--ifm-color-primary:#2196f3;--ifm-color-primary-dark:#1565c0;--ifm-color-primary-darker:#0d47a1;--ifm-color-primary-darkest:#002171;--ifm-color-primary-light:#64b5f6;--ifm-color-primary-lighter:#bbdefb;--ifm-color-primary-lightest:#e3f2fd;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a}div[class^=announcementBar_]{background:repeating-linear-gradient(-35deg,var(--ifm-color-primary-lighter),var(--ifm-color-primary-lighter) 20px,var(--ifm-color-primary-lightest) 10px,var(--ifm-color-primary-lightest) 40px);font-weight:700}h2,h3,h4,h5,h6{color:#40b8fa}@font-face{font-family:SourceHanSansCN;font-style:normal;font-weight:400;src:url(/assets/fonts/SourceHanSansCN-Regular-1235a610813e82ec7e42bbb8123b3d74.ttf) format("truetype")}body,h1,h2,h3,h4,h5,h6,p{font-family:Helvetica,SourceHanSansCN}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.hideAction_vcyE>svg,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA,html:not([data-theme]) .themedComponent--light_NU7w{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,#f5f6f7);border-radius:6px;box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64);left:auto!important;margin-top:8px;padding:var(--search-local-spacing,12px);position:relative;right:0!important;width:var(--search-local-modal-width,560px)}html[data-theme=dark] .searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,var(--ifm-background-color));box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309)}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2{align-items:center;background:var(--search-local-hit-background,#fff);border-radius:4px;box-shadow:var(--search-local-hit-shadow,0 1px 3px 0 #d4d9e1);color:var(--search-local-hit-color,#444950);cursor:pointer;display:flex;flex-direction:row;height:var(--search-local-hit-height,56px);padding:0 var(--search-local-spacing,12px);width:100%}.hitTree_kk6K,.noResults_l6Q3{align-items:center;display:flex}html[data-theme=dark] .dropdownMenu_qbY6 .suggestion_fB_2{background:var(--search-local-hit-background,var(--ifm-color-emphasis-100));box-shadow:var(--search-local-hit-shadow,none);color:var(--search-local-hit-color,var(--ifm-font-color-base))}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child){margin-bottom:4px}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29{background-color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitFooter_E9YW a,.hitIcon_a7Zy,.hitPath_ieM4,.hitTree_kk6K,.noResultsIcon_EBY5{color:var(--search-local-muted-color,#969faf)}html[data-theme=dark] .hitIcon_a7Zy,html[data-theme=dark] .hitPath_ieM4,html[data-theme=dark] .hitTree_kk6K,html[data-theme=dark] .noResultsIcon_EBY5{color:var(--search-local-muted-color,var(--ifm-color-secondary-darkest))}.hitTree_kk6K>svg{height:var(--search-local-hit-height,56px);opacity:.5;width:24px}.hitIcon_a7Zy,.hitTree_kk6K>svg{stroke-width:var(--search-local-icon-stroke-width,1.4)}.hitAction_NqkB,.hitIcon_a7Zy{height:20px;width:20px}.hitWrapper_sAK8{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;margin:0 8px;overflow-x:hidden;width:80%}.hitWrapper_sAK8 mark{background:none;color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitTitle_vyVt{font-size:.9em}.hitPath_ieM4{font-size:.75em}.hitPath_ieM4,.hitTitle_vyVt{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.noResults_l6Q3{flex-direction:column;justify-content:center;padding:var(--search-local-spacing,12px) 0}.noResultsIcon_EBY5{margin-bottom:var(--search-local-spacing,12px)}.hitFooter_E9YW{font-size:.85em;margin-top:var(--search-local-spacing,12px);text-align:center}.cursor_eG29 .hideAction_vcyE>svg,.tocCollapsibleContent_vkbj a{display:block}.suggestion_fB_2.cursor_eG29,.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,.suggestion_fB_2.cursor_eG29 .hitPath_ieM4,.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,.suggestion_fB_2.cursor_eG29 mark{color:var(--search-local-hit-active-color,var(--ifm-color-white))!important}.searchBarContainer_NW3z{margin-left:16px}.searchBarContainer_NW3z .searchBarLoadingRing_YnHq{display:none;left:10px;position:absolute;top:6px}.searchBarContainer_NW3z .searchClearButton_qk4g{background:none;border:none;line-height:1rem;padding:0;position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.navbar__search{position:relative}.searchIndexLoading_EJ1f .navbar__search-input{background-image:none}.searchHintContainer_Pkmr{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;pointer-events:none;position:absolute;right:10px;top:0}.searchHint_iIMx{background-color:var(--ifm-navbar-search-input-background-color);border:1px solid var(--ifm-color-emphasis-500);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-500);color:var(--ifm-navbar-search-input-placeholder-color)}.loadingRing_RJI3{display:inline-block;height:20px;opacity:var(--search-local-loading-icon-opacity,.5);position:relative;width:20px}.loadingRing_RJI3 div{animation:1.2s cubic-bezier(.5,0,.5,1) infinite a;border:2px solid var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color));border-color:var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color)) #0000 #0000 #0000;border-radius:50%;display:block;height:16px;margin:2px;position:absolute;width:16px}.loadingRing_RJI3 div:first-child{animation-delay:-.45s}.loadingRing_RJI3 div:nth-child(2){animation-delay:-.3s}.loadingRing_RJI3 div:nth-child(3){animation-delay:-.15s}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.searchContextInput_mXoe,.searchQueryInput_CFBF{background:var(--ifm-background-color);border:var(--ifm-global-border-width) solid var(--ifm-color-content-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-font-color-base);font-size:var(--ifm-font-size-base);margin-bottom:1rem;padding:.5rem;width:100%}.searchResultItem_U687{border-bottom:1px solid #dfe3e8;padding:1rem 0}.searchResultItemPath_uIbk{color:var(--ifm-color-content-secondary);font-size:.8rem;margin:.5rem 0 0}.searchResultItemSummary_oZHr{font-style:italic;margin:.5rem 0 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.features_t9lD,}.buttons_AeoN{align-items:center;display:flex}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.features_t9lD{padding:2rem 0;width:100%}.heroBanner_qdFl,[data-theme=dark]{overflow:hidden;padding:4rem 0;text-align:center;position:relative}.featureSvg_GfXr{height:200px;width:200px}.heroBanner_qdFl{-webkit-text-fill-color:#120c0c;background-color:#fff}[data-theme=dark]{background-color:#1b1b1d}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}}.buttons_AeoN{justify-content:center}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.blogPostFooterDetailsFull_mRVl{flex-direction:column}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media not (max-width:996px){.searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6{left:0!important;right:auto!important}}@media only screen and (max-width:996px){.searchQueryColumn_q7nx{max-width:60%!important}.searchContextColumn_oWAF{max-width:40%!important}}@media screen and (max-width:996px){.heroBanner_qdFl{padding:2rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.navbar__search-input:not(:focus){width:2rem}.searchBar_RVTs .dropdownMenu_qbY6{max-width:calc(100vw - var(--ifm-navbar-padding-horizontal)*2);width:var(--search-local-modal-width-sm,340px)}.searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,.searchHintContainer_Pkmr{display:none}.title_f1Hy{font-size:2rem}}@media screen and (max-width:576px){.searchQueryColumn_q7nx{max-width:100%!important}.searchContextColumn_oWAF{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}}
\ No newline at end of file
diff --git a/assets/css/styles.eb1ce4d6.css b/assets/css/styles.eb1ce4d6.css
deleted file mode 100644
index 0debedc0e..000000000
--- a/assets/css/styles.eb1ce4d6.css
+++ /dev/null
@@ -1 +0,0 @@
-.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.loadingRing_RJI3 div{box-sizing:border-box}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma,h1{color:var(--ifm-color-primary)}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.content_knG7 a,.hitFooter_E9YW a,.suggestion_fB_2.cursor_eG29 mark{text-decoration:underline}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items,.searchResultItem_U687>h2{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}:root,[data-theme=dark]{--ifm-color-primary:#2196f3;--ifm-color-primary-dark:#1565c0;--ifm-color-primary-darker:#0d47a1;--ifm-color-primary-darkest:#002171;--ifm-color-primary-light:#64b5f6;--ifm-color-primary-lighter:#bbdefb;--ifm-color-primary-lightest:#e3f2fd;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a}div[class^=announcementBar_]{background:repeating-linear-gradient(-35deg,var(--ifm-color-primary-lighter),var(--ifm-color-primary-lighter) 20px,var(--ifm-color-primary-lightest) 10px,var(--ifm-color-primary-lightest) 40px);font-weight:700}h2,h3,h4,h5,h6{color:var(--ifm-color-primary-light)}@font-face{font-family:SourceHanSansCN;font-style:normal;font-weight:400;src:url(/assets/fonts/SourceHanSansCN-Regular-1235a610813e82ec7e42bbb8123b3d74.ttf) format("truetype")}body,h1,h2,h3,h4,h5,h6,p{font-family:Helvetica,SourceHanSansCN}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.hideAction_vcyE>svg,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA,html:not([data-theme]) .themedComponent--light_NU7w{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,#f5f6f7);border-radius:6px;box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64);left:auto!important;margin-top:8px;padding:var(--search-local-spacing,12px);position:relative;right:0!important;width:var(--search-local-modal-width,560px)}html[data-theme=dark] .searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,var(--ifm-background-color));box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309)}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2{align-items:center;background:var(--search-local-hit-background,#fff);border-radius:4px;box-shadow:var(--search-local-hit-shadow,0 1px 3px 0 #d4d9e1);color:var(--search-local-hit-color,#444950);cursor:pointer;display:flex;flex-direction:row;height:var(--search-local-hit-height,56px);padding:0 var(--search-local-spacing,12px);width:100%}.hitTree_kk6K,.noResults_l6Q3{align-items:center;display:flex}html[data-theme=dark] .dropdownMenu_qbY6 .suggestion_fB_2{background:var(--search-local-hit-background,var(--ifm-color-emphasis-100));box-shadow:var(--search-local-hit-shadow,none);color:var(--search-local-hit-color,var(--ifm-font-color-base))}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child){margin-bottom:4px}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29{background-color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitFooter_E9YW a,.hitIcon_a7Zy,.hitPath_ieM4,.hitTree_kk6K,.noResultsIcon_EBY5{color:var(--search-local-muted-color,#969faf)}html[data-theme=dark] .hitIcon_a7Zy,html[data-theme=dark] .hitPath_ieM4,html[data-theme=dark] .hitTree_kk6K,html[data-theme=dark] .noResultsIcon_EBY5{color:var(--search-local-muted-color,var(--ifm-color-secondary-darkest))}.hitTree_kk6K>svg{height:var(--search-local-hit-height,56px);opacity:.5;width:24px}.hitIcon_a7Zy,.hitTree_kk6K>svg{stroke-width:var(--search-local-icon-stroke-width,1.4)}.hitAction_NqkB,.hitIcon_a7Zy{height:20px;width:20px}.hitWrapper_sAK8{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;margin:0 8px;overflow-x:hidden;width:80%}.hitWrapper_sAK8 mark{background:none;color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitTitle_vyVt{font-size:.9em}.hitPath_ieM4{font-size:.75em}.hitPath_ieM4,.hitTitle_vyVt{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.noResults_l6Q3{flex-direction:column;justify-content:center;padding:var(--search-local-spacing,12px) 0}.noResultsIcon_EBY5{margin-bottom:var(--search-local-spacing,12px)}.hitFooter_E9YW{font-size:.85em;margin-top:var(--search-local-spacing,12px);text-align:center}.cursor_eG29 .hideAction_vcyE>svg,.tocCollapsibleContent_vkbj a{display:block}.suggestion_fB_2.cursor_eG29,.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,.suggestion_fB_2.cursor_eG29 .hitPath_ieM4,.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,.suggestion_fB_2.cursor_eG29 mark{color:var(--search-local-hit-active-color,var(--ifm-color-white))!important}.searchBarContainer_NW3z{margin-left:16px}.searchBarContainer_NW3z .searchBarLoadingRing_YnHq{display:none;left:10px;position:absolute;top:6px}.searchBarContainer_NW3z .searchClearButton_qk4g{background:none;border:none;line-height:1rem;padding:0;position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.navbar__search{position:relative}.searchIndexLoading_EJ1f .navbar__search-input{background-image:none}.searchHintContainer_Pkmr{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;pointer-events:none;position:absolute;right:10px;top:0}.searchHint_iIMx{background-color:var(--ifm-navbar-search-input-background-color);border:1px solid var(--ifm-color-emphasis-500);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-500);color:var(--ifm-navbar-search-input-placeholder-color)}.loadingRing_RJI3{display:inline-block;height:20px;opacity:var(--search-local-loading-icon-opacity,.5);position:relative;width:20px}.loadingRing_RJI3 div{animation:1.2s cubic-bezier(.5,0,.5,1) infinite a;border:2px solid var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color));border-color:var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color)) #0000 #0000 #0000;border-radius:50%;display:block;height:16px;margin:2px;position:absolute;width:16px}.loadingRing_RJI3 div:first-child{animation-delay:-.45s}.loadingRing_RJI3 div:nth-child(2){animation-delay:-.3s}.loadingRing_RJI3 div:nth-child(3){animation-delay:-.15s}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.searchContextInput_mXoe,.searchQueryInput_CFBF{background:var(--ifm-background-color);border:var(--ifm-global-border-width) solid var(--ifm-color-content-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-font-color-base);font-size:var(--ifm-font-size-base);margin-bottom:1rem;padding:.5rem;width:100%}.searchResultItem_U687{border-bottom:1px solid #dfe3e8;padding:1rem 0}.searchResultItemPath_uIbk{color:var(--ifm-color-content-secondary);font-size:.8rem;margin:.5rem 0 0}.searchResultItemSummary_oZHr{font-style:italic;margin:.5rem 0 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.features_t9lD,}.buttons_AeoN{align-items:center;display:flex}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.features_t9lD{padding:2rem 0;width:100%}.heroBanner_qdFl,[data-theme=dark]{overflow:hidden;padding:4rem 0;text-align:center;position:relative}.featureSvg_GfXr{height:200px;width:200px}.heroBanner_qdFl{-webkit-text-fill-color:#120c0c;background-color:#fff}[data-theme=dark]{background-color:#1b1b1d}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}}.buttons_AeoN{justify-content:center}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.blogPostFooterDetailsFull_mRVl{flex-direction:column}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media not (max-width:996px){.searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6{left:0!important;right:auto!important}}@media only screen and (max-width:996px){.searchQueryColumn_q7nx{max-width:60%!important}.searchContextColumn_oWAF{max-width:40%!important}}@media screen and (max-width:996px){.heroBanner_qdFl{padding:2rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.navbar__search-input:not(:focus){width:2rem}.searchBar_RVTs .dropdownMenu_qbY6{max-width:calc(100vw - var(--ifm-navbar-padding-horizontal)*2);width:var(--search-local-modal-width-sm,340px)}.searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,.searchHintContainer_Pkmr{display:none}.title_f1Hy{font-size:2rem}}@media screen and (max-width:576px){.searchQueryColumn_q7nx{max-width:100%!important}.searchContextColumn_oWAF{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}}
\ No newline at end of file
diff --git "a/blog/PyTroch\345\237\272\347\241\200/index.html" "b/blog/PyTroch\345\237\272\347\241\200/index.html"
index 1d06d32a3..d6e06a61a 100644
--- "a/blog/PyTroch\345\237\272\347\241\200/index.html"
+++ "b/blog/PyTroch\345\237\272\347\241\200/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git a/blog/archive/index.html b/blog/archive/index.html
index a7a83bdb2..3252ad021 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -9,7 +9,7 @@
-
+
diff --git "a/blog/deep_learning/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html" "b/blog/deep_learning/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html"
index 3455bcf5e..11a23fb2d 100644
--- "a/blog/deep_learning/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html"
+++ "b/blog/deep_learning/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git a/blog/index.html b/blog/index.html
index 9548f06a1..22a7d14d1 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -9,7 +9,7 @@
-
+
diff --git "a/blog/\346\225\260\345\255\246\345\237\272\347\241\200/index.html" "b/blog/\346\225\260\345\255\246\345\237\272\347\241\200/index.html"
index e0db9e411..88cddc296 100644
--- "a/blog/\346\225\260\345\255\246\345\237\272\347\241\200/index.html"
+++ "b/blog/\346\225\260\345\255\246\345\237\272\347\241\200/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/blog/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html" "b/blog/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html"
index ff07a9891..15d678794 100644
--- "a/blog/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html"
+++ "b/blog/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/blog/\347\220\206\350\256\272\347\237\245\350\257\206/index.html" "b/blog/\347\220\206\350\256\272\347\237\245\350\257\206/index.html"
index e46eaafa5..2bfabbae5 100644
--- "a/blog/\347\220\206\350\256\272\347\237\245\350\257\206/index.html"
+++ "b/blog/\347\220\206\350\256\272\347\237\245\350\257\206/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Algorithms/STL\346\250\241\346\235\277/index.html" "b/docs/Algorithms/STL\346\250\241\346\235\277/index.html"
index 8a7f81d37..07946990d 100644
--- "a/docs/Algorithms/STL\346\250\241\346\235\277/index.html"
+++ "b/docs/Algorithms/STL\346\250\241\346\235\277/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/Algorithms/intro/index.html b/docs/Algorithms/intro/index.html
index c01f9b78a..5eb905537 100644
--- a/docs/Algorithms/intro/index.html
+++ b/docs/Algorithms/intro/index.html
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Algorithms/\346\234\272\350\257\225\346\212\200\345\267\247\344\270\216STL/index.html" "b/docs/Algorithms/\346\234\272\350\257\225\346\212\200\345\267\247\344\270\216STL/index.html"
index e429497fd..c8a5a14a1 100644
--- "a/docs/Algorithms/\346\234\272\350\257\225\346\212\200\345\267\247\344\270\216STL/index.html"
+++ "b/docs/Algorithms/\346\234\272\350\257\225\346\212\200\345\267\247\344\270\216STL/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Algorithms/\351\242\230\350\247\243/\344\270\200\347\273\264\345\211\215\347\274\200\345\222\214\357\274\210\345\210\267\345\207\272\344\270\200\351\201\223\345\242\231\357\274\211/index.html" "b/docs/Algorithms/\351\242\230\350\247\243/\344\270\200\347\273\264\345\211\215\347\274\200\345\222\214\357\274\210\345\210\267\345\207\272\344\270\200\351\201\223\345\242\231\357\274\211/index.html"
index 62956d529..fdc379526 100644
--- "a/docs/Algorithms/\351\242\230\350\247\243/\344\270\200\347\273\264\345\211\215\347\274\200\345\222\214\357\274\210\345\210\267\345\207\272\344\270\200\351\201\223\345\242\231\357\274\211/index.html"
+++ "b/docs/Algorithms/\351\242\230\350\247\243/\344\270\200\347\273\264\345\211\215\347\274\200\345\222\214\357\274\210\345\210\267\345\207\272\344\270\200\351\201\223\345\242\231\357\274\211/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Algorithms/\351\242\230\350\247\243/\345\217\215\345\272\217\350\276\223\345\207\272/index.html" "b/docs/Algorithms/\351\242\230\350\247\243/\345\217\215\345\272\217\350\276\223\345\207\272/index.html"
index 7fd0cad97..549d1dda3 100644
--- "a/docs/Algorithms/\351\242\230\350\247\243/\345\217\215\345\272\217\350\276\223\345\207\272/index.html"
+++ "b/docs/Algorithms/\351\242\230\350\247\243/\345\217\215\345\272\217\350\276\223\345\207\272/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Algorithms/\351\242\230\350\247\243/\346\216\222\345\210\227\347\273\204\345\220\210\357\274\210\346\261\20230\347\232\204\345\200\215\346\225\260\357\274\211/index.html" "b/docs/Algorithms/\351\242\230\350\247\243/\346\216\222\345\210\227\347\273\204\345\220\210\357\274\210\346\261\20230\347\232\204\345\200\215\346\225\260\357\274\211/index.html"
index 868bc4172..a68770560 100644
--- "a/docs/Algorithms/\351\242\230\350\247\243/\346\216\222\345\210\227\347\273\204\345\220\210\357\274\210\346\261\20230\347\232\204\345\200\215\346\225\260\357\274\211/index.html"
+++ "b/docs/Algorithms/\351\242\230\350\247\243/\346\216\222\345\210\227\347\273\204\345\220\210\357\274\210\346\261\20230\347\232\204\345\200\215\346\225\260\357\274\211/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/Deep Learning/intro/index.html b/docs/Deep Learning/intro/index.html
index 88ae24c56..31fae61a7 100644
--- a/docs/Deep Learning/intro/index.html
+++ b/docs/Deep Learning/intro/index.html
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/K-fold Cross-validation/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/K-fold Cross-validation/index.html"
index 27ef4fdf0..069183f38 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/K-fold Cross-validation/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/K-fold Cross-validation/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/Logistic Regression/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/Logistic Regression/index.html"
index eb51987ec..10679ca07 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/Logistic Regression/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/Logistic Regression/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/PyTroch\345\237\272\347\241\200/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/PyTroch\345\237\272\347\241\200/index.html"
index 3365d01c2..2bf0f9a8a 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/PyTroch\345\237\272\347\241\200/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/PyTroch\345\237\272\347\241\200/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\344\273\216\345\205\250\350\277\236\346\216\245\345\210\260\345\215\267\347\247\257/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\344\273\216\345\205\250\350\277\236\346\216\245\345\210\260\345\215\267\347\247\257/index.html"
index 1e3186f53..d14bd6e60 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\344\273\216\345\205\250\350\277\236\346\216\245\345\210\260\345\215\267\347\247\257/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\344\273\216\345\205\250\350\277\236\346\216\245\345\210\260\345\215\267\347\247\257/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\345\215\267\347\247\257\345\261\202/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\345\215\267\347\247\257\345\261\202/index.html"
index 995c67849..1a6d599b3 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\345\215\267\347\247\257\345\261\202/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\345\215\267\347\247\257\345\261\202/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\345\257\271\344\272\216\346\255\243\345\210\231\345\214\226\347\232\204\347\220\206\350\247\243/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\345\257\271\344\272\216\346\255\243\345\210\231\345\214\226\347\232\204\347\220\206\350\247\243/index.html"
index 4ede922ea..ed7b63909 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\345\257\271\344\272\216\346\255\243\345\210\231\345\214\226\347\232\204\347\220\206\350\247\243/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\345\257\271\344\272\216\346\255\243\345\210\231\345\214\226\347\232\204\347\220\206\350\247\243/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\255\243\345\210\231\345\214\226\344\270\216\346\235\203\351\207\215\350\241\260\351\200\200/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\255\243\345\210\231\345\214\226\344\270\216\346\235\203\351\207\215\350\241\260\351\200\200/index.html"
index 235352b86..4240af58a 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\255\243\345\210\231\345\214\226\344\270\216\346\235\203\351\207\215\350\241\260\351\200\200/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\255\243\345\210\231\345\214\226\344\270\216\346\235\203\351\207\215\350\241\260\351\200\200/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\261\240\345\214\226\345\261\202/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\261\240\345\214\226\345\261\202/index.html"
index ce8505ef4..3e15e0eee 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\261\240\345\214\226\345\261\202/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\261\240\345\214\226\345\261\202/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\267\261\345\272\246\345\217\257\345\210\206\347\246\273\345\215\267\347\247\257/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\267\261\345\272\246\345\217\257\345\210\206\347\246\273\345\215\267\347\247\257/index.html"
index 0ebd67c8e..bd43688b8 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\267\261\345\272\246\345\217\257\345\210\206\347\246\273\345\215\267\347\247\257/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\267\261\345\272\246\345\217\257\345\210\206\347\246\273\345\215\267\347\247\257/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html" "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html"
index 415a50115..0e2fa9fba 100644
--- "a/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html"
+++ "b/docs/Deep Learning/\345\237\272\347\241\200\347\237\245\350\257\206/\346\277\200\346\264\273\345\207\275\346\225\260\344\270\216Loss\347\232\204\346\242\257\345\272\246/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\345\256\236\347\224\250\346\212\200\345\267\247/Visdom\345\217\257\350\247\206\345\214\226/index.html" "b/docs/Deep Learning/\345\256\236\347\224\250\346\212\200\345\267\247/Visdom\345\217\257\350\247\206\345\214\226/index.html"
index 06e11c564..714e12f11 100644
--- "a/docs/Deep Learning/\345\256\236\347\224\250\346\212\200\345\267\247/Visdom\345\217\257\350\247\206\345\214\226/index.html"
+++ "b/docs/Deep Learning/\345\256\236\347\224\250\346\212\200\345\267\247/Visdom\345\217\257\350\247\206\345\214\226/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/AlexNet/index.html" "b/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/AlexNet/index.html"
index 8ad75e9cc..e40ee89f9 100644
--- "a/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/AlexNet/index.html"
+++ "b/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/AlexNet/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/LeNet/index.html" "b/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/LeNet/index.html"
index 03ce22a67..16e86d508 100644
--- "a/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/LeNet/index.html"
+++ "b/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/LeNet/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/Perceptron/index.html" "b/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/Perceptron/index.html"
index 3e77634c1..7c3043761 100644
--- "a/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/Perceptron/index.html"
+++ "b/docs/Deep Learning/\347\273\217\345\205\270\346\250\241\345\236\213/Perceptron/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\350\256\272\346\226\207\347\254\224\350\256\260/Attention Is All You Need/index.html" "b/docs/Deep Learning/\350\256\272\346\226\207\347\254\224\350\256\260/Attention Is All You Need/index.html"
index 3a2080b31..d8dcb949c 100644
--- "a/docs/Deep Learning/\350\256\272\346\226\207\347\254\224\350\256\260/Attention Is All You Need/index.html"
+++ "b/docs/Deep Learning/\350\256\272\346\226\207\347\254\224\350\256\260/Attention Is All You Need/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Deep Learning/\350\256\272\346\226\207\347\254\224\350\256\260/Self-Attention/index.html" "b/docs/Deep Learning/\350\256\272\346\226\207\347\254\224\350\256\260/Self-Attention/index.html"
index 302657a0d..37de6f3a4 100644
--- "a/docs/Deep Learning/\350\256\272\346\226\207\347\254\224\350\256\260/Self-Attention/index.html"
+++ "b/docs/Deep Learning/\350\256\272\346\226\207\347\254\224\350\256\260/Self-Attention/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/Linux/intro/index.html b/docs/Linux/intro/index.html
index f8611bf9a..1eb97469e 100644
--- a/docs/Linux/intro/index.html
+++ b/docs/Linux/intro/index.html
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Linux/\345\256\236\347\224\250\345\267\245\345\205\267/\347\273\210\347\253\257\344\273\243\347\220\206/index.html" "b/docs/Linux/\345\256\236\347\224\250\345\267\245\345\205\267/\347\273\210\347\253\257\344\273\243\347\220\206/index.html"
index 94f6675fe..91b204b5d 100644
--- "a/docs/Linux/\345\256\236\347\224\250\345\267\245\345\205\267/\347\273\210\347\253\257\344\273\243\347\220\206/index.html"
+++ "b/docs/Linux/\345\256\236\347\224\250\345\267\245\345\205\267/\347\273\210\347\253\257\344\273\243\347\220\206/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Linux/\345\256\242\345\210\266\345\214\226/\345\246\202\344\275\225\350\256\251\344\275\240\347\232\204KDE\347\234\213\350\265\267\346\235\245\346\233\264\345\203\217macOS/index.html" "b/docs/Linux/\345\256\242\345\210\266\345\214\226/\345\246\202\344\275\225\350\256\251\344\275\240\347\232\204KDE\347\234\213\350\265\267\346\235\245\346\233\264\345\203\217macOS/index.html"
index ce538d2b9..74fa09dcc 100644
--- "a/docs/Linux/\345\256\242\345\210\266\345\214\226/\345\246\202\344\275\225\350\256\251\344\275\240\347\232\204KDE\347\234\213\350\265\267\346\235\245\346\233\264\345\203\217macOS/index.html"
+++ "b/docs/Linux/\345\256\242\345\210\266\345\214\226/\345\246\202\344\275\225\350\256\251\344\275\240\347\232\204KDE\347\234\213\350\265\267\346\235\245\346\233\264\345\203\217macOS/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Linux/\351\227\256\351\242\230\350\247\243\345\206\263/\345\217\214\347\263\273\347\273\237\346\214\202\350\275\275Windows\347\243\201\347\233\230\344\270\272\345\217\252\350\257\273\346\226\207\344\273\266/index.html" "b/docs/Linux/\351\227\256\351\242\230\350\247\243\345\206\263/\345\217\214\347\263\273\347\273\237\346\214\202\350\275\275Windows\347\243\201\347\233\230\344\270\272\345\217\252\350\257\273\346\226\207\344\273\266/index.html"
index a0244d3b5..ddcd33145 100644
--- "a/docs/Linux/\351\227\256\351\242\230\350\247\243\345\206\263/\345\217\214\347\263\273\347\273\237\346\214\202\350\275\275Windows\347\243\201\347\233\230\344\270\272\345\217\252\350\257\273\346\226\207\344\273\266/index.html"
+++ "b/docs/Linux/\351\227\256\351\242\230\350\247\243\345\206\263/\345\217\214\347\263\273\347\273\237\346\214\202\350\275\275Windows\347\243\201\347\233\230\344\270\272\345\217\252\350\257\273\346\226\207\344\273\266/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/Others/intro/index.html b/docs/Others/intro/index.html
index ef0385603..99b5f2139 100644
--- a/docs/Others/intro/index.html
+++ b/docs/Others/intro/index.html
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Others/\345\215\232\345\256\242\346\220\255\345\273\272/\345\221\212\347\244\272\346\240\217/index.html" "b/docs/Others/\345\215\232\345\256\242\346\220\255\345\273\272/\345\221\212\347\244\272\346\240\217/index.html"
index 77853d553..201cf6ae7 100644
--- "a/docs/Others/\345\215\232\345\256\242\346\220\255\345\273\272/\345\221\212\347\244\272\346\240\217/index.html"
+++ "b/docs/Others/\345\215\232\345\256\242\346\220\255\345\273\272/\345\221\212\347\244\272\346\240\217/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/Others/\351\235\242\350\257\225/\350\246\201\345\207\206\345\244\207\347\232\204\351\227\256\351\242\230/index.html" "b/docs/Others/\351\235\242\350\257\225/\350\246\201\345\207\206\345\244\207\347\232\204\351\227\256\351\242\230/index.html"
index 5cc6e186a..aae15dd42 100644
--- "a/docs/Others/\351\235\242\350\257\225/\350\246\201\345\207\206\345\244\207\347\232\204\351\227\256\351\242\230/index.html"
+++ "b/docs/Others/\351\235\242\350\257\225/\350\246\201\345\207\206\345\244\207\347\232\204\351\227\256\351\242\230/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\346\216\250\345\205\215/intro/index.html" "b/docs/\346\216\250\345\205\215/intro/index.html"
index 24853ce9f..de6939966 100644
--- "a/docs/\346\216\250\345\205\215/intro/index.html"
+++ "b/docs/\346\216\250\345\205\215/intro/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\345\244\217\344\273\244\350\220\245\351\235\242\350\257\225\346\225\260\345\255\246\351\203\250\345\210\206\345\244\215\344\271\240/index.html" "b/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\345\244\217\344\273\244\350\220\245\351\235\242\350\257\225\346\225\260\345\255\246\351\203\250\345\210\206\345\244\215\344\271\240/index.html"
index 805509a0f..d3d9e3318 100644
--- "a/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\345\244\217\344\273\244\350\220\245\351\235\242\350\257\225\346\225\260\345\255\246\351\203\250\345\210\206\345\244\215\344\271\240/index.html"
+++ "b/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\345\244\217\344\273\244\350\220\245\351\235\242\350\257\225\346\225\260\345\255\246\351\203\250\345\210\206\345\244\215\344\271\240/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\346\246\202\347\216\207\350\256\272/index.html" "b/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\346\246\202\347\216\207\350\256\272/index.html"
index 94163b445..2e9858f9f 100644
--- "a/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\346\246\202\347\216\207\350\256\272/index.html"
+++ "b/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\346\246\202\347\216\207\350\256\272/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\347\272\277\346\200\247\344\273\243\346\225\260/index.html" "b/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\347\272\277\346\200\247\344\273\243\346\225\260/index.html"
index 66c7b932c..b3a23b7a4 100644
--- "a/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\347\272\277\346\200\247\344\273\243\346\225\260/index.html"
+++ "b/docs/\346\216\250\345\205\215/\346\225\260\345\255\246/\347\272\277\346\200\247\344\273\243\346\225\260/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\346\216\250\345\205\215/\346\234\272\350\257\225/\345\244\247\346\225\260\351\231\244\346\263\225/index.html" "b/docs/\346\216\250\345\205\215/\346\234\272\350\257\225/\345\244\247\346\225\260\351\231\244\346\263\225/index.html"
index 46e49b2d8..d07c4e459 100644
--- "a/docs/\346\216\250\345\205\215/\346\234\272\350\257\225/\345\244\247\346\225\260\351\231\244\346\263\225/index.html"
+++ "b/docs/\346\216\250\345\205\215/\346\234\272\350\257\225/\345\244\247\346\225\260\351\231\244\346\263\225/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\346\216\250\345\205\215/\347\256\200\345\216\206/\347\256\200\345\216\206\351\235\242\350\257\225\345\207\206\345\244\207/index.html" "b/docs/\346\216\250\345\205\215/\347\256\200\345\216\206/\347\256\200\345\216\206\351\235\242\350\257\225\345\207\206\345\244\207/index.html"
index fed958a49..bb4dd810f 100644
--- "a/docs/\346\216\250\345\205\215/\347\256\200\345\216\206/\347\256\200\345\216\206\351\235\242\350\257\225\345\207\206\345\244\207/index.html"
+++ "b/docs/\346\216\250\345\205\215/\347\256\200\345\216\206/\347\256\200\345\216\206\351\235\242\350\257\225\345\207\206\345\244\207/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\346\216\250\345\205\215/\350\256\241\347\256\227\346\234\272\345\237\272\347\241\200\347\273\274\345\220\210/\346\225\260\346\215\256\347\273\223\346\236\204/index.html" "b/docs/\346\216\250\345\205\215/\350\256\241\347\256\227\346\234\272\345\237\272\347\241\200\347\273\274\345\220\210/\346\225\260\346\215\256\347\273\223\346\236\204/index.html"
index 6a01de418..de39a0b9b 100644
--- "a/docs/\346\216\250\345\205\215/\350\256\241\347\256\227\346\234\272\345\237\272\347\241\200\347\273\274\345\220\210/\346\225\260\346\215\256\347\273\223\346\236\204/index.html"
+++ "b/docs/\346\216\250\345\205\215/\350\256\241\347\256\227\346\234\272\345\237\272\347\241\200\347\273\274\345\220\210/\346\225\260\346\215\256\347\273\223\346\236\204/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/intro/index.html" "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/intro/index.html"
index 74bbeb504..76ff9537a 100644
--- "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/intro/index.html"
+++ "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/intro/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\346\223\215\344\275\234\347\263\273\347\273\237\350\257\276\350\256\276/GeekOS project 0/index.html" "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\346\223\215\344\275\234\347\263\273\347\273\237\350\257\276\350\256\276/GeekOS project 0/index.html"
index 2c536ee04..64ecfd344 100644
--- "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\346\223\215\344\275\234\347\263\273\347\273\237\350\257\276\350\256\276/GeekOS project 0/index.html"
+++ "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\346\223\215\344\275\234\347\263\273\347\273\237\350\257\276\350\256\276/GeekOS project 0/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\346\223\215\344\275\234\347\263\273\347\273\237\350\257\276\350\256\276/Linux\347\263\273\347\273\237\344\270\213GeekOS\347\232\204\347\216\257\345\242\203\351\205\215\347\275\256/index.html" "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\346\223\215\344\275\234\347\263\273\347\273\237\350\257\276\350\256\276/Linux\347\263\273\347\273\237\344\270\213GeekOS\347\232\204\347\216\257\345\242\203\351\205\215\347\275\256/index.html"
index 7738f99ee..b82dae32e 100644
--- "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\346\223\215\344\275\234\347\263\273\347\273\237\350\257\276\350\256\276/Linux\347\263\273\347\273\237\344\270\213GeekOS\347\232\204\347\216\257\345\242\203\351\205\215\347\275\256/index.html"
+++ "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\346\223\215\344\275\234\347\263\273\347\273\237\350\257\276\350\256\276/Linux\347\263\273\347\273\237\344\270\213GeekOS\347\232\204\347\216\257\345\242\203\351\205\215\347\275\256/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\347\274\226\350\257\221\345\216\237\347\220\206/\347\274\226\350\257\221\345\216\237\347\220\206\345\244\215\344\271\240\347\254\224\350\256\260/index.html" "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\347\274\226\350\257\221\345\216\237\347\220\206/\347\274\226\350\257\221\345\216\237\347\220\206\345\244\215\344\271\240\347\254\224\350\256\260/index.html"
index 662b885cd..7f4c48135 100644
--- "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\347\274\226\350\257\221\345\216\237\347\220\206/\347\274\226\350\257\221\345\216\237\347\220\206\345\244\215\344\271\240\347\254\224\350\256\260/index.html"
+++ "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\347\274\226\350\257\221\345\216\237\347\220\206/\347\274\226\350\257\221\345\216\237\347\220\206\345\244\215\344\271\240\347\254\224\350\256\260/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\350\256\241\347\256\227\346\234\272\344\275\223\347\263\273\347\273\223\346\236\204/\344\275\223\347\263\273\347\273\223\346\236\204\345\244\215\344\271\240\347\254\224\350\256\260/index.html" "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\350\256\241\347\256\227\346\234\272\344\275\223\347\263\273\347\273\223\346\236\204/\344\275\223\347\263\273\347\273\223\346\236\204\345\244\215\344\271\240\347\254\224\350\256\260/index.html"
index 0517aeed5..0d9e4bad1 100644
--- "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\350\256\241\347\256\227\346\234\272\344\275\223\347\263\273\347\273\223\346\236\204/\344\275\223\347\263\273\347\273\223\346\236\204\345\244\215\344\271\240\347\254\224\350\256\260/index.html"
+++ "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\350\256\241\347\256\227\346\234\272\344\275\223\347\263\273\347\273\223\346\236\204/\344\275\223\347\263\273\347\273\223\346\236\204\345\244\215\344\271\240\347\254\224\350\256\260/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\350\256\241\347\256\227\346\234\272\345\233\276\345\275\242\345\255\246/Transformer and self-attention/index.html" "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\350\256\241\347\256\227\346\234\272\345\233\276\345\275\242\345\255\246/Transformer and self-attention/index.html"
index 9dbce2eaa..a1d80459a 100644
--- "a/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\350\256\241\347\256\227\346\234\272\345\233\276\345\275\242\345\255\246/Transformer and self-attention/index.html"
+++ "b/docs/\350\257\276\347\250\213\345\255\246\344\271\240/\350\256\241\347\256\227\346\234\272\345\233\276\345\275\242\345\255\246/Transformer and self-attention/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git "a/docs/\351\270\243\350\260\242/intro/index.html" "b/docs/\351\270\243\350\260\242/intro/index.html"
index 0f80ed58e..df70884df 100644
--- "a/docs/\351\270\243\350\260\242/intro/index.html"
+++ "b/docs/\351\270\243\350\260\242/intro/index.html"
@@ -9,7 +9,7 @@
-
+
diff --git a/img/apple.svg b/img/apple.svg
new file mode 100644
index 000000000..23cb0c659
--- /dev/null
+++ b/img/apple.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/img/avengers.svg b/img/avengers.svg
deleted file mode 100644
index 8dac54ed4..000000000
--- a/img/avengers.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/index.html b/index.html
index e19280787..dbf244c4e 100644
--- a/index.html
+++ b/index.html
@@ -9,7 +9,7 @@
-
+
diff --git a/markdown-page/index.html b/markdown-page/index.html
index 5068d3cf5..d3515919a 100644
--- a/markdown-page/index.html
+++ b/markdown-page/index.html
@@ -9,7 +9,7 @@
-
+
diff --git a/search-index.json b/search-index.json
index b13d725c0..8ec56ffdb 100644
--- a/search-index.json
+++ b/search-index.json
@@ -1 +1 @@
-[{"documents":[{"i":1,"t":"","u":"/blog/archive","b":[]},{"i":2,"t":"激活函数与Loss的梯度","u":"/blog/激活函数与Loss的梯度","b":[]},{"i":8,"t":"理论基础","u":"/blog/理论知识","b":[]},{"i":10,"t":"PyTorch基础","u":"/blog/PyTroch基础","b":[]},{"i":14,"t":"基础数学知识","u":"/blog/数学基础","b":[]},{"i":18,"t":"激活函数与Loss的梯度","u":"/blog/deep_learning/激活函数与Loss的梯度","b":[]},{"i":24,"t":"编译原理笔记","u":"/docs/课程学习/编译原理/编译原理复习笔记","b":["编译原理"]},{"i":82,"t":"Linux系统下GeekOS的环境配置","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","b":["操作系统课设"]},{"i":96,"t":"体系结构复习笔记","u":"/docs/课程学习/计算机体系结构/体系结构复习笔记","b":["计算机体系结构"]},{"i":104,"t":"Transformer and self-attention","u":"/docs/课程学习/计算机图形学/Transformer and self-attention","b":["计算机图形学"]},{"i":107,"t":"GeekOS project 0的实现","u":"/docs/课程学习/操作系统课设/GeekOS project 0","b":["操作系统课设"]},{"i":113,"t":"Welcome","u":"/docs/课程学习/intro","b":["课程学习"]},{"i":117,"t":"鸣谢","u":"/docs/鸣谢/intro","b":["饮水思源"]},{"i":119,"t":"大数除法","u":"/docs/推免/机试/大数除法","b":["机试"]},{"i":127,"t":"数据结构","u":"/docs/推免/计算机基础综合/数据结构","b":["计算机基础综合"]},{"i":132,"t":"概率论","u":"/docs/推免/数学/概率论","b":["数学"]},{"i":135,"t":"简历面试准备","u":"/docs/推免/简历/简历面试准备","b":["简历"]},{"i":177,"t":"夏令营面试数学部分复习","u":"/docs/推免/数学/夏令营面试数学部分复习","b":["数学"]},{"i":182,"t":"Welcome","u":"/docs/推免/intro","b":["推免"]},{"i":186,"t":"线性代数","u":"/docs/推免/数学/线性代数","b":["数学"]},{"i":192,"t":"反序输出","u":"/docs/Algorithms/题解/反序输出","b":["题解"]},{"i":198,"t":"Welcome","u":"/docs/Algorithms/intro","b":["算法"]},{"i":202,"t":"一维前缀和(刷出一道墙)","u":"/docs/Algorithms/题解/一维前缀和(刷出一道墙)","b":["题解"]},{"i":208,"t":"排列组合(求30的倍数)","u":"/docs/Algorithms/题解/排列组合(求30的倍数)","b":["题解"]},{"i":214,"t":"机试技巧与STL","u":"/docs/Algorithms/机试技巧与STL","b":[]},{"i":281,"t":"从全连接到卷积","u":"/docs/Deep Learning/基础知识/从全连接到卷积","b":["基础知识"]},{"i":288,"t":"STL模板","u":"/docs/Algorithms/STL模板","b":[]},{"i":310,"t":"池化层","u":"/docs/Deep Learning/基础知识/池化层","b":["基础知识"]},{"i":317,"t":"卷积层","u":"/docs/Deep Learning/基础知识/卷积层","b":["基础知识"]},{"i":322,"t":"激活函数与Loss的梯度","u":"/docs/Deep Learning/基础知识/激活函数与Loss的梯度","b":["基础知识"]},{"i":333,"t":"对于正则化的理解","u":"/docs/Deep Learning/基础知识/对于正则化的理解","b":["基础知识"]},{"i":349,"t":"深度可分离卷积","u":"/docs/Deep Learning/基础知识/深度可分离卷积","b":["基础知识"]},{"i":357,"t":"正则化与权重衰退","u":"/docs/Deep Learning/基础知识/正则化与权重衰退","b":["基础知识"]},{"i":365,"t":"K-fold cross-validation","u":"/docs/Deep Learning/基础知识/K-fold Cross-validation","b":["基础知识"]},{"i":372,"t":"AlexNet","u":"/docs/Deep Learning/经典模型/AlexNet","b":["经典模型"]},{"i":379,"t":"LeNet","u":"/docs/Deep Learning/经典模型/LeNet","b":["经典模型"]},{"i":386,"t":"关于Logistic Regression","u":"/docs/Deep Learning/基础知识/Logistic Regression","b":["基础知识"]},{"i":395,"t":"PyTorch基础","u":"/docs/Deep Learning/基础知识/PyTroch基础","b":["基础知识"]},{"i":398,"t":"Perceptron","u":"/docs/Deep Learning/经典模型/Perceptron","b":["经典模型"]},{"i":405,"t":"Attention Is All You Need","u":"/docs/Deep Learning/论文笔记/Attention Is All You Need","b":["论文笔记"]},{"i":406,"t":"Self-Attention","u":"/docs/Deep Learning/论文笔记/Self-Attention","b":["论文笔记"]},{"i":412,"t":"Welcome","u":"/docs/Deep Learning/intro","b":["深度学习"]},{"i":416,"t":"Visdom可视化","u":"/docs/Deep Learning/实用技巧/Visdom可视化","b":["实用技巧"]},{"i":427,"t":"终端代理","u":"/docs/Linux/实用工具/终端代理","b":["实用工具"]},{"i":435,"t":"如何让你的Kde Plasma看起来更像macOS","u":"/docs/Linux/客制化/如何让你的KDE看起来更像macOS","b":["客制化"]},{"i":440,"t":"挂载Windows磁盘为只读文件","u":"/docs/Linux/问题解决/双系统挂载Windows磁盘为只读文件","b":["问题解决"]},{"i":445,"t":"Welcome","u":"/docs/Others/intro","b":["其他"]},{"i":449,"t":"Welcome","u":"/docs/Linux/intro","b":["Linux"]},{"i":453,"t":"告示栏","u":"/docs/Others/博客搭建/告示栏","b":["博客搭建"]},{"i":455,"t":"要准备的问题","u":"/docs/Others/面试/要准备的问题","b":["面试"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[]],["t/2",[0,2.875]],["t/8",[1,0.878]],["t/10",[2,3.236]],["t/14",[1,0.878]],["t/18",[0,2.875]],["t/24",[1,0.878]],["t/82",[3,3.784]],["t/96",[1,0.878]],["t/104",[4,2.185,5,1.869,6,1.66]],["t/107",[7,2.185,8,2.185,9,2.185]],["t/113",[10,2.211]],["t/117",[1,0.878]],["t/119",[1,0.878]],["t/127",[1,0.878]],["t/132",[1,0.878]],["t/135",[1,0.878]],["t/177",[1,0.878]],["t/182",[10,2.211]],["t/186",[1,0.878]],["t/192",[1,0.878]],["t/198",[10,2.211]],["t/202",[1,0.878]],["t/208",[11,3.784]],["t/214",[12,3.236]],["t/281",[1,0.878]],["t/288",[12,3.236]],["t/310",[1,0.878]],["t/317",[1,0.878]],["t/322",[0,2.875]],["t/333",[1,0.878]],["t/349",[1,0.878]],["t/357",[1,0.878]],["t/365",[13,1.804,14,1.804,15,1.804,16,1.804]],["t/372",[17,3.784]],["t/379",[18,3.784]],["t/386",[19,2.771,20,2.771]],["t/395",[2,3.236]],["t/398",[21,3.784]],["t/405",[6,2.105,22,2.771]],["t/406",[5,2.369,6,2.105]],["t/412",[10,2.211]],["t/416",[23,3.784]],["t/427",[1,0.878]],["t/435",[24,2.771,25,2.771]],["t/440",[26,3.784]],["t/445",[10,2.211]],["t/449",[10,2.211]],["t/453",[1,0.878]],["t/455",[1,0.878]]],"invertedIndex":[["",{"_index":1,"t":{"8":{"position":[[0,4]]},"14":{"position":[[0,6]]},"24":{"position":[[0,6]]},"96":{"position":[[0,8]]},"117":{"position":[[0,2]]},"119":{"position":[[0,4]]},"127":{"position":[[0,4]]},"132":{"position":[[0,3]]},"135":{"position":[[0,6]]},"177":{"position":[[0,11]]},"186":{"position":[[0,4]]},"192":{"position":[[0,4]]},"202":{"position":[[0,12]]},"281":{"position":[[0,7]]},"310":{"position":[[0,3]]},"317":{"position":[[0,3]]},"333":{"position":[[0,8]]},"349":{"position":[[0,7]]},"357":{"position":[[0,8]]},"427":{"position":[[0,4]]},"453":{"position":[[0,3]]},"455":{"position":[[0,6]]}}}],["0",{"_index":9,"t":{"107":{"position":[[15,4]]}}}],["30",{"_index":11,"t":{"208":{"position":[[0,12]]}}}],["alexnet",{"_index":17,"t":{"372":{"position":[[0,7]]}}}],["attent",{"_index":6,"t":{"104":{"position":[[21,9]]},"405":{"position":[[0,9]]},"406":{"position":[[5,9]]}}}],["cross",{"_index":15,"t":{"365":{"position":[[7,5]]}}}],["fold",{"_index":14,"t":{"365":{"position":[[2,4]]}}}],["geeko",{"_index":7,"t":{"107":{"position":[[0,6]]}}}],["k",{"_index":13,"t":{"365":{"position":[[0,1]]}}}],["kde",{"_index":24,"t":{"435":{"position":[[0,8]]}}}],["lenet",{"_index":18,"t":{"379":{"position":[[0,5]]}}}],["linux系统下geeko",{"_index":3,"t":{"82":{"position":[[0,19]]}}}],["logist",{"_index":19,"t":{"386":{"position":[[0,10]]}}}],["loss",{"_index":0,"t":{"2":{"position":[[0,12]]},"18":{"position":[[0,12]]},"322":{"position":[[0,12]]}}}],["need",{"_index":22,"t":{"405":{"position":[[21,4]]}}}],["perceptron",{"_index":21,"t":{"398":{"position":[[0,10]]}}}],["plasma看起来更像maco",{"_index":25,"t":{"435":{"position":[[9,16]]}}}],["project",{"_index":8,"t":{"107":{"position":[[7,7]]}}}],["pytorch",{"_index":2,"t":{"10":{"position":[[0,9]]},"395":{"position":[[0,9]]}}}],["regress",{"_index":20,"t":{"386":{"position":[[11,10]]}}}],["self",{"_index":5,"t":{"104":{"position":[[16,4]]},"406":{"position":[[0,4]]}}}],["stl",{"_index":12,"t":{"214":{"position":[[0,8]]},"288":{"position":[[0,5]]}}}],["transform",{"_index":4,"t":{"104":{"position":[[0,11]]}}}],["valid",{"_index":16,"t":{"365":{"position":[[13,10]]}}}],["visdom",{"_index":23,"t":{"416":{"position":[[0,9]]}}}],["welcom",{"_index":10,"t":{"113":{"position":[[0,7]]},"182":{"position":[[0,7]]},"198":{"position":[[0,7]]},"412":{"position":[[0,7]]},"445":{"position":[[0,7]]},"449":{"position":[[0,7]]}}}],["window",{"_index":26,"t":{"440":{"position":[[0,16]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":4,"t":"一、激活函数","u":"/blog/激活函数与Loss的梯度","h":"#一激活函数","p":2},{"i":6,"t":"二、损失函数","u":"/blog/激活函数与Loss的梯度","h":"#二损失函数","p":2},{"i":12,"t":"一、常用函数部分","u":"/blog/PyTroch基础","h":"#一常用函数部分","p":10},{"i":16,"t":"矩阵 / 向量的内积和外积","u":"/blog/数学基础","h":"#矩阵--向量的内积和外积","p":14},{"i":20,"t":"一、激活函数","u":"/blog/deep_learning/激活函数与Loss的梯度","h":"#一激活函数","p":18},{"i":22,"t":"二、损失函数","u":"/blog/deep_learning/激活函数与Loss的梯度","h":"#二损失函数","p":18},{"i":25,"t":"第一章:前言","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#第一章前言","p":24},{"i":26,"t":"1.1 编译程序的逻辑结构","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#11-编译程序的逻辑结构","p":24},{"i":28,"t":"1.2 前端和后端","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#12-前端和后端","p":24},{"i":30,"t":"1.3 遍的概念","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#13-遍的概念","p":24},{"i":32,"t":"第二章:文法和语言","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#第二章文法和语言","p":24},{"i":33,"t":"2.1 句型","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#21-句型","p":24},{"i":35,"t":"2.2 句子:","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#22-句子","p":24},{"i":37,"t":"2.3 文法的分类:","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#23-文法的分类","p":24},{"i":39,"t":"2.4 最左/右推导:","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#24-最左右推导","p":24},{"i":41,"t":"第三章:词法分析","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#第三章词法分析","p":24},{"i":42,"t":"3.1 正规文法转换成正规式","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#31-正规文法转换成正规式","p":24},{"i":43,"t":"3.2 有穷自动机(FA)","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#32-有穷自动机fa","p":24},{"i":45,"t":"3.3 正规式RE与有穷自动机FA的互相转化","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#33-正规式re与有穷自动机fa的互相转化","p":24},{"i":46,"t":"3.4 正规文法RM与有穷自动机FA的互相转化","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#34-正规文法rm与有穷自动机fa的互相转化","p":24},{"i":47,"t":"第四章:自顶向下语法分析方法","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#第四章自顶向下语法分析方法","p":24},{"i":49,"t":"1. FIRST集的定义","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#1-first集的定义","p":24},{"i":50,"t":"2. Follow集的定义","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#2-follow集的定义","p":24},{"i":52,"t":"3. SELECT集的定义","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#3-select集的定义","p":24},{"i":54,"t":"4. LL(1)文法的定义","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#4-ll1文法的定义","p":24},{"i":55,"t":"5. LL(1)文法的判别","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#5-ll1文法的判别","p":24},{"i":57,"t":"6. 预测分析表","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#6-预测分析表","p":24},{"i":59,"t":"7. 非LL(1)文法到LL(1)文法的等价变换","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#7-非ll1文法到ll1文法的等价变换","p":24},{"i":61,"t":"第五章:自底向上语法分析方法","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#第五章自底向上语法分析方法","p":24},{"i":62,"t":"5.1 概念","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#51-概念","p":24},{"i":64,"t":"5.2 方法","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#52-方法","p":24},{"i":66,"t":"5.3 工作过程","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#53-工作过程","p":24},{"i":67,"t":"5.4 移入-归约分析器的4种动作","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#54-移入-归约分析器的4种动作","p":24},{"i":69,"t":"5.5 重要题型","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#55-重要题型","p":24},{"i":71,"t":"概念总结","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#概念总结","p":24},{"i":72,"t":"1 编译程序各阶段功能","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#1-编译程序各阶段功能","p":24},{"i":74,"t":"2 语法分析方法的概念","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#2-语法分析方法的概念","p":24},{"i":76,"t":"3 翻译模式","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#3-翻译模式","p":24},{"i":78,"t":"4 属性文法","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#4-属性文法","p":24},{"i":80,"t":"5 符号表","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#5-符号表","p":24},{"i":83,"t":"一、必须要知道的原理","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#一必须要知道的原理","p":82},{"i":84,"t":"1. GeekOS:","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#1-geekos","p":82},{"i":86,"t":"2. bochs:","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#2-bochs","p":82},{"i":88,"t":"3. 二者之间的关系","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#3-二者之间的关系","p":82},{"i":90,"t":"二、安装与配置","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#二安装与配置","p":82},{"i":92,"t":"1. 安装","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#1-安装","p":82},{"i":94,"t":"2. 配置","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#2-配置","p":82},{"i":97,"t":"一、基础知识","u":"/docs/课程学习/计算机体系结构/体系结构复习笔记","h":"#一基础知识","p":96},{"i":99,"t":"二、指令系统","u":"/docs/课程学习/计算机体系结构/体系结构复习笔记","h":"#二指令系统","p":96},{"i":100,"t":"三、存储系统","u":"/docs/课程学习/计算机体系结构/体系结构复习笔记","h":"#三存储系统","p":96},{"i":102,"t":"四、流水线","u":"/docs/课程学习/计算机体系结构/体系结构复习笔记","h":"#四流水线","p":96},{"i":105,"t":"一、模型概述","u":"/docs/课程学习/计算机图形学/Transformer and self-attention","h":"#一模型概述","p":104},{"i":106,"t":"二、CNN与self-attention","u":"/docs/课程学习/计算机图形学/Transformer and self-attention","h":"#二cnn与self-attention","p":104},{"i":109,"t":"1. 编写C语言代码","u":"/docs/课程学习/操作系统课设/GeekOS project 0","h":"#1-编写c语言代码","p":107},{"i":111,"t":"2. 使用Linux的编译系统对C语言代码进行编译","u":"/docs/课程学习/操作系统课设/GeekOS project 0","h":"#2-使用linux的编译系统对c语言代码进行编译","p":107},{"i":115,"t":"支持我!","u":"/docs/课程学习/intro","h":"#支持我","p":113},{"i":121,"t":"思路","u":"/docs/推免/机试/大数除法","h":"#思路","p":119},{"i":123,"t":"参考代码","u":"/docs/推免/机试/大数除法","h":"#参考代码","p":119},{"i":125,"t":"扩展","u":"/docs/推免/机试/大数除法","h":"#扩展","p":119},{"i":128,"t":"树","u":"/docs/推免/计算机基础综合/数据结构","h":"#树","p":127},{"i":130,"t":"图","u":"/docs/推免/计算机基础综合/数据结构","h":"#图","p":127},{"i":133,"t":"面试常考问题","u":"/docs/推免/数学/概率论","h":"#面试常考问题","p":132},{"i":136,"t":"一、U-2-Net","u":"/docs/推免/简历/简历面试准备","h":"#一u-2-net","p":135},{"i":137,"t":"(一)SOD任务","u":"/docs/推免/简历/简历面试准备","h":"#一sod任务","p":135},{"i":139,"t":"(二)网络结构","u":"/docs/推免/简历/简历面试准备","h":"#二网络结构","p":135},{"i":141,"t":"(三)损失函数","u":"/docs/推免/简历/简历面试准备","h":"#三损失函数","p":135},{"i":143,"t":"(四)深度可分离卷积","u":"/docs/推免/简历/简历面试准备","h":"#四深度可分离卷积","p":135},{"i":145,"t":"二、YOLO","u":"/docs/推免/简历/简历面试准备","h":"#二yolo","p":135},{"i":146,"t":"(一)mAP","u":"/docs/推免/简历/简历面试准备","h":"#一map","p":135},{"i":148,"t":"(二)YOLOv1","u":"/docs/推免/简历/简历面试准备","h":"#二yolov1","p":135},{"i":150,"t":"(二)YOLOv2","u":"/docs/推免/简历/简历面试准备","h":"#二yolov2","p":135},{"i":152,"t":"(三)YOLOv5","u":"/docs/推免/简历/简历面试准备","h":"#三yolov5","p":135},{"i":154,"t":"三、CBAM","u":"/docs/推免/简历/简历面试准备","h":"#三cbam","p":135},{"i":156,"t":"(一)总体结构","u":"/docs/推免/简历/简历面试准备","h":"#一总体结构","p":135},{"i":158,"t":"(二)通道注意力","u":"/docs/推免/简历/简历面试准备","h":"#二通道注意力","p":135},{"i":160,"t":"(三)空间注意力","u":"/docs/推免/简历/简历面试准备","h":"#三空间注意力","p":135},{"i":162,"t":"(四)其他注意事项","u":"/docs/推免/简历/简历面试准备","h":"#四其他注意事项","p":135},{"i":164,"t":"四、Focal Loss","u":"/docs/推免/简历/简历面试准备","h":"#四focal-loss","p":135},{"i":166,"t":"五、SENet","u":"/docs/推免/简历/简历面试准备","h":"#五senet","p":135},{"i":168,"t":"六、自注意力机制","u":"/docs/推免/简历/简历面试准备","h":"#六自注意力机制","p":135},{"i":170,"t":"七、自我介绍","u":"/docs/推免/简历/简历面试准备","h":"#七自我介绍","p":135},{"i":171,"t":"(一)英文自我介绍","u":"/docs/推免/简历/简历面试准备","h":"#一英文自我介绍","p":135},{"i":173,"t":"(二)西电广研院自我介绍","u":"/docs/推免/简历/简历面试准备","h":"#二西电广研院自我介绍","p":135},{"i":175,"t":"(三)电子科技大学自我介绍","u":"/docs/推免/简历/简历面试准备","h":"#三电子科技大学自我介绍","p":135},{"i":178,"t":"一、线性代数","u":"/docs/推免/数学/夏令营面试数学部分复习","h":"#一线性代数","p":177},{"i":180,"t":"二、概率论","u":"/docs/推免/数学/夏令营面试数学部分复习","h":"#二概率论","p":177},{"i":184,"t":"支持我!","u":"/docs/推免/intro","h":"#支持我","p":182},{"i":188,"t":"一、基础知识","u":"/docs/推免/数学/线性代数","h":"#一基础知识","p":186},{"i":190,"t":"二、面试常考问题","u":"/docs/推免/数学/线性代数","h":"#二面试常考问题","p":186},{"i":194,"t":"参考代码","u":"/docs/Algorithms/题解/反序输出","h":"#参考代码","p":192},{"i":196,"t":"题解","u":"/docs/Algorithms/题解/反序输出","h":"#题解","p":192},{"i":200,"t":"支持我!","u":"/docs/Algorithms/intro","h":"#支持我","p":198},{"i":204,"t":"参考代码","u":"/docs/Algorithms/题解/一维前缀和(刷出一道墙)","h":"#参考代码","p":202},{"i":206,"t":"题解","u":"/docs/Algorithms/题解/一维前缀和(刷出一道墙)","h":"#题解","p":202},{"i":210,"t":"参考代码","u":"/docs/Algorithms/题解/排列组合(求30的倍数)","h":"#参考代码","p":208},{"i":212,"t":"题解","u":"/docs/Algorithms/题解/排列组合(求30的倍数)","h":"#题解","p":208},{"i":216,"t":"vs2018 快捷键","u":"/docs/Algorithms/机试技巧与STL","h":"#vs2018-快捷键","p":214},{"i":218,"t":"头文件","u":"/docs/Algorithms/机试技巧与STL","h":"#头文件","p":214},{"i":219,"t":"标准c库","u":"/docs/Algorithms/机试技巧与STL","h":"#标准c库","p":214},{"i":221,"t":"c++ STL","u":"/docs/Algorithms/机试技巧与STL","h":"#c-stl","p":214},{"i":223,"t":"常用头","u":"/docs/Algorithms/机试技巧与STL","h":"#常用头","p":214},{"i":225,"t":"常用宏定义","u":"/docs/Algorithms/机试技巧与STL","h":"#常用宏定义","p":214},{"i":227,"t":"结构体","u":"/docs/Algorithms/机试技巧与STL","h":"#结构体","p":214},{"i":228,"t":"定义","u":"/docs/Algorithms/机试技巧与STL","h":"#定义","p":214},{"i":230,"t":"初始化","u":"/docs/Algorithms/机试技巧与STL","h":"#初始化","p":214},{"i":232,"t":"运算符重载","u":"/docs/Algorithms/机试技巧与STL","h":"#运算符重载","p":214},{"i":234,"t":"c++new的使用","u":"/docs/Algorithms/机试技巧与STL","h":"#cnew的使用","p":214},{"i":235,"t":"常规","u":"/docs/Algorithms/机试技巧与STL","h":"#常规","p":214},{"i":237,"t":"动态申请列大小固定的二维数组","u":"/docs/Algorithms/机试技巧与STL","h":"#动态申请列大小固定的二维数组","p":214},{"i":239,"t":"动态申请大小不固定的二维数组","u":"/docs/Algorithms/机试技巧与STL","h":"#动态申请大小不固定的二维数组","p":214},{"i":241,"t":"常用STL","u":"/docs/Algorithms/机试技巧与STL","h":"#常用stl","p":214},{"i":243,"t":"简述","u":"/docs/Algorithms/机试技巧与STL","h":"#简述","p":214},{"i":245,"t":"algorithm","u":"/docs/Algorithms/机试技巧与STL","h":"#algorithm","p":214},{"i":247,"t":"vector","u":"/docs/Algorithms/机试技巧与STL","h":"#vector","p":214},{"i":249,"t":"list","u":"/docs/Algorithms/机试技巧与STL","h":"#list","p":214},{"i":251,"t":"string","u":"/docs/Algorithms/机试技巧与STL","h":"#string","p":214},{"i":253,"t":"pair","u":"/docs/Algorithms/机试技巧与STL","h":"#pair","p":214},{"i":255,"t":"map","u":"/docs/Algorithms/机试技巧与STL","h":"#map","p":214},{"i":257,"t":"stack","u":"/docs/Algorithms/机试技巧与STL","h":"#stack","p":214},{"i":259,"t":"queue","u":"/docs/Algorithms/机试技巧与STL","h":"#queue","p":214},{"i":261,"t":"set","u":"/docs/Algorithms/机试技巧与STL","h":"#set","p":214},{"i":263,"t":"multiset","u":"/docs/Algorithms/机试技巧与STL","h":"#multiset","p":214},{"i":265,"t":"bitset","u":"/docs/Algorithms/机试技巧与STL","h":"#bitset","p":214},{"i":267,"t":"图模板","u":"/docs/Algorithms/机试技巧与STL","h":"#图模板","p":214},{"i":268,"t":"不带出入度的最简模板","u":"/docs/Algorithms/机试技巧与STL","h":"#不带出入度的最简模板","p":214},{"i":270,"t":"带出入度的 (2019推免试题)","u":"/docs/Algorithms/机试技巧与STL","h":"#带出入度的-2019推免试题","p":214},{"i":272,"t":"图算法:找出u到v的所有路径-邻接表","u":"/docs/Algorithms/机试技巧与STL","h":"#图算法找出u到v的所有路径-邻接表","p":214},{"i":274,"t":"树模板","u":"/docs/Algorithms/机试技巧与STL","h":"#树模板","p":214},{"i":275,"t":"注释版","u":"/docs/Algorithms/机试技巧与STL","h":"#注释版","p":214},{"i":277,"t":"简化版(Val As Index,若数据不在1~N内,则可能越界)","u":"/docs/Algorithms/机试技巧与STL","h":"#简化版val-as-index若数据不在1n内则可能越界","p":214},{"i":279,"t":"简化版(Val Not As Index,可以存任意的 Val)","u":"/docs/Algorithms/机试技巧与STL","h":"#简化版val-not-as-index可以存任意的-val","p":214},{"i":282,"t":"一、卷积的诞生&核心特征","u":"/docs/Deep Learning/基础知识/从全连接到卷积","h":"#一卷积的诞生核心特征","p":281},{"i":284,"t":"二、重新考察全连接层","u":"/docs/Deep Learning/基础知识/从全连接到卷积","h":"#二重新考察全连接层","p":281},{"i":286,"t":"三、总结","u":"/docs/Deep Learning/基础知识/从全连接到卷积","h":"#三总结","p":281},{"i":290,"t":"vector","u":"/docs/Algorithms/STL模板","h":"#vector","p":288},{"i":292,"t":"pair","u":"/docs/Algorithms/STL模板","h":"#pair","p":288},{"i":294,"t":"string","u":"/docs/Algorithms/STL模板","h":"#string","p":288},{"i":296,"t":"query","u":"/docs/Algorithms/STL模板","h":"#query","p":288},{"i":298,"t":"priority_queue","u":"/docs/Algorithms/STL模板","h":"#priority_queue","p":288},{"i":300,"t":"stack","u":"/docs/Algorithms/STL模板","h":"#stack","p":288},{"i":302,"t":"deque","u":"/docs/Algorithms/STL模板","h":"#deque","p":288},{"i":304,"t":"set/multiset","u":"/docs/Algorithms/STL模板","h":"#setmultiset","p":288},{"i":306,"t":"map/multimap","u":"/docs/Algorithms/STL模板","h":"#mapmultimap","p":288},{"i":308,"t":"biset","u":"/docs/Algorithms/STL模板","h":"#biset","p":288},{"i":311,"t":"一、卷积对像素位置信息是敏感的","u":"/docs/Deep Learning/基础知识/池化层","h":"#一卷积对像素位置信息是敏感的","p":310},{"i":313,"t":"二、池化层的作用","u":"/docs/Deep Learning/基础知识/池化层","h":"#二池化层的作用","p":310},{"i":315,"t":"三、池化的实现","u":"/docs/Deep Learning/基础知识/池化层","h":"#三池化的实现","p":310},{"i":318,"t":"一、1x1卷积","u":"/docs/Deep Learning/基础知识/卷积层","h":"#一1x1卷积","p":317},{"i":320,"t":"二、二维卷积层","u":"/docs/Deep Learning/基础知识/卷积层","h":"#二二维卷积层","p":317},{"i":323,"t":"一、激活函数","u":"/docs/Deep Learning/基础知识/激活函数与Loss的梯度","h":"#一激活函数","p":322},{"i":324,"t":"1. Sigmoid函数 / Logistic函数","u":"/docs/Deep Learning/基础知识/激活函数与Loss的梯度","h":"#1-sigmoid函数--logistic函数","p":322},{"i":326,"t":"2. 线性整流单元(Rectified Linear Unit, ReLU)","u":"/docs/Deep Learning/基础知识/激活函数与Loss的梯度","h":"#2-线性整流单元rectified-linear-unit-relu","p":322},{"i":328,"t":"二、损失函数","u":"/docs/Deep Learning/基础知识/激活函数与Loss的梯度","h":"#二损失函数","p":322},{"i":329,"t":"1. Mean Squared Error 均方误差","u":"/docs/Deep Learning/基础知识/激活函数与Loss的梯度","h":"#1-mean-squared-error-均方误差","p":322},{"i":331,"t":"2. Cross Entropy Loss 交叉熵损失","u":"/docs/Deep Learning/基础知识/激活函数与Loss的梯度","h":"#2-cross-entropy-loss-交叉熵损失","p":322},{"i":335,"t":"L1和L2是什么?","u":"/docs/Deep Learning/基础知识/对于正则化的理解","h":"#l1和l2是什么","p":333},{"i":337,"t":"Model","u":"/docs/Deep Learning/基础知识/对于正则化的理解","h":"#model","p":333},{"i":339,"t":"损失函数","u":"/docs/Deep Learning/基础知识/对于正则化的理解","h":"#损失函数","p":333},{"i":341,"t":"如何避免过拟合","u":"/docs/Deep Learning/基础知识/对于正则化的理解","h":"#如何避免过拟合","p":333},{"i":343,"t":"有正则化与没有正则化","u":"/docs/Deep Learning/基础知识/对于正则化的理解","h":"#有正则化与没有正则化","p":333},{"i":345,"t":"L1 vs L2","u":"/docs/Deep Learning/基础知识/对于正则化的理解","h":"#l1-vs-l2","p":333},{"i":347,"t":"L1的稀疏性","u":"/docs/Deep Learning/基础知识/对于正则化的理解","h":"#l1的稀疏性","p":333},{"i":351,"t":"常规卷积","u":"/docs/Deep Learning/基础知识/深度可分离卷积","h":"#常规卷积","p":349},{"i":353,"t":"(1)逐通道卷积-Depthwise Convolution","u":"/docs/Deep Learning/基础知识/深度可分离卷积","h":"#1逐通道卷积-depthwise-convolution","p":349},{"i":355,"t":"(2)逐点卷积-Pointwise Convolution","u":"/docs/Deep Learning/基础知识/深度可分离卷积","h":"#2逐点卷积-pointwise-convolution","p":349},{"i":359,"t":"一、什么是正则化","u":"/docs/Deep Learning/基础知识/正则化与权重衰退","h":"#一什么是正则化","p":357},{"i":361,"t":"二、L1正则化","u":"/docs/Deep Learning/基础知识/正则化与权重衰退","h":"#二l1正则化","p":357},{"i":363,"t":"三、L2正则化与权重衰退","u":"/docs/Deep Learning/基础知识/正则化与权重衰退","h":"#三l2正则化与权重衰退","p":357},{"i":366,"t":"What is k-fold cross-validation?","u":"/docs/Deep Learning/基础知识/K-fold Cross-validation","h":"#what-is-k-fold-cross-validation","p":365},{"i":368,"t":"How does k-fold cross-validation work?","u":"/docs/Deep Learning/基础知识/K-fold Cross-validation","h":"#how-does-k-fold-cross-validation-work","p":365},{"i":370,"t":"Summary","u":"/docs/Deep Learning/基础知识/K-fold Cross-validation","h":"#summary","p":365},{"i":373,"t":"背景","u":"/docs/Deep Learning/经典模型/AlexNet","h":"#背景","p":372},{"i":375,"t":"新的概念和技术","u":"/docs/Deep Learning/经典模型/AlexNet","h":"#新的概念和技术","p":372},{"i":377,"t":"与LeNet比较","u":"/docs/Deep Learning/经典模型/AlexNet","h":"#与lenet比较","p":372},{"i":380,"t":"背景","u":"/docs/Deep Learning/经典模型/LeNet","h":"#背景","p":379},{"i":382,"t":"代码实现","u":"/docs/Deep Learning/经典模型/LeNet","h":"#代码实现","p":379},{"i":384,"t":"问题","u":"/docs/Deep Learning/经典模型/LeNet","h":"#问题","p":379},{"i":387,"t":"一、什么是Logistic Regression","u":"/docs/Deep Learning/基础知识/Logistic Regression","h":"#一什么是logistic-regression","p":386},{"i":389,"t":"二、逻辑回归(Logistic Regression)和线性回归(Linear Regression)","u":"/docs/Deep Learning/基础知识/Logistic Regression","h":"#二逻辑回归logistic-regression和线性回归linear-regression","p":386},{"i":391,"t":"三、逻辑回归到底是回归任务(Regression)还是分类任务(Classification)?","u":"/docs/Deep Learning/基础知识/Logistic Regression","h":"#三逻辑回归到底是回归任务regression还是分类任务classification","p":386},{"i":393,"t":"四、为什么逻辑回归或其他分类任务不使用分类准确率作为损失函数?","u":"/docs/Deep Learning/基础知识/Logistic Regression","h":"#四为什么逻辑回归或其他分类任务不使用分类准确率作为损失函数","p":386},{"i":396,"t":"一、常用函数部分","u":"/docs/Deep Learning/基础知识/PyTroch基础","h":"#一常用函数部分","p":395},{"i":399,"t":"一、什么是感知机","u":"/docs/Deep Learning/经典模型/Perceptron","h":"#一什么是感知机","p":398},{"i":401,"t":"二、详细原理","u":"/docs/Deep Learning/经典模型/Perceptron","h":"#二详细原理","p":398},{"i":403,"t":"三、总结","u":"/docs/Deep Learning/经典模型/Perceptron","h":"#三总结","p":398},{"i":407,"t":"CNN的局限性","u":"/docs/Deep Learning/论文笔记/Self-Attention","h":"#cnn的局限性","p":406},{"i":408,"t":"输入与输出的局限性","u":"/docs/Deep Learning/论文笔记/Self-Attention","h":"#输入与输出的局限性","p":406},{"i":410,"t":"关联上下文的局限性","u":"/docs/Deep Learning/论文笔记/Self-Attention","h":"#关联上下文的局限性","p":406},{"i":414,"t":"支持我!","u":"/docs/Deep Learning/intro","h":"#支持我","p":412},{"i":418,"t":"一、安装Visdom","u":"/docs/Deep Learning/实用技巧/Visdom可视化","h":"#一安装visdom","p":416},{"i":420,"t":"二、Visdom的使用","u":"/docs/Deep Learning/实用技巧/Visdom可视化","h":"#二visdom的使用","p":416},{"i":421,"t":"0. Visdom的启动","u":"/docs/Deep Learning/实用技巧/Visdom可视化","h":"#0-visdom的启动","p":416},{"i":423,"t":"1. 单窗口单曲线的可视化","u":"/docs/Deep Learning/实用技巧/Visdom可视化","h":"#1-单窗口单曲线的可视化","p":416},{"i":425,"t":"2. 单窗口多曲线的可视化","u":"/docs/Deep Learning/实用技巧/Visdom可视化","h":"#2-单窗口多曲线的可视化","p":416},{"i":429,"t":"一、编写脚本","u":"/docs/Linux/实用工具/终端代理","h":"#一编写脚本","p":427},{"i":431,"t":"二、关联终端配置文件","u":"/docs/Linux/实用工具/终端代理","h":"#二关联终端配置文件","p":427},{"i":433,"t":"三、使用","u":"/docs/Linux/实用工具/终端代理","h":"#三使用","p":427},{"i":436,"t":"一、latte-dock","u":"/docs/Linux/客制化/如何让你的KDE看起来更像macOS","h":"#一latte-dock","p":435},{"i":438,"t":"二、Kde Plasmoids","u":"/docs/Linux/客制化/如何让你的KDE看起来更像macOS","h":"#二kde-plasmoids","p":435},{"i":441,"t":"一、发生原因","u":"/docs/Linux/问题解决/双系统挂载Windows磁盘为只读文件","h":"#一发生原因","p":440},{"i":443,"t":"二、解决方案","u":"/docs/Linux/问题解决/双系统挂载Windows磁盘为只读文件","h":"#二解决方案","p":440},{"i":447,"t":"支持我!","u":"/docs/Others/intro","h":"#支持我","p":445},{"i":451,"t":"支持我!","u":"/docs/Linux/intro","h":"#支持我","p":449},{"i":457,"t":"一、自我介绍部分","u":"/docs/Others/面试/要准备的问题","h":"#一自我介绍部分","p":455},{"i":459,"t":"二、专业课面试题","u":"/docs/Others/面试/要准备的问题","h":"#二专业课面试题","p":455},{"i":461,"t":"三、自由面试题","u":"/docs/Others/面试/要准备的问题","h":"#三自由面试题","p":455}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/4",[0,0.507]],["t/6",[0,0.507]],["t/12",[0,0.507]],["t/16",[0,0.565]],["t/20",[0,0.507]],["t/22",[0,0.507]],["t/25",[0,0.507]],["t/26",[0,0.381,1,4.211]],["t/28",[0,0.381,2,4.211]],["t/30",[0,0.381,3,4.211]],["t/32",[0,0.507]],["t/33",[0,0.381,4,4.211]],["t/35",[0,0.381,5,4.211]],["t/37",[0,0.381,6,4.211]],["t/39",[0,0.381,7,4.211]],["t/41",[0,0.507]],["t/42",[0,0.381,8,4.211]],["t/43",[9,4.211,10,4.211]],["t/45",[11,4.211,12,4.211]],["t/46",[13,4.211,14,4.211]],["t/47",[0,0.507]],["t/49",[15,2.633,16,4.211]],["t/50",[17,2.548,18,4.211]],["t/52",[19,3.487,20,4.211]],["t/54",[21,3.487,22,3.774]],["t/55",[22,3.774,23,3.774]],["t/57",[0,0.381,24,4.211]],["t/59",[25,4.211,26,4.211]],["t/61",[0,0.507]],["t/62",[0,0.381,27,4.211]],["t/64",[0,0.381,28,4.211]],["t/66",[0,0.381,29,4.211]],["t/67",[0,0.306,21,2.795,30,3.376]],["t/69",[0,0.381,31,4.211]],["t/71",[0,0.507]],["t/72",[0,0.381,15,2.633]],["t/74",[0,0.381,17,2.548]],["t/76",[0,0.381,19,3.487]],["t/78",[0,0.381,21,3.487]],["t/80",[0,0.381,23,3.774]],["t/83",[0,0.507]],["t/84",[15,2.633,32,4.211]],["t/86",[17,2.548,33,4.211]],["t/88",[0,0.381,19,3.487]],["t/90",[0,0.507]],["t/92",[0,0.381,15,2.633]],["t/94",[0,0.381,17,2.548]],["t/97",[0,0.507]],["t/99",[0,0.507]],["t/100",[0,0.507]],["t/102",[0,0.507]],["t/105",[0,0.507]],["t/106",[34,4.211,35,4.211]],["t/109",[15,2.633,36,3.487]],["t/111",[17,2.548,37,4.211]],["t/115",[0,0.507]],["t/121",[0,0.507]],["t/123",[0,0.507]],["t/125",[0,0.507]],["t/128",[0,0.507]],["t/130",[0,0.507]],["t/133",[0,0.507]],["t/136",[17,2.042,38,3.376,39,3.376]],["t/137",[40,5.596]],["t/139",[0,0.507]],["t/141",[0,0.507]],["t/143",[0,0.507]],["t/145",[41,5.596]],["t/146",[42,5.016]],["t/148",[43,5.596]],["t/150",[44,5.596]],["t/152",[45,5.596]],["t/154",[46,5.596]],["t/156",[0,0.507]],["t/158",[0,0.507]],["t/160",[0,0.507]],["t/162",[0,0.507]],["t/164",[47,4.211,48,3.774]],["t/166",[49,5.596]],["t/168",[0,0.507]],["t/170",[0,0.507]],["t/171",[0,0.507]],["t/173",[0,0.507]],["t/175",[0,0.507]],["t/178",[0,0.507]],["t/180",[0,0.507]],["t/184",[0,0.507]],["t/188",[0,0.507]],["t/190",[0,0.507]],["t/194",[0,0.507]],["t/196",[0,0.507]],["t/200",[0,0.507]],["t/204",[0,0.507]],["t/206",[0,0.507]],["t/210",[0,0.507]],["t/212",[0,0.507]],["t/216",[0,0.381,50,4.211]],["t/218",[0,0.507]],["t/219",[36,4.634]],["t/221",[36,3.487,51,3.774]],["t/223",[0,0.507]],["t/225",[0,0.507]],["t/227",[0,0.507]],["t/228",[0,0.507]],["t/230",[0,0.507]],["t/232",[0,0.507]],["t/234",[52,5.596]],["t/235",[0,0.507]],["t/237",[0,0.507]],["t/239",[0,0.507]],["t/241",[51,5.016]],["t/243",[0,0.507]],["t/245",[53,5.596]],["t/247",[54,5.016]],["t/249",[55,5.596]],["t/251",[56,5.016]],["t/253",[57,5.016]],["t/255",[42,5.016]],["t/257",[58,5.016]],["t/259",[59,5.596]],["t/261",[60,5.596]],["t/263",[61,5.596]],["t/265",[62,5.596]],["t/267",[0,0.507]],["t/268",[0,0.507]],["t/270",[0,0.381,63,4.211]],["t/272",[0,0.381,64,4.211]],["t/274",[0,0.507]],["t/275",[0,0.507]],["t/277",[65,3.774,66,4.211]],["t/279",[65,4.614,67,3.376]],["t/282",[0,0.507]],["t/284",[0,0.507]],["t/286",[0,0.507]],["t/290",[54,5.016]],["t/292",[57,5.016]],["t/294",[56,5.016]],["t/296",[68,5.596]],["t/298",[69,5.596]],["t/300",[58,5.016]],["t/302",[70,5.596]],["t/304",[71,5.596]],["t/306",[72,5.596]],["t/308",[73,5.596]],["t/311",[0,0.507]],["t/313",[0,0.507]],["t/315",[0,0.507]],["t/318",[74,5.596]],["t/320",[0,0.507]],["t/323",[0,0.507]],["t/324",[0,0.255,15,1.762,75,2.817,76,2.332]],["t/326",[17,1.462,77,2.417,78,2.417,79,2.417,80,2.417]],["t/328",[0,0.507]],["t/329",[0,0.219,15,1.511,81,2.417,82,2.417,83,2.417]],["t/331",[0,0.219,17,1.462,48,2.166,84,2.001,85,2.417]],["t/335",[86,5.596]],["t/337",[87,5.596]],["t/339",[0,0.507]],["t/341",[0,0.507]],["t/343",[0,0.507]],["t/345",[88,2.795,89,3.376,90,3.026]],["t/347",[88,4.634]],["t/351",[0,0.507]],["t/353",[15,2.111,91,3.376,92,3.026]],["t/355",[17,2.042,92,3.026,93,3.376]],["t/359",[0,0.507]],["t/361",[88,4.634]],["t/363",[90,5.016]],["t/366",[84,2.332,94,2.525,95,2.525,96,2.525]],["t/368",[84,2.001,94,2.166,95,2.166,96,2.166,97,2.417]],["t/370",[98,5.596]],["t/373",[0,0.507]],["t/375",[0,0.507]],["t/377",[99,5.596]],["t/380",[0,0.507]],["t/382",[0,0.507]],["t/384",[0,0.507]],["t/387",[76,3.487,100,3.774]],["t/389",[76,2.795,100,3.026,101,3.376]],["t/391",[102,5.596]],["t/393",[0,0.507]],["t/396",[0,0.507]],["t/399",[0,0.507]],["t/401",[0,0.507]],["t/403",[0,0.507]],["t/407",[103,5.596]],["t/408",[0,0.507]],["t/410",[0,0.507]],["t/414",[0,0.507]],["t/418",[104,4.634]],["t/420",[104,4.634]],["t/421",[104,3.487,105,4.211]],["t/423",[0,0.381,15,2.633]],["t/425",[0,0.381,17,2.548]],["t/429",[0,0.507]],["t/431",[0,0.507]],["t/433",[0,0.507]],["t/436",[106,4.211,107,4.211]],["t/438",[108,4.211,109,4.211]],["t/441",[0,0.507]],["t/443",[0,0.507]],["t/447",[0,0.507]],["t/451",[0,0.507]],["t/457",[0,0.507]],["t/459",[0,0.507]],["t/461",[0,0.507]]],"invertedIndex":[["",{"_index":0,"t":{"4":{"position":[[0,6]]},"6":{"position":[[0,6]]},"12":{"position":[[0,8]]},"16":{"position":[[0,2],[3,1],[5,8]]},"20":{"position":[[0,6]]},"22":{"position":[[0,6]]},"25":{"position":[[0,6]]},"26":{"position":[[4,9]]},"28":{"position":[[4,5]]},"30":{"position":[[4,4]]},"32":{"position":[[0,9]]},"33":{"position":[[4,2]]},"35":{"position":[[4,3]]},"37":{"position":[[4,6]]},"39":{"position":[[4,7]]},"41":{"position":[[0,8]]},"42":{"position":[[4,10]]},"47":{"position":[[0,14]]},"57":{"position":[[3,5]]},"61":{"position":[[0,14]]},"62":{"position":[[4,2]]},"64":{"position":[[4,2]]},"66":{"position":[[4,4]]},"67":{"position":[[4,2]]},"69":{"position":[[4,4]]},"71":{"position":[[0,4]]},"72":{"position":[[2,9]]},"74":{"position":[[2,9]]},"76":{"position":[[2,4]]},"78":{"position":[[2,4]]},"80":{"position":[[2,3]]},"83":{"position":[[0,10]]},"88":{"position":[[3,7]]},"90":{"position":[[0,7]]},"92":{"position":[[3,2]]},"94":{"position":[[3,2]]},"97":{"position":[[0,6]]},"99":{"position":[[0,6]]},"100":{"position":[[0,6]]},"102":{"position":[[0,5]]},"105":{"position":[[0,6]]},"115":{"position":[[0,4]]},"121":{"position":[[0,2]]},"123":{"position":[[0,4]]},"125":{"position":[[0,2]]},"128":{"position":[[0,1]]},"130":{"position":[[0,1]]},"133":{"position":[[0,6]]},"139":{"position":[[0,7]]},"141":{"position":[[0,7]]},"143":{"position":[[0,10]]},"156":{"position":[[0,7]]},"158":{"position":[[0,8]]},"160":{"position":[[0,8]]},"162":{"position":[[0,9]]},"168":{"position":[[0,8]]},"170":{"position":[[0,6]]},"171":{"position":[[0,9]]},"173":{"position":[[0,12]]},"175":{"position":[[0,13]]},"178":{"position":[[0,6]]},"180":{"position":[[0,5]]},"184":{"position":[[0,4]]},"188":{"position":[[0,6]]},"190":{"position":[[0,8]]},"194":{"position":[[0,4]]},"196":{"position":[[0,2]]},"200":{"position":[[0,4]]},"204":{"position":[[0,4]]},"206":{"position":[[0,2]]},"210":{"position":[[0,4]]},"212":{"position":[[0,2]]},"216":{"position":[[7,3]]},"218":{"position":[[0,3]]},"223":{"position":[[0,3]]},"225":{"position":[[0,5]]},"227":{"position":[[0,3]]},"228":{"position":[[0,2]]},"230":{"position":[[0,3]]},"232":{"position":[[0,5]]},"235":{"position":[[0,2]]},"237":{"position":[[0,14]]},"239":{"position":[[0,14]]},"243":{"position":[[0,2]]},"267":{"position":[[0,3]]},"268":{"position":[[0,10]]},"270":{"position":[[0,5]]},"272":{"position":[[15,3]]},"274":{"position":[[0,3]]},"275":{"position":[[0,3]]},"282":{"position":[[0,12]]},"284":{"position":[[0,10]]},"286":{"position":[[0,4]]},"311":{"position":[[0,15]]},"313":{"position":[[0,8]]},"315":{"position":[[0,7]]},"320":{"position":[[0,7]]},"323":{"position":[[0,6]]},"324":{"position":[[13,1]]},"328":{"position":[[0,6]]},"329":{"position":[[22,4]]},"331":{"position":[[22,5]]},"339":{"position":[[0,4]]},"341":{"position":[[0,7]]},"343":{"position":[[0,10]]},"351":{"position":[[0,4]]},"359":{"position":[[0,8]]},"373":{"position":[[0,2]]},"375":{"position":[[0,7]]},"380":{"position":[[0,2]]},"382":{"position":[[0,4]]},"384":{"position":[[0,2]]},"393":{"position":[[0,31]]},"396":{"position":[[0,8]]},"399":{"position":[[0,8]]},"401":{"position":[[0,6]]},"403":{"position":[[0,4]]},"408":{"position":[[0,9]]},"410":{"position":[[0,9]]},"414":{"position":[[0,4]]},"423":{"position":[[3,10]]},"425":{"position":[[3,10]]},"429":{"position":[[0,6]]},"431":{"position":[[0,10]]},"433":{"position":[[0,4]]},"441":{"position":[[0,6]]},"443":{"position":[[0,6]]},"447":{"position":[[0,4]]},"451":{"position":[[0,4]]},"457":{"position":[[0,8]]},"459":{"position":[[0,8]]},"461":{"position":[[0,7]]}}}],["0",{"_index":105,"t":{"421":{"position":[[0,2]]}}}],["1",{"_index":15,"t":{"49":{"position":[[0,2]]},"72":{"position":[[0,1]]},"84":{"position":[[0,2]]},"92":{"position":[[0,2]]},"109":{"position":[[0,2]]},"324":{"position":[[0,2]]},"329":{"position":[[0,2]]},"353":{"position":[[0,8]]},"423":{"position":[[0,2]]}}}],["1.1",{"_index":1,"t":{"26":{"position":[[0,3]]}}}],["1.2",{"_index":2,"t":{"28":{"position":[[0,3]]}}}],["1.3",{"_index":3,"t":{"30":{"position":[[0,3]]}}}],["1x1",{"_index":74,"t":{"318":{"position":[[0,7]]}}}],["2",{"_index":17,"t":{"50":{"position":[[0,2]]},"74":{"position":[[0,1]]},"86":{"position":[[0,2]]},"94":{"position":[[0,2]]},"111":{"position":[[0,2]]},"136":{"position":[[4,1]]},"326":{"position":[[0,2]]},"331":{"position":[[0,2]]},"355":{"position":[[0,7]]},"425":{"position":[[0,2]]}}}],["2.1",{"_index":4,"t":{"33":{"position":[[0,3]]}}}],["2.2",{"_index":5,"t":{"35":{"position":[[0,3]]}}}],["2.3",{"_index":6,"t":{"37":{"position":[[0,3]]}}}],["2.4",{"_index":7,"t":{"39":{"position":[[0,3]]}}}],["2019",{"_index":63,"t":{"270":{"position":[[6,10]]}}}],["3",{"_index":19,"t":{"52":{"position":[[0,2]]},"76":{"position":[[0,1]]},"88":{"position":[[0,2]]}}}],["3.1",{"_index":8,"t":{"42":{"position":[[0,3]]}}}],["3.2",{"_index":9,"t":{"43":{"position":[[0,3]]}}}],["3.3",{"_index":11,"t":{"45":{"position":[[0,3]]}}}],["3.4",{"_index":13,"t":{"46":{"position":[[0,3]]}}}],["4",{"_index":21,"t":{"54":{"position":[[0,2]]},"67":{"position":[[7,10]]},"78":{"position":[[0,1]]}}}],["5",{"_index":23,"t":{"55":{"position":[[0,2]]},"80":{"position":[[0,1]]}}}],["5.1",{"_index":27,"t":{"62":{"position":[[0,3]]}}}],["5.2",{"_index":28,"t":{"64":{"position":[[0,3]]}}}],["5.3",{"_index":29,"t":{"66":{"position":[[0,3]]}}}],["5.4",{"_index":30,"t":{"67":{"position":[[0,3]]}}}],["5.5",{"_index":31,"t":{"69":{"position":[[0,3]]}}}],["6",{"_index":24,"t":{"57":{"position":[[0,2]]}}}],["7",{"_index":25,"t":{"59":{"position":[[0,2]]}}}],["algorithm",{"_index":53,"t":{"245":{"position":[[0,9]]}}}],["attent",{"_index":35,"t":{"106":{"position":[[11,9]]}}}],["biset",{"_index":73,"t":{"308":{"position":[[0,5]]}}}],["bitset",{"_index":62,"t":{"265":{"position":[[0,6]]}}}],["boch",{"_index":33,"t":{"86":{"position":[[3,6]]}}}],["c",{"_index":36,"t":{"109":{"position":[[3,7]]},"219":{"position":[[0,4]]},"221":{"position":[[0,3]]}}}],["c++new",{"_index":52,"t":{"234":{"position":[[0,9]]}}}],["cbam",{"_index":46,"t":{"154":{"position":[[0,6]]}}}],["cnn",{"_index":103,"t":{"407":{"position":[[0,7]]}}}],["cnn与self",{"_index":34,"t":{"106":{"position":[[0,10]]}}}],["convolut",{"_index":92,"t":{"353":{"position":[[19,11]]},"355":{"position":[[18,11]]}}}],["cross",{"_index":84,"t":{"331":{"position":[[3,5]]},"366":{"position":[[15,5]]},"368":{"position":[[16,5]]}}}],["depthwis",{"_index":91,"t":{"353":{"position":[[9,9]]}}}],["dequ",{"_index":70,"t":{"302":{"position":[[0,5]]}}}],["dock",{"_index":107,"t":{"436":{"position":[[8,4]]}}}],["entropi",{"_index":85,"t":{"331":{"position":[[9,7]]}}}],["error",{"_index":83,"t":{"329":{"position":[[16,5]]}}}],["fa",{"_index":10,"t":{"43":{"position":[[4,9]]}}}],["first",{"_index":16,"t":{"49":{"position":[[3,9]]}}}],["focal",{"_index":47,"t":{"164":{"position":[[0,7]]}}}],["fold",{"_index":95,"t":{"366":{"position":[[10,4]]},"368":{"position":[[11,4]]}}}],["follow",{"_index":18,"t":{"50":{"position":[[3,10]]}}}],["geeko",{"_index":32,"t":{"84":{"position":[[3,7]]}}}],["index",{"_index":67,"t":{"279":{"position":[[15,12]]}}}],["index,若数据不在1~n",{"_index":66,"t":{"277":{"position":[[11,22]]}}}],["k",{"_index":94,"t":{"366":{"position":[[8,1]]},"368":{"position":[[9,1]]}}}],["kde",{"_index":108,"t":{"438":{"position":[[0,5]]}}}],["l1",{"_index":88,"t":{"345":{"position":[[0,2]]},"347":{"position":[[0,6]]},"361":{"position":[[0,7]]}}}],["l1和l2",{"_index":86,"t":{"335":{"position":[[0,9]]}}}],["l2",{"_index":90,"t":{"345":{"position":[[6,2]]},"363":{"position":[[0,12]]}}}],["latt",{"_index":106,"t":{"436":{"position":[[0,7]]}}}],["lenet",{"_index":99,"t":{"377":{"position":[[0,8]]}}}],["linear",{"_index":78,"t":{"326":{"position":[[20,6]]}}}],["linux的编译系统对c",{"_index":37,"t":{"111":{"position":[[3,22]]}}}],["list",{"_index":55,"t":{"249":{"position":[[0,4]]}}}],["ll(1",{"_index":22,"t":{"54":{"position":[[3,10]]},"55":{"position":[[3,10]]}}}],["ll(1)文法到ll(1",{"_index":26,"t":{"59":{"position":[[3,21]]}}}],["logist",{"_index":76,"t":{"324":{"position":[[15,10]]},"387":{"position":[[0,13]]},"389":{"position":[[0,15]]}}}],["loss",{"_index":48,"t":{"164":{"position":[[8,4]]},"331":{"position":[[17,4]]}}}],["map",{"_index":42,"t":{"146":{"position":[[0,6]]},"255":{"position":[[0,3]]}}}],["map/multimap",{"_index":72,"t":{"306":{"position":[[0,12]]}}}],["mean",{"_index":81,"t":{"329":{"position":[[3,4]]}}}],["model",{"_index":87,"t":{"337":{"position":[[0,5]]}}}],["multiset",{"_index":61,"t":{"263":{"position":[[0,8]]}}}],["net",{"_index":39,"t":{"136":{"position":[[6,3]]}}}],["pair",{"_index":57,"t":{"253":{"position":[[0,4]]},"292":{"position":[[0,4]]}}}],["plasmoid",{"_index":109,"t":{"438":{"position":[[6,9]]}}}],["pointwis",{"_index":93,"t":{"355":{"position":[[8,9]]}}}],["priority_queu",{"_index":69,"t":{"298":{"position":[[0,14]]}}}],["queri",{"_index":68,"t":{"296":{"position":[[0,5]]}}}],["queue",{"_index":59,"t":{"259":{"position":[[0,5]]}}}],["rectifi",{"_index":77,"t":{"326":{"position":[[3,16]]}}}],["regress",{"_index":100,"t":{"387":{"position":[[14,10]]},"389":{"position":[[40,11]]}}}],["regression)和线性回归(linear",{"_index":101,"t":{"389":{"position":[[16,23]]}}}],["regression)还是分类任务(classif",{"_index":102,"t":{"391":{"position":[[0,48]]}}}],["relu",{"_index":80,"t":{"326":{"position":[[33,5]]}}}],["re与有穷自动机fa",{"_index":12,"t":{"45":{"position":[[4,18]]}}}],["rm与有穷自动机fa",{"_index":14,"t":{"46":{"position":[[4,19]]}}}],["select",{"_index":20,"t":{"52":{"position":[[3,10]]}}}],["senet",{"_index":49,"t":{"166":{"position":[[0,7]]}}}],["set",{"_index":60,"t":{"261":{"position":[[0,3]]}}}],["set/multiset",{"_index":71,"t":{"304":{"position":[[0,12]]}}}],["sigmoid",{"_index":75,"t":{"324":{"position":[[3,9]]}}}],["sod",{"_index":40,"t":{"137":{"position":[[0,8]]}}}],["squar",{"_index":82,"t":{"329":{"position":[[8,7]]}}}],["stack",{"_index":58,"t":{"257":{"position":[[0,5]]},"300":{"position":[[0,5]]}}}],["stl",{"_index":51,"t":{"221":{"position":[[4,3]]},"241":{"position":[[0,5]]}}}],["string",{"_index":56,"t":{"251":{"position":[[0,6]]},"294":{"position":[[0,6]]}}}],["summari",{"_index":98,"t":{"370":{"position":[[0,7]]}}}],["u",{"_index":38,"t":{"136":{"position":[[0,3]]}}}],["unit",{"_index":79,"t":{"326":{"position":[[27,5]]}}}],["u到v",{"_index":64,"t":{"272":{"position":[[0,14]]}}}],["val",{"_index":65,"t":{"277":{"position":[[0,7]]},"279":{"position":[[0,7],[28,4]]}}}],["valid",{"_index":96,"t":{"366":{"position":[[21,11]]},"368":{"position":[[22,10]]}}}],["vector",{"_index":54,"t":{"247":{"position":[[0,6]]},"290":{"position":[[0,6]]}}}],["visdom",{"_index":104,"t":{"418":{"position":[[0,10]]},"420":{"position":[[0,11]]},"421":{"position":[[3,9]]}}}],["vs",{"_index":89,"t":{"345":{"position":[[3,2]]}}}],["vs2018",{"_index":50,"t":{"216":{"position":[[0,6]]}}}],["work",{"_index":97,"t":{"368":{"position":[[33,5]]}}}],["yolo",{"_index":41,"t":{"145":{"position":[[0,6]]}}}],["yolov1",{"_index":43,"t":{"148":{"position":[[0,9]]}}}],["yolov2",{"_index":44,"t":{"150":{"position":[[0,9]]}}}],["yolov5",{"_index":45,"t":{"152":{"position":[[0,9]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"一、激活函数 Sigmoid函数 / Logistic函数 σ(x)=11+e−x(1)\\sigma(x) = \\frac{1}{1 + e^{-x}} \\tag{1}σ(x)=1+e−x1(1) dσdx=σ(1−σ)(2)\\frac{{\\rm d}\\sigma}{{\\rm d}x} = \\sigma{(1 - \\sigma)} \\tag{2}dxdσ=σ(1−σ)(2) 优点:可以将数据压缩至[0, 1)区间内,有较大实用意义 致命问题:在输入值较小或较大时,Sigmoid函数的梯度趋近于零,会导致网络参数长时间得不到更新,即梯度弥散问题 from torch.nn import functional as F import torch x = torch.linspace(-100, 100, 10) F.sigmoid(x) # 当x为100时,sigmoid(x)就接近于0了 线性整流单元(Rectified Linear Unit, ReLU) f(x)={0x<0xx≥0(1)f(x) = \\begin{cases} 0 & x < 0\\\\ x & x \\geq 0\\\\ \\end{cases} \\tag{1}f(x)={0xx<0x≥0(1) df(x)dx={0x<01x≥0(2)\\frac {{\\text d}f(x)}{{\\text d}x} = \\begin{cases} 0 & x < 0\\\\ 1 & x \\geq 0\\\\ \\end{cases} \\tag{2}dxdf(x)={01x<0x≥0(2) from torch.nn import functional as F import torch x = torch.linspace(-100, 100, 10) F.relu(x) Softmax函数 常用于多分类任务,网络的输出经过Softmax函数后,成为和为1的概率 S(yi)=eyi∑jneyj(1)S(y_i) = \\frac{e^{y_i}}{\\sum_{j}^{n}{e^{y^j}}} \\tag{1}S(yi)=∑jneyjeyi(1)","s":"激活函数与Loss的梯度","u":"/blog/激活函数与Loss的梯度","h":"","p":2},{"i":5,"t":"Sigmoid函数 / Logistic函数 σ(x)=11+e−x(1)\\sigma(x) = \\frac{1}{1 + e^{-x}} \\tag{1}σ(x)=1+e−x1(1) dσdx=σ(1−σ)(2)\\frac{{\\rm d}\\sigma}{{\\rm d}x} = \\sigma{(1 - \\sigma)} \\tag{2}dxdσ=σ(1−σ)(2) 优点:可以将数据压缩至[0, 1)区间内,有较大实用意义 致命问题:在输入值较小或较大时,Sigmoid函数的梯度趋近于零,会导致网络参数长时间得不到更新,即梯度弥散问题 from torch.nn import functional as F import torch x = torch.linspace(-100, 100, 10) F.sigmoid(x) # 当x为100时,sigmoid(x)就接近于0了 线性整流单元(Rectified Linear Unit, ReLU) f(x)={0x<0xx≥0(1)f(x) = \\begin{cases} 0 & x < 0\\\\ x & x \\geq 0\\\\ \\end{cases} \\tag{1}f(x)={0xx<0x≥0(1) df(x)dx={0x<01x≥0(2)\\frac {{\\text d}f(x)}{{\\text d}x} = \\begin{cases} 0 & x < 0\\\\ 1 & x \\geq 0\\\\ \\end{cases} \\tag{2}dxdf(x)={01x<0x≥0(2) from torch.nn import functional as F import torch x = torch.linspace(-100, 100, 10) F.relu(x) Softmax函数 常用于多分类任务,网络的输出经过Softmax函数后,成为和为1的概率 S(yi)=eyi∑jneyj(1)S(y_i) = \\frac{e^{y_i}}{\\sum_{j}^{n}{e^{y^j}}} \\tag{1}S(yi)=∑jneyjeyi(1)","s":"一、激活函数","u":"/blog/激活函数与Loss的梯度","h":"#一激活函数","p":2},{"i":7,"t":"Mean Squared Error 均方误差 L2范数是对元素求平方和后再开根号,需要.pow(2)后才可作为损失函数 微小的误差可能对网络性能带来极大的影响 LossMSE=∑[y−f(x)]2(1)Loss_{MSE} = \\sum{[{y - f(x)]^2}} \\tag{1}LossMSE=∑[y−f(x)]2(1) ∥y−f(x)∥2=∑[y−f(x)]22(2)\\Vert y - f(x) \\Vert_2 = \\sqrt[2]{\\sum{[y - f(x)]^2}} \\tag{2}∥y−f(x)∥2=2∑[y−f(x)]2(2) Cross Entropy Loss 交叉熵损失 binary 二分类问题 multi-class 多分类问题 经常与softmax激活函数搭配使用","s":"二、损失函数","u":"/blog/激活函数与Loss的梯度","h":"#二损失函数","p":2},{"i":9,"t":"梯度下降算法需要求整个数据集上的计算损失函数以及梯度,计算代价太大,因此常采用小批量随机梯度下降。在每个batch上计算损失函数以及梯度,近似损失。此时,batchsize越大,近似效果越好。 随机梯度下降的随机指的就是使用的数据是随机选择的mini batch数据,即Mini-Batch Gradient Descent。 然而,batchsize越小,收敛效果越好。随机梯度下降理论上带来了噪音,batchsize较小时带来的噪音较大,可以增加模型的鲁棒性。 前向传播(Forward Propagation):已知权重、偏置和输入,计算出损失函数 反向传播(Backward Propagation):求出损失函数对于每一个权重的偏导 交叉熵常来用于衡量两个概率之间的区别 交叉熵损失函数的梯度是真实概率和预测概率的区别 softmax激活函数常用于多分类问题。经过softmax函数后得到的输出为一组概率,概率非负且相加和为1 需要看的论文:ResNet,U-Net 训练优化方法: 初始化:恺明初始化方法 学习率: 动量:逃出局部最小值,可直观理解为惯性","s":"理论基础","u":"/blog/理论知识","h":"","p":8},{"i":11,"t":"一、常用函数部分 concat与stack函数 stack函数对输入的两个张量在指定的维度进行堆叠,是==创建了新的维度== concat函数对输入的张量在指定维度进行拼接,没有创建新的维度 # stack和concat函数 a = torch.rand(4, 3) # A班4位同学,每位同学3科成绩 b = torch.rand(4, 3) # B班4位同学,每位同学3科成绩 c = torch.stack((a, b), dim=0) # 理解:年级所有同学的3科成绩(假设年级只有A班和B班两个班,每个班只有四名同学) print(c.shape) # torch.Size([2, 4, 3]) d = torch.concat((a, b), dim=1) # 理解:a是A班4位同学3科成绩,b是这4名同学其他3门课的成绩,拼接后代表这4名同学的6科成绩 print(d.shape) # torch.Size([4, 6]) list和tensor乘法不同之处 list的*乘法是复制元素,改变list的shape tensor的*乘法是对tensor中的元素进行点乘计算 a = torch.tensor([[3, 3, 3, 3]]) b = [3] # list的*乘是复制元素进行扩展 print(a * 3) # tensor([[9, 9, 9, 9]]) print(b * 3) # [3, 3, 3] 最大值 / 最小值索引:argmax / argmin 需要通过参数dim指定操作的维度,dim的理解 官方解释:The dimension to reduce 以二维张量举例,dim=1即在每一行中选出一个最大值 / 最小值元素的索引,索引的shape应为[dim0, 1],即reduce了dim=1的维度 # 最大值最小值索引 a = torch.tensor([[0.1, 0.9, 0.3], [0.9, 0.8, 0.99], [0.1, 0.7, 0.8], [0.88, 0.1, 0.2]]) # [4, 3] print(\"argmax output: \", a.argmax(dim=0), a.argmax(dim=1)) # argmax output: tensor([1, 0, 1]) tensor([1, 2, 2, 0]) Python zip函数 zip函数可以理解为压缩,将输入的两个迭代器的==最外层==对应元素压缩为一个新的元素 a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) c = zip(a, b) for i in c: print(i) ''' (tensor(1), tensor(4)) (tensor(2), tensor(5)) (tensor(3), tensor(6)) ''' a = torch.tensor([[1, 2, 3], [3, 2, 1]]) b = torch.tensor([[4, 5, 6], [6, 5, 4]]) c = zip(a, b) for i in c: print(i) ''' (tensor([1, 2, 3]), tensor([4, 5, 6])) (tensor([3, 2, 1]), tensor([6, 5, 4])) '''","s":"PyTorch基础","u":"/blog/PyTroch基础","h":"","p":10},{"i":13,"t":"concat与stack函数 stack函数对输入的两个张量在指定的维度进行堆叠,是==创建了新的维度== concat函数对输入的张量在指定维度进行拼接,没有创建新的维度 # stack和concat函数 a = torch.rand(4, 3) # A班4位同学,每位同学3科成绩 b = torch.rand(4, 3) # B班4位同学,每位同学3科成绩 c = torch.stack((a, b), dim=0) # 理解:年级所有同学的3科成绩(假设年级只有A班和B班两个班,每个班只有四名同学) print(c.shape) # torch.Size([2, 4, 3]) d = torch.concat((a, b), dim=1) # 理解:a是A班4位同学3科成绩,b是这4名同学其他3门课的成绩,拼接后代表这4名同学的6科成绩 print(d.shape) # torch.Size([4, 6]) list和tensor乘法不同之处 list的*乘法是复制元素,改变list的shape tensor的*乘法是对tensor中的元素进行点乘计算 a = torch.tensor([[3, 3, 3, 3]]) b = [3] # list的*乘是复制元素进行扩展 print(a * 3) # tensor([[9, 9, 9, 9]]) print(b * 3) # [3, 3, 3] 最大值 / 最小值索引:argmax / argmin 需要通过参数dim指定操作的维度,dim的理解 官方解释:The dimension to reduce 以二维张量举例,dim=1即在每一行中选出一个最大值 / 最小值元素的索引,索引的shape应为[dim0, 1],即reduce了dim=1的维度 # 最大值最小值索引 a = torch.tensor([[0.1, 0.9, 0.3], [0.9, 0.8, 0.99], [0.1, 0.7, 0.8], [0.88, 0.1, 0.2]]) # [4, 3] print(\"argmax output: \", a.argmax(dim=0), a.argmax(dim=1)) # argmax output: tensor([1, 0, 1]) tensor([1, 2, 2, 0]) Python zip函数 zip函数可以理解为压缩,将输入的两个迭代器的==最外层==对应元素压缩为一个新的元素 a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) c = zip(a, b) for i in c: print(i) ''' (tensor(1), tensor(4)) (tensor(2), tensor(5)) (tensor(3), tensor(6)) ''' a = torch.tensor([[1, 2, 3], [3, 2, 1]]) b = torch.tensor([[4, 5, 6], [6, 5, 4]]) c = zip(a, b) for i in c: print(i) ''' (tensor([1, 2, 3]), tensor([4, 5, 6])) (tensor([3, 2, 1]), tensor([6, 5, 4])) '''","s":"一、常用函数部分","u":"/blog/PyTroch基础","h":"#一常用函数部分","p":10},{"i":15,"t":"矩阵 / 向量的内积和外积 点乘:内积又称标量积,运算结果为标量,是将两个矩阵或向量的对应元素做乘法 叉乘:外积又称向量积,运算结果为向量,遵循行列式乘法规则","s":"基础数学知识","u":"/blog/数学基础","h":"","p":14},{"i":17,"t":"点乘:内积又称标量积,运算结果为标量,是将两个矩阵或向量的对应元素做乘法 叉乘:外积又称向量积,运算结果为向量,遵循行列式乘法规则","s":"矩阵 / 向量的内积和外积","u":"/blog/数学基础","h":"#矩阵--向量的内积和外积","p":14},{"i":19,"t":"一、激活函数 Sigmoid函数 / Logistic函数 σ(x)=11+e−x(1)\\sigma(x) = \\frac{1}{1 + e^{-x}} \\tag{1}σ(x)=1+e−x1(1) dσdx=σ(1−σ)(2)\\frac{{\\rm d}\\sigma}{{\\rm d}x} = \\sigma{(1 - \\sigma)} \\tag{2}dxdσ=σ(1−σ)(2) 优点:可以将数据压缩至[0, 1)区间内,有较大实用意义 致命问题:在输入值较小或较大时,Sigmoid函数的梯度趋近于零,会导致网络参数长时间得不到更新,即梯度弥散问题 from torch.nn import functional as F import torch x = torch.linspace(-100, 100, 10) F.sigmoid(x) # 当x为100时,sigmoid(x)就接近于0了 线性整流单元(Rectified Linear Unit, ReLU) f(x)={0x<0xx≥0(1)f(x) = \\begin{cases} 0 & x < 0\\\\ x & x \\geq 0\\\\ \\end{cases} \\tag{1}f(x)={0xx<0x≥0(1) df(x)dx={0x<01x≥0(2)\\frac {{\\text d}f(x)}{{\\text d}x} = \\begin{cases} 0 & x < 0\\\\ 1 & x \\geq 0\\\\ \\end{cases} \\tag{2}dxdf(x)={01x<0x≥0(2) from torch.nn import functional as F import torch x = torch.linspace(-100, 100, 10) F.relu(x) Softmax函数 常用于多分类任务,网络的输出经过Softmax函数后,成为和为1的概率 S(yi)=eyi∑jneyj(1)S(y_i) = \\frac{e^{y_i}}{\\sum_{j}^{n}{e^{y^j}}} \\tag{1}S(yi)=∑jneyjeyi(1)","s":"激活函数与Loss的梯度","u":"/blog/deep_learning/激活函数与Loss的梯度","h":"","p":18},{"i":21,"t":"Sigmoid函数 / Logistic函数 σ(x)=11+e−x(1)\\sigma(x) = \\frac{1}{1 + e^{-x}} \\tag{1}σ(x)=1+e−x1(1) dσdx=σ(1−σ)(2)\\frac{{\\rm d}\\sigma}{{\\rm d}x} = \\sigma{(1 - \\sigma)} \\tag{2}dxdσ=σ(1−σ)(2) 优点:可以将数据压缩至[0, 1)区间内,有较大实用意义 致命问题:在输入值较小或较大时,Sigmoid函数的梯度趋近于零,会导致网络参数长时间得不到更新,即梯度弥散问题 from torch.nn import functional as F import torch x = torch.linspace(-100, 100, 10) F.sigmoid(x) # 当x为100时,sigmoid(x)就接近于0了 线性整流单元(Rectified Linear Unit, ReLU) f(x)={0x<0xx≥0(1)f(x) = \\begin{cases} 0 & x < 0\\\\ x & x \\geq 0\\\\ \\end{cases} \\tag{1}f(x)={0xx<0x≥0(1) df(x)dx={0x<01x≥0(2)\\frac {{\\text d}f(x)}{{\\text d}x} = \\begin{cases} 0 & x < 0\\\\ 1 & x \\geq 0\\\\ \\end{cases} \\tag{2}dxdf(x)={01x<0x≥0(2) from torch.nn import functional as F import torch x = torch.linspace(-100, 100, 10) F.relu(x) Softmax函数 常用于多分类任务,网络的输出经过Softmax函数后,成为和为1的概率 S(yi)=eyi∑jneyj(1)S(y_i) = \\frac{e^{y_i}}{\\sum_{j}^{n}{e^{y^j}}} \\tag{1}S(yi)=∑jneyjeyi(1)","s":"一、激活函数","u":"/blog/deep_learning/激活函数与Loss的梯度","h":"#一激活函数","p":18},{"i":23,"t":"Mean Squared Error 均方误差 L2范数是对元素求平方和后再开根号,需要.pow(2)后才可作为损失函数 微小的误差可能对网络性能带来极大的影响 LossMSE=∑[y−f(x)]2(1)Loss_{MSE} = \\sum{[{y - f(x)]^2}} \\tag{1}LossMSE=∑[y−f(x)]2(1) ∥y−f(x)∥2=∑[y−f(x)]22(2)\\Vert y - f(x) \\Vert_2 = \\sqrt[2]{\\sum{[y - f(x)]^2}} \\tag{2}∥y−f(x)∥2=2∑[y−f(x)]2(2) Cross Entropy Loss 交叉熵损失 binary 二分类问题 multi-class 多分类问题 经常与softmax激活函数搭配使用","s":"二、损失函数","u":"/blog/deep_learning/激活函数与Loss的梯度","h":"#二损失函数","p":18},{"i":27,"t":"词法分析:分析输入串如何构成句子,得到单词序列 语法分析:分析单词序列如何构成程序,构造语法分析树 语义分析:审查语义错误,为代码生成收集类型信息 中间代码生成 代码优化 目标代码生成 表管理、错误检查和处理贯穿整个过程","s":"1.1 编译程序的逻辑结构","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#11-编译程序的逻辑结构","p":24},{"i":29,"t":"前端是指与源语言有关、与目标机无关的部分 如词法分析、语法分析、语义分析、中间代码生成、代码优化中与机器无关的部分 后端是指与目标机有关的部分 如代码优化中与机器有关的部分、目标代码的生成","s":"1.2 前端和后端","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#12-前端和后端","p":24},{"i":31,"t":"遍是指从头到尾扫描一遍源程序","s":"1.3 遍的概念","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#13-遍的概念","p":24},{"i":34,"t":"若从文法的开始符号开始存在以下推导,则称α\\alphaα为该文法的一个句型,句型中既可以包含终结符,也可以包含非终结符,也可以是空串 S⇒∗α, α∈(VT∪VN)∗(1)S \\Rightarrow^* \\alpha,\\space \\alpha \\in (V_T \\cup V_N)^* \\tag{1}S⇒∗α, α∈(VT∪VN)∗(1)","s":"2.1 句型","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#21-句型","p":24},{"i":36,"t":"S⇒∗β, β∈VT∗(2)S \\Rightarrow^* \\beta,\\space \\beta \\in V_T^* \\tag{2}S⇒∗β, β∈VT∗(2) 则称β\\betaβ是该文法的句子","s":"2.2 句子:","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#22-句子","p":24},{"i":38,"t":"0型文法,又称无限制文法、短语文法 1型文法,又称文有关文法 2型文法,又称上下文无关文法(Context-Free Grammar,CFG) 可用来构建语法树,语法树是上下文无关文法推导和规约的图形化表示 A→β, A∈VN, β∈(VT∪VN)∗(3)\\Alpha \\rightarrow \\beta,\\space \\Alpha \\in V_N, \\space \\beta \\in (V_T \\cup V_N)^* \\tag{3}A→β, A∈VN, β∈(VT∪VN)∗(3) 3型文法,又称正规文法(Regular Grammar,RG) 左线性文法 右线性文法","s":"2.3 文法的分类:","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#23-文法的分类","p":24},{"i":40,"t":"如果在推导的任何一步都是对产生式左部中的最左/右非终结符进行替换,则称为最左/右推导,其中最右推导也被成为规范推导","s":"2.4 最左/右推导:","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#24-最左右推导","p":24},{"i":44,"t":"确定的有穷自动机(DFA) DFA的定义及组成 确定的含义:在状态转换的每一步,FA根据当前的状态及扫描的输入字符,便能唯一地知道FA的下一状态。 提示 在状态转换图中的直观体现就是,在确定行表示的当前状态以及列确定的路径后,得到的目的状态不会是元素个数大于1的集合。 DFA的可接受以及接受集的定义:从开始状态开始,经过该符号串表示的路径,若能到达终态则称该符号串可被改DFA接受。 不确定的有穷自动机(NFA) NFA的确定化,即将NFA转换为DFA(子集法) 步骤: 画出DFA转换表 提示 转换表中在状态一列中,状态包含原NFA终态的集合要标*,代表其为等价DFA的终态 计算move(T,a)move(T, a)move(T,a) 计算ϵ−closure(T)\\epsilon -closure(T)ϵ−closure(T) 为转换表中的状态重命名 确定初态和终态 DFA的最小化(分割法) 步骤如下: 提示 考试时注意过程怎么写,下面使用需要三轮分割的列子演示步骤 在分割完成后,对可以化简的集合选出一个状态作为代表,删除其他多余状态,重新画图","s":"3.2 有穷自动机(FA)","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#32-有穷自动机fa","p":24},{"i":48,"t":"描述程序语法结构的规则可以使用2型文法(上下文无关语法,CFG) 语法分析方法包含确定的和不确定的分析方法,确定的语法分析方法根据输入符号,唯一选择产生式 确定的自顶向下分析方法:根据当前的输入符号唯一地确定选用哪个产生式替换相应的非终结符以往下推导","s":"第四章:自顶向下语法分析方法","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#第四章自顶向下语法分析方法","p":24},{"i":51,"t":"提示 FOLLOW集的求法可以按照下图技巧进行 若要求的非终结符是开始符号,则直接将#插入FOLLOW集中 在所有产生式的右部中找到要求的非终结符 看非终结符的右侧是什么元素 若无元素,则直接将该产生式左部的FOLLOW集加入到该非终结符的FOLLOW集中 若为终结符,直接将该终结符加入到FOLLOW集中 若为非终结符,将FIRST(该非终结符)减去ϵ\\epsilonϵ的所有终结符元素都加入至FOLLOW集中","s":"2. Follow集的定义","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#2-follow集的定义","p":24},{"i":53,"t":"提示 需要注意的是FIRST集、FOLLOW集是针对于符号串而言的,而SELECT集是针对于产生式而言的","s":"3. SELECT集的定义","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#3-select集的定义","p":24},{"i":56,"t":"提示 考试时注意书写过程,需要画出以下两张表","s":"5. LL(1)文法的判别","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#5-ll1文法的判别","p":24},{"i":58,"t":"预测分析表通过计算SELECT集得到,形如下表 行标为各非终结符,列标为输入符号,若从某一非终结符开始的产生式的SELECT集包含某一输入符号,则对应产生式就是行列确定的元素值。","s":"6. 预测分析表","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#6-预测分析表","p":24},{"i":60,"t":"消除左公因子(回溯) 警告 同一非终结符的多个产生式存在共同前缀,会导致回溯现象,需要消除 消除左递归 警告 左递归文法会使递归下降分析器陷入无限循环 消除直接左递归 消除间接左递归 通过代入法变成直接左递归再消除","s":"7. 非LL(1)文法到LL(1)文法的等价变换","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#7-非ll1文法到ll1文法的等价变换","p":24},{"i":63,"t":"从的底部向顶部的方向构造语法分析树,采用最左归约的方式,即最右推导的逆过程 提示 注意辨别:自顶向下的语法分析采用最左推导的方式 最右推导是规范推导,最左归约是最右推导的逆过程,又称规范归约","s":"5.1 概念","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#51-概念","p":24},{"i":65,"t":"算符优先分析法 按照算符的优先关系和结合性质进行语法分析 LR分析法(重点) 规范规约:句柄作为可归约串","s":"5.2 方法","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#52-方法","p":24},{"i":68,"t":"移入:将下一个输入符号移到栈顶 归约:被归约的符号串的右端处于栈顶,语法分析器在栈中确定这个串的左端非终结符来替换该串 接受:宣布语法分析过程成功完成 报错:发现一个语法错误,并调用错误恢复子程序","s":"5.4 移入-归约分析器的4种动作","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#54-移入-归约分析器的4种动作","p":24},{"i":70,"t":"前导知识:4种项目状态 归约项目:·在最后 接受项目:拓广文法的开始符号的产生式,且·在最后 移进项目:·后面是终结符VTV_TVT 待约项目:·后面是非终结符VNV_NVN 移入-归约分析 LR(0)分析表 / 构造其识别活前缀DFA https://www.bilibili.com/video/BV1pL4y1E7RE/?spm_id_from=333.788&vd_source=24d8fcf68bc0e2b0003defe0995cf533 在写预测分析表的reduce项时,action的每一列都要写 SLR(1)分析表 / 构造其识别活前缀DFA https://www.bilibili.com/video/BV12u411S7Us/?spm_id_from=333.788&vd_source=24d8fcf68bc0e2b0003defe0995cf533 在写预测分析表的reduce项时,只写产生式左部的FOLLOW集对应的action列 LR(1)分析表 / 构造其识别活前缀DFA https://www.bilibili.com/video/BV1Vm4y1Q7XB/?spm_id_from=333.788&vd_source=24d8fcf68bc0e2b0003defe0995cf533 在构造项目集时,要加入前向搜索符;并且,在写预测分析表的reduce项时只写前向搜索符对应的action列 LALR(1)分析表 / 构造其识别活前缀DFA 在构造项目集时,要加入前向搜索符,但是要合并同心集,把相同表达式但是不同前向搜索符的前向搜索符合并,并且在写预测分析表的reduce项时只写前向搜索符集对应的action列 https://www.bilibili.com/video/BV13r4y1m7sQ/?spm_id_from=333.788&vd_source=24d8fcf68bc0e2b0003defe0995cf533","s":"5.5 重要题型","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#55-重要题型","p":24},{"i":73,"t":"词法分析:从左到右扫描源程序,识别出各个单词,确定单词类型并形成单词序列,进行词法错误检查,对标识符进行登记,即符号表管理 语法分析:从词法分析输出的单词序列识别出各类短语,构造语法分析树,并进行语法错误检查 语义分析:审查程序是否具有语义错误,为代码生成阶段收集类型信息,不符合规范时报错(符号表是语义正确性检查的依据) 中间代码生成:生成中间代码,如三地址指令、四元式、波兰式、逆波兰式、树形结构等 代码优化:对代码进行等价变换以求提高执行效率,提高速度或节省空间 目标代码生成:将中间代码转化成目标机上的机器指令代码或汇编代码(符号表是对符号分配地址的依据)","s":"1 编译程序各阶段功能","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#1-编译程序各阶段功能","p":24},{"i":75,"t":"就产生语法树的方向而言,可大致分为自顶向下的语法分析和自底向上的语法分析两大类。 自顶向下的语法分析方法:主流方法为递归下降分析法。根据当前的输入符号唯一地确定选用哪个产生式替换相应的非终结符以往下推导。 自底向上的语法分析方法:将输入串w归约为文法开始符号S的过程。 提示 LR(0), SLR(1), LR(1) LR(0)文法可能存在移进-归约冲突、归约-归约冲突 SLR(1)文法在构造的过程中不存在归约-归约冲突,但有可能出现移进-归约冲突,可以由FOLLOW集解决的话则是SLR(1)文法","s":"2 语法分析方法的概念","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#2-语法分析方法的概念","p":24},{"i":77,"t":"翻译模式是适合语法制导语义计算的另一种描述形式,可以体现一种合理调用语义动作的算法。 S-翻译模式: 仅涉及综合属性的翻译模式,通常将语义动作集合置于产生式右端末尾。 L-翻译模式: 既可以包含综合属性,也可以包含继承属性。","s":"3 翻译模式","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#3-翻译模式","p":24},{"i":79,"t":"在文法基础上,为文法符号关联有特定意义的属性,并为产生式关联相应的语义动作,称之为属性文法。 S-属性文法: 只包含综合属性的属性文法成为S-属性文法 L-属性文法: 可以包含综合属性,也可以包含继承属性,但要求产生式右部的文法符号的继承属性的计算只取决于该符号左边符号的属性","s":"4 属性文法","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#4-属性文法","p":24},{"i":81,"t":"符号表是编译程序中用于收集标识符的属性信息的数据结构。 各阶段作用: 语义分析阶段:语义合法性检查的依据 目标代码生成阶段:对符号名进行地址分配的依据","s":"5 符号表","u":"/docs/课程学习/编译原理/编译原理复习笔记","h":"#5-符号表","p":24},{"i":85,"t":"GeekOS是一个基于x86体系结构的微操作系统内核. 由美国马理兰大学的教师开发, 主要用于操作系统课程设计的教育. 出于教学目的, 这个系统内核设计简单, 却又兼备实用性, 它可以运行在真正的X86 PC硬件平台. 在下载好GeekOS后, 在geekos-version/src/目录下会存在project0-project6这7个文件夹, 分别代表GeekOS设计的7个学习任务. 在环境搭建完成之后, 我们进行的每一个项目的代码编写几乎都在geekos-version/src/projecti/src/geekos/文件夹下, 每一个项目的编译都在geekos-version/src/projecti/build文件夹下进行, 即要在终端中通过cd进入该目录, 再执行make depend和make命令.","s":"1. GeekOS:","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#1-geekos","p":82},{"i":87,"t":"bochs是一个x86硬件平台的模拟器. GeekOS运行依托于bochs. 在安装好Linux操作系统后需要安装bochs以及nasm, 以完成GeekOS环境的搭建.","s":"2. bochs:","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#2-bochs","p":82},{"i":89,"t":"GeekOS的开发环境可分为两部分, 一部分是编译环境, 一部分是运行环境. 在编译过程中, 使用Linux自带的编译环境以及编译命令对特定的GeekOS project进行编译即可. 首先在终端中通过cd命令进入geekos-version/src/projecti/build目录, 再执行make depend和make命令. 编译后生成bochs的镜像文件fd.img, 这是bochs运行所必须的文件,也是GeekOS运行环境的前置配置.","s":"3. 二者之间的关系","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#3-二者之间的关系","p":82},{"i":91,"t":"安装其实非常简单, 这里主要花篇幅介绍安装后解决报错的配置.","s":"二、安装与配置","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#二安装与配置","p":82},{"i":93,"t":"需要下载GeekOS Files, 安装bochs, nasm等. GeekOS直接下载压缩包, 解压即可. arch系用户通过以下命令即可完成bochs和nasm的安装. yay -S bochs nasm 其他发行版的安装方法这里不再赘述, 可选择从群文件里下载源文件并编译安装, 师兄师姐也在群文件里给了一些教程指导.","s":"1. 安装","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#1-安装","p":82},{"i":95,"t":"完成安装后, 我们就可以开始对project0中的代码进行完善了, 并在geekos-version/src/project0/build目录下执行make depend以及make命令, 目的是编译project0的代码, 生成bochs的镜像文件fd.img以构建GeekOS的运行环境. 但很多报错就是在make这一步产生的, 因此在安装完成后还需要进行配置. 配置分为两部分, 一个是对GeekOS中makefile的修改, 另一部分是对bochs的配置文件的修改. GeekOS中makefile的配置 综合网上很多师兄师姐的博客,这三个错误应该是每个人都会遇到的,所以当你不确定自己能不能运行时,请全部完成这三个步骤. 问题: warnings being treated as errors 解决方案: 修改geekos-version/src/projecti/build目录下的makefie文件(由于每个project下都存在一个对应的makefile文件, 所以在每个项目编译前都要修改一次) // 修改第149行: CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror // 修改后: CC_GENERAL_OPTS := $(GENERAL_OPTS) 问题: X86_64与i386输出不兼容 解决方案: 修改geekos-version/src/projecti/build目录下的makefie文件 # Target C compiler. gcc 2.95.2 or later should work. 100行 TARGET_CC := $(TARGET_CC_PREFIX)gcc -m32 # Host C compiler. This is used to compile programs to execute on # the host platform, not the target (x86) platform. On x86/ELF # systems, such as Linux and FreeBSD, it can generally be the same # as the target C compiler. 106行 HOST_CC := gcc -m32 # Target linker. GNU ld is probably to only one that will work.109行 TARGET_LD := $(TARGET_CC_PREFIX)ld -m elf_i386 问题: undefined reference to '__stack_chk_fail' 解决方案: 修改geekos-version/src/projecti/build目录下的makefie文件 # Flags used for all C source files // 修改前:148行 GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) // 修改后: GENERAL_OPTS := -O -Wall -fno-stack-protector $(EXTRA_C_OPTS) bochs配置文件的修改 在geekos-version/src/projecti/build目录下创建.bochsrc文件 # An example .bochsrc file. # You will need to edit these lines to reflect your system. vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest # 请根据自己的实际安装路径更改 romimage: file=/usr/local/share/bochs/BIOS-bochs-latest # 请根据自己的实际安装路径更改 megs: 8 boot: a floppya: 1_44=fd.img, status=inserted #floppya: 1_44=fd_aug.img, status=inserted log: ./bochs.out # keyboard_serial_delay: 200 # vga_update_interval: 300000 mouse: enabled=0 private_colormap: enabled=0 # i440fxsupport: enabled=0 # Uncomment this to write all bochs debugging messages to # bochs.out. This produces a lot of output, but can be very # useful for debugging the kernel. #debug: action=report 到此为止, 所有的配置工作已经完成, 可以正常的进行下一步的代码完善. 如果需要验证自己是否配置成功, 可以参照下一篇博客GeekOS project 0的实现, 在本篇博客中会有完整的C语言代码编写以及编译、使用bochs执行的过程.","s":"2. 配置","u":"/docs/课程学习/操作系统课设/Linux系统下GeekOS的环境配置","h":"#2-配置","p":82},{"i":98,"t":"MIPS=一个周期可执行的指令条数/(周期*10^6) CPI代表一条指令需要执行几个周期,则一个周期可执行的指令条数等于CPI的倒数 故MIPS=频率/(CPI*10^6)","s":"一、基础知识","u":"/docs/课程学习/计算机体系结构/体系结构复习笔记","h":"#一基础知识","p":96},{"i":101,"t":"一般情况下,数据在Cache以及主存中是以字为单位进行编码的 Cache与主存是以字块为单位进行数据交换的 Cache透明性分析:从主存中读的时候一定调入Cache,写的时候不一定: 按写分配:向主存中写入的时候同时调入Cache 不按写分配:向主存中写入的时候不调入Cache 在解答Cache与主存采用组相联、LRU替换算法进行访问主存序列流的类型题时,注意组相联,要将Cache分为组号和块号,分开进行更新: 先对主存地址求余,余数即为其在Cache中的组号 在组内是全相联映像,使用LRU替换算法进行替换操作 Cache预取算法命中率的计算 H′=H+n−1n(1)H'=\\frac{H+n-1}{n} \\tag{1}H′=nH+n−1(1) 其中,nnn为Cache块大小与数据块重复使用次数的乘积,HHH为原来的命中率","s":"三、存储系统","u":"/docs/课程学习/计算机体系结构/体系结构复习笔记","h":"#三存储系统","p":96},{"i":103,"t":"当采用预留算法进行最优调度时,设最小平均间隔周期为xxx,则在第一个任务完成后,每隔xxx时钟周期流出一个任务 最小间隔周期的确定: 预约表中最多√数一行中的√数 通过次数最多的功能段的通过次数 此时,该功能段也就是瓶颈段","s":"四、流水线","u":"/docs/课程学习/计算机体系结构/体系结构复习笔记","h":"#四流水线","p":96},{"i":108,"t":"在上一篇博客中我们完成了GeekOS环境的配置,下面我们来验证环境配置的成功与否以及project 0的实现。","s":"GeekOS project 0的实现","u":"/docs/课程学习/操作系统课设/GeekOS project 0","h":"","p":107},{"i":110,"t":"编写geekos-version/src/projecti/src/geekos/main.c文件 编写函数project0实现检测键盘输入Ctrl+d结束线程。 void project0(){ Print(\"To Exit hit Ctrl + d.\\n\"); Keycode keycode; while(1) { if(Read_Key(&keycode)) { if(!((keycode & KEY_SPECIAL_FLAG) || (keycode & KEY_RELEASE_FLAG)))// 不是特殊键或者弹起 { int asciiCode = keycode & 0xff;//d if((keycode & KEY_CTRL_FLAG)==KEY_CTRL_FLAG && asciiCode=='d')//ctrl+d { Print(\"\\n---------Adios!---------\\n\"); # 这里需要注意素质 Exit(1); }else { Print(\"%c\",(asciiCode=='\\r') ? '\\n' : asciiCode); } } } } } 在main函数中添加以下代码,实现自定义函数的调用,创建线程。 struct Kernel_Thread *thread; thread = Start_Kernel_Thread(&project0,0,PRIORITY_NORMAL,false); 总体代码 /* * GeekOS C code entry point * Copyright (c) 2001,2003,2004 David H. Hovemeyer * Copyright (c) 2003, Jeffrey K. Hollingsworth * Copyright (c) 2004, Iulian Neamtiu * $Revision: 1.51 $ * * This is free software. You are permitted to use, * redistribute, and modify it as specified in the file \"COPYING\". */ #include #include #include #include #include #include #include #include #include #include #include void project0(){ Print(\"To Exit hit Ctrl + d.\\n\"); Keycode keycode; while(1) { if(Read_Key(&keycode)) { if(!((keycode & KEY_SPECIAL_FLAG) || (keycode & KEY_RELEASE_FLAG)))// 不是特殊键或者弹起 { int asciiCode = keycode & 0xff;//d if((keycode & KEY_CTRL_FLAG)==KEY_CTRL_FLAG && asciiCode=='d')//ctrl+d { Print(\"\\n---------Adios! Motherfucker!---------\\n\"); Exit(1); }else { Print(\"%c\",(asciiCode=='\\r') ? '\\n' : asciiCode); } } } } } /* * Kernel C code entry point. * Initializes kernel subsystems, mounts filesystems, * and spawns init process. */ void Main(struct Boot_Info* bootInfo) { Init_BSS(); Init_Screen(); Init_Mem(bootInfo); Init_CRC32(); Init_TSS(); Init_Interrupts(); Init_Scheduler(); Init_Traps(); Init_Timer(); Init_Keyboard(); Set_Current_Attr(ATTRIB(BLACK, GREEN|BRIGHT)); Print(\"Welcome to GeekOS!\\n\"); Set_Current_Attr(ATTRIB(BLACK, GRAY)); // TODO(\"Start a kernel thread to echo pressed keys and print counts\"); struct Kernel_Thread *thread; thread = Start_Kernel_Thread(&project0,0,PRIORITY_NORMAL,false); /* Now this thread is done. */ Exit(0); }","s":"1. 编写C语言代码","u":"/docs/课程学习/操作系统课设/GeekOS project 0","h":"#1-编写c语言代码","p":107},{"i":112,"t":"每一个项目的编译都在geekos-version/src/projecti/build文件夹下进行,即要在终端中通过cd进入该目录。 执行 make depend make 此时,该目录下会生成bochs.out、depend.mak以及fd.img文件,bochs.out文件是日志输出文件,depend.mak是编译中间生成的文件,最终生成的fd.img是最重要的GeekOS映像文件,有了它才能使用bochs运行GeekOS操作系统。感恩它! 目录下的文件应该是这样的结构: 下面就可以使用bochs运行GeekOS系统了,可以说bochs的运行依赖两个文件,一个是配置文件.bochsrc,一个是映像文件fd.img,映像文件的加载路径需要在.bochsrc文件中定义,在环境配置的博客中已经介绍过了。这里再贴一下内容。 # An example .bochsrc file. # You will need to edit these lines to reflect your system. vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest # 请根据自己的实际安装路径更改 romimage: file=/usr/local/share/bochs/BIOS-bochs-latest # 请根据自己的实际安装路径更改 megs: 8 boot: a floppya: 1_44=fd.img, status=inserted #floppya: 1_44=fd_aug.img, status=inserted log: ./bochs.out # keyboard_serial_delay: 200 # vga_update_interval: 300000 mouse: enabled=0 private_colormap: enabled=0 # i440fxsupport: enabled=0 # Uncomment this to write all bochs debugging messages to # bochs.out. This produces a lot of output, but can be very # useful for debugging the kernel. #debug: action=report 在这个目录下打开终端,执行 bochs 选择6,按下回车 可能会出现黑屏情况,这是因为进入了调试模式,终端正在等待命令,在终端输入 c 即可完成bochs的正式启动,最终的效果","s":"2. 使用Linux的编译系统对C语言代码进行编译","u":"/docs/课程学习/操作系统课设/GeekOS project 0","h":"#2-使用linux的编译系统对c语言代码进行编译","p":107},{"i":114,"t":"提示 欢迎来到笔记本的课程学习部分","s":"Welcome","u":"/docs/课程学习/intro","h":"","p":113},{"i":116,"t":"如果可以帮到你的话就给个免费的Star吧!","s":"支持我!","u":"/docs/课程学习/intro","h":"#支持我","p":113},{"i":118,"t":"提示 Grateful for all the conveniences provided by Docusaurus! Grateful for Sonder's treasure trove of notebooks! Grateful for the blue sky and also the white clouds!","s":"鸣谢","u":"/docs/鸣谢/intro","h":"","p":117},{"i":120,"t":"提示 大数除法是指被除数大小超出long long范围,而导致必须使用字符串存储的除法,属于简单模拟的范畴","s":"大数除法","u":"/docs/推免/机试/大数除法","h":"","p":119},{"i":122,"t":"通过模拟列竖式手动计算除法,实现使用字符串存储被除数的大数除法","s":"思路","u":"/docs/推免/机试/大数除法","h":"#思路","p":119},{"i":124,"t":"string division(string s, int divisor) { /* * 通过模拟列竖式手算除法完成字符串存储的大数除法 */ string quotient; // 商 int idx = 0; // 当前处理的数字在原始字符串中的位置 int remainder = 0; // 余数 int temp = 0; while (idx < s.size()) { // 一直循环处理到索引等于长度 temp = remainder * 10 + (s[idx] - '0'); // 当前进行除法运算的temp if (temp >= divisor) { // 如果能除的动,则将当前的商插入quotient,并更新余数 quotient.push_back(temp / divisor + '0'); remainder = temp % divisor; } else { // 除不动时分两种情况 if (!quotient.empty()) { // 商目前不为空,此时按照竖式方法,需要向商中加入0,再接着下一次循环 quotient.push_back('0'); } remainder = temp; // 商目前为空,按照竖式计算方法,只更新余数,商保持为空 } idx++; // 更新索引位置 } if (quotient.empty()) { // 如果一直除不动,循环结束商还为空,则赋值为0字符串 quotient.assign(\"0\"); } return quotient; // 返回商字符串 }","s":"参考代码","u":"/docs/推免/机试/大数除法","h":"#参考代码","p":119},{"i":126,"t":"将大数除法与进制转换相结合。 提示 北京大学机试真题,N诺链接 完整代码如下: #include using namespace std; string division(string s, int divisor) { /* * 通过模拟列竖式手算除法完成字符串存储的大数除法 */ string quotient; // 商 int idx = 0; // 当前处理的数字在原始字符串中的位置 int remainder = 0; // 余数 int temp = 0; while (idx < s.size()) { // 一直循环处理到索引等于长度 temp = remainder * 10 + (s[idx] - '0'); // 当前进行除法运算的temp if (temp >= divisor) { // 如果能除的动,则将当前的商插入quotient,并更新余数 quotient.push_back(temp / divisor + '0'); remainder = temp % divisor; } else { // 除不动时分两种情况 if (!quotient.empty()) { // 商目前不为空,此时按照竖式方法,需要向商中加入0,再接着下一次循环 quotient.push_back('0'); } remainder = temp; // 商目前为空,按照竖式计算方法,只更新余数,商保持为空 } idx++; // 更新索引位置 } if (quotient.empty()) { // 如果一直除不动,循环结束商还为空,则赋值为0字符串 quotient.assign(\"0\"); } return quotient; // 返回商字符串 } int main() { string s; while (cin >> s) { vector vec; int len = s.size(); while (s != \"0\") { int remainder = (s[len - 1] - '0') % 2; vec.push_back(remainder); s = division(s, 2); len = s.size(); } if (vec.empty()) { cout << \"0\"; } else { for (auto it = vec.rbegin(); it != vec.rend(); it++) { cout << *it; } } cout << endl; } return 0; }","s":"扩展","u":"/docs/推免/机试/大数除法","h":"#扩展","p":119},{"i":129,"t":"树的性质: 一棵 N 个结点的树有 N-1 条边 树的总度数+1=树的结点数 树的度=树中度最大结点的度数 二叉树的性质: 叶子结点数等于度为 2 的结点数加 1,即n0 = n2 + 1 树转化为二叉树: 参考资料:知乎 加线。在所有的兄弟结点之间加一条线。 去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除其他孩子结点之间的连线。 调整。每个结点的原来的孩子是结点的左孩子,由原来的兄弟结点转过来的孩子是结点的右孩子。 二叉排序树:每个结点的左子树上的所有结点值都更小,每个结点的右子树上的所有结点的值都更大。 平衡二叉排序树:要么是空树,要么左子树的高度与右子树的高度之差小于等于1。","s":"树","u":"/docs/推免/计算机基础综合/数据结构","h":"#树","p":127},{"i":131,"t":"图的表示: 邻接矩阵 邻接表:每一行表示的是一个顶点所连接的顶点,链表不具有指向性 邻接表的搜索 最小生成树:在连通网的所有生成树中,所有边的代价和最小的生成树,称为最小生成树。 Kruskal算法 Prim算法 最短路径 ","s":"图","u":"/docs/推免/计算机基础综合/数据结构","h":"#图","p":127},{"i":134,"t":"简述大数定理。 大数定理描述了大样本情况下随机变量的均值与其期望值之间的关系。对于独立同分布的随机变量序列,随着样本数量的增加,样本均值会以较高的概率接近其期望值。 简述中心极限定理。 当独立随机变量的数量足够大时,它们的和(或平均值)的分布会逐渐接近一个正态分布。即使原始随机变量不服从正态分布,但当样本容量足够大时,和(或平均值)的分布仍然呈现出正态分布的特征。 什么是全概率公式。 对于事件A而言,假设有一组互斥且穷尽的条件事件B,则事件A的概率等于事件A在每个条件事件下发生的概率与该条件事件发生概率的乘积和。 什么是最大似然估计。 基本思想是在已知观测数据的情况下,通过调整参数的取值,找到使得观测数据出现概率最大的参数值。 大致过程: 构建参数化的概率模型,即构建似然函数,表示在给定参数下观测数据出现的概率 取似然函数的对数,方便计算与优化 最大化似然函数,求解参数的最优值 简述贝叶斯定理。 贝叶斯定理描述了在给定观测数据的条件下,计算事件的后验概率的方法。 P(A∣B)=P(B∣A)∗P(A)P(B)P(A|B) = \\frac{P(B|A) * P(A)}{P(B)}P(A∣B)=P(B)P(B∣A)∗P(A) 其中: P(A∣B)P(A|B)P(A∣B)表示在观测到事件 B 发生的条件下,事件 A 发生的概率,称为后验概率 P(B∣A)P(B|A)P(B∣A)表示在事件 A 发生的条件下,事件 B 发生的概率,称为似然; P(A)P(A)P(A)和P(B)P(B)P(B)分别是事件 A 和事件 B 独立发生的先验概率。 优点:它能够将主观先验知识与观测数据相结合,通过不断更新后验概率来进行推断和决策。 P问题、NP问题以及NP完全问题 提示 P stands for Polynomial 意为多项式 P问题是可以在多项式时间内解决的问题 NP问题是可以在多项式时间内验证解的正确性的问题 NP完全问题是一类特殊的NP问题,没有已知的高效解决算法,并且可以在多项式时间内归约到任何其他的NP问题","s":"面试常考问题","u":"/docs/推免/数学/概率论","h":"#面试常考问题","p":132},{"i":138,"t":"显著性目标检测Salient Object Detection,相当于语义分割中的二分类任务,只有前景和背景","s":"(一)SOD任务","u":"/docs/推免/简历/简历面试准备","h":"#一sod任务","p":135},{"i":140,"t":"下图为U-2-Net的整体结构 提示 residual [rɪˈzɪdjuəl] 在encoder阶段,每个block之后使用maxpooling下采样两倍 在decoder阶段,每个block之后使用双线性插值上采样两倍 下图为Residual U-block的结构 提示 卷积是如何改变输出的通道数的? 卷积核的通道数等于输入的通道数,卷积核的个数等于输出的通道数 图片来源知乎 在特征融合阶段,每一层的encoder-decoder输出,使用3x3卷积以及双线性插值上采样到原始分辨率得到该层的特征图,且卷积核的个数为1,输出的feature map通道数也为1。将每一层的feature map进行concat拼接,得到6通道的融合feature map,最后使用1x1卷积以及sigmoid激活函数得到最终的融合特征图输出","s":"(二)网络结构","u":"/docs/推免/简历/简历面试准备","h":"#二网络结构","p":135},{"i":142,"t":"损失函数是7个损失项的加权求和 共有6层encoder-decoder结构,将每一层对应的feature map与ground truth做BCE Loss得到6个损失项 第7个损失项是最终融合得到的feature map与ground truth的BCE Loss 在论文中,每个损失项的权重都为1 canny边缘检测: 使用高斯滤波进行平滑 计算像素梯度 非极大值抑制 双阈值检测强边缘、弱边缘 边缘连接","s":"(三)损失函数","u":"/docs/推免/简历/简历面试准备","h":"#三损失函数","p":135},{"i":144,"t":"深度可分离卷积的优点是可以在大致保持卷积效果的情况下减少参数量 在实现原理上可分为两个步骤:深度卷积(depth wise)以及逐点(point wise)卷积 深度卷积是一种在每个输入通道上分别进行卷积操作的卷积方法,每个输入通道只与对应的卷积核进行卷积。 逐点卷积通过使用1×11 \\times 11×1卷积对深度卷积的结果再次卷积","s":"(四)深度可分离卷积","u":"/docs/推免/简历/简历面试准备","h":"#四深度可分离卷积","p":135},{"i":147,"t":"PR曲线所围成的面积即使该类的AP值","s":"(一)mAP","u":"/docs/推免/简历/简历面试准备","h":"#一map","p":135},{"i":149,"t":"提示 参考资料:【精读AI论文】YOLO V1目标检测,看我就够了 1.预测阶段 下图为YOLOv1的算法框架 下图为YOLOv1的网络结构 输入[448, 448, 3]图像,输出[7, 7, 30]的tensor(包含所有预测框的坐标、置信度和类别结果),通过解析输出的tensor得到预测结果 首先将输入图片划分为S×SS \\times SS×S个grid cell。在YOLOv1中S=7S=7S=7 每个grid cell预测出BBB个bounding box预测框(bbox),每个bbox的中心点都落在该grid cell中。在YOLOv1中B=2B=2B=2 每个bbox包含(x, y, h, w, c)五种信息,其中x, y为bbox左上角坐标,h, w为bbox的宽高,c为该bbox是否存在object的概率 同时每个grid cell预测出一组与数据集有关的条件类别概率。在YOLOv1论文使用的数据集Pascal VOC中,类别种类为20类,因此在预测阶段输出的[7, 7, 30]的tensor含义如下图所示 每个grid cell选出条件类别概率最大的类别,因此每个grid cell只能检测一个物体 提示 这也是YOLOv1小目标和密集目标识别能力差的原因 每个bbox的置信度与其父grid cell的类别概率相乘得到全概率,如下图所示 进行NMS后处理: 对某一特定类别,首先根据全概率置信度排序 将此时最大置信度的bbox与其他所有置信度更小的bbox做IoU判断,若IoU大于设置的阈值,则抹除置信度小的bbox 将剩余的次大的置信度重复步骤2,抹除所有置信度更小的其IoU超过阈值的bbox 提示 非极大值抑制只在预测阶段进行 在训练阶段,所有bbox都会在Loss Function中起到更新的作用,因此不进行NMS 2. 训练过程的损失函数","s":"(二)YOLOv1","u":"/docs/推免/简历/简历面试准备","h":"#二yolov1","p":135},{"i":151,"t":"1. BN层 2. 高分辨率训练 3. Anchor YOLOv2引入了anchor机制代替bbox,将图像划分为13×1313 \\times 1313×13个grid cell,每个grid cell生成5个anchor anchor是通过k-means聚类在数据集上生成的不同尺寸的先验框 对数据集进行anchor宽高比的聚类,聚类数越大,覆盖的IoU越大,但同时模型也更复杂","s":"(二)YOLOv2","u":"/docs/推免/简历/简历面试准备","h":"#二yolov2","p":135},{"i":153,"t":"1. 特征融合 YOLOv5使用CSPNet实现特征融合,CSP模块由主干和分支构成,主干提取低维特征,分支提取高维特征 主干通过卷积和池化提取特征,形成不同尺寸的特征图 分支将主干输出的特征图作为输入,逐步卷积和上采样提取高级别语义特征 主干特征图通过卷积对通道数降维之后与分支在通道维度上concat 提示 在特征提取以及融合阶段可以加入Canny边缘检测得到的特征图进行特征融合 2. 前处理 对填充黑色像素进行了改善,以填充更少的黑像素,提高了精度 3. 特征金字塔FCN","s":"(三)YOLOv5","u":"/docs/推免/简历/简历面试准备","h":"#三yolov5","p":135},{"i":155,"t":"::: 有关CSP特征融合可以参考:https://blog.csdn.net/weixin_55073640/article/details/122614176 ::: CBAM是通道+空间注意力机制(SENet是通道注意力机制)","s":"三、CBAM","u":"/docs/推免/简历/简历面试准备","h":"#三cbam","p":135},{"i":157,"t":"通道注意力:原始特征图[b,c,h,w][b, c, h, w][b,c,h,w]经过通道注意力机制算法得到[b,c,1,1][b, c, 1, 1][b,c,1,1]的tensor,代表不同通道之间的重要程度,将其与原始特征图相乘 空间注意力:经过通道注意力的特征图[b,c,h,w][b, c, h, w][b,c,h,w]经过空间注意力机制算法得到[b,1,h,w][b, 1, h, w][b,1,h,w]的tensor,代表宽高维度的像素之间的重要程度,将其与原始特征图相乘","s":"(一)总体结构","u":"/docs/推免/简历/简历面试准备","h":"#一总体结构","p":135},{"i":159,"t":"原始特征图[b,c,h,w][b, c, h, w][b,c,h,w]分别经过最大池化和平均池化来压缩空间维度、学习通道之间的特征,得到[b,c,1,1][b, c, 1, 1][b,c,1,1]的tensor,再送入共享的多层感知机网络进行降维再升维,最后将二者相加再经过sigmoid函数产生最终的通道注意力特征图","s":"(二)通道注意力","u":"/docs/推免/简历/简历面试准备","h":"#二通道注意力","p":135},{"i":161,"t":"原始特征图[b,c,h,w][b, c, h, w][b,c,h,w]分别经过最大池化和平均池化(通过torch.max和torch.mean函数实现)得到[b,1,h,w][b, 1, h, w][b,1,h,w]的tensor,再将二者concat后通过7×77 \\times 77×7卷积学习特征并降维,最后送入sigmoid函数得到最终的空间注意力特征图","s":"(三)空间注意力","u":"/docs/推免/简历/简历面试准备","h":"#三空间注意力","p":135},{"i":163,"t":"作者分别对通道注意力以及空间注意力使用最大池化还是平均池化做了消融实验,结果反映二者都用最大池化以及平均池化再相加效果最好(且对于7×77 \\times 77×7卷积与3×33 \\times 33×3卷积的消融实验发现,7×77 \\times 77×7卷积效果更好) 作者对先通道注意力还是先空间注意力做了消融实验,结果发现先通道再空间效果更好","s":"(四)其他注意事项","u":"/docs/推免/简历/简历面试准备","h":"#四其他注意事项","p":135},{"i":165,"t":"Focal Loss通过引入修正项和样本关注度超参数,增加困难样本的关注度,来解决类别不均衡问题。 YOLO损失函数分为分类损失以及回归损失,可以在分类损失中引入Focal Loss代替原来的交叉熵损失","s":"四、Focal Loss","u":"/docs/推免/简历/简历面试准备","h":"#四focal-loss","p":135},{"i":167,"t":"Squeeze and Excitation Squeeze挤压操作就是将[b,c,h,w][b, c, h, w][b,c,h,w]的特征图通过池化挤压宽高维度,得到[b,c,1,1][b, c, 1, 1][b,c,1,1]的tensor,该tensor还要经过所示的全连接层-ReLU-全连接层结构 Excitation激励操作就是通过sigmoid函数得到每个通道之间的重要程度系数","s":"五、SENet","u":"/docs/推免/简历/简历面试准备","h":"#五senet","p":135},{"i":169,"t":"自注意力机制通过计算元素之间的相似度来确定它们之间的关联性,并对其进行加权处理以获得上下文信息。 自注意力机制通过对输入的元素进行线性变换来得到查询(Query)向量、键(Key)向量和值(Value)向量。 通过点积和缩放点积计算相似程度 通过自注意力机制,每个元素都可以通过与其他元素的相似度计算和加权求和,获取到与它们相关的上下文信息。相似度高的元素将获得更高的权重,因此更受到关注和影响,从而建立起元素之间的关联性。","s":"六、自注意力机制","u":"/docs/推免/简历/简历面试准备","h":"#六自注意力机制","p":135},{"i":172,"t":"This content has been encrypted.","s":"(一)英文自我介绍","u":"/docs/推免/简历/简历面试准备","h":"#一英文自我介绍","p":135},{"i":174,"t":"1. 英文自我介绍 This content has been encrypted. 2. 中文自我介绍 This content has been encrypted.","s":"(二)西电广研院自我介绍","u":"/docs/推免/简历/简历面试准备","h":"#二西电广研院自我介绍","p":135},{"i":176,"t":"1. 英文自我介绍 This content has been encrypted. 2. 中文自我介绍 This content has been encrypted.","s":"(三)电子科技大学自我介绍","u":"/docs/推免/简历/简历面试准备","h":"#三电子科技大学自我介绍","p":135},{"i":179,"t":"线性相关与线性无关:向量组中的任一向量都不能被其它向量线性表示,就说向量组线性无关;否则就是线性相关。 矩阵转置:将矩阵的行和列互相交换 矩阵求逆:对于方阵A,若存在方阵B使得AB=BA=单位方阵I,则方阵B为方阵A的逆矩阵,记为A−1A^{-1}A−1 线性代数中的初等行变换。 交换两行 用非零常数乘以某一行 用一行的倍数加到另一行上 如何理解矩阵的秩。 矩阵的秩是指矩阵的列空间(或行空间)的维数,简而言之是矩阵中所有非零行(或列)向量构成的集合所组成的最大线性无关组的向量个数。 提示 宋浩八字:非零子式的最高阶数 任意矩阵的行秩都等于列秩。 矩阵的秩与线性方程组解的关系。 对于n元线性方程组而言: 当系数矩阵的秩等于增广矩阵的秩且秩等于n时,有唯一解 当系数矩阵的秩等于增广矩阵的秩且秩大于n时,有无穷多解 当系数矩阵的秩不等于增广矩阵的秩时,无解 提示 当系数矩阵的秩小于增广矩阵的秩时,说明系数矩阵中的某一列向量(或行向量)可以被其他列向量(或行向量)线性表示,此时该行不能提供额外的线性独立信息 简述向量组线性无关的含义。 含义:若一个向量组是线性无关的,则该向量组中的每个向量都不能表示成其他向量的线性组合。 意义:如果一个向量组线性无关,那么该向量组所张成的空间就是一个最小维度的向量空间,并且该向量空间中的任何向量都可由这些向量线性组合表示。 判定方法:如果一个向量组中的所有向量都不可以由其他向量线性组合得到,则称该向量组为线性无关的。否则,如果存在某个向量可以表示成其他向量的线性组合,则该向量组就不是线性无关的。 解释正定矩阵以及半正定矩阵。 简述特征值的含义。 特征值描述了矩阵在特定方向(特征向量方向)上的缩放因子,特征向量表示矩阵在这个特定方向上的不变性。 简述矩阵分解的物理意义。 矩阵分解是将一个矩阵表示为一些特定形式的矩阵乘积的过程。 矩阵分解的种类以及物理意义: LU分解:将矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积。物理意义包括解线性方程组、计算矩阵的行列式和逆矩阵等。 QR分解:将矩阵分解为一个正交矩阵和一个上三角矩阵的乘积。物理意义包括最小二乘问题、矩阵的特征值计算等。 特征值分解:将矩阵分解为一个特征向量矩阵和一个对角矩阵的乘积。物理意义包括矩阵的幂、指数和对称矩阵的对角化等。 奇异值分解(SVD):将矩阵分解为一个正交矩阵、一个对角矩阵和一个正交矩阵的乘积。物理意义包括降维、矩阵逼近和图像压缩等。","s":"一、线性代数","u":"/docs/推免/数学/夏令营面试数学部分复习","h":"#一线性代数","p":177},{"i":181,"t":"简述大数定理。 大数定理描述了大样本情况下随机变量的均值与其期望值之间的关系。对于独立同分布的随机变量序列,随着样本数量的增加,样本均值会以较高的概率接近其期望值。 简述中心极限定理。 当独立随机变量的数量足够大时,它们的和(或平均值)的分布会逐渐接近一个正态分布。即使原始随机变量不服从正态分布,但当样本容量足够大时,和(或平均值)的分布仍然呈现出正态分布的特征。 什么是全概率公式。 对于事件A而言,假设有一组互斥且穷尽的条件事件B,则事件A的概率等于事件A在每个条件事件下发生的概率与该条件事件发生概率的乘积和。 什么是最大似然估计。 基本思想是在已知观测数据的情况下,通过调整参数的取值,找到使得观测数据出现概率最大的参数值。 大致过程: 构建参数化的概率模型,即构建似然函数,表示在给定参数下观测数据出现的概率 取似然函数的对数,方便计算与优化 最大化似然函数,求解参数的最优值 简述贝叶斯定理。 贝叶斯定理描述了在给定观测数据的条件下,计算事件的后验概率的方法。 P(A∣B)=P(B∣A)∗P(A)P(B)P(A|B) = \\frac{P(B|A) * P(A)}{P(B)}P(A∣B)=P(B)P(B∣A)∗P(A) 其中: P(A∣B)P(A|B)P(A∣B)表示在观测到事件 B 发生的条件下,事件 A 发生的概率,称为后验概率 P(B∣A)P(B|A)P(B∣A)表示在事件 A 发生的条件下,事件 B 发生的概率,称为似然; P(A)P(A)P(A)和P(B)P(B)P(B)分别是事件 A 和事件 B 独立发生的先验概率。 优点:它能够将主观先验知识与观测数据相结合,通过不断更新后验概率来进行推断和决策。 P问题、NP问题以及NP完全问题 提示 P stands for Polynomial 意为多项式 P问题是可以在多项式时间内解决的问题 NP问题是可以在多项式时间内验证解的正确性的问题 NP完全问题是一类特殊的NP问题,没有已知的高效解决算法,并且可以在多项式时间内归约到任何其他的NP问题","s":"二、概率论","u":"/docs/推免/数学/夏令营面试数学部分复习","h":"#二概率论","p":177},{"i":183,"t":"提示 欢迎来到笔记本的推免复习部分","s":"Welcome","u":"/docs/推免/intro","h":"","p":182},{"i":185,"t":"如果可以帮到你的话就给个免费的Star吧!","s":"支持我!","u":"/docs/推免/intro","h":"#支持我","p":182},{"i":187,"t":"提示 参考链接: 线性代数极简入门 《线性代数》高清教学视频 “惊叹号”系列 宋浩老师","s":"线性代数","u":"/docs/推免/数学/线性代数","h":"","p":186},{"i":189,"t":"线性相关与线性无关:向量组中的任一向量都不能被其它向量线性表示,就说向量组线性无关;否则就是线性相关。 矩阵转置:将矩阵的行和列互相交换 矩阵求逆:对于方阵A,若存在方阵B使得AB=BA=单位方阵I,则方阵B为方阵A的逆矩阵,记为A−1A^{-1}A−1","s":"一、基础知识","u":"/docs/推免/数学/线性代数","h":"#一基础知识","p":186},{"i":191,"t":"线性代数中的初等行变换。 交换两行 用非零常数乘以某一行 用一行的倍数加到另一行上 如何理解矩阵的秩。 矩阵的秩是指矩阵的列空间(或行空间)的维数,简而言之是矩阵中所有非零行(或列)向量构成的集合所组成的最大线性无关组的向量个数。 提示 宋浩八字:非零子式的最高阶数 任意矩阵的行秩都等于列秩。 矩阵的秩与线性方程组解的关系。 对于n元线性方程组而言: 当系数矩阵的秩等于增广矩阵的秩且秩等于n时,有唯一解 当系数矩阵的秩等于增广矩阵的秩且秩大于n时,有无穷多解 当系数矩阵的秩不等于增广矩阵的秩时,无解 提示 当系数矩阵的秩小于增广矩阵的秩时,说明系数矩阵中的某一列向量(或行向量)可以被其他列向量(或行向量)线性表示,此时该行不能提供额外的线性独立信息 简述向量组线性无关的含义。 含义:若一个向量组是线性无关的,则该向量组中的每个向量都不能表示成其他向量的线性组合。 意义:如果一个向量组线性无关,那么该向量组所张成的空间就是一个最小维度的向量空间,并且该向量空间中的任何向量都可由这些向量线性组合表示。 判定方法:如果一个向量组中的所有向量都不可以由其他向量线性组合得到,则称该向量组为线性无关的。否则,如果存在某个向量可以表示成其他向量的线性组合,则该向量组就不是线性无关的。 解释正定矩阵以及半正定矩阵。 简述特征值的含义。 特征值描述了矩阵在特定方向(特征向量方向)上的缩放因子,特征向量表示矩阵在这个特定方向上的不变性。 简述矩阵分解的物理意义。 矩阵分解是将一个矩阵表示为一些特定形式的矩阵乘积的过程。 矩阵分解的种类以及物理意义: LU分解:将矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积。物理意义包括解线性方程组、计算矩阵的行列式和逆矩阵等。 QR分解:将矩阵分解为一个正交矩阵和一个上三角矩阵的乘积。物理意义包括最小二乘问题、矩阵的特征值计算等。 特征值分解:将矩阵分解为一个特征向量矩阵和一个对角矩阵的乘积。物理意义包括矩阵的幂、指数和对称矩阵的对角化等。 奇异值分解(SVD):将矩阵分解为一个正交矩阵、一个对角矩阵和一个正交矩阵的乘积。物理意义包括降维、矩阵逼近和图像压缩等。","s":"二、面试常考问题","u":"/docs/推免/数学/线性代数","h":"#二面试常考问题","p":186},{"i":193,"t":"提示 设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321),求N的值","s":"反序输出","u":"/docs/Algorithms/题解/反序输出","h":"","p":192},{"i":195,"t":"#include using namespace std; int main() { for (int i = 1000; i <= 9999; i++) { int x = i * 9, y = 0; while (x > 0) { y = y * 10 + x % 10; x /= 10; } if (i == y) { cout << i << endl; } } return 0; }","s":"参考代码","u":"/docs/Algorithms/题解/反序输出","h":"#参考代码","p":192},{"i":197,"t":"反序输出可以分为两部分:拆分以及反序拼接 拆分:n位整数求余10可以得到最后一位,再除以10可以得到除去上述最后一位之后的n-1位整数,循环得到每一个最后一位,完成拆分 while (x > 0) { y = y * 10 + x % 10; // 拼接与拆分 x /= 10; } 拼接:将s中的数字拼接成整数 int sum = 0; for (int i = 0; i < s.size(); i++) { sum = sum * 10 + s[i]; }","s":"题解","u":"/docs/Algorithms/题解/反序输出","h":"#题解","p":192},{"i":199,"t":"提示 欢迎来到笔记本的算法部分","s":"Welcome","u":"/docs/Algorithms/intro","h":"","p":198},{"i":201,"t":"如果可以帮到你的话就给个免费的Star吧!","s":"支持我!","u":"/docs/Algorithms/intro","h":"#支持我","p":198},{"i":203,"t":"提示 在一面很长的墙壁上,工人们用不同的油漆去刷墙,然而可能有些地方刷过以后觉得不好看,他们会重新刷一下。有些部分因为重复刷了很多次覆盖了很多层油漆,小诺很好奇那些地方被刷过多少种颜色的油漆。 输入描述: 若干行输入,每行两个数字B[i],E[i](0<=B[i]<=E[i]<=200000)表示这次刷的墙壁是哪一段 (假设每次刷的时候油漆颜色都和之前的不同),以0 0结束 又若干行输入,每行两个数字begin[i],end[i](0<=begin[i]<=end[i]<=200000)表示小诺询问的段, 以0 0结束 输出描述: 对于每个小诺的询问输出(end[i]-begin[i]+1)行,表示对应询问段的每个点被多少种颜色的油漆覆盖过。","s":"一维前缀和(刷出一道墙)","u":"/docs/Algorithms/题解/一维前缀和(刷出一道墙)","h":"","p":202},{"i":205,"t":"#include using namespace std; int main() { vector colors(200001, 0); int B, E; while (scanf(\"%d %d\", &B, &E)) { if (B == 0 && E == 0) { break; } colors[B]++; // 刷墙起点标记 colors[E + 1]--; // 刷墙终点标记 } // 计算前缀和 for (int i = 1; i < colors.size(); i++) { colors[i] += colors[i - 1]; } int begin, end; while (scanf(\"%d %d\", &begin, &end)) { if (begin == 0 && end == 0) { break; } for (int i = begin; i <= end; i++) { printf(\"%d\\n\", colors[i]); } } return 0; }","s":"参考代码","u":"/docs/Algorithms/题解/一维前缀和(刷出一道墙)","h":"#参考代码","p":202},{"i":207,"t":"使用前缀和思想简化时间复杂度,设计前缀和数组,使输出的数组中元素的值代表其对应节点被刷的次数。 首先初始化前缀和数组,使每一个元素等于为0。 该题的巧妙之处就在于:对于每一个输入的索引B与E,B作为开始刷的节点索引令前缀和数组中对应元素的值+1+1+1,E+1作为刷墙结束的下一个节点的索引令对应的值−1-1−1。这样在所有输入结束后的计算前缀和阶段,在每一个值为[1,−1)[1, -1)[1,−1)的索引区间中的元素值都会加1,而对于某次刷漆终点E的下一个索引为E+1的元素值由于−1-1−1而抵消影响(自身值为−1-1−1加上之前元素所累积的1而归零),此时数组中元素的值才代表其对应节点被刷的次数。 关于超时,可以在函数中加入以下代码消除流操作的缓冲区,并使用\"\\n\"代替endl。 ios::sync_with_stdio(false);","s":"题解","u":"/docs/Algorithms/题解/一维前缀和(刷出一道墙)","h":"#题解","p":202},{"i":209,"t":"提示 输入一个数,比如201,让数字随意组合,是否能组合出30的倍数,如果能够组合成30的倍数,就输出最大的倍数,不能就输出-1 例如输入201可以随意组合成 201,210,012,021,102,120等数字 其中120,210都是30的倍数,由于要找最大的,所以答案是210 输入样例:201 输出样例:210","s":"排列组合(求30的倍数)","u":"/docs/Algorithms/题解/排列组合(求30的倍数)","h":"","p":208},{"i":211,"t":"#include using namespace std; int main() { string s; cin >> s; int maxx = 0, flag = 0; sort(s.begin(), s.end()); do { int now = 0; for (int i = 0; i < s.size(); i++) { now = now * 10 + s[i] - '0'; } if (now % 30 == 0) { flag = 1; maxx = max(maxx, now); } } while (next_permutation(s.begin(), s.end())); if (flag == 1) { cout << maxx << endl; return 0; } else { cout << -1 << endl; } }","s":"参考代码","u":"/docs/Algorithms/题解/排列组合(求30的倍数)","h":"#参考代码","p":208},{"i":213,"t":"使用C++ STL提供的排列组合模版 首先将代排列组合的字符串或数组进行排序 sort(list.begin(), list.end()); 使用排列组合模版 do { something(); } while (next_permutation(list.begin(), list.end())); 此时,在每一个do循环中,list按从小到大的顺序进行排列组合遍历","s":"题解","u":"/docs/Algorithms/题解/排列组合(求30的倍数)","h":"#题解","p":208},{"i":215,"t":"[TOC]","s":"机试技巧与STL","u":"/docs/Algorithms/机试技巧与STL","h":"","p":214},{"i":217,"t":"CTRL + J 列出成员 Ctrl+E,D 格式化全部代码 Ctrl+K,F 格式化选中的代码 CTRL + SHIFT + E 显示资源视图 F12 转到定义 CTRL + F12 转到声明 CTRL + ALT + J 对象浏览 CTRL + ALT + F1 帮助目录 CTRL + F1 动态帮助 CTRL + K, CTRL + C 注释选择的代码 CTRL + K, CTRL + U 取消对选择代码的注释 CTRL + U 转小写 CTRL + SHIFT + U 转大写 F5 运行调试 CTRL + F5 运行不调试 F10 跨过程序执行 F11 单步逐句执行","s":"vs2018 快捷键","u":"/docs/Algorithms/机试技巧与STL","h":"#vs2018-快捷键","p":214},{"i":220,"t":"头文件 说明 头文件 说明 头文件 说明 assert.h 断言相关 ctype.h 字符类型判断 errno.h 标准错误机制 float.h 浮点限制 limits.h 整形限制 locale.h 本地化接口 math.h 数学函数 setjmp.h 非本地跳转 signal.h 信号相关 stdarg.h 可变参数处理 stddef.h 宏和类型定义 stdio.h 标准I/O stdlib.h 标准工具库 string.h 字符串和内存处理 time.h 时间相关","s":"标准c库","u":"/docs/Algorithms/机试技巧与STL","h":"#标准c库","p":214},{"i":222,"t":"using namespace std; 头文件 说明 头文件 说明 头文件 说明 algorithm 通用算法 deque 双端队列 vector 向量 iterator 迭代器 stack 栈 map 图(键值对) list 列表 string 字符串 set 集合 queue 队列 bitset bit类 numeric 数值算法","s":"c++ STL","u":"/docs/Algorithms/机试技巧与STL","h":"#c-stl","p":214},{"i":224,"t":"#include #include #include #include #include #include #include #include #include #include #include #include #include #include