/* -------------------
	Variables
-------------------- */
span.swatch {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 10px;
}
span.swatch.element-metal {
  background-color: #6a6a6a;
}
span.swatch.element-alkali-metal {
  background-color: #0095ff;
}
span.swatch.element-alkali-earth-metal {
  background-color: #50bc08;
}
span.swatch.element-transition-metal {
  background-color: #969695;
}
span.swatch.element-lanthoid {
  background-color: #df3035;
}
span.swatch.element-actinoid {
  background-color: #fcb002;
}
span.swatch.element-metalloid {
  background-color: #3d3f7f;
}
span.swatch.element-non-metal {
  background-color: #969695;
}
span.swatch.element-halogen {
  background-color: #333236;
}
span.swatch.element-noble-gas {
  background-color: #131f6b;
}
span.swatch.element-lanthanoid-transitional-metal {
  background-color: #df3035;
}
span.swatch.element-actinoid-transitional-metal {
  background-color: #fcb002;
}

#wrapper {
  width: 100%;
  margin: 0 auto 30px auto;
  position: relative;
  display: flex;
  flex-direction: column-reverse;
  justify-content: center;
  align-content: center;
}
#wrapper #key {
  position: relative;
  z-index: 100;
  width: auto;
  justify-content: center;
  display: flex;
  margin-top: var(--spacer1);
}
#wrapper #key ul {
  float: left;
  margin-right: 40px;
}
#wrapper #key ul li {
  line-height: 1.5em;
  font-size: 0.8em;
  color: #B6B6B6;
}
#wrapper #elements {
  display: grid;
  grid-template-columns: repeat(18, calc((100% - 90px) / 18));
  grid-template-rows: repeat(10, 75px);
  grid-gap: 5px;
  position: relative;
}

