/* ------------------------------------------------------------------------ *\
 * Mixins
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Functions
\* ------------------------------------------------------------------------ */
/*
 * Retrieve a breakpoint variable as a value
 *
 * @param  {string}  $color - The name of the color as defined in _variables
 * @param  {string}  $tone  - The variant of the color (shade|base|tint)
 */
/*
 * Retrieve a color variable as a raw value
 *
 * @param  {string}  $color - The name of the color as defined in _variables
 * @param  {string}  $tone  - The variant of the color (shade|base|tint)
 */
/*
 * Retrieve a color variable as a custom property
 *
 * @param  {string}  $color - The name of the color as defined in _variables
 * @param  {string}  $tone  - The variant of the color (shade|base|tint)
 */
/*
 * Remove the unit of a length
 *
 * @param  {Number}  $number
 */
/*
 * Convert PX units in to EM or REM, relative to a specified base sizes
 *
 * @param  {Number}  $size - Array of up to four sizes in PX units
 * @param  {Number}  $base - Font size to base calculations off of
 * @param  {String}  $unit - Either "em" or "rem"
 */
/* ------------------------------------------------------------------------ *\
 * Colors
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Fonts
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Widths
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Column Count
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Break Points
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Layers
\* ------------------------------------------------------------------------ */
.col-1 {
  max-width: 8.3333333333%;
}

.col-2 {
  max-width: 16.6666666667%;
}

.col-3 {
  max-width: 25%;
}

.col-4 {
  max-width: 33.3333333333%;
}

.col-5 {
  max-width: 41.6666666667%;
}

.col-6 {
  max-width: 50%;
}

.col-7 {
  max-width: 58.3333333333%;
}

.col-8 {
  max-width: 66.6666666667%;
}

.col-9 {
  max-width: 75%;
}

.col-10 {
  max-width: 83.3333333333%;
}

.col-11 {
  max-width: 91.6666666667%;
}

.col-12 {
  max-width: 100%;
}

