diff --git a/404.html b/404.html index b949b8b2..97c6b259 100644 --- a/404.html +++ b/404.html @@ -3,14 +3,14 @@ -Page Not Found | Credo - +Page Not Found | Credo +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/css/styles.6eb33588.css b/assets/css/styles.6eb33588.css deleted file mode 100644 index f4245301..00000000 --- a/assets/css/styles.6eb33588.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}:root,body.dark,body[data-theme=dark]{--aa-icon-color-rgb:119,119,163;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.aa-List,.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);--ifm-color-primary:#fe008e;--ifm-color-primary-dark:#e50080;--ifm-color-primary-darker:#d80079;--ifm-color-primary-darkest:#b20063;--ifm-color-primary-light:#ff1899;--ifm-color-primary-lighter:#ff259f;--ifm-color-primary-lightest:#ff4bb0;--ifm-background-color:#faf9f6;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-alpha:1;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.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}*,.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *{box-sizing:border-box}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,.tabItem_LNqP{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)}.container_lyt7,.container_lyt7>svg,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,.tabList__CuJ{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_TMsN,.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{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.breadcrumbs__link[href]: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}.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}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.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;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)}.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_vXIg>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.tabItem_Ymn6>:last-child{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{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{filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;content:""}.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-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)}.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-duration:.25s;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-duration:.1s;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{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}[data-theme=dark]{--ifm-color-primary:#cf00b8;--ifm-color-primary-dark:#ba00a6;--ifm-color-primary-darker:#b0009c;--ifm-color-primary-darkest:#910081;--ifm-color-primary-light:#e400ca;--ifm-color-primary-lighter:#ee00d4;--ifm-color-primary-lightest:#ff0ee4;--docusaurus-highlighted-code-line-bg:#0000004d}.custom-banner-bg{background:linear-gradient(135deg,#ff008e,#cf00b8)}.admonition-holder{--ifm-alert-background-color:#b6b2f5}.admonition-issuer{--ifm-alert-background-color:#5dea7e}.admonition-verifier{--ifm-alert-background-color:#ee90ca}.admonition-acme{--ifm-alert-background-color:#a0faaa}.admonition-bob{--ifm-alert-background-color:#faf}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#docusaurus-base-url-issue-banner-container,.aa-ClearButton[hidden],.aa-ItemContent:empty,.aa-LoadingIndicator[hidden],.aa-Source:empty,.aa-SourceHeader:empty,.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;text-decoration:underline}.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}.aa-Form,.toggleButton_gllP{align-items:center;width:100%;display:flex}.toggleButton_gllP{border-radius:50%;height:100%;justify-content:center;transition:background var(--ifm-transition-fast)}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-muted-color-alpha:1}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;line-height:1em;margin:0;position:relative}.aa-ClearButton,.aa-Input,.aa-SubmitButton{border:0;background:none}.aa-Form:focus-within,.aa-Form[focus-within]{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}.aa-SubmitButton{-webkit-appearance:none;appearance:none;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{-webkit-appearance:none;appearance:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::placeholder{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:0}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.8333333333px;padding:0 calc(var(--aa-spacing)*.83333 - .5px)}.aa-Item,.aa-ItemIcon{align-items:center;border-radius:3px}.aa-ClearButton:focus,.aa-ClearButton:hover,.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);margin:8px 0 0;overflow:hidden;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}.aa-Panel button{-webkit-appearance:none;appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border:3px solid #eaeaea;border-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-radius:9999px;border-right:2px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,#807ea324);background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),#807ea324);border:1px solid #807ea399;border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px #4c455826;color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;cursor:pointer;display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle,.tocCollapsibleContent_vkbj a{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:#807ea3a3;border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-PanelFooter:after,.aa-PanelHeader:after{position:absolute;pointer-events:none;right:0;content:"";left:0}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-DetachedSearchButtonPlaceholder[hidden],.aa-ItemContentDescription:empty,.docSidebarContainer_b6E3,.sidebarLogo_isFc{display:none}.aa-ItemContentDescription mark{background:#f5df4d80;background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:#3e34d333;background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);align-items:center;color:inherit;display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.3333333333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.3333333333px;margin:calc(var(--aa-spacing)/3);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);height:8px;height:var(--aa-spacing-half)}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 #807ea34d;box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(#fff0,#807ea399);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));height:16px;height:var(--aa-spacing);opacity:.12;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid #807ea34d;border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;flex-shrink:0;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-DetachedSearchButtonQuery{color:#262627;color:rgba(var(--aa-text-color-rgb),1);line-height:1.25em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:#73728166;background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(#fff0,#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}.dsla-search-wrapper{margin-left:var(--aa-spacing)}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.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%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.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}.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}.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)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.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%}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN,.mdxPageWrapper_j9I6{justify-content:center}.buttons_AeoN,.features_t9lD{align-items:center;display:flex}.features_t9lD{padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.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 .2s ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}: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)}.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:.15s;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}.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_WoCw{margin-bottom:1em}.admonitionHeading_TMsN{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_TMsN code{text-transform:none}.admonitionIcon_Ibzs{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Ibzs svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);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}@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)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.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}.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,.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 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}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}.aa-TouchOnly{display:none}}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/ 2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}.aa-ClearButton{padding:0 10.1666666667px;padding:0 calc(var(--aa-spacing)*.66667 - .5px)}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}.aa-DesktopOnly{display:none}}@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 screen and (prefers-reduced-motion){.aa-Panel{transition:none}}@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.d3db514a.css b/assets/css/styles.d3db514a.css new file mode 100644 index 00000000..83c276b4 --- /dev/null +++ b/assets/css/styles.d3db514a.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}:root,body.dark,body[data-theme=dark]{--aa-icon-color-rgb:119,119,163;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.aa-List,.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);--ifm-color-primary:#fe008e;--ifm-color-primary-dark:#e50080;--ifm-color-primary-darker:#d80079;--ifm-color-primary-darkest:#b20063;--ifm-color-primary-light:#ff1899;--ifm-color-primary-lighter:#ff259f;--ifm-color-primary-lightest:#ff4bb0;--ifm-background-color:#faf9f6;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-alpha:1;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.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}*,.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *{box-sizing:border-box}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,.tabItem_LNqP{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)}.container_lyt7,.container_lyt7>svg,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,.tabList__CuJ{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}.custom-banner-bg h1,.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_TMsN,.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{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.breadcrumbs__link[href]: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}.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}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.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;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)}.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_vXIg>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.tabItem_Ymn6>:last-child{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{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{filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;content:""}.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-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)}.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-duration:.25s;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-duration:.1s;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{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}[data-theme=dark]{--ifm-color-primary:#cf00b8;--ifm-color-primary-dark:#ba00a6;--ifm-color-primary-darker:#b0009c;--ifm-color-primary-darkest:#910081;--ifm-color-primary-light:#e400ca;--ifm-color-primary-lighter:#ee00d4;--ifm-color-primary-lightest:#ff0ee4;--docusaurus-highlighted-code-line-bg:#0000004d}.custom-banner-bg{background:var(--ifm-background-color)}[data-theme=dark] .custom-banner-bg a,[data-theme=dark] .custom-banner-bg p{color:#fff}[data-theme=light] .custom-banner-bg p{color:#000}.admonition-holder{--ifm-alert-background-color:#b6b2f5}.admonition-issuer{--ifm-alert-background-color:#5dea7e}.admonition-verifier{--ifm-alert-background-color:#ee90ca}.admonition-acme{--ifm-alert-background-color:#a0faaa}.admonition-bob{--ifm-alert-background-color:#faf}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#docusaurus-base-url-issue-banner-container,.aa-ClearButton[hidden],.aa-ItemContent:empty,.aa-LoadingIndicator[hidden],.aa-Source:empty,.aa-SourceHeader:empty,.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;text-decoration:underline}.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}.aa-Form,.toggleButton_gllP{align-items:center;width:100%;display:flex}.toggleButton_gllP{border-radius:50%;height:100%;justify-content:center;transition:background var(--ifm-transition-fast)}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-muted-color-alpha:1}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;line-height:1em;margin:0;position:relative}.aa-ClearButton,.aa-Input,.aa-SubmitButton{border:0;background:none}.aa-Form:focus-within,.aa-Form[focus-within]{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}.aa-SubmitButton{-webkit-appearance:none;appearance:none;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{-webkit-appearance:none;appearance:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::placeholder{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:0}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.8333333333px;padding:0 calc(var(--aa-spacing)*.83333 - .5px)}.aa-Item,.aa-ItemIcon{align-items:center;border-radius:3px}.aa-ClearButton:focus,.aa-ClearButton:hover,.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);margin:8px 0 0;overflow:hidden;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}.aa-Panel button{-webkit-appearance:none;appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border:3px solid #eaeaea;border-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-radius:9999px;border-right:2px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,#807ea324);background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),#807ea324);border:1px solid #807ea399;border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px #4c455826;color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;cursor:pointer;display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle,.tocCollapsibleContent_vkbj a{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:#807ea3a3;border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-PanelFooter:after,.aa-PanelHeader:after{position:absolute;pointer-events:none;right:0;content:"";left:0}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-DetachedSearchButtonPlaceholder[hidden],.aa-ItemContentDescription:empty,.docSidebarContainer_b6E3,.sidebarLogo_isFc{display:none}.aa-ItemContentDescription mark{background:#f5df4d80;background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:#3e34d333;background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);align-items:center;color:inherit;display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.3333333333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.3333333333px;margin:calc(var(--aa-spacing)/3);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);height:8px;height:var(--aa-spacing-half)}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 #807ea34d;box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(#fff0,#807ea399);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));height:16px;height:var(--aa-spacing);opacity:.12;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid #807ea34d;border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;flex-shrink:0;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-DetachedSearchButtonQuery{color:#262627;color:rgba(var(--aa-text-color-rgb),1);line-height:1.25em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:#73728166;background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(#fff0,#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}.dsla-search-wrapper{margin-left:var(--aa-spacing)}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.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%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.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}.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}.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)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.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%}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN,.mdxPageWrapper_j9I6{justify-content:center}.buttons_AeoN,.features_t9lD{align-items:center;display:flex}.features_t9lD{padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.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 .2s ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}: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)}.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:.15s;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}.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_WoCw{margin-bottom:1em}.admonitionHeading_TMsN{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_TMsN code{text-transform:none}.admonitionIcon_Ibzs{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Ibzs svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);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}@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)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.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}.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,.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 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}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}.aa-TouchOnly{display:none}}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/ 2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}.aa-ClearButton{padding:0 10.1666666667px;padding:0 calc(var(--aa-spacing)*.66667 - .5px)}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}.aa-DesktopOnly{display:none}}@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 screen and (prefers-reduced-motion){.aa-Panel{transition:none}}@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/js/1df93b7f.751407f9.js b/assets/js/1df93b7f.3db5e753.js similarity index 99% rename from assets/js/1df93b7f.751407f9.js rename to assets/js/1df93b7f.3db5e753.js index d7a5094e..7c9c1a0e 100644 --- a/assets/js/1df93b7f.751407f9.js +++ b/assets/js/1df93b7f.3db5e753.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcredo_ts_docs=self.webpackChunkcredo_ts_docs||[]).push([[3237],{577:(e,t,c)=>{c.d(t,{Z:()=>we});var l,a,r,h,i,n,m,f,E,d,y,v,x,s,p,o,M,Z,g,u,w,b,z,H,V,N,_,O,j,C,B,S,k,A,F,L,P,q,I,D,G,R,T,U,W,X,J,K,Q,Y,$,ee,te,ce,le,ae,re,he,ie,ne,me,fe,Ee,de,ye,ve,xe,se,pe,oe,Me,Ze,ge=c(7294);function ue(){return ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...we}=e;return ge.createElement("svg",ue({xmlns:"http://www.w3.org/2000/svg",width:802.611,height:507.219,viewBox:"0 0 802.611 507.219","aria-labelledby":c},we),t?ge.createElement("title",{id:c},t):null,l||(l=ge.createElement("path",{d:"m706.756 463.87.782-17.577a56.765 56.765 0 0 1 26.477-6.702c-12.717 10.397-11.127 30.438-19.749 44.42a34.144 34.144 0 0 1-25.038 15.778l-10.642 6.515a57.215 57.215 0 0 1 12.06-46.363 55.27 55.27 0 0 1 10.156-9.438c2.549 6.72 5.954 13.366 5.954 13.366ZM168.805 444.61l-25.68-7.776a86.572 86.572 0 0 1 .067-41.654c10.575 22.71 40.792 27.909 58.207 45.916a52.073 52.073 0 0 1 13.888 42.946l5.62 18.181a87.259 87.259 0 0 1-63.976-35.284 84.289 84.289 0 0 1-10.122-18.566c10.892-1.235 21.996-3.764 21.996-3.764Z",fill:"#f2f2f2"})),a||(a=ge.createElement("path",{d:"M617.773 503.43a2.038 2.038 0 0 1-.59 1.42 1.988 1.988 0 0 1-1.41.58h-8.04a1.993 1.993 0 0 1-2-1.986V260.29c0-5.36-1.8-9.71-4.01-9.72h-500.49c-2.22.01-4.01 4.36-4.02 9.72v241.65a2.006 2.006 0 0 1-1.81 1.99c-1.62.16-3.24.3-4.85.43-.04 0-.08.01-.12.01-.88.08-1.76.14-2.64.21h-.01c-.46-.83-.9-1.68-1.35-2.53a2.088 2.088 0 0 1-.22-.93V247.68c0-1.48.06-2.97.16-4.44.142-2.018.393-4.028.75-6.02 1.69-9.29 5.51-15.58 9.85-15.6h509c.633.004 1.26.137 1.84.39a7.174 7.174 0 0 1 2.27 1.59 14.071 14.071 0 0 1 2.23 3.05c2.14 3.77 3.67 9.39 4.21 15.93 0 .06.01.12.01.18.14 1.62.21 3.27.2 4.92l.14 21.43.09 12.78.27 40.1.1 14.24.44 167.2Z",fill:"#e6e6e6"})),r||(r=ge.createElement("path",{d:"M432.024 147.486h-51.006a2.721 2.721 0 0 0-2.717 2.725v80.574h56.447V150.21a2.723 2.723 0 0 0-2.722-2.725h-.002Zm-25.332 45.782a6.051 6.051 0 0 1-6.023-6.023v-9.294a6.023 6.023 0 1 1 12.046 0v9.294a6.051 6.051 0 0 1-6.023 6.023Z",fill:"#ccc"})),h||(h=ge.createElement("path",{d:"M378.126 228.207v7.774a1.523 1.523 0 0 0 1.52 1.52h53.757a1.527 1.527 0 0 0 1.52-1.52v-7.774h-56.797Z",fill:"#3f3d56"})),i||(i=ge.createElement("path",{d:"M516.484 21.742H298.455a7.078 7.078 0 0 0-7.066 7.066v147.127a7.073 7.073 0 0 0 7.066 7.067h218.03a7.073 7.073 0 0 0 7.066-7.067V28.808a7.078 7.078 0 0 0-7.067-7.066Z",fill:"#e6e6e6"})),n||(n=ge.createElement("path",{d:"M514.664 26.846H300.277a3.787 3.787 0 0 0-3.78 3.787v143.48a3.786 3.786 0 0 0 3.78 3.78h214.387a3.786 3.786 0 0 0 3.78-3.78V30.633a3.787 3.787 0 0 0-3.78-3.787Z",fill:"#fff"})),m||(m=ge.createElement("path",{d:"M472.905 240.206H345.356a2.346 2.346 0 0 1-2.296-2.83l1.98-9.4a2.356 2.356 0 0 1 2.295-1.862h123.592a2.356 2.356 0 0 1 2.295 1.863l1.98 9.4a2.346 2.346 0 0 1-2.297 2.829Z",fill:"#ccc"})),f||(f=ge.createElement("rect",{x:348.241,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),E||(E=ge.createElement("rect",{x:356.098,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),d||(d=ge.createElement("rect",{x:363.954,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),y||(y=ge.createElement("rect",{x:371.811,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),v||(v=ge.createElement("rect",{x:379.668,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),x||(x=ge.createElement("rect",{x:387.525,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),s||(s=ge.createElement("rect",{x:395.382,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),p||(p=ge.createElement("rect",{x:403.238,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),o||(o=ge.createElement("rect",{x:411.095,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),M||(M=ge.createElement("rect",{x:418.952,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),Z||(Z=ge.createElement("rect",{x:426.809,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),g||(g=ge.createElement("rect",{x:434.665,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),u||(u=ge.createElement("rect",{x:442.522,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),w||(w=ge.createElement("rect",{x:450.379,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),b||(b=ge.createElement("rect",{x:458.236,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),z||(z=ge.createElement("rect",{x:466.092,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),H||(H=ge.createElement("rect",{x:348.148,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),V||(V=ge.createElement("rect",{x:356.005,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),N||(N=ge.createElement("rect",{x:363.862,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),_||(_=ge.createElement("rect",{x:371.718,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),O||(O=ge.createElement("rect",{x:379.575,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),j||(j=ge.createElement("rect",{x:387.432,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),C||(C=ge.createElement("rect",{x:395.289,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),B||(B=ge.createElement("rect",{x:403.145,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),S||(S=ge.createElement("rect",{x:411.002,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),k||(k=ge.createElement("rect",{x:418.859,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),A||(A=ge.createElement("rect",{x:426.716,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),F||(F=ge.createElement("rect",{x:434.572,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),L||(L=ge.createElement("rect",{x:442.429,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),P||(P=ge.createElement("rect",{x:450.286,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),q||(q=ge.createElement("rect",{x:458.143,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),I||(I=ge.createElement("rect",{x:466,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),D||(D=ge.createElement("rect",{x:385.861,y:236.449,width:31.427,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),G||(G=ge.createElement("path",{d:"M503.887 46.614H303.286a.798.798 0 0 1 0-1.595h200.601a.798.798 0 0 1 0 1.595Z",fill:"#cacaca"})),R||(R=ge.createElement("ellipse",{cx:316.941,cy:36.166,rx:4.675,ry:4.779,fill:"#ccc"})),T||(T=ge.createElement("ellipse",{cx:333.092,cy:36.166,rx:4.675,ry:4.779,fill:"#ccc"})),U||(U=ge.createElement("ellipse",{cx:349.242,cy:36.166,rx:4.675,ry:4.779,fill:"#ccc"})),W||(W=ge.createElement("path",{fill:"#3f3d56",d:"m403.381 58.71-.648-1.893 82.858-43.052.647 1.893-82.857 43.052zM653.381 138.452l-.648-1.893 49.858-42.834.647 1.892-49.857 42.835zM557.591 148.423l-82.858-43.052.648-1.893 82.857 43.052-.647 1.893zM600.006 118.465l-48.575-79.746 1.535-1.283 48.574 79.746-1.534 1.283zM637.914 14.554l-47.307-.218v-2l47.307.218v2z"})),X||(X=ge.createElement("path",{d:"M723.611 26.96h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13ZM789.611 102.96h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13Z",fill:"#cf00b8"})),J||(J=ge.createElement("path",{fill:"#3f3d56",d:"m703.914 156.553-47.307-.217v-2l47.307.217v2z"})),K||(K=ge.createElement("path",{d:"M789.611 168.96h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13ZM634.611 160h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13ZM562.611 26h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13Z",fill:"#cf00b8"})),Q||(Q=ge.createElement("path",{d:"M309.283 249.18h-60a8 8 0 0 0 0 16h22v62h16v-62h22a8 8 0 0 0 0-16Z",fill:"#3f3d56"})),Y||(Y=ge.createElement("path",{d:"M348.884 361.517H188.4c-32.159-.117-59.367-23.8-63.917-55.636l-5.68-20.895a469.078 469.078 0 0 0-53.182-122.903c-10.747-17.454-16.279-34.35-3.714-50.616l.315-.41C72.3 97.942 122.458 95.103 138.81 94.55a56.664 56.664 0 0 1 1.945-.033h99.819c.651 0 1.3.011 1.945.033a48.847 48.847 0 0 1 42.236 26.92 50.331 50.331 0 0 1-2.856 51.53c-35.064 52.671-45.799 85.698-34.808 107.086 10.631 20.687 43.22 31.264 102.558 33.285 15.947.543 23.265 12.96 23.316 24.266.05 11.015-6.986 23.176-22.552 23.848a36.01 36.01 0 0 1-1.528.032Z",fill:"#3f3d56"})),$||($=ge.createElement("path",{d:"M215.663 504.017h60a8 8 0 0 0 0-16h-22v-135h-16v135h-22a8 8 0 0 0 0 16Z",fill:"#3f3d56"})),ee||(ee=ge.createElement("path",{fill:"#a0616a",d:"m269.97 449.592 10.335 5.614 27.362-37.831-15.256-8.287-22.442 40.504z"})),te||(te=ge.createElement("path",{d:"m274.944 436.111 18.764 5.876-2.986 7.86 12.867 18.675a5.253 5.253 0 0 1-6.191 7.891l-21.844-8.299-.811-9.206-4.424 7.217-8.236-3.129 12.861-26.885Z",fill:"#2f2e41"})),ce||(ce=ge.createElement("path",{d:"M296.084 68.076c.926 6.347-3.469 12.243-9.816 13.169-.677.098-1.36.137-2.044.116l-39.852 84.795-12.499-17.43 41.024-80.181c.63-6.418 6.345-11.11 12.763-10.48 5.37.527 9.68 4.666 10.424 10.01Z",fill:"#a0616a"})),le||(le=ge.createElement("path",{d:"M163.835 183.3s-1.068 14.814 15.685 17.72 61.539-25.415 68.894-29.764 21.062-59.06 21.062-59.06l-11.92-20.162c-14.718 18.617-26.275 35.784-26.977 47.97L163.835 183.3Z",fill:"#cf00b8"})),ae||(ae=ge.createElement("path",{d:"m183.175 234.327 3.619 15.546s.035 14.335 2.574 16.978c2.52 2.631 57.955-2.651 57.955-2.651s-5.877-23.1-5.799-40.578l-58.349 10.705Z",fill:"#a0616a"})),re||(re=ge.createElement("path",{d:"m300.283 433.18-20-11c-.38-26.025 15.273-61.243 33.84-98.132-41.524 7.141-80.697 9.429-114.58.79-11.574-3.057-18.55-14.84-15.663-26.458.132-.548.285-1.09.458-1.627 4.055-12.372-5.038-20.128 3.325-33.736 21.997-7.512 42.892-9.634 62-3l11.973 26.471 59.342-7.679c12-1.434 22.89 7.13 24.325 19.13l.019.164c.08.644.132 1.29.156 1.94-11.999 56.253-25.453 106.869-45.195 133.137Z",fill:"#2f2e41"})),he||(he=ge.createElement("path",{d:"m175.12 135.904 22.861-1.35a4.641 4.641 0 0 1 4.564 2.864l6.46 15.661 26.85 22.192s10.631 13.528 10.656 31 3.772 57.91 3.772 57.91-15.515-21.84-25.092-16.031c-1.629.988-2.202 3.009-3.908 4.03-.852.51-2.818.014-3.678.525-13.196 7.833-26.958 15.486-28.243 14.144-2.525-2.634-5.588-16.097-5.588-16.097l-20.926-76.887a28.477 28.477 0 0 1 4.05-23.962c1.461-2.059 2.993-3.59 4.417-3.843 3.196-.68 1.496-7.844 3.805-10.156Z",fill:"#cf00b8"})),ie||(ie=ge.createElement("path",{fill:"#a0616a",d:"m369.59 482.16 9.65-6.709-21.862-41.244-14.242 9.902 26.453 38.051z"})),ne||(ne=ge.createElement("path",{d:"m371.048 454.486-15.124 13.519c-24.048-26.796-42.227-64.376-57.633-107.053-40.366-11.822-70.807-30.888-97.382-53.527-9.015-7.628-15.774-17.428-8.085-26.72.36-.435.735-.855 1.126-1.261 9.079-9.33 32.1-7.552 45.585-16.1l30.121 32.197-1.894 8.631 56.577 19.165c11.39 3.992 17.386 16.46 13.395 27.85l-.06.167c-.212.614-.45 1.218-.713 1.812l34.087 101.32ZM363.963 479.44l15.447-12.165 4.8 6.905 22.678-.069a5.253 5.253 0 0 1 3.015 9.566l-19.187 13.338-8.055-4.531 3.456 7.727-7.234 5.03-14.92-25.8Z",fill:"#2f2e41"})),me||(me=ge.createElement("path",{d:"M208.878 329.673c-5.904-2.506-8.66-9.325-6.153-15.23.267-.629.59-1.233.963-1.806l-51.754-78.102 21.386-1.626 47.202 76.707c5.157 3.873 6.198 11.193 2.326 16.35a11.677 11.677 0 0 1-13.97 3.707Z",fill:"#a0616a"})),fe||(fe=ge.createElement("path",{d:"M179.121 156.81s-12.103-8.607-23.288 4.199-10.252 65.787-10.357 74.33c-.033 2.676 3.83 8.449 9.153 15.117 2.39 2.994 5.073 6.168 7.83 9.323 1.596 1.826.221 5.627 1.824 7.401 1.593 1.765 6.164 1.505 7.68 3.143A648.21 648.21 0 0 0 185 284.017l23.42.288c.265-17.41-11.658-32.95-26.975-47.97l-2.325-79.524Z",fill:"#cf00b8"})),Ee||(Ee=ge.createElement("path",{d:"M155.514 81.008c-2.217 1.6-4.55 3.249-7.255 3.646s-5.874-.912-6.622-3.542c-.916-3.216 1.988-6.144 4.598-8.233l8.276-6.628a20.01 20.01 0 0 1 5.074-3.28 6.762 6.762 0 0 1 5.854.196 6.287 6.287 0 0 1 2.763 5.473 11.687 11.687 0 0 1-2.05 5.996 21.089 21.089 0 0 1-13.69 9.307",fill:"#2f2e41"})),de||(de=ge.createElement("path",{d:"M218.283 253.18h-60a8 8 0 0 0 0 16h22v62h16v-62h22a8 8 0 0 0 0-16Z",fill:"#3f3d56"})),ye||(ye=ge.createElement("path",{d:"M159.19 64.224c.242-5.999-6.15-10.748-12.14-10.373s-11.138 4.589-14.534 9.538c-3.396 4.945-5.436 10.673-8.11 16.042s-6.238 10.627-11.554 13.41c-5.315 2.777-12.713 2.282-16.386-2.462a13.208 13.208 0 0 0-1.357 11.865 18.088 18.088 0 0 0 7.938 9.211 20.797 20.797 0 0 0 4.596 2.021 18.715 18.715 0 0 1 2.766-4.975 15.45 15.45 0 0 0-.595 5.507c2.478.475 5.028.435 7.49-.118a15.945 15.945 0 0 0 11.062-9.021c2.246-5.318 1.102-11.381 1.583-17.133.476-5.754 3.943-12.322 9.716-12.415 4.396-.073 3.814.29 6.6 3.691",fill:"#2f2e41"})),ve||(ve=ge.createElement("path",{d:"M199.111 95.742c0 14.36-11.64 26-26 26s-28-16.64-28-31 13.64-21 28-21 26 11.64 26 26Z",fill:"#2f2e41"})),xe||(xe=ge.createElement("circle",{cx:180.951,cy:102.598,r:24.805,transform:"rotate(-11.564 180.951 102.598)",fill:"#a0616a"})),se||(se=ge.createElement("path",{d:"M212.111 98.742c-7.343 2.005-14.757 4.107-17.62 0a22.578 22.578 0 0 0-3.11-7.66 31.014 31.014 0 0 1-1.83 7.66c-9.277 2.016-17.947 2.498-25.44 0a14.204 14.204 0 0 0-1.75 6.06 8.55 8.55 0 0 0-1.16-.61 1.919 1.919 0 0 0-1.58-.14c-.36.218-.6.59-.65 1.01-.05.417-.03.84.06 1.25a9.502 9.502 0 0 0 1.25 4.06 3.703 3.703 0 0 0 2.51 1.61c1.04 5.85 9.32 13.76 9.32 13.76-25 1-25-15.96-25-32l3-6h10v-13h28c13.254.003 23.997 10.747 24 24Z",fill:"#2f2e41"})),pe||(pe=ge.createElement("path",{d:"m439.947 506.911-438.75.308a1.19 1.19 0 1 1-.013-2.382h.013l438.75-.307a1.19 1.19 0 0 1 0 2.381ZM732.947 506.911l-226.75.308a1.19 1.19 0 1 1-.012-2.382h.012l226.75-.307a1.19 1.19 0 0 1 .008 2.381h-.008Z",fill:"#cacaca"})),oe||(oe=ge.createElement("path",{d:"M449.974 148h-85.953c-7.465-.008-13.515-6.058-13.523-13.523V77.523c.008-7.465 6.058-13.515 13.523-13.523h85.953c7.466.008 13.515 6.058 13.524 13.523v56.954c-.009 7.465-6.058 13.515-13.524 13.523Zm-85.953-82c-6.361.007-11.516 5.162-11.523 11.523v56.954c.007 6.36 5.162 11.516 11.523 11.523h85.953c6.362-.007 11.517-5.162 11.524-11.523V77.523c-.007-6.36-5.162-11.516-11.524-11.523h-85.953Z",fill:"#e6e6e6"})),Me||(Me=ge.createElement("path",{fill:"#e6e6e6",d:"M366.498 82h22.991v2h-22.991zM366.498 90h51v2h-51zM366.498 97h51v2h-51zM366.498 104h65v2h-65zM366.498 111h34v2h-34zM366.498 118h62v2h-62zM366.498 125h11v2h-11z"})),Ze||(Ze=ge.createElement("path",{d:"M365.749 38.958a.373.373 0 0 1-.267-.112l-2.134-2.181a.374.374 0 0 1 0-.523l2.134-2.181a.374.374 0 0 1 .534.523l-1.878 1.92 1.878 1.919a.374.374 0 0 1-.267.635ZM369.334 38.958a.374.374 0 0 1-.267-.635l1.878-1.92-1.878-1.92a.374.374 0 1 1 .535-.522l2.133 2.18a.374.374 0 0 1 0 .524l-2.133 2.18a.373.373 0 0 1-.268.113ZM480.958 33.545h-3.968a.819.819 0 0 0-.819.819v3.971c0 .452.367.819.82.819h3.967a.822.822 0 0 0 .822-.819v-3.971a.822.822 0 0 0-.822-.82ZM471.235 33.545h-3.967a.819.819 0 0 0-.819.819v3.971c0 .452.366.819.819.819h3.967a.822.822 0 0 0 .823-.819v-3.971a.822.822 0 0 0-.823-.82ZM490.12 33.732h-3.968a.819.819 0 0 0-.82.819v3.971c0 .452.367.819.82.819h3.967a.822.822 0 0 0 .823-.819v-3.971a.822.822 0 0 0-.823-.82ZM430.319 35.243h-31.714a.998.998 0 1 0 0 1.996h31.714c.55 0 .998-.448.998-.998a1 1 0 0 0-.998-.998Z",fill:"#ccc"})))}},187:(e,t,c)=>{c.d(t,{Z:()=>N});var l,a,r,h,i,n,m,f,E,d,y,v,x,s,p,o,M,Z,g,u,w,b,z,H=c(7294);function V(){return V=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...N}=e;return H.createElement("svg",V({xmlns:"http://www.w3.org/2000/svg","data-name":"Layer 1",width:1139.171,height:654.543,viewBox:"0 0 1139.171 654.543","aria-labelledby":c},N),void 0===t?H.createElement("title",{id:c},"progressive_app"):t?H.createElement("title",{id:c},t):null,l||(l=H.createElement("circle",{cx:246.827,cy:521.765,r:59.243,fill:"#f2f2f2"})),a||(a=H.createElement("circle",{cx:256.46,cy:513.095,r:59.243,fill:"#cf00b8"})),r||(r=H.createElement("path",{fill:"#3f3d56",d:"M304.171 447.543h733v2h-733zM683.793 18.652h-260.17V13.29h-117.97v5.362H44.41a17.599 17.599 0 0 0-17.598 17.599v356.252A17.599 17.599 0 0 0 44.41 410.1h639.383a17.599 17.599 0 0 0 17.598-17.598V36.25a17.599 17.599 0 0 0-17.598-17.599Z"})),h||(h=H.createElement("path",{fill:"#cf00b8",d:"M50.406 49.754h627.391v353.913H50.406z"})),i||(i=H.createElement("circle",{cx:363.565,cy:33.667,r:6.435,fill:"#cf00b8"})),n||(n=H.createElement("path",{opacity:.1,d:"M498.374 403.667H50.406V49.754l447.968 353.913z"})),m||(m=H.createElement("circle",{cx:148.574,cy:316.876,r:60.307,fill:"#f2f2f2"})),f||(f=H.createElement("path",{fill:"#3f3d56",d:"M509.953 240.622h58.605v12.246h-58.605zM439.102 145.279h200.307v5.248H439.102zM439.102 161.898h200.307v5.248H439.102zM439.102 178.518h200.307v5.248H439.102zM439.102 195.137h200.307v5.248H439.102zM439.102 211.756h200.307v5.248H439.102z"})),E||(E=H.createElement("path",{fill:"#f2f2f2",d:"M614.917 56.934h24.492v24.492h-24.492z"})),d||(d=H.createElement("path",{d:"M650.78 92.797h-29.74v-29.74h29.74Zm-28.447-1.293h27.154V64.35h-27.154ZM719.007 397.232h-61.23v-4.412a.875.875 0 0 0-.874-.874H635.91a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.874.874v4.412h-13.121v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.874.874v4.412h-13.12v-4.412a.875.875 0 0 0-.876-.874h-20.992a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874H277.28a.875.875 0 0 0-.874.874v4.412h-13.12v-4.412a.875.875 0 0 0-.876-.874h-20.993a.875.875 0 0 0-.874.874v4.412h-13.12v-4.412a.875.875 0 0 0-.876-.874h-20.992a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874H133.83a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874H97.967a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874H62.104a.875.875 0 0 0-.875.874v4.412H20.993A20.993 20.993 0 0 0 0 418.225v9.492a20.993 20.993 0 0 0 20.993 20.993h698.014A20.993 20.993 0 0 0 740 427.717v-9.492a20.993 20.993 0 0 0-20.993-20.993ZM163.171 354.543a76 76 0 1 1 76-76 76.086 76.086 0 0 1-76 76Zm0-150a74 74 0 1 0 74 74 74.084 74.084 0 0 0-74-74ZM586.171 32.543h255v2h-255zM406.171 560.543h733v2h-733zM192.672 652.543h255v2h-255z",fill:"#3f3d56"})),y||(y=H.createElement("path",{fill:"#cf00b8",d:"M471 550h28v28h-28z"})),v||(v=H.createElement("path",{d:"M516 562h-34v-34h34Zm-32.522-1.478h31.044v-31.044h-31.044Z",fill:"#3f3d56"})),x||(x=H.createElement("path",{fill:"#cf00b8",d:"M796 22h28v28h-28z"})),s||(s=H.createElement("path",{d:"M841 34h-34V0h34Zm-32.522-1.478h31.044V1.478h-31.044Z",fill:"#3f3d56"})),p||(p=H.createElement("path",{fill:"#cf00b8",d:"M1078 550h28v28h-28z"})),o||(o=H.createElement("path",{d:"M1123 562h-34v-34h34Zm-32.522-1.478h31.044v-31.044h-31.044ZM1057.171 231.958h-2.378v-65.161a37.714 37.714 0 0 0-37.714-37.714H879.025a37.714 37.714 0 0 0-37.713 37.714v357.481a37.714 37.714 0 0 0 37.713 37.714h138.054a37.714 37.714 0 0 0 37.714-37.714V278.341h2.378Z",fill:"#3f3d56"})),M||(M=H.createElement("path",{d:"M1046.761 169.013v356.96a28.165 28.165 0 0 1-28.16 28.17h-138.72a28.165 28.165 0 0 1-28.16-28.17v-356.96a28.163 28.163 0 0 1 28.16-28.16h16.83a13.38 13.38 0 0 0 12.39 18.43h79.09a13.38 13.38 0 0 0 12.39-18.43h18.02a28.163 28.163 0 0 1 28.16 28.16Z",fill:"#cf00b8"})),Z||(Z=H.createElement("path",{fill:"#3f3d56",d:"M928.58 376.218h41.324v12.246H928.58zM878.621 280.875h141.24v5.248h-141.24zM878.621 297.494h141.24v5.248h-141.24zM878.621 314.114h141.24v5.248h-141.24zM878.621 330.733h141.24v5.248h-141.24zM878.621 347.352h141.24v5.248h-141.24z"})),g||(g=H.createElement("path",{fill:"#f2f2f2",d:"M929.684 211.179h24.492v24.492h-24.492z"})),u||(u=H.createElement("path",{d:"M939.06 217.303v29.74h29.74v-29.74Zm28.45 28.45h-27.16v-27.16h27.16Z",fill:"#3f3d56"})),w||(w=H.createElement("path",{d:"M1046.761 487.853v38.12a28.165 28.165 0 0 1-28.16 28.17h-138.72a28.165 28.165 0 0 1-28.16-28.17v-192.21l116.87 92.33 2 1.58 21.74 17.17 2.03 1.61Z",opacity:.1})),b||(b=H.createElement("circle",{cx:937.241,cy:498.707,r:43.868,fill:"#f2f2f2"})),z||(z=H.createElement("path",{d:"M320.171 654.543a87 87 0 1 1 87-87 87.099 87.099 0 0 1-87 87Zm0-172a85 85 0 1 0 85 85 85.096 85.096 0 0 0-85-85ZM950.171 532.543a55 55 0 1 1 55-55 55.062 55.062 0 0 1-55 55Zm0-108a53 53 0 1 0 53 53 53.06 53.06 0 0 0-53-53Z",fill:"#3f3d56"})))}},4145:(e,t,c)=>{c.d(t,{Z:()=>u});var l,a,r,h,i,n,m,f,E,d,y,v,x,s,p,o,M,Z=c(7294);function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...u}=e;return Z.createElement("svg",g({xmlns:"http://www.w3.org/2000/svg","data-name":"Layer 1",width:980,height:489.48,viewBox:"0 0 980 489.48","aria-labelledby":c},u),t?Z.createElement("title",{id:c},t):null,l||(l=Z.createElement("path",{d:"M207.06 0a205.979 205.979 0 0 0-77.685 15.067c-.993.407-1.99.816-2.988 1.235A206.78 206.78 0 0 0 0 207.06V433a9.01 9.01 0 0 0 9 9l.179.016c173.467 31.502 342.106 47.465 501.372 47.465q3.581 0 7.156-.011c156.555-.477 308.994-16.44 453.083-47.447L971 442a9.01 9.01 0 0 0 9-9V9a9.01 9.01 0 0 0-9-9Z",fill:"#cf00b8"})),a||(a=Z.createElement("path",{"data-name":"Path 40",d:"M745.8 180.193a5.947 5.947 0 0 0 0 11.892h149.085a5.947 5.947 0 1 0 .195-11.892q-.097-.002-.195 0Z",fill:"#3f3d56"})),r||(r=Z.createElement("path",{d:"M928.694 178.537a1.17 1.17 0 0 0 0 1.655l5.023 5.023h-12.386a1.17 1.17 0 1 0 0 2.34h12.386l-5.023 5.023a1.17 1.17 0 1 0 1.655 1.654l7.02-7.02a1.17 1.17 0 0 0 0-1.655l-7.02-7.02a1.17 1.17 0 0 0-1.655 0ZM711.927 178.537a1.17 1.17 0 0 1 0 1.655l-5.022 5.023h12.385a1.17 1.17 0 1 1 0 2.34h-12.385l5.022 5.023a1.17 1.17 0 0 1-1.654 1.654l-7.02-7.02a1.17 1.17 0 0 1 0-1.655l7.02-7.02a1.17 1.17 0 0 1 1.654 0Z",fill:"#fff"})),h||(h=Z.createElement("g",{opacity:.4,fill:"#fff"},Z.createElement("circle",{cx:751.82,cy:50.39,r:6.39}),Z.createElement("circle",{cx:778.445,cy:50.39,r:6.39}),Z.createElement("circle",{cx:805.069,cy:50.39,r:6.39}),Z.createElement("circle",{cx:831.694,cy:50.39,r:6.39}),Z.createElement("circle",{cx:858.318,cy:50.39,r:6.39}),Z.createElement("circle",{cx:884.943,cy:50.39,r:6.39}),Z.createElement("circle",{cx:911.567,cy:50.39,r:6.39}),Z.createElement("circle",{cx:751.82,cy:70.625,r:6.39}),Z.createElement("circle",{cx:778.445,cy:70.625,r:6.39}),Z.createElement("circle",{cx:805.069,cy:70.625,r:6.39}),Z.createElement("circle",{cx:831.694,cy:70.625,r:6.39}),Z.createElement("circle",{cx:858.318,cy:70.625,r:6.39}),Z.createElement("circle",{cx:884.943,cy:70.625,r:6.39}),Z.createElement("circle",{cx:911.567,cy:70.625,r:6.39}),Z.createElement("circle",{cx:751.82,cy:90.859,r:6.39}),Z.createElement("circle",{cx:778.445,cy:90.859,r:6.39}),Z.createElement("circle",{cx:805.069,cy:90.859,r:6.39}),Z.createElement("circle",{cx:831.694,cy:90.859,r:6.39}),Z.createElement("circle",{cx:858.318,cy:90.859,r:6.39}),Z.createElement("circle",{cx:884.943,cy:90.859,r:6.39}),Z.createElement("circle",{cx:911.567,cy:90.859,r:6.39}),Z.createElement("circle",{cx:751.82,cy:111.094,r:6.39}),Z.createElement("circle",{cx:778.445,cy:111.094,r:6.39}),Z.createElement("circle",{cx:751.82,cy:131.329,r:6.39}),Z.createElement("circle",{cx:778.445,cy:131.329,r:6.39}),Z.createElement("circle",{cx:805.069,cy:131.329,r:6.39}),Z.createElement("circle",{cx:805.069,cy:111.094,r:6.39}),Z.createElement("circle",{cx:831.694,cy:111.094,r:6.39}),Z.createElement("circle",{cx:858.318,cy:111.094,r:6.39}),Z.createElement("circle",{cx:884.943,cy:111.094,r:6.39}),Z.createElement("circle",{cx:911.567,cy:111.094,r:6.39}))),i||(i=Z.createElement("path",{d:"M660.157 375.459a35.272 35.272 0 1 1 35.273-35.272 35.313 35.313 0 0 1-35.273 35.272Zm0-68.545a33.272 33.272 0 1 0 33.273 33.273 33.31 33.31 0 0 0-33.273-33.273Z",fill:"#3f3d56"})),n||(n=Z.createElement("path",{d:"M673.68 336.806h-10.142v-10.143a3.38 3.38 0 0 0-6.761 0v10.143h-10.143a3.38 3.38 0 0 0 0 6.761h10.143v10.143a3.38 3.38 0 0 0 6.761 0v-10.143h10.143a3.38 3.38 0 1 0 0-6.761Z",fill:"#fff"})),m||(m=Z.createElement("g",{opacity:.4,fill:"#fff"},Z.createElement("circle",{cx:54.024,cy:374.766,r:5.024}),Z.createElement("circle",{cx:54.024,cy:353.833,r:5.024}),Z.createElement("circle",{cx:54.024,cy:332.9,r:5.024}),Z.createElement("circle",{cx:54.024,cy:311.967,r:5.024}),Z.createElement("circle",{cx:54.024,cy:291.034,r:5.024}),Z.createElement("circle",{cx:54.024,cy:270.101,r:5.024}),Z.createElement("circle",{cx:54.024,cy:249.168,r:5.024}),Z.createElement("circle",{cx:69.933,cy:374.766,r:5.024}),Z.createElement("circle",{cx:69.933,cy:353.833,r:5.024}),Z.createElement("circle",{cx:69.933,cy:332.9,r:5.024}),Z.createElement("circle",{cx:69.933,cy:311.967,r:5.024}),Z.createElement("circle",{cx:69.933,cy:291.034,r:5.024}),Z.createElement("circle",{cx:69.933,cy:270.101,r:5.024}),Z.createElement("circle",{cx:69.933,cy:249.168,r:5.024}),Z.createElement("circle",{cx:85.842,cy:374.766,r:5.024}),Z.createElement("circle",{cx:85.842,cy:353.833,r:5.024}),Z.createElement("circle",{cx:85.842,cy:332.9,r:5.024}),Z.createElement("circle",{cx:85.842,cy:311.967,r:5.024}),Z.createElement("circle",{cx:85.842,cy:291.034,r:5.024}),Z.createElement("circle",{cx:85.842,cy:270.101,r:5.024}),Z.createElement("circle",{cx:85.842,cy:249.168,r:5.024}),Z.createElement("circle",{cx:101.751,cy:374.766,r:5.024}),Z.createElement("circle",{cx:101.751,cy:353.833,r:5.024}),Z.createElement("circle",{cx:117.66,cy:374.766,r:5.024}),Z.createElement("circle",{cx:117.66,cy:353.833,r:5.024}),Z.createElement("circle",{cx:117.66,cy:332.9,r:5.024}),Z.createElement("circle",{cx:101.751,cy:332.9,r:5.024}),Z.createElement("circle",{cx:101.751,cy:311.967,r:5.024}),Z.createElement("circle",{cx:101.751,cy:291.034,r:5.024}),Z.createElement("circle",{cx:101.751,cy:270.101,r:5.024}),Z.createElement("circle",{cx:101.751,cy:249.168,r:5.024}))),f||(f=Z.createElement("path",{d:"M497.408 33.002H163.666a6.189 6.189 0 0 0-6.182 6.183v285.383a6.189 6.189 0 0 0 6.182 6.182h333.742a6.189 6.189 0 0 0 6.183-6.182V39.185a6.189 6.189 0 0 0-6.183-6.183Zm3.705 291.566a3.718 3.718 0 0 1-3.705 3.716H163.666a3.71 3.71 0 0 1-3.704-3.716V39.185a3.71 3.71 0 0 1 3.704-3.717h333.742a3.718 3.718 0 0 1 3.705 3.717Z",fill:"#3f3d56"})),E||(E=Z.createElement("path",{d:"M240.702 280.006c0 .44-.011.88-.034 1.309a25.175 25.175 0 0 1-50.281 0 24.33 24.33 0 0 1-.035-1.309 25.175 25.175 0 1 1 50.35 0Z",fill:"#fff"})),d||(d=Z.createElement("path",{d:"M471.475 263.22H273.663a4.197 4.197 0 0 0 0 8.393h197.812a4.197 4.197 0 0 0 0-8.394Z",fill:"#3f3d56"})),y||(y=Z.createElement("path",{d:"M358.78 288.4h-85.117a4.191 4.191 0 0 0 0 8.382h85.117a4.191 4.191 0 1 0 0-8.382ZM576.698 233.581h-333.74a8.559 8.559 0 0 1-8.549-8.55V78.57a8.559 8.559 0 0 1 8.549-8.549h333.74a8.559 8.559 0 0 1 8.55 8.55V225.03a8.559 8.559 0 0 1-8.55 8.55ZM242.958 73.02a5.555 5.555 0 0 0-5.549 5.55V225.03a5.556 5.556 0 0 0 5.549 5.55h333.74a5.556 5.556 0 0 0 5.55-5.55V78.57a5.555 5.555 0 0 0-5.55-5.549Z",fill:"#fff"})),v||(v=Z.createElement("path",{d:"M310.924 123.44a4.196 4.196 0 1 0 0 8.391h197.808a4.196 4.196 0 1 0 0-8.392ZM310.924 147.752a4.196 4.196 0 0 0 0 8.392h197.808a4.196 4.196 0 0 0 0-8.392ZM310.924 171.77a4.196 4.196 0 0 0 0 8.392h85.117a4.196 4.196 0 0 0 0-8.392ZM631.724 295.633l-33.52-47.307 10.85 2.26a1.501 1.501 0 1 0 .613-2.939l-16.17-3.366-2.183 16.37a1.501 1.501 0 1 0 2.976.397l1.463-10.993 33.523 47.312a1.5 1.5 0 1 0 2.448-1.734Z",fill:"#fff"})),x||(x=Z.createElement("path",{d:"M449.666 433.32H211.409a4.417 4.417 0 0 1-4.412-4.412v-59.101a4.417 4.417 0 0 1 4.412-4.412h238.257a4.417 4.417 0 0 1 4.412 4.412v59.101a4.417 4.417 0 0 1-4.412 4.413Zm-238.257-66.16a2.65 2.65 0 0 0-2.647 2.647v59.101a2.65 2.65 0 0 0 2.647 2.648h238.257a2.65 2.65 0 0 0 2.647-2.648v-59.101a2.65 2.65 0 0 0-2.647-2.647Z",fill:"#3f3d56"})),s||(s=Z.createElement("circle",{cx:248.429,cy:397.09,r:17.973,fill:"#fff"})),p||(p=Z.createElement("path",{d:"M289.938 385.108a2.995 2.995 0 1 0 0 5.991h141.215a2.995 2.995 0 1 0 0-5.99ZM289.938 403.08a2.995 2.995 0 1 0 0 5.992h60.765a2.995 2.995 0 1 0 0-5.991Z",fill:"#fff"})),o||(o=Z.createElement("path",{d:"M764.024 222.756h105.893a4.417 4.417 0 0 1 4.412 4.412V337.45a4.417 4.417 0 0 1-4.412 4.413H764.024a4.417 4.417 0 0 1-4.412-4.413V227.168a4.417 4.417 0 0 1 4.413-4.412Zm105.893 117.342a2.65 2.65 0 0 0 2.647-2.648V227.168a2.65 2.65 0 0 0-2.647-2.647H764.024a2.65 2.65 0 0 0-2.647 2.647V337.45a2.65 2.65 0 0 0 2.648 2.648Z",fill:"#3f3d56"})),M||(M=Z.createElement("path",{d:"M847.353 319.12a2.995 2.995 0 0 0 0-5.99h-60.765a2.995 2.995 0 0 0 0 5.99ZM847.353 301.472a2.995 2.995 0 1 0 0-5.991h-60.765a2.995 2.995 0 1 0 0 5.99ZM816.97 245.498a18.855 18.855 0 1 1-18.855 18.855 18.876 18.876 0 0 1 18.855-18.855Z",fill:"#fff"})))}},8391:(e,t,c)=>{c.r(t),c.d(t,{default:()=>x});var l=c(7294),a=c(6010),r=c(7003),h=c(9960),i=c(2263);const n={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};var m=c(7462);const f={features:"features_t9lD",featureSvg:"featureSvg_GfXr"},E=[{title:"Easy to Use",Svg:c(577).Z,description:l.createElement(l.Fragment,null,"Credo was designed with the mindset that building self-sovereign identity solutions should be easy and straightforward.")},{title:"Multi-platform",Svg:c(187).Z,description:l.createElement(l.Fragment,null,"With support for Node.js and React Native, Credo allows you to reuse the same code base in different environments. There is no need to implement the same functionality multiple times.")},{title:"Based on the latest standards",Svg:c(4145).Z,description:l.createElement(l.Fragment,null,"By keeping up with the latest standards, we ensure Credo is secure and interoperable.")}];function d(e){let{title:t,Svg:c,description:r}=e;return l.createElement("div",{className:(0,a.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(c,{className:f.featureSvg,role:"img"})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,r)))}function y(){return l.createElement("section",{className:f.features},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},E.map(((e,t)=>l.createElement(d,(0,m.Z)({key:t},e)))))))}function v(){const{siteConfig:e}=(0,i.Z)();return l.createElement("header",{className:(0,a.Z)("hero hero--primary",n.heroBanner)+" custom-banner-bg"},l.createElement("div",{className:"container"},l.createElement("h1",{className:"hero__title"},e.title),l.createElement("p",{className:"hero__subtitle"},e.tagline),l.createElement("div",{className:n.buttons},l.createElement(h.Z,{className:"button button--secondary button--lg",to:"/guides/0.4/getting-started"},"Get Started \ud83d\ude80"))))}function x(){const{siteConfig:e}=(0,i.Z)();return l.createElement(r.Z,{title:e.title,description:"Credo Docs"},l.createElement(v,null),l.createElement("main",null,l.createElement(y,null)))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkcredo_ts_docs=self.webpackChunkcredo_ts_docs||[]).push([[3237],{577:(e,t,c)=>{c.d(t,{Z:()=>we});var l,a,r,h,i,n,m,f,E,d,y,v,x,s,p,o,M,Z,g,u,w,b,z,H,V,N,_,O,j,C,B,S,k,A,F,L,P,q,I,D,G,R,T,U,W,X,J,K,Q,Y,$,ee,te,ce,le,ae,re,he,ie,ne,me,fe,Ee,de,ye,ve,xe,se,pe,oe,Me,Ze,ge=c(7294);function ue(){return ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...we}=e;return ge.createElement("svg",ue({xmlns:"http://www.w3.org/2000/svg",width:802.611,height:507.219,viewBox:"0 0 802.611 507.219","aria-labelledby":c},we),t?ge.createElement("title",{id:c},t):null,l||(l=ge.createElement("path",{d:"m706.756 463.87.782-17.577a56.765 56.765 0 0 1 26.477-6.702c-12.717 10.397-11.127 30.438-19.749 44.42a34.144 34.144 0 0 1-25.038 15.778l-10.642 6.515a57.215 57.215 0 0 1 12.06-46.363 55.27 55.27 0 0 1 10.156-9.438c2.549 6.72 5.954 13.366 5.954 13.366ZM168.805 444.61l-25.68-7.776a86.572 86.572 0 0 1 .067-41.654c10.575 22.71 40.792 27.909 58.207 45.916a52.073 52.073 0 0 1 13.888 42.946l5.62 18.181a87.259 87.259 0 0 1-63.976-35.284 84.289 84.289 0 0 1-10.122-18.566c10.892-1.235 21.996-3.764 21.996-3.764Z",fill:"#f2f2f2"})),a||(a=ge.createElement("path",{d:"M617.773 503.43a2.038 2.038 0 0 1-.59 1.42 1.988 1.988 0 0 1-1.41.58h-8.04a1.993 1.993 0 0 1-2-1.986V260.29c0-5.36-1.8-9.71-4.01-9.72h-500.49c-2.22.01-4.01 4.36-4.02 9.72v241.65a2.006 2.006 0 0 1-1.81 1.99c-1.62.16-3.24.3-4.85.43-.04 0-.08.01-.12.01-.88.08-1.76.14-2.64.21h-.01c-.46-.83-.9-1.68-1.35-2.53a2.088 2.088 0 0 1-.22-.93V247.68c0-1.48.06-2.97.16-4.44.142-2.018.393-4.028.75-6.02 1.69-9.29 5.51-15.58 9.85-15.6h509c.633.004 1.26.137 1.84.39a7.174 7.174 0 0 1 2.27 1.59 14.071 14.071 0 0 1 2.23 3.05c2.14 3.77 3.67 9.39 4.21 15.93 0 .06.01.12.01.18.14 1.62.21 3.27.2 4.92l.14 21.43.09 12.78.27 40.1.1 14.24.44 167.2Z",fill:"#e6e6e6"})),r||(r=ge.createElement("path",{d:"M432.024 147.486h-51.006a2.721 2.721 0 0 0-2.717 2.725v80.574h56.447V150.21a2.723 2.723 0 0 0-2.722-2.725h-.002Zm-25.332 45.782a6.051 6.051 0 0 1-6.023-6.023v-9.294a6.023 6.023 0 1 1 12.046 0v9.294a6.051 6.051 0 0 1-6.023 6.023Z",fill:"#ccc"})),h||(h=ge.createElement("path",{d:"M378.126 228.207v7.774a1.523 1.523 0 0 0 1.52 1.52h53.757a1.527 1.527 0 0 0 1.52-1.52v-7.774h-56.797Z",fill:"#3f3d56"})),i||(i=ge.createElement("path",{d:"M516.484 21.742H298.455a7.078 7.078 0 0 0-7.066 7.066v147.127a7.073 7.073 0 0 0 7.066 7.067h218.03a7.073 7.073 0 0 0 7.066-7.067V28.808a7.078 7.078 0 0 0-7.067-7.066Z",fill:"#e6e6e6"})),n||(n=ge.createElement("path",{d:"M514.664 26.846H300.277a3.787 3.787 0 0 0-3.78 3.787v143.48a3.786 3.786 0 0 0 3.78 3.78h214.387a3.786 3.786 0 0 0 3.78-3.78V30.633a3.787 3.787 0 0 0-3.78-3.787Z",fill:"#fff"})),m||(m=ge.createElement("path",{d:"M472.905 240.206H345.356a2.346 2.346 0 0 1-2.296-2.83l1.98-9.4a2.356 2.356 0 0 1 2.295-1.862h123.592a2.356 2.356 0 0 1 2.295 1.863l1.98 9.4a2.346 2.346 0 0 1-2.297 2.829Z",fill:"#ccc"})),f||(f=ge.createElement("rect",{x:348.241,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),E||(E=ge.createElement("rect",{x:356.098,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),d||(d=ge.createElement("rect",{x:363.954,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),y||(y=ge.createElement("rect",{x:371.811,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),v||(v=ge.createElement("rect",{x:379.668,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),x||(x=ge.createElement("rect",{x:387.525,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),s||(s=ge.createElement("rect",{x:395.382,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),p||(p=ge.createElement("rect",{x:403.238,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),o||(o=ge.createElement("rect",{x:411.095,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),M||(M=ge.createElement("rect",{x:418.952,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),Z||(Z=ge.createElement("rect",{x:426.809,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),g||(g=ge.createElement("rect",{x:434.665,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),u||(u=ge.createElement("rect",{x:442.522,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),w||(w=ge.createElement("rect",{x:450.379,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),b||(b=ge.createElement("rect",{x:458.236,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),z||(z=ge.createElement("rect",{x:466.092,y:227.806,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),H||(H=ge.createElement("rect",{x:348.148,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),V||(V=ge.createElement("rect",{x:356.005,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),N||(N=ge.createElement("rect",{x:363.862,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),_||(_=ge.createElement("rect",{x:371.718,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),O||(O=ge.createElement("rect",{x:379.575,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),j||(j=ge.createElement("rect",{x:387.432,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),C||(C=ge.createElement("rect",{x:395.289,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),B||(B=ge.createElement("rect",{x:403.145,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),S||(S=ge.createElement("rect",{x:411.002,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),k||(k=ge.createElement("rect",{x:418.859,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),A||(A=ge.createElement("rect",{x:426.716,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),F||(F=ge.createElement("rect",{x:434.572,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),L||(L=ge.createElement("rect",{x:442.429,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),P||(P=ge.createElement("rect",{x:450.286,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),q||(q=ge.createElement("rect",{x:458.143,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),I||(I=ge.createElement("rect",{x:466,y:231.735,width:3.928,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),D||(D=ge.createElement("rect",{x:385.861,y:236.449,width:31.427,height:2.357,rx:.488,ry:.488,fill:"#e6e6e6"})),G||(G=ge.createElement("path",{d:"M503.887 46.614H303.286a.798.798 0 0 1 0-1.595h200.601a.798.798 0 0 1 0 1.595Z",fill:"#cacaca"})),R||(R=ge.createElement("ellipse",{cx:316.941,cy:36.166,rx:4.675,ry:4.779,fill:"#ccc"})),T||(T=ge.createElement("ellipse",{cx:333.092,cy:36.166,rx:4.675,ry:4.779,fill:"#ccc"})),U||(U=ge.createElement("ellipse",{cx:349.242,cy:36.166,rx:4.675,ry:4.779,fill:"#ccc"})),W||(W=ge.createElement("path",{fill:"#3f3d56",d:"m403.381 58.71-.648-1.893 82.858-43.052.647 1.893-82.857 43.052zM653.381 138.452l-.648-1.893 49.858-42.834.647 1.892-49.857 42.835zM557.591 148.423l-82.858-43.052.648-1.893 82.857 43.052-.647 1.893zM600.006 118.465l-48.575-79.746 1.535-1.283 48.574 79.746-1.534 1.283zM637.914 14.554l-47.307-.218v-2l47.307.218v2z"})),X||(X=ge.createElement("path",{d:"M723.611 26.96h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13ZM789.611 102.96h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13Z",fill:"#cf00b8"})),J||(J=ge.createElement("path",{fill:"#3f3d56",d:"m703.914 156.553-47.307-.217v-2l47.307.217v2z"})),K||(K=ge.createElement("path",{d:"M789.611 168.96h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13ZM634.611 160h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13ZM562.611 26h-53c-7.18 0-13-5.82-13-13s5.82-13 13-13h53c7.18 0 13 5.82 13 13s-5.82 13-13 13Z",fill:"#cf00b8"})),Q||(Q=ge.createElement("path",{d:"M309.283 249.18h-60a8 8 0 0 0 0 16h22v62h16v-62h22a8 8 0 0 0 0-16Z",fill:"#3f3d56"})),Y||(Y=ge.createElement("path",{d:"M348.884 361.517H188.4c-32.159-.117-59.367-23.8-63.917-55.636l-5.68-20.895a469.078 469.078 0 0 0-53.182-122.903c-10.747-17.454-16.279-34.35-3.714-50.616l.315-.41C72.3 97.942 122.458 95.103 138.81 94.55a56.664 56.664 0 0 1 1.945-.033h99.819c.651 0 1.3.011 1.945.033a48.847 48.847 0 0 1 42.236 26.92 50.331 50.331 0 0 1-2.856 51.53c-35.064 52.671-45.799 85.698-34.808 107.086 10.631 20.687 43.22 31.264 102.558 33.285 15.947.543 23.265 12.96 23.316 24.266.05 11.015-6.986 23.176-22.552 23.848a36.01 36.01 0 0 1-1.528.032Z",fill:"#3f3d56"})),$||($=ge.createElement("path",{d:"M215.663 504.017h60a8 8 0 0 0 0-16h-22v-135h-16v135h-22a8 8 0 0 0 0 16Z",fill:"#3f3d56"})),ee||(ee=ge.createElement("path",{fill:"#a0616a",d:"m269.97 449.592 10.335 5.614 27.362-37.831-15.256-8.287-22.442 40.504z"})),te||(te=ge.createElement("path",{d:"m274.944 436.111 18.764 5.876-2.986 7.86 12.867 18.675a5.253 5.253 0 0 1-6.191 7.891l-21.844-8.299-.811-9.206-4.424 7.217-8.236-3.129 12.861-26.885Z",fill:"#2f2e41"})),ce||(ce=ge.createElement("path",{d:"M296.084 68.076c.926 6.347-3.469 12.243-9.816 13.169-.677.098-1.36.137-2.044.116l-39.852 84.795-12.499-17.43 41.024-80.181c.63-6.418 6.345-11.11 12.763-10.48 5.37.527 9.68 4.666 10.424 10.01Z",fill:"#a0616a"})),le||(le=ge.createElement("path",{d:"M163.835 183.3s-1.068 14.814 15.685 17.72 61.539-25.415 68.894-29.764 21.062-59.06 21.062-59.06l-11.92-20.162c-14.718 18.617-26.275 35.784-26.977 47.97L163.835 183.3Z",fill:"#cf00b8"})),ae||(ae=ge.createElement("path",{d:"m183.175 234.327 3.619 15.546s.035 14.335 2.574 16.978c2.52 2.631 57.955-2.651 57.955-2.651s-5.877-23.1-5.799-40.578l-58.349 10.705Z",fill:"#a0616a"})),re||(re=ge.createElement("path",{d:"m300.283 433.18-20-11c-.38-26.025 15.273-61.243 33.84-98.132-41.524 7.141-80.697 9.429-114.58.79-11.574-3.057-18.55-14.84-15.663-26.458.132-.548.285-1.09.458-1.627 4.055-12.372-5.038-20.128 3.325-33.736 21.997-7.512 42.892-9.634 62-3l11.973 26.471 59.342-7.679c12-1.434 22.89 7.13 24.325 19.13l.019.164c.08.644.132 1.29.156 1.94-11.999 56.253-25.453 106.869-45.195 133.137Z",fill:"#2f2e41"})),he||(he=ge.createElement("path",{d:"m175.12 135.904 22.861-1.35a4.641 4.641 0 0 1 4.564 2.864l6.46 15.661 26.85 22.192s10.631 13.528 10.656 31 3.772 57.91 3.772 57.91-15.515-21.84-25.092-16.031c-1.629.988-2.202 3.009-3.908 4.03-.852.51-2.818.014-3.678.525-13.196 7.833-26.958 15.486-28.243 14.144-2.525-2.634-5.588-16.097-5.588-16.097l-20.926-76.887a28.477 28.477 0 0 1 4.05-23.962c1.461-2.059 2.993-3.59 4.417-3.843 3.196-.68 1.496-7.844 3.805-10.156Z",fill:"#cf00b8"})),ie||(ie=ge.createElement("path",{fill:"#a0616a",d:"m369.59 482.16 9.65-6.709-21.862-41.244-14.242 9.902 26.453 38.051z"})),ne||(ne=ge.createElement("path",{d:"m371.048 454.486-15.124 13.519c-24.048-26.796-42.227-64.376-57.633-107.053-40.366-11.822-70.807-30.888-97.382-53.527-9.015-7.628-15.774-17.428-8.085-26.72.36-.435.735-.855 1.126-1.261 9.079-9.33 32.1-7.552 45.585-16.1l30.121 32.197-1.894 8.631 56.577 19.165c11.39 3.992 17.386 16.46 13.395 27.85l-.06.167c-.212.614-.45 1.218-.713 1.812l34.087 101.32ZM363.963 479.44l15.447-12.165 4.8 6.905 22.678-.069a5.253 5.253 0 0 1 3.015 9.566l-19.187 13.338-8.055-4.531 3.456 7.727-7.234 5.03-14.92-25.8Z",fill:"#2f2e41"})),me||(me=ge.createElement("path",{d:"M208.878 329.673c-5.904-2.506-8.66-9.325-6.153-15.23.267-.629.59-1.233.963-1.806l-51.754-78.102 21.386-1.626 47.202 76.707c5.157 3.873 6.198 11.193 2.326 16.35a11.677 11.677 0 0 1-13.97 3.707Z",fill:"#a0616a"})),fe||(fe=ge.createElement("path",{d:"M179.121 156.81s-12.103-8.607-23.288 4.199-10.252 65.787-10.357 74.33c-.033 2.676 3.83 8.449 9.153 15.117 2.39 2.994 5.073 6.168 7.83 9.323 1.596 1.826.221 5.627 1.824 7.401 1.593 1.765 6.164 1.505 7.68 3.143A648.21 648.21 0 0 0 185 284.017l23.42.288c.265-17.41-11.658-32.95-26.975-47.97l-2.325-79.524Z",fill:"#cf00b8"})),Ee||(Ee=ge.createElement("path",{d:"M155.514 81.008c-2.217 1.6-4.55 3.249-7.255 3.646s-5.874-.912-6.622-3.542c-.916-3.216 1.988-6.144 4.598-8.233l8.276-6.628a20.01 20.01 0 0 1 5.074-3.28 6.762 6.762 0 0 1 5.854.196 6.287 6.287 0 0 1 2.763 5.473 11.687 11.687 0 0 1-2.05 5.996 21.089 21.089 0 0 1-13.69 9.307",fill:"#2f2e41"})),de||(de=ge.createElement("path",{d:"M218.283 253.18h-60a8 8 0 0 0 0 16h22v62h16v-62h22a8 8 0 0 0 0-16Z",fill:"#3f3d56"})),ye||(ye=ge.createElement("path",{d:"M159.19 64.224c.242-5.999-6.15-10.748-12.14-10.373s-11.138 4.589-14.534 9.538c-3.396 4.945-5.436 10.673-8.11 16.042s-6.238 10.627-11.554 13.41c-5.315 2.777-12.713 2.282-16.386-2.462a13.208 13.208 0 0 0-1.357 11.865 18.088 18.088 0 0 0 7.938 9.211 20.797 20.797 0 0 0 4.596 2.021 18.715 18.715 0 0 1 2.766-4.975 15.45 15.45 0 0 0-.595 5.507c2.478.475 5.028.435 7.49-.118a15.945 15.945 0 0 0 11.062-9.021c2.246-5.318 1.102-11.381 1.583-17.133.476-5.754 3.943-12.322 9.716-12.415 4.396-.073 3.814.29 6.6 3.691",fill:"#2f2e41"})),ve||(ve=ge.createElement("path",{d:"M199.111 95.742c0 14.36-11.64 26-26 26s-28-16.64-28-31 13.64-21 28-21 26 11.64 26 26Z",fill:"#2f2e41"})),xe||(xe=ge.createElement("circle",{cx:180.951,cy:102.598,r:24.805,transform:"rotate(-11.564 180.951 102.598)",fill:"#a0616a"})),se||(se=ge.createElement("path",{d:"M212.111 98.742c-7.343 2.005-14.757 4.107-17.62 0a22.578 22.578 0 0 0-3.11-7.66 31.014 31.014 0 0 1-1.83 7.66c-9.277 2.016-17.947 2.498-25.44 0a14.204 14.204 0 0 0-1.75 6.06 8.55 8.55 0 0 0-1.16-.61 1.919 1.919 0 0 0-1.58-.14c-.36.218-.6.59-.65 1.01-.05.417-.03.84.06 1.25a9.502 9.502 0 0 0 1.25 4.06 3.703 3.703 0 0 0 2.51 1.61c1.04 5.85 9.32 13.76 9.32 13.76-25 1-25-15.96-25-32l3-6h10v-13h28c13.254.003 23.997 10.747 24 24Z",fill:"#2f2e41"})),pe||(pe=ge.createElement("path",{d:"m439.947 506.911-438.75.308a1.19 1.19 0 1 1-.013-2.382h.013l438.75-.307a1.19 1.19 0 0 1 0 2.381ZM732.947 506.911l-226.75.308a1.19 1.19 0 1 1-.012-2.382h.012l226.75-.307a1.19 1.19 0 0 1 .008 2.381h-.008Z",fill:"#cacaca"})),oe||(oe=ge.createElement("path",{d:"M449.974 148h-85.953c-7.465-.008-13.515-6.058-13.523-13.523V77.523c.008-7.465 6.058-13.515 13.523-13.523h85.953c7.466.008 13.515 6.058 13.524 13.523v56.954c-.009 7.465-6.058 13.515-13.524 13.523Zm-85.953-82c-6.361.007-11.516 5.162-11.523 11.523v56.954c.007 6.36 5.162 11.516 11.523 11.523h85.953c6.362-.007 11.517-5.162 11.524-11.523V77.523c-.007-6.36-5.162-11.516-11.524-11.523h-85.953Z",fill:"#e6e6e6"})),Me||(Me=ge.createElement("path",{fill:"#e6e6e6",d:"M366.498 82h22.991v2h-22.991zM366.498 90h51v2h-51zM366.498 97h51v2h-51zM366.498 104h65v2h-65zM366.498 111h34v2h-34zM366.498 118h62v2h-62zM366.498 125h11v2h-11z"})),Ze||(Ze=ge.createElement("path",{d:"M365.749 38.958a.373.373 0 0 1-.267-.112l-2.134-2.181a.374.374 0 0 1 0-.523l2.134-2.181a.374.374 0 0 1 .534.523l-1.878 1.92 1.878 1.919a.374.374 0 0 1-.267.635ZM369.334 38.958a.374.374 0 0 1-.267-.635l1.878-1.92-1.878-1.92a.374.374 0 1 1 .535-.522l2.133 2.18a.374.374 0 0 1 0 .524l-2.133 2.18a.373.373 0 0 1-.268.113ZM480.958 33.545h-3.968a.819.819 0 0 0-.819.819v3.971c0 .452.367.819.82.819h3.967a.822.822 0 0 0 .822-.819v-3.971a.822.822 0 0 0-.822-.82ZM471.235 33.545h-3.967a.819.819 0 0 0-.819.819v3.971c0 .452.366.819.819.819h3.967a.822.822 0 0 0 .823-.819v-3.971a.822.822 0 0 0-.823-.82ZM490.12 33.732h-3.968a.819.819 0 0 0-.82.819v3.971c0 .452.367.819.82.819h3.967a.822.822 0 0 0 .823-.819v-3.971a.822.822 0 0 0-.823-.82ZM430.319 35.243h-31.714a.998.998 0 1 0 0 1.996h31.714c.55 0 .998-.448.998-.998a1 1 0 0 0-.998-.998Z",fill:"#ccc"})))}},187:(e,t,c)=>{c.d(t,{Z:()=>N});var l,a,r,h,i,n,m,f,E,d,y,v,x,s,p,o,M,Z,g,u,w,b,z,H=c(7294);function V(){return V=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...N}=e;return H.createElement("svg",V({xmlns:"http://www.w3.org/2000/svg","data-name":"Layer 1",width:1139.171,height:654.543,viewBox:"0 0 1139.171 654.543","aria-labelledby":c},N),void 0===t?H.createElement("title",{id:c},"progressive_app"):t?H.createElement("title",{id:c},t):null,l||(l=H.createElement("circle",{cx:246.827,cy:521.765,r:59.243,fill:"#f2f2f2"})),a||(a=H.createElement("circle",{cx:256.46,cy:513.095,r:59.243,fill:"#cf00b8"})),r||(r=H.createElement("path",{fill:"#3f3d56",d:"M304.171 447.543h733v2h-733zM683.793 18.652h-260.17V13.29h-117.97v5.362H44.41a17.599 17.599 0 0 0-17.598 17.599v356.252A17.599 17.599 0 0 0 44.41 410.1h639.383a17.599 17.599 0 0 0 17.598-17.598V36.25a17.599 17.599 0 0 0-17.598-17.599Z"})),h||(h=H.createElement("path",{fill:"#cf00b8",d:"M50.406 49.754h627.391v353.913H50.406z"})),i||(i=H.createElement("circle",{cx:363.565,cy:33.667,r:6.435,fill:"#cf00b8"})),n||(n=H.createElement("path",{opacity:.1,d:"M498.374 403.667H50.406V49.754l447.968 353.913z"})),m||(m=H.createElement("circle",{cx:148.574,cy:316.876,r:60.307,fill:"#f2f2f2"})),f||(f=H.createElement("path",{fill:"#3f3d56",d:"M509.953 240.622h58.605v12.246h-58.605zM439.102 145.279h200.307v5.248H439.102zM439.102 161.898h200.307v5.248H439.102zM439.102 178.518h200.307v5.248H439.102zM439.102 195.137h200.307v5.248H439.102zM439.102 211.756h200.307v5.248H439.102z"})),E||(E=H.createElement("path",{fill:"#f2f2f2",d:"M614.917 56.934h24.492v24.492h-24.492z"})),d||(d=H.createElement("path",{d:"M650.78 92.797h-29.74v-29.74h29.74Zm-28.447-1.293h27.154V64.35h-27.154ZM719.007 397.232h-61.23v-4.412a.875.875 0 0 0-.874-.874H635.91a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.874.874v4.412h-13.121v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.874.874v4.412h-13.12v-4.412a.875.875 0 0 0-.876-.874h-20.992a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874H277.28a.875.875 0 0 0-.874.874v4.412h-13.12v-4.412a.875.875 0 0 0-.876-.874h-20.993a.875.875 0 0 0-.874.874v4.412h-13.12v-4.412a.875.875 0 0 0-.876-.874h-20.992a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874h-20.993a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874H133.83a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874H97.967a.875.875 0 0 0-.875.874v4.412h-13.12v-4.412a.875.875 0 0 0-.875-.874H62.104a.875.875 0 0 0-.875.874v4.412H20.993A20.993 20.993 0 0 0 0 418.225v9.492a20.993 20.993 0 0 0 20.993 20.993h698.014A20.993 20.993 0 0 0 740 427.717v-9.492a20.993 20.993 0 0 0-20.993-20.993ZM163.171 354.543a76 76 0 1 1 76-76 76.086 76.086 0 0 1-76 76Zm0-150a74 74 0 1 0 74 74 74.084 74.084 0 0 0-74-74ZM586.171 32.543h255v2h-255zM406.171 560.543h733v2h-733zM192.672 652.543h255v2h-255z",fill:"#3f3d56"})),y||(y=H.createElement("path",{fill:"#cf00b8",d:"M471 550h28v28h-28z"})),v||(v=H.createElement("path",{d:"M516 562h-34v-34h34Zm-32.522-1.478h31.044v-31.044h-31.044Z",fill:"#3f3d56"})),x||(x=H.createElement("path",{fill:"#cf00b8",d:"M796 22h28v28h-28z"})),s||(s=H.createElement("path",{d:"M841 34h-34V0h34Zm-32.522-1.478h31.044V1.478h-31.044Z",fill:"#3f3d56"})),p||(p=H.createElement("path",{fill:"#cf00b8",d:"M1078 550h28v28h-28z"})),o||(o=H.createElement("path",{d:"M1123 562h-34v-34h34Zm-32.522-1.478h31.044v-31.044h-31.044ZM1057.171 231.958h-2.378v-65.161a37.714 37.714 0 0 0-37.714-37.714H879.025a37.714 37.714 0 0 0-37.713 37.714v357.481a37.714 37.714 0 0 0 37.713 37.714h138.054a37.714 37.714 0 0 0 37.714-37.714V278.341h2.378Z",fill:"#3f3d56"})),M||(M=H.createElement("path",{d:"M1046.761 169.013v356.96a28.165 28.165 0 0 1-28.16 28.17h-138.72a28.165 28.165 0 0 1-28.16-28.17v-356.96a28.163 28.163 0 0 1 28.16-28.16h16.83a13.38 13.38 0 0 0 12.39 18.43h79.09a13.38 13.38 0 0 0 12.39-18.43h18.02a28.163 28.163 0 0 1 28.16 28.16Z",fill:"#cf00b8"})),Z||(Z=H.createElement("path",{fill:"#3f3d56",d:"M928.58 376.218h41.324v12.246H928.58zM878.621 280.875h141.24v5.248h-141.24zM878.621 297.494h141.24v5.248h-141.24zM878.621 314.114h141.24v5.248h-141.24zM878.621 330.733h141.24v5.248h-141.24zM878.621 347.352h141.24v5.248h-141.24z"})),g||(g=H.createElement("path",{fill:"#f2f2f2",d:"M929.684 211.179h24.492v24.492h-24.492z"})),u||(u=H.createElement("path",{d:"M939.06 217.303v29.74h29.74v-29.74Zm28.45 28.45h-27.16v-27.16h27.16Z",fill:"#3f3d56"})),w||(w=H.createElement("path",{d:"M1046.761 487.853v38.12a28.165 28.165 0 0 1-28.16 28.17h-138.72a28.165 28.165 0 0 1-28.16-28.17v-192.21l116.87 92.33 2 1.58 21.74 17.17 2.03 1.61Z",opacity:.1})),b||(b=H.createElement("circle",{cx:937.241,cy:498.707,r:43.868,fill:"#f2f2f2"})),z||(z=H.createElement("path",{d:"M320.171 654.543a87 87 0 1 1 87-87 87.099 87.099 0 0 1-87 87Zm0-172a85 85 0 1 0 85 85 85.096 85.096 0 0 0-85-85ZM950.171 532.543a55 55 0 1 1 55-55 55.062 55.062 0 0 1-55 55Zm0-108a53 53 0 1 0 53 53 53.06 53.06 0 0 0-53-53Z",fill:"#3f3d56"})))}},4145:(e,t,c)=>{c.d(t,{Z:()=>u});var l,a,r,h,i,n,m,f,E,d,y,v,x,s,p,o,M,Z=c(7294);function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:c,...u}=e;return Z.createElement("svg",g({xmlns:"http://www.w3.org/2000/svg","data-name":"Layer 1",width:980,height:489.48,viewBox:"0 0 980 489.48","aria-labelledby":c},u),t?Z.createElement("title",{id:c},t):null,l||(l=Z.createElement("path",{d:"M207.06 0a205.979 205.979 0 0 0-77.685 15.067c-.993.407-1.99.816-2.988 1.235A206.78 206.78 0 0 0 0 207.06V433a9.01 9.01 0 0 0 9 9l.179.016c173.467 31.502 342.106 47.465 501.372 47.465q3.581 0 7.156-.011c156.555-.477 308.994-16.44 453.083-47.447L971 442a9.01 9.01 0 0 0 9-9V9a9.01 9.01 0 0 0-9-9Z",fill:"#cf00b8"})),a||(a=Z.createElement("path",{"data-name":"Path 40",d:"M745.8 180.193a5.947 5.947 0 0 0 0 11.892h149.085a5.947 5.947 0 1 0 .195-11.892q-.097-.002-.195 0Z",fill:"#3f3d56"})),r||(r=Z.createElement("path",{d:"M928.694 178.537a1.17 1.17 0 0 0 0 1.655l5.023 5.023h-12.386a1.17 1.17 0 1 0 0 2.34h12.386l-5.023 5.023a1.17 1.17 0 1 0 1.655 1.654l7.02-7.02a1.17 1.17 0 0 0 0-1.655l-7.02-7.02a1.17 1.17 0 0 0-1.655 0ZM711.927 178.537a1.17 1.17 0 0 1 0 1.655l-5.022 5.023h12.385a1.17 1.17 0 1 1 0 2.34h-12.385l5.022 5.023a1.17 1.17 0 0 1-1.654 1.654l-7.02-7.02a1.17 1.17 0 0 1 0-1.655l7.02-7.02a1.17 1.17 0 0 1 1.654 0Z",fill:"#fff"})),h||(h=Z.createElement("g",{opacity:.4,fill:"#fff"},Z.createElement("circle",{cx:751.82,cy:50.39,r:6.39}),Z.createElement("circle",{cx:778.445,cy:50.39,r:6.39}),Z.createElement("circle",{cx:805.069,cy:50.39,r:6.39}),Z.createElement("circle",{cx:831.694,cy:50.39,r:6.39}),Z.createElement("circle",{cx:858.318,cy:50.39,r:6.39}),Z.createElement("circle",{cx:884.943,cy:50.39,r:6.39}),Z.createElement("circle",{cx:911.567,cy:50.39,r:6.39}),Z.createElement("circle",{cx:751.82,cy:70.625,r:6.39}),Z.createElement("circle",{cx:778.445,cy:70.625,r:6.39}),Z.createElement("circle",{cx:805.069,cy:70.625,r:6.39}),Z.createElement("circle",{cx:831.694,cy:70.625,r:6.39}),Z.createElement("circle",{cx:858.318,cy:70.625,r:6.39}),Z.createElement("circle",{cx:884.943,cy:70.625,r:6.39}),Z.createElement("circle",{cx:911.567,cy:70.625,r:6.39}),Z.createElement("circle",{cx:751.82,cy:90.859,r:6.39}),Z.createElement("circle",{cx:778.445,cy:90.859,r:6.39}),Z.createElement("circle",{cx:805.069,cy:90.859,r:6.39}),Z.createElement("circle",{cx:831.694,cy:90.859,r:6.39}),Z.createElement("circle",{cx:858.318,cy:90.859,r:6.39}),Z.createElement("circle",{cx:884.943,cy:90.859,r:6.39}),Z.createElement("circle",{cx:911.567,cy:90.859,r:6.39}),Z.createElement("circle",{cx:751.82,cy:111.094,r:6.39}),Z.createElement("circle",{cx:778.445,cy:111.094,r:6.39}),Z.createElement("circle",{cx:751.82,cy:131.329,r:6.39}),Z.createElement("circle",{cx:778.445,cy:131.329,r:6.39}),Z.createElement("circle",{cx:805.069,cy:131.329,r:6.39}),Z.createElement("circle",{cx:805.069,cy:111.094,r:6.39}),Z.createElement("circle",{cx:831.694,cy:111.094,r:6.39}),Z.createElement("circle",{cx:858.318,cy:111.094,r:6.39}),Z.createElement("circle",{cx:884.943,cy:111.094,r:6.39}),Z.createElement("circle",{cx:911.567,cy:111.094,r:6.39}))),i||(i=Z.createElement("path",{d:"M660.157 375.459a35.272 35.272 0 1 1 35.273-35.272 35.313 35.313 0 0 1-35.273 35.272Zm0-68.545a33.272 33.272 0 1 0 33.273 33.273 33.31 33.31 0 0 0-33.273-33.273Z",fill:"#3f3d56"})),n||(n=Z.createElement("path",{d:"M673.68 336.806h-10.142v-10.143a3.38 3.38 0 0 0-6.761 0v10.143h-10.143a3.38 3.38 0 0 0 0 6.761h10.143v10.143a3.38 3.38 0 0 0 6.761 0v-10.143h10.143a3.38 3.38 0 1 0 0-6.761Z",fill:"#fff"})),m||(m=Z.createElement("g",{opacity:.4,fill:"#fff"},Z.createElement("circle",{cx:54.024,cy:374.766,r:5.024}),Z.createElement("circle",{cx:54.024,cy:353.833,r:5.024}),Z.createElement("circle",{cx:54.024,cy:332.9,r:5.024}),Z.createElement("circle",{cx:54.024,cy:311.967,r:5.024}),Z.createElement("circle",{cx:54.024,cy:291.034,r:5.024}),Z.createElement("circle",{cx:54.024,cy:270.101,r:5.024}),Z.createElement("circle",{cx:54.024,cy:249.168,r:5.024}),Z.createElement("circle",{cx:69.933,cy:374.766,r:5.024}),Z.createElement("circle",{cx:69.933,cy:353.833,r:5.024}),Z.createElement("circle",{cx:69.933,cy:332.9,r:5.024}),Z.createElement("circle",{cx:69.933,cy:311.967,r:5.024}),Z.createElement("circle",{cx:69.933,cy:291.034,r:5.024}),Z.createElement("circle",{cx:69.933,cy:270.101,r:5.024}),Z.createElement("circle",{cx:69.933,cy:249.168,r:5.024}),Z.createElement("circle",{cx:85.842,cy:374.766,r:5.024}),Z.createElement("circle",{cx:85.842,cy:353.833,r:5.024}),Z.createElement("circle",{cx:85.842,cy:332.9,r:5.024}),Z.createElement("circle",{cx:85.842,cy:311.967,r:5.024}),Z.createElement("circle",{cx:85.842,cy:291.034,r:5.024}),Z.createElement("circle",{cx:85.842,cy:270.101,r:5.024}),Z.createElement("circle",{cx:85.842,cy:249.168,r:5.024}),Z.createElement("circle",{cx:101.751,cy:374.766,r:5.024}),Z.createElement("circle",{cx:101.751,cy:353.833,r:5.024}),Z.createElement("circle",{cx:117.66,cy:374.766,r:5.024}),Z.createElement("circle",{cx:117.66,cy:353.833,r:5.024}),Z.createElement("circle",{cx:117.66,cy:332.9,r:5.024}),Z.createElement("circle",{cx:101.751,cy:332.9,r:5.024}),Z.createElement("circle",{cx:101.751,cy:311.967,r:5.024}),Z.createElement("circle",{cx:101.751,cy:291.034,r:5.024}),Z.createElement("circle",{cx:101.751,cy:270.101,r:5.024}),Z.createElement("circle",{cx:101.751,cy:249.168,r:5.024}))),f||(f=Z.createElement("path",{d:"M497.408 33.002H163.666a6.189 6.189 0 0 0-6.182 6.183v285.383a6.189 6.189 0 0 0 6.182 6.182h333.742a6.189 6.189 0 0 0 6.183-6.182V39.185a6.189 6.189 0 0 0-6.183-6.183Zm3.705 291.566a3.718 3.718 0 0 1-3.705 3.716H163.666a3.71 3.71 0 0 1-3.704-3.716V39.185a3.71 3.71 0 0 1 3.704-3.717h333.742a3.718 3.718 0 0 1 3.705 3.717Z",fill:"#3f3d56"})),E||(E=Z.createElement("path",{d:"M240.702 280.006c0 .44-.011.88-.034 1.309a25.175 25.175 0 0 1-50.281 0 24.33 24.33 0 0 1-.035-1.309 25.175 25.175 0 1 1 50.35 0Z",fill:"#fff"})),d||(d=Z.createElement("path",{d:"M471.475 263.22H273.663a4.197 4.197 0 0 0 0 8.393h197.812a4.197 4.197 0 0 0 0-8.394Z",fill:"#3f3d56"})),y||(y=Z.createElement("path",{d:"M358.78 288.4h-85.117a4.191 4.191 0 0 0 0 8.382h85.117a4.191 4.191 0 1 0 0-8.382ZM576.698 233.581h-333.74a8.559 8.559 0 0 1-8.549-8.55V78.57a8.559 8.559 0 0 1 8.549-8.549h333.74a8.559 8.559 0 0 1 8.55 8.55V225.03a8.559 8.559 0 0 1-8.55 8.55ZM242.958 73.02a5.555 5.555 0 0 0-5.549 5.55V225.03a5.556 5.556 0 0 0 5.549 5.55h333.74a5.556 5.556 0 0 0 5.55-5.55V78.57a5.555 5.555 0 0 0-5.55-5.549Z",fill:"#fff"})),v||(v=Z.createElement("path",{d:"M310.924 123.44a4.196 4.196 0 1 0 0 8.391h197.808a4.196 4.196 0 1 0 0-8.392ZM310.924 147.752a4.196 4.196 0 0 0 0 8.392h197.808a4.196 4.196 0 0 0 0-8.392ZM310.924 171.77a4.196 4.196 0 0 0 0 8.392h85.117a4.196 4.196 0 0 0 0-8.392ZM631.724 295.633l-33.52-47.307 10.85 2.26a1.501 1.501 0 1 0 .613-2.939l-16.17-3.366-2.183 16.37a1.501 1.501 0 1 0 2.976.397l1.463-10.993 33.523 47.312a1.5 1.5 0 1 0 2.448-1.734Z",fill:"#fff"})),x||(x=Z.createElement("path",{d:"M449.666 433.32H211.409a4.417 4.417 0 0 1-4.412-4.412v-59.101a4.417 4.417 0 0 1 4.412-4.412h238.257a4.417 4.417 0 0 1 4.412 4.412v59.101a4.417 4.417 0 0 1-4.412 4.413Zm-238.257-66.16a2.65 2.65 0 0 0-2.647 2.647v59.101a2.65 2.65 0 0 0 2.647 2.648h238.257a2.65 2.65 0 0 0 2.647-2.648v-59.101a2.65 2.65 0 0 0-2.647-2.647Z",fill:"#3f3d56"})),s||(s=Z.createElement("circle",{cx:248.429,cy:397.09,r:17.973,fill:"#fff"})),p||(p=Z.createElement("path",{d:"M289.938 385.108a2.995 2.995 0 1 0 0 5.991h141.215a2.995 2.995 0 1 0 0-5.99ZM289.938 403.08a2.995 2.995 0 1 0 0 5.992h60.765a2.995 2.995 0 1 0 0-5.991Z",fill:"#fff"})),o||(o=Z.createElement("path",{d:"M764.024 222.756h105.893a4.417 4.417 0 0 1 4.412 4.412V337.45a4.417 4.417 0 0 1-4.412 4.413H764.024a4.417 4.417 0 0 1-4.412-4.413V227.168a4.417 4.417 0 0 1 4.413-4.412Zm105.893 117.342a2.65 2.65 0 0 0 2.647-2.648V227.168a2.65 2.65 0 0 0-2.647-2.647H764.024a2.65 2.65 0 0 0-2.647 2.647V337.45a2.65 2.65 0 0 0 2.648 2.648Z",fill:"#3f3d56"})),M||(M=Z.createElement("path",{d:"M847.353 319.12a2.995 2.995 0 0 0 0-5.99h-60.765a2.995 2.995 0 0 0 0 5.99ZM847.353 301.472a2.995 2.995 0 1 0 0-5.991h-60.765a2.995 2.995 0 1 0 0 5.99ZM816.97 245.498a18.855 18.855 0 1 1-18.855 18.855 18.876 18.876 0 0 1 18.855-18.855Z",fill:"#fff"})))}},8391:(e,t,c)=>{c.r(t),c.d(t,{default:()=>x});var l=c(7294),a=c(6010),r=c(7003),h=c(9960),i=c(2263);const n={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};var m=c(7462);const f={features:"features_t9lD",featureSvg:"featureSvg_GfXr"},E=[{title:"Easy to Use",Svg:c(577).Z,description:l.createElement(l.Fragment,null,"Credo was designed with the mindset that building self-sovereign identity solutions should be easy and straightforward.")},{title:"Multi-platform",Svg:c(187).Z,description:l.createElement(l.Fragment,null,"With support for Node.js and React Native, Credo allows you to reuse the same code base in different environments. There is no need to implement the same functionality multiple times.")},{title:"Based on the latest standards",Svg:c(4145).Z,description:l.createElement(l.Fragment,null,"By keeping up with the latest standards, we ensure Credo is secure and interoperable.")}];function d(e){let{title:t,Svg:c,description:r}=e;return l.createElement("div",{className:(0,a.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(c,{className:f.featureSvg,role:"img"})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,r)))}function y(){return l.createElement("section",{className:f.features},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},E.map(((e,t)=>l.createElement(d,(0,m.Z)({key:t},e)))))))}function v(){const{siteConfig:e}=(0,i.Z)();return l.createElement("header",{className:(0,a.Z)("hero hero--primary",n.heroBanner)+" custom-banner-bg"},l.createElement("div",{className:"container"},l.createElement("h1",{className:"hero__title"},e.title),l.createElement("p",{className:"hero__subtitle"},e.tagline),l.createElement("div",{className:n.buttons},l.createElement(h.Z,{className:"button button--primary button--lg",to:"/guides/getting-started"},"Get Started"))))}function x(){const{siteConfig:e}=(0,i.Z)();return l.createElement(r.Z,{title:e.title,description:"Credo Docs"},l.createElement(v,null),l.createElement("main",null,l.createElement(y,null)))}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.892d86d2.js b/assets/js/runtime~main.52944128.js similarity index 98% rename from assets/js/runtime~main.892d86d2.js rename to assets/js/runtime~main.52944128.js index baab914c..28ca65a8 100644 --- a/assets/js/runtime~main.892d86d2.js +++ b/assets/js/runtime~main.52944128.js @@ -1 +1 @@ -(()=>{"use strict";var e,c,d,a,f,b={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=b,r.c=t,e=[],r.O=(c,d,a,f)=>{if(!d){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[d,a,f]},r.n=e=>{var c=e&&e.__esModule?()=>e.default:()=>e;return r.d(c,{a:c}),c},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};c=c||[null,d({}),d([]),d(d)];for(var t=2&a&&e;"object"==typeof t&&!~c.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((c=>b[c]=()=>e[c]));return b.default=()=>e,r.d(f,b),f},r.d=(e,c)=>{for(var d in c)r.o(c,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:c[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((c,d)=>(r.f[d](e,c),c)),[])),r.u=e=>"assets/js/"+({35:"07ca6c5c",37:"334d54c0",53:"935f2afb",77:"fd1a8f62",82:"2332f431",241:"36fa027f",397:"7d0a541a",537:"92188087",644:"a2a3716e",703:"c970593d",752:"bcace162",792:"926eb7a7",911:"f3933b6b",1119:"4da4ce16",1229:"6c6797b5",1270:"d1089d1d",1271:"6e4808e6",1313:"5edc3d1c",1317:"acdd3ecd",1350:"0c824aea",1389:"c2afb9af",1454:"74ce5ee1",1498:"29b62a39",1776:"e4252094",1904:"14e53ecf",1912:"30ebf81b",1993:"bd5be9ae",2086:"95261082",2215:"0a88801c",2226:"d42e1e6c",2254:"e5a09f30",2525:"00c1cb92",2562:"655fc6f5",2637:"f30d32a5",2680:"997e3d85",2743:"09958099",2925:"ef7acecf",2959:"232d48ef",3080:"ca99fa15",3085:"1f391b9e",3143:"4359f0b8",3237:"1df93b7f",3338:"3483c478",3531:"70f061b3",3666:"6d708c3d",3859:"93020ce9",3901:"996925d9",4105:"0d8c2653",4220:"bf52c953",4354:"466eb4b6",4365:"a69e7b9a",4378:"4a99cab5",4565:"8b37bb4b",4602:"5a512b94",4632:"06d26907",4656:"e5f12b68",4767:"debd89ec",4809:"91053f61",4827:"dc62edf2",5062:"05113313",5252:"1bb97b5b",5260:"9436892d",5313:"636a146f",5554:"14973ffc",5666:"67da112e",5846:"43e7938e",5880:"2bf743db",6059:"52db191f",6142:"bd127040",6266:"60053357",6295:"65c86d7b",6347:"365d3941",6407:"207a1e16",6614:"1c0f7eb0",6625:"a9c79318",6657:"12357581",6696:"7d25e484",6718:"7138c4a2",6751:"5d8cec60",6840:"5d1c397c",6974:"58e9d200",7024:"2e77271a",7083:"f87d6b73",7162:"e38b62c8",7240:"ee7869b6",7303:"08ca7335",7314:"34eb4307",7414:"393be207",7529:"2003ac23",7543:"af9716ba",7547:"eeecf87c",7572:"c6c95224",7608:"d68982b8",7610:"b56c3f57",7798:"6d44cf95",7824:"0ecb752f",7831:"afc41633",7844:"6df87a7d",7854:"9edc454f",7873:"4e1c6ae4",7885:"0f95bd9e",7902:"79d2b703",7918:"17896441",7988:"96bb78d2",8026:"0e983491",8041:"c5492fa7",8135:"224ce49c",8230:"a1dc5557",8251:"f800d23c",8368:"394d7bf2",8377:"27320d50",8399:"9cd8fd3e",8417:"8b5bb00b",8440:"76f8726c",8692:"daf4660b",8709:"862058fd",8866:"8c506fba",8925:"c5cd793e",8937:"32456564",8980:"7bb6402a",9047:"69f8e48e",9080:"d26e5579",9196:"331e6edf",9233:"ee898636",9474:"470c56a2",9514:"1be78505",9567:"4ee9ed1d",9593:"17b50570",9626:"1cc62cef",9841:"a690f229",9843:"b1d5f389",9852:"ece13197",9910:"7852f2cc",9989:"82aa0257"}[e]||e)+"."+{35:"f27d7f4b",37:"09ed8c3f",53:"613f1d9b",77:"53d966df",82:"9b8a1baa",241:"8c15b0c9",397:"9d9520e5",537:"1139471b",644:"5be21072",703:"c8e661ef",752:"51139a8f",792:"d55ac6ce",903:"9ae52e19",911:"7692df26",1119:"880b581d",1229:"440a306d",1270:"6cf628ac",1271:"9e5dacb9",1313:"3860f396",1317:"ad3fb860",1329:"f911dbaf",1350:"1645a86c",1389:"75f84ec7",1454:"efc76b0f",1498:"f8bd6331",1776:"4ac19d4c",1904:"d02e9688",1912:"cc59b5ec",1993:"ade28b3f",2086:"8797c649",2215:"6008b0ff",2226:"019f1c15",2254:"d00f0bc2",2525:"f4c22810",2562:"69a44864",2637:"b3461c1e",2680:"30121511",2743:"3cb1e01a",2925:"05fbba14",2959:"ca668017",3080:"14f0d88b",3085:"8f59a356",3143:"fc401470",3237:"751407f9",3338:"0f456a12",3531:"7929cff9",3666:"19297ed9",3859:"4b48fe5e",3901:"7c209dbd",4105:"504e5fea",4220:"d9abddb3",4354:"8ef8cc51",4365:"0f39abaa",4378:"6b42005a",4565:"78c46236",4602:"8d4761ec",4632:"1488c196",4656:"e769ce15",4767:"fbbc5ac8",4809:"0280e149",4827:"84a86ec7",4972:"e45ad696",5062:"491a0534",5252:"8dad73b9",5260:"c3faa1d0",5313:"2e4e84b8",5554:"3812a945",5666:"e9e800dd",5846:"3e109fe7",5880:"f063a5e7",6059:"b0b7b954",6142:"09cd6ab6",6266:"cdda8627",6295:"328e5b53",6316:"c0237eae",6347:"fd0d0e1b",6407:"f970394b",6614:"ae59bc78",6625:"b4db8a4c",6657:"e940fd9b",6696:"4da095d9",6718:"5fd7152f",6751:"ee7969e5",6840:"f2b71c6e",6974:"bca41dd1",7024:"27bf11c9",7083:"7207a02c",7162:"f5742f56",7240:"39442c96",7303:"d623c4d4",7314:"064bb15e",7414:"a48a7c79",7529:"5a088efe",7543:"6fba4a51",7547:"255310e2",7572:"f6f2277e",7608:"ffa01d84",7610:"d212be4a",7724:"d84ad8cc",7798:"55379d59",7824:"c99828b6",7831:"e23d3e1a",7844:"097e2936",7854:"78b0e51d",7873:"d7e2b475",7885:"e27914e3",7902:"091bb580",7918:"500a5dd6",7988:"347e06d0",8026:"36fbd209",8041:"668266bc",8135:"4dd8e634",8230:"64bae966",8251:"fb13addf",8368:"11b51def",8377:"47448ff8",8399:"de9cbc4f",8417:"74a71399",8440:"3f42a1d2",8692:"999a8cea",8709:"3ae6be20",8866:"fc412c50",8925:"f7c6a4c8",8937:"cd6a0377",8980:"0c53a41b",9047:"a97ae3f9",9080:"b67f5693",9196:"de3b4b21",9233:"ccf696ac",9474:"746ba684",9487:"787a6345",9514:"c5e500fc",9567:"6ccee378",9593:"e8f44455",9626:"74aa4746",9841:"9ee705e9",9843:"8ed976d1",9852:"5aba9542",9910:"01b0177d",9989:"70249622"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,c)=>Object.prototype.hasOwnProperty.call(e,c),a={},f="credo-ts-docs:",r.l=(e,c,d,b)=>{if(a[e])a[e].push(c);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=a[e];if(delete a[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(d))),c)return c(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={12357581:"6657",17896441:"7918",32456564:"8937",60053357:"6266",92188087:"537",95261082:"2086","07ca6c5c":"35","334d54c0":"37","935f2afb":"53",fd1a8f62:"77","2332f431":"82","36fa027f":"241","7d0a541a":"397",a2a3716e:"644",c970593d:"703",bcace162:"752","926eb7a7":"792",f3933b6b:"911","4da4ce16":"1119","6c6797b5":"1229",d1089d1d:"1270","6e4808e6":"1271","5edc3d1c":"1313",acdd3ecd:"1317","0c824aea":"1350",c2afb9af:"1389","74ce5ee1":"1454","29b62a39":"1498",e4252094:"1776","14e53ecf":"1904","30ebf81b":"1912",bd5be9ae:"1993","0a88801c":"2215",d42e1e6c:"2226",e5a09f30:"2254","00c1cb92":"2525","655fc6f5":"2562",f30d32a5:"2637","997e3d85":"2680","09958099":"2743",ef7acecf:"2925","232d48ef":"2959",ca99fa15:"3080","1f391b9e":"3085","4359f0b8":"3143","1df93b7f":"3237","3483c478":"3338","70f061b3":"3531","6d708c3d":"3666","93020ce9":"3859","996925d9":"3901","0d8c2653":"4105",bf52c953:"4220","466eb4b6":"4354",a69e7b9a:"4365","4a99cab5":"4378","8b37bb4b":"4565","5a512b94":"4602","06d26907":"4632",e5f12b68:"4656",debd89ec:"4767","91053f61":"4809",dc62edf2:"4827","05113313":"5062","1bb97b5b":"5252","9436892d":"5260","636a146f":"5313","14973ffc":"5554","67da112e":"5666","43e7938e":"5846","2bf743db":"5880","52db191f":"6059",bd127040:"6142","65c86d7b":"6295","365d3941":"6347","207a1e16":"6407","1c0f7eb0":"6614",a9c79318:"6625","7d25e484":"6696","7138c4a2":"6718","5d8cec60":"6751","5d1c397c":"6840","58e9d200":"6974","2e77271a":"7024",f87d6b73:"7083",e38b62c8:"7162",ee7869b6:"7240","08ca7335":"7303","34eb4307":"7314","393be207":"7414","2003ac23":"7529",af9716ba:"7543",eeecf87c:"7547",c6c95224:"7572",d68982b8:"7608",b56c3f57:"7610","6d44cf95":"7798","0ecb752f":"7824",afc41633:"7831","6df87a7d":"7844","9edc454f":"7854","4e1c6ae4":"7873","0f95bd9e":"7885","79d2b703":"7902","96bb78d2":"7988","0e983491":"8026",c5492fa7:"8041","224ce49c":"8135",a1dc5557:"8230",f800d23c:"8251","394d7bf2":"8368","27320d50":"8377","9cd8fd3e":"8399","8b5bb00b":"8417","76f8726c":"8440",daf4660b:"8692","862058fd":"8709","8c506fba":"8866",c5cd793e:"8925","7bb6402a":"8980","69f8e48e":"9047",d26e5579:"9080","331e6edf":"9196",ee898636:"9233","470c56a2":"9474","1be78505":"9514","4ee9ed1d":"9567","17b50570":"9593","1cc62cef":"9626",a690f229:"9841",b1d5f389:"9843",ece13197:"9852","7852f2cc":"9910","82aa0257":"9989"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(c,d)=>{var a=r.o(e,c)?e[c]:void 0;if(0!==a)if(a)d.push(a[2]);else if(/^(1303|532)$/.test(c))e[c]=0;else{var f=new Promise(((d,f)=>a=e[c]=[d,f]));d.push(a[2]=f);var b=r.p+r.u(c),t=new Error;r.l(b,(d=>{if(r.o(e,c)&&(0!==(a=e[c])&&(e[c]=void 0),a)){var f=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;t.message="Loading chunk "+c+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,a[1](t)}}),"chunk-"+c,c)}},r.O.j=c=>0===e[c];var c=(c,d)=>{var a,f,b=d[0],t=d[1],o=d[2],n=0;if(b.some((c=>0!==e[c]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(c&&c(d);n{"use strict";var e,c,d,a,f,b={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=b,r.c=t,e=[],r.O=(c,d,a,f)=>{if(!d){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[d,a,f]},r.n=e=>{var c=e&&e.__esModule?()=>e.default:()=>e;return r.d(c,{a:c}),c},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};c=c||[null,d({}),d([]),d(d)];for(var t=2&a&&e;"object"==typeof t&&!~c.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((c=>b[c]=()=>e[c]));return b.default=()=>e,r.d(f,b),f},r.d=(e,c)=>{for(var d in c)r.o(c,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:c[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((c,d)=>(r.f[d](e,c),c)),[])),r.u=e=>"assets/js/"+({35:"07ca6c5c",37:"334d54c0",53:"935f2afb",77:"fd1a8f62",82:"2332f431",241:"36fa027f",397:"7d0a541a",537:"92188087",644:"a2a3716e",703:"c970593d",752:"bcace162",792:"926eb7a7",911:"f3933b6b",1119:"4da4ce16",1229:"6c6797b5",1270:"d1089d1d",1271:"6e4808e6",1313:"5edc3d1c",1317:"acdd3ecd",1350:"0c824aea",1389:"c2afb9af",1454:"74ce5ee1",1498:"29b62a39",1776:"e4252094",1904:"14e53ecf",1912:"30ebf81b",1993:"bd5be9ae",2086:"95261082",2215:"0a88801c",2226:"d42e1e6c",2254:"e5a09f30",2525:"00c1cb92",2562:"655fc6f5",2637:"f30d32a5",2680:"997e3d85",2743:"09958099",2925:"ef7acecf",2959:"232d48ef",3080:"ca99fa15",3085:"1f391b9e",3143:"4359f0b8",3237:"1df93b7f",3338:"3483c478",3531:"70f061b3",3666:"6d708c3d",3859:"93020ce9",3901:"996925d9",4105:"0d8c2653",4220:"bf52c953",4354:"466eb4b6",4365:"a69e7b9a",4378:"4a99cab5",4565:"8b37bb4b",4602:"5a512b94",4632:"06d26907",4656:"e5f12b68",4767:"debd89ec",4809:"91053f61",4827:"dc62edf2",5062:"05113313",5252:"1bb97b5b",5260:"9436892d",5313:"636a146f",5554:"14973ffc",5666:"67da112e",5846:"43e7938e",5880:"2bf743db",6059:"52db191f",6142:"bd127040",6266:"60053357",6295:"65c86d7b",6347:"365d3941",6407:"207a1e16",6614:"1c0f7eb0",6625:"a9c79318",6657:"12357581",6696:"7d25e484",6718:"7138c4a2",6751:"5d8cec60",6840:"5d1c397c",6974:"58e9d200",7024:"2e77271a",7083:"f87d6b73",7162:"e38b62c8",7240:"ee7869b6",7303:"08ca7335",7314:"34eb4307",7414:"393be207",7529:"2003ac23",7543:"af9716ba",7547:"eeecf87c",7572:"c6c95224",7608:"d68982b8",7610:"b56c3f57",7798:"6d44cf95",7824:"0ecb752f",7831:"afc41633",7844:"6df87a7d",7854:"9edc454f",7873:"4e1c6ae4",7885:"0f95bd9e",7902:"79d2b703",7918:"17896441",7988:"96bb78d2",8026:"0e983491",8041:"c5492fa7",8135:"224ce49c",8230:"a1dc5557",8251:"f800d23c",8368:"394d7bf2",8377:"27320d50",8399:"9cd8fd3e",8417:"8b5bb00b",8440:"76f8726c",8692:"daf4660b",8709:"862058fd",8866:"8c506fba",8925:"c5cd793e",8937:"32456564",8980:"7bb6402a",9047:"69f8e48e",9080:"d26e5579",9196:"331e6edf",9233:"ee898636",9474:"470c56a2",9514:"1be78505",9567:"4ee9ed1d",9593:"17b50570",9626:"1cc62cef",9841:"a690f229",9843:"b1d5f389",9852:"ece13197",9910:"7852f2cc",9989:"82aa0257"}[e]||e)+"."+{35:"f27d7f4b",37:"09ed8c3f",53:"613f1d9b",77:"53d966df",82:"9b8a1baa",241:"8c15b0c9",397:"9d9520e5",537:"1139471b",644:"5be21072",703:"c8e661ef",752:"51139a8f",792:"d55ac6ce",903:"9ae52e19",911:"7692df26",1119:"880b581d",1229:"440a306d",1270:"6cf628ac",1271:"9e5dacb9",1313:"3860f396",1317:"ad3fb860",1329:"f911dbaf",1350:"1645a86c",1389:"75f84ec7",1454:"efc76b0f",1498:"f8bd6331",1776:"4ac19d4c",1904:"d02e9688",1912:"cc59b5ec",1993:"ade28b3f",2086:"8797c649",2215:"6008b0ff",2226:"019f1c15",2254:"d00f0bc2",2525:"f4c22810",2562:"69a44864",2637:"b3461c1e",2680:"30121511",2743:"3cb1e01a",2925:"05fbba14",2959:"ca668017",3080:"14f0d88b",3085:"8f59a356",3143:"fc401470",3237:"3db5e753",3338:"0f456a12",3531:"7929cff9",3666:"19297ed9",3859:"4b48fe5e",3901:"7c209dbd",4105:"504e5fea",4220:"d9abddb3",4354:"8ef8cc51",4365:"0f39abaa",4378:"6b42005a",4565:"78c46236",4602:"8d4761ec",4632:"1488c196",4656:"e769ce15",4767:"fbbc5ac8",4809:"0280e149",4827:"84a86ec7",4972:"e45ad696",5062:"491a0534",5252:"8dad73b9",5260:"c3faa1d0",5313:"2e4e84b8",5554:"3812a945",5666:"e9e800dd",5846:"3e109fe7",5880:"f063a5e7",6059:"b0b7b954",6142:"09cd6ab6",6266:"cdda8627",6295:"328e5b53",6316:"c0237eae",6347:"fd0d0e1b",6407:"f970394b",6614:"ae59bc78",6625:"b4db8a4c",6657:"e940fd9b",6696:"4da095d9",6718:"5fd7152f",6751:"ee7969e5",6840:"f2b71c6e",6974:"bca41dd1",7024:"27bf11c9",7083:"7207a02c",7162:"f5742f56",7240:"39442c96",7303:"d623c4d4",7314:"064bb15e",7414:"a48a7c79",7529:"5a088efe",7543:"6fba4a51",7547:"255310e2",7572:"f6f2277e",7608:"ffa01d84",7610:"d212be4a",7724:"d84ad8cc",7798:"55379d59",7824:"c99828b6",7831:"e23d3e1a",7844:"097e2936",7854:"78b0e51d",7873:"d7e2b475",7885:"e27914e3",7902:"091bb580",7918:"500a5dd6",7988:"347e06d0",8026:"36fbd209",8041:"668266bc",8135:"4dd8e634",8230:"64bae966",8251:"fb13addf",8368:"11b51def",8377:"47448ff8",8399:"de9cbc4f",8417:"74a71399",8440:"3f42a1d2",8692:"999a8cea",8709:"3ae6be20",8866:"fc412c50",8925:"f7c6a4c8",8937:"cd6a0377",8980:"0c53a41b",9047:"a97ae3f9",9080:"b67f5693",9196:"de3b4b21",9233:"ccf696ac",9474:"746ba684",9487:"787a6345",9514:"c5e500fc",9567:"6ccee378",9593:"e8f44455",9626:"74aa4746",9841:"9ee705e9",9843:"8ed976d1",9852:"5aba9542",9910:"01b0177d",9989:"70249622"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,c)=>Object.prototype.hasOwnProperty.call(e,c),a={},f="credo-ts-docs:",r.l=(e,c,d,b)=>{if(a[e])a[e].push(c);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=a[e];if(delete a[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(d))),c)return c(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={12357581:"6657",17896441:"7918",32456564:"8937",60053357:"6266",92188087:"537",95261082:"2086","07ca6c5c":"35","334d54c0":"37","935f2afb":"53",fd1a8f62:"77","2332f431":"82","36fa027f":"241","7d0a541a":"397",a2a3716e:"644",c970593d:"703",bcace162:"752","926eb7a7":"792",f3933b6b:"911","4da4ce16":"1119","6c6797b5":"1229",d1089d1d:"1270","6e4808e6":"1271","5edc3d1c":"1313",acdd3ecd:"1317","0c824aea":"1350",c2afb9af:"1389","74ce5ee1":"1454","29b62a39":"1498",e4252094:"1776","14e53ecf":"1904","30ebf81b":"1912",bd5be9ae:"1993","0a88801c":"2215",d42e1e6c:"2226",e5a09f30:"2254","00c1cb92":"2525","655fc6f5":"2562",f30d32a5:"2637","997e3d85":"2680","09958099":"2743",ef7acecf:"2925","232d48ef":"2959",ca99fa15:"3080","1f391b9e":"3085","4359f0b8":"3143","1df93b7f":"3237","3483c478":"3338","70f061b3":"3531","6d708c3d":"3666","93020ce9":"3859","996925d9":"3901","0d8c2653":"4105",bf52c953:"4220","466eb4b6":"4354",a69e7b9a:"4365","4a99cab5":"4378","8b37bb4b":"4565","5a512b94":"4602","06d26907":"4632",e5f12b68:"4656",debd89ec:"4767","91053f61":"4809",dc62edf2:"4827","05113313":"5062","1bb97b5b":"5252","9436892d":"5260","636a146f":"5313","14973ffc":"5554","67da112e":"5666","43e7938e":"5846","2bf743db":"5880","52db191f":"6059",bd127040:"6142","65c86d7b":"6295","365d3941":"6347","207a1e16":"6407","1c0f7eb0":"6614",a9c79318:"6625","7d25e484":"6696","7138c4a2":"6718","5d8cec60":"6751","5d1c397c":"6840","58e9d200":"6974","2e77271a":"7024",f87d6b73:"7083",e38b62c8:"7162",ee7869b6:"7240","08ca7335":"7303","34eb4307":"7314","393be207":"7414","2003ac23":"7529",af9716ba:"7543",eeecf87c:"7547",c6c95224:"7572",d68982b8:"7608",b56c3f57:"7610","6d44cf95":"7798","0ecb752f":"7824",afc41633:"7831","6df87a7d":"7844","9edc454f":"7854","4e1c6ae4":"7873","0f95bd9e":"7885","79d2b703":"7902","96bb78d2":"7988","0e983491":"8026",c5492fa7:"8041","224ce49c":"8135",a1dc5557:"8230",f800d23c:"8251","394d7bf2":"8368","27320d50":"8377","9cd8fd3e":"8399","8b5bb00b":"8417","76f8726c":"8440",daf4660b:"8692","862058fd":"8709","8c506fba":"8866",c5cd793e:"8925","7bb6402a":"8980","69f8e48e":"9047",d26e5579:"9080","331e6edf":"9196",ee898636:"9233","470c56a2":"9474","1be78505":"9514","4ee9ed1d":"9567","17b50570":"9593","1cc62cef":"9626",a690f229:"9841",b1d5f389:"9843",ece13197:"9852","7852f2cc":"9910","82aa0257":"9989"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(c,d)=>{var a=r.o(e,c)?e[c]:void 0;if(0!==a)if(a)d.push(a[2]);else if(/^(1303|532)$/.test(c))e[c]=0;else{var f=new Promise(((d,f)=>a=e[c]=[d,f]));d.push(a[2]=f);var b=r.p+r.u(c),t=new Error;r.l(b,(d=>{if(r.o(e,c)&&(0!==(a=e[c])&&(e[c]=void 0),a)){var f=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;t.message="Loading chunk "+c+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,a[1](t)}}),"chunk-"+c,c)}},r.O.j=c=>0===e[c];var c=(c,d)=>{var a,f,b=d[0],t=d[1],o=d[2],n=0;if(b.some((c=>0!==e[c]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(c&&c(d);n -Intro | Credo - +Intro | Credo +
Version: v0.4.x

Intro

Welcome, to the Aries JavaScript community!

There's no way around it. Working with self-sovereign identity can be difficult. Luckily this documentation's main goal is to make it easy for you. Whether you have a lot of experience building with Aries or non-Aries SSI frameworks, or have never heard of terms like Verifiable Credential, DID, or Agent. This documentation will either help you create a JavaScript based SSI solution yourself, or help you find the right resources in the community to assist you!

So what is Hyperledger Aries Framework JavaScript?

Hyperledger Aries provides a shared, reusable, interoperable tool kit designed for initiatives and solutions focused on creating, transmitting and storing verifiable digital credentials.

— Hyperledger Foundation

There are several Aries frameworks that help you build solutions using verifiable credentials. This one is written in TypeScript and is specifically well suited for Multi-Platform development as it supports Node.js and React Native. We, the community, like to view it as the most accessible framework mostly because it is written in TypeScript, and our maintainers and contributors work to keep developer user experience a top priority.

These docs are not just for the main framework, but also all that surround it. So you'll find general explanations about the concepts used, specific tutorials for common use cases and relevant projects and related repositories. Most of all you'll find solid documentation with lots of code examples and an enthousiastic community that wants to build great stuff together.

Are you ready to get started?

- + \ No newline at end of file diff --git a/guides/0.3.html b/guides/0.3.html index b1634a19..13855d65 100644 --- a/guides/0.3.html +++ b/guides/0.3.html @@ -3,14 +3,14 @@ -Intro | Credo - +Intro | Credo +
Version: v0.3.x

Intro

Welcome, to the Aries JavaScript community!

There's no way around it. Working with self-sovereign identity can be difficult. Luckily this documentation's main goal is to make it easy for you. Whether you have a lot of experience building with Aries or non-Aries SSI frameworks, or have never heard of terms like Verifiable Credential, DID, or Agent. This documentation will either help you create a JavaScript based SSI solution yourself, or help you find the right resources in the community to assist you!

So what is Hyperledger Aries Framework JavaScript?

Hyperledger Aries provides a shared, reusable, interoperable tool kit designed for initiatives and solutions focused on creating, transmitting and storing verifiable digital credentials.

— Hyperledger Foundation

There are several Aries frameworks that help you build solutions using verifiable credentials. This one is written in TypeScript and is specifically well suited for Multi-Platform development as it supports Node.js and React Native. We, the community, like to view it as the most accessible framework mostly because it is written in TypeScript, and our maintainers and contributors work to keep developer user experience a top priority.

These docs are not just for the main framework, but also all that surround it. So you'll find general explanations about the concepts used, specific tutorials for common use cases and relevant projects and related repositories. Most of all you'll find solid documentation with lots of code examples and an enthousiastic community that wants to build great stuff together.

Are you ready to get started?

- + \ No newline at end of file diff --git a/guides/0.3/concepts.html b/guides/0.3/concepts.html index 04ef609f..f0dfff25 100644 --- a/guides/0.3/concepts.html +++ b/guides/0.3/concepts.html @@ -3,8 +3,8 @@ -Concepts | Credo - +Concepts | Credo + @@ -12,7 +12,7 @@ - + \ No newline at end of file diff --git a/guides/0.3/concepts/agents.html b/guides/0.3/concepts/agents.html index 7ef17dac..7c5b4c0e 100644 --- a/guides/0.3/concepts/agents.html +++ b/guides/0.3/concepts/agents.html @@ -3,8 +3,8 @@ -Agents | Credo - +Agents | Credo + @@ -37,7 +37,7 @@ devices these can be used as a more central point for your data.

Useful resources

- + \ No newline at end of file diff --git a/guides/0.3/concepts/did-and-didcomm.html b/guides/0.3/concepts/did-and-didcomm.html index 469ec42a..8b961a2a 100644 --- a/guides/0.3/concepts/did-and-didcomm.html +++ b/guides/0.3/concepts/did-and-didcomm.html @@ -3,8 +3,8 @@ -DIDs and DIDComm | Credo - +DIDs and DIDComm | Credo + @@ -24,7 +24,7 @@ securely send a message from as Alice to Bob securely via bluetooth, HTTP, WebSockets, etc.

When working with the tools available inside the Aries JavaScript ecosystem, deep knowledge of DIDComm is not required.

Useful Resources

- + \ No newline at end of file diff --git a/guides/0.3/concepts/platform-and-environment.html b/guides/0.3/concepts/platform-and-environment.html index e49f3722..eb51003f 100644 --- a/guides/0.3/concepts/platform-and-environment.html +++ b/guides/0.3/concepts/platform-and-environment.html @@ -3,14 +3,14 @@ -Platform and Environment | Credo - +Platform and Environment | Credo +
Version: v0.3.x

Platform and Environment

Aries framework JavaScript is developed to support a Node.JS and React Native environment. With this it is entirely possible to build an entire SSI ecosystem with Aries Framework JavaScript. This would use Node.JS as an issuer as a verifier, and uses React Native as a holder.

- + \ No newline at end of file diff --git a/guides/0.3/ecosystem.html b/guides/0.3/ecosystem.html index 7252976b..6d38d995 100644 --- a/guides/0.3/ecosystem.html +++ b/guides/0.3/ecosystem.html @@ -3,15 +3,15 @@ -The Aries JavaScript Ecosystem | Credo - +The Aries JavaScript Ecosystem | Credo +
Version: v0.3.x

The Aries JavaScript Ecosystem

The Aries JavaScript ecosystem includes various components that are spread across multiple repositories. In this section we'll go over what these components are and how the relate to one another.

Repositories

Currently, Aries JavaScript is composed out of three separate repositories:

  1. Aries Framework JavaScript
  2. Aries Framework JavaScript Extensions
  3. Aries Mobile Agent React Native (Bifold)

Documentation

You can find their documentation here:

  1. Aries Framework JavaScript
  2. Aries Framework JavaScript Extensions
  3. Aries Mobile Agent React Native (Bifold)

Aries Framework JavaScript

Aries Framework JavaScript (AFJ) is at the core of the Aries JavaScript ecosystem. AFJ provides all the functionality related to cryptography, storage, messaging and more that is required

Contributing in the Aries JS Ecosystem

Consider attending our weekly meetings to become aware of the current development cadence.

Developer Contributions

Each project maintains its own CONTRIBUTING guidance:

Each project has a significant set of developer conventions, checklists, templates, and actions to provide guidance and boundaries for a contribution. Consider looking at previous issues and their corresponding PRs to get a sense of the latest.

- + \ No newline at end of file diff --git a/guides/0.3/extensions.html b/guides/0.3/extensions.html index 91b3c3b3..2970c2bd 100644 --- a/guides/0.3/extensions.html +++ b/guides/0.3/extensions.html @@ -3,14 +3,14 @@ -Extensions | Credo - +Extensions | Credo +
Version: v0.3.x

Extensions

Aries Framework JavaScript Extensions is an extensions repository to Aries Framework JavaScript (AFJ). It hosts libraries built on top of Aries Framework JavaScript that don't necessarily belong to the core of the project.

Currently, there are four packages in the extension repository. Example extension libraries include React Hooks for AFJ and a REST API wrapper.

PackageVersionDescription
@aries-framework/redux-store@aries-framework/redux-store versionRedux toolkit wrapper around Aries Framework JavaScript
@aries-framework/rest@aries-framework/rest versionRest endpoint wrapper for using your agent over HTTP
@aries-framework/react-hooks@aries-framework/react-hooks versionReact Hooks for data handling and agent interaction
@aries-framework/push-notifications@aries-framework/push-notifications versionPush notification plugin for Aries Framework JavaScript
- + \ No newline at end of file diff --git a/guides/0.3/extensions/push-notifications.html b/guides/0.3/extensions/push-notifications.html index e0b856ef..159afd38 100644 --- a/guides/0.3/extensions/push-notifications.html +++ b/guides/0.3/extensions/push-notifications.html @@ -3,14 +3,14 @@ -Push Notifications | Credo - +Push Notifications | Credo +
Version: v0.3.x

Push Notifications

The Push Notifications plugin package provides a way for you to register your APNs and Firebase push notification token at an agent, allowing you to use push notifications directly from AFJ.

- + \ No newline at end of file diff --git a/guides/0.3/extensions/push-notifications/setup.html b/guides/0.3/extensions/push-notifications/setup.html index 857fc069..4d08f8ce 100644 --- a/guides/0.3/extensions/push-notifications/setup.html +++ b/guides/0.3/extensions/push-notifications/setup.html @@ -3,14 +3,14 @@ -Setup | Credo - +Setup | Credo +
Version: v0.3.x

Setup

To use the Push Notifications package, you need to have set up Aries Framework JavaScript according to the AFJ repository (See Getting Started section).

Then add the Push Notifications plugin package to your project:

npm i @aries-framework/push-notifications
- + \ No newline at end of file diff --git a/guides/0.3/extensions/react-hooks.html b/guides/0.3/extensions/react-hooks.html index 8c52b236..7c4eec5b 100644 --- a/guides/0.3/extensions/react-hooks.html +++ b/guides/0.3/extensions/react-hooks.html @@ -3,14 +3,14 @@ -React Hooks | Credo - +React Hooks | Credo +
Version: v0.3.x

React Hooks

The React Hooks package exposes useful React hooks that allow you to easily interact with AFJ from a React client application.

These hooks provide a simple way to query agent data in a client application, allowing you to focus on the user interface.

- + \ No newline at end of file diff --git a/guides/0.3/extensions/react-hooks/setup.html b/guides/0.3/extensions/react-hooks/setup.html index e575e940..97a30d7b 100644 --- a/guides/0.3/extensions/react-hooks/setup.html +++ b/guides/0.3/extensions/react-hooks/setup.html @@ -3,14 +3,14 @@ -Setup | Credo - +Setup | Credo +
Version: v0.3.x

Setup

To use the React Hooks package, you need to have set up Aries Framework JavaScript according to the AFJ repository (See Getting Started section).

Installation

To add the React Hooks package to your project (after completing the setup step above), simply run:

npm i @aries-framework/react-hooks
- + \ No newline at end of file diff --git a/guides/0.3/extensions/redux-store.html b/guides/0.3/extensions/redux-store.html index ff5cd980..07871d56 100644 --- a/guides/0.3/extensions/redux-store.html +++ b/guides/0.3/extensions/redux-store.html @@ -3,14 +3,14 @@ -Redux Store | Credo - +Redux Store | Credo +
Version: v0.3.x

Redux Store

The Redux Store is an implementation of state management that can be used to build React & React Native SSI clients using AFJ.

The Redux Store allows you to integrate state management for the most important parts of using AFJ in a client application (mediation, connections, credentials and proofs), allowing you to sync UI state with the state of the agent as it interacts with other agents through the framework.

- + \ No newline at end of file diff --git a/guides/0.3/extensions/redux-store/setup.html b/guides/0.3/extensions/redux-store/setup.html index dbd1e83d..f52a01d5 100644 --- a/guides/0.3/extensions/redux-store/setup.html +++ b/guides/0.3/extensions/redux-store/setup.html @@ -3,14 +3,14 @@ -Setup | Credo - +Setup | Credo +
Version: v0.3.x

Setup

To use the Redux Store package, you need to have set up Aries Framework JavaScript according to the AFJ repository (See Getting Started section).

Installation

To add the Redux Store package to your project (after completing the setup step above), simply run:

npm i @aries-framework/redux-store
- + \ No newline at end of file diff --git a/guides/0.3/extensions/rest.html b/guides/0.3/extensions/rest.html index a9712f68..54c50582 100644 --- a/guides/0.3/extensions/rest.html +++ b/guides/0.3/extensions/rest.html @@ -3,14 +3,14 @@ -REST API | Credo - +REST API | Credo +
Version: v0.3.x

REST API

The Aries Framework JavaScript (AFJ) REST API provides simple RESTful endpoints for AFJ methods, to allow you stand up an agent for communication over the internet instantly. You simply provide your agent configuration. The REST endpoints allow you to interact with your agent over HTTP and WebSockets.

The AFJ REST API is the most convenient way for self-sovereign identity (SSI) developers to interact with SSI agents.

  • Endpoints to create connections, issue credentials, and request proofs.
  • 💻 CLI that makes it super easy to start an instance of the REST API.
  • 🌐 Interoperable with all major Aries implementations.
- + \ No newline at end of file diff --git a/guides/0.3/extensions/rest/setup.html b/guides/0.3/extensions/rest/setup.html index 3eeeaa5b..b5a73b4b 100644 --- a/guides/0.3/extensions/rest/setup.html +++ b/guides/0.3/extensions/rest/setup.html @@ -3,15 +3,15 @@ -Setup | Credo - +Setup | Credo +
Version: v0.3.x

Setup

This guide assumes you have followed the install guides for the framework (See Getting Started section) for your platform and a valid Node.js project setup.

Quick Setup

Using the CLI is the easiest way to get started with REST API.

You can do this directly on your machine.

Directly on computer

After installing and confirming that Libindy is installed, simply run:

npx -p @aries-framework/rest afj-rest start \
--label "AFJ Rest" \
--wallet-id "walletId" \
--wallet-key "walletKey" \
--endpoint http://localhost:5000 \
--admin-port 3000 \
--outbound-transport http \
--inbound-transport http 5000

The REST API provides an OpenAPI schema that can easily be viewed using the SwaggerUI that is provided with the server. The endpoint documentation can be viewed at the /docs endpoint (e.g. http://localhost:3000/docs).

Configuration

To find out all available configuration options from the CLI, you can run the CLI command with --help. This will print a full list of all available options.

npx -p @aries-framework/rest afj-rest start --help
- + \ No newline at end of file diff --git a/guides/0.3/getting-started.html b/guides/0.3/getting-started.html index cf3e5e79..678139cc 100644 --- a/guides/0.3/getting-started.html +++ b/guides/0.3/getting-started.html @@ -3,14 +3,14 @@ -Getting started | Credo - +Getting started | Credo +
Version: v0.3.x

Getting started

In this section we will go over everything you need to get started on a technical level. First there are specific installation guides for NodeJS and React Native. Aries JavaScript works for creating both server-side application (commonly but not always issuer and verifier) and mobile applications (commonly holder apps). Depending on your use case you can follow the installation guides for NodeJS, React Native, or both.

After the installation of your prerequisites is complete, we'll walk you through the initial setup of the framework.

- + \ No newline at end of file diff --git a/guides/0.3/getting-started/installation.html b/guides/0.3/getting-started/installation.html index 65bada17..dce96dde 100644 --- a/guides/0.3/getting-started/installation.html +++ b/guides/0.3/getting-started/installation.html @@ -3,14 +3,14 @@ -Installation | Credo - +Installation | Credo +
Version: v0.3.x

Installation

In order to work with the Aries JavaScript Ecosystem, you first have to setup your work environment. We strive to create an easy and accessible ecosystem, so the prerequisites are not too large.

Feel free to click through all the installation guides and setup, if you're looking for specifics however, you can see a summary below.

Very simply put:

Do you want to build a mobile app?

Do you want to build a server-side app?

- + \ No newline at end of file diff --git a/guides/0.3/getting-started/installation/nodejs.html b/guides/0.3/getting-started/installation/nodejs.html index 5b9d3c17..ad8dc9ec 100644 --- a/guides/0.3/getting-started/installation/nodejs.html +++ b/guides/0.3/getting-started/installation/nodejs.html @@ -3,8 +3,8 @@ -NodeJS | Credo - +NodeJS | Credo + @@ -12,7 +12,7 @@
Version: v0.3.x

NodeJS

To work with Aries Framework JavaScript we need to install some dependencies. We will go over the specific installation process for each platform. Ga ahead an pick your system of choice to get started!

The specific dependencies that you will install are the following. They will come up in the installation guides, but are summarized here to give insight into what you will install.

- + \ No newline at end of file diff --git a/guides/0.3/getting-started/installation/nodejs/apple-arm.html b/guides/0.3/getting-started/installation/nodejs/apple-arm.html index f7d881cc..40dae701 100644 --- a/guides/0.3/getting-started/installation/nodejs/apple-arm.html +++ b/guides/0.3/getting-started/installation/nodejs/apple-arm.html @@ -3,8 +3,8 @@ -Apple (Arm) | Credo - +Apple (Arm) | Credo + @@ -28,7 +28,7 @@ This is something that has to be done as the library is not properly signed.

Lastly the library just has to be moved to the correct location.

If you downloaded the file in another directory, please change the first part of this command

sudo mv ~/Downloads/libindy.dylib /usr/local/lib/

Confirm installation

To see whether the indy-sdk is properly installed, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/0.3/getting-started/installation/nodejs/apple-intel.html b/guides/0.3/getting-started/installation/nodejs/apple-intel.html index 57bf3f31..cbd20795 100644 --- a/guides/0.3/getting-started/installation/nodejs/apple-intel.html +++ b/guides/0.3/getting-started/installation/nodejs/apple-intel.html @@ -3,8 +3,8 @@ -Apple (Intel) | Credo - +Apple (Intel) | Credo + @@ -22,7 +22,7 @@ tap for libindy and it will also install all of the required dependencies.

brew install blu3beri/libindy/libindy

Confirm installation

To see whether the indy-sdk is properly installed, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/0.3/getting-started/installation/nodejs/linux.html b/guides/0.3/getting-started/installation/nodejs/linux.html index 9736ce3b..171d0f7f 100644 --- a/guides/0.3/getting-started/installation/nodejs/linux.html +++ b/guides/0.3/getting-started/installation/nodejs/linux.html @@ -3,8 +3,8 @@ -Linux | Credo - +Linux | Credo + @@ -27,7 +27,7 @@ Rust.

With Rust, we can now build the indy-sdk from source.

First, clone the repository in a temporary directory:

git clone https://github.com/hyperledger/indy-sdk

Secondly, go to the correct directory

cd indy-sdk/libindy

Third, build the library

cargo build --release

Lastly, move the library to the correct location

sudo mv target/release/libindy.so /usr/lib/libindy.so

Confirm installation

To see whether the indy-sdk is properly installed, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/0.3/getting-started/installation/nodejs/windows.html b/guides/0.3/getting-started/installation/nodejs/windows.html index 45e3d343..1e9db9a9 100644 --- a/guides/0.3/getting-started/installation/nodejs/windows.html +++ b/guides/0.3/getting-started/installation/nodejs/windows.html @@ -3,8 +3,8 @@ -Windows | Credo - +Windows | Credo + @@ -21,7 +21,7 @@ System Variables. The name MUST be LD_LIBRARY_PATH and the value MUST be the path to the extracted libraries.

Confirm installation

To see whether the indy-sdk is properly installed, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/0.3/getting-started/installation/react-native.html b/guides/0.3/getting-started/installation/react-native.html index 002635c0..f416e874 100644 --- a/guides/0.3/getting-started/installation/react-native.html +++ b/guides/0.3/getting-started/installation/react-native.html @@ -3,15 +3,15 @@ -React Native | Credo - +React Native | Credo +
Version: v0.3.x

React Native

The setup for React Native is rather different than Node.js. We do not have to install dependencies on the host-platform, but for the build target. This would be the indy-sdk for Android and iOS.

Known Errors

Add setup of external storage permissions (Android)

If you find the following error when using this package:

2020-01-27 16:25:02.300 9955-10044/com.usereactnativeindysdk E/log_panics: thread 'unnamed' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }': libcore/result.rs:945

Modify onCreate method in MainActivity of your project where you want to use this library in a following way:

public class MainActivity extends ReactActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
File externalFilesDir = getExternalFilesDir(null);
String path = externalFilesDir.getAbsolutePath();
System.out.println("externalFilesDir=" + path);

try {
Os.setenv("EXTERNAL_STORAGE", path, true);
} catch (ErrnoException e) {
e.printStackTrace();
}
...
}
...
}

This should resolve the issue with permissions.

- + \ No newline at end of file diff --git a/guides/0.3/getting-started/installation/react-native/android.html b/guides/0.3/getting-started/installation/react-native/android.html index 1406973c..b2a0145b 100644 --- a/guides/0.3/getting-started/installation/react-native/android.html +++ b/guides/0.3/getting-started/installation/react-native/android.html @@ -3,8 +3,8 @@ -Android | Credo - +Android | Credo + @@ -16,7 +16,7 @@ for everything to work properly

This guide presumes that you execute every command from the root of your project

  1. create a jniLibs directory
mkdir android/app/src/main/jniLibs
  1. create the architecture specific sub-directories
mkdir android/app/src/main/jniLibs/arm64-v8a
mkdir android/app/src/main/jniLibs/armeabi-v7a
mkdir android/app/src/main/jniLibs/x86
mkdir android/app/src/main/jniLibs/x86_64
  1. Downlaod the indy-sdk libraries to the correct location
arm64-v8a
curl https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_arm64_1.16.0.zip --output arm64.zip
unzip arm64.zip
mv libindy_arm64/lib/libindy.so android/app/src/main/jniLibs/arm64-v8a/libindy.so
rm arm64.zip
armeabi-v7a
curl https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_armv7_1.16.0.zip --output armv7.zip
unzip armv7.zip
mv libindy_armv7/lib/libindy.so android/app/src/main/jniLibs/armeabi-v7a/libindy.so
rm armv7.zip
x86
curl https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_x86_1.16.0.zip --output x86.zip
unzip x86.zip
mv libindy_x86/lib/libindy.so android/app/src/main/jniLibs/x86/libindy.so
rm x86.zip
x86_64
curl https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_x86_64_1.16.0.zip --output x86_64.zip
unzip x86_64.zip
mv libindy_x86_64/lib/libindy.so android/app/src/main/jniLibs/x86_64/libindy.so
rm x86_64.zip
  1. Download the JNA libraries
arm64-v8a
curl -LO https://github.com/java-native-access/jna/raw/5.5.0/lib/native/android-aarch64.jar

jar xf android-aarch64.jar
mv libjnidispatch.so android/app/src/main/jniLibs/arm64-v8a/libjnidispatch.so
rm android-aarch64.jar libjnidispatch.so
armeabi-v7a
curl -LO https://github.com/java-native-access/jna/raw/5.5.0/lib/native/android-armv7.jar

jar xf android-armv7.jar
mv libjnidispatch.so android/app/src/main/jniLibs/armeabi-v7a/libjnidispatch.so
rm android-armv7.jar libjnidispatch.so
x86
curl -LO https://github.com/java-native-access/jna/raw/5.5.0/lib/native/android-x86.jar

jar xf android-x86.jar
mv libjnidispatch.so android/app/src/main/jniLibs/x86/libjnidispatch.so
rm android-x86.jar libjnidispatch.so
x86_64
curl -LO https://github.com/java-native-access/jna/raw/5.5.0/lib/native/android-x86-64.jar

jar xf android-x86-64.jar
mv libjnidispatch.so android/app/src/main/jniLibs/x86_64/libjnidispatch.so
rm android-x86-64.jar libjnidispatch.so
  1. Load the library inside the MainActivity.java
MainActivity.java
...
import android.os.Bundle;
import android.system.ErrnoException;
import android.system.Os;
import java.io.File;
...

public class MainActivity extends ReactActivity {
...

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

try {
Os.setenv("EXTERNAL_STORAGE", getExternalFilesDir(null).getAbsolutePath(), true);
System.loadLibrary("indy");
} catch (ErrnoException e) {
e.printStackTrace();
}
}
}
  1. Hermes

Hermes is required in order to perform ledger operations using the Indy SDK.

For more info, see this Indy-SDK issue.

React Native >= 0.70.0

Hermes is enabled by default

React Native 0.62.0 - 0.69.5

Add or adjust the following in the android/app/build.gradle to:

project.ext.react = [
enableHermes: true, // clean and rebuild if changing
]

React Native <= 0.61.5

Hermes is not required for older versions of React Native

- + \ No newline at end of file diff --git a/guides/0.3/getting-started/installation/react-native/ios.html b/guides/0.3/getting-started/installation/react-native/ios.html index f3e77595..8582ce24 100644 --- a/guides/0.3/getting-started/installation/react-native/ios.html +++ b/guides/0.3/getting-started/installation/react-native/ios.html @@ -3,14 +3,14 @@ -iOS | Credo - +iOS | Credo +
Version: v0.3.x

iOS

  1. Add the following lines to the start of your Podfile (ios/Podfile).

If a custom source is defined we also need to define the default source (which is implicit if no source is specified), explicitly:

source 'https://github.com/hyperledger/indy-sdk-react-native'
source 'https://cdn.cocoapods.org'
  1. Install the Latest CocoaPods dependencies:
cd ios
pod install
pod update Indy
  1. Configure Bitcode to no in both the project and targets

  2. Set Build Libraries for Distribution to yes in both the project and targets

This is required due to mismatching Swift versions between the Indy SDK and the application, as described in this StackOverflow Answer

  1. iOS Simulators are currently not supported and should be disabled

  2. Hermes

Hermes is recommended on iOS for application performance improvements

React Native >= 0.70.0

Hermes is enabled by default

React Native 0.64.0 - 0.69.5

Add or adjust the following in the ios/Podfile to:

     :path => config[:reactNativePath],
# to enable hermes on iOS, change `false` to `true` and then install pods
# By default, Hermes is disabled on Old Architecture, and enabled on New Architecture.
# You can enable/disable it manually by replacing `flags[:hermes_enabled]` with `true` or `false`.
- :hermes_enabled => flags[:hermes_enabled],
+ :hermes_enabled => true
)

React Native <= 0.64.0

Hermes is not required for older versions of React Native

- + \ No newline at end of file diff --git a/guides/0.3/getting-started/prerequisites.html b/guides/0.3/getting-started/prerequisites.html index ad1f18f8..7243346b 100644 --- a/guides/0.3/getting-started/prerequisites.html +++ b/guides/0.3/getting-started/prerequisites.html @@ -3,14 +3,14 @@ -Installation | Credo - +Installation | Credo +
Version: v0.3.x

Installation

In order to work with the Aries JavaScript Ecosystem, you first have to setup your work environment. We strive to create an easy and accessible ecosystem, so the prerequisites are not too large.

Feel free to click through all the installation guides and setup, if you're looking for specifics however, you can see a summary below.

Very simply put:

Do you want to build a mobile app?

Do you want to build a server-side app?

- + \ No newline at end of file diff --git a/guides/0.3/getting-started/set-up.html b/guides/0.3/getting-started/set-up.html index df70ad2e..da623d09 100644 --- a/guides/0.3/getting-started/set-up.html +++ b/guides/0.3/getting-started/set-up.html @@ -3,8 +3,8 @@ -Setup | Credo - +Setup | Credo + @@ -29,7 +29,7 @@ more depth about the reasons for this in the mediation section TODO: mediator section

import { WsOutboundTransport, HttpOutboundTransport } from '@aries-framework/core'

agent.registerOutboundTransport(new WsOutboundTransport())
agent.registerOutboundTransport(new HttpOutboundTransport())

Initializing the agent

// ...

const agent = new Agent({
config,
dependencies: agentDependencies,
})

const initialize = async () => await agent.initialize().catch(console.error)

Full code snippet

import type { InitConfig } from '@aries-framework/core'
import { Agent, HttpOutboundTransport } from '@aries-framework/core'
import { agentDependencies, HttpInboundTransport } from '@aries-framework/node'

// The agent initialization configuration
const config: InitConfig = {
label: 'docs-nodejs-agent',
walletConfig: {
id: 'wallet-id',
key: 'testkey0000000000000000000000000',
},
}

// Creating an agent instance
const agent = new Agent({
config,
dependencies: agentDependencies,
})

// Registering the required in- and outbound transports
agent.registerOutboundTransport(new HttpOutboundTransport())
agent.registerInboundTransport(new HttpInboundTransport({ port: 3000 }))

// Function to initialize the agent
const initialize = async () => await agent.initialize().catch(console.error)

Useful resources

- + \ No newline at end of file diff --git a/guides/0.3/tutorials.html b/guides/0.3/tutorials.html index a2399364..a4a2850b 100644 --- a/guides/0.3/tutorials.html +++ b/guides/0.3/tutorials.html @@ -3,8 +3,8 @@ -Tutorials | Credo - +Tutorials | Credo + @@ -12,7 +12,7 @@
- + \ No newline at end of file diff --git a/guides/0.3/tutorials/agent-config.html b/guides/0.3/tutorials/agent-config.html index 53c6c40c..3e222538 100644 --- a/guides/0.3/tutorials/agent-config.html +++ b/guides/0.3/tutorials/agent-config.html @@ -3,8 +3,8 @@ -Agent Config | Credo - +Agent Config | Credo + @@ -88,7 +88,7 @@ this. It MUST not be used got any base of authenticity.

Type: string

example
connectionImageUrl: 'https://picsum.photos/200'

autoUpdateStorageOnStartup

Whether the storage should automatically be updated when a newer version of Aries Framework JavaScript is used.

Type: boolean

Default: false

example
autoUpdateStorageOnStartup: true

- + \ No newline at end of file diff --git a/guides/0.3/tutorials/agent-config/logging.html b/guides/0.3/tutorials/agent-config/logging.html index feff92e0..6e018fc7 100644 --- a/guides/0.3/tutorials/agent-config/logging.html +++ b/guides/0.3/tutorials/agent-config/logging.html @@ -3,15 +3,15 @@ -Logging | Credo - +Logging | Credo +
Version: v0.3.x

Logging

Using the Default ConsoleLogger

To enable logging inside the framework a logger must be passed to the agent config. A simple ConsoleLogger can be imported from the framework.

import type { InitConfig } from '@aries-framework/core'
import { ConsoleLogger, LogLevel } from '@aries-framework/core'

const agentConfig: InitConfig = {
// ... other config properties ...
logger: new ConsoleLogger(LogLevel.info),
}

Creating your own Logger

For more advanced use cases the Logger interface can be implemented. See the example below.

import { Logger, LogLevel } from '@aries-framework/core'

class MyCustomLogger implements Logger {
public logLevel: LogLevel

public constructor(logLevel: LogLevel = LogLevel.off) {
this.logLevel = logLevel
}

public test(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public trace(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public debug(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public info(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public warn(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public error(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public fatal(message: string, data?: Record<string, any>): void {
console.log(message, data)
}
}

Indy Logs

To enable logging in the underlying Rust framework, either setLogger or setDefaultLogger must be called on the indy dependency, as seen here.

caution

The setLogger and setDefaultLogger methods have only been implemented in the Node.JS wrapper of the indy sdk. This won't work when importing from @aries-framework/react-native

The easiest way to do this from AFJ is through the indy property of agentDependencies.

import { agentDependencies } from '@aries-framework/node'
agentDependencies.indy.setDefaultLogger('trace')

// OR

agentDependencies.indy.setLogger((level, target, message, modulePath, file, line) => {
console.log('libindy said:', level, target, message, modulePath, file, line)
})

WARNING: You can only set the logger once. Call indy_set_default_logger, indy_set_logger, not both. Once it's been set, libindy won't let you change it.

You can also set the environment variable RUST_LOG to log at specified log levels. See https://crates.io/crates/env_logger for more information.

- + \ No newline at end of file diff --git a/guides/0.3/tutorials/create-a-connection.html b/guides/0.3/tutorials/create-a-connection.html index 68a52a86..a1e3634b 100644 --- a/guides/0.3/tutorials/create-a-connection.html +++ b/guides/0.3/tutorials/create-a-connection.html @@ -3,8 +3,8 @@ -Create a connection | Credo - +Create a connection | Credo + @@ -39,7 +39,7 @@ should be editted to fit your use case. The walletConfig.key must be changed as it can lead to other people knowing your "password" to your wallet.

import {
Agent,
InitConfig,
ConnectionEventTypes,
ConnectionStateChangedEvent,
WsOutboundTransport,
HttpOutboundTransport,
DidExchangeState,
OutOfBandRecord,
} from '@aries-framework/core'
import { agentDependencies, HttpInboundTransport } from '@aries-framework/node'

const initializeBobAgent = async () => {
// Simple agent configuration. This sets some basic fields like the wallet
// configuration and the label. It also sets the mediator invitation url,
// because this is most likely required in a mobile environment.
const config: InitConfig = {
label: 'demo-agent-bob',
walletConfig: {
id: 'mainBob',
key: 'demoagentbob00000000000000000000',
},
autoAcceptConnections: true,
}

// A new instance of an agent is created here
const agent = new Agent({ config, dependencies: agentDependencies })

// Register a simple `WebSocket` outbound transport
agent.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
agent.registerOutboundTransport(new HttpOutboundTransport())

// Initialize the agent
await agent.initialize()

return agent
}

const initializeAcmeAgent = async () => {
// Simple agent configuration. This sets some basic fields like the wallet
// configuration and the label.
const config: InitConfig = {
label: 'demo-agent-acme',
walletConfig: {
id: 'mainAcme',
key: 'demoagentacme0000000000000000000',
},
autoAcceptConnections: true,
endpoints: ['http://localhost:3001'],
}

// A new instance of an agent is created here
const agent = new Agent({ config, dependencies: agentDependencies })

// Register a simple `WebSocket` outbound transport
agent.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
agent.registerOutboundTransport(new HttpOutboundTransport())

// Register a simple `Http` inbound transport
agent.registerInboundTransport(new HttpInboundTransport({ port: 3001 }))

// Initialize the agent
await agent.initialize()

return agent
}

const createNewInvitation = async (agent: Agent) => {
const outOfBandRecord = await agent.oob.createInvitation()

return {
invitationUrl: outOfBandRecord.outOfBandInvitation.toUrl({ domain: 'https://example.org' }),
outOfBandRecord,
}
}

const createLegacyInvitation = async (agent: Agent) => {
const { invitation } = await agent.oob.createLegacyInvitation()

return invitation.toUrl({ domain: 'https://example.org' })
}

const receiveInvitation = async (agent: Agent, invitationUrl: string) => {
const { outOfBandRecord } = await agent.oob.receiveInvitationFromUrl(invitationUrl)

return outOfBandRecord
}

const setupConnectionListener = (agent: Agent, outOfBandRecord: OutOfBandRecord, cb: (...args: any) => void) => {
agent.events.on<ConnectionStateChangedEvent>(ConnectionEventTypes.ConnectionStateChanged, ({ payload }) => {
if (payload.connectionRecord.outOfBandId !== outOfBandRecord.id) return
if (payload.connectionRecord.state === DidExchangeState.Completed) {
// the connection is now ready for usage in other protocols!
console.log(`Connection for out-of-band id ${outOfBandRecord.id} completed`)

// Custom business logic can be included here
// In this example we can send a basic message to the connection, but
// anything is possible
cb()

// We exit the flow
process.exit(0)
}
})
}


const run = async () => {
console.log('Initializing Bob agent...')
const bobAgent = await initializeBobAgent()
console.log('Initializing Acme agent...')
const acmeAgent = await initializeAcmeAgent()

console.log('Creating the invitation as Acme...')
const { outOfBandRecord, invitationUrl } = await createNewInvitation(acmeAgent)

console.log('Listening for connection changes...')
setupConnectionListener(acmeAgent, outOfBandRecord, () =>
console.log('We now have an active connection to use in the following tutorials')
)

console.log('Accepting the invitation as Bob...')
await receiveInvitation(bobAgent, invitationUrl)
}

export default run

void run()

Useful resources

- + \ No newline at end of file diff --git a/guides/0.3/tutorials/issue-a-credential.html b/guides/0.3/tutorials/issue-a-credential.html index bad82868..713f00cb 100644 --- a/guides/0.3/tutorials/issue-a-credential.html +++ b/guides/0.3/tutorials/issue-a-credential.html @@ -3,8 +3,8 @@ -Issue a credential | Credo - +Issue a credential | Credo + @@ -63,7 +63,7 @@ lead to other people knowing your "password" to your wallet.

import {
InitConfig,
Agent,
WsOutboundTransport,
HttpOutboundTransport,
ConnectionEventTypes,
ConnectionStateChangedEvent,
DidExchangeState,
AutoAcceptCredential,
CredentialEventTypes,
CredentialState,
CredentialStateChangedEvent,
OutOfBandRecord,
} from '@aries-framework/core'
import { agentDependencies, HttpInboundTransport } from '@aries-framework/node'
import { Schema } from 'indy-sdk'
import fetch from 'node-fetch'

const getGenesisTransaction = async (url: string) => {
// Legacy code has a small issue with the call-signature from node-fetch
// @ts-ignore
const response = await fetch(url)

return await response.text()
}

const initializeHolderAgent = async () => {
const genesisTransactionsBCovrinTestNet = await getGenesisTransaction('http://test.bcovrin.vonx.io/genesis')
// Simple agent configuration. This sets some basic fields like the wallet
// configuration and the label. It also sets the mediator invitation url,
// because this is most likely required in a mobile environment.
const config: InitConfig = {
label: 'demo-agent-holder',
walletConfig: {
id: 'demo-agent-holder',
key: 'demoagentholder00000000000000000',
},
indyLedgers: [
{
id: 'bcovrin-test-net',
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: genesisTransactionsBCovrinTestNet,
},
],
autoAcceptCredentials: AutoAcceptCredential.ContentApproved,
autoAcceptConnections: true,
endpoints: ['http://localhost:3002'],
}

// A new instance of an agent is created here
const agent = new Agent({ config, dependencies: agentDependencies })

// Register a simple `WebSocket` outbound transport
agent.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
agent.registerOutboundTransport(new HttpOutboundTransport())

// Register a simple `Http` inbound transport
agent.registerInboundTransport(new HttpInboundTransport({ port: 3002 }))

// Initialize the agent
await agent.initialize()

return agent
}

const initializeIssuerAgent = async () => {
const genesisTransactionsBCovrinTestNet = await getGenesisTransaction('http://test.bcovrin.vonx.io/genesis')
// Simple agent configuration. This sets some basic fields like the wallet
// configuration and the label.
const config: InitConfig = {
label: 'demo-agent-issuer',
walletConfig: {
id: 'demo-agent-issuer',
key: 'demoagentissuer00000000000000000',
},
publicDidSeed: 'demoissuerdidseed000000000000000',
indyLedgers: [
{
id: 'bcovrin-test-net',
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: genesisTransactionsBCovrinTestNet,
},
],
autoAcceptCredentials: AutoAcceptCredential.ContentApproved,
autoAcceptConnections: true,
endpoints: ['http://localhost:3001'],
}

// A new instance of an agent is created here
const agent = new Agent({ config, dependencies: agentDependencies })

// Register a simple `WebSocket` outbound transport
agent.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
agent.registerOutboundTransport(new HttpOutboundTransport())

// Register a simple `Http` inbound transport
agent.registerInboundTransport(new HttpInboundTransport({ port: 3001 }))

// Initialize the agent
await agent.initialize()

return agent
}

const registerSchema = async (issuer: Agent) =>
issuer.ledger.registerSchema({ attributes: ['name', 'age'], name: 'Identity', version: '1.0' })

const registerCredentialDefinition = async (issuer: Agent, schema: Schema) =>
issuer.ledger.registerCredentialDefinition({ schema, supportRevocation: false, tag: 'default' })

const setupCredentialListener = (holder: Agent) => {
holder.events.on<CredentialStateChangedEvent>(CredentialEventTypes.CredentialStateChanged, async ({ payload }) => {
switch (payload.credentialRecord.state) {
case CredentialState.OfferReceived:
console.log('received a credential')
// custom logic here
await holder.credentials.acceptOffer({ credentialRecordId: payload.credentialRecord.id })
case CredentialState.Done:
console.log(`Credential for credential id ${payload.credentialRecord.id} is accepted`)
// For demo purposes we exit the program here.
process.exit(0)
}
})
}

const issueCredential = async (issuer: Agent, credentialDefinitionId: string, connectionId: string) =>
issuer.credentials.offerCredential({
protocolVersion: 'v1',
connectionId,
credentialFormats: {
indy: {
credentialDefinitionId,
attributes: [
{ name: 'name', value: 'Jane Doe' },
{ name: 'age', value: '23' },
],
},
},
})

const createNewInvitation = async (issuer: Agent) => {
const outOfBandRecord = await issuer.oob.createInvitation()

return {
invitationUrl: outOfBandRecord.outOfBandInvitation.toUrl({ domain: 'https://example.org' }),
outOfBandRecord,
}
}

const receiveInvitation = async (holder: Agent, invitationUrl: string) => {
const { outOfBandRecord } = await holder.oob.receiveInvitationFromUrl(invitationUrl)

return outOfBandRecord
}

const setupConnectionListener = (
issuer: Agent,
outOfBandRecord: OutOfBandRecord,
cb: (...args: any) => Promise<unknown>
) => {
issuer.events.on<ConnectionStateChangedEvent>(ConnectionEventTypes.ConnectionStateChanged, async ({ payload }) => {
if (payload.connectionRecord.outOfBandId !== outOfBandRecord.id) return
if (payload.connectionRecord.state === DidExchangeState.Completed) {
// the connection is now ready for usage in other protocols!
console.log(`Connection for out-of-band id ${outOfBandRecord.id} completed`)

// Custom business logic can be included here
// In this example we can send a basic message to the connection, but
// anything is possible
await cb(payload.connectionRecord.id)
}
})
}

const flow = (issuer: Agent) => async (connectionId: string) => {
console.log('Registering the schema...')
const schema = await registerSchema(issuer)
console.log('Registering the credential definition...')
const credentialDefinition = await registerCredentialDefinition(issuer, schema)
console.log('Issuing the credential...')
await issueCredential(issuer, credentialDefinition.id, connectionId)
}

const run = async () => {
console.log('Initializing the holder...')
const holder = await initializeHolderAgent()
console.log('Initializing the issuer...')
const issuer = await initializeIssuerAgent()

console.log('Initializing the credential listener...')
setupCredentialListener(holder)

console.log('Initializing the connection...')
const { outOfBandRecord, invitationUrl } = await createNewInvitation(issuer)
setupConnectionListener(issuer, outOfBandRecord, flow(issuer))
await receiveInvitation(holder, invitationUrl)
}

void run()

Useful resources

Side notes

As of v0.3.0 you should keep in mind that:

  1. When when attempting to register a credential that already exists on the ledger but is not in your wallet, AFJ will throw an error (as opposed to returning the credential definition from the ledger in prior versions)
  2. Attempting to register a new credential definition that is already in the wallet in AFJ will return the stored definition without attempting to register it on the ledger.

These choices are intentional. In case 1, it is assumed that this workflow is a mistake. In case 2. it is assumed that having registered the credential on the ledger is implied.

- + \ No newline at end of file diff --git a/guides/0.3/tutorials/postgres-database-nodejs.html b/guides/0.3/tutorials/postgres-database-nodejs.html index d7366757..5f353c92 100644 --- a/guides/0.3/tutorials/postgres-database-nodejs.html +++ b/guides/0.3/tutorials/postgres-database-nodejs.html @@ -3,14 +3,14 @@ -Using PostgreSQL as Database in Node.js | Credo - +Using PostgreSQL as Database in Node.js | Credo +
Version: v0.3.x

Using PostgreSQL as Database in Node.js

By default the Indy SDK will use an SQLite database for storage. In mobile environments this is sufficient and allows us to keep storage local to the device, but in server environments we oftentimes want a more scalable storage solution. By leveraging the PostgreSQL plugin for Indy SDK we can use PostgreSQL as a storage solution instead of SQLite.

This document describes the installation process of the Postgres plugin for IndySDK and how you need to configure AFJ to use it.

Installation of the Postgres Plugin

For installation of the Postgres plugin, please refer to the platform specific guides:

Using the Postgres Plugin in AFJ

import { Agent, InitConfig } from '@aries-framework/core'
import { agentDependencies, IndyPostgresStorageConfig, loadPostgresPlugin, WalletScheme } from '@aries-framework/node'

// IndyPostgresStorageConfig defines interface for the Postgres plugin configuration.
const storageConfig: IndyPostgresStorageConfig = {
type: 'postgres_storage',
config: {
url: 'localhost:5432',
wallet_scheme: WalletScheme.DatabasePerWallet,
},
credentials: {
account: 'postgres',
password: 'postgres',
admin_account: 'postgres',
admin_password: 'postgres',
},
}

// load the postgres wallet plugin before agent initialization
loadPostgresPlugin(storageConfig.config, storageConfig.credentials)

const agentConfig: InitConfig = {
label: 'My Agent',
// walletConfig.id and walletConfig.key are still required
walletConfig: {
id: 'walletId',
key: 'testKey0000000000000000000000000',
// storage is added and defines the postgres plugin configuration
storage: storageConfig,
},
}

const agent = new Agent({
config: agentConfig,
dependencies: agentDependencies,
})
- + \ No newline at end of file diff --git a/guides/0.3/tutorials/postgres-database-nodejs/linux.html b/guides/0.3/tutorials/postgres-database-nodejs/linux.html index 0d809e5a..3d1a57d8 100644 --- a/guides/0.3/tutorials/postgres-database-nodejs/linux.html +++ b/guides/0.3/tutorials/postgres-database-nodejs/linux.html @@ -3,14 +3,14 @@ -Postgres Setup for Linux | Credo - +Postgres Setup for Linux | Credo +
Version: v0.3.x

Postgres Setup for Linux

Prerequisites

  • A system package manager (like apt, pacman, etc.)
  • Cargo (We have to build Postgres plugin from source)
  • git (to clone a repo, could also be done with downloading the zip from the Github page)

Step 1: installing the dependencies using apt

Debian based (Ubuntu, Mint, Kali, Deepin, etc.)

sudo apt install libzmq3-dev libsodium-dev libssl-dev

Step 2: Build Postgres plugin

Building Postgres plugin from the indy-sdk repo with cargo.

Step 2.1: Cloning the indy-sdk

git clone https://github.com/hyperledger/indy-sdk.git

cd indy-sdk/experimental/plugins/postgres_storage

Step 2.2: Building Postgres plugin

If this step throws any errors, it might be because you miss some packages. Step 1 of this guide provided the dependencies that are required, but it also assumed that you have some basic development packages installed. If you are missing some packages, you can install them with your package manager.

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

cargo build --release

Step 2.3: Moving the file

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

sudo mv ./target/release/libindystrgpostgres.so /usr/local/lib/libindystrgpostgres.so
- + \ No newline at end of file diff --git a/guides/0.3/tutorials/postgres-database-nodejs/macos.html b/guides/0.3/tutorials/postgres-database-nodejs/macos.html index 3e65ffab..b63db830 100644 --- a/guides/0.3/tutorials/postgres-database-nodejs/macos.html +++ b/guides/0.3/tutorials/postgres-database-nodejs/macos.html @@ -3,14 +3,14 @@ -Postgres Setup for macOS | Credo - +Postgres Setup for macOS | Credo +
Version: v0.3.x

Postgres Setup for macOS

Note: We have tried to build on both intel and apple silicon.

Prerequisites

  • Homebrew
  • Cargo (We have to build Postgres plugin from source)
  • git (to clone a repo, could also be done with downloading the zip from the GitHub page)

Step 1: installing the dependencies using brew

brew install libsodium zeromq

Step 2: Build Postgres plugin

Building Postgres plugin from the indy-sdk repo with cargo.

Step 2.1: Cloning the indy-sdk

git clone https://github.com/hyperledger/indy-sdk.git

cd indy-sdk/experimental/plugins/postgres_storage

Step 2.2: Building Postgres plugin

If this step throws any errors, it might be because you miss some packages. Step 1 of this guide provided the dependencies that are required, but it also assumed that you have some basic development packages installed. If you are missing some packages, you can install them with your package manager.

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

cargo build --release

Step 2.3: Moving the file

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

sudo mv ./target/release/libindystrgpostgres.dylib /usr/local/lib/libindystrgpostgres.dylib
- + \ No newline at end of file diff --git a/guides/0.3/tutorials/postgres-database-nodejs/windows.html b/guides/0.3/tutorials/postgres-database-nodejs/windows.html index aa433c51..d2ece892 100644 --- a/guides/0.3/tutorials/postgres-database-nodejs/windows.html +++ b/guides/0.3/tutorials/postgres-database-nodejs/windows.html @@ -3,14 +3,14 @@ -Postgres Setup for windows | Credo - +Postgres Setup for windows | Credo +
Version: v0.3.x

Postgres Setup for windows

Build Environment Prerequisites

  1. Download and install Visual Studio Community Edition 2022
  2. Install git for windows
  3. Download rust for windows here
  4. Make sure you have already setup a libindy for windows from here

Step 1: Getting dependencies

  • Download the prebuilt dependencies here
  • Extract them
  • Point path to this directory using environment variables:
    • set INDY_PREBUILT_DEPS_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set INDY_CRYPTO_PREBUILT_DEPS_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set MILAGRO_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set LIBZMQ_PREFIX=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set SODIUM_LIB_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set OPENSSL_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set PATH=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps\lib

Step 2: Build Postgres plugin

Building Postgres plugin from the indy-sdk repo with cargo.

Step 2.1: Cloning the indy-sdk

git clone https://github.com/hyperledger/indy-sdk.git

cd indy-sdk\experimental\plugins\postgres_storage

Step 2.2: Building Postgres plugin

If this step throws any errors, it might be because of the environment. Step 1 of this guide provided the dependencies that are required.

cargo build --release --target x86_64-pc-windows-msvc

The library indystrgpostgres.dll file will be located at indy-sdk\experimental\plugins\postgres_storage\target\x86_64-pc-windows-msvc\release

Step 2.3: Setting the file to PATH

  • set LIB_INDY_STRG_POSTGRES=C:\Users\{WINDOWS_USER}\Downloads\indy-sdklexperimental\plugins\postgres_storage\target\x86_64-pc-windows-msvc\release

or Alternatively you can copy the indystrgpostgres.dll file to c:\\windows\\system32\\

- + \ No newline at end of file diff --git a/guides/0.3/updating.html b/guides/0.3/updating.html index 8e0f06ad..f7418c76 100644 --- a/guides/0.3/updating.html +++ b/guides/0.3/updating.html @@ -3,14 +3,14 @@ -Updating AFJ | Credo - +Updating AFJ | Credo +
Version: v0.3.x

Updating AFJ

This section will cover everything you need to know about updating Aries Framework JavaScript to a newer version.

Versioning

Aries Framework JavaScript follows semantic versioning. This means that major version changes (1.0.0) are considered breaking changes. When features are added this is a minor version change (0.1.0). For bug fixes the patch version change is used (0.0.1).

While AFJ is still in pre-1.0.0 version, the version change types are shifted to the right. This means a major version change is now a minor change (0.1.0) and a minor change is now a patch change (0.0.1). This is done to keep the version below 1.0.0, indicating the framework is still in early development and users can expect more breaking changes that when the version has already reached 1.0.0.

This means if the second number in the version (0.1.0) changes, you need to be careful with updating and always consult this page for update instructions. If only the third number changes (0.0.1), you can update without any issues.

Types of breaking changes

Updates to AFJ bring new features and improvements to the framework. To better adapt the framework to new features we sometimes make breaking changes that will improve how AFJ works. There's two parts to updates with breaking changes:

  1. Breaking code changes
  2. Breaking storage changes

Breaking Code Changes

Breaking changes to code means changes to how you interact with AFJ. This includes methods being renamed, moved to another module or extended to better integrate with new features. We'll try to cover all breaking changes in migration guides, so you know exactly what is needed to update to a new version and keep the same functionality.

info

If you encounter any breaking changes that aren't mentioned in the migration docs, please open an issue in the Aries JavaScript Docs repository, or directly create a PR describing the change.

Breaking Storage Changes

Breaking changes to storage are a bit more complex to deal with. While breaking changes to code only require you to update your code once, breaking changes to storage needs to be updated for every agent instance. Luckily, we've made the migration as easy as possible for you using the Update Assistant. The Update Assistant will update all storage objects to the storage model that is expected by the newest version. If a version made changes to the storage, this will be explicitly mentioned in the migration guide. See the Update Assistant documentation for detailed instructions on how to use the update assistant.

Migration Guides

Currently the following migration guides are available:

- + \ No newline at end of file diff --git a/guides/0.3/updating/update-assistant.html b/guides/0.3/updating/update-assistant.html index 92cc9bb4..9f9ade62 100644 --- a/guides/0.3/updating/update-assistant.html +++ b/guides/0.3/updating/update-assistant.html @@ -3,14 +3,14 @@ -Update Assistant | Credo - +Update Assistant | Credo +
Version: v0.3.x

Update Assistant

The Update Assistant helps you update the storage objects from AFJ to newer versions. This documents describes the different ways you can leverage the Update Assistant from fully managed to more manual approaches.

Update Strategies

There are three options on how to leverage the update assistant on agent startup:

  1. Manually instantiating the update assistant on agent startup
  2. Storing the agent storage version outside of the agent storage
  3. Automatically update on agent startup

Manually instantiating the update assistant on agent startup

When the version of the storage is stored inside the agent storage, it means we need to check if the agent needs to be updated on every agent startup. We'll initialize the update assistant and check whether the storage is up to date. The advantage of this approach is that you don't have to store anything yourself, and have full control over the workflow.

import { UpdateAssistant, Agent } from '@aries-framework/core'

// or @aries-framework/node
import { agentDependencies } from '@aries-framework/react-native'

// First create the agent
const agent = new Agent({
config,
dependencies: agentDependencies,
})

// Then initialize the update assistant with the update config
const updateAssistant = new UpdateAssistant(agent, {
v0_1ToV0_2: {
mediationRoleUpdateStrategy: 'allMediator',
},
})

// Initialize the update assistant so we can read the current storage version
// from the wallet. If you manually initialize the wallet you should do this _before_
// calling initialize on the update assistant
// await agent.wallet.initialize(walletConfig)
await updateAssistant.initialize()

// Check if the agent is up to date, if not call update
if (!(await updateAssistant.isUpToDate())) {
await updateAssistant.update()
}

// Once finished initialize the agent. You should do this on every launch of the agent
await agent.initialize()

Storing the agent storage version outside of the agent storage

When the version of the storage is stored outside of the agent storage, you don't have to initialize the UpdateAssistant on every agent agent startup. You can just check if the storage version is up to date and instantiate the UpdateAssistant if not. The advantage of this approach is that you don't have to instantiate the UpdateAssistant on every agent startup, but this does mean that you have to store the storage version yourself.

When a wallet has been exported and later imported you don't always have the latest version available. If this is the case you can always rely on Method 1 or 2 for updating the wallet, and storing the version yourself afterwards. You can also get the current version by calling await updateAssistant.getCurrentAgentStorageVersion(). Do note the UpdateAssistant needs to be initialized before calling this method.

import { UpdateAssistant, Agent } from '@aries-framework/core'

// or @aries-framework/node
import { agentDependencies } from '@aries-framework/react-native'

// The storage version will normally be stored in e.g. persistent storage on a mobile device
let currentStorageVersion: VersionString = '0.1'

// First create the agent
const agent = new Agent({
config,
dependencies: agentDependencies,
})

// We only initialize the update assistant if our stored version is not equal
// to the frameworkStorageVersion of the UpdateAssistant. The advantage of this
// is that we don't have to initialize the UpdateAssistant to retrieve the current
// storage version.
if (currentStorageVersion !== UpdateAssistant.frameworkStorageVersion) {
const updateAssistant = new UpdateAssistant(agent, {
v0_1ToV0_2: {
mediationRoleUpdateStrategy: 'recipientIfEndpoint',
},
})

// Same as with the previous strategy, if you normally call agent.wallet.initialize() manually
// you need to call this before calling updateAssistant.initialize()
await updateAssistant.initialize()

await updateAssistant.update()

// Store the version so we can leverage it during the next agent startup and don't have
// to initialize the update assistant again until a new version is released
currentStorageVersion = UpdateAssistant.frameworkStorageVersion
}

// Once finished initialize the agent. You should do this on every launch of the agent
await agent.initialize()

Automatically update on agent startup

This is by far the easiest way to update the agent, but has the least amount of flexibility and is not configurable. This means you will have to use the default update options to update the agent storage. You can find the default update config in the respective version migration guides (e.g. in 0.1-to-0.2).

import { UpdateAssistant, Agent } from '@aries-framework/core'

// or @aries-framework/node
import { agentDependencies } from '@aries-framework/react-native'

// First create the agent, setting the autoUpdateStorageOnStartup option to true
const agent = new Agent({
config: {
...config,
autoUpdateStorageOnStartup: true,
},
dependencies: agentDependencies,
})

// Then we call initialize, which under the hood will call the update assistant if the storage is not update to date.
await agent.initialize()

Backups

Before starting the update, the update assistant will automatically create a backup of the wallet. If the migration succeeds the backup won't be used. If the backup fails, another backup will be made of the migrated wallet, after which the backup will be restored.

The backups can be found at the following locations. The backupIdentifier is generated at the start of the update process and generated based on the current timestamp.

  • Backup path: ${agent.config.fileSystem.basePath}/afj/migration/backup/${backupIdentifier}
  • Migration backup: ${agent.config.fileSystem.basePath}/afj/migration/backup/${backupIdentifier}-error

In the future the backup assistant will make a number of improvements to the recovery process. Namely:

  • Do not throw an error if the update fails, but rather return an object that contains the status, and include the backup paths and backup identifiers.
- + \ No newline at end of file diff --git a/guides/0.3/updating/versions/0.1-to-0.2.html b/guides/0.3/updating/versions/0.1-to-0.2.html index d730d9f2..3d51b017 100644 --- a/guides/0.3/updating/versions/0.1-to-0.2.html +++ b/guides/0.3/updating/versions/0.1-to-0.2.html @@ -3,8 +3,8 @@ -Migrating from AFJ 0.1.0 to 0.2.x | Credo - +Migrating from AFJ 0.1.0 to 0.2.x | Credo + @@ -12,7 +12,7 @@
Version: v0.3.x

Migrating from AFJ 0.1.0 to 0.2.x

This document describes everything you need to know for updating AFJ 0.1.0 to 0.2.x. If you're not aware of how updating in AFJ works make sure to first read the guide on Updating AFJ.

First of all, update you dependencies to the 0.2.x versions. This will also update the needed peer depedencnies. Extension packages are not updated with this command. You need to update these manually, and make sure they're up to date with the latest version of AFJ.

yarn add @aries-framework/react-native@^0.2.0 @aries-framework/core@^0.2.0 indy-sdk-react-native@^0.2.0

# or NPM
npn install @aries-framework/react-native@^0.2.0 @aries-framework/core@^0.2.0 indy-sdk-react-native@^0.2.0

Breaking Code Changes

This section will list all breaking changes made to the public API of AFJ between version 0.1.0 and 0.2.0.

info

If you have custom modules take into account there could be a lot more breaking changes that aren't documented here. We try to make sure that the biggest breaking changes to the internal API are also documented here (e.g. see Updating Custom Messages to the New Message Type Objects), but it is possible some breaking changes are not documented here (feel free to open PRs).

Credentials Module

Module API Updates

With the addition of the issue credential v2 protocol and the preparation for multiple attachment formats (to be added in a later release), we've made some big changes to the credentials module API. Most changes are related to structure, so updating your code to the new API should be straightforward.

Basically for all methods in the credential module you should take the following steps to update your code:

  1. Move all function parameters into a single object. All module methods now take a single object that contain all properties.
  2. For methods that initiate a protocol (starting from offer, proposal), you should pass protocolVersion: 'v1' to indicate we should use the v1 protocol. (v2 is also supported, but this focuses on the breaking changes, not the new features).
  3. All indy specific attributes (e.g. credentialDefinitionId) should be passed in the credentialFormats.indy object.
  4. The preview should now be passed as only the preview attributes (the the full preview) and provided in the credentialFormats.indy object.
await agent.credentials.offerCredential('connectionId', {
autoAcceptCredential: AutoAcceptCredential.Always,
comment: 'hello',

credentialDefinitionId: 'credentialDefinitionId',
preview: new CredentialPreview({
attributes: [new CredentialPreviewAttribute({ name: 'key', value: 'value' })],
}),
})

Data from Received Messages only Stored in Record after Accepting

Previously when we received a message from another connection we would store the relevant data from the exchange in the credential record. The values we would store were the credentialDefinitionId and schemaId in the credential metadata, and the credentialAttributes field.

Starting with AFJ 0.2.0 the values are not stored in the credential record until after the message content has been accepted (in the case of an offer this means after sending the request message). This is to avoid ambiguity of the values in the credential record. If I have sent a proposal and then receive an offer, should the credential record contain the values from the proposal or the values from the offer? The first one reflects our view on what the data should be, the second one reflects the latest data.

We decided to make the record properties always hold our view of what the data should be, and only update it after accepting the contents of a received message (either using auto accept, or by calling the acceptXXX methods on the credential module).

This is an important change and requires some updates to how you extract the relevant data from the offer (or other messages such the proposal). We've added a new getFormatData method on the credentials module that allows you to retrieve the attributes and format data for all messages in an exchange. One of the advantages of this approach is that we don't have to store all relevant data in the credential record anymore, which helps when adding new formats that don't match with the attributes used for indy credentials. In addition, the return value for this method is the same whether v1 or v2 of the protocol is used. This means your code should only care about the credential format (indy in this case) and doesn't have to worry about the protocol version.

agent.events.on<CredentialStateChangedEvent>(
CredentialEventTypes.CredentialStateChanged,
({ payload: { credentialRecord } }) => {
const indyCredentialMetadata = credentialRecord.metadata.get(CredentialMetadataKeys.IndyCredential)

// Get credential definition id, schema id and attributes from offer
const credentialDefinitionId = indyCredentialMetadata?.credentialDefinitionId
const schemaId = indyCredentialMetadata?.schemaId
const attributes = credentialRecord.credentialAttributes
}
)

Messages Extracted from Credential Record

The DIDComm messages that were previously stored on the credential record, have been extracted to separate DIDComm message records. This makes it easier to work with multiple versions of the protocol internally, and keeps the credential exchange record agnostic of the protocol version. Instead of accessing the messages through the proposalMessage, offerMessage, requestMessage and credentialMessage parameters, we now expose dedicated methods on the credentials module to retrieve the message.

With the addition of the v2 messages, all v1 messages have been prefixed with V1 while v2 messages have been prefixed with V2 (V1ProposeCredentialMessage and V2ProposeCredentialMessage). If you were using these messages classes throughout your codebase, update them to use the V1 prefix.

const credentialRecord = await agent.credentials.getById('credentialRecordId')

const proposalMessage = credentialRecord.proposalMessage
const offerMessage = credentialRecord.offerMessage
const requestMessage = credentialRecord.requestMessage
const credentialMessage = credentialRecord.credentialMessage

Connections Module

Version 0.2.0 added support for the Out of Band protocol with support for the DID Exchange protocol. Internally AFJ now uses out of band invitations for all connections, even if you're connecting using the old invitations from the Connection protocol.

Creating a Legacy Invitation

The createInvitation method on the connections module has been moved to the out of band module and renamed to createLegacyInvitation. The method is not planned to be removed in the near future, the legacy merely indicates this will create an RFC 0160 connection invitation. Internally AFJ creates an out of band invitation and transforms it into a legacy invitation. If you want to create an out of band invitation instead, you should use oob.createInvitation.

const { connectionRecord, invitation } = await agent.connections.createInvitation({
/* config */
})

const invitationUrl = invitation.toUrl({ domain: 'https://example.com' })

Receiving a Legacy Invitation

The receiveInvitation and receiveInvitationFromUrl methods on the connections module have also been moved to the out of band module. Both methods support the new out of band invitations and the legacy RFC 0160 connection invitations. Internally AFJ converts the old invitations to out of band invitations.

const invitationUrl = 'https://example.com?c_i=eyXXX'

// Receive invitation directly from url
const connectionRecord = await agent.connections.receiveInvitationFromUrl(invitationUrl, {
/* config */
})

// Parse invitation and receive invitation
const parsedInvitation = await ConnectionInvitationMessage.fromUrl(invitationUrl)
const connectionRecord = await agent.connections.receiveInvitation(parsedInvitation, {
/* config */
})

Updating to use DidExchangeState

The ConnectionState that was previously used for the state of the ConnectionRecord has been changed to use the DidExchangeState for both connections made using the RFC 0160 Connection Protocol, as well as the RFC 0023 DID Exchange Protocol.

The DidExchangeState has the following values:

  • DidExchangeState.Start,
  • DidExchangeState.InvitationSent,
  • DidExchangeState.InvitationReceived,
  • DidExchangeState.RequestSent,
  • DidExchangeState.RequestReceived,
  • DidExchangeState.ResponseSent,
  • DidExchangeState.ResponseReceived,
  • DidExchangeState.Abandoned,
  • DidExchangeState.Completed

If you still need to access the old ConnectionState you can do so by accessing the computed connectionRecord.rfc0160State property. This will return the old ConnectionState value.

Updating Custom Messages to the New Message Type Objects

Although this isn't a breaking change to the public API of the framework, it is something that you will need to take into account when creating custom modules. Starting from AFJ 0.2.0 we now support handling messages with different minor versions (e.g. receive a message with @type version 1.1 while we only support 1.0). With this change messages must now declare the message type as an ParsedMessageType object. We've added an parseMessageType util method that can help with this.

import { AgentMessage } from '@aries-framework/core'
import { Equals } from 'class-validator'

class MyMessage extends AgentMessage {
@Equals(MyMessage.type)
public readonly type = MyMessage.type
public static readonly type = 'https://didcomm.org/my-protocol/1.0/my-type'
}

Breaking Storage Changes

The 0.2.0 release is heavy on breaking changes to the storage format. This is not what we intend to do with every release. But as there's not that many people yet using the framework in production, and there were a lot of changes needed to keep the API straightforward, we decided to bundle a lot of breaking changes in this one release.

Below all breaking storage changes are explained in as much detail as possible. The update assistant provides all tools to migrate without a hassle, but it is important to know what has changed. All examples only show the keys that have changed, unrelated keys in records have been omitted.

See the Update Assistant documentation for a guide on how to use the update assistant.

The following config can be provided to the update assistant to migrate from 0.1.0 to 0.2.0:

{
"v0_1ToV0_2": {
"mediationRoleUpdateStrategy": "<mediationRoleUpdateStrategy>"
}
}

Credential Metadata

The credential record had a custom metadata property in pre-0.1.0 storage that contained the requestMetadata, schemaId and credentialDefinition properties. Later a generic metadata API was added that only allows objects to be stored. Therefore the properties were moved into a different structure.

{
"requestMetadata": <value of requestMetadata>,
"schemaId": "<value of schemaId>",
"credentialDefinitionId": "<value of credential definition id>"
}

Migrate Credential Record Properties

In 0.2.0 the v1 DIDComm messages have been moved out of the credential record into separate records using the DidCommMessageRepository. The migration scripts extracts all messages (proposalMessage, offerMessage, requestMessage, credentialMessage) and moves them into the DidCommMessageRepository.

With the addition of support for different protocol versions the credential record now stores the protocol version. With the addition of issue credential v2 support, other credential formats than indy can be used, and multiple credentials can be issued at once. To account for this the credentialId has been replaced by the credentials array. This is an array of objects containing the credentialRecordId and the credentialRecordType. For all current credentials the credentialRecordType will always be indy.

{
"credentialId": "09e46da9-a575-4909-b016-040e96c3c539",
"proposalMessage": { ... },
"offerMessage": { ... },
"requestMessage": { ... },
"credentialMessage": { ... },
}

Mediation Record Role

The role in the mediation record was always being set to MediationRole.Mediator for both mediators and recipients. This didn't cause any issues, but would return the wrong role for recipients.

In 0.2 a check is added to make sure the role of a mediation record matches with actions (e.g. a recipient can't grant mediation), which means it will throw an error if the role is not set correctly.

Because it's not always possible detect whether the role should actually be mediator or recipient, a number of configuration options are provided on how the role should be updated using the v0_1ToV0_2.mediationRoleUpdateStrategy option:

  • allMediator: The role is set to MediationRole.Mediator for both mediators and recipients
  • allRecipient: The role is set to MediationRole.Recipient for both mediators and recipients
  • recipientIfEndpoint (default): The role is set to MediationRole.Recipient if their is an endpoint configured on the record. The endpoint is not set when running as a mediator. There is one case where this could be problematic when the role should be recipient, if the mediation grant hasn't actually occurred (meaning the endpoint is not set). This is probably the best approach otherwise it is set to MediationRole.Mediator
  • doNotChange: The role is not changed

Most agents only act as either the role of mediator or recipient, in which case the allMediator or allRecipient configuration is the most appropriate. If your agent acts as both a recipient and mediator, the recipientIfEndpoint configuration is the most appropriate. The doNotChange options is not recommended and can lead to errors if the role is not set correctly.

Extracting Did Documents to Did Repository

The connection record previously stored both did documents from a connection in the connection record itself. Version 0.2.0 added a generic did storage that can be used for numerous usages, one of which is the storage of did documents for connection records.

The migration script extracts the did documents from the didDoc and theirDidDoc properties from the connection record, updates them to did documents compliant with the did core spec, and stores them in the did repository. By doing so it also updates the unqualified DIDs in the did and theirDid fields generated by the indy-sdk to fully qualified did:peer DIDs compliant with the Peer DID Method Specification.

To account for the fact that the mechanism to migrate legacy did document to peer did documents is not defined yet, the legacy did and did document are stored in the did record metadata. This will be deleted later if we can be certain the did doc conversion to a did:peer did document is correct.

{
"did": "BBPoJqRKatdcfLEAFL7exC",
"theirDid": "UppcJ5APts7ot5WX25943F",
"verkey": "GAb4NUvpBcHVCvtP45vTVa5Bp74vFg3iXzdp1Gbd68Wf",
"didDoc": <legacyDidDoc>,
"theirDidDoc": <legacyTheirDidDoc>,
}

Migrating to the Out of Band Record

With the addition of the out of band protocol, invitations are now stored in the OutOfBandRecord. In addition a new field invitationDid is added to the connection record that is generated based on the invitation service or did. This allows to reuse existing connections.

The migration script extracts the invitation and other relevant data into a separate OutOfBandRecord. By doing so it converts the old connection protocol invitation into the new Out of band invitation message. Based on the service or did of the invitation, the invitationDid is populated.

Previously when creating a multi use invitation, a connection record would be created with the multiUseInvitation set to true. The connection record would always be in state invited. If a request for the multi use invitation came in, a new connection record would be created. With the addition of the out of band module, no connection records are created until a request is received. So for multi use invitation this means that the connection record with multiUseInvitation=true will be deleted, and instead all connections created using that out of band invitation will contain the outOfBandId of the multi use invitation.

{
"invitation": {
"@type": "https://didcomm.org/connections/1.0/invitation",
"@id": "04a2c382-999e-4de9-a1d2-9dec0b2fa5e4",
"recipientKeys": ["E6D1m3eERqCueX4ZgMCY14B4NceAr6XP2HyVqt55gDhu"],
"serviceEndpoint": "https://example.com",
"label": "test"
},
"multiUseInvitation": "false"
}

Unifying Connection States and Roles

With the addition of the did exchange protocol there are now two states and roles related to the connection record; for the did exchange protocol and for the connection protocol. To keep it easy to work with the connection record, all state and role values are updated to those of the DidExchangeRole and DidExchangeState enums.

The migration script transforms all connection record state and role values to their respective values of the DidExchangeRole and DidExchangeState enums. For convenience a getter property rfc0160ConnectionState is added to the connection record which returns the ConnectionState value.

{
"state": "invited",
"role": "inviter"
}
- + \ No newline at end of file diff --git a/guides/0.3/updating/versions/0.2-to-0.3.html b/guides/0.3/updating/versions/0.2-to-0.3.html index b067f885..7cf06ddb 100644 --- a/guides/0.3/updating/versions/0.2-to-0.3.html +++ b/guides/0.3/updating/versions/0.2-to-0.3.html @@ -3,14 +3,14 @@ -Migrating from AFJ 0.2.x to 0.3.x | Credo - +Migrating from AFJ 0.2.x to 0.3.x | Credo +
Version: v0.3.x

Migrating from AFJ 0.2.x to 0.3.x

This document describes everything you need to know for updating AFJ 0.2.x to 0.3.x. If you're not aware of how updating in AFJ works make sure to first read the guide on Updating AFJ.

First of all, update you dependencies to the 0.3.x versions. This will also update the needed peer depedencnies. Extension packages are not updated with this command. You need to update these manually, and make sure they're up to date with the latest version of AFJ.

yarn add @aries-framework/react-native@^0.3.0 @aries-framework/core@^0.3.0 indy-sdk-react-native@^0.3.0

# or NPM
npn install @aries-framework/react-native@^0.3.0 @aries-framework/core@^0.3.0 indy-sdk-react-native@^0.3.0

Breaking Code Changes

This section will list all breaking changes made to the public API of AFJ between version 0.2.x and 0.3.0.

info

If you have custom modules take into account there could be a lot more breaking changes that aren't documented here. We try to make sure that the biggest breaking changes to the internal API are also documented here (e.g. see Updating Custom Modules to the Plugin API), but it is possible some breaking changes are not documented here (feel free to open PRs).

Agent creation

The agent constructor has been updated to a single AgentOptions object that contains the config and dependencies properties.

const agent = new Agent(agentConfig, agentDependencies)

This object contains:

  • config: Agent's initial configuration
  • dependencies: platform-specific Agent dependencies
  • modules: optional field for internal module configuration and custom module registration

For easy migration, you can simply construct AgentOptions by putting current InitConfig into config key and agentDependencies into dependencies key.

Note that, if you are defining indyLedgers configuration, you should set the indyNamespace for every ledger, as explained in Agent Config tutorial.

did:key usage in protocols

In accordance with Aries RFC 0360, since 0.2.5 there is a configuration parameter called useDidKeyInProtocols which, when enabled, will encode keys in did:key instead of previous base58 format, unless the other party has started a protocol and is using base58.

This parameter was previously disabled by default and now it is enabled. If your agent only interacts with modern agents (e.g. AFJ 0.2.5 and newer) this will not represent any issue. Otherwise it is safer to explicitly set it to false. However, keep in mind that we expect this setting to be deprecated in the future, so we encourage you to update all your agents to use did:key.

Modules extracted from the core

In this release two modules were extracted from the core and published as separate, optional packages:

  • actionMenu has been moved to @aries-framework/action-menu
  • questionAnswer has been moved to @aries-framework/question-answer

If you want to use them, you can integrate in an Agent instance by injecting them in constructor, as follows:

import { ActionMenuModule } from '@aries-framework/action-menu'
import { QuestionAnswerModule } from '@aries-framework/question-answer'

const agent = new Agent({
config: {
/* config */
},
dependencies: agentDependencies,
modules: {
actionMenu: new ActionMenuModule(),
questionAnswer: new QuestionAnswerModule(),
/* other custom modules */
},
})

As they are now considered custom modules, their API can be accessed in modules namespace, so you should add it to every call to them.

await agent.questionAnswer.sendQuestion(connectionId, {
question: 'Do you want to play?',
validResponses: [{ text: 'Yes' }, { text: 'No' }],
})

await agent.questionAnswer.sendAnswer(questionAnswerRecordId, 'Yes')

Discover Features Module

This module now supports both Discover Features V1 and V2, and as it happened to other modules, queryFeatures method parameters have been unified to a single object and requires to specify the version of Discover Features protocol to be used. Note that query property has been replaced by the more general queries which accepts multiple features to be search for. To convert a query to this new format you simply need to create a single-object array whose unique object whose featureType field is 'protocol' and match field is the query itself.

await agent.discovery.queryFeatures(connectionId, {
query: 'https://didcomm.org/messagepickup/2.0',
comment: 'Detect if protocol is supported',
})

The convenience method isProtocolSupported has been replaced by the more general synchronous mode of queryFeatures, which works when awaitDisclosures in options is set. Instead of returning a boolean, it returns an object with matching features:

const isPickUpV2Supported = await agent.discovery.isProtocolSupported(connectionId, StatusRequestMessage)
info

Discover Features module does not rely anymore on Agent Dispatcher to determine protocol support. Instead, it uses the new Feature Registry, where any custom modules implementing protocols must register them.

This procedure can be done in module's register(dependencyManager, featureRegistry).

Ledger Module

Apart from the aforementioned indyLedgers configuration, you should also note a slight change in behavior when attempting to register credential definitions that already exists on the ledger but not in the wallet.

Proofs Module

Module API Updates

Much in the same way as in 0.2.0 release when Issue Credential V2 protocol has been added, now that Present Proof V2 is supported, we introduced changes to proofs module.

Basically, for all methods in the proofs module you should take the following steps to update your code:

  1. Move all function parameters into a single object. All module methods now take a single object that contain all properties.
  2. For methods that initiate proposals, requests or presentations (proposeProof, acceptProposal, requestProof, acceptPresentation, etc.), you should pass protocolVersion: 'v1' to indicate we should use the v1 protocol
  3. All indy specific attributes (e.g. Presentation Preview) should be passed in the proofFormats.indy object.
  4. Some indy objects, as the preview should now be passed only as their attributes (i.e. no need of creating the object instance) and provided in the proofFormats.indy object.
await agent.proofs.proposeProof(
'connectionId',
new PresentationPreview({
attributes: [new PresentationPreviewAttribute({ name: 'key', value: 'value' })],
predicates: [
new PresentationPreviewPredicate({
name: 'age',
credentialDefinitionId,
predicate: PredicateType.GreaterThanOrEqualTo,
threshold: 50,
}),
],
})
)

Messages Extracted from Proof Exchange Record

The DIDComm messages that were previously stored on the proof record, have been extracted to separate DIDComm message records. This makes it easier to work with multiple versions of the protocol internally, and keeps the proof exchange record agnostic of the protocol version. Instead of accessing the messages through the proposalMessage, requestMessage and presentationMessage parameters, we now expose dedicated methods on the proofs module to retrieve the message.

With the addition of the v2 messages, all v1 messages have been prefixed with V1 while v2 messages have been prefixed with V2 (V1RequestPresentationMessage and V2RequestPresentationMessage). If you were using these messages classes throughout your codebase, update them to use the V1 prefix.

const proofRecord = await agent.proofs.getById('proofRecordId')

const proposalMessage = proofRecord.proposalMessage
const requestMessage = proofRecord.requestMessage
const presentationMessage = proofRecord.presentationMessage

Out Of Band Proofs and Credentials

With the addition of the out of band module, the creation of connection-less messages has been split into two steps, allowing for better control and flexibility. The previous agent.proofs.createOutOfBandRequest has been replaced by the agent.proofs.createRequest method. This new method creates a proof request that is not tied to any connection.

What you can now do is call agent.oob.createLegacyConnectionlessInvitation to attach the service decorator to the message and get a legacy connectionless message.

const { requestMessage, proofRecord } = await agent.proofs.createOutOfBandRequest({
requestedAttributes: {
group1: {
name: 'dateOfBirth',
restrictions: [{ schemaId: 'F72i3Y3Q4i466efjYJYCHM:2:aha_cert:4.1.1' }],
},
},
})

Out of band invitations are the new way to send messages out of band. You can use it for connection-less exchanges, but also for exchanges that you want to establish a connection for first. Here's an example on how to use the out of band module to create a connection-less invitation for a proof request:

const outOfBandRecord = await agent.oob.createInvitation({
handshake: false, // set to true if you want to create a connection
messages: [message],
})

const invitationUrl = outOfBandRecord.outOfBandInvitation.toUrl({
domain: 'https://afj.com',
})

As you can see, there's now a lot more ways to use a message not tied to a connection. By splitting the creation of the message from the creation of the invitation, we can now create a message not bound to a connection (at time of creation) for multiple use cases.

Updating Custom Modules to the new Plugin API

Although this isn't a breaking change to the public API of the framework, it is something that you will need to take into account if you have custom modules and want to upgrade them to make compatible with AFJ 0.3.0.

Renaming handler classes

Handler has been have been renamed to MessageHandler to be be more descriptive, along with related types and methods. This means:

  • Handler is now MessageHandler
  • HandlerInboundMessage is now MessageHandlerInboundMessage
  • Dispatcher.registerHandler is now Dispatcher.registerMessageHandler and is marked as deprecated. The recommended way of registering handlers is by using the new MessageHandlerRegistry object by calling MessageHandlerRegistry.registerMessageHandler.

If your custom module include message handlers, you must update them accordingly.

export class MyHandler implements Handler {
public supportedMessages = [MyMessage]

public async handle(inboundMessage: HandlerInboundMessage<MyHandler>) {
...
}
}

Using AgentContext

First of all, it's worth noting that now all services and repositories have been made stateless. A new AgentContext is introduced that holds the current context, which is passed to each method call. Therefore, you'll need to update every call to services, repositories and also eventEmitter methods to pass AgentContext object as first argument.

AgentContext can be obtained from either:

  • MessageContext used by message handlers (accesed as messageContext.agentContext)
  • Injected in your API constructor: you can store the instance and pass it to all your service and repository calls
  public async createRequest(options: CreateRequestOptions) {
const message = new RequestMessage({
parentThreadId: options.parentThreadId,
})

const record = new MyRecord({
connectionId: options.connectionRecord.id,
threadId: message.id,
parentThreadId: options.parentThreadId,
})

await this.myRecordRepository.save(record)

this.eventEmitter.emit<MyRecordStateChangedEvent>({
type: MyRecordEventTypes.StateChanged,
payload: {
myRecord: record,
previousState: null,
},
})

return { record, message }
}

public async processRequest(messageContext: HandlerInboundMessage<RequestHandler>) {
const { message } = messageContext

const record = new MyRecord({
connectionId: connection.id,
threadId: messageContext.message.id,
parentThreadId: messageContext.message.thread?.parentThreadId,
})

await this.myRepository.save(record)

return record
}

Using OutboundMessageContext

If your module implements a protocol that sends messages to other agents, you will notice that Agent's MessageSender now receives the more generic OutboundMessageContext class, which replaces previous helper method createOutboundMessage.

You can take advantage of this new mechanism to associate a record to the context, in order to do specific actions to it when outbound message state changes (e.g. a MessageSendingError is thrown or AgentMessageSentEvent is emitted).

import { createOutboundMessage } from '@aries-framework/core'

const outboundMessage = createOutboundMessage(connection, message)
await this.messageSender.sendMessage(outboundMessage)

Updating module structure to register in new Plugin API

Existing modules can benefit from the new Plugin API mechanism by doing the following modifications:

  1. Rename Module class (e.g. MyModule) to API class (MyApi) and add @injectable decorator. Inject AgentContext in order to pass it to any services or repositories it might call. For instance:
import { injectable } from '@aries-framework/core'

@injectable() // <-- Add this
export class MyApi {
private messageSender: MessageSender
private myService: MyService
private connectionService: ConnectionService
private agentContext: AgentContext // <-- Add this

public constructor(
messageHandlerRegistry: MessageHandlerRegistry, // <-- use this instead of Dispatcher
messageSender: MessageSender,
myService: MyService,
connectionService: ConnectionService,
agentContext: AgentContext // <-- Add this
) {
this.messageSender = messageSender
this.myService = myService
this.connectionService = connectionService
this.agentContext = agentContext // <-- Add this
this.registerHandlers(messageHandlerRegistry) // <-- use messageHandlerRegistry instead of dispatcher
}
  1. Create a new Module class that implements Module interface and registers the dependencies and features. For instance:
import type { DependencyManager, FeatureRegistry, Module } from '@aries-framework/core'

import { Protocol } from '@aries-framework/core'

export class MyModule implements Module {
public readonly api = MyApi // the one we've just renamed from MyModule

public register(dependencyManager: DependencyManager, featureRegistry: FeatureRegistry) {
// Api
dependencyManager.registerContextScoped(MyApi)

// Services
dependencyManager.registerSingleton(MyService)

// Repositories
dependencyManager.registerSingleton(MyRepository)

// Feature Registry: don't forget to register your protocols and other features your module may add
featureRegistry.register(
new Protocol({
id: 'https://didcomm.org/my-protocol/1.0',
roles: [MyRole.Sender, MyRole.Receiver],
})
)
}

After doing this, you can add your module to agent constructor like this:

const agent = new Agent({
config: {
/* config */
},
dependencies: agentDependencies,
modules: {
myModule: new MyModule(),
/* other custom modules */
},
})

// MyModule API can be accessed in agent.modules namespace
await agent.modules.myModule.doSomething()

await agent.modules.myModule.doAnotherThing()

Breaking Storage Changes

The 0.3.0 release introduces some breaking changes to the storage format, mainly related to Proof Exchanges.

Below all breaking storage changes are explained in as much detail as possible. The update assistant provides all tools to migrate without a hassle, but it is important to know what has changed. All examples only show the keys that have changed, unrelated keys in records have been omitted.

See the Update Assistant documentation for a guide on how to use the update assistant.

There are no config parameters to be provided to the update assistant to migrate from 0.2.x to 0.3.x.

Migrate Proof Record Properties

In 0.3.0 the v1 DIDComm messages have been moved out of the proof record into separate records using the DidCommMessageRepository. The migration scripts extracts all messages (proposalMessage, requestMessage, presentationMessage) and moves them into the DidCommMessageRepository. With the addition of support for different protocol versions the proof record now stores the protocol version.

{
"proposalMessage": { ... },
"requestMessage": { ... },
"presentationMessage": { ... },
}

Migrate Connection Record properties

The recently introduced connectionType tag has been pluralized to reflect the fact that more than a single connection type can be defined for a given connection. Also, it is now available as a direct record property (e.g. can be queried and set by using connectionRecord.connectionTypes) apart from the tag for efficient search.

The migration script renames connectionType to connectionTypes in all connections, and also searches for any mediation connection and adds ConnectionType.Mediator as one of its types.

Migrate Did Record properties

The didRecord.id was previously the did itself. However to allow for connecting with self, where multiple did records are created for the same did, the id property is now an uuid and a separate did property is added.

The migration script generates a new ID for each did record and stores its did into didRecord.did property.

{
"id": "did"
}
- + \ No newline at end of file diff --git a/guides/0.5.html b/guides/0.5.html index bf2ff6fb..dc36f20a 100644 --- a/guides/0.5.html +++ b/guides/0.5.html @@ -3,14 +3,14 @@ -Intro | Credo - +Intro | Credo +
Version: v0.5.x

Intro

Welcome, to the Credo community!

There's no way around it. Working with self-sovereign identity can be difficult. Luckily this documentation's main goal is to make it easy for you, whether you have SSI experience or not. This documentation will either help you create a JavaScript based SSI solution yourself, or help you find the right resources in the community to assist you!

So what is Credo?

Credo originated as a project named "Aries Framework JavaScript" under the Hyperledger Aries umbrella. It has since been migrated from the Hyperledger Foundation to the OpenWallet Foundation and rebranded as Credo. As a result of its origin and strong ties to the Hyperledger community, a significant portion of its codebase adheres to Hyperledger Aries standards (RFCs), and the code and documentation make references to other Hyperledger-related projects.

Hyperledger Aries provides a shared, reusable, interoperable tool kit designed for initiatives and solutions focused on creating, transmitting and storing verifiable digital credentials.

— Hyperledger Foundation

There are several other Aries-based frameworks that help you build solutions using verifiable credentials. This one is written in TypeScript and is specifically well suited for Multi-Platform development as it supports Node.js and React Native. We, the community, like to view it as the most accessible framework mostly because it is written in TypeScript, and our maintainers and contributors work to keep developer user experience a top priority.

These docs are not just for the core framework, but also all that surround it. So you'll find general explanations about the concepts used, specific tutorials for common use cases and relevant projects and related repositories. Most of all you'll find solid documentation with lots of code examples and an enthusiastic community that wants to build great stuff together.

Are you ready to get started?

- + \ No newline at end of file diff --git a/guides/0.5/concepts.html b/guides/0.5/concepts.html index 088a5415..ac17a10b 100644 --- a/guides/0.5/concepts.html +++ b/guides/0.5/concepts.html @@ -3,8 +3,8 @@ -Concepts | Credo - +Concepts | Credo + @@ -12,7 +12,7 @@ - + \ No newline at end of file diff --git a/guides/0.5/concepts/agents.html b/guides/0.5/concepts/agents.html index 9a0e6ad2..8fccd325 100644 --- a/guides/0.5/concepts/agents.html +++ b/guides/0.5/concepts/agents.html @@ -3,8 +3,8 @@ -Agents | Credo - +Agents | Credo + @@ -35,7 +35,7 @@ for secure sensitive data storage and sharing. Since everyone has multiple devices these can be used as a more central point for your data.

Useful resources

- + \ No newline at end of file diff --git a/guides/0.5/concepts/did-and-didcomm.html b/guides/0.5/concepts/did-and-didcomm.html index ae3a3c60..1b7edd94 100644 --- a/guides/0.5/concepts/did-and-didcomm.html +++ b/guides/0.5/concepts/did-and-didcomm.html @@ -3,8 +3,8 @@ -DIDs and DIDComm | Credo - +DIDs and DIDComm | Credo + @@ -24,7 +24,7 @@ securely send a message from as Alice to Bob securely via bluetooth, HTTP, WebSockets, etc.

When working with the tools available inside the Credo ecosystem, deep knowledge of DIDComm is not required.

Useful Resources

- + \ No newline at end of file diff --git a/guides/0.5/concepts/platform-and-environment.html b/guides/0.5/concepts/platform-and-environment.html index 9c19bfed..1cad725a 100644 --- a/guides/0.5/concepts/platform-and-environment.html +++ b/guides/0.5/concepts/platform-and-environment.html @@ -3,14 +3,14 @@ -Platform and Environment | Credo - +Platform and Environment | Credo +
Version: v0.5.x

Platform and Environment

Credo is developed to support a Node.JS and React Native environment. With this it is entirely possible to build an entire SSI ecosystem with Credo. This would use Node.JS as an issuer as a verifier, and uses React Native as a holder.

- + \ No newline at end of file diff --git a/guides/0.5/ecosystem.html b/guides/0.5/ecosystem.html index 356819be..62b1c499 100644 --- a/guides/0.5/ecosystem.html +++ b/guides/0.5/ecosystem.html @@ -3,15 +3,15 @@ -The Credo Ecosystem | Credo - +The Credo Ecosystem | Credo +
Version: v0.5.x

The Credo Ecosystem

The Credo ecosystem includes various components that are spread across multiple repositories. In this section we'll go over what these components are and how the relate to one another.

Repositories

Currently, Credo is composed out of two separate repositories:

  1. Credo
  2. Credo Extensions

In addition, there are several open-source applications and building blocks built on top of Credo. One example is Aries Mobile Agent React Native (Bifold), which is a white-label mobile wallet you can use to bootstrap your own custom wallet.

Documentation

You can find their documentation here:

  1. Credo (core)
  2. Credo Extensions

Credo

Credo (core) is at the core of the Credo ecosystem. Credo provides all the functionality related to cryptography, storage, messaging and more that is required

Contributing in the Credo Ecosystem

Consider attending our weekly meetings to become aware of the current development cadence.

Developer Contributions

Each project maintains its own CONTRIBUTING guidance:

Each project has a significant set of developer conventions, checklists, templates, and actions to provide guidance and boundaries for a contribution. Consider looking at previous issues and their corresponding PRs to get a sense of the latest.

- + \ No newline at end of file diff --git a/guides/0.5/extensions.html b/guides/0.5/extensions.html index 0a6a4505..05e07ed8 100644 --- a/guides/0.5/extensions.html +++ b/guides/0.5/extensions.html @@ -3,14 +3,14 @@ -Extensions | Credo - +Extensions | Credo +
- + \ No newline at end of file diff --git a/guides/0.5/extensions/push-notifications.html b/guides/0.5/extensions/push-notifications.html index 26052be2..6bb566bb 100644 --- a/guides/0.5/extensions/push-notifications.html +++ b/guides/0.5/extensions/push-notifications.html @@ -3,14 +3,14 @@ -Push Notifications | Credo - +Push Notifications | Credo +
Version: v0.5.x

Push Notifications

The Push Notifications plugin package provides a way for you to register your APNs and Firebase push notification token at an agent, allowing you to use push notifications directly from Credo.

note

This document is for version 0.5.x of the @aries-framework/push-notifications package, that works with @aries-framework/core version 0.4.x. Extension packages (such as Push Notifications) are versioned separately from the core packages.

Installation

To add the Push Notifications plugin package to your existing project simply run:

npm i @aries-framework/push-notifications
- + \ No newline at end of file diff --git a/guides/0.5/extensions/react-hooks.html b/guides/0.5/extensions/react-hooks.html index b28936db..c21f4f75 100644 --- a/guides/0.5/extensions/react-hooks.html +++ b/guides/0.5/extensions/react-hooks.html @@ -3,14 +3,14 @@ -React Hooks | Credo - +React Hooks | Credo +
Version: v0.5.x

React Hooks

The React Hooks package exposes useful React hooks that allow you to easily interact with Credo from a React client application.

These hooks provide a simple way to query agent data in a client application, allowing you to focus on the user interface.

note

This document is for version 0.5.x of the @aries-framework/react-hooks package, that works with @aries-framework/core version 0.4.x. Extension packages (such as React Hooks) are versioned separately from the core packages.

Installation

To add the React Hooks package to your existing project simply run:

npm i @aries-framework/react-hooks@^0.5

Usage

This package exposes useful React hooks that allow you to easily interact with Credo.

Everything exported from Hooks:

import AgentProvider, {
useAgent,
useConnections,
useConnectionById,
useCredentials,
useCredentialById,
useCredentialByState,
useProofs,
useProofById,
useProofByState,
} from '@aries-framework/react-hooks'

First step is to wrap your entire app in our <AgentProvider/>. The provider takes an initialized agent. The base of your app should look something like this:

import AgentProvider from '@aries-framework/react-hooks'

const App = () => {
const [agent, setAgent] = useState(undefined)

const initializeAgent = async () => {
const appAgent = new Agent({
/* agent options */
})
await appAgent.initialize()
setAgent(appAgent)
}

useEffect(() => {
initializeAgent()
}, [])

if (!agent) return <LoadingComponent />

return <AgentProvider agent={agent}>/* Your app here */</AgentProvider>
}

And that's it! Your app should be set up to receive all the necessary data your app will need! Now let's see how we actually get that data to our components.

The useAgent hook returns { agent, loading } so anytime you need access to any of the methods tied to the agent, you can useAgent() anywhere.

The following is an example of how you could use the useConnections hook to render a full list of all a user's connections.

import { useConnections } from '@aries-framework/react-hooks'

const MyConnectionsComponent = () => {
// all base hooks return an array of objects and a loading boolean
const { connections, loading } = useConnections()

return <FlatList data={connections} renderItem={({ item }) => <MyListItem connection={item} />} />
}

The three base hooks: useConnections, useCredentials, and useProofs work just like the above! Just call the hook, destructure the data, and pass it through!

Each base hook has a ById version that returns a singular record. For example if I wanted only a specific connectionRecord, I'd do this.

const connection = useConnectionById(id)

More commonly, you'll want to get a filtered list of records based off of their state. Well, Hooray! We have a ByState version as well. For example, you can do this:

const credentials = useCredentialByState(CredentialState.OfferReceived)
- + \ No newline at end of file diff --git a/guides/0.5/extensions/redux-store.html b/guides/0.5/extensions/redux-store.html index df7fcf2e..bb717693 100644 --- a/guides/0.5/extensions/redux-store.html +++ b/guides/0.5/extensions/redux-store.html @@ -3,14 +3,14 @@ -Redux Store | Credo - +Redux Store | Credo +
Version: v0.5.x

Redux Store

The Redux Store is an implementation of state management that can be used to build React & React Native SSI clients using Credo.

The Redux Store allows you to integrate state management for the most important parts of using Credo in a client application (mediation, connections, credentials and proofs), allowing you to sync UI state with the state of the agent as it interacts with other agents through the framework.

note

This document is for version 0.4.x of the @aries-framework/redux-store package, that works with @aries-framework/core version 0.4.x. Extension packages (such as Redux Store) are versioned separately from the core packages.

Installation

To add the Redux Store package to your existing project simply run:

npm i @aries-framework/redux-store
- + \ No newline at end of file diff --git a/guides/0.5/extensions/rest.html b/guides/0.5/extensions/rest.html index 61d23eda..fecdc239 100644 --- a/guides/0.5/extensions/rest.html +++ b/guides/0.5/extensions/rest.html @@ -3,14 +3,14 @@ -REST API | Credo - +REST API | Credo +
Version: v0.5.x

REST API

The Credo REST API provides simple RESTful endpoints for Credo methods, to allow you stand up an agent for communication over the internet instantly. You simply provide your agent configuration. The REST endpoints allow you to interact with your agent over HTTP and WebSockets.

The Credo REST API is the most convenient way for self-sovereign identity (SSI) developers to interact with SSI agents.

  • Endpoints to create connections, issue credentials, and request proofs.
  • 💻 CLI that makes it super easy to start an instance of the REST API.
  • 🌐 Interoperable with all major Aries implementations.
danger

The @aries-framework/rest package has not been updated to work with the latest version (0.4.x) of @aries-framework/core. The documentation in this section is for version 0.9.x of the @aries-framework/rest package, that works with @aries-framework/core version 0.2.x. Extension packages (such as REST API) are versioned separately from the core packages.

Quick Setup

info

This guide assumes you have followed the install guides for the framework (See Getting Started section) for your platform and a valid Node.js project setup.

Using the CLI is the easiest way to get started with REST API.

You can do this directly on your machine.

Directly on computer

After installing and confirming that Libindy is installed, simply run:

npx -p @aries-framework/rest afj-rest start \
--label "Credo Rest" \
--wallet-id "walletId" \
--wallet-key "walletKey" \
--endpoint http://localhost:5000 \
--admin-port 3000 \
--outbound-transport http \
--inbound-transport http 5000

The REST API provides an OpenAPI schema that can easily be viewed using the SwaggerUI that is provided with the server. The endpoint documentation can be viewed at the /docs endpoint (e.g. http://localhost:3000/docs).

Configuration

To find out all available configuration options from the CLI, you can run the CLI command with --help. This will print a full list of all available options.

npx -p @aries-framework/rest afj-rest start --help
- + \ No newline at end of file diff --git a/guides/0.5/getting-started.html b/guides/0.5/getting-started.html index 378af3a0..32cf3a7a 100644 --- a/guides/0.5/getting-started.html +++ b/guides/0.5/getting-started.html @@ -3,14 +3,14 @@ -Getting started | Credo - +Getting started | Credo +
Version: v0.5.x

Getting started

In this section we will go over everything you need to get started on a technical level. First there are some general prerequisites for Node.JS and React Native. Credo works for creating both server-side applications (commonly but not always for creating issuer and verifier agents) and mobile applications (commonly holder agents).

Based on the platform you want to work on, the installation guides you should follow are the same, but some steps may differ.

Do you want to build a mobile app?

Do you want to build a server-side app?

- + \ No newline at end of file diff --git a/guides/0.5/getting-started/prerequisites.html b/guides/0.5/getting-started/prerequisites.html index fd7f2fba..817a77ee 100644 --- a/guides/0.5/getting-started/prerequisites.html +++ b/guides/0.5/getting-started/prerequisites.html @@ -3,14 +3,14 @@ -Prerequisites | Credo - +Prerequisites | Credo +
Version: v0.5.x

Prerequisites

To work with Credo we need to install some dependencies and set-up our Node.JS environment. Even when creating a mobile app in React Native, we need Node.JS installed. We will go over the specific installation process for each platform. Go ahead and pick your system of choice to get started!

The specific items that we set-up:

Node.JS

NodeJS is the most popular JavaScript runtime environment excluding browsers. It can run on your desktop or even a server.

You can download it from the Node.JS Website

NPM

The Node Package Manager comes pre-bundled with the NodeJS installation from above.

Yarn

Only required when not using npm

For every platform, the installation of yarn is the same.

npm install --global yarn

Project Setup

Finally, you need to make sure you have a project set-up using Node.JS or React Native. If you're not familiar with setting up a project, we suggest following the Introduction to Node.JS or React Native Quickstart guides.

- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up.html b/guides/0.5/getting-started/set-up.html index 77a3220f..32b987f5 100644 --- a/guides/0.5/getting-started/set-up.html +++ b/guides/0.5/getting-started/set-up.html @@ -3,8 +3,8 @@ -Agent Setup | Credo - +Agent Setup | Credo + @@ -26,7 +26,7 @@ transport in the same way as the outbound transport.

Sets up an WS outbound and HTTP inbound and outbound transport.

import { HttpOutboundTransport, WsOutboundTransport } from '@aries-framework/core'
import { HttpInboundTransport } from '@aries-framework/node'

// ... agent setup from prevous section ...

agent.registerOutboundTransport(new HttpOutboundTransport())
agent.registerOutboundTransport(new WsOutboundTransport())
agent.registerInboundTransport(new HttpInboundTransport({ port: 3000 }))

Initializing the agent

Finally, we can initialize the agent and it's ready for use.

agent
.initialize()
.then(() => {
console.log('Agent initialized!')
})
.catch((e) => {
console.error(`Something went wrong while setting up the agent! Message: ${e}`)
})

Next Steps

Now that you have your agent setup, it's time to start building your application. Head over to the tutorials page to get started.

Useful resources

- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/anoncreds-rs.html b/guides/0.5/getting-started/set-up/anoncreds-rs.html index 759d9c55..6fa01a71 100644 --- a/guides/0.5/getting-started/set-up/anoncreds-rs.html +++ b/guides/0.5/getting-started/set-up/anoncreds-rs.html @@ -3,14 +3,14 @@ -AnonCreds RS | Credo - +AnonCreds RS | Credo +
Version: v0.5.x

AnonCreds RS

AnonCreds RS is a direct implementation of the AnonCreds V1.0 specification that provides functionality like; creating a schema object, creating a credential definition object, creating a credential, verifying a proof presentation and much more.

caution

Support for the AnonCreds RS library in Credo is currently experimental. We recommend new projects to use AnonCreds RS from the start, and also to migrate existing projects to AnonCreds, from the Indy Sdk. However, projects may experience some issues. If you encounter any issues, please open an issue.

Currently, there are few limitations to using AnonCreds RS.

  • When running in Node.JS, only Node.JS 18 is supported for now. See Supported Node.JS versions for AnonCreds RS
  • Install scripts rely on bash command substitution to get the proper binaries for each system architecture and platform. Therefore, if you are under Windows, you must configure npm or yarn to use a bash-compliant shell (e.g. npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe")

Installing AnonCreds RS

When using Credo with AnonCreds RS, there are a few extra dependencies that need to be installed. We need to install @hyperledger/anoncreds package, which contains the interfaces, and @hyperledger/anoncreds-rs package which is an implementation which depends on a wrapper of anoncreds-rs. Secondly, we need to add native bindings for the specific platform @hyperledger/anoncreds-<platform>. Currently there are bindings for Node.JS, as @hyperledger/anoncreds-nodejs, and React Native as @hyperlegder/anoncreds-react-native.

yarn add @aries-framework/anoncreds@^0.4.0 @aries-framework/anoncreds-rs@^0.4.0 @hyperledger/anoncreds-nodejs@^0.1.0

Adding AnonCreds RS to the agent

After installing the dependencies, we should register both the AnonCreds and AnonCredsRs module on the agent.

import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'

import { anoncreds } from '@hyperledger/anoncreds-nodejs'
import { AnonCredsModule } from '@aries-framework/anoncreds'
import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs'
import { IndyVdrAnonCredsRegistry } from '@aries-framework/indy-vdr'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
// Register the Askar module on the agent
// This is included as we need a wallet on our agent
askar: new AskarModule({
ariesAskar,
}),
anoncredsRs: new AnonCredsRsModule({
anoncreds,
}),
anoncreds: new AnonCredsModule({
// Here we add an Indy VDR registry as an example, any AnonCreds registry
// can be used
registries: [new IndyVdrAnonCredsRegistry()],
}),
},
})

Configuration

As you can see, the AnonCreds module takes a list of registry modules. These modules will be used to resolve the AnonCreds objects. We recommend Indy VDR as an AnonCreds registry for Hyperledger Indy networks, but Indy SDK can also be used.

Supported Node.JS versions for AnonCreds RS

Due to an issue in ref-napi (which is used in the Node.JS bindings for AnonCreds RS), performance for AnonCreds RS in Node.JS is not as expected. A patched version for ref-napi has been published that fixes this issue, but this only works in Node.JS 18+.

To use AnonCreds RS in Node.JS, make sure you're using Node.JS 18 and patch the ref-napi package to point towards @2060.io/ref-napi in your package.json:

Using NPM overrides we can point the ref-napi package to @2060.io/ref-napi.

{
"overrides": {
"ref-napi": "npm:@2060.io/ref-napi"
}
}
- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/aries-askar.html b/guides/0.5/getting-started/set-up/aries-askar.html index 85dbf4e6..64b1eb9d 100644 --- a/guides/0.5/getting-started/set-up/aries-askar.html +++ b/guides/0.5/getting-started/set-up/aries-askar.html @@ -3,14 +3,14 @@ -Aries Askar | Credo - +Aries Askar | Credo +
Version: v0.5.x

Aries Askar

Aries Askar provides secure, encrypted storage and cryptographic support for encrypting, decrypting, signing and verifying data. It also provides both the Wallet and StorageService implementations for the agent.

caution

Although Aries Askar is stable and already used in production in agents such as Aries Cloud Agent Python, support for Aries Askar in Credo is currently experimental. We recommend new projects to use Aries Askar from the start, and also to migrate existing projects to Aries Askar. However, projects may experience some issues. If you encounter any issues, please open an issue.

Currently, there are few limitations to using Aries Askar.

  • When running in Node.JS, only Node.JS 18 is supported for now. See Supported Node.JS versions for Aries Askar
  • Install scripts rely on bash command substitution to get the proper binaries for each system architecture and platform. Therefore, if you are under Windows, you must configure npm or yarn to use a bash-compliant shell (e.g. npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe")
tip

If you're upgrading from the Indy SDK to Aries Askar, see Migrating from an Indy SDK Wallet to Aries Askar

Installing Aries Askar

When using Credo with Aries Askar, there are a few extra dependencies that need to be installed. We need to install the @aries-framework/askar package, which implements the needed interfaces for the agent. Secondly, we need to add native bindings for the specific platform @hyperledger/aries-askar-<platform>. Currently there are bindings for Node.JS, as @hyperledger/aries-askar-nodejs, and React Native as @hyperlegder/aries-askar-react-native.

yarn add @aries-framework/askar@^0.4.0 @hyperledger/aries-askar-nodejs@^0.1.0

Adding Aries Askar to the Agent

After installing the dependencies, we can register the Askar Module on the agent.

import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
// Register the Askar module on the agent
askar: new AskarModule({
ariesAskar,
}),
},
})

Supported Node.JS versions for Aries Askar

Due to an issue in ref-napi (which is used in the Node.JS bindings for Aries Askar), performance for Aries Askar in Node.JS is not as expected. A patched version for ref-napi has been published that fixes this issue, but this only works in Node.JS 18+.

To use Aries Askar in Node.JS, make sure you're using Node.JS 18 and patch the ref-napi package to point towards @2060.io/ref-napi in your package.json:

Using NPM overrides we can point the ref-napi package to @2060.io/ref-napi.

{
"overrides": {
"ref-napi": "npm:@2060.io/ref-napi"
}
}
- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/cheqd.html b/guides/0.5/getting-started/set-up/cheqd.html index 3f4f334b..b23d65b5 100644 --- a/guides/0.5/getting-started/set-up/cheqd.html +++ b/guides/0.5/getting-started/set-up/cheqd.html @@ -3,14 +3,14 @@ -cheqd | Credo - +cheqd | Credo +
Version: v0.5.x

cheqd

cheqd is a blockchain network, built in the Cosmos ecosystem for Self-Sovereign Identity (SSI). The cheqd Network leverages the cheqd DID method and enables DID-Linked Resources to be written to the network, associated with a DID and controlled using the verification methods in the DID Document.

Through this approach, the cheqd Network is able to natively support the Ledger Agnostic AnonCreds Specification (v1.0) through its AnonCreds Object Method (as well as VC-JWT and JSON-LD).

cheqd also has a dedicated token, $CHEQ, used for identity writes to the network, voting in a decentralised governance framework as well as for various payment flows between verifiers, holders and issuers of Verifiable Credentials.

Installing cheqd

When using Credo with the cheqd, there's a few extra dependencies that need to be installed. We need to install the @aries-framework/cheqd package, which implements the needed interfaces for the agent.

React Native

To enable react-native support we need to follow the steps below

In the package.json file add the below code snippet, which replaces the cosmjs dependencies witht he cosmjs-rn packages

Using NPM overrides we can point the cosmjs packages to cosmjs-rn.

{
"overrides": {
"@cosmjs/amino": "npm:@cosmjs-rn/amino@^0.27.1",
"@cosmjs/encoding": "npm:@cosmjs-rn/encoding@^0.27.1",
"@cosmjs/math": "npm:@cosmjs-rn/math@^0.27.1",
"@cosmjs/stargate": "npm:@cosmjs-rn/stargate@^0.27.1",
"@cosmjs/tendermint-rpc": "npm:@cosmjs-rn/tendermint-rpc@^0.27.1",
"@cosmjs/utils": "npm:@cosmjs-rn/utils@^0.27.1",
"@cosmjs/proto-signing": "npm:@cosmjs-rn/proto-signing@^0.27.1",
"@cosmjs/crypto": "npm:@cosmjs-rn/crypto@^0.27.1"
}
}

Following that we need to add a buffer polyfill

yarn add buffer

create a shim.js file with the below code snippet

import { Buffer } from 'buffer'
global.Buffer = Buffer

import shim.js file into your file where the App is imported

Adding the cheqd to the Agent

After installing the dependencies, we can register the cheqd Module on the agent by adding the below code snippet to the agent constructor.

import { Agent, DidsModule, KeyType, DidDocument } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/react-native'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-react-native'

import {
CheqdAnonCredsRegistry,
CheqdDidRegistrar,
CheqdDidResolver,
CheqdModule,
CheqdModuleConfig,
CheqdDidCreateOptions,
} from '@aries-framework/cheqd'
import { AnonCredsModule } from '@aries-framework/anoncreds'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
dids: new DidsModule({
registrars: [new CheqdDidRegistrar()],
resolvers: [new CheqdDidResolver()],
}),

// AnonCreds
anoncreds: new AnonCredsModule({
registries: [new CheqdAnonCredsRegistry()],
}),

// Add cheqd module
cheqd: new CheqdModule(
new CheqdModuleConfig({
networks: [
{
network: '<mainnet or testnet>',
cosmosPayerSeed: '<cosmos payer seed or mnemonic>',
},
],
})
),
// Indy VDR can optionally be used with Askar as wallet and storage implementation
askar: new AskarModule({
ariesAskar,
}),
},
})

The cosmosPayerSeed can be a 32-bit seed value or a mnemonic, which can be managed using Keplr wallet which can be installed on a mobile or as a browser extension in chrome or safari which allows user's to create accounts, exchange tokens etc. To setup keplr wallet for cheqd follow this tutorial

- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/indy-sdk.html b/guides/0.5/getting-started/set-up/indy-sdk.html index a414beae..149c5c4e 100644 --- a/guides/0.5/getting-started/set-up/indy-sdk.html +++ b/guides/0.5/getting-started/set-up/indy-sdk.html @@ -3,14 +3,14 @@ -Indy SDK | Credo - +Indy SDK | Credo +
Version: v0.5.x

Indy SDK

Indy SDK provides a distributed ledger based foundation for self-sovereign identity. It can provide the Wallet and StorageService implementations for the agent, as well as a way to interact with Indy ledgers and an implementation of the legacy (v0.1) AnonCreds Specification

caution

The Indy SDK integration in Credo is currently in maintenance mode. We recommend new projects to use Aries Askar from the start, and also to migrate existing projects to Aries Askar.

caution

The AnonCreds implementation from the Indy SDK only supports the Hyperledger Indy Legacy AnonCreds Method (the pre-standardized implementation), and doesn't support the new Ledger Agnostic AnonCreds Specification (v1.0). Use the new AnonCreds Rust implementation, which is also supported by Credo, in combination with Aries Askar and Indy VDR to replace the bevhaviour of the Indy SDK, and support the new features these libraries have to offer.

Installing the Indy SDK

When using Credo with the Indy SDK, there's a few extra dependencies that need to be installed. We need to install the @aries-framework/indy-sdk package, which implements the needed interfaces for the agent. Secondly, we need to install the native Indy SDK library and the bindings for our specific platform. Currently there are bindings for Node.JS and React Native.

To start off, install the native Indy SDK library. The setup for this depends on the platform you are using. Follow the instructions for your platform below.

After the native Indy SDK library is installed, we can add the Indy SDK libraries.

yarn add @aries-framework/indy-sdk@^0.4.0 indy-sdk

And install the needed types

yarn add --dev @types/indy-sdk

Adding the Indy SDK to the Agent

After installing the dependencies, we can register the Indy SDK Module on the agent.

import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { IndySdkModule } from '@aries-framework/indy-sdk'
import indySdk from 'indy-sdk'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
// Register the Indy SDK module on the agent
indySdk: new IndySdkModule({
indySdk,
}),
},
})
- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/indy-sdk/linux.html b/guides/0.5/getting-started/set-up/indy-sdk/linux.html index 8ec5e146..07bff358 100644 --- a/guides/0.5/getting-started/set-up/indy-sdk/linux.html +++ b/guides/0.5/getting-started/set-up/indy-sdk/linux.html @@ -3,8 +3,8 @@ -Linux | Credo - +Linux | Credo + @@ -14,7 +14,7 @@ following command:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

This will install Rustup which is the installer for Rust.

With Rust, we can now build the Indy SDK from source.

First, clone the repository in a temporary directory:

git clone https://github.com/hyperledger/indy-sdk

Secondly, go to the correct directory

cd indy-sdk/libindy

Third, build the library

cargo build --release

Lastly, move the library to the correct location

sudo mv target/release/libindy.so /usr/lib/libindy.so

Confirm installation

To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/indy-sdk/macos-arm.html b/guides/0.5/getting-started/set-up/indy-sdk/macos-arm.html index 36bbf450..d8e3023d 100644 --- a/guides/0.5/getting-started/set-up/indy-sdk/macos-arm.html +++ b/guides/0.5/getting-started/set-up/indy-sdk/macos-arm.html @@ -3,8 +3,8 @@ -macOS (ARM) | Credo - +macOS (ARM) | Credo + @@ -12,7 +12,7 @@
Version: v0.5.x

macOS (ARM)

To install Indy SDK on macOS, a couple of dependencies are required. This guide covers the installation of the Indy SDK for macs with an ARM processor. For installing the Indy SDK on Intel based macs, please refer to the Indy SDK macOS (Intel) guide.

info

This installation assumes that you have brew installed. If not, please install it via this command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Libsodium

Libsodium is used by the Indy SDK for encryption, decryption, hashing and signing.

brew install libsodium

Libzmq

Libzmq is a lightweight messaging queue used by the Indy SDK.

brew install zeromq

Indy SDK

The Indy SDK does not been distributed properly for macOS. We have a pre-built library available that can be downloaded. If you prefer to build from source, you can follow the instructions in the Indy SDK repository

First, download the pre-built library from Google Drive.

After this, open Finder, control+click on the library and click on open. This is something that has to be done as the library is not properly signed.

Lastly the library just has to be moved to the correct location.

caution

If you downloaded the file in another directory, please change the first part of this command

sudo mv ~/Downloads/libindy.dylib /usr/local/lib/

Confirm installation

To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/indy-sdk/macos-intel.html b/guides/0.5/getting-started/set-up/indy-sdk/macos-intel.html index 2c2dc970..f87e457f 100644 --- a/guides/0.5/getting-started/set-up/indy-sdk/macos-intel.html +++ b/guides/0.5/getting-started/set-up/indy-sdk/macos-intel.html @@ -3,14 +3,14 @@ -macOS (Intel) | Credo - +macOS (Intel) | Credo +
Version: v0.5.x

macOS (Intel)

To install Indy SDK on macOS a couple of dependencies are required. This guide covers the installation of the Indy SDK for macs with an Intel processor. For installing the Indy SDK on ARM based macs, please refer to the Indy SDK macOS (ARM) guide.

info

This installation assumes that you have brew installed. If not, please install it via this command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Indy SDK

The Indy SDK has not been distributed properly for macOS. We have made a brew tap for libindy and it will also install all of the required dependencies.

brew install blu3beri/libindy/libindy

Confirm installation

To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/indy-sdk/react-native.html b/guides/0.5/getting-started/set-up/indy-sdk/react-native.html index 937f5e50..918604ae 100644 --- a/guides/0.5/getting-started/set-up/indy-sdk/react-native.html +++ b/guides/0.5/getting-started/set-up/indy-sdk/react-native.html @@ -3,14 +3,14 @@ -React Native | Credo - +React Native | Credo +
Version: v0.5.x

React Native

The setup of Indy SDK for React Native is rather different than Node.JS. We do not have to install dependencies on the host-platform, but for the build target. For React Native this would be the Indy SDK for Android & iOS. This guide covers both the Android and iOS setup, as in most React Native projects you will need both.

Expo

If you're using Expo, the recommended way to install the Indy SDK is by using the Indy SDK Expo Plugin. This will correclty set-up your project with the Indy SDK using an Expo Config Plugin for both iOS and Android.

Refer to the Indy SDK Expo Plugin repository for installation instructions.

Without Expo

When not using Expo, you will need to set-up the Indy SDK for both Android and iOS using the indy-sdk-react-native package directly. Refer to the Indy SDK React Native repository for installation instructions.

- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/indy-sdk/windows.html b/guides/0.5/getting-started/set-up/indy-sdk/windows.html index fb893bc4..25478763 100644 --- a/guides/0.5/getting-started/set-up/indy-sdk/windows.html +++ b/guides/0.5/getting-started/set-up/indy-sdk/windows.html @@ -3,8 +3,8 @@ -Windows | Credo - +Windows | Credo + @@ -12,7 +12,7 @@
Version: v0.5.x

Windows

To install Indy SDK on Windows, you can download the pre-built binary from the Sovrin repository.

Once downloaded, extract the zip into a permanent location.

Next, go to environment variables on your system and click on new at System Variables. The name MUST be LD_LIBRARY_PATH and the value MUST be the path to the extracted libraries.

Confirm installation

To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/0.5/getting-started/set-up/indy-vdr.html b/guides/0.5/getting-started/set-up/indy-vdr.html index a78b0e06..a385d559 100644 --- a/guides/0.5/getting-started/set-up/indy-vdr.html +++ b/guides/0.5/getting-started/set-up/indy-vdr.html @@ -3,14 +3,14 @@ -Indy VDR | Credo - +Indy VDR | Credo +
Version: v0.5.x

Indy VDR

Hyperledger Indy VDR, Verifiable Data Registry, can be used to connect to one or more Indy Node ledger pools given sets of genesis transactions. Methods are provided to construct ledger requests and send them to the validators, collecting the results and ensuring that there is a consensus between the nodes. In the context of Credo, we mainly leverage it to register, and resolve, schemas, credential definitions and DIDs.

caution

Support for Indy VDR in Credo is currently experimental. We recommend new projects to use Indy VDR from the start, and also to migrate existing projects to Indy VDR, from the indy-sdk. However, projects may experience some issues. If you encounter any issues, please open an issue.

Currently, there are few limitations to using Indy VDR.

  • When running in Node.JS, only Node.JS 18 is supported for now. See Supported Node.JS versions for Indy VDR
  • Install scripts rely on bash command substitution to get the proper binaries for each system architecture and platform. Therefore, if you are under Windows, you must configure npm or yarn to use a bash-compliant shell (e.g. npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe")

Installing Indy VDR

When using Credo with Indy VDR, there are a few extra dependencies that need to be installed. We need to install the @hyperledger/indy-vdr, which contains all the functionality to register objects on an Hyperledger Indy VDR. Secondly, we need to add native bindings for the specific platform @hyperledger/indy-vdr-<platform>. Currently there are bindings for Node.JS, as @hyperledger/indy-vdr-nodejs, and React Native as @hyperlegder/indy-vdr-react-native.

yarn add @aries-framework/indy-vdr@^0.4.0 @hyperledger/indy-vdr-nodejs@^0.1.0

Adding Indy VDR to the agent

After installing the dependencies, we can register the Indy VDR module on the agent.

import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'

import { IndyVdrAnonCredsRegistry, IndyVdrModule } from '@aries-framework/indy-vdr'
import { indyVdr } from '@hyperledger/indy-vdr-nodejs'
import { AnonCredsModule } from '@aries-framework/anoncreds'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: '<genesis_transactions>',
connectOnStartup: true,
},
],
}),
anoncreds: new AnonCredsModule({
registries: [new IndyVdrAnonCredsRegistry()],
}),
// Indy VDR can optionally be used with Askar as wallet and storage implementation
askar: new AskarModule({
ariesAskar,
}),
},
})

Configuration

As you can see below, the Indy VDR module takes the native bindings and a list of networks. This list of networks will be used to resolve and register objects on.

import { indyVdr } from '@hyperledger/indy-vdr-nodejs'
import { IndyVdrModule } from '@aries-framework/indy-vdr'

const modules = {
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
indyNamespace: 'bcovrin:test',
isProduction: false,
genesisTransactions: '<genesis_transactions>',
connectOnStartup: true,
},
],
}),
}

indyVdr

Type: IndyVdr

the indyVdr key takes a class that implements all the native bindings for Indy VDR. This can be imoprted from the @hyperledger/indy-vdr-nodejs package or the @hyperledger/indy-vdr-react-native package.

networks

Type: IndyVdrPoolConfig[]

An array of indy networks to connect to. The list can contain the following object and it must genesisTransactions.

indyNamespace

Type: string

The Indy namespace aka the name identifying the name of the network connecting to. See also indy did method identifiers

isProduction

Type: boolean

Whether the ledger is a production ledger. This is used for detecting which ledger to use in case of unqualified identifiers as production ledgers have priority.

genesisTransactions

Type: string

Stringified JSON object of the transaction.

connectOnStartup

Type: boolean

Whether to connect to the ledger on startup. Defaults to false.

transactionAuthorAgreement

Type: TransactionAuthorAgreement

JSON representation specifying the version and acceptance mechanism. The version is the unique version of the transaction author agreement acceptance mechanism list (AML). The acceptance mechanism refers to the acceptance mechanism label of the item in the AML. For more details you may consult the indy-node docs on AML

transactionAuthorAgreement.version

Type: string

The version of the AML acceptance mechanism. This is a string representation of a version number e.g. '1' or '1.4'

transactionAuthorAgreement.acceptanceMechanism

Type: string

The acceptance mechanism to choose. This must be one of the available labels of the acceptance mechanisms key-value pairs in the AML e.g. 'EULA'.

Supported Node.JS versions for Indy VDR

Due to an issue in ref-napi (which is used in the Node.JS bindings for Indy VDR), performance for Indy VDR in Node.JS is not as expected. A patched version for ref-napi has been published that fixes this issue, but this only works in Node.JS 18+.

To use Indy VDR in Node.JS, make sure you're using Node.JS 18 and patch the ref-napi package to point towards @2060.io/ref-napi in your package.json:

Using NPM overrides we can point the ref-napi package to @2060.io/ref-napi.

{
"overrides": {
"ref-napi": "npm:@2060.io/ref-napi"
}
}
- + \ No newline at end of file diff --git a/guides/0.5/tutorials.html b/guides/0.5/tutorials.html index 487e7c3b..c434936a 100644 --- a/guides/0.5/tutorials.html +++ b/guides/0.5/tutorials.html @@ -3,8 +3,8 @@ -Tutorials | Credo - +Tutorials | Credo + @@ -12,7 +12,7 @@
- + \ No newline at end of file diff --git a/guides/0.5/tutorials/agent-config.html b/guides/0.5/tutorials/agent-config.html index 1f46b664..74b870bf 100644 --- a/guides/0.5/tutorials/agent-config.html +++ b/guides/0.5/tutorials/agent-config.html @@ -3,8 +3,8 @@ -Agent Config | Credo - +Agent Config | Credo + @@ -39,7 +39,7 @@ Label this is completely up to the user to define this. It MUST not be used got any base of authenticity.

Type: string

example
connectionImageUrl: 'https://picsum.photos/200'

autoUpdateStorageOnStartup

Whether the storage should automatically be updated when a newer version of Credo is used.

Type: boolean

Default: false

example
autoUpdateStorageOnStartup: true

- + \ No newline at end of file diff --git a/guides/0.5/tutorials/agent-config/logging.html b/guides/0.5/tutorials/agent-config/logging.html index 69bc80c0..2c33b4d8 100644 --- a/guides/0.5/tutorials/agent-config/logging.html +++ b/guides/0.5/tutorials/agent-config/logging.html @@ -3,15 +3,15 @@ -Logging | Credo - +Logging | Credo +
Version: v0.5.x

Logging

Using the Default ConsoleLogger

To enable logging inside the framework a logger must be passed to the agent config. A simple ConsoleLogger can be imported from the framework.

import type { InitConfig } from '@aries-framework/core'
import { ConsoleLogger, LogLevel } from '@aries-framework/core'

const agentConfig: InitConfig = {
// ... other config properties ...
logger: new ConsoleLogger(LogLevel.info),
}

Creating your own Logger

For more advanced use cases the Logger interface can be implemented. See the example below.

import { Logger, LogLevel } from '@aries-framework/core'

class MyCustomLogger implements Logger {
public logLevel: LogLevel

public constructor(logLevel: LogLevel = LogLevel.off) {
this.logLevel = logLevel
}

public test(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public trace(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public debug(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public info(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public warn(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public error(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public fatal(message: string, data?: Record<string, any>): void {
console.log(message, data)
}
}

Indy Logs

To enable logging in the underlying Rust framework, either setLogger or setDefaultLogger must be called on the indy dependency, as seen here.

caution

The setLogger and setDefaultLogger methods have only been implemented in the Node.JS wrapper of the indy sdk. This won't work when importing from @aries-framework/react-native

The easiest way to do this from Credo is through the indy property of agentDependencies.

import { agentDependencies } from '@aries-framework/node'
agentDependencies.indy.setDefaultLogger('trace')

// OR

agentDependencies.indy.setLogger((level, target, message, modulePath, file, line) => {
console.log('libindy said:', level, target, message, modulePath, file, line)
})

WARNING: You can only set the logger once. Call indy_set_default_logger, indy_set_logger, not both. Once it's been set, libindy won't let you change it.

You can also set the environment variable RUST_LOG to log at specified log levels. See https://crates.io/crates/env_logger for more information.

- + \ No newline at end of file diff --git a/guides/0.5/tutorials/cheqd.html b/guides/0.5/tutorials/cheqd.html index 99cd77d0..e6fe790e 100644 --- a/guides/0.5/tutorials/cheqd.html +++ b/guides/0.5/tutorials/cheqd.html @@ -3,14 +3,14 @@ -Cheqd Did Module | Credo - +Cheqd Did Module | Credo +
Version: v0.5.x

Cheqd Did Module

In this tutorial we will see how to use the cheqd modules in detail

info

This section assumes that

  1. You have set-up your develoment environment.
  2. You have setup the cheqd module setup cheqd

DID Module

The cheqd DID module facilitates the Create, Read, Update, and Delete (CRUD) operations for did:cheqd identifiers. To learn more about "did:cheqd," please refer to the specification

Create DID

The DID can be created in two different ways

Parameters

  1. method*: cheqd
  2. secret
  3. options*
  4. didDocument
Option 1

Provide a DID Document payload according to the w3c did core specification in the request body. This is possible when the keys corresponding to the verification methods provided in the DID Document are already created in the wallet


// create a key pair
const key = await agent.wallet.createKey({
keyType: KeyType.Ed25519,
})

// encode public key according to the verification method
const ed25519PublicKeyBase58 = key.publicKeyBase58

// Create a DID
await agent.dids.create<CheqdDidCreateOptions>({
method: 'cheqd',
secret: {},
options: {
network: 'testnet',
},
didDocument: new DidDocument({
id: 'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d',
controller: ['did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d'],
verificationMethod: [
{
id: 'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d#key-1',
type: 'Ed25519VerificationKey2018',
controller: 'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d',
publicKeyBase58: ed25519PublicKeyBase58,
},
],
authentication: ['did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d#key-1'],
}),
})
Option 2

If a DID Document is not passed to the registrar, it requires the secret parameter with a verificationMethod to construct the DID Document.

await agent.dids.create({
method: 'cheqd',
// the secret contains a the verification method type and id
secret: {
verificationMethod: {
id: 'key-1',
type: 'Ed25519VerificationKey2020',
},
},
// an optional methodSpecificIdAlgo parameter
options: {
network: 'testnet',
methodSpecificIdAlgo: 'uuid',
},
})

Update DID

To update a DID Document, fetch the body of the DID Document you want to change from the DID Resolver, make the relevant updates and pass it as the parameter

Parameters

  1. did*
  2. didDocument*: The updated DID Document
  3. options
  4. secret
await agent.dids.update({
did: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
// Updates DID Document with an additional verification method if provided
secret: {
verificationMethod: {
id: 'key-2',
type: 'JsonWebKey2020',
},
},
didDocument: {
id: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
controller: ['did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411'],
verificationMethod: [
{
id: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411#key-1',
type: 'Ed25519VerificationKey2020',
controller: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
publicKeyMultibase: 'z6MknkzLUEP5cxqqsaysNMWoh8NJRb3YsowTCj2D6yhwyEdj',
},
],
authentication: ['did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411#key-1'],
// updates did document with a service block
service: [
new DidDocumentService({
id: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411#rand',
type: 'rand',
serviceEndpoint: 'https://rand.in',
}),
],
},
})

Deactivate DID

A DID can be deactivated, it can still be resolved

Parameters

  1. did*
  2. options
await agent.dids.deactivate({
did: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
// an optional versionId parameter
options: {
versionId: '3.0',
},
})

Types


secret.verificationMethod

Type: verificationMethod

verificationMethod.id*

Type: string

verificationMethod.type*

Type: string

Default: Ed25519VerificationKey2020

Members:

  1. Ed25519VerificationKey2020
  2. Ed25519VerificationKey2018
  3. JsonWebKey2020
verificationMethod.privateKey

Type: string


options.methodSpecificIdAlgo

Specifies what type of method specific identifier is needed for your DID

Type: string

Default: uuid

Members:

  1. uuid
  2. base58btc

options.network*

Specifies the cheqd network name to be published

Type: string

Default: testnet

Members:

  1. testnet
  2. mainnet

options.versionId

Specifies the version of the DID Document to be published

Type: string

- + \ No newline at end of file diff --git a/guides/0.5/tutorials/create-a-connection.html b/guides/0.5/tutorials/create-a-connection.html index a93264fc..b6e2cc9f 100644 --- a/guides/0.5/tutorials/create-a-connection.html +++ b/guides/0.5/tutorials/create-a-connection.html @@ -3,8 +3,8 @@ -Create a connection | Credo - +Create a connection | Credo + @@ -38,7 +38,7 @@ should be edited to fit your use case. The walletConfig.key must be changed as it can lead to other people knowing your "password" to your wallet.

import { AskarModule } from '@aries-framework/askar'
import {
Agent,
InitConfig,
ConnectionEventTypes,
ConnectionStateChangedEvent,
WsOutboundTransport,
HttpOutboundTransport,
DidExchangeState,
OutOfBandRecord,
ConnectionsModule,
} from '@aries-framework/core'
import { agentDependencies, HttpInboundTransport } from '@aries-framework/node'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'

const initializeBobAgent = async () => {
// Simple agent configuration. This sets some basic fields like the wallet
// configuration and the label. It also sets the mediator invitation url,
// because this is most likely required in a mobile environment.
const config: InitConfig = {
label: 'demo-agent-bob',
walletConfig: {
id: 'mainBob',
key: 'demoagentbob00000000000000000000',
},
}

// A new instance of an agent is created here
// Askar can also be replaced by the indy-sdk if required
const agent = new Agent({
config,
modules: {
askar: new AskarModule({ ariesAskar }),
connections: new ConnectionsModule({ autoAcceptConnections: true }),
},
dependencies: agentDependencies,
})

// Register a simple `WebSocket` outbound transport
agent.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
agent.registerOutboundTransport(new HttpOutboundTransport())

// Initialize the agent
await agent.initialize()

return agent
}

const initializeAcmeAgent = async () => {
// Simple agent configuration. This sets some basic fields like the wallet
// configuration and the label.
const config: InitConfig = {
label: 'demo-agent-acme',
walletConfig: {
id: 'mainAcme',
key: 'demoagentacme0000000000000000000',
},
endpoints: ['http://localhost:3001'],
}

// A new instance of an agent is created here
// Askar can also be replaced by the indy-sdk if required
const agent = new Agent({
config,
modules: {
askar: new AskarModule({ ariesAskar }),
connections: new ConnectionsModule({ autoAcceptConnections: true }),
},
dependencies: agentDependencies,
})

// Register a simple `WebSocket` outbound transport
agent.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
agent.registerOutboundTransport(new HttpOutboundTransport())

// Register a simple `Http` inbound transport
agent.registerInboundTransport(new HttpInboundTransport({ port: 3001 }))

// Initialize the agent
await agent.initialize()

return agent
}

const createNewInvitation = async (agent: Agent) => {
const outOfBandRecord = await agent.oob.createInvitation()

return {
invitationUrl: outOfBandRecord.outOfBandInvitation.toUrl({ domain: 'https://example.org' }),
outOfBandRecord,
}
}

const createLegacyInvitation = async (agent: Agent) => {
const { invitation } = await agent.oob.createLegacyInvitation()

return invitation.toUrl({ domain: 'https://example.org' })
}

const receiveInvitation = async (agent: Agent, invitationUrl: string) => {
const { outOfBandRecord } = await agent.oob.receiveInvitationFromUrl(invitationUrl)

return outOfBandRecord
}

const setupConnectionListener = (agent: Agent, outOfBandRecord: OutOfBandRecord, cb: (...args: any) => void) => {
agent.events.on<ConnectionStateChangedEvent>(ConnectionEventTypes.ConnectionStateChanged, ({ payload }) => {
if (payload.connectionRecord.outOfBandId !== outOfBandRecord.id) return
if (payload.connectionRecord.state === DidExchangeState.Completed) {
// the connection is now ready for usage in other protocols!
console.log(`Connection for out-of-band id ${outOfBandRecord.id} completed`)

// Custom business logic can be included here
// In this example we can send a basic message to the connection, but
// anything is possible
cb()

// We exit the flow
process.exit(0)
}
})
}


const run = async () => {
console.log('Initializing Bob agent...')
const bobAgent = await initializeBobAgent()
console.log('Initializing Acme agent...')
const acmeAgent = await initializeAcmeAgent()

console.log('Creating the invitation as Acme...')
const { outOfBandRecord, invitationUrl } = await createNewInvitation(acmeAgent)

console.log('Listening for connection changes...')
setupConnectionListener(acmeAgent, outOfBandRecord, () =>
console.log('We now have an active connection to use in the following tutorials')
)

console.log('Accepting the invitation as Bob...')
await receiveInvitation(bobAgent, invitationUrl)
}

export default run

void run()

Useful resources

- + \ No newline at end of file diff --git a/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs.html b/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs.html index 8d152a0d..461c3fd9 100644 --- a/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs.html +++ b/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs.html @@ -3,14 +3,14 @@ -Using PostgreSQL as Database for Indy SDK in Node.js | Credo - +Using PostgreSQL as Database for Indy SDK in Node.js | Credo +
Version: v0.5.x

Using PostgreSQL as Database for Indy SDK in Node.js

By default the Indy SDK will use an SQLite database for storage. In mobile environments this is sufficient and allows us to keep storage local to the device, but in server environments we oftentimes want a more scalable storage solution. By leveraging the PostgreSQL plugin for Indy SDK we can use PostgreSQL as a storage solution instead of SQLite.

This document describes the installation process of the Postgres plugin for IndySDK and how you need to configure Credo to use it.

Installation of the Postgres Plugin

For installation of the Postgres plugin, please refer to the platform specific guides:

Using the Postgres Plugin in Credo

import { Agent, InitConfig } from '@aries-framework/core'
import { IndySdkModule } from '@aries-framework/indy-sdk'
import {
agentDependencies,
IndySdkPostgresStorageConfig,
loadIndySdkPostgresPlugin,
IndySdkPostgresWalletScheme,
} from '@aries-framework/node'
import indySdk from 'indy-sdk'

// IndySdkPostgresStorageConfig defines interface for the Postgres plugin configuration.
const storageConfig = {
type: 'postgres_storage',
config: {
url: 'localhost:5432',
wallet_scheme: IndySdkPostgresWalletScheme.DatabasePerWallet,
},
credentials: {
account: 'postgres',
password: 'postgres',
admin_account: 'postgres',
admin_password: 'postgres',
},
} satisfies IndySdkPostgresStorageConfig

// load the postgres wallet plugin before agent initialization
loadIndySdkPostgresPlugin(storageConfig.config, storageConfig.credentials)

const agentConfig: InitConfig = {
label: 'My Agent',
// walletConfig.id and walletConfig.key are still required
walletConfig: {
id: 'walletId',
key: 'testKey0000000000000000000000000',
// storage is added and defines the postgres plugin configuration
storage: storageConfig,
},
}

const agent = new Agent({
config: agentConfig,
dependencies: agentDependencies,
modules: {
indySdk: new IndySdkModule({
indySdk,
}),
},
})
- + \ No newline at end of file diff --git a/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/linux.html b/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/linux.html index f669e2f2..5440f7a1 100644 --- a/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/linux.html +++ b/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/linux.html @@ -3,14 +3,14 @@ -Postgres Setup for Linux | Credo - +Postgres Setup for Linux | Credo +
Version: v0.5.x

Postgres Setup for Linux

Prerequisites

  • A system package manager (like APT, Pacman, etc.)
  • Cargo (We have to build Postgres plugin from source)
  • git (to clone a repo, could also be done with downloading the zip from the GitHub page)

Step 1: installing the dependencies using apt

Debian based (Ubuntu, Mint, Kali, Deepin, etc.)

sudo apt install libzmq3-dev libsodium-dev libssl-dev

Step 2: Build Postgres plugin

Building Postgres plugin from the indy-sdk repo with cargo.

Step 2.1: Cloning the indy-sdk

git clone https://github.com/hyperledger/indy-sdk.git

cd indy-sdk/experimental/plugins/postgres_storage

Step 2.2: Building Postgres plugin

If this step throws any errors, it might be because you miss some packages. Step 1 of this guide provided the dependencies that are required, but it also assumed that you have some basic development packages installed. If you are missing some packages, you can install them with your package manager.

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

cargo build --release

Step 2.3: Moving the file

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

sudo mv ./target/release/libindystrgpostgres.so /usr/local/lib/libindystrgpostgres.so
- + \ No newline at end of file diff --git a/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/macos.html b/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/macos.html index 8ce98f5c..e1e2f128 100644 --- a/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/macos.html +++ b/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/macos.html @@ -3,14 +3,14 @@ -Postgres Setup for macOS | Credo - +Postgres Setup for macOS | Credo +
Version: v0.5.x

Postgres Setup for macOS

Prerequisites

  • Homebrew
  • Cargo (We have to build Postgres plugin from source)
  • git (to clone a repo, could also be done with downloading the zip from the GitHub page)

Step 1: installing the dependencies using brew

brew install libsodium zeromq

Step 2: Build Postgres plugin

Building Postgres plugin from the indy-sdk repo with cargo.

Step 2.1: Cloning the indy-sdk

git clone https://github.com/hyperledger/indy-sdk.git

cd indy-sdk/experimental/plugins/postgres_storage

Step 2.2: Building Postgres plugin

If this step throws any errors, it might be because you miss some packages. Step 1 of this guide provided the dependencies that are required, but it also assumed that you have some basic development packages installed. If you are missing some packages, you can install them with your package manager.

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

cargo build --release

Step 2.3: Moving the file

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

sudo mv ./target/release/libindystrgpostgres.dylib /usr/local/lib/libindystrgpostgres.dylib
- + \ No newline at end of file diff --git a/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/windows.html b/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/windows.html index 62d0d25d..9a6373f0 100644 --- a/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/windows.html +++ b/guides/0.5/tutorials/indy-sdk-postgres-database-nodejs/windows.html @@ -3,14 +3,14 @@ -Postgres Setup for windows | Credo - +Postgres Setup for windows | Credo +
Version: v0.5.x

Postgres Setup for windows

Build Environment Prerequisites

  1. Download and install Visual Studio Community Edition 2022
  2. Install git for windows
  3. Download rust for windows here
  4. Make sure you have already setup libindy for windows from here

Step 1: Getting dependencies

  • Download the prebuilt dependencies here
  • Extract them
  • Point path to this directory using environment variables:
    • set INDY_PREBUILT_DEPS_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set INDY_CRYPTO_PREBUILT_DEPS_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set MILAGRO_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set LIBZMQ_PREFIX=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set SODIUM_LIB_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set OPENSSL_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set PATH=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps\lib

Step 2: Build Postgres plugin

Building Postgres plugin from the indy-sdk repo with cargo.

Step 2.1: Cloning the indy-sdk

git clone https://github.com/hyperledger/indy-sdk.git

cd indy-sdk\experimental\plugins\postgres_storage

Step 2.2: Building Postgres plugin

If this step throws any errors, it might be because of the environment. Step 1 of this guide provided the dependencies that are required.

cargo build --release --target x86_64-pc-windows-msvc

The library indystrgpostgres.dll file will be located at indy-sdk\experimental\plugins\postgres_storage\target\x86_64-pc-windows-msvc\release

Step 2.3: Setting the file to PATH

  • set LIB_INDY_STRG_POSTGRES=C:\Users\{WINDOWS_USER}\Downloads\indy-sdklexperimental\plugins\postgres_storage\target\x86_64-pc-windows-msvc\release

or Alternatively you can copy the indystrgpostgres.dll file to c:\\windows\\system32\\

- + \ No newline at end of file diff --git a/guides/0.5/tutorials/issue-a-credential.html b/guides/0.5/tutorials/issue-a-credential.html index 74fc5da6..b9dea27e 100644 --- a/guides/0.5/tutorials/issue-a-credential.html +++ b/guides/0.5/tutorials/issue-a-credential.html @@ -3,14 +3,14 @@ -Issue a credential | Credo - +Issue a credential | Credo +
Version: v0.5.x

Issue a credential

In this tutorial we will issue a credential from the Issuer to a Holder. We will start with setting up both their agents with the minimal configuration required to follow this tutorial. It is assumed that there is a connection between the Issuer and the Holder and the Issuer also has a registered schema and credential definition. After initializing the Issuer will send a credential to the holder, and will then accept this credential and automatically store it in their wallet.

Using AnonCreds and the Issue Credential V2 Protocol or the Issue Credential V1 Protocol.

info

This section assumes that

  1. You have set-up your develoment environment.
  2. You have basic knowledge of the required fields in the Agent Config
  3. You have completed the Create a Connection tutorial
  4. You have a registered schema and credential definition. This can be done by following the Registering on a AnonCreds Registry

1. Setting up the agents

First for both agents we must setup and initialize an agent to work with. Depending on your target, React Native or Node.js, it might vary.

In this tutorial the Holder will be in a Node.js environment and the Issuer also in a Node.js environment.

Issuer

For the Issuer the setup is commonly not the same as the Holder. In the example they both live in a server environment, meaning they do not need a mediator. More commonly, the Holder is in a mobile environment where a mediator is required for receiving DIDComm messages.

It is also very important for the Issuer to have a public DID, for the binding with a credential definition, amongst other things. For this demo we will use BCovrin Test. If you want to follow this tutorial, you have to register a public DID here via the Wallet seed field (this must be the same as the seed inside the config under the key publicDidSeed).

In order to reach the Issuer we have to add a list of endpoints of the agent that exposes the inboundTransport to the public. In the example below we add an inboundTransport and use port 3002. For development purposes it is recommended to use a tunneling service for this, like Ngrok. Ngrok will allow you to reach your locally exposed endpoint from the public. If a tunneling service is used, make sure to use the HTTPS variant as mobile environments, by default, do not accept HTTP anymore.

To install Ngrok and expose the port to the public the following commands can be used:

yarn global add ngrok

ngrok http <PORT>
📄issuer
const issuer = new Agent({
config: issuerConfig,
dependencies: agentDependencies,
modules: {
askar: new AskarModule({
ariesAskar,
}),
anoncredsRs: new AnonCredsRsModule({
anoncreds,
}),
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: '<genesis transaction>',
connectOnStartup: true,
},
],
}),
anoncreds: new AnonCredsModule({
registries: [new IndyVdrAnonCredsRegistry()],
}),
dids: new DidsModule({
registrars: [new IndyVdrIndyDidRegistrar()],
resolvers: [new IndyVdrIndyDidResolver()],
}),
credentials: new CredentialsModule({
credentialProtocols: [
new V2CredentialProtocol({
credentialFormats: [new LegacyIndyCredentialFormatService(), new AnonCredsCredentialFormatService()],
}),
],
}),
},
})

// Register a simple `WebSocket` outbound transport
issuer.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
issuer.registerOutboundTransport(new HttpOutboundTransport())

// Register a simple `Http` inbound transport
issuer.registerInboundTransport(new HttpInboundTransport({ port: 3002 }))

Holder

For the Holder we need to setup a basic agent with a wallet, mediator, outbound transport and a ledger.

If you want to follow this tutorial in a mobile environment:

  1. Use the agentDependencies from @aries-framework/react-native
  2. It is very important to note that mobile agents do not support HTTP by default. It is recommended to do everything over HTTPS, but for development HTTP can be enabled for iOS and Android.
🗄holder
const holder = new Agent({
config: holderConfig,
dependencies: agentDependencies,
modules: {
askar: new AskarModule({
ariesAskar,
}),
anoncredsRs: new AnonCredsRsModule({
anoncreds,
}),
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: '<genesis transaction>',
connectOnStartup: true,
},
],
}),
anoncreds: new AnonCredsModule({
registries: [new IndyVdrAnonCredsRegistry()],
}),
dids: new DidsModule({
resolvers: [new IndyVdrIndyDidResolver()],
}),
credentials: new CredentialsModule({
credentialProtocols: [
new V2CredentialProtocol({
credentialFormats: [new LegacyIndyCredentialFormatService(), new AnonCredsCredentialFormatService()],
}),
],
}),
},
})

// Register a simple `WebSocket` outbound transport
holder.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
holder.registerOutboundTransport(new HttpOutboundTransport())

// Register a simple `Http` inbound transport
holder.registerInboundTransport(new HttpInboundTransport({ port: 3002 }))

3. Listening for incoming credentials

When we want to accept a credential, we have to listen to incoming credentials and handle accordingly. In this example we do not have any user interaction, but is likely that your application would have a user-interface which would display the credential. When receiving a credential offer you can get the values from credentialExchangeRecord.credentialAttributes.

🗄holder
holder.events.on<CredentialStateChangedEvent>(CredentialEventTypes.CredentialStateChanged, async ({ payload }) => {
switch (payload.credentialRecord.state) {
case CredentialState.OfferReceived:
console.log('received a credential')
// custom logic here
await holder.credentials.acceptOffer({ credentialRecordId: payload.credentialRecord.id })
case CredentialState.Done:
console.log(`Credential for credential id ${payload.credentialRecord.id} is accepted`)
// For demo purposes we exit the program here.
process.exit(0)
}
})

4. Issuing a credential

Now that everything is setup on both sides, the Issuer can now offer a credential to the Holder.

In this example we do not instantiate a connection and assume that there is one. Please refer to this guide Create a connection to get a connection and connectionId.

📄issuer
const indyCredentialExchangeRecord = await issuer.credentials.offerCredential({
protocolVersion: 'v2',
connectionId: '<connection id>',
credentialFormats: {
indy: {
credentialDefinitionId: '<credential definition id>',
attributes: [
{ name: 'name', value: 'Jane Doe' },
{ name: 'age', value: '23' },
],
},
},
})

Useful resources

- + \ No newline at end of file diff --git a/guides/0.5/tutorials/mediation.html b/guides/0.5/tutorials/mediation.html index fd66de29..35fa3ddb 100644 --- a/guides/0.5/tutorials/mediation.html +++ b/guides/0.5/tutorials/mediation.html @@ -3,8 +3,8 @@ -Mediation | Credo - +Mediation | Credo + @@ -13,7 +13,7 @@ config

The agent setup varies depending on your target environment, React Native or Node.js.
This tutorial assumes a Node.js environment for all agents (Alice, Bob, Meditator).

This tutorial shows how to set up a mediator, how to configure an agent to use a mediator, and how agents exchange messages with a mediator in place. Concepts are explained in isolation:

  • First, it is shown how to set up a mediator.
  • Second, it is demonstrated how to use a mediator.
  • Third, the message exchange between agents with a mediator in place is explained.

What is a mediator, and Why should I use one?

A mediator is just a special type of agent.

info

"When we describe agent-to-agent communication, it is convenient to think of an interaction only in terms of Alice and Bob and their agents. We say things like: "Alice's agent sends a message to Bob's agent" -- or perhaps "Alice's edge agent sends a message to Bob's cloud agent, which forwards it to Bob's edge agent".

Such statements adopt a useful level of abstraction--one that's highly recommended for most discussions. However, they make a number of simplifications. By modeling the roles of mediators and relays in routing, we can support routes that use multiple transports, routes that are not fully known (or knowable) to the sender, routes that pass through mix networks, and other advanced and powerful concepts."Aries RFC 0046: Mediators and Relays

A practical example where the use of mediators is beneficial can be found in a mobile environment. A mobile agent, aka. your mobile wallet, receives messages from other agents. Technically, sending HTTP messages to a mobile agent is impossible because the agent does not have a public IP. As you have probably seen in previous examples, a workaround for this scenario is to use ngrok. Another option is to use a mediator. When an agent is configured to use a mediator, messages to that agent are routed through the mediator and from there to its destination. Thus, a mobile agent can use a "public" mediator to receive messages on its behalf and poll them from time to time.

This is just one example of how a mediator can be used. Further resources about mediators can be found here.

tip

With mediators, WebSockets come in handy. In a production environment, it is recommendable to register a WsInboundTransport() for Alice and a WsOutboundTransport() for the mediator. These WebSocket transports allow the mediator to push messages to Alice instead of having Alice pull messages from the mediator repeatedly.

1. Mediator setup

The first part shows how to set up a mediator agent. Generally, there are two ways to do that: deploying it from scratch or using a third-party mediator. This section focuses on the former approach, setting up the mediator from scratch.

The mediator is set up on port 3001 and creates an Out-of-Band invitation that allows multiple other agents to connect to the mediator. Configuring an agent as a mediator demands utilizing the MediatorModule. In this example, the autoAcceptMediationRequests flag is set to true to accept mediation requests automatically.

const name = 'mediator'
const port = 3001

const agentConfig: InitConfig = {
label: `Credo ${name}`,
walletConfig: {
id: name,
key: name,
},
endpoints: [`http://localhost:${port}`],
}

const mediator = new Agent({
config: agentConfig,
dependencies: agentDependencies,
modules: {
indySdk: new IndySdkModule({ indySdk }),
mediator: new MediatorModule({
autoAcceptMediationRequests: true,
}),
connections: new ConnectionsModule({
autoAcceptConnections: true,
}),
},
})

mediator.registerOutboundTransport(new HttpOutboundTransport())
mediator.registerInboundTransport(new HttpInboundTransport({ port }))

await mediator.initialize()
const mediatorOutOfBandRecord = await mediator.oob.createInvitation({ multiUseInvitation: true })

const mediatiorInvitationUrl = mediatorOutOfBandRecord.outOfBandInvitation.toUrl({
domain: `http://localhost:${port}`,
})
console.log(mediatiorInvitationUrl)

2. Recipient (Alice) setup

The second part shows how to use a mediator. Becoming a recipient of a mediator requires using the MediationRecipientModule. The setup is the same whether you use your own or a third-party mediator.

The easiest way to set everything up is by configuring the MediationRecipientModule to connect to the mediator on agent startup. This can be done by constructing the module with the mediatorInvitationUrl. You can get the mediatorInvitationUrl either from part one by running a mediator yourself or from a public mediator such as the Animo-mediator. The following snippet uses the latter approach.

The ConnectionsModule used in this snippet serves the sole purpose of automatically accepting connections and thus simplifying setup.

const name = 'alice'

// paste your invitation url here
// or use the current invitation-url to connect to the public animo-mediator.
const mediatorInvitationUrl =
'https://mediator.dev.animo.id/invite?oob=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvb3V0LW9mLWJhbmQvMS4xL2ludml0YXRpb24iLCJAaWQiOiIyMDc1MDM4YS05ZGU3LTRiODItYWUxYi1jNzBmNDg4MjYzYTciLCJsYWJlbCI6IkFuaW1vIE1lZGlhdG9yIiwiYWNjZXB0IjpbImRpZGNvbW0vYWlwMSIsImRpZGNvbW0vYWlwMjtlbnY9cmZjMTkiXSwiaGFuZHNoYWtlX3Byb3RvY29scyI6WyJodHRwczovL2RpZGNvbW0ub3JnL2RpZGV4Y2hhbmdlLzEuMCIsImh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wIl0sInNlcnZpY2VzIjpbeyJpZCI6IiNpbmxpbmUtMCIsInNlcnZpY2VFbmRwb2ludCI6Imh0dHBzOi8vbWVkaWF0b3IuZGV2LmFuaW1vLmlkIiwidHlwZSI6ImRpZC1jb21tdW5pY2F0aW9uIiwicmVjaXBpZW50S2V5cyI6WyJkaWQ6a2V5Ono2TWtvSG9RTUphdU5VUE5OV1pQcEw3RGs1SzNtQ0NDMlBpNDJGY3FwR25iampMcSJdLCJyb3V0aW5nS2V5cyI6W119LHsiaWQiOiIjaW5saW5lLTEiLCJzZXJ2aWNlRW5kcG9pbnQiOiJ3c3M6Ly9tZWRpYXRvci5kZXYuYW5pbW8uaWQiLCJ0eXBlIjoiZGlkLWNvbW11bmljYXRpb24iLCJyZWNpcGllbnRLZXlzIjpbImRpZDprZXk6ejZNa29Ib1FNSmF1TlVQTk5XWlBwTDdEazVLM21DQ0MyUGk0MkZjcXBHbmJqakxxIl0sInJvdXRpbmdLZXlzIjpbXX1dfQ'

const agentConfig: InitConfig = {
label: `Credo ${name}`,
walletConfig: {
id: name,
key: name,
},
logger: new ConsoleLogger(LogLevel.trace),
}

const alice = new Agent({
config: agentConfig,
dependencies: agentDependencies,
modules: {
mediationRecipient: new MediationRecipientModule({
mediatorInvitationUrl,
}),
indySdk: new IndySdkModule({ indySdk }),
},
})

alice.registerOutboundTransport(new HttpOutboundTransport())
alice.registerOutboundTransport(new WsOutboundTransport())

await alice.initialize()
info

In case you are using a third-party mediator and cannot create an invitationUrl, it is common practice for mediators to provide an endpoint from which the invitationUrl can be fetched.

3. Message exchange

This section explains the message exchange between agents when a mediator is in place. The process is illustrated using the diagram below. Parts one and two of this tutorial showed how to set up and use a mediator. If the mediatorInvitationUrl is specified when constructing the MediationRecipientModule (as in Part two), the mediation request and grant (1-2) between Alice and the mediator will be performed automatically when Alice's agent is started.

If Alice establishes a connection with another fictional agent, say, Bob's agent, who is not using any mediators (3-6). (Connection establishment is no different when a mediator is involved). Then, messages from Alice to Bob (7) are routed directly to Bob, while messages from Bob to Alice (8-9) are routed through the intermediary.

Useful resources

For more information about mediator refer to:

- + \ No newline at end of file diff --git a/guides/0.5/tutorials/registering-schema-and-credential-definition.html b/guides/0.5/tutorials/registering-schema-and-credential-definition.html index e6a9deee..d4786370 100644 --- a/guides/0.5/tutorials/registering-schema-and-credential-definition.html +++ b/guides/0.5/tutorials/registering-schema-and-credential-definition.html @@ -3,14 +3,14 @@ -Registering a schema and credential definition on an AnonCreds Registry | Credo - +Registering a schema and credential definition on an AnonCreds Registry | Credo +
Version: v0.5.x

Registering a schema and credential definition on an AnonCreds Registry

In this tutorial we will register a schema and credential definition on an AnonCredsRegistry e.g. Hyperledger Indy ledger indy-vdr, cheqd.

info

This section assumes that

  1. You have set-up your development environment.
  2. You have basic knowledge of the required fields in the Agent Config

1. Setting up the agent

First, an agent must be setup with a wallet and an indy-vdr or cheqd module. For these code examples, we will use a Node.js environment.

📄issuer
import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'
import {
IndyVdrAnonCredsRegistry,
IndyVdrIndyDidRegistrar,
IndyVdrIndyDidResolver,
IndyVdrModule,
} from '@aries-framework/indy-vdr'
import { indyVdr } from '@hyperledger/indy-vdr-nodejs'
import { AnonCredsModule } from '@aries-framework/anoncreds'
import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs'
import { anoncreds } from '@hyperledger/anoncreds-nodejs'
import {
CheqdAnonCredsRegistry,
CheqdDidRegistrar,
CheqdDidResolver,
CheqdModule,
CheqdModuleConfig,
} from '@aries-framework/cheqd'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
// Register the Askar module on the agent
// We do this to have access to a wallet
askar: new AskarModule({
ariesAskar,
}),
anoncredsRs: new AnonCredsRsModule({
anoncreds,
}),
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: '<genesis transactions>',
connectOnStartup: true,
},
],
}),
cheqd: new CheqdModule(
new CheqdModuleConfig({
networks: [
{
network: '<mainnet or testnet>',
cosmosPayerSeed: '<cosmos payer seed or mnemonic>',
},
],
})
),
anoncreds: new AnonCredsModule({
registries: [new IndyVdrAnonCredsRegistry(), new CheqdAnonCredsRegistry()],
}),
dids: new DidsModule({
registrars: [new IndyVdrIndyDidRegistrar(), new CheqdDidRegistrar()],
resolvers: [new IndyVdrIndyDidResolver(), new CheqdDidResolver()],
}),
},
})

2. Importing a DID (optional)

info

There are many ledgers which can be used to register DIDs on for development.

Indy VDR

We recommend bcovrin test net. This network allows very easily to register a DID from a seed which can then be used as the privateKey in the snippet below. The seed is used as the private key for legacy compatibility with the Hyperledger Indy-SDK. The genesis transactions can also be retrieved for easy integration.

Cheqd

Follow the cheqd setup and cheqd DID module to setup the network and create a DID. Cheqd supports a mainnet for production and a testnet for development purposes.

In order to register a schema and credential definition, a DID must be added to the agent first. This can be done by calling agent.dids.create(), but this does require an endorser DID to be present as the submitterDid. For this tutorial a DID will already be registered on the ledger, but it will be imported, with the associated private key, to be used later when registering the schema and credential definition.

This section can be omitted if your agent already has a DID in its wallet.

📄issuer
const seed = TypedArrayEncoder.fromString(`<seed>`) // What you input on bcovrin. Should be kept secure in production!
const unqualifiedIndyDid = `<unqualifiedIndyDid>` // will be returned after registering seed on bcovrin
const indyDid = `did:indy:bcovrin:test:${unqualifiedIndyDid}`

const cheqdDid = await agent.dids.create({
method: 'cheqd',
secret: {
verificationMethod: {
id: 'key-1',
type: 'Ed25519VerificationKey2020',
},
},
options: {
network: 'testnet',
methodSpecificIdAlgo: 'uuid',
},
})

await agent.dids.import({
did: '<did>',
overwrite: true,
privateKeys: [
{
privateKey: seed,
keyType: KeyType.Ed25519,
},
],
})

3. Registering a schema

When you have a registered DID on a network and in your wallet, you can register a schema. Registering a schema requires four fields: issuerId, name, version and attrNames. It is important to note that the issuerId must be the same as a DID in your wallet.

📄issuer
const schemaResult = await agent.modules.anoncreds.registerSchema({
schema: {
attrNames: ['name'],
issuerId: '<did>',
name: 'Example Schema to register',
version: '1.0.0',
},
options: {},
})

if (schemaResult.schemaState.state === 'failed') {
throw new Error(`Error creating schema: ${schemaResult.schemaState.reason}`)
}

3. Registering a credential definition

After registering a schema, a credential definition can be registered based on the schema. The credential definition, amongst more things, binds the schema to a specific issuer. Schemas can be reused between issuers, but a credential definition is specific to an issuer. In a credential definition revocation can also be specified. This section will not go in-depth about revocation.

📄issuer
const credentialDefinitionResult = await agent.modules.anoncreds.registerCredentialDefinition({
credentialDefinition: {
tag: 'default',
issuerId: '<did>',
schemaId: schemaResult.schemaState.schemaId,
},
options: {},
})

if (credentialDefinitionResult.credentialDefinitionState.state === 'failed') {
throw new Error(
`Error creating credential definition: ${credentialDefinitionResult.credentialDefinitionState.reason}`
)
}

Using it

After everything is registered on a AnonCredsRegistry, we can use it to issue credentials. The next tutorial is all about issuing an AnonCreds credential with this setup.

Useful Resources

- + \ No newline at end of file diff --git a/guides/0.5/updating.html b/guides/0.5/updating.html index c6866104..a2f54509 100644 --- a/guides/0.5/updating.html +++ b/guides/0.5/updating.html @@ -3,14 +3,14 @@ -Updating Credo | Credo - +Updating Credo | Credo +
Version: v0.5.x

Updating Credo

This section will cover everything you need to know about updating Credo to a newer version.

Versioning

Credo follows semantic versioning. This means that major version changes (1.0.0) are considered breaking changes. When features are added this is a minor version change (0.1.0). For bug fixes the patch version change is used (0.0.1).

While Credo is still in pre-1.0.0 version, the version change types are shifted to the right. This means a major version change is now a minor change (0.1.0) and a minor change is now a patch change (0.0.1). This is done to keep the version below 1.0.0, indicating the framework is still in early development and users can expect more breaking changes that when the version has already reached 1.0.0.

This means if the second number in the version (0.1.0) changes, you need to be careful with updating and always consult this page for update instructions. If only the third number changes (0.0.1), you can update without any issues.

Types of breaking changes

Updates to Credo bring new features and improvements to the framework. To better adapt the framework to new features we sometimes make breaking changes that will improve how Credo works. There's two parts to updates with breaking changes:

  1. Breaking code changes
  2. Breaking storage changes

Breaking Code Changes

Breaking changes to code means changes to how you interact with Credo. This includes methods being renamed, moved to another module or extended to better integrate with new features. We'll try to cover all breaking changes in migration guides, so you know exactly what is needed to update to a new version and keep the same functionality.

info

If you encounter any breaking changes that aren't mentioned in the migration docs, please open an issue in the Credo Docs repository, or directly create a PR describing the change.

Breaking Storage Changes

Breaking changes to storage are a bit more complex to deal with. While breaking changes to code only require you to update your code once, breaking changes to storage needs to be updated for every agent instance. Luckily, we've made the migration as easy as possible for you using the Update Assistant. The Update Assistant will update all storage objects to the storage model that is expected by the newest version. If a version made changes to the storage, this will be explicitly mentioned in the migration guide. See the Update Assistant documentation for detailed instructions on how to use the update assistant.

Migration Guides

Currently the following migration guides are available:

- + \ No newline at end of file diff --git a/guides/0.5/updating/update-assistant.html b/guides/0.5/updating/update-assistant.html index 7b3fec50..c3e4b44a 100644 --- a/guides/0.5/updating/update-assistant.html +++ b/guides/0.5/updating/update-assistant.html @@ -3,14 +3,14 @@ -Update Assistant | Credo - +Update Assistant | Credo +
Version: v0.5.x

Update Assistant

The Update Assistant helps you update the storage objects from Credo to newer versions. This documents describes the different ways you can leverage the Update Assistant from fully managed to more manual approaches.

Update Strategies

There are three options on how to leverage the update assistant on agent startup:

  1. Manually instantiating the update assistant on agent startup
  2. Storing the agent storage version outside of the agent storage
  3. Automatically update on agent startup

Manually instantiating the update assistant on agent startup

When the version of the storage is stored inside the agent storage, it means we need to check if the agent needs to be updated on every agent startup. We'll initialize the update assistant and check whether the storage is up to date. The advantage of this approach is that you don't have to store anything yourself, and have full control over the workflow.

import { UpdateAssistant, Agent } from '@aries-framework/core'

// or @aries-framework/node
import { agentDependencies } from '@aries-framework/react-native'

// First create the agent
const agent = new Agent({
config,
dependencies: agentDependencies,
})

// Then initialize the update assistant with the update config
const updateAssistant = new UpdateAssistant(agent, {
v0_1ToV0_2: {
mediationRoleUpdateStrategy: 'allMediator',
},
})

// Initialize the update assistant so we can read the current storage version
// from the wallet. If you manually initialize the wallet you should do this _before_
// calling initialize on the update assistant
// await agent.wallet.initialize(walletConfig)
await updateAssistant.initialize()

// Check if the agent is up to date, if not call update
if (!(await updateAssistant.isUpToDate())) {
await updateAssistant.update()
}

// Once finished initialize the agent. You should do this on every launch of the agent
await agent.initialize()

Storing the agent storage version outside of the agent storage

When the version of the storage is stored outside of the agent storage, you don't have to initialize the UpdateAssistant on every agent agent startup. You can just check if the storage version is up to date and instantiate the UpdateAssistant if not. The advantage of this approach is that you don't have to instantiate the UpdateAssistant on every agent startup, but this does mean that you have to store the storage version yourself.

When a wallet has been exported and later imported you don't always have the latest version available. If this is the case you can always rely on Method 1 or 2 for updating the wallet, and storing the version yourself afterwards. You can also get the current version by calling await updateAssistant.getCurrentAgentStorageVersion(). Do note the UpdateAssistant needs to be initialized before calling this method.

import { UpdateAssistant, Agent } from '@aries-framework/core'

// or @aries-framework/node
import { agentDependencies } from '@aries-framework/react-native'

// The storage version will normally be stored in e.g. persistent storage on a mobile device
let currentStorageVersion: VersionString = '0.1'

// First create the agent
const agent = new Agent({
config,
dependencies: agentDependencies,
})

// We only initialize the update assistant if our stored version is not equal
// to the frameworkStorageVersion of the UpdateAssistant. The advantage of this
// is that we don't have to initialize the UpdateAssistant to retrieve the current
// storage version.
if (currentStorageVersion !== UpdateAssistant.frameworkStorageVersion) {
const updateAssistant = new UpdateAssistant(agent, {
v0_1ToV0_2: {
mediationRoleUpdateStrategy: 'recipientIfEndpoint',
},
})

// Same as with the previous strategy, if you normally call agent.wallet.initialize() manually
// you need to call this before calling updateAssistant.initialize()
await updateAssistant.initialize()

await updateAssistant.update()

// Store the version so we can leverage it during the next agent startup and don't have
// to initialize the update assistant again until a new version is released
currentStorageVersion = UpdateAssistant.frameworkStorageVersion
}

// Once finished initialize the agent. You should do this on every launch of the agent
await agent.initialize()

Automatically update on agent startup

This is by far the easiest way to update the agent, but has the least amount of flexibility and is not configurable. This means you will have to use the default update options to update the agent storage. You can find the default update config in the respective version migration guides (e.g. in 0.1-to-0.2).

import { UpdateAssistant, Agent } from '@aries-framework/core'

// or @aries-framework/node
import { agentDependencies } from '@aries-framework/react-native'

// First create the agent, setting the autoUpdateStorageOnStartup option to true
const agent = new Agent({
config: {
...config,
autoUpdateStorageOnStartup: true,
},
dependencies: agentDependencies,
})

// Then we call initialize, which under the hood will call the update assistant if the storage is not update to date.
await agent.initialize()

Backups

Before starting the update, the update assistant will automatically create a backup of the wallet. If the migration succeeds the backup won't be used. If the backup fails, another backup will be made of the migrated wallet, after which the backup will be restored.

The backups can be found at the following locations. The backupIdentifier is generated at the start of the update process and generated based on the current timestamp.

  • Backup path: ${agent.config.fileSystem.basePath}/afj/migration/backup/${backupIdentifier}
  • Migration backup: ${agent.config.fileSystem.basePath}/afj/migration/backup/${backupIdentifier}-error

In the future the backup assistant will make a number of improvements to the recovery process. Namely:

  • Do not throw an error if the update fails, but rather return an object that contains the status, and include the backup paths and backup identifiers.
- + \ No newline at end of file diff --git a/guides/0.5/updating/update-indy-sdk-to-askar.html b/guides/0.5/updating/update-indy-sdk-to-askar.html index fd0c2f46..14fbaa4d 100644 --- a/guides/0.5/updating/update-indy-sdk-to-askar.html +++ b/guides/0.5/updating/update-indy-sdk-to-askar.html @@ -3,14 +3,14 @@ -Migrating from an Indy SDK Wallet to Aries Askar | Credo - +Migrating from an Indy SDK Wallet to Aries Askar | Credo +
Version: v0.5.x

Migrating from an Indy SDK Wallet to Aries Askar

This documentation explains the process of migrating your Indy SDK wallet to Aries Askar.

danger

While the migration script technically works on node.js, it is strongly advised not to use it, yet. The migration of issuer records (such as Schemas and Credential Definitions) is not implemented yet. When a credential definition is detected it will revert the migration process and no harm is done.

caution

Postgres is not supported. If you are using postgres with Indy SDK and need to update to Aries Askar, please open an issue on GitHub.

caution

The migration script is supported to run on 0.3.x before migrating from 0.3.x to 0.4.x. Please refer to Migrating from Credo 0.3.x to 0.4.x to get to 0.4.x afterwards.

It is important to note that this script must be ran before you update from 0.3.x to 0.4.x.

What does the migration do internally?

The migration script does the following to make sure everything is migrated properly, and if anything goes wrong, it will revert back to a working state.

Create a backup

Because undefined behavior might occur, we create a backup in the new tmp directory from Credo. if some error occurs, it will be reverted back to the backed-up state and if no error occurs, it will delete the backup from the temporary directory.

Migrate the database to an Aries Askar structure

The Indy-sdk and Aries Askar have different database structures. So first of all we need to change some table names, decrypt all the items with the old Indy keys, encrypt the items with the new Aries Askar keys and store them inside the new structure.

Try to open the wallet in the new Aries Askar structure

When the wallet is correctly transformed, the wallet will be attempted to be opened.

Update the keys

Aries Askar has a specific way to store keys and every key, defined by the category of Indy::Key will be migrated.

Update the DIDs

caution

This update script does not transform did records. This is fine for something like did:peer, but will cause issues with indy and sov DIDs. For more information, please check out the Migrating from Credo 0.3.x to 0.4.x

Update the credential definitions

danger

Updating of credential definitions is not yet supported. This is why it is strongly advised not to run this script in a node.js environment.

The link secrets, identified by the category Indy::MasterSecret, are updated next. They are stored inside a new AnonCredsLinkSecretRecord.

caution

Since we have to set a default link secret, some additional logic is added to detect this. You can either supply a defaultLinkSercetId as a constructor parameter or it will be based on your walletId.

If there is no Indy record with the defaultLinkSecretId or the walletId, an error will be thrown and the migration will be restored.

Update the credentials

The credentials, identified by the category Indy::Credential are updated last. They are stored in the new AnonCredsCredentialRecord as a one-to-one copy. This means that they now support more tags and will make querying a lot easier.

All the other records

All the other records will be transferred without any updates as they are not Indy specific.

How to update

Updating does not require a lot of code, but must be done with caution.

It is very important to note that the migration script only has to be run once. If it runs for a second time, it will error saying that the database is already migrated. Also, when the migration is finished, it is common practice to store this state in your persistent app storage. This script does not provide a way to detect if an update has happened, so storing this value will prevent the script from running every time. For more information regarding this topic, please check out Update Assistant.

add the required dependencies

yarn add @hyperledger/aries-askar-react-native @aries-framework/indy-sdk-to-askar-migration react-native-fs

Below is the minimal code required for the migration to work. It is recommended to turn the logger on as it gives a lot of information regarding the migration.

caution

The agent is not allowed to be initialized to run this script. This makes sure nothing else happens during the migration.

import { agentDependencies } from '@aries-framework/react-native'
import { AskarModule } from '@aries-framework/askar'
import { IndySdkToAskarMigrationUpdater } from '@aries-framework/indy-sdk-to-askar-migration'
import { ariesAskar } from '@hyperledger/aries-askar-react-native'

const oldAgent = new Agent({
config: {
/* ... */
},
modules: {
ariesAskar: new AskarModule({
ariesAskar,
}),
},
dependencies: agentDependencies,
})

const dbPath = '' // see section below

const updater = await IndySdkToAskarMigrationUpdater.initialize({ dbPath, agent })
await updater.update()

Getting the database path

Android

On android, the database is commonly located under the ExternalDirectoryPath.

If you did not follow the default indy-sdk for React Native setup, your path might differ. Check out step 5 of the Android setup for Indy SDK React Native for the default behavior.

import fs from 'react-native-fs'

const base = fs.ExternalDirectoryPath
const indyClient = '.indy_client'
const wallet = 'wallet'
const walletId = agent.config.walletConfig.id
const file = 'sqlite.db'

const dbPath = `${base}/${indyClient}/${wallet}/${walletId}/${file}`

iOS

On iOS, the database is commonly located under the DocumentDirectoryPath.

For iOS this can only change if your phone does not have the HOME environment variable set. This is not usual behavior, and if HOME is not set, the base in the code section below will be /home/indy/Documents.

import fs from 'react-native-fs'

const base = fs.DocumentDirectoryPath
const indyClient = '.indy_client'
const wallet = 'wallet'
const walletId = agent.config.walletConfig.id
const file = 'sqlite.db'

const dbPath = `${base}/${indyClient}/${wallet}/${walletId}/${file}`
- + \ No newline at end of file diff --git a/guides/0.5/updating/versions/0.1-to-0.2.html b/guides/0.5/updating/versions/0.1-to-0.2.html index a99f1ed2..01ddea5d 100644 --- a/guides/0.5/updating/versions/0.1-to-0.2.html +++ b/guides/0.5/updating/versions/0.1-to-0.2.html @@ -3,8 +3,8 @@ -Migrating from Credo 0.1.0 to 0.2.x | Credo - +Migrating from Credo 0.1.0 to 0.2.x | Credo + @@ -12,7 +12,7 @@
Version: v0.5.x

Migrating from Credo 0.1.0 to 0.2.x

This document describes everything you need to know for updating Credo 0.1.0 to 0.2.x. If you're not aware of how updating in Credo works make sure to first read the guide on Updating Credo.

First of all, update you dependencies to the 0.2.x versions. This will also update the needed peer depedencnies. Extension packages are not updated with this command. You need to update these manually, and make sure they're up to date with the latest version of Credo.

yarn add @aries-framework/react-native@^0.2.0 @aries-framework/core@^0.2.0 indy-sdk-react-native@^0.2.0

# or NPM
npn install @aries-framework/react-native@^0.2.0 @aries-framework/core@^0.2.0 indy-sdk-react-native@^0.2.0

Breaking Code Changes

This section will list all breaking changes made to the public API of Credo between version 0.1.0 and 0.2.0.

info

If you have custom modules take into account there could be a lot more breaking changes that aren't documented here. We try to make sure that the biggest breaking changes to the internal API are also documented here (e.g. see Updating Custom Messages to the New Message Type Objects), but it is possible some breaking changes are not documented here (feel free to open PRs).

Credentials Module

Module API Updates

With the addition of the issue credential v2 protocol and the preparation for multiple attachment formats (to be added in a later release), we've made some big changes to the credentials module API. Most changes are related to structure, so updating your code to the new API should be straightforward.

Basically for all methods in the credential module you should take the following steps to update your code:

  1. Move all function parameters into a single object. All module methods now take a single object that contain all properties.
  2. For methods that initiate a protocol (starting from offer, proposal), you should pass protocolVersion: 'v1' to indicate we should use the v1 protocol. (v2 is also supported, but this focuses on the breaking changes, not the new features).
  3. All indy specific attributes (e.g. credentialDefinitionId) should be passed in the credentialFormats.indy object.
  4. The preview should now be passed as only the preview attributes (the the full preview) and provided in the credentialFormats.indy object.
await agent.credentials.offerCredential('connectionId', {
autoAcceptCredential: AutoAcceptCredential.Always,
comment: 'hello',

credentialDefinitionId: 'credentialDefinitionId',
preview: new CredentialPreview({
attributes: [new CredentialPreviewAttribute({ name: 'key', value: 'value' })],
}),
})

Data from Received Messages only Stored in Record after Accepting

Previously when we received a message from another connection we would store the relevant data from the exchange in the credential record. The values we would store were the credentialDefinitionId and schemaId in the credential metadata, and the credentialAttributes field.

Starting with Credo 0.2.0 the values are not stored in the credential record until after the message content has been accepted (in the case of an offer this means after sending the request message). This is to avoid ambiguity of the values in the credential record. If I have sent a proposal and then receive an offer, should the credential record contain the values from the proposal or the values from the offer? The first one reflects our view on what the data should be, the second one reflects the latest data.

We decided to make the record properties always hold our view of what the data should be, and only update it after accepting the contents of a received message (either using auto accept, or by calling the acceptXXX methods on the credential module).

This is an important change and requires some updates to how you extract the relevant data from the offer (or other messages such the proposal). We've added a new getFormatData method on the credentials module that allows you to retrieve the attributes and format data for all messages in an exchange. One of the advantages of this approach is that we don't have to store all relevant data in the credential record anymore, which helps when adding new formats that don't match with the attributes used for indy credentials. In addition, the return value for this method is the same whether v1 or v2 of the protocol is used. This means your code should only care about the credential format (indy in this case) and doesn't have to worry about the protocol version.

agent.events.on<CredentialStateChangedEvent>(
CredentialEventTypes.CredentialStateChanged,
({ payload: { credentialRecord } }) => {
const indyCredentialMetadata = credentialRecord.metadata.get(CredentialMetadataKeys.IndyCredential)

// Get credential definition id, schema id and attributes from offer
const credentialDefinitionId = indyCredentialMetadata?.credentialDefinitionId
const schemaId = indyCredentialMetadata?.schemaId
const attributes = credentialRecord.credentialAttributes
}
)

Messages Extracted from Credential Record

The DIDComm messages that were previously stored on the credential record, have been extracted to separate DIDComm message records. This makes it easier to work with multiple versions of the protocol internally, and keeps the credential exchange record agnostic of the protocol version. Instead of accessing the messages through the proposalMessage, offerMessage, requestMessage and credentialMessage parameters, we now expose dedicated methods on the credentials module to retrieve the message.

With the addition of the v2 messages, all v1 messages have been prefixed with V1 while v2 messages have been prefixed with V2 (V1ProposeCredentialMessage and V2ProposeCredentialMessage). If you were using these messages classes throughout your codebase, update them to use the V1 prefix.

const credentialRecord = await agent.credentials.getById('credentialRecordId')

const proposalMessage = credentialRecord.proposalMessage
const offerMessage = credentialRecord.offerMessage
const requestMessage = credentialRecord.requestMessage
const credentialMessage = credentialRecord.credentialMessage

Connections Module

Version 0.2.0 added support for the Out of Band protocol with support for the DID Exchange protocol. Internally Credo now uses out of band invitations for all connections, even if you're connecting using the old invitations from the Connection protocol.

Creating a Legacy Invitation

The createInvitation method on the connections module has been moved to the out of band module and renamed to createLegacyInvitation. The method is not planned to be removed in the near future, the legacy merely indicates this will create an RFC 0160 connection invitation. Internally Credo creates an out of band invitation and transforms it into a legacy invitation. If you want to create an out of band invitation instead, you should use oob.createInvitation.

const { connectionRecord, invitation } = await agent.connections.createInvitation({
/* config */
})

const invitationUrl = invitation.toUrl({ domain: 'https://example.com' })

Receiving a Legacy Invitation

The receiveInvitation and receiveInvitationFromUrl methods on the connections module have also been moved to the out of band module. Both methods support the new out of band invitations and the legacy RFC 0160 connection invitations. Internally Credo converts the old invitations to out of band invitations.

const invitationUrl = 'https://example.com?c_i=eyXXX'

// Receive invitation directly from url
const connectionRecord = await agent.connections.receiveInvitationFromUrl(invitationUrl, {
/* config */
})

// Parse invitation and receive invitation
const parsedInvitation = await ConnectionInvitationMessage.fromUrl(invitationUrl)
const connectionRecord = await agent.connections.receiveInvitation(parsedInvitation, {
/* config */
})

Updating to use DidExchangeState

The ConnectionState that was previously used for the state of the ConnectionRecord has been changed to use the DidExchangeState for both connections made using the RFC 0160 Connection Protocol, as well as the RFC 0023 DID Exchange Protocol.

The DidExchangeState has the following values:

  • DidExchangeState.Start,
  • DidExchangeState.InvitationSent,
  • DidExchangeState.InvitationReceived,
  • DidExchangeState.RequestSent,
  • DidExchangeState.RequestReceived,
  • DidExchangeState.ResponseSent,
  • DidExchangeState.ResponseReceived,
  • DidExchangeState.Abandoned,
  • DidExchangeState.Completed

If you still need to access the old ConnectionState you can do so by accessing the computed connectionRecord.rfc0160State property. This will return the old ConnectionState value.

Updating Custom Messages to the New Message Type Objects

Although this isn't a breaking change to the public API of the framework, it is something that you will need to take into account when creating custom modules. Starting from Credo 0.2.0 we now support handling messages with different minor versions (e.g. receive a message with @type version 1.1 while we only support 1.0). With this change messages must now declare the message type as an ParsedMessageType object. We've added an parseMessageType util method that can help with this.

import { AgentMessage } from '@aries-framework/core'
import { Equals } from 'class-validator'

class MyMessage extends AgentMessage {
@Equals(MyMessage.type)
public readonly type = MyMessage.type
public static readonly type = 'https://didcomm.org/my-protocol/1.0/my-type'
}

Breaking Storage Changes

The 0.2.0 release is heavy on breaking changes to the storage format. This is not what we intend to do with every release. But as there's not that many people yet using the framework in production, and there were a lot of changes needed to keep the API straightforward, we decided to bundle a lot of breaking changes in this one release.

Below all breaking storage changes are explained in as much detail as possible. The update assistant provides all tools to migrate without a hassle, but it is important to know what has changed. All examples only show the keys that have changed, unrelated keys in records have been omitted.

See the Update Assistant documentation for a guide on how to use the update assistant.

The following config can be provided to the update assistant to migrate from 0.1.0 to 0.2.0:

{
"v0_1ToV0_2": {
"mediationRoleUpdateStrategy": "<mediationRoleUpdateStrategy>"
}
}

Credential Metadata

The credential record had a custom metadata property in pre-0.1.0 storage that contained the requestMetadata, schemaId and credentialDefinition properties. Later a generic metadata API was added that only allows objects to be stored. Therefore the properties were moved into a different structure.

{
"requestMetadata": <value of requestMetadata>,
"schemaId": "<value of schemaId>",
"credentialDefinitionId": "<value of credential definition id>"
}

Migrate Credential Record Properties

In 0.2.0 the v1 DIDComm messages have been moved out of the credential record into separate records using the DidCommMessageRepository. The migration scripts extracts all messages (proposalMessage, offerMessage, requestMessage, credentialMessage) and moves them into the DidCommMessageRepository.

With the addition of support for different protocol versions the credential record now stores the protocol version. With the addition of issue credential v2 support, other credential formats than indy can be used, and multiple credentials can be issued at once. To account for this the credentialId has been replaced by the credentials array. This is an array of objects containing the credentialRecordId and the credentialRecordType. For all current credentials the credentialRecordType will always be indy.

{
"credentialId": "09e46da9-a575-4909-b016-040e96c3c539",
"proposalMessage": { ... },
"offerMessage": { ... },
"requestMessage": { ... },
"credentialMessage": { ... },
}

Mediation Record Role

The role in the mediation record was always being set to MediationRole.Mediator for both mediators and recipients. This didn't cause any issues, but would return the wrong role for recipients.

In 0.2 a check is added to make sure the role of a mediation record matches with actions (e.g. a recipient can't grant mediation), which means it will throw an error if the role is not set correctly.

Because it's not always possible detect whether the role should actually be mediator or recipient, a number of configuration options are provided on how the role should be updated using the v0_1ToV0_2.mediationRoleUpdateStrategy option:

  • allMediator: The role is set to MediationRole.Mediator for both mediators and recipients
  • allRecipient: The role is set to MediationRole.Recipient for both mediators and recipients
  • recipientIfEndpoint (default): The role is set to MediationRole.Recipient if their is an endpoint configured on the record. The endpoint is not set when running as a mediator. There is one case where this could be problematic when the role should be recipient, if the mediation grant hasn't actually occurred (meaning the endpoint is not set). This is probably the best approach otherwise it is set to MediationRole.Mediator
  • doNotChange: The role is not changed

Most agents only act as either the role of mediator or recipient, in which case the allMediator or allRecipient configuration is the most appropriate. If your agent acts as both a recipient and mediator, the recipientIfEndpoint configuration is the most appropriate. The doNotChange options is not recommended and can lead to errors if the role is not set correctly.

Extracting Did Documents to Did Repository

The connection record previously stored both did documents from a connection in the connection record itself. Version 0.2.0 added a generic did storage that can be used for numerous usages, one of which is the storage of did documents for connection records.

The migration script extracts the did documents from the didDoc and theirDidDoc properties from the connection record, updates them to did documents compliant with the did core spec, and stores them in the did repository. By doing so it also updates the unqualified dids in the did and theirDid fields generated by the indy-sdk to fully qualified did:peer dids compliant with the Peer DID Method Specification.

To account for the fact that the mechanism to migrate legacy did document to peer did documents is not defined yet, the legacy did and did document are stored in the did record metadata. This will be deleted later if we can be certain the did doc conversion to a did:peer did document is correct.

{
"did": "BBPoJqRKatdcfLEAFL7exC",
"theirDid": "UppcJ5APts7ot5WX25943F",
"verkey": "GAb4NUvpBcHVCvtP45vTVa5Bp74vFg3iXzdp1Gbd68Wf",
"didDoc": <legacyDidDoc>,
"theirDidDoc": <legacyTheirDidDoc>,
}

Migrating to the Out of Band Record

With the addition of the out of band protocol, invitations are now stored in the OutOfBandRecord. In addition a new field invitationDid is added to the connection record that is generated based on the invitation service or did. This allows to reuse existing connections.

The migration script extracts the invitation and other relevant data into a separate OutOfBandRecord. By doing so it converts the old connection protocol invitation into the new Out of band invitation message. Based on the service or did of the invitation, the invitationDid is populated.

Previously when creating a multi use invitation, a connection record would be created with the multiUseInvitation set to true. The connection record would always be in state invited. If a request for the multi use invitation came in, a new connection record would be created. With the addition of the out of band module, no connection records are created until a request is received. So for multi use invitation this means that the connection record with multiUseInvitation=true will be deleted, and instead all connections created using that out of band invitation will contain the outOfBandId of the multi use invitation.

{
"invitation": {
"@type": "https://didcomm.org/connections/1.0/invitation",
"@id": "04a2c382-999e-4de9-a1d2-9dec0b2fa5e4",
"recipientKeys": ["E6D1m3eERqCueX4ZgMCY14B4NceAr6XP2HyVqt55gDhu"],
"serviceEndpoint": "https://example.com",
"label": "test"
},
"multiUseInvitation": "false"
}

Unifying Connection States and Roles

With the addition of the did exchange protocol there are now two states and roles related to the connection record; for the did exchange protocol and for the connection protocol. To keep it easy to work with the connection record, all state and role values are updated to those of the DidExchangeRole and DidExchangeState enums.

The migration script transforms all connection record state and role values to their respective values of the DidExchangeRole and DidExchangeState enums. For convenience a getter property rfc0160ConnectionState is added to the connection record which returns the ConnectionState value.

{
"state": "invited",
"role": "inviter"
}
- + \ No newline at end of file diff --git a/guides/0.5/updating/versions/0.2-to-0.3.html b/guides/0.5/updating/versions/0.2-to-0.3.html index 745908ef..05f9fc5f 100644 --- a/guides/0.5/updating/versions/0.2-to-0.3.html +++ b/guides/0.5/updating/versions/0.2-to-0.3.html @@ -3,14 +3,14 @@ -Migrating from Credo 0.2.x to 0.3.x | Credo - +Migrating from Credo 0.2.x to 0.3.x | Credo +
Version: v0.5.x

Migrating from Credo 0.2.x to 0.3.x

This document describes everything you need to know for updating Credo 0.2.x to 0.3.x. If you're not aware of how updating in Credo works make sure to first read the guide on Updating Credo.

First of all, update you dependencies to the 0.3.x versions. This will also update the needed peer depedencnies. Extension packages are not updated with this command. You need to update these manually, and make sure they're up to date with the latest version of Credo.

yarn add @aries-framework/react-native@^0.3.0 @aries-framework/core@^0.3.0 indy-sdk-react-native@^0.3.0

# or NPM
npn install @aries-framework/react-native@^0.3.0 @aries-framework/core@^0.3.0 indy-sdk-react-native@^0.3.0

Breaking Code Changes

This section will list all breaking changes made to the public API of Credo between version 0.2.x and 0.3.0.

info

If you have custom modules take into account there could be a lot more breaking changes that aren't documented here. We try to make sure that the biggest breaking changes to the internal API are also documented here (e.g. see Updating Custom Modules to the Plugin API), but it is possible some breaking changes are not documented here (feel free to open PRs).

Agent creation

The agent constructor has been updated to a single AgentOptions object that contains the config and dependencies properties.

const agent = new Agent(agentConfig, agentDependencies)

This object contains:

  • config: Agent's initial configuration
  • dependencies: platform-specific Agent dependencies
  • modules: optional field for internal module configuration and custom module registration

For easy migration, you can simply construct AgentOptions by putting current InitConfig into config key and agentDependencies into dependencies key.

Note that, if you are defining indyLedgers configuration, you should set the indyNamespace for every ledger, as explained in Agent Config tutorial.

did:key usage in protocols

In accordance with Aries RFC 0360, since 0.2.5 there is a configuration parameter called useDidKeyInProtocols which, when enabled, will encode keys in did:key instead of previous base58 format, unless the other party has started a protocol and is using base58.

This parameter was previously disabled by default and now it is enabled. If your agent only interacts with modern agents (e.g. Credo 0.2.5 and newer) this will not represent any issue. Otherwise it is safer to explicitly set it to false. However, keep in mind that we expect this setting to be deprecated in the future, so we encourage you to update all your agents to use did:key.

Modules extracted from the core

In this release two modules were extracted from the core and published as separate, optional packages:

  • actionMenu has been moved to @aries-framework/action-menu
  • questionAnswer has been moved to @aries-framework/question-answer

If you want to use them, you can integrate in an Agent instance by injecting them in constructor, as follows:

import { ActionMenuModule } from '@aries-framework/action-menu'
import { QuestionAnswerModule } from '@aries-framework/question-answer'

const agent = new Agent({
config: {
/* config */
},
dependencies: agentDependencies,
modules: {
actionMenu: new ActionMenuModule(),
questionAnswer: new QuestionAnswerModule(),
/* other custom modules */
},
})

As they are now considered custom modules, their API can be accessed in modules namespace, so you should add it to every call to them.

await agent.questionAnswer.sendQuestion(connectionId, {
question: 'Do you want to play?',
validResponses: [{ text: 'Yes' }, { text: 'No' }],
})

await agent.questionAnswer.sendAnswer(questionAnswerRecordId, 'Yes')

Discover Features Module

This module now supports both Discover Features V1 and V2, and as it happened to other modules, queryFeatures method parameters have been unified to a single object and requires to specify the version of Discover Features protocol to be used. Note that query property has been replaced by the more general queries which accepts multiple features to be search for. To convert a query to this new format you simply need to create a single-object array whose unique object whose featureType field is 'protocol' and match field is the query itself.

await agent.discovery.queryFeatures(connectionId, {
query: 'https://didcomm.org/messagepickup/2.0',
comment: 'Detect if protocol is supported',
})

The convenience method isProtocolSupported has been replaced by the more general synchronous mode of queryFeatures, which works when awaitDisclosures in options is set. Instead of returning a boolean, it returns an object with matching features:

const isPickUpV2Supported = await agent.discovery.isProtocolSupported(connectionId, StatusRequestMessage)
info

Discover Features module does not rely anymore on Agent Dispatcher to determine protocol support. Instead, it uses the new Feature Registry, where any custom modules implementing protocols must register them.

This procedure can be done in module's register(dependencyManager, featureRegistry).

Ledger Module

Apart from the aforementioned indyLedgers configuration, you should also note a slight change in behaviour when attempting to register credential definitions that already exists on the ledger but not in the wallet.

Proofs Module

Module API Updates

Much in the same way as in 0.2.0 release when Issue Credential V2 protocol has been added, now that Present Proof V2 is supported, we introduced changes to proofs module.

Basically, for all methods in the proofs module you should take the following steps to update your code:

  1. Move all function parameters into a single object. All module methods now take a single object that contain all properties.
  2. For methods that initiate proposals, requests or presentations (proposeProof, acceptProposal, requestProof, acceptPresentation, etc.), you should pass protocolVersion: 'v1' to indicate we should use the v1 protocol
  3. All indy specific attributes (e.g. Presentation Preview) should be passed in the proofFormats.indy object.
  4. Some indy objects, as the preview should now be passed only as their attributes (i.e. no need of creating the object instance) and provided in the proofFormats.indy object.
await agent.proofs.proposeProof(
'connectionId',
new PresentationPreview({
attributes: [new PresentationPreviewAttribute({ name: 'key', value: 'value' })],
predicates: [
new PresentationPreviewPredicate({
name: 'age',
credentialDefinitionId,
predicate: PredicateType.GreaterThanOrEqualTo,
threshold: 50,
}),
],
})
)

Messages Extracted from Proof Exchange Record

The DIDComm messages that were previously stored on the proof record, have been extracted to separate DIDComm message records. This makes it easier to work with multiple versions of the protocol internally, and keeps the proof exchange record agnostic of the protocol version. Instead of accessing the messages through the proposalMessage, requestMessage and presentationMessage parameters, we now expose dedicated methods on the proofs module to retrieve the message.

With the addition of the v2 messages, all v1 messages have been prefixed with V1 while v2 messages have been prefixed with V2 (V1RequestPresentationMessage and V2RequestPresentationMessage). If you were using these messages classes throughout your codebase, update them to use the V1 prefix.

const proofRecord = await agent.proofs.getById('proofRecordId')

const proposalMessage = proofRecord.proposalMessage
const requestMessage = proofRecord.requestMessage
const presentationMessage = proofRecord.presentationMessage

Out Of Band Proofs and Credentials

With the addition of the out of band module, the creation of connection-less messages has been split into two steps, allowing for better control and flexibility. The previous agent.proofs.createOutOfBandRequest has been replaced by the agent.proofs.createRequest method. This new method creates a proof request that is not tied to any connection.

What you can now do is call agent.oob.createLegacyConnectionlessInvitation to attach the service decorator to the message and get a legacy connectionless message.

const { requestMessage, proofRecord } = await agent.proofs.createOutOfBandRequest({
requestedAttributes: {
group1: {
name: 'dateOfBirth',
restrictions: [{ schemaId: 'F72i3Y3Q4i466efjYJYCHM:2:aha_cert:4.1.1' }],
},
},
})

Out of band invitations are the new way to send messages out of band. You can use it for connection-less exchanges, but also for exchanges that you want to establish a connection for first. Here's an example on how to use the out of band module to create a connection-less invitation for a proof request:

const outOfBandRecord = await agent.oob.createInvitation({
handshake: false, // set to true if you want to create a connection
messages: [message],
})

const invitationUrl = outOfBandRecord.outOfBandInvitation.toUrl({
domain: 'https://Credo.com',
})

As you can see, there's now a lot more ways to use a message not tied to a connection. By splitting the creation of the message from the creation of the invitation, we can now create a message not bound to a connection (at time of creation) for multiple use cases.

Updating Custom Modules to the new Plugin API

Although this isn't a breaking change to the public API of the framework, it is something that you will need to take into account if you have custom modules and want to upgrade them to make compatible with Credo 0.3.0.

Renaming handler classes

Handler has been have been renamed to MessageHandler to be be more descriptive, along with related types and methods. This means:

  • Handler is now MessageHandler
  • HandlerInboundMessage is now MessageHandlerInboundMessage
  • Dispatcher.registerHandler is now Dispatcher.registerMessageHandler and is marked as deprecated. The recommended way of registering handlers is by using the new MessageHandlerRegistry object by calling MessageHandlerRegistry.registerMessageHandler.

If your custom module include message handlers, you must update them accordingly.

export class MyHandler implements Handler {
public supportedMessages = [MyMessage]

public async handle(inboundMessage: HandlerInboundMessage<MyHandler>) {
...
}
}

Using AgentContext

First of all, it's worth noting that now all services and repositories have been made stateless. A new AgentContext is introduced that holds the current context, which is passed to each method call. Therefore, you'll need to update every call to services, repositories and also eventEmitter methods to pass AgentContext object as first argument.

AgentContext can be obtained from either:

  • MessageContext used by message handlers (accesed as messageContext.agentContext)
  • Injected in your API constructor: you can store the instance and pass it to all your service and repository calls
  public async createRequest(options: CreateRequestOptions) {
const message = new RequestMessage({
parentThreadId: options.parentThreadId,
})

const record = new MyRecord({
connectionId: options.connectionRecord.id,
threadId: message.id,
parentThreadId: options.parentThreadId,
})

await this.myRecordRepository.save(record)

this.eventEmitter.emit<MyRecordStateChangedEvent>({
type: MyRecordEventTypes.StateChanged,
payload: {
myRecord: record,
previousState: null,
},
})

return { record, message }
}

public async processRequest(messageContext: HandlerInboundMessage<RequestHandler>) {
const { message } = messageContext

const record = new MyRecord({
connectionId: connection.id,
threadId: messageContext.message.id,
parentThreadId: messageContext.message.thread?.parentThreadId,
})

await this.myRepository.save(record)

return record
}

Using OutboundMessageContext

If your module implements a protocol that sends messages to other agents, you will notice that Agent's MessageSender now receives the more generic OutboundMessageContext class, which replaces previous helper method createOutboundMessage.

You can take advantage of this new mechanism to associate a record to the context, in order to do specific actions to it when outbound message state changes (e.g. a MessageSendingError is thrown or AgentMessageSentEvent is emitted).

import { createOutboundMessage } from '@aries-framework/core'

const outboundMessage = createOutboundMessage(connection, message)
await this.messageSender.sendMessage(outboundMessage)

Updating module structure to register in new Plugin API

Existing modules can benefit from the new Plugin API mechanism by doing the following modifications:

  1. Rename Module class (e.g. MyModule) to API class (MyApi) and add @injectable decorator. Inject AgentContext in order to pass it to any services or repositories it might call. For instance:
import { injectable } from '@aries-framework/core'

@injectable() // <-- Add this
export class MyApi {
private messageSender: MessageSender
private myService: MyService
private connectionService: ConnectionService
private agentContext: AgentContext // <-- Add this

public constructor(
messageHandlerRegistry: MessageHandlerRegistry, // <-- use this instead of Dispatcher
messageSender: MessageSender,
myService: MyService,
connectionService: ConnectionService,
agentContext: AgentContext // <-- Add this
) {
this.messageSender = messageSender
this.myService = myService
this.connectionService = connectionService
this.agentContext = agentContext // <-- Add this
this.registerHandlers(messageHandlerRegistry) // <-- use messageHandlerRegistry instead of dispatcher
}
  1. Create a new Module class that implements Module interface and registers the dependencies and features. For instance:
import type { DependencyManager, FeatureRegistry, Module } from '@aries-framework/core'

import { Protocol } from '@aries-framework/core'

export class MyModule implements Module {
public readonly api = MyApi // the one we've just renamed from MyModule

public register(dependencyManager: DependencyManager, featureRegistry: FeatureRegistry) {
// Api
dependencyManager.registerContextScoped(MyApi)

// Services
dependencyManager.registerSingleton(MyService)

// Repositories
dependencyManager.registerSingleton(MyRepository)

// Feature Registry: don't forget to register your protocols and other features your module may add
featureRegistry.register(
new Protocol({
id: 'https://didcomm.org/my-protocol/1.0',
roles: [MyRole.Sender, MyRole.Receiver],
})
)
}

After doing this, you can add your module to agent constructor like this:

const agent = new Agent({
config: {
/* config */
},
dependencies: agentDependencies,
modules: {
myModule: new MyModule(),
/* other custom modules */
},
})

// MyModule API can be accessed in agent.modules namespace
await agent.modules.myModule.doSomething()

await agent.modules.myModule.doAnotherThing()

Breaking Storage Changes

The 0.3.0 release introduces some breaking changes to the storage format, mainly related to Proof Exchanges.

Below all breaking storage changes are explained in as much detail as possible. The update assistant provides all tools to migrate without a hassle, but it is important to know what has changed. All examples only show the keys that have changed, unrelated keys in records have been omitted.

See the Update Assistant documentation for a guide on how to use the update assistant.

There are no config parameters to be provided to the update assistant to migrate from 0.2.x to 0.3.x.

Migrate Proof Record Properties

In 0.3.0 the v1 DIDComm messages have been moved out of the proof record into separate records using the DidCommMessageRepository. The migration scripts extracts all messages (proposalMessage, requestMessage, presentationMessage) and moves them into the DidCommMessageRepository. With the addition of support for different protocol versions the proof record now stores the protocol version.

{
"proposalMessage": { ... },
"requestMessage": { ... },
"presentationMessage": { ... },
}

Migrate Connection Record properties

The recently introduced connectionType tag has been pluralized to reflect the fact that more than a single connection type can be defined for a given connection. Also, it is now available as a direct record property (e.g. can be queried and set by using connectionRecord.connectionTypes) apart from the tag for efficient search.

The migration script renames connectionType to connectionTypes in all connections, and also searches for any mediation connection and adds ConnectionType.Mediator as one of its types.

Migrate Did Record properties

The didRecord.id was previously the did itself. However to allow for connecting with self, where multiple did records are created for the same did, the id property is now an uuid and a separate did property is added.

The migration script generates a new ID for each did record and stores its did into didRecord.did property.

{
"id": "did"
}
- + \ No newline at end of file diff --git a/guides/0.5/updating/versions/0.3-to-0.4.html b/guides/0.5/updating/versions/0.3-to-0.4.html index f7312a6f..8cb1052e 100644 --- a/guides/0.5/updating/versions/0.3-to-0.4.html +++ b/guides/0.5/updating/versions/0.3-to-0.4.html @@ -3,14 +3,14 @@ -Migrating from Credo 0.3.x to 0.4.x | Credo - +Migrating from Credo 0.3.x to 0.4.x | Credo +
Version: v0.5.x

Migrating from Credo 0.3.x to 0.4.x

This document describes everything you need to know for updating Credo 0.3.x to 0.4.x. If you're not aware of how updating in Credo works make sure to first read the guide on Updating Credo.

First of all, update you dependencies to the 0.4.x versions. This will also update the needed peer dependencies. Extension packages are not updated with this command. You need to update these manually, and make sure they're up to date with the latest version of Credo.

Credo 0.4.0 is a major release that introduces a lot of new features and changes to the public API. Specifically, this release removed the dependency on the Indy SDK from the @aries-framework/core package. Agent setup is more flexible, but it also means the setup is more complex. Follow the mentioned steps in this document carefully to make the upgrade as smooth as possible.

caution

The migration guide only covers how to migrate from 0.3.x to 0.4.x while keeping the same behavior and dependencies. Credo 0.4.0 introduced a lot of new features and adds support for Aries Askar, Indy VDR and AnonCreds RS as a replacement for the Indy SDK.

Migrating to these new components requires additional migration steps, which need to be closely followed to prevent loss of data. These can be found at the Update Indy SDK to Askar guide.

As noted in the Update Indy SDK to Askar guide, it is very important that the 0.3.x to 0.4.x update is started after migrating from the Indy SDK to Aries Askar.

caution

Multi-tenancy is not covered in the 0.3.x to 0.4.x migration guide. If you're using multi-tenancy in 0.3.x and want to migrate to 0.4.x, please open an issue on Github.

caution

The following APIs, modules and features are experimental and therefore not covered by the semver versioning in Credo. If you're using any of these features, make sure to use an exact version of Credo (0.4.0) instead of a range (^0.4.0):

  • Implementing your own AnonCredsRegistry and AnonCreds service implementation. Using the default implementations (Indy SDK, AnonCreds RS) is fine.
  • Using the shared component libraries from @aries-framework/aries-askar, @aries-framework/indy-vdr and @aries-framework/anoncreds-rs
  • Using OpenID4VC from the @aries-framework/openid4vc-client module
  • W3C JWT Verifiable Credentials
  • Using multi-tenancy from the @aries-framework/tenants module

First install the updated dependencies. Make sure to also install the new @aries-framework/indy-sdk package, which is a wrapper around the Indy SDK and install the indy-sdk-react-native package.

yarn add @aries-framework/react-native@^0.4.0 @aries-framework/core@^0.4.0 @aries-framework/indy-sdk@^0.4.0 @aries-framework/anoncreds@^0.4.0 indy-sdk-react-native@^0.3.1

# or NPM
npn install @aries-framework/react-native@^0.4.0 @aries-framework/core@^0.4.0 @aries-framework/indy-sdk@^0.4.0 @aries-framework/anoncreds@^0.4.0 indy-sdk-react-native@^0.3.1

We also need to install types for the indy-sdk-react-native package, which we take from the @types/indy-sdk package.

yarn add --dev @types/indy-sdk-react-native@npm:@types/indy-sdk

# or NPM
npm install --save-dev @types/indy-sdk-react-native@npm:@types/indy-sdk

Breaking Code Changes

This section will list all breaking changes made to the public API of Credo between version 0.3.x and 0.4.0.

info

If you have custom modules take into account there could be a lot more breaking changes that aren't documented here. We try to make sure that the biggest breaking changes to the internal API are also documented here, but it is possible some breaking changes are not documented here (feel free to open a pull request).

Agent Creation

With the dependency on the Indy SDK removed from the @aries-framework/core package, we now need to register the IndySdkModule to still leverage the functionality the Indy SDK provides.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
},
dependencies: agentDependencies,
})

Indy Network Configuration

With the Indy SDK being extracted out of core, the indyLedger configuration option is no longer available on the AgentConfig interface. Instead, the networks configuration option is now available on the IndySdkModule configuration.

In addition the connectToIndyLedgersOnStartup property has been removed in favor of a per-network connectOnStartup property that allows more fine-grained control over which networks to connect to on startup.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
connectToIndyLedgersOnStartup: true,
indyLedgers: [
{
id: 'Sovrin Mainnet',
indyNamespace: 'sovrin',
isProduction: true,
genesisPath: './genesis/sovrin-genesis.txn',
},
],
},
dependencies: agentDependencies,
})

Changes to wallet

Throughout the framework it was possible to provide a seed for deterministic key generation. Recently it was discovered that the seed property in the Indy SDK was not actually used as a seed, but directly as the private key.

Therefore a new privateKey property was added to the Wallet interface in addition to the seed property. When using the IndySdkModule this now means you can only provide the privateKey property. The seed property is no longer supported by the IndySdkModule.

The type of the seed property has also been changed to Buffer to make it more consistent with privateKey property, and remove the ambiguity of what the encoding of the string variant of the seed property should be.

Did Resolver and Registrar

The did:sov resolver and registrar were registered by default in 0.3.x of the agent. In 0.4.0 they've been moved to the @aries-framework/indy-sdk package and are thus not registered by default on the DIDs module anymore. In addition, the IndySdkSovDidRegistrar has been replaced in favor of the IndySdkIndyDidRegistrar which provides similar behavior, but leverages the new did:indy method, which removes ambiguity about which network to use. You can still use the IndySdkSovDidResolver to resolve did:sov DIDs.

Note that the IndySdkModule MUST be registered when using the Indy SDK did resolvers and registrars (see Agent Creation). The networks supported by the resolvers and registrar is determined by the networks registered on the IndySdkModule (see Indy Network Configuration).

Also note that by default the WebDidResolver, KeyDidResolver and PeerDidResolver are registered, and setting the resolvers property on the DidsModule configuration will override the default resolvers (an exception is the PeerDidResolver as it is required for creating connections, and thus will always be registered).

The same thing is true for the registrars, for which the KeyDidRegistrar and PeerDidRegistrar are registered by default. If defining the resolvers and registrars, make sure to include the default registrars if you want to keep the previous behavior.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
},
dependencies: agentDependencies,
})

Removal of publicDidSeed and publicDid

To make Credo more generic, and less focused on Hyperledger Indy, and Indy dids, the publicDidSeed and publicDid properties have been removed from the agent configuration, the agent class, and the Wallet interface.

The publicDid property was used as the did to register items in the ledger module. The approach had some limitations:

  • An agent could only have a single publicDid property. This means that if you wanted to write to multiple ledgers you would have to create multiple agents
  • The property assumed only Indy ledgers would be used, and didn't take into account the possibility of other ledgers.

Credo now provides generic APIs that can work with any ledger, and thus the publicDid property is no longer needed. Different sections of this migration guide will explain the different parts of how to use the new APIs, this section just focuses on how to replace the publicDid property.

The most common use case for the publicDid property was for registering an endorser did that can endorse (read: pay for) transactions on the ledger. This can now be done by importing the did into agent, after which it can be used by the AnonCreds module to register schemas and credential definitions, and the did registrar to register DIDs.

There's a one-time import that needs to be done to import the did into the agent using the DidsApi.import method. If you've previously used the publicDidSeed property, providing the private key is optional, as it is already stored in the wallet. Note that the privateKey is the same as the publicDidSeed, see Changes to Wallet for context). The import method will resolve the did passed to the import method (so make sure to register the IndySdkIndyDidResolver). It is recommended to import the endorser did as an did:indy did rather than a did:sov did, as the did:sov method is deprecated for creation. The did:indy did can be constructed by replacing sov with indy:<indyNamespace>, where <indyNamespace> should be replaced with a namespace as registered in the networks property of the IndySdkModule (see Indy Network Configuration).

An initial list of namespace identifiers can be found in an issue in the Indy Did Networks Repository. In the future this list will be maintained in the Indy DID Networks repository itself.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
publicDidSeed: '01eafa4de4e22ed4fc2ee522b6ce2731',
},
dependencies: agentDependencies,
})

More Granular Usage of Legacy did:sov Prefix in DIDComm Messages

Credo 0.3.0 used the useLegacyDidSovPrefix to use the legacy did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/ as the prefix in the @type of DIDComm message instead of the new https://didcomm.org prefix. Over time it has proven that this approach leads to undesired behavior as all messages (even protocols that were defined after the new prefix was the default) would use the legacy prefix. However, due to not all implementations having support for new prefix, disabling the legacy prefixes proved to be a problem.

Therefore, in Credo 0.4.0 the useLegacyDidSovPrefix property has been replaced with the useDidSovPrefixWhereAllowed property. This property will only use the legacy prefix for protocols that were defined before the new prefix was the default. This means that protocols that were defined after the new prefix was the default will use the new prefix independent of the value of the useDidSovPrefixWhereAllowed property. We hope this will allow us to slowly migrate away from the legacy prefix as new protocols are defined without breaking backwards compatibility.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
useLegacyDidSovPrefix: true,
},
dependencies: agentDependencies,
})

Removal of injectionContainer property from the agent

The injectionContainer property on the Agent has been replaced by the dependencyManager property. The dependencyManager property is an instance of the DependencyManager class and wraps the injection container from tsyringe.

The DependencyManager should provide all functionality that is needed, and it is recommended to not use the injection directly. If you need to use the injection container directly, you can access it via the container property on the DependencyManager instance, but please raise an issue to discuss if the functionality you need should be added to the DependencyManager class.

connection has been updated to connectionId in TransportSession

The connection property on the TransportSession has been changed to connectionId and now only holds a reference to the connection id instead of the connection record itself.

Accessing the connection on a transport session is an advanced case that is mostly only relevant when implementing a custom transport. If you are using the default transports, you should not be affected by this change.

Replacement of Ledger Module with new AnonCreds Module

The ledger module has been available in Credo since the very beginning, and was due for a big overhaul. With the addition of the dids module a while ago we already had a replacement for the registerPublicDid and getPublicDid methods on the ledger module. The other methods of the ledger module have been replaced by the AnonCreds module.

In Credo 0.4.0 AnonCreds credential support is not part of the core framework anymore, and needs to be manually registered on the agent. The first part is enabling the AnonCreds module, which allows to manage AnonCreds objects, interact with the ledger, and issuer, hold and verify AnonCreds credentials and is explained in this section. The second part is actually allowing AnonCreds credentials to be exchanged in the Issue Credential and Present Proof protocols, which is explained in the Manually Register AnonCreds Support in Credentials and Proofs Modules section.

There's a few important takeaways based on the code example below:

  • The anoncreds module can be accessed under the agent.modules.anoncreds property.
  • The interfaces are set up as generically as possible based on the DID Registration and DID Resolution specifications.
  • AnonCreds registries need to be manually registered so it's important to register the IndySdkAnonCredsRegistry on the AnonCredsModule.
  • It is now required to pass an issuerId when registering AnonCreds objects, according to the AnonCreds Specification. Only did:indy issuer identifiers are allowed (based on the did:indy AnonCreds Method), so the network can be inferred from the issuer identifier.

As will be explained in the Manually Register AnonCreds Support in Credentials and Proofs Modules, you can still use the unqualified issuer identifiers (best known as the Hyperledger Indy Legacy AnonCreds Method) in credential and proof exchanges.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
publicDidSeed: '01eafa4de4e22ed4fc2ee522b6ce2731',
indyLedgers: [
{
id: 'Sovrin Mainnet',
indyNamespace: 'sovrin',
isProduction: true,
genesisPath: './genesis/sovrin-genesis.txn',
},
],
},
dependencies: agentDependencies,
})

await agent.initialize()

const schema = await agent.ledger.registerSchema({
attributes: ['name'],
name: 'Example Schema',
version: '1.0.1',
})

const credentialDefinition = await agent.ledger.registerCredentialDefinition({
schema,
supportRevocation: false,
tag: 'default',
})

Changes to the Credentials and Proofs modules

A lot of small, and some bigger changes have been made to the Credentials, and primarily, the Proofs modules. These changes have been made to make the modules more consistent and generic so that they can be used in a wider range of use cases, removing any focus on AnonCreds and Indy credentials.

Changes to the Proofs module include:

  • getRequestedCredentialsForProofRequest has been renamed to getCredentialsForRequest
  • autoSelectCredentialsForProofRequest has been renamed to selectCredentialsForRequest
  • The config parameter for both methods has been removed and those have been replaced by proof format specific configuration options. In this case, the config.filterByNonRevocationRequirements has been added as proofFormats.indy.filterByNonRevocationRequirements (if the indy format is registered as explained in the next section). The config.filterByPresentationPreview has been removed as the presentation preview was only present in the present proof V1 protocol, and due to it's limited applicability (the holder starts with a proposal) we've decided to remove this method for now. You can still filter the credentials yourself by using the getCredentialsForRequest method.
  • Interfaces have been renamed to be more consistent with the method names. Please refer to the CredentialsApiOptions and ProofsApiOptions for the interface names that can be imported.

If you encounter any other breaking changes in the Proofs and Credentials modules, please open an issue in the Credo Docs repository.

Changes to the AnonCreds Credential and Proof Format

With the 0.4.0 release, Credo now provides a pluggable AnonCreds interface, and requires support AnonCreds credentials to be explicitly registered on the agent. This is also the case for registering the credential and proof formats.

In 0.3.x, the IndyProofFormatService and IndyCredentialFormatService were registered by default. In 0.4.x, these services are no longer registered by default and they should be imported from the @aries-framework/anoncreds package as LegacyIndyProofFormatService and LegacyIndyCredentialFormatService and are based on Aries RFC 0592. In a future version the new AnonCredsCredentialFormatService and AnonCredsProofFormatService will be added to the AnonCreds package, which are based on Aries RFC 0771 and allow for AnonCreds credentials to be exchanged based on the new ledger agnostic AnonCreds Specification.

In addition, the V1CredentialProtocol and V1ProofProtocol have been extracted into the @aries-framework/anoncreds package, as they only support exchange of (legacy Indy) AnonCreds credentials.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
indyLedgers: [
{
id: 'Sovrin Mainnet',
indyNamespace: 'sovrin',
isProduction: true,
genesisPath: './genesis/sovrin-genesis.txn',
},
],
},
dependencies: agentDependencies,
})

Removal of AnonCreds Master Secret management from Wallet

The Wallet class no longer manages the creation and deletion of AnonCreds master secrets (which are now called Link Secrets in AnonCreds module and specification). If you haven't provided a custom masterSecretId to the walletConfig before, the storage migration script should have automatically created an AnonCredsLinkSecretRecord for you based on the walletConfig.id.

For new agents however, you now need to explicitly create a link secret before you can create requests for AnonCreds credential offers. You can do this using the AnonCredsApi.createLinkSecret method.

caution

If you previously used a custom masterSecretId in the walletConfig the migration script will have created an incorrect AnonCredsLinkSecretRecord based on the walletConfig.id. You will need to manually override the link secret record with the correct linkSecretId.

You ONLY need to do this if you're not migrating from Indy SDK to Askar, as in that case the migration script will have created the correct AnonCredsLinkSecretRecord for you.

import { AnonCredsLinkSecretRepository } from '@aries-framework/anoncreds'

const linkSecretRepository = agent.dependencyManager.resolve(AnonCredsLinkSecretRepository)
const defaultLinkSecret = await linkSecretRepository.findDefault(agent.context)

if (defaultLinkSecret) {
defaultLinkSecret.linkSecretId = 'my-custom-link-secret-id'
await linkSecretRepository.update(agent.context, defaultLinkSecret)
}
import { AnonCredsModule } from '@aries-framework/anoncreds'
import { Agent } from '@aries-framework/core'
import { IndySdkAnonCredsRegistry, IndySdkModule } from '@aries-framework/indy-sdk'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

// Import from indy-sdk-react-native in React Native
import indySdk from 'indy-sdk'

const agent = new Agent({
config: {
/* ... */
},
dependencies: agentDependencies,
modules: {
indySdk: new IndySdkModule({
indySdk,
}),
anoncreds: new AnonCredsModule({
registries: [new IndySdkAnonCredsRegistry()],
}),
},
})

// the agent MUST be initialized before calling it.
await agent.wallet.initialize({
id: 'wallet-id',
key: 'wallet-key',
})

await agent.modules.anoncreds.createLinkSecret({
// first one will be set to default automatically
setAsDefault: true,

// will be generated if not provided.
// linkSecretId: 'link-secret-id'
})

Default Outbound DIDComm Content Type now application/didcomm-envelope-enc

The default outbound DIDComm content type has been changed from DidCommMimeType.V0 (application/ssi-agent-wire) to DidCommMimeType.V1 (application/didcomm-envelope-enc). V1 is the default for DIDComm V1 (as defined in Aries RFC 0044). In the past, V0 resulted in better interoperability, but since it has been the default for so long it makes sense to change the default behavior.

It is advised to use the default value as configured by the agent (V1). If you want to keep the old behavior, you can configure the didCommMimeType property in the agent configuration.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
},
dependencies: agentDependencies,
})

Generalizing Indy properties in CredentialExchangeRecord

With AnonCreds credentials now being generalized to support multiple ledgers, the properties specific to Hyperledger Indy have now been generalized into a generic AnonCreds properties.

credentialRecordType

First off, the credentialRecordType that was used to reference stored AnonCreds credentials has been renamed from indy to anoncreds. The migration script takes care of the update to the storage, but you need to make sure to update all places that expect a credentialRecordType of indy to be defined.

CredentialExchangeRecord
{
"credentials": [
{
"credentialRecordType": "indy",
"credentialRecordId": "credential-id"
}
]
}

Metadata

Second, the metadata keys and values have been renamed to be AnonCreds specific rather than Indy specific. The CredentialMetadataKeys have been replaced by the AnonCredsCredentialMetadataKey and AnonCredsCredentialRequestMetadataKey constants which can be imported from the @aries-framework/anoncreds package.

CredentialExchangeRecord
{
"metadata": {
"_internal/indyCredential": {
"schemaId": "schema-id",
"credentialDefinitionId": "cred-def-id",
"indyRevocationRegistryId": "rev-reg-id",
"indyCredentialRevocationId": "cred-rev-id"
},
"_internal/indyRequest": {
"master_secret_blinding_data": {
"v_prime": "string",
"vr_prime": "string"
},
"master_secret_name": "string",
"nonce": "string"
}
}
}

More paths in FileSystem

The FileSystem interface has been extended to support multiple base paths. The previous interface had a single basePath property which was used for storing of files across the framework.

With the different lifetimes of different objects, the FileSystem interface has been extended to now support three different base paths:

  • cachePath - files used for caching purposes. It's okay if the files are cleared from time to time.
  • dataPath - files that are used for long-term reliable storage purposes. These files will never be cleared.
  • tempPath - files that are used for temporary storage purposes. It's okay if the files are cleared from time to time.

If you're using the framework, you don't need to worry about this change. The agent may need to download some objects again after the update. If you've made a custom implementation of the FileSystem, make sure to support all three base paths, and make sure to correctly handle the life-cycle of the files. Items stored under the dataPath should never be cleared.

caution

Indy SDK SQLite wallets do not use the paths defined by the FileSystem interface, and thus will not be influenced by this change. When upgrading to Aries Askar, the dataPath will be used as the base path for storing the SQLite wallet data.

Breaking Storage Changes

The 0.4.0 release introduces some breaking changes to the storage format.

Below all breaking storage changes are explained in as much detail as possible. The update assistant provides all tools to migrate without a hassle, but it is important to know what has changed. All examples only show the keys that have changed, unrelated keys in records have been omitted.

See the Update Assistant documentation for a guide on how to use the update assistant.

There are no configuration parameters to be provided to the update assistant to migrate from 0.3.x to 0.4.x.

TODO

- + \ No newline at end of file diff --git a/guides/concepts.html b/guides/concepts.html index 8fa172a5..97ffac77 100644 --- a/guides/concepts.html +++ b/guides/concepts.html @@ -3,8 +3,8 @@ -Concepts | Credo - +Concepts | Credo + @@ -12,7 +12,7 @@ - + \ No newline at end of file diff --git a/guides/concepts/agents.html b/guides/concepts/agents.html index 805f585a..46486633 100644 --- a/guides/concepts/agents.html +++ b/guides/concepts/agents.html @@ -3,8 +3,8 @@ -Agents | Credo - +Agents | Credo + @@ -37,7 +37,7 @@ devices these can be used as a more central point for your data.

Useful resources

- + \ No newline at end of file diff --git a/guides/concepts/did-and-didcomm.html b/guides/concepts/did-and-didcomm.html index 934f4256..d9bcb99d 100644 --- a/guides/concepts/did-and-didcomm.html +++ b/guides/concepts/did-and-didcomm.html @@ -3,8 +3,8 @@ -DIDs and DIDComm | Credo - +DIDs and DIDComm | Credo + @@ -24,7 +24,7 @@ securely send a message from as Alice to Bob securely via bluetooth, HTTP, WebSockets, etc.

When working with the tools available inside the Aries JavaScript ecosystem, deep knowledge of DIDComm is not required.

Useful Resources

- + \ No newline at end of file diff --git a/guides/concepts/platform-and-environment.html b/guides/concepts/platform-and-environment.html index 72c35cb8..c79e8985 100644 --- a/guides/concepts/platform-and-environment.html +++ b/guides/concepts/platform-and-environment.html @@ -3,14 +3,14 @@ -Platform and Environment | Credo - +Platform and Environment | Credo +
Version: v0.4.x

Platform and Environment

Aries framework JavaScript is developed to support a Node.JS and React Native environment. With this it is entirely possible to build an entire SSI ecosystem with Aries Framework JavaScript. This would use Node.JS as an issuer as a verifier, and uses React Native as a holder.

- + \ No newline at end of file diff --git a/guides/ecosystem.html b/guides/ecosystem.html index 2a5faad8..6e3513dc 100644 --- a/guides/ecosystem.html +++ b/guides/ecosystem.html @@ -3,15 +3,15 @@ -The Aries JavaScript Ecosystem | Credo - +The Aries JavaScript Ecosystem | Credo +
Version: v0.4.x

The Aries JavaScript Ecosystem

The Aries JavaScript ecosystem includes various components that are spread across multiple repositories. In this section we'll go over what these components are and how the relate to one another.

Repositories

Currently, Aries JavaScript is composed out of three separate repositories:

  1. Aries Framework JavaScript
  2. Aries Framework JavaScript Extensions
  3. Aries Mobile Agent React Native (Bifold)

Documentation

You can find their documentation here:

  1. Aries Framework JavaScript
  2. Aries Framework JavaScript Extensions
  3. Aries Mobile Agent React Native (Bifold)

Aries Framework JavaScript

Aries Framework JavaScript (AFJ) is at the core of the Aries JavaScript ecosystem. AFJ provides all the functionality related to cryptography, storage, messaging and more that is required

Contributing in the Aries JS Ecosystem

Consider attending our weekly meetings to become aware of the current development cadence.

Developer Contributions

Each project maintains its own CONTRIBUTING guidance:

Each project has a significant set of developer conventions, checklists, templates, and actions to provide guidance and boundaries for a contribution. Consider looking at previous issues and their corresponding PRs to get a sense of the latest.

- + \ No newline at end of file diff --git a/guides/extensions.html b/guides/extensions.html index 66067440..0df66569 100644 --- a/guides/extensions.html +++ b/guides/extensions.html @@ -3,14 +3,14 @@ -Extensions | Credo - +Extensions | Credo +
Version: v0.4.x

Extensions

Aries Framework JavaScript Extensions is an extensions repository to Aries Framework JavaScript (AFJ). It hosts libraries built on top of Aries Framework JavaScript that don't necessarily belong to the core of the project.

Currently, there are four packages in the extension repository. Example extension libraries include React Hooks for AFJ and a REST API wrapper.

PackageVersionDescription
@aries-framework/redux-store@aries-framework/redux-store versionRedux toolkit wrapper around Aries Framework JavaScript
@aries-framework/rest@aries-framework/rest versionRest endpoint wrapper for using your agent over HTTP
@aries-framework/react-hooks@aries-framework/react-hooks versionReact Hooks for data handling and agent interaction
@aries-framework/push-notifications@aries-framework/push-notifications versionPush notification plugin for Aries Framework JavaScript
- + \ No newline at end of file diff --git a/guides/extensions/push-notifications.html b/guides/extensions/push-notifications.html index 7f58337c..a1d11695 100644 --- a/guides/extensions/push-notifications.html +++ b/guides/extensions/push-notifications.html @@ -3,14 +3,14 @@ -Push Notifications | Credo - +Push Notifications | Credo +
Version: v0.4.x

Push Notifications

The Push Notifications plugin package provides a way for you to register your APNs and Firebase push notification token at an agent, allowing you to use push notifications directly from AFJ.

note

This document is for version 0.5.x of the @aries-framework/push-notifications package, that works with @aries-framework/core version 0.4.x. Extension packages (such as Push Notifications) are versioned separately from the core packages.

Installation

To add the Push Notifications plugin package to your existing project simply run:

npm i @aries-framework/push-notifications
- + \ No newline at end of file diff --git a/guides/extensions/react-hooks.html b/guides/extensions/react-hooks.html index ae662ed0..f1b63e4f 100644 --- a/guides/extensions/react-hooks.html +++ b/guides/extensions/react-hooks.html @@ -3,14 +3,14 @@ -React Hooks | Credo - +React Hooks | Credo +
Version: v0.4.x

React Hooks

The React Hooks package exposes useful React hooks that allow you to easily interact with AFJ from a React client application.

These hooks provide a simple way to query agent data in a client application, allowing you to focus on the user interface.

note

This document is for version 0.5.x of the @aries-framework/react-hooks package, that works with @aries-framework/core version 0.4.x. Extension packages (such as React Hooks) are versioned separately from the core packages.

Installation

To add the React Hooks package to your existing project simply run:

npm i @aries-framework/react-hooks@^0.5

Usage

This package exposes useful React hooks that allow you to easily interact with AFJ.

Everything exported from Hooks:

import AgentProvider, {
useAgent,
useConnections,
useConnectionById,
useCredentials,
useCredentialById,
useCredentialByState,
useProofs,
useProofById,
useProofByState,
} from '@aries-framework/react-hooks'

First step is to wrap your entire app in our <AgentProvider/>. The provider takes an initialized agent. The base of your app should look something like this:

import AgentProvider from '@aries-framework/react-hooks'

const App = () => {
const [agent, setAgent] = useState(undefined)

const initializeAgent = async () => {
const appAgent = new Agent({
/* agent options */
})
await appAgent.initialize()
setAgent(appAgent)
}

useEffect(() => {
initializeAgent()
}, [])

if (!agent) return <LoadingComponent />

return <AgentProvider agent={agent}>/* Your app here */</AgentProvider>
}

And that's it! Your app should be set up to receive all the necessary data your app will need! Now let's see how we actually get that data to our components.

The useAgent hook returns { agent, loading } so anytime you need access to any of the methods tied to the agent, you can useAgent() anywhere.

The following is an example of how you could use the useConnections hook to render a full list of all a user's connections.

import { useConnections } from '@aries-framework/react-hooks'

const MyConnectionsComponent = () => {
// all base hooks return an array of objects and a loading boolean
const { connections, loading } = useConnections()

return <FlatList data={connections} renderItem={({ item }) => <MyListItem connection={item} />} />
}

The three base hooks: useConnections, useCredentials, and useProofs work just like the above! Just call the hook, destructure the data, and pass it through!

Each base hook has a ById version that returns a singular record. For example if I wanted only a specific connectionRecord, I'd do this.

const connection = useConnectionById(id)

More commonly, you'll want to get a filtered list of records based off of their state. Well, Hooray! We have a ByState version as well. For example, you can do this:

const credentials = useCredentialByState(CredentialState.OfferReceived)
- + \ No newline at end of file diff --git a/guides/extensions/redux-store.html b/guides/extensions/redux-store.html index f2c7b247..836ee002 100644 --- a/guides/extensions/redux-store.html +++ b/guides/extensions/redux-store.html @@ -3,14 +3,14 @@ -Redux Store | Credo - +Redux Store | Credo +
Version: v0.4.x

Redux Store

The Redux Store is an implementation of state management that can be used to build React & React Native SSI clients using AFJ.

The Redux Store allows you to integrate state management for the most important parts of using AFJ in a client application (mediation, connections, credentials and proofs), allowing you to sync UI state with the state of the agent as it interacts with other agents through the framework.

note

This document is for version 0.4.x of the @aries-framework/redux-store package, that works with @aries-framework/core version 0.4.x. Extension packages (such as Redux Store) are versioned separately from the core packages.

Installation

To add the Redux Store package to your existing project simply run:

npm i @aries-framework/redux-store
- + \ No newline at end of file diff --git a/guides/extensions/rest.html b/guides/extensions/rest.html index 9c28970b..3fbdb8c4 100644 --- a/guides/extensions/rest.html +++ b/guides/extensions/rest.html @@ -3,14 +3,14 @@ -REST API | Credo - +REST API | Credo +
Version: v0.4.x

REST API

The Aries Framework JavaScript (AFJ) REST API provides simple RESTful endpoints for AFJ methods, to allow you stand up an agent for communication over the internet instantly. You simply provide your agent configuration. The REST endpoints allow you to interact with your agent over HTTP and WebSockets.

The AFJ REST API is the most convenient way for self-sovereign identity (SSI) developers to interact with SSI agents.

  • Endpoints to create connections, issue credentials, and request proofs.
  • 💻 CLI that makes it super easy to start an instance of the REST API.
  • 🌐 Interoperable with all major Aries implementations.
danger

The @aries-framework/rest package has not been updated to work with the latest version (0.4.x) of @aries-framework/core. The documentation in this section is for version 0.9.x of the @aries-framework/rest package, that works with @aries-framework/core version 0.2.x. Extension packages (such as REST API) are versioned separately from the core packages.

Quick Setup

info

This guide assumes you have followed the install guides for the framework (See Getting Started section) for your platform and a valid Node.js project setup.

Using the CLI is the easiest way to get started with REST API.

You can do this directly on your machine.

Directly on computer

After installing and confirming that Libindy is installed, simply run:

npx -p @aries-framework/rest afj-rest start \
--label "AFJ Rest" \
--wallet-id "walletId" \
--wallet-key "walletKey" \
--endpoint http://localhost:5000 \
--admin-port 3000 \
--outbound-transport http \
--inbound-transport http 5000

The REST API provides an OpenAPI schema that can easily be viewed using the SwaggerUI that is provided with the server. The endpoint documentation can be viewed at the /docs endpoint (e.g. http://localhost:3000/docs).

Configuration

To find out all available configuration options from the CLI, you can run the CLI command with --help. This will print a full list of all available options.

npx -p @aries-framework/rest afj-rest start --help
- + \ No newline at end of file diff --git a/guides/getting-started.html b/guides/getting-started.html index 89aae3aa..bb1941f1 100644 --- a/guides/getting-started.html +++ b/guides/getting-started.html @@ -3,14 +3,14 @@ -Getting started | Credo - +Getting started | Credo +
Version: v0.4.x

Getting started

In this section we will go over everything you need to get started on a technical level. First there are some general prerequisites for Node.JS and React Native. Aries Framework JavaScript works for creating both server-side applications (commonly but not always for creating issuer and verifier agents) and mobile applications (commonly holder agents).

Based on the platform you want to work on, the installation guides you should follow are the same, but some steps may differ.

Do you want to build a mobile app?

Do you want to build a server-side app?

- + \ No newline at end of file diff --git a/guides/getting-started/prerequisites.html b/guides/getting-started/prerequisites.html index 56dc1da1..51d8e07a 100644 --- a/guides/getting-started/prerequisites.html +++ b/guides/getting-started/prerequisites.html @@ -3,14 +3,14 @@ -Prerequisites | Credo - +Prerequisites | Credo +
Version: v0.4.x

Prerequisites

To work with Aries Framework JavaScript we need to install some dependencies and set-up our Node.JS environment. Even when creating a mobile app in React Native, we need Node.JS installed. We will go over the specific installation process for each platform. Go ahead and pick your system of choice to get started!

The specific items that we set-up:

Node.JS

NodeJS is the most popular JavaScript runtime environment excluding browsers. It can run on your desktop or even a server.

You can download it from the Node.JS Website

NPM

The Node Package Manager comes pre-bundled with the NodeJS installation from above.

Yarn

Only required when not using npm

For every platform, the installation of yarn is the same.

npm install --global yarn

Project Setup

Finally, you need to make sure you have a project set-up using Node.JS or React Native. If you're not familiar with setting up a project, we suggest following the Introduction to Node.JS or React Native Quickstart guides.

- + \ No newline at end of file diff --git a/guides/getting-started/set-up.html b/guides/getting-started/set-up.html index df08f461..5b982ea4 100644 --- a/guides/getting-started/set-up.html +++ b/guides/getting-started/set-up.html @@ -3,8 +3,8 @@ -Agent Setup | Credo - +Agent Setup | Credo + @@ -26,7 +26,7 @@ transport in the same way as the outbound transport.

Sets up an WS outbound and HTTP inbound and outbound transport.

import { HttpOutboundTransport, WsOutboundTransport } from '@aries-framework/core'
import { HttpInboundTransport } from '@aries-framework/node'

// ... agent setup from prevous section ...

agent.registerOutboundTransport(new HttpOutboundTransport())
agent.registerOutboundTransport(new WsOutboundTransport())
agent.registerInboundTransport(new HttpInboundTransport({ port: 3000 }))

Initializing the agent

Finally, we can initialize the agent and it's ready for use.

agent
.initialize()
.then(() => {
console.log('Agent initialized!')
})
.catch((e) => {
console.error(`Something went wrong while setting up the agent! Message: ${e}`)
})

Next Steps

Now that you have your agent setup, it's time to start building your application. Head over to the tutorials page to get started.

Useful resources

- + \ No newline at end of file diff --git a/guides/getting-started/set-up/anoncreds-rs.html b/guides/getting-started/set-up/anoncreds-rs.html index 88db62a6..162201ce 100644 --- a/guides/getting-started/set-up/anoncreds-rs.html +++ b/guides/getting-started/set-up/anoncreds-rs.html @@ -3,14 +3,14 @@ -AnonCreds RS | Credo - +AnonCreds RS | Credo +
Version: v0.4.x

AnonCreds RS

AnonCreds RS is a direct implementation of the AnonCreds V1.0 specification that provides functionality like; creating a schema object, creating a credential definition object, creating a credential, verifying a proof presentation and much more.

caution

Support for the AnonCreds RS library in Aries Framework JavaScript is currently experimental. We recommend new projects to use AnonCreds RS from the start, and also to migrate existing projects to AnonCreds, from the Indy Sdk. However, projects may experience some issues. If you encounter any issues, please open an issue.

Currently, there are few limitations to using AnonCreds RS.

  • When running in Node.JS, only Node.JS 18 is supported for now. See Supported Node.JS versions for AnonCreds RS
  • Install scripts rely on bash command substitution to get the proper binaries for each system architecture and platform. Therefore, if you are under Windows, you must configure npm or yarn to use a bash-compliant shell (e.g. npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe")

Installing AnonCreds RS

When using Aries Framework JavaScript with AnonCreds RS, there are a few extra dependencies that need to be installed. We need to install @hyperledger/anoncreds package, which contains the interfaces, and @hyperledger/anoncreds-rs package which is an implementation which depends on a wrapper of anoncreds-rs. Secondly, we need to add native bindings for the specific platform @hyperledger/anoncreds-<platform>. Currently there are bindings for Node.JS, as @hyperledger/anoncreds-nodejs, and React Native as @hyperlegder/anoncreds-react-native.

yarn add @aries-framework/anoncreds@^0.4.0 @aries-framework/anoncreds-rs@^0.4.0 @hyperledger/anoncreds-nodejs@^0.1.0

Adding AnonCreds RS to the agent

After installing the dependencies, we should register both the AnonCreds and AnonCredsRs module on the agent.

import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'

import { anoncreds } from '@hyperledger/anoncreds-nodejs'
import { AnonCredsModule } from '@aries-framework/anoncreds'
import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs'
import { IndyVdrAnonCredsRegistry } from '@aries-framework/indy-vdr'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
// Register the Askar module on the agent
// This is included as we need a wallet on our agent
askar: new AskarModule({
ariesAskar,
}),
anoncredsRs: new AnonCredsRsModule({
anoncreds,
}),
anoncreds: new AnonCredsModule({
// Here we add an Indy VDR registry as an example, any AnonCreds registry
// can be used
registries: [new IndyVdrAnonCredsRegistry()],
}),
},
})

Configuration

As you can see, the AnonCreds module takes a list of registry modules. These modules will be used to resolve the AnonCreds objects. We recommend Indy VDR as an AnonCreds registry for Hyperledger Indy networks, but Indy SDK can also be used.

Supported Node.JS versions for AnonCreds RS

Due to an issue in ref-napi (which is used in the Node.JS bindings for AnonCreds RS), performance for AnonCreds RS in Node.JS is not as expected. A patched version for ref-napi has been published that fixes this issue, but this only works in Node.JS 18+.

To use AnonCreds RS in Node.JS, make sure you're using Node.JS 18 and patch the ref-napi package to point towards @2060.io/ref-napi in your package.json:

Using NPM overrides we can point the ref-napi package to @2060.io/ref-napi.

{
"overrides": {
"ref-napi": "npm:@2060.io/ref-napi"
}
}
- + \ No newline at end of file diff --git a/guides/getting-started/set-up/aries-askar.html b/guides/getting-started/set-up/aries-askar.html index 3cad94c8..36866424 100644 --- a/guides/getting-started/set-up/aries-askar.html +++ b/guides/getting-started/set-up/aries-askar.html @@ -3,14 +3,14 @@ -Aries Askar | Credo - +Aries Askar | Credo +
Version: v0.4.x

Aries Askar

Aries Askar provides secure, encrypted storage and cryptographic support for encrypting, decrypting, signing and verifying data. It also provides both the Wallet and StorageService implementations for the agent.

caution

Although Aries Askar is stable and already used in production in agents such as Aries Cloud Agent Python, support for Aries Askar in Aries Framework JavaScript is currently experimental. We recommend new projects to use Aries Askar from the start, and also to migrate existing projects to Aries Askar. However, projects may experience some issues. If you encounter any issues, please open an issue.

Currently, there are few limitations to using Aries Askar.

  • When running in Node.JS, only Node.JS 18 is supported for now. See Supported Node.JS versions for Aries Askar
  • Install scripts rely on bash command substitution to get the proper binaries for each system architecture and platform. Therefore, if you are under Windows, you must configure npm or yarn to use a bash-compliant shell (e.g. npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe")
tip

If you're upgrading from the Indy SDK to Aries Askar, see Migrating from an Indy SDK Wallet to Aries Askar

Installing Aries Askar

When using Aries Framework JavaScript with Aries Askar, there are a few extra dependencies that need to be installed. We need to install the @aries-framework/askar package, which implements the needed interfaces for the agent. Secondly, we need to add native bindings for the specific platform @hyperledger/aries-askar-<platform>. Currently there are bindings for Node.JS, as @hyperledger/aries-askar-nodejs, and React Native as @hyperlegder/aries-askar-react-native.

yarn add @aries-framework/askar@^0.4.0 @hyperledger/aries-askar-nodejs@^0.1.0

Adding Aries Askar to the Agent

After installing the dependencies, we can register the Askar Module on the agent.

import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
// Register the Askar module on the agent
askar: new AskarModule({
ariesAskar,
}),
},
})

Supported Node.JS versions for Aries Askar

Due to an issue in ref-napi (which is used in the Node.JS bindings for Aries Askar), performance for Aries Askar in Node.JS is not as expected. A patched version for ref-napi has been published that fixes this issue, but this only works in Node.JS 18+.

To use Aries Askar in Node.JS, make sure you're using Node.JS 18 and patch the ref-napi package to point towards @2060.io/ref-napi in your package.json:

Using NPM overrides we can point the ref-napi package to @2060.io/ref-napi.

{
"overrides": {
"ref-napi": "npm:@2060.io/ref-napi"
}
}
- + \ No newline at end of file diff --git a/guides/getting-started/set-up/cheqd.html b/guides/getting-started/set-up/cheqd.html index 6bab8ada..5353946a 100644 --- a/guides/getting-started/set-up/cheqd.html +++ b/guides/getting-started/set-up/cheqd.html @@ -3,14 +3,14 @@ -cheqd | Credo - +cheqd | Credo +
Version: v0.4.x

cheqd

cheqd is a blockchain network, built in the Cosmos ecosystem for Self-Sovereign Identity (SSI). The cheqd Network leverages the cheqd DID method and enables DID-Linked Resources to be written to the network, associated with a DID and controlled using the verification methods in the DID Document.

Through this approach, the cheqd Network is able to natively support the Ledger Agnostic AnonCreds Specification (v1.0) through its AnonCreds Object Method (as well as VC-JWT and JSON-LD).

cheqd also has a dedicated token, $CHEQ, used for identity writes to the network, voting in a decentralised governance framework as well as for various payment flows between verifiers, holders and issuers of Verifiable Credentials.

Installing cheqd

When using Aries Framework JavaScript with the cheqd, there's a few extra dependencies that need to be installed. We need to install the @aries-framework/cheqd package, which implements the needed interfaces for the agent.

React Native

To enable react-native support we need to follow the steps below

In the package.json file add the below code snippet, which replaces the cosmjs dependencies witht he cosmjs-rn packages

Using NPM overrides we can point the cosmjs packages to cosmjs-rn.

{
"overrides": {
"@cosmjs/amino": "npm:@cosmjs-rn/amino@^0.27.1",
"@cosmjs/encoding": "npm:@cosmjs-rn/encoding@^0.27.1",
"@cosmjs/math": "npm:@cosmjs-rn/math@^0.27.1",
"@cosmjs/stargate": "npm:@cosmjs-rn/stargate@^0.27.1",
"@cosmjs/tendermint-rpc": "npm:@cosmjs-rn/tendermint-rpc@^0.27.1",
"@cosmjs/utils": "npm:@cosmjs-rn/utils@^0.27.1",
"@cosmjs/proto-signing": "npm:@cosmjs-rn/proto-signing@^0.27.1",
"@cosmjs/crypto": "npm:@cosmjs-rn/crypto@^0.27.1"
}
}

Following that we need to add a buffer polyfill

yarn add buffer

create a shim.js file with the below code snippet

import { Buffer } from 'buffer'
global.Buffer = Buffer

import shim.js file into your file where the App is imported

Adding the cheqd to the Agent

After installing the dependencies, we can register the cheqd Module on the agent by adding the below code snippet to the agent constructor.

import { Agent, DidsModule, KeyType, DidDocument } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/react-native'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-react-native'

import {
CheqdAnonCredsRegistry,
CheqdDidRegistrar,
CheqdDidResolver,
CheqdModule,
CheqdModuleConfig,
CheqdDidCreateOptions,
} from '@aries-framework/cheqd'
import { AnonCredsModule } from '@aries-framework/anoncreds'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
dids: new DidsModule({
registrars: [new CheqdDidRegistrar()],
resolvers: [new CheqdDidResolver()],
}),

// AnonCreds
anoncreds: new AnonCredsModule({
registries: [new CheqdAnonCredsRegistry()],
}),

// Add cheqd module
cheqd: new CheqdModule(
new CheqdModuleConfig({
networks: [
{
network: '<mainnet or testnet>',
cosmosPayerSeed: '<cosmos payer seed or mnemonic>',
},
],
})
),
// Indy VDR can optionally be used with Askar as wallet and storage implementation
askar: new AskarModule({
ariesAskar,
}),
},
})

The cosmosPayerSeed can be a 32-bit seed value or a mnemonic, which can be managed using Keplr wallet which can be installed on a mobile or as a browser extension in chrome or safari which allows user's to create accounts, exchange tokens etc. To setup keplr wallet for cheqd follow this tutorial

- + \ No newline at end of file diff --git a/guides/getting-started/set-up/indy-sdk.html b/guides/getting-started/set-up/indy-sdk.html index 9ed288d5..b0516d9c 100644 --- a/guides/getting-started/set-up/indy-sdk.html +++ b/guides/getting-started/set-up/indy-sdk.html @@ -3,14 +3,14 @@ -Indy SDK | Credo - +Indy SDK | Credo +
Version: v0.4.x

Indy SDK

Indy SDK provides a distributed ledger based foundation for self-sovereign identity. It can provide the Wallet and StorageService implementations for the agent, as well as a way to interact with Indy ledgers and an implementation of the legacy (v0.1) AnonCreds Specification

caution

The Indy SDK integration in Aries Framework JavaScript is currently in maintenance mode. We recommend new projects to use Aries Askar from the start, and also to migrate existing projects to Aries Askar.

caution

The AnonCreds implementation from the Indy SDK only supports the Hyperledger Indy Legacy AnonCreds Method (the pre-standardized implementation), and doesn't support the new Ledger Agnostic AnonCreds Specification (v1.0). Use the new AnonCreds Rust implementation, which is also supported by Aries Framework JavaScript, in combination with Aries Askar and Indy VDR to replace the bevhaviour of the Indy SDK, and support the new features these libraries have to offer.

Installing the Indy SDK

When using Aries Framework JavaScript with the Indy SDK, there's a few extra dependencies that need to be installed. We need to install the @aries-framework/indy-sdk package, which implements the needed interfaces for the agent. Secondly, we need to install the native Indy SDK library and the bindings for our specific platform. Currently there are bindings for Node.JS and React Native.

To start off, install the native Indy SDK library. The setup for this depends on the platform you are using. Follow the instructions for your platform below.

After the native Indy SDK library is installed, we can add the Indy SDK libraries.

yarn add @aries-framework/indy-sdk@^0.4.0 indy-sdk

And install the needed types

yarn add --dev @types/indy-sdk

Adding the Indy SDK to the Agent

After installing the dependencies, we can register the Indy SDK Module on the agent.

import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { IndySdkModule } from '@aries-framework/indy-sdk'
import indySdk from 'indy-sdk'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
// Register the Indy SDK module on the agent
indySdk: new IndySdkModule({
indySdk,
}),
},
})
- + \ No newline at end of file diff --git a/guides/getting-started/set-up/indy-sdk/linux.html b/guides/getting-started/set-up/indy-sdk/linux.html index 6e8e585b..950aa7f7 100644 --- a/guides/getting-started/set-up/indy-sdk/linux.html +++ b/guides/getting-started/set-up/indy-sdk/linux.html @@ -3,8 +3,8 @@ -Linux | Credo - +Linux | Credo + @@ -14,7 +14,7 @@ following command:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

This will install Rustup which is the installer for Rust.

With Rust, we can now build the Indy SDK from source.

First, clone the repository in a temporary directory:

git clone https://github.com/hyperledger/indy-sdk

Secondly, go to the correct directory

cd indy-sdk/libindy

Third, build the library

cargo build --release

Lastly, move the library to the correct location

sudo mv target/release/libindy.so /usr/lib/libindy.so

Confirm installation

To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/getting-started/set-up/indy-sdk/macos-arm.html b/guides/getting-started/set-up/indy-sdk/macos-arm.html index 7281b7ad..7ff03b89 100644 --- a/guides/getting-started/set-up/indy-sdk/macos-arm.html +++ b/guides/getting-started/set-up/indy-sdk/macos-arm.html @@ -3,8 +3,8 @@ -macOS (ARM) | Credo - +macOS (ARM) | Credo + @@ -12,7 +12,7 @@
Version: v0.4.x

macOS (ARM)

To install Indy SDK on macOS, a couple of dependencies are required. This guide covers the installation of the Indy SDK for macs with an ARM processor. For installing the Indy SDK on Intel based macs, please refer to the Indy SDK macOS (Intel) guide.

info

This installation assumes that you have brew installed. If not, please install it via this command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Libsodium

Libsodium is used by the Indy SDK for encryption, decryption, hashing and signing.

brew install libsodium

Libzmq

Libzmq is a lightweight messaging queue used by the Indy SDK.

brew install zeromq

Indy SDK

The Indy SDK does not been distributed properly for macOS. We have a pre-built library available that can be downloaded. If you prefer to build from source, you can follow the instructions in the Indy SDK repository

First, download the pre-built library from Google Drive.

After this, open Finder, control+click on the library and click on open. This is something that has to be done as the library is not properly signed.

Lastly the library just has to be moved to the correct location.

caution

If you downloaded the file in another directory, please change the first part of this command

sudo mv ~/Downloads/libindy.dylib /usr/local/lib/

Confirm installation

To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/getting-started/set-up/indy-sdk/macos-intel.html b/guides/getting-started/set-up/indy-sdk/macos-intel.html index ba164e6c..56f5b666 100644 --- a/guides/getting-started/set-up/indy-sdk/macos-intel.html +++ b/guides/getting-started/set-up/indy-sdk/macos-intel.html @@ -3,14 +3,14 @@ -macOS (Intel) | Credo - +macOS (Intel) | Credo +
Version: v0.4.x

macOS (Intel)

To install Indy SDK on macOS a couple of dependencies are required. This guide covers the installation of the Indy SDK for macs with an Intel processor. For installing the Indy SDK on ARM based macs, please refer to the Indy SDK macOS (ARM) guide.

info

This installation assumes that you have brew installed. If not, please install it via this command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Indy SDK

The Indy SDK has not been distributed properly for macOS. We have made a brew tap for libindy and it will also install all of the required dependencies.

brew install blu3beri/libindy/libindy

Confirm installation

To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/getting-started/set-up/indy-sdk/react-native.html b/guides/getting-started/set-up/indy-sdk/react-native.html index bf978790..a24d5217 100644 --- a/guides/getting-started/set-up/indy-sdk/react-native.html +++ b/guides/getting-started/set-up/indy-sdk/react-native.html @@ -3,14 +3,14 @@ -React Native | Credo - +React Native | Credo +
Version: v0.4.x

React Native

The setup of Indy SDK for React Native is rather different than Node.JS. We do not have to install dependencies on the host-platform, but for the build target. For React Native this would be the Indy SDK for Android & iOS. This guide covers both the Android and iOS setup, as in most React Native projects you will need both.

Expo

If you're using Expo, the recommended way to install the Indy SDK is by using the Indy SDK Expo Plugin. This will correclty set-up your project with the Indy SDK using an Expo Config Plugin for both iOS and Android.

Refer to the Indy SDK Expo Plugin repository for installation instructions.

Without Expo

When not using Expo, you will need to set-up the Indy SDK for both Android and iOS using the indy-sdk-react-native package directly. Refer to the Indy SDK React Native repository for installation instructions.

- + \ No newline at end of file diff --git a/guides/getting-started/set-up/indy-sdk/windows.html b/guides/getting-started/set-up/indy-sdk/windows.html index ea1e51fa..24a6d039 100644 --- a/guides/getting-started/set-up/indy-sdk/windows.html +++ b/guides/getting-started/set-up/indy-sdk/windows.html @@ -3,8 +3,8 @@ -Windows | Credo - +Windows | Credo + @@ -12,7 +12,7 @@
Version: v0.4.x

Windows

To install Indy SDK on Windows, you can download the pre-built binary from the Sovrin repository.

Once downloaded, extract the zip into a permanent location.

Next, go to environment variables on your system and click on new at System Variables. The name MUST be LD_LIBRARY_PATH and the value MUST be the path to the extracted libraries.

Confirm installation

To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error.

npx -p @aries-framework/node@^0.3 is-indy-installed
- + \ No newline at end of file diff --git a/guides/getting-started/set-up/indy-vdr.html b/guides/getting-started/set-up/indy-vdr.html index d83300a0..e2d7e1e8 100644 --- a/guides/getting-started/set-up/indy-vdr.html +++ b/guides/getting-started/set-up/indy-vdr.html @@ -3,14 +3,14 @@ -Indy VDR | Credo - +Indy VDR | Credo +
Version: v0.4.x

Indy VDR

Hyperledger Indy VDR, Verifiable Data Registry, can be used to connect to one or more Indy Node ledger pools given sets of genesis transactions. Methods are provided to construct ledger requests and send them to the validators, collecting the results and ensuring that there is a consensus between the nodes. In the context of Aries Framework JavaScript, we mainly leverage it to register, and resolve, schemas, credential definitions and DIDs.

caution

Support for Indy VDR in Aries Framework JavaScript is currently experimental. We recommend new projects to use Indy VDR from the start, and also to migrate existing projects to Indy VDR, from the indy-sdk. However, projects may experience some issues. If you encounter any issues, please open an issue.

Currently, there are few limitations to using Indy VDR.

  • When running in Node.JS, only Node.JS 18 is supported for now. See Supported Node.JS versions for Indy VDR
  • Install scripts rely on bash command substitution to get the proper binaries for each system architecture and platform. Therefore, if you are under Windows, you must configure npm or yarn to use a bash-compliant shell (e.g. npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe")

Installing Indy VDR

When using Aries Framework JavaScript with Indy VDR, there are a few extra dependencies that need to be installed. We need to install the @hyperledger/indy-vdr, which contains all the functionality to register objects on an Hyperledger Indy VDR. Secondly, we need to add native bindings for the specific platform @hyperledger/indy-vdr-<platform>. Currently there are bindings for Node.JS, as @hyperledger/indy-vdr-nodejs, and React Native as @hyperlegder/indy-vdr-react-native.

yarn add @aries-framework/indy-vdr@^0.4.0 @hyperledger/indy-vdr-nodejs@^0.1.0

Adding Indy VDR to the agent

After installing the dependencies, we can register the Indy VDR module on the agent.

import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'

import { IndyVdrAnonCredsRegistry, IndyVdrModule } from '@aries-framework/indy-vdr'
import { indyVdr } from '@hyperledger/indy-vdr-nodejs'
import { AnonCredsModule } from '@aries-framework/anoncreds'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: '<genesis_transactions>',
connectOnStartup: true,
},
],
}),
anoncreds: new AnonCredsModule({
registries: [new IndyVdrAnonCredsRegistry()],
}),
// Indy VDR can optionally be used with Askar as wallet and storage implementation
askar: new AskarModule({
ariesAskar,
}),
},
})

Configuration

As you can see below, the Indy VDR module takes the native bindings and a list of networks. This list of networks will be used to resolve and register objects on.

import { indyVdr } from '@hyperledger/indy-vdr-nodejs'
import { IndyVdrModule } from '@aries-framework/indy-vdr'

const modules = {
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
indyNamespace: 'bcovrin:test',
isProduction: false,
genesisTransactions: '<genesis_transactions>',
connectOnStartup: true,
},
],
}),
}

indyVdr

Type: IndyVdr

the indyVdr key takes a class that implements all the native bindings for Indy VDR. This can be imoprted from the @hyperledger/indy-vdr-nodejs package or the @hyperledger/indy-vdr-react-native package.

networks

Type: IndyVdrPoolConfig[]

An array of indy networks to connect to. The list can contain the following object and it must genesisTransactions.

indyNamespace

Type: string

The Indy namespace aka the name identifying the name of the network connecting to. See also indy did method identifiers

isProduction

Type: boolean

Whether the ledger is a production ledger. This is used for detecting which ledger to use in case of unqualified identifiers as production ledgers have priority.

genesisTransactions

Type: string

Stringified JSON object of the transaction.

connectOnStartup

Type: boolean

Whether to connect to the ledger on startup. Defaults to false.

transactionAuthorAgreement

Type: TransactionAuthorAgreement

JSON representation specifying the version and acceptance mechanism. The version is the unique version of the transaction author agreement acceptance mechanism list (AML). The acceptance mechanism refers to the acceptance mechanism label of the item in the AML. For more details you may consult the indy-node docs on AML

transactionAuthorAgreement.version

Type: string

The version of the AML acceptance mechanism. This is a string representation of a version number e.g. '1' or '1.4'

transactionAuthorAgreement.acceptanceMechanism

Type: string

The acceptance mechanism to choose. This must be one of the available labels of the acceptance mechanisms key-value pairs in the AML e.g. 'EULA'.

Supported Node.JS versions for Indy VDR

Due to an issue in ref-napi (which is used in the Node.JS bindings for Indy VDR), performance for Indy VDR in Node.JS is not as expected. A patched version for ref-napi has been published that fixes this issue, but this only works in Node.JS 18+.

To use Indy VDR in Node.JS, make sure you're using Node.JS 18 and patch the ref-napi package to point towards @2060.io/ref-napi in your package.json:

Using NPM overrides we can point the ref-napi package to @2060.io/ref-napi.

{
"overrides": {
"ref-napi": "npm:@2060.io/ref-napi"
}
}
- + \ No newline at end of file diff --git a/guides/tutorials.html b/guides/tutorials.html index fbf424d7..7bd350fd 100644 --- a/guides/tutorials.html +++ b/guides/tutorials.html @@ -3,8 +3,8 @@ -Tutorials | Credo - +Tutorials | Credo + @@ -12,7 +12,7 @@
- + \ No newline at end of file diff --git a/guides/tutorials/agent-config.html b/guides/tutorials/agent-config.html index 5837d45a..475cbd36 100644 --- a/guides/tutorials/agent-config.html +++ b/guides/tutorials/agent-config.html @@ -3,8 +3,8 @@ -Agent Config | Credo - +Agent Config | Credo + @@ -42,7 +42,7 @@ this. It MUST not be used got any base of authenticity.

Type: string

example
connectionImageUrl: 'https://picsum.photos/200'

autoUpdateStorageOnStartup

Whether the storage should automatically be updated when a newer version of Aries Framework JavaScript is used.

Type: boolean

Default: false

example
autoUpdateStorageOnStartup: true

- + \ No newline at end of file diff --git a/guides/tutorials/agent-config/logging.html b/guides/tutorials/agent-config/logging.html index abf69808..1ee3302b 100644 --- a/guides/tutorials/agent-config/logging.html +++ b/guides/tutorials/agent-config/logging.html @@ -3,15 +3,15 @@ -Logging | Credo - +Logging | Credo +
Version: v0.4.x

Logging

Using the Default ConsoleLogger

To enable logging inside the framework a logger must be passed to the agent config. A simple ConsoleLogger can be imported from the framework.

import type { InitConfig } from '@aries-framework/core'
import { ConsoleLogger, LogLevel } from '@aries-framework/core'

const agentConfig: InitConfig = {
// ... other config properties ...
logger: new ConsoleLogger(LogLevel.info),
}

Creating your own Logger

For more advanced use cases the Logger interface can be implemented. See the example below.

import { Logger, LogLevel } from '@aries-framework/core'

class MyCustomLogger implements Logger {
public logLevel: LogLevel

public constructor(logLevel: LogLevel = LogLevel.off) {
this.logLevel = logLevel
}

public test(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public trace(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public debug(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public info(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public warn(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public error(message: string, data?: Record<string, any>): void {
console.log(message, data)
}

public fatal(message: string, data?: Record<string, any>): void {
console.log(message, data)
}
}

Indy Logs

To enable logging in the underlying Rust framework, either setLogger or setDefaultLogger must be called on the indy dependency, as seen here.

caution

The setLogger and setDefaultLogger methods have only been implemented in the Node.JS wrapper of the indy sdk. This won't work when importing from @aries-framework/react-native

The easiest way to do this from AFJ is through the indy property of agentDependencies.

import { agentDependencies } from '@aries-framework/node'
agentDependencies.indy.setDefaultLogger('trace')

// OR

agentDependencies.indy.setLogger((level, target, message, modulePath, file, line) => {
console.log('libindy said:', level, target, message, modulePath, file, line)
})

WARNING: You can only set the logger once. Call indy_set_default_logger, indy_set_logger, not both. Once it's been set, libindy won't let you change it.

You can also set the environment variable RUST_LOG to log at specified log levels. See https://crates.io/crates/env_logger for more information.

- + \ No newline at end of file diff --git a/guides/tutorials/cheqd.html b/guides/tutorials/cheqd.html index f36e0c3c..a5964c00 100644 --- a/guides/tutorials/cheqd.html +++ b/guides/tutorials/cheqd.html @@ -3,14 +3,14 @@ -Cheqd Did Module | Credo - +Cheqd Did Module | Credo +
Version: v0.4.x

Cheqd Did Module

In this tutorial we will see how to use the cheqd modules in detail

info

This section assumes that

  1. You have set-up your develoment environment.
  2. You have setup the cheqd module setup cheqd

DID Module

The cheqd DID module facilitates the Create, Read, Update, and Delete (CRUD) operations for did:cheqd identifiers. To learn more about "did:cheqd," please refer to the specification

Create DID

The DID can be created in two different ways

Parameters

  1. method*: cheqd
  2. secret
  3. options*
  4. didDocument
Option 1

Provide a DID Document payload according to the w3c did core specification in the request body. This is possible when the keys corresponding to the verification methods provided in the DID Document are already created in the wallet


// create a key pair
const key = await agent.wallet.createKey({
keyType: KeyType.Ed25519,
})

// encode public key according to the verification method
const ed25519PublicKeyBase58 = key.publicKeyBase58

// Create a DID
await agent.dids.create<CheqdDidCreateOptions>({
method: 'cheqd',
secret: {},
options: {
network: 'testnet',
},
didDocument: new DidDocument({
id: 'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d',
controller: ['did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d'],
verificationMethod: [
{
id: 'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d#key-1',
type: 'Ed25519VerificationKey2018',
controller: 'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d',
publicKeyBase58: ed25519PublicKeyBase58,
},
],
authentication: ['did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d#key-1'],
}),
})
Option 2

If a DID Document is not passed to the registrar, it requires the secret parameter with a verificationMethod to construct the DID Document.

await agent.dids.create({
method: 'cheqd',
// the secret contains a the verification method type and id
secret: {
verificationMethod: {
id: 'key-1',
type: 'Ed25519VerificationKey2020',
},
},
// an optional methodSpecificIdAlgo parameter
options: {
network: 'testnet',
methodSpecificIdAlgo: 'uuid',
},
})

Update DID

To update a DID Document, fetch the body of the DID Document you want to change from the DID Resolver, make the relevant updates and pass it as the parameter

Parameters

  1. did*
  2. didDocument*: The updated DID Document
  3. options
  4. secret
await agent.dids.update({
did: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
// Updates DID Document with an additional verification method if provided
secret: {
verificationMethod: {
id: 'key-2',
type: 'JsonWebKey2020',
},
},
didDocument: {
id: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
controller: ['did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411'],
verificationMethod: [
{
id: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411#key-1',
type: 'Ed25519VerificationKey2020',
controller: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
publicKeyMultibase: 'z6MknkzLUEP5cxqqsaysNMWoh8NJRb3YsowTCj2D6yhwyEdj',
},
],
authentication: ['did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411#key-1'],
// updates did document with a service block
service: [
new DidDocumentService({
id: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411#rand',
type: 'rand',
serviceEndpoint: 'https://rand.in',
}),
],
},
})

Deactivate DID

A DID can be deactivated, it can still be resolved

Parameters

  1. did*
  2. options
await agent.dids.deactivate({
did: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
// an optional versionId parameter
options: {
versionId: '3.0',
},
})

Types


secret.verificationMethod

Type: verificationMethod

verificationMethod.id*

Type: string

verificationMethod.type*

Type: string

Default: Ed25519VerificationKey2020

Members:

  1. Ed25519VerificationKey2020
  2. Ed25519VerificationKey2018
  3. JsonWebKey2020
verificationMethod.privateKey

Type: string


options.methodSpecificIdAlgo

Specifies what type of method specific identifier is needed for your DID

Type: string

Default: uuid

Members:

  1. uuid
  2. base58btc

options.network*

Specifies the cheqd network name to be published

Type: string

Default: testnet

Members:

  1. testnet
  2. mainnet

options.versionId

Specifies the version of the DID Document to be published

Type: string

- + \ No newline at end of file diff --git a/guides/tutorials/create-a-connection.html b/guides/tutorials/create-a-connection.html index e40dabcb..a47428c3 100644 --- a/guides/tutorials/create-a-connection.html +++ b/guides/tutorials/create-a-connection.html @@ -3,8 +3,8 @@ -Create a connection | Credo - +Create a connection | Credo + @@ -38,7 +38,7 @@ should be edited to fit your use case. The walletConfig.key must be changed as it can lead to other people knowing your "password" to your wallet.

import { AskarModule } from '@aries-framework/askar'
import {
Agent,
InitConfig,
ConnectionEventTypes,
ConnectionStateChangedEvent,
WsOutboundTransport,
HttpOutboundTransport,
DidExchangeState,
OutOfBandRecord,
ConnectionsModule,
} from '@aries-framework/core'
import { agentDependencies, HttpInboundTransport } from '@aries-framework/node'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'

const initializeBobAgent = async () => {
// Simple agent configuration. This sets some basic fields like the wallet
// configuration and the label. It also sets the mediator invitation url,
// because this is most likely required in a mobile environment.
const config: InitConfig = {
label: 'demo-agent-bob',
walletConfig: {
id: 'mainBob',
key: 'demoagentbob00000000000000000000',
},
}

// A new instance of an agent is created here
// Askar can also be replaced by the indy-sdk if required
const agent = new Agent({
config,
modules: {
askar: new AskarModule({ ariesAskar }),
connections: new ConnectionsModule({ autoAcceptConnections: true }),
},
dependencies: agentDependencies,
})

// Register a simple `WebSocket` outbound transport
agent.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
agent.registerOutboundTransport(new HttpOutboundTransport())

// Initialize the agent
await agent.initialize()

return agent
}

const initializeAcmeAgent = async () => {
// Simple agent configuration. This sets some basic fields like the wallet
// configuration and the label.
const config: InitConfig = {
label: 'demo-agent-acme',
walletConfig: {
id: 'mainAcme',
key: 'demoagentacme0000000000000000000',
},
endpoints: ['http://localhost:3001'],
}

// A new instance of an agent is created here
// Askar can also be replaced by the indy-sdk if required
const agent = new Agent({
config,
modules: {
askar: new AskarModule({ ariesAskar }),
connections: new ConnectionsModule({ autoAcceptConnections: true }),
},
dependencies: agentDependencies,
})

// Register a simple `WebSocket` outbound transport
agent.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
agent.registerOutboundTransport(new HttpOutboundTransport())

// Register a simple `Http` inbound transport
agent.registerInboundTransport(new HttpInboundTransport({ port: 3001 }))

// Initialize the agent
await agent.initialize()

return agent
}

const createNewInvitation = async (agent: Agent) => {
const outOfBandRecord = await agent.oob.createInvitation()

return {
invitationUrl: outOfBandRecord.outOfBandInvitation.toUrl({ domain: 'https://example.org' }),
outOfBandRecord,
}
}

const createLegacyInvitation = async (agent: Agent) => {
const { invitation } = await agent.oob.createLegacyInvitation()

return invitation.toUrl({ domain: 'https://example.org' })
}

const receiveInvitation = async (agent: Agent, invitationUrl: string) => {
const { outOfBandRecord } = await agent.oob.receiveInvitationFromUrl(invitationUrl)

return outOfBandRecord
}

const setupConnectionListener = (agent: Agent, outOfBandRecord: OutOfBandRecord, cb: (...args: any) => void) => {
agent.events.on<ConnectionStateChangedEvent>(ConnectionEventTypes.ConnectionStateChanged, ({ payload }) => {
if (payload.connectionRecord.outOfBandId !== outOfBandRecord.id) return
if (payload.connectionRecord.state === DidExchangeState.Completed) {
// the connection is now ready for usage in other protocols!
console.log(`Connection for out-of-band id ${outOfBandRecord.id} completed`)

// Custom business logic can be included here
// In this example we can send a basic message to the connection, but
// anything is possible
cb()

// We exit the flow
process.exit(0)
}
})
}


const run = async () => {
console.log('Initializing Bob agent...')
const bobAgent = await initializeBobAgent()
console.log('Initializing Acme agent...')
const acmeAgent = await initializeAcmeAgent()

console.log('Creating the invitation as Acme...')
const { outOfBandRecord, invitationUrl } = await createNewInvitation(acmeAgent)

console.log('Listening for connection changes...')
setupConnectionListener(acmeAgent, outOfBandRecord, () =>
console.log('We now have an active connection to use in the following tutorials')
)

console.log('Accepting the invitation as Bob...')
await receiveInvitation(bobAgent, invitationUrl)
}

export default run

void run()

Useful resources

- + \ No newline at end of file diff --git a/guides/tutorials/indy-sdk-postgres-database-nodejs.html b/guides/tutorials/indy-sdk-postgres-database-nodejs.html index af465b0e..56e81631 100644 --- a/guides/tutorials/indy-sdk-postgres-database-nodejs.html +++ b/guides/tutorials/indy-sdk-postgres-database-nodejs.html @@ -3,14 +3,14 @@ -Using PostgreSQL as Database for Indy SDK in Node.js | Credo - +Using PostgreSQL as Database for Indy SDK in Node.js | Credo +
Version: v0.4.x

Using PostgreSQL as Database for Indy SDK in Node.js

By default the Indy SDK will use an SQLite database for storage. In mobile environments this is sufficient and allows us to keep storage local to the device, but in server environments we oftentimes want a more scalable storage solution. By leveraging the PostgreSQL plugin for Indy SDK we can use PostgreSQL as a storage solution instead of SQLite.

This document describes the installation process of the Postgres plugin for IndySDK and how you need to configure AFJ to use it.

Installation of the Postgres Plugin

For installation of the Postgres plugin, please refer to the platform specific guides:

Using the Postgres Plugin in AFJ

import { Agent, InitConfig } from '@aries-framework/core'
import { IndySdkModule } from '@aries-framework/indy-sdk'
import {
agentDependencies,
IndySdkPostgresStorageConfig,
loadIndySdkPostgresPlugin,
IndySdkPostgresWalletScheme,
} from '@aries-framework/node'
import indySdk from 'indy-sdk'

// IndySdkPostgresStorageConfig defines interface for the Postgres plugin configuration.
const storageConfig = {
type: 'postgres_storage',
config: {
url: 'localhost:5432',
wallet_scheme: IndySdkPostgresWalletScheme.DatabasePerWallet,
},
credentials: {
account: 'postgres',
password: 'postgres',
admin_account: 'postgres',
admin_password: 'postgres',
},
} satisfies IndySdkPostgresStorageConfig

// load the postgres wallet plugin before agent initialization
loadIndySdkPostgresPlugin(storageConfig.config, storageConfig.credentials)

const agentConfig: InitConfig = {
label: 'My Agent',
// walletConfig.id and walletConfig.key are still required
walletConfig: {
id: 'walletId',
key: 'testKey0000000000000000000000000',
// storage is added and defines the postgres plugin configuration
storage: storageConfig,
},
}

const agent = new Agent({
config: agentConfig,
dependencies: agentDependencies,
modules: {
indySdk: new IndySdkModule({
indySdk,
}),
},
})
- + \ No newline at end of file diff --git a/guides/tutorials/indy-sdk-postgres-database-nodejs/linux.html b/guides/tutorials/indy-sdk-postgres-database-nodejs/linux.html index c45ed531..80905246 100644 --- a/guides/tutorials/indy-sdk-postgres-database-nodejs/linux.html +++ b/guides/tutorials/indy-sdk-postgres-database-nodejs/linux.html @@ -3,14 +3,14 @@ -Postgres Setup for Linux | Credo - +Postgres Setup for Linux | Credo +
Version: v0.4.x

Postgres Setup for Linux

Prerequisites

  • A system package manager (like APT, Pacman, etc.)
  • Cargo (We have to build Postgres plugin from source)
  • git (to clone a repo, could also be done with downloading the zip from the GitHub page)

Step 1: installing the dependencies using apt

Debian based (Ubuntu, Mint, Kali, Deepin, etc.)

sudo apt install libzmq3-dev libsodium-dev libssl-dev

Step 2: Build Postgres plugin

Building Postgres plugin from the indy-sdk repo with cargo.

Step 2.1: Cloning the indy-sdk

git clone https://github.com/hyperledger/indy-sdk.git

cd indy-sdk/experimental/plugins/postgres_storage

Step 2.2: Building Postgres plugin

If this step throws any errors, it might be because you miss some packages. Step 1 of this guide provided the dependencies that are required, but it also assumed that you have some basic development packages installed. If you are missing some packages, you can install them with your package manager.

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

cargo build --release

Step 2.3: Moving the file

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

sudo mv ./target/release/libindystrgpostgres.so /usr/local/lib/libindystrgpostgres.so
- + \ No newline at end of file diff --git a/guides/tutorials/indy-sdk-postgres-database-nodejs/macos.html b/guides/tutorials/indy-sdk-postgres-database-nodejs/macos.html index de3c635e..8a7d8749 100644 --- a/guides/tutorials/indy-sdk-postgres-database-nodejs/macos.html +++ b/guides/tutorials/indy-sdk-postgres-database-nodejs/macos.html @@ -3,14 +3,14 @@ -Postgres Setup for macOS | Credo - +Postgres Setup for macOS | Credo +
Version: v0.4.x

Postgres Setup for macOS

Prerequisites

  • Homebrew
  • Cargo (We have to build Postgres plugin from source)
  • git (to clone a repo, could also be done with downloading the zip from the GitHub page)

Step 1: installing the dependencies using brew

brew install libsodium zeromq

Step 2: Build Postgres plugin

Building Postgres plugin from the indy-sdk repo with cargo.

Step 2.1: Cloning the indy-sdk

git clone https://github.com/hyperledger/indy-sdk.git

cd indy-sdk/experimental/plugins/postgres_storage

Step 2.2: Building Postgres plugin

If this step throws any errors, it might be because you miss some packages. Step 1 of this guide provided the dependencies that are required, but it also assumed that you have some basic development packages installed. If you are missing some packages, you can install them with your package manager.

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

cargo build --release

Step 2.3: Moving the file

pwd

# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage

sudo mv ./target/release/libindystrgpostgres.dylib /usr/local/lib/libindystrgpostgres.dylib
- + \ No newline at end of file diff --git a/guides/tutorials/indy-sdk-postgres-database-nodejs/windows.html b/guides/tutorials/indy-sdk-postgres-database-nodejs/windows.html index 4b5dff16..84942275 100644 --- a/guides/tutorials/indy-sdk-postgres-database-nodejs/windows.html +++ b/guides/tutorials/indy-sdk-postgres-database-nodejs/windows.html @@ -3,14 +3,14 @@ -Postgres Setup for windows | Credo - +Postgres Setup for windows | Credo +
Version: v0.4.x

Postgres Setup for windows

Build Environment Prerequisites

  1. Download and install Visual Studio Community Edition 2022
  2. Install git for windows
  3. Download rust for windows here
  4. Make sure you have already setup libindy for windows from here

Step 1: Getting dependencies

  • Download the prebuilt dependencies here
  • Extract them
  • Point path to this directory using environment variables:
    • set INDY_PREBUILT_DEPS_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set INDY_CRYPTO_PREBUILT_DEPS_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set MILAGRO_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set LIBZMQ_PREFIX=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set SODIUM_LIB_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set OPENSSL_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps
    • set PATH=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps\lib

Step 2: Build Postgres plugin

Building Postgres plugin from the indy-sdk repo with cargo.

Step 2.1: Cloning the indy-sdk

git clone https://github.com/hyperledger/indy-sdk.git

cd indy-sdk\experimental\plugins\postgres_storage

Step 2.2: Building Postgres plugin

If this step throws any errors, it might be because of the environment. Step 1 of this guide provided the dependencies that are required.

cargo build --release --target x86_64-pc-windows-msvc

The library indystrgpostgres.dll file will be located at indy-sdk\experimental\plugins\postgres_storage\target\x86_64-pc-windows-msvc\release

Step 2.3: Setting the file to PATH

  • set LIB_INDY_STRG_POSTGRES=C:\Users\{WINDOWS_USER}\Downloads\indy-sdklexperimental\plugins\postgres_storage\target\x86_64-pc-windows-msvc\release

or Alternatively you can copy the indystrgpostgres.dll file to c:\\windows\\system32\\

- + \ No newline at end of file diff --git a/guides/tutorials/issue-a-credential.html b/guides/tutorials/issue-a-credential.html index d0613457..54235314 100644 --- a/guides/tutorials/issue-a-credential.html +++ b/guides/tutorials/issue-a-credential.html @@ -3,14 +3,14 @@ -Issue a credential | Credo - +Issue a credential | Credo +
Version: v0.4.x

Issue a credential

In this tutorial we will issue a credential from the Issuer to a Holder. We will start with setting up both their agents with the minimal configuration required to follow this tutorial. It is assumed that there is a connection between the Issuer and the Holder and the Issuer also has a registered schema and credential definition. After initializing the Issuer will send a credential to the holder, and will then accept this credential and automatically store it in their wallet.

Using AnonCreds and the Issue Credential V2 Protocol or the Issue Credential V1 Protocol.

info

This section assumes that

  1. You have set-up your develoment environment.
  2. You have basic knowledge of the required fields in the Agent Config
  3. You have completed the Create a Connection tutorial
  4. You have a registered schema and credential definition. This can be done by following the Registering on a AnonCreds Registry

1. Setting up the agents

First for both agents we must setup and initialize an agent to work with. Depending on your target, React Native or Node.js, it might vary.

In this tutorial the Holder will be in a Node.js environment and the Issuer also in a Node.js environment.

Issuer

For the Issuer the setup is commonly not the same as the Holder. In the example they both live in a server environment, meaning they do not need a mediator. More commonly, the Holder is in a mobile environment where a mediator is required for receiving DIDComm messages.

It is also very important for the Issuer to have a public DID, for the binding with a credential definition, amongst other things. For this demo we will use BCovrin Test. If you want to follow this tutorial, you have to register a public DID here via the Wallet seed field (this must be the same as the seed inside the config under the key publicDidSeed).

In order to reach the Issuer we have to add a list of endpoints of the agent that exposes the inboundTransport to the public. In the example below we add an inboundTransport and use port 3002. For development purposes it is recommended to use a tunneling service for this, like Ngrok. Ngrok will allow you to reach your locally exposed endpoint from the public. If a tunneling service is used, make sure to use the HTTPS variant as mobile environments, by default, do not accept HTTP anymore.

To install Ngrok and expose the port to the public the following commands can be used:

yarn global add ngrok

ngrok http <PORT>
📄issuer
const issuer = new Agent({
config: issuerConfig,
dependencies: agentDependencies,
modules: {
askar: new AskarModule({
ariesAskar,
}),
anoncredsRs: new AnonCredsRsModule({
anoncreds,
}),
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: '<genesis transaction>',
connectOnStartup: true,
},
],
}),
anoncreds: new AnonCredsModule({
registries: [new IndyVdrAnonCredsRegistry()],
}),
dids: new DidsModule({
registrars: [new IndyVdrIndyDidRegistrar()],
resolvers: [new IndyVdrIndyDidResolver()],
}),
credentials: new CredentialsModule({
credentialProtocols: [
new V2CredentialProtocol({
credentialFormats: [new LegacyIndyCredentialFormatService(), new AnonCredsCredentialFormatService()],
}),
],
}),
},
})

// Register a simple `WebSocket` outbound transport
issuer.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
issuer.registerOutboundTransport(new HttpOutboundTransport())

// Register a simple `Http` inbound transport
issuer.registerInboundTransport(new HttpInboundTransport({ port: 3002 }))

Holder

For the Holder we need to setup a basic agent with a wallet, mediator, outbound transport and a ledger.

If you want to follow this tutorial in a mobile environment:

  1. Use the agentDependencies from @aries-framework/react-native
  2. It is very important to note that mobile agents do not support HTTP by default. It is recommended to do everything over HTTPS, but for development HTTP can be enabled for iOS and Android.
🗄holder
const holder = new Agent({
config: holderConfig,
dependencies: agentDependencies,
modules: {
askar: new AskarModule({
ariesAskar,
}),
anoncredsRs: new AnonCredsRsModule({
anoncreds,
}),
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: '<genesis transaction>',
connectOnStartup: true,
},
],
}),
anoncreds: new AnonCredsModule({
registries: [new IndyVdrAnonCredsRegistry()],
}),
dids: new DidsModule({
resolvers: [new IndyVdrIndyDidResolver()],
}),
credentials: new CredentialsModule({
credentialProtocols: [
new V2CredentialProtocol({
credentialFormats: [new LegacyIndyCredentialFormatService(), new AnonCredsCredentialFormatService()],
}),
],
}),
},
})

// Register a simple `WebSocket` outbound transport
holder.registerOutboundTransport(new WsOutboundTransport())

// Register a simple `Http` outbound transport
holder.registerOutboundTransport(new HttpOutboundTransport())

// Register a simple `Http` inbound transport
holder.registerInboundTransport(new HttpInboundTransport({ port: 3002 }))

3. Listening for incoming credentials

When we want to accept a credential, we have to listen to incoming credentials and handle accordingly. In this example we do not have any user interaction, but is likely that your application would have a user-interface which would display the credential. When receiving a credential offer you can get the values from credentialExchangeRecord.credentialAttributes.

🗄holder
holder.events.on<CredentialStateChangedEvent>(CredentialEventTypes.CredentialStateChanged, async ({ payload }) => {
switch (payload.credentialRecord.state) {
case CredentialState.OfferReceived:
console.log('received a credential')
// custom logic here
await holder.credentials.acceptOffer({ credentialRecordId: payload.credentialRecord.id })
case CredentialState.Done:
console.log(`Credential for credential id ${payload.credentialRecord.id} is accepted`)
// For demo purposes we exit the program here.
process.exit(0)
}
})

4. Issuing a credential

Now that everything is setup on both sides, the Issuer can now offer a credential to the Holder.

In this example we do not instantiate a connection and assume that there is one. Please refer to this guide Create a connection to get a connection and connectionId.

📄issuer
const indyCredentialExchangeRecord = await issuer.credentials.offerCredential({
protocolVersion: 'v2',
connectionId: '<connection id>',
credentialFormats: {
indy: {
credentialDefinitionId: '<credential definition id>',
attributes: [
{ name: 'name', value: 'Jane Doe' },
{ name: 'age', value: '23' },
],
},
},
})

Useful resources

- + \ No newline at end of file diff --git a/guides/tutorials/mediation.html b/guides/tutorials/mediation.html index 6f2cc621..c5dd4fc8 100644 --- a/guides/tutorials/mediation.html +++ b/guides/tutorials/mediation.html @@ -3,8 +3,8 @@ -Mediation | Credo - +Mediation | Credo + @@ -13,7 +13,7 @@ config

The agent setup varies depending on your target environment, React Native or Node.js.
This tutorial assumes a Node.js environment for all agents (Alice, Bob, Meditator).

This tutorial shows how to set up a mediator, how to configure an agent to use a mediator, and how agents exchange messages with a mediator in place. Concepts are explained in isolation:

  • First, it is shown how to set up a mediator.
  • Second, it is demonstrated how to use a mediator.
  • Third, the message exchange between agents with a mediator in place is explained.

What is a mediator, and Why should I use one?

A mediator is just a special type of agent.

info

"When we describe agent-to-agent communication, it is convenient to think of an interaction only in terms of Alice and Bob and their agents. We say things like: "Alice's agent sends a message to Bob's agent" -- or perhaps "Alice's edge agent sends a message to Bob's cloud agent, which forwards it to Bob's edge agent".

Such statements adopt a useful level of abstraction--one that's highly recommended for most discussions. However, they make a number of simplifications. By modeling the roles of mediators and relays in routing, we can support routes that use multiple transports, routes that are not fully known (or knowable) to the sender, routes that pass through mix networks, and other advanced and powerful concepts."Aries RFC 0046: Mediators and Relays

A practical example where the use of mediators is beneficial can be found in a mobile environment. A mobile agent, aka. your mobile wallet, receives messages from other agents. Technically, sending HTTP messages to a mobile agent is impossible because the agent does not have a public IP. As you have probably seen in previous examples, a workaround for this scenario is to use ngrok. Another option is to use a mediator. When an agent is configured to use a mediator, messages to that agent are routed through the mediator and from there to its destination. Thus, a mobile agent can use a "public" mediator to receive messages on its behalf and poll them from time to time.

This is just one example of how a mediator can be used. Further resources about mediators can be found here.

tip

With mediators, WebSockets come in handy. In a production environment, it is recommendable to register a WsInboundTransport() for Alice and a WsOutboundTransport() for the mediator. These WebSocket transports allow the mediator to push messages to Alice instead of having Alice pull messages from the mediator repeatedly.

1. Mediator setup

The first part shows how to set up a mediator agent. Generally, there are two ways to do that: deploying it from scratch or using a third-party mediator. This section focuses on the former approach, setting up the mediator from scratch.

The mediator is set up on port 3001 and creates an Out-of-Band invitation that allows multiple other agents to connect to the mediator. Configuring an agent as a mediator demands utilizing the MediatorModule. In this example, the autoAcceptMediationRequests flag is set to true to accept mediation requests automatically.

const name = 'mediator'
const port = 3001

const agentConfig: InitConfig = {
label: `Aries Framework JavaScript ${name}`,
walletConfig: {
id: name,
key: name,
},
endpoints: [`http://localhost:${port}`],
}

const mediator = new Agent({
config: agentConfig,
dependencies: agentDependencies,
modules: {
indySdk: new IndySdkModule({ indySdk }),
mediator: new MediatorModule({
autoAcceptMediationRequests: true,
}),
connections: new ConnectionsModule({
autoAcceptConnections: true,
}),
},
})

mediator.registerOutboundTransport(new HttpOutboundTransport())
mediator.registerInboundTransport(new HttpInboundTransport({ port }))

await mediator.initialize()
const mediatorOutOfBandRecord = await mediator.oob.createInvitation({ multiUseInvitation: true })

const mediatiorInvitationUrl = mediatorOutOfBandRecord.outOfBandInvitation.toUrl({
domain: `http://localhost:${port}`,
})
console.log(mediatiorInvitationUrl)

2. Recipient (Alice) setup

The second part shows how to use a mediator. Becoming a recipient of a mediator requires using the MediationRecipientModule. The setup is the same whether you use your own or a third-party mediator.

The easiest way to set everything up is by configuring the MediationRecipientModule to connect to the mediator on agent startup. This can be done by constructing the module with the mediatorInvitationUrl. You can get the mediatorInvitationUrl either from part one by running a mediator yourself or from a public mediator such as the Animo-mediator. The following snippet uses the latter approach.

The ConnectionsModule used in this snippet serves the sole purpose of automatically accepting connections and thus simplifying setup.

const name = 'alice'

// paste your invitation url here
// or use the current invitation-url to connect to the public animo-mediator.
const mediatorInvitationUrl =
'https://mediator.dev.animo.id/invite?oob=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvb3V0LW9mLWJhbmQvMS4xL2ludml0YXRpb24iLCJAaWQiOiIyMDc1MDM4YS05ZGU3LTRiODItYWUxYi1jNzBmNDg4MjYzYTciLCJsYWJlbCI6IkFuaW1vIE1lZGlhdG9yIiwiYWNjZXB0IjpbImRpZGNvbW0vYWlwMSIsImRpZGNvbW0vYWlwMjtlbnY9cmZjMTkiXSwiaGFuZHNoYWtlX3Byb3RvY29scyI6WyJodHRwczovL2RpZGNvbW0ub3JnL2RpZGV4Y2hhbmdlLzEuMCIsImh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wIl0sInNlcnZpY2VzIjpbeyJpZCI6IiNpbmxpbmUtMCIsInNlcnZpY2VFbmRwb2ludCI6Imh0dHBzOi8vbWVkaWF0b3IuZGV2LmFuaW1vLmlkIiwidHlwZSI6ImRpZC1jb21tdW5pY2F0aW9uIiwicmVjaXBpZW50S2V5cyI6WyJkaWQ6a2V5Ono2TWtvSG9RTUphdU5VUE5OV1pQcEw3RGs1SzNtQ0NDMlBpNDJGY3FwR25iampMcSJdLCJyb3V0aW5nS2V5cyI6W119LHsiaWQiOiIjaW5saW5lLTEiLCJzZXJ2aWNlRW5kcG9pbnQiOiJ3c3M6Ly9tZWRpYXRvci5kZXYuYW5pbW8uaWQiLCJ0eXBlIjoiZGlkLWNvbW11bmljYXRpb24iLCJyZWNpcGllbnRLZXlzIjpbImRpZDprZXk6ejZNa29Ib1FNSmF1TlVQTk5XWlBwTDdEazVLM21DQ0MyUGk0MkZjcXBHbmJqakxxIl0sInJvdXRpbmdLZXlzIjpbXX1dfQ'

const agentConfig: InitConfig = {
label: `Aries Framework JavaScript ${name}`,
walletConfig: {
id: name,
key: name,
},
logger: new ConsoleLogger(LogLevel.trace),
}

const alice = new Agent({
config: agentConfig,
dependencies: agentDependencies,
modules: {
mediationRecipient: new MediationRecipientModule({
mediatorInvitationUrl,
}),
indySdk: new IndySdkModule({ indySdk }),
},
})

alice.registerOutboundTransport(new HttpOutboundTransport())
alice.registerOutboundTransport(new WsOutboundTransport())

await alice.initialize()
info

In case you are using a third-party mediator and cannot create an invitationUrl, it is common practice for mediators to provide an endpoint from which the invitationUrl can be fetched.

3. Message exchange

This section explains the message exchange between agents when a mediator is in place. The process is illustrated using the diagram below. Parts one and two of this tutorial showed how to set up and use a mediator. If the mediatorInvitationUrl is specified when constructing the MediationRecipientModule (as in Part two), the mediation request and grant (1-2) between Alice and the mediator will be performed automatically when Alice's agent is started.

If Alice establishes a connection with another fictional agent, say, Bob's agent, who is not using any mediators (3-6). (Connection establishment is no different when a mediator is involved). Then, messages from Alice to Bob (7) are routed directly to Bob, while messages from Bob to Alice (8-9) are routed through the intermediary.

Useful resources

For more information about mediator refer to:

- + \ No newline at end of file diff --git a/guides/tutorials/registering-schema-and-credential-definition.html b/guides/tutorials/registering-schema-and-credential-definition.html index 7109ddf3..f6fef70b 100644 --- a/guides/tutorials/registering-schema-and-credential-definition.html +++ b/guides/tutorials/registering-schema-and-credential-definition.html @@ -3,14 +3,14 @@ -Registering a schema and credential definition on an AnonCreds Registry | Credo - +Registering a schema and credential definition on an AnonCreds Registry | Credo +
Version: v0.4.x

Registering a schema and credential definition on an AnonCreds Registry

In this tutorial we will register a schema and credential definition on an AnonCredsRegistry e.g. Hyperledger Indy ledger indy-vdr, cheqd.

info

This section assumes that

  1. You have set-up your development environment.
  2. You have basic knowledge of the required fields in the Agent Config

1. Setting up the agent

First, an agent must be setup with a wallet and an indy-vdr or cheqd module. For these code examples, we will use a Node.js environment.

📄issuer
import { Agent } from '@aries-framework/core'
import { agentDependencies } from '@aries-framework/node'
import { AskarModule } from '@aries-framework/askar'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'
import {
IndyVdrAnonCredsRegistry,
IndyVdrIndyDidRegistrar,
IndyVdrIndyDidResolver,
IndyVdrModule,
} from '@aries-framework/indy-vdr'
import { indyVdr } from '@hyperledger/indy-vdr-nodejs'
import { AnonCredsModule } from '@aries-framework/anoncreds'
import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs'
import { anoncreds } from '@hyperledger/anoncreds-nodejs'
import {
CheqdAnonCredsRegistry,
CheqdDidRegistrar,
CheqdDidResolver,
CheqdModule,
CheqdModuleConfig,
} from '@aries-framework/cheqd'

const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
// Register the Askar module on the agent
// We do this to have access to a wallet
askar: new AskarModule({
ariesAskar,
}),
anoncredsRs: new AnonCredsRsModule({
anoncreds,
}),
indyVdr: new IndyVdrModule({
indyVdr,
networks: [
{
isProduction: false,
indyNamespace: 'bcovrin:test',
genesisTransactions: '<genesis transactions>',
connectOnStartup: true,
},
],
}),
cheqd: new CheqdModule(
new CheqdModuleConfig({
networks: [
{
network: '<mainnet or testnet>',
cosmosPayerSeed: '<cosmos payer seed or mnemonic>',
},
],
})
),
anoncreds: new AnonCredsModule({
registries: [new IndyVdrAnonCredsRegistry(), new CheqdAnonCredsRegistry()],
}),
dids: new DidsModule({
registrars: [new IndyVdrIndyDidRegistrar(), new CheqdDidRegistrar()],
resolvers: [new IndyVdrIndyDidResolver(), new CheqdDidResolver()],
}),
},
})

2. Importing a DID (optional)

info

There are many ledgers which can be used to register DIDs on for development.

Indy VDR

We recommend bcovrin test net. This network allows very easily to register a DID from a seed which can then be used as the privateKey in the snippet below. The seed is used as the private key for legacy compatibility with the Hyperledger Indy-SDK. The genesis transactions can also be retrieved for easy integration.

Cheqd

Follow the cheqd setup and cheqd DID module to setup the network and create a DID. Cheqd supports a mainnet for production and a testnet for development purposes.

In order to register a schema and credential definition, a DID must be added to the agent first. This can be done by calling agent.dids.create(), but this does require an endorser DID to be present as the submitterDid. For this tutorial a DID will already be registered on the ledger, but it will be imported, with the associated private key, to be used later when registering the schema and credential definition.

This section can be omitted if your agent already has a DID in its wallet.

📄issuer
const seed = TypedArrayEncoder.fromString(`<seed>`) // What you input on bcovrin. Should be kept secure in production!
const unqualifiedIndyDid = `<unqualifiedIndyDid>` // will be returned after registering seed on bcovrin
const indyDid = `did:indy:bcovrin:test:${unqualifiedIndyDid}`

const cheqdDid = await agent.dids.create({
method: 'cheqd',
secret: {
verificationMethod: {
id: 'key-1',
type: 'Ed25519VerificationKey2020',
},
},
options: {
network: 'testnet',
methodSpecificIdAlgo: 'uuid',
},
})

await agent.dids.import({
did: '<did>',
overwrite: true,
privateKeys: [
{
privateKey: seed,
keyType: KeyType.Ed25519,
},
],
})

3. Registering a schema

When you have a registered DID on a network and in your wallet, you can register a schema. Registering a schema requires four fields: issuerId, name, version and attrNames. It is important to note that the issuerId must be the same as a DID in your wallet.

📄issuer
const schemaResult = await agent.modules.anoncreds.registerSchema({
schema: {
attrNames: ['name'],
issuerId: '<did>',
name: 'Example Schema to register',
version: '1.0.0',
},
options: {},
})

if (schemaResult.schemaState.state === 'failed') {
throw new Error(`Error creating schema: ${schemaResult.schemaState.reason}`)
}

3. Registering a credential definition

After registering a schema, a credential definition can be registered based on the schema. The credential definition, amongst more things, binds the schema to a specific issuer. Schemas can be reused between issuers, but a credential definition is specific to an issuer. In a credential definition revocation can also be specified. This section will not go in-depth about revocation.

📄issuer
const credentialDefinitionResult = await agent.modules.anoncreds.registerCredentialDefinition({
credentialDefinition: {
tag: 'default',
issuerId: '<did>',
schemaId: schemaResult.schemaState.schemaId,
},
options: {},
})

if (credentialDefinitionResult.credentialDefinitionState.state === 'failed') {
throw new Error(
`Error creating credential definition: ${credentialDefinitionResult.credentialDefinitionState.reason}`
)
}

Using it

After everything is registered on a AnonCredsRegistry, we can use it to issue credentials. The next tutorial is all about issuing an AnonCreds credential with this setup.

Useful Resources

- + \ No newline at end of file diff --git a/guides/updating.html b/guides/updating.html index 82001cf4..58a4c066 100644 --- a/guides/updating.html +++ b/guides/updating.html @@ -3,14 +3,14 @@ -Updating AFJ | Credo - +Updating AFJ | Credo +
Version: v0.4.x

Updating AFJ

This section will cover everything you need to know about updating Aries Framework JavaScript to a newer version.

Versioning

Aries Framework JavaScript follows semantic versioning. This means that major version changes (1.0.0) are considered breaking changes. When features are added this is a minor version change (0.1.0). For bug fixes the patch version change is used (0.0.1).

While AFJ is still in pre-1.0.0 version, the version change types are shifted to the right. This means a major version change is now a minor change (0.1.0) and a minor change is now a patch change (0.0.1). This is done to keep the version below 1.0.0, indicating the framework is still in early development and users can expect more breaking changes that when the version has already reached 1.0.0.

This means if the second number in the version (0.1.0) changes, you need to be careful with updating and always consult this page for update instructions. If only the third number changes (0.0.1), you can update without any issues.

Types of breaking changes

Updates to AFJ bring new features and improvements to the framework. To better adapt the framework to new features we sometimes make breaking changes that will improve how AFJ works. There's two parts to updates with breaking changes:

  1. Breaking code changes
  2. Breaking storage changes

Breaking Code Changes

Breaking changes to code means changes to how you interact with AFJ. This includes methods being renamed, moved to another module or extended to better integrate with new features. We'll try to cover all breaking changes in migration guides, so you know exactly what is needed to update to a new version and keep the same functionality.

info

If you encounter any breaking changes that aren't mentioned in the migration docs, please open an issue in the Aries JavaScript Docs repository, or directly create a PR describing the change.

Breaking Storage Changes

Breaking changes to storage are a bit more complex to deal with. While breaking changes to code only require you to update your code once, breaking changes to storage needs to be updated for every agent instance. Luckily, we've made the migration as easy as possible for you using the Update Assistant. The Update Assistant will update all storage objects to the storage model that is expected by the newest version. If a version made changes to the storage, this will be explicitly mentioned in the migration guide. See the Update Assistant documentation for detailed instructions on how to use the update assistant.

Migration Guides

Currently the following migration guides are available:

- + \ No newline at end of file diff --git a/guides/updating/update-assistant.html b/guides/updating/update-assistant.html index 5ee07c29..245aa0b1 100644 --- a/guides/updating/update-assistant.html +++ b/guides/updating/update-assistant.html @@ -3,14 +3,14 @@ -Update Assistant | Credo - +Update Assistant | Credo +
Version: v0.4.x

Update Assistant

The Update Assistant helps you update the storage objects from AFJ to newer versions. This documents describes the different ways you can leverage the Update Assistant from fully managed to more manual approaches.

Update Strategies

There are three options on how to leverage the update assistant on agent startup:

  1. Manually instantiating the update assistant on agent startup
  2. Storing the agent storage version outside of the agent storage
  3. Automatically update on agent startup

Manually instantiating the update assistant on agent startup

When the version of the storage is stored inside the agent storage, it means we need to check if the agent needs to be updated on every agent startup. We'll initialize the update assistant and check whether the storage is up to date. The advantage of this approach is that you don't have to store anything yourself, and have full control over the workflow.

import { UpdateAssistant, Agent } from '@aries-framework/core'

// or @aries-framework/node
import { agentDependencies } from '@aries-framework/react-native'

// First create the agent
const agent = new Agent({
config,
dependencies: agentDependencies,
})

// Then initialize the update assistant with the update config
const updateAssistant = new UpdateAssistant(agent, {
v0_1ToV0_2: {
mediationRoleUpdateStrategy: 'allMediator',
},
})

// Initialize the update assistant so we can read the current storage version
// from the wallet. If you manually initialize the wallet you should do this _before_
// calling initialize on the update assistant
// await agent.wallet.initialize(walletConfig)
await updateAssistant.initialize()

// Check if the agent is up to date, if not call update
if (!(await updateAssistant.isUpToDate())) {
await updateAssistant.update()
}

// Once finished initialize the agent. You should do this on every launch of the agent
await agent.initialize()

Storing the agent storage version outside of the agent storage

When the version of the storage is stored outside of the agent storage, you don't have to initialize the UpdateAssistant on every agent agent startup. You can just check if the storage version is up to date and instantiate the UpdateAssistant if not. The advantage of this approach is that you don't have to instantiate the UpdateAssistant on every agent startup, but this does mean that you have to store the storage version yourself.

When a wallet has been exported and later imported you don't always have the latest version available. If this is the case you can always rely on Method 1 or 2 for updating the wallet, and storing the version yourself afterwards. You can also get the current version by calling await updateAssistant.getCurrentAgentStorageVersion(). Do note the UpdateAssistant needs to be initialized before calling this method.

import { UpdateAssistant, Agent } from '@aries-framework/core'

// or @aries-framework/node
import { agentDependencies } from '@aries-framework/react-native'

// The storage version will normally be stored in e.g. persistent storage on a mobile device
let currentStorageVersion: VersionString = '0.1'

// First create the agent
const agent = new Agent({
config,
dependencies: agentDependencies,
})

// We only initialize the update assistant if our stored version is not equal
// to the frameworkStorageVersion of the UpdateAssistant. The advantage of this
// is that we don't have to initialize the UpdateAssistant to retrieve the current
// storage version.
if (currentStorageVersion !== UpdateAssistant.frameworkStorageVersion) {
const updateAssistant = new UpdateAssistant(agent, {
v0_1ToV0_2: {
mediationRoleUpdateStrategy: 'recipientIfEndpoint',
},
})

// Same as with the previous strategy, if you normally call agent.wallet.initialize() manually
// you need to call this before calling updateAssistant.initialize()
await updateAssistant.initialize()

await updateAssistant.update()

// Store the version so we can leverage it during the next agent startup and don't have
// to initialize the update assistant again until a new version is released
currentStorageVersion = UpdateAssistant.frameworkStorageVersion
}

// Once finished initialize the agent. You should do this on every launch of the agent
await agent.initialize()

Automatically update on agent startup

This is by far the easiest way to update the agent, but has the least amount of flexibility and is not configurable. This means you will have to use the default update options to update the agent storage. You can find the default update config in the respective version migration guides (e.g. in 0.1-to-0.2).

import { UpdateAssistant, Agent } from '@aries-framework/core'

// or @aries-framework/node
import { agentDependencies } from '@aries-framework/react-native'

// First create the agent, setting the autoUpdateStorageOnStartup option to true
const agent = new Agent({
config: {
...config,
autoUpdateStorageOnStartup: true,
},
dependencies: agentDependencies,
})

// Then we call initialize, which under the hood will call the update assistant if the storage is not update to date.
await agent.initialize()

Backups

Before starting the update, the update assistant will automatically create a backup of the wallet. If the migration succeeds the backup won't be used. If the backup fails, another backup will be made of the migrated wallet, after which the backup will be restored.

The backups can be found at the following locations. The backupIdentifier is generated at the start of the update process and generated based on the current timestamp.

  • Backup path: ${agent.config.fileSystem.basePath}/afj/migration/backup/${backupIdentifier}
  • Migration backup: ${agent.config.fileSystem.basePath}/afj/migration/backup/${backupIdentifier}-error

In the future the backup assistant will make a number of improvements to the recovery process. Namely:

  • Do not throw an error if the update fails, but rather return an object that contains the status, and include the backup paths and backup identifiers.
- + \ No newline at end of file diff --git a/guides/updating/update-indy-sdk-to-askar.html b/guides/updating/update-indy-sdk-to-askar.html index e3415aba..94b725f9 100644 --- a/guides/updating/update-indy-sdk-to-askar.html +++ b/guides/updating/update-indy-sdk-to-askar.html @@ -3,14 +3,14 @@ -Migrating from an Indy SDK Wallet to Aries Askar | Credo - +Migrating from an Indy SDK Wallet to Aries Askar | Credo +
Version: v0.4.x

Migrating from an Indy SDK Wallet to Aries Askar

This documentation explains the process of migrating your Indy SDK wallet to Aries Askar.

danger

While the migration script technically works on node.js, it is strongly advised not to use it, yet. The migration of issuer records (such as Schemas and Credential Definitions) is not implemented yet. When a credential definition is detected it will revert the migration process and no harm is done.

caution

Postgres is not supported. If you are using postgres with Indy SDK and need to update to Aries Askar, please open an issue on GitHub.

caution

The migration script is supported to run on 0.3.x before migrating from 0.3.x to 0.4.x. Please refer to Migrating from AFJ 0.3.x to 0.4.x to get to 0.4.x afterwards.

It is important to note that this script must be ran before you update from 0.3.x to 0.4.x.

What does the migration do internally?

The migration script does the following to make sure everything is migrated properly, and if anything goes wrong, it will revert back to a working state.

Create a backup

Because undefined behavior might occur, we create a backup in the new tmp directory from Aries Framework JavaScript. if some error occurs, it will be reverted back to the backed-up state and if no error occurs, it will delete the backup from the temporary directory.

Migrate the database to an Aries Askar structure

The Indy-sdk and Aries Askar have different database structures. So first of all we need to change some table names, decrypt all the items with the old Indy keys, encrypt the items with the new Aries Askar keys and store them inside the new structure.

Try to open the wallet in the new Aries Askar structure

When the wallet is correctly transformed, the wallet will be attempted to be opened.

Update the keys

Aries Askar has a specific way to store keys and every key, defined by the category of Indy::Key will be migrated.

Update the DIDs

caution

This update script does not transform did records. This is fine for something like did:peer, but will cause issues with indy and sov DIDs. For more information, please check out the Migrating from AFJ 0.3.x to 0.4.x

Update the credential definitions

danger

Updating of credential definitions is not yet supported. This is why it is strongly advised not to run this script in a node.js environment.

The link secrets, identified by the category Indy::MasterSecret, are updated next. They are stored inside a new AnonCredsLinkSecretRecord.

caution

Since we have to set a default link secret, some additional logic is added to detect this. You can either supply a defaultLinkSercetId as a constructor parameter or it will be based on your walletId.

If there is no Indy record with the defaultLinkSecretId or the walletId, an error will be thrown and the migration will be restored.

Update the credentials

The credentials, identified by the category Indy::Credential are updated last. They are stored in the new AnonCredsCredentialRecord as a one-to-one copy. This means that they now support more tags and will make querying a lot easier.

All the other records

All the other records will be transferred without any updates as they are not Indy specific.

How to update

Updating does not require a lot of code, but must be done with caution.

It is very important to note that the migration script only has to be run once. If it runs for a second time, it will error saying that the database is already migrated. Also, when the migration is finished, it is common practice to store this state in your persistent app storage. This script does not provide a way to detect if an update has happened, so storing this value will prevent the script from running every time. For more information regarding this topic, please check out Update Assistant.

add the required dependencies:

yarn add @hyperledger/aries-askar-react-native @aries-framework/indy-sdk-to-askar-migration react-native-fs

Below is the minimal code required for the migration to work. It is recommended to turn the logger on as it gives a lot of information regarding the migration.

caution

The agent is not allowed to be initialized to run this script. This makes sure nothing else happens during the migration.

import { agentDependencies } from '@aries-framework/react-native'
import { AskarModule } from '@aries-framework/askar'
import { IndySdkToAskarMigrationUpdater } from '@aries-framework/indy-sdk-to-askar-migration'
import { ariesAskar } from '@hyperledger/aries-askar-react-native'

const oldAgent = new Agent({
config: {
/* ... */
},
modules: {
ariesAskar: new AskarModule({
ariesAskar,
}),
},
dependencies: agentDependencies,
})

const dbPath = '' // see section below

const updater = await IndySdkToAskarMigrationUpdater.initialize({ dbPath, agent })
await updater.update()

Getting the database path

Android

On android, the database is commonly located under the ExternalDirectoryPath.

If you did not follow the default indy-sdk for React Native setup, your path might differ. Check out step 5 of the Android setup for Indy SDK React Native for the default behavior.

import fs from 'react-native-fs'

const base = fs.ExternalDirectoryPath
const indyClient = '.indy_client'
const wallet = 'wallet'
const walletId = agent.config.walletConfig.id
const file = 'sqlite.db'

const dbPath = `${base}/${indyClient}/${wallet}/${walletId}/${file}`

iOS

On iOS, the database is commonly located under the DocumentDirectoryPath.

For iOS this can only change if your phone does not have the HOME environment variable set. This is not usual behavior, and if HOME is not set, the base in the code section below will be /home/indy/Documents.

import fs from 'react-native-fs'

const base = fs.DocumentDirectoryPath
const indyClient = '.indy_client'
const wallet = 'wallet'
const walletId = agent.config.walletConfig.id
const file = 'sqlite.db'

const dbPath = `${base}/${indyClient}/${wallet}/${walletId}/${file}`
- + \ No newline at end of file diff --git a/guides/updating/versions/0.1-to-0.2.html b/guides/updating/versions/0.1-to-0.2.html index 566ffc14..030656eb 100644 --- a/guides/updating/versions/0.1-to-0.2.html +++ b/guides/updating/versions/0.1-to-0.2.html @@ -3,8 +3,8 @@ -Migrating from AFJ 0.1.0 to 0.2.x | Credo - +Migrating from AFJ 0.1.0 to 0.2.x | Credo + @@ -12,7 +12,7 @@
Version: v0.4.x

Migrating from AFJ 0.1.0 to 0.2.x

This document describes everything you need to know for updating AFJ 0.1.0 to 0.2.x. If you're not aware of how updating in AFJ works make sure to first read the guide on Updating AFJ.

First of all, update you dependencies to the 0.2.x versions. This will also update the needed peer depedencnies. Extension packages are not updated with this command. You need to update these manually, and make sure they're up to date with the latest version of AFJ.

yarn add @aries-framework/react-native@^0.2.0 @aries-framework/core@^0.2.0 indy-sdk-react-native@^0.2.0

# or NPM
npn install @aries-framework/react-native@^0.2.0 @aries-framework/core@^0.2.0 indy-sdk-react-native@^0.2.0

Breaking Code Changes

This section will list all breaking changes made to the public API of AFJ between version 0.1.0 and 0.2.0.

info

If you have custom modules take into account there could be a lot more breaking changes that aren't documented here. We try to make sure that the biggest breaking changes to the internal API are also documented here (e.g. see Updating Custom Messages to the New Message Type Objects), but it is possible some breaking changes are not documented here (feel free to open PRs).

Credentials Module

Module API Updates

With the addition of the issue credential v2 protocol and the preparation for multiple attachment formats (to be added in a later release), we've made some big changes to the credentials module API. Most changes are related to structure, so updating your code to the new API should be straightforward.

Basically for all methods in the credential module you should take the following steps to update your code:

  1. Move all function parameters into a single object. All module methods now take a single object that contain all properties.
  2. For methods that initiate a protocol (starting from offer, proposal), you should pass protocolVersion: 'v1' to indicate we should use the v1 protocol. (v2 is also supported, but this focuses on the breaking changes, not the new features).
  3. All indy specific attributes (e.g. credentialDefinitionId) should be passed in the credentialFormats.indy object.
  4. The preview should now be passed as only the preview attributes (the the full preview) and provided in the credentialFormats.indy object.
await agent.credentials.offerCredential('connectionId', {
autoAcceptCredential: AutoAcceptCredential.Always,
comment: 'hello',

credentialDefinitionId: 'credentialDefinitionId',
preview: new CredentialPreview({
attributes: [new CredentialPreviewAttribute({ name: 'key', value: 'value' })],
}),
})

Data from Received Messages only Stored in Record after Accepting

Previously when we received a message from another connection we would store the relevant data from the exchange in the credential record. The values we would store were the credentialDefinitionId and schemaId in the credential metadata, and the credentialAttributes field.

Starting with AFJ 0.2.0 the values are not stored in the credential record until after the message content has been accepted (in the case of an offer this means after sending the request message). This is to avoid ambiguity of the values in the credential record. If I have sent a proposal and then receive an offer, should the credential record contain the values from the proposal or the values from the offer? The first one reflects our view on what the data should be, the second one reflects the latest data.

We decided to make the record properties always hold our view of what the data should be, and only update it after accepting the contents of a received message (either using auto accept, or by calling the acceptXXX methods on the credential module).

This is an important change and requires some updates to how you extract the relevant data from the offer (or other messages such the proposal). We've added a new getFormatData method on the credentials module that allows you to retrieve the attributes and format data for all messages in an exchange. One of the advantages of this approach is that we don't have to store all relevant data in the credential record anymore, which helps when adding new formats that don't match with the attributes used for indy credentials. In addition, the return value for this method is the same whether v1 or v2 of the protocol is used. This means your code should only care about the credential format (indy in this case) and doesn't have to worry about the protocol version.

agent.events.on<CredentialStateChangedEvent>(
CredentialEventTypes.CredentialStateChanged,
({ payload: { credentialRecord } }) => {
const indyCredentialMetadata = credentialRecord.metadata.get(CredentialMetadataKeys.IndyCredential)

// Get credential definition id, schema id and attributes from offer
const credentialDefinitionId = indyCredentialMetadata?.credentialDefinitionId
const schemaId = indyCredentialMetadata?.schemaId
const attributes = credentialRecord.credentialAttributes
}
)

Messages Extracted from Credential Record

The DIDComm messages that were previously stored on the credential record, have been extracted to separate DIDComm message records. This makes it easier to work with multiple versions of the protocol internally, and keeps the credential exchange record agnostic of the protocol version. Instead of accessing the messages through the proposalMessage, offerMessage, requestMessage and credentialMessage parameters, we now expose dedicated methods on the credentials module to retrieve the message.

With the addition of the v2 messages, all v1 messages have been prefixed with V1 while v2 messages have been prefixed with V2 (V1ProposeCredentialMessage and V2ProposeCredentialMessage). If you were using these messages classes throughout your codebase, update them to use the V1 prefix.

const credentialRecord = await agent.credentials.getById('credentialRecordId')

const proposalMessage = credentialRecord.proposalMessage
const offerMessage = credentialRecord.offerMessage
const requestMessage = credentialRecord.requestMessage
const credentialMessage = credentialRecord.credentialMessage

Connections Module

Version 0.2.0 added support for the Out of Band protocol with support for the DID Exchange protocol. Internally AFJ now uses out of band invitations for all connections, even if you're connecting using the old invitations from the Connection protocol.

Creating a Legacy Invitation

The createInvitation method on the connections module has been moved to the out of band module and renamed to createLegacyInvitation. The method is not planned to be removed in the near future, the legacy merely indicates this will create an RFC 0160 connection invitation. Internally AFJ creates an out of band invitation and transforms it into a legacy invitation. If you want to create an out of band invitation instead, you should use oob.createInvitation.

const { connectionRecord, invitation } = await agent.connections.createInvitation({
/* config */
})

const invitationUrl = invitation.toUrl({ domain: 'https://example.com' })

Receiving a Legacy Invitation

The receiveInvitation and receiveInvitationFromUrl methods on the connections module have also been moved to the out of band module. Both methods support the new out of band invitations and the legacy RFC 0160 connection invitations. Internally AFJ converts the old invitations to out of band invitations.

const invitationUrl = 'https://example.com?c_i=eyXXX'

// Receive invitation directly from url
const connectionRecord = await agent.connections.receiveInvitationFromUrl(invitationUrl, {
/* config */
})

// Parse invitation and receive invitation
const parsedInvitation = await ConnectionInvitationMessage.fromUrl(invitationUrl)
const connectionRecord = await agent.connections.receiveInvitation(parsedInvitation, {
/* config */
})

Updating to use DidExchangeState

The ConnectionState that was previously used for the state of the ConnectionRecord has been changed to use the DidExchangeState for both connections made using the RFC 0160 Connection Protocol, as well as the RFC 0023 DID Exchange Protocol.

The DidExchangeState has the following values:

  • DidExchangeState.Start,
  • DidExchangeState.InvitationSent,
  • DidExchangeState.InvitationReceived,
  • DidExchangeState.RequestSent,
  • DidExchangeState.RequestReceived,
  • DidExchangeState.ResponseSent,
  • DidExchangeState.ResponseReceived,
  • DidExchangeState.Abandoned,
  • DidExchangeState.Completed

If you still need to access the old ConnectionState you can do so by accessing the computed connectionRecord.rfc0160State property. This will return the old ConnectionState value.

Updating Custom Messages to the New Message Type Objects

Although this isn't a breaking change to the public API of the framework, it is something that you will need to take into account when creating custom modules. Starting from AFJ 0.2.0 we now support handling messages with different minor versions (e.g. receive a message with @type version 1.1 while we only support 1.0). With this change messages must now declare the message type as an ParsedMessageType object. We've added an parseMessageType util method that can help with this.

import { AgentMessage } from '@aries-framework/core'
import { Equals } from 'class-validator'

class MyMessage extends AgentMessage {
@Equals(MyMessage.type)
public readonly type = MyMessage.type
public static readonly type = 'https://didcomm.org/my-protocol/1.0/my-type'
}

Breaking Storage Changes

The 0.2.0 release is heavy on breaking changes to the storage format. This is not what we intend to do with every release. But as there's not that many people yet using the framework in production, and there were a lot of changes needed to keep the API straightforward, we decided to bundle a lot of breaking changes in this one release.

Below all breaking storage changes are explained in as much detail as possible. The update assistant provides all tools to migrate without a hassle, but it is important to know what has changed. All examples only show the keys that have changed, unrelated keys in records have been omitted.

See the Update Assistant documentation for a guide on how to use the update assistant.

The following config can be provided to the update assistant to migrate from 0.1.0 to 0.2.0:

{
"v0_1ToV0_2": {
"mediationRoleUpdateStrategy": "<mediationRoleUpdateStrategy>"
}
}

Credential Metadata

The credential record had a custom metadata property in pre-0.1.0 storage that contained the requestMetadata, schemaId and credentialDefinition properties. Later a generic metadata API was added that only allows objects to be stored. Therefore the properties were moved into a different structure.

{
"requestMetadata": <value of requestMetadata>,
"schemaId": "<value of schemaId>",
"credentialDefinitionId": "<value of credential definition id>"
}

Migrate Credential Record Properties

In 0.2.0 the v1 DIDComm messages have been moved out of the credential record into separate records using the DidCommMessageRepository. The migration scripts extracts all messages (proposalMessage, offerMessage, requestMessage, credentialMessage) and moves them into the DidCommMessageRepository.

With the addition of support for different protocol versions the credential record now stores the protocol version. With the addition of issue credential v2 support, other credential formats than indy can be used, and multiple credentials can be issued at once. To account for this the credentialId has been replaced by the credentials array. This is an array of objects containing the credentialRecordId and the credentialRecordType. For all current credentials the credentialRecordType will always be indy.

{
"credentialId": "09e46da9-a575-4909-b016-040e96c3c539",
"proposalMessage": { ... },
"offerMessage": { ... },
"requestMessage": { ... },
"credentialMessage": { ... },
}

Mediation Record Role

The role in the mediation record was always being set to MediationRole.Mediator for both mediators and recipients. This didn't cause any issues, but would return the wrong role for recipients.

In 0.2 a check is added to make sure the role of a mediation record matches with actions (e.g. a recipient can't grant mediation), which means it will throw an error if the role is not set correctly.

Because it's not always possible detect whether the role should actually be mediator or recipient, a number of configuration options are provided on how the role should be updated using the v0_1ToV0_2.mediationRoleUpdateStrategy option:

  • allMediator: The role is set to MediationRole.Mediator for both mediators and recipients
  • allRecipient: The role is set to MediationRole.Recipient for both mediators and recipients
  • recipientIfEndpoint (default): The role is set to MediationRole.Recipient if their is an endpoint configured on the record. The endpoint is not set when running as a mediator. There is one case where this could be problematic when the role should be recipient, if the mediation grant hasn't actually occurred (meaning the endpoint is not set). This is probably the best approach otherwise it is set to MediationRole.Mediator
  • doNotChange: The role is not changed

Most agents only act as either the role of mediator or recipient, in which case the allMediator or allRecipient configuration is the most appropriate. If your agent acts as both a recipient and mediator, the recipientIfEndpoint configuration is the most appropriate. The doNotChange options is not recommended and can lead to errors if the role is not set correctly.

Extracting Did Documents to Did Repository

The connection record previously stored both did documents from a connection in the connection record itself. Version 0.2.0 added a generic did storage that can be used for numerous usages, one of which is the storage of did documents for connection records.

The migration script extracts the did documents from the didDoc and theirDidDoc properties from the connection record, updates them to did documents compliant with the did core spec, and stores them in the did repository. By doing so it also updates the unqualified dids in the did and theirDid fields generated by the indy-sdk to fully qualified did:peer dids compliant with the Peer DID Method Specification.

To account for the fact that the mechanism to migrate legacy did document to peer did documents is not defined yet, the legacy did and did document are stored in the did record metadata. This will be deleted later if we can be certain the did doc conversion to a did:peer did document is correct.

{
"did": "BBPoJqRKatdcfLEAFL7exC",
"theirDid": "UppcJ5APts7ot5WX25943F",
"verkey": "GAb4NUvpBcHVCvtP45vTVa5Bp74vFg3iXzdp1Gbd68Wf",
"didDoc": <legacyDidDoc>,
"theirDidDoc": <legacyTheirDidDoc>,
}

Migrating to the Out of Band Record

With the addition of the out of band protocol, invitations are now stored in the OutOfBandRecord. In addition a new field invitationDid is added to the connection record that is generated based on the invitation service or did. This allows to reuse existing connections.

The migration script extracts the invitation and other relevant data into a separate OutOfBandRecord. By doing so it converts the old connection protocol invitation into the new Out of band invitation message. Based on the service or did of the invitation, the invitationDid is populated.

Previously when creating a multi use invitation, a connection record would be created with the multiUseInvitation set to true. The connection record would always be in state invited. If a request for the multi use invitation came in, a new connection record would be created. With the addition of the out of band module, no connection records are created until a request is received. So for multi use invitation this means that the connection record with multiUseInvitation=true will be deleted, and instead all connections created using that out of band invitation will contain the outOfBandId of the multi use invitation.

{
"invitation": {
"@type": "https://didcomm.org/connections/1.0/invitation",
"@id": "04a2c382-999e-4de9-a1d2-9dec0b2fa5e4",
"recipientKeys": ["E6D1m3eERqCueX4ZgMCY14B4NceAr6XP2HyVqt55gDhu"],
"serviceEndpoint": "https://example.com",
"label": "test"
},
"multiUseInvitation": "false"
}

Unifying Connection States and Roles

With the addition of the did exchange protocol there are now two states and roles related to the connection record; for the did exchange protocol and for the connection protocol. To keep it easy to work with the connection record, all state and role values are updated to those of the DidExchangeRole and DidExchangeState enums.

The migration script transforms all connection record state and role values to their respective values of the DidExchangeRole and DidExchangeState enums. For convenience a getter property rfc0160ConnectionState is added to the connection record which returns the ConnectionState value.

{
"state": "invited",
"role": "inviter"
}
- + \ No newline at end of file diff --git a/guides/updating/versions/0.2-to-0.3.html b/guides/updating/versions/0.2-to-0.3.html index 8e085630..6bf84861 100644 --- a/guides/updating/versions/0.2-to-0.3.html +++ b/guides/updating/versions/0.2-to-0.3.html @@ -3,14 +3,14 @@ -Migrating from AFJ 0.2.x to 0.3.x | Credo - +Migrating from AFJ 0.2.x to 0.3.x | Credo +
Version: v0.4.x

Migrating from AFJ 0.2.x to 0.3.x

This document describes everything you need to know for updating AFJ 0.2.x to 0.3.x. If you're not aware of how updating in AFJ works make sure to first read the guide on Updating AFJ.

First of all, update you dependencies to the 0.3.x versions. This will also update the needed peer depedencnies. Extension packages are not updated with this command. You need to update these manually, and make sure they're up to date with the latest version of AFJ.

yarn add @aries-framework/react-native@^0.3.0 @aries-framework/core@^0.3.0 indy-sdk-react-native@^0.3.0

# or NPM
npn install @aries-framework/react-native@^0.3.0 @aries-framework/core@^0.3.0 indy-sdk-react-native@^0.3.0

Breaking Code Changes

This section will list all breaking changes made to the public API of AFJ between version 0.2.x and 0.3.0.

info

If you have custom modules take into account there could be a lot more breaking changes that aren't documented here. We try to make sure that the biggest breaking changes to the internal API are also documented here (e.g. see Updating Custom Modules to the Plugin API), but it is possible some breaking changes are not documented here (feel free to open PRs).

Agent creation

The agent constructor has been updated to a single AgentOptions object that contains the config and dependencies properties.

const agent = new Agent(agentConfig, agentDependencies)

This object contains:

  • config: Agent's initial configuration
  • dependencies: platform-specific Agent dependencies
  • modules: optional field for internal module configuration and custom module registration

For easy migration, you can simply construct AgentOptions by putting current InitConfig into config key and agentDependencies into dependencies key.

Note that, if you are defining indyLedgers configuration, you should set the indyNamespace for every ledger, as explained in Agent Config tutorial.

did:key usage in protocols

In accordance with Aries RFC 0360, since 0.2.5 there is a configuration parameter called useDidKeyInProtocols which, when enabled, will encode keys in did:key instead of previous base58 format, unless the other party has started a protocol and is using base58.

This parameter was previously disabled by default and now it is enabled. If your agent only interacts with modern agents (e.g. AFJ 0.2.5 and newer) this will not represent any issue. Otherwise it is safer to explicitly set it to false. However, keep in mind that we expect this setting to be deprecated in the future, so we encourage you to update all your agents to use did:key.

Modules extracted from the core

In this release two modules were extracted from the core and published as separate, optional packages:

  • actionMenu has been moved to @aries-framework/action-menu
  • questionAnswer has been moved to @aries-framework/question-answer

If you want to use them, you can integrate in an Agent instance by injecting them in constructor, as follows:

import { ActionMenuModule } from '@aries-framework/action-menu'
import { QuestionAnswerModule } from '@aries-framework/question-answer'

const agent = new Agent({
config: {
/* config */
},
dependencies: agentDependencies,
modules: {
actionMenu: new ActionMenuModule(),
questionAnswer: new QuestionAnswerModule(),
/* other custom modules */
},
})

As they are now considered custom modules, their API can be accessed in modules namespace, so you should add it to every call to them.

await agent.questionAnswer.sendQuestion(connectionId, {
question: 'Do you want to play?',
validResponses: [{ text: 'Yes' }, { text: 'No' }],
})

await agent.questionAnswer.sendAnswer(questionAnswerRecordId, 'Yes')

Discover Features Module

This module now supports both Discover Features V1 and V2, and as it happened to other modules, queryFeatures method parameters have been unified to a single object and requires to specify the version of Discover Features protocol to be used. Note that query property has been replaced by the more general queries which accepts multiple features to be search for. To convert a query to this new format you simply need to create a single-object array whose unique object whose featureType field is 'protocol' and match field is the query itself.

await agent.discovery.queryFeatures(connectionId, {
query: 'https://didcomm.org/messagepickup/2.0',
comment: 'Detect if protocol is supported',
})

The convenience method isProtocolSupported has been replaced by the more general synchronous mode of queryFeatures, which works when awaitDisclosures in options is set. Instead of returning a boolean, it returns an object with matching features:

const isPickUpV2Supported = await agent.discovery.isProtocolSupported(connectionId, StatusRequestMessage)
info

Discover Features module does not rely anymore on Agent Dispatcher to determine protocol support. Instead, it uses the new Feature Registry, where any custom modules implementing protocols must register them.

This procedure can be done in module's register(dependencyManager, featureRegistry).

Ledger Module

Apart from the aforementioned indyLedgers configuration, you should also note a slight change in behaviour when attempting to register credential definitions that already exists on the ledger but not in the wallet.

Proofs Module

Module API Updates

Much in the same way as in 0.2.0 release when Issue Credential V2 protocol has been added, now that Present Proof V2 is supported, we introduced changes to proofs module.

Basically, for all methods in the proofs module you should take the following steps to update your code:

  1. Move all function parameters into a single object. All module methods now take a single object that contain all properties.
  2. For methods that initiate proposals, requests or presentations (proposeProof, acceptProposal, requestProof, acceptPresentation, etc.), you should pass protocolVersion: 'v1' to indicate we should use the v1 protocol
  3. All indy specific attributes (e.g. Presentation Preview) should be passed in the proofFormats.indy object.
  4. Some indy objects, as the preview should now be passed only as their attributes (i.e. no need of creating the object instance) and provided in the proofFormats.indy object.
await agent.proofs.proposeProof(
'connectionId',
new PresentationPreview({
attributes: [new PresentationPreviewAttribute({ name: 'key', value: 'value' })],
predicates: [
new PresentationPreviewPredicate({
name: 'age',
credentialDefinitionId,
predicate: PredicateType.GreaterThanOrEqualTo,
threshold: 50,
}),
],
})
)

Messages Extracted from Proof Exchange Record

The DIDComm messages that were previously stored on the proof record, have been extracted to separate DIDComm message records. This makes it easier to work with multiple versions of the protocol internally, and keeps the proof exchange record agnostic of the protocol version. Instead of accessing the messages through the proposalMessage, requestMessage and presentationMessage parameters, we now expose dedicated methods on the proofs module to retrieve the message.

With the addition of the v2 messages, all v1 messages have been prefixed with V1 while v2 messages have been prefixed with V2 (V1RequestPresentationMessage and V2RequestPresentationMessage). If you were using these messages classes throughout your codebase, update them to use the V1 prefix.

const proofRecord = await agent.proofs.getById('proofRecordId')

const proposalMessage = proofRecord.proposalMessage
const requestMessage = proofRecord.requestMessage
const presentationMessage = proofRecord.presentationMessage

Out Of Band Proofs and Credentials

With the addition of the out of band module, the creation of connection-less messages has been split into two steps, allowing for better control and flexibility. The previous agent.proofs.createOutOfBandRequest has been replaced by the agent.proofs.createRequest method. This new method creates a proof request that is not tied to any connection.

What you can now do is call agent.oob.createLegacyConnectionlessInvitation to attach the service decorator to the message and get a legacy connectionless message.

const { requestMessage, proofRecord } = await agent.proofs.createOutOfBandRequest({
requestedAttributes: {
group1: {
name: 'dateOfBirth',
restrictions: [{ schemaId: 'F72i3Y3Q4i466efjYJYCHM:2:aha_cert:4.1.1' }],
},
},
})

Out of band invitations are the new way to send messages out of band. You can use it for connection-less exchanges, but also for exchanges that you want to establish a connection for first. Here's an example on how to use the out of band module to create a connection-less invitation for a proof request:

const outOfBandRecord = await agent.oob.createInvitation({
handshake: false, // set to true if you want to create a connection
messages: [message],
})

const invitationUrl = outOfBandRecord.outOfBandInvitation.toUrl({
domain: 'https://afj.com',
})

As you can see, there's now a lot more ways to use a message not tied to a connection. By splitting the creation of the message from the creation of the invitation, we can now create a message not bound to a connection (at time of creation) for multiple use cases.

Updating Custom Modules to the new Plugin API

Although this isn't a breaking change to the public API of the framework, it is something that you will need to take into account if you have custom modules and want to upgrade them to make compatible with AFJ 0.3.0.

Renaming handler classes

Handler has been have been renamed to MessageHandler to be be more descriptive, along with related types and methods. This means:

  • Handler is now MessageHandler
  • HandlerInboundMessage is now MessageHandlerInboundMessage
  • Dispatcher.registerHandler is now Dispatcher.registerMessageHandler and is marked as deprecated. The recommended way of registering handlers is by using the new MessageHandlerRegistry object by calling MessageHandlerRegistry.registerMessageHandler.

If your custom module include message handlers, you must update them accordingly.

export class MyHandler implements Handler {
public supportedMessages = [MyMessage]

public async handle(inboundMessage: HandlerInboundMessage<MyHandler>) {
...
}
}

Using AgentContext

First of all, it's worth noting that now all services and repositories have been made stateless. A new AgentContext is introduced that holds the current context, which is passed to each method call. Therefore, you'll need to update every call to services, repositories and also eventEmitter methods to pass AgentContext object as first argument.

AgentContext can be obtained from either:

  • MessageContext used by message handlers (accesed as messageContext.agentContext)
  • Injected in your API constructor: you can store the instance and pass it to all your service and repository calls
  public async createRequest(options: CreateRequestOptions) {
const message = new RequestMessage({
parentThreadId: options.parentThreadId,
})

const record = new MyRecord({
connectionId: options.connectionRecord.id,
threadId: message.id,
parentThreadId: options.parentThreadId,
})

await this.myRecordRepository.save(record)

this.eventEmitter.emit<MyRecordStateChangedEvent>({
type: MyRecordEventTypes.StateChanged,
payload: {
myRecord: record,
previousState: null,
},
})

return { record, message }
}

public async processRequest(messageContext: HandlerInboundMessage<RequestHandler>) {
const { message } = messageContext

const record = new MyRecord({
connectionId: connection.id,
threadId: messageContext.message.id,
parentThreadId: messageContext.message.thread?.parentThreadId,
})

await this.myRepository.save(record)

return record
}

Using OutboundMessageContext

If your module implements a protocol that sends messages to other agents, you will notice that Agent's MessageSender now receives the more generic OutboundMessageContext class, which replaces previous helper method createOutboundMessage.

You can take advantage of this new mechanism to associate a record to the context, in order to do specific actions to it when outbound message state changes (e.g. a MessageSendingError is thrown or AgentMessageSentEvent is emitted).

import { createOutboundMessage } from '@aries-framework/core'

const outboundMessage = createOutboundMessage(connection, message)
await this.messageSender.sendMessage(outboundMessage)

Updating module structure to register in new Plugin API

Existing modules can benefit from the new Plugin API mechanism by doing the following modifications:

  1. Rename Module class (e.g. MyModule) to API class (MyApi) and add @injectable decorator. Inject AgentContext in order to pass it to any services or repositories it might call. For instance:
import { injectable } from '@aries-framework/core'

@injectable() // <-- Add this
export class MyApi {
private messageSender: MessageSender
private myService: MyService
private connectionService: ConnectionService
private agentContext: AgentContext // <-- Add this

public constructor(
messageHandlerRegistry: MessageHandlerRegistry, // <-- use this instead of Dispatcher
messageSender: MessageSender,
myService: MyService,
connectionService: ConnectionService,
agentContext: AgentContext // <-- Add this
) {
this.messageSender = messageSender
this.myService = myService
this.connectionService = connectionService
this.agentContext = agentContext // <-- Add this
this.registerHandlers(messageHandlerRegistry) // <-- use messageHandlerRegistry instead of dispatcher
}
  1. Create a new Module class that implements Module interface and registers the dependencies and features. For instance:
import type { DependencyManager, FeatureRegistry, Module } from '@aries-framework/core'

import { Protocol } from '@aries-framework/core'

export class MyModule implements Module {
public readonly api = MyApi // the one we've just renamed from MyModule

public register(dependencyManager: DependencyManager, featureRegistry: FeatureRegistry) {
// Api
dependencyManager.registerContextScoped(MyApi)

// Services
dependencyManager.registerSingleton(MyService)

// Repositories
dependencyManager.registerSingleton(MyRepository)

// Feature Registry: don't forget to register your protocols and other features your module may add
featureRegistry.register(
new Protocol({
id: 'https://didcomm.org/my-protocol/1.0',
roles: [MyRole.Sender, MyRole.Receiver],
})
)
}

After doing this, you can add your module to agent constructor like this:

const agent = new Agent({
config: {
/* config */
},
dependencies: agentDependencies,
modules: {
myModule: new MyModule(),
/* other custom modules */
},
})

// MyModule API can be accessed in agent.modules namespace
await agent.modules.myModule.doSomething()

await agent.modules.myModule.doAnotherThing()

Breaking Storage Changes

The 0.3.0 release introduces some breaking changes to the storage format, mainly related to Proof Exchanges.

Below all breaking storage changes are explained in as much detail as possible. The update assistant provides all tools to migrate without a hassle, but it is important to know what has changed. All examples only show the keys that have changed, unrelated keys in records have been omitted.

See the Update Assistant documentation for a guide on how to use the update assistant.

There are no config parameters to be provided to the update assistant to migrate from 0.2.x to 0.3.x.

Migrate Proof Record Properties

In 0.3.0 the v1 DIDComm messages have been moved out of the proof record into separate records using the DidCommMessageRepository. The migration scripts extracts all messages (proposalMessage, requestMessage, presentationMessage) and moves them into the DidCommMessageRepository. With the addition of support for different protocol versions the proof record now stores the protocol version.

{
"proposalMessage": { ... },
"requestMessage": { ... },
"presentationMessage": { ... },
}

Migrate Connection Record properties

The recently introduced connectionType tag has been pluralized to reflect the fact that more than a single connection type can be defined for a given connection. Also, it is now available as a direct record property (e.g. can be queried and set by using connectionRecord.connectionTypes) apart from the tag for efficient search.

The migration script renames connectionType to connectionTypes in all connections, and also searches for any mediation connection and adds ConnectionType.Mediator as one of its types.

Migrate Did Record properties

The didRecord.id was previously the did itself. However to allow for connecting with self, where multiple did records are created for the same did, the id property is now an uuid and a separate did property is added.

The migration script generates a new ID for each did record and stores its did into didRecord.did property.

{
"id": "did"
}
- + \ No newline at end of file diff --git a/guides/updating/versions/0.3-to-0.4.html b/guides/updating/versions/0.3-to-0.4.html index 5ed5dca0..303f7d25 100644 --- a/guides/updating/versions/0.3-to-0.4.html +++ b/guides/updating/versions/0.3-to-0.4.html @@ -3,14 +3,14 @@ -Migrating from AFJ 0.3.x to 0.4.x | Credo - +Migrating from AFJ 0.3.x to 0.4.x | Credo +
Version: v0.4.x

Migrating from AFJ 0.3.x to 0.4.x

This document describes everything you need to know for updating AFJ 0.3.x to 0.4.x. If you're not aware of how updating in AFJ works make sure to first read the guide on Updating AFJ.

First of all, update you dependencies to the 0.4.x versions. This will also update the needed peer dependencies. Extension packages are not updated with this command. You need to update these manually, and make sure they're up to date with the latest version of AFJ.

Aries Framework JavaScript 0.4.0 is a major release that introduces a lot of new features and changes to the public API. Specifically, this release removed the dependency on the Indy SDK from the @aries-framework/core package. Agent setup is more flexible, but it also means the setup is more complex. Follow the mentioned steps in this document carefully to make the upgrade as smooth as possible.

caution

The migration guide only covers how to migrate from 0.3.x to 0.4.x while keeping the same behavior and dependencies. AFJ 0.4.0 introduced a lot of new features and adds support for Aries Askar, Indy VDR and AnonCreds RS as a replacement for the Indy SDK.

Migrating to these new components requires additional migration steps, which need to be closely followed to prevent loss of data. These can be found at the Update Indy SDK to Askar guide.

As noted in the Update Indy SDK to Askar guide, it is very important that the 0.3.x to 0.4.x update is started after migrating from the Indy SDK to Aries Askar.

caution

Multi-tenancy is not covered in the 0.3.x to 0.4.x migration guide. If you're using multi-tenancy in 0.3.x and want to migrate to 0.4.x, please open an issue on Github.

caution

The following APIs, modules and features are experimental and therefore not covered by the semver versioning in Aries Framework JavaScript. If you're using any of these features, make sure to use an exact version of AFJ (0.4.0) instead of a range (^0.4.0):

  • Implementing your own AnonCredsRegistry and AnonCreds service implementation. Using the default implementations (Indy SDK, AnonCreds RS) is fine.
  • Using the shared component libraries from @aries-framework/aries-askar, @aries-framework/indy-vdr and @aries-framework/anoncreds-rs
  • Using OpenID4VC from the @aries-framework/openid4vc-client module
  • W3C JWT Verifiable Credentials
  • Using multi-tenancy from the @aries-framework/tenants module

First install the updated dependencies. Make sure to also install the new @aries-framework/indy-sdk package, which is a wrapper around the Indy SDK and install the indy-sdk-react-native package.

yarn add @aries-framework/react-native@^0.4.0 @aries-framework/core@^0.4.0 @aries-framework/indy-sdk@^0.4.0 @aries-framework/anoncreds@^0.4.0 indy-sdk-react-native@^0.3.1

# or NPM
npn install @aries-framework/react-native@^0.4.0 @aries-framework/core@^0.4.0 @aries-framework/indy-sdk@^0.4.0 @aries-framework/anoncreds@^0.4.0 indy-sdk-react-native@^0.3.1

We also need to install types for the indy-sdk-react-native package, which we take from the @types/indy-sdk package.

yarn add --dev @types/indy-sdk-react-native@npm:@types/indy-sdk

# or NPM
npm install --save-dev @types/indy-sdk-react-native@npm:@types/indy-sdk

Breaking Code Changes

This section will list all breaking changes made to the public API of AFJ between version 0.3.x and 0.4.0.

info

If you have custom modules take into account there could be a lot more breaking changes that aren't documented here. We try to make sure that the biggest breaking changes to the internal API are also documented here, but it is possible some breaking changes are not documented here (feel free to open a pull request).

Agent Creation

With the dependency on the Indy SDK removed from the @aries-framework/core package, we now need to register the IndySdkModule to still leverage the functionality the Indy SDK provides.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
},
dependencies: agentDependencies,
})

Indy Network Configuration

With the Indy SDK being extracted out of core, the indyLedger configuration option is no longer available on the AgentConfig interface. Instead, the networks configuration option is now available on the IndySdkModule configuration.

In addition the connectToIndyLedgersOnStartup property has been removed in favor of a per-network connectOnStartup property that allows more fine-grained control over which networks to connect to on startup.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
connectToIndyLedgersOnStartup: true,
indyLedgers: [
{
id: 'Sovrin Mainnet',
indyNamespace: 'sovrin',
isProduction: true,
genesisPath: './genesis/sovrin-genesis.txn',
},
],
},
dependencies: agentDependencies,
})

Changes to wallet

Throughout the framework it was possible to provide a seed for deterministic key generation. Recently it was discovered that the seed property in the Indy SDK was not actually used as a seed, but directly as the private key.

Therefore a new privateKey property was added to the Wallet interface in addition to the seed property. When using the IndySdkModule this now means you can only provide the privateKey property. The seed property is no longer supported by the IndySdkModule.

The type of the seed property has also been changed to Buffer to make it more consistent with privateKey property, and remove the ambiguity of what the encoding of the string variant of the seed property should be.

Did Resolver and Registrar

The did:sov resolver and registrar were registered by default in 0.3.x of the agent. In 0.4.0 they've been moved to the @aries-framework/indy-sdk package and are thus not registered by default on the DIDs module anymore. In addition, the IndySdkSovDidRegistrar has been replaced in favor of the IndySdkIndyDidRegistrar which provides similar behavior, but leverages the new did:indy method, which removes ambiguity about which network to use. You can still use the IndySdkSovDidResolver to resolve did:sov DIDs.

Note that the IndySdkModule MUST be registered when using the Indy SDK did resolvers and registrars (see Agent Creation). The networks supported by the resolvers and registrar is determined by the networks registered on the IndySdkModule (see Indy Network Configuration).

Also note that by default the WebDidResolver, KeyDidResolver and PeerDidResolver are registered, and setting the resolvers property on the DidsModule configuration will override the default resolvers (an exception is the PeerDidResolver as it is required for creating connections, and thus will always be registered).

The same thing is true for the registrars, for which the KeyDidRegistrar and PeerDidRegistrar are registered by default. If defining the resolvers and registrars, make sure to include the default registrars if you want to keep the previous behavior.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
},
dependencies: agentDependencies,
})

Removal of publicDidSeed and publicDid

To make AFJ more generic, and less focused on Hyperledger Indy, and Indy dids, the publicDidSeed and publicDid properties have been removed from the agent configuration, the agent class, and the Wallet interface.

The publicDid property was used as the did to register items in the ledger module. The approach had some limitations:

  • An agent could only have a single publicDid property. This means that if you wanted to write to multiple ledgers you would have to create multiple agents
  • The property assumed only Indy ledgers would be used, and didn't take into account the possibility of other ledgers.

AFJ now provides generic APIs that can work with any ledger, and thus the publicDid property is no longer needed. Different sections of this migration guide will explain the different parts of how to use the new APIs, this section just focuses on how to replace the publicDid property.

The most common use case for the publicDid property was for registering an endorser did that can endorse (read: pay for) transactions on the ledger. This can now be done by importing the did into agent, after which it can be used by the AnonCreds module to register schemas and credential definitions, and the did registrar to register DIDs.

There's a one-time import that needs to be done to import the did into the agent using the DidsApi.import method. If you've previously used the publicDidSeed property, providing the private key is optional, as it is already stored in the wallet. Note that the privateKey is the same as the publicDidSeed, see Changes to Wallet for context). The import method will resolve the did passed to the import method (so make sure to register the IndySdkIndyDidResolver). It is recommended to import the endorser did as an did:indy did rather than a did:sov did, as the did:sov method is deprecated for creation. The did:indy did can be constructed by replacing sov with indy:<indyNamespace>, where <indyNamespace> should be replaced with a namespace as registered in the networks property of the IndySdkModule (see Indy Network Configuration).

An initial list of namespace identifiers can be found in an issue in the Indy Did Networks Repository. In the future this list will be maintained in the Indy DID Networks repository itself.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
publicDidSeed: '01eafa4de4e22ed4fc2ee522b6ce2731',
},
dependencies: agentDependencies,
})

More Granular Usage of Legacy did:sov Prefix in DIDComm Messages

AFJ 0.3.0 used the useLegacyDidSovPrefix to use the legacy did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/ as the prefix in the @type of DIDComm message instead of the new https://didcomm.org prefix. Over time it has proven that this approach leads to undesired behavior as all messages (even protocols that were defined after the new prefix was the default) would use the legacy prefix. However, due to not all implementations having support for new prefix, disabling the legacy prefixes proved to be a problem.

Therefore, in AFJ 0.4.0 the useLegacyDidSovPrefix property has been replaced with the useDidSovPrefixWhereAllowed property. This property will only use the legacy prefix for protocols that were defined before the new prefix was the default. This means that protocols that were defined after the new prefix was the default will use the new prefix independent of the value of the useDidSovPrefixWhereAllowed property. We hope this will allow us to slowly migrate away from the legacy prefix as new protocols are defined without breaking backwards compatibility.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
useLegacyDidSovPrefix: true,
},
dependencies: agentDependencies,
})

Removal of injectionContainer property from the agent

The injectionContainer property on the Agent has been replaced by the dependencyManager property. The dependencyManager property is an instance of the DependencyManager class and wraps the injection container from tsyringe.

The DependencyManager should provide all functionality that is needed, and it is recommended to not use the injection directly. If you need to use the injection container directly, you can access it via the container property on the DependencyManager instance, but please raise an issue to discuss if the functionality you need should be added to the DependencyManager class.

connection has been updated to connectionId in TransportSession

The connection property on the TransportSession has been changed to connectionId and now only holds a reference to the connection id instead of the connection record itself.

Accessing the connection on a transport session is an advanced case that is mostly only relevant when implementing a custom transport. If you are using the default transports, you should not be affected by this change.

Replacement of Ledger Module with new AnonCreds Module

The ledger module has been available in AFJ since the very beginning, and was due for a big overhaul. With the addition of the dids module a while ago we already had a replacement for the registerPublicDid and getPublicDid methods on the ledger module. The other methods of the ledger module have been replaced by the AnonCreds module.

In AFJ 0.4.0 AnonCreds credential support is not part of the core framework anymore, and needs to be manually registered on the agent. The first part is enabling the AnonCreds module, which allows to manage AnonCreds objects, interact with the ledger, and issuer, hold and verify AnonCreds credentials and is explained in this section. The second part is actually allowing AnonCreds credentials to be exchanged in the Issue Credential and Present Proof protocols, which is explained in the Manually Register AnonCreds Support in Credentials and Proofs Modules section.

There's a few important takeaways based on the code example below:

  • The anoncreds module can be accessed under the agent.modules.anoncreds property.
  • The interfaces are set up as generically as possible based on the DID Registration and DID Resolution specifications.
  • AnonCreds registries need to be manually registered so it's important to register the IndySdkAnonCredsRegistry on the AnonCredsModule.
  • It is now required to pass an issuerId when registering AnonCreds objects, according to the AnonCreds Specification. Only did:indy issuer identifiers are allowed (based on the did:indy AnonCreds Method), so the network can be inferred from the issuer identifier.

As will be explained in the Manually Register AnonCreds Support in Credentials and Proofs Modules, you can still use the unqualified issuer identifiers (best known as the Hyperledger Indy Legacy AnonCreds Method) in credential and proof exchanges.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
publicDidSeed: '01eafa4de4e22ed4fc2ee522b6ce2731',
indyLedgers: [
{
id: 'Sovrin Mainnet',
indyNamespace: 'sovrin',
isProduction: true,
genesisPath: './genesis/sovrin-genesis.txn',
},
],
},
dependencies: agentDependencies,
})

await agent.initialize()

const schema = await agent.ledger.registerSchema({
attributes: ['name'],
name: 'Example Schema',
version: '1.0.1',
})

const credentialDefinition = await agent.ledger.registerCredentialDefinition({
schema,
supportRevocation: false,
tag: 'default',
})

Changes to the Credentials and Proofs modules

A lot of small, and some bigger changes have been made to the Credentials, and primarily, the Proofs modules. These changes have been made to make the modules more consistent and generic so that they can be used in a wider range of use cases, removing any focus on AnonCreds and Indy credentials.

Changes to the Proofs module include:

  • getRequestedCredentialsForProofRequest has been renamed to getCredentialsForRequest
  • autoSelectCredentialsForProofRequest has been renamed to selectCredentialsForRequest
  • The config parameter for both methods has been removed and those have been replaced by proof format specific configuration options. In this case, the config.filterByNonRevocationRequirements has been added as proofFormats.indy.filterByNonRevocationRequirements (if the indy format is registered as explained in the next section). The config.filterByPresentationPreview has been removed as the presentation preview was only present in the present proof V1 protocol, and due to it's limited applicability (the holder starts with a proposal) we've decided to remove this method for now. You can still filter the credentials yourself by using the getCredentialsForRequest method.
  • Interfaces have been renamed to be more consistent with the method names. Please refer to the CredentialsApiOptions and ProofsApiOptions for the interface names that can be imported.

If you encounter any other breaking changes in the Proofs and Credentials modules, please open an issue in the Aries JavaScript Docs repository.

Changes to the AnonCreds Credential and Proof Format

With the 0.4.0 release, AFJ now provides a pluggable AnonCreds interface, and requires support AnonCreds credentials to be explicitly registered on the agent. This is also the case for registering the credential and proof formats.

In 0.3.x, the IndyProofFormatService and IndyCredentialFormatService were registered by default. In 0.4.x, these services are no longer registered by default and they should be imported from the @aries-framework/anoncreds package as LegacyIndyProofFormatService and LegacyIndyCredentialFormatService and are based on Aries RFC 0592. In a future version the new AnonCredsCredentialFormatService and AnonCredsProofFormatService will be added to the AnonCreds package, which are based on Aries RFC 0771 and allow for AnonCreds credentials to be exchanged based on the new ledger agnostic AnonCreds Specification.

In addition, the V1CredentialProtocol and V1ProofProtocol have been extracted into the @aries-framework/anoncreds package, as they only support exchange of (legacy Indy) AnonCreds credentials.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
indyLedgers: [
{
id: 'Sovrin Mainnet',
indyNamespace: 'sovrin',
isProduction: true,
genesisPath: './genesis/sovrin-genesis.txn',
},
],
},
dependencies: agentDependencies,
})

Removal of AnonCreds Master Secret management from Wallet

The Wallet class no longer manages the creation and deletion of AnonCreds master secrets (which are now called Link Secrets in AnonCreds module and specification). If you haven't provided a custom masterSecretId to the walletConfig before, the storage migration script should have automatically created an AnonCredsLinkSecretRecord for you based on the walletConfig.id.

For new agents however, you now need to explicitly create a link secret before you can create requests for AnonCreds credential offers. You can do this using the AnonCredsApi.createLinkSecret method.

caution

If you previously used a custom masterSecretId in the walletConfig the migration script will have created an incorrect AnonCredsLinkSecretRecord based on the walletConfig.id. You will need to manually override the link secret record with the correct linkSecretId.

You ONLY need to do this if you're not migrating from Indy SDK to Askar, as in that case the migration script will have created the correct AnonCredsLinkSecretRecord for you.

import { AnonCredsLinkSecretRepository } from '@aries-framework/anoncreds'

const linkSecretRepository = agent.dependencyManager.resolve(AnonCredsLinkSecretRepository)
const defaultLinkSecret = await linkSecretRepository.findDefault(agent.context)

if (defaultLinkSecret) {
defaultLinkSecret.linkSecretId = 'my-custom-link-secret-id'
await linkSecretRepository.update(agent.context, defaultLinkSecret)
}
import { AnonCredsModule } from '@aries-framework/anoncreds'
import { Agent } from '@aries-framework/core'
import { IndySdkAnonCredsRegistry, IndySdkModule } from '@aries-framework/indy-sdk'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

// Import from indy-sdk-react-native in React Native
import indySdk from 'indy-sdk'

const agent = new Agent({
config: {
/* ... */
},
dependencies: agentDependencies,
modules: {
indySdk: new IndySdkModule({
indySdk,
}),
anoncreds: new AnonCredsModule({
registries: [new IndySdkAnonCredsRegistry()],
}),
},
})

// the agent MUST be initialized before calling it.
await agent.wallet.initialize({
id: 'wallet-id',
key: 'wallet-key',
})

await agent.modules.anoncreds.createLinkSecret({
// first one will be set to default automatically
setAsDefault: true,

// will be generated if not provided.
// linkSecretId: 'link-secret-id'
})

Default Outbound DIDComm Content Type now application/didcomm-envelope-enc

The default outbound DIDComm content type has been changed from DidCommMimeType.V0 (application/ssi-agent-wire) to DidCommMimeType.V1 (application/didcomm-envelope-enc). V1 is the default for DIDComm V1 (as defined in Aries RFC 0044). In the past, V0 resulted in better interoperability, but since it has been the default for so long it makes sense to change the default behavior.

It is advised to use the default value as configured by the agent (V1). If you want to keep the old behavior, you can configure the didCommMimeType property in the agent configuration.

import { Agent } from '@aries-framework/core'

// Import from @aries-framework/react-native in React Native
import { agentDependencies } from '@aries-framework/node'

const agent = new Agent({
config: {
/* ... */
},
dependencies: agentDependencies,
})

Generalizing Indy properties in CredentialExchangeRecord

With AnonCreds credentials now being generalized to support multiple ledgers, the properties specific to Hyperledger Indy have now been generalized into a generic AnonCreds properties.

credentialRecordType

First off, the credentialRecordType that was used to reference stored AnonCreds credentials has been renamed from indy to anoncreds. The migration script takes care of the update to the storage, but you need to make sure to update all places that expect a credentialRecordType of indy to be defined.

CredentialExchangeRecord
{
"credentials": [
{
"credentialRecordType": "indy",
"credentialRecordId": "credential-id"
}
]
}

Metadata

Second, the metadata keys and values have been renamed to be AnonCreds specific rather than Indy specific. The CredentialMetadataKeys have been replaced by the AnonCredsCredentialMetadataKey and AnonCredsCredentialRequestMetadataKey constants which can be imported from the @aries-framework/anoncreds package.

CredentialExchangeRecord
{
"metadata": {
"_internal/indyCredential": {
"schemaId": "schema-id",
"credentialDefinitionId": "cred-def-id",
"indyRevocationRegistryId": "rev-reg-id",
"indyCredentialRevocationId": "cred-rev-id"
},
"_internal/indyRequest": {
"master_secret_blinding_data": {
"v_prime": "string",
"vr_prime": "string"
},
"master_secret_name": "string",
"nonce": "string"
}
}
}

More paths in FileSystem

The FileSystem interface has been extended to support multiple base paths. The previous interface had a single basePath property which was used for storing of files across the framework.

With the different lifetimes of different objects, the FileSystem interface has been extended to now support three different base paths:

  • cachePath - files used for caching purposes. It's okay if the files are cleared from time to time.
  • dataPath - files that are used for long-term reliable storage purposes. These files will never be cleared.
  • tempPath - files that are used for temporary storage purposes. It's okay if the files are cleared from time to time.

If you're using the framework, you don't need to worry about this change. The agent may need to download some objects again after the update. If you've made a custom implementation of the FileSystem, make sure to support all three base paths, and make sure to correctly handle the life-cycle of the files. Items stored under the dataPath should never be cleared.

caution

Indy SDK SQLite wallets do not use the paths defined by the FileSystem interface, and thus will not be influenced by this change. When upgrading to Aries Askar, the dataPath will be used as the base path for storing the SQLite wallet data.

Breaking Storage Changes

The 0.4.0 release introduces some breaking changes to the storage format.

Below all breaking storage changes are explained in as much detail as possible. The update assistant provides all tools to migrate without a hassle, but it is important to know what has changed. All examples only show the keys that have changed, unrelated keys in records have been omitted.

See the Update Assistant documentation for a guide on how to use the update assistant.

There are no configuration parameters to be provided to the update assistant to migrate from 0.3.x to 0.4.x.

TODO

- + \ No newline at end of file diff --git a/img/favicon.ico b/img/favicon.ico index 90697b9f..5578773c 100644 Binary files a/img/favicon.ico and b/img/favicon.ico differ diff --git a/index.html b/index.html index f00b964b..6e91047e 100644 --- a/index.html +++ b/index.html @@ -3,14 +3,14 @@ -Credo | Credo - +Credo | Credo +
-

Credo

Everything you need to know about the Credo ecosystem.

Easy to Use

Credo was designed with the mindset that building self-sovereign identity solutions should be easy and straightforward.

progressive_app

Multi-platform

With support for Node.js and React Native, Credo allows you to reuse the same code base in different environments. There is no need to implement the same functionality multiple times.

Based on the latest standards

By keeping up with the latest standards, we ensure Credo is secure and interoperable.

- +

Credo

Everything you need to know about the Credo ecosystem.

Easy to Use

Credo was designed with the mindset that building self-sovereign identity solutions should be easy and straightforward.

progressive_app

Multi-platform

With support for Node.js and React Native, Credo allows you to reuse the same code base in different environments. There is no need to implement the same functionality multiple times.

Based on the latest standards

By keeping up with the latest standards, we ensure Credo is secure and interoperable.

+ \ No newline at end of file diff --git a/markdown-page.html b/markdown-page.html index ac855fb8..94d8fae7 100644 --- a/markdown-page.html +++ b/markdown-page.html @@ -3,14 +3,14 @@ -Markdown page example | Credo - +Markdown page example | Credo +

Markdown page example

You don't need React to write simple standalone pages.

- + \ No newline at end of file diff --git a/search-index-docs-default-0.3.json b/search-index-docs-default-0.3.json index 1eb2c08d..002fea18 100644 --- a/search-index-docs-default-0.3.json +++ b/search-index-docs-default-0.3.json @@ -1 +1 @@ -{"documents":[{"id":10,"pageTitle":"","sectionTitle":"Intro","sectionRoute":"/guides/0.3","type":"docs"},{"id":1,"pageTitle":"","sectionTitle":"Concepts","sectionRoute":"/guides/0.3/concepts","type":"docs"},{"id":2,"pageTitle":"","sectionTitle":"📄️ Agents","sectionRoute":"/guides/0.3/concepts","type":"docs"},{"id":3,"pageTitle":"","sectionTitle":"📄️ DIDs and DIDComm","sectionRoute":"/guides/0.3/concepts","type":"docs"},{"id":4,"pageTitle":"","sectionTitle":"📄️ Platform and Environment","sectionRoute":"/guides/0.3/concepts","type":"docs"},{"id":5,"pageTitle":"","sectionTitle":"Agents","sectionRoute":"/guides/0.3/concepts/agents","type":"docs"},{"id":6,"pageTitle":"","sectionTitle":"Characteristics","sectionRoute":"/guides/0.3/concepts/agents#characteristics","type":"docs"},{"id":7,"pageTitle":"","sectionTitle":"Categories","sectionRoute":"/guides/0.3/concepts/agents#categories","type":"docs"},{"id":8,"pageTitle":"","sectionTitle":"Examples","sectionRoute":"/guides/0.3/concepts/agents#examples","type":"docs"},{"id":9,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/0.3/concepts/agents#useful-resources","type":"docs"},{"id":11,"pageTitle":"","sectionTitle":"DIDs and DIDComm","sectionRoute":"/guides/0.3/concepts/did-and-didcomm","type":"docs"},{"id":12,"pageTitle":"","sectionTitle":"DIDs","sectionRoute":"/guides/0.3/concepts/did-and-didcomm#dids","type":"docs"},{"id":13,"pageTitle":"","sectionTitle":"DID Documents","sectionRoute":"/guides/0.3/concepts/did-and-didcomm#did-documents","type":"docs"},{"id":14,"pageTitle":"","sectionTitle":"DIDComm","sectionRoute":"/guides/0.3/concepts/did-and-didcomm#didcomm","type":"docs"},{"id":15,"pageTitle":"","sectionTitle":"Useful Resources","sectionRoute":"/guides/0.3/concepts/did-and-didcomm#useful-resources","type":"docs"},{"id":16,"pageTitle":"","sectionTitle":"Platform and Environment","sectionRoute":"/guides/0.3/concepts/platform-and-environment","type":"docs"},{"id":17,"pageTitle":"","sectionTitle":"The Aries JavaScript Ecosystem","sectionRoute":"/guides/0.3/ecosystem","type":"docs"},{"id":18,"pageTitle":"","sectionTitle":"Repositories","sectionRoute":"/guides/0.3/ecosystem#repositories","type":"docs"},{"id":19,"pageTitle":"","sectionTitle":"Documentation","sectionRoute":"/guides/0.3/ecosystem#documentation","type":"docs"},{"id":20,"pageTitle":"","sectionTitle":"Aries Framework JavaScript","sectionRoute":"/guides/0.3/ecosystem#aries-framework-javascript","type":"docs"},{"id":21,"pageTitle":"","sectionTitle":"Contributing in the Aries JS Ecosystem","sectionRoute":"/guides/0.3/ecosystem#contributing-in-the-aries-js-ecosystem","type":"docs"},{"id":22,"pageTitle":"","sectionTitle":"Developer Contributions","sectionRoute":"/guides/0.3/ecosystem#developer-contributions","type":"docs"},{"id":25,"pageTitle":"","sectionTitle":"Extensions","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":26,"pageTitle":"","sectionTitle":"🗃️ REST API","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":27,"pageTitle":"","sectionTitle":"🗃️ React Hooks","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":28,"pageTitle":"","sectionTitle":"🗃️ Redux Store","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":29,"pageTitle":"","sectionTitle":"🗃️ Push Notifications","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":23,"pageTitle":"","sectionTitle":"Push Notifications","sectionRoute":"/guides/0.3/extensions/push-notifications","type":"docs"},{"id":30,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/extensions/push-notifications/setup","type":"docs"},{"id":24,"pageTitle":"","sectionTitle":"React Hooks","sectionRoute":"/guides/0.3/extensions/react-hooks","type":"docs"},{"id":31,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/extensions/react-hooks/setup","type":"docs"},{"id":32,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/0.3/extensions/react-hooks/setup#installation","type":"docs"},{"id":33,"pageTitle":"","sectionTitle":"Redux Store","sectionRoute":"/guides/0.3/extensions/redux-store","type":"docs"},{"id":34,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/extensions/redux-store/setup","type":"docs"},{"id":35,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/0.3/extensions/redux-store/setup#installation","type":"docs"},{"id":36,"pageTitle":"","sectionTitle":"REST API","sectionRoute":"/guides/0.3/extensions/rest","type":"docs"},{"id":40,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/extensions/rest/setup","type":"docs"},{"id":41,"pageTitle":"","sectionTitle":"Quick Setup","sectionRoute":"/guides/0.3/extensions/rest/setup#quick-setup","type":"docs"},{"id":42,"pageTitle":"","sectionTitle":"Directly on computer","sectionRoute":"/guides/0.3/extensions/rest/setup#directly-on-computer","type":"docs"},{"id":43,"pageTitle":"","sectionTitle":"Configuration","sectionRoute":"/guides/0.3/extensions/rest/setup#configuration","type":"docs"},{"id":37,"pageTitle":"","sectionTitle":"Getting started","sectionRoute":"/guides/0.3/getting-started","type":"docs"},{"id":38,"pageTitle":"","sectionTitle":"🗃️ Installation","sectionRoute":"/guides/0.3/getting-started","type":"docs"},{"id":39,"pageTitle":"","sectionTitle":"📄️ Setup","sectionRoute":"/guides/0.3/getting-started","type":"docs"},{"id":45,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/0.3/getting-started/installation","type":"docs"},{"id":44,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs","type":"docs"},{"id":60,"pageTitle":"","sectionTitle":"Apple (Arm)","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm","type":"docs"},{"id":61,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#nodejs","type":"docs"},{"id":62,"pageTitle":"","sectionTitle":"npm","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#npm","type":"docs"},{"id":63,"pageTitle":"","sectionTitle":"yarn","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#yarn","type":"docs"},{"id":64,"pageTitle":"","sectionTitle":"Libsodium","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#libsodium","type":"docs"},{"id":65,"pageTitle":"","sectionTitle":"Libzmq","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#libzmq","type":"docs"},{"id":66,"pageTitle":"","sectionTitle":"Indy-sdk","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#indy-sdk","type":"docs"},{"id":67,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#confirm-installation","type":"docs"},{"id":46,"pageTitle":"","sectionTitle":"Apple (Intel)","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel","type":"docs"},{"id":47,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel","type":"docs"},{"id":48,"pageTitle":"","sectionTitle":"npm","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel#npm","type":"docs"},{"id":49,"pageTitle":"","sectionTitle":"yarn","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel#yarn","type":"docs"},{"id":50,"pageTitle":"","sectionTitle":"Indy-sdk","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel#indy-sdk","type":"docs"},{"id":51,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel#confirm-installation","type":"docs"},{"id":52,"pageTitle":"","sectionTitle":"Linux","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux","type":"docs"},{"id":53,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#nodejs","type":"docs"},{"id":54,"pageTitle":"","sectionTitle":"npm","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#npm","type":"docs"},{"id":55,"pageTitle":"","sectionTitle":"yarn","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#yarn","type":"docs"},{"id":56,"pageTitle":"","sectionTitle":"Libsodium","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#libsodium","type":"docs"},{"id":57,"pageTitle":"","sectionTitle":"Libzmq","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#libzmq","type":"docs"},{"id":58,"pageTitle":"","sectionTitle":"Indy-sdk","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#indy-sdk","type":"docs"},{"id":59,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#confirm-installation","type":"docs"},{"id":68,"pageTitle":"","sectionTitle":"Windows","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows","type":"docs"},{"id":69,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#nodejs","type":"docs"},{"id":70,"pageTitle":"","sectionTitle":"npm","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#npm","type":"docs"},{"id":71,"pageTitle":"","sectionTitle":"yarn","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#yarn","type":"docs"},{"id":72,"pageTitle":"","sectionTitle":"Indy-sdk","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#indy-sdk","type":"docs"},{"id":73,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#confirm-installation","type":"docs"},{"id":74,"pageTitle":"","sectionTitle":"React Native","sectionRoute":"/guides/0.3/getting-started/installation/react-native","type":"docs"},{"id":75,"pageTitle":"","sectionTitle":"Known Errors","sectionRoute":"/guides/0.3/getting-started/installation/react-native#known-errors","type":"docs"},{"id":76,"pageTitle":"","sectionTitle":"Add setup of external storage permissions (Android)","sectionRoute":"/guides/0.3/getting-started/installation/react-native#add-setup-of-external-storage-permissions-android","type":"docs"},{"id":77,"pageTitle":"","sectionTitle":"Android","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android","type":"docs"},{"id":78,"pageTitle":"","sectionTitle":"Set the minimum SDK version","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android#set-the-minimum-sdk-version","type":"docs"},{"id":79,"pageTitle":"","sectionTitle":"Add the Sovrin maven repository","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android#add-the-sovrin-maven-repository","type":"docs"},{"id":80,"pageTitle":"","sectionTitle":"Adding the JNA library dependency","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android#adding-the-jna-library-dependency","type":"docs"},{"id":81,"pageTitle":"","sectionTitle":"Adding the Android indy-sdk libaries","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android#adding-the-android-indy-sdk-libaries","type":"docs"},{"id":82,"pageTitle":"","sectionTitle":"iOS","sectionRoute":"/guides/0.3/getting-started/installation/react-native/ios","type":"docs"},{"id":83,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/0.3/getting-started/prerequisites","type":"docs"},{"id":89,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/getting-started/set-up","type":"docs"},{"id":90,"pageTitle":"","sectionTitle":"Installing the required dependencies","sectionRoute":"/guides/0.3/getting-started/set-up#installing-the-required-dependencies","type":"docs"},{"id":91,"pageTitle":"","sectionTitle":"Additional setup","sectionRoute":"/guides/0.3/getting-started/set-up#additional-setup","type":"docs"},{"id":92,"pageTitle":"","sectionTitle":"Setting up the agent","sectionRoute":"/guides/0.3/getting-started/set-up#setting-up-the-agent","type":"docs"},{"id":93,"pageTitle":"","sectionTitle":"Setting up the transports","sectionRoute":"/guides/0.3/getting-started/set-up#setting-up-the-transports","type":"docs"},{"id":94,"pageTitle":"","sectionTitle":"Initializing the agent","sectionRoute":"/guides/0.3/getting-started/set-up#initializing-the-agent","type":"docs"},{"id":95,"pageTitle":"","sectionTitle":"Full code snippet","sectionRoute":"/guides/0.3/getting-started/set-up#full-code-snippet","type":"docs"},{"id":96,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/0.3/getting-started/set-up#useful-resources","type":"docs"},{"id":84,"pageTitle":"","sectionTitle":"Tutorials","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":85,"pageTitle":"","sectionTitle":"🗃️ Agent Config","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":86,"pageTitle":"","sectionTitle":"📄️ Create a connection","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":87,"pageTitle":"","sectionTitle":"📄️ Issue a credential","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":88,"pageTitle":"","sectionTitle":"🗃️ Postgres Database","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":97,"pageTitle":"","sectionTitle":"Agent Config","sectionRoute":"/guides/0.3/tutorials/agent-config","type":"docs"},{"id":98,"pageTitle":"","sectionTitle":"label*","sectionRoute":"/guides/0.3/tutorials/agent-config#label","type":"docs"},{"id":99,"pageTitle":"","sectionTitle":"walletConfig","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfig","type":"docs"},{"id":100,"pageTitle":"","sectionTitle":"walletConfig.id*","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfigid","type":"docs"},{"id":101,"pageTitle":"","sectionTitle":"walletConfig.key*","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfigkey","type":"docs"},{"id":102,"pageTitle":"","sectionTitle":"walletConfig.keyDerivationMethod","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfigkeyderivationmethod","type":"docs"},{"id":103,"pageTitle":"","sectionTitle":"walletConfig.storage","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfigstorage","type":"docs"},{"id":104,"pageTitle":"","sectionTitle":"endpoints","sectionRoute":"/guides/0.3/tutorials/agent-config#endpoints","type":"docs"},{"id":105,"pageTitle":"","sectionTitle":"publicDidSeed","sectionRoute":"/guides/0.3/tutorials/agent-config#publicdidseed","type":"docs"},{"id":106,"pageTitle":"","sectionTitle":"indyLedgers","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgers","type":"docs"},{"id":107,"pageTitle":"","sectionTitle":"indyLedgers.id*","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersid","type":"docs"},{"id":108,"pageTitle":"","sectionTitle":"indyLedgers.indyNamespace","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersindynamespace","type":"docs"},{"id":109,"pageTitle":"","sectionTitle":"indyLedgers.isProduction*","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersisproduction","type":"docs"},{"id":110,"pageTitle":"","sectionTitle":"indyLedgers.genesisPath","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersgenesispath","type":"docs"},{"id":111,"pageTitle":"","sectionTitle":"indyLedgers.genesisTransactions","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersgenesistransactions","type":"docs"},{"id":112,"pageTitle":"","sectionTitle":"indyLedgers.transactionAuthorAgreement","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgerstransactionauthoragreement","type":"docs"},{"id":113,"pageTitle":"","sectionTitle":"indyLedgers.transactionAuthorAgreement.version","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgerstransactionauthoragreementversion","type":"docs"},{"id":114,"pageTitle":"","sectionTitle":"indyLedgers.transactionAuthorAgreement.acceptanceMechanism","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgerstransactionauthoragreementacceptancemechanism","type":"docs"},{"id":115,"pageTitle":"","sectionTitle":"connectToIndyLedgerOnStartup","sectionRoute":"/guides/0.3/tutorials/agent-config#connecttoindyledgeronstartup","type":"docs"},{"id":116,"pageTitle":"","sectionTitle":"logger","sectionRoute":"/guides/0.3/tutorials/agent-config#logger","type":"docs"},{"id":117,"pageTitle":"","sectionTitle":"didCommMimeType","sectionRoute":"/guides/0.3/tutorials/agent-config#didcommmimetype","type":"docs"},{"id":118,"pageTitle":"","sectionTitle":"autoAcceptCredentials","sectionRoute":"/guides/0.3/tutorials/agent-config#autoacceptcredentials","type":"docs"},{"id":119,"pageTitle":"","sectionTitle":"autoAcceptProofs","sectionRoute":"/guides/0.3/tutorials/agent-config#autoacceptproofs","type":"docs"},{"id":120,"pageTitle":"","sectionTitle":"autoAcceptMediationRequests","sectionRoute":"/guides/0.3/tutorials/agent-config#autoacceptmediationrequests","type":"docs"},{"id":121,"pageTitle":"","sectionTitle":"mediatorConnectionsInvite","sectionRoute":"/guides/0.3/tutorials/agent-config#mediatorconnectionsinvite","type":"docs"},{"id":122,"pageTitle":"","sectionTitle":"defaultMediatorId","sectionRoute":"/guides/0.3/tutorials/agent-config#defaultmediatorid","type":"docs"},{"id":123,"pageTitle":"","sectionTitle":"clearDefaultMediator","sectionRoute":"/guides/0.3/tutorials/agent-config#cleardefaultmediator","type":"docs"},{"id":124,"pageTitle":"","sectionTitle":"mediatorPollingInterval","sectionRoute":"/guides/0.3/tutorials/agent-config#mediatorpollinginterval","type":"docs"},{"id":125,"pageTitle":"","sectionTitle":"mediatorPickupStratery","sectionRoute":"/guides/0.3/tutorials/agent-config#mediatorpickupstratery","type":"docs"},{"id":126,"pageTitle":"","sectionTitle":"maximumMessagePickup (subject to change)","sectionRoute":"/guides/0.3/tutorials/agent-config#maximummessagepickup-subject-to-change","type":"docs"},{"id":127,"pageTitle":"","sectionTitle":"useLegacyDidSovPrefix","sectionRoute":"/guides/0.3/tutorials/agent-config#uselegacydidsovprefix","type":"docs"},{"id":128,"pageTitle":"","sectionTitle":"connectionImageUrl","sectionRoute":"/guides/0.3/tutorials/agent-config#connectionimageurl","type":"docs"},{"id":129,"pageTitle":"","sectionTitle":"autoUpdateStorageOnStartup","sectionRoute":"/guides/0.3/tutorials/agent-config#autoupdatestorageonstartup","type":"docs"},{"id":130,"pageTitle":"","sectionTitle":"Logging","sectionRoute":"/guides/0.3/tutorials/agent-config/logging","type":"docs"},{"id":131,"pageTitle":"","sectionTitle":"Using the Default ConsoleLogger","sectionRoute":"/guides/0.3/tutorials/agent-config/logging#using-the-default-consolelogger","type":"docs"},{"id":132,"pageTitle":"","sectionTitle":"Creating your own Logger","sectionRoute":"/guides/0.3/tutorials/agent-config/logging#creating-your-own-logger","type":"docs"},{"id":133,"pageTitle":"","sectionTitle":"Indy Logs","sectionRoute":"/guides/0.3/tutorials/agent-config/logging#indy-logs","type":"docs"},{"id":145,"pageTitle":"","sectionTitle":"Create a connection","sectionRoute":"/guides/0.3/tutorials/create-a-connection","type":"docs"},{"id":146,"pageTitle":"","sectionTitle":"1. Setting up the agents","sectionRoute":"/guides/0.3/tutorials/create-a-connection#1-setting-up-the-agents","type":"docs"},{"id":147,"pageTitle":"","sectionTitle":"3. Receiving the invitation","sectionRoute":"/guides/0.3/tutorials/create-a-connection#3-receiving-the-invitation","type":"docs"},{"id":148,"pageTitle":"","sectionTitle":"4. (additional) listen to incoming connection responses","sectionRoute":"/guides/0.3/tutorials/create-a-connection#4-additional-listen-to-incoming-connection-responses","type":"docs"},{"id":149,"pageTitle":"","sectionTitle":"5. Full code snippets","sectionRoute":"/guides/0.3/tutorials/create-a-connection#5-full-code-snippets","type":"docs"},{"id":150,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/0.3/tutorials/create-a-connection#useful-resources","type":"docs"},{"id":158,"pageTitle":"","sectionTitle":"Issue a credential","sectionRoute":"/guides/0.3/tutorials/issue-a-credential","type":"docs"},{"id":159,"pageTitle":"","sectionTitle":"1. Setting up the agents","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#1-setting-up-the-agents","type":"docs"},{"id":160,"pageTitle":"","sectionTitle":"2. Registering the schema and credential definition","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#2-registering-the-schema-and-credential-definition","type":"docs"},{"id":161,"pageTitle":"","sectionTitle":"3. Listening for incoming credentials","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#3-listening-for-incoming-credentials","type":"docs"},{"id":162,"pageTitle":"","sectionTitle":"4. Issuing a credential","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#4-issuing-a-credential","type":"docs"},{"id":163,"pageTitle":"","sectionTitle":"5. Full code snippets","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#5-full-code-snippets","type":"docs"},{"id":164,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#useful-resources","type":"docs"},{"id":165,"pageTitle":"","sectionTitle":"Side notes","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#side-notes","type":"docs"},{"id":134,"pageTitle":"","sectionTitle":"Using PostgreSQL as Database in Node.js","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs","type":"docs"},{"id":135,"pageTitle":"","sectionTitle":"Installation of the Postgres Plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs#installation-of-the-postgres-plugin","type":"docs"},{"id":136,"pageTitle":"","sectionTitle":"Using the Postgres Plugin in AFJ","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs#using-the-postgres-plugin-in-afj","type":"docs"},{"id":137,"pageTitle":"","sectionTitle":"Postgres Setup for Linux","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux","type":"docs"},{"id":138,"pageTitle":"","sectionTitle":"Prerequisites","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#prerequisites","type":"docs"},{"id":139,"pageTitle":"","sectionTitle":"Step 1: installing the dependencies using apt","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-1-installing-the-dependencies-using-apt","type":"docs"},{"id":140,"pageTitle":"","sectionTitle":"Debian based (Ubuntu, Mint, Kali, Deepin, etc.)","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#debian-based-ubuntu-mint-kali-deepin-etc","type":"docs"},{"id":141,"pageTitle":"","sectionTitle":"Step 2: Build Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-2-build-postgres-plugin","type":"docs"},{"id":142,"pageTitle":"","sectionTitle":"Step 2.1: Cloning the indy-sdk","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-21-cloning-the-indy-sdk","type":"docs"},{"id":143,"pageTitle":"","sectionTitle":"Step 2.2: Building Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-22-building-postgres-plugin","type":"docs"},{"id":144,"pageTitle":"","sectionTitle":"Step 2.3: Moving the file","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-23-moving-the-file","type":"docs"},{"id":151,"pageTitle":"","sectionTitle":"Postgres Setup for macOS","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos","type":"docs"},{"id":152,"pageTitle":"","sectionTitle":"Prerequisites","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#prerequisites","type":"docs"},{"id":153,"pageTitle":"","sectionTitle":"Step 1: installing the dependencies using brew","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-1-installing-the-dependencies-using-brew","type":"docs"},{"id":154,"pageTitle":"","sectionTitle":"Step 2: Build Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-2-build-postgres-plugin","type":"docs"},{"id":155,"pageTitle":"","sectionTitle":"Step 2.1: Cloning the indy-sdk","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-21-cloning-the-indy-sdk","type":"docs"},{"id":156,"pageTitle":"","sectionTitle":"Step 2.2: Building Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-22-building-postgres-plugin","type":"docs"},{"id":157,"pageTitle":"","sectionTitle":"Step 2.3: Moving the file","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-23-moving-the-file","type":"docs"},{"id":166,"pageTitle":"","sectionTitle":"Postgres Setup for windows","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows","type":"docs"},{"id":167,"pageTitle":"","sectionTitle":"Build Environment Prerequisites","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#build-environment-prerequisites","type":"docs"},{"id":168,"pageTitle":"","sectionTitle":"Step 1: Getting dependencies","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-1-getting-dependencies","type":"docs"},{"id":169,"pageTitle":"","sectionTitle":"Step 2: Build Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-2-build-postgres-plugin","type":"docs"},{"id":170,"pageTitle":"","sectionTitle":"Step 2.1: Cloning the indy-sdk","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-21-cloning-the-indy-sdk","type":"docs"},{"id":171,"pageTitle":"","sectionTitle":"Step 2.2: Building Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-22-building-postgres-plugin","type":"docs"},{"id":172,"pageTitle":"","sectionTitle":"Step 2.3: Setting the file to PATH","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-23-setting-the-file-to-path","type":"docs"},{"id":173,"pageTitle":"","sectionTitle":"Updating AFJ","sectionRoute":"/guides/0.3/updating","type":"docs"},{"id":174,"pageTitle":"","sectionTitle":"📄️ Update Assistant","sectionRoute":"/guides/0.3/updating","type":"docs"},{"id":175,"pageTitle":"","sectionTitle":"📄️ Migrating from AFJ 0.1.0 to 0.2.x","sectionRoute":"/guides/0.3/updating","type":"docs"},{"id":176,"pageTitle":"","sectionTitle":"📄️ Migrating from AFJ 0.2.x to 0.3.x","sectionRoute":"/guides/0.3/updating","type":"docs"},{"id":177,"pageTitle":"","sectionTitle":"Versioning","sectionRoute":"/guides/0.3/updating#versioning","type":"docs"},{"id":178,"pageTitle":"","sectionTitle":"Types of breaking changes","sectionRoute":"/guides/0.3/updating#types-of-breaking-changes","type":"docs"},{"id":179,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/0.3/updating#breaking-code-changes","type":"docs"},{"id":180,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/0.3/updating#breaking-storage-changes","type":"docs"},{"id":181,"pageTitle":"","sectionTitle":"Migration Guides","sectionRoute":"/guides/0.3/updating#migration-guides","type":"docs"},{"id":182,"pageTitle":"","sectionTitle":"Update Assistant","sectionRoute":"/guides/0.3/updating/update-assistant","type":"docs"},{"id":183,"pageTitle":"","sectionTitle":"Update Strategies","sectionRoute":"/guides/0.3/updating/update-assistant#update-strategies","type":"docs"},{"id":184,"pageTitle":"","sectionTitle":"Manually instantiating the update assistant on agent startup","sectionRoute":"/guides/0.3/updating/update-assistant#manually-instantiating-the-update-assistant-on-agent-startup","type":"docs"},{"id":185,"pageTitle":"","sectionTitle":"Storing the agent storage version outside of the agent storage","sectionRoute":"/guides/0.3/updating/update-assistant#storing-the-agent-storage-version-outside-of-the-agent-storage","type":"docs"},{"id":186,"pageTitle":"","sectionTitle":"Automatically update on agent startup","sectionRoute":"/guides/0.3/updating/update-assistant#automatically-update-on-agent-startup","type":"docs"},{"id":187,"pageTitle":"","sectionTitle":"Backups","sectionRoute":"/guides/0.3/updating/update-assistant#backups","type":"docs"},{"id":198,"pageTitle":"","sectionTitle":"Migrating from AFJ 0.1.0 to 0.2.x","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2","type":"docs"},{"id":199,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#breaking-code-changes","type":"docs"},{"id":200,"pageTitle":"","sectionTitle":"Credentials Module","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#credentials-module","type":"docs"},{"id":201,"pageTitle":"","sectionTitle":"Connections Module","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#connections-module","type":"docs"},{"id":202,"pageTitle":"","sectionTitle":"Updating Custom Messages to the New Message Type Objects","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#updating-custom-messages-to-the-new-message-type-objects","type":"docs"},{"id":203,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#breaking-storage-changes","type":"docs"},{"id":204,"pageTitle":"","sectionTitle":"Credential Metadata","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#credential-metadata","type":"docs"},{"id":205,"pageTitle":"","sectionTitle":"Migrate Credential Record Properties","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#migrate-credential-record-properties","type":"docs"},{"id":206,"pageTitle":"","sectionTitle":"Mediation Record Role","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#mediation-record-role","type":"docs"},{"id":207,"pageTitle":"","sectionTitle":"Extracting Did Documents to Did Repository","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#extracting-did-documents-to-did-repository","type":"docs"},{"id":208,"pageTitle":"","sectionTitle":"Migrating to the Out of Band Record","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#migrating-to-the-out-of-band-record","type":"docs"},{"id":209,"pageTitle":"","sectionTitle":"Unifying Connection States and Roles","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#unifying-connection-states-and-roles","type":"docs"},{"id":215,"pageTitle":"","sectionTitle":"Migrating from AFJ 0.2.x to 0.3.x","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3","type":"docs"},{"id":216,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#breaking-code-changes","type":"docs"},{"id":217,"pageTitle":"","sectionTitle":"Agent creation","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#agent-creation","type":"docs"},{"id":218,"pageTitle":"","sectionTitle":"did:key usage in protocols","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#didkey-usage-in-protocols","type":"docs"},{"id":219,"pageTitle":"","sectionTitle":"Modules extracted from the core","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#modules-extracted-from-the-core","type":"docs"},{"id":220,"pageTitle":"","sectionTitle":"Discover Features Module","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#discover-features-module","type":"docs"},{"id":221,"pageTitle":"","sectionTitle":"Ledger Module","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#ledger-module","type":"docs"},{"id":222,"pageTitle":"","sectionTitle":"Proofs Module","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#proofs-module","type":"docs"},{"id":223,"pageTitle":"","sectionTitle":"Out Of Band Proofs and Credentials","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#out-of-band-proofs-and-credentials","type":"docs"},{"id":224,"pageTitle":"","sectionTitle":"Updating Custom Modules to the new Plugin API","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#updating-custom-modules-to-the-new-plugin-api","type":"docs"},{"id":225,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#breaking-storage-changes","type":"docs"},{"id":226,"pageTitle":"","sectionTitle":"Migrate Proof Record Properties","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#migrate-proof-record-properties","type":"docs"},{"id":227,"pageTitle":"","sectionTitle":"Migrate Connection Record properties","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#migrate-connection-record-properties","type":"docs"},{"id":228,"pageTitle":"","sectionTitle":"Migrate Did Record properties","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#migrate-did-record-properties","type":"docs"}],"index":{"version":"2.3.9","fields":["title","content","sidebarParentCategories"],"fieldVectors":[["title/10",[0,6.518]],["content/10",[1,2.968,2,1.605,3,2.025,4,5.09,5,2.311,6,1.498,7,2.663,8,2.001,9,2.461,10,2.663,11,2.005,12,2.968,13,2.663,14,2.968,15,4.667,16,2.968,17,1.375,18,1.93,19,1.533,20,3.287,21,4.667,22,2.304,23,2.968,24,3.287,25,2.574,26,2.461,27,2.968,28,2.968,29,3.399,30,2.122,31,0.648,32,2.162,33,3.505,34,1.521,35,1.864,36,4.782,37,2.311,38,4.257,39,2.663,40,2.091,41,1.571,42,4.782,43,1.498,44,2.461,45,2.968,46,2.311,47,2.311,48,2.968,49,2.663,50,1.375,51,2.663,52,2.663,53,1.228,54,2.968,55,0.542,56,2.968,57,2.968,58,0.938,59,1.653,60,4.667,61,4.667,62,2.119,63,2.461,64,2.968,65,2.461,66,1.611,67,2.533,68,1.611,69,1.533,70,0.996,71,1.042,72,2.461,73,1.804,74,2.968,75,2.663,76,2.968,77,1.804,78,2.005,79,2.663,80,2.663,81,2.005,82,2.968,83,4.186,84,1.7,85,2.968,86,1.611,87,0.549,88,2.663,89,1.571,90,2.461,91,1.7,92,2.005,93,1.533,94,2.968,95,1.533,96,1.092,97,2.968,98,2.968,99,2.968,100,2.968,101,2.311,102,0.682]],["sidebarParentCategories/10",[]],["title/1",[86,3.537]],["content/1",[2,1.87,3,2.732,8,2.12,22,1.975,24,3.482,25,2.464,29,2.913,31,1.079,33,3.004,55,1.421,58,1.266,66,2.682,67,2.682,68,2.682,69,3.515,70,2.283,71,2.389,84,2.83,86,3.692,103,2.29,104,3.482,105,3.104,106,3.79,107,4.943,108,2.754,109,4.943,110,3.339,111,2.754,112,2.554,113,4.597,114,2.83,115,3.03,116,5.297,117,2.495,118,3.104,119,3.004]],["sidebarParentCategories/1",[]],["title/2",[31,1.162,55,0.973]],["content/2",[2,1.949,8,3.385,111,4.397,112,4.078]],["sidebarParentCategories/2",[]],["title/3",[55,0.822,113,3.042,114,2.579]],["content/3",[113,5.6]],["sidebarParentCategories/3",[]],["title/4",[55,0.822,66,2.444,115,2.005]],["content/4",[2,1.701,3,2.808,22,2.521,24,4.446,25,2.896,29,3.72,58,1.301,67,3.425,68,3.425,69,4.132,70,2.684,71,2.808,106,3.516,115,2.811,116,6.226,117,3.186,118,3.963,119,3.836]],["sidebarParentCategories/4",[]],["title/5",[31,1.422]],["content/5",[2,1.972,8,3.057,25,2.581,31,1.555,111,3.971,112,3.682,120,4.815,121,4.332,122,4.937,123,3.995]],["sidebarParentCategories/5",[86,3.267]],["title/6",[124,5.846]],["content/6",[2,1.697,3,1.55,11,2.983,29,2.602,30,1.624,31,1.84,34,1.439,46,3.437,58,0.718,106,2.459,112,3.248,114,3.6,121,2.683,124,3.96,125,3.661,126,3.96,127,5.639,128,4.415,129,6.287,130,4.247,131,3.96,132,4.894,133,4.415,134,3.437,135,4.415,136,4.415,137,3.437,138,3.437,139,6.287,140,2.045,141,4.894,142,4.415,143,4.415,144,3.661,145,2.973,146,1.705,147,4.428,148,2.459,149,2.855,150,1.624,151,2.396,152,1.893,153,2.772,154,3.96,155,3.437,156,3.437,157,3.661,158,4.415,159,2.871,160,3.96,161,4.415,162,3.437,163,2.683]],["sidebarParentCategories/6",[86,3.267]],["title/7",[164,5.846]],["content/7",[2,1.723,3,1.876,31,2.134,34,1.741,35,4.504,106,2.976,164,7.264,165,4.159,166,7.264,167,3.943,168,4.395,169,6.435,170,4.504,171,2.827,172,2.475,173,3.247,174,4.792,175,5.342,176,5.342,177,5.342,178,6.435,179,3.247,180,3.706,181,5.342]],["sidebarParentCategories/7",[86,3.267]],["title/8",[96,2.398]],["content/8",[2,1.39,11,4.415,30,1.716,31,1.426,33,2.835,34,1.52,44,3.867,53,1.929,55,0.852,58,1.063,70,1.565,71,1.638,96,2.404,108,2.598,131,4.184,132,3.631,134,3.631,137,3.631,138,3.631,146,1.802,150,1.716,151,2.531,152,2,153,2.929,155,3.631,162,3.631,168,4.094,172,3.027,180,2.41,182,2.671,183,3.867,184,4.664,185,4.664,186,4.664,187,4.664,188,4.664,189,2.749,190,2.749,191,5.316,192,4.664,193,4.664,194,4.664,195,6.535,196,4.184,197,3.867,198,3.033,199,4.664,200,2,201,4.184,202,2.929,203,4.184]],["sidebarParentCategories/8",[86,3.267]],["title/9",[40,3.752,58,0.866]],["content/9",[2,1.883,3,2.615,25,2.698,31,1.625,42,6.177,102,1.711,204,5.247,205,6.682,206,2.054]],["sidebarParentCategories/9",[86,3.267]],["title/11",[113,3.598,114,3.05]],["content/11",[]],["sidebarParentCategories/11",[86,3.267]],["title/12",[113,4.403]],["content/12",[11,5.503,29,3.829,43,3.28,113,5.503,144,5.388,153,4.08,196,5.828,203,5.828,207,5.828,208,8.145,209,6.012,210,1.972,211,4.389,212,4.577,213,5.828,214,6.497,215,6.497,216,5.388,217,6.497]],["sidebarParentCategories/12",[86,3.267]],["title/13",[32,3.019]],["content/13",[20,4.404,32,3.683,59,4.428,140,2.896,148,3.483,151,3.392,152,2.681,190,3.685,191,4.066,218,4.614,219,4.867,220,4.066,221,4.614,222,5.184,223,5.608,224,3.685,225,3.392,226,4.404,227,5.6,228,4.552,229,4.404,230,4.066,231,5.184]],["sidebarParentCategories/13",[86,3.267]],["title/14",[114,3.732]],["content/14",[2,1.101,3,1.817,8,3.011,46,4.029,47,4.029,49,4.642,103,2.397,104,3.645,105,3.25,106,2.883,114,4.562,121,3.145,146,1.999,148,2.883,151,3.81,152,3.011,153,3.25,155,6.204,182,2.963,227,3.645,228,2.963,232,3.25,233,4.029,234,5.175,235,3.145,236,5.175,237,3.05,238,2.305,239,3.496,240,4.642,241,3.366,242,4.291,243,3.25,244,5.175,245,3.82,246,5.175,247,3.145,248,3.366,249,3.496,250,4.642,251,4.029,252,1.966]],["sidebarParentCategories/14",[86,3.267]],["title/15",[40,3.752,58,0.866]],["content/15",[114,4.63,253,8.333]],["sidebarParentCategories/15",[86,3.267]],["title/16",[66,2.89,115,2.372]],["content/16",[2,1.701,3,2.808,22,2.521,24,4.446,25,2.896,29,3.72,58,1.301,67,3.425,68,3.425,69,4.132,70,2.684,71,2.808,106,3.516,115,2.811,116,6.226,117,3.186,118,3.963,119,3.836]],["sidebarParentCategories/16",[86,3.267]],["title/17",[2,0.958,3,1.581,106,2.509]],["content/17",[2,1.469,3,2.424,59,3.846,92,4.664,93,3.567,103,3.198,106,3.846,159,4.49,202,4.335,254,3.953,255,6.905,256,8.458,257,6.905,258,5.375,259,4.864,260,4.335]],["sidebarParentCategories/17",[]],["title/18",[93,3.367]],["content/18",[2,1.998,3,3.152,25,2.987,31,1.446,70,2.224,71,2.327,93,3.424,125,5.496,168,3.597,261,3.795,262,6.628,263,3.597,264,4.028,265,3.07,266,5.16]],["sidebarParentCategories/18",[]],["title/19",[32,3.019]],["content/19",[2,1.954,3,2.989,25,3.083,31,1.522,32,3.232,38,5.15,70,2.342,71,2.45,168,3.786,238,3.107,265,3.232,266,5.432]],["sidebarParentCategories/19",[]],["title/20",[2,0.958,3,1.581,25,1.631]],["content/20",[2,1.799,3,2.97,25,2.5,43,3.485,92,4.664,106,3.846,146,2.667,152,2.961,163,4.196,200,2.961,252,2.623,267,2.838,268,5.096,269,5.096]],["sidebarParentCategories/20",[]],["title/21",[2,0.83,106,2.173,270,3.235,271,3.235]],["content/21",[2,1.918,8,2.871,25,2.425,67,3.633,166,6.005,261,3.833,266,5.212,271,5.551,272,5.212,273,6.695,274,6.695,275,9.428,276,6.695,277,4.716,278,6.695]],["sidebarParentCategories/21",[]],["title/22",[67,2.89,270,4.417]],["content/22",[2,1.247,43,2.96,67,3.182,75,5.26,91,4.368,149,2.663,232,3.682,266,4.565,267,2.56,270,7.031,272,4.565,279,5.153,280,7.628,281,7.628,282,5.26,283,5.864,284,2.059,285,5.864,286,5.864,287,5.864,288,4.862,289,5.864,290,4.862,291,5.864,292,4.328,293,5.864,294,4.13]],["sidebarParentCategories/22",[]],["title/25",[265,3.019]],["content/25",[2,1.917,3,2.776,7,3.375,25,2.864,31,1.221,53,2.314,55,1.351,58,0.612,70,2.242,79,3.375,91,2.154,93,2.89,96,1.384,112,1.943,122,3.825,123,2.592,154,3.375,191,2.446,228,2.154,247,2.286,254,2.154,260,2.362,261,2.154,265,3.427,267,1.878,268,2.777,295,3.119,296,3.4,297,3.375,298,2.777,299,3.762,300,3.762,301,3.762,302,2.646,303,4.811,304,5.992,305,1.341,306,3.119,307,3.375,308,3.639,309,3.119,310,2.154,311,2.777,312,3.375,313,4.706,314,3.941,315,1.708,316,3.498,317,4.014]],["sidebarParentCategories/25",[]],["title/26",[55,0.822,122,2.579,123,2.086]],["content/26",[316,3.871,317,4.443]],["sidebarParentCategories/26",[]],["title/27",[55,0.822,70,1.511,303,2.929]],["content/27",[316,3.871,317,4.443]],["sidebarParentCategories/27",[]],["title/28",[53,1.863,55,0.822,308,2.929]],["content/28",[316,3.871,317,4.443]],["sidebarParentCategories/28",[]],["title/29",[55,0.822,313,3.172,314,3.172]],["content/29",[316,3.871,317,4.443]],["sidebarParentCategories/29",[]],["title/23",[313,3.752,314,3.752]],["content/23",[6,3.414,31,1.476,43,3.414,58,1.1,120,4.569,180,3.494,267,2.27,302,3.198,313,6.382,314,6.382,315,3.071,318,3.768,319,6.763,320,6.763,321,6.763]],["sidebarParentCategories/23",[265,2.789]],["title/30",[322,2.696]],["content/30",[2,1.804,3,2.059,25,2.124,58,0.954,91,3.357,93,3.029,102,1.347,103,2.716,206,1.617,267,1.968,284,2.059,302,3.607,312,6.843,313,6.325,314,5.373,315,2.663,323,2.342,324,2.562,325,4.13,326,2.716,327,3.765,328,3.85,329,3.85]],["sidebarParentCategories/30",[265,1.782,313,2.709,314,2.709]],["title/24",[70,1.788,303,3.464]],["content/24",[6,3.155,31,1.364,43,3.155,58,1.017,70,2.933,78,4.223,112,3.23,180,4.107,189,4.685,191,4.066,267,2.098,302,2.956,303,5.684,330,4.614,331,4.867,332,7.131,333,4.066,334,5.184,335,6.252,336,4.404]],["sidebarParentCategories/24",[265,2.789]],["title/31",[322,2.696]],["content/31",[2,1.469,3,2.424,25,2.5,58,1.123,70,2.317,93,3.567,102,1.586,103,3.198,206,1.904,267,2.317,284,2.424,302,3.265,303,4.49,323,2.758,324,3.017,325,4.864,326,3.198]],["sidebarParentCategories/31",[70,1.291,265,1.782,303,2.501]],["title/32",[337,1.046]],["content/32",[2,1.743,70,2.202,91,3.757,198,4.267,302,3.103,303,5.812,310,4.693,322,2.714,327,4.045,328,4.137,329,4.137,338,2.621,339,4.622,340,4.267,341,3.473]],["sidebarParentCategories/32",[70,1.291,265,1.782,303,2.501]],["title/33",[53,2.203,308,3.464]],["content/33",[22,2.205,24,3.889,25,1.999,30,2.031,31,1.6,53,3.033,55,1.008,58,1.339,70,2.461,71,1.938,111,3.075,112,2.852,150,2.031,180,3.788,189,3.254,225,2.996,267,2.461,308,4.768,332,6.577,342,6.179,343,4.322,344,4.578,345,2.168,346,4.298,347,2.852,348,5.521,349,5.521,350,3.73]],["sidebarParentCategories/33",[265,2.789]],["title/34",[322,2.696]],["content/34",[2,1.469,3,2.424,25,2.5,53,2.856,58,1.123,93,3.567,102,1.586,103,3.198,206,1.904,267,2.317,284,2.424,302,3.265,308,4.49,323,2.758,324,3.017,325,4.864,326,3.198]],["sidebarParentCategories/34",[53,1.591,265,1.782,308,2.501]],["title/35",[337,1.046]],["content/35",[2,1.743,53,3.697,91,3.757,198,4.267,302,3.103,307,7.352,308,4.267,322,2.714,327,4.045,328,4.137,329,4.137,338,2.621,339,4.622,340,4.267,341,3.473]],["sidebarParentCategories/35",[53,1.591,265,1.782,308,2.501]],["title/36",[122,3.05,123,2.467]],["content/36",[2,1.363,3,1.593,4,3.532,6,2.29,9,3.761,10,4.069,11,3.064,17,2.101,18,2.95,24,4.514,25,1.643,30,1.669,31,1.762,34,1.478,43,3.235,46,3.532,55,1.357,67,2.462,102,1.042,111,2.527,112,3.311,122,4.877,123,3.442,149,2.06,150,1.669,180,3.311,225,2.462,228,4.255,247,2.757,248,2.95,260,4.024,267,2.494,324,1.982,333,2.95,340,2.95,351,2.343,352,4.536,353,4.536,354,4.536,355,2.145,356,3.761,357,2.674,358,3.761,359,4.536,360,2.597,361,4.069]],["sidebarParentCategories/36",[265,2.789]],["title/40",[322,2.696]],["content/40",[25,2.554,66,3.827,69,3.643,91,4.038,102,1.619,103,3.267,206,1.944,230,4.586,322,2.917,326,3.267,337,1.132,362,3.674,363,3.732,364,2.438]],["sidebarParentCategories/40",[122,2.202,123,1.782,265,1.782]],["title/41",[322,2.203,365,5.327]],["content/41",[6,3.803,58,1.225,102,1.73,120,5.09,122,4.314,123,3.49,358,6.247,366,6.247,367,7.534]],["sidebarParentCategories/41",[122,2.202,123,1.782,265,1.782]],["title/42",[120,3.598,368,4.147]],["content/42",[2,1.021,32,2.223,43,3.365,55,1.686,58,0.781,72,5.528,81,3.242,102,1.102,122,4.386,123,2.223,140,2.223,171,2.54,172,3.088,173,2.917,228,4.386,241,4.336,247,4.052,267,2.237,309,3.98,331,3.737,337,1.07,340,3.121,341,2.54,369,3.542,370,3.737,371,3.381,372,3.381,373,2.604,374,2.318,375,4.305,376,4.8,377,4.8,378,4.8,379,3.121,380,3.737,381,3.121,382,3.381,383,4.305,384,4.8,385,3.121,386,4.8,387,4.8]],["sidebarParentCategories/42",[122,2.202,123,1.782,265,1.782]],["title/43",[355,3.082]],["content/43",[2,1.382,33,4.95,38,4.796,102,1.492,122,3.72,249,5.503,263,3.526,267,2.18,309,5.388,341,3.438,355,3.072,358,6.754,371,4.577,372,4.577,388,4.664,389,3.619,390,6.497,391,4.577,392,4.389]],["sidebarParentCategories/43",[122,2.202,123,1.782,265,1.782]],["title/37",[102,1.223,206,1.469]],["content/37",[2,0.992,3,1.638,8,2,25,1.689,29,2.749,34,1.52,50,2.161,55,1.193,58,0.759,62,2.118,70,2.193,71,2.295,89,2.468,102,1.071,103,2.161,110,3.151,118,2.929,119,2.835,168,2.531,173,2.835,189,3.852,198,3.033,232,2.929,258,3.631,259,3.285,260,2.929,317,2.531,322,2.703,323,1.863,337,1.382,350,3.151,362,3.506,363,2.468,364,2.26,393,2.929,394,4.664,395,2.161,396,1.983,397,3.225,398,3.442,399,6.535,400,2.835,401,3.867,402,1.589,403,3.285,404,4.664,405,2.929]],["sidebarParentCategories/37",[]],["title/38",[55,0.973,337,0.855]],["content/38",[317,4.443,405,5.14]],["sidebarParentCategories/38",[]],["title/39",[55,0.973,322,2.203]],["content/39",[232,4.898,337,1.252,362,3.902,363,4.128,364,2.697]],["sidebarParentCategories/39",[]],["title/45",[337,1.046]],["content/45",[2,1.028,3,1.697,8,2.874,18,3.144,22,2.677,34,1.575,62,2.195,70,1.622,71,1.697,73,2.938,106,3.733,115,2.153,168,2.624,173,2.938,220,3.144,284,2.353,290,4.009,322,2.772,324,2.928,326,2.24,337,1.235,340,3.144,350,3.266,362,3.74,364,2.871,395,2.24,396,1.467,398,3.568,401,5.556,403,3.406,406,4.337,407,4.337,408,3.568,409,3.568,410,3.764,411,3.036,412,4.337,413,2.849,414,3.568,415,4.009,416,3.837]],["sidebarParentCategories/45",[102,1.078,206,1.294]],["title/44",[396,1.978]],["content/44",[2,1.127,3,1.861,8,2.273,25,1.919,62,3.24,66,2.876,102,1.217,197,4.394,238,2.36,259,3.733,260,3.328,279,3.58,323,2.117,324,2.315,328,2.675,329,2.675,337,1.446,362,2.273,364,1.833,396,1.608,402,2.43,417,4.126,418,5.3,419,5.3,420,4.126,421,4.394,422,4.754,423,3.328,424,3.58,425,5.026,426,4.126,427,4.754,428,3.912,429,5.3,430,5.3,431,3.446,432,3.912,433,1.461,434,1.861]],["sidebarParentCategories/44",[102,0.883,206,1.06,337,0.617]],["title/60",[425,3.752,427,4.778]],["content/60",[58,1.007,62,2.812,103,2.869,104,4.362,121,3.764,337,1.472,363,3.277,368,4.822,389,3.45,402,2.11,425,4.362,435,6.193,436,5.555,437,8.702,438,6.193,439,6.193,440,3.889,441,4.028,442,5.555,443,5.555,444,4.571,445,5.135,446,5.555]],["sidebarParentCategories/60",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/61",[396,1.978]],["content/61",[3,2.503,115,3.174,173,4.332,337,1.144,341,3.772,396,2.617,440,4.476,447,5.261,448,5.549,449,5.549,450,5.549,451,5.549,452,5.261]],["sidebarParentCategories/61",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/62",[328,3.29]],["content/62",[302,3.562,337,1.21,339,5.307,343,4.44,396,2.286,428,5.561,453,4.899,454,5.307,455,5.561]],["sidebarParentCategories/62",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/63",[329,3.29]],["content/63",[58,1.198,66,3.997,252,2.799,328,4.439,329,4.439,337,1.412,456,4.218,457,5.437]],["sidebarParentCategories/63",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/64",[431,4.238]],["content/64",[58,1.198,231,6.108,337,1.183,431,5.72,433,2.031,434,2.586,440,4.625,458,6.607,459,6.607,460,6.108]],["sidebarParentCategories/64",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/65",[432,4.81]],["content/65",[58,1.212,152,3.194,337,1.196,432,5.498,433,2.054,434,2.615,440,4.677,461,6.682,462,6.682,463,6.177]],["sidebarParentCategories/65",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/66",[433,1.469,434,1.87]],["content/66",[2,0.958,3,1.582,22,1.8,25,1.632,58,0.733,110,3.044,112,2.327,146,1.74,157,3.736,159,2.93,163,2.738,170,2.829,238,2.006,243,2.829,249,3.044,269,3.325,296,5.163,327,2.224,338,1.8,346,3.507,364,1.558,389,2.51,395,2.954,410,3.507,423,2.829,433,2.041,434,2.599,441,4.147,460,3.736,464,3.325,465,2.384,466,3.325,467,4.147,468,3.507,469,3.736,470,4.648,471,4.041,472,3.325,473,3.173,474,3.507,475,4.308,476,4.505,477,4.505,478,3.325,479,3.173,480,2.58,481,3.325,482,2.829,483,3.325,484,1.74,485,3.325,486,3.325,487,4.505,488,4.505]],["sidebarParentCategories/66",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/67",[337,0.855,369,3.931]],["content/67",[2,1.484,19,3.605,326,3.232,337,1.367,341,3.692,364,2.413,371,4.915,372,4.915,389,3.887,433,2.347,434,2.45,467,4.538,489,3.995,490,5.432]],["sidebarParentCategories/67",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/46",[425,3.752,426,4.147]],["content/46",[62,2.98,103,3.04,104,4.622,121,3.988,337,1.503,363,3.473,368,5.109,389,3.655,402,2.235,425,4.622,426,5.109,440,4.12,441,4.267,442,5.886,443,5.886,444,4.843,445,5.441,446,5.886,491,6.562]],["sidebarParentCategories/46",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/47",[396,1.978]],["content/47",[3,2.503,115,3.174,173,4.332,337,1.144,341,3.772,396,2.617,440,4.476,447,5.261,448,5.549,449,5.549,450,5.549,451,5.549,452,5.261]],["sidebarParentCategories/47",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/48",[328,3.29]],["content/48",[302,3.562,337,1.21,339,5.307,343,4.44,396,2.286,428,5.561,453,4.899,454,5.307,455,5.561]],["sidebarParentCategories/48",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/49",[329,3.29]],["content/49",[58,1.198,66,3.997,252,2.799,328,4.439,329,4.439,337,1.412,456,4.218,457,5.437]],["sidebarParentCategories/49",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/50",[433,1.469,434,1.87]],["content/50",[2,1.305,3,2.154,25,2.222,58,0.998,110,4.145,112,3.17,146,2.37,163,3.729,243,3.853,252,2.331,269,4.529,337,1.261,370,4.777,402,2.09,433,2.166,434,2.758,440,4.932,464,4.529,465,3.247,466,4.529,467,3.99,468,4.777,492,3.99,493,6.136,494,6.136]],["sidebarParentCategories/50",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/51",[337,0.855,369,3.931]],["content/51",[2,1.484,19,3.605,326,3.232,337,1.367,341,3.692,364,2.413,371,4.915,372,4.915,389,3.887,433,2.347,434,2.45,467,4.538,489,3.995,490,5.432]],["sidebarParentCategories/51",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/52",[423,4.092]],["content/52",[62,3.421,103,3.49,104,5.307,146,2.91,337,1.21,402,2.566,423,4.73,447,5.561,466,5.561]],["sidebarParentCategories/52",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/53",[396,1.978]],["content/53",[3,2.005,55,1.369,115,2.543,173,3.471,328,2.883,337,1.204,341,3.023,396,2.697,423,3.586,444,5.535,445,4.736,447,4.216,448,4.447,449,4.447,450,4.447,451,4.447,452,4.216,495,4.736,496,4.447,497,4.736,498,4.736,499,4.447,500,4.736,501,5.712,502,7.499,503,4.023,504,5.712,505,5.712,506,5.712,507,4.736]],["sidebarParentCategories/53",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/54",[328,3.29]],["content/54",[302,3.562,337,1.21,339,5.307,343,4.44,396,2.286,428,5.561,453,4.899,454,5.307,455,5.561]],["sidebarParentCategories/54",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/55",[329,3.29]],["content/55",[58,1.198,66,3.997,252,2.799,328,4.439,329,4.439,337,1.412,456,4.218,457,5.437]],["sidebarParentCategories/55",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/56",[431,4.238]],["content/56",[58,1.036,231,5.284,337,1.292,423,4.001,431,6.212,433,1.757,434,2.237,458,5.716,459,5.716,460,5.284,495,5.284,496,4.961,497,5.284,498,5.284,499,4.961,500,5.284,503,4.489,507,5.284,508,5.284,509,5.716]],["sidebarParentCategories/56",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/57",[432,4.81]],["content/57",[58,1.047,152,2.759,337,1.3,423,4.04,431,4.184,432,4.749,433,1.774,434,2.259,461,5.772,462,5.772,463,6.713,495,5.335,496,5.009,497,5.335,498,5.335,499,5.009,500,5.335,503,4.532,507,5.335,508,5.335,509,5.772,510,5.772]],["sidebarParentCategories/57",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/58",[433,1.469,434,1.87]],["content/58",[2,0.848,3,1.4,18,2.594,22,3.04,25,1.445,55,0.728,58,0.649,93,2.061,110,2.695,112,2.061,146,1.541,148,2.222,157,3.308,163,2.424,165,3.105,170,2.505,233,3.105,238,1.776,243,2.505,247,2.424,252,1.516,259,2.81,269,2.944,296,3.55,337,0.938,338,1.593,364,1.379,389,2.222,395,1.848,413,2.351,433,2.098,434,2.672,444,2.944,464,2.944,465,2.111,466,4.312,467,2.594,470,2.505,472,4.312,480,2.284,481,4.312,483,4.312,485,2.944,486,2.944,511,3.989,512,2.351,513,3.989,514,6.31,515,3.578,516,3.989,517,3.989,518,3.989,519,3.989,520,3.989,521,3.989,522,1.776,523,3.668,524,3.989,525,2.695,526,2.944,527,3.989,528,2.944,529,3.989,530,3.578,531,2.505,532,2.424,533,3.989,534,3.989]],["sidebarParentCategories/58",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/59",[337,0.855,369,3.931]],["content/59",[2,1.484,19,3.605,326,3.232,337,1.367,341,3.692,364,2.413,371,4.915,372,4.915,389,3.887,433,2.347,434,2.45,467,4.538,489,3.995,490,5.432]],["sidebarParentCategories/59",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/68",[424,4.403]],["content/68",[]],["sidebarParentCategories/68",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/69",[396,1.978]],["content/69",[3,2.53,115,3.209,173,4.379,238,3.209,341,3.813,396,2.186,447,5.318,448,5.61,449,5.61,450,5.61,451,5.61,452,5.318,470,4.524]],["sidebarParentCategories/69",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/70",[328,3.29]],["content/70",[302,3.562,337,1.21,339,5.307,343,4.44,396,2.286,428,5.561,453,4.899,454,5.307,455,5.561]],["sidebarParentCategories/70",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/71",[329,3.29]],["content/71",[58,1.198,66,3.997,252,2.799,328,4.439,329,4.439,337,1.412,456,4.218,457,5.437]],["sidebarParentCategories/71",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/72",[433,1.469,434,1.87]],["content/72",[2,1.215,3,2.005,25,2.068,58,0.929,110,3.859,112,2.951,115,2.543,146,2.206,163,3.471,170,3.586,238,2.543,243,3.586,259,4.023,269,4.216,296,4.557,410,4.447,421,6.218,433,1.575,434,2.005,464,4.216,465,3.023,469,4.736,470,3.586,535,5.124,536,4.42,537,5.712,538,5.124,539,6.727,540,2.135,541,3.586,542,5.712,543,2.951,544,3.859]],["sidebarParentCategories/72",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/73",[337,0.855,369,3.931]],["content/73",[2,1.484,19,3.605,326,3.232,337,1.367,341,3.692,364,2.413,371,4.915,372,4.915,389,3.887,433,2.347,434,2.45,467,4.538,489,3.995,490,5.432]],["sidebarParentCategories/73",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/74",[70,1.788,71,1.87]],["content/74",[22,2.758,66,3.747,69,3.567,70,2.317,71,2.424,295,5.725,322,2.856,337,1.109,402,2.352,433,1.904,434,2.424,545,4.196,546,4.864,547,5.714,548,6.585]],["sidebarParentCategories/74",[102,0.883,206,1.06,337,0.617]],["title/75",[489,3.05,549,5.327]],["content/75",[]],["sidebarParentCategories/75",[102,0.883,206,1.06,337,0.617]],["title/76",[200,1.32,322,1.273,327,1.519,547,2.079,550,3.077,551,2.76]],["content/76",[6,2.05,38,2.998,55,1.813,58,0.963,91,2.326,95,2.099,149,1.845,152,1.742,222,3.368,224,2.394,296,2.469,302,1.921,351,2.099,364,2.047,416,2.326,482,2.551,489,2.326,543,2.099,544,4.719,551,5.311,552,4.062,553,4.062,554,4.062,555,4.062,556,4.062,557,4.062,558,4.062,559,4.062,560,4.062,561,4.062,562,2.394,563,4.062,564,4.062,565,4.062,566,4.062,567,4.062,568,4.062,569,4.062,570,4.062,571,4.062,572,4.062,573,5.311,574,2.744,575,3.163,576,3.644,577,3.163,578,3.644,579,2.998,580,3.644,581,3.644,582,4.062,583,4.062,584,1.921,585,4.062,586,4.062,587,2.862,588,3.644,589,2.05,590,3.644,591,3.644,592,3.644,593,3.644]],["sidebarParentCategories/76",[102,0.883,206,1.06,337,0.617]],["title/77",[547,4.403]],["content/77",[70,2.472,71,2.586,117,3.718,183,6.108,284,2.586,324,3.218,338,2.943,364,2.547,413,4.341,547,4.976,594,6.108]],["sidebarParentCategories/77",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/78",[284,1.37,305,1.391,434,1.37,595,3.499]],["content/78",[55,1.832,105,4.247,282,6.067,305,2.411,327,3.338,434,2.375,595,6.067,596,7.491,597,8.351,598,6.763,599,6.763]],["sidebarParentCategories/78",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/79",[93,2.015,327,1.925,600,3.499,601,3.499]],["content/79",[55,1.809,93,4.01,105,3.782,170,3.782,224,3.55,327,2.973,364,2.083,481,4.446,596,6.963,600,5.404,601,7.705,602,4.874,603,3.661,604,6.024,605,3.112,606,6.024,607,5.404,608,6.024,609,6.024]],["sidebarParentCategories/79",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/80",[296,2.371,402,1.329,605,2.015,610,3.235]],["content/80",[4,5.32,55,1.734,71,2.399,73,4.153,111,3.806,220,4.444,296,4.153,402,2.328,433,1.884,434,2.399,605,3.53,610,5.666,611,6.833,612,6.129,613,6.833]],["sidebarParentCategories/80",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/81",[433,0.949,434,1.208,547,2.324,605,1.777,614,3.44]],["content/81",[8,0.811,34,1.05,55,1.556,58,0.307,62,0.858,70,1.67,71,2.4,91,1.082,105,1.187,146,0.73,149,0.858,156,1.472,170,2.024,211,1.277,220,1.229,224,1.114,252,1.224,296,2.56,305,0.674,326,0.876,327,1.591,338,0.755,345,1.954,362,0.811,364,1.114,389,1.053,393,1.187,402,0.644,433,1.161,434,1.479,444,5.045,465,1,467,1.229,470,1.187,481,3.109,483,2.379,484,0.73,486,5.045,515,1.696,547,4.618,573,1.696,574,1.277,575,1.472,576,1.696,577,1.472,578,1.696,579,1.395,580,1.696,581,1.696,587,1.332,588,1.696,589,1.627,590,1.696,591,1.696,592,1.696,593,1.696,610,1.568,612,1.696,615,1.89,616,1.696,617,1.89,618,5.583,619,1.89,620,1.696,621,1.89,622,4.212,623,4.212,624,4.212,625,4.212,626,1.89,627,1.89,628,1.89,629,3.223,630,1.89,631,3.673,632,4.212,633,4.976,634,1.89,635,1.89,636,6.835,637,3.223,638,1.89,639,4.212,640,1.89,641,1.89,642,5.583,643,1.89,644,4.212,645,1.89,646,1.89,647,2.891,648,1.89,649,4.212,650,1.89,651,1.89,652,4.976,653,4.976,654,4.976,655,4.212,656,4.976,657,4.976,658,6.835,659,1.89,660,4.212,661,1.89,662,4.212,663,1.89,664,4.212,665,1.89,666,1.696,667,3.223,668,1.89,669,1.89,670,1.89,671,1.89,672,1.89,673,1.89,674,1.89,675,4.464,676,1.696,677,1.395,678,1.696,679,0.782,680,1.89,681,1.696,682,1.696,683,1.89,684,1.89,685,1.89,686,1.89,687,1.89,688,1.696]],["sidebarParentCategories/81",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/82",[548,5.074]],["content/82",[22,1.247,55,1.595,68,1.694,70,2.443,71,2.556,91,2.78,102,0.717,189,2.862,211,4.025,239,3.28,252,1.845,261,1.788,284,1.096,294,2.199,296,1.898,305,1.731,323,1.247,327,2.396,337,0.957,355,1.476,364,1.679,397,2.396,402,1.064,433,1.339,434,1.705,466,2.305,472,5.373,484,1.206,526,2.305,528,2.305,540,1.167,544,2.109,546,3.42,548,5.232,589,3.007,620,4.356,675,6.914,676,2.801,678,2.801,679,2.464,681,2.801,682,2.801,688,2.801,689,2.801,690,3.122,691,4.856,692,1.541,693,3.122,694,2.109,695,2.431,696,3.122,697,3.122,698,5.958,699,0.69,700,3.122,701,2.801,702,3.122,703,3.122,704,3.122,705,2.305,706,1.84,707,3.122,708,2.801,709,3.122,710,4.026,711,2.199,712,2.589,713,4.856,714,3.122,715,2.705,716,2.589,717,3.122,718,1.84,719,2.199,720,4.856,721,4.856]],["sidebarParentCategories/82",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/83",[337,1.046]],["content/83",[2,1.35,3,1.571,8,2.722,18,2.91,22,2.535,34,1.458,62,2.032,70,1.502,71,1.571,73,2.719,106,3.536,115,1.993,168,2.428,173,2.719,220,2.91,284,2.228,290,3.71,302,2.116,322,2.625,323,1.788,324,2.773,326,2.073,337,1.361,340,2.91,350,3.023,362,3.775,364,2.93,395,2.073,396,2.238,398,3.303,401,5.263,403,3.152,406,4.014,407,4.014,408,3.303,409,3.303,410,3.484,411,2.81,412,4.014,413,2.637,414,3.303,415,3.71,416,3.634,722,4.475,723,3.023]],["sidebarParentCategories/83",[]],["title/89",[322,2.696]],["content/89",[66,3.868,69,3.682,70,2.392,71,2.503,91,4.081,103,3.302,230,4.635,232,4.476,322,2.948,337,1.144,362,3.698,363,3.772,364,2.465]],["sidebarParentCategories/89",[102,1.078,206,1.294]],["title/90",[252,1.711,337,0.723,402,1.534]],["content/90",[2,1.969,58,0.937,69,2.976,70,2.993,71,2.952,106,3.209,252,2.189,310,3.299,327,3.722,329,3.806,337,0.925,395,2.669,402,1.962,433,1.589,434,2.023,543,2.976,724,4.777,725,5.168,726,6.765,727,5.168,728,5.168,729,5.761,730,5.168,731,5.761]],["sidebarParentCategories/90",[102,1.078,206,1.294]],["title/91",[322,2.203,512,3.139]],["content/91",[8,2.023,17,2.185,34,1.537,36,2.495,55,1.696,58,1.071,68,3.574,69,1.554,70,2.21,71,2.665,91,1.723,93,1.554,111,1.676,189,2.78,222,3.911,252,1.143,254,1.723,265,2.185,271,2.495,292,2.221,322,1.951,323,2.324,327,2.328,328,2.937,329,2.937,345,1.182,388,2.701,402,1.607,408,2.221,409,2.221,411,2.962,456,1.723,475,2.033,482,1.889,483,4.862,512,2.78,543,1.554,545,1.828,577,2.342,616,4.231,692,1.485,719,2.119,730,2.699,732,3.009,733,3.009,734,3.009,735,3.009,736,3.009,737,1.394,738,5.818,739,3.009,740,1.828,741,3.009,742,3.009,743,3.009,744,1.223,745,2.701,746,3.009,747,2.342,748,2.699,749,3.009,750,3.009,751,3.009,752,5.818,753,3.009,754,2.699,755,2.033,756,3.009,757,4.717,758,4.231,759,4.717,760,3.009,761,5.818,762,3.009,763,3.009,764,4.717,765,3.009,766,3.009,767,2.495,768,3.009]],["sidebarParentCategories/91",[102,1.078,206,1.294]],["title/92",[31,0.983,284,1.581,324,1.968]],["content/92",[2,1.685,31,1.975,50,1.549,55,1.79,58,1.012,62,2.324,69,1.727,70,1.122,71,1.174,81,3.458,84,1.914,87,0.618,89,2.709,103,1.549,104,2.355,117,1.688,140,2.371,146,1.291,172,2.371,189,1.971,210,1.553,212,2.355,220,2.174,238,1.489,251,2.603,284,1.174,310,1.914,322,1.383,345,2.01,355,3.295,363,1.769,364,1.156,373,2.778,374,3.365,396,1.015,402,1.744,441,2.174,540,1.914,744,2.832,769,2.999,770,1.914,771,3.343,772,3.343,773,4.376,774,5.143,775,3.782,776,2.999,777,3.214,778,4.244,779,2.195,780,3.343,781,2.999]],["sidebarParentCategories/92",[102,1.078,206,1.294]],["title/93",[241,2.929,284,1.581,324,1.968]],["content/93",[2,1.575,6,2.274,31,1.615,34,1.468,55,1.656,69,2.327,70,1.512,71,1.582,103,2.954,117,2.274,146,1.74,168,2.445,241,5.525,247,2.738,248,2.93,252,2.423,259,3.173,284,2.599,297,4.041,311,3.325,324,1.968,345,2.505,347,3.295,360,2.58,379,2.93,380,3.507,381,4.814,382,4.492,456,2.58,473,3.173,769,4.041,774,3.325,782,4.505,783,5.215,784,4.492,785,4.492,786,4.505,787,4.041,788,3.736,789,4.505,790,4.505]],["sidebarParentCategories/93",[102,1.078,206,1.294]],["title/94",[31,1.162,50,2.467]],["content/94",[31,1.857,50,3.232,55,1.791,402,2.377,540,2.608,744,2.836,779,2.992,791,6.977,792,3.995,793,3.444,794,6.259]],["sidebarParentCategories/94",[102,1.078,206,1.294]],["title/95",[95,2.327,391,3.172,795,3.324]],["content/95",[2,1.633,31,1.967,34,1.571,50,3.557,55,1.833,69,1.598,70,1.038,71,1.692,81,3.256,140,2.233,163,2.929,172,2.233,210,1.463,252,1.831,310,1.771,318,2.685,345,1.893,373,2.616,374,3.229,379,2.012,380,2.408,381,3.135,396,0.939,402,1.642,540,1.802,723,2.09,744,2.718,773,4.199,774,4.935,775,3.629,777,3.027,778,3.997,781,2.775,783,3.395,784,3.395,785,3.395,787,2.775,792,2.76,793,2.379,794,4.324,796,4.82,797,4.82,798,3.093,799,4.82,800,3.093,801,3.093]],["sidebarParentCategories/95",[102,1.078,206,1.294]],["title/96",[40,3.752,58,0.866]],["content/96",[2,1.679,31,1.722,42,6.545,204,5.56,205,7.081]],["sidebarParentCategories/96",[102,1.078,206,1.294]],["title/84",[87,1.205]],["content/84",[2,1.56,29,3.254,30,2.698,31,1.796,34,2.389,55,1.602,58,1.193,103,3.397,149,3.329,150,2.698,201,4.952,225,2.996,235,3.355,254,3.161,284,1.938,316,2.611,317,4.468,324,2.412,363,2.922,364,1.909,705,4.075,744,2.244,802,4.298,803,4.298,804,1.748,805,2.284,806,4.298]],["sidebarParentCategories/84",[]],["title/85",[31,0.983,55,0.822,744,1.83]],["content/85",[316,3.871,317,4.443]],["sidebarParentCategories/85",[]],["title/86",[34,1.468,55,0.822,150,1.657]],["content/86",[103,3.701,317,4.335,363,4.228,364,2.763]],["sidebarParentCategories/86",[]],["title/87",[30,1.657,55,0.822,149,2.045]],["content/87",[58,1.332,803,6.374]],["sidebarParentCategories/87",[]],["title/88",[55,0.822,804,1.426,805,1.863]],["content/88",[317,4.443,806,6.374]],["sidebarParentCategories/88",[]],["title/97",[31,1.162,744,2.165]],["content/97",[2,1.859,3,2.558,25,2.638,31,1.59,43,3.677,207,6.535,265,3.375,306,6.041,355,3.445,388,4.171,414,5.377]],["sidebarParentCategories/97",[87,1.114]],["title/98",[373,3.537]],["content/98",[31,1.491,34,2.227,35,4.291,58,1.111,78,5.677,96,2.514,116,5.32,150,2.514,210,2.073,284,2.399,324,2.985,373,4.561,584,3.231,807,5.666,808,6.129,809,4.813]],["sidebarParentCategories/98",[87,1.114]],["title/99",[777,4.092]],["content/99",[2,1.076,17,2.342,31,1.718,50,3.92,55,1.741,96,1.86,117,2.552,140,2.342,147,3.562,172,3.92,189,2.98,200,2.964,210,2.389,252,1.921,254,2.895,264,3.073,322,2.091,345,1.986,355,3.268,374,2.442,402,1.722,777,4.339,788,4.193,810,3.562,811,4.193,812,6.199,813,2.744,814,5.057,815,5.057,816,4.536,817,4.536]],["sidebarParentCategories/99",[87,1.114]],["title/100",[818,5.846]],["content/100",[58,1.198,159,4.79,172,3.412,209,5.437,210,2.235,238,3.28,475,4.976,540,2.754,543,3.805,584,4.159]],["sidebarParentCategories/100",[87,1.114]],["title/101",[819,4.81]],["content/101",[140,3.451,172,3.451,210,2.26,543,3.848,584,3.522,820,7.449,821,7.449,822,7.449,823,7.449,824,5.799]],["sidebarParentCategories/101",[87,1.114]],["title/102",[825,6.518]],["content/102",[58,1.471,62,2.211,84,3.856,111,2.713,121,2.96,140,4.05,155,5.243,210,1.478,238,2.169,252,1.85,351,3.479,388,2.789,679,2.014,711,4.744,812,4.369,816,6.041,819,3.595,826,6.735,827,6.735,828,4.87,829,4.87,830,6.735,831,4.87,832,4.369,833,4.038,834,4.87,835,4.87,836,4.369,837,4.87,838,6.735,839,3.792,840,3.595,841,4.87,842,4.87,843,4.87,844,4.87,845,4.87,846,3.792,847,4.87]],["sidebarParentCategories/102",[87,1.114]],["title/103",[848,6.518]],["content/103",[58,1.341,63,5.496,172,3.07,200,3.537,210,2.011,212,4.669,441,4.31,473,4.669,679,3.411,694,4.477,804,2.098,805,3.714,849,5.496,850,7.398,851,3.201]],["sidebarParentCategories/103",[87,1.114]],["title/104",[228,3.732]],["content/104",[31,1.377,55,1.46,58,1.301,96,2.942,172,2.924,210,1.915,228,4.579,250,5.661,295,6.631,379,4.104,385,4.104,392,4.264,474,4.914,584,2.984,852,4.34,853,4.914,854,6.311,855,6.311,856,3.425,857,6.311]],["sidebarParentCategories/104",[87,1.114]],["title/105",[858,5.074]],["content/105",[31,1.432,50,3.04,58,1.067,84,3.757,96,2.414,210,1.991,224,3.867,318,3.655,433,1.809,465,3.473,543,3.39,584,3.103,788,5.441,858,5.109,859,6.562,860,6.796,861,5.886,862,6.562,863,6.562,864,5.886,865,6.562]],["sidebarParentCategories/105",[87,1.114]],["title/106",[866,4.591]],["content/106",[30,1.805,55,1.696,58,0.798,96,2.491,150,1.805,153,3.081,182,2.809,190,2.892,210,1.489,238,2.185,254,2.809,305,1.749,316,2.32,318,2.733,345,1.927,364,1.697,374,2.369,385,3.191,392,4.573,395,2.273,433,1.353,465,4.102,679,2.029,715,2.733,851,2.369,866,3.456,867,4.068,868,6.769,869,5.613,870,2.733,871,3.82,872,4.906,873,6.769,874,5.27,875,4.068,876,3.82,877,4.068,878,4.906,879,4.906,880,4.401,881,4.906,882,4.401]],["sidebarParentCategories/106",[87,1.114]],["title/107",[883,6.518]],["content/107",[78,5.09,141,6.94,209,5.561,210,2.286,420,5.865,465,3.987,584,3.562,864,6.758]],["sidebarParentCategories/107",[87,1.114]],["title/108",[884,6.518]],["content/108",[150,2.71,209,5.437,210,2.235,326,3.412,433,2.031,541,5.523,584,3.483,885,6.108,886,7.366,887,7.366]],["sidebarParentCategories/108",[87,1.114]],["title/109",[888,6.518]],["content/109",[19,3.722,58,1.172,80,6.463,210,2.186,324,3.148,420,5.61,465,4.93,889,4.868,890,6.758,891,7.205]],["sidebarParentCategories/109",[87,1.114]],["title/110",[892,6.518]],["content/110",[170,4.677,210,2.26,544,5.032,584,3.522,747,5.799,851,3.597,893,7.449,894,7.449,895,6.177,896,6.682]],["sidebarParentCategories/110",[87,1.114]],["title/111",[896,5.846]],["content/111",[210,2.367,584,3.688,747,6.073,851,3.767,895,6.468,897,7.801]],["sidebarParentCategories/111",[87,1.114]],["title/112",[898,6.518]],["content/112",[81,3.997,141,4.606,144,4.906,146,2.285,210,1.795,212,4.167,226,6.347,305,3.036,317,3.21,373,3.21,392,3.997,433,1.631,453,3.847,694,3.997,747,4.606,856,4.89,880,5.307,895,4.906,899,5.307,900,5.916,901,7.061,902,4.367,903,5.307]],["sidebarParentCategories/112",[87,1.114]],["title/113",[904,6.518]],["content/113",[171,3.813,210,2.186,226,5.076,305,3.095,316,3.407,584,4.104,856,3.91,899,6.463,901,5.975,905,5.076,906,7.205]],["sidebarParentCategories/113",[87,1.114]],["title/114",[907,6.518]],["content/114",[59,3.887,140,3.232,171,3.692,210,2.117,226,5.996,249,4.714,373,3.786,543,3.605,584,3.299,856,4.619,882,6.259,901,5.786,908,6.977,909,6.977]],["sidebarParentCategories/114",[87,1.114]],["title/115",[910,6.518]],["content/115",[17,3.07,19,3.424,96,2.438,112,3.424,150,2.438,210,2.011,364,2.292,433,1.827,464,4.892,465,4.364,589,3.345,679,2.741,715,3.692,889,4.477,911,5.571,912,5.16,913,6.628,914,6.628,915,6.628]],["sidebarParentCategories/115",[87,1.114]],["title/116",[916,4.591]],["content/116",[2,1.604,3,2.023,25,2.087,33,3.501,34,1.877,55,1.377,58,0.937,96,2.12,111,3.209,146,2.225,210,1.748,326,2.669,330,4.252,333,3.747,336,4.058,345,2.263,360,4.318,540,2.154,813,3.126,902,4.252,916,6.521,917,5.761,918,5.761,919,6.253,920,5.566,921,4.777,922,5.168]],["sidebarParentCategories/116",[87,1.114]],["title/117",[923,5.846]],["content/117",[2,1.194,31,1.225,55,1.354,58,1.206,62,2.55,96,2.066,146,2.169,151,3.047,152,2.408,210,2.25,243,3.525,345,2.205,679,2.322,813,3.047,839,4.371,840,4.144,846,4.371,923,7.447,924,5.615,925,3.412,926,5.615,927,5.615,928,5.615,929,5.615,930,5.036,931,8.302,932,5.615,933,5.615,934,5.615,935,5.615,936,5.615,937,5.615]],["sidebarParentCategories/117",[87,1.114]],["title/118",[938,4.81]],["content/118",[2,0.945,19,2.296,22,1.776,26,3.686,30,3.231,31,1.378,55,1.153,58,0.723,59,2.476,62,2.018,96,1.635,121,2.701,146,1.717,180,2.296,189,2.62,210,1.349,219,3.46,230,2.89,252,1.689,323,1.776,331,3.46,338,2.523,345,1.746,364,1.537,400,2.701,473,3.131,484,1.717,679,1.838,692,2.194,740,2.701,813,2.412,840,3.281,856,4.766,871,3.46,890,3.46,938,5.424,939,6.093,940,5.906,941,3.281,942,5.666,943,3.281,944,3.987,945,4.918,946,6.317,947,5.238,948,3.686]],["sidebarParentCategories/118",[87,1.114]],["title/119",[949,5.846]],["content/119",[2,0.939,19,2.281,22,1.764,26,3.661,30,1.624,31,1.372,55,1.148,58,0.718,59,2.459,62,2.005,96,1.624,121,2.683,146,1.705,180,2.281,189,2.602,210,1.34,219,3.437,225,4.575,230,2.871,252,1.677,323,1.764,331,3.437,338,2.511,345,1.734,357,2.602,364,1.527,400,2.683,473,3.11,484,1.705,679,1.826,692,2.179,740,2.683,813,2.396,840,3.259,856,4.755,871,3.437,890,3.437,939,6.071,940,5.888,941,3.259,943,3.259,944,3.96,945,4.894,948,3.661,949,6.567,950,4.415,951,6.287,952,6.287,953,4.415]],["sidebarParentCategories/119",[87,1.114]],["title/120",[954,5.846]],["content/120",[19,3.494,96,2.488,121,4.11,210,2.052,347,4.314,357,4.922,589,3.414,679,2.797,710,5.608,715,3.768,718,3.986,740,4.11,856,4.532,889,4.569,954,6.067,955,6.763]],["sidebarParentCategories/120",[87,1.114]],["title/121",[956,5.074]],["content/121",[31,1.377,34,2.057,53,2.611,58,1.027,96,2.322,150,3.23,210,1.915,347,4.535,357,3.72,584,2.984,679,3.308,694,4.264,852,3.425,956,4.914,957,3.048,958,5.233,959,4.914,960,4.914,961,6.311,962,6.311,963,6.311]],["sidebarParentCategories/121",[87,1.114]],["title/122",[959,5.074]],["content/122",[58,1.078,96,2.438,210,2.011,347,4.638,374,3.201,577,5.16,584,3.134,679,3.411,956,5.16,957,3.201,958,5.496,959,5.16,960,5.16,964,6.628,965,6.628,966,6.628,967,6.628,968,6.628]],["sidebarParentCategories/122",[87,1.114]],["title/123",[960,5.074]],["content/123",[19,3.643,96,2.594,210,2.14,347,3.643,589,3.559,679,3.544,715,3.928,889,4.764,956,5.49,957,3.405,958,5.847,959,5.49,960,5.49,969,7.052]],["sidebarParentCategories/123",[87,1.114]],["title/124",[970,5.846]],["content/124",[96,2.651,210,2.186,284,2.53,347,3.722,383,6.463,679,3.59,905,5.076,970,6.463,971,7.205,972,7.205,973,7.205,974,7.205]],["sidebarParentCategories/124",[87,1.114]],["title/125",[975,6.518]],["content/125",[2,1.37,31,0.997,55,1.176,58,1.047,96,1.68,145,3.045,152,3.474,169,4.097,204,4.536,210,1.386,235,3.914,248,2.97,261,2.615,324,2.814,325,4.536,345,1.794,347,4.412,420,5.014,471,4.097,475,3.086,679,1.889,694,3.086,695,5.014,813,2.479,839,3.556,840,3.371,925,2.776,941,5.505,976,7.459,977,4.568,978,3.787,979,7.459,980,4.568,981,4.568,982,4.568,983,6.44,984,5.777,985,3.086,986,4.568,987,4.568,988,4.568]],["sidebarParentCategories/125",[87,1.114]],["title/126",[213,4.04,484,1.739,989,4.04]],["content/126",[58,1.159,96,2.622,165,5.549,197,5.91,210,2.163,347,3.682,679,2.948,905,5.021,984,6.394,989,6.394,990,7.128,991,7.128,992,7.128,993,7.128]],["sidebarParentCategories/126",[87,1.114]],["title/127",[994,5.846]],["content/127",[19,3.567,58,1.123,96,2.54,114,3.953,210,2.095,540,2.581,589,3.485,679,2.856,715,3.846,755,4.664,889,4.664,994,6.194,995,6.905,996,7.013,997,6.905,998,6.905]],["sidebarParentCategories/127",[87,1.114]],["title/128",[999,5.846]],["content/128",[31,1.491,35,4.291,58,1.367,78,4.616,96,2.514,198,4.444,210,2.073,239,4.616,324,2.985,373,3.708,584,3.231,602,4.291,808,6.129,999,6.129,1000,6.833,1001,6.129,1002,6.833]],["sidebarParentCategories/128",[87,1.114]],["title/129",[1003,5.404]],["content/129",[2,1.469,3,2.424,19,3.567,25,2.5,58,1.123,96,2.54,200,2.961,210,2.095,305,2.462,589,3.485,679,2.856,699,1.526,715,3.846,740,4.196,889,4.664,1003,5.725,1004,5.096]],["sidebarParentCategories/129",[87,1.114]],["title/130",[920,4.81]],["content/130",[]],["sidebarParentCategories/130",[31,0.839,87,0.711,744,1.563]],["title/131",[58,0.733,679,1.863,919,3.734]],["content/131",[2,1.568,25,2.67,31,1.215,55,1.818,105,3.496,210,1.689,211,3.761,333,3.621,345,3.247,540,2.081,744,2.997,773,4.63,779,2.388,813,4.001,916,5.194,919,6.114,920,4.109,921,4.616,922,4.994,957,2.689,1005,4.334,1006,4.616]],["sidebarParentCategories/131",[31,0.839,87,0.711,744,1.563]],["title/132",[34,1.736,916,3.752]],["content/132",[2,0.761,55,1.823,58,0.582,89,1.894,96,1.317,111,3.002,146,1.382,191,6.191,224,5.239,326,1.658,336,2.521,345,1.406,413,2.109,574,2.418,579,6.231,584,3.992,813,1.942,836,3.21,916,4.567,921,6.418,1007,3.579,1008,3.579,1009,3.579,1010,3.579,1011,3.579,1012,8.442,1013,8.442,1014,3.579,1015,3.579,1016,3.579,1017,3.579,1018,3.579,1019,3.579]],["sidebarParentCategories/132",[31,0.839,87,0.711,744,1.563]],["title/133",[433,1.469,920,3.931]],["content/133",[2,1.259,6,2.05,8,1.742,25,1.471,55,1.556,69,2.099,71,1.426,110,4,111,2.263,115,1.809,146,1.569,152,2.539,211,2.744,219,3.163,238,1.809,267,1.363,284,2.453,304,3.644,310,2.326,326,1.882,345,2.325,350,2.744,351,2.099,366,3.368,370,3.163,397,2.005,402,1.384,433,1.926,434,1.426,482,3.718,484,1.569,514,3.368,539,3.644,546,4.171,562,3.49,689,5.311,694,2.744,723,2.744,775,3.213,807,3.368,916,2.862,920,5.156,957,1.962,1020,4.062,1021,5.921,1022,5.921,1023,4.062,1024,4.909,1025,4.062,1026,4.062,1027,5.921,1028,4.062,1029,4.062,1030,4.37,1031,4.062,1032,4.062,1033,3.368,1034,4.062,1035,4.062]],["sidebarParentCategories/133",[31,0.839,87,0.711,744,1.563]],["title/145",[34,1.736,150,1.96]],["content/145",[29,2.935,30,1.832,31,1.492,34,2.229,50,2.307,67,2.703,87,1.265,102,1.144,103,2.307,108,3.81,115,2.218,149,2.261,150,2.516,151,3.711,152,2.136,153,3.127,162,3.877,225,2.703,230,3.239,245,5.765,251,3.877,252,2.599,260,3.127,279,3.364,284,1.749,317,2.703,324,2.176,355,2.355,363,2.636,364,2.365,397,2.458,724,4.13,744,2.024,770,2.852,852,3.711,853,3.877,856,2.703,870,2.774,1036,5.325,1037,6.135,1038,4.13]],["sidebarParentCategories/145",[87,1.114]],["title/146",[31,0.851,284,1.37,316,1.844,324,1.704]],["content/146",[8,0.761,31,1.945,34,1.913,50,1.86,55,1.81,58,0.496,69,1.576,70,1.024,71,1.071,87,0.328,108,2.657,115,1.788,140,1.414,145,1.443,150,0.653,168,0.963,172,2.209,228,1.016,238,1.359,241,4.088,245,3.967,247,2.441,248,1.985,252,0.674,263,0.963,284,1.41,318,2.994,322,1.973,323,1.219,325,2.15,333,4.088,347,1.576,351,2.464,355,2.255,360,1.747,373,2.588,374,1.474,379,1.154,381,3.818,382,2.15,395,0.822,397,1.506,402,1.368,405,1.114,522,0.79,540,2.009,546,1.249,589,1.54,602,1.114,744,1.938,755,2.713,770,1.747,773,1.916,775,1.656,777,1.916,779,3.089,783,2.15,784,2.15,785,1.249,792,2.731,793,2.354,809,2.15,852,3.186,1036,5.168,1037,2.737,1039,1.591,1040,1.591,1041,1.591,1042,1.591,1043,2.252,1044,3.713,1045,2.062,1046,2.524,1047,1.591,1048,1.591,1049,1.591,1050,1.381,1051,1.381,1052,1.381,1053,1.591,1054,1.078,1055,1.471,1056,1.471,1057,1.985,1058,1.471,1059,1.249,1060,1.381,1061,2.252,1062,2.53,1063,1.471,1064,1.471,1065,1.471,1066,1.471]],["sidebarParentCategories/146",[87,1.114]],["title/147",[806,3.506,852,2.444,925,2.737]],["content/147",[31,1.76,34,1.727,52,4.754,55,1.731,88,4.754,89,2.805,95,3.686,105,3.328,119,4.336,150,1.95,151,2.876,245,5.266,284,1.861,397,2.616,584,2.506,589,2.675,602,3.328,779,3.06,792,3.034,793,2.616,852,2.876,1038,4.394,1043,3.912,1046,2.805,1057,4.64,1059,3.733,1067,5.3,1068,5.3,1069,7.135,1070,5.3,1071,4.126,1072,4.394]],["sidebarParentCategories/147",[87,1.114]],["title/148",[150,1.132,512,1.814,940,2.271,1073,2.76,1074,2.168,1075,2.552]],["content/148",[6,1.846,29,2.156,30,1.346,31,1.592,34,1.192,55,1.795,58,0.891,89,1.936,96,1.346,101,2.848,102,0.84,108,2.038,117,1.846,126,3.281,145,1.73,149,1.661,150,2.684,151,1.985,152,1.569,159,2.379,191,2.379,198,2.379,225,1.985,238,1.629,254,2.094,263,1.985,351,1.89,357,2.156,374,1.766,414,2.7,416,2.094,417,2.848,473,4.628,522,1.629,579,2.7,692,1.805,779,1.569,852,2.973,870,2.038,925,3.33,945,4.266,1036,2.848,1046,1.936,1054,2.223,1057,3.563,1074,2.577,1075,3.033,1076,3.658,1077,5.893,1078,2.577,1079,3.658,1080,3.033,1081,4.543,1082,3.033,1083,3.033,1084,2.577,1085,3.033,1086,4.266,1087,3.033,1088,2.848,1089,2.7,1090,2.848,1091,3.033,1092,2.848,1093,2.848,1094,2.848,1095,3.033,1096,2.848]],["sidebarParentCategories/148",[87,1.114]],["title/149",[95,2.015,391,2.748,795,2.879,1097,3.499]],["content/149",[2,0.541,31,1.868,34,0.828,35,0.903,50,1.177,55,1.853,58,0.555,87,0.266,89,0.761,95,0.743,96,0.529,101,1.12,108,1.902,115,0.64,117,0.726,140,1.177,145,0.68,150,1.517,151,0.78,152,0.617,168,0.78,172,1.582,198,0.935,228,0.823,238,1.521,241,3.062,245,2.52,247,2.075,248,1.653,252,0.546,254,0.823,263,0.78,279,0.972,284,1.199,318,2.623,333,3.656,341,1.345,345,0.565,347,0.743,355,1.949,360,1.455,364,0.497,373,2.237,374,1.649,379,0.935,381,2.681,382,1.013,397,0.71,402,0.866,413,0.848,484,0.982,522,1.132,540,1.541,579,1.061,584,0.68,589,1.283,602,0.903,679,0.595,692,0.71,744,1.676,770,1.455,773,2.144,774,1.061,775,1.853,776,1.29,777,1.596,779,3.106,783,2.405,784,2.405,785,1.79,792,2.978,793,3.11,795,1.061,809,1.79,819,1.061,824,1.12,852,2.237,870,0.801,912,1.12,1036,2.658,1040,2.28,1041,1.29,1042,1.29,1043,1.876,1044,3.21,1045,1.717,1046,2.753,1047,2.28,1048,1.29,1049,1.29,1050,1.12,1051,1.12,1052,1.12,1054,0.874,1056,1.193,1057,3.892,1058,1.193,1059,2.405,1060,1.12,1061,1.876,1062,2.107,1064,1.193,1065,1.193,1066,1.193,1071,1.12,1072,1.193,1080,1.193,1081,2.107,1082,1.193,1083,1.193,1084,1.013,1085,1.193,1086,1.979,1087,1.193,1088,1.12,1089,1.061,1090,1.12,1091,1.193,1092,1.12,1093,1.12,1094,1.12,1095,1.193,1096,1.12,1098,1.193,1099,1.29,1100,1.193,1101,1.29,1102,1.29,1103,1.12,1104,2.28,1105,1.29,1106,2.28,1107,1.438,1108,1.438,1109,1.438,1110,1.438,1111,1.438,1112,1.438,1113,1.438,1114,1.438,1115,1.438,1116,1.438,1117,1.438,1118,1.438]],["sidebarParentCategories/149",[87,1.114]],["title/150",[40,3.752,58,0.866]],["content/150",[145,4.244,150,2.804,263,4.135,1053,6.836,1054,4.631,1055,6.319,1063,6.319]],["sidebarParentCategories/150",[87,1.114]],["title/158",[30,1.96,149,2.419]],["content/158",[30,3.397,31,1.455,34,1.564,50,2.223,53,1.985,58,0.781,67,2.604,87,1.233,102,1.102,103,2.223,108,2.674,115,2.137,118,4.81,119,5.03,145,3.152,149,3.478,150,1.766,151,2.604,172,2.223,182,2.748,230,3.121,237,2.829,251,3.737,252,2.533,260,3.014,284,1.685,317,2.604,324,2.097,355,2.269,363,2.54,364,2.305,385,3.121,397,2.369,705,3.542,724,3.98,740,2.917,744,1.951,770,2.748,803,3.737,856,2.604,985,3.242]],["sidebarParentCategories/158",[87,1.114]],["title/159",[31,0.851,284,1.37,316,1.844,324,1.704]],["content/159",[2,0.292,8,0.589,17,0.636,30,0.505,31,1.789,34,0.795,50,1.524,55,1.745,58,0.891,67,1.323,68,0.745,69,1.7,70,0.461,71,0.856,87,0.608,96,0.505,105,0.862,108,1.833,115,2.033,118,3.866,119,3.328,121,0.834,132,1.069,140,1.524,168,2.163,172,1.847,180,0.709,182,0.786,211,0.927,220,0.893,224,2.691,227,1.718,228,2.282,238,1.465,241,3.561,247,4.064,248,1.586,252,0.521,260,0.862,284,1.155,310,0.786,318,3.05,322,1.361,323,0.974,327,1.624,328,1.231,329,1.231,330,2.428,333,3.797,337,0.391,345,0.958,347,1.7,355,1.885,360,1.396,364,1.138,373,2.163,374,1.925,379,3.288,380,1.069,381,2.969,382,1.718,389,0.765,392,0.927,393,0.862,395,0.636,397,0.677,402,1.121,413,0.809,414,1.8,416,1.396,456,1.396,457,1.8,465,0.726,540,1.49,545,0.834,546,0.967,547,0.927,548,1.069,589,1.231,602,0.862,603,0.834,679,1.009,711,1.718,715,1.358,744,1.856,745,0.786,770,1.884,773,1.531,775,1.785,777,1.531,779,2.504,783,1.718,784,1.718,785,2.317,792,1.396,793,1.967,809,3.216,852,0.745,853,1.898,856,0.745,858,1.898,861,2.187,866,1.718,869,2.022,874,2.561,875,2.022,876,1.898,877,2.022,938,1.8,947,2.022,1039,1.231,1043,1.8,1044,3.103,1045,1.647,1046,1.29,1050,1.069,1051,1.898,1052,1.069,1119,1.231,1120,3.576,1121,2.187,1122,1.231,1123,2.951,1124,2.187,1125,1.231,1126,1.231,1127,1.231,1128,1.372,1129,1.231,1130,2.438,1131,1.138,1132,2.438,1133,5.476,1134,1.231,1135,1.372,1136,1.069,1137,1.231,1138,1.231,1139,1.231]],["sidebarParentCategories/159",[87,1.114]],["title/160",[30,1.266,182,1.97,318,1.916,385,2.237,405,2.16]],["content/160",[11,3.315,17,2.273,29,2.892,30,3.074,31,1.477,34,1.599,55,1.655,62,3.074,118,5.247,149,3.074,182,2.809,305,1.749,357,2.892,385,5.434,395,2.273,416,3.876,541,4.25,679,2.029,715,2.733,745,2.809,779,2.903,792,3.876,1127,6.072,1140,4.906,1141,4.401,1142,4.401,1143,4.401,1144,3.621,1145,3.82,1146,4.068,1147,4.401,1148,4.401,1149,4.401,1150,4.068]],["sidebarParentCategories/160",[87,1.114]],["title/161",[30,1.435,806,3.037,940,2.879,1074,2.748]],["content/161",[30,3.246,31,0.983,55,1.796,78,4.308,89,3.375,96,1.658,112,2.327,119,3.876,189,2.655,238,2.84,311,3.325,336,3.173,374,2.176,416,2.58,543,2.327,692,2.224,779,1.932,792,2.58,793,2.224,809,3.173,856,3.461,925,2.738,940,3.325,1001,4.041,1074,3.173,1084,3.173,1092,3.507,1094,3.507,1096,3.507,1131,3.736,1151,4.041,1152,3.736,1153,4.505,1154,4.041,1155,4.041,1156,4.041,1157,4.041,1158,4.041,1159,4.041,1160,4.041,1161,3.736,1162,5.721,1163,4.041,1164,4.041,1165,4.041]],["sidebarParentCategories/161",[87,1.114]],["title/162",[30,1.657,149,2.045,1073,4.04]],["content/162",[30,1.728,31,1.025,34,1.531,55,1.809,59,2.617,96,1.728,118,4.755,119,2.855,150,2.786,212,3.309,237,2.768,322,1.943,362,2.014,363,2.486,393,2.949,397,2.318,398,3.467,433,1.295,441,3.055,522,2.925,541,4.755,543,3.393,584,3.105,779,2.014,792,2.69,1144,3.467,1145,3.657,1152,3.895,1166,3.309,1167,5.334,1168,4.214,1169,4.847,1170,4.214,1171,3.055,1172,3.895,1173,4.214,1174,4.214,1175,4.214]],["sidebarParentCategories/162",[87,1.114]],["title/163",[95,2.015,391,2.748,795,2.879,1097,3.499]],["content/163",[2,0.385,11,0.666,30,1.332,31,1.677,34,0.589,35,0.619,50,0.838,55,1.852,58,0.294,89,1.326,95,0.934,96,0.363,101,0.767,108,1.395,115,0.439,117,0.498,118,3.414,119,2.476,140,0.838,145,0.466,149,0.448,150,0.922,151,0.535,152,0.423,168,0.535,172,1.16,182,0.564,198,0.641,228,1.035,237,0.581,238,1.612,241,2.65,247,1.885,248,1.176,252,0.375,254,0.564,263,0.535,279,0.666,284,0.879,305,0.351,318,2.27,333,3.142,341,0.957,345,0.387,347,0.509,355,1.467,360,1.035,373,1.684,374,1.968,379,1.176,381,2.018,382,1.274,385,2.91,397,0.487,402,0.616,413,0.581,433,0.499,453,1.176,484,0.381,522,0.439,540,1.16,541,2.273,543,0.934,562,0.581,584,1.712,589,0.913,602,1.135,679,0.408,692,0.892,715,1.395,744,1.261,748,0.884,755,0.666,770,1.035,773,1.573,774,0.728,775,1.359,777,1.135,779,3.113,783,1.764,784,1.764,785,1.764,792,3.397,793,3.382,795,0.728,809,2.55,819,0.728,824,0.767,852,0.535,856,0.535,858,0.767,866,1.274,869,1.499,870,0.549,874,1.408,875,1.499,876,1.408,877,1.499,912,0.767,938,1.849,947,1.499,1043,1.335,1044,2.415,1045,1.222,1046,2.156,1050,0.767,1051,1.408,1052,0.767,1054,0.599,1056,0.817,1057,3.142,1059,1.764,1060,0.767,1061,0.728,1062,0.817,1071,0.767,1074,0.694,1075,0.817,1080,0.817,1081,0.817,1082,0.817,1084,1.274,1085,0.817,1086,1.408,1087,0.817,1088,0.767,1089,0.728,1090,0.767,1091,0.817,1092,1.408,1093,0.767,1094,0.767,1095,0.817,1096,0.767,1098,0.817,1099,0.884,1100,0.817,1101,0.884,1102,0.884,1103,0.767,1104,1.622,1105,0.884,1106,2.783,1119,1.622,1120,2.783,1121,1.622,1122,0.884,1123,1.622,1124,1.622,1125,0.884,1126,0.884,1131,0.817,1137,1.622,1138,0.884,1139,0.884,1142,0.884,1143,0.884,1144,1.335,1145,1.408,1146,0.817,1147,0.884,1148,0.884,1149,0.884,1150,0.817,1154,0.884,1155,0.884,1156,0.884,1157,0.884,1158,0.884,1159,0.884,1160,0.884,1161,0.817,1162,1.622,1163,0.884,1164,0.884,1165,0.884,1167,1.764,1168,0.884,1169,1.335,1170,0.884,1171,0.641,1172,0.817,1173,0.884,1174,0.884,1175,0.884,1176,0.986,1177,0.986,1178,0.986,1179,0.986,1180,0.986,1181,1.808,1182,0.986,1183,0.986,1184,0.986,1185,0.986,1186,0.986,1187,0.986,1188,0.986,1189,0.986,1190,0.986,1191,0.986,1192,0.986,1193,0.986,1194,1.808,1195,0.986,1196,0.884,1197,0.986,1198,0.986,1199,0.986,1200,0.986,1201,0.986,1202,0.986,1203,0.986,1204,0.986,1205,0.986,1206,0.986,1207,0.986]],["sidebarParentCategories/163",[87,1.114]],["title/164",[40,3.752,58,0.866]],["content/164",[30,3.28,145,4.215,149,4.048,237,4.44,803,5.865,985,5.09]],["sidebarParentCategories/164",[87,1.114]],["title/165",[398,3.931,603,3.237]],["content/165",[30,3.134,53,2.124,77,3.121,89,3.696,172,3.235,182,4.544,267,2.344,305,1.831,316,2.428,318,4.745,363,3.696,405,3.224,422,4.606,465,4.507,489,2.94,540,1.92,810,3.617,1046,3.696,1208,5.135,1209,4.606,1210,7.119,1211,5.437,1212,3.998,1213,3.617,1214,5.135,1215,5.135,1216,5.135,1217,4.606,1218,5.135,1219,4.606,1220,5.135]],["sidebarParentCategories/165",[87,1.114]],["title/134",[58,0.634,69,2.015,805,1.613,1221,3.499]],["content/134",[32,2.475,36,5.948,58,1.317,77,3.247,115,3.194,134,4.159,146,2.064,168,2.899,173,3.247,179,3.247,180,2.76,200,3.712,267,1.793,315,3.257,323,2.134,337,0.858,355,2.526,416,3.059,417,4.159,433,1.978,434,2.519,679,2.21,706,3.149,804,1.691,805,2.21,850,6.435,1134,4.792,1221,6.435,1222,5.342,1223,5.342,1224,5.342,1225,3.763,1226,5.342]],["sidebarParentCategories/134",[87,1.114]],["title/135",[315,2.045,337,0.723,804,1.426]],["content/135",[62,3.345,66,3.997,212,5.189,315,3.345,337,1.183,362,3.159,423,4.625,424,4.976,441,4.79,468,5.735,804,2.332]],["sidebarParentCategories/135",[87,1.114]],["title/136",[58,0.634,267,1.309,315,1.771,804,1.235]],["content/136",[2,1.185,30,1.376,31,1.721,50,1.733,55,1.833,140,1.733,172,1.733,200,2.389,210,1.135,239,3.764,252,1.421,315,3.023,336,2.635,345,2.188,355,2.634,373,2.03,374,1.806,375,3.355,402,1.274,540,1.398,602,2.349,605,1.932,666,3.355,723,2.527,744,2.264,773,3.498,775,3.023,777,2.349,778,3.102,779,2.855,804,2.712,813,2.03,817,3.355,818,3.355,819,2.761,824,2.912,943,2.761,1006,4.62,1227,6.658,1228,3.741,1229,3.741,1230,5.572,1231,3.741,1232,3.741,1233,3.741,1234,2.349,1235,3.741,1236,3.741,1237,3.741,1238,3.741,1239,3.102]],["sidebarParentCategories/136",[87,1.114]],["title/137",[322,1.863,423,2.828,804,1.426]],["content/137",[]],["sidebarParentCategories/137",[87,0.711,804,1.218,805,1.591]],["title/138",[403,4.591]],["content/138",[22,2.702,153,4.247,302,3.198,315,3.071,343,3.986,421,5.608,470,4.247,472,4.992,479,4.764,499,5.265,503,4.764,523,4.247,525,4.569,531,4.247,804,2.141,1240,4.992,1241,6.067,1242,6.067,1243,5.608]],["sidebarParentCategories/138",[87,0.711,804,1.218,805,1.591]],["title/139",[58,0.501,316,1.455,337,0.494,338,1.229,402,1.048,503,2.168]],["content/139",[]],["sidebarParentCategories/139",[87,0.711,804,1.218,805,1.591]],["title/140",[35,1.748,153,1.748,496,2.167,1244,2.783,1245,2.783,1246,2.783,1247,2.783]],["content/140",[337,1.21,431,4.899,485,5.561,503,5.307,508,7.872,510,6.758,1248,7.534]],["sidebarParentCategories/140",[87,0.711,804,1.218,805,1.591]],["title/141",[22,1.374,315,1.562,338,1.374,405,2.16,804,1.089]],["content/141",[22,3.08,315,3.501,433,2.126,434,2.707,531,4.841,804,2.441,1240,5.69]],["sidebarParentCategories/141",[87,0.711,804,1.218,805,1.591]],["title/142",[338,1.374,433,0.949,434,1.208,523,2.16,1249,2.853]],["content/142",[433,2.126,523,4.841,525,5.208,526,5.69,528,5.69,1250,6.393,1251,5.431]],["sidebarParentCategories/142",[87,0.711,804,1.218,805,1.591]],["title/143",[22,1.374,315,1.562,338,1.374,804,1.089,1252,2.853]],["content/143",[22,2.451,43,3.097,55,1.12,67,3.33,108,3.418,252,2.331,302,4.319,316,2.901,337,1.261,338,3.138,343,3.616,362,2.631,363,3.247,402,2.09,433,1.692,489,3.513,531,3.853,532,3.729,631,4.529,1213,4.322,1251,4.322,1253,7.046,1254,4.777]],["sidebarParentCategories/143",[87,0.711,804,1.218,805,1.591]],["title/144",[338,1.558,480,2.233,482,2.449,1255,3.235]],["content/144",[55,1.376,433,2.077,485,5.561,486,5.561,631,5.561,1251,5.307,1254,5.865,1256,7.534,1257,7.534]],["sidebarParentCategories/144",[87,0.711,804,1.218,805,1.591]],["title/151",[322,1.863,468,3.506,804,1.426]],["content/151",[22,3.08,397,3.805,425,5.431,426,6.002,436,6.916,587,5.431,603,4.685]],["sidebarParentCategories/151",[87,0.711,804,1.218,805,1.591]],["title/152",[403,4.591]],["content/152",[22,2.847,315,3.237,470,4.476,472,5.261,479,5.021,523,4.476,525,4.815,531,4.476,804,2.257,1240,5.261,1241,6.394,1242,6.394,1243,5.91,1258,7.128]],["sidebarParentCategories/152",[87,0.711,804,1.218,805,1.591]],["title/153",[58,0.501,316,1.455,337,0.494,338,1.229,402,1.048,440,1.932]],["content/153",[337,1.283,431,5.195,440,5.016,463,6.624]],["sidebarParentCategories/153",[87,0.711,804,1.218,805,1.591]],["title/154",[22,1.374,315,1.562,338,1.374,405,2.16,804,1.089]],["content/154",[22,3.08,315,3.501,433,2.126,434,2.707,531,4.841,804,2.441,1240,5.69]],["sidebarParentCategories/154",[87,0.711,804,1.218,805,1.591]],["title/155",[338,1.374,433,0.949,434,1.208,523,2.16,1249,2.853]],["content/155",[433,2.126,523,4.841,525,5.208,526,5.69,528,5.69,1250,6.393,1251,5.431]],["sidebarParentCategories/155",[87,0.711,804,1.218,805,1.591]],["title/156",[22,1.374,315,1.562,338,1.374,804,1.089,1252,2.853]],["content/156",[22,2.451,43,3.097,55,1.12,67,3.33,108,3.418,252,2.331,302,4.319,316,2.901,337,1.261,338,3.138,343,3.616,362,2.631,363,3.247,402,2.09,433,1.692,489,3.513,531,3.853,532,3.729,631,4.529,1213,4.322,1251,4.322,1253,7.046,1254,4.777]],["sidebarParentCategories/156",[87,0.711,804,1.218,805,1.591]],["title/157",[338,1.558,480,2.233,482,2.449,1255,3.235]],["content/157",[55,1.376,433,2.077,485,5.561,486,5.561,631,5.561,1251,5.307,1254,5.865,1259,7.534,1260,7.534]],["sidebarParentCategories/157",[87,0.711,804,1.218,805,1.591]],["title/166",[322,1.863,424,3.042,804,1.426]],["content/166",[]],["sidebarParentCategories/166",[87,0.711,804,1.218,805,1.591]],["title/167",[22,1.799,115,2.005,403,3.172]],["content/167",[4,5.16,17,3.07,238,3.672,322,2.741,337,1.324,370,5.16,424,6.065,470,5.178,514,5.496,525,4.477,745,3.795,1098,5.496,1211,5.16,1261,6.628,1262,6.628,1263,6.628]],["sidebarParentCategories/167",[87,0.711,804,1.218,805,1.591]],["title/168",[206,1.076,316,1.844,338,1.558,402,1.329]],["content/168",[58,0.921,115,2.522,162,4.409,238,2.522,284,3.319,402,1.929,434,3.383,469,4.696,470,3.556,483,4.18,536,3.338,544,3.825,1264,5.663,1265,5.663,1266,9.452,1267,5.663,1268,5.663,1269,5.663,1270,5.663,1271,5.663,1272,5.663,1273,5.663]],["sidebarParentCategories/168",[87,0.711,804,1.218,805,1.591]],["title/169",[22,1.374,315,1.562,338,1.374,405,2.16,804,1.089]],["content/169",[22,3.08,315,3.501,433,2.126,434,2.707,531,4.841,804,2.441,1240,5.69]],["sidebarParentCategories/169",[87,0.711,804,1.218,805,1.591]],["title/170",[338,1.374,433,0.949,434,1.208,523,2.16,1249,2.853]],["content/170",[433,2.126,523,4.841,525,5.208,526,5.69,528,5.69,1250,6.393,1274,7.71]],["sidebarParentCategories/170",[87,0.711,804,1.218,805,1.591]],["title/171",[22,1.374,315,1.562,338,1.374,804,1.089,1252,2.853]],["content/171",[22,2.497,43,3.155,115,2.784,170,3.925,252,2.375,296,3.799,316,2.956,338,3.176,362,2.681,402,2.129,424,5.37,433,1.724,482,3.925,489,3.58,531,3.925,532,3.799,546,4.404,647,5.608,1213,4.404,1275,7.131,1276,6.252,1277,5.608,1278,6.252,1279,5.608]],["sidebarParentCategories/171",[87,0.711,804,1.218,805,1.591]],["title/172",[284,1.208,338,1.374,482,2.16,544,2.324,1255,2.853]],["content/172",[284,2.586,424,4.976,482,4.625,1275,6.607,1277,6.607,1279,6.607,1280,7.366,1281,7.366,1282,7.366,1283,7.366,1284,7.366]],["sidebarParentCategories/172",[87,0.711,804,1.218,805,1.591]],["title/173",[267,1.788,699,1.177]],["content/173",[2,0.848,3,1.4,6,2.013,8,2.505,17,2.706,25,1.445,32,3.202,33,2.424,41,3.658,55,1.262,103,1.848,146,1.541,200,1.711,267,3.07,277,4.115,305,2.083,323,2.762,343,2.351,362,2.505,393,4.341,395,2.706,411,3.668,545,2.424,699,2.083,706,4.074,718,2.351,745,3.345,851,1.926,870,3.851,1004,4.312,1225,2.81,1285,3.578,1286,2.944,1287,2.695,1288,2.46,1289,2.949,1290,3.148,1291,4.115,1292,3.092]],["sidebarParentCategories/173",[]],["title/174",[41,2.383,55,0.822,699,0.995]],["content/174",[6,3.345,32,3.07,33,4.028,41,4.364,146,2.56,200,2.842,267,2.224,305,2.363,343,3.906,545,4.028,699,1.984,706,3.906,718,3.906,851,3.201,1004,4.892,1225,4.669,1286,4.892,1287,4.477]],["sidebarParentCategories/174",[]],["title/175",[55,0.628,267,1.155,1288,1.449,1289,1.737,1290,1.423]],["content/175",[8,2.842,17,3.07,32,3.07,267,3.013,277,4.669,323,2.648,362,2.842,393,4.162,395,3.07,411,4.162,699,1.984,706,3.906,745,3.795,870,3.692,1289,3.345,1290,2.741,1291,4.669]],["sidebarParentCategories/175",[]],["title/176",[55,0.628,267,1.155,1288,1.449,1290,1.423,1292,1.821]],["content/176",[8,2.842,17,3.07,32,3.07,267,3.013,277,4.669,323,2.648,362,2.842,393,4.162,395,3.07,411,4.162,699,1.984,706,3.906,745,3.795,870,3.692,1290,2.741,1291,4.669,1292,3.507]],["sidebarParentCategories/176",[]],["title/177",[305,2.324]],["content/177",[2,0.829,3,1.367,25,2.079,39,3.494,58,0.634,67,2.114,77,2.367,78,2.631,146,1.504,148,3.798,149,1.769,210,1.182,235,2.367,267,1.307,272,3.032,305,3.297,323,1.556,361,5.15,364,1.347,400,2.367,413,2.296,454,2.744,479,2.744,484,3.665,522,2.556,530,3.494,605,2.012,699,1.507,810,2.744,853,3.032,903,3.494,905,4.044,1211,3.032,1239,4.76,1243,3.23,1289,3.441,1293,3.895,1294,7.524,1295,2.833,1296,6.116,1297,3.895,1298,3.895,1299,5.741,1300,6.818,1301,3.895,1302,3.032,1303,3.895,1304,3.23,1305,3.494,1306,3.494,1307,3.494]],["sidebarParentCategories/177",[]],["title/178",[210,1.367,484,1.739,1295,2.223]],["content/178",[5,4.69,8,2.583,17,2.791,25,2.811,95,3.112,167,4.446,200,2.583,235,4.718,267,2.605,346,4.69,484,3.504,540,2.902,699,1.716,712,6.437,758,5.404,1295,4.478,1308,6.024,1309,4.995,1310,6.024]],["sidebarParentCategories/178",[]],["title/179",[95,2.327,484,1.739,1295,2.223]],["content/179",[2,1.051,3,1.736,34,1.611,77,3.004,81,4.597,93,2.554,95,2.554,112,2.554,120,3.339,148,2.754,149,2.245,159,3.215,163,3.004,233,3.848,235,3.004,254,2.83,258,3.848,267,1.659,292,3.648,305,1.762,323,1.975,344,4.099,351,2.554,362,2.12,441,3.215,456,2.83,475,3.339,480,2.83,484,3.395,540,2.544,575,3.848,587,3.482,677,3.648,699,1.092,706,2.913,737,2.29,849,4.099,870,2.754,1285,4.434,1288,2.865,1295,3.84,1309,4.099,1311,3.848,1312,4.943,1313,4.943,1314,4.099]],["sidebarParentCategories/179",[]],["title/180",[200,1.931,484,1.739,1295,2.223]],["content/180",[13,4.369,18,3.167,31,1.063,32,2.256,41,4.408,58,1.095,95,3.479,117,2.458,146,1.881,178,4.369,183,4.038,200,3.75,233,3.792,252,1.85,305,2.401,323,1.946,326,2.256,360,2.789,362,2.089,484,3.217,492,4.38,695,3.792,699,2.049,851,2.352,902,3.595,1030,3.595,1288,2.836,1295,3.81,1304,4.038,1307,4.369,1315,4.87,1316,3.792,1317,4.87,1318,4.87]],["sidebarParentCategories/180",[]],["title/181",[362,2.284,1288,2.243]],["content/181",[249,4.868,261,4.126,267,2.913,362,3.09,364,2.492,1288,3.923,1289,3.637,1290,3.59,1292,3.813]],["sidebarParentCategories/181",[]],["title/182",[41,2.819,699,1.177]],["content/182",[6,2.81,31,1.92,32,2.579,33,3.383,41,4.375,53,2.303,146,2.15,200,3.545,267,1.868,305,2.629,343,3.281,545,3.383,699,2.079,706,3.281,718,3.281,740,3.383,851,2.689,911,4.981,1004,4.109,1166,3.922,1225,3.922,1286,4.109,1287,3.761,1319,5.567,1320,4.334,1321,4.616]],["sidebarParentCategories/182",[699,1.331]],["title/183",[699,1.177,941,3.931]],["content/183",[31,2.09,41,4.284,53,2.661,125,5.335,200,3.472,305,2.294,388,3.684,699,1.958,718,3.792,740,3.91,911,5.984,1166,4.532,1225,4.532,1320,5.009]],["sidebarParentCategories/183",[699,1.331]],["title/184",[31,0.671,41,1.628,699,0.68,718,1.814,911,2.079,1166,2.168]],["content/184",[2,1.291,19,1.66,31,1.921,34,1.047,37,2.502,41,3.612,50,3.613,53,2.054,55,1.797,71,1.128,105,2.018,137,2.502,148,1.79,172,2.3,200,2.927,229,4.274,258,2.502,260,2.018,261,1.84,298,2.372,305,1.77,310,1.84,323,1.983,324,2.169,345,1.95,391,2.264,395,1.489,402,1.095,540,1.856,562,2.926,699,1.797,718,1.894,723,2.171,744,2.018,775,2.694,779,2.129,793,3.641,813,1.744,911,2.171,1030,2.372,1045,2.171,1093,2.502,1217,2.883,1287,2.171,1291,2.264,1322,3.664,1323,2.502,1324,4.117,1325,2.883,1326,2.665,1327,2.665,1328,2.883,1329,3.213,1330,3.213,1331,2.883,1332,3.213,1333,2.883,1334,2.883,1335,2.883]],["sidebarParentCategories/184",[699,1.331]],["title/185",[31,0.968,53,1.151,200,1.902,305,0.992,1320,2.167]],["content/185",[2,1.074,31,1.808,34,0.793,37,3.098,41,2.106,50,3.198,53,2.855,55,1.772,71,0.854,89,1.288,134,1.894,147,1.714,148,1.355,168,1.32,171,1.288,172,1.843,200,3.124,229,1.714,232,1.528,249,1.644,261,2.278,294,1.714,298,4.746,305,2.955,310,1.393,316,1.15,323,1.589,324,1.063,345,1.983,351,2.056,395,1.127,400,2.418,402,0.829,405,1.528,456,1.393,532,1.479,535,2.182,538,2.182,540,1.887,562,3.79,603,1.479,699,1.116,718,1.434,723,1.644,744,0.989,775,2.159,779,1.706,793,2.878,813,1.32,911,3.41,941,1.796,943,2.937,1030,1.796,1045,1.644,1078,1.714,1166,2.803,1225,1.714,1287,1.644,1320,1.894,1322,1.796,1323,3.098,1324,6.303,1325,2.182,1326,2.017,1327,2.017,1331,3.569,1333,2.182,1334,2.182,1335,2.182,1336,2.182,1337,2.182,1338,2.433,1339,3.979,1340,2.433,1341,5.048,1342,2.433,1343,2.182,1344,2.182,1345,2.433,1346,3.979,1347,2.182,1348,2.433,1349,2.433,1350,2.433,1351,1.894]],["sidebarParentCategories/185",[699,1.331]],["title/186",[31,0.851,699,0.862,740,2.371,911,2.635]],["content/186",[2,1.513,6,2.115,31,1.879,34,1.366,38,3.093,41,2.218,50,1.942,55,1.739,58,0.682,71,1.472,148,2.335,171,2.218,200,2.597,284,1.472,305,1.494,310,2.4,345,2.379,355,1.982,362,1.797,366,3.475,388,3.468,395,1.942,402,1.428,540,1.567,562,3.569,589,3.057,679,2.505,699,1.903,723,2.831,725,3.76,744,2.89,775,3.286,779,1.797,793,2.068,813,2.274,1003,5.022,1045,2.831,1129,3.76,1288,1.765,1322,3.093,1324,3.475,1343,3.76,1352,4.191,1353,3.76,1354,3.76,1355,3.76,1356,4.191]],["sidebarParentCategories/186",[699,1.331]],["title/187",[1321,5.404]],["content/187",[17,2.131,34,1.499,35,2.888,41,3.425,58,0.748,84,3.705,102,1.486,159,2.991,170,2.888,172,2.998,190,2.711,209,3.395,254,2.633,261,2.633,364,1.59,417,5.038,489,3.705,492,2.991,541,2.888,544,4.372,699,1.796,712,3.814,740,2.795,851,2.221,871,3.581,905,3.24,943,3.395,1024,3.814,1046,2.434,1213,3.24,1288,3.153,1321,8.045,1357,4.599,1358,6.471,1359,4.599,1360,4.599,1361,4.599,1362,6.471,1363,3.814,1364,4.599,1365,4.599]],["sidebarParentCategories/187",[699,1.331]],["title/198",[267,1.309,1288,1.643,1289,1.969,1290,1.613]],["content/198",[2,1.911,8,1.721,17,2.718,32,1.859,55,1.072,70,2.328,71,1.409,265,1.859,267,2.561,277,2.827,294,2.827,302,1.898,305,2.092,310,3.36,323,2.771,324,1.753,327,2.896,328,3.501,329,2.962,337,0.942,362,1.721,389,2.236,393,2.52,395,2.718,402,1.367,411,2.52,433,1.618,434,2.06,453,2.61,699,1.936,706,2.365,718,2.365,745,3.36,870,2.236,1289,2.026,1290,2.427,1291,2.827,1322,2.962,1366,3.328,1367,3.6,1368,3.6,1369,7.632,1370,7.632,1371,3.6,1372,5.868]],["sidebarParentCategories/198",[699,1.331]],["title/199",[95,2.327,484,1.739,1295,2.223]],["content/199",[17,2.342,20,3.562,32,3.647,103,2.342,117,2.552,123,3.201,146,1.953,152,2.964,171,2.676,210,1.534,224,2.98,238,3.506,267,1.697,292,3.732,305,1.803,326,2.342,392,3.416,408,3.732,409,3.732,475,3.416,484,3.269,492,3.288,540,1.89,587,3.562,677,3.732,692,3.411,699,1.117,705,3.732,737,2.342,745,2.895,851,2.442,1234,3.175,1289,2.552,1295,4.177,1314,4.193,1373,3.175,1374,3.562,1375,4.536,1376,3.562]],["sidebarParentCategories/199",[699,1.331]],["title/200",[30,1.96,737,2.467]],["content/200",[8,0.735,17,0.794,19,0.481,30,2.775,33,0.565,43,0.47,44,0.771,50,0.431,51,0.834,53,1.619,55,1.752,58,0.701,59,1.328,62,0.778,68,0.93,72,1.422,73,1.042,77,0.565,89,0.907,90,1.977,92,0.628,95,1.232,102,0.394,108,0.518,114,0.982,120,0.628,123,1.105,130,1.158,138,0.724,140,1.373,145,2.354,147,0.655,148,0.955,149,0.778,150,0.342,151,0.505,152,2.991,156,0.724,159,0.605,163,0.565,171,0.907,179,0.565,180,0.481,182,0.982,190,1.405,191,3.592,202,1.076,204,2.087,210,0.52,218,0.687,221,0.687,223,0.834,229,1.208,235,0.565,237,2.747,242,0.771,252,0.353,264,0.565,267,0.575,294,0.655,298,1.265,305,1.057,330,0.687,338,0.372,345,0.365,346,0.724,350,0.628,351,2.408,357,1.405,360,0.533,364,0.322,374,1.431,385,1.115,391,0.655,395,0.431,397,0.459,400,0.565,433,1.648,456,0.533,478,0.687,480,0.533,484,1.34,492,0.605,512,1.405,522,1.32,532,0.565,536,1.405,540,1.463,541,1.861,543,3.375,562,0.548,574,0.628,605,1.232,699,0.865,706,1.747,737,1.996,770,0.533,779,2.932,792,0.533,793,2.457,807,0.771,810,0.655,833,0.771,851,1.431,856,1.608,925,1.801,930,0.834,938,1.265,939,0.771,942,1.538,948,1.422,957,1.431,985,3.149,996,1.977,1005,1.856,1046,1.836,1078,1.208,1084,1.208,1136,0.724,1144,4.077,1152,4.128,1167,1.208,1169,3.44,1171,1.115,1172,0.771,1234,0.584,1286,0.687,1287,0.628,1289,1.203,1290,0.986,1295,0.459,1302,0.724,1305,0.834,1306,0.834,1316,1.335,1323,0.724,1351,0.724,1373,0.584,1374,1.68,1376,0.655,1377,0.93,1378,2.139,1379,2.757,1380,0.93,1381,0.771,1382,0.834,1383,1.265,1384,3.865,1385,1.714,1386,2.658,1387,0.93,1388,1.422,1389,1.714,1390,1.714,1391,0.93,1392,0.93,1393,2.559,1394,1.158,1395,1.68,1396,1.977,1397,0.93,1398,0.93,1399,0.771,1400,1.538,1401,0.834,1402,0.93,1403,1.714,1404,0.771,1405,0.93,1406,0.93,1407,1.714,1408,1.714,1409,2.963,1410,0.93,1411,0.834,1412,0.93,1413,0.93,1414,0.93,1415,0.93,1416,0.93,1417,0.93,1418,0.93,1419,0.93,1420,1.714,1421,1.714,1422,1.714,1423,1.714,1424,2.963,1425,0.834,1426,2.307,1427,2.139,1428,1.68,1429,2.139,1430,0.834,1431,1.714,1432,0.93,1433,0.834,1434,0.834,1435,1.714,1436,0.93,1437,0.93,1438,0.93,1439,0.93,1440,0.93,1441,0.93,1442,0.93,1443,0.93,1444,0.834,1445,0.834,1446,0.771,1447,1.538,1448,0.724]],["sidebarParentCategories/200",[699,1.331]],["title/201",[150,1.96,737,2.467]],["content/201",[34,1.601,55,1.758,58,1.024,62,0.595,63,1.086,65,1.94,68,2.091,73,1.422,89,1.238,117,0.661,120,1.58,130,0.885,132,1.02,145,2.323,150,3.132,179,1.422,180,0.677,190,0.772,202,0.823,204,2.714,238,0.583,263,4.273,264,0.796,267,1.063,305,0.467,311,0.967,323,0.523,342,3.117,345,0.514,351,2.286,357,0.772,364,0.453,368,1.02,374,1.53,397,1.154,400,1.926,411,0.823,416,0.75,452,0.967,474,1.02,480,1.339,484,1.488,492,0.852,522,1.042,540,0.874,543,1.208,602,1.469,603,0.796,605,0.677,607,1.175,699,0.29,716,3.194,737,2.05,744,1.996,754,1.175,755,2.989,767,1.086,779,2.993,793,2.968,846,1.821,852,4.759,925,3.655,945,2.467,957,0.633,1024,1.086,1046,1.677,1054,4.786,1057,1.521,1059,2.714,1061,1.726,1063,2.628,1064,1.086,1065,1.086,1066,1.94,1071,1.02,1072,1.086,1074,1.648,1077,3.969,1078,1.648,1083,1.086,1086,1.821,1088,1.02,1090,1.02,1103,2.467,1136,1.02,1219,1.175,1239,1.086,1289,1.181,1290,0.968,1302,1.02,1311,1.02,1351,1.02,1363,1.086,1373,0.823,1376,2.232,1393,2.917,1394,0.885,1395,1.648,1399,1.086,1449,1.31,1450,1.31,1451,1.31,1452,1.175,1453,1.31,1454,1.31,1455,2.098,1456,1.31,1457,1.31,1458,1.31,1459,0.923,1460,3.969,1461,1.31,1462,1.31,1463,1.31,1464,1.31,1465,1.31,1466,1.086,1467,2.339,1468,1.31,1469,2.339,1470,2.339,1471,1.31,1472,1.31,1473,1.31,1474,1.31,1475,1.31,1476,1.175,1477,1.31,1478,2.843,1479,1.31,1480,1.31,1481,1.31,1482,1.31,1483,1.31,1484,1.31,1485,1.31,1486,1.31,1487,1.31,1488,1.31]],["sidebarParentCategories/201",[699,1.331]],["title/202",[152,1.902,210,0.845,540,1.041,692,1.374,699,0.615,851,1.344]],["content/202",[2,1.014,6,1.54,25,1.105,33,1.854,34,0.994,37,2.375,55,1.755,58,0.776,68,2.587,102,0.7,123,1.413,152,3.274,171,1.614,174,4.277,179,1.854,210,2.633,224,4.244,230,3.101,267,1.024,305,1.7,311,2.251,323,1.219,345,2.607,351,1.576,478,2.251,484,1.842,522,2.123,545,1.854,574,4.483,575,3.712,605,1.576,692,1.505,711,2.149,737,1.413,813,2.587,851,2.835,925,1.854,1055,2.529,1146,2.529,1166,2.149,1234,1.915,1289,1.54,1290,1.262,1295,1.505,1296,2.736,1316,2.375,1344,5.265,1373,1.915,1374,2.149,1489,2.736,1490,2.736,1491,4.768,1492,3.05,1493,5.87,1494,3.05,1495,6.637,1496,4.277,1497,3.05,1498,5.953,1499,3.05,1500,2.736,1501,4.768,1502,4.768,1503,3.05,1504,3.05,1505,3.05,1506,2.736,1507,3.05,1508,3.05,1509,3.05]],["sidebarParentCategories/202",[699,1.331]],["title/203",[200,1.931,484,1.739,1295,2.223]],["content/203",[5,3.305,20,4.306,25,1.537,32,1.966,41,4.147,43,3.085,47,3.305,55,1.431,58,0.994,59,2.365,77,2.58,96,1.562,117,2.143,123,1.966,140,2.832,165,3.305,200,2.621,243,2.665,323,1.696,326,1.966,345,1.667,362,1.82,364,1.468,413,2.502,455,3.133,484,3.341,532,4.353,594,3.52,699,1.732,744,1.725,802,3.305,810,2.99,811,3.52,870,2.365,890,3.305,902,3.133,1100,3.52,1288,2.574,1289,2.143,1295,3.535,1326,3.52,1327,5.068,1373,3.838,1379,2.99,1382,3.808,1393,1.966,1401,3.808,1510,4.245,1511,4.245,1512,3.808,1513,3.808]],["sidebarParentCategories/203",[699,1.331]],["title/204",[30,1.96,221,3.931]],["content/204",[30,2.635,53,1.756,55,1.666,73,2.58,84,2.431,123,1.966,140,1.966,147,2.99,180,2.193,182,3.5,190,2.502,200,1.82,221,5.287,374,2.952,388,2.431,397,2.095,454,2.99,479,2.99,480,2.431,522,1.89,543,4.468,545,2.58,605,2.193,692,2.095,779,1.82,851,2.05,957,4.01,1078,2.99,1169,5.287,1196,3.808,1289,3.085,1290,1.756,1381,3.52,1393,1.966,1396,7.172,1411,3.808,1514,7.836,1515,3.808,1516,4.245,1517,4.245,1518,4.245,1519,4.245,1520,4.245,1521,4.245]],["sidebarParentCategories/204",[699,1.331]],["title/205",[30,1.435,957,1.884,1288,1.643,1393,1.807]],["content/205",[30,3.207,53,1.496,55,1.81,58,0.884,68,2.949,114,2.071,145,2.57,149,2.468,152,2.33,190,2.132,202,2.272,237,3.203,261,2.071,263,1.963,264,2.199,305,1.938,400,2.199,433,1.8,480,3.111,512,3.203,522,1.611,536,2.132,545,2.199,719,2.548,851,1.747,867,4.506,985,2.444,1030,2.67,1161,4.506,1171,2.353,1234,2.272,1288,1.523,1289,1.826,1290,1.496,1373,2.272,1379,2.548,1393,3.023,1426,4.231,1427,4.875,1428,3.828,1429,4.875,1522,4.875,1523,2.444,1524,5.434,1525,6.526,1526,5.434,1527,5.434,1528,5.434,1529,5.434,1530,5.434]],["sidebarParentCategories/205",[699,1.331]],["title/206",[347,2.327,1393,2.086,1459,3.172]],["content/206",[17,1.467,19,1.636,31,1.071,43,1.599,58,0.515,59,1.764,89,2.598,117,1.599,127,4.404,148,2.735,149,1.438,171,1.676,228,3.442,229,2.231,284,3.013,288,2.626,341,1.676,347,4.612,355,3.202,388,3.442,397,3.342,400,2.984,484,1.223,489,2.811,605,1.636,679,1.31,699,0.7,711,2.231,745,1.813,767,2.626,849,2.626,905,2.231,912,2.466,1033,2.626,1046,1.676,1213,2.231,1287,2.14,1328,4.404,1347,4.404,1355,2.841,1393,2.785,1404,2.626,1459,6.47,1506,4.404,1531,6.012,1532,8.581,1533,3.167,1534,3.167,1535,3.167,1536,4.91,1537,4.91,1538,2.841,1539,3.167,1540,4.91,1541,4.91,1542,3.167,1543,3.167,1544,3.167,1545,3.167,1546,3.167,1547,2.841,1548,4.91,1549,4.91]],["sidebarParentCategories/206",[699,1.331]],["title/207",[32,2.086,93,2.327,536,2.654]],["content/207",[32,4.092,53,2.772,55,1.355,58,0.615,59,2.108,62,1.718,81,2.556,84,3.217,93,1.955,113,3.796,147,2.665,150,2.916,200,2.41,218,2.792,221,2.792,226,2.665,239,2.556,253,3.394,268,2.792,305,1.349,351,1.955,397,1.867,433,1.043,434,1.328,481,2.792,536,2.23,605,1.955,699,1.242,755,3.796,770,2.166,957,1.827,1089,2.792,1234,2.376,1286,2.792,1288,2.366,1289,1.91,1290,1.565,1366,4.659,1373,2.376,1393,3.672,1394,2.556,1448,2.946,1523,2.556,1550,3.783,1551,5.619,1552,5.619,1553,5.619,1554,3.783,1555,6.703,1556,3.783,1557,5.619,1558,3.394,1559,3.394,1560,3.783,1561,3.783,1562,3.783,1563,3.783,1564,3.783,1565,3.783,1566,3.783,1567,3.783,1568,3.783,1569,3.783]],["sidebarParentCategories/207",[699,1.331]],["title/208",[263,2.117,1054,2.371,1288,1.643,1393,1.807]],["content/208",[34,2.362,35,3.027,53,1.279,55,1.402,58,1.179,65,5.545,84,1.771,90,2.565,145,2.279,148,1.723,150,3.135,152,1.327,179,1.88,180,1.598,190,1.823,191,2.012,210,0.939,227,3.395,263,3.629,264,1.88,284,1.086,342,2.179,357,2.841,373,1.679,374,1.494,400,1.88,512,3.491,522,1.377,536,1.823,540,2.214,589,1.561,605,1.598,715,1.723,716,2.565,737,1.433,770,1.771,852,4.958,874,2.408,925,1.88,1054,4.064,1057,3.135,1212,2.408,1288,1.303,1289,1.561,1290,1.279,1351,2.408,1393,3.557,1394,2.09,1448,2.408,1455,2.775,1466,2.565,1523,2.09,1559,2.775,1570,5.922,1571,3.093,1572,3.093,1573,4.82,1574,3.093,1575,3.093,1576,4.82,1577,3.093,1578,4.82,1579,4.82,1580,4.82,1581,4.82,1582,4.82,1583,3.093,1584,3.093,1585,3.093,1586,3.093]],["sidebarParentCategories/208",[699,1.331]],["title/209",[150,1.435,342,2.748,1459,2.748,1587,3.499]],["content/209",[8,1.972,18,2.991,55,1.484,77,2.795,92,3.107,145,3.54,150,3.15,167,3.395,342,6.031,356,3.814,512,2.711,522,2.048,543,4.197,605,2.376,699,1.016,839,5.038,852,4.063,957,2.221,1046,2.434,1103,5.038,1288,1.937,1289,2.321,1354,4.126,1373,2.888,1393,3.764,1395,4.558,1399,3.814,1452,4.126,1459,6.031,1478,4.126,1523,3.107,1588,4.599,1589,6.471,1590,4.599,1591,4.599,1592,4.599]],["sidebarParentCategories/209",[699,1.331]],["title/215",[267,1.309,1288,1.643,1290,1.613,1292,2.064]],["content/215",[2,1.911,8,1.721,17,2.718,32,1.859,55,1.072,70,2.328,71,1.409,265,1.859,267,2.561,277,2.827,294,2.827,302,1.898,305,2.092,310,3.36,323,2.771,324,1.753,327,2.896,328,3.501,329,2.962,337,0.942,362,1.721,389,2.236,393,2.52,395,2.718,402,1.367,411,2.52,433,1.618,434,2.06,453,2.61,699,1.936,706,2.365,718,2.365,726,6.846,727,5.264,728,6.846,745,3.36,870,2.236,1290,1.66,1291,2.827,1292,3.106,1322,2.962,1366,3.328,1367,3.6,1368,3.6,1371,3.6]],["sidebarParentCategories/215",[699,1.331]],["title/216",[95,2.327,484,1.739,1295,2.223]],["content/216",[17,2.379,20,3.617,32,3.676,103,2.379,117,2.592,123,3.676,146,1.983,171,2.717,224,3.026,238,3.534,267,1.723,292,3.79,305,1.831,315,2.332,326,2.379,392,3.469,408,3.79,409,3.79,475,3.469,484,3.29,492,3.339,587,3.617,677,3.79,692,3.447,699,1.135,705,3.79,737,3.235,745,2.94,1234,3.224,1290,2.124,1295,4.204,1314,4.258,1374,3.617,1375,4.606,1376,3.617,1593,3.998]],["sidebarParentCategories/216",[699,1.331]],["title/217",[31,1.162,1594,4.778]],["content/217",[18,2.852,31,1.908,50,2.032,55,1.332,62,1.991,66,2.38,87,0.811,130,2.963,140,2.898,190,3.688,239,2.963,261,2.511,284,1.54,340,2.852,355,3.449,388,2.511,402,2.865,415,3.637,465,2.321,540,2.339,603,2.665,692,2.165,699,0.969,737,3.379,744,3.418,770,2.511,773,2.754,775,3.958,779,2.683,802,3.414,851,3.022,866,3.089,876,3.414,957,2.118,1006,3.637,1288,1.847,1290,1.814,1292,2.321,1376,3.089,1595,3.637,1596,6.257,1597,4.386,1598,3.934,1599,4.386,1600,4.386]],["sidebarParentCategories/217",[699,1.331]],["title/218",[145,2.129,1089,3.324,1601,4.04]],["content/218",[2,1.051,31,1.698,58,1.107,77,3.004,102,1.135,112,2.554,140,2.29,145,2.337,149,2.245,171,2.616,179,3.004,204,3.482,211,4.597,232,3.104,267,1.659,284,2.389,325,3.482,355,2.337,522,2.201,562,2.913,679,2.045,695,3.848,699,1.092,710,4.099,715,2.754,832,6.104,833,4.099,860,4.099,1004,3.648,1141,4.434,1209,4.434,1304,4.099,1363,4.099,1379,3.482,1383,5.022,1394,3.339,1547,4.434,1601,6.104,1602,4.943,1603,6.804,1604,4.943,1605,4.943,1606,4.943,1607,4.943,1608,4.943,1609,4.943]],["sidebarParentCategories/218",[699,1.331]],["title/219",[268,3.324,536,2.654,737,2.086]],["content/219",[2,1.494,31,1.37,55,1.836,58,0.552,73,2.063,123,1.573,167,2.506,264,2.063,268,2.506,272,2.643,302,1.605,327,1.676,344,2.815,345,2.034,360,1.944,364,1.174,388,1.944,402,1.156,416,3.595,480,2.965,522,1.512,532,2.063,536,2.001,540,2.347,562,2.001,692,2.556,701,6.301,708,4.646,737,3.504,744,2.105,775,1.842,779,1.456,793,3.467,885,2.815,1290,1.404,1292,1.797,1595,2.815,1610,3.395,1611,5.179,1612,5.179,1613,5.179,1614,5.179,1615,5.179,1616,3.045,1617,5.179,1618,5.179,1619,3.395,1620,5.179,1621,5.179,1622,5.179,1623,7.024,1624,3.395,1625,3.395,1626,3.395]],["sidebarParentCategories/219",[699,1.331]],["title/220",[235,2.737,737,2.086,978,3.734]],["content/220",[8,1.163,31,0.592,34,0.884,55,1.592,58,0.707,68,3.373,84,2.488,111,1.511,130,2.935,141,2.112,145,3.745,146,1.678,179,2.641,202,1.703,216,2.249,218,2.002,235,4.41,237,3.204,252,1.031,284,0.952,305,0.967,316,1.283,318,1.511,323,1.084,334,6.32,340,1.764,351,2.245,356,2.249,388,1.553,397,1.339,479,1.911,522,1.208,540,1.624,589,1.369,603,1.648,677,2.002,692,1.339,694,1.832,719,3.061,737,2.879,770,2.488,779,2.331,793,3.068,851,3.002,856,1.472,867,2.249,889,1.832,957,1.31,978,4.507,985,1.832,1046,2.299,1136,2.112,1167,3.829,1171,2.826,1290,1.797,1292,2.299,1337,2.433,1379,1.911,1383,2.002,1388,3.603,1404,5.154,1466,2.249,1538,3.898,1587,2.433,1627,2.713,1628,4.345,1629,2.433,1630,4.345,1631,5.436,1632,2.713,1633,4.345,1634,4.345,1635,2.713,1636,2.713,1637,2.713,1638,4.345,1639,4.345,1640,2.713,1641,2.713,1642,2.713,1643,2.713,1644,2.713,1645,2.713,1646,2.713,1647,2.433,1648,2.713,1649,2.713,1650,2.713,1651,2.433,1652,2.433]],["sidebarParentCategories/220",[699,1.331]],["title/221",[465,2.819,737,2.467]],["content/221",[30,2.567,172,3.232,182,3.995,318,3.887,355,3.299,465,3.692,484,2.695,603,4.24,866,4.915,1210,6.259,1211,5.432,1212,5.432,1653,6.259,1654,6.977,1655,6.977,1656,6.977]],["sidebarParentCategories/221",[699,1.331]],["title/222",[225,2.89,737,2.467]],["content/222",[6,0.91,8,1.327,17,0.835,30,0.663,34,0.587,43,0.91,50,0.835,53,0.746,55,1.679,58,0.784,62,1.405,68,1.679,73,1.096,77,1.096,95,0.931,108,1.004,114,1.772,123,0.835,130,2.09,140,1.433,145,2.801,149,0.819,152,3.207,153,1.132,156,1.404,163,1.096,171,0.954,179,1.096,190,1.063,202,1.132,210,0.547,225,3.793,229,1.27,237,3.491,242,1.495,243,1.132,264,1.096,267,0.605,305,1.449,323,0.72,330,1.331,338,0.72,350,1.218,351,2.491,357,1.063,360,1.032,364,0.623,433,1.121,456,1.032,478,1.331,480,1.032,484,1.195,512,1.063,522,2.417,532,1.096,536,1.824,540,1.52,541,3.028,543,2.491,574,1.218,605,0.931,699,0.898,737,2.514,779,2.868,793,3.128,851,2.861,957,0.871,985,4.002,996,3.371,1005,3.165,1046,0.954,1078,1.27,1144,3.559,1145,2.409,1167,2.18,1169,2.284,1171,2.012,1234,1.132,1290,1.28,1292,1.638,1302,1.404,1373,1.132,1374,2.864,1376,1.27,1383,2.284,1384,2.776,1386,2.776,1388,2.566,1393,2.234,1394,1.218,1395,2.18,1425,1.617,1426,3.754,1428,2.864,1430,1.617,1433,1.617,1434,1.617,1444,1.617,1445,1.617,1446,1.495,1447,2.776,1657,4.822,1658,1.404,1659,1.803,1660,1.803,1661,1.803,1662,1.803,1663,3.094,1664,1.803,1665,3.094,1666,1.803,1667,1.803,1668,4.822,1669,1.803,1670,3.094,1671,3.094,1672,3.094,1673,1.617,1674,1.617,1675,3.647,1676,3.094,1677,1.803,1678,2.776,1679,3.094,1680,1.803,1681,1.803,1682,1.803,1683,1.803,1684,1.803,1685,1.803]],["sidebarParentCategories/222",[699,1.331]],["title/223",[30,1.435,225,2.117,263,2.117,1054,2.371]],["content/223",[5,1.944,6,2.052,20,1.759,34,1.93,55,1.818,58,0.963,89,1.322,96,0.919,137,1.944,146,0.965,150,2.825,151,1.355,152,3.654,167,1.843,180,1.29,202,1.568,225,2.206,227,1.759,232,1.568,237,1.472,263,3.214,284,0.877,326,1.157,338,0.998,351,2.1,357,2.396,395,1.157,416,2.327,433,0.689,512,1.472,522,2.289,540,1.52,541,2.552,562,1.472,589,1.261,715,1.391,719,1.759,737,1.883,755,1.687,779,2.796,793,2.923,846,4.001,852,2.789,1038,2.071,1054,3.6,1057,1.624,1058,2.071,1059,2.863,1060,1.944,1061,3,1171,1.624,1290,1.033,1292,1.322,1309,2.071,1353,2.24,1378,2.24,1395,2.863,1396,3.37,1428,1.759,1476,2.24,1594,5.313,1674,2.24,1678,3.646,1686,4.065,1687,4.065,1688,4.065,1689,4.065,1690,4.065,1691,2.24,1692,2.497,1693,4.065,1694,4.065,1695,4.065,1696,4.065,1697,4.065,1698,2.497,1699,2.497,1700,2.497,1701,2.497,1702,2.497,1703,2.497,1704,2.497,1705,2.497]],["sidebarParentCategories/223",[699,1.331]],["title/224",[123,1.425,315,1.397,540,1.15,692,1.519,699,0.68,737,1.425]],["content/224",[2,0.754,6,0.483,17,0.443,25,0.347,31,0.661,34,0.312,53,0.396,55,1.815,58,0.649,59,0.533,62,0.435,73,0.582,83,0.859,84,0.548,92,1.189,93,1.83,111,1.974,123,2.198,138,0.745,145,1.433,146,0.68,148,0.533,150,0.352,151,0.519,152,2.507,160,1.579,171,0.931,179,1.07,210,0.92,216,0.794,220,1.145,224,3.446,226,1.24,227,2.496,232,0.601,235,1.485,240,2.719,254,0.548,261,0.548,267,0.321,279,0.647,288,0.794,298,0.707,306,0.794,315,0.799,318,1.689,323,0.703,327,2.167,336,0.674,342,0.674,345,1.392,351,1.566,360,1.399,364,0.331,374,0.462,381,0.623,388,1.008,395,0.815,402,0.6,416,1.008,474,0.745,478,0.707,484,0.68,492,0.623,522,1.578,540,2.473,562,2.088,574,3.42,603,0.582,692,1.206,699,0.54,711,0.674,719,0.674,737,2.901,744,0.715,775,0.519,779,2.406,792,2.286,793,2.342,813,1.923,851,0.85,860,0.794,885,0.794,925,0.582,1005,2.36,1033,0.794,1046,1.604,1084,1.24,1151,0.859,1167,2.135,1212,0.745,1234,0.601,1290,1.011,1292,1.293,1295,0.472,1311,2.36,1316,0.745,1323,0.745,1336,2.719,1374,1.24,1381,0.794,1393,2.985,1428,1.24,1446,1.459,1448,1.37,1459,0.674,1460,0.859,1489,0.859,1490,0.859,1496,1.579,1498,0.859,1500,0.859,1515,0.859,1593,0.745,1595,2.026,1598,0.859,1616,3.178,1647,1.579,1651,0.859,1652,2.192,1658,0.745,1673,1.579,1691,0.859,1706,0.957,1707,0.957,1708,4.39,1709,2.443,1710,0.957,1711,0.957,1712,0.957,1713,0.957,1714,0.957,1715,0.957,1716,3.031,1717,0.957,1718,1.76,1719,1.76,1720,1.76,1721,0.957,1722,0.957,1723,5.846,1724,0.957,1725,0.957,1726,0.957,1727,0.957,1728,0.957,1729,2.443,1730,0.957,1731,0.957,1732,0.957,1733,1.76,1734,3.992,1735,3.031,1736,3.992,1737,1.76,1738,3.031,1739,1.76,1740,0.957,1741,0.957,1742,1.76,1743,1.76,1744,1.76,1745,0.957,1746,1.76,1747,1.76,1748,0.957,1749,0.957,1750,0.957,1751,0.957,1752,0.957,1753,0.957,1754,3.031,1755,0.957,1756,3.992,1757,0.957,1758,1.76,1759,0.957,1760,0.957,1761,0.957,1762,0.957,1763,0.957,1764,0.957,1765,0.957,1766,0.957,1767,1.76,1768,0.957,1769,0.957,1770,0.957,1771,0.957,1772,3.992,1773,2.443,1774,3.543,1775,3.543,1776,0.957,1777,0.957,1778,0.957,1779,0.957,1780,1.76,1781,0.957,1782,0.957,1783,0.957,1784,0.957,1785,0.957,1786,0.957,1787,0.957,1788,0.957,1789,0.957,1790,0.957,1791,0.957]],["sidebarParentCategories/224",[699,1.331]],["title/225",[200,1.931,484,1.739,1295,2.223]],["content/225",[32,2.325,41,4.464,43,3.47,47,3.907,58,0.816,92,3.39,96,1.846,117,2.533,140,3.185,200,2.948,225,2.723,243,3.151,326,2.325,345,1.971,362,2.152,413,2.958,484,3.258,532,3.05,594,4.161,699,1.864,744,2.039,802,3.907,810,3.535,811,4.161,870,2.795,902,3.704,1288,2.895,1290,2.076,1292,2.656,1295,3.393,1379,3.535,1383,3.704,1393,2.325,1395,3.535,1512,4.501,1513,4.501,1593,3.907,1658,3.907,1792,5.018]],["sidebarParentCategories/225",[699,1.331]],["title/226",[225,2.117,957,1.884,1288,1.643,1393,1.807]],["content/226",[53,2.091,55,1.83,58,0.822,68,2.744,114,2.895,145,3.268,152,2.964,225,3.75,237,4.073,263,2.744,264,3.073,305,2.464,480,3.957,512,2.98,522,2.252,536,2.98,545,3.073,1171,3.288,1288,2.129,1290,2.091,1292,2.676,1393,3.647,1426,5.38,1428,4.868,1522,6.199,1523,3.416,1593,3.937,1675,6.199]],["sidebarParentCategories/226",[699,1.331]],["title/227",[150,1.435,957,1.884,1288,1.643,1393,1.807]],["content/227",[58,0.898,59,3.075,130,3.73,146,2.132,150,3.227,171,2.922,210,2.225,239,3.73,249,3.73,284,1.938,327,2.725,334,4.578,347,2.852,522,2.459,957,2.666,1150,6.08,1288,2.325,1311,4.298,1393,2.558,1400,4.952,1523,3.73,1558,4.952,1629,6.577,1653,4.952,1658,4.298,1793,5.521,1794,8.233,1795,5.521,1796,5.521,1797,5.521,1798,5.521,1799,5.521,1800,5.521]],["sidebarParentCategories/227",[699,1.331]],["title/228",[957,2.175,1288,1.896,1393,2.086]],["content/228",[9,4.777,34,1.877,53,2.383,55,1.629,84,3.299,150,2.12,180,2.976,202,3.618,218,4.252,264,3.501,279,3.892,374,4.307,456,3.299,522,2.566,540,2.154,605,2.976,957,4.06,1288,2.426,1290,2.383,1292,3.049,1393,3.494,1394,3.892,1523,3.892,1801,5.761,1802,7.541,1803,5.761]],["sidebarParentCategories/228",[699,1.331]]],"invertedIndex":[["",{"_index":55,"title":{"2":{},"3":{},"4":{},"26":{},"27":{},"28":{},"29":{},"38":{},"39":{},"85":{},"86":{},"87":{},"88":{},"174":{},"175":{},"176":{}},"content":{"1":{},"8":{},"10":{},"25":{},"33":{},"36":{},"37":{},"42":{},"53":{},"58":{},"76":{},"78":{},"79":{},"80":{},"81":{},"82":{},"84":{},"91":{},"92":{},"93":{},"94":{},"95":{},"99":{},"104":{},"106":{},"116":{},"117":{},"118":{},"119":{},"125":{},"131":{},"132":{},"133":{},"136":{},"143":{},"144":{},"146":{},"147":{},"148":{},"149":{},"156":{},"157":{},"159":{},"160":{},"161":{},"162":{},"163":{},"173":{},"184":{},"185":{},"186":{},"198":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"207":{},"208":{},"209":{},"215":{},"217":{},"219":{},"220":{},"222":{},"223":{},"224":{},"226":{},"228":{}},"sidebarParentCategories":{}}],["0.0.1",{"_index":1300,"title":{},"content":{"177":{}},"sidebarParentCategories":{}}],["0.1",{"_index":1343,"title":{},"content":{"185":{},"186":{}},"sidebarParentCategories":{}}],["0.1.0",{"_index":1289,"title":{"175":{},"198":{}},"content":{"173":{},"175":{},"177":{},"181":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"207":{},"208":{},"209":{}},"sidebarParentCategories":{}}],["0.2",{"_index":1355,"title":{},"content":{"186":{},"206":{}},"sidebarParentCategories":{}}],["0.2.0",{"_index":1373,"title":{},"content":{"199":{},"200":{},"201":{},"202":{},"203":{},"205":{},"207":{},"209":{},"222":{}},"sidebarParentCategories":{}}],["0.2.5",{"_index":1603,"title":{},"content":{"218":{}},"sidebarParentCategories":{}}],["0.2.x",{"_index":1290,"title":{"175":{},"176":{},"198":{},"215":{}},"content":{"173":{},"175":{},"176":{},"181":{},"198":{},"200":{},"201":{},"202":{},"204":{},"205":{},"207":{},"208":{},"215":{},"216":{},"217":{},"219":{},"220":{},"222":{},"223":{},"224":{},"225":{},"226":{},"228":{}},"sidebarParentCategories":{}}],["0.3.0",{"_index":1593,"title":{},"content":{"216":{},"224":{},"225":{},"226":{}},"sidebarParentCategories":{}}],["0.3.x",{"_index":1292,"title":{"176":{},"215":{}},"content":{"173":{},"176":{},"181":{},"215":{},"217":{},"219":{},"220":{},"222":{},"223":{},"224":{},"225":{},"226":{},"228":{}},"sidebarParentCategories":{}}],["0.61.5",{"_index":687,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["0.62.0",{"_index":680,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["0.64.0",{"_index":713,"title":{},"content":{"82":{}},"sidebarParentCategories":{}}],["0.69.5",{"_index":681,"title":{},"content":{"81":{},"82":{}},"sidebarParentCategories":{}}],["0.70.0",{"_index":678,"title":{},"content":{"81":{},"82":{}},"sidebarParentCategories":{}}],["0023",{"_index":1479,"title":{},"content":{"201":{}},"sidebarParentCategories":{}}],["004",{"_index":205,"title":{},"content":{"9":{},"96":{}},"sidebarParentCategories":{}}],["01",{"_index":553,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["0160",{"_index":1063,"title":{},"content":{"146":{},"150":{},"201":{}},"sidebarParentCategories":{}}],["0212",{"_index":983,"title":{},"content":{"125":{}},"sidebarParentCategories":{}}],["0360",{"_index":1602,"title":{},"content":{"218":{}},"sidebarParentCategories":{}}],["040e96c3c539",{"_index":1530,"title":{},"content":{"205":{}},"sidebarParentCategories":{}}],["0434",{"_index":1053,"title":{},"content":{"146":{},"150":{}},"sidebarParentCategories":{}}],["04a2c382",{"_index":1578,"title":{},"content":{"208":{}},"sidebarParentCategories":{}}],["0592",{"_index":1424,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["09e46da9",{"_index":1526,"title":{},"content":{"205":{}},"sidebarParentCategories":{}}],["1",{"_index":316,"title":{"139":{},"146":{},"153":{},"159":{},"168":{}},"content":{"25":{},"26":{},"27":{},"28":{},"29":{},"84":{},"85":{},"106":{},"113":{},"143":{},"156":{},"165":{},"171":{},"185":{},"220":{}},"sidebarParentCategories":{}}],["1.0",{"_index":1146,"title":{},"content":{"160":{},"163":{},"202":{}},"sidebarParentCategories":{}}],["1.0.0",{"_index":1294,"title":{},"content":{"177":{}},"sidebarParentCategories":{}}],["1.1",{"_index":1055,"title":{},"content":{"146":{},"150":{},"202":{}},"sidebarParentCategories":{}}],["1.4",{"_index":906,"title":{},"content":{"113":{}},"sidebarParentCategories":{}}],["10",{"_index":992,"title":{},"content":{"126":{}},"sidebarParentCategories":{}}],["10000",{"_index":974,"title":{},"content":{"124":{}},"sidebarParentCategories":{}}],["10044/com.usereactnativeindysdk",{"_index":557,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["13",{"_index":566,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["16:25:02.300",{"_index":555,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["2",{"_index":405,"title":{"141":{},"154":{},"160":{},"169":{}},"content":{"37":{},"38":{},"146":{},"165":{},"185":{}},"sidebarParentCategories":{}}],["2.1",{"_index":1249,"title":{"142":{},"155":{},"170":{}},"content":{},"sidebarParentCategories":{}}],["2.2",{"_index":1252,"title":{"143":{},"156":{},"171":{}},"content":{},"sidebarParentCategories":{}}],["2.3",{"_index":1255,"title":{"144":{},"157":{},"172":{}},"content":{},"sidebarParentCategories":{}}],["20",{"_index":993,"title":{},"content":{"126":{}},"sidebarParentCategories":{}}],["2020",{"_index":552,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["2022",{"_index":1263,"title":{},"content":{"167":{}},"sidebarParentCategories":{}}],["21",{"_index":597,"title":{},"content":{"78":{}},"sidebarParentCategories":{}}],["23",{"_index":1175,"title":{},"content":{"162":{},"163":{}},"sidebarParentCategories":{}}],["27",{"_index":554,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["3",{"_index":806,"title":{"147":{},"161":{}},"content":{"84":{},"88":{}},"sidebarParentCategories":{}}],["3000",{"_index":380,"title":{},"content":{"42":{},"93":{},"95":{},"159":{}},"sidebarParentCategories":{}}],["3001",{"_index":1052,"title":{},"content":{"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["3002",{"_index":1126,"title":{},"content":{"159":{},"163":{}},"sidebarParentCategories":{}}],["32",{"_index":862,"title":{},"content":{"105":{}},"sidebarParentCategories":{}}],["3b6f131af5e",{"_index":968,"title":{},"content":{"122":{}},"sidebarParentCategories":{}}],["4",{"_index":1073,"title":{"148":{},"162":{}},"content":{},"sidebarParentCategories":{}}],["40c4",{"_index":966,"title":{},"content":{"122":{}},"sidebarParentCategories":{}}],["4909",{"_index":1528,"title":{},"content":{"205":{}},"sidebarParentCategories":{}}],["4baf",{"_index":965,"title":{},"content":{"122":{}},"sidebarParentCategories":{}}],["4de9",{"_index":1580,"title":{},"content":{"208":{}},"sidebarParentCategories":{}}],["5",{"_index":1097,"title":{"149":{},"163":{}},"content":{},"sidebarParentCategories":{}}],["50",{"_index":1672,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["5000",{"_index":383,"title":{},"content":{"42":{},"124":{}},"sidebarParentCategories":{}}],["64.jar",{"_index":664,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["7000",{"_index":1645,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["9955",{"_index":556,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["999e",{"_index":1579,"title":{},"content":{"208":{}},"sidebarParentCategories":{}}],["9dec0b2fa5e4",{"_index":1582,"title":{},"content":{"208":{}},"sidebarParentCategories":{}}],["_before_",{"_index":1329,"title":{},"content":{"184":{}},"sidebarParentCategories":{}}],["_internal/indycredenti",{"_index":1517,"title":{},"content":{"204":{}},"sidebarParentCategories":{}}],["_internal/indyrequest",{"_index":1516,"title":{},"content":{"204":{}},"sidebarParentCategories":{}}],["a1d2",{"_index":1581,"title":{},"content":{"208":{}},"sidebarParentCategories":{}}],["a575",{"_index":1527,"title":{},"content":{"205":{}},"sidebarParentCategories":{}}],["aarch64.jar",{"_index":655,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["abov",{"_index":339,"title":{},"content":{"32":{},"35":{},"48":{},"54":{},"62":{},"70":{}},"sidebarParentCategories":{}}],["accept",{"_index":856,"title":{},"content":{"104":{},"112":{},"113":{},"114":{},"118":{},"119":{},"120":{},"145":{},"158":{},"159":{},"161":{},"163":{},"200":{},"220":{}},"sidebarParentCategories":{}}],["acceptancemechan",{"_index":881,"title":{},"content":{"106":{}},"sidebarParentCategories":{}}],["acceptpresent",{"_index":1662,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["acceptpropos",{"_index":1660,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["acceptxxx",{"_index":1402,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["acces",{"_index":1730,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["access",{"_index":73,"title":{},"content":{"10":{},"45":{},"80":{},"83":{},"200":{},"201":{},"204":{},"219":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["access/jna/raw/5.5.0/lib/native/android",{"_index":654,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["accord",{"_index":325,"title":{},"content":{"30":{},"31":{},"34":{},"125":{},"146":{},"218":{}},"sidebarParentCategories":{}}],["accordingli",{"_index":1151,"title":{},"content":{"161":{},"224":{}},"sidebarParentCategories":{}}],["account",{"_index":1234,"title":{},"content":{"136":{},"199":{},"200":{},"202":{},"205":{},"207":{},"216":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["acm",{"_index":1036,"title":{},"content":{"145":{},"146":{},"148":{},"149":{}},"sidebarParentCategories":{}}],["acmeag",{"_index":1108,"title":{},"content":{"149":{}},"sidebarParentCategories":{}}],["act",{"_index":127,"title":{},"content":{"6":{},"206":{}},"sidebarParentCategories":{}}],["action",{"_index":288,"title":{},"content":{"22":{},"206":{},"224":{}},"sidebarParentCategories":{}}],["actionmenu",{"_index":1611,"title":{},"content":{"219":{}},"sidebarParentCategories":{}}],["actionmenumodul",{"_index":1617,"title":{},"content":{"219":{}},"sidebarParentCategories":{}}],["activ",{"_index":1114,"title":{},"content":{"149":{}},"sidebarParentCategories":{}}],["actual",{"_index":1506,"title":{},"content":{"202":{},"206":{}},"sidebarParentCategories":{}}],["ad",{"_index":605,"title":{"80":{},"81":{}},"content":{"79":{},"80":{},"136":{},"177":{},"200":{},"201":{},"202":{},"204":{},"206":{},"207":{},"208":{},"209":{},"222":{},"228":{}},"sidebarParentCategories":{}}],["adapt",{"_index":758,"title":{},"content":{"91":{},"178":{}},"sidebarParentCategories":{}}],["add",{"_index":327,"title":{"76":{},"79":{}},"content":{"30":{},"32":{},"35":{},"66":{},"78":{},"79":{},"81":{},"82":{},"90":{},"91":{},"159":{},"198":{},"215":{},"219":{},"224":{},"227":{}},"sidebarParentCategories":{}}],["addit",{"_index":512,"title":{"91":{},"148":{}},"content":{"58":{},"91":{},"200":{},"205":{},"208":{},"209":{},"222":{},"223":{},"226":{}},"sidebarParentCategories":{}}],["adjust",{"_index":682,"title":{},"content":{"81":{},"82":{}},"sidebarParentCategories":{}}],["admin",{"_index":378,"title":{},"content":{"42":{}},"sidebarParentCategories":{}}],["admin_account",{"_index":1235,"title":{},"content":{"136":{}},"sidebarParentCategories":{}}],["admin_password",{"_index":1236,"title":{},"content":{"136":{}},"sidebarParentCategories":{}}],["advanc",{"_index":836,"title":{},"content":{"102":{},"132":{}},"sidebarParentCategories":{}}],["advantag",{"_index":1323,"title":{},"content":{"184":{},"185":{},"200":{},"224":{}},"sidebarParentCategories":{}}],["afj",{"_index":267,"title":{"136":{},"173":{},"175":{},"176":{},"198":{},"215":{}},"content":{"20":{},"22":{},"23":{},"24":{},"25":{},"30":{},"31":{},"33":{},"34":{},"36":{},"42":{},"43":{},"133":{},"134":{},"165":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"181":{},"182":{},"198":{},"199":{},"200":{},"201":{},"202":{},"215":{},"216":{},"218":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["afj'",{"_index":739,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["aforement",{"_index":1654,"title":{},"content":{"221":{}},"sidebarParentCategories":{}}],["afterward",{"_index":535,"title":{},"content":{"72":{},"185":{}},"sidebarParentCategories":{}}],["ag",{"_index":1145,"title":{},"content":{"160":{},"162":{},"163":{},"222":{}},"sidebarParentCategories":{}}],["again",{"_index":1350,"title":{},"content":{"185":{}},"sidebarParentCategories":{}}],["agent",{"_index":31,"title":{"2":{},"5":{},"85":{},"92":{},"94":{},"97":{},"146":{},"159":{},"184":{},"185":{},"186":{},"217":{}},"content":{"1":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"18":{},"19":{},"23":{},"24":{},"25":{},"33":{},"36":{},"84":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"104":{},"105":{},"117":{},"118":{},"119":{},"121":{},"125":{},"128":{},"131":{},"136":{},"145":{},"146":{},"147":{},"148":{},"149":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"180":{},"182":{},"183":{},"184":{},"185":{},"186":{},"206":{},"217":{},"218":{},"219":{},"220":{},"224":{}},"sidebarParentCategories":{"130":{},"131":{},"132":{},"133":{}}}],["agent'",{"_index":1598,"title":{},"content":{"217":{},"224":{}},"sidebarParentCategories":{}}],["agent(agentconfig",{"_index":1597,"title":{},"content":{"217":{}},"sidebarParentCategories":{}}],["agent.config.filesystem.basepath}/afj/migration/backup/${backupidentifi",{"_index":1362,"title":{},"content":{"187":{}},"sidebarParentCategories":{}}],["agent.connections.createinvit",{"_index":1454,"title":{},"content":{"201":{}},"sidebarParentCategories":{}}],["agent.connections.findallbyoutofbandid(id",{"_index":1079,"title":{},"content":{"148":{}},"sidebarParentCategories":{}}],["agent.connections.findallbyoutofbandid(outofbandrecord.id",{"_index":1464,"title":{},"content":{"201":{}},"sidebarParentCategories":{}}],["agent.connections.receiveinvitation(parsedinvit",{"_index":1472,"title":{},"content":{"201":{}},"sidebarParentCategories":{}}],["agent.connections.receiveinvitationfromurl(invitationurl",{"_index":1468,"title":{},"content":{"201":{}},"sidebarParentCategories":{}}],["agent.credentials.findcredentialmessage('credentialrecordid",{"_index":1443,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["agent.credentials.findoffermessage('credentialrecordid",{"_index":1441,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["agent.credentials.findproposalmessage('credentialrecordid",{"_index":1440,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["agent.credentials.findrequestmessage('credentialrecordid",{"_index":1442,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["agent.credentials.getbyid('credentialrecordid",{"_index":1435,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["agent.credentials.getformatdata(credentialrecord.id",{"_index":1416,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["agent.credentials.offercredenti",{"_index":1392,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["agent.credentials.offercredential('connectionid",{"_index":1387,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["agent.discovery.isprotocolsupported(connectionid",{"_index":1640,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["agent.discovery.queryfeatur",{"_index":1634,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["agent.discovery.queryfeatures(connectionid",{"_index":1632,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["agent.events.on(connectioneventtypes.connectionstatechang",{"_index":1083,"title":{},"content":{"148":{},"149":{},"201":{}},"sidebarParentCategories":{}}],["agent.events.on(credentialeventtypes.credentialstatechang",{"_index":1155,"title":{},"content":{"161":{},"163":{}},"sidebarParentCategories":{}}],["holder.oob.receiveinvitationfromurl(invitationurl",{"_index":1190,"title":{},"content":{"163":{}},"sidebarParentCategories":{}}],["homebrew",{"_index":1258,"title":{},"content":{"152":{}},"sidebarParentCategories":{}}],["hood",{"_index":1356,"title":{},"content":{"186":{}},"sidebarParentCategories":{}}],["hook",{"_index":303,"title":{"24":{},"27":{}},"content":{"24":{},"25":{},"31":{},"32":{}},"sidebarParentCategories":{"31":{},"32":{}}}],["host",{"_index":295,"title":{},"content":{"25":{},"74":{},"104":{}},"sidebarParentCategories":{}}],["hous",{"_index":435,"title":{},"content":{"60":{}},"sidebarParentCategories":{}}],["http",{"_index":247,"title":{},"content":{"14":{},"25":{},"36":{},"42":{},"58":{},"93":{},"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["http://localhost:3000/doc",{"_index":387,"title":{},"content":{"42":{}},"sidebarParentCategories":{}}],["http://localhost:3001",{"_index":1050,"title":{},"content":{"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["http://localhost:3002",{"_index":1125,"title":{},"content":{"159":{},"163":{}},"sidebarParentCategories":{}}],["http://localhost:5000",{"_index":377,"title":{},"content":{"42":{}},"sidebarParentCategories":{}}],["httpinboundtransport",{"_index":785,"title":{},"content":{"93":{},"95":{},"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["httpoutboundtransport",{"_index":783,"title":{},"content":{"93":{},"95":{},"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())agent.registerinboundtransport(new",{"_index":787,"title":{},"content":{"93":{},"95":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())agent.registeroutboundtransport(new",{"_index":801,"title":{},"content":{"95":{}},"sidebarParentCategories":{}}],["https://afj.com",{"_index":1703,"title":{},"content":{"223":{}},"sidebarParentCategories":{}}],["https://cdn.cocoapods.org",{"_index":696,"title":{},"content":{"82":{}},"sidebarParentCategories":{}}],["https://crates.io/crates/env_logg",{"_index":1035,"title":{},"content":{"133":{}},"sidebarParentCategories":{}}],["https://deb.nodesource.com/setup_18.x",{"_index":501,"title":{},"content":{"53":{}},"sidebarParentCategories":{}}],["https://didcomm.agent.community.animo.id?c_i=ey....(mani",{"_index":961,"title":{},"content":{"121":{}},"sidebarParentCategories":{}}],["https://didcomm.org",{"_index":998,"title":{},"content":{"127":{}},"sidebarParentCategories":{}}],["https://didcomm.org/connections/1.0/invit",{"_index":1577,"title":{},"content":{"208":{}},"sidebarParentCategories":{}}],["https://didcomm.org/messagepickup/2.0",{"_index":1633,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["https://didcomm.org/mi",{"_index":1500,"title":{},"content":{"202":{},"224":{}},"sidebarParentCategories":{}}],["https://example.com",{"_index":1455,"title":{},"content":{"201":{},"208":{}},"sidebarParentCategories":{}}],["https://example.com?c_i=eyxxx",{"_index":1467,"title":{},"content":{"201":{}},"sidebarParentCategories":{}}],["https://example.org",{"_index":1062,"title":{},"content":{"146":{},"149":{},"163":{}},"sidebarParentCategories":{}}],["https://example.org:3000",{"_index":857,"title":{},"content":{"104":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/indi",{"_index":526,"title":{},"content":{"58":{},"82":{},"142":{},"155":{},"170":{}},"sidebarParentCategories":{}}],["https://github.com/java",{"_index":653,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://google.com",{"_index":1701,"title":{},"content":{"223":{}},"sidebarParentCategories":{}}],["https://picsum.photos/200",{"_index":1002,"title":{},"content":{"128":{}},"sidebarParentCategories":{}}],["https://raw.githubusercontent.com/homebrew/install/head/install.sh",{"_index":446,"title":{},"content":{"46":{},"60":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_arm64_1.16.0.zip",{"_index":630,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_armv7_1.16.0.zip",{"_index":638,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_x86_1.16.0.zip",{"_index":643,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_x86_64_1.16.0.zip",{"_index":648,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/repository/maven",{"_index":609,"title":{},"content":{"79":{}},"sidebarParentCategories":{}}],["https://rpm.nodesource.com/setup_18.x",{"_index":506,"title":{},"content":{"53":{}},"sidebarParentCategories":{}}],["https://sh.rustup.r",{"_index":519,"title":{},"content":{"58":{}},"sidebarParentCategories":{}}],["hub",{"_index":195,"title":{},"content":{"8":{}},"sidebarParentCategories":{}}],["hyperledg",{"_index":42,"title":{},"content":{"9":{},"10":{},"96":{}},"sidebarParentCategories":{}}],["i.",{"_index":1664,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["id",{"_index":374,"title":{},"content":{"42":{},"92":{},"95":{},"99":{},"106":{},"122":{},"136":{},"146":{},"148":{},"149":{},"159":{},"161":{},"163":{},"200":{},"201":{},"204":{},"208":{},"224":{},"228":{}},"sidebarParentCategories":{}}],["ident",{"_index":11,"title":{},"content":{"6":{},"8":{},"10":{},"12":{},"36":{},"160":{},"163":{}},"sidebarParentCategories":{}}],["identifi",{"_index":209,"title":{},"content":{"12":{},"100":{},"107":{},"108":{},"187":{}},"sidebarParentCategories":{}}],["ignor",{"_index":1186,"title":{},"content":{"163":{}},"sidebarParentCategories":{}}],["imag",{"_index":1000,"title":{},"content":{"128":{}},"sidebarParentCategories":{}}],["implement",{"_index":111,"title":{},"content":{"1":{},"2":{},"5":{},"33":{},"36":{},"80":{},"91":{},"102":{},"116":{},"132":{},"133":{},"220":{},"224":{}},"sidebarParentCategories":{}}],["impli",{"_index":1220,"title":{},"content":{"165":{}},"sidebarParentCategories":{}}],["implicit",{"_index":693,"title":{},"content":{"82":{}},"sidebarParentCategories":{}}],["implicitli",{"_index":987,"title":{},"content":{"125":{}},"sidebarParentCategories":{}}],["import",{"_index":345,"title":{},"content":{"33":{},"81":{},"91":{},"92":{},"93":{},"95":{},"99":{},"106":{},"116":{},"117":{},"118":{},"119":{},"125":{},"131":{},"132":{},"133":{},"136":{},"149":{},"159":{},"163":{},"184":{},"185":{},"186":{},"200":{},"201":{},"202":{},"203":{},"219":{},"224":{},"225":{}},"sidebarParentCategories":{}}],["improv",{"_index":712,"title":{},"content":{"82":{},"178":{},"187":{}},"sidebarParentCategories":{}}],["inbound",{"_index":382,"title":{},"content":{"42":{},"93":{},"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["inboundtransport",{"_index":1130,"title":{},"content":{"159":{}},"sidebarParentCategories":{}}],["includ",{"_index":254,"title":{},"content":{"17":{},"25":{},"84":{},"91":{},"99":{},"106":{},"148":{},"149":{},"163":{},"179":{},"187":{},"224":{}},"sidebarParentCategories":{}}],["incom",{"_index":940,"title":{"148":{},"161":{}},"content":{"118":{},"119":{},"161":{}},"sidebarParentCategories":{}}],["independ",{"_index":511,"title":{},"content":{"58":{}},"sidebarParentCategories":{}}],["index.(js|ts|jsx|tsx",{"_index":735,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["index.tsx",{"_index":736,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["indi",{"_index":433,"title":{"50":{},"58":{},"66":{},"72":{},"81":{},"133":{},"142":{},"155":{},"170":{}},"content":{"44":{},"50":{},"51":{},"56":{},"57":{},"58":{},"59":{},"64":{},"65":{},"66":{},"67":{},"72":{},"73":{},"74":{},"80":{},"81":{},"82":{},"90":{},"105":{},"106":{},"108":{},"112":{},"115":{},"133":{},"134":{},"141":{},"142":{},"143":{},"144":{},"154":{},"155":{},"156":{},"157":{},"162":{},"163":{},"169":{},"170":{},"171":{},"198":{},"200":{},"205":{},"207":{},"215":{},"222":{},"223":{}},"sidebarParentCategories":{}}],["indic",{"_index":1302,"title":{},"content":{"177":{},"200":{},"201":{},"222":{}},"sidebarParentCategories":{}}],["indicio",{"_index":873,"title":{},"content":{"106":{}},"sidebarParentCategories":{}}],["indy_crypto_prebuilt_deps_dir=c:\\users\\{windows_user}\\downloads\\indi",{"_index":1267,"title":{},"content":{"168":{}},"sidebarParentCategories":{}}],["indy_generate_wallet_key",{"_index":830,"title":{},"content":{"102":{}},"sidebarParentCategories":{}}],["indy_prebuilt_deps_dir=c:\\users\\{windows_user}\\downloads\\indi",{"_index":1265,"title":{},"content":{"168":{}},"sidebarParentCategories":{}}],["indy_set_default_logg",{"_index":1031,"title":{},"content":{"133":{}},"sidebarParentCategories":{}}],["indy_set_logg",{"_index":1032,"title":{},"content":{"133":{}},"sidebarParentCategories":{}}],["indycredenti",{"_index":1519,"title":{},"content":{"204":{}},"sidebarParentCategories":{}}],["indycredential?.credentialdefinitionid",{"_index":1520,"title":{},"content":{"204":{}},"sidebarParentCategories":{}}],["indycredential?.schemaid",{"_index":1521,"title":{},"content":{"204":{}},"sidebarParentCategories":{}}],["indycredentialmetadata",{"_index":1410,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["indycredentialmetadata?.credentialdefinitionid",{"_index":1412,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["indycredentialmetadata?.schemaid",{"_index":1413,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["indyledg",{"_index":866,"title":{"106":{}},"content":{"106":{},"159":{},"163":{},"217":{},"221":{}},"sidebarParentCategories":{}}],["indyledgers.genesispath",{"_index":892,"title":{"110":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.genesistransact",{"_index":896,"title":{"111":{}},"content":{"110":{}},"sidebarParentCategories":{}}],["indyledgers.id",{"_index":883,"title":{"107":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.indynamespac",{"_index":884,"title":{"108":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.isproduct",{"_index":888,"title":{"109":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.transactionauthoragr",{"_index":898,"title":{"112":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.transactionauthoragreement.acceptancemechan",{"_index":907,"title":{"114":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.transactionauthoragreement.vers",{"_index":904,"title":{"113":{}},"content":{},"sidebarParentCategories":{}}],["indynamespac",{"_index":876,"title":{},"content":{"106":{},"159":{},"163":{},"217":{}},"sidebarParentCategories":{}}],["indypoolconfig",{"_index":872,"title":{},"content":{"106":{}},"sidebarParentCategories":{}}],["indypostgresstorageconfig",{"_index":1227,"title":{},"content":{"136":{}},"sidebarParentCategories":{}}],["indysdk",{"_index":1226,"title":{},"content":{"134":{}},"sidebarParentCategories":{}}],["indystrgpostgres.dl",{"_index":1277,"title":{},"content":{"171":{},"172":{}},"sidebarParentCategories":{}}],["infer",{"_index":980,"title":{},"content":{"125":{}},"sidebarParentCategories":{}}],["info",{"_index":677,"title":{},"content":{"81":{},"179":{},"199":{},"216":{},"220":{}},"sidebarParentCategories":{}}],["info(messag",{"_index":1016,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["inform",{"_index":219,"title":{},"content":{"13":{},"118":{},"119":{},"133":{}},"sidebarParentCategories":{}}],["initconfig",{"_index":773,"title":{},"content":{"92":{},"95":{},"131":{},"136":{},"146":{},"149":{},"159":{},"163":{},"217":{}},"sidebarParentCategories":{}}],["initi",{"_index":50,"title":{"94":{}},"content":{"10":{},"37":{},"92":{},"94":{},"95":{},"99":{},"105":{},"136":{},"145":{},"146":{},"149":{},"158":{},"159":{},"163":{},"184":{},"185":{},"186":{},"200":{},"217":{},"222":{}},"sidebarParentCategories":{}}],["initializeacmeag",{"_index":1047,"title":{},"content":{"146":{},"149":{}},"sidebarParentCategories":{}}],["initializebobag",{"_index":1040,"title":{},"content":{"146":{},"149":{}},"sidebarParentCategories":{}}],["initializeholderag",{"_index":1119,"title":{},"content":{"159":{},"163":{}},"sidebarParentCategories":{}}],["initializeissuerag",{"_index":1137,"title":{},"content":{"159":{},"163":{}},"sidebarParentCategories":{}}],["inject",{"_index":1616,"title":{},"content":{"219":{},"224":{}},"sidebarParentCategories":{}}],["insid",{"_index":105,"title":{},"content":{"1":{},"14":{},"78":{},"79":{},"81":{},"131":{},"147":{},"159":{},"184":{}},"sidebarParentCategories":{}}],["insight",{"_index":430,"title":{},"content":{"44":{}},"sidebarParentCategories":{}}],["instal",{"_index":337,"title":{"32":{},"35":{},"38":{},"45":{},"51":{},"59":{},"67":{},"73":{},"83":{},"90":{},"135":{},"139":{},"153":{}},"content":{"37":{},"39":{},"40":{},"42":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"67":{},"70":{},"71":{},"73":{},"74":{},"82":{},"83":{},"89":{},"90":{},"134":{},"135":{},"140":{},"143":{},"153":{},"156":{},"159":{},"167":{},"198":{},"215":{}},"sidebarParentCategories":{"44":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{}}}],["instanc",{"_index":360,"title":{},"content":{"36":{},"93":{},"116":{},"146":{},"149":{},"159":{},"163":{},"180":{},"200":{},"219":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["instanceconst",{"_index":797,"title":{},"content":{"95":{}},"sidebarParentCategories":{}}],["instanceof",{"_index":1447,"title":{},"content":{"200":{},"222":{}},"sidebarParentCategories":{}}],["instanti",{"_index":1166,"title":{"184":{}},"content":{"162":{},"182":{},"183":{},"185":{},"202":{}},"sidebarParentCategories":{}}],["instantli",{"_index":354,"title":{},"content":{"36":{}},"sidebarParentCategories":{}}],["instead",{"_index":179,"title":{},"content":{"7":{},"134":{},"200":{},"201":{},"202":{},"208":{},"218":{},"220":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["instruct",{"_index":1307,"title":{},"content":{"177":{},"180":{}},"sidebarParentCategories":{}}],["integ",{"_index":845,"title":{},"content":{"102":{}},"sidebarParentCategories":{}}],["integr",{"_index":344,"title":{},"content":{"33":{},"179":{},"219":{}},"sidebarParentCategories":{}}],["intel",{"_index":426,"title":{"46":{}},"content":{"44":{},"46":{},"151":{}},"sidebarParentCategories":{}}],["intend",{"_index":1511,"title":{},"content":{"203":{}},"sidebarParentCategories":{}}],["intent",{"_index":1216,"title":{},"content":{"165":{}},"sidebarParentCategories":{}}],["interact",{"_index":112,"title":{},"content":{"1":{},"2":{},"5":{},"6":{},"24":{},"25":{},"33":{},"36":{},"50":{},"58":{},"66":{},"72":{},"115":{},"161":{},"179":{},"218":{}},"sidebarParentCategories":{}}],["interfac",{"_index":336,"title":{},"content":{"24":{},"116":{},"132":{},"136":{},"161":{},"224":{}},"sidebarParentCategories":{}}],["intern",{"_index":1376,"title":{},"content":{"199":{},"200":{},"201":{},"216":{},"217":{},"222":{}},"sidebarParentCategories":{}}],["internet",{"_index":353,"title":{},"content":{"36":{}},"sidebarParentCategories":{}}],["interoper",{"_index":46,"title":{},"content":{"6":{},"10":{},"14":{},"36":{}},"sidebarParentCategories":{}}],["interv",{"_index":971,"title":{},"content":{"124":{}},"sidebarParentCategories":{}}],["intro",{"_index":0,"title":{"10":{}},"content":{},"sidebarParentCategories":{}}],["introduc",{"_index":1658,"title":{},"content":{"222":{},"224":{},"225":{},"227":{}},"sidebarParentCategories":{}}],["invit",{"_index":852,"title":{"147":{}},"content":{"104":{},"121":{},"145":{},"146":{},"147":{},"148":{},"149":{},"159":{},"163":{},"201":{},"208":{},"209":{},"223":{}},"sidebarParentCategories":{}}],["invitation.tourl",{"_index":1066,"title":{},"content":{"146":{},"149":{},"201":{}},"sidebarParentCategories":{}}],["invitationdid",{"_index":1570,"title":{},"content":{"208":{}},"sidebarParentCategories":{}}],["invitationurl",{"_index":1059,"title":{},"content":{"146":{},"147":{},"149":{},"163":{},"201":{},"223":{}},"sidebarParentCategories":{}}],["invitationurl)}export",{"_index":1117,"title":{},"content":{"149":{}},"sidebarParentCategories":{}}],["invitationurl)}void",{"_index":1207,"title":{},"content":{"163":{}},"sidebarParentCategories":{}}],["invite",{"_index":1458,"title":{},"content":{"201":{}},"sidebarParentCategories":{}}],["io",{"_index":548,"title":{"82":{}},"content":{"74":{},"82":{},"159":{}},"sidebarParentCategories":{}}],["ios/podfil",{"_index":691,"title":{},"content":{"82":{}},"sidebarParentCategories":{}}],["iot",{"_index":133,"title":{},"content":{"6":{}},"sidebarParentCategories":{}}],["isn't",{"_index":1490,"title":{},"content":{"202":{},"224":{}},"sidebarParentCategories":{}}],["ispickupv2support",{"_index":1639,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["isproduct",{"_index":877,"title":{},"content":{"106":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["isprotocolsupport",{"_index":1635,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["issu",{"_index":149,"title":{"87":{},"158":{},"162":{}},"content":{"6":{},"22":{},"36":{},"76":{},"81":{},"84":{},"145":{},"148":{},"158":{},"160":{},"163":{},"164":{},"177":{},"179":{},"200":{},"205":{},"206":{},"218":{},"222":{}},"sidebarParentCategories":{}}],["issuecredenti",{"_index":1168,"title":{},"content":{"162":{},"163":{}},"sidebarParentCategories":{}}],["issuecredential(issu",{"_index":1199,"title":{},"content":{"163":{}},"sidebarParentCategories":{}}],["issuer",{"_index":118,"title":{},"content":{"1":{},"4":{},"16":{},"37":{},"158":{},"159":{},"160":{},"162":{},"163":{}},"sidebarParentCategories":{}}],["issuer.credentials.offercredenti",{"_index":1170,"title":{},"content":{"162":{},"163":{}},"sidebarParentCategories":{}}],["issuer.events.on(connectioneventtypes.connectionstatechang",{"_index":1192,"title":{},"content":{"163":{}},"sidebarParentCategories":{}}],["issuer.ledger.registercredentialdefinit",{"_index":1148,"title":{},"content":{"160":{},"163":{}},"sidebarParentCategories":{}}],["issuer.ledger.registerschema",{"_index":1143,"title":{},"content":{"160":{},"163":{}},"sidebarParentCategories":{}}],["issuer.oob.createinvit",{"_index":1189,"title":{},"content":{"163":{}},"sidebarParentCategories":{}}],["isvalidmessagetyp",{"_index":1502,"title":{},"content":{"202":{}},"sidebarParentCategories":{}}],["isvalidmessagetype(mymessage.typ",{"_index":1503,"title":{},"content":{"202":{}},"sidebarParentCategories":{}}],["it'",{"_index":1033,"title":{},"content":{"133":{},"206":{},"224":{}},"sidebarParentCategories":{}}],["item",{"_index":317,"title":{},"content":{"25":{},"26":{},"27":{},"28":{},"29":{},"37":{},"38":{},"84":{},"85":{},"86":{},"88":{},"112":{},"145":{},"158":{}},"sidebarParentCategories":{}}],["itself",{"_index":218,"title":{},"content":{"13":{},"200":{},"207":{},"220":{},"228":{}},"sidebarParentCategories":{}}],["jane",{"_index":1173,"title":{},"content":{"162":{},"163":{}},"sidebarParentCategories":{}}],["jar",{"_index":656,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["java",{"_index":611,"title":{},"content":{"80":{}},"sidebarParentCategories":{}}],["java.io.fil",{"_index":671,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["javascript",{"_index":3,"title":{"17":{},"20":{}},"content":{"1":{},"4":{},"6":{},"7":{},"9":{},"10":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"25":{},"30":{},"31":{},"34":{},"36":{},"37":{},"44":{},"45":{},"47":{},"50":{},"53":{},"58":{},"61":{},"66":{},"69":{},"72":{},"83":{},"97":{},"116":{},"129":{},"173":{},"177":{},"179":{}},"sidebarParentCategories":{}}],["jna",{"_index":610,"title":{"80":{}},"content":{"80":{},"81":{}},"sidebarParentCategories":{}}],["jnilib",{"_index":617,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["js",{"_index":271,"title":{"21":{}},"content":{"21":{},"91":{}},"sidebarParentCategories":{}}],["json",{"_index":747,"title":{},"content":{"91":{},"110":{},"111":{},"112":{}},"sidebarParentCategories":{}}],["kali",{"_index":1246,"title":{"140":{}},"content":{},"sidebarParentCategories":{}}],["keep",{"_index":77,"title":{},"content":{"10":{},"134":{},"165":{},"177":{},"179":{},"200":{},"203":{},"209":{},"218":{},"222":{}},"sidebarParentCategories":{}}],["kept",{"_index":821,"title":{},"content":{"101":{}},"sidebarParentCategories":{}}],["key",{"_index":140,"title":{},"content":{"6":{},"13":{},"42":{},"92":{},"95":{},"99":{},"101":{},"102":{},"114":{},"136":{},"146":{},"149":{},"159":{},"163":{},"200":{},"203":{},"204":{},"217":{},"218":{},"222":{},"225":{}},"sidebarParentCategories":{}}],["keyderivationmethod",{"_index":812,"title":{},"content":{"99":{},"102":{}},"sidebarParentCategories":{}}],["keyderivationmethod.argon2imod",{"_index":816,"title":{},"content":{"99":{},"102":{}},"sidebarParentCategories":{}}],["keyderivationmethod.argon2int",{"_index":844,"title":{},"content":{"102":{}},"sidebarParentCategories":{}}],["keyderivationmethod.raw",{"_index":827,"title":{},"content":{"102":{}},"sidebarParentCategories":{}}],["kind",{"_index":567,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["kit",{"_index":48,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["know",{"_index":870,"title":{},"content":{"106":{},"145":{},"148":{},"149":{},"163":{},"173":{},"175":{},"176":{},"179":{},"198":{},"203":{},"215":{},"225":{}},"sidebarParentCategories":{}}],["knowledg",{"_index":251,"title":{},"content":{"14":{},"92":{},"145":{},"158":{}},"sidebarParentCategories":{}}],["known",{"_index":549,"title":{"75":{}},"content":{},"sidebarParentCategories":{}}],["label",{"_index":373,"title":{"98":{}},"content":{"42":{},"92":{},"95":{},"98":{},"112":{},"114":{},"128":{},"136":{},"146":{},"149":{},"159":{},"163":{},"208":{}},"sidebarParentCategories":{}}],["lack",{"_index":236,"title":{},"content":{"14":{}},"sidebarParentCategories":{}}],["larg",{"_index":407,"title":{},"content":{"45":{},"83":{}},"sidebarParentCategories":{}}],["lastli",{"_index":157,"title":{},"content":{"6":{},"58":{},"66":{}},"sidebarParentCategories":{}}],["later",{"_index":147,"title":{},"content":{"6":{},"99":{},"185":{},"200":{},"204":{},"207":{}},"sidebarParentCategories":{}}],["latest",{"_index":294,"title":{},"content":{"22":{},"82":{},"185":{},"198":{},"200":{},"215":{}},"sidebarParentCategories":{}}],["launch",{"_index":1335,"title":{},"content":{"184":{},"185":{}},"sidebarParentCategories":{}}],["ld_library_path",{"_index":542,"title":{},"content":{"72":{}},"sidebarParentCategories":{}}],["lead",{"_index":912,"title":{},"content":{"115":{},"149":{},"163":{},"206":{}},"sidebarParentCategories":{}}],["ledger",{"_index":465,"title":{"221":{}},"content":{"50":{},"58":{},"66":{},"72":{},"81":{},"105":{},"106":{},"107":{},"109":{},"115":{},"159":{},"165":{},"217":{},"221":{}},"sidebarParentCategories":{}}],["legaci",{"_index":755,"title":{},"content":{"91":{},"127":{},"146":{},"163":{},"201":{},"207":{},"223":{}},"sidebarParentCategories":{}}],["legacydiddoc",{"_index":1566,"title":{},"content":{"207":{}},"sidebarParentCategories":{}}],["legacytheirdiddoc",{"_index":1567,"title":{},"content":{"207":{}},"sidebarParentCategories":{}}],["less",{"_index":846,"title":{},"content":{"102":{},"117":{},"201":{},"223":{}},"sidebarParentCategories":{}}],["level",{"_index":110,"title":{},"content":{"1":{},"37":{},"50":{},"58":{},"66":{},"72":{},"133":{}},"sidebarParentCategories":{}}],["leverag",{"_index":1225,"title":{},"content":{"134":{},"173":{},"174":{},"182":{},"183":{},"185":{}},"sidebarParentCategories":{}}],["lib_indy_strg_postgres=c:\\users\\{windows_user}\\downloads\\indi",{"_index":1280,"title":{},"content":{"172":{}},"sidebarParentCategories":{}}],["libari",{"_index":614,"title":{"81":{}},"content":{},"sidebarParentCategories":{}}],["libcore/result.rs:945",{"_index":570,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["libindi",{"_index":370,"title":{},"content":{"42":{},"50":{},"133":{},"167":{}},"sidebarParentCategories":{}}],["libindy_arm64/lib/libindy.so",{"_index":634,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["libindy_armv7/lib/libindy.so",{"_index":640,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["libindy_x86/lib/libindy.so",{"_index":645,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["libindy_x86_64/lib/libindy.so",{"_index":650,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["libjnidispatch.so",{"_index":658,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["librari",{"_index":296,"title":{"80":{}},"content":{"25":{},"58":{},"66":{},"72":{},"76":{},"80":{},"81":{},"82":{},"171":{}},"sidebarParentCategories":{}}],["libsodium",{"_index":431,"title":{"56":{},"64":{}},"content":{"44":{},"56":{},"57":{},"64":{},"140":{},"153":{}},"sidebarParentCategories":{}}],["libssl",{"_index":1248,"title":{},"content":{"140":{}},"sidebarParentCategories":{}}],["libzmq",{"_index":432,"title":{"57":{},"65":{}},"content":{"44":{},"57":{},"65":{}},"sidebarParentCategories":{}}],["libzmq3",{"_index":510,"title":{},"content":{"57":{},"140":{}},"sidebarParentCategories":{}}],["libzmq_prefix=c:\\users\\{windows_user}\\downloads\\indi",{"_index":1269,"title":{},"content":{"168":{}},"sidebarParentCategories":{}}],["licens",{"_index":194,"title":{},"content":{"8":{}},"sidebarParentCategories":{}}],["lightweight",{"_index":461,"title":{},"content":{"57":{},"65":{}},"sidebarParentCategories":{}}],["line",{"_index":689,"title":{},"content":{"82":{},"133":{}},"sidebarParentCategories":{}}],["link",{"_index":474,"title":{},"content":{"66":{},"104":{},"201":{},"224":{}},"sidebarParentCategories":{}}],["linux",{"_index":423,"title":{"52":{},"137":{}},"content":{"44":{},"52":{},"53":{},"56":{},"57":{},"66":{},"135":{}},"sidebarParentCategories":{}}],["list",{"_index":392,"title":{},"content":{"43":{},"104":{},"106":{},"112":{},"159":{},"199":{},"216":{}},"sidebarParentCategories":{}}],["listen",{"_index":1074,"title":{"148":{},"161":{}},"content":{"148":{},"161":{},"163":{},"201":{}},"sidebarParentCategories":{}}],["lo",{"_index":652,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["load",{"_index":666,"title":{},"content":{"81":{},"136":{}},"sidebarParentCategories":{}}],["loadpostgresplugin",{"_index":1228,"title":{},"content":{"136":{}},"sidebarParentCategories":{}}],["loadpostgresplugin(storageconfig.config",{"_index":1237,"title":{},"content":{"136":{}},"sidebarParentCategories":{}}],["local",{"_index":1134,"title":{},"content":{"134":{},"159":{}},"sidebarParentCategories":{}}],["localhost:5432",{"_index":1231,"title":{},"content":{"136":{}},"sidebarParentCategories":{}}],["locat",{"_index":170,"title":{},"content":{"7":{},"58":{},"66":{},"72":{},"79":{},"81":{},"110":{},"171":{},"187":{}},"sidebarParentCategories":{}}],["log",{"_index":920,"title":{"130":{},"133":{}},"content":{"116":{},"131":{},"133":{}},"sidebarParentCategories":{}}],["logger",{"_index":916,"title":{"116":{},"132":{}},"content":{"116":{},"131":{},"132":{},"133":{}},"sidebarParentCategories":{}}],["logic",{"_index":1092,"title":{},"content":{"148":{},"149":{},"161":{},"163":{}},"sidebarParentCategories":{}}],["loglevel",{"_index":921,"title":{},"content":{"116":{},"131":{},"132":{}},"sidebarParentCategories":{}}],["loglevel.off",{"_index":1009,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["long",{"_index":864,"title":{},"content":{"105":{},"107":{}},"sidebarParentCategories":{}}],["look",{"_index":290,"title":{},"content":{"22":{},"45":{},"83":{}},"sidebarParentCategories":{}}],["loos",{"_index":184,"title":{},"content":{"8":{}},"sidebarParentCategories":{}}],["lot",{"_index":20,"title":{},"content":{"10":{},"13":{},"199":{},"203":{},"216":{},"223":{}},"sidebarParentCategories":{}}],["lower",{"_index":464,"title":{},"content":{"50":{},"58":{},"66":{},"72":{},"115":{}},"sidebarParentCategories":{}}],["luckili",{"_index":13,"title":{},"content":{"10":{},"180":{}},"sidebarParentCategories":{}}],["m1",{"_index":437,"title":{},"content":{"60":{}},"sidebarParentCategories":{}}],["machin",{"_index":367,"title":{},"content":{"41":{}},"sidebarParentCategories":{}}],["maco",{"_index":468,"title":{"151":{}},"content":{"50":{},"66":{},"135":{}},"sidebarParentCategories":{}}],["made",{"_index":492,"title":{},"content":{"50":{},"180":{},"187":{},"199":{},"200":{},"201":{},"216":{},"224":{}},"sidebarParentCategories":{}}],["main",{"_index":15,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["mainacm",{"_index":1048,"title":{},"content":{"146":{},"149":{}},"sidebarParentCategories":{}}],["mainact",{"_index":573,"title":{},"content":{"76":{},"81":{}},"sidebarParentCategories":{}}],["mainactivity.java",{"_index":667,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["mainbob",{"_index":1041,"title":{},"content":{"146":{},"149":{}},"sidebarParentCategories":{}}],["mainli",{"_index":1792,"title":{},"content":{"225":{}},"sidebarParentCategories":{}}],["maintain",{"_index":75,"title":{},"content":{"10":{},"22":{}},"sidebarParentCategories":{}}],["major",{"_index":361,"title":{},"content":{"36":{},"177":{}},"sidebarParentCategories":{}}],["make",{"_index":17,"title":{},"content":{"10":{},"36":{},"91":{},"99":{},"115":{},"159":{},"160":{},"167":{},"173":{},"175":{},"176":{},"178":{},"187":{},"198":{},"199":{},"200":{},"206":{},"215":{},"216":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["manag",{"_index":343,"title":{},"content":{"33":{},"48":{},"54":{},"62":{},"70":{},"138":{},"143":{},"156":{},"173":{},"174":{},"182":{}},"sidebarParentCategories":{}}],["mani",{"_index":165,"title":{},"content":{"7":{},"58":{},"126":{},"203":{}},"sidebarParentCategories":{}}],["manual",{"_index":718,"title":{"184":{}},"content":{"82":{},"120":{},"173":{},"174":{},"182":{},"183":{},"184":{},"185":{},"198":{},"215":{}},"sidebarParentCategories":{}}],["mark",{"_index":1715,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["match",{"_index":1404,"title":{},"content":{"200":{},"206":{},"220":{}},"sidebarParentCategories":{}}],["maven",{"_index":601,"title":{"79":{}},"content":{"79":{}},"sidebarParentCategories":{}}],["max",{"_index":439,"title":{},"content":{"60":{}},"sidebarParentCategories":{}}],["maximummessagepickup",{"_index":989,"title":{"126":{}},"content":{"126":{}},"sidebarParentCategories":{}}],["mean",{"_index":148,"title":{},"content":{"6":{},"13":{},"14":{},"58":{},"177":{},"179":{},"184":{},"185":{},"186":{},"200":{},"206":{},"208":{},"224":{}},"sidebarParentCategories":{}}],["mechan",{"_index":226,"title":{},"content":{"13":{},"112":{},"113":{},"114":{},"207":{},"224":{}},"sidebarParentCategories":{}}],["mediat",{"_index":347,"title":{"206":{}},"content":{"33":{},"93":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"146":{},"149":{},"159":{},"163":{},"206":{},"227":{}},"sidebarParentCategories":{}}],["mediationrole.medi",{"_index":1531,"title":{},"content":{"206":{}},"sidebarParentCategories":{}}],["mediationrole.recipi",{"_index":1541,"title":{},"content":{"206":{}},"sidebarParentCategories":{}}],["mediationroleupdatestrategi",{"_index":1327,"title":{},"content":{"184":{},"185":{},"203":{}},"sidebarParentCategories":{}}],["mediatorconnectionsinvit",{"_index":956,"title":{"121":{}},"content":{"121":{},"122":{},"123":{}},"sidebarParentCategories":{}}],["mediatormodul",{"_index":955,"title":{},"content":{"120":{}},"sidebarParentCategories":{}}],["mediatorpickupstrategi",{"_index":979,"title":{},"content":{"125":{}},"sidebarParentCategories":{}}],["mediatorpickupstrategy.implicit",{"_index":986,"title":{},"content":{"125":{}},"sidebarParentCategories":{}}],["mediatorpickupstrategy.pickupv1",{"_index":982,"title":{},"content":{"125":{}},"sidebarParentCategories":{}}],["mediatorpickupstrategy.pickupv2",{"_index":984,"title":{},"content":{"125":{},"126":{}},"sidebarParentCategories":{}}],["mediatorpickupstrateri",{"_index":975,"title":{"125":{}},"content":{},"sidebarParentCategories":{}}],["mediatorpollinginterv",{"_index":970,"title":{"124":{}},"content":{"124":{}},"sidebarParentCategories":{}}],["meet",{"_index":275,"title":{},"content":{"21":{}},"sidebarParentCategories":{}}],["member",{"_index":840,"title":{},"content":{"102":{},"117":{},"118":{},"119":{},"125":{}},"sidebarParentCategories":{}}],["mention",{"_index":233,"title":{},"content":{"14":{},"58":{},"179":{},"180":{}},"sidebarParentCategories":{}}],["menu",{"_index":1613,"title":{},"content":{"219":{}},"sidebarParentCategories":{}}],["mere",{"_index":1451,"title":{},"content":{"201":{}},"sidebarParentCategories":{}}],["messag",{"_index":152,"title":{"202":{}},"content":{"6":{},"8":{},"13":{},"14":{},"20":{},"57":{},"65":{},"76":{},"117":{},"125":{},"133":{},"145":{},"148":{},"149":{},"163":{},"199":{},"200":{},"202":{},"205":{},"208":{},"222":{},"223":{},"224":{},"226":{}},"sidebarParentCategories":{}}],["message.id",{"_index":1739,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagecontext",{"_index":1729,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagecontext.agentcontext",{"_index":1731,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagecontext.message.id",{"_index":1746,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagecontext.message.thread?.parentthreadid",{"_index":1747,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagehandl",{"_index":1709,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagehandlerinboundmessag",{"_index":1712,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagehandlerinboundmessage(agentcontext",{"_index":1751,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.loglevel",{"_index":1010,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["this.messagesend",{"_index":1776,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessag",{"_index":1765,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessagecontext",{"_index":1769,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(agentcontext",{"_index":1750,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(record",{"_index":1740,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myrepository.save(messagecontext.agentcontext",{"_index":1753,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myrepository.save(record",{"_index":1748,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myservic",{"_index":1777,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.registerhandlers(messagehandlerregistri",{"_index":1779,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["those",{"_index":1588,"title":{},"content":{"209":{}},"sidebarParentCategories":{}}],["though",{"_index":1477,"title":{},"content":{"201":{}},"sidebarParentCategories":{}}],["thread",{"_index":559,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["threadid",{"_index":1738,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["three",{"_index":125,"title":{},"content":{"6":{},"18":{},"183":{}},"sidebarParentCategories":{}}],["threshold",{"_index":1671,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["through",{"_index":350,"title":{},"content":{"33":{},"37":{},"45":{},"83":{},"133":{},"200":{},"222":{}},"sidebarParentCategories":{}}],["throughout",{"_index":1433,"title":{},"content":{"200":{},"222":{}},"sidebarParentCategories":{}}],["throw",{"_index":1213,"title":{},"content":{"143":{},"156":{},"165":{},"171":{},"187":{},"206":{}},"sidebarParentCategories":{}}],["thrown",{"_index":1760,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["thu",{"_index":766,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["ti",{"_index":1689,"title":{},"content":{"223":{}},"sidebarParentCategories":{}}],["time",{"_index":1705,"title":{},"content":{"223":{}},"sidebarParentCategories":{}}],["timestamp",{"_index":1361,"title":{},"content":{"187":{}},"sidebarParentCategories":{}}],["tlsv1.2",{"_index":517,"title":{},"content":{"58":{}},"sidebarParentCategories":{}}],["todo",{"_index":473,"title":{},"content":{"66":{},"93":{},"103":{},"118":{},"119":{},"148":{}},"sidebarParentCategories":{}}],["togeth",{"_index":100,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["token",{"_index":321,"title":{},"content":{"23":{}},"sidebarParentCategories":{}}],["tool",{"_index":47,"title":{},"content":{"10":{},"14":{},"203":{},"225":{}},"sidebarParentCategories":{}}],["toolkit",{"_index":154,"title":{},"content":{"6":{},"25":{}},"sidebarParentCategories":{}}],["top",{"_index":79,"title":{},"content":{"10":{},"25":{}},"sidebarParentCategories":{}}],["trace(messag",{"_index":1014,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["traffic",{"_index":782,"title":{},"content":{"93":{}},"sidebarParentCategories":{}}],["transact",{"_index":895,"title":{},"content":{"110":{},"111":{},"112":{}},"sidebarParentCategories":{}}],["transactionauthoragr",{"_index":880,"title":{},"content":{"106":{},"112":{}},"sidebarParentCategories":{}}],["transform",{"_index":1452,"title":{},"content":{"201":{},"209":{}},"sidebarParentCategories":{}}],["transmit",{"_index":52,"title":{},"content":{"10":{},"147":{}},"sidebarParentCategories":{}}],["transport",{"_index":241,"title":{"93":{}},"content":{"14":{},"42":{},"93":{},"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["transportagent.registeroutboundtransport(new",{"_index":800,"title":{},"content":{"95":{}},"sidebarParentCategories":{}}],["transportsagent.registeroutboundtransport(new",{"_index":798,"title":{},"content":{"95":{}},"sidebarParentCategories":{}}],["tri",{"_index":587,"title":{},"content":{"76":{},"81":{},"151":{},"179":{},"199":{},"216":{}},"sidebarParentCategories":{}}],["trick",{"_index":768,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["true",{"_index":589,"title":{},"content":{"76":{},"81":{},"82":{},"115":{},"120":{},"123":{},"127":{},"129":{},"146":{},"147":{},"149":{},"159":{},"163":{},"186":{},"208":{},"220":{},"223":{}},"sidebarParentCategories":{}}],["ts",{"_index":748,"title":{},"content":{"91":{},"163":{}},"sidebarParentCategories":{}}],["tsx",{"_index":749,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["tunnel",{"_index":1132,"title":{},"content":{"159":{}},"sidebarParentCategories":{}}],["tutori",{"_index":87,"title":{"84":{}},"content":{"10":{},"92":{},"145":{},"146":{},"149":{},"158":{},"159":{},"217":{}},"sidebarParentCategories":{"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{}}}],["two",{"_index":167,"title":{},"content":{"7":{},"178":{},"209":{},"219":{},"223":{}},"sidebarParentCategories":{}}],["type",{"_index":210,"title":{"178":{},"202":{}},"content":{"12":{},"92":{},"95":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"131":{},"136":{},"177":{},"199":{},"200":{},"202":{},"208":{},"222":{},"224":{},"227":{}},"sidebarParentCategories":{}}],["typescript",{"_index":61,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["ubuntu",{"_index":1244,"title":{"140":{}},"content":{},"sidebarParentCategories":{}}],["ui",{"_index":349,"title":{},"content":{"33":{}},"sidebarParentCategories":{}}],["under",{"_index":1129,"title":{},"content":{"159":{},"186":{}},"sidebarParentCategories":{}}],["underli",{"_index":1020,"title":{},"content":{"133":{}},"sidebarParentCategories":{}}],["understand",{"_index":107,"title":{},"content":{"1":{}},"sidebarParentCategories":{}}],["unifi",{"_index":1587,"title":{"209":{}},"content":{"220":{}},"sidebarParentCategories":{}}],["unimodul",{"_index":756,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["unimodules/cor",{"_index":759,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["unimodules/react",{"_index":757,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["uniqu",{"_index":141,"title":{},"content":{"6":{},"107":{},"112":{},"220":{}},"sidebarParentCategories":{}}],["unless",{"_index":1605,"title":{},"content":{"218":{}},"sidebarParentCategories":{}}],["unlock",{"_index":820,"title":{},"content":{"101":{}},"sidebarParentCategories":{}}],["unnam",{"_index":560,"title":{},"content":{"76":{}},"sidebarParentCategories":{}}],["unqualifi",{"_index":1554,"title":{},"content":{"207":{}},"sidebarParentCategories":{}}],["unrel",{"_index":1513,"title":{},"content":{"203":{},"225":{}},"sidebarParentCategories":{}}],["until",{"_index":1351,"title":{},"content":{"185":{},"200":{},"201":{},"208":{}},"sidebarParentCategories":{}}],["unzip",{"_index":633,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["up",{"_index":324,"title":{"92":{},"93":{},"146":{},"159":{}},"content":{"30":{},"31":{},"34":{},"36":{},"44":{},"45":{},"77":{},"83":{},"84":{},"93":{},"98":{},"109":{},"125":{},"128":{},"145":{},"158":{},"184":{},"185":{},"198":{},"215":{}},"sidebarParentCategories":{}}],["updat",{"_index":699,"title":{"173":{},"174":{},"182":{},"183":{},"184":{},"186":{},"202":{},"224":{}},"content":{"82":{},"129":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"198":{},"199":{},"200":{},"201":{},"203":{},"206":{},"207":{},"209":{},"215":{},"216":{},"217":{},"218":{},"222":{},"224":{},"225":{}},"sidebarParentCategories":{"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{},"228":{}}}],["updateassist",{"_index":1324,"title":{},"content":{"184":{},"185":{},"186":{}},"sidebarParentCategories":{}}],["updateassistant(ag",{"_index":1325,"title":{},"content":{"184":{},"185":{}},"sidebarParentCategories":{}}],["updateassistant.frameworkstoragevers",{"_index":1346,"title":{},"content":{"185":{}},"sidebarParentCategories":{}}],["updateassistant.getcurrentagentstoragevers",{"_index":1338,"title":{},"content":{"185":{}},"sidebarParentCategories":{}}],["updateassistant.initi",{"_index":1331,"title":{},"content":{"184":{},"185":{}},"sidebarParentCategories":{}}],["updateassistant.isuptod",{"_index":1332,"title":{},"content":{"184":{}},"sidebarParentCategories":{}}],["updateassistant.upd",{"_index":1333,"title":{},"content":{"184":{},"185":{}},"sidebarParentCategories":{}}],["upgrad",{"_index":1706,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["uppcj5apts7ot5wx25943f",{"_index":1563,"title":{},"content":{"207":{}},"sidebarParentCategories":{}}],["uri",{"_index":1507,"title":{},"content":{"202":{}},"sidebarParentCategories":{}}],["url",{"_index":602,"title":{},"content":{"79":{},"128":{},"136":{},"146":{},"147":{},"149":{},"159":{},"163":{},"201":{}},"sidebarParentCategories":{}}],["us",{"_index":58,"title":{"9":{},"15":{},"96":{},"131":{},"134":{},"136":{},"139":{},"150":{},"153":{},"164":{}},"content":{"1":{},"4":{},"6":{},"8":{},"10":{},"16":{},"23":{},"24":{},"25":{},"30":{},"31":{},"33":{},"34":{},"37":{},"41":{},"42":{},"49":{},"50":{},"55":{},"56":{},"57":{},"58":{},"60":{},"63":{},"64":{},"65":{},"66":{},"71":{},"72":{},"76":{},"81":{},"84":{},"87":{},"90":{},"91":{},"92":{},"98":{},"100":{},"102":{},"103":{},"104":{},"105":{},"106":{},"109":{},"116":{},"117":{},"118":{},"119":{},"121":{},"122":{},"125":{},"126":{},"127":{},"128":{},"129":{},"132":{},"134":{},"146":{},"148":{},"149":{},"158":{},"159":{},"163":{},"168":{},"177":{},"180":{},"186":{},"187":{},"200":{},"201":{},"202":{},"203":{},"205":{},"206":{},"207":{},"208":{},"218":{},"219":{},"220":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{}},"sidebarParentCategories":{}}],["usag",{"_index":1089,"title":{"218":{}},"content":{"148":{},"149":{},"163":{},"207":{}},"sidebarParentCategories":{}}],["usedidkeyinprotocol",{"_index":1604,"title":{},"content":{"218":{}},"sidebarParentCategories":{}}],["uselegacydidsovprefix",{"_index":994,"title":{"127":{}},"content":{"127":{}},"sidebarParentCategories":{}}],["user",{"_index":78,"title":{},"content":{"10":{},"24":{},"98":{},"107":{},"128":{},"161":{},"177":{}},"sidebarParentCategories":{}}],["usr/lib/libindy.so",{"_index":534,"title":{},"content":{"58":{}},"sidebarParentCategories":{}}],["usr/local/lib",{"_index":488,"title":{},"content":{"66":{}},"sidebarParentCategories":{}}],["usr/local/lib/libindystrgpostgres.dylib",{"_index":1260,"title":{},"content":{"157":{}},"sidebarParentCategories":{}}],["usr/local/lib/libindystrgpostgres.so",{"_index":1257,"title":{},"content":{"144":{}},"sidebarParentCategories":{}}],["util",{"_index":1494,"title":{},"content":{"202":{}},"sidebarParentCategories":{}}],["uuid",{"_index":1802,"title":{},"content":{"228":{}},"sidebarParentCategories":{}}],["v0.3.0",{"_index":1208,"title":{},"content":{"165":{}},"sidebarParentCategories":{}}],["v0_1tov0_2",{"_index":1326,"title":{},"content":{"184":{},"185":{},"203":{}},"sidebarParentCategories":{}}],["v0_1tov0_2.mediationroleupdatestrategi",{"_index":1539,"title":{},"content":{"206":{}},"sidebarParentCategories":{}}],["v1",{"_index":237,"title":{},"content":{"14":{},"158":{},"162":{},"163":{},"164":{},"200":{},"205":{},"220":{},"222":{},"223":{},"226":{}},"sidebarParentCategories":{}}],["v1proposecredentialmessag",{"_index":1431,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["v1requestpresentationmessag",{"_index":1676,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["v1xxxmessag",{"_index":1444,"title":{},"content":{"200":{},"222":{}},"sidebarParentCategories":{}}],["v2",{"_index":985,"title":{},"content":{"125":{},"158":{},"164":{},"200":{},"205":{},"220":{},"222":{}},"sidebarParentCategories":{}}],["v2proposecredentialmessag",{"_index":1432,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["v2requestpresentationmessag",{"_index":1677,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["v2xxxmessag",{"_index":1445,"title":{},"content":{"200":{},"222":{}},"sidebarParentCategories":{}}],["v7a",{"_index":625,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v7a/libindy.so",{"_index":641,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v7a/libjnidispatch.so",{"_index":661,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v8a",{"_index":623,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v8a/libindy.so",{"_index":635,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v8a/libjnidispatch.so",{"_index":659,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["valid",{"_index":230,"title":{},"content":{"13":{},"40":{},"89":{},"118":{},"119":{},"145":{},"158":{},"202":{}},"sidebarParentCategories":{}}],["validrespons",{"_index":1622,"title":{},"content":{"219":{}},"sidebarParentCategories":{}}],["valu",{"_index":543,"title":{},"content":{"72":{},"76":{},"90":{},"91":{},"100":{},"101":{},"105":{},"114":{},"161":{},"162":{},"163":{},"200":{},"201":{},"204":{},"209":{},"222":{}},"sidebarParentCategories":{}}],["vari",{"_index":1039,"title":{},"content":{"146":{},"159":{}},"sidebarParentCategories":{}}],["variabl",{"_index":539,"title":{},"content":{"72":{},"133":{}},"sidebarParentCategories":{}}],["variables:set",{"_index":1264,"title":{},"content":{"168":{}},"sidebarParentCategories":{}}],["variant",{"_index":1135,"title":{},"content":{"159":{}},"sidebarParentCategories":{}}],["variou",{"_index":255,"title":{},"content":{"17":{}},"sidebarParentCategories":{}}],["veri",{"_index":414,"title":{},"content":{"45":{},"83":{},"97":{},"148":{},"159":{}},"sidebarParentCategories":{}}],["verifi",{"_index":29,"title":{},"content":{"1":{},"4":{},"6":{},"10":{},"12":{},"16":{},"37":{},"84":{},"145":{},"148":{},"160":{}},"sidebarParentCategories":{}}],["verkey",{"_index":1564,"title":{},"content":{"207":{}},"sidebarParentCategories":{}}],["version",{"_index":305,"title":{"78":{},"177":{},"185":{}},"content":{"25":{},"78":{},"81":{},"82":{},"106":{},"112":{},"113":{},"129":{},"160":{},"163":{},"165":{},"173":{},"174":{},"177":{},"179":{},"180":{},"182":{},"183":{},"184":{},"185":{},"186":{},"198":{},"199":{},"200":{},"201":{},"202":{},"205":{},"207":{},"215":{},"216":{},"220":{},"222":{},"226":{}},"sidebarParentCategories":{}}],["versionstr",{"_index":1342,"title":{},"content":{"185":{}},"sidebarParentCategories":{}}],["via",{"_index":121,"title":{},"content":{"5":{},"6":{},"14":{},"46":{},"60":{},"102":{},"118":{},"119":{},"120":{},"159":{}},"sidebarParentCategories":{}}],["view",{"_index":72,"title":{},"content":{"10":{},"42":{},"200":{}},"sidebarParentCategories":{}}],["visual",{"_index":1261,"title":{},"content":{"167":{}},"sidebarParentCategories":{}}],["void",{"_index":579,"title":{},"content":{"76":{},"81":{},"132":{},"148":{},"149":{}},"sidebarParentCategories":{}}],["walk",{"_index":404,"title":{},"content":{"37":{}},"sidebarParentCategories":{}}],["wallet",{"_index":172,"title":{},"content":{"7":{},"8":{},"42":{},"92":{},"95":{},"99":{},"100":{},"101":{},"103":{},"104":{},"136":{},"146":{},"149":{},"158":{},"159":{},"163":{},"165":{},"184":{},"185":{},"187":{},"221":{}},"sidebarParentCategories":{}}],["wallet_schem",{"_index":1232,"title":{},"content":{"136":{}},"sidebarParentCategories":{}}],["walletconfig",{"_index":777,"title":{"99":{}},"content":{"92":{},"95":{},"99":{},"136":{},"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["walletconfig.id",{"_index":818,"title":{"100":{}},"content":{"136":{}},"sidebarParentCategories":{}}],["walletconfig.key",{"_index":819,"title":{"101":{}},"content":{"102":{},"136":{},"149":{},"163":{}},"sidebarParentCategories":{}}],["walletconfig.keyderivationmethod",{"_index":825,"title":{"102":{}},"content":{},"sidebarParentCategories":{}}],["walletconfig.storag",{"_index":848,"title":{"103":{}},"content":{},"sidebarParentCategories":{}}],["walletid",{"_index":375,"title":{},"content":{"42":{},"136":{}},"sidebarParentCategories":{}}],["walletkey",{"_index":376,"title":{},"content":{"42":{}},"sidebarParentCategories":{}}],["walletschem",{"_index":1229,"title":{},"content":{"136":{}},"sidebarParentCategories":{}}],["walletscheme.databaseperwallet",{"_index":1233,"title":{},"content":{"136":{}},"sidebarParentCategories":{}}],["want",{"_index":416,"title":{},"content":{"45":{},"76":{},"83":{},"134":{},"148":{},"159":{},"160":{},"161":{},"201":{},"219":{},"223":{},"224":{}},"sidebarParentCategories":{}}],["warn",{"_index":1029,"title":{},"content":{"133":{}},"sidebarParentCategories":{}}],["warn(messag",{"_index":1017,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["way",{"_index":6,"title":{},"content":{"10":{},"23":{},"24":{},"36":{},"41":{},"76":{},"93":{},"133":{},"148":{},"173":{},"174":{},"182":{},"186":{},"202":{},"222":{},"223":{},"224":{}},"sidebarParentCategories":{}}],["we'll",{"_index":258,"title":{},"content":{"17":{},"37":{},"179":{},"184":{}},"sidebarParentCategories":{}}],["we'v",{"_index":1316,"title":{},"content":{"180":{},"200":{},"202":{},"224":{}},"sidebarParentCategories":{}}],["websit",{"_index":854,"title":{},"content":{"104":{}},"sidebarParentCategories":{}}],["websocket",{"_index":248,"title":{},"content":{"14":{},"36":{},"93":{},"125":{},"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["weekli",{"_index":274,"title":{},"content":{"21":{}},"sidebarParentCategories":{}}],["welcom",{"_index":1,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["well",{"_index":63,"title":{},"content":{"10":{},"103":{},"201":{}},"sidebarParentCategories":{}}],["whether",{"_index":19,"title":{},"content":{"10":{},"51":{},"59":{},"67":{},"73":{},"109":{},"115":{},"118":{},"119":{},"120":{},"123":{},"127":{},"129":{},"184":{},"200":{},"206":{}},"sidebarParentCategories":{}}],["whose",{"_index":1630,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["window",{"_index":424,"title":{"68":{},"166":{}},"content":{"44":{},"135":{},"167":{},"171":{},"172":{}},"sidebarParentCategories":{}}],["wire",{"_index":933,"title":{},"content":{"117":{}},"sidebarParentCategories":{}}],["without",{"_index":810,"title":{},"content":{"99":{},"165":{},"177":{},"200":{},"203":{},"225":{}},"sidebarParentCategories":{}}],["won't",{"_index":1024,"title":{},"content":{"133":{},"187":{},"201":{}},"sidebarParentCategories":{}}],["work",{"_index":8,"title":{},"content":{"1":{},"2":{},"5":{},"10":{},"14":{},"21":{},"37":{},"44":{},"45":{},"81":{},"83":{},"91":{},"133":{},"146":{},"159":{},"173":{},"175":{},"176":{},"178":{},"198":{},"200":{},"209":{},"215":{},"220":{},"222":{}},"sidebarParentCategories":{}}],["workflow",{"_index":1217,"title":{},"content":{"165":{},"184":{}},"sidebarParentCategories":{}}],["world",{"_index":188,"title":{},"content":{"8":{}},"sidebarParentCategories":{}}],["worri",{"_index":1406,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["worth",{"_index":1724,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["wrapper",{"_index":304,"title":{},"content":{"25":{},"133":{}},"sidebarParentCategories":{}}],["written",{"_index":60,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["wrong",{"_index":1535,"title":{},"content":{"206":{}},"sidebarParentCategories":{}}],["wsoutboundtransport",{"_index":784,"title":{},"content":{"93":{},"95":{},"146":{},"149":{},"159":{},"163":{}},"sidebarParentCategories":{}}],["wsoutboundtransport())agent.registeroutboundtransport(new",{"_index":790,"title":{},"content":{"93":{}},"sidebarParentCategories":{}}],["x86",{"_index":642,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["x86.jar",{"_index":662,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["x86.zip",{"_index":644,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["x86_64",{"_index":647,"title":{},"content":{"81":{},"171":{}},"sidebarParentCategories":{}}],["x86_64.zip",{"_index":649,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["xf",{"_index":657,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["y",{"_index":504,"title":{},"content":{"53":{}},"sidebarParentCategories":{}}],["yarn",{"_index":329,"title":{"49":{},"55":{},"63":{},"71":{}},"content":{"30":{},"32":{},"35":{},"44":{},"49":{},"55":{},"63":{},"71":{},"90":{},"91":{},"159":{},"198":{},"215":{}},"sidebarParentCategories":{}}],["ye",{"_index":701,"title":{},"content":{"82":{},"219":{}},"sidebarParentCategories":{}}],["you'll",{"_index":83,"title":{},"content":{"10":{},"224":{}},"sidebarParentCategories":{}}],["you'r",{"_index":411,"title":{},"content":{"45":{},"83":{},"91":{},"173":{},"175":{},"176":{},"198":{},"201":{},"215":{}},"sidebarParentCategories":{}}],["yourself",{"_index":37,"title":{},"content":{"10":{},"184":{},"185":{},"202":{}},"sidebarParentCategories":{}}],["yum",{"_index":507,"title":{},"content":{"53":{},"56":{},"57":{}},"sidebarParentCategories":{}}],["zeromq",{"_index":463,"title":{},"content":{"57":{},"65":{},"153":{}},"sidebarParentCategories":{}}],["zip",{"_index":1241,"title":{},"content":{"138":{},"152":{}},"sidebarParentCategories":{}}]],"pipeline":["stemmer"]}} \ No newline at end of file +{"documents":[{"id":1,"pageTitle":"","sectionTitle":"Intro","sectionRoute":"/guides/0.3","type":"docs"},{"id":12,"pageTitle":"","sectionTitle":"Concepts","sectionRoute":"/guides/0.3/concepts","type":"docs"},{"id":13,"pageTitle":"","sectionTitle":"📄️ Agents","sectionRoute":"/guides/0.3/concepts","type":"docs"},{"id":14,"pageTitle":"","sectionTitle":"📄️ DIDs and DIDComm","sectionRoute":"/guides/0.3/concepts","type":"docs"},{"id":15,"pageTitle":"","sectionTitle":"📄️ Platform and Environment","sectionRoute":"/guides/0.3/concepts","type":"docs"},{"id":7,"pageTitle":"","sectionTitle":"Agents","sectionRoute":"/guides/0.3/concepts/agents","type":"docs"},{"id":8,"pageTitle":"","sectionTitle":"Characteristics","sectionRoute":"/guides/0.3/concepts/agents#characteristics","type":"docs"},{"id":9,"pageTitle":"","sectionTitle":"Categories","sectionRoute":"/guides/0.3/concepts/agents#categories","type":"docs"},{"id":10,"pageTitle":"","sectionTitle":"Examples","sectionRoute":"/guides/0.3/concepts/agents#examples","type":"docs"},{"id":11,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/0.3/concepts/agents#useful-resources","type":"docs"},{"id":2,"pageTitle":"","sectionTitle":"DIDs and DIDComm","sectionRoute":"/guides/0.3/concepts/did-and-didcomm","type":"docs"},{"id":3,"pageTitle":"","sectionTitle":"DIDs","sectionRoute":"/guides/0.3/concepts/did-and-didcomm#dids","type":"docs"},{"id":4,"pageTitle":"","sectionTitle":"DID Documents","sectionRoute":"/guides/0.3/concepts/did-and-didcomm#did-documents","type":"docs"},{"id":5,"pageTitle":"","sectionTitle":"DIDComm","sectionRoute":"/guides/0.3/concepts/did-and-didcomm#didcomm","type":"docs"},{"id":6,"pageTitle":"","sectionTitle":"Useful Resources","sectionRoute":"/guides/0.3/concepts/did-and-didcomm#useful-resources","type":"docs"},{"id":16,"pageTitle":"","sectionTitle":"Platform and Environment","sectionRoute":"/guides/0.3/concepts/platform-and-environment","type":"docs"},{"id":17,"pageTitle":"","sectionTitle":"The Aries JavaScript Ecosystem","sectionRoute":"/guides/0.3/ecosystem","type":"docs"},{"id":18,"pageTitle":"","sectionTitle":"Repositories","sectionRoute":"/guides/0.3/ecosystem#repositories","type":"docs"},{"id":19,"pageTitle":"","sectionTitle":"Documentation","sectionRoute":"/guides/0.3/ecosystem#documentation","type":"docs"},{"id":20,"pageTitle":"","sectionTitle":"Aries Framework JavaScript","sectionRoute":"/guides/0.3/ecosystem#aries-framework-javascript","type":"docs"},{"id":21,"pageTitle":"","sectionTitle":"Contributing in the Aries JS Ecosystem","sectionRoute":"/guides/0.3/ecosystem#contributing-in-the-aries-js-ecosystem","type":"docs"},{"id":22,"pageTitle":"","sectionTitle":"Developer Contributions","sectionRoute":"/guides/0.3/ecosystem#developer-contributions","type":"docs"},{"id":23,"pageTitle":"","sectionTitle":"Extensions","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":24,"pageTitle":"","sectionTitle":"🗃️ REST API","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":25,"pageTitle":"","sectionTitle":"🗃️ React Hooks","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":26,"pageTitle":"","sectionTitle":"🗃️ Redux Store","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":27,"pageTitle":"","sectionTitle":"🗃️ Push Notifications","sectionRoute":"/guides/0.3/extensions","type":"docs"},{"id":28,"pageTitle":"","sectionTitle":"Push Notifications","sectionRoute":"/guides/0.3/extensions/push-notifications","type":"docs"},{"id":29,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/extensions/push-notifications/setup","type":"docs"},{"id":30,"pageTitle":"","sectionTitle":"React Hooks","sectionRoute":"/guides/0.3/extensions/react-hooks","type":"docs"},{"id":31,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/extensions/react-hooks/setup","type":"docs"},{"id":32,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/0.3/extensions/react-hooks/setup#installation","type":"docs"},{"id":35,"pageTitle":"","sectionTitle":"Redux Store","sectionRoute":"/guides/0.3/extensions/redux-store","type":"docs"},{"id":33,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/extensions/redux-store/setup","type":"docs"},{"id":34,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/0.3/extensions/redux-store/setup#installation","type":"docs"},{"id":40,"pageTitle":"","sectionTitle":"REST API","sectionRoute":"/guides/0.3/extensions/rest","type":"docs"},{"id":36,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/extensions/rest/setup","type":"docs"},{"id":37,"pageTitle":"","sectionTitle":"Quick Setup","sectionRoute":"/guides/0.3/extensions/rest/setup#quick-setup","type":"docs"},{"id":38,"pageTitle":"","sectionTitle":"Directly on computer","sectionRoute":"/guides/0.3/extensions/rest/setup#directly-on-computer","type":"docs"},{"id":39,"pageTitle":"","sectionTitle":"Configuration","sectionRoute":"/guides/0.3/extensions/rest/setup#configuration","type":"docs"},{"id":41,"pageTitle":"","sectionTitle":"Getting started","sectionRoute":"/guides/0.3/getting-started","type":"docs"},{"id":42,"pageTitle":"","sectionTitle":"🗃️ Installation","sectionRoute":"/guides/0.3/getting-started","type":"docs"},{"id":43,"pageTitle":"","sectionTitle":"📄️ Setup","sectionRoute":"/guides/0.3/getting-started","type":"docs"},{"id":44,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/0.3/getting-started/installation","type":"docs"},{"id":45,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs","type":"docs"},{"id":46,"pageTitle":"","sectionTitle":"Apple (Arm)","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm","type":"docs"},{"id":47,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#nodejs","type":"docs"},{"id":48,"pageTitle":"","sectionTitle":"npm","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#npm","type":"docs"},{"id":49,"pageTitle":"","sectionTitle":"yarn","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#yarn","type":"docs"},{"id":50,"pageTitle":"","sectionTitle":"Libsodium","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#libsodium","type":"docs"},{"id":51,"pageTitle":"","sectionTitle":"Libzmq","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#libzmq","type":"docs"},{"id":52,"pageTitle":"","sectionTitle":"Indy-sdk","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#indy-sdk","type":"docs"},{"id":53,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-arm#confirm-installation","type":"docs"},{"id":54,"pageTitle":"","sectionTitle":"Apple (Intel)","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel","type":"docs"},{"id":55,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel","type":"docs"},{"id":56,"pageTitle":"","sectionTitle":"npm","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel#npm","type":"docs"},{"id":57,"pageTitle":"","sectionTitle":"yarn","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel#yarn","type":"docs"},{"id":58,"pageTitle":"","sectionTitle":"Indy-sdk","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel#indy-sdk","type":"docs"},{"id":59,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/apple-intel#confirm-installation","type":"docs"},{"id":69,"pageTitle":"","sectionTitle":"Linux","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux","type":"docs"},{"id":70,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#nodejs","type":"docs"},{"id":71,"pageTitle":"","sectionTitle":"npm","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#npm","type":"docs"},{"id":72,"pageTitle":"","sectionTitle":"yarn","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#yarn","type":"docs"},{"id":73,"pageTitle":"","sectionTitle":"Libsodium","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#libsodium","type":"docs"},{"id":74,"pageTitle":"","sectionTitle":"Libzmq","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#libzmq","type":"docs"},{"id":75,"pageTitle":"","sectionTitle":"Indy-sdk","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#indy-sdk","type":"docs"},{"id":76,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/linux#confirm-installation","type":"docs"},{"id":63,"pageTitle":"","sectionTitle":"Windows","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows","type":"docs"},{"id":64,"pageTitle":"","sectionTitle":"NodeJS","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#nodejs","type":"docs"},{"id":65,"pageTitle":"","sectionTitle":"npm","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#npm","type":"docs"},{"id":66,"pageTitle":"","sectionTitle":"yarn","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#yarn","type":"docs"},{"id":67,"pageTitle":"","sectionTitle":"Indy-sdk","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#indy-sdk","type":"docs"},{"id":68,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/0.3/getting-started/installation/nodejs/windows#confirm-installation","type":"docs"},{"id":60,"pageTitle":"","sectionTitle":"React Native","sectionRoute":"/guides/0.3/getting-started/installation/react-native","type":"docs"},{"id":61,"pageTitle":"","sectionTitle":"Known Errors","sectionRoute":"/guides/0.3/getting-started/installation/react-native#known-errors","type":"docs"},{"id":62,"pageTitle":"","sectionTitle":"Add setup of external storage permissions (Android)","sectionRoute":"/guides/0.3/getting-started/installation/react-native#add-setup-of-external-storage-permissions-android","type":"docs"},{"id":77,"pageTitle":"","sectionTitle":"Android","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android","type":"docs"},{"id":78,"pageTitle":"","sectionTitle":"Set the minimum SDK version","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android#set-the-minimum-sdk-version","type":"docs"},{"id":79,"pageTitle":"","sectionTitle":"Add the Sovrin maven repository","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android#add-the-sovrin-maven-repository","type":"docs"},{"id":80,"pageTitle":"","sectionTitle":"Adding the JNA library dependency","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android#adding-the-jna-library-dependency","type":"docs"},{"id":81,"pageTitle":"","sectionTitle":"Adding the Android indy-sdk libaries","sectionRoute":"/guides/0.3/getting-started/installation/react-native/android#adding-the-android-indy-sdk-libaries","type":"docs"},{"id":83,"pageTitle":"","sectionTitle":"iOS","sectionRoute":"/guides/0.3/getting-started/installation/react-native/ios","type":"docs"},{"id":82,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/0.3/getting-started/prerequisites","type":"docs"},{"id":89,"pageTitle":"","sectionTitle":"Setup","sectionRoute":"/guides/0.3/getting-started/set-up","type":"docs"},{"id":90,"pageTitle":"","sectionTitle":"Installing the required dependencies","sectionRoute":"/guides/0.3/getting-started/set-up#installing-the-required-dependencies","type":"docs"},{"id":91,"pageTitle":"","sectionTitle":"Additional setup","sectionRoute":"/guides/0.3/getting-started/set-up#additional-setup","type":"docs"},{"id":92,"pageTitle":"","sectionTitle":"Setting up the agent","sectionRoute":"/guides/0.3/getting-started/set-up#setting-up-the-agent","type":"docs"},{"id":93,"pageTitle":"","sectionTitle":"Setting up the transports","sectionRoute":"/guides/0.3/getting-started/set-up#setting-up-the-transports","type":"docs"},{"id":94,"pageTitle":"","sectionTitle":"Initializing the agent","sectionRoute":"/guides/0.3/getting-started/set-up#initializing-the-agent","type":"docs"},{"id":95,"pageTitle":"","sectionTitle":"Full code snippet","sectionRoute":"/guides/0.3/getting-started/set-up#full-code-snippet","type":"docs"},{"id":96,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/0.3/getting-started/set-up#useful-resources","type":"docs"},{"id":84,"pageTitle":"","sectionTitle":"Tutorials","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":85,"pageTitle":"","sectionTitle":"🗃️ Agent Config","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":86,"pageTitle":"","sectionTitle":"📄️ Create a connection","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":87,"pageTitle":"","sectionTitle":"📄️ Issue a credential","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":88,"pageTitle":"","sectionTitle":"🗃️ Postgres Database","sectionRoute":"/guides/0.3/tutorials","type":"docs"},{"id":104,"pageTitle":"","sectionTitle":"Agent Config","sectionRoute":"/guides/0.3/tutorials/agent-config","type":"docs"},{"id":105,"pageTitle":"","sectionTitle":"label*","sectionRoute":"/guides/0.3/tutorials/agent-config#label","type":"docs"},{"id":106,"pageTitle":"","sectionTitle":"walletConfig","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfig","type":"docs"},{"id":107,"pageTitle":"","sectionTitle":"walletConfig.id*","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfigid","type":"docs"},{"id":108,"pageTitle":"","sectionTitle":"walletConfig.key*","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfigkey","type":"docs"},{"id":109,"pageTitle":"","sectionTitle":"walletConfig.keyDerivationMethod","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfigkeyderivationmethod","type":"docs"},{"id":110,"pageTitle":"","sectionTitle":"walletConfig.storage","sectionRoute":"/guides/0.3/tutorials/agent-config#walletconfigstorage","type":"docs"},{"id":111,"pageTitle":"","sectionTitle":"endpoints","sectionRoute":"/guides/0.3/tutorials/agent-config#endpoints","type":"docs"},{"id":112,"pageTitle":"","sectionTitle":"publicDidSeed","sectionRoute":"/guides/0.3/tutorials/agent-config#publicdidseed","type":"docs"},{"id":113,"pageTitle":"","sectionTitle":"indyLedgers","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgers","type":"docs"},{"id":114,"pageTitle":"","sectionTitle":"indyLedgers.id*","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersid","type":"docs"},{"id":115,"pageTitle":"","sectionTitle":"indyLedgers.indyNamespace","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersindynamespace","type":"docs"},{"id":116,"pageTitle":"","sectionTitle":"indyLedgers.isProduction*","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersisproduction","type":"docs"},{"id":117,"pageTitle":"","sectionTitle":"indyLedgers.genesisPath","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersgenesispath","type":"docs"},{"id":118,"pageTitle":"","sectionTitle":"indyLedgers.genesisTransactions","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgersgenesistransactions","type":"docs"},{"id":119,"pageTitle":"","sectionTitle":"indyLedgers.transactionAuthorAgreement","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgerstransactionauthoragreement","type":"docs"},{"id":120,"pageTitle":"","sectionTitle":"indyLedgers.transactionAuthorAgreement.version","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgerstransactionauthoragreementversion","type":"docs"},{"id":121,"pageTitle":"","sectionTitle":"indyLedgers.transactionAuthorAgreement.acceptanceMechanism","sectionRoute":"/guides/0.3/tutorials/agent-config#indyledgerstransactionauthoragreementacceptancemechanism","type":"docs"},{"id":122,"pageTitle":"","sectionTitle":"connectToIndyLedgerOnStartup","sectionRoute":"/guides/0.3/tutorials/agent-config#connecttoindyledgeronstartup","type":"docs"},{"id":123,"pageTitle":"","sectionTitle":"logger","sectionRoute":"/guides/0.3/tutorials/agent-config#logger","type":"docs"},{"id":124,"pageTitle":"","sectionTitle":"didCommMimeType","sectionRoute":"/guides/0.3/tutorials/agent-config#didcommmimetype","type":"docs"},{"id":125,"pageTitle":"","sectionTitle":"autoAcceptCredentials","sectionRoute":"/guides/0.3/tutorials/agent-config#autoacceptcredentials","type":"docs"},{"id":126,"pageTitle":"","sectionTitle":"autoAcceptProofs","sectionRoute":"/guides/0.3/tutorials/agent-config#autoacceptproofs","type":"docs"},{"id":127,"pageTitle":"","sectionTitle":"autoAcceptMediationRequests","sectionRoute":"/guides/0.3/tutorials/agent-config#autoacceptmediationrequests","type":"docs"},{"id":128,"pageTitle":"","sectionTitle":"mediatorConnectionsInvite","sectionRoute":"/guides/0.3/tutorials/agent-config#mediatorconnectionsinvite","type":"docs"},{"id":129,"pageTitle":"","sectionTitle":"defaultMediatorId","sectionRoute":"/guides/0.3/tutorials/agent-config#defaultmediatorid","type":"docs"},{"id":130,"pageTitle":"","sectionTitle":"clearDefaultMediator","sectionRoute":"/guides/0.3/tutorials/agent-config#cleardefaultmediator","type":"docs"},{"id":131,"pageTitle":"","sectionTitle":"mediatorPollingInterval","sectionRoute":"/guides/0.3/tutorials/agent-config#mediatorpollinginterval","type":"docs"},{"id":132,"pageTitle":"","sectionTitle":"mediatorPickupStratery","sectionRoute":"/guides/0.3/tutorials/agent-config#mediatorpickupstratery","type":"docs"},{"id":133,"pageTitle":"","sectionTitle":"maximumMessagePickup (subject to change)","sectionRoute":"/guides/0.3/tutorials/agent-config#maximummessagepickup-subject-to-change","type":"docs"},{"id":134,"pageTitle":"","sectionTitle":"useLegacyDidSovPrefix","sectionRoute":"/guides/0.3/tutorials/agent-config#uselegacydidsovprefix","type":"docs"},{"id":135,"pageTitle":"","sectionTitle":"connectionImageUrl","sectionRoute":"/guides/0.3/tutorials/agent-config#connectionimageurl","type":"docs"},{"id":136,"pageTitle":"","sectionTitle":"autoUpdateStorageOnStartup","sectionRoute":"/guides/0.3/tutorials/agent-config#autoupdatestorageonstartup","type":"docs"},{"id":97,"pageTitle":"","sectionTitle":"Logging","sectionRoute":"/guides/0.3/tutorials/agent-config/logging","type":"docs"},{"id":98,"pageTitle":"","sectionTitle":"Using the Default ConsoleLogger","sectionRoute":"/guides/0.3/tutorials/agent-config/logging#using-the-default-consolelogger","type":"docs"},{"id":99,"pageTitle":"","sectionTitle":"Creating your own Logger","sectionRoute":"/guides/0.3/tutorials/agent-config/logging#creating-your-own-logger","type":"docs"},{"id":100,"pageTitle":"","sectionTitle":"Indy Logs","sectionRoute":"/guides/0.3/tutorials/agent-config/logging#indy-logs","type":"docs"},{"id":137,"pageTitle":"","sectionTitle":"Create a connection","sectionRoute":"/guides/0.3/tutorials/create-a-connection","type":"docs"},{"id":138,"pageTitle":"","sectionTitle":"1. Setting up the agents","sectionRoute":"/guides/0.3/tutorials/create-a-connection#1-setting-up-the-agents","type":"docs"},{"id":139,"pageTitle":"","sectionTitle":"3. Receiving the invitation","sectionRoute":"/guides/0.3/tutorials/create-a-connection#3-receiving-the-invitation","type":"docs"},{"id":140,"pageTitle":"","sectionTitle":"4. (additional) listen to incoming connection responses","sectionRoute":"/guides/0.3/tutorials/create-a-connection#4-additional-listen-to-incoming-connection-responses","type":"docs"},{"id":141,"pageTitle":"","sectionTitle":"5. Full code snippets","sectionRoute":"/guides/0.3/tutorials/create-a-connection#5-full-code-snippets","type":"docs"},{"id":142,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/0.3/tutorials/create-a-connection#useful-resources","type":"docs"},{"id":174,"pageTitle":"","sectionTitle":"Issue a credential","sectionRoute":"/guides/0.3/tutorials/issue-a-credential","type":"docs"},{"id":175,"pageTitle":"","sectionTitle":"1. Setting up the agents","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#1-setting-up-the-agents","type":"docs"},{"id":176,"pageTitle":"","sectionTitle":"2. Registering the schema and credential definition","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#2-registering-the-schema-and-credential-definition","type":"docs"},{"id":177,"pageTitle":"","sectionTitle":"3. Listening for incoming credentials","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#3-listening-for-incoming-credentials","type":"docs"},{"id":178,"pageTitle":"","sectionTitle":"4. Issuing a credential","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#4-issuing-a-credential","type":"docs"},{"id":179,"pageTitle":"","sectionTitle":"5. Full code snippets","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#5-full-code-snippets","type":"docs"},{"id":180,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#useful-resources","type":"docs"},{"id":181,"pageTitle":"","sectionTitle":"Side notes","sectionRoute":"/guides/0.3/tutorials/issue-a-credential#side-notes","type":"docs"},{"id":101,"pageTitle":"","sectionTitle":"Using PostgreSQL as Database in Node.js","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs","type":"docs"},{"id":102,"pageTitle":"","sectionTitle":"Installation of the Postgres Plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs#installation-of-the-postgres-plugin","type":"docs"},{"id":103,"pageTitle":"","sectionTitle":"Using the Postgres Plugin in AFJ","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs#using-the-postgres-plugin-in-afj","type":"docs"},{"id":150,"pageTitle":"","sectionTitle":"Postgres Setup for Linux","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux","type":"docs"},{"id":151,"pageTitle":"","sectionTitle":"Prerequisites","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#prerequisites","type":"docs"},{"id":152,"pageTitle":"","sectionTitle":"Step 1: installing the dependencies using apt","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-1-installing-the-dependencies-using-apt","type":"docs"},{"id":153,"pageTitle":"","sectionTitle":"Debian based (Ubuntu, Mint, Kali, Deepin, etc.)","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#debian-based-ubuntu-mint-kali-deepin-etc","type":"docs"},{"id":154,"pageTitle":"","sectionTitle":"Step 2: Build Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-2-build-postgres-plugin","type":"docs"},{"id":155,"pageTitle":"","sectionTitle":"Step 2.1: Cloning the indy-sdk","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-21-cloning-the-indy-sdk","type":"docs"},{"id":156,"pageTitle":"","sectionTitle":"Step 2.2: Building Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-22-building-postgres-plugin","type":"docs"},{"id":157,"pageTitle":"","sectionTitle":"Step 2.3: Moving the file","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/linux#step-23-moving-the-file","type":"docs"},{"id":143,"pageTitle":"","sectionTitle":"Postgres Setup for macOS","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos","type":"docs"},{"id":144,"pageTitle":"","sectionTitle":"Prerequisites","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#prerequisites","type":"docs"},{"id":145,"pageTitle":"","sectionTitle":"Step 1: installing the dependencies using brew","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-1-installing-the-dependencies-using-brew","type":"docs"},{"id":146,"pageTitle":"","sectionTitle":"Step 2: Build Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-2-build-postgres-plugin","type":"docs"},{"id":147,"pageTitle":"","sectionTitle":"Step 2.1: Cloning the indy-sdk","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-21-cloning-the-indy-sdk","type":"docs"},{"id":148,"pageTitle":"","sectionTitle":"Step 2.2: Building Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-22-building-postgres-plugin","type":"docs"},{"id":149,"pageTitle":"","sectionTitle":"Step 2.3: Moving the file","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/macos#step-23-moving-the-file","type":"docs"},{"id":158,"pageTitle":"","sectionTitle":"Postgres Setup for windows","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows","type":"docs"},{"id":159,"pageTitle":"","sectionTitle":"Build Environment Prerequisites","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#build-environment-prerequisites","type":"docs"},{"id":160,"pageTitle":"","sectionTitle":"Step 1: Getting dependencies","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-1-getting-dependencies","type":"docs"},{"id":161,"pageTitle":"","sectionTitle":"Step 2: Build Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-2-build-postgres-plugin","type":"docs"},{"id":162,"pageTitle":"","sectionTitle":"Step 2.1: Cloning the indy-sdk","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-21-cloning-the-indy-sdk","type":"docs"},{"id":163,"pageTitle":"","sectionTitle":"Step 2.2: Building Postgres plugin","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-22-building-postgres-plugin","type":"docs"},{"id":164,"pageTitle":"","sectionTitle":"Step 2.3: Setting the file to PATH","sectionRoute":"/guides/0.3/tutorials/postgres-database-nodejs/windows#step-23-setting-the-file-to-path","type":"docs"},{"id":165,"pageTitle":"","sectionTitle":"Updating AFJ","sectionRoute":"/guides/0.3/updating","type":"docs"},{"id":166,"pageTitle":"","sectionTitle":"📄️ Update Assistant","sectionRoute":"/guides/0.3/updating","type":"docs"},{"id":167,"pageTitle":"","sectionTitle":"📄️ Migrating from AFJ 0.1.0 to 0.2.x","sectionRoute":"/guides/0.3/updating","type":"docs"},{"id":168,"pageTitle":"","sectionTitle":"📄️ Migrating from AFJ 0.2.x to 0.3.x","sectionRoute":"/guides/0.3/updating","type":"docs"},{"id":169,"pageTitle":"","sectionTitle":"Versioning","sectionRoute":"/guides/0.3/updating#versioning","type":"docs"},{"id":170,"pageTitle":"","sectionTitle":"Types of breaking changes","sectionRoute":"/guides/0.3/updating#types-of-breaking-changes","type":"docs"},{"id":171,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/0.3/updating#breaking-code-changes","type":"docs"},{"id":172,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/0.3/updating#breaking-storage-changes","type":"docs"},{"id":173,"pageTitle":"","sectionTitle":"Migration Guides","sectionRoute":"/guides/0.3/updating#migration-guides","type":"docs"},{"id":182,"pageTitle":"","sectionTitle":"Update Assistant","sectionRoute":"/guides/0.3/updating/update-assistant","type":"docs"},{"id":183,"pageTitle":"","sectionTitle":"Update Strategies","sectionRoute":"/guides/0.3/updating/update-assistant#update-strategies","type":"docs"},{"id":184,"pageTitle":"","sectionTitle":"Manually instantiating the update assistant on agent startup","sectionRoute":"/guides/0.3/updating/update-assistant#manually-instantiating-the-update-assistant-on-agent-startup","type":"docs"},{"id":185,"pageTitle":"","sectionTitle":"Storing the agent storage version outside of the agent storage","sectionRoute":"/guides/0.3/updating/update-assistant#storing-the-agent-storage-version-outside-of-the-agent-storage","type":"docs"},{"id":186,"pageTitle":"","sectionTitle":"Automatically update on agent startup","sectionRoute":"/guides/0.3/updating/update-assistant#automatically-update-on-agent-startup","type":"docs"},{"id":187,"pageTitle":"","sectionTitle":"Backups","sectionRoute":"/guides/0.3/updating/update-assistant#backups","type":"docs"},{"id":189,"pageTitle":"","sectionTitle":"Migrating from AFJ 0.1.0 to 0.2.x","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2","type":"docs"},{"id":190,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#breaking-code-changes","type":"docs"},{"id":191,"pageTitle":"","sectionTitle":"Credentials Module","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#credentials-module","type":"docs"},{"id":192,"pageTitle":"","sectionTitle":"Connections Module","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#connections-module","type":"docs"},{"id":193,"pageTitle":"","sectionTitle":"Updating Custom Messages to the New Message Type Objects","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#updating-custom-messages-to-the-new-message-type-objects","type":"docs"},{"id":194,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#breaking-storage-changes","type":"docs"},{"id":195,"pageTitle":"","sectionTitle":"Credential Metadata","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#credential-metadata","type":"docs"},{"id":196,"pageTitle":"","sectionTitle":"Migrate Credential Record Properties","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#migrate-credential-record-properties","type":"docs"},{"id":197,"pageTitle":"","sectionTitle":"Mediation Record Role","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#mediation-record-role","type":"docs"},{"id":198,"pageTitle":"","sectionTitle":"Extracting Did Documents to Did Repository","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#extracting-did-documents-to-did-repository","type":"docs"},{"id":199,"pageTitle":"","sectionTitle":"Migrating to the Out of Band Record","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#migrating-to-the-out-of-band-record","type":"docs"},{"id":200,"pageTitle":"","sectionTitle":"Unifying Connection States and Roles","sectionRoute":"/guides/0.3/updating/versions/0.1-to-0.2#unifying-connection-states-and-roles","type":"docs"},{"id":215,"pageTitle":"","sectionTitle":"Migrating from AFJ 0.2.x to 0.3.x","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3","type":"docs"},{"id":216,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#breaking-code-changes","type":"docs"},{"id":217,"pageTitle":"","sectionTitle":"Agent creation","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#agent-creation","type":"docs"},{"id":218,"pageTitle":"","sectionTitle":"did:key usage in protocols","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#didkey-usage-in-protocols","type":"docs"},{"id":219,"pageTitle":"","sectionTitle":"Modules extracted from the core","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#modules-extracted-from-the-core","type":"docs"},{"id":220,"pageTitle":"","sectionTitle":"Discover Features Module","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#discover-features-module","type":"docs"},{"id":221,"pageTitle":"","sectionTitle":"Ledger Module","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#ledger-module","type":"docs"},{"id":222,"pageTitle":"","sectionTitle":"Proofs Module","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#proofs-module","type":"docs"},{"id":223,"pageTitle":"","sectionTitle":"Out Of Band Proofs and Credentials","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#out-of-band-proofs-and-credentials","type":"docs"},{"id":224,"pageTitle":"","sectionTitle":"Updating Custom Modules to the new Plugin API","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#updating-custom-modules-to-the-new-plugin-api","type":"docs"},{"id":225,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#breaking-storage-changes","type":"docs"},{"id":226,"pageTitle":"","sectionTitle":"Migrate Proof Record Properties","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#migrate-proof-record-properties","type":"docs"},{"id":227,"pageTitle":"","sectionTitle":"Migrate Connection Record properties","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#migrate-connection-record-properties","type":"docs"},{"id":228,"pageTitle":"","sectionTitle":"Migrate Did Record properties","sectionRoute":"/guides/0.3/updating/versions/0.2-to-0.3#migrate-did-record-properties","type":"docs"}],"index":{"version":"2.3.9","fields":["title","content","sidebarParentCategories"],"fieldVectors":[["title/1",[0,6.518]],["content/1",[1,2.968,2,1.605,3,2.025,4,5.09,5,2.311,6,1.498,7,2.663,8,2.001,9,2.461,10,2.663,11,2.005,12,2.968,13,2.663,14,2.968,15,4.667,16,2.968,17,1.375,18,1.93,19,1.533,20,3.287,21,4.667,22,2.304,23,2.968,24,3.287,25,2.574,26,2.461,27,2.968,28,2.968,29,3.399,30,2.122,31,0.648,32,2.162,33,3.505,34,1.521,35,1.864,36,4.782,37,2.311,38,4.257,39,2.663,40,2.091,41,1.571,42,4.782,43,1.498,44,2.461,45,2.968,46,2.311,47,2.311,48,2.968,49,2.663,50,1.375,51,2.663,52,2.663,53,1.228,54,2.968,55,0.542,56,2.968,57,2.968,58,0.938,59,1.653,60,4.667,61,4.667,62,2.119,63,2.461,64,2.968,65,2.461,66,1.611,67,2.533,68,1.611,69,1.533,70,0.996,71,1.042,72,2.461,73,1.804,74,2.968,75,2.663,76,2.968,77,1.804,78,2.005,79,2.663,80,2.663,81,2.005,82,2.968,83,4.186,84,1.7,85,2.968,86,1.611,87,0.549,88,2.663,89,1.571,90,2.461,91,1.7,92,2.005,93,1.533,94,2.968,95,1.533,96,1.092,97,2.968,98,2.968,99,2.968,100,2.968,101,2.311,102,0.682]],["sidebarParentCategories/1",[]],["title/12",[86,3.537]],["content/12",[2,1.87,3,2.732,8,2.12,22,1.975,24,3.482,25,2.464,29,2.913,31,1.079,33,3.004,55,1.421,58,1.266,66,2.682,67,2.682,68,2.682,69,3.515,70,2.283,71,2.389,84,2.83,86,3.692,103,2.29,104,3.482,105,3.104,106,3.79,107,4.943,108,2.754,109,4.943,110,3.339,111,2.754,112,2.554,113,4.597,114,2.83,115,3.03,116,5.297,117,2.495,118,3.104,119,3.004]],["sidebarParentCategories/12",[]],["title/13",[31,1.162,55,0.973]],["content/13",[2,1.949,8,3.385,111,4.397,112,4.078]],["sidebarParentCategories/13",[]],["title/14",[55,0.822,113,3.042,114,2.579]],["content/14",[113,5.6]],["sidebarParentCategories/14",[]],["title/15",[55,0.822,66,2.444,115,2.005]],["content/15",[2,1.701,3,2.808,22,2.521,24,4.446,25,2.896,29,3.72,58,1.301,67,3.425,68,3.425,69,4.132,70,2.684,71,2.808,106,3.516,115,2.811,116,6.226,117,3.186,118,3.963,119,3.836]],["sidebarParentCategories/15",[]],["title/7",[31,1.422]],["content/7",[2,1.972,8,3.057,25,2.581,31,1.555,111,3.971,112,3.682,120,4.815,121,4.332,122,4.937,123,3.995]],["sidebarParentCategories/7",[86,3.267]],["title/8",[124,5.846]],["content/8",[2,1.697,3,1.55,11,2.983,29,2.602,30,1.624,31,1.84,34,1.439,46,3.437,58,0.718,106,2.459,112,3.248,114,3.6,121,2.683,124,3.96,125,3.661,126,3.96,127,5.639,128,4.415,129,6.287,130,4.247,131,3.96,132,4.894,133,4.415,134,3.437,135,4.415,136,4.415,137,3.437,138,3.437,139,6.287,140,2.045,141,4.894,142,4.415,143,4.415,144,3.661,145,2.973,146,1.705,147,4.428,148,2.459,149,2.855,150,1.624,151,2.396,152,1.893,153,2.772,154,3.96,155,3.437,156,3.437,157,3.661,158,4.415,159,2.871,160,3.96,161,4.415,162,3.437,163,2.683]],["sidebarParentCategories/8",[86,3.267]],["title/9",[164,5.846]],["content/9",[2,1.723,3,1.876,31,2.134,34,1.741,35,4.504,106,2.976,164,7.264,165,4.159,166,7.264,167,3.943,168,4.395,169,6.435,170,4.504,171,2.827,172,2.475,173,3.247,174,4.792,175,5.342,176,5.342,177,5.342,178,6.435,179,3.247,180,3.706,181,5.342]],["sidebarParentCategories/9",[86,3.267]],["title/10",[96,2.398]],["content/10",[2,1.39,11,4.415,30,1.716,31,1.426,33,2.835,34,1.52,44,3.867,53,1.929,55,0.852,58,1.063,70,1.565,71,1.638,96,2.404,108,2.598,131,4.184,132,3.631,134,3.631,137,3.631,138,3.631,146,1.802,150,1.716,151,2.531,152,2,153,2.929,155,3.631,162,3.631,168,4.094,172,3.027,180,2.41,182,2.671,183,3.867,184,4.664,185,4.664,186,4.664,187,4.664,188,4.664,189,2.749,190,2.749,191,5.316,192,4.664,193,4.664,194,4.664,195,6.535,196,4.184,197,3.867,198,3.033,199,4.664,200,2,201,4.184,202,2.929,203,4.184]],["sidebarParentCategories/10",[86,3.267]],["title/11",[40,3.752,58,0.866]],["content/11",[2,1.883,3,2.615,25,2.698,31,1.625,42,6.177,102,1.711,204,5.247,205,6.682,206,2.054]],["sidebarParentCategories/11",[86,3.267]],["title/2",[113,3.598,114,3.05]],["content/2",[]],["sidebarParentCategories/2",[86,3.267]],["title/3",[113,4.403]],["content/3",[11,5.503,29,3.829,43,3.28,113,5.503,144,5.388,153,4.08,196,5.828,203,5.828,207,5.828,208,8.145,209,6.012,210,1.972,211,4.389,212,4.577,213,5.828,214,6.497,215,6.497,216,5.388,217,6.497]],["sidebarParentCategories/3",[86,3.267]],["title/4",[32,3.019]],["content/4",[20,4.404,32,3.683,59,4.428,140,2.896,148,3.483,151,3.392,152,2.681,190,3.685,191,4.066,218,4.614,219,4.867,220,4.066,221,4.614,222,5.184,223,5.608,224,3.685,225,3.392,226,4.404,227,5.6,228,4.552,229,4.404,230,4.066,231,5.184]],["sidebarParentCategories/4",[86,3.267]],["title/5",[114,3.732]],["content/5",[2,1.101,3,1.817,8,3.011,46,4.029,47,4.029,49,4.642,103,2.397,104,3.645,105,3.25,106,2.883,114,4.562,121,3.145,146,1.999,148,2.883,151,3.81,152,3.011,153,3.25,155,6.204,182,2.963,227,3.645,228,2.963,232,3.25,233,4.029,234,5.175,235,3.145,236,5.175,237,3.05,238,2.305,239,3.496,240,4.642,241,3.366,242,4.291,243,3.25,244,5.175,245,3.82,246,5.175,247,3.145,248,3.366,249,3.496,250,4.642,251,4.029,252,1.966]],["sidebarParentCategories/5",[86,3.267]],["title/6",[40,3.752,58,0.866]],["content/6",[114,4.63,253,8.333]],["sidebarParentCategories/6",[86,3.267]],["title/16",[66,2.89,115,2.372]],["content/16",[2,1.701,3,2.808,22,2.521,24,4.446,25,2.896,29,3.72,58,1.301,67,3.425,68,3.425,69,4.132,70,2.684,71,2.808,106,3.516,115,2.811,116,6.226,117,3.186,118,3.963,119,3.836]],["sidebarParentCategories/16",[86,3.267]],["title/17",[2,0.958,3,1.581,106,2.509]],["content/17",[2,1.469,3,2.424,59,3.846,92,4.664,93,3.567,103,3.198,106,3.846,159,4.49,202,4.335,254,3.953,255,6.905,256,8.458,257,6.905,258,5.375,259,4.864,260,4.335]],["sidebarParentCategories/17",[]],["title/18",[93,3.367]],["content/18",[2,1.998,3,3.152,25,2.987,31,1.446,70,2.224,71,2.327,93,3.424,125,5.496,168,3.597,261,3.795,262,6.628,263,3.597,264,4.028,265,3.07,266,5.16]],["sidebarParentCategories/18",[]],["title/19",[32,3.019]],["content/19",[2,1.954,3,2.989,25,3.083,31,1.522,32,3.232,38,5.15,70,2.342,71,2.45,168,3.786,238,3.107,265,3.232,266,5.432]],["sidebarParentCategories/19",[]],["title/20",[2,0.958,3,1.581,25,1.631]],["content/20",[2,1.799,3,2.97,25,2.5,43,3.485,92,4.664,106,3.846,146,2.667,152,2.961,163,4.196,200,2.961,252,2.623,267,2.838,268,5.096,269,5.096]],["sidebarParentCategories/20",[]],["title/21",[2,0.83,106,2.173,270,3.235,271,3.235]],["content/21",[2,1.918,8,2.871,25,2.425,67,3.633,166,6.005,261,3.833,266,5.212,271,5.551,272,5.212,273,6.695,274,6.695,275,9.428,276,6.695,277,4.716,278,6.695]],["sidebarParentCategories/21",[]],["title/22",[67,2.89,270,4.417]],["content/22",[2,1.247,43,2.96,67,3.182,75,5.26,91,4.368,149,2.663,232,3.682,266,4.565,267,2.56,270,7.031,272,4.565,279,5.153,280,7.628,281,7.628,282,5.26,283,5.864,284,2.059,285,5.864,286,5.864,287,5.864,288,4.862,289,5.864,290,4.862,291,5.864,292,4.328,293,5.864,294,4.13]],["sidebarParentCategories/22",[]],["title/23",[265,3.019]],["content/23",[2,1.917,3,2.776,7,3.375,25,2.864,31,1.221,53,2.314,55,1.351,58,0.612,70,2.242,79,3.375,91,2.154,93,2.89,96,1.384,112,1.943,122,3.825,123,2.592,154,3.375,191,2.446,228,2.154,247,2.286,254,2.154,260,2.362,261,2.154,265,3.427,267,1.878,268,2.777,295,3.119,296,3.4,297,3.375,298,2.777,299,3.762,300,3.762,301,3.762,302,2.646,303,4.811,304,5.992,305,1.341,306,3.119,307,3.375,308,3.639,309,3.119,310,2.154,311,2.777,312,3.375,313,4.706,314,3.941,315,1.708,316,3.498,317,4.014]],["sidebarParentCategories/23",[]],["title/24",[55,0.822,122,2.579,123,2.086]],["content/24",[316,3.871,317,4.443]],["sidebarParentCategories/24",[]],["title/25",[55,0.822,70,1.511,303,2.929]],["content/25",[316,3.871,317,4.443]],["sidebarParentCategories/25",[]],["title/26",[53,1.863,55,0.822,308,2.929]],["content/26",[316,3.871,317,4.443]],["sidebarParentCategories/26",[]],["title/27",[55,0.822,313,3.172,314,3.172]],["content/27",[316,3.871,317,4.443]],["sidebarParentCategories/27",[]],["title/28",[313,3.752,314,3.752]],["content/28",[6,3.414,31,1.476,43,3.414,58,1.1,120,4.569,180,3.494,267,2.27,302,3.198,313,6.382,314,6.382,315,3.071,318,3.768,319,6.763,320,6.763,321,6.763]],["sidebarParentCategories/28",[265,2.789]],["title/29",[322,2.696]],["content/29",[2,1.804,3,2.059,25,2.124,58,0.954,91,3.357,93,3.029,102,1.347,103,2.716,206,1.617,267,1.968,284,2.059,302,3.607,312,6.843,313,6.325,314,5.373,315,2.663,323,2.342,324,2.562,325,4.13,326,2.716,327,3.765,328,3.85,329,3.85]],["sidebarParentCategories/29",[265,1.782,313,2.709,314,2.709]],["title/30",[70,1.788,303,3.464]],["content/30",[6,3.155,31,1.364,43,3.155,58,1.017,70,2.933,78,4.223,112,3.23,180,4.107,189,4.685,191,4.066,267,2.098,302,2.956,303,5.684,330,4.614,331,4.867,332,7.131,333,4.066,334,5.184,335,6.252,336,4.404]],["sidebarParentCategories/30",[265,2.789]],["title/31",[322,2.696]],["content/31",[2,1.469,3,2.424,25,2.5,58,1.123,70,2.317,93,3.567,102,1.586,103,3.198,206,1.904,267,2.317,284,2.424,302,3.265,303,4.49,323,2.758,324,3.017,325,4.864,326,3.198]],["sidebarParentCategories/31",[70,1.291,265,1.782,303,2.501]],["title/32",[337,1.046]],["content/32",[2,1.743,70,2.202,91,3.757,198,4.267,302,3.103,303,5.812,310,4.693,322,2.714,327,4.045,328,4.137,329,4.137,338,2.621,339,4.622,340,4.267,341,3.473]],["sidebarParentCategories/32",[70,1.291,265,1.782,303,2.501]],["title/35",[53,2.203,308,3.464]],["content/35",[22,2.205,24,3.889,25,1.999,30,2.031,31,1.6,53,3.033,55,1.008,58,1.339,70,2.461,71,1.938,111,3.075,112,2.852,150,2.031,180,3.788,189,3.254,225,2.996,267,2.461,308,4.768,332,6.577,342,6.179,343,4.322,344,4.578,345,2.168,346,4.298,347,2.852,348,5.521,349,5.521,350,3.73]],["sidebarParentCategories/35",[265,2.789]],["title/33",[322,2.696]],["content/33",[2,1.469,3,2.424,25,2.5,53,2.856,58,1.123,93,3.567,102,1.586,103,3.198,206,1.904,267,2.317,284,2.424,302,3.265,308,4.49,323,2.758,324,3.017,325,4.864,326,3.198]],["sidebarParentCategories/33",[53,1.591,265,1.782,308,2.501]],["title/34",[337,1.046]],["content/34",[2,1.743,53,3.697,91,3.757,198,4.267,302,3.103,307,7.352,308,4.267,322,2.714,327,4.045,328,4.137,329,4.137,338,2.621,339,4.622,340,4.267,341,3.473]],["sidebarParentCategories/34",[53,1.591,265,1.782,308,2.501]],["title/40",[122,3.05,123,2.467]],["content/40",[2,1.363,3,1.593,4,3.532,6,2.29,9,3.761,10,4.069,11,3.064,17,2.101,18,2.95,24,4.514,25,1.643,30,1.669,31,1.762,34,1.478,43,3.235,46,3.532,55,1.357,67,2.462,102,1.042,111,2.527,112,3.311,122,4.877,123,3.442,149,2.06,150,1.669,180,3.311,225,2.462,228,4.255,247,2.757,248,2.95,260,4.024,267,2.494,324,1.982,333,2.95,340,2.95,351,2.343,352,4.536,353,4.536,354,4.536,355,2.145,356,3.761,357,2.674,358,3.761,359,4.536,360,2.597,361,4.069]],["sidebarParentCategories/40",[265,2.789]],["title/36",[322,2.696]],["content/36",[25,2.554,66,3.827,69,3.643,91,4.038,102,1.619,103,3.267,206,1.944,230,4.586,322,2.917,326,3.267,337,1.132,362,3.674,363,3.732,364,2.438]],["sidebarParentCategories/36",[122,2.202,123,1.782,265,1.782]],["title/37",[322,2.203,365,5.327]],["content/37",[6,3.803,58,1.225,102,1.73,120,5.09,122,4.314,123,3.49,358,6.247,366,6.247,367,7.534]],["sidebarParentCategories/37",[122,2.202,123,1.782,265,1.782]],["title/38",[120,3.598,368,4.147]],["content/38",[2,1.021,32,2.223,43,3.365,55,1.686,58,0.781,72,5.528,81,3.242,102,1.102,122,4.386,123,2.223,140,2.223,171,2.54,172,3.088,173,2.917,228,4.386,241,4.336,247,4.052,267,2.237,309,3.98,331,3.737,337,1.07,340,3.121,341,2.54,369,3.542,370,3.737,371,3.381,372,3.381,373,2.604,374,2.318,375,4.305,376,4.8,377,4.8,378,4.8,379,3.121,380,3.737,381,3.121,382,3.381,383,4.305,384,4.8,385,3.121,386,4.8,387,4.8]],["sidebarParentCategories/38",[122,2.202,123,1.782,265,1.782]],["title/39",[355,3.082]],["content/39",[2,1.382,33,4.95,38,4.796,102,1.492,122,3.72,249,5.503,263,3.526,267,2.18,309,5.388,341,3.438,355,3.072,358,6.754,371,4.577,372,4.577,388,4.664,389,3.619,390,6.497,391,4.577,392,4.389]],["sidebarParentCategories/39",[122,2.202,123,1.782,265,1.782]],["title/41",[102,1.223,206,1.469]],["content/41",[2,0.992,3,1.638,8,2,25,1.689,29,2.749,34,1.52,50,2.161,55,1.193,58,0.759,62,2.118,70,2.193,71,2.295,89,2.468,102,1.071,103,2.161,110,3.151,118,2.929,119,2.835,168,2.531,173,2.835,189,3.852,198,3.033,232,2.929,258,3.631,259,3.285,260,2.929,317,2.531,322,2.703,323,1.863,337,1.382,350,3.151,362,3.506,363,2.468,364,2.26,393,2.929,394,4.664,395,2.161,396,1.983,397,3.225,398,3.442,399,6.535,400,2.835,401,3.867,402,1.589,403,3.285,404,4.664,405,2.929]],["sidebarParentCategories/41",[]],["title/42",[55,0.973,337,0.855]],["content/42",[317,4.443,405,5.14]],["sidebarParentCategories/42",[]],["title/43",[55,0.973,322,2.203]],["content/43",[232,4.898,337,1.252,362,3.902,363,4.128,364,2.697]],["sidebarParentCategories/43",[]],["title/44",[337,1.046]],["content/44",[2,1.028,3,1.697,8,2.874,18,3.144,22,2.677,34,1.575,62,2.195,70,1.622,71,1.697,73,2.938,106,3.733,115,2.153,168,2.624,173,2.938,220,3.144,284,2.353,290,4.009,322,2.772,324,2.928,326,2.24,337,1.235,340,3.144,350,3.266,362,3.74,364,2.871,395,2.24,396,1.467,398,3.568,401,5.556,403,3.406,406,4.337,407,4.337,408,3.568,409,3.568,410,3.764,411,3.036,412,4.337,413,2.849,414,3.568,415,4.009,416,3.837]],["sidebarParentCategories/44",[102,1.078,206,1.294]],["title/45",[396,1.978]],["content/45",[2,1.127,3,1.861,8,2.273,25,1.919,62,3.24,66,2.876,102,1.217,197,4.394,238,2.36,259,3.733,260,3.328,279,3.58,323,2.117,324,2.315,328,2.675,329,2.675,337,1.446,362,2.273,364,1.833,396,1.608,402,2.43,417,4.126,418,5.3,419,5.3,420,4.126,421,4.394,422,4.754,423,3.328,424,3.58,425,5.026,426,4.126,427,4.754,428,3.912,429,5.3,430,5.3,431,3.446,432,3.912,433,1.461,434,1.861]],["sidebarParentCategories/45",[102,0.883,206,1.06,337,0.617]],["title/46",[425,3.752,427,4.778]],["content/46",[58,1.007,62,2.812,103,2.869,104,4.362,121,3.764,337,1.472,363,3.277,368,4.822,389,3.45,402,2.11,425,4.362,435,6.193,436,5.555,437,8.702,438,6.193,439,6.193,440,3.889,441,4.028,442,5.555,443,5.555,444,4.571,445,5.135,446,5.555]],["sidebarParentCategories/46",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/47",[396,1.978]],["content/47",[3,2.503,115,3.174,173,4.332,337,1.144,341,3.772,396,2.617,440,4.476,447,5.261,448,5.549,449,5.549,450,5.549,451,5.549,452,5.261]],["sidebarParentCategories/47",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/48",[328,3.29]],["content/48",[302,3.562,337,1.21,339,5.307,343,4.44,396,2.286,428,5.561,453,4.899,454,5.307,455,5.561]],["sidebarParentCategories/48",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/49",[329,3.29]],["content/49",[58,1.198,66,3.997,252,2.799,328,4.439,329,4.439,337,1.412,456,4.218,457,5.437]],["sidebarParentCategories/49",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/50",[431,4.238]],["content/50",[58,1.198,231,6.108,337,1.183,431,5.72,433,2.031,434,2.586,440,4.625,458,6.607,459,6.607,460,6.108]],["sidebarParentCategories/50",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/51",[432,4.81]],["content/51",[58,1.212,152,3.194,337,1.196,432,5.498,433,2.054,434,2.615,440,4.677,461,6.682,462,6.682,463,6.177]],["sidebarParentCategories/51",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/52",[433,1.469,434,1.87]],["content/52",[2,0.958,3,1.582,22,1.8,25,1.632,58,0.733,110,3.044,112,2.327,146,1.74,157,3.736,159,2.93,163,2.738,170,2.829,238,2.006,243,2.829,249,3.044,269,3.325,296,5.163,327,2.224,338,1.8,346,3.507,364,1.558,389,2.51,395,2.954,410,3.507,423,2.829,433,2.041,434,2.599,441,4.147,460,3.736,464,3.325,465,2.384,466,3.325,467,4.147,468,3.507,469,3.736,470,4.648,471,4.041,472,3.325,473,3.173,474,3.507,475,4.308,476,4.505,477,4.505,478,3.325,479,3.173,480,2.58,481,3.325,482,2.829,483,3.325,484,1.74,485,3.325,486,3.325,487,4.505,488,4.505]],["sidebarParentCategories/52",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/53",[337,0.855,369,3.931]],["content/53",[2,1.484,19,3.605,326,3.232,337,1.367,341,3.692,364,2.413,371,4.915,372,4.915,389,3.887,433,2.347,434,2.45,467,4.538,489,3.995,490,5.432]],["sidebarParentCategories/53",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/54",[425,3.752,426,4.147]],["content/54",[62,2.98,103,3.04,104,4.622,121,3.988,337,1.503,363,3.473,368,5.109,389,3.655,402,2.235,425,4.622,426,5.109,440,4.12,441,4.267,442,5.886,443,5.886,444,4.843,445,5.441,446,5.886,491,6.562]],["sidebarParentCategories/54",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/55",[396,1.978]],["content/55",[3,2.503,115,3.174,173,4.332,337,1.144,341,3.772,396,2.617,440,4.476,447,5.261,448,5.549,449,5.549,450,5.549,451,5.549,452,5.261]],["sidebarParentCategories/55",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/56",[328,3.29]],["content/56",[302,3.562,337,1.21,339,5.307,343,4.44,396,2.286,428,5.561,453,4.899,454,5.307,455,5.561]],["sidebarParentCategories/56",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/57",[329,3.29]],["content/57",[58,1.198,66,3.997,252,2.799,328,4.439,329,4.439,337,1.412,456,4.218,457,5.437]],["sidebarParentCategories/57",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/58",[433,1.469,434,1.87]],["content/58",[2,1.305,3,2.154,25,2.222,58,0.998,110,4.145,112,3.17,146,2.37,163,3.729,243,3.853,252,2.331,269,4.529,337,1.261,370,4.777,402,2.09,433,2.166,434,2.758,440,4.932,464,4.529,465,3.247,466,4.529,467,3.99,468,4.777,492,3.99,493,6.136,494,6.136]],["sidebarParentCategories/58",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/59",[337,0.855,369,3.931]],["content/59",[2,1.484,19,3.605,326,3.232,337,1.367,341,3.692,364,2.413,371,4.915,372,4.915,389,3.887,433,2.347,434,2.45,467,4.538,489,3.995,490,5.432]],["sidebarParentCategories/59",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/69",[423,4.092]],["content/69",[62,3.421,103,3.49,104,5.307,146,2.91,337,1.21,402,2.566,423,4.73,447,5.561,466,5.561]],["sidebarParentCategories/69",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/70",[396,1.978]],["content/70",[3,2.005,55,1.369,115,2.543,173,3.471,328,2.883,337,1.204,341,3.023,396,2.697,423,3.586,444,5.535,445,4.736,447,4.216,448,4.447,449,4.447,450,4.447,451,4.447,452,4.216,495,4.736,496,4.447,497,4.736,498,4.736,499,4.447,500,4.736,501,5.712,502,7.499,503,4.023,504,5.712,505,5.712,506,5.712,507,4.736]],["sidebarParentCategories/70",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/71",[328,3.29]],["content/71",[302,3.562,337,1.21,339,5.307,343,4.44,396,2.286,428,5.561,453,4.899,454,5.307,455,5.561]],["sidebarParentCategories/71",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/72",[329,3.29]],["content/72",[58,1.198,66,3.997,252,2.799,328,4.439,329,4.439,337,1.412,456,4.218,457,5.437]],["sidebarParentCategories/72",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/73",[431,4.238]],["content/73",[58,1.036,231,5.284,337,1.292,423,4.001,431,6.212,433,1.757,434,2.237,458,5.716,459,5.716,460,5.284,495,5.284,496,4.961,497,5.284,498,5.284,499,4.961,500,5.284,503,4.489,507,5.284,508,5.284,509,5.716]],["sidebarParentCategories/73",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/74",[432,4.81]],["content/74",[58,1.047,152,2.759,337,1.3,423,4.04,431,4.184,432,4.749,433,1.774,434,2.259,461,5.772,462,5.772,463,6.713,495,5.335,496,5.009,497,5.335,498,5.335,499,5.009,500,5.335,503,4.532,507,5.335,508,5.335,509,5.772,510,5.772]],["sidebarParentCategories/74",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/75",[433,1.469,434,1.87]],["content/75",[2,0.848,3,1.4,18,2.594,22,3.04,25,1.445,55,0.728,58,0.649,93,2.061,110,2.695,112,2.061,146,1.541,148,2.222,157,3.308,163,2.424,165,3.105,170,2.505,233,3.105,238,1.776,243,2.505,247,2.424,252,1.516,259,2.81,269,2.944,296,3.55,337,0.938,338,1.593,364,1.379,389,2.222,395,1.848,413,2.351,433,2.098,434,2.672,444,2.944,464,2.944,465,2.111,466,4.312,467,2.594,470,2.505,472,4.312,480,2.284,481,4.312,483,4.312,485,2.944,486,2.944,511,3.989,512,2.351,513,3.989,514,6.31,515,3.578,516,3.989,517,3.989,518,3.989,519,3.989,520,3.989,521,3.989,522,1.776,523,3.668,524,3.989,525,2.695,526,2.944,527,3.989,528,2.944,529,3.989,530,3.578,531,2.505,532,2.424,533,3.989,534,3.989]],["sidebarParentCategories/75",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/76",[337,0.855,369,3.931]],["content/76",[2,1.484,19,3.605,326,3.232,337,1.367,341,3.692,364,2.413,371,4.915,372,4.915,389,3.887,433,2.347,434,2.45,467,4.538,489,3.995,490,5.432]],["sidebarParentCategories/76",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/63",[424,4.403]],["content/63",[]],["sidebarParentCategories/63",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/64",[396,1.978]],["content/64",[3,2.53,115,3.209,173,4.379,238,3.209,341,3.813,396,2.186,447,5.318,448,5.61,449,5.61,450,5.61,451,5.61,452,5.318,470,4.524]],["sidebarParentCategories/64",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/65",[328,3.29]],["content/65",[302,3.562,337,1.21,339,5.307,343,4.44,396,2.286,428,5.561,453,4.899,454,5.307,455,5.561]],["sidebarParentCategories/65",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/66",[329,3.29]],["content/66",[58,1.198,66,3.997,252,2.799,328,4.439,329,4.439,337,1.412,456,4.218,457,5.437]],["sidebarParentCategories/66",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/67",[433,1.469,434,1.87]],["content/67",[2,1.215,3,2.005,25,2.068,58,0.929,110,3.859,112,2.951,115,2.543,146,2.206,163,3.471,170,3.586,238,2.543,243,3.586,259,4.023,269,4.216,296,4.557,410,4.447,421,6.218,433,1.575,434,2.005,464,4.216,465,3.023,469,4.736,470,3.586,535,5.124,536,4.42,537,5.712,538,5.124,539,6.727,540,2.135,541,3.586,542,5.712,543,2.951,544,3.859]],["sidebarParentCategories/67",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/68",[337,0.855,369,3.931]],["content/68",[2,1.484,19,3.605,326,3.232,337,1.367,341,3.692,364,2.413,371,4.915,372,4.915,389,3.887,433,2.347,434,2.45,467,4.538,489,3.995,490,5.432]],["sidebarParentCategories/68",[102,0.748,206,0.898,337,0.523,396,0.988]],["title/60",[70,1.788,71,1.87]],["content/60",[22,2.758,66,3.747,69,3.567,70,2.317,71,2.424,295,5.725,322,2.856,337,1.109,402,2.352,433,1.904,434,2.424,545,4.196,546,4.864,547,5.714,548,6.585]],["sidebarParentCategories/60",[102,0.883,206,1.06,337,0.617]],["title/61",[489,3.05,549,5.327]],["content/61",[]],["sidebarParentCategories/61",[102,0.883,206,1.06,337,0.617]],["title/62",[200,1.32,322,1.273,327,1.519,547,2.079,550,3.077,551,2.76]],["content/62",[6,2.05,38,2.998,55,1.813,58,0.963,91,2.326,95,2.099,149,1.845,152,1.742,222,3.368,224,2.394,296,2.469,302,1.921,351,2.099,364,2.047,416,2.326,482,2.551,489,2.326,543,2.099,544,4.719,551,5.311,552,4.062,553,4.062,554,4.062,555,4.062,556,4.062,557,4.062,558,4.062,559,4.062,560,4.062,561,4.062,562,2.394,563,4.062,564,4.062,565,4.062,566,4.062,567,4.062,568,4.062,569,4.062,570,4.062,571,4.062,572,4.062,573,5.311,574,2.744,575,3.163,576,3.644,577,3.163,578,3.644,579,2.998,580,3.644,581,3.644,582,4.062,583,4.062,584,1.921,585,4.062,586,4.062,587,2.862,588,3.644,589,2.05,590,3.644,591,3.644,592,3.644,593,3.644]],["sidebarParentCategories/62",[102,0.883,206,1.06,337,0.617]],["title/77",[547,4.403]],["content/77",[70,2.472,71,2.586,117,3.718,183,6.108,284,2.586,324,3.218,338,2.943,364,2.547,413,4.341,547,4.976,594,6.108]],["sidebarParentCategories/77",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/78",[284,1.37,305,1.391,434,1.37,595,3.499]],["content/78",[55,1.832,105,4.247,282,6.067,305,2.411,327,3.338,434,2.375,595,6.067,596,7.491,597,8.351,598,6.763,599,6.763]],["sidebarParentCategories/78",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/79",[93,2.015,327,1.925,600,3.499,601,3.499]],["content/79",[55,1.809,93,4.01,105,3.782,170,3.782,224,3.55,327,2.973,364,2.083,481,4.446,596,6.963,600,5.404,601,7.705,602,4.874,603,3.661,604,6.024,605,3.112,606,6.024,607,5.404,608,6.024,609,6.024]],["sidebarParentCategories/79",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/80",[296,2.371,402,1.329,605,2.015,610,3.235]],["content/80",[4,5.32,55,1.734,71,2.399,73,4.153,111,3.806,220,4.444,296,4.153,402,2.328,433,1.884,434,2.399,605,3.53,610,5.666,611,6.833,612,6.129,613,6.833]],["sidebarParentCategories/80",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/81",[433,0.949,434,1.208,547,2.324,605,1.777,614,3.44]],["content/81",[8,0.811,34,1.05,55,1.556,58,0.307,62,0.858,70,1.67,71,2.4,91,1.082,105,1.187,146,0.73,149,0.858,156,1.472,170,2.024,211,1.277,220,1.229,224,1.114,252,1.224,296,2.56,305,0.674,326,0.876,327,1.591,338,0.755,345,1.954,362,0.811,364,1.114,389,1.053,393,1.187,402,0.644,433,1.161,434,1.479,444,5.045,465,1,467,1.229,470,1.187,481,3.109,483,2.379,484,0.73,486,5.045,515,1.696,547,4.618,573,1.696,574,1.277,575,1.472,576,1.696,577,1.472,578,1.696,579,1.395,580,1.696,581,1.696,587,1.332,588,1.696,589,1.627,590,1.696,591,1.696,592,1.696,593,1.696,610,1.568,612,1.696,615,1.89,616,1.696,617,1.89,618,5.583,619,1.89,620,1.696,621,1.89,622,4.212,623,4.212,624,4.212,625,4.212,626,1.89,627,1.89,628,1.89,629,3.223,630,1.89,631,3.673,632,4.212,633,4.976,634,1.89,635,1.89,636,6.835,637,3.223,638,1.89,639,4.212,640,1.89,641,1.89,642,5.583,643,1.89,644,4.212,645,1.89,646,1.89,647,2.891,648,1.89,649,4.212,650,1.89,651,1.89,652,4.976,653,4.976,654,4.976,655,4.212,656,4.976,657,4.976,658,6.835,659,1.89,660,4.212,661,1.89,662,4.212,663,1.89,664,4.212,665,1.89,666,1.696,667,3.223,668,1.89,669,1.89,670,1.89,671,1.89,672,1.89,673,1.89,674,1.89,675,4.464,676,1.696,677,1.395,678,1.696,679,0.782,680,1.89,681,1.696,682,1.696,683,1.89,684,1.89,685,1.89,686,1.89,687,1.89,688,1.696]],["sidebarParentCategories/81",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/83",[548,5.074]],["content/83",[22,1.247,55,1.595,68,1.694,70,2.443,71,2.556,91,2.78,102,0.717,189,2.862,211,4.025,239,3.28,252,1.845,261,1.788,284,1.096,294,2.199,296,1.898,305,1.731,323,1.247,327,2.396,337,0.957,355,1.476,364,1.679,397,2.396,402,1.064,433,1.339,434,1.705,466,2.305,472,5.373,484,1.206,526,2.305,528,2.305,540,1.167,544,2.109,546,3.42,548,5.232,589,3.007,620,4.356,675,6.914,676,2.801,678,2.801,679,2.464,681,2.801,682,2.801,688,2.801,689,2.801,690,3.122,691,4.856,692,1.541,693,3.122,694,2.109,695,2.431,696,3.122,697,3.122,698,5.958,699,0.69,700,3.122,701,2.801,702,3.122,703,3.122,704,3.122,705,2.305,706,1.84,707,3.122,708,2.801,709,3.122,710,4.026,711,2.199,712,2.589,713,4.856,714,3.122,715,2.705,716,2.589,717,3.122,718,1.84,719,2.199,720,4.856,721,4.856]],["sidebarParentCategories/83",[70,0.948,71,0.992,102,0.649,206,0.779,337,0.454]],["title/82",[337,1.046]],["content/82",[2,1.35,3,1.571,8,2.722,18,2.91,22,2.535,34,1.458,62,2.032,70,1.502,71,1.571,73,2.719,106,3.536,115,1.993,168,2.428,173,2.719,220,2.91,284,2.228,290,3.71,302,2.116,322,2.625,323,1.788,324,2.773,326,2.073,337,1.361,340,2.91,350,3.023,362,3.775,364,2.93,395,2.073,396,2.238,398,3.303,401,5.263,403,3.152,406,4.014,407,4.014,408,3.303,409,3.303,410,3.484,411,2.81,412,4.014,413,2.637,414,3.303,415,3.71,416,3.634,722,4.475,723,3.023]],["sidebarParentCategories/82",[]],["title/89",[322,2.696]],["content/89",[66,3.868,69,3.682,70,2.392,71,2.503,91,4.081,103,3.302,230,4.635,232,4.476,322,2.948,337,1.144,362,3.698,363,3.772,364,2.465]],["sidebarParentCategories/89",[102,1.078,206,1.294]],["title/90",[252,1.711,337,0.723,402,1.534]],["content/90",[2,1.969,58,0.937,69,2.976,70,2.993,71,2.952,106,3.209,252,2.189,310,3.299,327,3.722,329,3.806,337,0.925,395,2.669,402,1.962,433,1.589,434,2.023,543,2.976,724,4.777,725,5.168,726,6.765,727,5.168,728,5.168,729,5.761,730,5.168,731,5.761]],["sidebarParentCategories/90",[102,1.078,206,1.294]],["title/91",[322,2.203,512,3.139]],["content/91",[8,2.023,17,2.185,34,1.537,36,2.495,55,1.696,58,1.071,68,3.574,69,1.554,70,2.21,71,2.665,91,1.723,93,1.554,111,1.676,189,2.78,222,3.911,252,1.143,254,1.723,265,2.185,271,2.495,292,2.221,322,1.951,323,2.324,327,2.328,328,2.937,329,2.937,345,1.182,388,2.701,402,1.607,408,2.221,409,2.221,411,2.962,456,1.723,475,2.033,482,1.889,483,4.862,512,2.78,543,1.554,545,1.828,577,2.342,616,4.231,692,1.485,719,2.119,730,2.699,732,3.009,733,3.009,734,3.009,735,3.009,736,3.009,737,1.394,738,5.818,739,3.009,740,1.828,741,3.009,742,3.009,743,3.009,744,1.223,745,2.701,746,3.009,747,2.342,748,2.699,749,3.009,750,3.009,751,3.009,752,5.818,753,3.009,754,2.699,755,2.033,756,3.009,757,4.717,758,4.231,759,4.717,760,3.009,761,5.818,762,3.009,763,3.009,764,4.717,765,3.009,766,3.009,767,2.495,768,3.009]],["sidebarParentCategories/91",[102,1.078,206,1.294]],["title/92",[31,0.983,284,1.581,324,1.968]],["content/92",[2,1.685,31,1.975,50,1.549,55,1.79,58,1.012,62,2.324,69,1.727,70,1.122,71,1.174,81,3.458,84,1.914,87,0.618,89,2.709,103,1.549,104,2.355,117,1.688,140,2.371,146,1.291,172,2.371,189,1.971,210,1.553,212,2.355,220,2.174,238,1.489,251,2.603,284,1.174,310,1.914,322,1.383,345,2.01,355,3.295,363,1.769,364,1.156,373,2.778,374,3.365,396,1.015,402,1.744,441,2.174,540,1.914,744,2.832,769,2.999,770,1.914,771,3.343,772,3.343,773,4.376,774,5.143,775,3.782,776,2.999,777,3.214,778,4.244,779,2.195,780,3.343,781,2.999]],["sidebarParentCategories/92",[102,1.078,206,1.294]],["title/93",[241,2.929,284,1.581,324,1.968]],["content/93",[2,1.575,6,2.274,31,1.615,34,1.468,55,1.656,69,2.327,70,1.512,71,1.582,103,2.954,117,2.274,146,1.74,168,2.445,241,5.525,247,2.738,248,2.93,252,2.423,259,3.173,284,2.599,297,4.041,311,3.325,324,1.968,345,2.505,347,3.295,360,2.58,379,2.93,380,3.507,381,4.814,382,4.492,456,2.58,473,3.173,769,4.041,774,3.325,782,4.505,783,5.215,784,4.492,785,4.492,786,4.505,787,4.041,788,3.736,789,4.505,790,4.505]],["sidebarParentCategories/93",[102,1.078,206,1.294]],["title/94",[31,1.162,50,2.467]],["content/94",[31,1.857,50,3.232,55,1.791,402,2.377,540,2.608,744,2.836,779,2.992,791,6.977,792,3.995,793,3.444,794,6.259]],["sidebarParentCategories/94",[102,1.078,206,1.294]],["title/95",[95,2.327,391,3.172,795,3.324]],["content/95",[2,1.633,31,1.967,34,1.571,50,3.557,55,1.833,69,1.598,70,1.038,71,1.692,81,3.256,140,2.233,163,2.929,172,2.233,210,1.463,252,1.831,310,1.771,318,2.685,345,1.893,373,2.616,374,3.229,379,2.012,380,2.408,381,3.135,396,0.939,402,1.642,540,1.802,723,2.09,744,2.718,773,4.199,774,4.935,775,3.629,777,3.027,778,3.997,781,2.775,783,3.395,784,3.395,785,3.395,787,2.775,792,2.76,793,2.379,794,4.324,796,4.82,797,4.82,798,3.093,799,4.82,800,3.093,801,3.093]],["sidebarParentCategories/95",[102,1.078,206,1.294]],["title/96",[40,3.752,58,0.866]],["content/96",[2,1.679,31,1.722,42,6.545,204,5.56,205,7.081]],["sidebarParentCategories/96",[102,1.078,206,1.294]],["title/84",[87,1.205]],["content/84",[2,1.56,29,3.254,30,2.698,31,1.796,34,2.389,55,1.602,58,1.193,103,3.397,149,3.329,150,2.698,201,4.952,225,2.996,235,3.355,254,3.161,284,1.938,316,2.611,317,4.468,324,2.412,363,2.922,364,1.909,705,4.075,744,2.244,802,4.298,803,4.298,804,1.748,805,2.284,806,4.298]],["sidebarParentCategories/84",[]],["title/85",[31,0.983,55,0.822,744,1.83]],["content/85",[316,3.871,317,4.443]],["sidebarParentCategories/85",[]],["title/86",[34,1.468,55,0.822,150,1.657]],["content/86",[103,3.701,317,4.335,363,4.228,364,2.763]],["sidebarParentCategories/86",[]],["title/87",[30,1.657,55,0.822,149,2.045]],["content/87",[58,1.332,803,6.374]],["sidebarParentCategories/87",[]],["title/88",[55,0.822,804,1.426,805,1.863]],["content/88",[317,4.443,806,6.374]],["sidebarParentCategories/88",[]],["title/104",[31,1.162,744,2.165]],["content/104",[2,1.859,3,2.558,25,2.638,31,1.59,43,3.677,207,6.535,265,3.375,306,6.041,355,3.445,388,4.171,414,5.377]],["sidebarParentCategories/104",[87,1.114]],["title/105",[373,3.537]],["content/105",[31,1.491,34,2.227,35,4.291,58,1.111,78,5.677,96,2.514,116,5.32,150,2.514,210,2.073,284,2.399,324,2.985,373,4.561,584,3.231,807,5.666,808,6.129,809,4.813]],["sidebarParentCategories/105",[87,1.114]],["title/106",[777,4.092]],["content/106",[2,1.076,17,2.342,31,1.718,50,3.92,55,1.741,96,1.86,117,2.552,140,2.342,147,3.562,172,3.92,189,2.98,200,2.964,210,2.389,252,1.921,254,2.895,264,3.073,322,2.091,345,1.986,355,3.268,374,2.442,402,1.722,777,4.339,788,4.193,810,3.562,811,4.193,812,6.199,813,2.744,814,5.057,815,5.057,816,4.536,817,4.536]],["sidebarParentCategories/106",[87,1.114]],["title/107",[818,5.846]],["content/107",[58,1.198,159,4.79,172,3.412,209,5.437,210,2.235,238,3.28,475,4.976,540,2.754,543,3.805,584,4.159]],["sidebarParentCategories/107",[87,1.114]],["title/108",[819,4.81]],["content/108",[140,3.451,172,3.451,210,2.26,543,3.848,584,3.522,820,7.449,821,7.449,822,7.449,823,7.449,824,5.799]],["sidebarParentCategories/108",[87,1.114]],["title/109",[825,6.518]],["content/109",[58,1.471,62,2.211,84,3.856,111,2.713,121,2.96,140,4.05,155,5.243,210,1.478,238,2.169,252,1.85,351,3.479,388,2.789,679,2.014,711,4.744,812,4.369,816,6.041,819,3.595,826,6.735,827,6.735,828,4.87,829,4.87,830,6.735,831,4.87,832,4.369,833,4.038,834,4.87,835,4.87,836,4.369,837,4.87,838,6.735,839,3.792,840,3.595,841,4.87,842,4.87,843,4.87,844,4.87,845,4.87,846,3.792,847,4.87]],["sidebarParentCategories/109",[87,1.114]],["title/110",[848,6.518]],["content/110",[58,1.341,63,5.496,172,3.07,200,3.537,210,2.011,212,4.669,441,4.31,473,4.669,679,3.411,694,4.477,804,2.098,805,3.714,849,5.496,850,7.398,851,3.201]],["sidebarParentCategories/110",[87,1.114]],["title/111",[228,3.732]],["content/111",[31,1.377,55,1.46,58,1.301,96,2.942,172,2.924,210,1.915,228,4.579,250,5.661,295,6.631,379,4.104,385,4.104,392,4.264,474,4.914,584,2.984,852,4.34,853,4.914,854,6.311,855,6.311,856,3.425,857,6.311]],["sidebarParentCategories/111",[87,1.114]],["title/112",[858,5.074]],["content/112",[31,1.432,50,3.04,58,1.067,84,3.757,96,2.414,210,1.991,224,3.867,318,3.655,433,1.809,465,3.473,543,3.39,584,3.103,788,5.441,858,5.109,859,6.562,860,6.796,861,5.886,862,6.562,863,6.562,864,5.886,865,6.562]],["sidebarParentCategories/112",[87,1.114]],["title/113",[866,4.591]],["content/113",[30,1.805,55,1.696,58,0.798,96,2.491,150,1.805,153,3.081,182,2.809,190,2.892,210,1.489,238,2.185,254,2.809,305,1.749,316,2.32,318,2.733,345,1.927,364,1.697,374,2.369,385,3.191,392,4.573,395,2.273,433,1.353,465,4.102,679,2.029,715,2.733,851,2.369,866,3.456,867,4.068,868,6.769,869,5.613,870,2.733,871,3.82,872,4.906,873,6.769,874,5.27,875,4.068,876,3.82,877,4.068,878,4.906,879,4.906,880,4.401,881,4.906,882,4.401]],["sidebarParentCategories/113",[87,1.114]],["title/114",[883,6.518]],["content/114",[78,5.09,141,6.94,209,5.561,210,2.286,420,5.865,465,3.987,584,3.562,864,6.758]],["sidebarParentCategories/114",[87,1.114]],["title/115",[884,6.518]],["content/115",[150,2.71,209,5.437,210,2.235,326,3.412,433,2.031,541,5.523,584,3.483,885,6.108,886,7.366,887,7.366]],["sidebarParentCategories/115",[87,1.114]],["title/116",[888,6.518]],["content/116",[19,3.722,58,1.172,80,6.463,210,2.186,324,3.148,420,5.61,465,4.93,889,4.868,890,6.758,891,7.205]],["sidebarParentCategories/116",[87,1.114]],["title/117",[892,6.518]],["content/117",[170,4.677,210,2.26,544,5.032,584,3.522,747,5.799,851,3.597,893,7.449,894,7.449,895,6.177,896,6.682]],["sidebarParentCategories/117",[87,1.114]],["title/118",[896,5.846]],["content/118",[210,2.367,584,3.688,747,6.073,851,3.767,895,6.468,897,7.801]],["sidebarParentCategories/118",[87,1.114]],["title/119",[898,6.518]],["content/119",[81,3.997,141,4.606,144,4.906,146,2.285,210,1.795,212,4.167,226,6.347,305,3.036,317,3.21,373,3.21,392,3.997,433,1.631,453,3.847,694,3.997,747,4.606,856,4.89,880,5.307,895,4.906,899,5.307,900,5.916,901,7.061,902,4.367,903,5.307]],["sidebarParentCategories/119",[87,1.114]],["title/120",[904,6.518]],["content/120",[171,3.813,210,2.186,226,5.076,305,3.095,316,3.407,584,4.104,856,3.91,899,6.463,901,5.975,905,5.076,906,7.205]],["sidebarParentCategories/120",[87,1.114]],["title/121",[907,6.518]],["content/121",[59,3.887,140,3.232,171,3.692,210,2.117,226,5.996,249,4.714,373,3.786,543,3.605,584,3.299,856,4.619,882,6.259,901,5.786,908,6.977,909,6.977]],["sidebarParentCategories/121",[87,1.114]],["title/122",[910,6.518]],["content/122",[17,3.07,19,3.424,96,2.438,112,3.424,150,2.438,210,2.011,364,2.292,433,1.827,464,4.892,465,4.364,589,3.345,679,2.741,715,3.692,889,4.477,911,5.571,912,5.16,913,6.628,914,6.628,915,6.628]],["sidebarParentCategories/122",[87,1.114]],["title/123",[916,4.591]],["content/123",[2,1.604,3,2.023,25,2.087,33,3.501,34,1.877,55,1.377,58,0.937,96,2.12,111,3.209,146,2.225,210,1.748,326,2.669,330,4.252,333,3.747,336,4.058,345,2.263,360,4.318,540,2.154,813,3.126,902,4.252,916,6.521,917,5.761,918,5.761,919,6.253,920,5.566,921,4.777,922,5.168]],["sidebarParentCategories/123",[87,1.114]],["title/124",[923,5.846]],["content/124",[2,1.194,31,1.225,55,1.354,58,1.206,62,2.55,96,2.066,146,2.169,151,3.047,152,2.408,210,2.25,243,3.525,345,2.205,679,2.322,813,3.047,839,4.371,840,4.144,846,4.371,923,7.447,924,5.615,925,3.412,926,5.615,927,5.615,928,5.615,929,5.615,930,5.036,931,8.302,932,5.615,933,5.615,934,5.615,935,5.615,936,5.615,937,5.615]],["sidebarParentCategories/124",[87,1.114]],["title/125",[938,4.81]],["content/125",[2,0.945,19,2.296,22,1.776,26,3.686,30,3.231,31,1.378,55,1.153,58,0.723,59,2.476,62,2.018,96,1.635,121,2.701,146,1.717,180,2.296,189,2.62,210,1.349,219,3.46,230,2.89,252,1.689,323,1.776,331,3.46,338,2.523,345,1.746,364,1.537,400,2.701,473,3.131,484,1.717,679,1.838,692,2.194,740,2.701,813,2.412,840,3.281,856,4.766,871,3.46,890,3.46,938,5.424,939,6.093,940,5.906,941,3.281,942,5.666,943,3.281,944,3.987,945,4.918,946,6.317,947,5.238,948,3.686]],["sidebarParentCategories/125",[87,1.114]],["title/126",[949,5.846]],["content/126",[2,0.939,19,2.281,22,1.764,26,3.661,30,1.624,31,1.372,55,1.148,58,0.718,59,2.459,62,2.005,96,1.624,121,2.683,146,1.705,180,2.281,189,2.602,210,1.34,219,3.437,225,4.575,230,2.871,252,1.677,323,1.764,331,3.437,338,2.511,345,1.734,357,2.602,364,1.527,400,2.683,473,3.11,484,1.705,679,1.826,692,2.179,740,2.683,813,2.396,840,3.259,856,4.755,871,3.437,890,3.437,939,6.071,940,5.888,941,3.259,943,3.259,944,3.96,945,4.894,948,3.661,949,6.567,950,4.415,951,6.287,952,6.287,953,4.415]],["sidebarParentCategories/126",[87,1.114]],["title/127",[954,5.846]],["content/127",[19,3.494,96,2.488,121,4.11,210,2.052,347,4.314,357,4.922,589,3.414,679,2.797,710,5.608,715,3.768,718,3.986,740,4.11,856,4.532,889,4.569,954,6.067,955,6.763]],["sidebarParentCategories/127",[87,1.114]],["title/128",[956,5.074]],["content/128",[31,1.377,34,2.057,53,2.611,58,1.027,96,2.322,150,3.23,210,1.915,347,4.535,357,3.72,584,2.984,679,3.308,694,4.264,852,3.425,956,4.914,957,3.048,958,5.233,959,4.914,960,4.914,961,6.311,962,6.311,963,6.311]],["sidebarParentCategories/128",[87,1.114]],["title/129",[959,5.074]],["content/129",[58,1.078,96,2.438,210,2.011,347,4.638,374,3.201,577,5.16,584,3.134,679,3.411,956,5.16,957,3.201,958,5.496,959,5.16,960,5.16,964,6.628,965,6.628,966,6.628,967,6.628,968,6.628]],["sidebarParentCategories/129",[87,1.114]],["title/130",[960,5.074]],["content/130",[19,3.643,96,2.594,210,2.14,347,3.643,589,3.559,679,3.544,715,3.928,889,4.764,956,5.49,957,3.405,958,5.847,959,5.49,960,5.49,969,7.052]],["sidebarParentCategories/130",[87,1.114]],["title/131",[970,5.846]],["content/131",[96,2.651,210,2.186,284,2.53,347,3.722,383,6.463,679,3.59,905,5.076,970,6.463,971,7.205,972,7.205,973,7.205,974,7.205]],["sidebarParentCategories/131",[87,1.114]],["title/132",[975,6.518]],["content/132",[2,1.37,31,0.997,55,1.176,58,1.047,96,1.68,145,3.045,152,3.474,169,4.097,204,4.536,210,1.386,235,3.914,248,2.97,261,2.615,324,2.814,325,4.536,345,1.794,347,4.412,420,5.014,471,4.097,475,3.086,679,1.889,694,3.086,695,5.014,813,2.479,839,3.556,840,3.371,925,2.776,941,5.505,976,7.459,977,4.568,978,3.787,979,7.459,980,4.568,981,4.568,982,4.568,983,6.44,984,5.777,985,3.086,986,4.568,987,4.568,988,4.568]],["sidebarParentCategories/132",[87,1.114]],["title/133",[213,4.04,484,1.739,989,4.04]],["content/133",[58,1.159,96,2.622,165,5.549,197,5.91,210,2.163,347,3.682,679,2.948,905,5.021,984,6.394,989,6.394,990,7.128,991,7.128,992,7.128,993,7.128]],["sidebarParentCategories/133",[87,1.114]],["title/134",[994,5.846]],["content/134",[19,3.567,58,1.123,96,2.54,114,3.953,210,2.095,540,2.581,589,3.485,679,2.856,715,3.846,755,4.664,889,4.664,994,6.194,995,6.905,996,7.013,997,6.905,998,6.905]],["sidebarParentCategories/134",[87,1.114]],["title/135",[999,5.846]],["content/135",[31,1.491,35,4.291,58,1.367,78,4.616,96,2.514,198,4.444,210,2.073,239,4.616,324,2.985,373,3.708,584,3.231,602,4.291,808,6.129,999,6.129,1000,6.833,1001,6.129,1002,6.833]],["sidebarParentCategories/135",[87,1.114]],["title/136",[1003,5.404]],["content/136",[2,1.469,3,2.424,19,3.567,25,2.5,58,1.123,96,2.54,200,2.961,210,2.095,305,2.462,589,3.485,679,2.856,699,1.526,715,3.846,740,4.196,889,4.664,1003,5.725,1004,5.096]],["sidebarParentCategories/136",[87,1.114]],["title/97",[920,4.81]],["content/97",[]],["sidebarParentCategories/97",[31,0.839,87,0.711,744,1.563]],["title/98",[58,0.733,679,1.863,919,3.734]],["content/98",[2,1.568,25,2.67,31,1.215,55,1.818,105,3.496,210,1.689,211,3.761,333,3.621,345,3.247,540,2.081,744,2.997,773,4.63,779,2.388,813,4.001,916,5.194,919,6.114,920,4.109,921,4.616,922,4.994,957,2.689,1005,4.334,1006,4.616]],["sidebarParentCategories/98",[31,0.839,87,0.711,744,1.563]],["title/99",[34,1.736,916,3.752]],["content/99",[2,0.761,55,1.823,58,0.582,89,1.894,96,1.317,111,3.002,146,1.382,191,6.191,224,5.239,326,1.658,336,2.521,345,1.406,413,2.109,574,2.418,579,6.231,584,3.992,813,1.942,836,3.21,916,4.567,921,6.418,1007,3.579,1008,3.579,1009,3.579,1010,3.579,1011,3.579,1012,8.442,1013,8.442,1014,3.579,1015,3.579,1016,3.579,1017,3.579,1018,3.579,1019,3.579]],["sidebarParentCategories/99",[31,0.839,87,0.711,744,1.563]],["title/100",[433,1.469,920,3.931]],["content/100",[2,1.259,6,2.05,8,1.742,25,1.471,55,1.556,69,2.099,71,1.426,110,4,111,2.263,115,1.809,146,1.569,152,2.539,211,2.744,219,3.163,238,1.809,267,1.363,284,2.453,304,3.644,310,2.326,326,1.882,345,2.325,350,2.744,351,2.099,366,3.368,370,3.163,397,2.005,402,1.384,433,1.926,434,1.426,482,3.718,484,1.569,514,3.368,539,3.644,546,4.171,562,3.49,689,5.311,694,2.744,723,2.744,775,3.213,807,3.368,916,2.862,920,5.156,957,1.962,1020,4.062,1021,5.921,1022,5.921,1023,4.062,1024,4.909,1025,4.062,1026,4.062,1027,5.921,1028,4.062,1029,4.062,1030,4.37,1031,4.062,1032,4.062,1033,3.368,1034,4.062,1035,4.062]],["sidebarParentCategories/100",[31,0.839,87,0.711,744,1.563]],["title/137",[34,1.736,150,1.96]],["content/137",[29,2.935,30,1.832,31,1.492,34,2.229,50,2.307,67,2.703,87,1.265,102,1.144,103,2.307,108,3.81,115,2.218,149,2.261,150,2.516,151,3.711,152,2.136,153,3.127,162,3.877,225,2.703,230,3.239,245,5.765,251,3.877,252,2.599,260,3.127,279,3.364,284,1.749,317,2.703,324,2.176,355,2.355,363,2.636,364,2.365,397,2.458,724,4.13,744,2.024,770,2.852,852,3.711,853,3.877,856,2.703,870,2.774,1036,5.325,1037,6.135,1038,4.13]],["sidebarParentCategories/137",[87,1.114]],["title/138",[31,0.851,284,1.37,316,1.844,324,1.704]],["content/138",[8,0.761,31,1.945,34,1.913,50,1.86,55,1.81,58,0.496,69,1.576,70,1.024,71,1.071,87,0.328,108,2.657,115,1.788,140,1.414,145,1.443,150,0.653,168,0.963,172,2.209,228,1.016,238,1.359,241,4.088,245,3.967,247,2.441,248,1.985,252,0.674,263,0.963,284,1.41,318,2.994,322,1.973,323,1.219,325,2.15,333,4.088,347,1.576,351,2.464,355,2.255,360,1.747,373,2.588,374,1.474,379,1.154,381,3.818,382,2.15,395,0.822,397,1.506,402,1.368,405,1.114,522,0.79,540,2.009,546,1.249,589,1.54,602,1.114,744,1.938,755,2.713,770,1.747,773,1.916,775,1.656,777,1.916,779,3.089,783,2.15,784,2.15,785,1.249,792,2.731,793,2.354,809,2.15,852,3.186,1036,5.168,1037,2.737,1039,1.591,1040,1.591,1041,1.591,1042,1.591,1043,2.252,1044,3.713,1045,2.062,1046,2.524,1047,1.591,1048,1.591,1049,1.591,1050,1.381,1051,1.381,1052,1.381,1053,1.591,1054,1.078,1055,1.471,1056,1.471,1057,1.985,1058,1.471,1059,1.249,1060,1.381,1061,2.252,1062,2.53,1063,1.471,1064,1.471,1065,1.471,1066,1.471]],["sidebarParentCategories/138",[87,1.114]],["title/139",[806,3.506,852,2.444,925,2.737]],["content/139",[31,1.76,34,1.727,52,4.754,55,1.731,88,4.754,89,2.805,95,3.686,105,3.328,119,4.336,150,1.95,151,2.876,245,5.266,284,1.861,397,2.616,584,2.506,589,2.675,602,3.328,779,3.06,792,3.034,793,2.616,852,2.876,1038,4.394,1043,3.912,1046,2.805,1057,4.64,1059,3.733,1067,5.3,1068,5.3,1069,7.135,1070,5.3,1071,4.126,1072,4.394]],["sidebarParentCategories/139",[87,1.114]],["title/140",[150,1.132,512,1.814,940,2.271,1073,2.76,1074,2.168,1075,2.552]],["content/140",[6,1.846,29,2.156,30,1.346,31,1.592,34,1.192,55,1.795,58,0.891,89,1.936,96,1.346,101,2.848,102,0.84,108,2.038,117,1.846,126,3.281,145,1.73,149,1.661,150,2.684,151,1.985,152,1.569,159,2.379,191,2.379,198,2.379,225,1.985,238,1.629,254,2.094,263,1.985,351,1.89,357,2.156,374,1.766,414,2.7,416,2.094,417,2.848,473,4.628,522,1.629,579,2.7,692,1.805,779,1.569,852,2.973,870,2.038,925,3.33,945,4.266,1036,2.848,1046,1.936,1054,2.223,1057,3.563,1074,2.577,1075,3.033,1076,3.658,1077,5.893,1078,2.577,1079,3.658,1080,3.033,1081,4.543,1082,3.033,1083,3.033,1084,2.577,1085,3.033,1086,4.266,1087,3.033,1088,2.848,1089,2.7,1090,2.848,1091,3.033,1092,2.848,1093,2.848,1094,2.848,1095,3.033,1096,2.848]],["sidebarParentCategories/140",[87,1.114]],["title/141",[95,2.015,391,2.748,795,2.879,1097,3.499]],["content/141",[2,0.541,31,1.868,34,0.828,35,0.903,50,1.177,55,1.853,58,0.555,87,0.266,89,0.761,95,0.743,96,0.529,101,1.12,108,1.902,115,0.64,117,0.726,140,1.177,145,0.68,150,1.517,151,0.78,152,0.617,168,0.78,172,1.582,198,0.935,228,0.823,238,1.521,241,3.062,245,2.52,247,2.075,248,1.653,252,0.546,254,0.823,263,0.78,279,0.972,284,1.199,318,2.623,333,3.656,341,1.345,345,0.565,347,0.743,355,1.949,360,1.455,364,0.497,373,2.237,374,1.649,379,0.935,381,2.681,382,1.013,397,0.71,402,0.866,413,0.848,484,0.982,522,1.132,540,1.541,579,1.061,584,0.68,589,1.283,602,0.903,679,0.595,692,0.71,744,1.676,770,1.455,773,2.144,774,1.061,775,1.853,776,1.29,777,1.596,779,3.106,783,2.405,784,2.405,785,1.79,792,2.978,793,3.11,795,1.061,809,1.79,819,1.061,824,1.12,852,2.237,870,0.801,912,1.12,1036,2.658,1040,2.28,1041,1.29,1042,1.29,1043,1.876,1044,3.21,1045,1.717,1046,2.753,1047,2.28,1048,1.29,1049,1.29,1050,1.12,1051,1.12,1052,1.12,1054,0.874,1056,1.193,1057,3.892,1058,1.193,1059,2.405,1060,1.12,1061,1.876,1062,2.107,1064,1.193,1065,1.193,1066,1.193,1071,1.12,1072,1.193,1080,1.193,1081,2.107,1082,1.193,1083,1.193,1084,1.013,1085,1.193,1086,1.979,1087,1.193,1088,1.12,1089,1.061,1090,1.12,1091,1.193,1092,1.12,1093,1.12,1094,1.12,1095,1.193,1096,1.12,1098,1.193,1099,1.29,1100,1.193,1101,1.29,1102,1.29,1103,1.12,1104,2.28,1105,1.29,1106,2.28,1107,1.438,1108,1.438,1109,1.438,1110,1.438,1111,1.438,1112,1.438,1113,1.438,1114,1.438,1115,1.438,1116,1.438,1117,1.438,1118,1.438]],["sidebarParentCategories/141",[87,1.114]],["title/142",[40,3.752,58,0.866]],["content/142",[145,4.244,150,2.804,263,4.135,1053,6.836,1054,4.631,1055,6.319,1063,6.319]],["sidebarParentCategories/142",[87,1.114]],["title/174",[30,1.96,149,2.419]],["content/174",[30,3.397,31,1.455,34,1.564,50,2.223,53,1.985,58,0.781,67,2.604,87,1.233,102,1.102,103,2.223,108,2.674,115,2.137,118,4.81,119,5.03,145,3.152,149,3.478,150,1.766,151,2.604,172,2.223,182,2.748,230,3.121,237,2.829,251,3.737,252,2.533,260,3.014,284,1.685,317,2.604,324,2.097,355,2.269,363,2.54,364,2.305,385,3.121,397,2.369,705,3.542,724,3.98,740,2.917,744,1.951,770,2.748,803,3.737,856,2.604,985,3.242]],["sidebarParentCategories/174",[87,1.114]],["title/175",[31,0.851,284,1.37,316,1.844,324,1.704]],["content/175",[2,0.292,8,0.589,17,0.636,30,0.505,31,1.789,34,0.795,50,1.524,55,1.745,58,0.891,67,1.323,68,0.745,69,1.7,70,0.461,71,0.856,87,0.608,96,0.505,105,0.862,108,1.833,115,2.033,118,3.866,119,3.328,121,0.834,132,1.069,140,1.524,168,2.163,172,1.847,180,0.709,182,0.786,211,0.927,220,0.893,224,2.691,227,1.718,228,2.282,238,1.465,241,3.561,247,4.064,248,1.586,252,0.521,260,0.862,284,1.155,310,0.786,318,3.05,322,1.361,323,0.974,327,1.624,328,1.231,329,1.231,330,2.428,333,3.797,337,0.391,345,0.958,347,1.7,355,1.885,360,1.396,364,1.138,373,2.163,374,1.925,379,3.288,380,1.069,381,2.969,382,1.718,389,0.765,392,0.927,393,0.862,395,0.636,397,0.677,402,1.121,413,0.809,414,1.8,416,1.396,456,1.396,457,1.8,465,0.726,540,1.49,545,0.834,546,0.967,547,0.927,548,1.069,589,1.231,602,0.862,603,0.834,679,1.009,711,1.718,715,1.358,744,1.856,745,0.786,770,1.884,773,1.531,775,1.785,777,1.531,779,2.504,783,1.718,784,1.718,785,2.317,792,1.396,793,1.967,809,3.216,852,0.745,853,1.898,856,0.745,858,1.898,861,2.187,866,1.718,869,2.022,874,2.561,875,2.022,876,1.898,877,2.022,938,1.8,947,2.022,1039,1.231,1043,1.8,1044,3.103,1045,1.647,1046,1.29,1050,1.069,1051,1.898,1052,1.069,1119,1.231,1120,3.576,1121,2.187,1122,1.231,1123,2.951,1124,2.187,1125,1.231,1126,1.231,1127,1.231,1128,1.372,1129,1.231,1130,2.438,1131,1.138,1132,2.438,1133,5.476,1134,1.231,1135,1.372,1136,1.069,1137,1.231,1138,1.231,1139,1.231]],["sidebarParentCategories/175",[87,1.114]],["title/176",[30,1.266,182,1.97,318,1.916,385,2.237,405,2.16]],["content/176",[11,3.315,17,2.273,29,2.892,30,3.074,31,1.477,34,1.599,55,1.655,62,3.074,118,5.247,149,3.074,182,2.809,305,1.749,357,2.892,385,5.434,395,2.273,416,3.876,541,4.25,679,2.029,715,2.733,745,2.809,779,2.903,792,3.876,1127,6.072,1140,4.906,1141,4.401,1142,4.401,1143,4.401,1144,3.621,1145,3.82,1146,4.068,1147,4.401,1148,4.401,1149,4.401,1150,4.068]],["sidebarParentCategories/176",[87,1.114]],["title/177",[30,1.435,806,3.037,940,2.879,1074,2.748]],["content/177",[30,3.246,31,0.983,55,1.796,78,4.308,89,3.375,96,1.658,112,2.327,119,3.876,189,2.655,238,2.84,311,3.325,336,3.173,374,2.176,416,2.58,543,2.327,692,2.224,779,1.932,792,2.58,793,2.224,809,3.173,856,3.461,925,2.738,940,3.325,1001,4.041,1074,3.173,1084,3.173,1092,3.507,1094,3.507,1096,3.507,1131,3.736,1151,4.041,1152,3.736,1153,4.505,1154,4.041,1155,4.041,1156,4.041,1157,4.041,1158,4.041,1159,4.041,1160,4.041,1161,3.736,1162,5.721,1163,4.041,1164,4.041,1165,4.041]],["sidebarParentCategories/177",[87,1.114]],["title/178",[30,1.657,149,2.045,1073,4.04]],["content/178",[30,1.728,31,1.025,34,1.531,55,1.809,59,2.617,96,1.728,118,4.755,119,2.855,150,2.786,212,3.309,237,2.768,322,1.943,362,2.014,363,2.486,393,2.949,397,2.318,398,3.467,433,1.295,441,3.055,522,2.925,541,4.755,543,3.393,584,3.105,779,2.014,792,2.69,1144,3.467,1145,3.657,1152,3.895,1166,3.309,1167,5.334,1168,4.214,1169,4.847,1170,4.214,1171,3.055,1172,3.895,1173,4.214,1174,4.214,1175,4.214]],["sidebarParentCategories/178",[87,1.114]],["title/179",[95,2.015,391,2.748,795,2.879,1097,3.499]],["content/179",[2,0.385,11,0.666,30,1.332,31,1.677,34,0.589,35,0.619,50,0.838,55,1.852,58,0.294,89,1.326,95,0.934,96,0.363,101,0.767,108,1.395,115,0.439,117,0.498,118,3.414,119,2.476,140,0.838,145,0.466,149,0.448,150,0.922,151,0.535,152,0.423,168,0.535,172,1.16,182,0.564,198,0.641,228,1.035,237,0.581,238,1.612,241,2.65,247,1.885,248,1.176,252,0.375,254,0.564,263,0.535,279,0.666,284,0.879,305,0.351,318,2.27,333,3.142,341,0.957,345,0.387,347,0.509,355,1.467,360,1.035,373,1.684,374,1.968,379,1.176,381,2.018,382,1.274,385,2.91,397,0.487,402,0.616,413,0.581,433,0.499,453,1.176,484,0.381,522,0.439,540,1.16,541,2.273,543,0.934,562,0.581,584,1.712,589,0.913,602,1.135,679,0.408,692,0.892,715,1.395,744,1.261,748,0.884,755,0.666,770,1.035,773,1.573,774,0.728,775,1.359,777,1.135,779,3.113,783,1.764,784,1.764,785,1.764,792,3.397,793,3.382,795,0.728,809,2.55,819,0.728,824,0.767,852,0.535,856,0.535,858,0.767,866,1.274,869,1.499,870,0.549,874,1.408,875,1.499,876,1.408,877,1.499,912,0.767,938,1.849,947,1.499,1043,1.335,1044,2.415,1045,1.222,1046,2.156,1050,0.767,1051,1.408,1052,0.767,1054,0.599,1056,0.817,1057,3.142,1059,1.764,1060,0.767,1061,0.728,1062,0.817,1071,0.767,1074,0.694,1075,0.817,1080,0.817,1081,0.817,1082,0.817,1084,1.274,1085,0.817,1086,1.408,1087,0.817,1088,0.767,1089,0.728,1090,0.767,1091,0.817,1092,1.408,1093,0.767,1094,0.767,1095,0.817,1096,0.767,1098,0.817,1099,0.884,1100,0.817,1101,0.884,1102,0.884,1103,0.767,1104,1.622,1105,0.884,1106,2.783,1119,1.622,1120,2.783,1121,1.622,1122,0.884,1123,1.622,1124,1.622,1125,0.884,1126,0.884,1131,0.817,1137,1.622,1138,0.884,1139,0.884,1142,0.884,1143,0.884,1144,1.335,1145,1.408,1146,0.817,1147,0.884,1148,0.884,1149,0.884,1150,0.817,1154,0.884,1155,0.884,1156,0.884,1157,0.884,1158,0.884,1159,0.884,1160,0.884,1161,0.817,1162,1.622,1163,0.884,1164,0.884,1165,0.884,1167,1.764,1168,0.884,1169,1.335,1170,0.884,1171,0.641,1172,0.817,1173,0.884,1174,0.884,1175,0.884,1176,0.986,1177,0.986,1178,0.986,1179,0.986,1180,0.986,1181,1.808,1182,0.986,1183,0.986,1184,0.986,1185,0.986,1186,0.986,1187,0.986,1188,0.986,1189,0.986,1190,0.986,1191,0.986,1192,0.986,1193,0.986,1194,1.808,1195,0.986,1196,0.884,1197,0.986,1198,0.986,1199,0.986,1200,0.986,1201,0.986,1202,0.986,1203,0.986,1204,0.986,1205,0.986,1206,0.986,1207,0.986]],["sidebarParentCategories/179",[87,1.114]],["title/180",[40,3.752,58,0.866]],["content/180",[30,3.28,145,4.215,149,4.048,237,4.44,803,5.865,985,5.09]],["sidebarParentCategories/180",[87,1.114]],["title/181",[398,3.931,603,3.237]],["content/181",[30,3.134,53,2.124,77,3.121,89,3.696,172,3.235,182,4.544,267,2.344,305,1.831,316,2.428,318,4.745,363,3.696,405,3.224,422,4.606,465,4.507,489,2.94,540,1.92,810,3.617,1046,3.696,1208,5.135,1209,4.606,1210,7.119,1211,5.437,1212,3.998,1213,3.617,1214,5.135,1215,5.135,1216,5.135,1217,4.606,1218,5.135,1219,4.606,1220,5.135]],["sidebarParentCategories/181",[87,1.114]],["title/101",[58,0.634,69,2.015,805,1.613,1221,3.499]],["content/101",[32,2.475,36,5.948,58,1.317,77,3.247,115,3.194,134,4.159,146,2.064,168,2.899,173,3.247,179,3.247,180,2.76,200,3.712,267,1.793,315,3.257,323,2.134,337,0.858,355,2.526,416,3.059,417,4.159,433,1.978,434,2.519,679,2.21,706,3.149,804,1.691,805,2.21,850,6.435,1134,4.792,1221,6.435,1222,5.342,1223,5.342,1224,5.342,1225,3.763,1226,5.342]],["sidebarParentCategories/101",[87,1.114]],["title/102",[315,2.045,337,0.723,804,1.426]],["content/102",[62,3.345,66,3.997,212,5.189,315,3.345,337,1.183,362,3.159,423,4.625,424,4.976,441,4.79,468,5.735,804,2.332]],["sidebarParentCategories/102",[87,1.114]],["title/103",[58,0.634,267,1.309,315,1.771,804,1.235]],["content/103",[2,1.185,30,1.376,31,1.721,50,1.733,55,1.833,140,1.733,172,1.733,200,2.389,210,1.135,239,3.764,252,1.421,315,3.023,336,2.635,345,2.188,355,2.634,373,2.03,374,1.806,375,3.355,402,1.274,540,1.398,602,2.349,605,1.932,666,3.355,723,2.527,744,2.264,773,3.498,775,3.023,777,2.349,778,3.102,779,2.855,804,2.712,813,2.03,817,3.355,818,3.355,819,2.761,824,2.912,943,2.761,1006,4.62,1227,6.658,1228,3.741,1229,3.741,1230,5.572,1231,3.741,1232,3.741,1233,3.741,1234,2.349,1235,3.741,1236,3.741,1237,3.741,1238,3.741,1239,3.102]],["sidebarParentCategories/103",[87,1.114]],["title/150",[322,1.863,423,2.828,804,1.426]],["content/150",[]],["sidebarParentCategories/150",[87,0.711,804,1.218,805,1.591]],["title/151",[403,4.591]],["content/151",[22,2.702,153,4.247,302,3.198,315,3.071,343,3.986,421,5.608,470,4.247,472,4.992,479,4.764,499,5.265,503,4.764,523,4.247,525,4.569,531,4.247,804,2.141,1240,4.992,1241,6.067,1242,6.067,1243,5.608]],["sidebarParentCategories/151",[87,0.711,804,1.218,805,1.591]],["title/152",[58,0.501,316,1.455,337,0.494,338,1.229,402,1.048,503,2.168]],["content/152",[]],["sidebarParentCategories/152",[87,0.711,804,1.218,805,1.591]],["title/153",[35,1.748,153,1.748,496,2.167,1244,2.783,1245,2.783,1246,2.783,1247,2.783]],["content/153",[337,1.21,431,4.899,485,5.561,503,5.307,508,7.872,510,6.758,1248,7.534]],["sidebarParentCategories/153",[87,0.711,804,1.218,805,1.591]],["title/154",[22,1.374,315,1.562,338,1.374,405,2.16,804,1.089]],["content/154",[22,3.08,315,3.501,433,2.126,434,2.707,531,4.841,804,2.441,1240,5.69]],["sidebarParentCategories/154",[87,0.711,804,1.218,805,1.591]],["title/155",[338,1.374,433,0.949,434,1.208,523,2.16,1249,2.853]],["content/155",[433,2.126,523,4.841,525,5.208,526,5.69,528,5.69,1250,6.393,1251,5.431]],["sidebarParentCategories/155",[87,0.711,804,1.218,805,1.591]],["title/156",[22,1.374,315,1.562,338,1.374,804,1.089,1252,2.853]],["content/156",[22,2.451,43,3.097,55,1.12,67,3.33,108,3.418,252,2.331,302,4.319,316,2.901,337,1.261,338,3.138,343,3.616,362,2.631,363,3.247,402,2.09,433,1.692,489,3.513,531,3.853,532,3.729,631,4.529,1213,4.322,1251,4.322,1253,7.046,1254,4.777]],["sidebarParentCategories/156",[87,0.711,804,1.218,805,1.591]],["title/157",[338,1.558,480,2.233,482,2.449,1255,3.235]],["content/157",[55,1.376,433,2.077,485,5.561,486,5.561,631,5.561,1251,5.307,1254,5.865,1256,7.534,1257,7.534]],["sidebarParentCategories/157",[87,0.711,804,1.218,805,1.591]],["title/143",[322,1.863,468,3.506,804,1.426]],["content/143",[22,3.08,397,3.805,425,5.431,426,6.002,436,6.916,587,5.431,603,4.685]],["sidebarParentCategories/143",[87,0.711,804,1.218,805,1.591]],["title/144",[403,4.591]],["content/144",[22,2.847,315,3.237,470,4.476,472,5.261,479,5.021,523,4.476,525,4.815,531,4.476,804,2.257,1240,5.261,1241,6.394,1242,6.394,1243,5.91,1258,7.128]],["sidebarParentCategories/144",[87,0.711,804,1.218,805,1.591]],["title/145",[58,0.501,316,1.455,337,0.494,338,1.229,402,1.048,440,1.932]],["content/145",[337,1.283,431,5.195,440,5.016,463,6.624]],["sidebarParentCategories/145",[87,0.711,804,1.218,805,1.591]],["title/146",[22,1.374,315,1.562,338,1.374,405,2.16,804,1.089]],["content/146",[22,3.08,315,3.501,433,2.126,434,2.707,531,4.841,804,2.441,1240,5.69]],["sidebarParentCategories/146",[87,0.711,804,1.218,805,1.591]],["title/147",[338,1.374,433,0.949,434,1.208,523,2.16,1249,2.853]],["content/147",[433,2.126,523,4.841,525,5.208,526,5.69,528,5.69,1250,6.393,1251,5.431]],["sidebarParentCategories/147",[87,0.711,804,1.218,805,1.591]],["title/148",[22,1.374,315,1.562,338,1.374,804,1.089,1252,2.853]],["content/148",[22,2.451,43,3.097,55,1.12,67,3.33,108,3.418,252,2.331,302,4.319,316,2.901,337,1.261,338,3.138,343,3.616,362,2.631,363,3.247,402,2.09,433,1.692,489,3.513,531,3.853,532,3.729,631,4.529,1213,4.322,1251,4.322,1253,7.046,1254,4.777]],["sidebarParentCategories/148",[87,0.711,804,1.218,805,1.591]],["title/149",[338,1.558,480,2.233,482,2.449,1255,3.235]],["content/149",[55,1.376,433,2.077,485,5.561,486,5.561,631,5.561,1251,5.307,1254,5.865,1259,7.534,1260,7.534]],["sidebarParentCategories/149",[87,0.711,804,1.218,805,1.591]],["title/158",[322,1.863,424,3.042,804,1.426]],["content/158",[]],["sidebarParentCategories/158",[87,0.711,804,1.218,805,1.591]],["title/159",[22,1.799,115,2.005,403,3.172]],["content/159",[4,5.16,17,3.07,238,3.672,322,2.741,337,1.324,370,5.16,424,6.065,470,5.178,514,5.496,525,4.477,745,3.795,1098,5.496,1211,5.16,1261,6.628,1262,6.628,1263,6.628]],["sidebarParentCategories/159",[87,0.711,804,1.218,805,1.591]],["title/160",[206,1.076,316,1.844,338,1.558,402,1.329]],["content/160",[58,0.921,115,2.522,162,4.409,238,2.522,284,3.319,402,1.929,434,3.383,469,4.696,470,3.556,483,4.18,536,3.338,544,3.825,1264,5.663,1265,5.663,1266,9.452,1267,5.663,1268,5.663,1269,5.663,1270,5.663,1271,5.663,1272,5.663,1273,5.663]],["sidebarParentCategories/160",[87,0.711,804,1.218,805,1.591]],["title/161",[22,1.374,315,1.562,338,1.374,405,2.16,804,1.089]],["content/161",[22,3.08,315,3.501,433,2.126,434,2.707,531,4.841,804,2.441,1240,5.69]],["sidebarParentCategories/161",[87,0.711,804,1.218,805,1.591]],["title/162",[338,1.374,433,0.949,434,1.208,523,2.16,1249,2.853]],["content/162",[433,2.126,523,4.841,525,5.208,526,5.69,528,5.69,1250,6.393,1274,7.71]],["sidebarParentCategories/162",[87,0.711,804,1.218,805,1.591]],["title/163",[22,1.374,315,1.562,338,1.374,804,1.089,1252,2.853]],["content/163",[22,2.497,43,3.155,115,2.784,170,3.925,252,2.375,296,3.799,316,2.956,338,3.176,362,2.681,402,2.129,424,5.37,433,1.724,482,3.925,489,3.58,531,3.925,532,3.799,546,4.404,647,5.608,1213,4.404,1275,7.131,1276,6.252,1277,5.608,1278,6.252,1279,5.608]],["sidebarParentCategories/163",[87,0.711,804,1.218,805,1.591]],["title/164",[284,1.208,338,1.374,482,2.16,544,2.324,1255,2.853]],["content/164",[284,2.586,424,4.976,482,4.625,1275,6.607,1277,6.607,1279,6.607,1280,7.366,1281,7.366,1282,7.366,1283,7.366,1284,7.366]],["sidebarParentCategories/164",[87,0.711,804,1.218,805,1.591]],["title/165",[267,1.788,699,1.177]],["content/165",[2,0.848,3,1.4,6,2.013,8,2.505,17,2.706,25,1.445,32,3.202,33,2.424,41,3.658,55,1.262,103,1.848,146,1.541,200,1.711,267,3.07,277,4.115,305,2.083,323,2.762,343,2.351,362,2.505,393,4.341,395,2.706,411,3.668,545,2.424,699,2.083,706,4.074,718,2.351,745,3.345,851,1.926,870,3.851,1004,4.312,1225,2.81,1285,3.578,1286,2.944,1287,2.695,1288,2.46,1289,2.949,1290,3.148,1291,4.115,1292,3.092]],["sidebarParentCategories/165",[]],["title/166",[41,2.383,55,0.822,699,0.995]],["content/166",[6,3.345,32,3.07,33,4.028,41,4.364,146,2.56,200,2.842,267,2.224,305,2.363,343,3.906,545,4.028,699,1.984,706,3.906,718,3.906,851,3.201,1004,4.892,1225,4.669,1286,4.892,1287,4.477]],["sidebarParentCategories/166",[]],["title/167",[55,0.628,267,1.155,1288,1.449,1289,1.737,1290,1.423]],["content/167",[8,2.842,17,3.07,32,3.07,267,3.013,277,4.669,323,2.648,362,2.842,393,4.162,395,3.07,411,4.162,699,1.984,706,3.906,745,3.795,870,3.692,1289,3.345,1290,2.741,1291,4.669]],["sidebarParentCategories/167",[]],["title/168",[55,0.628,267,1.155,1288,1.449,1290,1.423,1292,1.821]],["content/168",[8,2.842,17,3.07,32,3.07,267,3.013,277,4.669,323,2.648,362,2.842,393,4.162,395,3.07,411,4.162,699,1.984,706,3.906,745,3.795,870,3.692,1290,2.741,1291,4.669,1292,3.507]],["sidebarParentCategories/168",[]],["title/169",[305,2.324]],["content/169",[2,0.829,3,1.367,25,2.079,39,3.494,58,0.634,67,2.114,77,2.367,78,2.631,146,1.504,148,3.798,149,1.769,210,1.182,235,2.367,267,1.307,272,3.032,305,3.297,323,1.556,361,5.15,364,1.347,400,2.367,413,2.296,454,2.744,479,2.744,484,3.665,522,2.556,530,3.494,605,2.012,699,1.507,810,2.744,853,3.032,903,3.494,905,4.044,1211,3.032,1239,4.76,1243,3.23,1289,3.441,1293,3.895,1294,7.524,1295,2.833,1296,6.116,1297,3.895,1298,3.895,1299,5.741,1300,6.818,1301,3.895,1302,3.032,1303,3.895,1304,3.23,1305,3.494,1306,3.494,1307,3.494]],["sidebarParentCategories/169",[]],["title/170",[210,1.367,484,1.739,1295,2.223]],["content/170",[5,4.69,8,2.583,17,2.791,25,2.811,95,3.112,167,4.446,200,2.583,235,4.718,267,2.605,346,4.69,484,3.504,540,2.902,699,1.716,712,6.437,758,5.404,1295,4.478,1308,6.024,1309,4.995,1310,6.024]],["sidebarParentCategories/170",[]],["title/171",[95,2.327,484,1.739,1295,2.223]],["content/171",[2,1.051,3,1.736,34,1.611,77,3.004,81,4.597,93,2.554,95,2.554,112,2.554,120,3.339,148,2.754,149,2.245,159,3.215,163,3.004,233,3.848,235,3.004,254,2.83,258,3.848,267,1.659,292,3.648,305,1.762,323,1.975,344,4.099,351,2.554,362,2.12,441,3.215,456,2.83,475,3.339,480,2.83,484,3.395,540,2.544,575,3.848,587,3.482,677,3.648,699,1.092,706,2.913,737,2.29,849,4.099,870,2.754,1285,4.434,1288,2.865,1295,3.84,1309,4.099,1311,3.848,1312,4.943,1313,4.943,1314,4.099]],["sidebarParentCategories/171",[]],["title/172",[200,1.931,484,1.739,1295,2.223]],["content/172",[13,4.369,18,3.167,31,1.063,32,2.256,41,4.408,58,1.095,95,3.479,117,2.458,146,1.881,178,4.369,183,4.038,200,3.75,233,3.792,252,1.85,305,2.401,323,1.946,326,2.256,360,2.789,362,2.089,484,3.217,492,4.38,695,3.792,699,2.049,851,2.352,902,3.595,1030,3.595,1288,2.836,1295,3.81,1304,4.038,1307,4.369,1315,4.87,1316,3.792,1317,4.87,1318,4.87]],["sidebarParentCategories/172",[]],["title/173",[362,2.284,1288,2.243]],["content/173",[249,4.868,261,4.126,267,2.913,362,3.09,364,2.492,1288,3.923,1289,3.637,1290,3.59,1292,3.813]],["sidebarParentCategories/173",[]],["title/182",[41,2.819,699,1.177]],["content/182",[6,2.81,31,1.92,32,2.579,33,3.383,41,4.375,53,2.303,146,2.15,200,3.545,267,1.868,305,2.629,343,3.281,545,3.383,699,2.079,706,3.281,718,3.281,740,3.383,851,2.689,911,4.981,1004,4.109,1166,3.922,1225,3.922,1286,4.109,1287,3.761,1319,5.567,1320,4.334,1321,4.616]],["sidebarParentCategories/182",[699,1.331]],["title/183",[699,1.177,941,3.931]],["content/183",[31,2.09,41,4.284,53,2.661,125,5.335,200,3.472,305,2.294,388,3.684,699,1.958,718,3.792,740,3.91,911,5.984,1166,4.532,1225,4.532,1320,5.009]],["sidebarParentCategories/183",[699,1.331]],["title/184",[31,0.671,41,1.628,699,0.68,718,1.814,911,2.079,1166,2.168]],["content/184",[2,1.291,19,1.66,31,1.921,34,1.047,37,2.502,41,3.612,50,3.613,53,2.054,55,1.797,71,1.128,105,2.018,137,2.502,148,1.79,172,2.3,200,2.927,229,4.274,258,2.502,260,2.018,261,1.84,298,2.372,305,1.77,310,1.84,323,1.983,324,2.169,345,1.95,391,2.264,395,1.489,402,1.095,540,1.856,562,2.926,699,1.797,718,1.894,723,2.171,744,2.018,775,2.694,779,2.129,793,3.641,813,1.744,911,2.171,1030,2.372,1045,2.171,1093,2.502,1217,2.883,1287,2.171,1291,2.264,1322,3.664,1323,2.502,1324,4.117,1325,2.883,1326,2.665,1327,2.665,1328,2.883,1329,3.213,1330,3.213,1331,2.883,1332,3.213,1333,2.883,1334,2.883,1335,2.883]],["sidebarParentCategories/184",[699,1.331]],["title/185",[31,0.968,53,1.151,200,1.902,305,0.992,1320,2.167]],["content/185",[2,1.074,31,1.808,34,0.793,37,3.098,41,2.106,50,3.198,53,2.855,55,1.772,71,0.854,89,1.288,134,1.894,147,1.714,148,1.355,168,1.32,171,1.288,172,1.843,200,3.124,229,1.714,232,1.528,249,1.644,261,2.278,294,1.714,298,4.746,305,2.955,310,1.393,316,1.15,323,1.589,324,1.063,345,1.983,351,2.056,395,1.127,400,2.418,402,0.829,405,1.528,456,1.393,532,1.479,535,2.182,538,2.182,540,1.887,562,3.79,603,1.479,699,1.116,718,1.434,723,1.644,744,0.989,775,2.159,779,1.706,793,2.878,813,1.32,911,3.41,941,1.796,943,2.937,1030,1.796,1045,1.644,1078,1.714,1166,2.803,1225,1.714,1287,1.644,1320,1.894,1322,1.796,1323,3.098,1324,6.303,1325,2.182,1326,2.017,1327,2.017,1331,3.569,1333,2.182,1334,2.182,1335,2.182,1336,2.182,1337,2.182,1338,2.433,1339,3.979,1340,2.433,1341,5.048,1342,2.433,1343,2.182,1344,2.182,1345,2.433,1346,3.979,1347,2.182,1348,2.433,1349,2.433,1350,2.433,1351,1.894]],["sidebarParentCategories/185",[699,1.331]],["title/186",[31,0.851,699,0.862,740,2.371,911,2.635]],["content/186",[2,1.513,6,2.115,31,1.879,34,1.366,38,3.093,41,2.218,50,1.942,55,1.739,58,0.682,71,1.472,148,2.335,171,2.218,200,2.597,284,1.472,305,1.494,310,2.4,345,2.379,355,1.982,362,1.797,366,3.475,388,3.468,395,1.942,402,1.428,540,1.567,562,3.569,589,3.057,679,2.505,699,1.903,723,2.831,725,3.76,744,2.89,775,3.286,779,1.797,793,2.068,813,2.274,1003,5.022,1045,2.831,1129,3.76,1288,1.765,1322,3.093,1324,3.475,1343,3.76,1352,4.191,1353,3.76,1354,3.76,1355,3.76,1356,4.191]],["sidebarParentCategories/186",[699,1.331]],["title/187",[1321,5.404]],["content/187",[17,2.131,34,1.499,35,2.888,41,3.425,58,0.748,84,3.705,102,1.486,159,2.991,170,2.888,172,2.998,190,2.711,209,3.395,254,2.633,261,2.633,364,1.59,417,5.038,489,3.705,492,2.991,541,2.888,544,4.372,699,1.796,712,3.814,740,2.795,851,2.221,871,3.581,905,3.24,943,3.395,1024,3.814,1046,2.434,1213,3.24,1288,3.153,1321,8.045,1357,4.599,1358,6.471,1359,4.599,1360,4.599,1361,4.599,1362,6.471,1363,3.814,1364,4.599,1365,4.599]],["sidebarParentCategories/187",[699,1.331]],["title/189",[267,1.309,1288,1.643,1289,1.969,1290,1.613]],["content/189",[2,1.911,8,1.721,17,2.718,32,1.859,55,1.072,70,2.328,71,1.409,265,1.859,267,2.561,277,2.827,294,2.827,302,1.898,305,2.092,310,3.36,323,2.771,324,1.753,327,2.896,328,3.501,329,2.962,337,0.942,362,1.721,389,2.236,393,2.52,395,2.718,402,1.367,411,2.52,433,1.618,434,2.06,453,2.61,699,1.936,706,2.365,718,2.365,745,3.36,870,2.236,1289,2.026,1290,2.427,1291,2.827,1322,2.962,1366,3.328,1367,3.6,1368,3.6,1369,7.632,1370,7.632,1371,3.6,1372,5.868]],["sidebarParentCategories/189",[699,1.331]],["title/190",[95,2.327,484,1.739,1295,2.223]],["content/190",[17,2.342,20,3.562,32,3.647,103,2.342,117,2.552,123,3.201,146,1.953,152,2.964,171,2.676,210,1.534,224,2.98,238,3.506,267,1.697,292,3.732,305,1.803,326,2.342,392,3.416,408,3.732,409,3.732,475,3.416,484,3.269,492,3.288,540,1.89,587,3.562,677,3.732,692,3.411,699,1.117,705,3.732,737,2.342,745,2.895,851,2.442,1234,3.175,1289,2.552,1295,4.177,1314,4.193,1373,3.175,1374,3.562,1375,4.536,1376,3.562]],["sidebarParentCategories/190",[699,1.331]],["title/191",[30,1.96,737,2.467]],["content/191",[8,0.735,17,0.794,19,0.481,30,2.775,33,0.565,43,0.47,44,0.771,50,0.431,51,0.834,53,1.619,55,1.752,58,0.701,59,1.328,62,0.778,68,0.93,72,1.422,73,1.042,77,0.565,89,0.907,90,1.977,92,0.628,95,1.232,102,0.394,108,0.518,114,0.982,120,0.628,123,1.105,130,1.158,138,0.724,140,1.373,145,2.354,147,0.655,148,0.955,149,0.778,150,0.342,151,0.505,152,2.991,156,0.724,159,0.605,163,0.565,171,0.907,179,0.565,180,0.481,182,0.982,190,1.405,191,3.592,202,1.076,204,2.087,210,0.52,218,0.687,221,0.687,223,0.834,229,1.208,235,0.565,237,2.747,242,0.771,252,0.353,264,0.565,267,0.575,294,0.655,298,1.265,305,1.057,330,0.687,338,0.372,345,0.365,346,0.724,350,0.628,351,2.408,357,1.405,360,0.533,364,0.322,374,1.431,385,1.115,391,0.655,395,0.431,397,0.459,400,0.565,433,1.648,456,0.533,478,0.687,480,0.533,484,1.34,492,0.605,512,1.405,522,1.32,532,0.565,536,1.405,540,1.463,541,1.861,543,3.375,562,0.548,574,0.628,605,1.232,699,0.865,706,1.747,737,1.996,770,0.533,779,2.932,792,0.533,793,2.457,807,0.771,810,0.655,833,0.771,851,1.431,856,1.608,925,1.801,930,0.834,938,1.265,939,0.771,942,1.538,948,1.422,957,1.431,985,3.149,996,1.977,1005,1.856,1046,1.836,1078,1.208,1084,1.208,1136,0.724,1144,4.077,1152,4.128,1167,1.208,1169,3.44,1171,1.115,1172,0.771,1234,0.584,1286,0.687,1287,0.628,1289,1.203,1290,0.986,1295,0.459,1302,0.724,1305,0.834,1306,0.834,1316,1.335,1323,0.724,1351,0.724,1373,0.584,1374,1.68,1376,0.655,1377,0.93,1378,2.139,1379,2.757,1380,0.93,1381,0.771,1382,0.834,1383,1.265,1384,3.865,1385,1.714,1386,2.658,1387,0.93,1388,1.422,1389,1.714,1390,1.714,1391,0.93,1392,0.93,1393,2.559,1394,1.158,1395,1.68,1396,1.977,1397,0.93,1398,0.93,1399,0.771,1400,1.538,1401,0.834,1402,0.93,1403,1.714,1404,0.771,1405,0.93,1406,0.93,1407,1.714,1408,1.714,1409,2.963,1410,0.93,1411,0.834,1412,0.93,1413,0.93,1414,0.93,1415,0.93,1416,0.93,1417,0.93,1418,0.93,1419,0.93,1420,1.714,1421,1.714,1422,1.714,1423,1.714,1424,2.963,1425,0.834,1426,2.307,1427,2.139,1428,1.68,1429,2.139,1430,0.834,1431,1.714,1432,0.93,1433,0.834,1434,0.834,1435,1.714,1436,0.93,1437,0.93,1438,0.93,1439,0.93,1440,0.93,1441,0.93,1442,0.93,1443,0.93,1444,0.834,1445,0.834,1446,0.771,1447,1.538,1448,0.724]],["sidebarParentCategories/191",[699,1.331]],["title/192",[150,1.96,737,2.467]],["content/192",[34,1.601,55,1.758,58,1.024,62,0.595,63,1.086,65,1.94,68,2.091,73,1.422,89,1.238,117,0.661,120,1.58,130,0.885,132,1.02,145,2.323,150,3.132,179,1.422,180,0.677,190,0.772,202,0.823,204,2.714,238,0.583,263,4.273,264,0.796,267,1.063,305,0.467,311,0.967,323,0.523,342,3.117,345,0.514,351,2.286,357,0.772,364,0.453,368,1.02,374,1.53,397,1.154,400,1.926,411,0.823,416,0.75,452,0.967,474,1.02,480,1.339,484,1.488,492,0.852,522,1.042,540,0.874,543,1.208,602,1.469,603,0.796,605,0.677,607,1.175,699,0.29,716,3.194,737,2.05,744,1.996,754,1.175,755,2.989,767,1.086,779,2.993,793,2.968,846,1.821,852,4.759,925,3.655,945,2.467,957,0.633,1024,1.086,1046,1.677,1054,4.786,1057,1.521,1059,2.714,1061,1.726,1063,2.628,1064,1.086,1065,1.086,1066,1.94,1071,1.02,1072,1.086,1074,1.648,1077,3.969,1078,1.648,1083,1.086,1086,1.821,1088,1.02,1090,1.02,1103,2.467,1136,1.02,1219,1.175,1239,1.086,1289,1.181,1290,0.968,1302,1.02,1311,1.02,1351,1.02,1363,1.086,1373,0.823,1376,2.232,1393,2.917,1394,0.885,1395,1.648,1399,1.086,1449,1.31,1450,1.31,1451,1.31,1452,1.175,1453,1.31,1454,1.31,1455,2.098,1456,1.31,1457,1.31,1458,1.31,1459,0.923,1460,3.969,1461,1.31,1462,1.31,1463,1.31,1464,1.31,1465,1.31,1466,1.086,1467,2.339,1468,1.31,1469,2.339,1470,2.339,1471,1.31,1472,1.31,1473,1.31,1474,1.31,1475,1.31,1476,1.175,1477,1.31,1478,2.843,1479,1.31,1480,1.31,1481,1.31,1482,1.31,1483,1.31,1484,1.31,1485,1.31,1486,1.31,1487,1.31,1488,1.31]],["sidebarParentCategories/192",[699,1.331]],["title/193",[152,1.902,210,0.845,540,1.041,692,1.374,699,0.615,851,1.344]],["content/193",[2,1.014,6,1.54,25,1.105,33,1.854,34,0.994,37,2.375,55,1.755,58,0.776,68,2.587,102,0.7,123,1.413,152,3.274,171,1.614,174,4.277,179,1.854,210,2.633,224,4.244,230,3.101,267,1.024,305,1.7,311,2.251,323,1.219,345,2.607,351,1.576,478,2.251,484,1.842,522,2.123,545,1.854,574,4.483,575,3.712,605,1.576,692,1.505,711,2.149,737,1.413,813,2.587,851,2.835,925,1.854,1055,2.529,1146,2.529,1166,2.149,1234,1.915,1289,1.54,1290,1.262,1295,1.505,1296,2.736,1316,2.375,1344,5.265,1373,1.915,1374,2.149,1489,2.736,1490,2.736,1491,4.768,1492,3.05,1493,5.87,1494,3.05,1495,6.637,1496,4.277,1497,3.05,1498,5.953,1499,3.05,1500,2.736,1501,4.768,1502,4.768,1503,3.05,1504,3.05,1505,3.05,1506,2.736,1507,3.05,1508,3.05,1509,3.05]],["sidebarParentCategories/193",[699,1.331]],["title/194",[200,1.931,484,1.739,1295,2.223]],["content/194",[5,3.305,20,4.306,25,1.537,32,1.966,41,4.147,43,3.085,47,3.305,55,1.431,58,0.994,59,2.365,77,2.58,96,1.562,117,2.143,123,1.966,140,2.832,165,3.305,200,2.621,243,2.665,323,1.696,326,1.966,345,1.667,362,1.82,364,1.468,413,2.502,455,3.133,484,3.341,532,4.353,594,3.52,699,1.732,744,1.725,802,3.305,810,2.99,811,3.52,870,2.365,890,3.305,902,3.133,1100,3.52,1288,2.574,1289,2.143,1295,3.535,1326,3.52,1327,5.068,1373,3.838,1379,2.99,1382,3.808,1393,1.966,1401,3.808,1510,4.245,1511,4.245,1512,3.808,1513,3.808]],["sidebarParentCategories/194",[699,1.331]],["title/195",[30,1.96,221,3.931]],["content/195",[30,2.635,53,1.756,55,1.666,73,2.58,84,2.431,123,1.966,140,1.966,147,2.99,180,2.193,182,3.5,190,2.502,200,1.82,221,5.287,374,2.952,388,2.431,397,2.095,454,2.99,479,2.99,480,2.431,522,1.89,543,4.468,545,2.58,605,2.193,692,2.095,779,1.82,851,2.05,957,4.01,1078,2.99,1169,5.287,1196,3.808,1289,3.085,1290,1.756,1381,3.52,1393,1.966,1396,7.172,1411,3.808,1514,7.836,1515,3.808,1516,4.245,1517,4.245,1518,4.245,1519,4.245,1520,4.245,1521,4.245]],["sidebarParentCategories/195",[699,1.331]],["title/196",[30,1.435,957,1.884,1288,1.643,1393,1.807]],["content/196",[30,3.207,53,1.496,55,1.81,58,0.884,68,2.949,114,2.071,145,2.57,149,2.468,152,2.33,190,2.132,202,2.272,237,3.203,261,2.071,263,1.963,264,2.199,305,1.938,400,2.199,433,1.8,480,3.111,512,3.203,522,1.611,536,2.132,545,2.199,719,2.548,851,1.747,867,4.506,985,2.444,1030,2.67,1161,4.506,1171,2.353,1234,2.272,1288,1.523,1289,1.826,1290,1.496,1373,2.272,1379,2.548,1393,3.023,1426,4.231,1427,4.875,1428,3.828,1429,4.875,1522,4.875,1523,2.444,1524,5.434,1525,6.526,1526,5.434,1527,5.434,1528,5.434,1529,5.434,1530,5.434]],["sidebarParentCategories/196",[699,1.331]],["title/197",[347,2.327,1393,2.086,1459,3.172]],["content/197",[17,1.467,19,1.636,31,1.071,43,1.599,58,0.515,59,1.764,89,2.598,117,1.599,127,4.404,148,2.735,149,1.438,171,1.676,228,3.442,229,2.231,284,3.013,288,2.626,341,1.676,347,4.612,355,3.202,388,3.442,397,3.342,400,2.984,484,1.223,489,2.811,605,1.636,679,1.31,699,0.7,711,2.231,745,1.813,767,2.626,849,2.626,905,2.231,912,2.466,1033,2.626,1046,1.676,1213,2.231,1287,2.14,1328,4.404,1347,4.404,1355,2.841,1393,2.785,1404,2.626,1459,6.47,1506,4.404,1531,6.012,1532,8.581,1533,3.167,1534,3.167,1535,3.167,1536,4.91,1537,4.91,1538,2.841,1539,3.167,1540,4.91,1541,4.91,1542,3.167,1543,3.167,1544,3.167,1545,3.167,1546,3.167,1547,2.841,1548,4.91,1549,4.91]],["sidebarParentCategories/197",[699,1.331]],["title/198",[32,2.086,93,2.327,536,2.654]],["content/198",[32,4.092,53,2.772,55,1.355,58,0.615,59,2.108,62,1.718,81,2.556,84,3.217,93,1.955,113,3.796,147,2.665,150,2.916,200,2.41,218,2.792,221,2.792,226,2.665,239,2.556,253,3.394,268,2.792,305,1.349,351,1.955,397,1.867,433,1.043,434,1.328,481,2.792,536,2.23,605,1.955,699,1.242,755,3.796,770,2.166,957,1.827,1089,2.792,1234,2.376,1286,2.792,1288,2.366,1289,1.91,1290,1.565,1366,4.659,1373,2.376,1393,3.672,1394,2.556,1448,2.946,1523,2.556,1550,3.783,1551,5.619,1552,5.619,1553,5.619,1554,3.783,1555,6.703,1556,3.783,1557,5.619,1558,3.394,1559,3.394,1560,3.783,1561,3.783,1562,3.783,1563,3.783,1564,3.783,1565,3.783,1566,3.783,1567,3.783,1568,3.783,1569,3.783]],["sidebarParentCategories/198",[699,1.331]],["title/199",[263,2.117,1054,2.371,1288,1.643,1393,1.807]],["content/199",[34,2.362,35,3.027,53,1.279,55,1.402,58,1.179,65,5.545,84,1.771,90,2.565,145,2.279,148,1.723,150,3.135,152,1.327,179,1.88,180,1.598,190,1.823,191,2.012,210,0.939,227,3.395,263,3.629,264,1.88,284,1.086,342,2.179,357,2.841,373,1.679,374,1.494,400,1.88,512,3.491,522,1.377,536,1.823,540,2.214,589,1.561,605,1.598,715,1.723,716,2.565,737,1.433,770,1.771,852,4.958,874,2.408,925,1.88,1054,4.064,1057,3.135,1212,2.408,1288,1.303,1289,1.561,1290,1.279,1351,2.408,1393,3.557,1394,2.09,1448,2.408,1455,2.775,1466,2.565,1523,2.09,1559,2.775,1570,5.922,1571,3.093,1572,3.093,1573,4.82,1574,3.093,1575,3.093,1576,4.82,1577,3.093,1578,4.82,1579,4.82,1580,4.82,1581,4.82,1582,4.82,1583,3.093,1584,3.093,1585,3.093,1586,3.093]],["sidebarParentCategories/199",[699,1.331]],["title/200",[150,1.435,342,2.748,1459,2.748,1587,3.499]],["content/200",[8,1.972,18,2.991,55,1.484,77,2.795,92,3.107,145,3.54,150,3.15,167,3.395,342,6.031,356,3.814,512,2.711,522,2.048,543,4.197,605,2.376,699,1.016,839,5.038,852,4.063,957,2.221,1046,2.434,1103,5.038,1288,1.937,1289,2.321,1354,4.126,1373,2.888,1393,3.764,1395,4.558,1399,3.814,1452,4.126,1459,6.031,1478,4.126,1523,3.107,1588,4.599,1589,6.471,1590,4.599,1591,4.599,1592,4.599]],["sidebarParentCategories/200",[699,1.331]],["title/215",[267,1.309,1288,1.643,1290,1.613,1292,2.064]],["content/215",[2,1.911,8,1.721,17,2.718,32,1.859,55,1.072,70,2.328,71,1.409,265,1.859,267,2.561,277,2.827,294,2.827,302,1.898,305,2.092,310,3.36,323,2.771,324,1.753,327,2.896,328,3.501,329,2.962,337,0.942,362,1.721,389,2.236,393,2.52,395,2.718,402,1.367,411,2.52,433,1.618,434,2.06,453,2.61,699,1.936,706,2.365,718,2.365,726,6.846,727,5.264,728,6.846,745,3.36,870,2.236,1290,1.66,1291,2.827,1292,3.106,1322,2.962,1366,3.328,1367,3.6,1368,3.6,1371,3.6]],["sidebarParentCategories/215",[699,1.331]],["title/216",[95,2.327,484,1.739,1295,2.223]],["content/216",[17,2.379,20,3.617,32,3.676,103,2.379,117,2.592,123,3.676,146,1.983,171,2.717,224,3.026,238,3.534,267,1.723,292,3.79,305,1.831,315,2.332,326,2.379,392,3.469,408,3.79,409,3.79,475,3.469,484,3.29,492,3.339,587,3.617,677,3.79,692,3.447,699,1.135,705,3.79,737,3.235,745,2.94,1234,3.224,1290,2.124,1295,4.204,1314,4.258,1374,3.617,1375,4.606,1376,3.617,1593,3.998]],["sidebarParentCategories/216",[699,1.331]],["title/217",[31,1.162,1594,4.778]],["content/217",[18,2.852,31,1.908,50,2.032,55,1.332,62,1.991,66,2.38,87,0.811,130,2.963,140,2.898,190,3.688,239,2.963,261,2.511,284,1.54,340,2.852,355,3.449,388,2.511,402,2.865,415,3.637,465,2.321,540,2.339,603,2.665,692,2.165,699,0.969,737,3.379,744,3.418,770,2.511,773,2.754,775,3.958,779,2.683,802,3.414,851,3.022,866,3.089,876,3.414,957,2.118,1006,3.637,1288,1.847,1290,1.814,1292,2.321,1376,3.089,1595,3.637,1596,6.257,1597,4.386,1598,3.934,1599,4.386,1600,4.386]],["sidebarParentCategories/217",[699,1.331]],["title/218",[145,2.129,1089,3.324,1601,4.04]],["content/218",[2,1.051,31,1.698,58,1.107,77,3.004,102,1.135,112,2.554,140,2.29,145,2.337,149,2.245,171,2.616,179,3.004,204,3.482,211,4.597,232,3.104,267,1.659,284,2.389,325,3.482,355,2.337,522,2.201,562,2.913,679,2.045,695,3.848,699,1.092,710,4.099,715,2.754,832,6.104,833,4.099,860,4.099,1004,3.648,1141,4.434,1209,4.434,1304,4.099,1363,4.099,1379,3.482,1383,5.022,1394,3.339,1547,4.434,1601,6.104,1602,4.943,1603,6.804,1604,4.943,1605,4.943,1606,4.943,1607,4.943,1608,4.943,1609,4.943]],["sidebarParentCategories/218",[699,1.331]],["title/219",[268,3.324,536,2.654,737,2.086]],["content/219",[2,1.494,31,1.37,55,1.836,58,0.552,73,2.063,123,1.573,167,2.506,264,2.063,268,2.506,272,2.643,302,1.605,327,1.676,344,2.815,345,2.034,360,1.944,364,1.174,388,1.944,402,1.156,416,3.595,480,2.965,522,1.512,532,2.063,536,2.001,540,2.347,562,2.001,692,2.556,701,6.301,708,4.646,737,3.504,744,2.105,775,1.842,779,1.456,793,3.467,885,2.815,1290,1.404,1292,1.797,1595,2.815,1610,3.395,1611,5.179,1612,5.179,1613,5.179,1614,5.179,1615,5.179,1616,3.045,1617,5.179,1618,5.179,1619,3.395,1620,5.179,1621,5.179,1622,5.179,1623,7.024,1624,3.395,1625,3.395,1626,3.395]],["sidebarParentCategories/219",[699,1.331]],["title/220",[235,2.737,737,2.086,978,3.734]],["content/220",[8,1.163,31,0.592,34,0.884,55,1.592,58,0.707,68,3.373,84,2.488,111,1.511,130,2.935,141,2.112,145,3.745,146,1.678,179,2.641,202,1.703,216,2.249,218,2.002,235,4.41,237,3.204,252,1.031,284,0.952,305,0.967,316,1.283,318,1.511,323,1.084,334,6.32,340,1.764,351,2.245,356,2.249,388,1.553,397,1.339,479,1.911,522,1.208,540,1.624,589,1.369,603,1.648,677,2.002,692,1.339,694,1.832,719,3.061,737,2.879,770,2.488,779,2.331,793,3.068,851,3.002,856,1.472,867,2.249,889,1.832,957,1.31,978,4.507,985,1.832,1046,2.299,1136,2.112,1167,3.829,1171,2.826,1290,1.797,1292,2.299,1337,2.433,1379,1.911,1383,2.002,1388,3.603,1404,5.154,1466,2.249,1538,3.898,1587,2.433,1627,2.713,1628,4.345,1629,2.433,1630,4.345,1631,5.436,1632,2.713,1633,4.345,1634,4.345,1635,2.713,1636,2.713,1637,2.713,1638,4.345,1639,4.345,1640,2.713,1641,2.713,1642,2.713,1643,2.713,1644,2.713,1645,2.713,1646,2.713,1647,2.433,1648,2.713,1649,2.713,1650,2.713,1651,2.433,1652,2.433]],["sidebarParentCategories/220",[699,1.331]],["title/221",[465,2.819,737,2.467]],["content/221",[30,2.567,172,3.232,182,3.995,318,3.887,355,3.299,465,3.692,484,2.695,603,4.24,866,4.915,1210,6.259,1211,5.432,1212,5.432,1653,6.259,1654,6.977,1655,6.977,1656,6.977]],["sidebarParentCategories/221",[699,1.331]],["title/222",[225,2.89,737,2.467]],["content/222",[6,0.91,8,1.327,17,0.835,30,0.663,34,0.587,43,0.91,50,0.835,53,0.746,55,1.679,58,0.784,62,1.405,68,1.679,73,1.096,77,1.096,95,0.931,108,1.004,114,1.772,123,0.835,130,2.09,140,1.433,145,2.801,149,0.819,152,3.207,153,1.132,156,1.404,163,1.096,171,0.954,179,1.096,190,1.063,202,1.132,210,0.547,225,3.793,229,1.27,237,3.491,242,1.495,243,1.132,264,1.096,267,0.605,305,1.449,323,0.72,330,1.331,338,0.72,350,1.218,351,2.491,357,1.063,360,1.032,364,0.623,433,1.121,456,1.032,478,1.331,480,1.032,484,1.195,512,1.063,522,2.417,532,1.096,536,1.824,540,1.52,541,3.028,543,2.491,574,1.218,605,0.931,699,0.898,737,2.514,779,2.868,793,3.128,851,2.861,957,0.871,985,4.002,996,3.371,1005,3.165,1046,0.954,1078,1.27,1144,3.559,1145,2.409,1167,2.18,1169,2.284,1171,2.012,1234,1.132,1290,1.28,1292,1.638,1302,1.404,1373,1.132,1374,2.864,1376,1.27,1383,2.284,1384,2.776,1386,2.776,1388,2.566,1393,2.234,1394,1.218,1395,2.18,1425,1.617,1426,3.754,1428,2.864,1430,1.617,1433,1.617,1434,1.617,1444,1.617,1445,1.617,1446,1.495,1447,2.776,1657,4.822,1658,1.404,1659,1.803,1660,1.803,1661,1.803,1662,1.803,1663,3.094,1664,1.803,1665,3.094,1666,1.803,1667,1.803,1668,4.822,1669,1.803,1670,3.094,1671,3.094,1672,3.094,1673,1.617,1674,1.617,1675,3.647,1676,3.094,1677,1.803,1678,2.776,1679,3.094,1680,1.803,1681,1.803,1682,1.803,1683,1.803,1684,1.803,1685,1.803]],["sidebarParentCategories/222",[699,1.331]],["title/223",[30,1.435,225,2.117,263,2.117,1054,2.371]],["content/223",[5,1.944,6,2.052,20,1.759,34,1.93,55,1.818,58,0.963,89,1.322,96,0.919,137,1.944,146,0.965,150,2.825,151,1.355,152,3.654,167,1.843,180,1.29,202,1.568,225,2.206,227,1.759,232,1.568,237,1.472,263,3.214,284,0.877,326,1.157,338,0.998,351,2.1,357,2.396,395,1.157,416,2.327,433,0.689,512,1.472,522,2.289,540,1.52,541,2.552,562,1.472,589,1.261,715,1.391,719,1.759,737,1.883,755,1.687,779,2.796,793,2.923,846,4.001,852,2.789,1038,2.071,1054,3.6,1057,1.624,1058,2.071,1059,2.863,1060,1.944,1061,3,1171,1.624,1290,1.033,1292,1.322,1309,2.071,1353,2.24,1378,2.24,1395,2.863,1396,3.37,1428,1.759,1476,2.24,1594,5.313,1674,2.24,1678,3.646,1686,4.065,1687,4.065,1688,4.065,1689,4.065,1690,4.065,1691,2.24,1692,2.497,1693,4.065,1694,4.065,1695,4.065,1696,4.065,1697,4.065,1698,2.497,1699,2.497,1700,2.497,1701,2.497,1702,2.497,1703,2.497,1704,2.497,1705,2.497]],["sidebarParentCategories/223",[699,1.331]],["title/224",[123,1.425,315,1.397,540,1.15,692,1.519,699,0.68,737,1.425]],["content/224",[2,0.754,6,0.483,17,0.443,25,0.347,31,0.661,34,0.312,53,0.396,55,1.815,58,0.649,59,0.533,62,0.435,73,0.582,83,0.859,84,0.548,92,1.189,93,1.83,111,1.974,123,2.198,138,0.745,145,1.433,146,0.68,148,0.533,150,0.352,151,0.519,152,2.507,160,1.579,171,0.931,179,1.07,210,0.92,216,0.794,220,1.145,224,3.446,226,1.24,227,2.496,232,0.601,235,1.485,240,2.719,254,0.548,261,0.548,267,0.321,279,0.647,288,0.794,298,0.707,306,0.794,315,0.799,318,1.689,323,0.703,327,2.167,336,0.674,342,0.674,345,1.392,351,1.566,360,1.399,364,0.331,374,0.462,381,0.623,388,1.008,395,0.815,402,0.6,416,1.008,474,0.745,478,0.707,484,0.68,492,0.623,522,1.578,540,2.473,562,2.088,574,3.42,603,0.582,692,1.206,699,0.54,711,0.674,719,0.674,737,2.901,744,0.715,775,0.519,779,2.406,792,2.286,793,2.342,813,1.923,851,0.85,860,0.794,885,0.794,925,0.582,1005,2.36,1033,0.794,1046,1.604,1084,1.24,1151,0.859,1167,2.135,1212,0.745,1234,0.601,1290,1.011,1292,1.293,1295,0.472,1311,2.36,1316,0.745,1323,0.745,1336,2.719,1374,1.24,1381,0.794,1393,2.985,1428,1.24,1446,1.459,1448,1.37,1459,0.674,1460,0.859,1489,0.859,1490,0.859,1496,1.579,1498,0.859,1500,0.859,1515,0.859,1593,0.745,1595,2.026,1598,0.859,1616,3.178,1647,1.579,1651,0.859,1652,2.192,1658,0.745,1673,1.579,1691,0.859,1706,0.957,1707,0.957,1708,4.39,1709,2.443,1710,0.957,1711,0.957,1712,0.957,1713,0.957,1714,0.957,1715,0.957,1716,3.031,1717,0.957,1718,1.76,1719,1.76,1720,1.76,1721,0.957,1722,0.957,1723,5.846,1724,0.957,1725,0.957,1726,0.957,1727,0.957,1728,0.957,1729,2.443,1730,0.957,1731,0.957,1732,0.957,1733,1.76,1734,3.992,1735,3.031,1736,3.992,1737,1.76,1738,3.031,1739,1.76,1740,0.957,1741,0.957,1742,1.76,1743,1.76,1744,1.76,1745,0.957,1746,1.76,1747,1.76,1748,0.957,1749,0.957,1750,0.957,1751,0.957,1752,0.957,1753,0.957,1754,3.031,1755,0.957,1756,3.992,1757,0.957,1758,1.76,1759,0.957,1760,0.957,1761,0.957,1762,0.957,1763,0.957,1764,0.957,1765,0.957,1766,0.957,1767,1.76,1768,0.957,1769,0.957,1770,0.957,1771,0.957,1772,3.992,1773,2.443,1774,3.543,1775,3.543,1776,0.957,1777,0.957,1778,0.957,1779,0.957,1780,1.76,1781,0.957,1782,0.957,1783,0.957,1784,0.957,1785,0.957,1786,0.957,1787,0.957,1788,0.957,1789,0.957,1790,0.957,1791,0.957]],["sidebarParentCategories/224",[699,1.331]],["title/225",[200,1.931,484,1.739,1295,2.223]],["content/225",[32,2.325,41,4.464,43,3.47,47,3.907,58,0.816,92,3.39,96,1.846,117,2.533,140,3.185,200,2.948,225,2.723,243,3.151,326,2.325,345,1.971,362,2.152,413,2.958,484,3.258,532,3.05,594,4.161,699,1.864,744,2.039,802,3.907,810,3.535,811,4.161,870,2.795,902,3.704,1288,2.895,1290,2.076,1292,2.656,1295,3.393,1379,3.535,1383,3.704,1393,2.325,1395,3.535,1512,4.501,1513,4.501,1593,3.907,1658,3.907,1792,5.018]],["sidebarParentCategories/225",[699,1.331]],["title/226",[225,2.117,957,1.884,1288,1.643,1393,1.807]],["content/226",[53,2.091,55,1.83,58,0.822,68,2.744,114,2.895,145,3.268,152,2.964,225,3.75,237,4.073,263,2.744,264,3.073,305,2.464,480,3.957,512,2.98,522,2.252,536,2.98,545,3.073,1171,3.288,1288,2.129,1290,2.091,1292,2.676,1393,3.647,1426,5.38,1428,4.868,1522,6.199,1523,3.416,1593,3.937,1675,6.199]],["sidebarParentCategories/226",[699,1.331]],["title/227",[150,1.435,957,1.884,1288,1.643,1393,1.807]],["content/227",[58,0.898,59,3.075,130,3.73,146,2.132,150,3.227,171,2.922,210,2.225,239,3.73,249,3.73,284,1.938,327,2.725,334,4.578,347,2.852,522,2.459,957,2.666,1150,6.08,1288,2.325,1311,4.298,1393,2.558,1400,4.952,1523,3.73,1558,4.952,1629,6.577,1653,4.952,1658,4.298,1793,5.521,1794,8.233,1795,5.521,1796,5.521,1797,5.521,1798,5.521,1799,5.521,1800,5.521]],["sidebarParentCategories/227",[699,1.331]],["title/228",[957,2.175,1288,1.896,1393,2.086]],["content/228",[9,4.777,34,1.877,53,2.383,55,1.629,84,3.299,150,2.12,180,2.976,202,3.618,218,4.252,264,3.501,279,3.892,374,4.307,456,3.299,522,2.566,540,2.154,605,2.976,957,4.06,1288,2.426,1290,2.383,1292,3.049,1393,3.494,1394,3.892,1523,3.892,1801,5.761,1802,7.541,1803,5.761]],["sidebarParentCategories/228",[699,1.331]]],"invertedIndex":[["",{"_index":55,"title":{"13":{},"14":{},"15":{},"24":{},"25":{},"26":{},"27":{},"42":{},"43":{},"85":{},"86":{},"87":{},"88":{},"166":{},"167":{},"168":{}},"content":{"1":{},"10":{},"12":{},"23":{},"35":{},"38":{},"40":{},"41":{},"62":{},"70":{},"75":{},"78":{},"79":{},"80":{},"81":{},"83":{},"84":{},"91":{},"92":{},"93":{},"94":{},"95":{},"98":{},"99":{},"100":{},"103":{},"106":{},"111":{},"113":{},"123":{},"124":{},"125":{},"126":{},"132":{},"138":{},"139":{},"140":{},"141":{},"148":{},"149":{},"156":{},"157":{},"165":{},"175":{},"176":{},"177":{},"178":{},"179":{},"184":{},"185":{},"186":{},"189":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"198":{},"199":{},"200":{},"215":{},"217":{},"219":{},"220":{},"222":{},"223":{},"224":{},"226":{},"228":{}},"sidebarParentCategories":{}}],["0.0.1",{"_index":1300,"title":{},"content":{"169":{}},"sidebarParentCategories":{}}],["0.1",{"_index":1343,"title":{},"content":{"185":{},"186":{}},"sidebarParentCategories":{}}],["0.1.0",{"_index":1289,"title":{"167":{},"189":{}},"content":{"165":{},"167":{},"169":{},"173":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"198":{},"199":{},"200":{}},"sidebarParentCategories":{}}],["0.2",{"_index":1355,"title":{},"content":{"186":{},"197":{}},"sidebarParentCategories":{}}],["0.2.0",{"_index":1373,"title":{},"content":{"190":{},"191":{},"192":{},"193":{},"194":{},"196":{},"198":{},"200":{},"222":{}},"sidebarParentCategories":{}}],["0.2.5",{"_index":1603,"title":{},"content":{"218":{}},"sidebarParentCategories":{}}],["0.2.x",{"_index":1290,"title":{"167":{},"168":{},"189":{},"215":{}},"content":{"165":{},"167":{},"168":{},"173":{},"189":{},"191":{},"192":{},"193":{},"195":{},"196":{},"198":{},"199":{},"215":{},"216":{},"217":{},"219":{},"220":{},"222":{},"223":{},"224":{},"225":{},"226":{},"228":{}},"sidebarParentCategories":{}}],["0.3.0",{"_index":1593,"title":{},"content":{"216":{},"224":{},"225":{},"226":{}},"sidebarParentCategories":{}}],["0.3.x",{"_index":1292,"title":{"168":{},"215":{}},"content":{"165":{},"168":{},"173":{},"215":{},"217":{},"219":{},"220":{},"222":{},"223":{},"224":{},"225":{},"226":{},"228":{}},"sidebarParentCategories":{}}],["0.61.5",{"_index":687,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["0.62.0",{"_index":680,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["0.64.0",{"_index":713,"title":{},"content":{"83":{}},"sidebarParentCategories":{}}],["0.69.5",{"_index":681,"title":{},"content":{"81":{},"83":{}},"sidebarParentCategories":{}}],["0.70.0",{"_index":678,"title":{},"content":{"81":{},"83":{}},"sidebarParentCategories":{}}],["0023",{"_index":1479,"title":{},"content":{"192":{}},"sidebarParentCategories":{}}],["004",{"_index":205,"title":{},"content":{"11":{},"96":{}},"sidebarParentCategories":{}}],["01",{"_index":553,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["0160",{"_index":1063,"title":{},"content":{"138":{},"142":{},"192":{}},"sidebarParentCategories":{}}],["0212",{"_index":983,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["0360",{"_index":1602,"title":{},"content":{"218":{}},"sidebarParentCategories":{}}],["040e96c3c539",{"_index":1530,"title":{},"content":{"196":{}},"sidebarParentCategories":{}}],["0434",{"_index":1053,"title":{},"content":{"138":{},"142":{}},"sidebarParentCategories":{}}],["04a2c382",{"_index":1578,"title":{},"content":{"199":{}},"sidebarParentCategories":{}}],["0592",{"_index":1424,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["09e46da9",{"_index":1526,"title":{},"content":{"196":{}},"sidebarParentCategories":{}}],["1",{"_index":316,"title":{"138":{},"145":{},"152":{},"160":{},"175":{}},"content":{"23":{},"24":{},"25":{},"26":{},"27":{},"84":{},"85":{},"113":{},"120":{},"148":{},"156":{},"163":{},"181":{},"185":{},"220":{}},"sidebarParentCategories":{}}],["1.0",{"_index":1146,"title":{},"content":{"176":{},"179":{},"193":{}},"sidebarParentCategories":{}}],["1.0.0",{"_index":1294,"title":{},"content":{"169":{}},"sidebarParentCategories":{}}],["1.1",{"_index":1055,"title":{},"content":{"138":{},"142":{},"193":{}},"sidebarParentCategories":{}}],["1.4",{"_index":906,"title":{},"content":{"120":{}},"sidebarParentCategories":{}}],["10",{"_index":992,"title":{},"content":{"133":{}},"sidebarParentCategories":{}}],["10000",{"_index":974,"title":{},"content":{"131":{}},"sidebarParentCategories":{}}],["10044/com.usereactnativeindysdk",{"_index":557,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["13",{"_index":566,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["16:25:02.300",{"_index":555,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["2",{"_index":405,"title":{"146":{},"154":{},"161":{},"176":{}},"content":{"41":{},"42":{},"138":{},"181":{},"185":{}},"sidebarParentCategories":{}}],["2.1",{"_index":1249,"title":{"147":{},"155":{},"162":{}},"content":{},"sidebarParentCategories":{}}],["2.2",{"_index":1252,"title":{"148":{},"156":{},"163":{}},"content":{},"sidebarParentCategories":{}}],["2.3",{"_index":1255,"title":{"149":{},"157":{},"164":{}},"content":{},"sidebarParentCategories":{}}],["20",{"_index":993,"title":{},"content":{"133":{}},"sidebarParentCategories":{}}],["2020",{"_index":552,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["2022",{"_index":1263,"title":{},"content":{"159":{}},"sidebarParentCategories":{}}],["21",{"_index":597,"title":{},"content":{"78":{}},"sidebarParentCategories":{}}],["23",{"_index":1175,"title":{},"content":{"178":{},"179":{}},"sidebarParentCategories":{}}],["27",{"_index":554,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["3",{"_index":806,"title":{"139":{},"177":{}},"content":{"84":{},"88":{}},"sidebarParentCategories":{}}],["3000",{"_index":380,"title":{},"content":{"38":{},"93":{},"95":{},"175":{}},"sidebarParentCategories":{}}],["3001",{"_index":1052,"title":{},"content":{"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["3002",{"_index":1126,"title":{},"content":{"175":{},"179":{}},"sidebarParentCategories":{}}],["32",{"_index":862,"title":{},"content":{"112":{}},"sidebarParentCategories":{}}],["3b6f131af5e",{"_index":968,"title":{},"content":{"129":{}},"sidebarParentCategories":{}}],["4",{"_index":1073,"title":{"140":{},"178":{}},"content":{},"sidebarParentCategories":{}}],["40c4",{"_index":966,"title":{},"content":{"129":{}},"sidebarParentCategories":{}}],["4909",{"_index":1528,"title":{},"content":{"196":{}},"sidebarParentCategories":{}}],["4baf",{"_index":965,"title":{},"content":{"129":{}},"sidebarParentCategories":{}}],["4de9",{"_index":1580,"title":{},"content":{"199":{}},"sidebarParentCategories":{}}],["5",{"_index":1097,"title":{"141":{},"179":{}},"content":{},"sidebarParentCategories":{}}],["50",{"_index":1672,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["5000",{"_index":383,"title":{},"content":{"38":{},"131":{}},"sidebarParentCategories":{}}],["64.jar",{"_index":664,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["7000",{"_index":1645,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["9955",{"_index":556,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["999e",{"_index":1579,"title":{},"content":{"199":{}},"sidebarParentCategories":{}}],["9dec0b2fa5e4",{"_index":1582,"title":{},"content":{"199":{}},"sidebarParentCategories":{}}],["_before_",{"_index":1329,"title":{},"content":{"184":{}},"sidebarParentCategories":{}}],["_internal/indycredenti",{"_index":1517,"title":{},"content":{"195":{}},"sidebarParentCategories":{}}],["_internal/indyrequest",{"_index":1516,"title":{},"content":{"195":{}},"sidebarParentCategories":{}}],["a1d2",{"_index":1581,"title":{},"content":{"199":{}},"sidebarParentCategories":{}}],["a575",{"_index":1527,"title":{},"content":{"196":{}},"sidebarParentCategories":{}}],["aarch64.jar",{"_index":655,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["abov",{"_index":339,"title":{},"content":{"32":{},"34":{},"48":{},"56":{},"65":{},"71":{}},"sidebarParentCategories":{}}],["accept",{"_index":856,"title":{},"content":{"111":{},"119":{},"120":{},"121":{},"125":{},"126":{},"127":{},"137":{},"174":{},"175":{},"177":{},"179":{},"191":{},"220":{}},"sidebarParentCategories":{}}],["acceptancemechan",{"_index":881,"title":{},"content":{"113":{}},"sidebarParentCategories":{}}],["acceptpresent",{"_index":1662,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["acceptpropos",{"_index":1660,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["acceptxxx",{"_index":1402,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["acces",{"_index":1730,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["access",{"_index":73,"title":{},"content":{"1":{},"44":{},"80":{},"82":{},"191":{},"192":{},"195":{},"219":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["access/jna/raw/5.5.0/lib/native/android",{"_index":654,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["accord",{"_index":325,"title":{},"content":{"29":{},"31":{},"33":{},"132":{},"138":{},"218":{}},"sidebarParentCategories":{}}],["accordingli",{"_index":1151,"title":{},"content":{"177":{},"224":{}},"sidebarParentCategories":{}}],["account",{"_index":1234,"title":{},"content":{"103":{},"190":{},"191":{},"193":{},"196":{},"198":{},"216":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["acm",{"_index":1036,"title":{},"content":{"137":{},"138":{},"140":{},"141":{}},"sidebarParentCategories":{}}],["acmeag",{"_index":1108,"title":{},"content":{"141":{}},"sidebarParentCategories":{}}],["act",{"_index":127,"title":{},"content":{"8":{},"197":{}},"sidebarParentCategories":{}}],["action",{"_index":288,"title":{},"content":{"22":{},"197":{},"224":{}},"sidebarParentCategories":{}}],["actionmenu",{"_index":1611,"title":{},"content":{"219":{}},"sidebarParentCategories":{}}],["actionmenumodul",{"_index":1617,"title":{},"content":{"219":{}},"sidebarParentCategories":{}}],["activ",{"_index":1114,"title":{},"content":{"141":{}},"sidebarParentCategories":{}}],["actual",{"_index":1506,"title":{},"content":{"193":{},"197":{}},"sidebarParentCategories":{}}],["ad",{"_index":605,"title":{"80":{},"81":{}},"content":{"79":{},"80":{},"103":{},"169":{},"191":{},"192":{},"193":{},"195":{},"197":{},"198":{},"199":{},"200":{},"222":{},"228":{}},"sidebarParentCategories":{}}],["adapt",{"_index":758,"title":{},"content":{"91":{},"170":{}},"sidebarParentCategories":{}}],["add",{"_index":327,"title":{"62":{},"79":{}},"content":{"29":{},"32":{},"34":{},"52":{},"78":{},"79":{},"81":{},"83":{},"90":{},"91":{},"175":{},"189":{},"215":{},"219":{},"224":{},"227":{}},"sidebarParentCategories":{}}],["addit",{"_index":512,"title":{"91":{},"140":{}},"content":{"75":{},"91":{},"191":{},"196":{},"199":{},"200":{},"222":{},"223":{},"226":{}},"sidebarParentCategories":{}}],["adjust",{"_index":682,"title":{},"content":{"81":{},"83":{}},"sidebarParentCategories":{}}],["admin",{"_index":378,"title":{},"content":{"38":{}},"sidebarParentCategories":{}}],["admin_account",{"_index":1235,"title":{},"content":{"103":{}},"sidebarParentCategories":{}}],["admin_password",{"_index":1236,"title":{},"content":{"103":{}},"sidebarParentCategories":{}}],["advanc",{"_index":836,"title":{},"content":{"99":{},"109":{}},"sidebarParentCategories":{}}],["advantag",{"_index":1323,"title":{},"content":{"184":{},"185":{},"191":{},"224":{}},"sidebarParentCategories":{}}],["afj",{"_index":267,"title":{"103":{},"165":{},"167":{},"168":{},"189":{},"215":{}},"content":{"20":{},"22":{},"23":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"38":{},"39":{},"40":{},"100":{},"101":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"173":{},"181":{},"182":{},"189":{},"190":{},"191":{},"192":{},"193":{},"215":{},"216":{},"218":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["afj'",{"_index":739,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["aforement",{"_index":1654,"title":{},"content":{"221":{}},"sidebarParentCategories":{}}],["afterward",{"_index":535,"title":{},"content":{"67":{},"185":{}},"sidebarParentCategories":{}}],["ag",{"_index":1145,"title":{},"content":{"176":{},"178":{},"179":{},"222":{}},"sidebarParentCategories":{}}],["again",{"_index":1350,"title":{},"content":{"185":{}},"sidebarParentCategories":{}}],["agent",{"_index":31,"title":{"7":{},"13":{},"85":{},"92":{},"94":{},"104":{},"138":{},"175":{},"184":{},"185":{},"186":{},"217":{}},"content":{"1":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"18":{},"19":{},"23":{},"28":{},"30":{},"35":{},"40":{},"84":{},"92":{},"93":{},"94":{},"95":{},"96":{},"98":{},"103":{},"104":{},"105":{},"106":{},"111":{},"112":{},"124":{},"125":{},"126":{},"128":{},"132":{},"135":{},"137":{},"138":{},"139":{},"140":{},"141":{},"172":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"182":{},"183":{},"184":{},"185":{},"186":{},"197":{},"217":{},"218":{},"219":{},"220":{},"224":{}},"sidebarParentCategories":{"97":{},"98":{},"99":{},"100":{}}}],["agent'",{"_index":1598,"title":{},"content":{"217":{},"224":{}},"sidebarParentCategories":{}}],["agent(agentconfig",{"_index":1597,"title":{},"content":{"217":{}},"sidebarParentCategories":{}}],["agent.config.filesystem.basepath}/afj/migration/backup/${backupidentifi",{"_index":1362,"title":{},"content":{"187":{}},"sidebarParentCategories":{}}],["agent.connections.createinvit",{"_index":1454,"title":{},"content":{"192":{}},"sidebarParentCategories":{}}],["agent.connections.findallbyoutofbandid(id",{"_index":1079,"title":{},"content":{"140":{}},"sidebarParentCategories":{}}],["agent.connections.findallbyoutofbandid(outofbandrecord.id",{"_index":1464,"title":{},"content":{"192":{}},"sidebarParentCategories":{}}],["agent.connections.receiveinvitation(parsedinvit",{"_index":1472,"title":{},"content":{"192":{}},"sidebarParentCategories":{}}],["agent.connections.receiveinvitationfromurl(invitationurl",{"_index":1468,"title":{},"content":{"192":{}},"sidebarParentCategories":{}}],["agent.credentials.findcredentialmessage('credentialrecordid",{"_index":1443,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["agent.credentials.findoffermessage('credentialrecordid",{"_index":1441,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["agent.credentials.findproposalmessage('credentialrecordid",{"_index":1440,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["agent.credentials.findrequestmessage('credentialrecordid",{"_index":1442,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["agent.credentials.getbyid('credentialrecordid",{"_index":1435,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["agent.credentials.getformatdata(credentialrecord.id",{"_index":1416,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["agent.credentials.offercredenti",{"_index":1392,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["agent.credentials.offercredential('connectionid",{"_index":1387,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["agent.discovery.isprotocolsupported(connectionid",{"_index":1640,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["agent.discovery.queryfeatur",{"_index":1634,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["agent.discovery.queryfeatures(connectionid",{"_index":1632,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["agent.events.on(connectioneventtypes.connectionstatechang",{"_index":1083,"title":{},"content":{"140":{},"141":{},"192":{}},"sidebarParentCategories":{}}],["agent.events.on(credentialeventtypes.credentialstatechang",{"_index":1155,"title":{},"content":{"177":{},"179":{}},"sidebarParentCategories":{}}],["holder.oob.receiveinvitationfromurl(invitationurl",{"_index":1190,"title":{},"content":{"179":{}},"sidebarParentCategories":{}}],["homebrew",{"_index":1258,"title":{},"content":{"144":{}},"sidebarParentCategories":{}}],["hood",{"_index":1356,"title":{},"content":{"186":{}},"sidebarParentCategories":{}}],["hook",{"_index":303,"title":{"25":{},"30":{}},"content":{"23":{},"30":{},"31":{},"32":{}},"sidebarParentCategories":{"31":{},"32":{}}}],["host",{"_index":295,"title":{},"content":{"23":{},"60":{},"111":{}},"sidebarParentCategories":{}}],["hous",{"_index":435,"title":{},"content":{"46":{}},"sidebarParentCategories":{}}],["http",{"_index":247,"title":{},"content":{"5":{},"23":{},"38":{},"40":{},"75":{},"93":{},"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["http://localhost:3000/doc",{"_index":387,"title":{},"content":{"38":{}},"sidebarParentCategories":{}}],["http://localhost:3001",{"_index":1050,"title":{},"content":{"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["http://localhost:3002",{"_index":1125,"title":{},"content":{"175":{},"179":{}},"sidebarParentCategories":{}}],["http://localhost:5000",{"_index":377,"title":{},"content":{"38":{}},"sidebarParentCategories":{}}],["httpinboundtransport",{"_index":785,"title":{},"content":{"93":{},"95":{},"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["httpoutboundtransport",{"_index":783,"title":{},"content":{"93":{},"95":{},"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())agent.registerinboundtransport(new",{"_index":787,"title":{},"content":{"93":{},"95":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())agent.registeroutboundtransport(new",{"_index":801,"title":{},"content":{"95":{}},"sidebarParentCategories":{}}],["https://afj.com",{"_index":1703,"title":{},"content":{"223":{}},"sidebarParentCategories":{}}],["https://cdn.cocoapods.org",{"_index":696,"title":{},"content":{"83":{}},"sidebarParentCategories":{}}],["https://crates.io/crates/env_logg",{"_index":1035,"title":{},"content":{"100":{}},"sidebarParentCategories":{}}],["https://deb.nodesource.com/setup_18.x",{"_index":501,"title":{},"content":{"70":{}},"sidebarParentCategories":{}}],["https://didcomm.agent.community.animo.id?c_i=ey....(mani",{"_index":961,"title":{},"content":{"128":{}},"sidebarParentCategories":{}}],["https://didcomm.org",{"_index":998,"title":{},"content":{"134":{}},"sidebarParentCategories":{}}],["https://didcomm.org/connections/1.0/invit",{"_index":1577,"title":{},"content":{"199":{}},"sidebarParentCategories":{}}],["https://didcomm.org/messagepickup/2.0",{"_index":1633,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["https://didcomm.org/mi",{"_index":1500,"title":{},"content":{"193":{},"224":{}},"sidebarParentCategories":{}}],["https://example.com",{"_index":1455,"title":{},"content":{"192":{},"199":{}},"sidebarParentCategories":{}}],["https://example.com?c_i=eyxxx",{"_index":1467,"title":{},"content":{"192":{}},"sidebarParentCategories":{}}],["https://example.org",{"_index":1062,"title":{},"content":{"138":{},"141":{},"179":{}},"sidebarParentCategories":{}}],["https://example.org:3000",{"_index":857,"title":{},"content":{"111":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/indi",{"_index":526,"title":{},"content":{"75":{},"83":{},"147":{},"155":{},"162":{}},"sidebarParentCategories":{}}],["https://github.com/java",{"_index":653,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://google.com",{"_index":1701,"title":{},"content":{"223":{}},"sidebarParentCategories":{}}],["https://picsum.photos/200",{"_index":1002,"title":{},"content":{"135":{}},"sidebarParentCategories":{}}],["https://raw.githubusercontent.com/homebrew/install/head/install.sh",{"_index":446,"title":{},"content":{"46":{},"54":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_arm64_1.16.0.zip",{"_index":630,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_armv7_1.16.0.zip",{"_index":638,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_x86_1.16.0.zip",{"_index":643,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/android/libindy/stable/1.16.0/libindy_android_x86_64_1.16.0.zip",{"_index":648,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["https://repo.sovrin.org/repository/maven",{"_index":609,"title":{},"content":{"79":{}},"sidebarParentCategories":{}}],["https://rpm.nodesource.com/setup_18.x",{"_index":506,"title":{},"content":{"70":{}},"sidebarParentCategories":{}}],["https://sh.rustup.r",{"_index":519,"title":{},"content":{"75":{}},"sidebarParentCategories":{}}],["hub",{"_index":195,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["hyperledg",{"_index":42,"title":{},"content":{"1":{},"11":{},"96":{}},"sidebarParentCategories":{}}],["i.",{"_index":1664,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["id",{"_index":374,"title":{},"content":{"38":{},"92":{},"95":{},"103":{},"106":{},"113":{},"129":{},"138":{},"140":{},"141":{},"175":{},"177":{},"179":{},"191":{},"192":{},"195":{},"199":{},"224":{},"228":{}},"sidebarParentCategories":{}}],["ident",{"_index":11,"title":{},"content":{"1":{},"3":{},"8":{},"10":{},"40":{},"176":{},"179":{}},"sidebarParentCategories":{}}],["identifi",{"_index":209,"title":{},"content":{"3":{},"107":{},"114":{},"115":{},"187":{}},"sidebarParentCategories":{}}],["ignor",{"_index":1186,"title":{},"content":{"179":{}},"sidebarParentCategories":{}}],["imag",{"_index":1000,"title":{},"content":{"135":{}},"sidebarParentCategories":{}}],["implement",{"_index":111,"title":{},"content":{"7":{},"12":{},"13":{},"35":{},"40":{},"80":{},"91":{},"99":{},"100":{},"109":{},"123":{},"220":{},"224":{}},"sidebarParentCategories":{}}],["impli",{"_index":1220,"title":{},"content":{"181":{}},"sidebarParentCategories":{}}],["implicit",{"_index":693,"title":{},"content":{"83":{}},"sidebarParentCategories":{}}],["implicitli",{"_index":987,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["import",{"_index":345,"title":{},"content":{"35":{},"81":{},"91":{},"92":{},"93":{},"95":{},"98":{},"99":{},"100":{},"103":{},"106":{},"113":{},"123":{},"124":{},"125":{},"126":{},"132":{},"141":{},"175":{},"179":{},"184":{},"185":{},"186":{},"191":{},"192":{},"193":{},"194":{},"219":{},"224":{},"225":{}},"sidebarParentCategories":{}}],["improv",{"_index":712,"title":{},"content":{"83":{},"170":{},"187":{}},"sidebarParentCategories":{}}],["inbound",{"_index":382,"title":{},"content":{"38":{},"93":{},"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["inboundtransport",{"_index":1130,"title":{},"content":{"175":{}},"sidebarParentCategories":{}}],["includ",{"_index":254,"title":{},"content":{"17":{},"23":{},"84":{},"91":{},"106":{},"113":{},"140":{},"141":{},"171":{},"179":{},"187":{},"224":{}},"sidebarParentCategories":{}}],["incom",{"_index":940,"title":{"140":{},"177":{}},"content":{"125":{},"126":{},"177":{}},"sidebarParentCategories":{}}],["independ",{"_index":511,"title":{},"content":{"75":{}},"sidebarParentCategories":{}}],["index.(js|ts|jsx|tsx",{"_index":735,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["index.tsx",{"_index":736,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["indi",{"_index":433,"title":{"52":{},"58":{},"67":{},"75":{},"81":{},"100":{},"147":{},"155":{},"162":{}},"content":{"45":{},"50":{},"51":{},"52":{},"53":{},"58":{},"59":{},"60":{},"67":{},"68":{},"73":{},"74":{},"75":{},"76":{},"80":{},"81":{},"83":{},"90":{},"100":{},"101":{},"112":{},"113":{},"115":{},"119":{},"122":{},"146":{},"147":{},"148":{},"149":{},"154":{},"155":{},"156":{},"157":{},"161":{},"162":{},"163":{},"178":{},"179":{},"189":{},"191":{},"196":{},"198":{},"215":{},"222":{},"223":{}},"sidebarParentCategories":{}}],["indic",{"_index":1302,"title":{},"content":{"169":{},"191":{},"192":{},"222":{}},"sidebarParentCategories":{}}],["indicio",{"_index":873,"title":{},"content":{"113":{}},"sidebarParentCategories":{}}],["indy_crypto_prebuilt_deps_dir=c:\\users\\{windows_user}\\downloads\\indi",{"_index":1267,"title":{},"content":{"160":{}},"sidebarParentCategories":{}}],["indy_generate_wallet_key",{"_index":830,"title":{},"content":{"109":{}},"sidebarParentCategories":{}}],["indy_prebuilt_deps_dir=c:\\users\\{windows_user}\\downloads\\indi",{"_index":1265,"title":{},"content":{"160":{}},"sidebarParentCategories":{}}],["indy_set_default_logg",{"_index":1031,"title":{},"content":{"100":{}},"sidebarParentCategories":{}}],["indy_set_logg",{"_index":1032,"title":{},"content":{"100":{}},"sidebarParentCategories":{}}],["indycredenti",{"_index":1519,"title":{},"content":{"195":{}},"sidebarParentCategories":{}}],["indycredential?.credentialdefinitionid",{"_index":1520,"title":{},"content":{"195":{}},"sidebarParentCategories":{}}],["indycredential?.schemaid",{"_index":1521,"title":{},"content":{"195":{}},"sidebarParentCategories":{}}],["indycredentialmetadata",{"_index":1410,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["indycredentialmetadata?.credentialdefinitionid",{"_index":1412,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["indycredentialmetadata?.schemaid",{"_index":1413,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["indyledg",{"_index":866,"title":{"113":{}},"content":{"113":{},"175":{},"179":{},"217":{},"221":{}},"sidebarParentCategories":{}}],["indyledgers.genesispath",{"_index":892,"title":{"117":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.genesistransact",{"_index":896,"title":{"118":{}},"content":{"117":{}},"sidebarParentCategories":{}}],["indyledgers.id",{"_index":883,"title":{"114":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.indynamespac",{"_index":884,"title":{"115":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.isproduct",{"_index":888,"title":{"116":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.transactionauthoragr",{"_index":898,"title":{"119":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.transactionauthoragreement.acceptancemechan",{"_index":907,"title":{"121":{}},"content":{},"sidebarParentCategories":{}}],["indyledgers.transactionauthoragreement.vers",{"_index":904,"title":{"120":{}},"content":{},"sidebarParentCategories":{}}],["indynamespac",{"_index":876,"title":{},"content":{"113":{},"175":{},"179":{},"217":{}},"sidebarParentCategories":{}}],["indypoolconfig",{"_index":872,"title":{},"content":{"113":{}},"sidebarParentCategories":{}}],["indypostgresstorageconfig",{"_index":1227,"title":{},"content":{"103":{}},"sidebarParentCategories":{}}],["indysdk",{"_index":1226,"title":{},"content":{"101":{}},"sidebarParentCategories":{}}],["indystrgpostgres.dl",{"_index":1277,"title":{},"content":{"163":{},"164":{}},"sidebarParentCategories":{}}],["infer",{"_index":980,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["info",{"_index":677,"title":{},"content":{"81":{},"171":{},"190":{},"216":{},"220":{}},"sidebarParentCategories":{}}],["info(messag",{"_index":1016,"title":{},"content":{"99":{}},"sidebarParentCategories":{}}],["inform",{"_index":219,"title":{},"content":{"4":{},"100":{},"125":{},"126":{}},"sidebarParentCategories":{}}],["initconfig",{"_index":773,"title":{},"content":{"92":{},"95":{},"98":{},"103":{},"138":{},"141":{},"175":{},"179":{},"217":{}},"sidebarParentCategories":{}}],["initi",{"_index":50,"title":{"94":{}},"content":{"1":{},"41":{},"92":{},"94":{},"95":{},"103":{},"106":{},"112":{},"137":{},"138":{},"141":{},"174":{},"175":{},"179":{},"184":{},"185":{},"186":{},"191":{},"217":{},"222":{}},"sidebarParentCategories":{}}],["initializeacmeag",{"_index":1047,"title":{},"content":{"138":{},"141":{}},"sidebarParentCategories":{}}],["initializebobag",{"_index":1040,"title":{},"content":{"138":{},"141":{}},"sidebarParentCategories":{}}],["initializeholderag",{"_index":1119,"title":{},"content":{"175":{},"179":{}},"sidebarParentCategories":{}}],["initializeissuerag",{"_index":1137,"title":{},"content":{"175":{},"179":{}},"sidebarParentCategories":{}}],["inject",{"_index":1616,"title":{},"content":{"219":{},"224":{}},"sidebarParentCategories":{}}],["insid",{"_index":105,"title":{},"content":{"5":{},"12":{},"78":{},"79":{},"81":{},"98":{},"139":{},"175":{},"184":{}},"sidebarParentCategories":{}}],["insight",{"_index":430,"title":{},"content":{"45":{}},"sidebarParentCategories":{}}],["instal",{"_index":337,"title":{"32":{},"34":{},"42":{},"44":{},"53":{},"59":{},"68":{},"76":{},"82":{},"90":{},"102":{},"145":{},"152":{}},"content":{"36":{},"38":{},"41":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"82":{},"83":{},"89":{},"90":{},"101":{},"102":{},"145":{},"148":{},"153":{},"156":{},"159":{},"175":{},"189":{},"215":{}},"sidebarParentCategories":{"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"83":{}}}],["instanc",{"_index":360,"title":{},"content":{"40":{},"93":{},"123":{},"138":{},"141":{},"172":{},"175":{},"179":{},"191":{},"219":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["instanceconst",{"_index":797,"title":{},"content":{"95":{}},"sidebarParentCategories":{}}],["instanceof",{"_index":1447,"title":{},"content":{"191":{},"222":{}},"sidebarParentCategories":{}}],["instanti",{"_index":1166,"title":{"184":{}},"content":{"178":{},"182":{},"183":{},"185":{},"193":{}},"sidebarParentCategories":{}}],["instantli",{"_index":354,"title":{},"content":{"40":{}},"sidebarParentCategories":{}}],["instead",{"_index":179,"title":{},"content":{"9":{},"101":{},"191":{},"192":{},"193":{},"199":{},"218":{},"220":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["instruct",{"_index":1307,"title":{},"content":{"169":{},"172":{}},"sidebarParentCategories":{}}],["integ",{"_index":845,"title":{},"content":{"109":{}},"sidebarParentCategories":{}}],["integr",{"_index":344,"title":{},"content":{"35":{},"171":{},"219":{}},"sidebarParentCategories":{}}],["intel",{"_index":426,"title":{"54":{}},"content":{"45":{},"54":{},"143":{}},"sidebarParentCategories":{}}],["intend",{"_index":1511,"title":{},"content":{"194":{}},"sidebarParentCategories":{}}],["intent",{"_index":1216,"title":{},"content":{"181":{}},"sidebarParentCategories":{}}],["interact",{"_index":112,"title":{},"content":{"7":{},"8":{},"12":{},"13":{},"23":{},"30":{},"35":{},"40":{},"52":{},"58":{},"67":{},"75":{},"122":{},"171":{},"177":{},"218":{}},"sidebarParentCategories":{}}],["interfac",{"_index":336,"title":{},"content":{"30":{},"99":{},"103":{},"123":{},"177":{},"224":{}},"sidebarParentCategories":{}}],["intern",{"_index":1376,"title":{},"content":{"190":{},"191":{},"192":{},"216":{},"217":{},"222":{}},"sidebarParentCategories":{}}],["internet",{"_index":353,"title":{},"content":{"40":{}},"sidebarParentCategories":{}}],["interoper",{"_index":46,"title":{},"content":{"1":{},"5":{},"8":{},"40":{}},"sidebarParentCategories":{}}],["interv",{"_index":971,"title":{},"content":{"131":{}},"sidebarParentCategories":{}}],["intro",{"_index":0,"title":{"1":{}},"content":{},"sidebarParentCategories":{}}],["introduc",{"_index":1658,"title":{},"content":{"222":{},"224":{},"225":{},"227":{}},"sidebarParentCategories":{}}],["invit",{"_index":852,"title":{"139":{}},"content":{"111":{},"128":{},"137":{},"138":{},"139":{},"140":{},"141":{},"175":{},"179":{},"192":{},"199":{},"200":{},"223":{}},"sidebarParentCategories":{}}],["invitation.tourl",{"_index":1066,"title":{},"content":{"138":{},"141":{},"192":{}},"sidebarParentCategories":{}}],["invitationdid",{"_index":1570,"title":{},"content":{"199":{}},"sidebarParentCategories":{}}],["invitationurl",{"_index":1059,"title":{},"content":{"138":{},"139":{},"141":{},"179":{},"192":{},"223":{}},"sidebarParentCategories":{}}],["invitationurl)}export",{"_index":1117,"title":{},"content":{"141":{}},"sidebarParentCategories":{}}],["invitationurl)}void",{"_index":1207,"title":{},"content":{"179":{}},"sidebarParentCategories":{}}],["invite",{"_index":1458,"title":{},"content":{"192":{}},"sidebarParentCategories":{}}],["io",{"_index":548,"title":{"83":{}},"content":{"60":{},"83":{},"175":{}},"sidebarParentCategories":{}}],["ios/podfil",{"_index":691,"title":{},"content":{"83":{}},"sidebarParentCategories":{}}],["iot",{"_index":133,"title":{},"content":{"8":{}},"sidebarParentCategories":{}}],["isn't",{"_index":1490,"title":{},"content":{"193":{},"224":{}},"sidebarParentCategories":{}}],["ispickupv2support",{"_index":1639,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["isproduct",{"_index":877,"title":{},"content":{"113":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["isprotocolsupport",{"_index":1635,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["issu",{"_index":149,"title":{"87":{},"174":{},"178":{}},"content":{"8":{},"22":{},"40":{},"62":{},"81":{},"84":{},"137":{},"140":{},"169":{},"171":{},"174":{},"176":{},"179":{},"180":{},"191":{},"196":{},"197":{},"218":{},"222":{}},"sidebarParentCategories":{}}],["issuecredenti",{"_index":1168,"title":{},"content":{"178":{},"179":{}},"sidebarParentCategories":{}}],["issuecredential(issu",{"_index":1199,"title":{},"content":{"179":{}},"sidebarParentCategories":{}}],["issuer",{"_index":118,"title":{},"content":{"12":{},"15":{},"16":{},"41":{},"174":{},"175":{},"176":{},"178":{},"179":{}},"sidebarParentCategories":{}}],["issuer.credentials.offercredenti",{"_index":1170,"title":{},"content":{"178":{},"179":{}},"sidebarParentCategories":{}}],["issuer.events.on(connectioneventtypes.connectionstatechang",{"_index":1192,"title":{},"content":{"179":{}},"sidebarParentCategories":{}}],["issuer.ledger.registercredentialdefinit",{"_index":1148,"title":{},"content":{"176":{},"179":{}},"sidebarParentCategories":{}}],["issuer.ledger.registerschema",{"_index":1143,"title":{},"content":{"176":{},"179":{}},"sidebarParentCategories":{}}],["issuer.oob.createinvit",{"_index":1189,"title":{},"content":{"179":{}},"sidebarParentCategories":{}}],["isvalidmessagetyp",{"_index":1502,"title":{},"content":{"193":{}},"sidebarParentCategories":{}}],["isvalidmessagetype(mymessage.typ",{"_index":1503,"title":{},"content":{"193":{}},"sidebarParentCategories":{}}],["it'",{"_index":1033,"title":{},"content":{"100":{},"197":{},"224":{}},"sidebarParentCategories":{}}],["item",{"_index":317,"title":{},"content":{"23":{},"24":{},"25":{},"26":{},"27":{},"41":{},"42":{},"84":{},"85":{},"86":{},"88":{},"119":{},"137":{},"174":{}},"sidebarParentCategories":{}}],["itself",{"_index":218,"title":{},"content":{"4":{},"191":{},"198":{},"220":{},"228":{}},"sidebarParentCategories":{}}],["jane",{"_index":1173,"title":{},"content":{"178":{},"179":{}},"sidebarParentCategories":{}}],["jar",{"_index":656,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["java",{"_index":611,"title":{},"content":{"80":{}},"sidebarParentCategories":{}}],["java.io.fil",{"_index":671,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["javascript",{"_index":3,"title":{"17":{},"20":{}},"content":{"1":{},"5":{},"8":{},"9":{},"11":{},"12":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"23":{},"29":{},"31":{},"33":{},"40":{},"41":{},"44":{},"45":{},"47":{},"52":{},"55":{},"58":{},"64":{},"67":{},"70":{},"75":{},"82":{},"104":{},"123":{},"136":{},"165":{},"169":{},"171":{}},"sidebarParentCategories":{}}],["jna",{"_index":610,"title":{"80":{}},"content":{"80":{},"81":{}},"sidebarParentCategories":{}}],["jnilib",{"_index":617,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["js",{"_index":271,"title":{"21":{}},"content":{"21":{},"91":{}},"sidebarParentCategories":{}}],["json",{"_index":747,"title":{},"content":{"91":{},"117":{},"118":{},"119":{}},"sidebarParentCategories":{}}],["kali",{"_index":1246,"title":{"153":{}},"content":{},"sidebarParentCategories":{}}],["keep",{"_index":77,"title":{},"content":{"1":{},"101":{},"169":{},"171":{},"181":{},"191":{},"194":{},"200":{},"218":{},"222":{}},"sidebarParentCategories":{}}],["kept",{"_index":821,"title":{},"content":{"108":{}},"sidebarParentCategories":{}}],["key",{"_index":140,"title":{},"content":{"4":{},"8":{},"38":{},"92":{},"95":{},"103":{},"106":{},"108":{},"109":{},"121":{},"138":{},"141":{},"175":{},"179":{},"191":{},"194":{},"195":{},"217":{},"218":{},"222":{},"225":{}},"sidebarParentCategories":{}}],["keyderivationmethod",{"_index":812,"title":{},"content":{"106":{},"109":{}},"sidebarParentCategories":{}}],["keyderivationmethod.argon2imod",{"_index":816,"title":{},"content":{"106":{},"109":{}},"sidebarParentCategories":{}}],["keyderivationmethod.argon2int",{"_index":844,"title":{},"content":{"109":{}},"sidebarParentCategories":{}}],["keyderivationmethod.raw",{"_index":827,"title":{},"content":{"109":{}},"sidebarParentCategories":{}}],["kind",{"_index":567,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["kit",{"_index":48,"title":{},"content":{"1":{}},"sidebarParentCategories":{}}],["know",{"_index":870,"title":{},"content":{"113":{},"137":{},"140":{},"141":{},"165":{},"167":{},"168":{},"171":{},"179":{},"189":{},"194":{},"215":{},"225":{}},"sidebarParentCategories":{}}],["knowledg",{"_index":251,"title":{},"content":{"5":{},"92":{},"137":{},"174":{}},"sidebarParentCategories":{}}],["known",{"_index":549,"title":{"61":{}},"content":{},"sidebarParentCategories":{}}],["label",{"_index":373,"title":{"105":{}},"content":{"38":{},"92":{},"95":{},"103":{},"105":{},"119":{},"121":{},"135":{},"138":{},"141":{},"175":{},"179":{},"199":{}},"sidebarParentCategories":{}}],["lack",{"_index":236,"title":{},"content":{"5":{}},"sidebarParentCategories":{}}],["larg",{"_index":407,"title":{},"content":{"44":{},"82":{}},"sidebarParentCategories":{}}],["lastli",{"_index":157,"title":{},"content":{"8":{},"52":{},"75":{}},"sidebarParentCategories":{}}],["later",{"_index":147,"title":{},"content":{"8":{},"106":{},"185":{},"191":{},"195":{},"198":{}},"sidebarParentCategories":{}}],["latest",{"_index":294,"title":{},"content":{"22":{},"83":{},"185":{},"189":{},"191":{},"215":{}},"sidebarParentCategories":{}}],["launch",{"_index":1335,"title":{},"content":{"184":{},"185":{}},"sidebarParentCategories":{}}],["ld_library_path",{"_index":542,"title":{},"content":{"67":{}},"sidebarParentCategories":{}}],["lead",{"_index":912,"title":{},"content":{"122":{},"141":{},"179":{},"197":{}},"sidebarParentCategories":{}}],["ledger",{"_index":465,"title":{"221":{}},"content":{"52":{},"58":{},"67":{},"75":{},"81":{},"112":{},"113":{},"114":{},"116":{},"122":{},"175":{},"181":{},"217":{},"221":{}},"sidebarParentCategories":{}}],["legaci",{"_index":755,"title":{},"content":{"91":{},"134":{},"138":{},"179":{},"192":{},"198":{},"223":{}},"sidebarParentCategories":{}}],["legacydiddoc",{"_index":1566,"title":{},"content":{"198":{}},"sidebarParentCategories":{}}],["legacytheirdiddoc",{"_index":1567,"title":{},"content":{"198":{}},"sidebarParentCategories":{}}],["less",{"_index":846,"title":{},"content":{"109":{},"124":{},"192":{},"223":{}},"sidebarParentCategories":{}}],["level",{"_index":110,"title":{},"content":{"12":{},"41":{},"52":{},"58":{},"67":{},"75":{},"100":{}},"sidebarParentCategories":{}}],["leverag",{"_index":1225,"title":{},"content":{"101":{},"165":{},"166":{},"182":{},"183":{},"185":{}},"sidebarParentCategories":{}}],["lib_indy_strg_postgres=c:\\users\\{windows_user}\\downloads\\indi",{"_index":1280,"title":{},"content":{"164":{}},"sidebarParentCategories":{}}],["libari",{"_index":614,"title":{"81":{}},"content":{},"sidebarParentCategories":{}}],["libcore/result.rs:945",{"_index":570,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["libindi",{"_index":370,"title":{},"content":{"38":{},"58":{},"100":{},"159":{}},"sidebarParentCategories":{}}],["libindy_arm64/lib/libindy.so",{"_index":634,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["libindy_armv7/lib/libindy.so",{"_index":640,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["libindy_x86/lib/libindy.so",{"_index":645,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["libindy_x86_64/lib/libindy.so",{"_index":650,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["libjnidispatch.so",{"_index":658,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["librari",{"_index":296,"title":{"80":{}},"content":{"23":{},"52":{},"62":{},"67":{},"75":{},"80":{},"81":{},"83":{},"163":{}},"sidebarParentCategories":{}}],["libsodium",{"_index":431,"title":{"50":{},"73":{}},"content":{"45":{},"50":{},"73":{},"74":{},"145":{},"153":{}},"sidebarParentCategories":{}}],["libssl",{"_index":1248,"title":{},"content":{"153":{}},"sidebarParentCategories":{}}],["libzmq",{"_index":432,"title":{"51":{},"74":{}},"content":{"45":{},"51":{},"74":{}},"sidebarParentCategories":{}}],["libzmq3",{"_index":510,"title":{},"content":{"74":{},"153":{}},"sidebarParentCategories":{}}],["libzmq_prefix=c:\\users\\{windows_user}\\downloads\\indi",{"_index":1269,"title":{},"content":{"160":{}},"sidebarParentCategories":{}}],["licens",{"_index":194,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["lightweight",{"_index":461,"title":{},"content":{"51":{},"74":{}},"sidebarParentCategories":{}}],["line",{"_index":689,"title":{},"content":{"83":{},"100":{}},"sidebarParentCategories":{}}],["link",{"_index":474,"title":{},"content":{"52":{},"111":{},"192":{},"224":{}},"sidebarParentCategories":{}}],["linux",{"_index":423,"title":{"69":{},"150":{}},"content":{"45":{},"52":{},"69":{},"70":{},"73":{},"74":{},"102":{}},"sidebarParentCategories":{}}],["list",{"_index":392,"title":{},"content":{"39":{},"111":{},"113":{},"119":{},"175":{},"190":{},"216":{}},"sidebarParentCategories":{}}],["listen",{"_index":1074,"title":{"140":{},"177":{}},"content":{"140":{},"177":{},"179":{},"192":{}},"sidebarParentCategories":{}}],["lo",{"_index":652,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["load",{"_index":666,"title":{},"content":{"81":{},"103":{}},"sidebarParentCategories":{}}],["loadpostgresplugin",{"_index":1228,"title":{},"content":{"103":{}},"sidebarParentCategories":{}}],["loadpostgresplugin(storageconfig.config",{"_index":1237,"title":{},"content":{"103":{}},"sidebarParentCategories":{}}],["local",{"_index":1134,"title":{},"content":{"101":{},"175":{}},"sidebarParentCategories":{}}],["localhost:5432",{"_index":1231,"title":{},"content":{"103":{}},"sidebarParentCategories":{}}],["locat",{"_index":170,"title":{},"content":{"9":{},"52":{},"67":{},"75":{},"79":{},"81":{},"117":{},"163":{},"187":{}},"sidebarParentCategories":{}}],["log",{"_index":920,"title":{"97":{},"100":{}},"content":{"98":{},"100":{},"123":{}},"sidebarParentCategories":{}}],["logger",{"_index":916,"title":{"99":{},"123":{}},"content":{"98":{},"99":{},"100":{},"123":{}},"sidebarParentCategories":{}}],["logic",{"_index":1092,"title":{},"content":{"140":{},"141":{},"177":{},"179":{}},"sidebarParentCategories":{}}],["loglevel",{"_index":921,"title":{},"content":{"98":{},"99":{},"123":{}},"sidebarParentCategories":{}}],["loglevel.off",{"_index":1009,"title":{},"content":{"99":{}},"sidebarParentCategories":{}}],["long",{"_index":864,"title":{},"content":{"112":{},"114":{}},"sidebarParentCategories":{}}],["look",{"_index":290,"title":{},"content":{"22":{},"44":{},"82":{}},"sidebarParentCategories":{}}],["loos",{"_index":184,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["lot",{"_index":20,"title":{},"content":{"1":{},"4":{},"190":{},"194":{},"216":{},"223":{}},"sidebarParentCategories":{}}],["lower",{"_index":464,"title":{},"content":{"52":{},"58":{},"67":{},"75":{},"122":{}},"sidebarParentCategories":{}}],["luckili",{"_index":13,"title":{},"content":{"1":{},"172":{}},"sidebarParentCategories":{}}],["m1",{"_index":437,"title":{},"content":{"46":{}},"sidebarParentCategories":{}}],["machin",{"_index":367,"title":{},"content":{"37":{}},"sidebarParentCategories":{}}],["maco",{"_index":468,"title":{"143":{}},"content":{"52":{},"58":{},"102":{}},"sidebarParentCategories":{}}],["made",{"_index":492,"title":{},"content":{"58":{},"172":{},"187":{},"190":{},"191":{},"192":{},"216":{},"224":{}},"sidebarParentCategories":{}}],["main",{"_index":15,"title":{},"content":{"1":{}},"sidebarParentCategories":{}}],["mainacm",{"_index":1048,"title":{},"content":{"138":{},"141":{}},"sidebarParentCategories":{}}],["mainact",{"_index":573,"title":{},"content":{"62":{},"81":{}},"sidebarParentCategories":{}}],["mainactivity.java",{"_index":667,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["mainbob",{"_index":1041,"title":{},"content":{"138":{},"141":{}},"sidebarParentCategories":{}}],["mainli",{"_index":1792,"title":{},"content":{"225":{}},"sidebarParentCategories":{}}],["maintain",{"_index":75,"title":{},"content":{"1":{},"22":{}},"sidebarParentCategories":{}}],["major",{"_index":361,"title":{},"content":{"40":{},"169":{}},"sidebarParentCategories":{}}],["make",{"_index":17,"title":{},"content":{"1":{},"40":{},"91":{},"106":{},"122":{},"159":{},"165":{},"167":{},"168":{},"170":{},"175":{},"176":{},"187":{},"189":{},"190":{},"191":{},"197":{},"215":{},"216":{},"222":{},"224":{}},"sidebarParentCategories":{}}],["manag",{"_index":343,"title":{},"content":{"35":{},"48":{},"56":{},"65":{},"71":{},"148":{},"151":{},"156":{},"165":{},"166":{},"182":{}},"sidebarParentCategories":{}}],["mani",{"_index":165,"title":{},"content":{"9":{},"75":{},"133":{},"194":{}},"sidebarParentCategories":{}}],["manual",{"_index":718,"title":{"184":{}},"content":{"83":{},"127":{},"165":{},"166":{},"182":{},"183":{},"184":{},"185":{},"189":{},"215":{}},"sidebarParentCategories":{}}],["mark",{"_index":1715,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["match",{"_index":1404,"title":{},"content":{"191":{},"197":{},"220":{}},"sidebarParentCategories":{}}],["maven",{"_index":601,"title":{"79":{}},"content":{"79":{}},"sidebarParentCategories":{}}],["max",{"_index":439,"title":{},"content":{"46":{}},"sidebarParentCategories":{}}],["maximummessagepickup",{"_index":989,"title":{"133":{}},"content":{"133":{}},"sidebarParentCategories":{}}],["mean",{"_index":148,"title":{},"content":{"4":{},"5":{},"8":{},"75":{},"169":{},"171":{},"184":{},"185":{},"186":{},"191":{},"197":{},"199":{},"224":{}},"sidebarParentCategories":{}}],["mechan",{"_index":226,"title":{},"content":{"4":{},"119":{},"120":{},"121":{},"198":{},"224":{}},"sidebarParentCategories":{}}],["mediat",{"_index":347,"title":{"197":{}},"content":{"35":{},"93":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"138":{},"141":{},"175":{},"179":{},"197":{},"227":{}},"sidebarParentCategories":{}}],["mediationrole.medi",{"_index":1531,"title":{},"content":{"197":{}},"sidebarParentCategories":{}}],["mediationrole.recipi",{"_index":1541,"title":{},"content":{"197":{}},"sidebarParentCategories":{}}],["mediationroleupdatestrategi",{"_index":1327,"title":{},"content":{"184":{},"185":{},"194":{}},"sidebarParentCategories":{}}],["mediatorconnectionsinvit",{"_index":956,"title":{"128":{}},"content":{"128":{},"129":{},"130":{}},"sidebarParentCategories":{}}],["mediatormodul",{"_index":955,"title":{},"content":{"127":{}},"sidebarParentCategories":{}}],["mediatorpickupstrategi",{"_index":979,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["mediatorpickupstrategy.implicit",{"_index":986,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["mediatorpickupstrategy.pickupv1",{"_index":982,"title":{},"content":{"132":{}},"sidebarParentCategories":{}}],["mediatorpickupstrategy.pickupv2",{"_index":984,"title":{},"content":{"132":{},"133":{}},"sidebarParentCategories":{}}],["mediatorpickupstrateri",{"_index":975,"title":{"132":{}},"content":{},"sidebarParentCategories":{}}],["mediatorpollinginterv",{"_index":970,"title":{"131":{}},"content":{"131":{}},"sidebarParentCategories":{}}],["meet",{"_index":275,"title":{},"content":{"21":{}},"sidebarParentCategories":{}}],["member",{"_index":840,"title":{},"content":{"109":{},"124":{},"125":{},"126":{},"132":{}},"sidebarParentCategories":{}}],["mention",{"_index":233,"title":{},"content":{"5":{},"75":{},"171":{},"172":{}},"sidebarParentCategories":{}}],["menu",{"_index":1613,"title":{},"content":{"219":{}},"sidebarParentCategories":{}}],["mere",{"_index":1451,"title":{},"content":{"192":{}},"sidebarParentCategories":{}}],["messag",{"_index":152,"title":{"193":{}},"content":{"4":{},"5":{},"8":{},"10":{},"20":{},"51":{},"62":{},"74":{},"100":{},"124":{},"132":{},"137":{},"140":{},"141":{},"179":{},"190":{},"191":{},"193":{},"196":{},"199":{},"222":{},"223":{},"224":{},"226":{}},"sidebarParentCategories":{}}],["message.id",{"_index":1739,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagecontext",{"_index":1729,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagecontext.agentcontext",{"_index":1731,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagecontext.message.id",{"_index":1746,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagecontext.message.thread?.parentthreadid",{"_index":1747,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagehandl",{"_index":1709,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagehandlerinboundmessag",{"_index":1712,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["messagehandlerinboundmessage(agentcontext",{"_index":1751,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.loglevel",{"_index":1010,"title":{},"content":{"99":{}},"sidebarParentCategories":{}}],["this.messagesend",{"_index":1776,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessag",{"_index":1765,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessagecontext",{"_index":1769,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(agentcontext",{"_index":1750,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(record",{"_index":1740,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myrepository.save(messagecontext.agentcontext",{"_index":1753,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myrepository.save(record",{"_index":1748,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.myservic",{"_index":1777,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["this.registerhandlers(messagehandlerregistri",{"_index":1779,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["those",{"_index":1588,"title":{},"content":{"200":{}},"sidebarParentCategories":{}}],["though",{"_index":1477,"title":{},"content":{"192":{}},"sidebarParentCategories":{}}],["thread",{"_index":559,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["threadid",{"_index":1738,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["three",{"_index":125,"title":{},"content":{"8":{},"18":{},"183":{}},"sidebarParentCategories":{}}],["threshold",{"_index":1671,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["through",{"_index":350,"title":{},"content":{"35":{},"41":{},"44":{},"82":{},"100":{},"191":{},"222":{}},"sidebarParentCategories":{}}],["throughout",{"_index":1433,"title":{},"content":{"191":{},"222":{}},"sidebarParentCategories":{}}],["throw",{"_index":1213,"title":{},"content":{"148":{},"156":{},"163":{},"181":{},"187":{},"197":{}},"sidebarParentCategories":{}}],["thrown",{"_index":1760,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["thu",{"_index":766,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["ti",{"_index":1689,"title":{},"content":{"223":{}},"sidebarParentCategories":{}}],["time",{"_index":1705,"title":{},"content":{"223":{}},"sidebarParentCategories":{}}],["timestamp",{"_index":1361,"title":{},"content":{"187":{}},"sidebarParentCategories":{}}],["tlsv1.2",{"_index":517,"title":{},"content":{"75":{}},"sidebarParentCategories":{}}],["todo",{"_index":473,"title":{},"content":{"52":{},"93":{},"110":{},"125":{},"126":{},"140":{}},"sidebarParentCategories":{}}],["togeth",{"_index":100,"title":{},"content":{"1":{}},"sidebarParentCategories":{}}],["token",{"_index":321,"title":{},"content":{"28":{}},"sidebarParentCategories":{}}],["tool",{"_index":47,"title":{},"content":{"1":{},"5":{},"194":{},"225":{}},"sidebarParentCategories":{}}],["toolkit",{"_index":154,"title":{},"content":{"8":{},"23":{}},"sidebarParentCategories":{}}],["top",{"_index":79,"title":{},"content":{"1":{},"23":{}},"sidebarParentCategories":{}}],["trace(messag",{"_index":1014,"title":{},"content":{"99":{}},"sidebarParentCategories":{}}],["traffic",{"_index":782,"title":{},"content":{"93":{}},"sidebarParentCategories":{}}],["transact",{"_index":895,"title":{},"content":{"117":{},"118":{},"119":{}},"sidebarParentCategories":{}}],["transactionauthoragr",{"_index":880,"title":{},"content":{"113":{},"119":{}},"sidebarParentCategories":{}}],["transform",{"_index":1452,"title":{},"content":{"192":{},"200":{}},"sidebarParentCategories":{}}],["transmit",{"_index":52,"title":{},"content":{"1":{},"139":{}},"sidebarParentCategories":{}}],["transport",{"_index":241,"title":{"93":{}},"content":{"5":{},"38":{},"93":{},"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["transportagent.registeroutboundtransport(new",{"_index":800,"title":{},"content":{"95":{}},"sidebarParentCategories":{}}],["transportsagent.registeroutboundtransport(new",{"_index":798,"title":{},"content":{"95":{}},"sidebarParentCategories":{}}],["tri",{"_index":587,"title":{},"content":{"62":{},"81":{},"143":{},"171":{},"190":{},"216":{}},"sidebarParentCategories":{}}],["trick",{"_index":768,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["true",{"_index":589,"title":{},"content":{"62":{},"81":{},"83":{},"122":{},"127":{},"130":{},"134":{},"136":{},"138":{},"139":{},"141":{},"175":{},"179":{},"186":{},"199":{},"220":{},"223":{}},"sidebarParentCategories":{}}],["ts",{"_index":748,"title":{},"content":{"91":{},"179":{}},"sidebarParentCategories":{}}],["tsx",{"_index":749,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["tunnel",{"_index":1132,"title":{},"content":{"175":{}},"sidebarParentCategories":{}}],["tutori",{"_index":87,"title":{"84":{}},"content":{"1":{},"92":{},"137":{},"138":{},"141":{},"174":{},"175":{},"217":{}},"sidebarParentCategories":{"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{}}}],["two",{"_index":167,"title":{},"content":{"9":{},"170":{},"200":{},"219":{},"223":{}},"sidebarParentCategories":{}}],["type",{"_index":210,"title":{"170":{},"193":{}},"content":{"3":{},"92":{},"95":{},"98":{},"103":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"169":{},"190":{},"191":{},"193":{},"199":{},"222":{},"224":{},"227":{}},"sidebarParentCategories":{}}],["typescript",{"_index":61,"title":{},"content":{"1":{}},"sidebarParentCategories":{}}],["ubuntu",{"_index":1244,"title":{"153":{}},"content":{},"sidebarParentCategories":{}}],["ui",{"_index":349,"title":{},"content":{"35":{}},"sidebarParentCategories":{}}],["under",{"_index":1129,"title":{},"content":{"175":{},"186":{}},"sidebarParentCategories":{}}],["underli",{"_index":1020,"title":{},"content":{"100":{}},"sidebarParentCategories":{}}],["understand",{"_index":107,"title":{},"content":{"12":{}},"sidebarParentCategories":{}}],["unifi",{"_index":1587,"title":{"200":{}},"content":{"220":{}},"sidebarParentCategories":{}}],["unimodul",{"_index":756,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["unimodules/cor",{"_index":759,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["unimodules/react",{"_index":757,"title":{},"content":{"91":{}},"sidebarParentCategories":{}}],["uniqu",{"_index":141,"title":{},"content":{"8":{},"114":{},"119":{},"220":{}},"sidebarParentCategories":{}}],["unless",{"_index":1605,"title":{},"content":{"218":{}},"sidebarParentCategories":{}}],["unlock",{"_index":820,"title":{},"content":{"108":{}},"sidebarParentCategories":{}}],["unnam",{"_index":560,"title":{},"content":{"62":{}},"sidebarParentCategories":{}}],["unqualifi",{"_index":1554,"title":{},"content":{"198":{}},"sidebarParentCategories":{}}],["unrel",{"_index":1513,"title":{},"content":{"194":{},"225":{}},"sidebarParentCategories":{}}],["until",{"_index":1351,"title":{},"content":{"185":{},"191":{},"192":{},"199":{}},"sidebarParentCategories":{}}],["unzip",{"_index":633,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["up",{"_index":324,"title":{"92":{},"93":{},"138":{},"175":{}},"content":{"29":{},"31":{},"33":{},"40":{},"44":{},"45":{},"77":{},"82":{},"84":{},"93":{},"105":{},"116":{},"132":{},"135":{},"137":{},"174":{},"184":{},"185":{},"189":{},"215":{}},"sidebarParentCategories":{}}],["updat",{"_index":699,"title":{"165":{},"166":{},"182":{},"183":{},"184":{},"186":{},"193":{},"224":{}},"content":{"83":{},"136":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"189":{},"190":{},"191":{},"192":{},"194":{},"197":{},"198":{},"200":{},"215":{},"216":{},"217":{},"218":{},"222":{},"224":{},"225":{}},"sidebarParentCategories":{"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{},"228":{}}}],["updateassist",{"_index":1324,"title":{},"content":{"184":{},"185":{},"186":{}},"sidebarParentCategories":{}}],["updateassistant(ag",{"_index":1325,"title":{},"content":{"184":{},"185":{}},"sidebarParentCategories":{}}],["updateassistant.frameworkstoragevers",{"_index":1346,"title":{},"content":{"185":{}},"sidebarParentCategories":{}}],["updateassistant.getcurrentagentstoragevers",{"_index":1338,"title":{},"content":{"185":{}},"sidebarParentCategories":{}}],["updateassistant.initi",{"_index":1331,"title":{},"content":{"184":{},"185":{}},"sidebarParentCategories":{}}],["updateassistant.isuptod",{"_index":1332,"title":{},"content":{"184":{}},"sidebarParentCategories":{}}],["updateassistant.upd",{"_index":1333,"title":{},"content":{"184":{},"185":{}},"sidebarParentCategories":{}}],["upgrad",{"_index":1706,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["uppcj5apts7ot5wx25943f",{"_index":1563,"title":{},"content":{"198":{}},"sidebarParentCategories":{}}],["uri",{"_index":1507,"title":{},"content":{"193":{}},"sidebarParentCategories":{}}],["url",{"_index":602,"title":{},"content":{"79":{},"103":{},"135":{},"138":{},"139":{},"141":{},"175":{},"179":{},"192":{}},"sidebarParentCategories":{}}],["us",{"_index":58,"title":{"6":{},"11":{},"96":{},"98":{},"101":{},"103":{},"142":{},"145":{},"152":{},"180":{}},"content":{"1":{},"8":{},"10":{},"12":{},"15":{},"16":{},"23":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"37":{},"38":{},"41":{},"46":{},"49":{},"50":{},"51":{},"52":{},"57":{},"58":{},"62":{},"66":{},"67":{},"72":{},"73":{},"74":{},"75":{},"81":{},"84":{},"87":{},"90":{},"91":{},"92":{},"99":{},"101":{},"105":{},"107":{},"109":{},"110":{},"111":{},"112":{},"113":{},"116":{},"123":{},"124":{},"125":{},"126":{},"128":{},"129":{},"132":{},"133":{},"134":{},"135":{},"136":{},"138":{},"140":{},"141":{},"160":{},"169":{},"172":{},"174":{},"175":{},"179":{},"186":{},"187":{},"191":{},"192":{},"193":{},"194":{},"196":{},"197":{},"198":{},"199":{},"218":{},"219":{},"220":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{}},"sidebarParentCategories":{}}],["usag",{"_index":1089,"title":{"218":{}},"content":{"140":{},"141":{},"179":{},"198":{}},"sidebarParentCategories":{}}],["usedidkeyinprotocol",{"_index":1604,"title":{},"content":{"218":{}},"sidebarParentCategories":{}}],["uselegacydidsovprefix",{"_index":994,"title":{"134":{}},"content":{"134":{}},"sidebarParentCategories":{}}],["user",{"_index":78,"title":{},"content":{"1":{},"30":{},"105":{},"114":{},"135":{},"169":{},"177":{}},"sidebarParentCategories":{}}],["usr/lib/libindy.so",{"_index":534,"title":{},"content":{"75":{}},"sidebarParentCategories":{}}],["usr/local/lib",{"_index":488,"title":{},"content":{"52":{}},"sidebarParentCategories":{}}],["usr/local/lib/libindystrgpostgres.dylib",{"_index":1260,"title":{},"content":{"149":{}},"sidebarParentCategories":{}}],["usr/local/lib/libindystrgpostgres.so",{"_index":1257,"title":{},"content":{"157":{}},"sidebarParentCategories":{}}],["util",{"_index":1494,"title":{},"content":{"193":{}},"sidebarParentCategories":{}}],["uuid",{"_index":1802,"title":{},"content":{"228":{}},"sidebarParentCategories":{}}],["v0.3.0",{"_index":1208,"title":{},"content":{"181":{}},"sidebarParentCategories":{}}],["v0_1tov0_2",{"_index":1326,"title":{},"content":{"184":{},"185":{},"194":{}},"sidebarParentCategories":{}}],["v0_1tov0_2.mediationroleupdatestrategi",{"_index":1539,"title":{},"content":{"197":{}},"sidebarParentCategories":{}}],["v1",{"_index":237,"title":{},"content":{"5":{},"174":{},"178":{},"179":{},"180":{},"191":{},"196":{},"220":{},"222":{},"223":{},"226":{}},"sidebarParentCategories":{}}],["v1proposecredentialmessag",{"_index":1431,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["v1requestpresentationmessag",{"_index":1676,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["v1xxxmessag",{"_index":1444,"title":{},"content":{"191":{},"222":{}},"sidebarParentCategories":{}}],["v2",{"_index":985,"title":{},"content":{"132":{},"174":{},"180":{},"191":{},"196":{},"220":{},"222":{}},"sidebarParentCategories":{}}],["v2proposecredentialmessag",{"_index":1432,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["v2requestpresentationmessag",{"_index":1677,"title":{},"content":{"222":{}},"sidebarParentCategories":{}}],["v2xxxmessag",{"_index":1445,"title":{},"content":{"191":{},"222":{}},"sidebarParentCategories":{}}],["v7a",{"_index":625,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v7a/libindy.so",{"_index":641,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v7a/libjnidispatch.so",{"_index":661,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v8a",{"_index":623,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v8a/libindy.so",{"_index":635,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["v8a/libjnidispatch.so",{"_index":659,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["valid",{"_index":230,"title":{},"content":{"4":{},"36":{},"89":{},"125":{},"126":{},"137":{},"174":{},"193":{}},"sidebarParentCategories":{}}],["validrespons",{"_index":1622,"title":{},"content":{"219":{}},"sidebarParentCategories":{}}],["valu",{"_index":543,"title":{},"content":{"62":{},"67":{},"90":{},"91":{},"107":{},"108":{},"112":{},"121":{},"177":{},"178":{},"179":{},"191":{},"192":{},"195":{},"200":{},"222":{}},"sidebarParentCategories":{}}],["vari",{"_index":1039,"title":{},"content":{"138":{},"175":{}},"sidebarParentCategories":{}}],["variabl",{"_index":539,"title":{},"content":{"67":{},"100":{}},"sidebarParentCategories":{}}],["variables:set",{"_index":1264,"title":{},"content":{"160":{}},"sidebarParentCategories":{}}],["variant",{"_index":1135,"title":{},"content":{"175":{}},"sidebarParentCategories":{}}],["variou",{"_index":255,"title":{},"content":{"17":{}},"sidebarParentCategories":{}}],["veri",{"_index":414,"title":{},"content":{"44":{},"82":{},"104":{},"140":{},"175":{}},"sidebarParentCategories":{}}],["verifi",{"_index":29,"title":{},"content":{"1":{},"3":{},"8":{},"12":{},"15":{},"16":{},"41":{},"84":{},"137":{},"140":{},"176":{}},"sidebarParentCategories":{}}],["verkey",{"_index":1564,"title":{},"content":{"198":{}},"sidebarParentCategories":{}}],["version",{"_index":305,"title":{"78":{},"169":{},"185":{}},"content":{"23":{},"78":{},"81":{},"83":{},"113":{},"119":{},"120":{},"136":{},"165":{},"166":{},"169":{},"171":{},"172":{},"176":{},"179":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"189":{},"190":{},"191":{},"192":{},"193":{},"196":{},"198":{},"215":{},"216":{},"220":{},"222":{},"226":{}},"sidebarParentCategories":{}}],["versionstr",{"_index":1342,"title":{},"content":{"185":{}},"sidebarParentCategories":{}}],["via",{"_index":121,"title":{},"content":{"5":{},"7":{},"8":{},"46":{},"54":{},"109":{},"125":{},"126":{},"127":{},"175":{}},"sidebarParentCategories":{}}],["view",{"_index":72,"title":{},"content":{"1":{},"38":{},"191":{}},"sidebarParentCategories":{}}],["visual",{"_index":1261,"title":{},"content":{"159":{}},"sidebarParentCategories":{}}],["void",{"_index":579,"title":{},"content":{"62":{},"81":{},"99":{},"140":{},"141":{}},"sidebarParentCategories":{}}],["walk",{"_index":404,"title":{},"content":{"41":{}},"sidebarParentCategories":{}}],["wallet",{"_index":172,"title":{},"content":{"9":{},"10":{},"38":{},"92":{},"95":{},"103":{},"106":{},"107":{},"108":{},"110":{},"111":{},"138":{},"141":{},"174":{},"175":{},"179":{},"181":{},"184":{},"185":{},"187":{},"221":{}},"sidebarParentCategories":{}}],["wallet_schem",{"_index":1232,"title":{},"content":{"103":{}},"sidebarParentCategories":{}}],["walletconfig",{"_index":777,"title":{"106":{}},"content":{"92":{},"95":{},"103":{},"106":{},"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["walletconfig.id",{"_index":818,"title":{"107":{}},"content":{"103":{}},"sidebarParentCategories":{}}],["walletconfig.key",{"_index":819,"title":{"108":{}},"content":{"103":{},"109":{},"141":{},"179":{}},"sidebarParentCategories":{}}],["walletconfig.keyderivationmethod",{"_index":825,"title":{"109":{}},"content":{},"sidebarParentCategories":{}}],["walletconfig.storag",{"_index":848,"title":{"110":{}},"content":{},"sidebarParentCategories":{}}],["walletid",{"_index":375,"title":{},"content":{"38":{},"103":{}},"sidebarParentCategories":{}}],["walletkey",{"_index":376,"title":{},"content":{"38":{}},"sidebarParentCategories":{}}],["walletschem",{"_index":1229,"title":{},"content":{"103":{}},"sidebarParentCategories":{}}],["walletscheme.databaseperwallet",{"_index":1233,"title":{},"content":{"103":{}},"sidebarParentCategories":{}}],["want",{"_index":416,"title":{},"content":{"44":{},"62":{},"82":{},"101":{},"140":{},"175":{},"176":{},"177":{},"192":{},"219":{},"223":{},"224":{}},"sidebarParentCategories":{}}],["warn",{"_index":1029,"title":{},"content":{"100":{}},"sidebarParentCategories":{}}],["warn(messag",{"_index":1017,"title":{},"content":{"99":{}},"sidebarParentCategories":{}}],["way",{"_index":6,"title":{},"content":{"1":{},"28":{},"30":{},"37":{},"40":{},"62":{},"93":{},"100":{},"140":{},"165":{},"166":{},"182":{},"186":{},"193":{},"222":{},"223":{},"224":{}},"sidebarParentCategories":{}}],["we'll",{"_index":258,"title":{},"content":{"17":{},"41":{},"171":{},"184":{}},"sidebarParentCategories":{}}],["we'v",{"_index":1316,"title":{},"content":{"172":{},"191":{},"193":{},"224":{}},"sidebarParentCategories":{}}],["websit",{"_index":854,"title":{},"content":{"111":{}},"sidebarParentCategories":{}}],["websocket",{"_index":248,"title":{},"content":{"5":{},"40":{},"93":{},"132":{},"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["weekli",{"_index":274,"title":{},"content":{"21":{}},"sidebarParentCategories":{}}],["welcom",{"_index":1,"title":{},"content":{"1":{}},"sidebarParentCategories":{}}],["well",{"_index":63,"title":{},"content":{"1":{},"110":{},"192":{}},"sidebarParentCategories":{}}],["whether",{"_index":19,"title":{},"content":{"1":{},"53":{},"59":{},"68":{},"76":{},"116":{},"122":{},"125":{},"126":{},"127":{},"130":{},"134":{},"136":{},"184":{},"191":{},"197":{}},"sidebarParentCategories":{}}],["whose",{"_index":1630,"title":{},"content":{"220":{}},"sidebarParentCategories":{}}],["window",{"_index":424,"title":{"63":{},"158":{}},"content":{"45":{},"102":{},"159":{},"163":{},"164":{}},"sidebarParentCategories":{}}],["wire",{"_index":933,"title":{},"content":{"124":{}},"sidebarParentCategories":{}}],["without",{"_index":810,"title":{},"content":{"106":{},"169":{},"181":{},"191":{},"194":{},"225":{}},"sidebarParentCategories":{}}],["won't",{"_index":1024,"title":{},"content":{"100":{},"187":{},"192":{}},"sidebarParentCategories":{}}],["work",{"_index":8,"title":{},"content":{"1":{},"5":{},"7":{},"12":{},"13":{},"21":{},"41":{},"44":{},"45":{},"81":{},"82":{},"91":{},"100":{},"138":{},"165":{},"167":{},"168":{},"170":{},"175":{},"189":{},"191":{},"200":{},"215":{},"220":{},"222":{}},"sidebarParentCategories":{}}],["workflow",{"_index":1217,"title":{},"content":{"181":{},"184":{}},"sidebarParentCategories":{}}],["world",{"_index":188,"title":{},"content":{"10":{}},"sidebarParentCategories":{}}],["worri",{"_index":1406,"title":{},"content":{"191":{}},"sidebarParentCategories":{}}],["worth",{"_index":1724,"title":{},"content":{"224":{}},"sidebarParentCategories":{}}],["wrapper",{"_index":304,"title":{},"content":{"23":{},"100":{}},"sidebarParentCategories":{}}],["written",{"_index":60,"title":{},"content":{"1":{}},"sidebarParentCategories":{}}],["wrong",{"_index":1535,"title":{},"content":{"197":{}},"sidebarParentCategories":{}}],["wsoutboundtransport",{"_index":784,"title":{},"content":{"93":{},"95":{},"138":{},"141":{},"175":{},"179":{}},"sidebarParentCategories":{}}],["wsoutboundtransport())agent.registeroutboundtransport(new",{"_index":790,"title":{},"content":{"93":{}},"sidebarParentCategories":{}}],["x86",{"_index":642,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["x86.jar",{"_index":662,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["x86.zip",{"_index":644,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["x86_64",{"_index":647,"title":{},"content":{"81":{},"163":{}},"sidebarParentCategories":{}}],["x86_64.zip",{"_index":649,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["xf",{"_index":657,"title":{},"content":{"81":{}},"sidebarParentCategories":{}}],["y",{"_index":504,"title":{},"content":{"70":{}},"sidebarParentCategories":{}}],["yarn",{"_index":329,"title":{"49":{},"57":{},"66":{},"72":{}},"content":{"29":{},"32":{},"34":{},"45":{},"49":{},"57":{},"66":{},"72":{},"90":{},"91":{},"175":{},"189":{},"215":{}},"sidebarParentCategories":{}}],["ye",{"_index":701,"title":{},"content":{"83":{},"219":{}},"sidebarParentCategories":{}}],["you'll",{"_index":83,"title":{},"content":{"1":{},"224":{}},"sidebarParentCategories":{}}],["you'r",{"_index":411,"title":{},"content":{"44":{},"82":{},"91":{},"165":{},"167":{},"168":{},"189":{},"192":{},"215":{}},"sidebarParentCategories":{}}],["yourself",{"_index":37,"title":{},"content":{"1":{},"184":{},"185":{},"193":{}},"sidebarParentCategories":{}}],["yum",{"_index":507,"title":{},"content":{"70":{},"73":{},"74":{}},"sidebarParentCategories":{}}],["zeromq",{"_index":463,"title":{},"content":{"51":{},"74":{},"145":{}},"sidebarParentCategories":{}}],["zip",{"_index":1241,"title":{},"content":{"144":{},"151":{}},"sidebarParentCategories":{}}]],"pipeline":["stemmer"]}} \ No newline at end of file diff --git a/search-index-docs-default-0.4.json b/search-index-docs-default-0.4.json index ad150286..abfc7950 100644 --- a/search-index-docs-default-0.4.json +++ b/search-index-docs-default-0.4.json @@ -1 +1 @@ -{"documents":[{"id":425,"pageTitle":"","sectionTitle":"Intro","sectionRoute":"/guides","type":"docs"},{"id":476,"pageTitle":"","sectionTitle":"Concepts","sectionRoute":"/guides/concepts","type":"docs"},{"id":477,"pageTitle":"","sectionTitle":"📄️ Agents","sectionRoute":"/guides/concepts","type":"docs"},{"id":478,"pageTitle":"","sectionTitle":"📄️ DIDs and DIDComm","sectionRoute":"/guides/concepts","type":"docs"},{"id":479,"pageTitle":"","sectionTitle":"📄️ Platform and Environment","sectionRoute":"/guides/concepts","type":"docs"},{"id":452,"pageTitle":"","sectionTitle":"Agents","sectionRoute":"/guides/concepts/agents","type":"docs"},{"id":453,"pageTitle":"","sectionTitle":"Characteristics","sectionRoute":"/guides/concepts/agents#characteristics","type":"docs"},{"id":454,"pageTitle":"","sectionTitle":"Categories","sectionRoute":"/guides/concepts/agents#categories","type":"docs"},{"id":455,"pageTitle":"","sectionTitle":"Examples","sectionRoute":"/guides/concepts/agents#examples","type":"docs"},{"id":456,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/concepts/agents#useful-resources","type":"docs"},{"id":480,"pageTitle":"","sectionTitle":"DIDs and DIDComm","sectionRoute":"/guides/concepts/did-and-didcomm","type":"docs"},{"id":481,"pageTitle":"","sectionTitle":"DIDs","sectionRoute":"/guides/concepts/did-and-didcomm#dids","type":"docs"},{"id":482,"pageTitle":"","sectionTitle":"DID Documents","sectionRoute":"/guides/concepts/did-and-didcomm#did-documents","type":"docs"},{"id":483,"pageTitle":"","sectionTitle":"DIDComm","sectionRoute":"/guides/concepts/did-and-didcomm#didcomm","type":"docs"},{"id":484,"pageTitle":"","sectionTitle":"Useful Resources","sectionRoute":"/guides/concepts/did-and-didcomm#useful-resources","type":"docs"},{"id":457,"pageTitle":"","sectionTitle":"Platform and Environment","sectionRoute":"/guides/concepts/platform-and-environment","type":"docs"},{"id":485,"pageTitle":"","sectionTitle":"The Aries JavaScript Ecosystem","sectionRoute":"/guides/ecosystem","type":"docs"},{"id":486,"pageTitle":"","sectionTitle":"Repositories","sectionRoute":"/guides/ecosystem#repositories","type":"docs"},{"id":487,"pageTitle":"","sectionTitle":"Documentation","sectionRoute":"/guides/ecosystem#documentation","type":"docs"},{"id":488,"pageTitle":"","sectionTitle":"Aries Framework JavaScript","sectionRoute":"/guides/ecosystem#aries-framework-javascript","type":"docs"},{"id":489,"pageTitle":"","sectionTitle":"Contributing in the Aries JS Ecosystem","sectionRoute":"/guides/ecosystem#contributing-in-the-aries-js-ecosystem","type":"docs"},{"id":490,"pageTitle":"","sectionTitle":"Developer Contributions","sectionRoute":"/guides/ecosystem#developer-contributions","type":"docs"},{"id":491,"pageTitle":"","sectionTitle":"Extensions","sectionRoute":"/guides/extensions","type":"docs"},{"id":492,"pageTitle":"","sectionTitle":"📄️ REST API","sectionRoute":"/guides/extensions","type":"docs"},{"id":493,"pageTitle":"","sectionTitle":"📄️ React Hooks","sectionRoute":"/guides/extensions","type":"docs"},{"id":494,"pageTitle":"","sectionTitle":"📄️ Redux Store","sectionRoute":"/guides/extensions","type":"docs"},{"id":495,"pageTitle":"","sectionTitle":"📄️ Push Notifications","sectionRoute":"/guides/extensions","type":"docs"},{"id":496,"pageTitle":"","sectionTitle":"Push Notifications","sectionRoute":"/guides/extensions/push-notifications","type":"docs"},{"id":497,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/extensions/push-notifications#installation","type":"docs"},{"id":512,"pageTitle":"","sectionTitle":"React Hooks","sectionRoute":"/guides/extensions/react-hooks","type":"docs"},{"id":513,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/extensions/react-hooks#installation","type":"docs"},{"id":514,"pageTitle":"","sectionTitle":"Usage","sectionRoute":"/guides/extensions/react-hooks#usage","type":"docs"},{"id":498,"pageTitle":"","sectionTitle":"Redux Store","sectionRoute":"/guides/extensions/redux-store","type":"docs"},{"id":499,"pageTitle":"","sectionTitle":"Installation","sectionRoute":"/guides/extensions/redux-store#installation","type":"docs"},{"id":500,"pageTitle":"","sectionTitle":"REST API","sectionRoute":"/guides/extensions/rest","type":"docs"},{"id":501,"pageTitle":"","sectionTitle":"Quick Setup","sectionRoute":"/guides/extensions/rest#quick-setup","type":"docs"},{"id":502,"pageTitle":"","sectionTitle":"Directly on computer","sectionRoute":"/guides/extensions/rest#directly-on-computer","type":"docs"},{"id":503,"pageTitle":"","sectionTitle":"Configuration","sectionRoute":"/guides/extensions/rest#configuration","type":"docs"},{"id":504,"pageTitle":"","sectionTitle":"Getting started","sectionRoute":"/guides/getting-started","type":"docs"},{"id":505,"pageTitle":"","sectionTitle":"📄️ Prerequisites","sectionRoute":"/guides/getting-started","type":"docs"},{"id":506,"pageTitle":"","sectionTitle":"🗃️ Agent Setup","sectionRoute":"/guides/getting-started","type":"docs"},{"id":507,"pageTitle":"","sectionTitle":"Prerequisites","sectionRoute":"/guides/getting-started/prerequisites","type":"docs"},{"id":508,"pageTitle":"","sectionTitle":"Node.JS","sectionRoute":"/guides/getting-started/prerequisites#nodejs","type":"docs"},{"id":509,"pageTitle":"","sectionTitle":"NPM","sectionRoute":"/guides/getting-started/prerequisites#npm","type":"docs"},{"id":510,"pageTitle":"","sectionTitle":"Yarn","sectionRoute":"/guides/getting-started/prerequisites#yarn","type":"docs"},{"id":511,"pageTitle":"","sectionTitle":"Project Setup","sectionRoute":"/guides/getting-started/prerequisites#project-setup","type":"docs"},{"id":520,"pageTitle":"","sectionTitle":"Agent Setup","sectionRoute":"/guides/getting-started/set-up","type":"docs"},{"id":521,"pageTitle":"","sectionTitle":"Installing the required dependencies","sectionRoute":"/guides/getting-started/set-up#installing-the-required-dependencies","type":"docs"},{"id":522,"pageTitle":"","sectionTitle":"Additional setup","sectionRoute":"/guides/getting-started/set-up#additional-setup","type":"docs"},{"id":523,"pageTitle":"","sectionTitle":"Setting up the agent","sectionRoute":"/guides/getting-started/set-up#setting-up-the-agent","type":"docs"},{"id":524,"pageTitle":"","sectionTitle":"Adding a wallet and storage implementation","sectionRoute":"/guides/getting-started/set-up#adding-a-wallet-and-storage-implementation","type":"docs"},{"id":525,"pageTitle":"","sectionTitle":"📄️ Aries Askar","sectionRoute":"/guides/getting-started/set-up","type":"docs"},{"id":526,"pageTitle":"","sectionTitle":"📄️ Indy SDK","sectionRoute":"/guides/getting-started/set-up","type":"docs"},{"id":527,"pageTitle":"","sectionTitle":"Setting up the transports","sectionRoute":"/guides/getting-started/set-up#setting-up-the-transports","type":"docs"},{"id":528,"pageTitle":"","sectionTitle":"Initializing the agent","sectionRoute":"/guides/getting-started/set-up#initializing-the-agent","type":"docs"},{"id":529,"pageTitle":"","sectionTitle":"Next Steps","sectionRoute":"/guides/getting-started/set-up#next-steps","type":"docs"},{"id":530,"pageTitle":"","sectionTitle":"📄️ Tutorials","sectionRoute":"/guides/getting-started/set-up","type":"docs"},{"id":531,"pageTitle":"","sectionTitle":"📄️ Create a Connection","sectionRoute":"/guides/getting-started/set-up","type":"docs"},{"id":532,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/getting-started/set-up#useful-resources","type":"docs"},{"id":515,"pageTitle":"","sectionTitle":"AnonCreds RS","sectionRoute":"/guides/getting-started/set-up/anoncreds-rs","type":"docs"},{"id":516,"pageTitle":"","sectionTitle":"Installing AnonCreds RS","sectionRoute":"/guides/getting-started/set-up/anoncreds-rs#installing-anoncreds-rs","type":"docs"},{"id":517,"pageTitle":"","sectionTitle":"Adding AnonCreds RS to the agent","sectionRoute":"/guides/getting-started/set-up/anoncreds-rs#adding-anoncreds-rs-to-the-agent","type":"docs"},{"id":518,"pageTitle":"","sectionTitle":"Configuration","sectionRoute":"/guides/getting-started/set-up/anoncreds-rs#configuration","type":"docs"},{"id":519,"pageTitle":"","sectionTitle":"Supported Node.JS versions for AnonCreds RS","sectionRoute":"/guides/getting-started/set-up/anoncreds-rs#supported-nodejs-versions-for-anoncreds-rs","type":"docs"},{"id":533,"pageTitle":"","sectionTitle":"Aries Askar","sectionRoute":"/guides/getting-started/set-up/aries-askar","type":"docs"},{"id":534,"pageTitle":"","sectionTitle":"Installing Aries Askar","sectionRoute":"/guides/getting-started/set-up/aries-askar#installing-aries-askar","type":"docs"},{"id":535,"pageTitle":"","sectionTitle":"Adding Aries Askar to the Agent","sectionRoute":"/guides/getting-started/set-up/aries-askar#adding-aries-askar-to-the-agent","type":"docs"},{"id":536,"pageTitle":"","sectionTitle":"Supported Node.JS versions for Aries Askar","sectionRoute":"/guides/getting-started/set-up/aries-askar#supported-nodejs-versions-for-aries-askar","type":"docs"},{"id":537,"pageTitle":"","sectionTitle":"cheqd","sectionRoute":"/guides/getting-started/set-up/cheqd","type":"docs"},{"id":538,"pageTitle":"","sectionTitle":"Installing cheqd","sectionRoute":"/guides/getting-started/set-up/cheqd#installing-cheqd","type":"docs"},{"id":539,"pageTitle":"","sectionTitle":"Adding the cheqd to the Agent","sectionRoute":"/guides/getting-started/set-up/cheqd#adding-the-cheqd-to-the-agent","type":"docs"},{"id":545,"pageTitle":"","sectionTitle":"Indy SDK","sectionRoute":"/guides/getting-started/set-up/indy-sdk","type":"docs"},{"id":546,"pageTitle":"","sectionTitle":"Installing the Indy SDK","sectionRoute":"/guides/getting-started/set-up/indy-sdk#installing-the-indy-sdk","type":"docs"},{"id":547,"pageTitle":"","sectionTitle":"📄️ Linux","sectionRoute":"/guides/getting-started/set-up/indy-sdk","type":"docs"},{"id":548,"pageTitle":"","sectionTitle":"📄️ Windows","sectionRoute":"/guides/getting-started/set-up/indy-sdk","type":"docs"},{"id":549,"pageTitle":"","sectionTitle":"📄️ macOS (Intel)","sectionRoute":"/guides/getting-started/set-up/indy-sdk","type":"docs"},{"id":550,"pageTitle":"","sectionTitle":"📄️ macOS (ARM)","sectionRoute":"/guides/getting-started/set-up/indy-sdk","type":"docs"},{"id":551,"pageTitle":"","sectionTitle":"📄️ React Native","sectionRoute":"/guides/getting-started/set-up/indy-sdk","type":"docs"},{"id":552,"pageTitle":"","sectionTitle":"Adding the Indy SDK to the Agent","sectionRoute":"/guides/getting-started/set-up/indy-sdk#adding-the-indy-sdk-to-the-agent","type":"docs"},{"id":540,"pageTitle":"","sectionTitle":"Linux","sectionRoute":"/guides/getting-started/set-up/indy-sdk/linux","type":"docs"},{"id":541,"pageTitle":"","sectionTitle":"Libsodium","sectionRoute":"/guides/getting-started/set-up/indy-sdk/linux#libsodium","type":"docs"},{"id":542,"pageTitle":"","sectionTitle":"Libzmq","sectionRoute":"/guides/getting-started/set-up/indy-sdk/linux#libzmq","type":"docs"},{"id":543,"pageTitle":"","sectionTitle":"Indy SDK","sectionRoute":"/guides/getting-started/set-up/indy-sdk/linux#indy-sdk","type":"docs"},{"id":544,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/getting-started/set-up/indy-sdk/linux#confirm-installation","type":"docs"},{"id":553,"pageTitle":"","sectionTitle":"macOS (ARM)","sectionRoute":"/guides/getting-started/set-up/indy-sdk/macos-arm","type":"docs"},{"id":554,"pageTitle":"","sectionTitle":"Libsodium","sectionRoute":"/guides/getting-started/set-up/indy-sdk/macos-arm#libsodium","type":"docs"},{"id":555,"pageTitle":"","sectionTitle":"Libzmq","sectionRoute":"/guides/getting-started/set-up/indy-sdk/macos-arm#libzmq","type":"docs"},{"id":556,"pageTitle":"","sectionTitle":"Indy SDK","sectionRoute":"/guides/getting-started/set-up/indy-sdk/macos-arm#indy-sdk","type":"docs"},{"id":557,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/getting-started/set-up/indy-sdk/macos-arm#confirm-installation","type":"docs"},{"id":558,"pageTitle":"","sectionTitle":"macOS (Intel)","sectionRoute":"/guides/getting-started/set-up/indy-sdk/macos-intel","type":"docs"},{"id":559,"pageTitle":"","sectionTitle":"Indy SDK","sectionRoute":"/guides/getting-started/set-up/indy-sdk/macos-intel#indy-sdk","type":"docs"},{"id":560,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/getting-started/set-up/indy-sdk/macos-intel#confirm-installation","type":"docs"},{"id":561,"pageTitle":"","sectionTitle":"React Native","sectionRoute":"/guides/getting-started/set-up/indy-sdk/react-native","type":"docs"},{"id":562,"pageTitle":"","sectionTitle":"Expo","sectionRoute":"/guides/getting-started/set-up/indy-sdk/react-native#expo","type":"docs"},{"id":563,"pageTitle":"","sectionTitle":"Without Expo","sectionRoute":"/guides/getting-started/set-up/indy-sdk/react-native#without-expo","type":"docs"},{"id":564,"pageTitle":"","sectionTitle":"Windows","sectionRoute":"/guides/getting-started/set-up/indy-sdk/windows","type":"docs"},{"id":565,"pageTitle":"","sectionTitle":"Confirm installation","sectionRoute":"/guides/getting-started/set-up/indy-sdk/windows#confirm-installation","type":"docs"},{"id":574,"pageTitle":"","sectionTitle":"Indy VDR","sectionRoute":"/guides/getting-started/set-up/indy-vdr","type":"docs"},{"id":575,"pageTitle":"","sectionTitle":"Installing Indy VDR","sectionRoute":"/guides/getting-started/set-up/indy-vdr#installing-indy-vdr","type":"docs"},{"id":576,"pageTitle":"","sectionTitle":"Adding Indy VDR to the agent","sectionRoute":"/guides/getting-started/set-up/indy-vdr#adding-indy-vdr-to-the-agent","type":"docs"},{"id":577,"pageTitle":"","sectionTitle":"Configuration","sectionRoute":"/guides/getting-started/set-up/indy-vdr#configuration","type":"docs"},{"id":578,"pageTitle":"","sectionTitle":"Supported Node.JS versions for Indy VDR","sectionRoute":"/guides/getting-started/set-up/indy-vdr#supported-nodejs-versions-for-indy-vdr","type":"docs"},{"id":566,"pageTitle":"","sectionTitle":"Tutorials","sectionRoute":"/guides/tutorials","type":"docs"},{"id":567,"pageTitle":"","sectionTitle":"🗃️ Agent Config","sectionRoute":"/guides/tutorials","type":"docs"},{"id":568,"pageTitle":"","sectionTitle":"📄️ Create a connection","sectionRoute":"/guides/tutorials","type":"docs"},{"id":569,"pageTitle":"","sectionTitle":"📄️ Cheqd Did Module","sectionRoute":"/guides/tutorials","type":"docs"},{"id":570,"pageTitle":"","sectionTitle":"📄️ Registering a schema and credential definition on an AnonCreds Registry","sectionRoute":"/guides/tutorials","type":"docs"},{"id":571,"pageTitle":"","sectionTitle":"📄️ Issue a credential","sectionRoute":"/guides/tutorials","type":"docs"},{"id":572,"pageTitle":"","sectionTitle":"📄️ Mediation","sectionRoute":"/guides/tutorials","type":"docs"},{"id":573,"pageTitle":"","sectionTitle":"🗃️ Using PostgreSQL with the Indy SDK","sectionRoute":"/guides/tutorials","type":"docs"},{"id":579,"pageTitle":"","sectionTitle":"Agent Config","sectionRoute":"/guides/tutorials/agent-config","type":"docs"},{"id":580,"pageTitle":"","sectionTitle":"label*","sectionRoute":"/guides/tutorials/agent-config#label","type":"docs"},{"id":581,"pageTitle":"","sectionTitle":"walletConfig","sectionRoute":"/guides/tutorials/agent-config#walletconfig","type":"docs"},{"id":582,"pageTitle":"","sectionTitle":"walletConfig.id*","sectionRoute":"/guides/tutorials/agent-config#walletconfigid","type":"docs"},{"id":583,"pageTitle":"","sectionTitle":"walletConfig.key*","sectionRoute":"/guides/tutorials/agent-config#walletconfigkey","type":"docs"},{"id":584,"pageTitle":"","sectionTitle":"walletConfig.keyDerivationMethod","sectionRoute":"/guides/tutorials/agent-config#walletconfigkeyderivationmethod","type":"docs"},{"id":585,"pageTitle":"","sectionTitle":"walletConfig.storage","sectionRoute":"/guides/tutorials/agent-config#walletconfigstorage","type":"docs"},{"id":586,"pageTitle":"","sectionTitle":"endpoints","sectionRoute":"/guides/tutorials/agent-config#endpoints","type":"docs"},{"id":587,"pageTitle":"","sectionTitle":"logger","sectionRoute":"/guides/tutorials/agent-config#logger","type":"docs"},{"id":588,"pageTitle":"","sectionTitle":"didCommMimeType","sectionRoute":"/guides/tutorials/agent-config#didcommmimetype","type":"docs"},{"id":589,"pageTitle":"","sectionTitle":"useDidSovPrefixWhereAllowed","sectionRoute":"/guides/tutorials/agent-config#usedidsovprefixwhereallowed","type":"docs"},{"id":590,"pageTitle":"","sectionTitle":"useDidKeyInProtocols","sectionRoute":"/guides/tutorials/agent-config#usedidkeyinprotocols","type":"docs"},{"id":591,"pageTitle":"","sectionTitle":"connectionImageUrl","sectionRoute":"/guides/tutorials/agent-config#connectionimageurl","type":"docs"},{"id":592,"pageTitle":"","sectionTitle":"autoUpdateStorageOnStartup","sectionRoute":"/guides/tutorials/agent-config#autoupdatestorageonstartup","type":"docs"},{"id":596,"pageTitle":"","sectionTitle":"Logging","sectionRoute":"/guides/tutorials/agent-config/logging","type":"docs"},{"id":597,"pageTitle":"","sectionTitle":"Using the Default ConsoleLogger","sectionRoute":"/guides/tutorials/agent-config/logging#using-the-default-consolelogger","type":"docs"},{"id":598,"pageTitle":"","sectionTitle":"Creating your own Logger","sectionRoute":"/guides/tutorials/agent-config/logging#creating-your-own-logger","type":"docs"},{"id":599,"pageTitle":"","sectionTitle":"Indy Logs","sectionRoute":"/guides/tutorials/agent-config/logging#indy-logs","type":"docs"},{"id":600,"pageTitle":"","sectionTitle":"Cheqd Did Module","sectionRoute":"/guides/tutorials/cheqd","type":"docs"},{"id":601,"pageTitle":"","sectionTitle":"DID Module","sectionRoute":"/guides/tutorials/cheqd#did-module","type":"docs"},{"id":602,"pageTitle":"","sectionTitle":"Create DID","sectionRoute":"/guides/tutorials/cheqd#create-did","type":"docs"},{"id":603,"pageTitle":"","sectionTitle":"Update DID","sectionRoute":"/guides/tutorials/cheqd#update-did","type":"docs"},{"id":604,"pageTitle":"","sectionTitle":"Deactivate DID","sectionRoute":"/guides/tutorials/cheqd#deactivate-did","type":"docs"},{"id":605,"pageTitle":"","sectionTitle":"Types","sectionRoute":"/guides/tutorials/cheqd#types","type":"docs"},{"id":631,"pageTitle":"","sectionTitle":"Create a connection","sectionRoute":"/guides/tutorials/create-a-connection","type":"docs"},{"id":632,"pageTitle":"","sectionTitle":"1. Setting up the agents","sectionRoute":"/guides/tutorials/create-a-connection#1-setting-up-the-agents","type":"docs"},{"id":633,"pageTitle":"","sectionTitle":"3. Receiving the invitation","sectionRoute":"/guides/tutorials/create-a-connection#3-receiving-the-invitation","type":"docs"},{"id":634,"pageTitle":"","sectionTitle":"4. (additional) listen to incoming connection responses","sectionRoute":"/guides/tutorials/create-a-connection#4-additional-listen-to-incoming-connection-responses","type":"docs"},{"id":635,"pageTitle":"","sectionTitle":"5. Full code snippets","sectionRoute":"/guides/tutorials/create-a-connection#5-full-code-snippets","type":"docs"},{"id":636,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/tutorials/create-a-connection#useful-resources","type":"docs"},{"id":606,"pageTitle":"","sectionTitle":"Using PostgreSQL as Database for Indy SDK in Node.js","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs","type":"docs"},{"id":607,"pageTitle":"","sectionTitle":"Installation of the Postgres Plugin","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs#installation-of-the-postgres-plugin","type":"docs"},{"id":608,"pageTitle":"","sectionTitle":"Using the Postgres Plugin in AFJ","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs#using-the-postgres-plugin-in-afj","type":"docs"},{"id":616,"pageTitle":"","sectionTitle":"Postgres Setup for Linux","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/linux","type":"docs"},{"id":617,"pageTitle":"","sectionTitle":"Prerequisites","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/linux#prerequisites","type":"docs"},{"id":618,"pageTitle":"","sectionTitle":"Step 1: installing the dependencies using apt","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/linux#step-1-installing-the-dependencies-using-apt","type":"docs"},{"id":619,"pageTitle":"","sectionTitle":"Debian based (Ubuntu, Mint, Kali, Deepin, etc.)","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/linux#debian-based-ubuntu-mint-kali-deepin-etc","type":"docs"},{"id":620,"pageTitle":"","sectionTitle":"Step 2: Build Postgres plugin","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/linux#step-2-build-postgres-plugin","type":"docs"},{"id":621,"pageTitle":"","sectionTitle":"Step 2.1: Cloning the indy-sdk","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/linux#step-21-cloning-the-indy-sdk","type":"docs"},{"id":622,"pageTitle":"","sectionTitle":"Step 2.2: Building Postgres plugin","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/linux#step-22-building-postgres-plugin","type":"docs"},{"id":623,"pageTitle":"","sectionTitle":"Step 2.3: Moving the file","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/linux#step-23-moving-the-file","type":"docs"},{"id":609,"pageTitle":"","sectionTitle":"Postgres Setup for macOS","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/macos","type":"docs"},{"id":610,"pageTitle":"","sectionTitle":"Prerequisites","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/macos#prerequisites","type":"docs"},{"id":611,"pageTitle":"","sectionTitle":"Step 1: installing the dependencies using brew","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/macos#step-1-installing-the-dependencies-using-brew","type":"docs"},{"id":612,"pageTitle":"","sectionTitle":"Step 2: Build Postgres plugin","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/macos#step-2-build-postgres-plugin","type":"docs"},{"id":613,"pageTitle":"","sectionTitle":"Step 2.1: Cloning the indy-sdk","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/macos#step-21-cloning-the-indy-sdk","type":"docs"},{"id":614,"pageTitle":"","sectionTitle":"Step 2.2: Building Postgres plugin","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/macos#step-22-building-postgres-plugin","type":"docs"},{"id":615,"pageTitle":"","sectionTitle":"Step 2.3: Moving the file","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/macos#step-23-moving-the-file","type":"docs"},{"id":624,"pageTitle":"","sectionTitle":"Postgres Setup for windows","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/windows","type":"docs"},{"id":625,"pageTitle":"","sectionTitle":"Build Environment Prerequisites","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/windows#build-environment-prerequisites","type":"docs"},{"id":626,"pageTitle":"","sectionTitle":"Step 1: Getting dependencies","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/windows#step-1-getting-dependencies","type":"docs"},{"id":627,"pageTitle":"","sectionTitle":"Step 2: Build Postgres plugin","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/windows#step-2-build-postgres-plugin","type":"docs"},{"id":628,"pageTitle":"","sectionTitle":"Step 2.1: Cloning the indy-sdk","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/windows#step-21-cloning-the-indy-sdk","type":"docs"},{"id":629,"pageTitle":"","sectionTitle":"Step 2.2: Building Postgres plugin","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/windows#step-22-building-postgres-plugin","type":"docs"},{"id":630,"pageTitle":"","sectionTitle":"Step 2.3: Setting the file to PATH","sectionRoute":"/guides/tutorials/indy-sdk-postgres-database-nodejs/windows#step-23-setting-the-file-to-path","type":"docs"},{"id":637,"pageTitle":"","sectionTitle":"Issue a credential","sectionRoute":"/guides/tutorials/issue-a-credential","type":"docs"},{"id":638,"pageTitle":"","sectionTitle":"1. Setting up the agents","sectionRoute":"/guides/tutorials/issue-a-credential#1-setting-up-the-agents","type":"docs"},{"id":639,"pageTitle":"","sectionTitle":"3. Listening for incoming credentials","sectionRoute":"/guides/tutorials/issue-a-credential#3-listening-for-incoming-credentials","type":"docs"},{"id":640,"pageTitle":"","sectionTitle":"4. Issuing a credential","sectionRoute":"/guides/tutorials/issue-a-credential#4-issuing-a-credential","type":"docs"},{"id":641,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/tutorials/issue-a-credential#useful-resources","type":"docs"},{"id":642,"pageTitle":"","sectionTitle":"Mediation","sectionRoute":"/guides/tutorials/mediation","type":"docs"},{"id":643,"pageTitle":"","sectionTitle":"What is a mediator, and Why should I use one?","sectionRoute":"/guides/tutorials/mediation#what-is-a-mediator-and-why-should-i-use-one","type":"docs"},{"id":644,"pageTitle":"","sectionTitle":"1. Mediator setup","sectionRoute":"/guides/tutorials/mediation#1-mediator-setup","type":"docs"},{"id":645,"pageTitle":"","sectionTitle":"2. Recipient (Alice) setup","sectionRoute":"/guides/tutorials/mediation#2-recipient-alice-setup","type":"docs"},{"id":646,"pageTitle":"","sectionTitle":"3. Message exchange","sectionRoute":"/guides/tutorials/mediation#3-message-exchange","type":"docs"},{"id":647,"pageTitle":"","sectionTitle":"Useful resources","sectionRoute":"/guides/tutorials/mediation#useful-resources","type":"docs"},{"id":659,"pageTitle":"","sectionTitle":"Registering a schema and credential definition on an AnonCreds Registry","sectionRoute":"/guides/tutorials/registering-schema-and-credential-definition","type":"docs"},{"id":660,"pageTitle":"","sectionTitle":"1. Setting up the agent","sectionRoute":"/guides/tutorials/registering-schema-and-credential-definition#1-setting-up-the-agent","type":"docs"},{"id":661,"pageTitle":"","sectionTitle":"2. Importing a DID (optional)","sectionRoute":"/guides/tutorials/registering-schema-and-credential-definition#2-importing-a-did-optional","type":"docs"},{"id":662,"pageTitle":"","sectionTitle":"3. Registering a schema","sectionRoute":"/guides/tutorials/registering-schema-and-credential-definition#3-registering-a-schema","type":"docs"},{"id":663,"pageTitle":"","sectionTitle":"3. Registering a credential definition","sectionRoute":"/guides/tutorials/registering-schema-and-credential-definition#3-registering-a-credential-definition","type":"docs"},{"id":664,"pageTitle":"","sectionTitle":"Using it","sectionRoute":"/guides/tutorials/registering-schema-and-credential-definition#using-it","type":"docs"},{"id":665,"pageTitle":"","sectionTitle":"Useful Resources","sectionRoute":"/guides/tutorials/registering-schema-and-credential-definition#useful-resources","type":"docs"},{"id":648,"pageTitle":"","sectionTitle":"Updating AFJ","sectionRoute":"/guides/updating","type":"docs"},{"id":649,"pageTitle":"","sectionTitle":"📄️ Update Assistant","sectionRoute":"/guides/updating","type":"docs"},{"id":650,"pageTitle":"","sectionTitle":"📄️ Migrating from an Indy SDK Wallet to Aries Askar","sectionRoute":"/guides/updating","type":"docs"},{"id":651,"pageTitle":"","sectionTitle":"📄️ Migrating from AFJ 0.1.0 to 0.2.x","sectionRoute":"/guides/updating","type":"docs"},{"id":652,"pageTitle":"","sectionTitle":"📄️ Migrating from AFJ 0.2.x to 0.3.x","sectionRoute":"/guides/updating","type":"docs"},{"id":653,"pageTitle":"","sectionTitle":"📄️ Migrating from AFJ 0.3.x to 0.4.x","sectionRoute":"/guides/updating","type":"docs"},{"id":654,"pageTitle":"","sectionTitle":"Versioning","sectionRoute":"/guides/updating#versioning","type":"docs"},{"id":655,"pageTitle":"","sectionTitle":"Types of breaking changes","sectionRoute":"/guides/updating#types-of-breaking-changes","type":"docs"},{"id":656,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/updating#breaking-code-changes","type":"docs"},{"id":657,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/updating#breaking-storage-changes","type":"docs"},{"id":658,"pageTitle":"","sectionTitle":"Migration Guides","sectionRoute":"/guides/updating#migration-guides","type":"docs"},{"id":666,"pageTitle":"","sectionTitle":"Update Assistant","sectionRoute":"/guides/updating/update-assistant","type":"docs"},{"id":667,"pageTitle":"","sectionTitle":"Update Strategies","sectionRoute":"/guides/updating/update-assistant#update-strategies","type":"docs"},{"id":668,"pageTitle":"","sectionTitle":"Manually instantiating the update assistant on agent startup","sectionRoute":"/guides/updating/update-assistant#manually-instantiating-the-update-assistant-on-agent-startup","type":"docs"},{"id":669,"pageTitle":"","sectionTitle":"Storing the agent storage version outside of the agent storage","sectionRoute":"/guides/updating/update-assistant#storing-the-agent-storage-version-outside-of-the-agent-storage","type":"docs"},{"id":670,"pageTitle":"","sectionTitle":"Automatically update on agent startup","sectionRoute":"/guides/updating/update-assistant#automatically-update-on-agent-startup","type":"docs"},{"id":671,"pageTitle":"","sectionTitle":"Backups","sectionRoute":"/guides/updating/update-assistant#backups","type":"docs"},{"id":684,"pageTitle":"","sectionTitle":"Migrating from an Indy SDK Wallet to Aries Askar","sectionRoute":"/guides/updating/update-indy-sdk-to-askar","type":"docs"},{"id":685,"pageTitle":"","sectionTitle":"What does the migration do internally?","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#what-does-the-migration-do-internally","type":"docs"},{"id":686,"pageTitle":"","sectionTitle":"Create a backup","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#create-a-backup","type":"docs"},{"id":687,"pageTitle":"","sectionTitle":"Migrate the database to an Aries Askar structure","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#migrate-the-database-to-an-aries-askar-structure","type":"docs"},{"id":688,"pageTitle":"","sectionTitle":"Try to open the wallet in the new Aries Askar structure","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#try-to-open-the-wallet-in-the-new-aries-askar-structure","type":"docs"},{"id":689,"pageTitle":"","sectionTitle":"Update the keys","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#update-the-keys","type":"docs"},{"id":690,"pageTitle":"","sectionTitle":"Update the DIDs","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#update-the-dids","type":"docs"},{"id":691,"pageTitle":"","sectionTitle":"Update the credential definitions","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#update-the-credential-definitions","type":"docs"},{"id":692,"pageTitle":"","sectionTitle":"Update the link secret(s) (master secret)","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#update-the-link-secrets-master-secret","type":"docs"},{"id":693,"pageTitle":"","sectionTitle":"Update the credentials","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#update-the-credentials","type":"docs"},{"id":694,"pageTitle":"","sectionTitle":"All the other records","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#all-the-other-records","type":"docs"},{"id":695,"pageTitle":"","sectionTitle":"How to update","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#how-to-update","type":"docs"},{"id":696,"pageTitle":"","sectionTitle":"add the required dependencies:","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#add-the-required-dependencies","type":"docs"},{"id":697,"pageTitle":"","sectionTitle":"Getting the database path","sectionRoute":"/guides/updating/update-indy-sdk-to-askar#getting-the-database-path","type":"docs"},{"id":672,"pageTitle":"","sectionTitle":"Migrating from AFJ 0.1.0 to 0.2.x","sectionRoute":"/guides/updating/versions/0.1-to-0.2","type":"docs"},{"id":673,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/updating/versions/0.1-to-0.2#breaking-code-changes","type":"docs"},{"id":674,"pageTitle":"","sectionTitle":"Credentials Module","sectionRoute":"/guides/updating/versions/0.1-to-0.2#credentials-module","type":"docs"},{"id":675,"pageTitle":"","sectionTitle":"Connections Module","sectionRoute":"/guides/updating/versions/0.1-to-0.2#connections-module","type":"docs"},{"id":676,"pageTitle":"","sectionTitle":"Updating Custom Messages to the New Message Type Objects","sectionRoute":"/guides/updating/versions/0.1-to-0.2#updating-custom-messages-to-the-new-message-type-objects","type":"docs"},{"id":677,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/updating/versions/0.1-to-0.2#breaking-storage-changes","type":"docs"},{"id":678,"pageTitle":"","sectionTitle":"Credential Metadata","sectionRoute":"/guides/updating/versions/0.1-to-0.2#credential-metadata","type":"docs"},{"id":679,"pageTitle":"","sectionTitle":"Migrate Credential Record Properties","sectionRoute":"/guides/updating/versions/0.1-to-0.2#migrate-credential-record-properties","type":"docs"},{"id":680,"pageTitle":"","sectionTitle":"Mediation Record Role","sectionRoute":"/guides/updating/versions/0.1-to-0.2#mediation-record-role","type":"docs"},{"id":681,"pageTitle":"","sectionTitle":"Extracting Did Documents to Did Repository","sectionRoute":"/guides/updating/versions/0.1-to-0.2#extracting-did-documents-to-did-repository","type":"docs"},{"id":682,"pageTitle":"","sectionTitle":"Migrating to the Out of Band Record","sectionRoute":"/guides/updating/versions/0.1-to-0.2#migrating-to-the-out-of-band-record","type":"docs"},{"id":683,"pageTitle":"","sectionTitle":"Unifying Connection States and Roles","sectionRoute":"/guides/updating/versions/0.1-to-0.2#unifying-connection-states-and-roles","type":"docs"},{"id":698,"pageTitle":"","sectionTitle":"Migrating from AFJ 0.2.x to 0.3.x","sectionRoute":"/guides/updating/versions/0.2-to-0.3","type":"docs"},{"id":699,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/updating/versions/0.2-to-0.3#breaking-code-changes","type":"docs"},{"id":700,"pageTitle":"","sectionTitle":"Agent creation","sectionRoute":"/guides/updating/versions/0.2-to-0.3#agent-creation","type":"docs"},{"id":701,"pageTitle":"","sectionTitle":"did:key usage in protocols","sectionRoute":"/guides/updating/versions/0.2-to-0.3#didkey-usage-in-protocols","type":"docs"},{"id":702,"pageTitle":"","sectionTitle":"Modules extracted from the core","sectionRoute":"/guides/updating/versions/0.2-to-0.3#modules-extracted-from-the-core","type":"docs"},{"id":703,"pageTitle":"","sectionTitle":"Discover Features Module","sectionRoute":"/guides/updating/versions/0.2-to-0.3#discover-features-module","type":"docs"},{"id":704,"pageTitle":"","sectionTitle":"Ledger Module","sectionRoute":"/guides/updating/versions/0.2-to-0.3#ledger-module","type":"docs"},{"id":705,"pageTitle":"","sectionTitle":"Proofs Module","sectionRoute":"/guides/updating/versions/0.2-to-0.3#proofs-module","type":"docs"},{"id":706,"pageTitle":"","sectionTitle":"Out Of Band Proofs and Credentials","sectionRoute":"/guides/updating/versions/0.2-to-0.3#out-of-band-proofs-and-credentials","type":"docs"},{"id":707,"pageTitle":"","sectionTitle":"Updating Custom Modules to the new Plugin API","sectionRoute":"/guides/updating/versions/0.2-to-0.3#updating-custom-modules-to-the-new-plugin-api","type":"docs"},{"id":708,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/updating/versions/0.2-to-0.3#breaking-storage-changes","type":"docs"},{"id":709,"pageTitle":"","sectionTitle":"Migrate Proof Record Properties","sectionRoute":"/guides/updating/versions/0.2-to-0.3#migrate-proof-record-properties","type":"docs"},{"id":710,"pageTitle":"","sectionTitle":"Migrate Connection Record properties","sectionRoute":"/guides/updating/versions/0.2-to-0.3#migrate-connection-record-properties","type":"docs"},{"id":711,"pageTitle":"","sectionTitle":"Migrate Did Record properties","sectionRoute":"/guides/updating/versions/0.2-to-0.3#migrate-did-record-properties","type":"docs"},{"id":712,"pageTitle":"","sectionTitle":"Migrating from AFJ 0.3.x to 0.4.x","sectionRoute":"/guides/updating/versions/0.3-to-0.4","type":"docs"},{"id":713,"pageTitle":"","sectionTitle":"Breaking Code Changes","sectionRoute":"/guides/updating/versions/0.3-to-0.4#breaking-code-changes","type":"docs"},{"id":714,"pageTitle":"","sectionTitle":"Agent Creation","sectionRoute":"/guides/updating/versions/0.3-to-0.4#agent-creation","type":"docs"},{"id":715,"pageTitle":"","sectionTitle":"Indy Network Configuration","sectionRoute":"/guides/updating/versions/0.3-to-0.4#indy-network-configuration","type":"docs"},{"id":716,"pageTitle":"","sectionTitle":"Changes to wallet","sectionRoute":"/guides/updating/versions/0.3-to-0.4#changes-to-wallet","type":"docs"},{"id":717,"pageTitle":"","sectionTitle":"Did Resolver and Registrar","sectionRoute":"/guides/updating/versions/0.3-to-0.4#did-resolver-and-registrar","type":"docs"},{"id":718,"pageTitle":"","sectionTitle":"Removal of publicDidSeed and publicDid","sectionRoute":"/guides/updating/versions/0.3-to-0.4#removal-of-publicdidseed-and-publicdid","type":"docs"},{"id":719,"pageTitle":"","sectionTitle":"More Granular Usage of Legacy did:sov Prefix in DIDComm Messages","sectionRoute":"/guides/updating/versions/0.3-to-0.4#more-granular-usage-of-legacy-didsov-prefix-in-didcomm-messages","type":"docs"},{"id":720,"pageTitle":"","sectionTitle":"Removal of injectionContainer property from the agent","sectionRoute":"/guides/updating/versions/0.3-to-0.4#removal-of-injectioncontainer-property-from-the-agent","type":"docs"},{"id":721,"pageTitle":"","sectionTitle":"connection has been updated to connectionId in TransportSession","sectionRoute":"/guides/updating/versions/0.3-to-0.4#connection-has-been-updated-to-connectionid-in-transportsession","type":"docs"},{"id":722,"pageTitle":"","sectionTitle":"Replacement of Ledger Module with new AnonCreds Module","sectionRoute":"/guides/updating/versions/0.3-to-0.4#replacement-of-ledger-module-with-new-anoncreds-module","type":"docs"},{"id":723,"pageTitle":"","sectionTitle":"Changes to the Credentials and Proofs modules","sectionRoute":"/guides/updating/versions/0.3-to-0.4#changes-to-the-credentials-and-proofs-modules","type":"docs"},{"id":724,"pageTitle":"","sectionTitle":"Changes to the AnonCreds Credential and Proof Format","sectionRoute":"/guides/updating/versions/0.3-to-0.4#changes-to-the-anoncreds-credential-and-proof-format","type":"docs"},{"id":725,"pageTitle":"","sectionTitle":"Removal of AnonCreds Master Secret management from Wallet","sectionRoute":"/guides/updating/versions/0.3-to-0.4#removal-of-anoncreds-master-secret-management-from-wallet","type":"docs"},{"id":726,"pageTitle":"","sectionTitle":"Default Outbound DIDComm Content Type now application/didcomm-envelope-enc","sectionRoute":"/guides/updating/versions/0.3-to-0.4#default-outbound-didcomm-content-type-now-applicationdidcomm-envelope-enc","type":"docs"},{"id":727,"pageTitle":"","sectionTitle":"Generalizing Indy properties in CredentialExchangeRecord","sectionRoute":"/guides/updating/versions/0.3-to-0.4#generalizing-indy-properties-in-credentialexchangerecord","type":"docs"},{"id":728,"pageTitle":"","sectionTitle":"More paths in FileSystem","sectionRoute":"/guides/updating/versions/0.3-to-0.4#more-paths-in-filesystem","type":"docs"},{"id":729,"pageTitle":"","sectionTitle":"Breaking Storage Changes","sectionRoute":"/guides/updating/versions/0.3-to-0.4#breaking-storage-changes","type":"docs"}],"index":{"version":"2.3.9","fields":["title","content","sidebarParentCategories"],"fieldVectors":[["title/425",[0,6.993]],["content/425",[1,3.633,2,1.257,3,2.3,4,5.299,5,2.409,6,1.581,7,3.035,8,2.036,9,2.498,10,2.599,11,2.331,12,3.633,13,3.272,14,3.633,15,5.502,16,3.633,17,1.308,18,2.498,19,2.083,20,3.237,21,4.328,22,2.801,23,3.633,24,3.53,25,2.526,26,3.272,27,3.633,28,3.035,29,3.334,30,1.963,31,0.337,32,2.122,33,4.132,34,1.607,35,1.635,36,5.548,37,2.599,38,5.224,39,3.272,40,2.26,41,1.9,42,3.63,43,1.274,44,2.716,45,3.633,46,2.599,47,2.716,48,3.633,49,3.272,50,1.692,51,2.858,52,3.272,53,1.442,54,3.633,55,0.5,56,2.858,57,3.633,58,0.691,59,1.789,60,4.956,61,5.502,62,2.036,63,2.409,64,3.633,65,2.716,66,1.789,67,2.878,68,1.344,69,1.242,70,1.037,71,1.061,72,3.035,73,2.137,74,3.272,75,3.035,76,3.633,77,2.137,78,2.599,79,3.272,80,3.272,81,2.498,82,3.633,83,4.597,84,1.789,85,3.633,86,1.986,87,0.689,88,2.716,89,1.755,90,2.716,91,1.789,92,2.498,93,1.824,94,3.633,95,1.789,96,1.508,97,3.633,98,3.633,99,3.633,100,3.633,101,2.858,102,0.749]],["sidebarParentCategories/425",[]],["title/476",[86,3.822]],["content/476",[2,1.419,3,2.947,8,2.102,22,2.396,24,3.645,25,2.402,29,2.852,31,0.528,33,3.535,55,1.171,58,0.886,66,2.797,67,2.971,68,2.102,69,2.588,70,2.161,71,2.211,84,2.797,86,4.137,103,2.359,104,4.248,105,3.768,106,4.575,107,5.681,108,3.179,109,5.681,110,4.469,111,2.223,112,2.852,113,3.959,114,3.036,115,3.295,116,5.659,117,2.646,118,3.036,119,3.258]],["sidebarParentCategories/476",[]],["title/477",[31,0.542,55,0.803]],["content/477",[2,1.44,8,3.076,111,3.253,112,4.174]],["sidebarParentCategories/477",[]],["title/478",[55,0.689,113,2.621,114,2.678]],["content/478",[113,4.516]],["sidebarParentCategories/478",[]],["title/479",[55,0.689,66,2.467,115,2.181]],["content/479",[2,1.295,3,2.986,22,2.935,24,4.465,25,2.737,29,3.494,58,0.898,67,3.64,68,2.575,69,2.948,70,2.462,71,2.519,106,4.207,115,3.03,116,6.448,117,3.242,118,3.72,119,3.991]],["sidebarParentCategories/479",[]],["title/452",[31,0.65]],["content/452",[2,1.468,8,2.839,25,2.435,31,0.713,111,3.003,112,3.853,120,4.294,121,5.09,122,5.872,123,4.34]],["sidebarParentCategories/452",[86,3.509]],["title/453",[124,6.299]],["content/453",[2,1.31,3,1.786,11,3.31,29,2.59,30,1.524,31,0.849,34,1.507,46,3.69,58,0.537,106,3.118,112,3.559,114,3.789,121,3.421,124,4.646,125,3.857,126,4.646,127,6.386,128,5.158,129,6.386,130,4.549,131,4.646,132,4.874,133,5.158,134,3.857,135,5.158,136,4.646,137,3.421,138,3.69,139,5.577,140,2.078,141,5.923,142,5.158,143,5.158,144,4.309,145,3.245,146,1.698,147,4.874,148,2.59,149,2.774,150,1.72,151,2.642,152,2.109,153,3.31,154,4.646,155,3.421,156,4.058,157,4.309,158,5.158,159,3.118,160,4.058,161,5.158,162,3.421,163,3.31]],["sidebarParentCategories/453",[86,3.509]],["title/454",[164,5.229]],["content/454",[2,1.32,3,2.1,31,0.96,34,1.772,35,3.556,106,3.667,164,6.572,165,4.771,166,7.917,167,4.023,168,4.804,169,6.602,170,5.433,171,2.986,172,1.948,173,4.338,174,5.463,175,6.065,176,6.065,177,6.065,178,6.602,179,3.242,180,3.332,181,6.065]],["sidebarParentCategories/454",[86,3.509]],["title/455",[96,2.904]],["content/455",[2,1.099,11,4.698,30,1.598,31,0.68,33,3.364,34,1.58,44,4.043,53,2.147,55,0.744,58,0.762,70,1.544,71,1.58,96,3.04,108,3.025,131,4.87,132,3.717,134,4.043,137,3.586,138,3.868,146,1.78,150,1.802,151,2.77,152,2.211,153,3.469,155,3.586,162,3.586,168,4.537,172,2.352,180,2.28,182,2.475,183,4.517,184,5.407,185,5.407,186,5.407,187,5.407,188,5.407,189,3.181,190,2.955,191,4.863,192,5.407,193,5.407,194,5.407,195,7.321,196,4.87,197,4.87,198,4.043,199,5.407,200,2.057,201,4.254,202,3.025,203,4.87]],["sidebarParentCategories/455",[86,3.509]],["title/456",[40,3.632,58,0.608]],["content/456",[2,1.403,3,2.752,25,2.522,31,0.738,42,4.343,102,1.639,204,4.944,205,7.157,206,2.097]],["sidebarParentCategories/456",[86,3.509]],["title/480",[113,3.054,114,3.12]],["content/480",[]],["sidebarParentCategories/480",[86,3.509]],["title/481",[113,3.658]],["content/481",[11,5.614,29,3.577,43,2.5,113,4.577,144,5.953,153,4.572,196,6.418,203,6.418,207,6.418,208,8.749,209,5.29,210,2.566,211,4.726,212,3.65,213,7.125,214,7.125,215,7.125,216,3.727,217,7.125]],["sidebarParentCategories/481",[86,3.509]],["title/482",[32,2.698]],["content/482",[20,4.063,32,3.311,59,4.225,140,2.782,148,3.467,151,3.538,152,2.824,190,3.775,191,3.775,218,4.58,219,4.431,220,5.164,221,4.94,222,3.775,223,4.175,224,4.063,225,3.467,226,5.433,227,5.188,228,4.802,229,4.431,230,4.748,231,4.748]],["sidebarParentCategories/482",[86,3.509]],["title/483",[114,3.738]],["content/483",[2,0.887,3,2.045,8,2.873,46,4.224,47,4.416,49,5.319,103,2.452,104,4.416,105,3.917,106,3.57,114,4.637,121,3.917,146,1.944,148,2.965,151,3.978,152,3.176,153,3.789,155,5.754,182,2.703,227,3.57,228,3.304,232,3.789,233,4.416,234,5.905,235,3.304,236,5.905,237,3.475,238,2.853,239,3.228,240,4.416,241,3.789,242,4.224,243,4.06,244,4.224,245,3.475,246,5.905,247,3.57,248,3.789,249,3.674,250,5.319,251,4.224,252,1.994]],["sidebarParentCategories/483",[86,3.509]],["title/484",[40,3.632,58,0.608]],["content/484",[114,4.528,253,8.734]],["sidebarParentCategories/484",[86,3.509]],["title/457",[66,2.874,115,2.541]],["content/457",[2,1.295,3,2.986,22,2.935,24,4.465,25,2.737,29,3.494,58,0.898,67,3.64,68,2.575,69,2.948,70,2.462,71,2.519,106,4.207,115,3.03,116,6.448,117,3.242,118,3.72,119,3.991]],["sidebarParentCategories/457",[86,3.509]],["title/485",[2,0.752,3,1.735,106,3.029]],["content/485",[2,1.123,3,2.591,59,3.684,92,5.144,93,3.756,103,3.107,106,4.523,159,4.523,202,4.187,254,4.29,255,6.739,256,7.091,257,7.481,258,6.251,259,4.962,260,4.29]],["sidebarParentCategories/485",[]],["title/486",[93,3.511]],["content/486",[2,1.491,3,3.303,25,2.804,31,0.673,70,2.067,71,2.115,93,3.635,125,5.414,168,3.958,261,3.565,262,7.24,263,3.565,264,4.051,265,3.258,266,5.696]],["sidebarParentCategories/486",[]],["title/487",[32,2.698]],["content/487",[2,1.458,3,3.137,25,2.875,31,0.701,32,2.91,38,5.935,70,2.154,71,2.204,168,4.124,238,3.645,265,3.395,266,5.935]],["sidebarParentCategories/487",[]],["title/488",[2,0.752,3,1.735,25,1.59]],["content/488",[2,1.353,3,3.121,25,2.374,43,2.625,92,5.144,106,4.523,146,2.463,152,3.06,163,4.801,200,2.846,252,2.526,267,2.695,268,4.29,269,7.481]],["sidebarParentCategories/488",[]],["title/489",[2,0.659,106,2.653,270,3.666,271,3.666]],["content/489",[2,1.437,8,2.701,25,2.316,67,3.818,166,6.575,261,3.594,266,5.742,271,6.098,272,5.742,273,7.299,274,7.299,275,9.957,276,6.575,277,4.841,278,7.299]],["sidebarParentCategories/489",[]],["title/490",[67,3.054,270,4.877]],["content/490",[2,0.984,43,2.299,67,3.427,75,5.474,91,4.088,149,2.564,232,4.204,266,5.155,267,2.483,270,7.616,272,5.155,279,4.886,280,8.304,281,8.304,282,6.552,283,6.552,284,2.03,285,6.552,286,6.552,287,6.552,288,5.474,289,6.552,290,5.902,291,5.902,292,4.9,293,5.902,294,4.346]],["sidebarParentCategories/490",[]],["title/491",[265,3.147]],["content/491",[2,1.368,3,2.792,4,2.36,6,1.436,7,2.756,22,1.391,24,2.117,25,2.558,31,0.749,43,2.194,53,2.483,55,1.048,58,0.793,70,2.481,71,0.964,79,2.971,91,1.624,93,2.566,96,1.37,111,1.291,112,3.14,120,1.846,122,5.172,123,2.967,154,2.971,180,2.971,189,1.941,191,1.803,228,3.5,247,3.089,248,2.117,254,1.892,260,3.587,261,1.624,265,3.17,267,2.514,268,1.892,295,2.467,296,3.18,297,2.36,298,2.36,299,3.299,300,3.299,301,2.971,302,2.838,303,5.542,304,4.921,305,1.073,306,2.756,307,2.756,308,4.474,309,2.595,310,1.391,311,2.36,312,2.756,313,5.766,314,5.24,315,2.339,316,2.117,317,1.349,318,2.756,319,1.237,320,2.756,321,2.756,322,2.117,323,1.204,324,2.188,325,2.36,326,3.513,327,1.941,328,1.846,329,1.188,330,2.595,331,2.756,332,2.36]],["sidebarParentCategories/491",[]],["title/492",[55,0.689,122,3.215,123,2.376]],["content/492",[2,0.998,3,2.303,4,4.757,25,2.11,31,0.853,43,2.94,112,3.338,122,5.889,123,3.154,180,3.535,228,4.69,247,4.02,248,4.267,260,4.806,267,2.506,316,4.267,317,2.719,318,5.556,319,2.494,320,5.556,321,5.556,322,4.267,323,2.427]],["sidebarParentCategories/492",[]],["title/493",[55,0.689,70,1.43,303,3.445]],["content/493",[58,0.799,70,2.792,112,3.853,180,3.236,189,4.515,267,2.295,302,3.092,303,6.292,324,5.09,325,5.489,326,5.276]],["sidebarParentCategories/493",[]],["title/494",[53,1.989,55,0.689,308,3.584]],["content/494",[22,3.209,24,4.882,53,3.021,55,1.047,58,0.948,70,2.6,71,2.223,111,2.977,267,2.275,308,5.443,326,5.231,327,4.477,328,4.258]],["sidebarParentCategories/494",[]],["title/495",[55,0.689,313,3.584,314,3.445]],["content/495",[6,3.204,31,0.684,43,2.582,58,0.766,120,4.118,180,3.103,267,2.2,302,2.965,313,6.87,314,6.603,315,3.369,329,2.651,330,5.789,331,6.148,332,5.264]],["sidebarParentCategories/495",[]],["title/496",[313,4.176,314,4.014]],["content/496",[2,1.208,6,2.714,8,2.307,31,0.579,32,2.405,43,2.187,58,0.649,120,3.488,180,2.629,223,3.769,264,3.488,265,2.805,267,1.864,268,3.575,302,3.791,305,2.896,312,5.208,313,6.967,314,6.469,315,2.853,329,2.245,330,4.904,331,5.208,332,4.459,333,3.332,334,5.615,335,2.758,336,2.904]],["sidebarParentCategories/496",[265,2.889]],["title/497",[337,1.747]],["content/497",[2,1.138,31,0.821,55,1.453,58,0.593,91,1.872,134,6.371,150,2.527,151,3.883,159,3.442,227,3.442,230,5.212,302,1.532,312,5.703,313,5.422,314,2.614,315,1.74,322,2.44,329,1.369,330,2.991,332,4.073,335,1.683,338,2.701,339,2.366,340,1.872,341,2.859,342,2.606,343,2.522,344,1.743,345,5.694,346,5.694,347,1.388,348,1.842,349,1.192,350,1.644,351,3.802,352,3.802,353,3.478,354,2.522,355,2.522,356,3.732,357,5.694,358,3.802,359,2.439,360,5.694,361,5.694,362,4.757,363,3.802,364,5.694,365,3.777,366,3.425,367,3.802,368,3.802]],["sidebarParentCategories/497",[265,2.889]],["title/512",[70,1.667,303,4.014]],["content/512",[2,1.166,6,2.571,8,2.185,31,0.549,32,2.278,43,2.072,58,0.615,70,2.631,78,4.224,112,2.965,180,3.274,189,4.569,191,3.228,223,3.57,264,3.304,265,2.657,267,1.766,268,3.386,302,3.713,303,6.582,305,2.821,310,2.49,316,3.789,324,3.917,325,4.224,326,5.339,333,3.156,334,5.319,335,2.613,336,2.751,369,4.646,370,5.319,371,3.089]],["sidebarParentCategories/512",[265,2.889]],["title/513",[337,1.747]],["content/513",[2,1.34,70,2.101,91,3.623,302,2.965,303,5.06,310,3.763,322,4.722,338,4.232,339,4.579,340,3.623,341,4.48,342,4.085,372,8.923]],["sidebarParentCategories/513",[265,2.889]],["title/514",[343,4.638]],["content/514",[2,0.829,8,1.009,30,0.806,31,0.726,35,3.126,43,0.957,50,1.27,55,1.448,58,0.458,62,1.009,63,2.916,70,0.779,73,1.605,83,2.278,96,2.293,112,1.369,116,2.039,125,2.039,146,0.898,150,1.841,180,1.15,191,3.019,238,1.317,256,2.145,267,0.815,279,1.605,284,0.845,290,2.456,302,1.099,303,6.055,305,1.43,310,2.329,317,1.115,319,1.023,324,1.809,325,1.951,327,1.605,344,1.691,347,2.967,348,0.736,353,1.168,373,1.526,374,2.278,375,6.948,376,5.523,377,6.948,378,2.727,379,4.396,380,2.727,381,2.727,382,4.396,383,2.727,384,2.727,385,1.168,386,1.15,387,2.456,388,5.313,389,1.564,390,1.875,391,2.727,392,2.727,393,4.396,394,1.875,395,2.727,396,1.187,397,2.727,398,2.727,399,2.727,400,4.156,401,2.727,402,2.727,403,2.456,404,1.605,405,2.456,406,1.447,407,0.982,408,2.727,409,1.132,410,2.039,411,4.975,412,2.727,413,2.456,414,2.727,415,0.957,416,2.727,417,2.039,418,2.735,419,2.456,420,2.727,421,2.145,422,1.248,423,1.951,424,2.727,425,2.727,426,2.727,427,1.649,428,2.727,429,2.727,430,2.456,431,1.564,432,2.727,433,1.697,434,1.809,435,2.727,436,2.727,437,1.825,438,2.403,439,2.278,440,2.727,441,2.727,442,2.145,443,2.456,444,2.727,445,2.727,446,2.727]],["sidebarParentCategories/514",[265,2.889]],["title/498",[53,2.318,308,4.176]],["content/498",[2,1.099,8,2.001,22,2.28,24,3.469,25,1.716,30,1.598,31,0.68,32,2.086,53,3.532,55,0.744,58,0.864,70,2.09,71,1.58,111,2.116,112,2.715,150,1.802,180,3.087,189,3.181,223,3.269,225,2.715,264,3.025,265,2.433,267,2.189,268,3.1,302,3.344,305,2.699,307,4.517,308,5.938,326,5.033,327,5.234,328,4.097,333,2.89,335,2.393,336,3.41,344,1.655,434,3.586,447,4.043,448,3.469,449,2.715,450,5.407,451,5.407]],["sidebarParentCategories/498",[265,2.889]],["title/499",[337,1.747]],["content/499",[2,1.34,53,3.813,91,3.623,302,2.965,307,7.456,308,5.264,322,4.722,338,4.232,339,4.579,340,3.623,341,4.48,342,4.085]],["sidebarParentCategories/499",[265,2.889]],["title/500",[122,3.746,123,2.769]],["content/500",[2,1.352,3,1.539,4,3.178,6,1.934,8,2.362,9,3.054,10,3.178,11,2.851,17,1.6,18,3.054,24,4.096,25,1.41,30,1.313,31,0.759,32,1.714,34,1.298,43,2.239,46,3.178,55,1.028,67,2.324,102,0.916,103,1.845,111,1.738,112,3.205,122,5.778,123,3.873,149,1.738,150,1.481,180,2.692,223,2.686,225,2.23,228,4.18,247,2.686,248,2.851,260,3.66,264,2.486,265,1.999,267,2.234,268,2.548,294,2.947,302,3.29,305,2.656,309,5.022,316,2.851,317,1.817,318,3.712,319,1.667,320,3.712,321,3.712,322,2.851,323,1.622,335,2.825,336,2.07,452,3.495,453,2.548,454,3.712,455,4.442,456,2.686,457,3.712,458,3.712,459,0.618,460,4.442,461,1.903]],["sidebarParentCategories/500",[265,2.889]],["title/501",[462,5.837,463,1.367]],["content/501",[6,3.053,25,2.226,58,0.73,66,3.453,69,2.398,91,3.453,102,1.787,103,2.912,120,3.925,122,4.5,123,3.326,206,1.851,230,4.822,337,1.752,356,3.453,409,2.912,415,2.461,454,5.86,463,1.643,464,3.296,465,3.669,466,5.518,467,7.013]],["sidebarParentCategories/501",[265,2.889]],["title/502",[120,3.267,468,5.259]],["content/502",[2,0.832,32,2.137,43,2.611,55,1.357,58,0.577,72,6.218,81,3.809,102,1.143,122,5.393,123,2.628,140,2.232,171,2.728,172,2.391,173,3.963,228,4.703,241,4.776,247,4.5,267,2.225,309,4.359,322,3.555,325,3.963,337,1.86,340,2.728,359,2.373,469,4.143,470,4.359,471,3.963,472,3.963,473,3.26,474,4.359,475,5.54,476,5.54,477,5.54,478,3.809,479,4.991,480,3.675,481,4.143,482,5.54,483,5.54,484,2.677,485,5.54,486,5.54]],["sidebarParentCategories/502",[265,2.889]],["title/503",[323,2.553]],["content/503",[2,1.07,33,5.444,38,5.605,102,1.47,122,4.572,249,5.444,263,3.508,267,2.131,309,5.605,323,2.601,340,3.508,396,3.809,417,5.328,418,4.433,454,7.31,471,5.097,472,5.097,487,3.727,488,7.125]],["sidebarParentCategories/503",[265,2.889]],["title/504",[102,1.204,206,1.541]],["content/504",[2,0.938,3,2.164,8,2.719,22,2.635,25,1.983,29,2.166,31,0.794,34,2.147,35,1.941,55,0.86,62,1.596,66,3.077,69,2.512,70,1.784,71,1.826,84,2.124,102,1.289,103,1.791,110,3.394,115,1.878,118,2.306,119,2.474,168,4.017,173,4.47,189,3.677,259,4.874,260,3.584,279,2.538,284,1.337,319,1.618,337,2.013,373,2.414,385,1.848,386,1.819,388,5.256,406,2.419,415,3,427,2.608,438,4.017,442,4.917,463,1.721,464,2.795,489,3.605,490,5.539,491,1.848,492,5.63,493,2.768,494,2.306,495,2.21,496,1.177,497,3.086,498,2.685,499,3.605,500,3.394,501,2.538,502,3.394,503,3.394]],["sidebarParentCategories/504",[]],["title/505",[55,0.803,490,4.014]],["content/505",[2,0.991,3,2.286,8,2.442,25,2.095,34,1.928,62,2.442,66,3.25,69,2.852,70,1.885,71,1.928,102,1.361,115,2.873,168,3.608,259,5.533,260,3.785,279,3.884,284,2.045,319,2.476,337,2.285,388,4.722,406,2.747,496,1.801,497,4.722,498,4.107,499,5.515,500,5.193,501,3.884,502,5.193]],["sidebarParentCategories/505",[]],["title/506",[31,0.465,55,0.689,463,1.173]],["content/506",[427,5.17,503,6.728]],["sidebarParentCategories/506",[]],["title/507",[490,4.808]],["content/507",[2,0.905,3,2.086,8,2.229,25,1.912,34,1.76,62,2.911,66,2.966,69,3.175,70,2.246,71,2.298,91,2.966,102,1.243,115,2.623,168,3.293,259,5.218,260,3.455,279,3.545,284,2.437,319,2.951,337,2.189,341,3.025,342,2.758,388,4.309,406,2.59,427,3.642,496,1.644,497,4.309,498,3.748,499,5.033,500,4.739,501,3.545,502,4.739,504,6.024,505,6.024]],["sidebarParentCategories/507",[102,1.048,206,1.341]],["title/508",[69,2.391]],["content/508",[3,1.717,17,1.786,55,0.949,59,2.441,62,1.835,69,3.082,115,2.159,120,2.775,173,3.547,337,2.392,340,2.441,341,2.489,386,2.091,415,2.783,487,3.608,497,3.547,506,6.198,507,3.901,508,4.958,509,4.958,510,4.467,511,4.958,512,2.775,513,2.775,514,4.936,515,4.796,516,7.146,517,2.194,518,4.467,519,4.143,520,4.143,521,6.241,522,5.764,523,4.143,524,3.289,525,4.467,526,2.594,527,4.143,528,3.901,529,4.143,530,3.901,531,4.958,532,5.427,533,3.547,534,4.958,535,4.143,536,4.143,537,4.958,538,4.958,539,4.143]],["sidebarParentCategories/508",[102,1.048,206,1.341]],["title/509",[341,3.511]],["content/509",[302,3.23,328,4.486,337,2.003,430,7.221,506,5.512,540,5.734,541,7.221,542,5.317,543,7.221]],["sidebarParentCategories/509",[102,1.048,206,1.341]],["title/510",[342,3.201]],["content/510",[58,0.82,66,3.878,252,2.659,337,2.322,341,4.666,342,4.254,494,4.21,544,7.095]],["sidebarParentCategories/510",[102,1.048,206,1.341]],["title/511",[91,2.874,463,1.367]],["content/511",[17,2.546,58,0.736,69,2.977,70,2.486,71,2.544,91,4.287,284,2.698,319,3.266,406,2.327,415,2.48,464,2.689,517,3.128,545,5.561,546,3.549,547,7.069,548,7.069,549,7.069,550,7.069]],["sidebarParentCategories/511",[102,1.048,206,1.341]],["title/520",[31,0.542,463,1.367]],["content/520",[2,1.422,3,1.523,17,1.584,25,1.396,29,2.209,30,1.3,44,3.289,58,0.986,65,3.289,67,2.301,69,1.504,70,1.256,71,1.285,91,2.166,111,2.48,123,2.086,179,2.351,223,2.659,227,2.659,230,3.024,235,4.549,256,3.461,267,1.895,294,2.918,296,2.737,305,1.431,326,3.024,336,2.049,350,2.489,356,2.166,415,2.224,463,1.03,464,1.673,465,2.301,490,3.024,517,1.947,546,2.209,551,2.405,552,4.067,553,3.963,554,6.079,555,3.963,556,4.928,557,5.295,558,3.675,559,4.399,560,1.947,561,1.523,562,2.659,563,4.399,564,3.147,565,1.673,566,3.963,567,1.721,568,2.254,569,2.166,570,2.823,571,2.823,572,3.963,573,3.963,574,3.675,575,3.675,576,3.963,577,3.963,578,4.399,579,6.338,580,4.399,581,2.166,582,3.963]],["sidebarParentCategories/520",[102,1.048,206,1.341]],["title/521",[252,1.691,337,1.252,496,1.367]],["content/521",[2,1.482,3,2.253,25,2.064,31,0.604,69,2.224,70,2.594,71,2.654,252,2.196,267,1.945,310,2.743,323,2.375,337,1.625,338,3.92,342,3.784,385,2.787,496,1.775,583,4.653,584,5.86,585,7.446,586,5.86,587,5.86,588,5.435,589,5.86,590,3.332]],["sidebarParentCategories/521",[102,1.048,206,1.341]],["title/522",[463,1.367,591,2.931]],["content/522",[8,2.048,17,1.994,34,1.617,36,3.06,55,1.368,58,0.774,68,2.752,69,1.893,70,2.124,71,2.454,91,1.803,93,1.839,111,1.433,189,3.257,222,3.026,252,1.236,254,2.1,265,2.491,271,3.06,292,2.739,338,2.626,341,3.351,342,3.055,344,1.121,349,1.148,350,1.058,396,2.41,406,2.197,463,1.297,494,1.958,495,1.876,496,1.511,517,2.45,545,2.881,546,2.779,589,3.299,590,1.876,591,2.779,592,3.662,593,3.299,594,3.662,595,3.662,596,5.536,597,3.662,598,6.674,599,3.662,600,2.049,601,3.662,602,3.662,603,3.662,604,3.662,605,3.06,606,3.662,607,3.662,608,2.739,609,1.876,610,4.774,611,3.662,612,2.155,613,2.049,614,3.662,615,1.839,616,5.536,617,4.987,618,5.536,619,3.662,620,5.562,621,6.674,622,3.662,623,2.214,624,3.662,625,4.139,626,3.662,627,2.518,628,2.62,629,2.881,630,3.662,631,2.881,632,2.881,633,2.002]],["sidebarParentCategories/522",[102,1.048,206,1.341]],["title/523",[31,0.465,284,1.552,319,1.879]],["content/523",[2,1.302,31,0.913,50,1.858,55,1.428,58,0.731,62,2.183,69,1.364,70,1.685,71,1.724,81,4.057,84,1.964,87,1.119,89,2.85,103,1.656,104,2.982,117,1.858,140,2.377,146,1.313,172,1.895,189,2.347,210,2.125,212,2.043,220,2.982,251,2.853,284,1.236,310,1.682,323,2.833,344,1.806,347,2.154,348,1.592,349,2.597,359,3.324,415,1.399,463,0.934,465,2.086,473,3.472,496,1.61,506,2.742,634,3.332,635,2.232,636,3.988,637,3.988,638,1.964,639,5.147,640,4.829,641,3.222,642,3.988,643,3.786,644,5.315,645,3.332]],["sidebarParentCategories/523",[102,1.048,206,1.341]],["title/524",[111,1.717,172,1.41,200,1.669,646,1.975]],["content/524",[2,1.147,6,2.014,9,3.18,10,3.309,11,2.968,29,2.322,31,0.773,34,1.351,35,2.082,43,3.202,55,0.904,56,3.639,62,2.431,63,3.068,68,2.431,111,3.754,112,2.322,139,3.639,155,3.068,172,2.822,191,2.529,200,3.164,231,4.517,261,2.278,263,3.235,267,1.383,284,1.433,319,1.735,406,1.523,415,2.305,456,2.797,464,1.76,491,1.982,502,3.639,565,1.76,567,2.99,613,3.676,647,2.878,648,6.57,649,2.42,650,0.887,651,1.172,652,3.639,653,3.309,654,3.309,655,3.18,656,4.913,657,2.968,658,3.299,659,3.865]],["sidebarParentCategories/524",[102,1.048,206,1.341]],["title/525",[2,0.752,55,0.689,567,1.96]],["content/525",[2,1.105,29,3.695,31,0.684,43,3.131,68,2.723,111,2.88,139,5.789,155,4.881,172,2.364,191,4.023,200,2.799,231,6.135,491,3.153,567,2.88,654,5.264,655,5.06,656,5.503]],["sidebarParentCategories/525",[102,1.048,206,1.341]],["title/526",[55,0.689,650,0.534,651,0.769]],["content/526",[6,3.053,9,4.822,10,5.017,11,4.5,31,0.651,35,3.156,43,3.04,56,5.518,62,2.595,63,4.652,111,3.391,112,3.521,172,2.253,565,2.668,613,3.925,650,0.924,651,1.076,656,5.244,657,4.5,658,4.35,659,5.86]],["sidebarParentCategories/526",[102,1.048,206,1.341]],["title/527",[241,3.215,284,1.552,319,1.879]],["content/527",[2,1.198,6,2.183,31,0.801,55,1.368,69,1.714,70,1.432,71,1.465,103,3.314,117,2.336,146,1.651,168,2.741,241,5.808,247,3.031,248,3.217,252,1.693,259,3.325,284,2.472,311,3.586,319,1.881,335,2.219,344,2.128,449,2.517,463,1.628,478,3.447,479,4.516,480,5.716,481,5.198,494,2.68,545,3.944,634,4.189,640,3.12,660,5.014,661,5.014,662,5.469,663,5.967,664,5.198,665,2.806,666,6.952,667,5.808,668,6.952,669,5.014,670,4.516]],["sidebarParentCategories/527",[102,1.048,206,1.341]],["title/528",[31,0.542,50,2.719]],["content/528",[31,0.893,50,4.479,55,1.451,58,0.623,69,2.046,70,1.709,71,1.748,101,4.708,152,3.203,284,2.427,319,2.938,545,4.708,671,3.969,672,7.832,673,7.832,674,7.832,675,7.832,676,6.544,677,7.832]],["sidebarParentCategories/528",[102,1.048,206,1.341]],["title/529",[386,2.462,678,4.176]],["content/529",[22,2.868,31,0.632,34,2.483,55,1.169,58,0.708,87,1.759,102,1.753,103,2.824,150,2.834,189,4.001,201,5.35,235,3.806,245,4.001,260,3.9,407,2.45,463,1.593,671,4.511,679,4.676,680,6.801,681,5.35,682,3.718,683,4.511,684,4.865]],["sidebarParentCategories/529",[102,1.048,206,1.341]],["title/530",[55,0.803,87,1.107]],["content/530",[58,0.865,103,3.452,201,6.541,235,4.652,682,4.545]],["sidebarParentCategories/530",[102,1.048,206,1.341]],["title/531",[34,1.464,55,0.689,150,1.67]],["content/531",[34,2.407,87,1.562,150,2.746,245,4.847,683,5.464,684,5.893]],["sidebarParentCategories/531",[102,1.048,206,1.341]],["title/532",[40,3.632,58,0.608]],["content/532",[2,1.248,31,0.772,42,4.545,204,5.173,205,7.489]],["sidebarParentCategories/532",[102,1.048,206,1.341]],["title/515",[565,2.22,571,3.746]],["content/515",[2,0.657,3,1.516,21,3.444,25,1.389,29,2.198,30,1.867,34,2.165,43,1.536,58,0.771,62,1.62,66,2.155,68,2.741,69,2.533,91,3.648,102,0.903,111,1.713,146,1.441,149,2.899,163,2.809,171,2.155,182,2.004,225,2.198,243,3.01,261,3.11,279,2.576,284,1.356,296,2.724,305,1.424,323,1.598,337,1.094,339,2.724,340,2.155,341,3.171,342,2.004,348,1.181,349,1.373,407,1.577,409,1.818,422,2.891,484,2.115,487,2.29,501,2.576,512,2.45,532,4.969,551,2.393,554,3.273,565,3.513,571,5.518,633,2.393,638,2.155,647,2.724,649,2.29,650,0.467,651,0.672,685,3.943,686,3.657,687,3.273,688,1.356,689,3.273,690,3.273,691,3.131,692,3.235,693,3.273,694,3.657,695,3.657,696,3.01,697,3.657,698,2.903,699,2.903,700,3.444,701,5.277,702,3.657,703,3.657]],["sidebarParentCategories/515",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/516",[337,1.252,565,1.906,571,3.215]],["content/516",[2,1.387,3,1.839,25,1.685,58,0.553,62,1.965,66,3.561,69,2.473,70,2.521,71,2.58,111,2.078,190,2.903,261,2.615,302,2.914,304,4.178,337,1.807,338,3.901,342,3.311,371,2.778,406,2.708,496,1.974,506,3.651,565,2.751,570,4.641,571,5.277,647,3.304,704,3.971,705,7.964,706,3.971,707,4.5,708,5.311,709,6.515,710,7.232,711,4.437,712,4.437]],["sidebarParentCategories/516",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/517",[31,0.408,565,1.669,571,2.816,646,1.975]],["content/517",[2,1.38,31,0.839,55,1.479,58,0.491,69,1.019,70,1.673,71,0.871,96,1.96,172,1.516,216,4.041,238,2.28,254,2.707,310,1.257,329,2.111,337,0.745,338,2.239,344,1.445,348,2.389,349,1.48,350,2.098,406,1.554,491,1.277,496,1.599,565,3.287,567,3.023,568,2.418,569,2.324,570,3.029,640,2.937,641,2.767,650,0.504,705,3.944,713,4.896,714,2.049,715,4.276,716,3.376,717,4.276,718,3.131,719,3.713,720,4.42,721,4.252,722,5.568,723,4.252,724,5.243,725,4.252,726,4.382]],["sidebarParentCategories/517",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/518",[323,2.553]],["content/518",[42,3.895,58,0.911,216,4.577,222,3.895,350,2.735,389,4.086,409,2.959,418,4.433,422,3.262,565,3.602,569,3.508,649,3.727,650,1.01,651,1.093,727,3.65]],["sidebarParentCategories/518",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/519",[68,1.444,69,1.335,305,1.269,565,1.485,571,2.505]],["content/519",[8,1.644,17,1.6,55,1.306,58,0.9,69,2.957,146,1.463,149,2.923,162,4.955,219,2.851,302,3.01,305,1.445,341,3.205,342,2.922,356,2.187,409,1.845,415,1.559,517,1.966,546,2.23,565,2.842,571,4.794,610,4.566,625,3.322,627,4.389,691,4.566,707,2.764,728,3.178,729,7.751,730,8.385,731,5.022,732,3.054,733,5.022,734,3.322,735,3.495,736,3.712,737,6.242,738,5.333,739,4.442,740,3.712,741,3.712,742,5.333,743,5.333,744,5.333,745,3.712,746,3.712]],["sidebarParentCategories/519",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/533",[2,0.877,567,2.284]],["content/533",[2,1.456,3,1.375,21,3.124,25,1.26,29,1.993,31,0.651,43,2.063,58,0.806,66,1.955,68,2.865,69,2.395,91,3.448,102,0.819,111,1.554,139,3.124,149,2.741,155,2.633,169,3.317,171,1.955,172,1.889,191,2.17,200,1.51,223,2.4,231,4.043,261,2.895,279,2.336,284,1.23,305,1.291,323,1.449,337,0.992,339,2.471,340,1.955,341,2.953,342,1.818,348,1.071,349,1.245,407,1.43,409,2.442,487,2.077,491,1.701,501,2.336,512,2.222,532,4.626,546,1.993,551,2.17,554,2.969,567,3.677,633,2.17,638,1.955,647,2.471,649,2.077,650,0.627,651,0.902,654,2.84,655,2.73,656,2.969,688,1.822,689,2.969,690,2.969,691,2.84,692,3.013,693,2.969,694,3.317,695,3.317,696,2.73,697,3.317,698,2.633,699,2.633,700,3.124,701,4.913,702,3.317,703,3.317,747,3.317,748,3.97,749,2.548,750,2.969,751,3.97,752,3.577,753,3.124]],["sidebarParentCategories/533",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/534",[2,0.752,337,1.252,567,1.96]],["content/534",[2,1.404,3,1.907,25,1.747,31,0.511,58,0.573,62,2.037,66,3.649,69,2.534,70,2.559,71,2.618,111,2.155,261,2.711,302,2.219,337,1.852,338,3.974,342,3.393,371,2.88,406,2.951,496,1.503,506,3.786,567,3.77,647,3.426,704,4.117,706,4.117,707,4.612,711,4.6,712,4.6,718,5.944,754,4.96,755,5.506,756,7.411]],["sidebarParentCategories/534",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/535",[2,0.659,31,0.408,567,1.717,646,1.975]],["content/535",[2,1.361,31,0.902,55,1.474,69,1.55,70,1.849,71,1.324,310,1.911,329,2.721,337,1.132,344,1.982,348,2.224,349,2.03,350,2.518,496,2.062,567,3.652,640,4.029,641,3.422,645,3.787,714,3.116,715,5.288,716,4.632,717,5.288,718,4.295,726,3.389,757,4.083]],["sidebarParentCategories/535",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/536",[2,0.586,68,1.444,69,1.335,305,1.269,567,1.527]],["content/536",[2,1.122,8,1.644,17,1.6,55,1.306,58,0.9,69,2.957,146,1.463,149,2.923,162,4.955,219,2.851,302,3.01,305,1.445,341,3.205,342,2.922,356,2.187,409,1.845,415,1.559,517,1.966,546,2.23,567,2.923,610,4.566,625,3.322,627,4.389,691,4.566,707,2.764,728,3.178,729,7.751,730,8.385,731,5.022,732,3.054,733,5.022,734,3.322,735,3.495,736,3.712,737,6.242,738,5.333,740,3.712,741,3.712,742,5.333,743,5.333,744,5.333,745,3.712,746,3.712,758,4.002]],["sidebarParentCategories/536",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/537",[581,3.443]],["content/537",[9,3.609,10,3.754,11,4.604,24,3.368,25,1.666,29,3.602,30,1.551,32,2.025,40,3.266,58,0.747,60,4.728,62,1.942,63,4.759,68,1.942,71,1.533,106,3.173,118,2.805,119,3.01,137,3.481,211,3.481,242,3.754,255,4.728,297,3.754,317,3.343,332,3.754,422,2.403,434,4.759,562,3.173,565,2.729,575,4.385,581,4.53,605,4.385,658,2.635,686,4.385,727,4.713,759,5.248,760,4.385,761,3.609,762,4.129,763,4.385,764,3.088,765,5.248,766,5.248,767,4.385,768,5.248,769,4.728,770,5.248,771,5.248,772,5.248,773,5.248,774,4.385,775,3.173]],["sidebarParentCategories/537",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/538",[337,1.459,581,2.874]],["content/538",[2,0.799,3,1.204,5,2.307,25,1.104,31,0.323,34,1.016,55,1.294,58,0.673,68,1.287,70,1.52,71,1.555,95,2.62,111,1.361,162,3.53,211,2.307,302,2.918,337,1.33,338,3.066,341,2.672,342,2.96,344,1.979,371,1.819,386,1.467,388,2.488,406,2.57,415,1.867,496,1.452,526,3.382,581,1.712,582,3.133,593,3.133,610,3.807,615,1.746,623,4.379,625,2.601,627,3.659,647,2.164,655,3.659,704,2.601,776,3.807,777,8.233,778,3.478,779,6.465,780,5.322,781,9.931,782,5.322,783,5.322,784,5.322,785,5.322,786,5.322,787,5.322,788,5.322,789,5.322,790,5.322,791,5.322,792,5.322,793,5.322,794,5.322,795,5.322,796,5.322,797,5.322,798,5.322,799,5.322,800,7.032,801,5.322,802,3.478]],["sidebarParentCategories/538",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/539",[31,0.465,581,2.467,646,2.254]],["content/539",[2,1.166,30,1.559,31,0.721,34,1.004,55,1.433,58,0.549,70,0.982,87,1,95,1.693,111,1.345,113,1.798,149,1.345,153,2.206,168,1.879,172,2.062,180,1.45,182,1.574,183,2.872,200,1.308,216,1.798,222,1.879,265,1.547,310,1.45,328,1.924,329,1.9,332,2.459,337,1.318,338,1.63,344,1.052,348,2.437,349,1.078,350,2.079,396,1.497,415,1.206,419,3.097,463,0.805,484,1.661,496,1.44,510,3.097,526,1.798,565,2.007,567,2.512,569,1.693,581,3.824,590,1.761,640,2.139,641,2.191,646,1.547,650,0.367,715,3.385,716,2.459,717,3.385,718,2.28,720,3.499,726,3.945,727,2.702,760,2.872,776,2.459,803,2.571,804,3.774,805,2.571,806,2.872,807,4.752,808,4.752,809,4.752,810,4.752,811,4.752,812,3.438,813,3.438,814,3.097,815,2.28,816,2.28,817,2.571,818,4.752,819,3.097,820,3.945,821,4.752,822,3.438,823,5.275,824,3.438,825,3.438,826,2.023,827,2.023]],["sidebarParentCategories/539",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/545",[650,0.623,651,0.896]],["content/545",[2,1.317,3,2.267,6,2.003,9,3.164,10,3.292,11,2.953,25,2.077,31,0.427,35,2.071,42,2.516,43,2.297,56,3.621,58,0.681,62,2.422,63,3.052,68,3.071,91,3.223,102,0.949,111,3.431,112,2.311,172,1.478,235,2.575,242,3.292,261,2.266,296,2.864,317,1.882,339,2.864,348,2.239,447,3.441,542,3.052,551,3.578,565,3.335,567,2.981,569,2.266,613,3.663,615,2.311,649,2.407,650,1,651,1.273,656,3.441,657,2.953,658,3.825,659,3.845,686,3.845,688,1.426,828,4.602,829,4.146,830,4.602,831,3.845,832,3.621,833,4.602,834,4.602,835,3.441]],["sidebarParentCategories/545",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/546",[337,1.252,650,0.534,651,0.769]],["content/546",[2,0.958,3,0.956,5,1.831,22,1.164,25,0.876,31,0.256,35,1.998,55,1.027,58,0.462,62,1.021,66,3.141,69,1.904,70,2.331,71,2.526,91,1.359,93,1.386,102,0.569,111,1.08,146,0.909,210,1.599,212,2.274,252,1.88,261,1.359,295,2.064,296,3.97,297,1.975,302,1.112,337,2.394,338,3.316,342,2.921,355,2.945,365,2.945,371,1.444,406,2.585,415,0.968,463,1.304,464,2.841,491,1.902,495,1.414,496,2.038,507,2.172,512,2.484,513,4.179,514,3.465,515,1.669,526,1.444,542,1.831,568,2.853,638,2.186,647,1.718,650,1.039,651,1.532,657,1.771,696,1.898,704,2.064,706,2.064,707,2.763,836,1.975,837,3.829,838,3.754,839,1.898,840,4.387,841,4.771,842,3.32,843,4.387,844,1.831,845,3.999,846,3.32,847,3.999,848,2.487]],["sidebarParentCategories/546",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/547",[55,0.803,514,3.632]],["content/547",[146,2.526,252,2.591,337,2.286,464,2.919,496,2.094,507,6.037,514,5.694,650,0.819,651,1.177,657,4.924,837,5.276,838,4.515]],["sidebarParentCategories/547",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/548",[55,0.803,512,3.267]],["content/548",[93,3.989,297,5.684,337,1.985,512,4.446,515,4.804,542,5.27,650,0.848,651,1.219,696,5.463,839,5.463]],["sidebarParentCategories/548",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/549",[55,0.689,513,2.803,840,3.445]],["content/549",[35,3.084,212,3.511,252,2.313,337,2.325,464,3.249,496,1.87,513,4.779,638,3.374,650,1.039,651,1.495,837,4.712,838,4.032,840,4.712,841,6.387,842,5.124,843,5.872]],["sidebarParentCategories/549",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/550",[55,0.689,513,2.803,843,3.445]],["content/550",[35,3.084,212,3.511,252,2.313,337,2.325,464,3.249,496,1.87,513,4.779,638,3.374,650,1.039,651,1.495,837,4.712,838,4.032,840,5.872,841,6.387,842,5.124,843,4.712]],["sidebarParentCategories/550",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/551",[55,0.689,70,1.43,71,1.464]],["content/551",[22,2.825,55,0.922,66,3.298,69,2.29,70,2.63,71,2.691,91,3.298,295,5.009,337,1.674,355,5.585,365,5.585,406,2.206,463,1.972,464,2.548,491,3.607,495,3.432,496,1.828,650,0.898,651,1.292,838,3.942,844,4.443]],["sidebarParentCategories/551",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/552",[31,0.408,646,1.975,650,0.468,651,0.673]],["content/552",[2,1.361,31,0.902,55,1.46,69,1.55,70,1.849,71,1.324,310,1.911,329,2.721,337,1.132,344,1.982,348,2.224,349,2.03,350,2.518,496,2.062,568,3.317,640,4.029,641,3.422,645,3.787,650,0.93,651,1.264,714,3.116,726,3.389,849,4.849,850,5.833,851,5.481,852,4.532]],["sidebarParentCategories/552",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/540",[514,4.351]],["content/540",[146,2.526,252,2.591,337,2.286,464,2.919,496,2.094,507,6.037,514,5.694,650,0.819,651,1.177,657,4.924,837,5.276,838,4.515]],["sidebarParentCategories/540",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/541",[853,4.808]],["content/541",[58,0.73,231,4.822,337,2.165,514,4.364,527,5.86,528,5.518,529,5.86,530,5.518,533,5.017,535,5.86,536,5.86,539,5.86,650,0.748,651,1.076,654,5.017,655,4.822,846,5.244,853,6.938,854,6.318,855,6.318]],["sidebarParentCategories/541",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/542",[856,5.501]],["content/542",[58,0.736,152,2.891,337,2.175,514,4.398,527,5.906,528,5.561,529,5.906,530,5.561,533,5.056,535,5.906,536,5.906,539,5.906,650,0.754,651,1.085,846,5.286,853,4.86,855,6.368,856,5.561,857,6.368,858,6.368,859,7.275,860,6.368]],["sidebarParentCategories/542",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/543",[650,0.623,651,0.896]],["content/543",[18,3.486,22,3.652,43,1.779,55,0.698,93,2.546,148,2.546,157,4.236,165,3.989,170,3.486,233,3.791,238,2.45,247,3.065,252,1.712,259,3.363,296,4.36,337,1.751,385,2.172,386,2.138,405,4.568,407,1.826,415,1.779,487,2.652,515,3.065,521,3.989,591,2.546,620,5.239,650,0.856,651,1.232,657,3.254,696,3.486,706,3.791,831,4.236,832,6.812,861,4.568,862,4.018,863,5.512,864,5.07,865,5.07,866,5.07,867,5.07,868,5.07,869,5.07,870,5.07,871,4.496,872,4.236,873,3.486,874,3.791,875,5.239,876,3.989,877,5.07,878,3.791,879,3.254,880,2.908,881,3.791,882,3.989,883,5.07,884,5.07]],["sidebarParentCategories/543",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/544",[337,1.459,469,4.365]],["content/544",[2,1.123,19,4.29,337,2.252,340,3.684,409,3.107,415,2.625,471,5.352,472,5.352,487,3.913,501,4.402,650,0.961,651,1.148,885,5.144,886,4.29,887,5.886]],["sidebarParentCategories/544",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/553",[513,3.267,843,4.014]],["content/553",[35,2.786,121,4.106,212,3.171,252,2.09,337,2.487,356,3.048,464,3.046,465,3.238,487,3.238,496,1.689,513,4.481,519,5.172,520,5.172,521,4.87,522,5.172,523,5.172,524,4.106,638,3.942,650,1.001,651,1.44,837,4.256,838,3.642,840,5.505,841,5.987,842,4.629,843,4.256]],["sidebarParentCategories/553",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/554",[853,4.808]],["content/554",[58,0.82,231,5.415,337,1.968,524,5.224,650,0.84,651,1.208,654,5.634,655,5.415,853,6.39,854,7.095]],["sidebarParentCategories/554",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/555",[856,5.501]],["content/555",[58,0.827,152,3.25,337,1.985,524,5.27,650,0.848,651,1.219,856,6.251,857,7.157,858,7.157,859,6.638]],["sidebarParentCategories/555",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/556",[650,0.623,651,0.896]],["content/556",[22,2.396,93,2.852,157,4.746,159,3.434,170,3.906,249,3.535,296,5.882,297,5.414,385,3.242,390,3.906,415,1.993,448,3.645,487,2.971,513,3.179,515,5.145,542,5.02,551,3.105,561,1.967,620,4.248,623,3.434,633,4.137,638,2.797,650,0.807,651,1.161,655,3.906,657,3.645,836,4.064,863,4.469,875,4.248,880,3.258,881,4.248,882,4.469,888,6.323,889,5.681,890,5.681,891,5.681,892,5.681,893,5.681,894,5.117,895,3.342,896,5.681,897,5.681]],["sidebarParentCategories/556",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/557",[337,1.459,469,4.365]],["content/557",[2,1.123,19,4.29,337,2.252,340,3.684,409,3.107,415,2.625,471,5.352,472,5.352,487,3.913,501,4.402,650,0.961,651,1.148,885,5.144,886,4.29,887,5.886]],["sidebarParentCategories/557",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/558",[513,3.267,840,4.014]],["content/558",[35,2.786,121,4.106,212,3.171,252,2.09,337,2.487,356,3.048,464,3.046,465,3.238,487,3.238,496,1.689,513,4.481,519,5.172,520,5.172,521,4.87,522,5.172,523,5.172,524,4.106,638,3.942,650,1.001,651,1.44,837,4.256,838,3.642,840,4.256,841,5.987,842,4.629,843,5.505]],["sidebarParentCategories/558",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/559",[650,0.623,651,0.896]],["content/559",[252,2.569,337,2.275,470,5.986,496,2.076,513,4.258,524,6.039,650,0.812,651,1.167,657,4.882,888,6.357,898,4.6,899,7.608,900,7.608]],["sidebarParentCategories/559",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/560",[337,1.459,469,4.365]],["content/560",[2,1.123,19,4.29,337,2.252,340,3.684,409,3.107,415,2.625,471,5.352,472,5.352,487,3.913,501,4.402,650,0.961,651,1.148,885,5.144,886,4.29,887,5.886]],["sidebarParentCategories/560",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/561",[70,1.667,71,1.705]],["content/561",[22,2.825,55,0.922,66,3.298,69,2.29,70,2.63,71,2.691,91,3.298,295,5.009,337,1.674,355,5.585,365,5.585,406,2.206,463,1.972,464,2.548,491,3.607,495,3.432,496,1.828,650,0.898,651,1.292,838,3.942,844,4.443]],["sidebarParentCategories/561",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/562",[608,5.229]],["content/562",[6,2.852,58,0.949,91,3.226,93,3.29,212,3.357,284,2.03,315,4.173,319,2.458,337,2.075,349,2.054,355,4.346,365,4.346,491,2.807,546,3.29,608,7.167,649,3.427,650,1.022,651,1.471,836,4.687,901,6.552]],["sidebarParentCategories/562",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/563",[608,4.365,902,3.746]],["content/563",[58,0.902,70,2.474,71,2.531,93,3.521,120,3.925,212,3.593,284,2.173,302,2.826,319,2.631,337,1.752,355,4.652,365,4.652,406,2.309,491,3.005,608,5.244,650,1.003,651,1.443,836,5.017]],["sidebarParentCategories/563",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/564",[512,3.913]],["content/564",[93,3.363,115,2.916,170,4.606,259,4.443,296,4.168,297,4.792,337,1.674,348,1.808,501,4.955,512,3.749,515,5.091,542,4.443,590,3.432,650,0.715,651,1.028,678,4.792,696,4.606,839,4.606,894,6.035,903,4.443,904,4.829,905,5.597,906,6.699,907,7.036,908,3.749,909,6.699,910,4.443]],["sidebarParentCategories/564",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/565",[337,1.459,469,4.365]],["content/565",[2,1.123,19,4.29,337,2.252,340,3.684,409,3.107,415,2.625,471,5.352,472,5.352,487,3.913,501,4.402,650,0.961,651,1.148,885,5.144,886,4.29,887,5.886]],["sidebarParentCategories/565",[31,0.257,102,0.571,206,0.731,463,0.649,650,0.295,651,0.425]],["title/574",[569,2.874,650,0.623]],["content/574",[2,0.886,3,2.043,21,3.138,25,1.872,29,2.002,30,1.179,42,2.18,43,1.399,58,0.808,59,1.964,66,1.964,68,2.598,69,2.401,91,3.457,102,0.823,113,2.086,146,1.313,149,2.748,150,1.33,151,2.043,160,3.138,171,1.964,182,1.826,191,2.18,216,2.086,222,2.18,230,2.742,261,2.905,279,2.347,284,1.828,305,1.297,317,1.631,323,1.456,329,1.436,337,0.996,339,2.482,340,1.964,341,2.962,342,1.826,348,1.076,349,1.25,407,1.436,409,1.656,453,2.287,484,1.927,487,2.086,501,2.347,512,2.232,532,4.642,540,4.22,551,2.18,554,2.982,562,2.411,569,4.27,633,2.18,638,1.964,647,2.482,649,2.086,650,0.983,651,0.612,658,2.962,688,1.236,689,2.982,690,2.982,691,2.853,692,3.023,693,2.982,694,3.332,695,3.332,696,2.742,697,3.332,698,2.645,699,2.645,700,3.138,701,4.929,702,3.332,703,3.332,775,2.411,911,3.988,912,3.593,913,3.138,914,2.853,915,2.853,916,3.988,917,3.593,918,3.988,919,3.988,920,3.593]],["sidebarParentCategories/574",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/575",[337,1.252,569,2.467,650,0.534]],["content/575",[2,1.242,3,1.861,25,1.706,42,2.938,58,0.559,62,1.989,66,3.59,69,2.493,70,2.534,71,2.592,163,3.449,190,2.938,261,2.646,329,1.936,337,1.822,338,3.925,342,3.338,406,2.724,422,2.46,496,1.467,506,3.695,568,3.735,569,4.901,647,3.344,650,0.778,704,4.019,706,4.019,707,4.537,711,4.49,712,4.49,921,7.298,922,5.374,923,7.291]],["sidebarParentCategories/575",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/576",[31,0.408,569,2.16,646,1.975,650,0.468]],["content/576",[2,1.338,31,0.759,55,1.479,58,0.501,69,1.043,70,1.699,71,0.892,111,1.882,172,1.545,200,1.829,216,2.515,310,1.287,329,1.099,337,0.762,344,1.472,348,2.406,349,1.508,350,1.719,396,2.093,496,1.624,565,1.829,567,3.054,568,2.463,569,3.617,640,2.992,641,2.804,650,0.635,714,2.098,715,4.333,716,3.44,717,4.333,718,3.189,719,3.783,720,4.478,724,5.312,726,4.45,727,2.463,814,4.332,921,3.783,924,5.312,925,4.332,926,6.139,927,3.189,928,2.992,929,3.086,930,3.783,931,3.783,932,4.332,933,3.596,934,2.24]],["sidebarParentCategories/576",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/577",[323,2.553]],["content/577",[2,0.449,19,2.714,55,1.244,58,0.611,59,1.472,70,0.854,71,1.716,80,2.694,81,2.056,89,1.445,111,1.17,140,1.907,141,2.499,144,2.499,146,0.985,150,1.958,171,2.33,190,1.635,209,3.55,210,3.116,212,1.532,222,1.635,226,6.375,249,1.861,302,1.907,305,2.366,317,1.223,329,1.077,344,0.916,348,0.807,350,1.367,389,2.714,409,1.965,415,1.049,418,4.155,421,2.353,422,2.688,423,3.385,427,1.808,473,2.785,506,2.056,526,1.564,540,2.139,568,1.532,569,3.582,590,1.532,605,3.954,650,0.825,658,3.652,707,2.945,719,2.353,725,2.694,727,3.963,750,3.539,908,2.648,914,3.385,921,4.62,924,3.723,926,6.086,927,3.139,928,2.945,929,3.037,930,2.353,931,4.62,932,2.694,933,3.539,934,1.393,935,1.861,936,2.991,937,2.991,938,4.28,939,2.353,940,2.694,941,2.056,942,2.353,943,2.991,944,1.919,945,1.302,946,4.732,947,4.732,948,2.056,949,4.768,950,2.991,951,7.274,952,1.919,953,2.694,954,2.991,955,2.236,956,1.502,957,2.991,958,2.991,959,2.991,960,2.991,961,2.991]],["sidebarParentCategories/577",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/578",[68,1.444,69,1.335,305,1.269,569,1.922,650,0.416]],["content/578",[8,1.644,17,1.6,55,1.306,58,0.9,69,2.957,146,1.463,149,2.923,162,4.955,219,2.851,302,3.01,305,1.445,341,3.205,342,2.922,356,2.187,409,1.845,415,1.559,517,1.966,546,2.23,569,3.678,610,4.566,625,3.322,627,4.389,650,0.797,691,4.566,707,2.764,728,3.178,729,7.751,730,8.385,731,5.022,732,3.054,733,5.022,734,3.322,735,3.495,736,3.712,737,6.242,738,5.333,740,3.712,741,3.712,742,5.333,743,5.333,744,5.333,745,3.712,746,3.712,758,4.002]],["sidebarParentCategories/578",[31,0.333,102,0.739,206,0.946,463,0.84]],["title/566",[87,1.326]],["content/566",[2,0.919,29,2.105,30,2.762,31,0.738,34,2.112,42,2.292,50,1.953,53,1.665,55,1.254,58,0.753,87,1.603,102,0.865,103,2.542,118,4.249,119,4.146,149,2.829,150,2.65,151,2.148,171,2.065,172,1.347,182,3.31,201,3.299,216,2.193,225,2.105,235,2.346,245,2.467,252,1.416,254,2.405,284,1.897,319,2.296,323,1.531,329,2.604,349,1.315,350,1.768,409,1.741,415,1.471,427,3.701,449,2.105,465,3.202,484,3.493,491,1.796,564,3,565,1.595,569,2.065,581,3.56,583,3,600,2.346,650,0.771,651,0.643,658,2.105,682,2.292,683,2.781,684,3,775,3.701,949,2.467,952,2.691,956,2.105,962,1.856,963,2.781]],["sidebarParentCategories/566",[]],["title/567",[31,0.465,55,0.689,349,1.571]],["content/567",[427,5.17,956,4.294]],["sidebarParentCategories/567",[]],["title/568",[34,1.464,55,0.689,150,1.67]],["content/568",[34,2.407,87,1.562,150,2.746,245,4.847,683,5.464,684,5.893]],["sidebarParentCategories/568",[]],["title/569",[55,0.689,350,1.447,581,2.467]],["content/569",[58,0.857,87,1.562,350,2.379,409,3.421,581,4.056,952,5.286]],["sidebarParentCategories/569",[]],["title/570",[30,0.945,55,0.44,182,1.463,216,1.672,329,1.152,484,1.545,565,1.216]],["content/570",[30,2.288,42,4.231,87,1.468,171,3.811,182,3.543,329,2.788,484,3.739,564,5.537,569,3.811,581,3.811,650,0.981,658,3.886]],["sidebarParentCategories/570",[]],["title/571",[30,1.481,55,0.689,149,1.96]],["content/571",[30,2.825,31,0.604,50,3.03,53,2.583,87,1.568,102,1.342,118,5.109,119,5.21,149,2.545,150,2.169,151,3.332,172,2.09,182,2.978,252,2.196,284,2.015,319,2.44,323,2.375,329,2.343,415,2.282,465,3.402,484,3.143,491,2.787,583,4.653,600,3.64,775,3.933,949,3.827]],["sidebarParentCategories/571",[]],["title/572",[55,0.803,449,2.931]],["content/572",[103,3.551,465,4.473]],["sidebarParentCategories/572",[]],["title/573",[55,0.537,58,0.406,650,0.416,651,0.599,962,1.727]],["content/573",[427,5.17,963,5.672]],["sidebarParentCategories/573",[]],["title/579",[31,0.542,349,1.83]],["content/579",[2,1.388,3,2.704,25,2.478,31,0.725,43,2.739,207,7.033,265,3.513,306,6.523,323,2.85,396,3.399,964,5.368]],["sidebarParentCategories/579",[87,1.218]],["title/580",[473,4.114]],["content/580",[31,0.689,34,2.168,35,3.339,58,0.772,78,6.415,96,3.081,116,5.548,150,2.474,210,2.672,284,2.299,319,2.783,473,5.277,938,4.366,965,5.837,966,5.837,967,5.548]],["sidebarParentCategories/580",[87,1.218]],["title/581",[643,4.487]],["content/581",[2,0.869,17,2.086,31,0.798,50,4.26,55,1.393,96,2.405,117,2.698,140,2.333,147,3.981,172,2.938,189,3.407,200,2.916,210,3.095,252,1.955,254,3.321,264,3.24,323,2.798,335,2.563,344,1.773,359,2.481,463,1.356,496,1.58,643,4.918,670,5.216,902,3.716,968,4.33,969,6.905,970,5.791,971,5.791,972,5.216,973,5.216]],["sidebarParentCategories/581",[87,1.218]],["title/582",[974,5.842]],["content/582",[58,0.82,159,4.762,172,2.53,209,4.762,210,2.837,238,3.805,348,2.125,590,4.035,633,4.305,938,5.468]],["sidebarParentCategories/582",[87,1.218]],["title/583",[975,5.501]],["content/583",[140,3.201,172,2.552,210,2.862,590,4.07,938,4.675,976,7.945,977,7.157,978,5.27,979,7.945,980,6.638]],["sidebarParentCategories/583",[87,1.218]],["title/584",[981,6.993]],["content/584",[58,1.008,62,2.076,84,3.695,111,2.195,121,3.721,140,3.792,155,4.978,210,2.021,238,2.71,252,1.894,317,3.069,396,2.442,649,3.926,945,2.442,969,5.053,972,6.76,975,4.413,982,7.504,983,7.504,984,4.687,985,5.609,986,7.504,987,5.609,988,5.053,989,4.195,990,5.609,991,5.609,992,4.413,993,5.609,994,7.504,995,4.687,996,4.687,997,5.609,998,5.609,999,5.609,1000,5.609,1001,5.609,1002,4.195,1003,5.609]],["sidebarParentCategories/584",[87,1.218]],["title/585",[1004,6.993]],["content/585",[58,0.938,63,4.962,172,2.403,200,2.846,210,2.695,422,3.425,945,3.924,948,5.144,1005,5.594,1006,7.53,1007,6.416,1008,3.614]],["sidebarParentCategories/585",[87,1.218]],["title/586",[228,3.913]],["content/586",[31,0.646,55,1.186,58,0.898,96,3.581,172,2.236,210,2.507,228,4.825,250,6.269,295,6.448,418,4.33,478,4.785,484,3.362,516,6.269,761,4.785,938,4.095,949,4.095,1009,4.945,1010,5.475,1011,6.959,1012,6.959]],["sidebarParentCategories/586",[87,1.218]],["title/587",[1013,4.638]],["content/587",[2,1.235,3,2.237,25,2.049,33,4.018,34,1.887,55,1.132,58,0.672,96,2.682,111,2.527,146,2.126,210,2.326,316,4.144,324,4.283,335,2.858,344,1.977,348,1.743,371,3.378,409,2.682,456,4.974,952,4.144,1013,6.531,1014,6.458,1015,6.458,1016,6.874,1017,6.152,1018,5.396,1019,5.817]],["sidebarParentCategories/587",[87,1.218]],["title/588",[1020,5.842]],["content/588",[2,0.949,31,0.587,55,1.117,58,0.845,62,2.339,96,2.625,146,2.081,151,3.238,152,2.585,210,2.923,243,4.346,335,2.797,344,1.935,404,3.719,945,2.752,995,5.281,996,5.281,1002,4.727,1020,7.49,1021,6.321,1022,6.321,1023,6.321,1024,6.321,1025,6.321,1026,4.973,1027,8.075,1028,5.694,1029,5.694,1030,5.694,1031,5.281,1032,5.281,1033,5.281]],["sidebarParentCategories/588",[87,1.218]],["title/589",[1034,5.842]],["content/589",[19,3.6,31,0.583,46,4.49,89,3.033,96,2.606,117,2.924,152,4.086,180,3.768,210,3.218,239,3.431,268,3.6,284,1.945,423,4.49,613,4.521,688,1.945,928,3.906,934,2.924,935,3.906,945,2.733,1034,5.245,1035,7.278,1036,4.938,1037,6.041,1038,5.654,1039,6.277,1040,4.028,1041,5.654,1042,4.938]],["sidebarParentCategories/589",[87,1.218]],["title/590",[1043,5.842]],["content/590",[19,4.551,25,2.519,31,0.737,58,0.918,68,2.259,89,3.834,96,2.536,145,2.795,204,5.486,210,2.199,239,3.338,343,4.05,423,4.368,560,2.702,600,3.417,629,4.804,934,3.697,941,4.198,945,3.455,1042,4.804,1043,5.102,1044,7.8,1045,5.5,1046,7.149,1047,6.106,1048,5.5,1049,5.102,1050,5.102,1051,3.593,1052,6.106]],["sidebarParentCategories/590",[87,1.218]],["title/591",[1053,6.299]],["content/591",[31,0.689,35,3.339,58,0.934,78,5.307,96,3.081,198,5.548,210,2.672,239,4.056,319,2.783,473,4.366,938,4.366,966,5.837,1053,6.684,1054,5.101,1055,7.419,1056,6.684,1057,7.419]],["sidebarParentCategories/591",[87,1.218]],["title/592",[1058,5.842]],["content/592",[2,1.123,3,2.591,19,4.29,25,2.374,58,0.779,96,3.107,200,2.846,210,2.695,305,2.433,423,5.352,459,1.041,600,4.187,928,4.655,934,3.485,945,3.257,1058,6.251,1059,5.594]],["sidebarParentCategories/592",[87,1.218]],["title/596",[1017,5.229]],["content/596",[]],["sidebarParentCategories/596",[31,0.39,87,0.797,349,1.318]],["title/597",[58,0.522,945,2.181,1016,4.186]],["content/597",[2,1.213,25,2.564,31,0.583,55,1.443,105,4.163,210,2.261,211,4.163,316,4.028,335,3.575,344,2.735,347,2.291,348,1.694,349,2.533,433,3.906,639,5.359,1013,5.359,1016,6.75,1017,4.694,1018,5.245,1019,5.654,1060,4.49,1061,2.647]],["sidebarParentCategories/597",[31,0.39,87,0.797,349,1.318]],["title/598",[34,1.705,1013,3.872]],["content/598",[2,0.645,55,1.451,58,0.447,89,2.074,96,1.783,111,2.437,146,1.414,191,5.546,224,5.641,335,1.9,344,1.315,371,2.246,409,1.783,526,2.246,935,2.672,938,5.403,992,3.378,1013,4.861,1018,7.131,1062,4.294,1063,4.294,1064,4.294,1065,4.294,1066,4.294,1067,9.182,1068,7.672,1069,9.182,1070,4.294,1071,4.294,1072,4.294,1073,4.294,1074,4.294,1075,4.294]],["sidebarParentCategories/598",[31,0.39,87,0.797,349,1.318]],["title/599",[650,0.623,1017,4.365]],["content/599",[2,1.012,6,2.089,8,1.776,25,1.523,55,1.271,69,1.641,71,1.402,110,5.305,111,1.878,115,2.089,146,1.58,152,2.758,211,3.183,219,3.079,238,2.319,267,1.435,284,2.415,304,3.776,310,2.024,317,1.963,344,2.064,409,1.993,431,3.867,434,3.183,466,3.776,470,3.776,491,2.056,496,1.31,551,2.623,561,1.662,623,4.077,641,2.8,650,0.832,651,0.736,665,2.685,671,3.183,832,3.776,844,4.472,903,4.472,907,4.01,948,3.3,965,3.776,1013,3.183,1017,5.829,1061,2.024,1076,4.799,1077,6.743,1078,6.743,1079,5.634,1080,4.799,1081,4.799,1082,6.743,1083,6.743,1084,4.799,1085,4.799,1086,4.799,1087,4.799,1088,4.799,1089,4.799]],["sidebarParentCategories/599",[31,0.39,87,0.797,349,1.318]],["title/600",[350,1.686,581,2.874]],["content/600",[58,0.772,87,1.407,103,3.081,115,3.23,284,2.299,319,2.783,350,2.59,356,3.653,409,3.081,463,2.1,465,3.881,581,4.746,952,4.761,1090,6.684]],["sidebarParentCategories/600",[87,1.218]],["title/601",[350,2.02]],["content/601",[34,2.186,62,2.768,146,2.463,156,5.886,209,4.523,212,3.833,350,2.161,459,1.041,581,3.684,638,3.684,1091,7.481,1092,4.655,1093,5.594,1094,7.481,1095,9.013,1096,7.481]],["sidebarParentCategories/601",[87,1.218]],["title/602",[34,2.043]],["content/602",[6,1.538,32,2.817,34,2.133,43,1.89,55,1.397,62,1.307,117,1.646,137,3.572,140,3.167,167,2.343,172,1.135,190,1.931,210,2.351,224,2.079,252,1.193,268,2.026,291,3.182,317,3.215,348,0.953,353,2.307,359,3.128,396,3.606,433,2.198,453,2.026,495,1.81,574,2.951,581,3.214,727,2.759,749,2.267,763,5.454,805,2.641,806,5.454,815,2.343,817,4.028,915,2.527,956,3.666,966,2.779,978,5.214,989,2.641,1051,3.841,1097,2.527,1098,4.237,1099,3.182,1100,3.532,1101,3.532,1102,2.951,1103,3.532,1104,5.386,1105,3.532,1106,3.532,1107,3.532,1108,7.861,1109,7.861,1110,7.861,1111,7.861,1112,6.528,1113,5.136,1114,5.386,1115,3.182,1116,3.532,1117,2.198,1118,3.182,1119,2.779,1120,4.852,1121,2.779]],["sidebarParentCategories/602",[87,1.218]],["title/603",[459,0.973]],["content/603",[17,1.525,32,3.274,43,1.485,55,1.402,90,3.165,137,4.088,140,1.705,210,2.618,222,2.314,227,3.726,317,1.731,348,1.142,353,1.813,359,3.421,396,1.843,433,2.634,438,2.314,459,1.18,561,1.466,591,2.125,763,3.537,806,5.15,956,3.095,966,3.33,978,4.088,1051,3.627,1099,3.813,1113,4.849,1117,2.634,1119,3.33,1122,3.813,1123,4.233,1124,8.236,1125,8.236,1126,8.236,1127,8.236,1128,7.193,1129,3.813,1130,6.163,1131,4.233,1132,4.233,1133,4.233,1134,4.233,1135,4.233,1136,4.233,1137,3.813,1138,4.233]],["sidebarParentCategories/603",[87,1.218]],["title/604",[1139,6.299]],["content/604",[55,1.312,222,3.958,353,3.102,396,4.151,552,4.646,1051,5.199,1124,6.522,1125,6.522,1126,6.522,1127,6.522,1128,6.522,1139,6.522,1140,7.24,1141,8.835,1142,7.24]],["sidebarParentCategories/604",[87,1.218]],["title/605",[210,2.519]],["content/605",[32,2.234,62,2.143,209,3.501,210,3.646,305,1.883,317,2.368,406,1.907,581,2.851,727,2.967,734,5.732,816,3.841,817,5.732,908,3.24,938,5.751,945,3.74,948,5.907,996,7.179,1113,4.556,1115,5.216,1119,6.03,1121,6.03,1129,5.216,1143,5.791,1144,5.791,1145,5.791,1146,5.791,1147,5.791,1148,5.791,1149,5.791,1150,5.791]],["sidebarParentCategories/605",[87,1.218]],["title/631",[34,1.705,150,1.946]],["content/631",[29,2.87,30,1.69,31,0.706,34,2.22,50,2.663,67,2.99,87,1.441,102,1.179,103,2.374,108,4.253,115,2.489,149,2.237,150,2.534,151,3.893,152,2.338,153,3.668,162,3.792,225,2.87,245,5.023,251,4.089,252,2.566,260,3.278,279,3.364,284,2.355,319,2.851,323,2.087,349,1.793,356,2.815,415,2.006,465,2.99,491,2.449,583,4.089,635,3.199,683,5.041,684,5.437,949,3.364,1009,4.358,1010,4.498,1151,4.498,1152,3.199]],["sidebarParentCategories/631",[87,1.218]],["title/632",[31,0.408,284,1.359,319,1.646,956,2.203]],["content/632",[8,0.767,31,0.881,34,1.897,50,2.12,55,1.453,58,0.365,69,1.198,70,1,71,1.023,87,0.393,108,2.995,115,1.981,140,1.411,145,1.604,150,1.517,168,1.133,172,1.719,228,1.159,238,1.692,241,4.438,245,3.521,247,2.752,248,2.248,252,1.536,263,1.02,284,1.41,316,4.438,317,2.189,323,1.954,329,2.155,347,2.859,348,2.043,349,1.678,350,1.012,353,2.293,354,2.323,359,1.501,385,0.888,394,3.68,400,2.995,406,1.153,407,0.746,449,1.759,456,2.118,463,1.254,473,3.149,478,1.424,480,4.308,481,2.62,491,1.501,496,1.242,567,2.094,613,2.547,615,1.759,635,1.96,639,2.323,641,1.455,643,2.248,650,0.374,651,0.537,662,2.756,663,2.62,664,1.549,667,4.472,683,4.822,684,2.506,715,2.248,717,2.248,844,1.374,934,1.632,967,2.62,1009,3.724,1054,1.424,1098,2.756,1117,1.289,1153,1.731,1154,1.866,1155,1.866,1156,1.866,1157,2.756,1158,2.756,1159,1.866,1160,1.866,1161,1.866,1162,1.866,1163,1.866,1164,1.731,1165,1.866,1166,1.289,1167,1.731,1168,1.866,1169,2.409,1170,1.731,1171,1.482,1172,1.731,1173,2.62,1174,3.156,1175,1.731,1176,1.731,1177,1.731,1178,1.731]],["sidebarParentCategories/632",[87,1.218]],["title/633",[404,2.948,963,3.323,1009,2.873]],["content/633",[31,0.814,34,1.76,52,5.427,55,1.385,88,4.505,89,2.91,95,3.873,105,3.996,119,4.511,150,2.008,151,3.086,245,4.629,284,1.866,347,2.872,353,2.581,394,4.142,400,3.371,491,2.581,934,2.806,938,3.545,1009,3.455,1054,4.142,1151,4.739,1158,4.739,1169,5.409,1171,4.309,1179,6.024,1180,6.024,1181,7.867,1182,6.024,1183,5.033,1184,5.033]],["sidebarParentCategories/633",[87,1.218]],["title/634",[150,1.172,591,1.765,1185,3.166,1186,2.628,1187,2.937,1188,3.166]],["content/634",[6,1.906,29,2.198,30,1.294,31,0.753,34,1.279,55,1.433,58,0.657,89,2.115,96,1.818,101,3.444,102,0.903,108,2.45,117,2.039,126,3.943,145,2.004,149,1.713,150,2.704,151,2.243,152,1.79,159,2.647,191,2.393,198,3.273,225,2.198,238,2.115,254,2.51,263,2.155,317,1.79,343,2.903,347,1.598,359,1.875,400,2.45,404,3.716,407,1.577,438,2.393,439,6.19,453,2.51,498,2.724,609,2.243,683,2.903,774,3.657,964,3.01,1009,3.622,1068,3.657,1097,3.131,1152,2.45,1166,2.724,1169,4.342,1186,3.273,1188,3.943,1189,4.377,1190,5.689,1191,6.674,1192,3.01,1193,4.377,1194,3.943,1195,5.689,1196,3.943,1197,3.657,1198,3.943,1199,5.277,1200,3.943,1201,3.657,1202,3.657,1203,3.943,1204,3.444,1205,3.444,1206,3.657,1207,3.657]],["sidebarParentCategories/634",[87,1.218]],["title/635",[95,2.16,417,3.281,503,3.452,776,3.139]],["content/635",[2,0.585,31,0.85,34,0.858,35,0.759,50,1.368,55,1.476,58,0.406,87,0.32,89,0.815,95,0.83,96,0.7,101,1.327,108,2.181,115,0.734,117,0.785,140,1.183,145,0.772,150,1.934,151,0.864,152,0.69,168,0.922,172,1.252,198,1.261,228,0.944,238,1.883,241,3.391,245,2.294,247,2.357,248,1.884,252,1.316,254,0.967,263,0.83,279,0.992,284,1.208,316,4.002,323,1.702,329,1.904,340,1.445,343,1.118,344,0.516,347,2.873,348,1.783,349,1.462,350,0.848,353,2.968,354,1.947,359,1.67,394,3.989,400,3.246,407,1.057,415,0.592,449,0.847,456,1.775,473,2.744,478,1.159,480,3.093,481,1.261,491,0.722,496,0.801,526,0.882,553,1.519,561,1.017,567,2.068,609,0.864,615,1.474,635,1.643,639,2.586,640,1.049,641,1.619,643,1.884,650,0.313,651,0.45,662,3.067,663,2.915,664,2.195,667,3.896,683,2.586,714,1.159,715,2.501,716,1.206,717,2.501,718,1.118,757,1.519,774,1.409,776,1.206,934,1.368,938,0.992,945,0.734,967,2.195,975,1.327,980,1.409,1009,2.674,1054,1.159,1068,1.409,1097,1.206,1152,0.944,1154,2.644,1155,1.519,1156,1.519,1157,3.067,1158,2.309,1159,2.644,1160,1.519,1161,1.519,1162,1.519,1163,1.519,1164,1.409,1166,1.049,1168,1.519,1169,4.543,1170,1.409,1171,2.789,1172,1.409,1173,2.195,1174,2.644,1176,1.409,1177,1.409,1178,1.409,1183,1.409,1184,1.409,1194,1.519,1195,2.644,1196,1.519,1197,1.409,1198,1.519,1199,2.453,1200,1.519,1201,1.409,1202,1.409,1203,1.519,1204,1.327,1205,1.327,1206,1.409,1207,1.409,1208,1.519,1209,1.686,1210,1.409,1211,1.519,1212,1.686,1213,1.686,1214,1.409,1215,2.935,1216,1.686,1217,2.935,1218,1.686,1219,1.686,1220,1.686,1221,1.686,1222,1.686,1223,1.686,1224,1.686,1225,1.686,1226,1.686,1227,1.686,1228,1.686]],["sidebarParentCategories/635",[87,1.218]],["title/636",[40,3.632,58,0.608]],["content/636",[145,4.321,150,2.697,263,3.983,1165,7.287,1166,5.033,1167,6.758,1175,6.758]],["sidebarParentCategories/636",[87,1.218]],["title/606",[58,0.366,69,1.202,650,0.375,651,0.539,962,1.555,1007,2.331]],["content/606",[32,2.34,36,6.602,58,0.915,77,3.569,115,3.44,134,4.535,146,1.997,168,3.315,173,4.338,179,3.242,180,2.558,200,3.542,267,1.814,315,3.617,323,2.214,337,1.515,406,1.997,438,3.315,498,3.774,562,3.667,650,0.843,651,1.212,851,3.667,945,2.64,962,3.497,1006,6.602,1007,4.023,1008,2.93,1229,6.065,1230,5.463,1231,6.065,1232,6.065,1233,3.394]],["sidebarParentCategories/606",[87,1.218]],["title/607",[315,2.293,337,1.252,1008,2.42]],["content/607",[62,2.914,66,3.878,212,4.035,315,3.605,337,1.968,464,2.996,512,4.407,513,4.407,514,4.901,638,3.878,1008,3.805]],["sidebarParentCategories/607",[87,1.218]],["title/608",[58,0.457,267,1.312,315,2.009,1008,2.12]],["content/608",[2,1.103,30,1.275,31,0.794,55,1.442,140,1.738,172,1.386,200,2.377,210,1.554,239,3.416,252,1.456,315,3.364,323,1.575,344,1.321,347,1.575,348,1.686,349,1.96,350,1.246,359,1.848,371,2.257,411,3.886,473,2.538,474,3.394,496,1.177,552,2.768,568,2.21,639,4.145,640,2.685,641,2.595,643,2.768,644,3.886,646,1.941,650,0.46,651,0.662,714,2.966,826,2.538,849,3.677,850,3.886,851,4.443,973,3.886,974,3.605,975,3.394,980,3.605,1008,4.443,1040,2.768,1054,2.966,1060,4.47,1234,7.348,1235,4.314,1236,4.314,1237,4.314,1238,6.249,1239,4.314,1240,4.314,1241,4.314,1242,4.314,1243,4.314,1244,4.314,1245,4.314,1246,4.314]],["sidebarParentCategories/608",[87,1.218]],["title/616",[463,1.173,514,3.117,1008,2.42]],["content/616",[]],["sidebarParentCategories/616",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/617",[490,4.808]],["content/617",[22,3.103,153,4.722,302,2.965,315,3.369,328,4.118,501,4.33,515,4.449,528,5.789,533,5.264,681,5.789,863,5.789,871,4.722,873,5.06,879,4.722,895,4.33,905,6.148,1008,3.555,1247,5.503,1248,5.789]],["sidebarParentCategories/617",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/618",[58,0.366,337,0.878,386,1.482,496,0.959,533,2.514,956,1.765]],["content/618",[]],["sidebarParentCategories/618",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/619",[35,1.439,153,2.051,530,2.515,1249,3.197,1250,3.197,1251,3.197,1252,3.197]],["content/619",[337,2.003,533,5.734,846,7.447,853,5.512,860,7.221,881,5.994,1253,8.016]],["sidebarParentCategories/619",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/620",[22,1.646,315,1.787,386,1.646,1008,1.886,1117,2.429]],["content/620",[22,3.442,315,3.736,650,0.871,651,1.252,879,5.238,1008,3.943,1247,6.104]],["sidebarParentCategories/620",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/621",[386,1.646,650,0.416,651,0.599,871,2.505,1254,3.261]],["content/621",[650,0.871,871,5.238,873,5.612,874,6.104,876,6.422,1255,6.82,1256,5.839]],["sidebarParentCategories/621",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/622",[22,1.646,315,1.787,386,1.646,1008,1.886,1257,3.261]],["content/622",[22,2.868,43,2.386,55,0.936,67,3.557,108,3.806,252,2.296,302,3.914,328,3.806,337,2.124,386,3.585,464,2.587,465,3.557,496,1.856,650,0.725,862,3.9,879,4.364,886,3.9,956,3.414,1256,4.865,1258,4.511,1259,7.657,1260,5.35,1261,5.35]],["sidebarParentCategories/622",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/623",[386,1.85,623,2.653,880,2.516,1262,3.666]],["content/623",[55,1.103,650,0.855,881,5.994,882,6.307,1256,5.734,1260,6.307,1261,6.307,1263,8.016,1264,8.016]],["sidebarParentCategories/623",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/609",[463,1.173,513,2.803,1008,2.42]],["content/609",[]],["sidebarParentCategories/609",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/610",[490,4.808]],["content/610",[22,3.236,315,3.513,515,4.639,518,6.912,681,6.037,863,6.037,871,4.924,873,5.276,879,4.924,895,4.515,905,6.411,1008,3.707,1247,5.738,1248,6.037]],["sidebarParentCategories/610",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/611",[58,0.366,337,0.878,386,1.482,496,0.959,524,2.331,956,1.765]],["content/611",[337,2.097,524,5.566,853,5.77,859,7.011]],["sidebarParentCategories/611",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/612",[22,1.646,315,1.787,386,1.646,1008,1.886,1117,2.429]],["content/612",[22,3.442,315,3.736,650,0.871,651,1.252,879,5.238,1008,3.943,1247,6.104]],["sidebarParentCategories/612",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/613",[386,1.646,650,0.416,651,0.599,871,2.505,1254,3.261]],["content/613",[650,0.871,871,5.238,873,5.612,874,6.104,876,6.422,1255,6.82,1256,5.839]],["sidebarParentCategories/613",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/614",[22,1.646,315,1.787,386,1.646,1008,1.886,1257,3.261]],["content/614",[22,2.868,43,2.386,55,0.936,67,3.557,108,3.806,252,2.296,302,3.914,328,3.806,337,2.124,386,3.585,464,2.587,465,3.557,496,1.856,650,0.725,862,3.9,879,4.364,886,3.9,956,3.414,1256,4.865,1258,4.511,1259,7.657,1260,5.35,1261,5.35]],["sidebarParentCategories/614",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/615",[386,1.85,623,2.653,880,2.516,1262,3.666]],["content/615",[55,1.103,650,0.855,881,5.994,882,6.307,1256,5.734,1260,6.307,1261,6.307,1265,8.016,1266,8.016]],["sidebarParentCategories/615",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/624",[463,1.173,512,2.803,1008,2.42]],["content/624",[]],["sidebarParentCategories/624",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/625",[22,2.113,115,2.181,490,3.445]],["content/625",[4,5.179,17,2.608,238,4.269,337,2.208,463,1.696,470,5.696,512,5.336,515,5.342,517,3.204,749,4.646,832,5.696,873,4.978,1208,6.522,1267,7.24,1268,7.24,1269,7.24]],["sidebarParentCategories/625",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/626",[206,1.158,386,1.85,496,1.197,956,2.203]],["content/626",[58,0.663,115,2.771,162,4.222,238,3.076,284,3.107,496,1.737,515,3.849,620,4.76,651,1.564,904,3.651,910,4.222,1270,6.366,1271,6.366,1272,6.366,1273,10.029,1274,6.366,1275,6.366,1276,6.366,1277,6.366,1278,6.366,1279,6.366,1280,6.366]],["sidebarParentCategories/626",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/627",[22,1.646,315,1.787,386,1.646,1008,1.886,1117,2.429]],["content/627",[22,3.442,315,3.736,650,0.871,651,1.252,879,5.238,1008,3.943,1247,6.104]],["sidebarParentCategories/627",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/628",[386,1.646,650,0.416,651,0.599,871,2.505,1254,3.261]],["content/628",[650,0.871,871,5.238,873,5.612,874,6.104,876,6.422,1255,6.82,1281,8.162]],["sidebarParentCategories/628",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/629",[22,1.646,315,1.787,386,1.646,1008,1.886,1257,3.261]],["content/629",[22,2.912,43,2.423,115,3.006,170,4.748,252,2.331,296,4.297,386,3.619,464,2.627,496,1.884,512,4.802,623,4.175,650,0.737,844,4.58,862,3.96,879,4.431,886,3.96,956,3.467,1258,4.58,1282,6.905,1283,7.731,1284,6.905,1285,6.221,1286,6.905,1287,6.221]],["sidebarParentCategories/629",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/630",[284,1.209,386,1.646,623,2.36,910,2.589,1262,3.261]],["content/630",[284,2.44,512,4.407,525,7.095,623,4.762,1283,7.095,1285,7.095,1287,7.095,1288,7.876,1289,7.876,1290,7.095,1291,7.876]],["sidebarParentCategories/630",[58,0.325,87,0.593,650,0.333,651,0.479,962,1.383]],["title/637",[30,1.725,149,2.284]],["content/637",[30,2.86,31,0.659,34,1.507,50,2.403,53,2.048,58,0.537,87,1.536,102,1.064,103,2.142,108,2.886,115,2.245,118,4.662,119,4.645,145,3.245,149,3.17,150,2.363,151,2.642,172,1.657,182,3.245,198,3.857,216,2.698,237,3.035,251,3.69,252,2.393,284,2.196,319,2.659,323,1.883,329,2.918,349,1.617,356,2.54,415,2.487,465,3.708,484,3.425,491,2.21,565,2.697,583,3.69,600,2.886,635,2.886,775,3.118,895,3.035,949,3.035,1090,4.646,1292,3.421]],["sidebarParentCategories/637",[87,1.218]],["title/638",[31,0.408,284,1.359,319,1.646,956,2.203]],["content/638",[2,0.286,8,0.705,17,0.686,30,1.264,31,0.617,50,0.887,55,1.361,58,0.691,67,1.706,68,0.705,69,1.462,70,0.544,71,0.953,87,0.811,96,1.354,105,1.263,108,1.066,113,1.706,114,1.018,115,2.703,118,3.548,119,3.807,121,1.263,132,1.309,140,0.767,146,0.627,148,0.956,152,0.779,168,2.769,172,1.048,173,1.362,180,0.803,182,0.872,211,1.263,216,1.706,220,1.424,222,1.783,224,3.351,227,1.972,228,1.825,238,0.92,241,1.222,247,4.725,248,2.093,252,0.643,260,1.092,310,0.803,316,3.985,324,2.836,329,2.391,333,1.018,337,0.815,338,2.028,341,1.637,342,1.493,344,0.998,347,1.19,348,2.553,349,1.341,350,0.942,355,1.263,365,1.263,373,1.066,385,0.816,404,1.121,406,1.074,415,1.5,418,1.185,438,1.783,442,2.566,449,2.147,463,1.002,478,4.269,480,3.777,481,2.439,487,0.996,491,1.397,494,1.743,496,1.167,517,0.843,526,0.996,544,2.938,565,1.927,567,1.276,635,1.066,641,1.776,649,1.706,658,0.956,662,2.566,663,2.439,664,2.439,699,1.263,707,1.185,713,2.725,715,2.093,717,2.093,720,2.163,722,2.725,724,2.566,727,1.671,804,2.333,815,1.263,820,2.439,844,1.263,913,2.566,914,2.333,924,2.566,926,3.985,927,2.163,928,2.029,929,2.093,930,2.566,931,2.566,933,2.439,934,1.519,945,1.42,949,1.121,964,2.242,967,1.424,1010,2.566,1153,1.591,1230,1.716,1293,1.905,1294,1.716,1295,1.716,1296,1.591,1297,1.498,1298,3.261,1299,4.276,1300,1.424,1301,3.261,1302,5.98,1303,1.716,1304,1.362,1305,1.905,1306,1.716,1307,2.938,1308,2.938,1309,2.938,1310,2.938,1311,2.566,1312,2.938,1313,2.938,1314,3.261,1315,1.905,1316,1.905,1317,3.261,1318,1.905]],["sidebarParentCategories/638",[87,1.218]],["title/639",[30,1.297,963,2.91,1186,3.281,1187,3.666]],["content/639",[30,2.847,55,1.395,78,5.302,89,3.581,96,2.286,112,2.765,119,3.158,189,3.24,238,3.581,311,3.939,353,2.359,359,2.359,371,2.88,394,3.786,404,3.24,438,3.01,590,2.821,609,2.821,835,4.117,949,4.361,967,4.117,1056,4.96,1097,3.939,1186,4.117,1187,4.6,1204,4.332,1206,4.6,1207,4.6,1300,4.117,1319,4.96,1320,5.506,1321,5.506,1322,5.506,1323,5.506,1324,5.506,1325,5.506,1326,5.506,1327,4.6,1328,7.411,1329,5.506,1330,5.506,1331,5.506]],["sidebarParentCategories/639",[87,1.218]],["title/640",[30,1.481,149,1.96,1185,4.513]],["content/640",[30,2.22,34,1.311,55,1.458,59,2.209,96,1.863,118,4.015,119,2.573,150,2.895,182,2.943,212,2.299,347,2.347,353,1.922,359,3.515,373,2.511,407,2.316,463,1.051,464,1.707,465,2.347,491,1.922,492,4.042,565,2.445,590,4.203,638,2.209,650,0.686,835,3.355,908,5.056,1292,4.264,1311,5.058,1332,3.21,1333,5.165,1334,4.487,1335,6.429,1336,4.42,1337,4.807,1338,5.058,1339,6.429,1340,6.429,1341,5.791,1342,6.429,1343,4.487]],["sidebarParentCategories/640",[87,1.218]],["title/641",[40,3.632,58,0.608]],["content/641",[30,2.776,145,4.299,149,3.675,237,4.717,565,3.049,1292,5.317]],["sidebarParentCategories/641",[87,1.218]],["title/642",[449,3.511]],["content/642",[31,0.889,58,0.759,67,2.811,69,2.493,70,1.534,71,1.57,86,2.938,87,1.383,103,2.232,108,3.007,115,3.602,152,2.982,230,3.695,244,3.844,245,3.162,251,3.844,252,1.814,284,2.564,319,3.104,323,1.962,349,1.685,385,2.302,449,4.803,463,1.259,465,3.814,496,1.467,635,3.007,682,3.986,775,3.249,827,4.29,844,3.565,878,4.019,1153,4.49,1344,5.374,1345,3.695,1346,6.092,1347,5.374,1348,5.374,1349,3.695,1350,5.374]],["sidebarParentCategories/642",[87,1.218]],["title/643",[58,0.522,59,2.467,449,2.515]],["content/643",[4,2.325,17,1.171,28,2.716,31,0.911,40,2.023,58,0.9,59,2.488,68,1.203,96,2.573,104,2.431,110,2.557,112,1.632,115,2.2,129,2.928,132,2.235,151,3.175,152,3.536,159,1.965,168,4.138,169,2.716,172,1.044,179,1.738,180,1.371,202,1.819,204,2.023,210,1.171,223,1.965,224,2.973,232,2.086,238,1.571,241,3.242,244,5,245,1.913,247,1.965,248,3.242,314,2.235,323,1.187,329,1.171,356,1.601,396,1.415,403,2.928,404,2.973,433,2.023,434,3.351,449,4.832,452,2.557,489,2.716,541,2.928,628,2.325,649,2.643,663,2.431,679,3.474,727,1.665,750,2.431,752,2.928,940,2.928,955,2.431,965,2.557,992,2.557,1046,2.928,1233,1.819,1302,2.928,1351,3.251,1352,3.251,1353,4.551,1354,5.583,1355,3.251,1356,5.052,1357,3.251,1358,3.251,1359,3.251,1360,3.251,1361,3.251,1362,2.928,1363,2.235,1364,4.551,1365,6.819,1366,2.325,1367,2.928,1368,3.251,1369,3.251,1370,3.251,1371,3.251,1372,3.251,1373,2.928,1374,2.716,1375,3.251,1376,3.975,1377,3.251,1378,3.251,1379,2.928,1380,3.251,1381,2.928,1382,3.251,1383,3.251,1384,3.251,1385,3.251,1386,3.251,1387,2.716,1388,2.928,1389,3.251]],["sidebarParentCategories/643",[87,1.218]],["title/644",[449,2.515,463,1.173,956,2.515]],["content/644",[2,0.596,3,1.375,6,1.728,25,1.26,31,0.719,34,1.16,51,3.124,55,1.365,58,0.413,84,1.955,96,1.649,103,1.649,140,1.6,150,1.96,167,2.633,180,1.674,202,2.222,228,2.222,263,1.955,284,2.399,319,2.627,323,1.449,347,2.147,348,2.09,349,1.245,350,1.147,353,2.519,359,1.701,385,1.701,448,2.548,449,4.718,453,2.277,473,2.336,478,4.816,496,1.083,600,2.222,639,2.633,641,1.649,643,2.548,664,2.969,764,2.336,849,2.336,851,3.555,878,2.969,908,4.333,934,3.607,949,2.336,1009,2.277,1060,4.207,1157,3.124,1158,3.124,1164,3.317,1166,2.471,1173,2.969,1345,2.73,1390,3.97,1391,5.881,1392,3.317,1393,3.97,1394,3.97,1395,3.577,1396,5.881,1397,5.881,1398,3.97,1399,3.97,1400,3.97,1401,3.97,1402,3.97,1403,3.97,1404,3.97,1405,3.97,1406,3.97,1407,3.577,1408,3.97,1409,3.97,1410,3.97]],["sidebarParentCategories/644",[87,1.218]],["title/645",[244,3.139,463,1.028,1117,2.73,1411,3.666]],["content/645",[2,0.559,3,1.289,6,1.621,19,2.135,25,1.182,31,0.521,34,1.088,37,2.663,43,1.306,55,1.295,58,0.913,59,1.833,88,2.784,89,1.799,140,1.5,150,2.247,223,2.251,224,3.298,228,2.083,238,1.799,244,4.009,252,1.257,261,1.833,276,3.354,284,1.154,319,1.397,323,1.359,340,1.833,347,1.359,348,2.024,349,1.167,350,1.619,356,1.833,359,1.595,373,2.083,415,1.306,448,3.597,449,4.637,463,1.313,466,2.929,473,2.191,494,1.99,496,1.016,600,2.083,628,2.663,639,2.469,641,1.546,643,2.389,764,2.191,776,4.009,849,2.191,851,3.389,878,4.191,895,2.191,908,4.197,915,2.663,944,2.389,949,2.191,1009,3.214,1013,2.469,1054,3.854,1060,4.009,1122,3.354,1157,2.929,1171,4.009,1300,2.784,1345,2.56,1349,2.56,1374,3.111,1392,4.683,1411,3.111,1412,6.072,1413,6.757,1414,5.605,1415,3.723,1416,3.723,1417,3.723,1418,3.723,1419,3.354,1420,3.723,1421,3.723,1422,3.723,1423,3.723,1424,3.723,1425,3.723,1426,3.723,1427,3.723]],["sidebarParentCategories/645",[87,1.218]],["title/646",[152,2.049,827,2.948,963,3.323]],["content/646",[31,0.806,58,0.838,59,2.511,87,0.967,102,1.052,103,2.117,120,2.853,150,2.345,152,3.293,159,3.083,167,4.665,244,6.209,245,4.738,284,1.58,319,1.913,434,3.382,448,4.513,449,4.727,453,2.924,495,2.612,498,3.173,526,2.667,600,2.853,682,2.787,731,4.012,775,4.252,827,3,915,3.648,948,3.506,956,2.56,963,3.382,1117,3.173,1151,5.534,1345,3.506,1346,4.26,1353,4.593,1354,4.593,1365,6.336,1412,4.593,1413,4.593,1428,5.099,1429,5.099,1430,4.593,1431,5.099,1432,5.099,1433,5.099,1434,5.099,1435,5.099,1436,5.099,1437,5.099]],["sidebarParentCategories/646",[87,1.218]],["title/647",[40,3.632,58,0.608]],["content/647",[2,1.452,31,0.695,42,4.09,145,3.425,146,2.463,204,4.655,212,3.833,219,4.801,449,5.041,1364,6.739,1373,6.739,1438,7.481]],["sidebarParentCategories/647",[87,1.218]],["title/659",[30,1.039,182,1.609,216,1.839,329,1.266,484,1.698,565,1.337]],["content/659",[30,2.057,31,0.646,42,3.804,67,3.64,87,1.32,103,2.89,108,3.894,115,3.03,171,3.426,182,3.186,251,4.978,252,2.349,284,2.156,319,2.611,329,2.507,349,2.182,356,3.426,465,3.64,484,3.362,564,4.978,569,3.426,581,3.426,635,3.894,650,0.92,658,3.494]],["sidebarParentCategories/659",[87,1.218]],["title/660",[31,0.408,284,1.359,319,1.646,956,2.203]],["content/660",[2,1.271,31,0.714,55,1.468,58,0.35,69,1.149,73,1.977,95,1.655,96,1.395,113,1.758,115,1.463,118,1.796,172,1.665,216,1.758,222,1.837,329,1.21,344,1.029,348,2.615,349,1.054,350,1.828,385,1.44,463,0.787,496,0.917,565,2.407,567,2.476,568,1.722,569,2.552,570,2.156,581,2.552,640,2.091,641,2.153,650,0.358,705,2.808,713,2.808,714,2.31,715,3.326,716,2.404,717,3.326,718,2.229,719,4.979,720,3.438,721,3.027,722,4.331,723,3.027,724,4.078,727,3.242,760,2.808,804,2.404,807,4.67,808,4.67,809,4.67,810,4.67,811,4.67,815,2.229,816,2.229,817,2.513,818,3.027,819,3.027,820,2.513,821,3.027,913,2.644,914,2.404,921,2.644,924,4.078,925,3.027,926,4.979,927,2.229,928,2.091,929,2.156,930,2.644,931,2.644,933,2.513,934,1.565,1306,4.67,1307,4.67,1439,3.36]],["sidebarParentCategories/660",[87,1.218]],["title/661",[344,1.534,396,2.181,1117,3.117]],["content/661",[18,2.488,30,1.621,31,0.51,34,1.057,42,1.978,55,1.365,58,0.77,67,2.869,68,1.339,87,0.686,103,1.502,113,1.893,118,1.934,140,2.669,147,2.488,155,2.4,165,2.846,172,1.162,180,1.526,182,2.511,210,1.303,220,2.705,240,4.102,252,1.221,317,1.48,325,2.588,329,3.012,344,1.108,347,1.321,350,1.045,353,2.35,356,1.781,359,1.55,385,1.55,396,1.575,400,2.025,415,1.269,431,2.075,447,2.705,463,1.285,484,2.65,526,1.893,569,1.781,581,3.912,613,2.025,646,1.628,649,1.893,650,0.585,651,0.555,658,2.754,687,2.705,727,3.394,749,3.52,750,2.705,762,2.846,776,2.588,805,2.705,816,2.4,817,4.102,820,5.941,895,2.129,913,2.846,914,2.588,934,1.685,956,1.817,964,2.488,968,2.705,977,3.259,978,2.4,1102,3.023,1113,2.846,1118,4.941,1119,2.846,1120,3.259,1121,2.846,1192,2.488,1295,4.941,1296,3.023,1300,2.705,1440,3.618,1441,5.535,1442,3.023,1443,3.259,1444,3.618,1445,3.618,1446,3.618,1447,3.618,1448,5.485,1449,3.618,1450,3.618,1451,3.618,1452,3.618,1453,3.259,1454,3.618]],["sidebarParentCategories/661",[87,1.218]],["title/662",[329,1.805,484,2.42,963,3.323]],["content/662",[34,1.737,55,1.32,96,2.468,118,3.177,172,2.505,252,2.007,301,5.355,305,2.536,329,3.328,333,3.177,344,1.82,347,2.17,348,1.604,353,2.547,396,2.588,484,4.635,494,3.177,635,3.326,727,3.045,908,4.87,1258,3.943,1455,7.272,1456,7.025,1457,5.355,1458,5.355,1459,4.966,1460,5.355,1461,4.966,1462,5.355,1463,5.944]],["sidebarParentCategories/662",[87,1.218]],["title/663",[30,1.297,182,2.009,329,1.58,963,2.91]],["content/663",[30,2.765,34,1.609,35,2.478,55,1.325,62,2.742,103,2.286,118,4.79,132,3.786,146,1.813,182,4.282,259,3.652,329,2.67,347,2.01,348,1.486,353,2.359,396,2.397,484,4.33,634,4.6,707,3.426,775,3.329,886,4.25,945,2.397,948,3.786,1258,3.652,1294,4.96,1455,4.6,1461,4.6,1464,4.96,1465,7.411,1466,4.96,1467,4.96,1468,4.6,1469,4.332,1470,3.939,1471,4.96,1472,5.506,1473,5.506]],["sidebarParentCategories/663",[87,1.218]],["title/664",[58,0.728]],["content/664",[30,2.733,58,0.813,87,1.481,149,3.618,329,2.812,373,4.369,463,1.829,564,5.585,565,2.97,678,5.585]],["sidebarParentCategories/664",[87,1.218]],["title/665",[40,3.632,58,0.608]],["content/665",[62,3.134,565,3.222,581,4.171]],["sidebarParentCategories/665",[87,1.218]],["title/648",[267,1.746,459,0.812]],["content/648",[2,1.035,3,1.339,6,1.684,8,2.552,17,2.484,25,1.227,32,3.154,33,2.407,41,3.607,55,1.125,103,1.606,146,1.273,172,1.853,200,1.471,267,2.951,277,4.574,305,1.876,328,2.164,336,2.687,373,4.278,385,2.954,406,2.517,422,1.77,459,1.385,461,3.275,464,2.623,495,1.981,498,2.407,517,3.052,546,3.462,562,2.338,567,2.257,650,0.615,651,0.885,682,2.114,688,2.533,764,2.276,838,2.276,1059,4.313,1092,4.291,1152,4.278,1233,4.278,1366,2.767,1474,2.276,1475,3.017,1476,3.08]],["sidebarParentCategories/648",[]],["title/649",[41,2.621,55,0.689,459,0.697]],["content/649",[6,3.152,32,2.793,33,4.505,41,4.622,146,2.384,200,2.754,267,2.165,305,2.354,328,4.051,422,3.314,459,1.326,495,3.709,562,4.377,764,4.26,1059,5.414,1233,4.051,1366,5.179,1474,4.26]],["sidebarParentCategories/649",[]],["title/650",[2,0.48,55,0.44,172,1.027,567,1.251,650,0.341,651,0.491,688,0.99]],["content/650",[2,1.204,32,3.093,172,2.575,498,4.988,567,3.137,650,0.855,651,1.23,682,4.382,688,2.484]],["sidebarParentCategories/650",[]],["title/651",[55,0.537,267,1.167,461,1.672,688,1.209,1475,2.042]],["content/651",[8,2.679,17,2.608,32,2.793,267,2.852,277,4.802,373,4.051,385,3.102,406,2.384,459,1.326,461,3.102,464,2.754,517,3.204,546,3.635,1092,4.505,1152,4.051,1233,4.051,1475,3.787]],["sidebarParentCategories/651",[]],["title/652",[55,0.537,267,1.167,461,1.672,688,1.209,1476,1.573]],["content/652",[8,2.679,17,2.608,32,2.793,267,2.852,277,4.802,373,4.051,385,3.102,406,2.384,459,1.326,461,3.102,464,2.754,517,3.204,546,3.635,1092,4.505,1152,4.051,1233,4.051,1476,2.917]],["sidebarParentCategories/652",[]],["title/653",[55,0.537,267,1.167,336,1.818,688,1.209,1476,1.573]],["content/653",[8,2.679,17,2.608,32,2.793,267,2.852,277,4.802,336,3.373,373,4.051,385,3.102,406,2.384,459,1.326,464,2.754,517,3.204,546,3.635,1092,4.505,1152,4.051,1233,4.051,1476,2.917]],["sidebarParentCategories/653",[]],["title/654",[305,2.274]],["content/654",[2,0.695,3,1.602,25,2.085,39,4.167,58,0.482,67,2.42,77,2.722,78,3.309,146,1.523,148,3.836,149,1.81,210,1.666,235,2.589,267,1.383,272,3.639,305,3.219,406,1.523,407,2.366,415,1.623,457,5.489,459,1.063,493,2.968,526,2.42,542,3.068,552,4.216,560,2.907,561,3.502,646,2.082,681,3.639,732,3.18,733,5.169,735,3.639,749,2.968,836,3.309,878,3.459,895,2.722,902,2.968,953,4.167,955,4.913,1010,3.639,1349,3.18,1459,6.95,1475,3.997,1477,4.626,1478,6.883,1479,4.626,1480,7.64,1481,4.626,1482,3.639,1483,4.626,1484,3.865]],["sidebarParentCategories/654",[]],["title/655",[210,1.805,560,2.217,561,1.735]],["content/655",[5,4.443,8,2.479,17,2.413,25,2.672,95,3.298,167,4.443,200,2.548,235,4.712,267,2.518,348,2.272,448,4.299,459,1.171,560,4.276,561,3.346,617,6.035,1485,6.699,1486,7.586,1487,5.27,1488,6.699]],["sidebarParentCategories/655",[]],["title/656",[95,2.467,560,2.217,561,1.735]],["content/656",[2,0.853,3,1.967,34,1.66,77,3.342,81,5.203,93,2.852,95,2.797,112,2.852,120,3.179,148,2.852,149,2.223,159,3.434,163,3.645,233,4.248,235,3.179,254,3.258,258,4.746,267,1.699,292,4.248,305,1.847,317,2.323,348,2.042,350,1.641,356,2.797,406,1.87,447,4.248,459,0.79,464,2.161,494,3.036,560,3.766,561,3.273,633,3.105,638,2.797,688,2.345,689,4.248,838,3.342,880,3.258,1005,4.248,1152,3.179,1233,3.179,1487,4.469,1489,4.064,1490,4.746,1491,4.248,1492,5.681,1493,4.469]],["sidebarParentCategories/656",[]],["title/657",[200,1.906,560,2.217,561,1.735]],["content/657",[13,5.053,18,3.857,31,0.521,32,2.164,41,4.723,58,0.781,95,3.695,117,2.613,146,1.847,178,4.687,183,4.687,200,3.58,233,4.195,252,1.894,305,2.441,406,1.847,409,2.329,422,2.568,456,3.391,459,1.376,464,2.134,560,3.742,561,3.127,688,2.325,732,3.857,836,4.013,898,4.537,903,3.721,952,3.599,1362,5.053,1494,5.609,1495,4.195,1496,5.609,1497,4.413]],["sidebarParentCategories/657",[]],["title/658",[464,2.22,688,1.809]],["content/658",[2,1.07,172,2.289,249,4.433,261,3.508,267,2.831,336,3.319,415,2.5,461,3.748,464,2.71,567,2.788,650,0.76,651,1.093,688,3.14,1475,3.727,1476,3.525]],["sidebarParentCategories/658",[]],["title/666",[41,3.054,459,0.812]],["content/666",[6,2.733,31,0.876,32,2.422,33,3.906,41,4.673,53,2.492,146,2.067,200,3.398,267,1.877,305,2.627,328,3.513,422,2.873,459,1.39,495,3.216,562,3.795,600,3.513,764,3.693,944,5.184,1059,4.694,1233,3.513,1332,4.49,1366,4.49,1474,3.693,1498,6.277,1499,4.938,1500,4.694]],["sidebarParentCategories/666",[459,0.893]],["title/667",[459,0.812,1501,5.259]],["content/667",[31,0.939,41,4.554,53,2.806,125,5.286,200,3.312,305,2.299,396,3.077,459,1.313,562,4.274,600,3.956,944,6.055,1332,5.056,1474,4.159,1499,5.561]],["sidebarParentCategories/667",[459,0.893]],["title/668",[31,0.327,41,1.839,459,0.489,944,2.255,1332,2.514,1474,2.068]],["content/668",[2,1.041,19,2.237,31,0.884,34,1.14,37,2.791,41,4.016,50,4.007,53,2.305,55,1.435,71,1.14,105,2.588,137,2.588,148,1.959,172,1.865,200,2.92,229,4.448,258,3.26,260,2.237,261,1.921,298,2.791,305,1.888,310,1.645,319,2.177,335,1.726,344,1.777,347,2.119,348,1.566,349,1.82,353,3.516,354,2.588,385,1.671,406,1.911,417,2.917,431,3.329,459,1.239,496,1.065,641,2.41,665,2.183,764,2.296,903,2.588,944,2.503,1092,2.428,1205,3.069,1474,2.296,1502,4.152,1503,3.069,1504,3.901,1505,4.85,1506,3.514,1507,3.26,1508,3.26,1509,3.514,1510,3.901,1511,3.901,1512,3.514,1513,3.901,1514,3.514,1515,3.069,1516,3.514]],["sidebarParentCategories/668",[459,0.893]],["title/669",[31,0.463,53,1.269,200,1.897,305,1.04,1499,2.515]],["content/669",[2,0.89,31,0.843,34,0.886,37,3.421,41,2.502,50,3.625,53,3.089,55,1.42,71,0.886,89,1.464,134,2.267,147,2.084,148,1.522,168,1.657,171,1.492,172,1.536,200,3.099,229,1.945,232,1.945,249,1.886,261,2.355,294,2.01,298,5.238,305,2.951,310,1.278,317,1.956,319,1.137,333,1.62,335,1.341,344,1.814,347,1.746,348,1.599,349,0.95,353,2.882,354,2.01,374,2.532,385,1.299,406,1.575,431,4.199,459,0.824,493,3.069,494,1.62,496,0.827,562,1.833,641,1.986,665,1.696,678,2.168,693,2.267,764,1.783,862,1.738,903,2.01,944,3.801,956,1.522,1040,3.069,1117,1.886,1192,2.084,1332,3.421,1474,1.783,1499,2.385,1501,2.73,1502,2.168,1503,3.763,1505,7.054,1506,2.73,1507,2.532,1508,2.532,1512,4.309,1514,2.73,1515,2.385,1516,2.73,1517,2.73,1518,3.031,1519,4.783,1520,2.73,1521,5.924,1522,3.031,1523,2.73,1524,2.73,1525,3.031,1526,4.783,1527,2.73,1528,2.73,1529,2.73,1530,2.73,1531,2.385]],["sidebarParentCategories/669",[459,0.893]],["title/670",[31,0.408,459,0.61,600,2.455,944,2.816]],["content/670",[2,1.188,6,2.147,31,0.865,34,1.441,38,3.879,41,2.579,50,2.297,55,1.395,58,0.513,71,1.441,148,2.476,171,2.428,200,2.614,284,1.528,305,1.604,310,2.079,323,1.8,335,2.182,344,2.104,347,1.8,348,1.331,349,2.48,353,2.112,354,3.271,385,2.112,396,2.992,431,3.941,459,1.296,464,1.876,466,3.879,496,1.346,584,4.442,641,2.854,665,2.759,688,1.528,699,3.271,934,3.201,945,2.992,1058,5.742,1502,3.527,1505,4.12,1523,4.442,1532,4.931,1533,4.12,1534,4.442,1535,4.442,1536,4.931]],["sidebarParentCategories/670",[459,0.893]],["title/671",[1500,5.229]],["content/671",[17,1.924,34,1.561,35,2.404,41,3.798,58,0.556,84,3.575,102,1.498,159,3.23,170,3.673,172,2.333,190,2.92,209,3.23,254,3.064,261,2.63,400,2.989,415,1.874,422,2.445,459,1.231,498,4.518,600,2.989,653,3.822,688,2.556,886,4.164,898,3.23,908,2.989,910,4.816,955,3.995,1040,3.428,1079,4.463,1258,3.543,1376,4.203,1461,6.067,1486,4.812,1500,7.691,1537,5.342,1538,4.812,1539,5.342,1540,5.342,1541,7.261,1542,5.342,1543,5.342]],["sidebarParentCategories/671",[459,0.893]],["title/684",[2,0.528,172,1.129,567,1.375,650,0.375,651,0.539,688,1.089]],["content/684",[2,1.048,8,1.866,30,2.063,32,1.945,58,0.726,68,2.582,69,1.724,111,1.973,118,2.695,149,1.973,172,1.62,182,3.195,212,2.583,223,3.048,267,1.508,333,2.695,336,4.024,340,2.482,344,1.544,406,1.66,437,2.094,458,4.213,459,0.971,484,2.436,489,4.213,498,4.343,551,3.815,567,2.731,633,2.756,638,3.436,650,0.744,651,1.071,682,2.756,688,2.98,692,4.1,895,2.967,941,3.467,984,4.213,1008,3.372,1040,4.478,1248,3.967,1476,3.481,1517,4.542,1544,4.213,1545,4.213,1546,5.042,1547,5.042]],["sidebarParentCategories/684",[459,0.893]],["title/685",[688,1.809,1548,3.872]],["content/685",[8,2.815,17,2.741,327,4.477,362,6.357,373,4.258,415,2.669,517,3.367,676,6.357,688,2.821,692,3.898,888,6.357,1205,5.986,1545,6.357,1549,7.608]],["sidebarParentCategories/685",[459,0.893]],["title/686",[34,1.705,1500,4.365]],["content/686",[2,1.061,3,2.448,25,2.243,34,2.065,319,2.652,327,4.159,348,1.908,362,7.275,620,6.511,872,5.906,886,4.993,1093,5.286,1500,6.511,1545,5.906,1550,7.069,1551,5.056,1552,8.5,1553,7.069]],["sidebarParentCategories/686",[459,0.893]],["title/687",[2,0.586,567,1.527,688,1.209,1007,2.589,1554,2.792]],["content/687",[2,1.289,53,2.742,105,4.58,140,3.458,231,4.748,348,2.316,385,2.958,406,2.274,427,5.188,495,3.538,561,2.391,567,3.358,650,0.915,651,1.059,654,4.94,908,3.864,1007,4.58,1554,6.139,1555,6.905,1556,5.433]],["sidebarParentCategories/687",[459,0.893]],["title/688",[2,0.48,172,1.027,348,0.863,567,1.251,633,1.748,1491,2.391,1554,2.287]],["content/688",[172,3.065,633,4.503,885,5.664,1557,6.481,1558,7.42]],["sidebarParentCategories/688",[459,0.893]],["title/689",[140,2.352,459,0.812]],["content/689",[2,1.183,6,3.429,53,3.127,62,2.914,140,3.744,164,5.889,239,4.305,567,3.082,688,2.44,1559,7.876]],["sidebarParentCategories/689",[459,0.893]],["title/690",[113,3.054,459,0.812]],["content/690",[113,3.757,146,2.365,149,2.81,219,4.608,229,4.608,263,3.536,267,2.148,336,3.346,390,4.938,437,2.982,459,0.999,551,3.926,638,3.536,650,0.766,688,2.225,692,3.679,1476,2.894,1557,5.65,1560,6.001,1561,6.47,1562,6.47,1563,6.47]],["sidebarParentCategories/690",[459,0.893]],["title/691",[30,1.481,182,2.293,459,0.697]],["content/691",[30,2.328,68,2.914,69,2.693,115,3.429,182,3.605,340,3.878,458,6.58,459,1.096,692,4.035,984,6.58,1544,6.58]],["sidebarParentCategories/691",[459,0.893]],["title/692",[459,0.543,761,2.684,978,2.589,1564,3.903,1565,3.261]],["content/692",[35,2.948,53,2.601,105,4.346,164,4.9,209,3.961,284,2.03,348,1.768,437,2.721,459,0.911,474,6.533,551,3.582,591,3.29,646,2.948,650,0.699,678,4.687,688,2.03,761,5.709,803,4.9,886,3.757,941,4.505,945,2.852,978,5.508,1051,3.855,1204,5.155,1538,5.902,1566,6.552,1567,5.902,1568,6.552,1569,6.552,1570,6.552,1571,5.902]],["sidebarParentCategories/692",[459,0.893]],["title/693",[30,1.725,459,0.812]],["content/693",[17,2.608,20,4.26,30,2.14,53,2.874,59,4.35,68,2.679,146,2.384,148,3.635,164,5.414,209,4.377,348,1.954,369,5.696,407,2.608,459,1.007,1290,6.522,1469,5.696,1572,7.24,1573,7.24,1574,7.24,1575,6.049]],["sidebarParentCategories/693",[459,0.893]],["title/694",[437,2.904]],["content/694",[62,3.048,437,3.421,459,1.146,650,0.879,902,5.286,1576,8.237]],["sidebarParentCategories/694",[459,0.893]],["title/695",[459,0.973]],["content/695",[6,2.537,20,3.429,41,3.049,43,2.045,53,3.056,88,4.358,95,2.87,146,1.919,200,2.217,219,3.74,229,3.74,252,1.968,263,2.87,327,3.429,333,3.115,340,4.244,344,1.784,388,4.169,459,1.199,551,3.186,558,4.87,590,2.986,638,2.87,679,5.293,688,2.67,692,4.416,749,3.74,886,3.342,895,3.429,903,3.866,941,4.007,964,4.007,1007,3.866,1349,4.007,1374,4.87,1515,4.585,1520,5.25,1577,5.828,1578,4.87,1579,5.25,1580,5.828]],["sidebarParentCategories/695",[459,0.893]],["title/696",[252,1.691,338,2.376,496,1.367]],["content/696",[2,1.196,8,1.559,17,1.517,20,2.479,31,0.673,50,1.963,55,1.452,70,2.07,71,2.328,95,2.074,103,1.749,180,1.777,197,3.795,219,2.703,252,1.422,310,1.777,338,1.998,340,2.074,342,1.929,344,2.439,347,2.646,348,1.658,349,1.321,350,1.217,353,2.631,409,1.749,459,0.586,496,1.15,517,1.864,526,3.213,551,2.303,567,3.118,568,3.147,583,3.014,588,3.52,641,2.551,649,2.204,651,0.942,688,2.624,692,2.158,715,3.941,717,4.652,718,4.074,754,3.795,1013,2.794,1529,3.795,1578,3.52,1579,3.795,1581,4.213,1582,4.213,1583,4.213,1584,4.213,1585,5.533,1586,4.213,1587,4.213]],["sidebarParentCategories/696",[459,0.893]],["title/697",[206,1.322,910,3.323,1007,3.323]],["content/697",[35,3.271,55,1.368,70,2.28,71,2.333,95,2.084,103,1.758,115,1.843,170,4.238,172,2.565,229,2.716,263,2.084,284,1.91,344,1.887,347,3.63,355,4.821,365,4.821,386,1.785,415,1.485,442,4.849,463,1.444,474,4.849,495,2.168,503,3.33,526,2.214,561,1.466,588,6.671,623,3.726,650,0.657,651,0.946,699,4.088,907,3.537,910,2.807,945,2.683,1007,4.088,1551,4.409,1585,5.552,1588,4.233,1589,4.233,1590,6.163,1591,6.163,1592,6.163,1593,6.163,1594,6.163,1595,4.233,1596,4.233,1597,6.163,1598,4.233,1599,4.233,1600,4.233]],["sidebarParentCategories/697",[459,0.893]],["title/672",[267,1.312,461,1.88,688,1.359,1475,2.295]],["content/672",[2,1.45,8,1.757,17,2.411,32,1.832,55,0.921,70,2.213,71,1.387,265,2.137,267,2.516,277,3.149,294,3.149,302,1.913,305,2.176,310,2.822,319,1.781,337,1.672,338,3.174,341,3.891,342,3.064,373,2.657,385,2.867,406,2.552,459,1.316,461,2.867,464,1.806,487,2.484,496,1.296,517,2.962,540,3.397,546,2.384,650,0.714,651,1.027,1092,2.955,1152,2.657,1233,2.657,1474,2.794,1475,2.484,1502,3.397,1601,3.736,1602,4.277,1603,3.967,1604,8.415,1605,8.415,1606,3.967,1607,6.692]],["sidebarParentCategories/672",[459,0.893]],["title/673",[95,2.467,560,2.217,561,1.735]],["content/673",[17,2.086,20,3.407,32,3.315,103,2.405,117,2.698,123,3.635,146,1.907,152,3.135,171,2.851,210,2.086,224,3.407,238,4.151,267,1.732,292,4.33,305,1.883,348,1.563,350,1.672,356,2.851,389,3.321,409,2.405,418,3.603,422,2.651,459,0.806,517,2.563,560,4.047,561,3.167,609,3.927,631,4.556,632,4.556,633,3.165,775,3.501,826,3.407,898,3.501,1475,3.029,1491,4.33,1493,4.556,1548,3.841,1608,3.716,1609,4.838]],["sidebarParentCategories/673",[459,0.893]],["title/674",[30,1.725,350,1.686]],["content/674",[8,0.815,17,0.794,19,0.7,30,2.49,33,0.759,43,0.428,44,0.913,50,0.569,51,0.96,53,1.89,55,1.409,58,0.54,59,1.483,62,0.815,68,0.815,72,1.841,73,1.296,77,0.718,89,1.065,90,2.253,92,0.839,95,1.483,102,0.455,108,0.683,114,1.178,120,0.683,123,1.429,130,1.414,138,0.873,140,1.487,145,2.701,147,0.839,148,1.106,149,0.862,150,0.407,151,0.625,152,3.227,156,0.96,159,0.738,163,0.783,171,1.085,179,0.652,180,0.515,182,1.009,190,1.647,191,3.533,202,1.233,204,2.296,210,0.794,218,0.809,221,0.873,223,0.738,229,1.414,235,0.683,237,3.275,242,0.873,252,0.412,264,0.683,267,0.659,294,0.809,298,1.576,305,1.2,317,2.277,324,0.809,344,0.374,347,2.833,348,1.284,350,1.499,353,2.528,359,1.581,385,0.523,386,0.515,389,1.727,390,0.839,394,0.839,400,2.387,404,2.171,407,1.329,415,0.428,417,0.913,422,1.689,431,0.7,433,1.874,434,0.809,437,2.684,448,0.783,453,1.727,456,0.738,459,0.662,461,1.291,484,1.065,491,0.523,493,0.783,494,0.652,560,0.54,561,1.477,590,3.825,591,1.512,635,0.683,646,1.356,650,0.738,764,0.718,767,1.02,826,0.718,827,1.772,831,1.02,835,4.412,862,0.7,880,0.7,898,0.738,902,0.783,904,1.727,908,2.065,935,0.759,949,2.171,965,0.96,989,0.913,1026,0.96,1037,2.253,1051,1.296,1061,1.556,1097,1.576,1192,1.515,1233,2.065,1292,3.692,1304,0.873,1311,0.96,1333,1.515,1336,1.515,1337,4.163,1338,5.085,1349,0.839,1366,0.873,1470,2.155,1475,1.576,1482,0.96,1484,1.02,1495,1.648,1503,0.96,1531,0.96,1548,0.809,1554,0.873,1575,1.02,1608,0.783,1610,1.22,1611,2.714,1612,2.962,1613,1.099,1614,1.099,1615,4.336,1616,2.203,1617,3.083,1618,1.22,1619,2.203,1620,2.203,1621,1.841,1622,2.203,1623,2.203,1624,1.22,1625,1.22,1626,1.414,1627,1.22,1628,1.841,1629,1.22,1630,1.02,1631,1.985,1632,1.02,1633,1.22,1634,1.22,1635,2.203,1636,1.02,1637,1.099,1638,2.203,1639,2.203,1640,3.689,1641,1.22,1642,1.099,1643,1.22,1644,1.22,1645,1.22,1646,1.22,1647,1.22,1648,1.22,1649,1.22,1650,1.22,1651,2.203,1652,2.203,1653,2.203,1654,2.203,1655,3.324,1656,2.903,1657,2.714,1658,2.155,1659,2.714,1660,2.203,1661,1.22,1662,1.02,1663,1.099,1664,2.203,1665,1.22,1666,1.22,1667,1.22,1668,1.22,1669,1.22,1670,1.22,1671,1.22,1672,1.22,1673,1.099,1674,1.099,1675,1.02,1676,1.985,1677,0.96]],["sidebarParentCategories/674",[459,0.893]],["title/675",[150,1.946,350,1.686]],["content/675",[34,1.7,55,1.413,58,0.752,62,0.627,63,1.125,65,2.206,68,1.732,73,1.736,89,1.425,117,0.79,120,1.651,130,1.088,132,1.166,145,2.664,150,3.1,179,1.577,180,0.715,190,0.927,202,0.949,204,2.913,238,0.819,263,4.295,264,0.949,267,1.171,305,0.551,311,1.213,317,2.169,327,3.121,333,0.906,344,0.519,347,2.879,348,0.796,349,1.825,350,1.532,353,2.976,359,1.677,400,2.191,404,4.087,406,0.558,407,1.063,415,0.595,437,3.001,438,0.927,439,4.432,453,0.972,459,0.236,461,1.264,468,1.528,491,1.264,493,2.512,497,1.213,546,0.851,552,1.088,561,1.621,590,1.511,612,0.998,613,2.968,629,1.334,646,0.763,653,1.213,761,1.166,762,4.173,827,1.736,880,1.692,898,1.025,1002,2.206,1009,5.464,1054,2.028,1061,0.715,1079,1.417,1166,5.428,1169,2.028,1171,3.349,1173,2.206,1175,3.271,1176,1.417,1177,1.417,1178,2.465,1183,1.417,1184,1.417,1186,2.206,1190,3.527,1192,2.028,1197,1.417,1199,2.465,1201,1.417,1202,1.417,1214,3.271,1304,1.213,1363,1.166,1381,1.528,1387,1.417,1475,1.543,1482,1.334,1489,1.213,1531,1.334,1548,2.597,1556,3.683,1557,1.334,1608,1.088,1626,1.088,1630,1.417,1678,1.696,1679,1.696,1680,1.696,1681,1.696,1682,1.696,1683,1.696,1684,2.657,1685,1.696,1686,1.696,1687,1.696,1688,1.696,1689,1.696,1690,1.696,1691,1.696,1692,1.417,1693,2.95,1694,1.696,1695,2.95,1696,2.95,1697,1.696,1698,1.696,1699,1.696,1700,1.696,1701,1.696,1702,1.528,1703,1.696,1704,3.527,1705,1.696,1706,1.696,1707,1.696,1708,1.696,1709,1.696,1710,1.696,1711,1.696,1712,1.696,1713,1.696,1714,1.696]],["sidebarParentCategories/675",[459,0.893]],["title/676",[152,2.04,210,1.152,348,0.863,422,1.463,459,0.445,609,1.638]],["content/676",[2,0.842,6,1.621,25,1.182,33,2.317,34,1.088,37,2.663,55,1.408,58,0.583,68,2.074,102,0.768,123,1.766,152,3.457,171,1.833,174,5.049,179,1.99,210,3.389,224,4.733,230,3.854,267,1.113,305,1.823,311,2.663,317,1.523,335,2.48,344,2.296,350,1.075,389,2.135,390,2.56,404,2.191,406,1.226,407,2.019,410,2.784,422,3.086,461,1.595,495,1.907,560,1.648,561,1.941,609,1.907,646,1.675,649,1.948,747,3.111,826,2.191,935,4.667,1167,3.111,1332,2.663,1395,3.354,1475,1.948,1478,3.354,1490,4.683,1495,2.784,1524,6.072,1608,2.389,1715,3.354,1716,3.723,1717,5.605,1718,3.723,1719,6.741,1720,7.5,1721,5.049,1722,3.723,1723,6.757,1724,3.723,1725,3.354,1726,5.605,1727,5.605,1728,3.723,1729,3.723,1730,3.723,1731,3.723,1732,3.723,1733,3.723]],["sidebarParentCategories/676",[459,0.893]],["title/677",[200,1.906,560,2.217,561,1.735]],["content/677",[5,3.307,20,4.075,25,1.582,32,1.923,41,4.497,43,2.43,47,3.728,55,1.183,58,0.721,59,2.455,77,2.934,96,2.07,117,2.323,123,2.365,140,2.79,165,3.922,200,2.634,243,3.428,344,1.526,349,1.563,406,1.642,409,2.07,415,1.749,437,2.07,459,1.196,464,1.897,526,2.608,543,4.491,560,3.521,561,3.238,682,2.725,688,2.146,750,3.728,862,4.563,902,3.199,952,3.199,968,3.728,1152,2.79,1211,4.491,1345,3.428,1475,2.608,1507,4.166,1508,5.786,1608,4.444,1612,3.102,1614,4.491,1632,4.166,1734,4.986,1735,4.986,1736,4.166,1737,4.166]],["sidebarParentCategories/677",[459,0.893]],["title/678",[30,1.725,221,4.176]],["content/678",[30,2.352,53,1.98,55,1.345,73,2.934,84,2.455,123,2.365,140,2.009,147,3.428,180,2.103,182,3.17,190,2.725,200,1.897,221,5.692,347,1.82,359,2.967,396,2.171,407,1.796,422,2.282,437,2.07,461,2.136,491,2.136,495,2.554,542,3.307,590,4.79,609,2.554,646,2.244,698,3.307,880,2.859,895,2.934,1061,3.809,1192,3.428,1337,5.95,1468,4.166,1470,6.688,1475,3.622,1554,3.567,1642,4.491,1738,8.597,1739,4.491,1740,4.491,1741,4.986,1742,4.986,1743,4.986,1744,4.986]],["sidebarParentCategories/678",[459,0.893]],["title/679",[30,1.297,437,1.822,688,1.359,1061,1.85]],["content/679",[30,2.787,53,1.721,55,1.443,58,0.653,68,2.321,114,2.317,145,2.871,149,2.454,152,2.565,190,2.37,202,2.426,237,3.69,261,2.134,263,2.134,264,2.426,305,2.039,407,1.561,421,4.934,422,1.984,437,3.06,461,1.857,493,2.782,495,2.221,591,3.149,615,2.177,650,0.786,688,1.343,692,2.221,826,2.551,880,3.596,903,2.875,904,2.486,1292,2.875,1327,5.24,1336,2.981,1475,2.268,1608,2.782,1612,2.697,1656,4.934,1657,5.649,1658,4.486,1659,5.649,1745,5.649,1746,6.271,1747,6.638,1748,6.271,1749,6.271,1750,6.271,1751,6.271,1752,6.271]],["sidebarParentCategories/679",[459,0.893]],["title/680",[437,2.08,449,2.515,1363,3.445]],["content/680",[17,1.387,19,2.208,31,0.534,43,1.351,58,0.401,59,1.896,89,2.777,117,1.794,127,5.179,148,2.886,149,1.507,171,1.896,228,3.849,229,2.471,284,2.888,288,3.218,323,2.785,340,1.896,396,2.995,400,2.155,410,4.299,437,2.856,449,4.836,459,0.536,491,3.268,493,3.689,517,1.704,561,1.334,629,3.03,646,1.733,649,2.014,671,2.554,676,3.218,764,2.266,885,3.953,886,3.297,941,2.648,945,1.677,955,2.88,1005,2.88,1042,3.03,1210,3.218,1258,2.554,1363,6.779,1379,3.469,1411,7.788,1430,5.179,1509,5.179,1527,5.179,1535,3.469,1552,3.469,1562,3.469,1636,3.218,1753,6.878,1754,3.469,1755,3.851,1756,5.749,1757,5.749,1758,3.851,1759,3.851,1760,3.469,1761,5.749,1762,5.749]],["sidebarParentCategories/680",[459,0.893]],["title/681",[32,1.933,93,2.515,904,2.873]],["content/681",[32,3.677,53,2.991,55,1.131,58,0.469,59,2.22,62,1.669,81,3.101,84,3.177,93,2.264,113,3.375,147,3.101,150,2.9,200,2.454,218,2.991,221,3.226,226,3.548,239,2.465,253,4.062,268,2.586,305,1.466,317,1.844,343,2.991,437,3.613,459,0.897,461,1.932,491,1.932,613,3.61,635,2.523,646,2.029,650,0.481,651,0.692,688,1.999,692,2.31,700,5.076,826,2.653,875,3.372,904,2.586,942,3.548,1061,1.902,1093,3.372,1366,3.226,1475,2.359,1561,5.812,1601,5.076,1608,2.894,1626,2.894,1677,3.548,1763,4.509,1764,6.452,1765,6.452,1766,7.533,1767,4.509,1768,4.062,1769,4.509,1770,4.509,1771,4.509,1772,4.509,1773,4.509,1774,4.509,1775,4.509,1776,4.509,1777,4.509,1778,4.509]],["sidebarParentCategories/681",[459,0.893]],["title/682",[263,2.16,437,1.822,688,1.359,1166,2.73]],["content/682",[34,2.363,35,2.546,53,1.497,55,1.168,58,0.842,65,5.644,84,1.856,90,2.819,145,2.59,148,1.893,150,3.09,152,1.542,179,2.015,180,1.59,190,2.061,191,2.061,210,1.358,227,3.421,263,3.716,264,2.11,284,1.168,327,2.218,339,2.346,348,1.833,350,1.089,359,1.615,404,2.218,407,1.358,437,3.527,453,3.245,461,1.615,473,2.218,493,2.419,591,3.41,635,2.11,646,1.697,688,1.168,692,1.931,904,2.162,928,2.346,934,1.756,1009,5.63,1093,2.819,1137,3.396,1166,4.697,1169,3.89,1296,3.15,1407,5.097,1464,3.396,1475,1.972,1531,2.966,1556,2.966,1626,2.419,1677,2.966,1684,3.396,1692,3.15,1779,6.792,1780,3.77,1781,3.77,1782,3.77,1783,5.658,1784,3.77,1785,5.658,1786,5.658,1787,5.658,1788,5.658,1789,5.658,1790,3.77,1791,3.77,1792,3.77]],["sidebarParentCategories/682",[459,0.893]],["title/683",[150,1.463,327,2.582,1363,3.017,1793,3.953]],["content/683",[8,1.977,18,3.673,55,1.218,77,3.143,92,3.673,145,3.776,150,3.086,167,3.543,327,5.447,400,2.989,407,1.924,437,3.676,452,4.203,459,0.743,590,4.535,591,2.682,646,2.404,688,1.655,692,2.737,827,4.273,995,6.067,1009,4.731,1050,4.463,1061,2.253,1214,6.067,1363,6.365,1475,2.794,1534,4.812,1557,4.203,1608,3.428,1630,4.463,1704,4.812,1794,7.261,1795,5.342,1796,5.342,1797,5.342]],["sidebarParentCategories/683",[459,0.893]],["title/698",[267,1.312,461,1.88,688,1.359,1476,1.768]],["content/698",[2,1.45,8,1.757,17,2.411,32,1.832,55,0.921,70,2.213,71,1.387,265,2.137,267,2.516,277,3.149,294,3.149,302,1.913,305,2.176,310,2.822,319,1.781,337,1.672,338,3.174,341,3.891,342,3.064,373,2.657,385,2.867,406,2.552,459,1.316,461,2.034,464,1.806,487,2.484,496,1.296,517,2.962,540,3.397,546,2.384,650,0.714,651,1.027,1092,2.955,1152,2.657,1233,2.657,1474,2.794,1476,2.697,1502,3.397,1601,3.736,1602,4.277,1603,3.967,1606,3.967,1798,8.415,1799,8.415,1800,6.692]],["sidebarParentCategories/698",[459,0.893]],["title/699",[95,2.467,560,2.217,561,1.735]],["content/699",[17,2.113,20,3.452,32,3.336,103,2.436,117,2.733,123,4.101,146,1.932,171,2.888,224,3.452,238,4.178,267,1.754,292,4.387,305,1.908,315,2.685,350,2.233,356,2.888,389,3.364,409,2.436,418,3.65,459,0.816,461,2.513,517,2.596,560,4.068,561,3.183,609,3.961,631,4.615,632,4.615,633,3.207,775,3.547,826,3.452,898,3.547,1491,4.387,1493,4.615,1548,3.891,1609,4.901,1801,4.387]],["sidebarParentCategories/699",[459,0.893]],["title/700",[31,0.542,1802,4.176]],["content/700",[18,3.526,31,0.876,50,2.389,55,1.111,62,1.898,66,2.525,87,0.973,130,3.291,140,2.845,190,3.86,239,2.803,261,2.525,284,1.589,322,3.291,323,2.948,333,2.741,347,2.578,348,1.906,349,2.861,350,2.332,396,2.233,422,3.232,459,0.713,461,2.197,496,2.49,609,2.627,635,2.87,639,3.401,641,3.354,658,2.575,682,2.803,688,1.589,803,3.835,915,3.669,929,3.291,1060,3.669,1061,2.163,1476,2.066,1548,3.401,1803,7.061,1804,5.128,1805,4.62,1806,4.62,1807,5.128,1808,3.835]],["sidebarParentCategories/700",[459,0.893]],["title/701",[145,2.293,343,3.323,1044,4.186]],["content/701",[2,0.853,31,0.791,58,0.788,77,3.342,102,1.172,112,2.852,140,2.289,145,2.6,149,2.223,171,2.797,179,3.036,204,3.535,211,5.02,232,3.645,267,1.699,284,2.345,323,2.074,407,2.046,431,3.258,459,0.79,652,4.469,653,4.064,732,3.906,928,3.535,945,2.473,988,6.817,989,4.248,1043,4.746,1044,6.323,1045,5.117,1051,4.453,1059,4.248,1098,4.469,1392,4.746,1497,4.469,1612,3.535,1626,3.645,1760,5.117,1809,7.568,1810,5.681,1811,5.117,1812,5.681,1813,5.681,1814,5.681,1815,5.681,1816,5.681]],["sidebarParentCategories/701",[459,0.893]],["title/702",[268,2.873,350,1.447,904,2.873]],["content/702",[2,1.181,31,0.663,55,1.46,58,0.427,73,2.411,123,1.943,167,2.718,264,2.293,268,2.35,272,3.224,302,1.651,338,1.943,344,1.843,347,1.496,348,1.925,349,1.887,350,2.419,353,3.368,396,1.784,407,1.476,415,1.438,431,2.35,438,3.9,447,3.064,456,2.477,461,1.755,496,1.118,609,3.083,641,1.701,734,3.064,803,3.064,862,2.35,880,3.452,904,2.35,939,3.224,1476,1.651,1817,6.019,1818,6.019,1819,6.019,1820,6.019,1821,6.019,1822,6.019,1823,3.423,1824,6.019,1825,6.019,1826,4.097,1827,6.019,1828,6.019,1829,6.019,1830,7.862,1831,7.862,1832,4.097,1833,4.097,1834,4.097]],["sidebarParentCategories/702",[459,0.893]],["title/703",[235,2.803,350,1.447,1835,4.186]],["content/703",[8,1.239,31,0.311,34,0.978,55,1.301,58,0.538,68,2.627,84,2.545,111,1.31,130,3.317,141,2.797,145,3.996,146,1.702,179,2.763,202,1.873,216,1.751,218,2.221,235,4.538,237,3.715,252,1.13,284,1.037,305,1.089,317,2.114,322,2.148,329,1.206,333,1.789,347,2.305,348,1.395,350,2.05,353,3.042,356,1.648,369,6.65,396,1.457,400,2.892,406,1.102,407,1.206,421,2.634,422,3.25,423,2.395,452,2.634,461,2.214,491,1.434,609,1.715,615,2.595,635,2.892,693,2.503,829,3.016,895,1.97,934,1.56,941,3.554,948,2.302,949,1.97,956,1.681,1049,2.797,1051,1.97,1061,1.412,1292,2.221,1304,2.395,1333,4.341,1336,3.554,1476,2.083,1578,2.797,1612,2.083,1621,4.319,1636,5.932,1692,2.797,1793,3.016,1835,5.275,1836,5.169,1837,3.016,1838,5.169,1839,6.313,1840,3.348,1841,5.169,1842,5.169,1843,3.348,1844,3.348,1845,5.169,1846,5.169,1847,3.348,1848,3.348,1849,3.348,1850,3.348,1851,3.348,1852,3.348,1853,3.348,1854,3.016,1855,3.348,1856,3.348,1857,3.016,1858,3.016]],["sidebarParentCategories/703",[459,0.893]],["title/704",[350,1.686,658,2.931]],["content/704",[30,2.23,172,2.424,182,3.454,323,2.754,329,2.717,333,4.033,339,4.694,561,2.613,658,3.788,749,4.841,1558,6.796,1808,5.641,1859,6.796,1860,7.544,1861,7.544,1862,7.544]],["sidebarParentCategories/704",[459,0.893]],["title/705",[225,2.931,350,1.686]],["content/705",[6,0.999,8,1.412,17,0.826,30,0.678,34,0.67,43,0.805,50,1.069,53,0.911,55,1.361,58,0.594,62,1.412,68,1.412,73,1.35,77,1.35,95,1.13,108,1.284,114,2.04,123,1.088,130,2.449,140,1.538,145,3.132,149,0.898,152,3.413,153,1.472,156,1.805,163,1.472,171,1.13,179,1.226,190,1.254,202,1.284,210,0.826,225,3.958,229,1.472,237,4.025,242,1.641,243,1.578,264,1.284,267,0.686,305,1.593,317,2.335,324,1.522,347,2.772,348,1.322,350,1.831,353,3.107,386,0.968,389,2.81,390,1.578,400,1.284,406,0.755,407,2.283,415,0.805,422,3.132,433,3.049,434,1.522,437,2.371,453,1.316,456,1.387,459,0.682,461,1.635,494,1.226,561,1.322,590,2.925,591,1.152,646,1.032,650,0.523,687,4.27,767,1.917,826,1.35,827,2.245,862,1.316,880,1.316,904,2.188,908,3.195,935,1.428,1037,3.664,1051,2.245,1061,0.968,1192,1.578,1292,4.538,1333,2.624,1336,2.624,1337,2.854,1338,4.492,1341,3.438,1476,1.538,1482,1.805,1548,1.522,1575,1.917,1608,1.472,1615,3.188,1617,3.188,1621,3.188,1626,1.472,1656,4.492,1658,3.505,1662,1.917,1663,2.067,1673,2.067,1674,2.067,1675,1.917,1676,3.438,1863,1.641,1864,2.294,1865,2.294,1866,2.294,1867,2.294,1868,3.816,1869,2.294,1870,3.816,1871,2.294,1872,2.294,1873,5.71,1874,2.294,1875,3.816,1876,3.816,1877,3.816,1878,2.067,1879,1.917,1880,4.413,1881,3.816,1882,2.294,1883,3.438,1884,3.816,1885,2.294,1886,2.294,1887,2.294,1888,2.294,1889,2.294,1890,2.294]],["sidebarParentCategories/705",[459,0.893]],["title/706",[30,1.297,225,2.203,263,2.16,1166,2.73]],["content/706",[5,2.059,6,2.122,20,1.827,34,1.991,55,1.449,58,0.71,89,1.5,96,1.289,137,2.059,146,1.022,150,2.838,151,1.59,152,3.796,167,2.059,180,1.309,202,1.737,225,2.447,227,1.877,232,1.992,237,1.827,263,3.356,284,0.962,317,1.993,347,2.704,348,1.315,350,1.408,353,2.92,385,1.33,386,1.309,407,2.167,409,1.289,413,4.391,431,1.78,438,2.664,453,2.795,461,1.33,591,1.559,613,1.737,615,1.559,650,0.331,679,2.135,827,2.868,908,2.727,928,1.932,934,1.446,1002,4.499,1009,3.451,1151,2.442,1166,4.241,1169,2.135,1170,2.594,1171,3.486,1172,2.594,1173,3.645,1336,2.135,1470,3.486,1476,1.251,1487,2.442,1533,2.594,1611,2.797,1658,2.221,1702,2.797,1802,4.876,1879,2.594,1883,4.391,1891,4.874,1892,4.874,1893,4.874,1894,4.874,1895,2.797,1896,3.104,1897,4.874,1898,4.874,1899,4.874,1900,4.874,1901,4.874,1902,3.104,1903,3.104,1904,3.104,1905,3.104,1906,3.104,1907,3.104,1908,3.104]],["sidebarParentCategories/706",[459,0.893]],["title/707",[123,1.667,315,1.609,348,0.949,350,1.015,459,0.489,609,1.801]],["content/707",[2,0.653,6,0.546,17,0.452,25,0.398,31,0.35,34,0.367,53,0.498,55,1.449,58,0.504,59,0.618,62,0.464,73,0.738,83,1.048,84,0.618,92,1.553,93,2.183,111,1.701,123,2.682,138,0.897,145,1.724,146,0.744,148,0.63,150,0.418,151,0.643,152,2.776,160,1.777,171,1.112,179,1.207,210,1.357,216,0.656,220,1.689,224,3.994,226,1.777,227,2.628,232,0.805,235,1.724,240,2.817,254,0.719,261,0.618,267,0.375,279,0.738,288,1.048,298,0.897,306,1.048,315,1.034,317,1.541,327,0.738,329,1.357,333,0.671,335,1.924,338,2.503,339,0.781,344,1.331,347,2.391,348,2.036,349,0.708,350,2.08,353,2.422,359,0.537,371,0.656,374,3.147,385,0.968,389,1.295,390,0.863,394,3.331,396,0.983,400,2.108,404,0.738,406,0.744,407,1.566,415,0.44,422,1.034,431,2.493,433,2.344,437,3.065,438,1.235,456,1.863,459,0.429,461,1.32,480,0.832,496,0.616,560,0.555,561,0.782,609,1.579,615,0.63,641,0.521,649,0.656,652,0.987,671,0.832,698,0.832,747,1.048,753,0.987,761,0.863,762,0.987,803,2.304,826,0.738,898,0.758,935,3.726,939,0.987,1035,1.13,1097,1.616,1319,1.13,1333,2.59,1363,0.863,1442,1.048,1476,1.242,1489,2.695,1495,0.938,1503,0.987,1554,0.897,1571,1.13,1658,1.616,1675,1.887,1677,1.777,1715,1.13,1721,2.035,1723,1.13,1725,1.13,1801,0.938,1805,1.13,1823,3.632,1854,2.035,1857,1.13,1858,2.776,1863,0.897,1878,2.035,1895,1.13,1909,5.277,1910,3.081,1911,1.254,1912,1.254,1913,1.254,1914,1.254,1915,1.254,1916,1.254,1917,3.767,1918,1.254,1919,2.259,1920,2.259,1921,2.259,1922,1.254,1923,1.254,1924,6.788,1925,1.254,1926,1.254,1927,1.254,1928,1.254,1929,1.254,1930,3.081,1931,1.254,1932,1.254,1933,1.254,1934,2.259,1935,4.845,1936,3.767,1937,4.845,1938,2.259,1939,3.767,1940,2.259,1941,1.254,1942,1.254,1943,2.259,1944,2.259,1945,2.259,1946,1.254,1947,2.259,1948,2.259,1949,1.254,1950,1.254,1951,1.254,1952,1.254,1953,1.254,1954,1.254,1955,3.767,1956,1.254,1957,4.845,1958,1.254,1959,2.259,1960,1.254,1961,1.254,1962,1.254,1963,1.254,1964,1.254,1965,1.254,1966,2.259,1967,1.254,1968,1.254,1969,1.254,1970,1.254,1971,4.845,1972,3.081,1973,4.347,1974,4.347,1975,1.254,1976,1.254,1977,1.254,1978,1.254,1979,2.035,1980,1.254,1981,1.254,1982,1.254,1983,1.254,1984,1.254,1985,1.254,1986,1.254,1987,1.254,1988,1.254,1989,1.254,1990,1.254]],["sidebarParentCategories/707",[459,0.893]],["title/708",[200,1.906,560,2.217,561,1.735]],["content/708",[32,2.22,41,4.771,43,2.678,47,4.302,58,0.599,92,3.956,96,2.389,117,2.68,140,3.075,200,2.903,225,2.889,243,3.956,344,1.761,349,1.804,409,2.389,437,2.389,459,1.269,461,2.465,464,2.189,526,3.01,560,3.378,561,3.159,682,3.145,688,2.365,827,3.385,862,3.299,902,3.692,920,5.183,952,3.692,968,4.302,1051,3.385,1152,3.22,1345,3.956,1476,2.318,1612,3.58,1736,4.807,1737,4.807,1801,4.302,1863,4.116]],["sidebarParentCategories/708",[459,0.893]],["title/709",[225,2.203,437,1.822,688,1.359,1061,1.85]],["content/709",[53,2.299,55,1.452,58,0.603,68,2.143,114,3.095,145,3.509,152,3.135,225,3.848,237,4.51,263,2.851,264,3.24,305,2.493,407,2.086,437,3.568,461,2.481,495,2.967,591,2.907,688,1.794,692,2.967,880,4.396,904,3.321,1336,3.981,1476,2.333,1656,6.03,1658,5.483,1745,6.905,1801,4.33,1880,6.905]],["sidebarParentCategories/709",[459,0.893]],["title/710",[150,1.463,437,1.822,688,1.359,1061,1.85]],["content/710",[58,0.649,59,3.069,130,4,146,2.052,150,3.137,171,3.069,210,2.897,239,3.407,249,3.879,284,1.931,338,2.956,369,4.904,407,2.245,437,2.588,449,3.13,685,5.615,688,1.931,692,3.193,912,5.615,1061,2.629,1469,6.328,1489,4.459,1631,5.615,1768,5.615,1837,7.245,1859,5.615,1863,4.459,1991,5.615,1992,8.905,1993,6.233,1994,6.233,1995,6.233,1996,6.233]],["sidebarParentCategories/710",[459,0.893]],["title/711",[437,2.08,688,1.552,1061,2.113]],["content/711",[9,4.44,34,1.887,53,2.564,55,1.312,84,3.18,150,2.153,180,2.723,202,3.614,218,4.283,264,3.614,279,3.8,348,1.743,359,4.084,407,2.326,437,3.416,461,2.767,494,3.452,646,2.906,688,2.001,692,3.308,1061,3.818,1121,6.473,1476,2.602,1626,4.144,1997,6.458,1998,6.458]],["sidebarParentCategories/711",[459,0.893]],["title/712",[267,1.312,336,2.044,688,1.359,1476,1.768]],["content/712",[2,1.43,3,1.071,7,2.584,8,0.663,17,2.162,20,1.82,25,0.981,29,0.899,30,0.529,31,0.166,32,1.193,44,1.339,55,0.668,58,0.67,62,0.663,65,3.052,68,0.663,70,1.837,71,1.193,77,1.054,102,0.369,111,1.597,117,0.834,123,1.467,146,1.018,148,0.899,149,0.701,178,1.496,179,0.957,191,0.979,210,1.114,218,1.188,224,1.054,227,1.082,233,1.339,235,2.719,249,1.114,252,0.604,256,2.433,265,0.806,267,1.795,277,1.188,294,1.188,296,1.114,302,2.979,304,2.433,305,1.58,310,1.304,319,0.672,326,1.231,333,0.957,335,0.792,336,2.796,337,1.961,338,2.602,341,3.23,342,2.224,344,0.548,348,1.48,350,1.179,373,1.002,385,2.082,386,1.304,389,1.027,406,1.976,415,1.432,438,0.979,457,1.496,459,1.092,463,0.724,464,2.087,487,0.937,494,0.957,496,1.638,517,2.428,540,1.281,546,2.049,551,2.231,554,1.339,555,1.613,556,3.223,557,1.496,558,1.496,561,0.62,564,1.281,565,1.553,566,1.613,567,2.147,568,3.296,569,1.523,570,1.149,571,2.619,572,1.613,573,1.613,574,1.496,575,1.496,576,3.677,577,1.613,585,4.377,586,2.786,587,2.786,591,0.899,612,1.054,615,0.899,633,0.979,638,0.882,650,0.92,651,1.443,688,1.993,698,1.188,709,4.377,753,1.409,838,2.402,845,4.377,846,3.633,847,5.407,848,2.786,862,1.773,945,0.779,964,1.231,1092,1.114,1152,1.002,1233,1.002,1248,1.409,1376,1.409,1474,1.054,1476,2.21,1502,1.281,1533,1.496,1551,1.281,1560,1.496,1601,1.409,1603,1.496,1606,1.496,1863,2.212,1999,1.79,2000,1.79,2001,1.79,2002,1.79,2003,1.79,2004,3.092,2005,3.092]],["sidebarParentCategories/712",[459,0.893]],["title/713",[95,2.467,560,2.217,561,1.735]],["content/713",[17,2.199,20,3.593,32,3.401,103,2.536,117,2.845,123,3.764,146,2.01,224,3.593,238,4.26,267,1.826,305,1.986,350,1.764,356,3.006,389,3.502,418,3.799,453,3.502,517,2.702,556,4.05,560,4.131,561,3.233,609,3.128,631,4.804,632,4.804,633,3.338,775,3.692,826,3.593,898,3.692,1388,5.5,1476,2.46,1491,4.566,1493,4.804,1548,4.05,1609,5.102]],["sidebarParentCategories/713",[459,0.893]],["title/714",[31,0.542,1802,4.176]],["content/714",[2,1.39,31,0.811,43,2.098,55,1.474,70,2.235,71,2.55,163,2.605,302,1.636,310,2.521,329,2.153,335,3.14,336,1.892,344,2.894,347,2.182,348,1.915,349,1.875,350,1.173,406,1.337,407,1.463,496,2.136,552,2.605,562,2.455,568,2.08,612,2.389,641,3.25,650,0.835,651,1.28,665,3.346,849,4.606,851,4.733,1476,1.636]],["sidebarParentCategories/714",[459,0.893]],["title/715",[323,1.829,650,0.534,727,2.567]],["content/715",[2,1.244,31,0.737,43,1.112,55,1.46,70,1.969,71,2.317,137,2.103,146,1.044,150,1.057,179,1.695,180,1.337,249,3.083,260,1.818,263,1.561,268,1.818,310,2.089,323,2.226,329,1.142,335,2.193,336,1.477,338,1.504,344,2.698,347,1.809,348,1.861,349,1.554,350,0.916,359,2.123,371,1.658,396,2.157,407,1.142,496,1.664,568,1.624,591,1.592,612,1.865,615,1.592,641,2.863,650,0.651,651,1.058,665,2.773,727,3.832,816,3.286,839,4.741,849,4.057,851,4.169,904,1.818,927,3.286,929,3.179,933,4.561,934,3.212,944,2.034,1005,2.371,1060,2.268,1061,2.572,1476,1.277,1560,2.649,1808,4.561,2006,2.371,2007,4.955,2008,2.856,2009,3.17,2010,3.17,2011,3.898,2012,3.898,2013,3.898]],["sidebarParentCategories/715",[459,0.893]],["title/716",[172,1.875,561,2.022]],["content/716",[17,1.996,25,1.758,43,2.611,58,0.775,68,2.05,84,2.728,117,2.581,120,3.1,140,2.999,146,1.824,148,2.782,172,1.78,210,1.996,240,4.143,348,1.495,371,2.898,407,1.996,410,4.143,561,1.919,591,2.782,612,3.26,646,2.493,650,0.591,651,0.85,698,3.675,800,4.991,820,7.373,849,4.379,938,3.26,989,4.143,1026,4.359,1061,4.227,1303,4.991,1441,7.022,1662,4.629,1835,4.629,1991,4.991,2006,4.143,2014,5.54,2015,4.991]],["sidebarParentCategories/716",[459,0.893]],["title/717",[222,3.191,815,3.872]],["content/717",[2,1.243,8,1.061,17,1.032,31,0.769,34,0.837,43,1.006,55,1.424,58,0.594,68,1.061,70,1.306,71,1.905,77,1.687,113,2.987,132,1.971,136,2.582,150,0.956,222,4.664,232,1.839,239,1.567,252,0.968,254,1.644,263,1.411,284,0.888,302,1.155,310,1.93,317,1.172,323,1.67,329,2.981,333,3.052,335,2.025,336,1.335,344,2.44,347,1.67,348,2.151,349,1.435,350,1.321,409,1.9,438,1.567,493,1.839,494,1.532,496,1.249,517,1.268,552,1.839,556,1.901,562,1.733,568,2.344,591,1.439,612,1.687,615,1.439,627,1.971,628,3.273,641,2.707,650,0.488,651,0.876,665,2.56,727,3.34,804,4.085,815,5.49,849,3.836,880,1.644,934,1.335,945,3.306,1026,2.255,1036,3.6,1049,2.395,1061,1.209,1304,2.05,1476,1.844,1551,3.273,1802,2.05,2008,2.582,2016,2.866,2017,2.866,2018,4.575,2019,2.395,2020,4.575,2021,2.866,2022,2.866,2023,4.575,2024,2.866,2025,2.866,2026,2.866,2027,2.866,2028,2.866,2029,2.866,2030,2.395]],["sidebarParentCategories/717",[459,0.893]],["title/718",[612,2.948,1297,3.941,2031,4.513]],["content/718",[2,1.001,5,1.274,8,0.711,17,1.835,30,0.568,31,0.765,34,0.561,42,1.05,43,1.152,50,1.53,51,2.584,53,0.763,55,1.396,58,0.732,59,0.946,70,1.454,71,1.823,75,1.605,84,1.617,88,1.436,89,0.928,93,1.649,103,1.364,113,2.251,117,0.895,123,1.558,130,1.233,140,1.734,146,0.632,148,0.964,149,0.752,150,0.64,160,1.511,172,1.636,182,0.879,202,1.838,209,1.161,218,1.274,222,1.796,240,2.456,267,0.982,310,1.385,317,2.341,323,1.199,329,2.401,333,1.027,335,1.454,336,0.895,344,2.758,347,1.199,348,1.683,349,1.03,350,1.243,353,1.407,354,1.274,359,0.823,371,1.005,389,1.102,396,1.43,406,1.082,407,1.183,409,1.787,418,2.044,427,1.161,431,1.884,433,1.195,438,1.05,448,1.233,464,0.731,465,1.005,484,0.928,494,1.027,495,1.683,496,0.896,500,1.511,517,1.905,546,0.964,561,0.665,565,0.731,568,0.984,612,1.13,615,2.161,628,1.374,641,2.115,649,1.005,650,0.783,651,0.66,652,1.511,653,1.374,658,3.132,665,1.838,679,1.321,682,1.05,688,0.595,690,1.436,727,3.196,749,2.108,764,1.13,769,1.73,804,2.35,805,2.456,815,1.274,816,1.274,826,1.13,839,2.259,849,2.532,851,2.602,874,1.436,875,1.436,895,1.933,903,1.274,914,1.374,915,1.374,927,1.274,929,2.108,934,0.895,935,1.195,939,3.386,1002,1.436,1036,2.584,1040,2.108,1061,3.208,1092,1.195,1102,1.605,1297,4.503,1376,1.511,1441,3.596,1443,3.877,1453,1.73,1476,0.774,1563,1.73,1626,1.233,1754,1.73,1802,1.374,2006,1.436,2011,1.511,2012,1.511,2013,1.511,2019,2.745,2030,4.256,2031,5.62,2032,1.921,2033,1.921,2034,2.959,2035,1.921,2036,1.73,2037,1.73,2038,1.921,2039,1.73,2040,1.921]],["sidebarParentCategories/718",[459,0.893]],["title/719",[114,1.567,146,0.965,152,1.199,343,1.944,613,1.641,1036,2.306,1037,2.192,2041,2.932]],["content/719",[2,1.238,31,0.766,55,1.386,58,0.814,68,1.292,70,1.524,71,2.12,111,1.366,114,1.866,145,3.322,148,1.753,152,2.183,179,1.866,180,1.472,210,1.258,239,3.967,260,2.002,267,1.596,310,2.251,335,2.362,336,1.626,344,2.525,347,1.949,348,2.448,349,1.674,496,1.457,497,2.497,556,2.316,560,1.545,590,1.789,613,4.376,615,1.753,641,3.014,665,2.987,679,2.4,688,1.082,698,2.316,728,2.497,764,2.054,861,3.145,902,2.24,934,2.487,945,2.821,1034,5.415,1037,7.038,1038,3.145,1040,2.24,1041,3.145,1061,3.061,1210,2.917,1387,2.917,1442,2.917,1476,1.407,1551,2.497,1801,2.611,1811,3.145,2042,6.481,2043,3.491,2044,3.491,2045,3.491,2046,3.491,2047,3.491,2048,3.491,2049,3.491,2050,3.491]],["sidebarParentCategories/719",[459,0.893]],["title/720",[31,0.408,612,2.582,1061,1.85,2051,3.953]],["content/720",[31,0.571,43,2.157,58,0.83,73,3.617,104,4.597,120,4.461,121,4.078,149,2.406,163,5.115,190,4.836,387,5.538,406,2.913,456,4.819,615,3.087,638,3.027,646,2.767,649,3.216,935,4.96,1061,3.947,1823,7.391,1979,8.951,2051,5.538,2052,6.148,2053,6.148]],["sidebarParentCategories/720",[459,0.893]],["title/721",[150,1.463,459,0.61,1333,3.017,2054,3.953]],["content/721",[58,0.703,73,3.971,74,6.08,89,3.261,90,5.047,111,2.641,138,4.828,150,3.23,179,3.608,212,3.458,218,4.477,241,5.93,359,2.892,407,2.431,437,2.803,561,2.93,609,3.458,945,2.938,992,5.31,1061,2.846,1333,4.641,2054,6.08,2055,6.749,2056,6.749]],["sidebarParentCategories/721",[459,0.893]],["title/722",[348,0.949,350,1.55,565,1.337,615,1.765,658,1.765]],["content/722",[2,0.98,5,1.09,25,0.521,29,0.825,30,1.818,31,0.636,34,0.838,35,2.34,42,0.898,50,0.765,55,1.429,58,0.477,62,1.062,68,1.414,70,1.308,71,1.67,73,0.967,84,0.809,95,0.809,96,1.587,103,1.192,112,0.825,113,2.72,117,0.765,118,2.448,138,1.175,145,0.752,149,0.643,180,1.611,209,2.31,211,1.09,216,1.501,222,2.504,225,2.299,249,1.786,252,0.555,267,0.858,268,0.942,284,0.509,305,0.933,310,1.21,317,1.873,319,0.616,323,1.048,328,0.919,329,2.35,335,1.27,336,0.765,344,2.535,347,2.086,348,1.76,349,0.9,350,2.392,353,2.448,354,1.903,359,1.229,371,1.501,385,0.704,396,1.249,406,0.945,407,0.592,410,1.228,415,0.576,422,1.749,433,1.022,448,2.452,464,0.625,484,2.761,494,0.878,496,0.783,526,0.859,552,1.054,556,1.09,565,3.29,568,0.842,570,1.054,591,0.825,610,1.175,613,0.919,615,1.441,641,1.902,647,1.022,650,0.408,651,0.586,658,2.299,665,1.606,671,1.09,682,2.089,687,1.228,688,0.509,699,1.09,720,2.534,727,2.346,728,1.175,749,1.054,804,2.053,805,1.228,815,1.09,816,1.903,827,1.689,839,3.149,849,2.695,851,2.31,908,2.563,927,1.903,928,1.022,929,1.841,934,1.337,942,1.292,945,1.249,964,1.13,1040,1.054,1042,1.292,1061,0.693,1098,1.292,1233,0.919,1258,1.09,1297,1.292,1304,1.175,1338,1.292,1349,1.13,1367,1.48,1455,3.826,1456,1.48,1457,1.48,1458,1.48,1459,1.373,1460,1.48,1462,1.48,1466,1.48,1467,1.48,1468,2.398,1469,2.258,1470,1.175,1471,1.48,1474,2.695,1476,0.662,1515,1.292,1613,1.48,1806,2.585,1808,1.228,2011,2.258,2012,2.258,2013,2.258,2019,2.398,2030,3.192,2036,1.48,2037,1.48,2039,2.585,2057,1.643,2058,1.643,2059,1.643,2060,1.643,2061,1.643,2062,1.643,2063,1.643,2064,3.826,2065,1.643,2066,1.643,2067,1.643,2068,1.643,2069,1.643,2070,1.643,2071,1.643,2072,1.643]],["sidebarParentCategories/722",[459,0.893]],["title/723",[30,1.297,225,2.203,350,1.267,561,1.52]],["content/723",[2,0.627,3,1.445,17,1.503,20,2.456,30,2.344,37,2.986,58,0.751,62,1.544,81,2.87,84,2.055,89,2.947,93,2.096,102,0.861,103,1.733,119,2.393,145,1.911,146,2.009,149,1.633,189,2.456,212,2.138,225,4.237,237,2.456,254,2.393,317,3.244,323,1.524,329,1.503,344,1.278,349,1.309,350,2.291,366,3.76,370,3.76,371,3.191,396,1.817,407,1.503,443,3.76,491,1.788,552,2.678,557,3.487,560,1.847,561,2.747,565,1.588,612,4.667,615,2.096,633,2.282,638,3.004,646,1.878,650,0.651,671,2.768,678,2.986,682,2.282,687,5.392,689,3.121,690,3.121,728,2.986,898,3.688,908,3.414,1050,3.487,1051,2.456,1489,5.158,1495,3.121,1612,3.796,1615,3.487,1617,3.487,1632,3.487,2015,5.496,2073,4.174,2074,4.174,2075,4.174,2076,4.174,2077,6.101,2078,4.174,2079,4.174,2080,4.174,2081,4.174,2082,4.174,2083,4.174,2084,4.174]],["sidebarParentCategories/723",[459,0.893]],["title/724",[30,1.154,225,1.96,561,1.352,565,1.485,1612,2.429]],["content/724",[2,1.256,30,2.083,31,0.655,35,2.109,43,0.757,55,1.454,62,0.798,68,2.453,70,1.568,71,1.937,89,1.042,145,1.659,180,0.909,204,2.255,209,1.304,216,1.895,222,1.179,225,3.329,227,1.304,237,2.132,239,1.981,242,1.543,252,0.728,267,0.645,302,1.888,305,0.701,310,1.528,329,2.205,335,1.603,336,1.688,344,2.561,347,2.005,348,2.382,349,1.136,350,1.586,359,1.552,371,1.128,407,0.777,491,2.352,496,0.989,556,1.43,565,2.927,568,1.105,570,3.007,591,1.083,613,3.073,641,2.28,646,0.97,650,0.707,651,0.719,653,1.543,658,1.083,665,2.028,720,2.403,727,1.105,816,2.403,827,2.132,839,3.776,849,2.132,851,2.833,862,1.237,904,1.237,927,2.403,929,2.325,934,1.688,942,1.697,945,1.577,1292,2.403,1308,3.264,1309,1.943,1310,3.264,1311,1.697,1312,4.221,1313,1.943,1476,1.46,1497,1.697,1612,2.916,1655,1.943,1808,1.613,1879,1.802,2006,1.613,2011,2.851,2012,2.851,2013,2.851,2064,3.027,2085,2.156,2086,2.156,2087,2.156,2088,4.686,2089,2.156,2090,2.156,2091,4.686,2092,4.686,2093,3.623,2094,3.623,2095,4.686,2096,4.686,2097,2.156,2098,2.156,2099,2.156]],["sidebarParentCategories/724",[459,0.893]],["title/725",[172,1.129,328,1.967,565,1.337,612,2.068,978,2.331,1565,2.937]],["content/725",[2,1.134,30,0.837,31,0.658,34,2.068,35,2.038,43,1.589,50,1.318,55,1.433,58,0.471,59,1.393,62,1.047,70,1.617,71,1.891,84,1.393,89,1.367,140,1.825,172,1.819,200,1.077,216,1.48,284,0.877,310,1.194,317,1.157,328,1.584,335,1.252,344,2.522,347,2.067,348,1.91,349,0.887,350,1.308,353,2.773,359,2.773,385,1.212,406,1.864,407,1.631,431,2.597,437,1.175,453,1.623,496,0.772,546,1.421,551,1.547,565,2.462,567,1.108,568,1.45,570,2.906,600,2.535,609,2.901,627,1.946,641,1.881,643,2.906,650,0.604,651,0.993,665,1.584,688,2.005,692,2.901,720,3.004,761,4.867,835,2.116,849,2.665,851,3.423,875,3.387,934,1.318,935,1.761,945,1.232,974,3.784,978,5.009,1040,3.633,1048,2.549,1093,2.116,1474,1.665,1497,2.227,1528,2.549,1565,2.365,1567,5.101,1626,1.816,1802,2.025,2006,2.116,2064,3.784,2100,4.529,2101,2.83,2102,2.83,2103,4.529,2104,2.83,2105,2.83,2106,2.83,2107,5.662,2108,2.83,2109,2.83,2110,2.83,2111,2.83,2112,2.83]],["sidebarParentCategories/725",[459,0.893]],["title/726",[114,1.447,210,0.975,407,0.975,480,1.796,945,1.179,1031,2.262,1032,2.262,1033,2.262,1628,2.262]],["content/726",[2,1.355,17,1.463,31,0.878,46,2.904,55,1.437,58,0.423,70,1.707,71,2.287,77,2.389,114,3.196,204,2.526,210,1.463,237,4.175,239,2.22,293,3.658,310,2.521,323,2.59,335,2.646,336,1.892,344,2.672,347,2.182,348,1.613,349,1.875,438,2.22,480,2.693,496,1.632,561,2.071,590,2.08,641,3.25,665,3.346,917,3.658,945,3.632,1020,5.929,1027,3.658,1028,5.386,1029,3.658,1030,3.658,1031,3.392,1032,3.392,1033,3.392,1061,1.712,1419,3.658,1476,1.636,1487,3.194,1544,3.392,1551,4.277,1556,3.194,1628,3.392,2113,4.06,2114,4.06,2115,3.658]],["sidebarParentCategories/726",[459,0.893]],["title/727",[84,2.16,650,0.468,1061,1.85,2116,3.953]],["content/727",[2,0.497,17,1.193,30,2.386,42,1.81,53,1.314,55,1.449,58,0.345,62,2.32,68,1.225,84,3.087,140,1.334,200,1.259,202,1.853,212,1.696,221,5.049,239,1.81,302,1.334,336,2.387,344,1.014,359,3.908,385,1.418,389,1.899,406,1.09,407,1.846,459,0.713,484,2.476,517,1.465,565,3.071,570,2.124,590,1.696,615,1.662,650,0.814,658,1.662,688,1.026,692,1.696,732,2.276,938,5.118,1005,2.476,1061,2.161,1327,4.282,1337,3.832,1346,2.766,1349,2.276,1470,3.666,1476,2.065,1484,2.766,1489,3.666,1739,2.982,1740,2.982,1747,6.877,2116,6.358,2117,3.311,2118,3.311,2119,3.311,2120,3.311,2121,7.058,2122,5.124,2123,3.311,2124,7.058,2125,5.124,2126,3.311,2127,5.124,2128,5.124,2129,5.124,2130,5.124,2131,5.124,2132,3.311,2133,3.311,2134,3.311,2135,3.311]],["sidebarParentCategories/727",[459,0.893]],["title/728",[146,1.649,910,3.323,2136,4.513]],["content/728",[2,0.594,17,2.111,25,1.86,26,5.28,28,3.303,31,0.367,35,3.477,53,2.774,58,0.931,68,2.585,111,1.547,125,4.383,130,2.536,172,1.883,191,2.161,200,2.23,202,2.212,232,2.536,239,2.161,298,2.828,311,2.828,371,4.042,406,1.93,407,1.424,422,2.683,427,2.39,459,0.55,495,3.579,515,2.39,517,2.594,546,1.985,551,2.161,561,2.03,567,1.547,609,2.025,623,5.555,628,2.828,650,0.422,651,0.606,671,3.888,679,5.313,699,2.622,753,3.11,872,3.303,885,2.718,898,2.39,910,5.473,1006,4.897,1061,1.667,1300,5.224,1490,4.897,1530,3.561,1637,3.561,2034,3.561,2115,3.561,2136,6.96,2137,3.953,2138,3.953,2139,3.953,2140,3.953,2141,5.861,2142,7.727,2143,6.986,2144,3.953,2145,3.953,2146,3.953,2147,3.953,2148,3.953]],["sidebarParentCategories/728",[459,0.893]],["title/729",[200,1.906,560,2.217,561,1.735]],["content/729",[32,2.263,41,4.808,43,2.712,47,4.387,58,0.611,96,2.436,117,2.733,140,3.115,200,2.941,243,4.034,323,2.142,336,2.733,344,1.796,409,2.436,437,2.436,459,1.279,464,2.231,526,3.069,556,3.891,560,3.421,561,3.183,682,3.207,688,2.395,862,3.364,902,3.764,952,3.764,968,4.387,1051,3.452,1152,3.283,1191,5.285,1345,4.034,1476,2.364,1612,3.65,1736,4.901,1737,4.901,1863,4.196]],["sidebarParentCategories/729",[459,0.893]]],"invertedIndex":[["",{"_index":55,"title":{"477":{},"478":{},"479":{},"492":{},"493":{},"494":{},"495":{},"505":{},"506":{},"525":{},"526":{},"530":{},"531":{},"547":{},"548":{},"549":{},"550":{},"551":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"649":{},"650":{},"651":{},"652":{},"653":{}},"content":{"425":{},"455":{},"476":{},"491":{},"494":{},"497":{},"498":{},"500":{},"502":{},"504":{},"508":{},"514":{},"517":{},"519":{},"522":{},"523":{},"524":{},"527":{},"528":{},"529":{},"535":{},"536":{},"538":{},"539":{},"543":{},"546":{},"551":{},"552":{},"561":{},"566":{},"576":{},"577":{},"578":{},"581":{},"586":{},"587":{},"588":{},"597":{},"598":{},"599":{},"602":{},"603":{},"604":{},"608":{},"614":{},"615":{},"622":{},"623":{},"632":{},"633":{},"634":{},"635":{},"638":{},"639":{},"640":{},"644":{},"645":{},"648":{},"660":{},"661":{},"662":{},"663":{},"668":{},"669":{},"670":{},"672":{},"674":{},"675":{},"676":{},"677":{},"678":{},"679":{},"681":{},"682":{},"683":{},"696":{},"697":{},"698":{},"700":{},"702":{},"703":{},"705":{},"706":{},"707":{},"709":{},"711":{},"712":{},"714":{},"715":{},"717":{},"718":{},"719":{},"722":{},"724":{},"725":{},"726":{},"727":{}},"sidebarParentCategories":{}}],["0.0.1",{"_index":1480,"title":{},"content":{"654":{}},"sidebarParentCategories":{}}],["0.1",{"_index":1523,"title":{},"content":{"669":{},"670":{}},"sidebarParentCategories":{}}],["0.1.0",{"_index":1475,"title":{"651":{},"672":{}},"content":{"648":{},"651":{},"654":{},"658":{},"672":{},"673":{},"674":{},"675":{},"676":{},"677":{},"678":{},"679":{},"681":{},"682":{},"683":{}},"sidebarParentCategories":{}}],["0.2",{"_index":1535,"title":{},"content":{"670":{},"680":{}},"sidebarParentCategories":{}}],["0.2.0",{"_index":1608,"title":{},"content":{"673":{},"674":{},"675":{},"676":{},"677":{},"679":{},"681":{},"683":{},"705":{}},"sidebarParentCategories":{}}],["0.2.5",{"_index":1809,"title":{},"content":{"701":{}},"sidebarParentCategories":{}}],["0.2.x",{"_index":461,"title":{"651":{},"652":{},"672":{},"698":{}},"content":{"500":{},"648":{},"651":{},"652":{},"658":{},"672":{},"674":{},"675":{},"676":{},"678":{},"679":{},"681":{},"682":{},"698":{},"699":{},"700":{},"702":{},"703":{},"705":{},"706":{},"707":{},"708":{},"709":{},"711":{}},"sidebarParentCategories":{}}],["0.3.0",{"_index":1801,"title":{},"content":{"699":{},"707":{},"708":{},"709":{},"719":{}},"sidebarParentCategories":{}}],["0.3.x",{"_index":1476,"title":{"652":{},"653":{},"698":{},"712":{}},"content":{"648":{},"652":{},"653":{},"658":{},"684":{},"690":{},"698":{},"700":{},"702":{},"703":{},"705":{},"706":{},"707":{},"708":{},"709":{},"711":{},"712":{},"713":{},"714":{},"715":{},"717":{},"718":{},"719":{},"722":{},"724":{},"726":{},"727":{},"729":{}},"sidebarParentCategories":{}}],["0.4.0",{"_index":556,"title":{},"content":{"520":{},"712":{},"713":{},"717":{},"719":{},"722":{},"724":{},"729":{}},"sidebarParentCategories":{}}],["0.4.x",{"_index":336,"title":{"653":{},"712":{}},"content":{"496":{},"498":{},"500":{},"512":{},"520":{},"648":{},"653":{},"658":{},"684":{},"690":{},"712":{},"714":{},"715":{},"717":{},"718":{},"719":{},"722":{},"724":{},"726":{},"727":{},"729":{}},"sidebarParentCategories":{}}],["0.5.x",{"_index":334,"title":{},"content":{"496":{},"512":{}},"sidebarParentCategories":{}}],["0.9.x",{"_index":460,"title":{},"content":{"500":{}},"sidebarParentCategories":{}}],["0023",{"_index":1705,"title":{},"content":{"675":{}},"sidebarParentCategories":{}}],["004",{"_index":205,"title":{},"content":{"456":{},"532":{}},"sidebarParentCategories":{}}],["0044",{"_index":2113,"title":{},"content":{"726":{}},"sidebarParentCategories":{}}],["0046",{"_index":1373,"title":{},"content":{"643":{},"647":{}},"sidebarParentCategories":{}}],["0160",{"_index":1175,"title":{},"content":{"632":{},"636":{},"675":{}},"sidebarParentCategories":{}}],["01eafa4de4e22ed4fc2ee522b6ce2731",{"_index":2036,"title":{},"content":{"718":{},"722":{}},"sidebarParentCategories":{}}],["0360",{"_index":1045,"title":{},"content":{"590":{},"701":{}},"sidebarParentCategories":{}}],["040e96c3c539",{"_index":1752,"title":{},"content":{"679":{}},"sidebarParentCategories":{}}],["0434",{"_index":1165,"title":{},"content":{"632":{},"636":{}},"sidebarParentCategories":{}}],["04a2c382",{"_index":1785,"title":{},"content":{"682":{}},"sidebarParentCategories":{}}],["0592",{"_index":1655,"title":{},"content":{"674":{},"724":{}},"sidebarParentCategories":{}}],["0771",{"_index":2090,"title":{},"content":{"724":{}},"sidebarParentCategories":{}}],["09e46da9",{"_index":1748,"title":{},"content":{"679":{}},"sidebarParentCategories":{}}],["1",{"_index":956,"title":{"611":{},"618":{},"626":{},"632":{},"638":{},"644":{},"660":{}},"content":{"566":{},"567":{},"577":{},"602":{},"603":{},"614":{},"622":{},"629":{},"646":{},"661":{},"669":{},"703":{}},"sidebarParentCategories":{}}],["1.0",{"_index":1716,"title":{},"content":{"676":{}},"sidebarParentCategories":{}}],["1.0.0",{"_index":1459,"title":{},"content":{"654":{},"662":{},"722":{}},"sidebarParentCategories":{}}],["1.0.1",{"_index":2067,"title":{},"content":{"722":{}},"sidebarParentCategories":{}}],["1.1",{"_index":1167,"title":{},"content":{"632":{},"636":{},"676":{}},"sidebarParentCategories":{}}],["1.4",{"_index":957,"title":{},"content":{"577":{}},"sidebarParentCategories":{}}],["123",{"_index":361,"title":{},"content":{"497":{}},"sidebarParentCategories":{}}],["18",{"_index":691,"title":{},"content":{"515":{},"519":{},"533":{},"536":{},"574":{},"578":{}},"sidebarParentCategories":{}}],["2",{"_index":1117,"title":{"612":{},"620":{},"627":{},"645":{},"661":{}},"content":{"602":{},"603":{},"632":{},"646":{},"669":{}},"sidebarParentCategories":{}}],["2.1",{"_index":1254,"title":{"613":{},"621":{},"628":{}},"content":{},"sidebarParentCategories":{}}],["2.2",{"_index":1257,"title":{"614":{},"622":{},"629":{}},"content":{},"sidebarParentCategories":{}}],["2.3",{"_index":1262,"title":{"615":{},"623":{},"630":{}},"content":{},"sidebarParentCategories":{}}],["2022",{"_index":1269,"title":{},"content":{"625":{}},"sidebarParentCategories":{}}],["2060.io/ref",{"_index":737,"title":{},"content":{"519":{},"536":{},"578":{}},"sidebarParentCategories":{}}],["23",{"_index":1342,"title":{},"content":{"640":{}},"sidebarParentCategories":{}}],["3",{"_index":963,"title":{"633":{},"639":{},"646":{},"662":{},"663":{}},"content":{"566":{},"573":{},"646":{}},"sidebarParentCategories":{}}],["3.0",{"_index":1142,"title":{},"content":{"604":{}},"sidebarParentCategories":{}}],["3000",{"_index":479,"title":{},"content":{"502":{},"527":{}},"sidebarParentCategories":{}}],["3001",{"_index":1164,"title":{},"content":{"632":{},"635":{},"644":{}},"sidebarParentCategories":{}}],["3001const",{"_index":1400,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["3002",{"_index":1299,"title":{},"content":{"638":{}},"sidebarParentCategories":{}}],["32",{"_index":822,"title":{},"content":{"539":{}},"sidebarParentCategories":{}}],["364a1ec9237d",{"_index":1112,"title":{},"content":{"602":{}},"sidebarParentCategories":{}}],["364a1ec9237d#key",{"_index":1114,"title":{},"content":{"602":{}},"sidebarParentCategories":{}}],["4",{"_index":1185,"title":{"634":{},"640":{}},"content":{},"sidebarParentCategories":{}}],["40ea",{"_index":1110,"title":{},"content":{"602":{}},"sidebarParentCategories":{}}],["43ee",{"_index":1125,"title":{},"content":{"603":{},"604":{}},"sidebarParentCategories":{}}],["4483",{"_index":1126,"title":{},"content":{"603":{},"604":{}},"sidebarParentCategories":{}}],["4909",{"_index":1750,"title":{},"content":{"679":{}},"sidebarParentCategories":{}}],["4de9",{"_index":1787,"title":{},"content":{"682":{}},"sidebarParentCategories":{}}],["5",{"_index":503,"title":{"635":{}},"content":{"504":{},"506":{},"697":{}},"sidebarParentCategories":{}}],["50",{"_index":1877,"title":{},"content":{"705":{}},"sidebarParentCategories":{}}],["5000",{"_index":482,"title":{},"content":{"502":{}},"sidebarParentCategories":{}}],["6",{"_index":1432,"title":{},"content":{"646":{}},"sidebarParentCategories":{}}],["7",{"_index":1434,"title":{},"content":{"646":{}},"sidebarParentCategories":{}}],["7000",{"_index":1852,"title":{},"content":{"703":{}},"sidebarParentCategories":{}}],["8",{"_index":1435,"title":{},"content":{"646":{}},"sidebarParentCategories":{}}],["8ae5",{"_index":1111,"title":{},"content":{"602":{}},"sidebarParentCategories":{}}],["9",{"_index":1436,"title":{},"content":{"646":{}},"sidebarParentCategories":{}}],["98c5",{"_index":1127,"title":{},"content":{"603":{},"604":{}},"sidebarParentCategories":{}}],["999e",{"_index":1786,"title":{},"content":{"682":{}},"sidebarParentCategories":{}}],["9dec0b2fa5e4",{"_index":1789,"title":{},"content":{"682":{}},"sidebarParentCategories":{}}],["_anoncreds/credenti",{"_index":2132,"title":{},"content":{"727":{}},"sidebarParentCategories":{}}],["_anoncreds/credentialrequest",{"_index":2135,"title":{},"content":{"727":{}},"sidebarParentCategories":{}}],["_before_",{"_index":1510,"title":{},"content":{"668":{}},"sidebarParentCategories":{}}],["_internal/indycredenti",{"_index":1740,"title":{},"content":{"678":{},"727":{}},"sidebarParentCategories":{}}],["_internal/indyrequest",{"_index":1739,"title":{},"content":{"678":{},"727":{}},"sidebarParentCategories":{}}],["a1d2",{"_index":1788,"title":{},"content":{"682":{}},"sidebarParentCategories":{}}],["a575",{"_index":1749,"title":{},"content":{"679":{}},"sidebarParentCategories":{}}],["abov",{"_index":430,"title":{},"content":{"509":{},"514":{}},"sidebarParentCategories":{}}],["abstract",{"_index":1359,"title":{},"content":{"643":{}},"sidebarParentCategories":{}}],["accept",{"_index":949,"title":{},"content":{"566":{},"571":{},"577":{},"586":{},"631":{},"637":{},"638":{},"639":{},"644":{},"645":{},"674":{},"703":{}},"sidebarParentCategories":{}}],["acceptpresent",{"_index":1867,"title":{},"content":{"705":{}},"sidebarParentCategories":{}}],["acceptpropos",{"_index":1865,"title":{},"content":{"705":{}},"sidebarParentCategories":{}}],["acceptxxx",{"_index":1634,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["acces",{"_index":1931,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["access",{"_index":73,"title":{},"content":{"425":{},"514":{},"660":{},"674":{},"675":{},"678":{},"702":{},"705":{},"707":{},"720":{},"721":{},"722":{}},"sidebarParentCategories":{}}],["accident",{"_index":559,"title":{},"content":{"520":{}},"sidebarParentCategories":{}}],["accord",{"_index":1098,"title":{},"content":{"602":{},"632":{},"701":{},"722":{}},"sidebarParentCategories":{}}],["accordingli",{"_index":1319,"title":{},"content":{"639":{},"707":{}},"sidebarParentCategories":{}}],["account",{"_index":826,"title":{},"content":{"539":{},"608":{},"673":{},"674":{},"676":{},"679":{},"681":{},"699":{},"705":{},"707":{},"713":{},"718":{}},"sidebarParentCategories":{}}],["acm",{"_index":683,"title":{},"content":{"529":{},"531":{},"566":{},"568":{},"631":{},"632":{},"634":{},"635":{}},"sidebarParentCategories":{}}],["acmeag",{"_index":1219,"title":{},"content":{"635":{}},"sidebarParentCategories":{}}],["acquir",{"_index":357,"title":{},"content":{"497":{}},"sidebarParentCategories":{}}],["act",{"_index":127,"title":{},"content":{"453":{},"680":{}},"sidebarParentCategories":{}}],["action",{"_index":288,"title":{},"content":{"490":{},"680":{},"707":{}},"sidebarParentCategories":{}}],["actionmenu",{"_index":1817,"title":{},"content":{"702":{}},"sidebarParentCategories":{}}],["actionmenumodul",{"_index":1824,"title":{},"content":{"702":{}},"sidebarParentCategories":{}}],["activ",{"_index":553,"title":{},"content":{"520":{},"635":{}},"sidebarParentCategories":{}}],["actual",{"_index":410,"title":{},"content":{"514":{},"676":{},"680":{},"716":{},"722":{}},"sidebarParentCategories":{}}],["ad",{"_index":646,"title":{"517":{},"524":{},"535":{},"539":{},"552":{},"576":{}},"content":{"539":{},"608":{},"654":{},"661":{},"674":{},"675":{},"676":{},"678":{},"680":{},"681":{},"682":{},"683":{},"692":{},"705":{},"711":{},"716":{},"720":{},"723":{},"724":{}},"sidebarParentCategories":{}}],["adapt",{"_index":617,"title":{},"content":{"522":{},"655":{}},"sidebarParentCategories":{}}],["add",{"_index":338,"title":{"696":{}},"content":{"497":{},"499":{},"513":{},"516":{},"517":{},"521":{},"522":{},"534":{},"538":{},"539":{},"546":{},"575":{},"638":{},"672":{},"696":{},"698":{},"702":{},"707":{},"710":{},"712":{},"715":{}},"sidebarParentCategories":{}}],["addit",{"_index":591,"title":{"522":{},"634":{}},"content":{"522":{},"543":{},"603":{},"674":{},"679":{},"682":{},"683":{},"692":{},"705":{},"706":{},"709":{},"712":{},"715":{},"716":{},"717":{},"722":{},"724":{}},"sidebarParentCategories":{}}],["admin",{"_index":477,"title":{},"content":{"502":{}},"sidebarParentCategories":{}}],["admin_account",{"_index":1242,"title":{},"content":{"608":{}},"sidebarParentCategories":{}}],["admin_password",{"_index":1243,"title":{},"content":{"608":{}},"sidebarParentCategories":{}}],["adopt",{"_index":1046,"title":{},"content":{"590":{},"643":{}},"sidebarParentCategories":{}}],["advanc",{"_index":992,"title":{},"content":{"584":{},"598":{},"643":{},"721":{}},"sidebarParentCategories":{}}],["advantag",{"_index":1503,"title":{},"content":{"668":{},"669":{},"674":{},"707":{}},"sidebarParentCategories":{}}],["advis",{"_index":1544,"title":{},"content":{"684":{},"691":{},"726":{}},"sidebarParentCategories":{}}],["affect",{"_index":2056,"title":{},"content":{"721":{}},"sidebarParentCategories":{}}],["afj",{"_index":267,"title":{"608":{},"648":{},"651":{},"652":{},"653":{},"672":{},"698":{},"712":{}},"content":{"488":{},"490":{},"491":{},"492":{},"493":{},"494":{},"495":{},"496":{},"498":{},"500":{},"502":{},"503":{},"512":{},"514":{},"520":{},"521":{},"524":{},"599":{},"606":{},"648":{},"649":{},"651":{},"652":{},"653":{},"654":{},"655":{},"656":{},"658":{},"666":{},"672":{},"673":{},"674":{},"675":{},"676":{},"684":{},"690":{},"698":{},"699":{},"701":{},"705":{},"707":{},"712":{},"713":{},"718":{},"719":{},"722":{},"724":{}},"sidebarParentCategories":{}}],["afj'",{"_index":599,"title":{},"content":{"522":{}},"sidebarParentCategories":{}}],["aforement",{"_index":1860,"title":{},"content":{"704":{}},"sidebarParentCategories":{}}],["afterward",{"_index":1517,"title":{},"content":{"669":{},"684":{}},"sidebarParentCategories":{}}],["ag",{"_index":1341,"title":{},"content":{"640":{},"705":{}},"sidebarParentCategories":{}}],["again",{"_index":1530,"title":{},"content":{"669":{},"728":{}},"sidebarParentCategories":{}}],["agent",{"_index":31,"title":{"452":{},"477":{},"506":{},"517":{},"520":{},"523":{},"528":{},"535":{},"539":{},"552":{},"567":{},"576":{},"579":{},"632":{},"638":{},"660":{},"668":{},"669":{},"670":{},"700":{},"714":{},"720":{}},"content":{"425":{},"452":{},"453":{},"454":{},"455":{},"456":{},"476":{},"486":{},"487":{},"491":{},"492":{},"495":{},"496":{},"497":{},"498":{},"500":{},"504":{},"512":{},"514":{},"517":{},"521":{},"523":{},"524":{},"525":{},"526":{},"527":{},"528":{},"529":{},"532":{},"533":{},"534":{},"535":{},"538":{},"539":{},"545":{},"546":{},"552":{},"566":{},"571":{},"576":{},"579":{},"580":{},"581":{},"586":{},"588":{},"589":{},"590":{},"591":{},"597":{},"608":{},"631":{},"632":{},"633":{},"634":{},"635":{},"637":{},"638":{},"642":{},"643":{},"644":{},"645":{},"646":{},"647":{},"657":{},"659":{},"660":{},"661":{},"666":{},"667":{},"668":{},"669":{},"670":{},"680":{},"696":{},"700":{},"701":{},"702":{},"703":{},"707":{},"712":{},"714":{},"715":{},"717":{},"718":{},"719":{},"720":{},"722":{},"724":{},"725":{},"726":{},"728":{}},"sidebarParentCategories":{"515":{},"516":{},"517":{},"518":{},"519":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"539":{},"540":{},"541":{},"542":{},"543":{},"544":{},"545":{},"546":{},"547":{},"548":{},"549":{},"550":{},"551":{},"552":{},"553":{},"554":{},"555":{},"556":{},"557":{},"558":{},"559":{},"560":{},"561":{},"562":{},"563":{},"564":{},"565":{},"574":{},"575":{},"576":{},"577":{},"578":{},"596":{},"597":{},"598":{},"599":{}}}],["agent'",{"_index":1805,"title":{},"content":{"700":{},"707":{}},"sidebarParentCategories":{}}],["agent(agentconfig",{"_index":1804,"title":{},"content":{"700":{}},"sidebarParentCategories":{}}],["agent.config.filesystem.basepath}/afj/migration/backup/${backupidentifi",{"_index":1541,"title":{},"content":{"671":{}},"sidebarParentCategories":{}}],["agent.config.walletconfig.id",{"_index":1592,"title":{},"content":{"697":{}},"sidebarParentCategories":{}}],["agent.connections.createinvit",{"_index":1683,"title":{},"content":{"675":{}},"sidebarParentCategories":{}}],["agent.connections.findallbyoutofbandid(id",{"_index":1193,"title":{},"content":{"634":{}},"sidebarParentCategories":{}}],["agent.connections.findallbyoutofbandid(outofbandrecord.id",{"_index":1690,"title":{},"content":{"675":{}},"sidebarParentCategories":{}}],["agent.connections.receiveinvitation(parsedinvit",{"_index":1698,"title":{},"content":{"675":{}},"sidebarParentCategories":{}}],["agent.connections.receiveinvitationfromurl(invitationurl",{"_index":1694,"title":{},"content":{"675":{}},"sidebarParentCategories":{}}],["agent.credentials.findcredentialmessage('credentialrecordid",{"_index":1672,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["agent.credentials.findoffermessage('credentialrecordid",{"_index":1670,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["agent.credentials.findproposalmessage('credentialrecordid",{"_index":1669,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["agent.credentials.findrequestmessage('credentialrecordid",{"_index":1671,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["agent.credentials.getbyid('credentialrecordid",{"_index":1664,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["agent.credentials.getformatdata(credentialrecord.id",{"_index":1647,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["agent.credentials.offercredenti",{"_index":1625,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["agent.credentials.offercredential('connectionid",{"_index":1618,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["agent.dependencymanager.resolve(anoncredslinksecretrepositori",{"_index":2106,"title":{},"content":{"725":{}},"sidebarParentCategories":{}}],["agent.dids.cr",{"_index":1118,"title":{},"content":{"602":{},"661":{}},"sidebarParentCategories":{}}],["agent.dids.create(connectioneventtypes.connectionstatechang",{"_index":1197,"title":{},"content":{"634":{},"635":{},"675":{}},"sidebarParentCategories":{}}],["agent.events.on(credentialeventtypes.credentialstatechang",{"_index":1321,"title":{},"content":{"639":{}},"sidebarParentCategories":{}}],["holderconfig",{"_index":1316,"title":{},"content":{"638":{}},"sidebarParentCategories":{}}],["home",{"_index":1597,"title":{},"content":{"697":{}},"sidebarParentCategories":{}}],["home/indy/docu",{"_index":1599,"title":{},"content":{"697":{}},"sidebarParentCategories":{}}],["homebrew",{"_index":518,"title":{},"content":{"508":{},"610":{}},"sidebarParentCategories":{}}],["hood",{"_index":1536,"title":{},"content":{"670":{}},"sidebarParentCategories":{}}],["hook",{"_index":303,"title":{"493":{},"512":{}},"content":{"491":{},"493":{},"512":{},"513":{},"514":{}},"sidebarParentCategories":{}}],["hooks@^0.5",{"_index":372,"title":{},"content":{"513":{}},"sidebarParentCategories":{}}],["hooray",{"_index":444,"title":{},"content":{"514":{}},"sidebarParentCategories":{}}],["hope",{"_index":2047,"title":{},"content":{"719":{}},"sidebarParentCategories":{}}],["host",{"_index":295,"title":{},"content":{"491":{},"546":{},"551":{},"561":{},"586":{}},"sidebarParentCategories":{}}],["http",{"_index":247,"title":{},"content":{"483":{},"491":{},"492":{},"500":{},"502":{},"527":{},"543":{},"632":{},"635":{},"638":{},"643":{}},"sidebarParentCategories":{}}],["http://localhost:${port}`,})console.log(mediatiorinvitationurl",{"_index":1410,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["http://localhost:${port}`],}const",{"_index":1401,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["http://localhost:3000/doc",{"_index":486,"title":{},"content":{"502":{}},"sidebarParentCategories":{}}],["http://localhost:3001",{"_index":1162,"title":{},"content":{"632":{},"635":{}},"sidebarParentCategories":{}}],["http://localhost:5000",{"_index":476,"title":{},"content":{"502":{}},"sidebarParentCategories":{}}],["httpinboundtransport",{"_index":664,"title":{},"content":{"527":{},"632":{},"635":{},"638":{},"644":{}},"sidebarParentCategories":{}}],["httpoutboundtransport",{"_index":662,"title":{},"content":{"527":{},"632":{},"635":{},"638":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())agent.registeroutboundtransport(new",{"_index":668,"title":{},"content":{"527":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())alice.registeroutboundtransport(new",{"_index":1425,"title":{},"content":{"645":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())mediator.registerinboundtransport(new",{"_index":1403,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["https://afj.com",{"_index":1907,"title":{},"content":{"706":{}},"sidebarParentCategories":{}}],["https://crates.io/crates/env_logg",{"_index":1089,"title":{},"content":{"599":{}},"sidebarParentCategories":{}}],["https://deb.nodesource.com/setup_18.x",{"_index":531,"title":{},"content":{"508":{}},"sidebarParentCategories":{}}],["https://didcomm.org",{"_index":1041,"title":{},"content":{"589":{},"719":{}},"sidebarParentCategories":{}}],["https://didcomm.org/connections/1.0/invit",{"_index":1784,"title":{},"content":{"682":{}},"sidebarParentCategories":{}}],["https://didcomm.org/messagepickup/2.0",{"_index":1841,"title":{},"content":{"703":{}},"sidebarParentCategories":{}}],["https://didcomm.org/mi",{"_index":1725,"title":{},"content":{"676":{},"707":{}},"sidebarParentCategories":{}}],["https://example.com",{"_index":1684,"title":{},"content":{"675":{},"682":{}},"sidebarParentCategories":{}}],["https://example.com?c_i=eyxxx",{"_index":1693,"title":{},"content":{"675":{}},"sidebarParentCategories":{}}],["https://example.org",{"_index":1174,"title":{},"content":{"632":{},"635":{}},"sidebarParentCategories":{}}],["https://example.org:3000",{"_index":1012,"title":{},"content":{"586":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/ari",{"_index":740,"title":{},"content":{"519":{},"536":{},"578":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/indi",{"_index":874,"title":{},"content":{"543":{},"613":{},"621":{},"628":{},"718":{}},"sidebarParentCategories":{}}],["https://github.com/nod",{"_index":742,"title":{},"content":{"519":{},"536":{},"578":{}},"sidebarParentCategories":{}}],["https://google.com",{"_index":1905,"title":{},"content":{"706":{}},"sidebarParentCategories":{}}],["https://mediator.dev.animo.id/invite?oob=eyjadhlwzsi6imh0dhbzoi8vzglky29tbs5vcmcvb3v0lw9mlwjhbmqvms4xl2ludml0yxrpb24ilcjaawqioiiymdc1mdm4ys05zgu3ltrioditywuxyi1jnzbmndg4mjyzytcilcjsywjlbci6ikfuaw1vie1lzglhdg9yiiwiywnjzxb0ijpbimrpzgnvbw0vywlwmsisimrpzgnvbw0vywlwmjtlbny9cmzjmtkixswiagfuzhnoywtlx3byb3rvy29scyi6wyjodhrwczovl2rpzgnvbw0ub3jnl2rpzgv4y2hhbmdllzeumcisimh0dhbzoi8vzglky29tbs5vcmcvy29ubmvjdglvbnmvms4wil0sinnlcnzpy2vzijpbeyjpzci6iinpbmxpbmutmcisinnlcnzpy2vfbmrwb2ludci6imh0dhbzoi8vbwvkawf0b3iuzgv2lmfuaw1vlmlkiiwidhlwzsi6imrpzc1jb21tdw5py2f0aw9uiiwicmvjaxbpzw50s2v5cyi6wyjkawq6a2v5ono2twtvsg9rtuphdu5vue5ov1pqcew3rgs1szntq0ndmlbpndjgy3fwr25iampmcsjdlcjyb3v0aw5ns2v5cyi6w119lhsiawqioiijaw5saw5llteilcjzzxj2awnlrw5kcg9pbnqioij3c3m6ly9tzwrpyxrvci5kzxyuyw5pbw8uawqilcj0exblijoizglklwnvbw11bmljyxrpb24ilcjyzwnpcgllbnrlzxlzijpbimrpzdprzxk6ejzna29ib1fnsmf1tlvqtk5xwlbwtddeazvlm21dq0myugk0mkzjcxbhbmjqakxxil0sinjvdxrpbmdlzxlzijpbxx1dfq'const",{"_index":1421,"title":{},"content":{"645":{}},"sidebarParentCategories":{}}],["https://picsum.photos/200",{"_index":1057,"title":{},"content":{"591":{}},"sidebarParentCategories":{}}],["https://rand.in",{"_index":1138,"title":{},"content":{"603":{}},"sidebarParentCategories":{}}],["https://raw.githubusercontent.com/homebrew/install/head/install.sh",{"_index":523,"title":{},"content":{"508":{},"553":{},"558":{}},"sidebarParentCategories":{}}],["https://rpm.nodesource.com/setup_18.x",{"_index":538,"title":{},"content":{"508":{}},"sidebarParentCategories":{}}],["https://sh.rustup.r",{"_index":868,"title":{},"content":{"543":{}},"sidebarParentCategories":{}}],["hub",{"_index":195,"title":{},"content":{"455":{}},"sidebarParentCategories":{}}],["hyperledg",{"_index":42,"title":{},"content":{"425":{},"456":{},"518":{},"532":{},"545":{},"566":{},"570":{},"574":{},"575":{},"647":{},"659":{},"661":{},"718":{},"722":{},"727":{}},"sidebarParentCategories":{}}],["hyperledger/anoncr",{"_index":705,"title":{},"content":{"516":{},"517":{},"660":{}},"sidebarParentCategories":{}}],["hyperledger/ari",{"_index":718,"title":{},"content":{"517":{},"534":{},"535":{},"539":{},"576":{},"635":{},"660":{},"696":{}},"sidebarParentCategories":{}}],["hyperledger/indi",{"_index":921,"title":{},"content":{"575":{},"576":{},"577":{},"660":{}},"sidebarParentCategories":{}}],["hyperlegder/anoncr",{"_index":708,"title":{},"content":{"516":{}},"sidebarParentCategories":{}}],["hyperlegder/ari",{"_index":755,"title":{},"content":{"534":{}},"sidebarParentCategories":{}}],["hyperlegder/indi",{"_index":922,"title":{},"content":{"575":{}},"sidebarParentCategories":{}}],["i'd",{"_index":440,"title":{},"content":{"514":{}},"sidebarParentCategories":{}}],["i.",{"_index":1869,"title":{},"content":{"705":{}},"sidebarParentCategories":{}}],["id",{"_index":359,"title":{},"content":{"497":{},"502":{},"523":{},"581":{},"602":{},"603":{},"608":{},"632":{},"634":{},"635":{},"639":{},"640":{},"644":{},"645":{},"661":{},"674":{},"675":{},"678":{},"682":{},"707":{},"711":{},"715":{},"718":{},"721":{},"722":{},"724":{},"725":{},"727":{}},"sidebarParentCategories":{}}],["ident",{"_index":11,"title":{},"content":{"425":{},"453":{},"455":{},"481":{},"500":{},"524":{},"526":{},"537":{},"545":{}},"sidebarParentCategories":{}}],["identifi",{"_index":209,"title":{},"content":{"481":{},"577":{},"582":{},"601":{},"605":{},"671":{},"692":{},"693":{},"718":{},"722":{},"724":{}},"sidebarParentCategories":{}}],["illustr",{"_index":1428,"title":{},"content":{"646":{}},"sidebarParentCategories":{}}],["imag",{"_index":1055,"title":{},"content":{"591":{}},"sidebarParentCategories":{}}],["imoprt",{"_index":936,"title":{},"content":{"577":{}},"sidebarParentCategories":{}}],["implement",{"_index":111,"title":{"524":{}},"content":{"452":{},"476":{},"477":{},"491":{},"494":{},"498":{},"500":{},"515":{},"516":{},"520":{},"522":{},"524":{},"525":{},"526":{},"533":{},"534":{},"538":{},"539":{},"545":{},"546":{},"576":{},"577":{},"584":{},"587":{},"598":{},"599":{},"684":{},"703":{},"707":{},"712":{},"719":{},"721":{},"728":{}},"sidebarParentCategories":{}}],["import",{"_index":344,"title":{"661":{}},"content":{"497":{},"498":{},"514":{},"517":{},"522":{},"523":{},"527":{},"535":{},"538":{},"539":{},"552":{},"576":{},"577":{},"581":{},"587":{},"588":{},"597":{},"598":{},"599":{},"608":{},"635":{},"638":{},"660":{},"661":{},"662":{},"668":{},"669":{},"670":{},"674":{},"675":{},"676":{},"677":{},"684":{},"695":{},"696":{},"697":{},"702":{},"707":{},"708":{},"712":{},"714":{},"715":{},"717":{},"718":{},"719":{},"722":{},"723":{},"724":{},"725":{},"726":{},"727":{},"729":{}},"sidebarParentCategories":{}}],["imposs",{"_index":1377,"title":{},"content":{"643":{}},"sidebarParentCategories":{}}],["improv",{"_index":1486,"title":{},"content":{"655":{},"671":{}},"sidebarParentCategories":{}}],["inbound",{"_index":481,"title":{},"content":{"502":{},"527":{},"632":{},"635":{},"638":{}},"sidebarParentCategories":{}}],["inboundtransport",{"_index":1298,"title":{},"content":{"638":{}},"sidebarParentCategories":{}}],["includ",{"_index":254,"title":{},"content":{"485":{},"491":{},"517":{},"522":{},"566":{},"581":{},"634":{},"635":{},"656":{},"671":{},"707":{},"717":{},"723":{}},"sidebarParentCategories":{}}],["incom",{"_index":1187,"title":{"634":{},"639":{}},"content":{"639":{}},"sidebarParentCategories":{}}],["incorrect",{"_index":2102,"title":{},"content":{"725":{}},"sidebarParentCategories":{}}],["independ",{"_index":861,"title":{},"content":{"543":{},"719":{}},"sidebarParentCategories":{}}],["index.(js|ts|jsx|tsx",{"_index":595,"title":{},"content":{"522":{}},"sidebarParentCategories":{}}],["index.tsx",{"_index":597,"title":{},"content":{"522":{}},"sidebarParentCategories":{}}],["indi",{"_index":650,"title":{"526":{},"543":{},"545":{},"546":{},"552":{},"556":{},"559":{},"573":{},"574":{},"575":{},"576":{},"578":{},"599":{},"606":{},"613":{},"621":{},"628":{},"650":{},"684":{},"715":{},"727":{}},"content":{"515":{},"517":{},"518":{},"524":{},"526":{},"533":{},"539":{},"540":{},"541":{},"542":{},"543":{},"544":{},"545":{},"546":{},"547":{},"548":{},"549":{},"550":{},"551":{},"552":{},"553":{},"554":{},"555":{},"556":{},"557":{},"558":{},"559":{},"560":{},"561":{},"562":{},"563":{},"564":{},"565":{},"566":{},"570":{},"574":{},"575":{},"576":{},"577":{},"578":{},"599":{},"606":{},"608":{},"612":{},"613":{},"614":{},"615":{},"620":{},"621":{},"622":{},"623":{},"627":{},"628":{},"629":{},"632":{},"635":{},"640":{},"648":{},"650":{},"658":{},"659":{},"660":{},"661":{},"672":{},"674":{},"679":{},"681":{},"684":{},"687":{},"690":{},"692":{},"694":{},"697":{},"698":{},"705":{},"706":{},"712":{},"714":{},"715":{},"716":{},"717":{},"718":{},"722":{},"723":{},"724":{},"725":{},"727":{},"728":{}},"sidebarParentCategories":{"540":{},"541":{},"542":{},"543":{},"544":{},"553":{},"554":{},"555":{},"556":{},"557":{},"558":{},"559":{},"560":{},"561":{},"562":{},"563":{},"564":{},"565":{},"609":{},"610":{},"611":{},"612":{},"613":{},"614":{},"615":{},"616":{},"617":{},"618":{},"619":{},"620":{},"621":{},"622":{},"623":{},"624":{},"625":{},"626":{},"627":{},"628":{},"629":{},"630":{}}}],["indic",{"_index":1482,"title":{},"content":{"654":{},"674":{},"675":{},"705":{}},"sidebarParentCategories":{}}],["indy::credenti",{"_index":1572,"title":{},"content":{"693":{}},"sidebarParentCategories":{}}],["indy::key",{"_index":1559,"title":{},"content":{"689":{}},"sidebarParentCategories":{}}],["indy::mastersecret",{"_index":1566,"title":{},"content":{"692":{}},"sidebarParentCategories":{}}],["indy:(agentcontext",{"_index":1952,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.loglevel",{"_index":1065,"title":{},"content":{"598":{}},"sidebarParentCategories":{}}],["this.messagesend",{"_index":1975,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessag",{"_index":1964,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessagecontext",{"_index":1968,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(agentcontext",{"_index":1951,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(record",{"_index":1941,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myrepository.save(messagecontext.agentcontext",{"_index":1954,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myrepository.save(record",{"_index":1949,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myservic",{"_index":1976,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.registerhandlers(messagehandlerregistri",{"_index":1978,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["those",{"_index":1050,"title":{},"content":{"590":{},"683":{},"723":{}},"sidebarParentCategories":{}}],["though",{"_index":1703,"title":{},"content":{"675":{}},"sidebarParentCategories":{}}],["threadid",{"_index":1939,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["three",{"_index":125,"title":{},"content":{"453":{},"486":{},"514":{},"667":{},"728":{}},"sidebarParentCategories":{}}],["threshold",{"_index":1876,"title":{},"content":{"705":{}},"sidebarParentCategories":{}}],["through",{"_index":434,"title":{},"content":{"498":{},"514":{},"537":{},"599":{},"643":{},"646":{},"674":{},"705":{}},"sidebarParentCategories":{}}],["throughout",{"_index":1662,"title":{},"content":{"674":{},"705":{},"716":{}},"sidebarParentCategories":{}}],["throw",{"_index":1258,"title":{},"content":{"614":{},"622":{},"629":{},"662":{},"663":{},"671":{},"680":{},"722":{}},"sidebarParentCategories":{}}],["thrown",{"_index":1571,"title":{},"content":{"692":{},"707":{}},"sidebarParentCategories":{}}],["thu",{"_index":628,"title":{},"content":{"522":{},"643":{},"645":{},"717":{},"718":{},"728":{}},"sidebarParentCategories":{}}],["ti",{"_index":413,"title":{},"content":{"514":{},"706":{}},"sidebarParentCategories":{}}],["time",{"_index":679,"title":{},"content":{"529":{},"643":{},"695":{},"706":{},"718":{},"719":{},"728":{}},"sidebarParentCategories":{}}],["timestamp",{"_index":1540,"title":{},"content":{"671":{}},"sidebarParentCategories":{}}],["tip",{"_index":752,"title":{},"content":{"533":{},"643":{}},"sidebarParentCategories":{}}],["tlsv1.2",{"_index":866,"title":{},"content":{"543":{}},"sidebarParentCategories":{}}],["tmp",{"_index":1553,"title":{},"content":{"686":{}},"sidebarParentCategories":{}}],["todo",{"_index":1191,"title":{},"content":{"634":{},"729":{}},"sidebarParentCategories":{}}],["togeth",{"_index":100,"title":{},"content":{"425":{}},"sidebarParentCategories":{}}],["token",{"_index":332,"title":{},"content":{"491":{},"495":{},"496":{},"497":{},"537":{},"539":{}},"sidebarParentCategories":{}}],["tool",{"_index":47,"title":{},"content":{"425":{},"483":{},"677":{},"708":{},"729":{}},"sidebarParentCategories":{}}],["toolkit",{"_index":154,"title":{},"content":{"453":{},"491":{}},"sidebarParentCategories":{}}],["top",{"_index":79,"title":{},"content":{"425":{},"491":{}},"sidebarParentCategories":{}}],["topic",{"_index":1580,"title":{},"content":{"695":{}},"sidebarParentCategories":{}}],["toward",{"_index":736,"title":{},"content":{"519":{},"536":{},"578":{}},"sidebarParentCategories":{}}],["trace(messag",{"_index":1070,"title":{},"content":{"598":{}},"sidebarParentCategories":{}}],["traffic",{"_index":660,"title":{},"content":{"527":{}},"sidebarParentCategories":{}}],["transact",{"_index":914,"title":{},"content":{"574":{},"577":{},"638":{},"660":{},"661":{},"718":{}},"sidebarParentCategories":{}}],["transactionauthoragr",{"_index":946,"title":{},"content":{"577":{}},"sidebarParentCategories":{}}],["transactionauthoragreement.acceptancemechan",{"_index":958,"title":{},"content":{"577":{}},"sidebarParentCategories":{}}],["transactionauthoragreement.vers",{"_index":954,"title":{},"content":{"577":{}},"sidebarParentCategories":{}}],["transfer",{"_index":1576,"title":{},"content":{"694":{}},"sidebarParentCategories":{}}],["transform",{"_index":1557,"title":{},"content":{"675":{},"683":{},"688":{},"690":{}},"sidebarParentCategories":{}}],["transmit",{"_index":52,"title":{},"content":{"425":{},"633":{}},"sidebarParentCategories":{}}],["transport",{"_index":241,"title":{"527":{}},"content":{"483":{},"502":{},"527":{},"632":{},"635":{},"638":{},"643":{},"721":{}},"sidebarParentCategories":{}}],["transportholder.registerinboundtransport(new",{"_index":1318,"title":{},"content":{"638":{}},"sidebarParentCategories":{}}],["transportholder.registeroutboundtransport(new",{"_index":1317,"title":{},"content":{"638":{}},"sidebarParentCategories":{}}],["transportissuer.registerinboundtransport(new",{"_index":1315,"title":{},"content":{"638":{}},"sidebarParentCategories":{}}],["transportissuer.registeroutboundtransport(new",{"_index":1314,"title":{},"content":{"638":{}},"sidebarParentCategories":{}}],["transportsess",{"_index":2054,"title":{"721":{}},"content":{"721":{}},"sidebarParentCategories":{}}],["tri",{"_index":1491,"title":{"688":{}},"content":{"656":{},"673":{},"699":{},"713":{}},"sidebarParentCategories":{}}],["trick",{"_index":630,"title":{},"content":{"522":{}},"sidebarParentCategories":{}}],["true",{"_index":934,"title":{},"content":{"576":{},"577":{},"589":{},"590":{},"592":{},"632":{},"633":{},"635":{},"638":{},"644":{},"660":{},"661":{},"670":{},"682":{},"703":{},"706":{},"715":{},"717":{},"718":{},"719":{},"722":{},"724":{},"725":{}},"sidebarParentCategories":{}}],["ts",{"_index":606,"title":{},"content":{"522":{}},"sidebarParentCategories":{}}],["tsx",{"_index":607,"title":{},"content":{"522":{}},"sidebarParentCategories":{}}],["tsyring",{"_index":2052,"title":{},"content":{"720":{}},"sidebarParentCategories":{}}],["tunnel",{"_index":1301,"title":{},"content":{"638":{}},"sidebarParentCategories":{}}],["turn",{"_index":1581,"title":{},"content":{"696":{}},"sidebarParentCategories":{}}],["tutori",{"_index":87,"title":{"530":{},"566":{}},"content":{"425":{},"523":{},"529":{},"531":{},"539":{},"566":{},"568":{},"569":{},"570":{},"571":{},"600":{},"631":{},"632":{},"635":{},"637":{},"638":{},"642":{},"646":{},"659":{},"661":{},"664":{},"700":{}},"sidebarParentCategories":{"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"596":{},"597":{},"598":{},"599":{},"600":{},"601":{},"602":{},"603":{},"604":{},"605":{},"606":{},"607":{},"608":{},"609":{},"610":{},"611":{},"612":{},"613":{},"614":{},"615":{},"616":{},"617":{},"618":{},"619":{},"620":{},"621":{},"622":{},"623":{},"624":{},"625":{},"626":{},"627":{},"628":{},"629":{},"630":{},"631":{},"632":{},"633":{},"634":{},"635":{},"636":{},"637":{},"638":{},"639":{},"640":{},"641":{},"642":{},"643":{},"644":{},"645":{},"646":{},"647":{},"659":{},"660":{},"661":{},"662":{},"663":{},"664":{},"665":{}}}],["two",{"_index":167,"title":{},"content":{"454":{},"602":{},"644":{},"646":{},"655":{},"683":{},"702":{},"706":{}},"sidebarParentCategories":{}}],["type",{"_index":210,"title":{"605":{},"655":{},"676":{},"726":{}},"content":{"481":{},"523":{},"546":{},"577":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"597":{},"602":{},"603":{},"605":{},"608":{},"643":{},"654":{},"661":{},"673":{},"674":{},"676":{},"682":{},"705":{},"707":{},"710":{},"712":{},"716":{},"719":{},"726":{}},"sidebarParentCategories":{}}],["typedarrayencod",{"_index":2037,"title":{},"content":{"718":{},"722":{}},"sidebarParentCategories":{}}],["typedarrayencoder.fromstring('01eafa4de4e22ed4fc2ee522b6ce2731",{"_index":2040,"title":{},"content":{"718":{}},"sidebarParentCategories":{}}],["typedarrayencoder.fromstring(`(connectioneventtypes.connectionstatechang",{"_index":1197,"title":{},"content":{"620":{},"621":{},"689":{}},"sidebarParentCategories":{}}],["agent.events.on(credentialeventtypes.credentialstatechang",{"_index":1321,"title":{},"content":{"645":{}},"sidebarParentCategories":{}}],["holderconfig",{"_index":1316,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["home",{"_index":1597,"title":{},"content":{"679":{}},"sidebarParentCategories":{}}],["home/indy/docu",{"_index":1599,"title":{},"content":{"679":{}},"sidebarParentCategories":{}}],["homebrew",{"_index":518,"title":{},"content":{"511":{},"631":{}},"sidebarParentCategories":{}}],["hood",{"_index":1536,"title":{},"content":{"684":{}},"sidebarParentCategories":{}}],["hook",{"_index":303,"title":{"496":{},"505":{}},"content":{"494":{},"496":{},"505":{},"506":{},"507":{}},"sidebarParentCategories":{}}],["hooks@^0.5",{"_index":372,"title":{},"content":{"506":{}},"sidebarParentCategories":{}}],["hooray",{"_index":444,"title":{},"content":{"507":{}},"sidebarParentCategories":{}}],["hope",{"_index":2047,"title":{},"content":{"719":{}},"sidebarParentCategories":{}}],["host",{"_index":295,"title":{},"content":{"494":{},"541":{},"546":{},"571":{},"589":{}},"sidebarParentCategories":{}}],["http",{"_index":247,"title":{},"content":{"485":{},"494":{},"495":{},"501":{},"503":{},"534":{},"551":{},"618":{},"621":{},"638":{},"644":{}},"sidebarParentCategories":{}}],["http://localhost:${port}`,})console.log(mediatiorinvitationurl",{"_index":1410,"title":{},"content":{"639":{}},"sidebarParentCategories":{}}],["http://localhost:${port}`],}const",{"_index":1401,"title":{},"content":{"639":{}},"sidebarParentCategories":{}}],["http://localhost:3000/doc",{"_index":486,"title":{},"content":{"503":{}},"sidebarParentCategories":{}}],["http://localhost:3001",{"_index":1162,"title":{},"content":{"618":{},"621":{}},"sidebarParentCategories":{}}],["http://localhost:5000",{"_index":476,"title":{},"content":{"503":{}},"sidebarParentCategories":{}}],["httpinboundtransport",{"_index":664,"title":{},"content":{"534":{},"618":{},"621":{},"639":{},"644":{}},"sidebarParentCategories":{}}],["httpoutboundtransport",{"_index":662,"title":{},"content":{"534":{},"618":{},"621":{},"644":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())agent.registeroutboundtransport(new",{"_index":668,"title":{},"content":{"534":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())alice.registeroutboundtransport(new",{"_index":1425,"title":{},"content":{"640":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())mediator.registerinboundtransport(new",{"_index":1403,"title":{},"content":{"639":{}},"sidebarParentCategories":{}}],["https://afj.com",{"_index":1907,"title":{},"content":{"706":{}},"sidebarParentCategories":{}}],["https://crates.io/crates/env_logg",{"_index":1089,"title":{},"content":{"610":{}},"sidebarParentCategories":{}}],["https://deb.nodesource.com/setup_18.x",{"_index":531,"title":{},"content":{"511":{}},"sidebarParentCategories":{}}],["https://didcomm.org",{"_index":1041,"title":{},"content":{"592":{},"719":{}},"sidebarParentCategories":{}}],["https://didcomm.org/connections/1.0/invit",{"_index":1784,"title":{},"content":{"696":{}},"sidebarParentCategories":{}}],["https://didcomm.org/messagepickup/2.0",{"_index":1841,"title":{},"content":{"703":{}},"sidebarParentCategories":{}}],["https://didcomm.org/mi",{"_index":1725,"title":{},"content":{"690":{},"707":{}},"sidebarParentCategories":{}}],["https://example.com",{"_index":1684,"title":{},"content":{"689":{},"696":{}},"sidebarParentCategories":{}}],["https://example.com?c_i=eyxxx",{"_index":1693,"title":{},"content":{"689":{}},"sidebarParentCategories":{}}],["https://example.org",{"_index":1174,"title":{},"content":{"618":{},"621":{}},"sidebarParentCategories":{}}],["https://example.org:3000",{"_index":1012,"title":{},"content":{"589":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/ari",{"_index":740,"title":{},"content":{"521":{},"526":{},"570":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/indi",{"_index":874,"title":{},"content":{"551":{},"604":{},"627":{},"634":{},"718":{}},"sidebarParentCategories":{}}],["https://github.com/nod",{"_index":742,"title":{},"content":{"521":{},"526":{},"570":{}},"sidebarParentCategories":{}}],["https://google.com",{"_index":1905,"title":{},"content":{"706":{}},"sidebarParentCategories":{}}],["https://mediator.dev.animo.id/invite?oob=eyjadhlwzsi6imh0dhbzoi8vzglky29tbs5vcmcvb3v0lw9mlwjhbmqvms4xl2ludml0yxrpb24ilcjaawqioiiymdc1mdm4ys05zgu3ltrioditywuxyi1jnzbmndg4mjyzytcilcjsywjlbci6ikfuaw1vie1lzglhdg9yiiwiywnjzxb0ijpbimrpzgnvbw0vywlwmsisimrpzgnvbw0vywlwmjtlbny9cmzjmtkixswiagfuzhnoywtlx3byb3rvy29scyi6wyjodhrwczovl2rpzgnvbw0ub3jnl2rpzgv4y2hhbmdllzeumcisimh0dhbzoi8vzglky29tbs5vcmcvy29ubmvjdglvbnmvms4wil0sinnlcnzpy2vzijpbeyjpzci6iinpbmxpbmutmcisinnlcnzpy2vfbmrwb2ludci6imh0dhbzoi8vbwvkawf0b3iuzgv2lmfuaw1vlmlkiiwidhlwzsi6imrpzc1jb21tdw5py2f0aw9uiiwicmvjaxbpzw50s2v5cyi6wyjkawq6a2v5ono2twtvsg9rtuphdu5vue5ov1pqcew3rgs1szntq0ndmlbpndjgy3fwr25iampmcsjdlcjyb3v0aw5ns2v5cyi6w119lhsiawqioiijaw5saw5llteilcjzzxj2awnlrw5kcg9pbnqioij3c3m6ly9tzwrpyxrvci5kzxyuyw5pbw8uawqilcj0exblijoizglklwnvbw11bmljyxrpb24ilcjyzwnpcgllbnrlzxlzijpbimrpzdprzxk6ejzna29ib1fnsmf1tlvqtk5xwlbwtddeazvlm21dq0myugk0mkzjcxbhbmjqakxxil0sinjvdxrpbmdlzxlzijpbxx1dfq'const",{"_index":1421,"title":{},"content":{"640":{}},"sidebarParentCategories":{}}],["https://picsum.photos/200",{"_index":1057,"title":{},"content":{"594":{}},"sidebarParentCategories":{}}],["https://rand.in",{"_index":1138,"title":{},"content":{"614":{}},"sidebarParentCategories":{}}],["https://raw.githubusercontent.com/homebrew/install/head/install.sh",{"_index":523,"title":{},"content":{"511":{},"556":{},"561":{}},"sidebarParentCategories":{}}],["https://rpm.nodesource.com/setup_18.x",{"_index":538,"title":{},"content":{"511":{}},"sidebarParentCategories":{}}],["https://sh.rustup.r",{"_index":868,"title":{},"content":{"551":{}},"sidebarParentCategories":{}}],["hub",{"_index":195,"title":{},"content":{"466":{}},"sidebarParentCategories":{}}],["hyperledg",{"_index":42,"title":{},"content":{"428":{},"467":{},"525":{},"539":{},"540":{},"566":{},"567":{},"574":{},"578":{},"642":{},"648":{},"650":{},"718":{},"722":{},"727":{}},"sidebarParentCategories":{}}],["hyperledger/anoncr",{"_index":705,"title":{},"content":{"523":{},"524":{},"649":{}},"sidebarParentCategories":{}}],["hyperledger/ari",{"_index":718,"title":{},"content":{"519":{},"520":{},"524":{},"555":{},"568":{},"621":{},"649":{},"678":{}},"sidebarParentCategories":{}}],["hyperledger/indi",{"_index":921,"title":{},"content":{"567":{},"568":{},"569":{},"649":{}},"sidebarParentCategories":{}}],["hyperlegder/anoncr",{"_index":708,"title":{},"content":{"523":{}},"sidebarParentCategories":{}}],["hyperlegder/ari",{"_index":755,"title":{},"content":{"519":{}},"sidebarParentCategories":{}}],["hyperlegder/indi",{"_index":922,"title":{},"content":{"567":{}},"sidebarParentCategories":{}}],["i'd",{"_index":440,"title":{},"content":{"507":{}},"sidebarParentCategories":{}}],["i.",{"_index":1869,"title":{},"content":{"705":{}},"sidebarParentCategories":{}}],["id",{"_index":359,"title":{},"content":{"500":{},"503":{},"530":{},"584":{},"598":{},"613":{},"614":{},"618":{},"620":{},"621":{},"639":{},"640":{},"645":{},"646":{},"650":{},"688":{},"689":{},"692":{},"696":{},"707":{},"711":{},"715":{},"718":{},"721":{},"722":{},"724":{},"725":{},"727":{}},"sidebarParentCategories":{}}],["ident",{"_index":11,"title":{},"content":{"428":{},"464":{},"466":{},"483":{},"501":{},"531":{},"533":{},"540":{},"553":{}},"sidebarParentCategories":{}}],["identifi",{"_index":209,"title":{},"content":{"483":{},"569":{},"585":{},"612":{},"616":{},"674":{},"675":{},"685":{},"718":{},"722":{},"724":{}},"sidebarParentCategories":{}}],["illustr",{"_index":1428,"title":{},"content":{"641":{}},"sidebarParentCategories":{}}],["imag",{"_index":1055,"title":{},"content":{"594":{}},"sidebarParentCategories":{}}],["imoprt",{"_index":936,"title":{},"content":{"569":{}},"sidebarParentCategories":{}}],["implement",{"_index":111,"title":{"531":{}},"content":{"459":{},"460":{},"463":{},"494":{},"497":{},"501":{},"508":{},"518":{},"519":{},"522":{},"523":{},"527":{},"529":{},"531":{},"532":{},"533":{},"540":{},"541":{},"554":{},"555":{},"568":{},"569":{},"587":{},"590":{},"609":{},"610":{},"666":{},"703":{},"707":{},"712":{},"719":{},"721":{},"728":{}},"sidebarParentCategories":{}}],["import",{"_index":344,"title":{"650":{}},"content":{"500":{},"507":{},"508":{},"520":{},"524":{},"529":{},"530":{},"534":{},"547":{},"554":{},"555":{},"568":{},"569":{},"584":{},"590":{},"591":{},"598":{},"608":{},"609":{},"610":{},"621":{},"644":{},"649":{},"650":{},"651":{},"666":{},"677":{},"678":{},"679":{},"682":{},"683":{},"684":{},"688":{},"689":{},"690":{},"691":{},"702":{},"707":{},"708":{},"712":{},"714":{},"715":{},"717":{},"718":{},"719":{},"722":{},"723":{},"724":{},"725":{},"726":{},"727":{},"729":{}},"sidebarParentCategories":{}}],["imposs",{"_index":1377,"title":{},"content":{"638":{}},"sidebarParentCategories":{}}],["improv",{"_index":1486,"title":{},"content":{"662":{},"685":{}},"sidebarParentCategories":{}}],["inbound",{"_index":481,"title":{},"content":{"503":{},"534":{},"618":{},"621":{},"644":{}},"sidebarParentCategories":{}}],["inboundtransport",{"_index":1298,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["includ",{"_index":254,"title":{},"content":{"487":{},"494":{},"524":{},"529":{},"574":{},"584":{},"620":{},"621":{},"663":{},"685":{},"707":{},"717":{},"723":{}},"sidebarParentCategories":{}}],["incom",{"_index":1187,"title":{"620":{},"645":{}},"content":{"645":{}},"sidebarParentCategories":{}}],["incorrect",{"_index":2102,"title":{},"content":{"725":{}},"sidebarParentCategories":{}}],["independ",{"_index":861,"title":{},"content":{"551":{},"719":{}},"sidebarParentCategories":{}}],["index.(js|ts|jsx|tsx",{"_index":595,"title":{},"content":{"529":{}},"sidebarParentCategories":{}}],["index.tsx",{"_index":597,"title":{},"content":{"529":{}},"sidebarParentCategories":{}}],["indi",{"_index":650,"title":{"533":{},"540":{},"541":{},"547":{},"551":{},"559":{},"562":{},"566":{},"567":{},"568":{},"570":{},"581":{},"596":{},"604":{},"610":{},"627":{},"634":{},"657":{},"666":{},"715":{},"727":{}},"content":{"518":{},"522":{},"524":{},"525":{},"531":{},"533":{},"540":{},"541":{},"542":{},"543":{},"544":{},"545":{},"546":{},"547":{},"548":{},"549":{},"550":{},"551":{},"552":{},"555":{},"556":{},"557":{},"558":{},"559":{},"560":{},"561":{},"562":{},"563":{},"564":{},"565":{},"566":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"578":{},"596":{},"598":{},"603":{},"604":{},"605":{},"606":{},"610":{},"618":{},"621":{},"626":{},"627":{},"628":{},"633":{},"634":{},"635":{},"636":{},"646":{},"648":{},"649":{},"650":{},"655":{},"657":{},"665":{},"666":{},"669":{},"672":{},"674":{},"676":{},"679":{},"686":{},"688":{},"693":{},"695":{},"698":{},"705":{},"706":{},"712":{},"714":{},"715":{},"716":{},"717":{},"718":{},"722":{},"723":{},"724":{},"725":{},"727":{},"728":{}},"sidebarParentCategories":{"548":{},"549":{},"550":{},"551":{},"552":{},"556":{},"557":{},"558":{},"559":{},"560":{},"561":{},"562":{},"563":{},"564":{},"565":{},"571":{},"572":{},"573":{},"599":{},"600":{},"601":{},"602":{},"603":{},"604":{},"605":{},"606":{},"623":{},"624":{},"625":{},"626":{},"627":{},"628":{},"629":{},"630":{},"631":{},"632":{},"633":{},"634":{},"635":{},"636":{}}}],["indic",{"_index":1482,"title":{},"content":{"661":{},"688":{},"689":{},"705":{}},"sidebarParentCategories":{}}],["indy::credenti",{"_index":1572,"title":{},"content":{"675":{}},"sidebarParentCategories":{}}],["indy::key",{"_index":1559,"title":{},"content":{"671":{}},"sidebarParentCategories":{}}],["indy::mastersecret",{"_index":1566,"title":{},"content":{"674":{}},"sidebarParentCategories":{}}],["indy:(agentcontext",{"_index":1952,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.loglevel",{"_index":1065,"title":{},"content":{"609":{}},"sidebarParentCategories":{}}],["this.messagesend",{"_index":1975,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessag",{"_index":1964,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessagecontext",{"_index":1968,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(agentcontext",{"_index":1951,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(record",{"_index":1941,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myrepository.save(messagecontext.agentcontext",{"_index":1954,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myrepository.save(record",{"_index":1949,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.myservic",{"_index":1976,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["this.registerhandlers(messagehandlerregistri",{"_index":1978,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["those",{"_index":1050,"title":{},"content":{"593":{},"697":{},"723":{}},"sidebarParentCategories":{}}],["though",{"_index":1703,"title":{},"content":{"689":{}},"sidebarParentCategories":{}}],["threadid",{"_index":1939,"title":{},"content":{"707":{}},"sidebarParentCategories":{}}],["three",{"_index":125,"title":{},"content":{"464":{},"488":{},"507":{},"681":{},"728":{}},"sidebarParentCategories":{}}],["threshold",{"_index":1876,"title":{},"content":{"705":{}},"sidebarParentCategories":{}}],["through",{"_index":434,"title":{},"content":{"507":{},"508":{},"553":{},"610":{},"638":{},"641":{},"688":{},"705":{}},"sidebarParentCategories":{}}],["throughout",{"_index":1662,"title":{},"content":{"688":{},"705":{},"716":{}},"sidebarParentCategories":{}}],["throw",{"_index":1258,"title":{},"content":{"605":{},"628":{},"635":{},"651":{},"652":{},"685":{},"694":{},"722":{}},"sidebarParentCategories":{}}],["thrown",{"_index":1571,"title":{},"content":{"674":{},"707":{}},"sidebarParentCategories":{}}],["thu",{"_index":628,"title":{},"content":{"529":{},"638":{},"640":{},"717":{},"718":{},"728":{}},"sidebarParentCategories":{}}],["ti",{"_index":413,"title":{},"content":{"507":{},"706":{}},"sidebarParentCategories":{}}],["time",{"_index":679,"title":{},"content":{"536":{},"638":{},"677":{},"706":{},"718":{},"719":{},"728":{}},"sidebarParentCategories":{}}],["timestamp",{"_index":1540,"title":{},"content":{"685":{}},"sidebarParentCategories":{}}],["tip",{"_index":752,"title":{},"content":{"518":{},"638":{}},"sidebarParentCategories":{}}],["tlsv1.2",{"_index":866,"title":{},"content":{"551":{}},"sidebarParentCategories":{}}],["tmp",{"_index":1553,"title":{},"content":{"668":{}},"sidebarParentCategories":{}}],["todo",{"_index":1191,"title":{},"content":{"620":{},"729":{}},"sidebarParentCategories":{}}],["togeth",{"_index":100,"title":{},"content":{"428":{}},"sidebarParentCategories":{}}],["token",{"_index":332,"title":{},"content":{"494":{},"498":{},"499":{},"500":{},"553":{},"555":{}},"sidebarParentCategories":{}}],["tool",{"_index":47,"title":{},"content":{"428":{},"485":{},"691":{},"708":{},"729":{}},"sidebarParentCategories":{}}],["toolkit",{"_index":154,"title":{},"content":{"464":{},"494":{}},"sidebarParentCategories":{}}],["top",{"_index":79,"title":{},"content":{"428":{},"494":{}},"sidebarParentCategories":{}}],["topic",{"_index":1580,"title":{},"content":{"677":{}},"sidebarParentCategories":{}}],["toward",{"_index":736,"title":{},"content":{"521":{},"526":{},"570":{}},"sidebarParentCategories":{}}],["trace(messag",{"_index":1070,"title":{},"content":{"609":{}},"sidebarParentCategories":{}}],["traffic",{"_index":660,"title":{},"content":{"534":{}},"sidebarParentCategories":{}}],["transact",{"_index":914,"title":{},"content":{"566":{},"569":{},"644":{},"649":{},"650":{},"718":{}},"sidebarParentCategories":{}}],["transactionauthoragr",{"_index":946,"title":{},"content":{"569":{}},"sidebarParentCategories":{}}],["transactionauthoragreement.acceptancemechan",{"_index":958,"title":{},"content":{"569":{}},"sidebarParentCategories":{}}],["transactionauthoragreement.vers",{"_index":954,"title":{},"content":{"569":{}},"sidebarParentCategories":{}}],["transfer",{"_index":1576,"title":{},"content":{"676":{}},"sidebarParentCategories":{}}],["transform",{"_index":1557,"title":{},"content":{"670":{},"672":{},"689":{},"697":{}},"sidebarParentCategories":{}}],["transmit",{"_index":52,"title":{},"content":{"428":{},"619":{}},"sidebarParentCategories":{}}],["transport",{"_index":241,"title":{"534":{}},"content":{"485":{},"503":{},"534":{},"618":{},"621":{},"638":{},"644":{},"721":{}},"sidebarParentCategories":{}}],["transportholder.registerinboundtransport(new",{"_index":1318,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["transportholder.registeroutboundtransport(new",{"_index":1317,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["transportissuer.registerinboundtransport(new",{"_index":1315,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["transportissuer.registeroutboundtransport(new",{"_index":1314,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["transportsess",{"_index":2054,"title":{"721":{}},"content":{"721":{}},"sidebarParentCategories":{}}],["tri",{"_index":1491,"title":{"670":{}},"content":{"663":{},"687":{},"699":{},"713":{}},"sidebarParentCategories":{}}],["trick",{"_index":630,"title":{},"content":{"529":{}},"sidebarParentCategories":{}}],["true",{"_index":934,"title":{},"content":{"568":{},"569":{},"592":{},"593":{},"595":{},"618":{},"619":{},"621":{},"639":{},"644":{},"649":{},"650":{},"684":{},"696":{},"703":{},"706":{},"715":{},"717":{},"718":{},"719":{},"722":{},"724":{},"725":{}},"sidebarParentCategories":{}}],["ts",{"_index":606,"title":{},"content":{"529":{}},"sidebarParentCategories":{}}],["tsx",{"_index":607,"title":{},"content":{"529":{}},"sidebarParentCategories":{}}],["tsyring",{"_index":2052,"title":{},"content":{"720":{}},"sidebarParentCategories":{}}],["tunnel",{"_index":1301,"title":{},"content":{"644":{}},"sidebarParentCategories":{}}],["turn",{"_index":1581,"title":{},"content":{"678":{}},"sidebarParentCategories":{}}],["tutori",{"_index":87,"title":{"537":{},"574":{}},"content":{"428":{},"530":{},"536":{},"538":{},"555":{},"574":{},"576":{},"577":{},"578":{},"579":{},"611":{},"617":{},"618":{},"621":{},"637":{},"641":{},"643":{},"644":{},"648":{},"650":{},"653":{},"700":{}},"sidebarParentCategories":{"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"601":{},"602":{},"603":{},"604":{},"605":{},"606":{},"607":{},"608":{},"609":{},"610":{},"611":{},"612":{},"613":{},"614":{},"615":{},"616":{},"617":{},"618":{},"619":{},"620":{},"621":{},"622":{},"623":{},"624":{},"625":{},"626":{},"627":{},"628":{},"629":{},"630":{},"631":{},"632":{},"633":{},"634":{},"635":{},"636":{},"637":{},"638":{},"639":{},"640":{},"641":{},"642":{},"643":{},"644":{},"645":{},"646":{},"647":{},"648":{},"649":{},"650":{},"651":{},"652":{},"653":{},"654":{}}}],["two",{"_index":167,"title":{},"content":{"465":{},"613":{},"639":{},"641":{},"662":{},"697":{},"702":{},"706":{}},"sidebarParentCategories":{}}],["type",{"_index":210,"title":{"616":{},"662":{},"690":{},"726":{}},"content":{"483":{},"530":{},"541":{},"569":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"598":{},"608":{},"613":{},"614":{},"616":{},"638":{},"650":{},"661":{},"687":{},"688":{},"690":{},"696":{},"705":{},"707":{},"710":{},"712":{},"716":{},"719":{},"726":{}},"sidebarParentCategories":{}}],["typedarrayencod",{"_index":2037,"title":{},"content":{"718":{},"722":{}},"sidebarParentCategories":{}}],["typedarrayencoder.fromstring('01eafa4de4e22ed4fc2ee522b6ce2731",{"_index":2040,"title":{},"content":{"718":{}},"sidebarParentCategories":{}}],["typedarrayencoder.fromstring(`(connectioneventtypes.connectionstatechang",{"_index":1208,"title":{},"content":{"351":{},"352":{},"429":{}},"sidebarParentCategories":{}}],["agent.events.on(credentialeventtypes.credentialstatechang",{"_index":1332,"title":{},"content":{"411":{}},"sidebarParentCategories":{}}],["holderconfig",{"_index":1327,"title":{},"content":{"410":{}},"sidebarParentCategories":{}}],["home",{"_index":1609,"title":{},"content":{"408":{}},"sidebarParentCategories":{}}],["home/indy/docu",{"_index":1611,"title":{},"content":{"408":{}},"sidebarParentCategories":{}}],["homebrew",{"_index":537,"title":{},"content":{"252":{},"363":{}},"sidebarParentCategories":{}}],["hood",{"_index":1548,"title":{},"content":{"387":{}},"sidebarParentCategories":{}}],["hook",{"_index":318,"title":{"238":{},"241":{}},"content":{"236":{},"238":{},"241":{},"242":{},"243":{}},"sidebarParentCategories":{}}],["hooks@^0.5",{"_index":389,"title":{},"content":{"242":{}},"sidebarParentCategories":{}}],["hooray",{"_index":460,"title":{},"content":{"243":{}},"sidebarParentCategories":{}}],["hope",{"_index":2058,"title":{},"content":{"465":{}},"sidebarParentCategories":{}}],["host",{"_index":311,"title":{},"content":{"236":{},"289":{},"294":{},"315":{},"322":{}},"sidebarParentCategories":{}}],["http",{"_index":259,"title":{},"content":{"213":{},"236":{},"237":{},"244":{},"246":{},"265":{},"286":{},"349":{},"352":{},"390":{},"410":{}},"sidebarParentCategories":{}}],["http://localhost:${port}`,})console.log(mediatiorinvitationurl",{"_index":1422,"title":{},"content":{"391":{}},"sidebarParentCategories":{}}],["http://localhost:${port}`],}const",{"_index":1413,"title":{},"content":{"391":{}},"sidebarParentCategories":{}}],["http://localhost:3000/doc",{"_index":505,"title":{},"content":{"246":{}},"sidebarParentCategories":{}}],["http://localhost:3001",{"_index":1173,"title":{},"content":{"349":{},"352":{}},"sidebarParentCategories":{}}],["http://localhost:5000",{"_index":495,"title":{},"content":{"246":{}},"sidebarParentCategories":{}}],["httpinboundtransport",{"_index":681,"title":{},"content":{"265":{},"349":{},"352":{},"391":{},"410":{}},"sidebarParentCategories":{}}],["httpoutboundtransport",{"_index":679,"title":{},"content":{"265":{},"349":{},"352":{},"410":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())agent.registeroutboundtransport(new",{"_index":685,"title":{},"content":{"265":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())alice.registeroutboundtransport(new",{"_index":1437,"title":{},"content":{"392":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())mediator.registerinboundtransport(new",{"_index":1415,"title":{},"content":{"391":{}},"sidebarParentCategories":{}}],["https://crates.io/crates/env_logg",{"_index":1101,"title":{},"content":{"347":{}},"sidebarParentCategories":{}}],["https://credo.com",{"_index":1918,"title":{},"content":{"446":{}},"sidebarParentCategories":{}}],["https://deb.nodesource.com/setup_18.x",{"_index":550,"title":{},"content":{"252":{}},"sidebarParentCategories":{}}],["https://didcomm.org",{"_index":1053,"title":{},"content":{"318":{},"465":{}},"sidebarParentCategories":{}}],["https://didcomm.org/connections/1.0/invit",{"_index":1795,"title":{},"content":{"436":{}},"sidebarParentCategories":{}}],["https://didcomm.org/messagepickup/2.0",{"_index":1852,"title":{},"content":{"443":{}},"sidebarParentCategories":{}}],["https://didcomm.org/mi",{"_index":1736,"title":{},"content":{"430":{},"447":{}},"sidebarParentCategories":{}}],["https://example.com",{"_index":1695,"title":{},"content":{"429":{},"436":{}},"sidebarParentCategories":{}}],["https://example.com?c_i=eyxxx",{"_index":1704,"title":{},"content":{"429":{}},"sidebarParentCategories":{}}],["https://example.org",{"_index":1185,"title":{},"content":{"349":{},"352":{}},"sidebarParentCategories":{}}],["https://example.org:3000",{"_index":1023,"title":{},"content":{"315":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/ari",{"_index":755,"title":{},"content":{"274":{},"279":{},"329":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/indi",{"_index":887,"title":{},"content":{"286":{},"359":{},"366":{},"373":{},"464":{}},"sidebarParentCategories":{}}],["https://github.com/nod",{"_index":757,"title":{},"content":{"274":{},"279":{},"329":{}},"sidebarParentCategories":{}}],["https://google.com",{"_index":1916,"title":{},"content":{"446":{}},"sidebarParentCategories":{}}],["https://mediator.dev.animo.id/invite?oob=eyjadhlwzsi6imh0dhbzoi8vzglky29tbs5vcmcvb3v0lw9mlwjhbmqvms4xl2ludml0yxrpb24ilcjaawqioiiymdc1mdm4ys05zgu3ltrioditywuxyi1jnzbmndg4mjyzytcilcjsywjlbci6ikfuaw1vie1lzglhdg9yiiwiywnjzxb0ijpbimrpzgnvbw0vywlwmsisimrpzgnvbw0vywlwmjtlbny9cmzjmtkixswiagfuzhnoywtlx3byb3rvy29scyi6wyjodhrwczovl2rpzgnvbw0ub3jnl2rpzgv4y2hhbmdllzeumcisimh0dhbzoi8vzglky29tbs5vcmcvy29ubmvjdglvbnmvms4wil0sinnlcnzpy2vzijpbeyjpzci6iinpbmxpbmutmcisinnlcnzpy2vfbmrwb2ludci6imh0dhbzoi8vbwvkawf0b3iuzgv2lmfuaw1vlmlkiiwidhlwzsi6imrpzc1jb21tdw5py2f0aw9uiiwicmvjaxbpzw50s2v5cyi6wyjkawq6a2v5ono2twtvsg9rtuphdu5vue5ov1pqcew3rgs1szntq0ndmlbpndjgy3fwr25iampmcsjdlcjyb3v0aw5ns2v5cyi6w119lhsiawqioiijaw5saw5llteilcjzzxj2awnlrw5kcg9pbnqioij3c3m6ly9tzwrpyxrvci5kzxyuyw5pbw8uawqilcj0exblijoizglklwnvbw11bmljyxrpb24ilcjyzwnpcgllbnrlzxlzijpbimrpzdprzxk6ejzna29ib1fnsmf1tlvqtk5xwlbwtddeazvlm21dq0myugk0mkzjcxbhbmjqakxxil0sinjvdxrpbmdlzxlzijpbxx1dfq'const",{"_index":1433,"title":{},"content":{"392":{}},"sidebarParentCategories":{}}],["https://picsum.photos/200",{"_index":1069,"title":{},"content":{"320":{}},"sidebarParentCategories":{}}],["https://rand.in",{"_index":1149,"title":{},"content":{"341":{}},"sidebarParentCategories":{}}],["https://raw.githubusercontent.com/homebrew/install/head/install.sh",{"_index":542,"title":{},"content":{"252":{},"296":{},"299":{}},"sidebarParentCategories":{}}],["https://rpm.nodesource.com/setup_18.x",{"_index":557,"title":{},"content":{"252":{}},"sidebarParentCategories":{}}],["https://sh.rustup.r",{"_index":881,"title":{},"content":{"286":{}},"sidebarParentCategories":{}}],["hub",{"_index":210,"title":{},"content":{"195":{}},"sidebarParentCategories":{}}],["hyperledg",{"_index":38,"title":{},"content":{"196":{},"197":{},"270":{},"278":{},"288":{},"325":{},"326":{},"330":{},"334":{},"376":{},"378":{},"394":{},"464":{},"468":{},"473":{}},"sidebarParentCategories":{}}],["hyperledger/anoncr",{"_index":720,"title":{},"content":{"276":{},"277":{},"377":{}},"sidebarParentCategories":{}}],["hyperledger/ari",{"_index":733,"title":{},"content":{"272":{},"273":{},"277":{},"282":{},"327":{},"352":{},"377":{},"407":{}},"sidebarParentCategories":{}}],["hyperledger/indi",{"_index":932,"title":{},"content":{"326":{},"327":{},"328":{},"377":{}},"sidebarParentCategories":{}}],["hyperlegder/anoncr",{"_index":723,"title":{},"content":{"276":{}},"sidebarParentCategories":{}}],["hyperlegder/ari",{"_index":770,"title":{},"content":{"272":{}},"sidebarParentCategories":{}}],["hyperlegder/indi",{"_index":933,"title":{},"content":{"326":{}},"sidebarParentCategories":{}}],["i'd",{"_index":456,"title":{},"content":{"243":{}},"sidebarParentCategories":{}}],["i.",{"_index":1880,"title":{},"content":{"445":{}},"sidebarParentCategories":{}}],["id",{"_index":375,"title":{},"content":{"246":{},"261":{},"305":{},"310":{},"340":{},"341":{},"349":{},"351":{},"352":{},"378":{},"391":{},"392":{},"411":{},"412":{},"428":{},"429":{},"432":{},"436":{},"447":{},"451":{},"461":{},"464":{},"467":{},"468":{},"470":{},"471":{},"473":{},"595":{}},"sidebarParentCategories":{}}],["ident",{"_index":10,"title":{},"content":{"193":{},"195":{},"197":{},"211":{},"244":{},"262":{},"264":{},"280":{},"288":{}},"sidebarParentCategories":{}}],["identifi",{"_index":222,"title":{},"content":{"211":{},"311":{},"328":{},"339":{},"343":{},"388":{},"403":{},"404":{},"464":{},"468":{},"470":{}},"sidebarParentCategories":{}}],["illustr",{"_index":1440,"title":{},"content":{"393":{}},"sidebarParentCategories":{}}],["imag",{"_index":1067,"title":{},"content":{"320":{}},"sidebarParentCategories":{}}],["imoprt",{"_index":947,"title":{},"content":{"328":{}},"sidebarParentCategories":{}}],["implement",{"_index":126,"title":{"262":{}},"content":{"188":{},"189":{},"192":{},"236":{},"239":{},"244":{},"256":{},"258":{},"260":{},"262":{},"263":{},"264":{},"271":{},"272":{},"275":{},"276":{},"281":{},"282":{},"288":{},"289":{},"313":{},"316":{},"327":{},"328":{},"346":{},"347":{},"395":{},"443":{},"447":{},"458":{},"465":{},"467":{},"474":{}},"sidebarParentCategories":{}}],["import",{"_index":360,"title":{"378":{}},"content":{"243":{},"256":{},"260":{},"261":{},"265":{},"273":{},"277":{},"281":{},"282":{},"295":{},"305":{},"310":{},"316":{},"317":{},"327":{},"328":{},"345":{},"346":{},"347":{},"352":{},"377":{},"378":{},"379":{},"385":{},"386":{},"387":{},"395":{},"406":{},"407":{},"408":{},"410":{},"428":{},"429":{},"430":{},"431":{},"442":{},"447":{},"448":{},"458":{},"460":{},"461":{},"463":{},"464":{},"465":{},"468":{},"469":{},"470":{},"471":{},"472":{},"473":{},"475":{},"595":{}},"sidebarParentCategories":{}}],["imposs",{"_index":1389,"title":{},"content":{"390":{}},"sidebarParentCategories":{}}],["improv",{"_index":1498,"title":{},"content":{"388":{},"421":{}},"sidebarParentCategories":{}}],["inbound",{"_index":500,"title":{},"content":{"246":{},"265":{},"349":{},"352":{},"410":{}},"sidebarParentCategories":{}}],["inboundtransport",{"_index":1309,"title":{},"content":{"410":{}},"sidebarParentCategories":{}}],["includ",{"_index":266,"title":{},"content":{"230":{},"236":{},"260":{},"277":{},"310":{},"330":{},"351":{},"352":{},"388":{},"422":{},"447":{},"463":{},"469":{}},"sidebarParentCategories":{}}],["incom",{"_index":1198,"title":{"351":{},"411":{}},"content":{"411":{}},"sidebarParentCategories":{}}],["incorrect",{"_index":2113,"title":{},"content":{"471":{}},"sidebarParentCategories":{}}],["independ",{"_index":875,"title":{},"content":{"286":{},"465":{}},"sidebarParentCategories":{}}],["index.(js|ts|jsx|tsx",{"_index":613,"title":{},"content":{"260":{}},"sidebarParentCategories":{}}],["index.tsx",{"_index":615,"title":{},"content":{"260":{}},"sidebarParentCategories":{}}],["indi",{"_index":667,"title":{"264":{},"286":{},"288":{},"289":{},"295":{},"297":{},"302":{},"325":{},"326":{},"327":{},"329":{},"337":{},"347":{},"359":{},"366":{},"373":{},"395":{},"416":{},"461":{},"473":{},"593":{}},"content":{"262":{},"264":{},"271":{},"275":{},"277":{},"278":{},"282":{},"283":{},"284":{},"285":{},"286":{},"287":{},"288":{},"289":{},"290":{},"291":{},"292":{},"293":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"306":{},"307":{},"322":{},"323":{},"324":{},"325":{},"326":{},"327":{},"328":{},"329":{},"330":{},"334":{},"347":{},"349":{},"352":{},"358":{},"359":{},"360":{},"361":{},"365":{},"366":{},"367":{},"368":{},"372":{},"373":{},"374":{},"376":{},"377":{},"378":{},"395":{},"398":{},"401":{},"403":{},"405":{},"408":{},"412":{},"414":{},"416":{},"424":{},"426":{},"428":{},"433":{},"435":{},"438":{},"445":{},"446":{},"458":{},"460":{},"461":{},"462":{},"463":{},"464":{},"468":{},"469":{},"470":{},"471":{},"473":{},"474":{},"593":{},"595":{}},"sidebarParentCategories":{"283":{},"284":{},"285":{},"286":{},"287":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"306":{},"307":{},"322":{},"323":{},"324":{},"354":{},"355":{},"356":{},"357":{},"358":{},"359":{},"360":{},"361":{},"362":{},"363":{},"364":{},"365":{},"366":{},"367":{},"368":{},"369":{},"370":{},"371":{},"372":{},"373":{},"374":{},"375":{}}}],["indic",{"_index":1494,"title":{},"content":{"420":{},"428":{},"429":{},"445":{}},"sidebarParentCategories":{}}],["indy::credenti",{"_index":1584,"title":{},"content":{"404":{}},"sidebarParentCategories":{}}],["indy::key",{"_index":1571,"title":{},"content":{"400":{}},"sidebarParentCategories":{}}],["indy::mastersecret",{"_index":1578,"title":{},"content":{"403":{}},"sidebarParentCategories":{}}],["indy:(agentcontext",{"_index":1963,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["this.loglevel",{"_index":1077,"title":{},"content":{"346":{}},"sidebarParentCategories":{}}],["this.messagesend",{"_index":1986,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessag",{"_index":1975,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessagecontext",{"_index":1979,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(agentcontext",{"_index":1962,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(record",{"_index":1952,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["this.myrepository.save(messagecontext.agentcontext",{"_index":1965,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["this.myrepository.save(record",{"_index":1960,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["this.myservic",{"_index":1987,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["this.registerhandlers(messagehandlerregistri",{"_index":1989,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["those",{"_index":1062,"title":{},"content":{"319":{},"437":{},"469":{}},"sidebarParentCategories":{}}],["though",{"_index":1714,"title":{},"content":{"429":{}},"sidebarParentCategories":{}}],["threadid",{"_index":1950,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["three",{"_index":140,"title":{},"content":{"193":{},"243":{},"384":{},"474":{}},"sidebarParentCategories":{}}],["threshold",{"_index":1887,"title":{},"content":{"445":{}},"sidebarParentCategories":{}}],["through",{"_index":450,"title":{},"content":{"243":{},"256":{},"280":{},"347":{},"390":{},"393":{},"428":{},"445":{}},"sidebarParentCategories":{}}],["throughout",{"_index":1674,"title":{},"content":{"428":{},"445":{},"462":{}},"sidebarParentCategories":{}}],["throw",{"_index":1269,"title":{},"content":{"360":{},"367":{},"374":{},"379":{},"380":{},"388":{},"434":{},"468":{}},"sidebarParentCategories":{}}],["thrown",{"_index":1583,"title":{},"content":{"403":{},"447":{}},"sidebarParentCategories":{}}],["thu",{"_index":646,"title":{},"content":{"260":{},"390":{},"392":{},"463":{},"464":{},"474":{}},"sidebarParentCategories":{}}],["ti",{"_index":46,"title":{},"content":{"197":{},"243":{},"446":{}},"sidebarParentCategories":{}}],["time",{"_index":696,"title":{},"content":{"267":{},"390":{},"406":{},"446":{},"464":{},"465":{},"474":{}},"sidebarParentCategories":{}}],["timestamp",{"_index":1552,"title":{},"content":{"388":{}},"sidebarParentCategories":{}}],["tip",{"_index":767,"title":{},"content":{"271":{},"390":{}},"sidebarParentCategories":{}}],["tlsv1.2",{"_index":879,"title":{},"content":{"286":{}},"sidebarParentCategories":{}}],["tmp",{"_index":1565,"title":{},"content":{"397":{}},"sidebarParentCategories":{}}],["todo",{"_index":1202,"title":{},"content":{"351":{},"475":{}},"sidebarParentCategories":{}}],["togeth",{"_index":114,"title":{},"content":{"197":{}},"sidebarParentCategories":{}}],["token",{"_index":347,"title":{},"content":{"236":{},"240":{},"280":{},"282":{},"304":{},"305":{}},"sidebarParentCategories":{}}],["tool",{"_index":60,"title":{},"content":{"197":{},"213":{},"431":{},"448":{},"475":{}},"sidebarParentCategories":{}}],["toolkit",{"_index":169,"title":{},"content":{"193":{},"236":{}},"sidebarParentCategories":{}}],["top",{"_index":94,"title":{},"content":{"197":{},"231":{},"236":{}},"sidebarParentCategories":{}}],["topic",{"_index":1592,"title":{},"content":{"406":{}},"sidebarParentCategories":{}}],["toward",{"_index":751,"title":{},"content":{"274":{},"279":{},"329":{}},"sidebarParentCategories":{}}],["trace(messag",{"_index":1082,"title":{},"content":{"346":{}},"sidebarParentCategories":{}}],["traffic",{"_index":677,"title":{},"content":{"265":{}},"sidebarParentCategories":{}}],["transact",{"_index":926,"title":{},"content":{"325":{},"328":{},"377":{},"378":{},"410":{},"464":{}},"sidebarParentCategories":{}}],["transactionauthoragr",{"_index":957,"title":{},"content":{"328":{}},"sidebarParentCategories":{}}],["transactionauthoragreement.acceptancemechan",{"_index":969,"title":{},"content":{"328":{}},"sidebarParentCategories":{}}],["transactionauthoragreement.vers",{"_index":965,"title":{},"content":{"328":{}},"sidebarParentCategories":{}}],["transfer",{"_index":1588,"title":{},"content":{"405":{}},"sidebarParentCategories":{}}],["transform",{"_index":1569,"title":{},"content":{"399":{},"401":{},"429":{},"437":{}},"sidebarParentCategories":{}}],["transmit",{"_index":65,"title":{},"content":{"197":{},"350":{}},"sidebarParentCategories":{}}],["transport",{"_index":253,"title":{"265":{}},"content":{"213":{},"246":{},"265":{},"349":{},"352":{},"390":{},"410":{},"467":{}},"sidebarParentCategories":{}}],["transportholder.registerinboundtransport(new",{"_index":1329,"title":{},"content":{"410":{}},"sidebarParentCategories":{}}],["transportholder.registeroutboundtransport(new",{"_index":1328,"title":{},"content":{"410":{}},"sidebarParentCategories":{}}],["transportissuer.registerinboundtransport(new",{"_index":1326,"title":{},"content":{"410":{}},"sidebarParentCategories":{}}],["transportissuer.registeroutboundtransport(new",{"_index":1325,"title":{},"content":{"410":{}},"sidebarParentCategories":{}}],["transportsess",{"_index":2065,"title":{"467":{}},"content":{"467":{}},"sidebarParentCategories":{}}],["tri",{"_index":1503,"title":{"399":{}},"content":{"422":{},"427":{},"439":{},"459":{}},"sidebarParentCategories":{}}],["trick",{"_index":648,"title":{},"content":{"260":{}},"sidebarParentCategories":{}}],["true",{"_index":945,"title":{},"content":{"318":{},"319":{},"321":{},"327":{},"328":{},"349":{},"350":{},"352":{},"377":{},"378":{},"387":{},"391":{},"410":{},"436":{},"443":{},"446":{},"461":{},"463":{},"464":{},"465":{},"468":{},"470":{},"471":{}},"sidebarParentCategories":{}}],["ts",{"_index":625,"title":{},"content":{"260":{}},"sidebarParentCategories":{}}],["ts/core",{"_index":1030,"title":{},"content":{"316":{},"317":{}},"sidebarParentCategories":{}}],["ts/push",{"_index":327,"title":{},"content":{"236":{}},"sidebarParentCategories":{}}],["ts/react",{"_index":325,"title":{},"content":{"236":{}},"sidebarParentCategories":{}}],["ts/redux",{"_index":322,"title":{},"content":{"236":{}},"sidebarParentCategories":{}}],["ts/rest",{"_index":324,"title":{},"content":{"236":{}},"sidebarParentCategories":{}}],["tsx",{"_index":626,"title":{},"content":{"260":{}},"sidebarParentCategories":{}}],["tsyring",{"_index":2063,"title":{},"content":{"466":{}},"sidebarParentCategories":{}}],["tunnel",{"_index":1312,"title":{},"content":{"410":{}},"sidebarParentCategories":{}}],["turn",{"_index":1593,"title":{},"content":{"407":{}},"sidebarParentCategories":{}}],["tutori",{"_index":103,"title":{"268":{},"330":{}},"content":{"197":{},"261":{},"267":{},"269":{},"282":{},"330":{},"332":{},"333":{},"334":{},"335":{},"338":{},"348":{},"349":{},"352":{},"376":{},"378":{},"381":{},"389":{},"393":{},"409":{},"410":{},"440":{}},"sidebarParentCategories":{"308":{},"309":{},"310":{},"311":{},"312":{},"313":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"320":{},"321":{},"338":{},"339":{},"340":{},"341":{},"342":{},"343":{},"344":{},"345":{},"346":{},"347":{},"348":{},"349":{},"350":{},"351":{},"352":{},"353":{},"354":{},"355":{},"356":{},"357":{},"358":{},"359":{},"360":{},"361":{},"362":{},"363":{},"364":{},"365":{},"366":{},"367":{},"368":{},"369":{},"370":{},"371":{},"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"380":{},"381":{},"382":{},"389":{},"390":{},"391":{},"392":{},"393":{},"394":{},"409":{},"410":{},"411":{},"412":{},"413":{},"593":{},"594":{},"595":{}}}],["two",{"_index":182,"title":{},"content":{"194":{},"231":{},"340":{},"391":{},"393":{},"421":{},"437":{},"442":{},"446":{}},"sidebarParentCategories":{}}],["type",{"_index":223,"title":{"343":{},"421":{},"430":{},"472":{}},"content":{"211":{},"261":{},"289":{},"309":{},"310":{},"311":{},"312":{},"313":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"320":{},"321":{},"328":{},"340":{},"341":{},"343":{},"345":{},"378":{},"390":{},"420":{},"427":{},"428":{},"430":{},"436":{},"445":{},"447":{},"450":{},"458":{},"462":{},"465":{},"472":{},"595":{}},"sidebarParentCategories":{}}],["typedarrayencod",{"_index":2048,"title":{},"content":{"464":{},"468":{}},"sidebarParentCategories":{}}],["typedarrayencoder.fromstring('01eafa4de4e22ed4fc2ee522b6ce2731",{"_index":2051,"title":{},"content":{"464":{}},"sidebarParentCategories":{}}],["typedarrayencoder.fromstring(`(connectioneventtypes.connectionstatechang",{"_index":1208,"title":{},"content":{"369":{},"370":{},"432":{}},"sidebarParentCategories":{}}],["agent.events.on(credentialeventtypes.credentialstatechang",{"_index":1332,"title":{},"content":{"381":{}},"sidebarParentCategories":{}}],["holderconfig",{"_index":1327,"title":{},"content":{"380":{}},"sidebarParentCategories":{}}],["home",{"_index":1609,"title":{},"content":{"481":{}},"sidebarParentCategories":{}}],["home/indy/docu",{"_index":1611,"title":{},"content":{"481":{}},"sidebarParentCategories":{}}],["homebrew",{"_index":537,"title":{},"content":{"249":{},"360":{}},"sidebarParentCategories":{}}],["hood",{"_index":1548,"title":{},"content":{"412":{}},"sidebarParentCategories":{}}],["hook",{"_index":318,"title":{"240":{},"245":{}},"content":{"238":{},"240":{},"245":{},"246":{},"247":{}},"sidebarParentCategories":{}}],["hooks@^0.5",{"_index":389,"title":{},"content":{"246":{}},"sidebarParentCategories":{}}],["hooray",{"_index":460,"title":{},"content":{"247":{}},"sidebarParentCategories":{}}],["hope",{"_index":2058,"title":{},"content":{"448":{}},"sidebarParentCategories":{}}],["host",{"_index":311,"title":{},"content":{"238":{},"283":{},"288":{},"306":{},"326":{}},"sidebarParentCategories":{}}],["http",{"_index":259,"title":{},"content":{"209":{},"238":{},"239":{},"260":{},"266":{},"268":{},"301":{},"367":{},"370":{},"380":{},"392":{}},"sidebarParentCategories":{}}],["http://localhost:${port}`,})console.log(mediatiorinvitationurl",{"_index":1422,"title":{},"content":{"393":{}},"sidebarParentCategories":{}}],["http://localhost:${port}`],}const",{"_index":1413,"title":{},"content":{"393":{}},"sidebarParentCategories":{}}],["http://localhost:3000/doc",{"_index":505,"title":{},"content":{"268":{}},"sidebarParentCategories":{}}],["http://localhost:3001",{"_index":1173,"title":{},"content":{"367":{},"370":{}},"sidebarParentCategories":{}}],["http://localhost:5000",{"_index":495,"title":{},"content":{"268":{}},"sidebarParentCategories":{}}],["httpinboundtransport",{"_index":681,"title":{},"content":{"260":{},"367":{},"370":{},"380":{},"393":{}},"sidebarParentCategories":{}}],["httpoutboundtransport",{"_index":679,"title":{},"content":{"260":{},"367":{},"370":{},"380":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())agent.registeroutboundtransport(new",{"_index":685,"title":{},"content":{"260":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())alice.registeroutboundtransport(new",{"_index":1437,"title":{},"content":{"394":{}},"sidebarParentCategories":{}}],["httpoutboundtransport())mediator.registerinboundtransport(new",{"_index":1415,"title":{},"content":{"393":{}},"sidebarParentCategories":{}}],["https://crates.io/crates/env_logg",{"_index":1101,"title":{},"content":{"347":{}},"sidebarParentCategories":{}}],["https://credo.com",{"_index":1918,"title":{},"content":{"422":{}},"sidebarParentCategories":{}}],["https://deb.nodesource.com/setup_18.x",{"_index":550,"title":{},"content":{"249":{}},"sidebarParentCategories":{}}],["https://didcomm.org",{"_index":1053,"title":{},"content":{"329":{},"448":{}},"sidebarParentCategories":{}}],["https://didcomm.org/connections/1.0/invit",{"_index":1795,"title":{},"content":{"439":{}},"sidebarParentCategories":{}}],["https://didcomm.org/messagepickup/2.0",{"_index":1852,"title":{},"content":{"419":{}},"sidebarParentCategories":{}}],["https://didcomm.org/mi",{"_index":1736,"title":{},"content":{"423":{},"433":{}},"sidebarParentCategories":{}}],["https://example.com",{"_index":1695,"title":{},"content":{"432":{},"439":{}},"sidebarParentCategories":{}}],["https://example.com?c_i=eyxxx",{"_index":1704,"title":{},"content":{"432":{}},"sidebarParentCategories":{}}],["https://example.org",{"_index":1185,"title":{},"content":{"367":{},"370":{}},"sidebarParentCategories":{}}],["https://example.org:3000",{"_index":1023,"title":{},"content":{"326":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/ari",{"_index":755,"title":{},"content":{"274":{},"281":{},"337":{}},"sidebarParentCategories":{}}],["https://github.com/hyperledger/indi",{"_index":887,"title":{},"content":{"301":{},"356":{},"363":{},"376":{},"447":{}},"sidebarParentCategories":{}}],["https://github.com/nod",{"_index":757,"title":{},"content":{"274":{},"281":{},"337":{}},"sidebarParentCategories":{}}],["https://google.com",{"_index":1916,"title":{},"content":{"422":{}},"sidebarParentCategories":{}}],["https://mediator.dev.animo.id/invite?oob=eyjadhlwzsi6imh0dhbzoi8vzglky29tbs5vcmcvb3v0lw9mlwjhbmqvms4xl2ludml0yxrpb24ilcjaawqioiiymdc1mdm4ys05zgu3ltrioditywuxyi1jnzbmndg4mjyzytcilcjsywjlbci6ikfuaw1vie1lzglhdg9yiiwiywnjzxb0ijpbimrpzgnvbw0vywlwmsisimrpzgnvbw0vywlwmjtlbny9cmzjmtkixswiagfuzhnoywtlx3byb3rvy29scyi6wyjodhrwczovl2rpzgnvbw0ub3jnl2rpzgv4y2hhbmdllzeumcisimh0dhbzoi8vzglky29tbs5vcmcvy29ubmvjdglvbnmvms4wil0sinnlcnzpy2vzijpbeyjpzci6iinpbmxpbmutmcisinnlcnzpy2vfbmrwb2ludci6imh0dhbzoi8vbwvkawf0b3iuzgv2lmfuaw1vlmlkiiwidhlwzsi6imrpzc1jb21tdw5py2f0aw9uiiwicmvjaxbpzw50s2v5cyi6wyjkawq6a2v5ono2twtvsg9rtuphdu5vue5ov1pqcew3rgs1szntq0ndmlbpndjgy3fwr25iampmcsjdlcjyb3v0aw5ns2v5cyi6w119lhsiawqioiijaw5saw5llteilcjzzxj2awnlrw5kcg9pbnqioij3c3m6ly9tzwrpyxrvci5kzxyuyw5pbw8uawqilcj0exblijoizglklwnvbw11bmljyxrpb24ilcjyzwnpcgllbnrlzxlzijpbimrpzdprzxk6ejzna29ib1fnsmf1tlvqtk5xwlbwtddeazvlm21dq0myugk0mkzjcxbhbmjqakxxil0sinjvdxrpbmdlzxlzijpbxx1dfq'const",{"_index":1433,"title":{},"content":{"394":{}},"sidebarParentCategories":{}}],["https://picsum.photos/200",{"_index":1069,"title":{},"content":{"331":{}},"sidebarParentCategories":{}}],["https://rand.in",{"_index":1149,"title":{},"content":{"341":{}},"sidebarParentCategories":{}}],["https://raw.githubusercontent.com/homebrew/install/head/install.sh",{"_index":542,"title":{},"content":{"249":{},"293":{},"303":{}},"sidebarParentCategories":{}}],["https://rpm.nodesource.com/setup_18.x",{"_index":557,"title":{},"content":{"249":{}},"sidebarParentCategories":{}}],["https://sh.rustup.r",{"_index":881,"title":{},"content":{"301":{}},"sidebarParentCategories":{}}],["hub",{"_index":210,"title":{},"content":{"204":{}},"sidebarParentCategories":{}}],["hyperledg",{"_index":38,"title":{},"content":{"188":{},"205":{},"265":{},"273":{},"282":{},"311":{},"315":{},"333":{},"334":{},"384":{},"386":{},"396":{},"447":{},"451":{},"456":{}},"sidebarParentCategories":{}}],["hyperledger/anoncr",{"_index":720,"title":{},"content":{"271":{},"272":{},"385":{}},"sidebarParentCategories":{}}],["hyperledger/ari",{"_index":733,"title":{},"content":{"272":{},"279":{},"280":{},"292":{},"335":{},"370":{},"385":{},"480":{}},"sidebarParentCategories":{}}],["hyperledger/indi",{"_index":932,"title":{},"content":{"334":{},"335":{},"336":{},"385":{}},"sidebarParentCategories":{}}],["hyperlegder/anoncr",{"_index":723,"title":{},"content":{"271":{}},"sidebarParentCategories":{}}],["hyperlegder/ari",{"_index":770,"title":{},"content":{"279":{}},"sidebarParentCategories":{}}],["hyperlegder/indi",{"_index":933,"title":{},"content":{"334":{}},"sidebarParentCategories":{}}],["i'd",{"_index":456,"title":{},"content":{"247":{}},"sidebarParentCategories":{}}],["i.",{"_index":1880,"title":{},"content":{"421":{}},"sidebarParentCategories":{}}],["id",{"_index":375,"title":{},"content":{"237":{},"256":{},"268":{},"321":{},"340":{},"341":{},"350":{},"367":{},"369":{},"370":{},"381":{},"382":{},"386":{},"393":{},"394":{},"423":{},"427":{},"431":{},"432":{},"435":{},"439":{},"444":{},"447":{},"450":{},"451":{},"453":{},"454":{},"456":{}},"sidebarParentCategories":{}}],["ident",{"_index":10,"title":{},"content":{"188":{},"202":{},"204":{},"207":{},"257":{},"259":{},"266":{},"282":{},"290":{}},"sidebarParentCategories":{}}],["identifi",{"_index":222,"title":{},"content":{"207":{},"322":{},"336":{},"339":{},"343":{},"413":{},"447":{},"451":{},"453":{},"476":{},"477":{}},"sidebarParentCategories":{}}],["illustr",{"_index":1440,"title":{},"content":{"395":{}},"sidebarParentCategories":{}}],["imag",{"_index":1067,"title":{},"content":{"331":{}},"sidebarParentCategories":{}}],["imoprt",{"_index":947,"title":{},"content":{"336":{}},"sidebarParentCategories":{}}],["implement",{"_index":126,"title":{"257":{}},"content":{"201":{},"211":{},"212":{},"238":{},"241":{},"243":{},"253":{},"255":{},"257":{},"258":{},"259":{},"266":{},"270":{},"271":{},"278":{},"279":{},"282":{},"283":{},"291":{},"292":{},"324":{},"327":{},"335":{},"336":{},"346":{},"347":{},"419":{},"423":{},"441":{},"448":{},"450":{},"457":{},"468":{}},"sidebarParentCategories":{}}],["import",{"_index":360,"title":{"386":{}},"content":{"237":{},"243":{},"247":{},"255":{},"256":{},"260":{},"272":{},"280":{},"289":{},"291":{},"292":{},"321":{},"327":{},"328":{},"335":{},"336":{},"345":{},"346":{},"347":{},"350":{},"370":{},"380":{},"385":{},"386":{},"387":{},"410":{},"411":{},"412":{},"418":{},"423":{},"424":{},"431":{},"432":{},"433":{},"434":{},"441":{},"443":{},"444":{},"446":{},"447":{},"448":{},"451":{},"452":{},"453":{},"454":{},"455":{},"456":{},"458":{},"468":{},"479":{},"480":{},"481":{}},"sidebarParentCategories":{}}],["imposs",{"_index":1389,"title":{},"content":{"392":{}},"sidebarParentCategories":{}}],["improv",{"_index":1498,"title":{},"content":{"404":{},"413":{}},"sidebarParentCategories":{}}],["inbound",{"_index":500,"title":{},"content":{"260":{},"268":{},"367":{},"370":{},"380":{}},"sidebarParentCategories":{}}],["inboundtransport",{"_index":1309,"title":{},"content":{"380":{}},"sidebarParentCategories":{}}],["includ",{"_index":266,"title":{},"content":{"230":{},"238":{},"255":{},"272":{},"311":{},"321":{},"369":{},"370":{},"405":{},"413":{},"423":{},"446":{},"452":{}},"sidebarParentCategories":{}}],["incom",{"_index":1198,"title":{"369":{},"381":{}},"content":{"381":{}},"sidebarParentCategories":{}}],["incorrect",{"_index":2113,"title":{},"content":{"454":{}},"sidebarParentCategories":{}}],["independ",{"_index":875,"title":{},"content":{"301":{},"448":{}},"sidebarParentCategories":{}}],["index.(js|ts|jsx|tsx",{"_index":613,"title":{},"content":{"255":{}},"sidebarParentCategories":{}}],["index.tsx",{"_index":615,"title":{},"content":{"255":{}},"sidebarParentCategories":{}}],["indi",{"_index":667,"title":{"259":{},"282":{},"283":{},"289":{},"296":{},"301":{},"304":{},"318":{},"333":{},"334":{},"335":{},"337":{},"347":{},"348":{},"356":{},"363":{},"376":{},"399":{},"444":{},"456":{},"468":{}},"content":{"257":{},"259":{},"270":{},"272":{},"273":{},"278":{},"282":{},"283":{},"284":{},"285":{},"286":{},"287":{},"288":{},"289":{},"292":{},"293":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{},"307":{},"308":{},"309":{},"310":{},"311":{},"315":{},"333":{},"334":{},"335":{},"336":{},"337":{},"347":{},"348":{},"350":{},"355":{},"356":{},"357":{},"358":{},"362":{},"363":{},"364":{},"365":{},"367":{},"370":{},"375":{},"376":{},"377":{},"382":{},"384":{},"385":{},"386":{},"397":{},"399":{},"407":{},"414":{},"421":{},"422":{},"429":{},"431":{},"436":{},"438":{},"441":{},"443":{},"444":{},"445":{},"446":{},"447":{},"451":{},"452":{},"453":{},"454":{},"456":{},"457":{},"468":{},"471":{},"474":{},"476":{},"478":{},"481":{}},"sidebarParentCategories":{"293":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{},"307":{},"308":{},"309":{},"310":{},"351":{},"352":{},"353":{},"354":{},"355":{},"356":{},"357":{},"358":{},"359":{},"360":{},"361":{},"362":{},"363":{},"364":{},"365":{},"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"378":{}}}],["indic",{"_index":1494,"title":{},"content":{"403":{},"421":{},"431":{},"432":{}},"sidebarParentCategories":{}}],["indy::credenti",{"_index":1584,"title":{},"content":{"477":{}},"sidebarParentCategories":{}}],["indy::key",{"_index":1571,"title":{},"content":{"473":{}},"sidebarParentCategories":{}}],["indy::mastersecret",{"_index":1578,"title":{},"content":{"476":{}},"sidebarParentCategories":{}}],["indy:(agentcontext",{"_index":1963,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["this.loglevel",{"_index":1077,"title":{},"content":{"346":{}},"sidebarParentCategories":{}}],["this.messagesend",{"_index":1986,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessag",{"_index":1975,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["this.messagesender.sendmessage(outboundmessagecontext",{"_index":1979,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(agentcontext",{"_index":1962,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["this.myrecordrepository.save(record",{"_index":1952,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["this.myrepository.save(messagecontext.agentcontext",{"_index":1965,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["this.myrepository.save(record",{"_index":1960,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["this.myservic",{"_index":1987,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["this.registerhandlers(messagehandlerregistri",{"_index":1989,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["those",{"_index":1062,"title":{},"content":{"330":{},"440":{},"452":{}},"sidebarParentCategories":{}}],["though",{"_index":1714,"title":{},"content":{"432":{}},"sidebarParentCategories":{}}],["threadid",{"_index":1950,"title":{},"content":{"423":{}},"sidebarParentCategories":{}}],["three",{"_index":140,"title":{},"content":{"202":{},"247":{},"409":{},"457":{}},"sidebarParentCategories":{}}],["threshold",{"_index":1887,"title":{},"content":{"421":{}},"sidebarParentCategories":{}}],["through",{"_index":450,"title":{},"content":{"243":{},"247":{},"290":{},"347":{},"392":{},"395":{},"421":{},"431":{}},"sidebarParentCategories":{}}],["throughout",{"_index":1674,"title":{},"content":{"421":{},"431":{},"445":{}},"sidebarParentCategories":{}}],["throw",{"_index":1269,"title":{},"content":{"357":{},"364":{},"377":{},"387":{},"388":{},"413":{},"437":{},"451":{}},"sidebarParentCategories":{}}],["thrown",{"_index":1583,"title":{},"content":{"423":{},"476":{}},"sidebarParentCategories":{}}],["thu",{"_index":646,"title":{},"content":{"255":{},"392":{},"394":{},"446":{},"447":{},"457":{}},"sidebarParentCategories":{}}],["ti",{"_index":46,"title":{},"content":{"188":{},"247":{},"422":{}},"sidebarParentCategories":{}}],["time",{"_index":696,"title":{},"content":{"262":{},"392":{},"422":{},"447":{},"448":{},"457":{},"479":{}},"sidebarParentCategories":{}}],["timestamp",{"_index":1552,"title":{},"content":{"413":{}},"sidebarParentCategories":{}}],["tip",{"_index":767,"title":{},"content":{"278":{},"392":{}},"sidebarParentCategories":{}}],["tlsv1.2",{"_index":879,"title":{},"content":{"301":{}},"sidebarParentCategories":{}}],["tmp",{"_index":1565,"title":{},"content":{"470":{}},"sidebarParentCategories":{}}],["todo",{"_index":1202,"title":{},"content":{"369":{},"458":{}},"sidebarParentCategories":{}}],["togeth",{"_index":114,"title":{},"content":{"188":{}},"sidebarParentCategories":{}}],["token",{"_index":347,"title":{},"content":{"236":{},"237":{},"238":{},"242":{},"290":{},"292":{}},"sidebarParentCategories":{}}],["tool",{"_index":60,"title":{},"content":{"188":{},"209":{},"424":{},"434":{},"458":{}},"sidebarParentCategories":{}}],["toolkit",{"_index":169,"title":{},"content":{"202":{},"238":{}},"sidebarParentCategories":{}}],["top",{"_index":94,"title":{},"content":{"188":{},"231":{},"238":{}},"sidebarParentCategories":{}}],["topic",{"_index":1592,"title":{},"content":{"479":{}},"sidebarParentCategories":{}}],["toward",{"_index":751,"title":{},"content":{"274":{},"281":{},"337":{}},"sidebarParentCategories":{}}],["trace(messag",{"_index":1082,"title":{},"content":{"346":{}},"sidebarParentCategories":{}}],["traffic",{"_index":677,"title":{},"content":{"260":{}},"sidebarParentCategories":{}}],["transact",{"_index":926,"title":{},"content":{"333":{},"336":{},"380":{},"385":{},"386":{},"447":{}},"sidebarParentCategories":{}}],["transactionauthoragr",{"_index":957,"title":{},"content":{"336":{}},"sidebarParentCategories":{}}],["transactionauthoragreement.acceptancemechan",{"_index":969,"title":{},"content":{"336":{}},"sidebarParentCategories":{}}],["transactionauthoragreement.vers",{"_index":965,"title":{},"content":{"336":{}},"sidebarParentCategories":{}}],["transfer",{"_index":1588,"title":{},"content":{"478":{}},"sidebarParentCategories":{}}],["transform",{"_index":1569,"title":{},"content":{"432":{},"440":{},"472":{},"474":{}},"sidebarParentCategories":{}}],["transmit",{"_index":65,"title":{},"content":{"188":{},"368":{}},"sidebarParentCategories":{}}],["transport",{"_index":253,"title":{"260":{}},"content":{"209":{},"260":{},"268":{},"367":{},"370":{},"380":{},"392":{},"450":{}},"sidebarParentCategories":{}}],["transportholder.registerinboundtransport(new",{"_index":1329,"title":{},"content":{"380":{}},"sidebarParentCategories":{}}],["transportholder.registeroutboundtransport(new",{"_index":1328,"title":{},"content":{"380":{}},"sidebarParentCategories":{}}],["transportissuer.registerinboundtransport(new",{"_index":1326,"title":{},"content":{"380":{}},"sidebarParentCategories":{}}],["transportissuer.registeroutboundtransport(new",{"_index":1325,"title":{},"content":{"380":{}},"sidebarParentCategories":{}}],["transportsess",{"_index":2065,"title":{"450":{}},"content":{"450":{}},"sidebarParentCategories":{}}],["tri",{"_index":1503,"title":{"472":{}},"content":{"405":{},"415":{},"430":{},"442":{}},"sidebarParentCategories":{}}],["trick",{"_index":648,"title":{},"content":{"255":{}},"sidebarParentCategories":{}}],["true",{"_index":945,"title":{},"content":{"329":{},"330":{},"332":{},"335":{},"336":{},"367":{},"368":{},"370":{},"380":{},"385":{},"386":{},"393":{},"412":{},"419":{},"422":{},"439":{},"444":{},"446":{},"447":{},"448":{},"451":{},"453":{},"454":{}},"sidebarParentCategories":{}}],["ts",{"_index":625,"title":{},"content":{"255":{}},"sidebarParentCategories":{}}],["ts/core",{"_index":1030,"title":{},"content":{"327":{},"328":{}},"sidebarParentCategories":{}}],["ts/push",{"_index":327,"title":{},"content":{"238":{}},"sidebarParentCategories":{}}],["ts/react",{"_index":325,"title":{},"content":{"238":{}},"sidebarParentCategories":{}}],["ts/redux",{"_index":322,"title":{},"content":{"238":{}},"sidebarParentCategories":{}}],["ts/rest",{"_index":324,"title":{},"content":{"238":{}},"sidebarParentCategories":{}}],["tsx",{"_index":626,"title":{},"content":{"255":{}},"sidebarParentCategories":{}}],["tsyring",{"_index":2063,"title":{},"content":{"449":{}},"sidebarParentCategories":{}}],["tunnel",{"_index":1312,"title":{},"content":{"380":{}},"sidebarParentCategories":{}}],["turn",{"_index":1593,"title":{},"content":{"480":{}},"sidebarParentCategories":{}}],["tutori",{"_index":103,"title":{"263":{},"311":{}},"content":{"188":{},"256":{},"262":{},"264":{},"292":{},"311":{},"313":{},"314":{},"315":{},"316":{},"338":{},"366":{},"367":{},"370":{},"379":{},"380":{},"384":{},"386":{},"389":{},"391":{},"395":{},"416":{}},"sidebarParentCategories":{"319":{},"320":{},"321":{},"322":{},"323":{},"324":{},"325":{},"326":{},"327":{},"328":{},"329":{},"330":{},"331":{},"332":{},"338":{},"339":{},"340":{},"341":{},"342":{},"343":{},"344":{},"345":{},"346":{},"347":{},"348":{},"349":{},"350":{},"351":{},"352":{},"353":{},"354":{},"355":{},"356":{},"357":{},"358":{},"359":{},"360":{},"361":{},"362":{},"363":{},"364":{},"365":{},"366":{},"367":{},"368":{},"369":{},"370":{},"371":{},"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"380":{},"381":{},"382":{},"383":{},"384":{},"385":{},"386":{},"387":{},"388":{},"389":{},"390":{},"391":{},"392":{},"393":{},"394":{},"395":{},"396":{}}}],["two",{"_index":182,"title":{},"content":{"203":{},"231":{},"340":{},"393":{},"395":{},"404":{},"418":{},"422":{},"440":{}},"sidebarParentCategories":{}}],["type",{"_index":223,"title":{"343":{},"404":{},"433":{},"455":{}},"content":{"207":{},"256":{},"283":{},"320":{},"321":{},"322":{},"323":{},"324":{},"325":{},"326":{},"327":{},"328":{},"329":{},"330":{},"331":{},"332":{},"336":{},"340":{},"341":{},"343":{},"345":{},"350":{},"386":{},"392":{},"403":{},"421":{},"423":{},"426":{},"430":{},"431":{},"433":{},"439":{},"441":{},"445":{},"448":{},"455":{}},"sidebarParentCategories":{}}],["typedarrayencod",{"_index":2048,"title":{},"content":{"447":{},"451":{}},"sidebarParentCategories":{}}],["typedarrayencoder.fromstring('01eafa4de4e22ed4fc2ee522b6ce2731",{"_index":2051,"title":{},"content":{"447":{}},"sidebarParentCategories":{}}],["typedarrayencoder.fromstring(`