[class^=element-] {
  cursor: pointer;
  position: relative;
  z-index: 1;
  color: #333;
  width: 100%;
  height: 100%;
  font-size: 12px;
  border: 2px solid white;
  perspective: 1000px;
  border: 1px solid white;
}
[class^=element-] .chip {
  height: 100%;
  padding: 4px;
  display: flex;
  flex-direction: column;
  align-content: center;
}
[class^=element-] .chip i {
  width: -moz-fit-content;
  width: fit-content;
  font-size: 0.8em;
}
[class^=element-] .chip strong {
  margin: 0 auto;
  font-size: 1.5em;
  width: -moz-fit-content;
  width: fit-content;
  font-weight: bold;
  text-align: center;
  margin-top: 4px;
  white-space: nowrap;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
[class^=element-] .chip::before, [class^=element-] .chip::after {
  white-space: nowrap;
  position: absolute;
  top: 100%;
  left: 4px;
  font-size: 0.75em;
  opacity: 0;
  transform: translate(0, var(--title-y-position));
  transition: transform var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  color: var(--primary, #131f6b);
  background-color: #FFFFFF;
}
[class^=element-] .chip::after {
  content: attr(data-title);
  border-bottom: none;
}
[class^=element-] .chip::before {
  content: attr(data-number);
  border-top: none;
}
[class^=element-] .chip:hover strong {
  opacity: 0;
}
[class^=element-] .chip:hover::after {
  --title-y-position: calc(-100% - calc(var(--gap) * 2));
  opacity: 1;
}
[class^=element-] .chip:hover::before {
  --title-y-position: calc(-100% - calc(var(--gap) * 0.5));
  opacity: 1;
}
[class^=element-].r1 {
  grid-row-start: 1;
  grid-row-end: calc(1 + 1);
}
[class^=element-].r2 {
  grid-row-start: 2;
  grid-row-end: calc(2 + 1);
}
[class^=element-].r3 {
  grid-row-start: 3;
  grid-row-end: calc(3 + 1);
}
[class^=element-].r4 {
  grid-row-start: 4;
  grid-row-end: calc(4 + 1);
}
[class^=element-].r5 {
  grid-row-start: 5;
  grid-row-end: calc(5 + 1);
}
[class^=element-].r6 {
  grid-row-start: 6;
  grid-row-end: calc(6 + 1);
}
[class^=element-].r7 {
  grid-row-start: 7;
  grid-row-end: calc(7 + 1);
}
[class^=element-].r8 {
  grid-row-start: 8;
  grid-row-end: calc(8 + 1);
}
[class^=element-].r9 {
  grid-row-start: 9;
  grid-row-end: calc(9 + 1);
}
[class^=element-].r10 {
  grid-row-start: 10;
  grid-row-end: calc(10 + 1);
}
[class^=element-].c1 {
  grid-column-start: 1;
  grid-column-end: calc(1 + 1);
}
[class^=element-].c2 {
  grid-column-start: 2;
  grid-column-end: calc(2 + 1);
}
[class^=element-].c3 {
  grid-column-start: 3;
  grid-column-end: calc(3 + 1);
}
[class^=element-].c4 {
  grid-column-start: 4;
  grid-column-end: calc(4 + 1);
}
[class^=element-].c5 {
  grid-column-start: 5;
  grid-column-end: calc(5 + 1);
}
[class^=element-].c6 {
  grid-column-start: 6;
  grid-column-end: calc(6 + 1);
}
[class^=element-].c7 {
  grid-column-start: 7;
  grid-column-end: calc(7 + 1);
}
[class^=element-].c8 {
  grid-column-start: 8;
  grid-column-end: calc(8 + 1);
}
[class^=element-].c9 {
  grid-column-start: 9;
  grid-column-end: calc(9 + 1);
}
[class^=element-].c10 {
  grid-column-start: 10;
  grid-column-end: calc(10 + 1);
}
[class^=element-].c11 {
  grid-column-start: 11;
  grid-column-end: calc(11 + 1);
}
[class^=element-].c12 {
  grid-column-start: 12;
  grid-column-end: calc(12 + 1);
}
[class^=element-].c13 {
  grid-column-start: 13;
  grid-column-end: calc(13 + 1);
}
[class^=element-].c14 {
  grid-column-start: 14;
  grid-column-end: calc(14 + 1);
}
[class^=element-].c15 {
  grid-column-start: 15;
  grid-column-end: calc(15 + 1);
}
[class^=element-].c16 {
  grid-column-start: 16;
  grid-column-end: calc(16 + 1);
}
[class^=element-].c17 {
  grid-column-start: 17;
  grid-column-end: calc(17 + 1);
}
[class^=element-].c18 {
  grid-column-start: 18;
  grid-column-end: calc(18 + 1);
}

.element-metal {
  border-color: #6a6a6a;
}

.element-alkali-metal {
  border-color: #0095ff;
}

.element-alkali-earth-metal {
  border-color: #50bc08;
}

.element-transition-metal {
  border-color: #969695;
}

.element-lanthoid {
  border-color: #df3035;
}

.element-actinoid {
  border-color: #fcb002;
}

.element-metalloid {
  border-color: #3d3f7f;
}

.element-non-metal {
  border-color: #969695;
}

.element-halogen {
  border-color: #333236;
}

.element-noble-gas {
  border-color: #131f6b;
}

.element-lanthanoid-transitional-metal {
  border-color: #df3035;
}

.element-actinoid-transitional-metal {
  border-color: #fcb002;
}

/* -------------------
	Media Queries
-------------------- */
@media (max-width: 989px) {
  #wrapper #elements {
    filter: blur(10px);
  }
  #wrapper #key {
    display: none;
  }
  #wrapper:after {
    position: absolute;
    display: block;
    content: "The Periodic Table is best viewed on desktop.";
    top: 25%;
    left: 25vw;
    right: 25vw;
    width: 50vw;
    text-align: center;
    filter: blur(-5px);
    font-size: 2em;
    font-weight: bold;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcGVyaW9kaWMtdGFibGUuc2NzcyIsImNvbXBvbmVudHMvcGVyaW9kaWMtdGFibGUuY3NzIiwiX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3BhbGV0dGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7c0JBQUE7QUFzQkE7RUFDQyxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNsQkQ7QURvQkM7RUFDQyx5QkVITTtBRGZSO0FEb0JDO0VBQ0MseUJFVk07QURSUjtBRG9CQztFQUNDLHlCRUpNO0FEZFI7QURvQkM7RUFDQyx5QkViSztBRExQO0FEb0JDO0VBQ0MseUJFakJJO0FERE47QURvQkM7RUFDQyx5QkVWUTtBRFJWO0FEb0JDO0VBQ0MseUJFM0JNO0FEU1I7QURvQkM7RUFDQyx5QkV6Qks7QURPUDtBRG9CQztFQUNDLHlCRXZCTTtBREtSO0FEb0JDO0VBQ0MseUJFdENLO0FEb0JQO0FEb0JDO0VBQ0MseUJFbkNJO0FEaUJOO0FEb0JDO0VBQ0MseUJFNUJRO0FEVVY7O0FEcUJBO0VBQ0MsV0FBQTtFQUNBLHdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsOEJBQUE7RUFDQSx1QkFBQTtFQUNBLHFCQUFBO0FDbEJEO0FEbUJDO0VBQ0Msa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLHVCQUFBO0VBQ0EsYUFBQTtFQUNBLDBCRzBCUztBRjNDWDtBRGtCRTtFQUNDLFdBQUE7RUFDQSxrQkFBQTtBQ2hCSDtBRGlCRztFQUNDLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0FDZko7QURtQkk7RUFDSSxhQUFBO0VBQ0EsMkRBQUE7RUFDQSxvQ0FBQTtFQUNO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O0VBQ0kscUJFbE1HO0FEcVJQOztBRGpGQTtFQUNJLHFCRS9MRTtBRG1STjs7QURsRkE7RUFDSSxxQkV4TE07QUQ2UVY7O0FEbEZBOztzQkFBQTtBQUdBO0VBRVE7SUFDSSxrQkFBQTtFQ29GVjtFRGxGTTtJQUNJLGFBQUE7RUNvRlY7RURsRk07SUFDSSxrQkFBQTtJQUNBLGNBQUE7SUFDQSx3REFBQTtJQUNBLFFBQUE7SUFDQSxVQUFBO0lBQ0EsV0FBQTtJQUNBLFdBQUE7SUFDQSxrQkFBQTtJQUNBLGtCQUFBO0lBQ0EsY0FBQTtJQUNBLGlCQUFBO0VDb0ZWO0FBQ0YiLCJmaWxlIjoiY29tcG9uZW50cy9wZXJpb2RpYy10YWJsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5cbi8vIEVsZW1lbnQgQ29sb3JzXG4kbWV0YWw6ICRncmV5MjtcbiRhbGthbGktbWV0YWw6JGJsdWU1O1xuJGFsa2FsaS1lYXJ0aC1tZXRhbDogJGdyZWVuO1xuJHRyYW5zaXRpb24tbWV0YWw6JGdyZXk7XG4kbGFudGhvaWQ6JHJlZDtcbiRhY3Rpbm9pZDogJHllbGxvdzI7XG4kbWV0YWxsb2lkOiRibHVlMztcbi8vbm9uLW1ldGFsc1xuJG5vbi1tZXRhbDokZ3JleTtcbiRoYWxvZ2VuOiAkZ3JleTY7XG4kbm9ibGUtZ2FzOiRibHVlO1xuXG4kYmxhbms6dHJhbnNwYXJlbnQ7XG5cblxuc3Bhbi5zd2F0Y2h7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDE0cHg7XG5cdGhlaWdodDogMTRweDtcblx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG5cdCYuZWxlbWVudC1tZXRhbHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbWV0YWw7XG5cdH1cblx0Ji5lbGVtZW50LWFsa2FsaS1tZXRhbHsgXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGFsa2FsaS1tZXRhbDtcblx0fVxuXHQmLmVsZW1lbnQtYWxrYWxpLWVhcnRoLW1ldGFseyBcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYWxrYWxpLWVhcnRoLW1ldGFsOyAgXG5cdH1cblx0Ji5lbGVtZW50LXRyYW5zaXRpb24tbWV0YWx7IFxuXHRcdGJhY2tncm91bmQtY29sb3I6ICR0cmFuc2l0aW9uLW1ldGFsOyBcblx0fVxuXHQmLmVsZW1lbnQtbGFudGhvaWR7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGxhbnRob2lkOyBcblx0fVxuXHQmLmVsZW1lbnQtYWN0aW5vaWR7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGFjdGlub2lkOyBcblx0fVxuXHQmLmVsZW1lbnQtbWV0YWxsb2lkeyBcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbWV0YWxsb2lkO1xuXHR9XG5cdCYuZWxlbWVudC1ub24tbWV0YWx7IFxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRub24tbWV0YWw7XG5cdH1cblx0Ji5lbGVtZW50LWhhbG9nZW57IFxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRoYWxvZ2VuOyBcblx0fVxuXHQmLmVsZW1lbnQtbm9ibGUtZ2Fze1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRub2JsZS1nYXM7IFxuXHR9XG5cdCYuZWxlbWVudC1sYW50aGFub2lkLXRyYW5zaXRpb25hbC1tZXRhbHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGFudGhvaWQ7IFxuXHR9XG5cdCYuZWxlbWVudC1hY3Rpbm9pZC10cmFuc2l0aW9uYWwtbWV0YWx7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGFjdGlub2lkOyBcblx0fVxufVxuI3dyYXBwZXJ7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDAgYXV0byAzMHB4IGF1dG87XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHQja2V5e1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAxMDA7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRtYXJnaW4tdG9wOiAkc3BhY2VyO1xuXHRcdHVse1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDQwcHg7XG5cdFx0XHRsaXtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuNWVtO1xuXHRcdFx0XHRmb250LXNpemU6IC44ZW07XG5cdFx0XHRcdGNvbG9yOiAjQjZCNkI2O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuICAgICNlbGVtZW50c3tcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTgsIGNhbGMoKDEwMCUgLSAoNXB4ICogMTgpKSAvIDE4KSk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDEwLCA3NXB4KTtcblx0XHRncmlkLWdhcDogNXB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG59XG5bY2xhc3NePVwiZWxlbWVudC1cIl17XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xuXHRjb2xvcjojMzMzO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblx0Zm9udC1zaXplOiAxMnB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuXHRwZXJzcGVjdGl2ZTogMTAwMHB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcblx0LmNoaXB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHBhZGRpbmc6IDRweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRcdGl7XG5cdFx0XHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdFx0XHRmb250LXNpemU6IC44ZW07XG5cdFx0fVxuXHRcdHN0cm9uZ3tcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0Zm9udC1zaXplOjEuNWVtO1xuXHRcdFx0d2lkdGg6IGZpdC1jb250ZW50O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRtYXJnaW4tdG9wOiA0cHg7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcblxuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlcntcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6MTAwJTtcblx0XHRcdGxlZnQ6NHB4O1xuXHRcdFx0Zm9udC1zaXplOiBmb250LXNpemUoMTIpO1xuXHRcdFx0b3BhY2l0eTowOyBcblx0XHRcdHRyYW5zZm9ybSA6IHRyYW5zbGF0ZSgwLCB2YXIoLS10aXRsZS15LXBvc2l0aW9uKSk7XG5cdFx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb24sIG9wYWNpdHkgJHRyYW5zaXRpb247XG5cdFx0XHRjb2xvcjokcHJpbWFyeTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHR9XG5cblx0XHQmOjphZnRlcntcblx0XHRcdGNvbnRlbnQ6YXR0cihkYXRhLXRpdGxlKTtcblx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0fVxuXG5cdFx0Jjo6YmVmb3Jle1xuXHRcdFx0Y29udGVudDphdHRyKGRhdGEtbnVtYmVyKTtcblx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cdFx0fVxuXG5cdFx0Jjpob3Zlcntcblx0XHRcdHN0cm9uZ3tcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdH1cblx0XHRcdCY6OmFmdGVyIHsgXG5cdFx0XHRcdC0tdGl0bGUteS1wb3NpdGlvbiA6IGNhbGMoLTEwMCUgLSAjeyRnYXAyfSk7XG5cdFx0XHRcdG9wYWNpdHk6MTsgXG5cdFx0XHR9XG5cdFx0XHQmOjpiZWZvcmUgeyBcblx0XHRcdFx0LS10aXRsZS15LXBvc2l0aW9uIDogY2FsYygtMTAwJSAtICN7JGdhcDB9KTtcblx0XHRcdFx0b3BhY2l0eToxOyBcblx0XHRcdH1cblx0XHR9XG5cdH1cbiAgICBcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEwIHtcbiAgICAgICAgJi5yI3skaX0ge1xuICAgICAgICAgICAgZ3JpZC1yb3ctc3RhcnQ6ICN7JGl9O1xuICAgICAgICAgICAgZ3JpZC1yb3ctZW5kOiBjYWxjKCN7JGl9ICsgMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxOCB7XG4gICAgICAgICYuYyN7JGl9IHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAjeyRpfTtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogY2FsYygjeyRpfSArIDEpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZWxlbWVudC1tZXRhbHtcbiAgICBib3JkZXItY29sb3I6ICRtZXRhbDtcbn1cbi5lbGVtZW50LWFsa2FsaS1tZXRhbHsgXG4gICAgYm9yZGVyLWNvbG9yOiAkYWxrYWxpLW1ldGFsO1xufVxuLmVsZW1lbnQtYWxrYWxpLWVhcnRoLW1ldGFseyBcbiAgICBib3JkZXItY29sb3I6ICRhbGthbGktZWFydGgtbWV0YWw7ICBcbn1cbi5lbGVtZW50LXRyYW5zaXRpb24tbWV0YWx7IFxuICAgIGJvcmRlci1jb2xvcjogJHRyYW5zaXRpb24tbWV0YWw7IFxufVxuLmVsZW1lbnQtbGFudGhvaWR7XG4gICAgYm9yZGVyLWNvbG9yOiAkbGFudGhvaWQ7IFxufVxuLmVsZW1lbnQtYWN0aW5vaWR7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aW5vaWQ7IFxufVxuLmVsZW1lbnQtbWV0YWxsb2lkeyBcbiAgICBib3JkZXItY29sb3I6ICRtZXRhbGxvaWQ7XG59XG4uZWxlbWVudC1ub24tbWV0YWx7IFxuICAgIGJvcmRlci1jb2xvcjogJG5vbi1tZXRhbDtcbn1cbi5lbGVtZW50LWhhbG9nZW57IFxuICAgIGJvcmRlci1jb2xvcjogJGhhbG9nZW47IFxufVxuLmVsZW1lbnQtbm9ibGUtZ2Fze1xuICAgIGJvcmRlci1jb2xvcjogJG5vYmxlLWdhczsgXG59XG4uZWxlbWVudC1sYW50aGFub2lkLXRyYW5zaXRpb25hbC1tZXRhbHtcbiAgICBib3JkZXItY29sb3I6ICRsYW50aG9pZDsgXG59XG4uZWxlbWVudC1hY3Rpbm9pZC10cmFuc2l0aW9uYWwtbWV0YWx7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aW5vaWQ7IFxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cdE1lZGlhIFF1ZXJpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWVkaWEgKG1heC13aWR0aDo5ODlweCkge1xuXHQjd3JhcHBlcntcbiAgICAgICAgI2VsZW1lbnRze1xuICAgICAgICAgICAgZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgICAgICB9XG4gICAgICAgICNrZXl7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdUaGUgUGVyaW9kaWMgVGFibGUgaXMgYmVzdCB2aWV3ZWQgb24gZGVza3RvcC4nO1xuICAgICAgICAgICAgdG9wOiAyNSU7XG4gICAgICAgICAgICBsZWZ0OiAyNXZ3O1xuICAgICAgICAgICAgcmlnaHQ6IDI1dnc7XG4gICAgICAgICAgICB3aWR0aDogNTB2dztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZpbHRlcjogYmx1cigtNXB4KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblx0fVxuXG59IiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5zcGFuLnN3YXRjaCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuc3Bhbi5zd2F0Y2guZWxlbWVudC1tZXRhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2YTZhNmE7XG59XG5zcGFuLnN3YXRjaC5lbGVtZW50LWFsa2FsaS1tZXRhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDk1ZmY7XG59XG5zcGFuLnN3YXRjaC5lbGVtZW50LWFsa2FsaS1lYXJ0aC1tZXRhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MGJjMDg7XG59XG5zcGFuLnN3YXRjaC5lbGVtZW50LXRyYW5zaXRpb24tbWV0YWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTY5Njk1O1xufVxuc3Bhbi5zd2F0Y2guZWxlbWVudC1sYW50aG9pZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG59XG5zcGFuLnN3YXRjaC5lbGVtZW50LWFjdGlub2lkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjYjAwMjtcbn1cbnNwYW4uc3dhdGNoLmVsZW1lbnQtbWV0YWxsb2lkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNkM2Y3Zjtcbn1cbnNwYW4uc3dhdGNoLmVsZW1lbnQtbm9uLW1ldGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk2OTY5NTtcbn1cbnNwYW4uc3dhdGNoLmVsZW1lbnQtaGFsb2dlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMyMzY7XG59XG5zcGFuLnN3YXRjaC5lbGVtZW50LW5vYmxlLWdhcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG59XG5zcGFuLnN3YXRjaC5lbGVtZW50LWxhbnRoYW5vaWQtdHJhbnNpdGlvbmFsLW1ldGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmMzAzNTtcbn1cbnNwYW4uc3dhdGNoLmVsZW1lbnQtYWN0aW5vaWQtdHJhbnNpdGlvbmFsLW1ldGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjYjAwMjtcbn1cblxuI3dyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG8gMzBweCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiN3cmFwcGVyICNrZXkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IGF1dG87XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIxKTtcbn1cbiN3cmFwcGVyICNrZXkgdWwge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xufVxuI3dyYXBwZXIgI2tleSB1bCBsaSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgY29sb3I6ICNCNkI2QjY7XG59XG4jd3JhcHBlciAjZWxlbWVudHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxOCwgY2FsYygoMTAwJSAtIDkwcHgpIC8gMTgpKTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMTAsIDc1cHgpO1xuICBncmlkLWdhcDogNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbltjbGFzc149ZWxlbWVudC1dIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiAjMzMzO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICBwZXJzcGVjdGl2ZTogMTAwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbn1cbltjbGFzc149ZWxlbWVudC1dIC5jaGlwIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiA0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbn1cbltjbGFzc149ZWxlbWVudC1dIC5jaGlwIGkge1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5bY2xhc3NePWVsZW1lbnQtXSAuY2hpcCBzdHJvbmcge1xuICBtYXJnaW46IDAgYXV0bztcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5bY2xhc3NePWVsZW1lbnQtXSAuY2hpcDo6YmVmb3JlLCBbY2xhc3NePWVsZW1lbnQtXSAuY2hpcDo6YWZ0ZXIge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogNHB4O1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgdmFyKC0tdGl0bGUteS1wb3NpdGlvbikpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbltjbGFzc149ZWxlbWVudC1dIC5jaGlwOjphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZSk7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5bY2xhc3NePWVsZW1lbnQtXSAuY2hpcDo6YmVmb3JlIHtcbiAgY29udGVudDogYXR0cihkYXRhLW51bWJlcik7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5bY2xhc3NePWVsZW1lbnQtXSAuY2hpcDpob3ZlciBzdHJvbmcge1xuICBvcGFjaXR5OiAwO1xufVxuW2NsYXNzXj1lbGVtZW50LV0gLmNoaXA6aG92ZXI6OmFmdGVyIHtcbiAgLS10aXRsZS15LXBvc2l0aW9uOiBjYWxjKC0xMDAlIC0gY2FsYyh2YXIoLS1nYXApICogMikpO1xuICBvcGFjaXR5OiAxO1xufVxuW2NsYXNzXj1lbGVtZW50LV0gLmNoaXA6aG92ZXI6OmJlZm9yZSB7XG4gIC0tdGl0bGUteS1wb3NpdGlvbjogY2FsYygtMTAwJSAtIGNhbGModmFyKC0tZ2FwKSAqIDAuNSkpO1xuICBvcGFjaXR5OiAxO1xufVxuW2NsYXNzXj1lbGVtZW50LV0ucjEge1xuICBncmlkLXJvdy1zdGFydDogMTtcbiAgZ3JpZC1yb3ctZW5kOiBjYWxjKDEgKyAxKTtcbn1cbltjbGFzc149ZWxlbWVudC1dLnIyIHtcbiAgZ3JpZC1yb3ctc3RhcnQ6IDI7XG4gIGdyaWQtcm93LWVuZDogY2FsYygyICsgMSk7XG59XG5bY2xhc3NePWVsZW1lbnQtXS5yMyB7XG4gIGdyaWQtcm93LXN0YXJ0OiAzO1xuICBncmlkLXJvdy1lbmQ6IGNhbGMoMyArIDEpO1xufVxuW2NsYXNzXj1lbGVtZW50LV0ucjQge1xuICBncmlkLXJvdy1zdGFydDogNDtcbiAgZ3JpZC1yb3ctZW5kOiBjYWxjKDQgKyAxKTtcbn1cbltjbGFzc149ZWxlbWVudC1dLnI1IHtcbiAgZ3JpZC1yb3ctc3RhcnQ6IDU7XG4gIGdyaWQtcm93LWVuZDogY2FsYyg1ICsgMSk7XG59XG5bY2xhc3NePWVsZW1lbnQtXS5yNiB7XG4gIGdyaWQtcm93LXN0YXJ0OiA2O1xuICBncmlkLXJvdy1lbmQ6IGNhbGMoNiArIDEpO1xufVxuW2NsYXNzXj1lbGVtZW50LV0ucjcge1xuICBncmlkLXJvdy1zdGFydDogNztcbiAgZ3JpZC1yb3ctZW5kOiBjYWxjKDcgKyAxKTtcbn1cbltjbGFzc149ZWxlbWVudC1dLnI4IHtcbiAgZ3JpZC1yb3ctc3RhcnQ6IDg7XG4gIGdyaWQtcm93LWVuZDogY2FsYyg4ICsgMSk7XG59XG5bY2xhc3NePWVsZW1lbnQtXS5yOSB7XG4gIGdyaWQtcm93LXN0YXJ0OiA5O1xuICBncmlkLXJvdy1lbmQ6IGNhbGMoOSArIDEpO1xufVxuW2NsYXNzXj1lbGVtZW50LV0ucjEwIHtcbiAgZ3JpZC1yb3ctc3RhcnQ6IDEwO1xuICBncmlkLXJvdy1lbmQ6IGNhbGMoMTAgKyAxKTtcbn1cbltjbGFzc149ZWxlbWVudC1dLmMxIHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG4gIGdyaWQtY29sdW1uLWVuZDogY2FsYygxICsgMSk7XG59XG5bY2xhc3NePWVsZW1lbnQtXS5jMiB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuICBncmlkLWNvbHVtbi1lbmQ6IGNhbGMoMiArIDEpO1xufVxuW2NsYXNzXj1lbGVtZW50LV0uYzMge1xuICBncmlkLWNvbHVtbi1zdGFydDogMztcbiAgZ3JpZC1jb2x1bW4tZW5kOiBjYWxjKDMgKyAxKTtcbn1cbltjbGFzc149ZWxlbWVudC1dLmM0IHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDQ7XG4gIGdyaWQtY29sdW1uLWVuZDogY2FsYyg0ICsgMSk7XG59XG5bY2xhc3NePWVsZW1lbnQtXS5jNSB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiA1O1xuICBncmlkLWNvbHVtbi1lbmQ6IGNhbGMoNSArIDEpO1xufVxuW2NsYXNzXj1lbGVtZW50LV0uYzYge1xuICBncmlkLWNvbHVtbi1zdGFydDogNjtcbiAgZ3JpZC1jb2x1bW4tZW5kOiBjYWxjKDYgKyAxKTtcbn1cbltjbGFzc149ZWxlbWVudC1dLmM3IHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDc7XG4gIGdyaWQtY29sdW1uLWVuZDogY2FsYyg3ICsgMSk7XG59XG5bY2xhc3NePWVsZW1lbnQtXS5jOCB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiA4O1xuICBncmlkLWNvbHVtbi1lbmQ6IGNhbGMoOCArIDEpO1xufVxuW2NsYXNzXj1lbGVtZW50LV0uYzkge1xuICBncmlkLWNvbHVtbi1zdGFydDogOTtcbiAgZ3JpZC1jb2x1bW4tZW5kOiBjYWxjKDkgKyAxKTtcbn1cbltjbGFzc149ZWxlbWVudC1dLmMxMCB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAxMDtcbiAgZ3JpZC1jb2x1bW4tZW5kOiBjYWxjKDEwICsgMSk7XG59XG5bY2xhc3NePWVsZW1lbnQtXS5jMTEge1xuICBncmlkLWNvbHVtbi1zdGFydDogMTE7XG4gIGdyaWQtY29sdW1uLWVuZDogY2FsYygxMSArIDEpO1xufVxuW2NsYXNzXj1lbGVtZW50LV0uYzEyIHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDEyO1xuICBncmlkLWNvbHVtbi1lbmQ6IGNhbGMoMTIgKyAxKTtcbn1cbltjbGFzc149ZWxlbWVudC1dLmMxMyB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAxMztcbiAgZ3JpZC1jb2x1bW4tZW5kOiBjYWxjKDEzICsgMSk7XG59XG5bY2xhc3NePWVsZW1lbnQtXS5jMTQge1xuICBncmlkLWNvbHVtbi1zdGFydDogMTQ7XG4gIGdyaWQtY29sdW1uLWVuZDogY2FsYygxNCArIDEpO1xufVxuW2NsYXNzXj1lbGVtZW50LV0uYzE1IHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE1O1xuICBncmlkLWNvbHVtbi1lbmQ6IGNhbGMoMTUgKyAxKTtcbn1cbltjbGFzc149ZWxlbWVudC1dLmMxNiB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAxNjtcbiAgZ3JpZC1jb2x1bW4tZW5kOiBjYWxjKDE2ICsgMSk7XG59XG5bY2xhc3NePWVsZW1lbnQtXS5jMTcge1xuICBncmlkLWNvbHVtbi1zdGFydDogMTc7XG4gIGdyaWQtY29sdW1uLWVuZDogY2FsYygxNyArIDEpO1xufVxuW2NsYXNzXj1lbGVtZW50LV0uYzE4IHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE4O1xuICBncmlkLWNvbHVtbi1lbmQ6IGNhbGMoMTggKyAxKTtcbn1cblxuLmVsZW1lbnQtbWV0YWwge1xuICBib3JkZXItY29sb3I6ICM2YTZhNmE7XG59XG5cbi5lbGVtZW50LWFsa2FsaS1tZXRhbCB7XG4gIGJvcmRlci1jb2xvcjogIzAwOTVmZjtcbn1cblxuLmVsZW1lbnQtYWxrYWxpLWVhcnRoLW1ldGFsIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTBiYzA4O1xufVxuXG4uZWxlbWVudC10cmFuc2l0aW9uLW1ldGFsIHtcbiAgYm9yZGVyLWNvbG9yOiAjOTY5Njk1O1xufVxuXG4uZWxlbWVudC1sYW50aG9pZCB7XG4gIGJvcmRlci1jb2xvcjogI2RmMzAzNTtcbn1cblxuLmVsZW1lbnQtYWN0aW5vaWQge1xuICBib3JkZXItY29sb3I6ICNmY2IwMDI7XG59XG5cbi5lbGVtZW50LW1ldGFsbG9pZCB7XG4gIGJvcmRlci1jb2xvcjogIzNkM2Y3Zjtcbn1cblxuLmVsZW1lbnQtbm9uLW1ldGFsIHtcbiAgYm9yZGVyLWNvbG9yOiAjOTY5Njk1O1xufVxuXG4uZWxlbWVudC1oYWxvZ2VuIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzMzMjM2O1xufVxuXG4uZWxlbWVudC1ub2JsZS1nYXMge1xuICBib3JkZXItY29sb3I6ICMxMzFmNmI7XG59XG5cbi5lbGVtZW50LWxhbnRoYW5vaWQtdHJhbnNpdGlvbmFsLW1ldGFsIHtcbiAgYm9yZGVyLWNvbG9yOiAjZGYzMDM1O1xufVxuXG4uZWxlbWVudC1hY3Rpbm9pZC10cmFuc2l0aW9uYWwtbWV0YWwge1xuICBib3JkZXItY29sb3I6ICNmY2IwMDI7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS1cblx0TWVkaWEgUXVlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODlweCkge1xuICAjd3JhcHBlciAjZWxlbWVudHMge1xuICAgIGZpbHRlcjogYmx1cigxMHB4KTtcbiAgfVxuICAjd3JhcHBlciAja2V5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICN3cmFwcGVyOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCJUaGUgUGVyaW9kaWMgVGFibGUgaXMgYmVzdCB2aWV3ZWQgb24gZGVza3RvcC5cIjtcbiAgICB0b3A6IDI1JTtcbiAgICBsZWZ0OiAyNXZ3O1xuICAgIHJpZ2h0OiAyNXZ3O1xuICAgIHdpZHRoOiA1MHZ3O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmaWx0ZXI6IGJsdXIoLTVweCk7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3Vyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIEV4cGxpY2l0IENvbG91cnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBFeHBsaWNpdCBjb2xvdXJzIGFyZSBhIHdoYXQgdGhleSBhcmUuIEdyZWVuIGlzIGdyZWVuLCBibHVlIGlzIGJsdWUuLi4gbm8gb2JzY3VyaXR5LlxuLy8vIFdlIHN1ZmZpeCBudW1iZXJzIHRvIGRlZmluZSB2YXJpYXRpb25zIG9mIGNvbG91cnMgaW4gbm8gcGFydGljdWxhciBvcmRlciBvZiBzaGFkZS5cbi8vLyBFeGFtcGxlOiBncmVlbjEsIGdyZWVuMiwgZ3JlZW4zLCBncmVlbjQuIFRoaXMgaXMgc28gd2UgY2FuIGltbWlkaWF0ZWx5IHNlZSBob3dcbi8vLyBtYW55IG9wdGlvbnMgd2UgaGF2ZSBmb3IgYSBzaW5nbGUgY29sb3VyIGF0IGEgZ2xhbmNlLiBJZiB5b3Ugc2VlICRncmVlbjQsIHlvdSBrbm93IHRoaXNcbi8vLyBwcm9qZWN0IGlzIHVzaW5nIGZvdXIgdmFyaWF0aW9ucyBvZiBncmVlbi4gVGhpcyBpcyBhbHNvIG9mdGVuIHVzZWZ1bCBiZWNhdXNlIG1hbnkgZGV2ZWxvcG1lbnRcbi8vLyB0b29scyB3aWxsIGF1dG8tc3VnZ2VzdCBjb2xvdXJzIHdpdGggYWN0dWFsIGV4YW1wbGVzIG9mIHRoZSBjb2xvdXIuXG4vLy8gVGhlIFBhbGxldGVzIG1vZHVsZSAoYXQgdGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUpIHdpbGwgb3V0cHV0IHNoYWRlZCBuYW1lZCB2YXJpYXRpb25zLFxuLy8vLyA8Y29sb3VyPi1kYXJrIGFuZCA8Y29sb3VyPi1saWdodC4gSWYgeW91IG5lZWQgYWRkaXRpb25hbCBzaGFkZXMgcGxlYXNlIHJlZnJhaW0gZnJvbSBnb2luZyBkb3duXG4vLy8gdGhlICdsaWdodGVyJywgJ2xpZ2h0ZXN0JywgJ2RhcmtlcicsICdkYXJrZXN0JyBjb252ZW50aW9uLiBUaGVzZSBhcmUgbm90IHBhcnRpY3Vhcmx5IGxlZ2lhYmxlXG4vLy8gYW5kIHRoZXkgYXJlIGxpbWl0ZWQgYnkgaG93IGNyZWF0aXZlIChjb25mdXNpbmcpIHlvdXIgd29yZGluZyBjYW4gYmUuXG4vLy8gSXQgaXMgYmV0dGVyIHRvIGRlZmluZSBhIG5ldyBleHBsY2l0IGNvbG91ciBlbnRpcmVseS5cbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vd2hhdC1kby15b3UtbmFtZS1jb2xvci12YXJpYWJsZXMvXG5cbiRibHVlOiAjMTMxZjZiOyAvLyBQcmltYXJ5XG4kYmx1ZTI6ICMyOTJiNjg7IC8vIE5ha2VkIExpbmtcbiRibHVlMzogIzNkM2Y3ZjsgLy8gTGlnbnQgR3JhZGllbnRcbiRibHVlNDogIzEwMTI0ZDsgLy8gRGFyayBHcmFkaWVudFxuJGJsdWU1OiAjMDA5NWZmOyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXJcbi8vICRyZWQgICAgOiAjRTAzQTQwOyAvLyBTZWNvbmRhcnlcbiRyZWQ6ICNkZjMwMzU7IC8vIFNlY29uZGFyeSAtIFRoaXMgcGFzc2VzIHRoZSBjb250cmFzdCByYXRpbyBhY2Nlc3NpYmlsaXR5IHRlc3QgaW4gR29vZ2xlcyBMaWdodGhvdXNlXG4kZ3JleTogIzk2OTY5NTtcbiRncmV5MjogIzZhNmE2YTsgLy8gRm9udFxuJGdyZXkzOiAjZjRmNGY0OyAvLyBMaWdodGVyIEdyZXkgQmFja2dyb3VuZFxuJGdyZXk0OiAjZGNkY2RjO1xuJGdyZXk1OiAjYjFiMWIxOyAvLyBTcGFjZXJzIDxocj5cbiRncmV5NjogIzMzMzIzNjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyXG4kZ3JlZW46ICM1MGJjMDg7XG4kZ3JlZW4yOiAjNzZiYjI4OyAvLyBFU0cgZ3JlZW5cbiR5ZWxsb3c6ICNmNmY0ZGI7IC8vIERpc2NsYWltZXIgQmFja2dyb3VuZFxuJHllbGxvdzI6ICNmY2IwMDI7XG4kb3JhbmdlOiAjZmY2YTAwO1xuJG9yYW5nZTI6ICNkYThiMGY7XG4kYmxhY2s6ICMxZTFjMWM7XG5cbiRtYXJrOiAkYmx1ZTU7IC8vIGJhY2tncm91bmQgY29sb3VyIGZvciA8bWFyaz4gdGFnc1xuXG4kcHJpbWFyeTogdmFyKC0tcHJpbWFyeSwgI3skYmx1ZX0pO1xuJHNlY29uZGFyeTogdmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcblxuLy8vIFBhbGV0dGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBCeSBsb2FkaW5nIGNvbmZpZ3VyYXRpb25zIGludG8gdGhpcyAncGFsbGV0ZScgbW9kdWxlLCB3ZSB3aWxsIGJlIGFibGVcbi8vLyB0byBkZWNsYXJlIHZhcmlhbnRzIG9mIGEgZmV3IGNvbW1vbiBjb2xvdXJzLiBZb3UgY2FuIGFsc28gYWRqdXN0IHRoZSBsaWdodG5lc3Ncbi8vLyBvciBkYXJrbmVzcyBvZiBlYWNoIHZhcmlhbnQgYnkgcGFzc2luZyBpbiB0aGUgcmVsZXZhbnQgcHJpdmF0ZSBydWxlcy5cbi8vLyBQYWxldHRlIHdpbGwgYWxzbyBleHBvc2UgcG9wdWxhciBzb2NpYWwgbWVkaWEgY29sb3VycyBhbmQgdGhlIFllbGxvIGJyYW5kIGNvbG91ci5cbi8vLyBAc2VlIGh0dHBzOi8vc2Fzcy1sYW5nLmNvbS9kb2N1bWVudGF0aW9uL2F0LXJ1bGVzL2ZvcndhcmQjY29uZmlndXJpbmctbW9kdWxlc1xuLy8vIEBvdXRwdXQgJGdyZWVuIDogIzAyOTI5QTsgJGdyZWVuLWRhcmsgOiAjMjU2NTY5OyAkZ3JlZW4tbGlnaHQ6ICMwNGI5YzQ7XG5cbkBmb3J3YXJkICdjcmVhdGUvcGFsZXR0ZScgd2l0aCAoXG4gICRibHVlOiAkYmx1ZSxcbiAgJHJlZDogJHJlZCxcbiAgJGdyZXk6ICRncmV5LFxuICAkeWVsbG93OiAkeWVsbG93LFxuICAkb3JhbmdlOiAkb3JhbmdlLFxuICAkZ3JlZW46ICRncmVlbixcbiAgJGJsYWNrOiAkYmxhY2tcbik7XG5cbiRtYXA6IChcbiAgYmx1ZTogJGJsdWUsXG4gIHJlZDogJHJlZCxcbiAgZ3JleTogJGdyZXkzLFxuICB5ZWxsb3c6ICR5ZWxsb3csXG4gIG9yYW5nZTogJG9yYW5nZSxcbiAgZ3JlZW46ICRncmVlbixcbiAgYmxhY2s6ICRibGFjayxcbik7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVW5pdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbi8vIFRoaXMgdW5pdHMgY3JlYXRvciB3aWxsIHJlbmRlciBzaXggcG9zaXRpdmUgYW5kIHNpeCBuZWdhdGl2ZSBzYXNzIHZhcmlhYmxlcyBmb3IgXG4vLyBnYXBzLCBzcGFjZXJzLCBhbmQgZ3V0dGVycyByZWxhdGl2ZSB0byB0aGUgYmFzZXYgdmFsdWVzIGRlZmluZWQgYmVsb3cuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQmFzZSBWYWx1ZXMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gQHNlZSBodHRwczovL2NvZGVwZW4uaW8vbWFya25vdHRvbi9wZW4vRXhQYk5HZVxuXG4vLyBUaGVzZSB0aHJlZSB2YWx1ZXMgd2lsbCBhY3QgYSBjb25zdGFudCBiYXNlbGluZSBmb3IgYWxsIGZvbGxvd2luZyB1bml0IGRlbGNhcmF0aW9ucy5cblxuLy8gR2FwcyBtdXN0IHVzZSBhbiBhYnNvbHV0ZSBhbmQgc3RhdGljICdweCcgdW5pdC4gSXQgc2hvdWxkIG5vdCBiZSByZWxhdGl2ZSB0byBhbnlcbi8vIHBhcmVudCBjb250YWluZXIgYW5kIGlzIG5vdCBpbnRlbmRlZCBmb3IgZm9udCBzaXplcywgc28geW91IHNob3VsZCBub3QgdXNlICdyZW0nIG9yICdlbScuIFxuJGdhcCA6IDE2cHggIWRlZmF1bHQ7XG4kYmFzZS1nYXAgOiAkZ2FwO1xuXG4vLyBTcGFjZXJzIG11c3QgdXNlIGEgJ3ZoJyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCBoZWlnaHQtd2lzZS5cbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvbiBhIGNvbXBvbmVudCBsZXZlbC5cbiRzcGFjZXIgOiA0dmggIWRlZmF1bHQ7IFxuJGJhc2Utc3BhY2VyIDogJHNwYWNlcjsgXG5cbi8vIEd1dHRlcnMgbXVzdCB1c2UgYSAndncnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IHdpZHRoLXdpc2UuIFxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9yIG1hcmdpbiBvbiBhIHBhcmVudCBsZXZlbC5cbi8vIEFzIGEgc3VnZ2VzdGlvbiwgdGhpcyBndXR0ZXIgY29uc3RhbnQgc2hvdWxkIGJlIGhhbGYgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB2YWx1ZS5cbiRndXR0ZXIgOiAzdncgIWRlZmF1bHQ7XG4kYmFzZS1ndXR0ZXIgOiAkZ3V0dGVyOyBcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFzYm9sdXRlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gR2FwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdhcHMgYXJlIGFuIGFic29sdXRlIHVuaXQgKHB4KSBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGluZGl2aWR1YWwgZWxlbWVudHMgd2l0aGluIGEgY29tcG9uZW50ZWQuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBzcGFjaW5nIGFtb25nc3QgYmxvY2ssIGlubGluZSwgdGFibGUgYW5kIGdyb3VwIGh0bWwgZWxlbWVudHMuXG5cbkBmdW5jdGlvbiBnYXAoJGFtb3VudCA6IDEpIHtcbiAgQGlmICggJGFtb3VudCA9PSAxICkgeyBcbiAgICBAcmV0dXJuIHZhcigtLWdhcCk7IFxuICB9IEBlbHNlIHsgXG4gICAgQHJldHVybiBjYWxjKHZhcigtLWdhcCkgKiAjeyRhbW91bnR9KTsgXG4gIH1cbn1cblxuJGdhcDAgOiBnYXAoMC41KTsgJGdhcDAtIDogZ2FwKC0wLjUpO1xuJGdhcCAgOiBnYXAoMSk7ICAgJGdhcC0gIDogZ2FwKC0xKTtcbiRnYXAyIDogZ2FwKDIpOyAgICRnYXAyLSA6IGdhcCgtMik7XG4kZ2FwMyA6IGdhcCgzKTsgICAkZ2FwMy0gOiBnYXAoLTMpO1xuJGdhcDQgOiBnYXAoNCk7ICAgJGdhcDQtIDogZ2FwKC00KTtcbiRnYXA1IDogZ2FwKDUpOyAgICRnYXA1LSA6IGdhcCgtNSk7XG4kZ2FwNiA6IGdhcCg2KTsgICAkZ2FwNi0gOiBnYXAoLTYpO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUmVsYXRpdmUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AZnVuY3Rpb24gX2R5bmFtaWMtdW5pdCgkY3VzdG9tLXByb3BlcnR5LCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG5cbiAgLy8gQ2FsYyBNZXRob2RcbiAgJHJlc3VsdCA6IGNhbGMoKCN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9KSArICN7aWYoJG1pbiA9PSAwLCAwcHgsICRtaW4pfSk7XG4gIFxuICAvLyBDbGFtcCBNZXRob2RcbiAgQGlmICggJHVzZS1jbGFtcCApIHtcbiAgICBAaWYgKCAkYW1vdW50ID09IDAgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3ttYXRoLmRpdigkbWluLCAyKX0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAwLjUsICN7JG1heH0pO1xuICAgIH0gQGVsc2UgaWYgKCAkYW1vdW50ID09IDEgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0sICN7JG1heH0pO1xuICAgIH1cbiAgfSBcblxuICBAaWYgKCAkdXNlLW5lZ2F0aXZlICkge1xuICAgICRyZXN1bHQgOiBjYWxjKC0xICogI3skcmVzdWx0fSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG5cbn0gXG5cbi8vIFNwYWNlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTcGFjZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IGhlaWdodCAodmgpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIGNvbXBvbmVudGVkIGxldmVsLlxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIFNwYWNlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJHNwYWNlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZoIHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIHNwYWNlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1zcGFjZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJHNwYWNlcjAgOiB2YXIoLS1zcGFjZXIwKTsgJHNwYWNlcjAtIDogdmFyKC0tc3BhY2VyMC0pO1xuJHNwYWNlciAgOiB2YXIoLS1zcGFjZXIxKTsgJHNwYWNlci0gIDogdmFyKC0tc3BhY2VyMS0pO1xuJHNwYWNlcjIgOiB2YXIoLS1zcGFjZXIyKTsgJHNwYWNlcjItIDogdmFyKC0tc3BhY2VyMi0pO1xuJHNwYWNlcjMgOiB2YXIoLS1zcGFjZXIzKTsgJHNwYWNlcjMtIDogdmFyKC0tc3BhY2VyMy0pO1xuJHNwYWNlcjQgOiB2YXIoLS1zcGFjZXI0KTsgJHNwYWNlcjQtIDogdmFyKC0tc3BhY2VyNC0pO1xuJHNwYWNlcjUgOiB2YXIoLS1zcGFjZXI1KTsgJHNwYWNlcjUtIDogdmFyKC0tc3BhY2VyNS0pO1xuJHNwYWNlcjYgOiB2YXIoLS1zcGFjZXI2KTsgJHNwYWNlcjYtIDogdmFyKC0tc3BhY2VyNi0pO1xuXG4vLyBHdXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR3V0dGVycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCB3aWR0aCAodncpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHBhcmVudCBsZXZlbDtcbi8vIGZvciBleGFtcGxlLCBhIHdyYXBwZXIgY29udGFpbmVyIG9yIGJvZHkgd2l0aCBuZXN0ZWQgY29tcG9uZW50cy4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IGxlZnQgYW5kIHJpZ2h0IHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gR3V0dGVycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkZ3V0dGVyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdncgc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gZ3V0dGVyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLWd1dHRlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kZ3V0dGVyMCA6IHZhcigtLWd1dHRlcjApOyAkZ3V0dGVyMC0gOiB2YXIoLS1ndXR0ZXIwLSk7XG4kZ3V0dGVyICA6IHZhcigtLWd1dHRlcjEpOyAkZ3V0dGVyLSAgOiB2YXIoLS1ndXR0ZXIxLSk7XG4kZ3V0dGVyMiA6IHZhcigtLWd1dHRlcjIpOyAkZ3V0dGVyMi0gOiB2YXIoLS1ndXR0ZXIyLSk7XG4kZ3V0dGVyMyA6IHZhcigtLWd1dHRlcjMpOyAkZ3V0dGVyMy0gOiB2YXIoLS1ndXR0ZXIzLSk7XG4kZ3V0dGVyNCA6IHZhcigtLWd1dHRlcjQpOyAkZ3V0dGVyNC0gOiB2YXIoLS1ndXR0ZXI0LSk7XG4kZ3V0dGVyNSA6IHZhcigtLWd1dHRlcjUpOyAkZ3V0dGVyNS0gOiB2YXIoLS1ndXR0ZXI1LSk7XG4kZ3V0dGVyNiA6IHZhcigtLWd1dHRlcjYpOyAkZ3V0dGVyNi0gOiB2YXIoLS1ndXR0ZXI2LSk7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3VyIFBhbGV0dGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCIuL21vZHVsZXMvY29sb3VyXCI7XG5cbi8vIEFkanVzdCB0aGVzZSB0byBhbWVuZCB0aGUgbGlnaHRuZXNzIG9yIGRhcmtuZXNzIGFtb3VudHMgZm9yIHRoZSBjb2xvdXJzIGxzaXRlZCBiZWxvdy4uIFxuXG4kX2xpZ2h0bmVzcyA6IDE1JSAhZGVmYXVsdDtcbiRfZGFya25lc3MgIDogMjAlICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tbW9uIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRyZWQgICAgICAgICAgOiAjOTcwODBFICFkZWZhdWx0O1xuJHJlZC1saWdodCAgICA6IGNvbG91ci5saWdodGVuKCRyZWQsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRyZWQtZGFyayAgICAgOiBjb2xvdXIuZGFya2VuKCRyZWQsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kb3JhbmdlICAgICAgIDogI0RBNEIwRiAhZGVmYXVsdDtcbiRvcmFuZ2UtbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkb3JhbmdlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kb3JhbmdlLWRhcmsgIDogY29sb3VyLmRhcmtlbigkb3JhbmdlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHllbGxvdyAgICAgICA6ICNFOUIxMDQgIWRlZmF1bHQ7XG4keWVsbG93LWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHllbGxvdywgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHllbGxvdy1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHllbGxvdywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmVlbiAgICAgICAgOiAjNDg4QzEzICFkZWZhdWx0O1xuJGdyZWVuLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRncmVlbiwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGdyZWVuLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGdyZWVuLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGJsdWUgICAgICAgICA6ICMxQjU1QzAgIWRlZmF1bHQ7XG4kYmx1ZS1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJGJsdWUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRibHVlLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRibHVlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHBpbmsgICAgICAgICA6ICNFMDVENkIgIWRlZmF1bHQ7XG4kcGluay1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJHBpbmssICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRwaW5rLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRwaW5rLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHB1cnBsZSAgICAgICA6ICM2MTNENUEgIWRlZmF1bHQ7XG4kcHVycGxlLWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHB1cnBsZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHB1cnBsZS1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHB1cnBsZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmV5ICAgICAgICAgOiAjNzg3ODc4ICFkZWZhdWx0O1xuJGdyZXktbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRncmV5LCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kZ3JleS1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkZ3JleSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRicm93biAgICAgICAgOiAjNzc0RjM4ICFkZWZhdWx0O1xuJGJyb3duLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRicm93biwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGJyb3duLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGJyb3duLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHdoaXRlICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQgO1xuJHdoaXRlLWRhcmsgICA6IGNvbG91ci5saWdodGVuKCR3aGl0ZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuXG4kYmxhY2sgICAgICAgIDogIzAwMDAwMCAhZGVmYXVsdCA7XG4kYmxhY2stbGlnaHQgIDogY29sb3VyLmRhcmtlbigkYmxhY2ssICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU29jaWFsIE1lZGlhIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vd3d3LmxvY2tlZG93bnNlby5jb20vc29jaWFsLW1lZGlhLWNvbG9ycy9cblxuJGZhY2Vib29rOiAgICAjMTg3N2YyICFkZWZhdWx0O1xuJHR3aXR0ZXI6ICAgICAjMWRhMWYyICFkZWZhdWx0O1xuJGdvb2dsZTogICAgICAjNDI4NWY0ICFkZWZhdWx0O1xuJHlvdXR1YmU6ICAgICAjZmYwMDAwICFkZWZhdWx0O1xuJGxpbmtlZGluOiAgICAjMDA3YmI1ICFkZWZhdWx0O1xuJGluc3RhZ3JhbTogICAjYzMyYWEzICFkZWZhdWx0O1xuJHBpbnRlcmVzdDogICAjYmQwODFjICFkZWZhdWx0O1xuJGRhaWx5bW90aW9uOiAjMDA2NkRDICFkZWZhdWx0O1xuJHNuYXBjaGF0OiAgICAjZmZmYzAwICFkZWZhdWx0O1xuJGZsaWNrcjogICAgICAjZjQwMDgzICFkZWZhdWx0O1xuJHZpbWVvOiAgICAgICAjMWFiN2VhICFkZWZhdWx0O1xuJHRodW1ibGVyOiAgICAjMzU0NjVkICFkZWZhdWx0O1xuJHJlZGRpdDogICAgICAjZmY0NTAwICFkZWZhdWx0O1xuJHdoYXRzYXBwOiAgICAjMjVkMzY2ICFkZWZhdWx0O1xuJHNreXBlOiAgICAgICAjMDBhZmYwICFkZWZhdWx0O1xuJGRpc2NvcmQ6ICAgICAjNzI4OWRhICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhIDogKFxuICBmYWNlYm9vazogICAgICRmYWNlYm9vayxcbiAgdHdpdHRlcjogICAgICAkdHdpdHRlcixcbiAgZ29vZ2xlOiAgICAgICAkZ29vZ2xlLFxuICB5b3V0dWJlOiAgICAgICR5b3V0dWJlLFxuICBsaW5rZWRpbjogICAgICRsaW5rZWRpbixcbiAgaW5zdGFncmFtOiAgICAkaW5zdGFncmFtLFxuICBwaW50ZXJlc3Q6ICAgICRwaW50ZXJlc3QsXG4gIGRhaWx5bW90aW9uOiAgJGRhaWx5bW90aW9uLFxuICBzbmFwY2hhdDogICAgICRzbmFwY2hhdCxcbiAgZmxpY2tyOiAgICAgICAkZmxpY2tyLFxuICB2aW1lbzogICAgICAgICR2aW1lbyxcbiAgdGh1bWJsZXI6ICAgICAkdGh1bWJsZXIsXG4gIHJlZGRpdDogICAgICAgJHJlZGRpdCxcbiAgd2hhdHNhcHA6ICAgICAkd2hhdHNhcHAsXG4gIHNreXBlOiAgICAgICAgJHNreXBlLFxuICBkaXNjb3JkOiAgICAgICRkaXNjb3JkXG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3RoZXIgQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHllbGxvOiAjRkZDQjA4ICFkZWZhdWx0O1xuXG4vLy8gSGFuZGxlcyB0aGUgY3Vyc29yIHNlbGVjdGlvbiBjb2xvdXJcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9zZWxlY3RvcnMvcy9zZWxlY3Rpb24vXG5cbiRoaWdobGlnaHQ6ICNCMkQzRkEgIWRlZmF1bHQ7IFxuIl19 */