@media (min-width: 48em) {
  .col-xs-1 {
    max-width: 8.3333333333%;
  }
  .col-xs-2 {
    max-width: 16.6666666667%;
  }
  .col-xs-3 {
    max-width: 25%;
  }
  .col-xs-4 {
    max-width: 33.3333333333%;
  }
  .col-xs-5 {
    max-width: 41.6666666667%;
  }
  .col-xs-6 {
    max-width: 50%;
  }
  .col-xs-7 {
    max-width: 58.3333333333%;
  }
  .col-xs-8 {
    max-width: 66.6666666667%;
  }
  .col-xs-9 {
    max-width: 75%;
  }
  .col-xs-10 {
    max-width: 83.3333333333%;
  }
  .col-xs-11 {
    max-width: 91.6666666667%;
  }
  .col-xs-12 {
    max-width: 100%;
  }
}
@media (min-width: 53.3125em) {
  .col-s-1 {
    max-width: 8.3333333333%;
  }
  .col-s-2 {
    max-width: 16.6666666667%;
  }
  .col-s-3 {
    max-width: 25%;
  }
  .col-s-4 {
    max-width: 33.3333333333%;
  }
  .col-s-5 {
    max-width: 41.6666666667%;
  }
  .col-s-6 {
    max-width: 50%;
  }
  .col-s-7 {
    max-width: 58.3333333333%;
  }
  .col-s-8 {
    max-width: 66.6666666667%;
  }
  .col-s-9 {
    max-width: 75%;
  }
  .col-s-10 {
    max-width: 83.3333333333%;
  }
  .col-s-11 {
    max-width: 91.6666666667%;
  }
  .col-s-12 {
    max-width: 100%;
  }
}
@media (min-width: 60em) {
  .col-m-1 {
    max-width: 8.3333333333%;
  }
  .col-m-2 {
    max-width: 16.6666666667%;
  }
  .col-m-3 {
    max-width: 25%;
  }
  .col-m-4 {
    max-width: 33.3333333333%;
  }
  .col-m-5 {
    max-width: 41.6666666667%;
  }
  .col-m-6 {
    max-width: 50%;
  }
  .col-m-7 {
    max-width: 58.3333333333%;
  }
  .col-m-8 {
    max-width: 66.6666666667%;
  }
  .col-m-9 {
    max-width: 75%;
  }
  .col-m-10 {
    max-width: 83.3333333333%;
  }
  .col-m-11 {
    max-width: 91.6666666667%;
  }
  .col-m-12 {
    max-width: 100%;
  }
}
@media (min-width: 64em) {
  .col-l-1 {
    max-width: 8.3333333333%;
  }
  .col-l-2 {
    max-width: 16.6666666667%;
  }
  .col-l-3 {
    max-width: 25%;
  }
  .col-l-4 {
    max-width: 33.3333333333%;
  }
  .col-l-5 {
    max-width: 41.6666666667%;
  }
  .col-l-6 {
    max-width: 50%;
  }
  .col-l-7 {
    max-width: 58.3333333333%;
  }
  .col-l-8 {
    max-width: 66.6666666667%;
  }
  .col-l-9 {
    max-width: 75%;
  }
  .col-l-10 {
    max-width: 83.3333333333%;
  }
  .col-l-11 {
    max-width: 91.6666666667%;
  }
  .col-l-12 {
    max-width: 100%;
  }
}
@media (min-width: 80em) {
  .col-xl-1 {
    max-width: 8.3333333333%;
  }
  .col-xl-2 {
    max-width: 16.6666666667%;
  }
  .col-xl-3 {
    max-width: 25%;
  }
  .col-xl-4 {
    max-width: 33.3333333333%;
  }
  .col-xl-5 {
    max-width: 41.6666666667%;
  }
  .col-xl-6 {
    max-width: 50%;
  }
  .col-xl-7 {
    max-width: 58.3333333333%;
  }
  .col-xl-8 {
    max-width: 66.6666666667%;
  }
  .col-xl-9 {
    max-width: 75%;
  }
  .col-xl-10 {
    max-width: 83.3333333333%;
  }
  .col-xl-11 {
    max-width: 91.6666666667%;
  }
  .col-xl-12 {
    max-width: 100%;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlbHBlcnMvX21peGlucy5zY3NzIiwiaGVscGVycy9fZnVuY3Rpb25zLnNjc3MiLCJoZWxwZXJzL192YXJpYWJsZXMuc2NzcyIsImxlZ2FjeS5zY3NzIiwibGVnYWN5LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7NkVBQUE7QUNFQTs7NkVBQUE7QUFJQTs7Ozs7RUFBQTtBQVVBOzs7OztFQUFBO0FBVUE7Ozs7O0VBQUE7QUFVQTs7OztFQUFBO0FBU0E7Ozs7OztFQUFBO0FDM0NBOzs2RUFBQTtBQTZFQTs7NkVBQUE7QUFPQTs7NkVBQUE7QUFRQTs7NkVBQUE7QUFNQTs7NkVBQUE7QUFnQkE7OzZFQUFBO0FDN0dJO0VBQ0ksd0JBQUE7QUM4Q1I7O0FEL0NJO0VBQ0kseUJBQUE7QUNrRFI7O0FEbkRJO0VBQ0ksY0FBQTtBQ3NEUjs7QUR2REk7RUFDSSx5QkFBQTtBQzBEUjs7QUQzREk7RUFDSSx5QkFBQTtBQzhEUjs7QUQvREk7RUFDSSxjQUFBO0FDa0VSOztBRG5FSTtFQUNJLHlCQUFBO0FDc0VSOztBRHZFSTtFQUNJLHlCQUFBO0FDMEVSOztBRDNFSTtFQUNJLGNBQUE7QUM4RVI7O0FEL0VJO0VBQ0kseUJBQUE7QUNrRlI7O0FEbkZJO0VBQ0kseUJBQUE7QUNzRlI7O0FEdkZJO0VBQ0ksZUFBQTtBQzBGUjs7QUp3Qkk7RUc1R0k7SUFDSSx3QkFBQTtFQ3dGVjtFRHpGTTtJQUNJLHlCQUFBO0VDMkZWO0VENUZNO0lBQ0ksY0FBQTtFQzhGVjtFRC9GTTtJQUNJLHlCQUFBO0VDaUdWO0VEbEdNO0lBQ0kseUJBQUE7RUNvR1Y7RURyR007SUFDSSxjQUFBO0VDdUdWO0VEeEdNO0lBQ0kseUJBQUE7RUMwR1Y7RUQzR007SUFDSSx5QkFBQTtFQzZHVjtFRDlHTTtJQUNJLGNBQUE7RUNnSFY7RURqSE07SUFDSSx5QkFBQTtFQ21IVjtFRHBITTtJQUNJLHlCQUFBO0VDc0hWO0VEdkhNO0lBQ0ksZUFBQTtFQ3lIVjtBQUNGO0FKZkk7RUdwR0k7SUFDSSx3QkFBQTtFQ3NIVjtFRHZITTtJQUNJLHlCQUFBO0VDeUhWO0VEMUhNO0lBQ0ksY0FBQTtFQzRIVjtFRDdITTtJQUNJLHlCQUFBO0VDK0hWO0VEaElNO0lBQ0kseUJBQUE7RUNrSVY7RURuSU07SUFDSSxjQUFBO0VDcUlWO0VEdElNO0lBQ0kseUJBQUE7RUN3SVY7RUR6SU07SUFDSSx5QkFBQTtFQzJJVjtFRDVJTTtJQUNJLGNBQUE7RUM4SVY7RUQvSU07SUFDSSx5QkFBQTtFQ2lKVjtFRGxKTTtJQUNJLHlCQUFBO0VDb0pWO0VEckpNO0lBQ0ksZUFBQTtFQ3VKVjtBQUNGO0FKckRJO0VHNUZJO0lBQ0ksd0JBQUE7RUNvSlY7RURySk07SUFDSSx5QkFBQTtFQ3VKVjtFRHhKTTtJQUNJLGNBQUE7RUMwSlY7RUQzSk07SUFDSSx5QkFBQTtFQzZKVjtFRDlKTTtJQUNJLHlCQUFBO0VDZ0tWO0VEaktNO0lBQ0ksY0FBQTtFQ21LVjtFRHBLTTtJQUNJLHlCQUFBO0VDc0tWO0VEdktNO0lBQ0kseUJBQUE7RUN5S1Y7RUQxS007SUFDSSxjQUFBO0VDNEtWO0VEN0tNO0lBQ0kseUJBQUE7RUMrS1Y7RURoTE07SUFDSSx5QkFBQTtFQ2tMVjtFRG5MTTtJQUNJLGVBQUE7RUNxTFY7QUFDRjtBSjNGSTtFR3BGSTtJQUNJLHdCQUFBO0VDa0xWO0VEbkxNO0lBQ0kseUJBQUE7RUNxTFY7RUR0TE07SUFDSSxjQUFBO0VDd0xWO0VEekxNO0lBQ0kseUJBQUE7RUMyTFY7RUQ1TE07SUFDSSx5QkFBQTtFQzhMVjtFRC9MTTtJQUNJLGNBQUE7RUNpTVY7RURsTU07SUFDSSx5QkFBQTtFQ29NVjtFRHJNTTtJQUNJLHlCQUFBO0VDdU1WO0VEeE1NO0lBQ0ksY0FBQTtFQzBNVjtFRDNNTTtJQUNJLHlCQUFBO0VDNk1WO0VEOU1NO0lBQ0kseUJBQUE7RUNnTlY7RURqTk07SUFDSSxlQUFBO0VDbU5WO0FBQ0Y7QUpqSUk7RUc1RUk7SUFDSSx3QkFBQTtFQ2dOVjtFRGpOTTtJQUNJLHlCQUFBO0VDbU5WO0VEcE5NO0lBQ0ksY0FBQTtFQ3NOVjtFRHZOTTtJQUNJLHlCQUFBO0VDeU5WO0VEMU5NO0lBQ0kseUJBQUE7RUM0TlY7RUQ3Tk07SUFDSSxjQUFBO0VDK05WO0VEaE9NO0lBQ0kseUJBQUE7RUNrT1Y7RURuT007SUFDSSx5QkFBQTtFQ3FPVjtFRHRPTTtJQUNJLGNBQUE7RUN3T1Y7RUR6T007SUFDSSx5QkFBQTtFQzJPVjtFRDVPTTtJQUNJLHlCQUFBO0VDOE9WO0VEL09NO0lBQ0ksZUFBQTtFQ2lQVjtBQUNGIiwiZmlsZSI6ImxlZ2FjeS4zNDM1ZmZmMS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdHlsZXMgd3JpdHRlbiBieSBKb3JkYW4gQmVhcmNlIEAgV2VibGlueCwgSW5jLlxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBNaXhpbnNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG4vLyBudGgtY2hpbGQ6IGh0dHBzOi8vcGF1bHVuZC5jby51ay9udGgtY2hpbGQtc2Fzcy1taXhpbnNcblxuQG1peGluIGZpcnN0LWNoaWxkKCkge1xuICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGxhc3QtY2hpbGQoKSB7XG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBldmVuKCkge1xuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gb2RkKCkge1xuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaXJzdCgkbnVtKSB7XG4gICAgQGlmICRudW0gPT0gMSB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgICY6bnRoLWNoaWxkKC1uICsgI3skbnVtfSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsYXN0KCRudW0pIHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKC1uICsgI3skbnVtfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZnRlcigkbnVtKSB7XG4gICAgJjpudGgtY2hpbGQobisjeyRudW0gKyAxfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmcm9tLWVuZCgkbnVtKSB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xuICAgICY6bnRoLWNoaWxkKG4rI3skZmlyc3R9KTpudGgtY2hpbGQoLW4rI3skbGFzdH0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWxsLWJ1dCgkbnVtKSB7XG4gICAgJjpub3QoOm50aC1jaGlsZCgjeyRudW19KSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBlYWNoKCRudW0pIHtcbiAgICAmOm50aC1jaGlsZCgjeyRudW19bikge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIGxheWVyc1xuXG5AbWl4aW4gbGF5ZXIoJGxheWVyLW5hbWUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogbWFwLWdldCgkbGF5ZXJzLCAkbGF5ZXItbmFtZSk7XG59XG5cbi8vIFNjYWxlIGR5bmFtaWNhbGx5IHVudGlsIGEgZ2l2ZW4gdmlld3BvcnRcblxuQG1peGluIHZpZXdwb3J0LXNjYWxlKCRzaXplOiAxNiwgJGJhc2U6IDEwMjQsICRtaW4td2lkdGg6IDAsICRtYXgtd2lkdGg6IG51bGwpIHtcbiAgICAkbWF4LXdpZHRoOiBpZigkbWF4LXdpZHRoID09IG51bGwsICRiYXNlLCAkbWF4LXdpZHRoKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IHJlbWlmeSgkbWluLXdpZHRoLCAxNikpIGFuZCAobWF4LXdpZHRoOiByZW1pZnkoJG1heC13aWR0aCwgMTYpKSB7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmVcbiAgICAgICAgZm9udC1zaXplOiAoJHNpemUgLyAkYmFzZSkgKiAxMDB2dztcbiAgICB9XG59XG5cbi8vIENyZWF0ZSBhIG1lZGlhIHF1ZXJ5IHJlbGF0aXZlIHRvIGEgYnJlYWsgcG9pbnQgdmFyaWFibGVcblxuQG1peGluIHNtYWxsZXItdGhhbigkcG9pbnQtbmFtZSwgJGluY2x1c2l2ZTogZmFsc2UpIHtcbiAgICAkd2lkdGg6IGJyZWFrcG9pbnQoJHBvaW50LW5hbWUpO1xuXG4gICAgQGlmICRpbmNsdXNpdmUgPT0gZmFsc2Uge1xuICAgICAgICAkd2lkdGg6ICR3aWR0aCAtIG1hdGguZGl2KDEsIDE2KTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHdpZHRoKSB7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmVcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBDcmVhdGUgYSBtZWRpYSBxdWVyeSByZWxhdGl2ZSB0byBhIGJyZWFrIHBvaW50IHZhcmlhYmxlXG5cbkBtaXhpbiBsYXJnZXItdGhhbigkcG9pbnQtbmFtZSwgJGluY2x1c2l2ZTogdHJ1ZSkge1xuICAgICR3aWR0aDogYnJlYWtwb2ludCgkcG9pbnQtbmFtZSk7XG5cbiAgICBAaWYgJGluY2x1c2l2ZSA9PSBmYWxzZSB7XG4gICAgICAgICR3aWR0aDogJHdpZHRoICsgbWF0aC5kaXYoMSwgMTYpO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkd2lkdGgpIHsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZVxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIFNjYWxlIGZvbnQgc2l6ZSBiYXNlZCBvbiBWVyB1bml0c1xuXG5AbWl4aW4gZm9udC1zY2FsZSgkc2l6ZSwgJHBvaW50LW5hbWUpIHtcbiAgICAkd2lkdGg6IGJyZWFrcG9pbnQoJHBvaW50LW5hbWUpO1xuXG4gICAgZm9udC1zaXplOiBtYXRoLmRpdigkc2l6ZSwgc3RyaXAtdW5pdCgkd2lkdGggKiAxNikpICogMTAwdnc7XG59XG5cbi8vIEZ1bGwgV2lkdGggQ29udGFpbmVycyBpbiBMaW1pdGVkIFdpZHRoIFBhcmVudHNcblxuQG1peGluIGZ1bGwtYmxlZWQge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTUwdnc7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNTB2dztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICB3aWR0aDogMTAwdnc7XG59XG4iLCIvLyBTdHlsZXMgd3JpdHRlbiBieSBKb3JkYW4gQmVhcmNlIEAgV2VibGlueCwgSW5jLlxuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIEZ1bmN0aW9uc1xuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKlxuICogUmV0cmlldmUgYSBicmVha3BvaW50IHZhcmlhYmxlIGFzIGEgdmFsdWVcbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkY29sb3IgLSBUaGUgbmFtZSBvZiB0aGUgY29sb3IgYXMgZGVmaW5lZCBpbiBfdmFyaWFibGVzXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkdG9uZSAgLSBUaGUgdmFyaWFudCBvZiB0aGUgY29sb3IgKHNoYWRlfGJhc2V8dGludClcbiAqL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCk7XG59XG5cbi8qXG4gKiBSZXRyaWV2ZSBhIGNvbG9yIHZhcmlhYmxlIGFzIGEgcmF3IHZhbHVlXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSAgJGNvbG9yIC0gVGhlIG5hbWUgb2YgdGhlIGNvbG9yIGFzIGRlZmluZWQgaW4gX3ZhcmlhYmxlc1xuICogQHBhcmFtICB7c3RyaW5nfSAgJHRvbmUgIC0gVGhlIHZhcmlhbnQgb2YgdGhlIGNvbG9yIChzaGFkZXxiYXNlfHRpbnQpXG4gKi9cbkBmdW5jdGlvbiBjb2xvcigkY29sb3IsICR0b25lOiBiYXNlKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJGNvbG9yKSwgJHRvbmUpO1xufVxuXG4vKlxuICogUmV0cmlldmUgYSBjb2xvciB2YXJpYWJsZSBhcyBhIGN1c3RvbSBwcm9wZXJ0eVxuICpcbiAqIEBwYXJhbSAge3N0cmluZ30gICRjb2xvciAtIFRoZSBuYW1lIG9mIHRoZSBjb2xvciBhcyBkZWZpbmVkIGluIF92YXJpYWJsZXNcbiAqIEBwYXJhbSAge3N0cmluZ30gICR0b25lICAtIFRoZSB2YXJpYW50IG9mIHRoZSBjb2xvciAoc2hhZGV8YmFzZXx0aW50KVxuICovXG5AZnVuY3Rpb24gY29sb3ItcHJvcCgkY29sb3IsICR0b25lOiBiYXNlKSB7XG4gICAgQHJldHVybiB2YXIoLS1jY28tY29sb3ItI3skY29sb3J9LSN7JHRvbmV9KTtcbn1cblxuLypcbiAqIFJlbW92ZSB0aGUgdW5pdCBvZiBhIGxlbmd0aFxuICpcbiAqIEBwYXJhbSAge051bWJlcn0gICRudW1iZXJcbiAqL1xuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bWJlcikge1xuICAgIEByZXR1cm4gaWYodHlwZS1vZigkbnVtYmVyKSA9PSBcIm51bWJlclwiIGFuZCBub3QgdW5pdGxlc3MoJG51bWJlciksIG1hdGguZGl2KCRudW1iZXIsICgkbnVtYmVyICogMCArIDEpKSwgJG51bWJlcik7XG59XG5cbi8qXG4gKiBDb252ZXJ0IFBYIHVuaXRzIGluIHRvIEVNIG9yIFJFTSwgcmVsYXRpdmUgdG8gYSBzcGVjaWZpZWQgYmFzZSBzaXplc1xuICpcbiAqIEBwYXJhbSAge051bWJlcn0gICRzaXplIC0gQXJyYXkgb2YgdXAgdG8gZm91ciBzaXplcyBpbiBQWCB1bml0c1xuICogQHBhcmFtICB7TnVtYmVyfSAgJGJhc2UgLSBGb250IHNpemUgdG8gYmFzZSBjYWxjdWxhdGlvbnMgb2ZmIG9mXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICAkdW5pdCAtIEVpdGhlciBcImVtXCIgb3IgXCJyZW1cIlxuICovXG5AZnVuY3Rpb24gcmVtaWZ5KCRzaXplczogKCRzaXplMSwgJHNpemUyLCAkc2l6ZTMsICRzaXplNCksICRiYXNlOiBudWxsLCAkdW5pdDogbnVsbCkge1xuICAgICR1bml0OiBpZigkdW5pdCA9PSBudWxsLCBpZigkYmFzZSA9PSBudWxsLCByZW0sIGVtKSwgJHVuaXQpO1xuICAgICRiYXNlOiBpZigkYmFzZSA9PSBudWxsLCAxNiwgc3RyaXAtdW5pdCgkYmFzZSkpO1xuICAgICRvdXRwdXQ6IFwiXCI7XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAkc2l6ZTogc3RyaXAtdW5pdCgkc2l6ZSk7XG5cbiAgICAgICAgQGlmIHR5cGUtb2YoJHNpemUpID09IFwibnVtYmVyXCIge1xuICAgICAgICAgICAgLy8gYWRkIGFzIHNwYWNlIGlmICRvdXRwdXQgYWxyZWFkeSBoYXMgYSB2YWx1ZVxuICAgICAgICAgICAgJG91dHB1dDogaWYoJG91dHB1dCA9PSBcIlwiLCBcIlwiLCAkb3V0cHV0ICsgXCIgXCIpO1xuICAgICAgICAgICAgLy8gY2FsY3VsYXRlLCBhcHBlbmQgdmFsdWUgdG8gJG91dHB1dFxuICAgICAgICAgICAgJG91dHB1dDogJG91dHB1dCArIG1hdGguZGl2KHN0cmlwLXVuaXQoJHNpemUpLCBzdHJpcC11bml0KCRiYXNlKSkgKyAkdW5pdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIC8vIHBhc3MgdGhlIHZhbHVlIHRocm91Z2ggdW5jaGFuZ2VkIGlmICRzaXplIGlzIG5vdCBhIG51bWJlclxuICAgICAgICAgICAgJG91dHB1dDogJG91dHB1dCArIFwiIFwiICsgJHNpemU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIGlmKHR5cGUtb2YoJG91dHB1dCkgPT0gXCJzdHJpbmdcIiwgdW5xdW90ZSgkb3V0cHV0KSwgJG91dHB1dCk7XG59XG4iLCIvLyBTdHlsZXMgd3JpdHRlbiBieSBKb3JkYW4gQmVhcmNlIEAgV2VibGlueCwgSW5jLlxuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIENvbG9yc1xuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kY29sb3JzOiAoXG4gICAgXCJwcmltYXJ5XCI6IChcbiAgICAgICAgdGludDogIGxpZ2h0ZW4oI0ZEREIwMCwgMTAlKSxcbiAgICAgICAgYmFzZTogICNGRERCMDAsXG4gICAgICAgIHNoYWRlOiBkYXJrZW4oI0ZEREIwMCwgMTAlKSxcbiAgICApLFxuICAgIFwic2Vjb25kYXJ5XCI6IChcbiAgICAgICAgdGludDogICNDOUM5QzksXG4gICAgICAgIGJhc2U6ICAjOTU5ODlBLFxuICAgICAgICBzaGFkZTogIzJBMkEyQSxcbiAgICApLFxuICAgIFwidGVydGlhcnlcIjogKFxuICAgICAgICB0aW50OiAgIzlFRkZGRixcbiAgICAgICAgYmFzZTogICM2NEZGREEsXG4gICAgICAgIHNoYWRlOiAjMTRDQkE4LFxuICAgICksXG4gICAgXCJxdWF0ZXJuYXJ5XCI6IChcbiAgICAgICAgdGludDogICNGRkZGNUEsXG4gICAgICAgIGJhc2U6ICAjRkZGRjAwLFxuICAgICAgICBzaGFkZTogI0M3Q0MwMCxcbiAgICApLFxuICAgIFwicXVpbmFyeVwiOiAoXG4gICAgICAgIHRpbnQ6ICAjQjQ3Q0ZGLFxuICAgICAgICBiYXNlOiAgIzdDNERGRixcbiAgICAgICAgc2hhZGU6ICMzRjFEQ0IsXG4gICAgKSxcbiAgICBcInNlbmFyeVwiOiAoXG4gICAgICAgIHRpbnQ6ICAjRkZDMjQ2LFxuICAgICAgICBiYXNlOiAgI0ZGOTEwMCxcbiAgICAgICAgc2hhZGU6ICNDNTYyMDAsXG4gICAgKSxcbiAgICBcImFjY2VudFwiOiAoXG4gICAgICAgIHRpbnQ6ICAjODNCOUZGLFxuICAgICAgICBiYXNlOiAgIzQ0OEFGRixcbiAgICAgICAgc2hhZGU6ICMwMDVFQ0IsXG4gICAgKSxcbiAgICBcImFsZXJ0XCI6IChcbiAgICAgICAgdGludDogICNGRjVGNTIsXG4gICAgICAgIGJhc2U6ICAjQzYyODI4LFxuICAgICAgICBzaGFkZTogIzhFMDAwMCxcbiAgICApLFxuICAgIFwic3VjY2Vzc1wiOiAoXG4gICAgICAgIHRpbnQ6ICAjNTJGRkEyLFxuICAgICAgICBiYXNlOiAgIzI4QzY2NSxcbiAgICAgICAgc2hhZGU6ICMwMDhFMzcsXG4gICAgKSxcbiAgICBcImZvcmVncm91bmRcIjogKFxuICAgICAgICB0aW50OiAgIzYyNjI2MixcbiAgICAgICAgYmFzZTogICM0NjQ2NDYsXG4gICAgICAgIHNoYWRlOiAjMDAwMDAwLFxuICAgICksXG4gICAgXCJiYWNrZ3JvdW5kXCI6IChcbiAgICAgICAgdGludDogICNGRkZGRkYsXG4gICAgICAgIGJhc2U6ICAjRkZGRkZGLFxuICAgICAgICBzaGFkZTogI0NDQ0NDQyxcbiAgICApLFxuICAgIFwicGFnZVwiOiAoXG4gICAgICAgIHRpbnQ6ICAjRUVFRUVFLFxuICAgICAgICBiYXNlOiAgI0UwRTBFMCxcbiAgICAgICAgc2hhZGU6ICNBRUFFQUUsXG4gICAgKSxcbiAgICBcImxpZ2h0XCI6IChcbiAgICAgICAgdGludDogICNGRkZGRkYsXG4gICAgICAgIGJhc2U6ICAjRkZGRkZGLFxuICAgICAgICBzaGFkZTogI0NDQ0NDQyxcbiAgICApLFxuICAgIFwiZGFya1wiOiAoXG4gICAgICAgIHRpbnQ6ICAjMkMyQzJDLFxuICAgICAgICBiYXNlOiAgIzAwMDAwMCxcbiAgICAgICAgc2hhZGU6ICMwMDAwMDAsXG4gICAgKSxcbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIEZvbnRzXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRoZWFkaW5nLWZvbnQ6IFwibGZ0LWV0aWNhXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiRib2R5LWZvbnQ6IFwibGZ0LWV0aWNhXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogV2lkdGhzXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRzaXRlLXdpZHRoOiAxNDQwO1xuJGNvbHVtbi1nYXA6IDI2O1xuJGNvbnRlbnQtcGFkZGluZzogMjU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIENvbHVtbiBDb3VudFxuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kY29sdW1uLWNvdW50OiAxMjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogQnJlYWsgUG9pbnRzXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRicmVha3BvaW50czogKFxuICAgIHh4eHM6IG1hdGguZGl2KDQ4MGVtLCAxNiksXG4gICAgeHhzOiAgbWF0aC5kaXYoNjQwZW0sIDE2KSxcbiAgICB4czogICBtYXRoLmRpdig3NjhlbSwgMTYpLFxuICAgIHM6ICAgIG1hdGguZGl2KDg1M2VtLCAxNiksXG4gICAgbTogICAgbWF0aC5kaXYoOTYwZW0sIDE2KSxcbiAgICBsOiAgICBtYXRoLmRpdigxMDI0ZW0sIDE2KSxcbiAgICB4bDogICBtYXRoLmRpdigxMjgwZW0sIDE2KSxcbiAgICB4eGw6ICBtYXRoLmRpdigxMzY2ZW0sIDE2KSxcbiAgICB4eHhsOiBtYXRoLmRpdigxNDQwZW0sIDE2KSxcbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIExheWVyc1xuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4kbGF5ZXJzOiAoXG4gICAgaGVhZGVyOiA1LFxuICAgIG5hdmlnYXRpb246IDQsXG4gICAgaGVybzogMyxcbiAgICBjb250ZW50OiAyLFxuICAgIGZvb3RlcjogMSxcbik7XG4iLCIvLyBTdHlsZXMgd3JpdHRlbiBieSBKb3JkYW4gQmVhcmNlIEAgV2VibGlueCwgSW5jLlxuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL19taXhpbnNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL19mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL192YXJpYWJsZXNcIjtcblxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XG4gICAgLmNvbC0jeyRpfSB7XG4gICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBsYXJnZXItdGhhbih4cykge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTIge1xuICAgICAgICAuY29sLXhzLSN7JGl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGxhcmdlci10aGFuKHMpIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcbiAgICAgICAgLmNvbC1zLSN7JGl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGxhcmdlci10aGFuKG0pIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcbiAgICAgICAgLmNvbC1tLSN7JGl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGxhcmdlci10aGFuKGwpIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcbiAgICAgICAgLmNvbC1sLSN7JGl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGxhcmdlci10aGFuKHhsKSB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XG4gICAgICAgIC5jb2wteGwtI3skaX0ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLmRpdigkaSwgMTIpICogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIE1peGluc1xuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogRnVuY3Rpb25zXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKlxuICogUmV0cmlldmUgYSBicmVha3BvaW50IHZhcmlhYmxlIGFzIGEgdmFsdWVcbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkY29sb3IgLSBUaGUgbmFtZSBvZiB0aGUgY29sb3IgYXMgZGVmaW5lZCBpbiBfdmFyaWFibGVzXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkdG9uZSAgLSBUaGUgdmFyaWFudCBvZiB0aGUgY29sb3IgKHNoYWRlfGJhc2V8dGludClcbiAqL1xuLypcbiAqIFJldHJpZXZlIGEgY29sb3IgdmFyaWFibGUgYXMgYSByYXcgdmFsdWVcbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkY29sb3IgLSBUaGUgbmFtZSBvZiB0aGUgY29sb3IgYXMgZGVmaW5lZCBpbiBfdmFyaWFibGVzXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkdG9uZSAgLSBUaGUgdmFyaWFudCBvZiB0aGUgY29sb3IgKHNoYWRlfGJhc2V8dGludClcbiAqL1xuLypcbiAqIFJldHJpZXZlIGEgY29sb3IgdmFyaWFibGUgYXMgYSBjdXN0b20gcHJvcGVydHlcbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkY29sb3IgLSBUaGUgbmFtZSBvZiB0aGUgY29sb3IgYXMgZGVmaW5lZCBpbiBfdmFyaWFibGVzXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkdG9uZSAgLSBUaGUgdmFyaWFudCBvZiB0aGUgY29sb3IgKHNoYWRlfGJhc2V8dGludClcbiAqL1xuLypcbiAqIFJlbW92ZSB0aGUgdW5pdCBvZiBhIGxlbmd0aFxuICpcbiAqIEBwYXJhbSAge051bWJlcn0gICRudW1iZXJcbiAqL1xuLypcbiAqIENvbnZlcnQgUFggdW5pdHMgaW4gdG8gRU0gb3IgUkVNLCByZWxhdGl2ZSB0byBhIHNwZWNpZmllZCBiYXNlIHNpemVzXG4gKlxuICogQHBhcmFtICB7TnVtYmVyfSAgJHNpemUgLSBBcnJheSBvZiB1cCB0byBmb3VyIHNpemVzIGluIFBYIHVuaXRzXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICAkYmFzZSAtIEZvbnQgc2l6ZSB0byBiYXNlIGNhbGN1bGF0aW9ucyBvZmYgb2ZcbiAqIEBwYXJhbSAge1N0cmluZ30gICR1bml0IC0gRWl0aGVyIFwiZW1cIiBvciBcInJlbVwiXG4gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIENvbG9yc1xuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogRm9udHNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIFdpZHRoc1xuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogQ29sdW1uIENvdW50XG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBCcmVhayBQb2ludHNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIExheWVyc1xuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNvbC0xIHtcbiAgbWF4LXdpZHRoOiA4LjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLTIge1xuICBtYXgtd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xufVxuXG4uY29sLTMge1xuICBtYXgtd2lkdGg6IDI1JTtcbn1cblxuLmNvbC00IHtcbiAgbWF4LXdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbn1cblxuLmNvbC01IHtcbiAgbWF4LXdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC02IHtcbiAgbWF4LXdpZHRoOiA1MCU7XG59XG5cbi5jb2wtNyB7XG4gIG1heC13aWR0aDogNTguMzMzMzMzMzMzMyU7XG59XG5cbi5jb2wtOCB7XG4gIG1heC13aWR0aDogNjYuNjY2NjY2NjY2NyU7XG59XG5cbi5jb2wtOSB7XG4gIG1heC13aWR0aDogNzUlO1xufVxuXG4uY29sLTEwIHtcbiAgbWF4LXdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbn1cblxuLmNvbC0xMSB7XG4gIG1heC13aWR0aDogOTEuNjY2NjY2NjY2NyU7XG59XG5cbi5jb2wtMTIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jb2wteHMtMSB7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wteHMtMiB7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXhzLTMge1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC5jb2wteHMtNCB7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXhzLTUge1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14cy02IHtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLXhzLTcge1xuICAgIG1heC13aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC14cy04IHtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wteHMtOSB7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC14cy0xMCB7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXhzLTExIHtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wteHMtMTIge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDUzLjMxMjVlbSkge1xuICAuY29sLXMtMSB7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtcy0yIHtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtcy0zIHtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLXMtNCB7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXMtNSB7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXMtNiB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1zLTcge1xuICAgIG1heC13aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zLTgge1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zLTkge1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG4gIC5jb2wtcy0xMCB7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXMtMTEge1xuICAgIG1heC13aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zLTEyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5jb2wtbS0xIHtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tLTIge1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tLTMge1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC5jb2wtbS00IHtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbS01IHtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbS02IHtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLW0tNyB7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW0tOCB7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW0tOSB7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1tLTEwIHtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbS0xMSB7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW0tMTIge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmNvbC1sLTEge1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWwtMiB7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWwtMyB7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1sLTQge1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sLTUge1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sLTYge1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5jb2wtbC03IHtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbC04IHtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbC05IHtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLWwtMTAge1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sLTExIHtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbC0xMiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAuY29sLXhsLTEge1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTIge1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC0zIHtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLXhsLTQge1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC14bC01IHtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wteGwtNiB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC14bC03IHtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wteGwtOCB7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXhsLTkge1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG4gIC5jb2wteGwtMTAge1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC14bC0xMSB7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXhsLTEyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn0iXX0= */
