.ds-toc {
  padding: 20px 20px 20px 0;
  font-size: 14px;
  font-family: "DNA Text Medium", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #551C3E;
}
.ds-toc a:not(.active) {
  color: #551C3E;
}
.ds-toc ol {
  list-style: none;
  margin: 0;
  border-left: 2px solid #E7E5E3;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  overflow: initial;
}
.ds-toc li {
  margin: 0;
}
.ds-toc a {
  display: block;
  margin-left: -2px;
  border-left: 2px solid transparent;
  padding-left: calc(0.5rem + 2px);
}
.ds-toc a.active {
  border-left: 2px solid #DA0070;
}

.dna-layout__sidebar--right .portlet-column-content {
  height: 100%;
}
.dna-layout__sidebar--right .portlet-boundary_fi_dna_liferay_portlet_toc_TableOfContentsPortlet_ {
  position: sticky;
  top: 0;
  transition: top 0.2s ease-in-out;
}
.ds-main-header__wrap.open ~ .page-wrapper .dna-layout__sidebar--right .portlet-boundary_fi_dna_liferay_portlet_toc_TableOfContentsPortlet_ {
  top: 98px;
}
@media screen and (min-width: 1024px) {
  .ds-main-header__wrap.open ~ .page-wrapper .dna-layout__sidebar--right .portlet-boundary_fi_dna_liferay_portlet_toc_TableOfContentsPortlet_ {
    top: 108px;
  }
}
body.admin-signed-in .dna-layout__sidebar--right .portlet-boundary_fi_dna_liferay_portlet_toc_TableOfContentsPortlet_ {
  position: static;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL3NvdXJjZS8iLCJzb3VyY2VzIjpbInRhYmxlLW9mLWNvbnRlbnRzLnNjc3MiLCJob21lL2plbmtpbnMvYWdlbnQvd29ya3NwYWNlL0ROQWZpL0JVSUxEX0FORF9ERVBMT1lfUExBTlMvRE5BLmZpX0RYUF9QUk9EX0FXUy9Qcm9kX2FwcDJfbGlmZXJheV9pbnN0YWxsX2FuZF9kZXBsb3kvZG5hLWxpZmVyYXktc291cmNlL2RuYS1maS10aGVtZS9zcmMvY3NzL2RuYS9fdmFycy5zY3NzIiwiaG9tZS9qZW5raW5zL2FnZW50L3dvcmtzcGFjZS9ETkFmaS9CVUlMRF9BTkRfREVQTE9ZX1BMQU5TL0ROQS5maV9EWFBfUFJPRF9BV1MvUHJvZF9hcHAyX2xpZmVyYXlfaW5zdGFsbF9hbmRfZGVwbG95L2RuYS1saWZlcmF5LXNvdXJjZS9kbmEtZmktdGhlbWUvc3JjL2Nzcy9kbmEvX21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBO0VBQ0U7RUFDQSxXQ1k2QjtFRFg3QixhQ3NCOEI7RURyQjlCLE9Db0RpQjs7QURsRGpCO0VBQ0UsT0NpRGU7O0FEL0NqQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVGO0VBQ0U7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNFOzs7QUFPSjtFQUNFOztBQUVGO0VBQ0U7RUFDQTtFQUNBOztBQUdBO0VFcUZBOztBQXhISTtFRm1DSjtJRXVGSTs7O0FGbkZKO0VBQ0UiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBpbXBvcnQgXCIuLi92YXJzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi5kcy10b2Mge1xuICBwYWRkaW5nOiAyMHB4IDIwcHggMjBweCAwO1xuICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktdGV4dC1tZWRpdW07XG4gIGNvbG9yOiAkY29sb3ItdGV4dC0tcGx1bTtcblxuICBhOm5vdCguYWN0aXZlKSB7XG4gICAgY29sb3I6ICRjb2xvci10ZXh0LS1wbHVtO1xuICB9XG4gIG9sIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRjb2xvci1saW5lLS0wMztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAwLjVyZW07XG4gICAgb3ZlcmZsb3c6IGluaXRpYWw7XG4gIH1cbiAgbGkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogLTJweDsgLy8gb24gdG9wIG9mIGJvcmRlclxuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKDAuNXJlbSArIDJweCk7XG4gICAgJi5hY3RpdmUge1xuICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkY29sb3ItdGV4dC0tcGluaztcbiAgICB9XG4gIH1cbn1cblxuLy8gc3RpY2t5IGluIHJpZ2h0IHBhbmVsLCB3aGVuIG5vdCBpbiBDTVMgbW9kZVxuLmRuYS1sYXlvdXRfX3NpZGViYXItLXJpZ2h0IHtcbiAgLnBvcnRsZXQtY29sdW1uLWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICAucG9ydGxldC1ib3VuZGFyeV9maV9kbmFfbGlmZXJheV9wb3J0bGV0X3RvY19UYWJsZU9mQ29udGVudHNQb3J0bGV0XyB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgZWFzZS1pbi1vdXQ7IC8vIHdoZW4gbW92aW5nIGRlcGVuZGluZyBvbiBtYWluIGhlYWRlciBvcGVuIG9yIG5vdFxuXG4gICAgLy8gd2hlbiBtYWluIGhlYWRlciBpcyBvcGVuLCBrZWVwIHRoZSBzdGlja3kgZWxlbWVudCBpbiB2aWV3IHNvIHRoYXQgaXQgZG9lc24ndCBnbyBiZWxvdyB0aGUgaGVhZGVyXG4gICAgLmRzLW1haW4taGVhZGVyX193cmFwLm9wZW4gfiAucGFnZS13cmFwcGVyICYge1xuICAgICAgQGluY2x1ZGUgbWF0Y2hUb0hlYWRlckhlaWdodCgndG9wJyk7XG4gICAgfVxuXG4gICAgYm9keS5hZG1pbi1zaWduZWQtaW4gJiB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gQnJlYWtwb2ludHNcbiRicmVha3BvaW50LXRpbnktbW9iaWxlOiAzNjBweDtcbiRicmVha3BvaW50LWxhcmdlLW1vYmlsZTogNDgwcHg7XG4kYnJlYWtwb2ludC10YWJsZXQ6IDc2OHB4O1xuJGJyZWFrcG9pbnQtZGVza3RvcDogMTAyNHB4O1xuJGJyZWFrcG9pbnQtZGVza3RvcC1jb250ZW50OiAxMjgwcHg7XG4kYnJlYWtwb2ludC1sYXJnZS1kZXNrdG9wOiAxNDQwcHg7XG4kYnJlYWtwb2ludC1leHRyYWxhcmdlLWRlc2t0b3A6IDE5MjBweDtcbi8vIGNvbnRhaW5lciB3aWR0aHMgaW4gbm9ybWFsIHBhZ2UgY29udGVudFxuJGNvbnRhaW5lci13aWR0aC1sYXJnZS1tb2JpbGU6ICRicmVha3BvaW50LWxhcmdlLW1vYmlsZSAtIDIqMjBweDtcbiRjb250YWluZXItd2lkdGgtdGFibGV0OiAkYnJlYWtwb2ludC10YWJsZXQgLSAyKjQwcHg7XG4kY29udGFpbmVyLXdpZHRoLWRlc2t0b3A6ICRicmVha3BvaW50LWRlc2t0b3AgLSAyKjQwcHg7XG5cbiRmb250LXNpemUtbm9ybWFsOiAgICAgICAgICAgICAxNnB4O1xuJGZvbnQtc2l6ZS1lbXBoYXNpemVkOiAgICAgICAgIDE4cHg7XG4kZm9udC1zaXplLWJpZ2dlcjogICAgICAgICAgICAgMjBweDtcbiRmb250LXNpemUtbGFyZ2U6ICAgICAgICAgICAgICAzMnB4O1xuJGZvbnQtc2l6ZS1sYXJnZXN0OiAgICAgICAgICAgIDQ0cHg7XG4kZm9udC1zaXplLWh1Z2U6ICAgICAgICAgICAgICAgODBweDtcbiRmb250LXNpemUtc21hbGw6ICAgICAgICAgICAgICAxNHB4O1xuJGZvbnQtc2l6ZS1leHRyYXNtYWxsOiAgICAgICAgIDEycHg7XG4kZm9udC1zaXplLXRpbnk6ICAgICAgICAgICAgICAgMTBweDtcblxuJGxpbmUtaGVpZ2h0LW5vcm1hbDogICAgICAgICAgIDEuMjU7IC8vIGZvciAxNnB4LCAyMHB4XG4kbGluZS1oZWlnaHQtbGFyZ2U6ICAgICAgICAgICAgMS41OyAvLyBmb3IgMTZweCwgMjRweFxuXG4kZm9udC1mYW1pbHktaGVhZGluZy1kZW1pLWJvbGQ6ICdETkEgSGVhZGluZyBEZW1pIEJvbGQnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LWhlYWRpbmctYm9sZDogICAgICAnRE5BIEhlYWRpbmcgQm9sZCcsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktaGVhZGluZy1ibGFjazogICAgICdETkEgSGVhZGluZyBCbGFjaycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktdGV4dC1ib2xkOiAgICAgICAgICdETkEgVGV4dCBCb2xkJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS10ZXh0LW1lZGl1bTogICAgICAgJ0ROQSBUZXh0IE1lZGl1bScsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktdGV4dC1yZWd1bGFyOiAgICAgICdETkEgVGV4dCBSZWd1bGFyJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuLy8gY29sb3JzIGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9maWxlL0w0SUc2U0czQUw3c3VlOVlHMWcyZ0IvRE5BLUNvbG9ycy1ORVc/bm9kZS1pZD0yJTNBNDE5XG4kY29sb3ItbWFpbi0td2hpdGU6ICNGRkZGRkY7XG4kY29sb3ItbWFpbi0tYmxhY2s6ICMxMjEyMTI7XG4kY29sb3ItbWFpbi0tcGluazogI0RBMDA3MDtcbiRjb2xvci1tYWluLS1waW5rLTAxOiAjRkY4MkMxO1xuJGNvbG9yLW1haW4tLXBpbmstMDI6ICNGRkJGREY7XG4kY29sb3ItbWFpbi0tcGx1bTogIzU1MUMzRTtcbiRjb2xvci1tYWluLS1wbHVtLTAxOiAjNjkyMTRDO1xuJGNvbG9yLW1haW4tLXBsdW0tMDI6ICM3OTJBNTk7XG5cbiRjb2xvci1hY2NlbnQtLWxlbW9uOiAjRkZGMzQ3O1xuJGNvbG9yLWFjY2VudC0tbGVtb24tMDE6ICNGRkY5QTM7XG4kY29sb3ItYWNjZW50LS1sZW1vbi0wMjogI0ZGRkFCQTtcbiRjb2xvci1hY2NlbnQtLXNreTogIzJFQ0FGMDtcbiRjb2xvci1hY2NlbnQtLXNreS0wMTogIzc3RENGNTtcbiRjb2xvci1hY2NlbnQtLXNreS0wMjogIzk2RTRGODtcbiRjb2xvci1hY2NlbnQtLW9yYW5nZTogI0ZGQTYzMztcbiRjb2xvci1hY2NlbnQtLW9yYW5nZS0wMTogI0ZGQ0E4NTtcbiRjb2xvci1hY2NlbnQtLW9yYW5nZS0wMjogI0ZGREJBRDtcblxuJGNvbG9yLWJnLS13aGl0ZTogI0ZGRkZGRjtcbiRjb2xvci1iZy0tc2FuZDogI0ZERkJGQTtcbiRjb2xvci1iZy0tc2FuZC0wMTogI0Y4RjRGMTtcbiRjb2xvci1iZy0tc2FuZC0wMjogI0VERThFMTtcbiRjb2xvci1iZy0tZnJvc3RlZGdsYXNzOiAjZjVmNWY1ZWI7XG5cbiRjb2xvci10ZXh0LS1ibGFjazogIzEyMTIxMjtcbiRjb2xvci10ZXh0LS1kYXJrLWdyYXk6ICM1MDUwNTA7XG4kY29sb3ItdGV4dC0tcGx1bTogIzU1MUMzRTtcbiRjb2xvci10ZXh0LS1waW5rOiAjREEwMDcwO1xuJGNvbG9yLXRleHQtLXdoaXRlOiAjRkZGRkZGO1xuJGNvbG9yLXRleHQtLWRpc2FibGVkOiBzY2FsZV9jb2xvcigkY29sb3ItdGV4dC0tYmxhY2ssICRhbHBoYTogLTUwJSk7XG5cbiRjb2xvci11dGlsaXR5LS10ZXh0LWxpbms6ICNEQTAwNzA7XG4kY29sb3ItdXRpbGl0eS0tdGV4dC1saW5rLWhvdmVyOiBzY2FsZV9jb2xvcigkY29sb3ItdXRpbGl0eS0tdGV4dC1saW5rLCAkbGlnaHRuZXNzOiAtMjAlKTtcbiRjb2xvci11dGlsaXR5LS1mb2N1czogIzAwNjRFMjtcbiRjb2xvci11dGlsaXR5LS1mb2N1cy1saWdodDogI0Q4RTlGRjtcblxuJGNvbG9yLWxpbmUtLTAxOiAjOTQ4Qjg5O1xuJGNvbG9yLWxpbmUtLTAyOiAjRDREMkNFO1xuJGNvbG9yLWxpbmUtLTAzOiAjRTdFNUUzO1xuJGNvbG9yLWxpbmUtLTA0OiAjRUZFRUVEO1xuXG4kY29sb3Itbm90aWZpY2F0aW9uLS1pbmZvOiAjMEI3Qzk5O1xuJGNvbG9yLW5vdGlmaWNhdGlvbi0td2FybmluZzogI0VCNjYwMDtcbiRjb2xvci1ub3RpZmljYXRpb24tLWVycm9yOiAjREQwQTBBO1xuJGNvbG9yLW5vdGlmaWNhdGlvbi0tc3VjY2VzczogIzAwODUwMDtcblxuJGJvcmRlci1yYWRpdXMtLXNtYWxsOiA0cHg7XG4kYm9yZGVyLXJhZGl1cy0tbm9ybWFsOiA4cHg7XG4kYm9yZGVyLXJhZGl1cy0tZnVsbDogNTAlO1xuXG5cbi8vcGFnZSBtaW4gbWF4IHdpZHRoc1xuJHBhZ2UtbWluLXdpZHRoOiAzMjBweDtcbiRwYWdlLW1heC13aWR0aDogMjU2MHB4O1xuJHBhZ2UtbGF5b3V0LW5vcm1hbC1jb250ZW50LW1heHdpZHRoOiAxMjAwcHg7XG4kcGFnZS1sYXlvdXQtbWVkaXVtLWNvbnRlbnQtbWF4d2lkdGg6IDg2MHB4O1xuJHBhZ2UtbGF5b3V0LXNtYWxsLWNvbnRlbnQtbWF4d2lkdGg6IDY0MHB4O1xuXG4vLyBncmlkIHBhZGRpbmdzXG4kZ3JpZC1nYXAtLXNtYWxsOiAxMHB4O1xuJGdyaWQtZ2FwLS13aWRlOiAzMHB4O1xuJGdyaWQtZ2FwLS1sYXJnZTogNjBweDtcbiRncmlkLXBhZGRpbmc6IDEwcHg7XG5cbi8vcG9ydGxldCBtYXJnaW5zXG4kbWFyZ2luLXBvcnRsZXQtZGVmYXVsdDogICAgICAgIDUwcHg7XG4kbWFyZ2luLXBvcnRsZXQtc21hbGw6ICAgICAgICAgIDMwcHg7XG4kbWFyZ2luLXBvcnRsZXQtZXh0cmFzbWFsbDogICAgIDEwcHg7XG4kbWFyZ2luLXBvcnRsZXQtZXh0cmFsYXJnZTogICAgIDIwdmg7XG5cbi8vaW5wdXQgdmFyaWFibGVzXG4kYnV0dG9uLWhlaWdodC1kZWZhdWx0OiAgIDQwcHg7XG4kYnV0dG9uLWhlaWdodC1zbWFsbDogICAgIDMycHg7XG4kaW5wdXQtaGVpZ2h0LWRlZmF1bHQ6ICAgIDQwcHg7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICRjb2xvci1saW5lLS0wMTtcbiRpbnB1dC1maWVsZC1iZzogICAgICAgICAgICAgICAgJGNvbG9yLWJnLS13aGl0ZTtcbiRpbnB1dC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgJGNvbG9yLXRleHQtLWJsYWNrO1xuJGlucHV0LWJvcmRlci1zaG9ydGhhbmQ6ICAgICAgICAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiRmb3JtLWVsZW1lbnRzLW1heC13aWR0aDogICAgICAgNTE1cHg7XG5cbi8vbGFiZWxcbiRkcy1sYWJlbC1oZWlnaHQ6IDIycHg7XG5cbi8vIFVzZSB0aGVzZSBjb2xvcnMgYW55d2hlcmUgYSBsaW5rLCBpbnB1dCBvciBhIGJ1dHRvbiBpcyBkaXNhYmxlZCFcbiRkaXNhYmxlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgI2YyZjJmMjtcbiRkaXNhYmxlZC10ZXh0OiAgICAgICAgICAgICAgICAgIzk5OTk5OTtcblxuXG4kaGVhZGVyLWhlaWdodC1kZXNrdG9wOiAxMDhweDsgLy8gNDhweCBzaXRlIG5hdiArIDYwIG1haW4gbmF2XG4kaGVhZGVyLWhlaWdodC1tb2JpbGU6IDk4cHg7IC8vIDM4cHggc2l0ZSBuYXYgKyA2MCBtYWluIG5hdlxuJGhlYWRlci1tYWluLW5hdi1oZWlnaHQ6IDYwcHg7XG4kc2Vjb25kYXJ5LW5hdi1oZWlnaHQtZGVza3RvcDogNTdweDsgLy8gbmVlZGVkIGZvciB0b2FzdGVyIHBvc2l0aW9uaW5nXG4kc2Vjb25kYXJ5LW5hdi1oZWlnaHQtbW9iaWxlOiA2NHB4O1xuJGFkbWluLWRvY2tiYXItaGVpZ2h0OiA3NHB4O1xuJGFkbWluLWVkaXQtbW9kZS1kb2NrYmFyLWhlaWdodDogMTU1cHg7XG5cbiRjYXJkLWhlaWdodDogNDAwcHg7XG4kY2FyZC1oZWlnaHQtYWN0dWFsOiA0MDBweCAtIDJweDsgLy9ib3JkZXJzXG4kY2FyZC1oZWlnaHQtZXh0ZW5kZWQ6IDYwMHB4O1xuJGNhcmQtdGl0bGUtbGluZS1oZWlnaHQ6IDIwcHg7XG5cbiRmb3JtLWVsZW1lbnQtYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG5cbiR0YWItaXRlbS1oZWlnaHQ6IDM2cHg7XG5cbi8vIHotaW5kZXggbGV2ZWxzXG4kei1pbmRleC1sZXZlbC0xLWJhc2U6IDA7XG4kei1pbmRleC1sZXZlbC0yLWZsb2F0aW5nOiAyMDA7IC8vIGZvciBhbGwgZmlyc3QgbGV2ZWwgZmxvYXRpbmcgZWxlbWVudHNcbiR6LWluZGV4LWxldmVsLTMtcG9wdXAtb3ZlcmxheTogNjAwOyAvLyBmb3IgaGVhZGVyIGxvZ2luIG1vZGFscyBhbmQgb3RoZXIgcG9wdXBzIHRoYXQgc2hvdWxkIGJlIHVuZGVyIHRoZSBoZWFkZXJcbiR6LWluZGV4LWxldmVsLTQtaGVhZGVyOiAxMDAwO1xuJHotaW5kZXgtbGV2ZWwtNS1jaGF0OiAxMDQwOyAvLyBTaG91bGQgYmUgYWJvdmUgaGVhZGVyIGJ1dCBiZWxvdyBvdmVybGF5LiBSb2NrZXQgbW9kYWwgaGFzIHotaW5kZXg6IDEwNTAsIHNvIHdlIG5lZWQgQ2hhdCB0byBiZSBqdXN0IGJlbG93LCBhbmQgYWJvdmUgdGhlaXIgaGVhZGVyIHRoYXQgaGFzIDEwMzAuXG4kei1pbmRleC1sZXZlbC02LW1vZGFsLW92ZXJsYXk6IDExMDA7IC8vIGZvciBtb2RhbCB0aGF0IHNob3VsZCBjb3ZlciB0aGUgaGVhZGVyXG4kei1pbmRleC1sZXZlbC03LW1vZGFsOiAxMjAwOyAvLyB0b3AgbGV2ZWwgbW9kYWxzIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcG9pbnQpIHtcbiAgICBAaWYgJHBvaW50ID09IG1vYmlsZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXRhYmxldCAtIDEpICB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSB0YWJsZXQge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IHNtYWxsZXItdGhhbi1kZXNrdG9wIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtZGVza3RvcCAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IGRlc2t0b3Age1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1kZXNrdG9wKSB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSBkZXNrdG9wLWNvbnRlbnQge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1kZXNrdG9wLWNvbnRlbnQpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IGxhcmdlLWRlc2t0b3Age1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZS1kZXNrdG9wKSB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSBleHRyYWxhcmdlLWRlc2t0b3Age1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1leHRyYWxhcmdlLWRlc2t0b3ApIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IHRhYmxldC1vbmx5IHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtdGFibGV0KSBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtZGVza3RvcCAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBvaW50ID09IGxhcmdlLW1vYmlsZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcG9pbnQgPT0gbGFyZ2UtbW9iaWxlLW9ubHkge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZS1tb2JpbGUpIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC10YWJsZXQgLSAxKSB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSBzbWFsbC1tb2JpbGUge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZS1tb2JpbGUgLSAxKSAgeyBAY29udGVudDsgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcG9pbnQgPT0gdGlueS1tb2JpbGUge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC10aW55LW1vYmlsZSAtIDEpICB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwb2ludCA9PSBtYXgtcGFnZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRwYWdlLW1heC13aWR0aCkgIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSAoI3skcG9pbnR9KSB7IEBjb250ZW50OyB9XG4gICAgfVxufVxuQG1peGluIGNvbnRhaW5lci1zbWFsbC1tb2JpbGUge1xuICAgIEBjb250YWluZXIgKG1heC13aWR0aDogI3skY29udGFpbmVyLXdpZHRoLWxhcmdlLW1vYmlsZSAtIDF9KSB7IEBjb250ZW50OyB9XG59XG5AbWl4aW4gY29udGFpbmVyLWxhcmdlLW1vYmlsZSB7XG4gICAgQGNvbnRhaW5lciAobWluLXdpZHRoOiAjeyRjb250YWluZXItd2lkdGgtbGFyZ2UtbW9iaWxlfSkgeyBAY29udGVudDsgfVxufVxuQG1peGluIGNvbnRhaW5lci10YWJsZXQge1xuICAgIEBjb250YWluZXIgKG1pbi13aWR0aDogI3skY29udGFpbmVyLXdpZHRoLXRhYmxldH0pIHsgQGNvbnRlbnQ7IH1cbn1cbkBtaXhpbiBjb250YWluZXItZGVza3RvcCB7XG4gICAgQGNvbnRhaW5lciAobWluLXdpZHRoOiAjeyRjb250YWluZXItd2lkdGgtZGVza3RvcH0pIHsgQGNvbnRlbnQ7IH1cbn1cblxuQG1peGluIG9yaWVudGF0aW9uKCRvcmllbnRhdGlvbikge1xuICAgIEBpZiAkb3JpZW50YXRpb24gPT0gbGFuZHNjYXBlIHtcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSkgeyBAY29udGVudDsgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkb3JpZW50YXRpb24gPT0gcG9ydHJhaXQge1xuICAgICAgICBAbWVkaWEgYWxsIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG59XG5cbkBtaXhpbiBoaWdoLXJlcygpIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksXG4gICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gVGhlIG1pY3JvIGNsZWFyZml4IGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuQG1peGluIGNsZWFyZml4KCkge1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgICAgZGlzcGxheTp0YWJsZTtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOmJvdGg7XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCRyYXRpby1vci13aWR0aCwgJGhlaWdodDogbnVsbCkge1xuICAgICRwYWRkaW5nOiBpZigkaGVpZ2h0LCBwZXJjZW50YWdlKG1hdGguZGl2KCRoZWlnaHQsJHJhdGlvLW9yLXdpZHRoKSksIHBlcmNlbnRhZ2UobWF0aC5kaXYoMSwkcmF0aW8tb3Itd2lkdGgpKSk7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG5AbWl4aW4gdHJhbnNwYXJlbnQtc2VsZWN0aW9uIHtcbiAgICAmOjpzZWxlY3Rpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cblxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZXJvLWZvbnQtc2l6ZSgkbW9iaWxlLCAkbGFyZ2Vtb2JpbGUsICR0YWJsZXQsICRkZXNrdG9wLCAkbGFyZ2VkZXNrdG9wOiAkZGVza3RvcCkge1xuICAgIGZvbnQtc2l6ZTogJG1vYmlsZSArIHB4O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UtbW9iaWxlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGxhcmdlbW9iaWxlICsgcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxldCArIHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgZm9udC1zaXplOiAkZGVza3RvcCArIHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlLWRlc2t0b3ApIHtcbiAgICAgICAgZm9udC1zaXplOiAkbGFyZ2VkZXNrdG9wICsgcHg7XG4gICAgfVxufVxuXG5AbWl4aW4gbWF0Y2hUb0hlYWRlckhlaWdodCgkcHJvcGVydHksICRpc0JvZHlFbGVtZW50OiBmYWxzZSwgJGV4dHJhaGVpZ2h0OiAwLCAkbmVnYXRpdmU6ZmFsc2UpIHtcbiAgICAkbXVsdGlwbGllcjogMTtcbiAgICBAaWYgJG5lZ2F0aXZlIHsgJG11bHRpcGxpZXI6IC0xfVxuXG4gICAgI3skcHJvcGVydHl9OiAoJGhlYWRlci1oZWlnaHQtbW9iaWxlICsgJGV4dHJhaGVpZ2h0KSAqICRtdWx0aXBsaWVyO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICgkaGVhZGVyLWhlaWdodC1kZXNrdG9wICsgJGV4dHJhaGVpZ2h0KSAqICRtdWx0aXBsaWVyO1xuICAgIH1cbn1cblxuQG1peGluIHBvc2l0aW9uQWJzb2x1dGVGdWxsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG59XG5AbWl4aW4gcG9zaXRpb25BYnNvbHV0ZUNlbnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xufVxuXG5AbWl4aW4gYnV0dG9uU3R5bGVSZXNldCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogY3VycmVudENvbG9yO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbkBtaXhpbiBsaXN0U3R5bGVSZXNldCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaW5pdGlhbDtcbiAgICA+IGxpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuQG1peGluIGRyb3BzaGFkb3ctZWxldmF0aW9uLWxvdygkY2xpcDogbnVsbCkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1saW5lLS0wNDtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDE2cHggMHB4IHNjYWxlX2NvbG9yKCRjb2xvci10ZXh0LS1ibGFjaywgJGFscGhhOiAtOTQlKTtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy0tbm9ybWFsO1xuICAgIEBpZigkY2xpcCkge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cbkBtaXhpbiBkcm9wc2hhZG93LWVsZXZhdGlvbi1oaWdoKCRjbGlwOiBudWxsKSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWxpbmUtLTA0O1xuICAgIGJveC1zaGFkb3c6IDBweCA0cHggMjRweCAwcHggc2NhbGVfY29sb3IoJGNvbG9yLXRleHQtLWJsYWNrLCAkYWxwaGE6IC05MiUpO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLS1ub3JtYWw7XG4gICAgQGlmKCRjbGlwKSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxufVxuQG1peGluIGRyb3BzaGFkb3ctZWxldmF0aW9uLWV4dHJhLWhpZ2goJGNsaXA6IG51bGwpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItbGluZS0tMDQ7XG4gICAgYm94LXNoYWRvdzogMHB4IDhweCA2NHB4IDBweCBzY2FsZV9jb2xvcigkY29sb3ItdGV4dC0tYmxhY2ssICRhbHBoYTogLTg0JSk7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtLW5vcm1hbDtcbiAgICBAaWYoJGNsaXApIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG5AbWl4aW4gZGVmYXVsdC1mb2N1cygkcmFkaXVzOiBudWxsKSB7XG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICRjb2xvci11dGlsaXR5LS1mb2N1cy1saWdodCwgMHB4IDBweCAwcHggNHB4ICRjb2xvci11dGlsaXR5LS1mb2N1cztcbiAgICAgICAgQGlmKCRyYWRpdXMpIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5AbWl4aW4gaW5uZXItZm9jdXMoJHJhZGl1czogbnVsbCkge1xuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAycHggJGNvbG9yLXV0aWxpdHktLWZvY3VzLCBpbnNldCAwcHggMHB4IDBweCA0cHggJGNvbG9yLXV0aWxpdHktLWZvY3VzLWxpZ2h0O1xuICAgICAgICBAaWYoJHJhZGl1cykge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cbn1cbkBtaXhpbiBpbnB1dC1maWVsZC1pY29uKCR1cmwsICR1cmwyOiBudWxsKSB7XG4gICAgQGlmKCR1cmwyKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkdXJsKSwgdXJsKCR1cmwyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR1cmwpO1xuICAgIH1cbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMHB4IGNlbnRlciwgcmlnaHQgMzVweCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggMjBweDtcbn1cbkBtaXhpbiB1bmRlcmxpbmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4yZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBhdXRvO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGZyb20tZm9udDtcbn1cbkBtaXhpbiBsaW5rLXVuZGVybGluZSB7XG4gICAgQGluY2x1ZGUgdW5kZXJsaW5lO1xuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gaG92ZXItYWN0aXZlLXN0YXRlLWVmZmVjdHMoJHRleHQtY29sb3I6IG51bGwsICR0ZXh0LWNvbG9yLWNoYW5nZTogZmFsc2UsICRiZy1jb2xvcjogbnVsbCwgJGJvcmRlci1jb2xvcjogbnVsbCkge1xuICAgICY6aG92ZXIge1xuICAgICAgICBAaWYoJHRleHQtY29sb3ItY2hhbmdlKSB7XG4gICAgICAgICAgICBjb2xvcjogc2NhbGVfY29sb3IoJHRleHQtY29sb3IsICRsaWdodG5lc3M6IC0yMCUpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBAaWYoJGJnLWNvbG9yKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZV9jb2xvcigkYmctY29sb3IsICRsaWdodG5lc3M6IC0yMCUpO1xuICAgICAgICB9XG4gICAgICAgIEBpZigkYm9yZGVyLWNvbG9yKSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHNjYWxlX2NvbG9yKCRib3JkZXItY29sb3IsICRsaWdodG5lc3M6IC0yMCUpO1xuICAgICAgICB9XG4gICAgfVxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgQGlmKCR0ZXh0LWNvbG9yLWNoYW5nZSkge1xuICAgICAgICAgICAgY29sb3I6IHNjYWxlX2NvbG9yKCR0ZXh0LWNvbG9yLCAkbGlnaHRuZXNzOiAxMCUpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBAaWYoJGJnLWNvbG9yKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZV9jb2xvcigkYmctY29sb3IsICRsaWdodG5lc3M6IDEwJSk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmKCRib3JkZXItY29sb3IpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogc2NhbGVfY29sb3IoJGJvcmRlci1jb2xvciwgJGxpZ2h0bmVzczogMTAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gR1JJRFxuQG1peGluIGdyaWQoJGNvbHVtbnM6MSwgJGdhcDokZ3JpZC1nYXAtLXNtYWxsKSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6ICRnYXA7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoJGNvbHVtbnMsIG1pbm1heCgwLCAxZnIpKTtcbn1cbkBtaXhpbiBncmlkLWNvbHVtbnMoJGNvbHVtbnM6MSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCRjb2x1bW5zLCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbkBtaXhpbiBmdWxsLWNhcmQtbGluay1vdmVybGF5KCkge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAwO1xuICAgIH1cbn0iXSwiZmlsZSI6InRhYmxlLW9mLWNvbnRlbnRzLmNzcyJ9 */
