.block--stats-with-text-v2{background-color:#f7f6ff;overflow:hidden;padding-bottom:48px;padding-top:48px;position:relative}@media (min-width:992px){.block--stats-with-text-v2{padding-bottom:80px;padding-top:80px}}.block--stats-with-text-v2 .stats-with-text-v2__container{align-items:center;display:flex;flex-direction:column;gap:40px;margin:0 auto;max-width:1440px;padding:0 1.5rem;position:relative;z-index:2}@media (min-width:768px){.block--stats-with-text-v2 .stats-with-text-v2__container{gap:48px}}@media (min-width:992px){.block--stats-with-text-v2 .stats-with-text-v2__container{padding:0 6rem}}.block--stats-with-text-v2 .stats-with-text-v2__intro{align-items:center;display:flex;flex-direction:column;gap:24px;text-align:center}@media (min-width:768px){.block--stats-with-text-v2 .stats-with-text-v2__intro{gap:34px}}.block--stats-with-text-v2 .stats-with-text-v2__heading{-webkit-text-fill-color:transparent;background:linear-gradient(180deg,#41329b,#23004b);-webkit-background-clip:text;background-clip:text;font-family:Avenir LT Pro Bold,sans-serif;font-size:28px;line-height:32px;margin:0;padding-bottom:.05em}@media (min-width:768px){.block--stats-with-text-v2 .stats-with-text-v2__heading{font-size:45px;line-height:50px}}.block--stats-with-text-v2 .stats-with-text-v2__body{color:#23004b;font-family:Avenir LT Pro Regular,sans-serif;font-size:18px;line-height:1.4;max-width:807px}@media (min-width:768px){.block--stats-with-text-v2 .stats-with-text-v2__body{font-size:22px;line-height:25px}}.block--stats-with-text-v2 .stats-with-text-v2__body p:last-child{margin-bottom:0}.block--stats-with-text-v2 .stats-with-text-v2__body a{text-decoration:underline}.block--stats-with-text-v2 .stats-with-text-v2__body a,.block--stats-with-text-v2 .stats-with-text-v2__body a:link,.block--stats-with-text-v2 .stats-with-text-v2__body a:visited{color:#23004b}.block--stats-with-text-v2 .stats-with-text-v2__body a:focus-visible,.block--stats-with-text-v2 .stats-with-text-v2__body a:hover{color:#41329b;text-decoration:underline}.block--stats-with-text-v2 .stats-with-text-v2__grid{align-items:center;display:flex;flex-direction:column;gap:32px;width:100%}@media (min-width:768px){.block--stats-with-text-v2 .stats-with-text-v2__grid{align-items:flex-start;flex-direction:row;gap:12px;justify-content:center}}.block--stats-with-text-v2 .stats-with-text-v2__stat{align-items:center;display:flex;flex-direction:column;max-width:320px;text-align:center;width:100%}@media (min-width:768px){.block--stats-with-text-v2 .stats-with-text-v2__stat{flex:0 0 289px;max-width:289px}}.block--stats-with-text-v2 .stats-with-text-v2__number{color:#320fff;font-family:Avenir LT Pro Bold,sans-serif;font-size:64px;line-height:1;margin:0 0 8px}@media (min-width:768px){.block--stats-with-text-v2 .stats-with-text-v2__number{font-size:90px}}.block--stats-with-text-v2 .stats-with-text-v2__pct{font-size:.645em;line-height:1}.block--stats-with-text-v2 .stats-with-text-v2__label{color:#23004b;font-family:Avenir LT Pro Regular,sans-serif;font-size:16px;line-height:26px;margin:0}.block--stats-with-text-v2 .stats-with-text-v2__shape{display:none;pointer-events:none;position:absolute;z-index:1}@media (min-width:992px){.block--stats-with-text-v2 .stats-with-text-v2__shape{display:block}}.block--stats-with-text-v2 .stats-with-text-v2__shape--bl-lines{bottom:0;height:100px;left:calc(-515px + max(0px, 50% - 720px));max-width:60%;opacity:.1;overflow:hidden;width:700px}.block--stats-with-text-v2 .stats-with-text-v2__shape--bl-lines img{display:block;height:auto;width:100%}.block--stats-with-text-v2 .stats-with-text-v2__shape--tr-fill,.block--stats-with-text-v2 .stats-with-text-v2__shape--tr-glass{aspect-ratio:632/536}.block--stats-with-text-v2 .stats-with-text-v2__shape--tr-fill svg,.block--stats-with-text-v2 .stats-with-text-v2__shape--tr-glass svg{display:block;height:100%;overflow:visible;width:100%}.block--stats-with-text-v2 .stats-with-text-v2__shape--tr-fill,.block--stats-with-text-v2 .stats-with-text-v2__shape--tr-glass{--parallax-y:0px;transform:translate3d(0,var(--parallax-y),0) rotate(180deg);will-change:transform}.block--stats-with-text-v2 .stats-with-text-v2__shape--tr-fill{opacity:.75;right:clamp(-410px,-205px - (1024px - 100vw) * .8,-205px);top:calc(33% + 40px);width:370px}.block--stats-with-text-v2 .stats-with-text-v2__shape--tr-glass{right:clamp(-545px,-270px - (1024px - 100vw) * 1.07,-270px);top:calc(33% - 120px);width:420px}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tzL3N0YXRzLXdpdGgtdGV4dC1WMi9kaXN0L3N0eWxlLm1pbi5jc3MiLCJtYXBwaW5ncyI6IkFBRUEsMkJBR0Usd0JDS1csQ0ROWCxnQkVpREEsbUJBUnNCLENBS3RCLGdCQUxzQixDRjFDdEIsaUJBR0YsQ0d5REkseUJIN0RKLDJCRTJERyxtQkFmcUIsQ0FZckIsZ0JGL0NELENBQ0YsQ0FIRSwwREFLRSxtQkFGQSxhQUNBLHNCQUVBLFNBRUEsY0FEQSxpQkFFQSxpQkFSQSxrQkFDQSxTQVlKLENHd0NJLHlCSHRERiwwREFZSSxRQU1KLENBQ0YsQ0dtQ0kseUJIdERGLDBEQWdCSSxjQU9KLENBQ0YsQ0FIRSxzREFHRSxtQkFGQSxhQUNBLHNCQUVBLFNBQ0EsaUJBS0osQ0d1QkkseUJIakNGLHNEQVFJLFFBTUosQ0FDRixDQUhFLHdEQVFFLG9DQUhBLG1EQUNBLDZCQUNBLHFCQUxBLHlDQ3FCVSxDRHBCVixlQUNBLGlCQUhBLFNFMEVILG9CRjdERCxDR09JLHlCSHJCRix3REFZSSxlQUNBLGdCQU1KLENBQ0YsQ0FIRSxxREFLRSxhQzdEVyxDRDBEWCw0Q0NDUyxDREFULGVBQ0EsZ0JBSEEsZUFTSixDR05JLHlCSEpGLHFEQVFJLGVBQ0EsZ0JBTUosQ0FDRixDQUpJLGtFQUFlLGVBT25CLENBSEksdURBQ0UseUJBS04sQ0FITSxrTEFHRSxhQUdSLENBQU0sa0lBRUUsYUNoRk0sQ0RpRk4seUJBQ1IsQ0FLRSxxREFHRSxtQkFGQSxhQUNBLHNCQUVBLFNBQ0EsVUFISixDR2hDSSx5Qkg4QkYscURBVUksdUJBRkEsbUJBR0EsU0FGQSxzQkFBSixDQUNGLENBS0UscURBR0UsbUJBRkEsYUFDQSxzQkFJQSxnQkFGQSxrQkFDQSxVQUZKLENHaERJLHlCSDZDRixxREFTSSxlQUNBLGVBRkosQ0FDRixDQUtFLHVEQUtFLGFDdEdVLENEbUdWLHlDQzNEVSxDRDREVixlQUNBLGNBSEEsY0FDSixDRzdESSx5QkgyREYsdURBUUksY0FGSixDQUNGLENBTUUsb0RBQ0UsaUJBQ0EsYUFKSixDQU9FLHNEQUtFLGFDOUlXLENEMklYLDRDQ2hGUyxDRGlGVCxlQUNBLGlCQUhBLFFBREosQ0FTRSxzREFJRSxhQUZBLG9CQURBLGtCQUVBLFNBTkosQ0duRkkseUJIc0ZGLHNEQU9JLGFBTkosQ0FDRixDQVVFLGdFQUNFLFNBU0EsYUFIQSwwQ0FFQSxjQUdBLFdBREEsZ0JBSEEsV0FUSixDQWVJLG9FQUNFLGNBRUEsWUFEQSxVQVpOLENBc0JFLCtIQUVFLG9CQXBCSixDQXNCSSx1SUFDRSxjQUVBLFlBQ0EsaUJBRkEsVUFqQk4sQ0EyQkUsK0hBRUUsaUJBQ0EsNERBQ0EscUJBekJKLENBNkJFLCtEQUlFLFlBRkEsMERBREEscUJBRUEsV0ExQkosQ0FpQ0UsZ0VBRUUsNERBREEsc0JBRUEsV0EvQkosQyIsInNvdXJjZXMiOlsid2VicGFjazovL3dlYm1lY2hhbml4Ly4vYmxvY2tzL3N0YXRzLXdpdGgtdGV4dC1WMi9zcmMvX3N0YXRzLXdpdGgtdGV4dC1WMi5zY3NzIiwid2VicGFjazovL3dlYm1lY2hhbml4Ly4vc3JjL3Njc3MvY3VzdG9tL19icmFuZGluZy5zY3NzIiwid2VicGFjazovL3dlYm1lY2hhbml4Ly4vc3JjL3Njc3MvY3VzdG9tL3BhcnRpYWxzL19ob3VzZS1taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly93ZWJtZWNoYW5peC8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vLi4vc3JjL3Njc3MvYmFyZS1icy1uZWNlc3NpdGllcyc7XG5cbi5ibG9jay0tc3RhdHMtd2l0aC10ZXh0LXYyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS01O1xuXG4gIEBpbmNsdWRlIHYyLXNlY3Rpb24tcGFkZGluZztcblxuICAuc3RhdHMtd2l0aC10ZXh0LXYyX19jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNDBweDtcbiAgICBtYXgtd2lkdGg6IDE0NDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAwIDEuNXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgIGdhcDogNDhweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gICAgICBwYWRkaW5nOiAwIDZyZW07XG4gICAgfVxuICB9XG5cbiAgLy8g4pSA4pSA4pSAIEludHJvIChoZWFkaW5nICsgY29weSkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC5zdGF0cy13aXRoLXRleHQtdjJfX2ludHJvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAgICAgZ2FwOiAzNHB4O1xuICAgIH1cbiAgfVxuXG4gIC5zdGF0cy13aXRoLXRleHQtdjJfX2hlYWRpbmcge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJGF2ZW5pci1ib2xkO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAkcHJpbWFyeS01MCAwJSwgJHByaW1hcnktMTAwIDEwMCUpO1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgQGluY2x1ZGUgdjItZ3JhZGllbnQtdGV4dC1kZXNjZW5kZXItcm9vbSgwLjA1ZW0pO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAgICAgZm9udC1zaXplOiA0NXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgfVxuICB9XG5cbiAgLnN0YXRzLXdpdGgtdGV4dC12Ml9fYm9keSB7XG4gICAgbWF4LXdpZHRoOiA4MDdweDtcbiAgICBmb250LWZhbWlseTogJGF2ZW5pci1yZWc7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LTEwMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgIH1cblxuICAgIHA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuICAgIC8vIEtlZXAgaW5saW5lIGxpbmtzIGluLWJyYW5kIChkYXJrICsgdW5kZXJsaW5lZCksIGJlYXRpbmcgdGhlIGdsb2JhbFxuICAgIC8vIGJyaWdodC1ibHVlIGBhOm5vdCguLi4pYCBydWxlIOKAlCBzZWUgcHJvamVjdCBub3RlcyBvbiBsaW5rIGNvbG9yLlxuICAgIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICYsXG4gICAgICAmOmxpbmssXG4gICAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktMTAwO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LTUwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyDilIDilIDilIAgU3RhdHMgcm93IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAuc3RhdHMtd2l0aC10ZXh0LXYyX19ncmlkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDMycHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG4gIH1cblxuICAuc3RhdHMtd2l0aC10ZXh0LXYyX19zdGF0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgIGZsZXg6IDAgMCAyODlweDtcbiAgICAgIG1heC13aWR0aDogMjg5cHg7XG4gICAgfVxuICB9XG5cbiAgLnN0YXRzLXdpdGgtdGV4dC12Ml9fbnVtYmVyIHtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgZm9udC1mYW1pbHk6ICRhdmVuaXItYm9sZDtcbiAgICBmb250LXNpemU6IDY0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRicmlnaHQtYmx1ZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgIGZvbnQtc2l6ZTogOTBweDtcbiAgICB9XG4gIH1cblxuICAvLyBUcmFpbGluZyBcIiVcIiByZW5kZXJzIHNtYWxsZXIgdGhhbiB0aGUgbnVtYmVyICjiiYgwLjY0NSByYXRpbyBwZXIgRmlnbWEpLlxuICAuc3RhdHMtd2l0aC10ZXh0LXYyX19wY3Qge1xuICAgIGZvbnQtc2l6ZTogMC42NDVlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC5zdGF0cy13aXRoLXRleHQtdjJfX2xhYmVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6ICRhdmVuaXItcmVnO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICBjb2xvcjogJHByaW1hcnktMTAwO1xuICB9XG5cbiAgLy8g4pSA4pSA4pSAIERlY29yYXRpdmUgc2hhcGVzIChkZXNrdG9wIG9ubHkpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAuc3RhdHMtd2l0aC10ZXh0LXYyX19zaGFwZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJvdHRvbS1sZWZ0IGZhaW50IHN0cmlwZSBwYXR0ZXJuLlxuICAuc3RhdHMtd2l0aC10ZXh0LXYyX19zaGFwZS0tYmwtbGluZXMge1xuICAgIGJvdHRvbTogMDtcbiAgICAvLyBGcm96ZW4gYXQgdGhlIDE0NDBweCBwb3NpdGlvbiDigJQgc2FtZSB0cmVhdG1lbnQgYXMgc3RhdC1ncmlkLXYyLCB3aGljaCBzaGFyZXNcbiAgICAvLyB0aGlzIHNoYXBlLiBUaGUgZGl2IGlzIGEgc2libGluZyBvZiBfX2NvbnRhaW5lciwgc28gaXQgYW5jaG9ycyB0byB0aGVcbiAgICAvLyBmdWxsLWJsZWVkIGJsb2NrIHJvb3QgYW5kIGEgYmFyZSBgLTUxNXB4YCBwaW5uZWQgaXQgdG8gdGhlIHZpZXdwb3J0J3MgTEVGVFxuICAgIC8vIGVkZ2UsIGRyaWZ0aW5nIG91dHdhcmQgb24gd2lkZSBzY3JlZW5zLiBUaGUgYG1heCgwcHgsIDUwJSAtIDcyMHB4KWAgZ3V0dGVyXG4gICAgLy8gdGVybSBtb3ZlcyBpdCBpbndhcmQgYXMgdGhlIHZpZXdwb3J0IGdyb3dzLCBhbmQgaXMgMCBhdCBhbmQgYmVsb3cgMTQ0MC5cbiAgICBsZWZ0OiBjYWxjKC01MTVweCArIG1heCgwcHgsIDUwJSAtIDcyMHB4KSk7XG4gICAgd2lkdGg6IDcwMHB4O1xuICAgIG1heC13aWR0aDogNjAlO1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwLjE7XG5cbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBUb3AtcmlnaHQgZGVjb3JhdGl2ZSBwYXJhbGxlbG9ncmFtIHBhaXI6IGZyb3N0ZWQgZ2xhc3MgKHRvcCkgbGF5ZXJlZCBvdmVyXG4gIC8vIGEgbGlnaHQtcHVycGxlIGZpbGwgKGJvdHRvbSkuIE1pcnJvcnMgdGhlIGNhc2Utc3R1ZHktY2Fyb3VzZWwtdjIgL1xuICAvLyBxdW90ZS1mZWF0dXJlLVYyIGdsYXNzK2ZpbGwgdHJlYXRtZW50LiBCb3RoIHNoYXJlIHRoZSBibG9jaydzIDYzMsOXNTM2XG4gIC8vIHBhcmFsbGVsb2dyYW0gZ2VvbWV0cnkgYW5kIGFyZSBmbGlwcGVkIDE4MMKwIHRvIHBvaW50IGludG8gdGhlIGNvcm5lci5cbiAgLy8gVGhlIGdsYXNzIHNpdHMgbGF0ZXIgaW4gdGhlIERPTSBzbyBpdCBwYWludHMgb3ZlciB0aGUgZmlsbCB3aGVyZSB0aGV5IG1lZXQuXG4gIC5zdGF0cy13aXRoLXRleHQtdjJfX3NoYXBlLS10ci1nbGFzcyxcbiAgLnN0YXRzLXdpdGgtdGV4dC12Ml9fc2hhcGUtLXRyLWZpbGwge1xuICAgIGFzcGVjdC1yYXRpbzogNjMyIC8gNTM2O1xuXG4gICAgc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAvLyBCb3RoIHNoYXBlcyBzaXQgfmEgdGhpcmQgb2YgdGhlIHdheSBkb3duIHRoZSBzZWN0aW9uIGFuZCBkcmlmdCBvbiBzY3JvbGwuXG4gIC8vIEpTIHdyaXRlcyB0aGUgdmVydGljYWwgcGFyYWxsYXggb2Zmc2V0IHRvIGAtLXBhcmFsbGF4LXlgOyBpdCBjb21wb3NlcyB3aXRoXG4gIC8vIHRoZSAxODDCsCBmbGlwIGhlcmUgKHRyYW5zbGF0ZSBpcyBhcHBsaWVkIGluIHRoZSB1bi1yb3RhdGVkIGZyYW1lLCBzbyArWSBpc1xuICAvLyBhbHdheXMgZG93bikuIERlZmF1bHRzIHRvIDAgc28gdGhlIGxheW91dCBpcyBjb3JyZWN0IHdpdGhvdXQgSlMuXG4gIC5zdGF0cy13aXRoLXRleHQtdjJfX3NoYXBlLS10ci1nbGFzcyxcbiAgLnN0YXRzLXdpdGgtdGV4dC12Ml9fc2hhcGUtLXRyLWZpbGwge1xuICAgIC0tcGFyYWxsYXgteTogMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgdmFyKC0tcGFyYWxsYXgteSksIDApIHJvdGF0ZSgxODBkZWcpO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIH1cblxuICAvLyBCb3R0b20g4oCUIGxpZ2h0IHB1cnBsZSAoWmVsaXMgSW5rIFN0b25lICM0MTMyOUIpIGF0IHJlZHVjZWQgb3BhY2l0eS5cbiAgLnN0YXRzLXdpdGgtdGV4dC12Ml9fc2hhcGUtLXRyLWZpbGwge1xuICAgIHRvcDogY2FsYygzMyUgKyA0MHB4KTtcbiAgICByaWdodDogY2xhbXAoLTQxMHB4LCBjYWxjKC0yMDVweCAtICgxMDI0cHggLSAxMDB2dykgKiAwLjgpLCAtMjA1cHgpO1xuICAgIHdpZHRoOiAzNzBweDtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICB9XG5cbiAgLy8gVG9wIOKAlCBmcm9zdGVkIGdsYXNzIChiYWNrZHJvcC1ibHVyICsgMTUlIHdoaXRlIGZpbGwgKyBmYWludCBwdXJwbGUgc3Ryb2tlKS5cbiAgLy8gUHVzaGVkIGZ1cnRoZXIgcGFzdCB0aGUgcmlnaHQgZWRnZSB0aGFuIHRoZSBmaWxsIHNvIGl0IHJlYWRzIGFzIHRoZVxuICAvLyBvdXRlci9mb3JlZ3JvdW5kIHBhbmUuXG4gIC5zdGF0cy13aXRoLXRleHQtdjJfX3NoYXBlLS10ci1nbGFzcyB7XG4gICAgdG9wOiBjYWxjKDMzJSAtIDEyMHB4KTtcbiAgICByaWdodDogY2xhbXAoLTU0NXB4LCBjYWxjKC0yNzBweCAtICgxMDI0cHggLSAxMDB2dykgKiAxLjA3KSwgLTI3MHB4KTtcbiAgICB3aWR0aDogNDIwcHg7XG4gIH1cbn1cbiIsIi8vIFByaW1hcnlcbiRibHVlOiAgICBcdFx0IzMyMEZGRjtcbiRkYXJrLWJsdWU6ICAgIFx0IzQxMzI5QjtcbiRpbmstYmx1ZS0xMDA6XHQjMjMwMDRCO1xuJGluay1ibHVlLTkwOlx0IzI4MEE1RjtcbiRpbmstYmx1ZS03MDpcdCMzMjE0Nzg7XG4kaW5rLWJsdWUtNTA6XHQjNDEzMjlCO1xuJGluay1ibHVlLTMwOlx0IzVGNUZDMztcbiRpbmstYmx1ZS0xMDpcdCM4MjhDRTE7XG4kaW5rLWJsdWUtODpcdCNDREQxRjM7XG4kaW5rLWJsdWUtNTpcdCNmN2Y2ZmY7XG4kcHJpbWFyeTpcdCAgXHQkYmx1ZTtcbiRwcmltYXJ5LWRhcms6IFx0JGRhcmstYmx1ZTtcbiRwcmltYXJ5LTEwMDogXHQkaW5rLWJsdWUtMTAwO1xuJHByaW1hcnktOTA6IFx0JGluay1ibHVlLTkwO1xuJHByaW1hcnktNzA6IFx0JGluay1ibHVlLTcwO1xuJHByaW1hcnktNTA6IFx0JGluay1ibHVlLTUwO1xuJHByaW1hcnktMzA6IFx0JGluay1ibHVlLTMwO1xuJHByaW1hcnktMTA6IFx0JGluay1ibHVlLTEwO1xuJHByaW1hcnktODogXHQkaW5rLWJsdWUtODtcbiRwcmltYXJ5LTU6IFx0JGluay1ibHVlLTU7XG5cblxuLy8gU2Vjb25kYXJ5XG4kcmVkOlx0XHRcdCNFNjFFMkQ7XG4kYnJpZ2h0LWJsdWU6XHQjMzIwRkZGO1xuJGdvbGQ6XHRcdFx0I0ZGQkUwMDtcblxuJHNlY29uZGFyeS1yZWQ6XHRcdCRyZWQ7XG4kc2Vjb25kYXJ5LWJsdWU6XHQkYnJpZ2h0LWJsdWU7XG4kc2Vjb25kYXJ5LWdvbGQ6XHQkZ29sZDtcblxuLy8gTmV1dHJhbFxuJGJsYWNrOiBcdCMwMDAwMDA7XG4kZGFyay1ncmF5OiAjNzk3Mjc5O1xuJHdhcm0tZ3JheTpcdCNCNEI0Qjk7XG4kc25vdy1ncmF5OiAjRjBGMEYxO1xuJHdoaXRlOiBcdCNGRkZGRkY7XG5cblxuLy8gRXh0cmFzXG4kY29sb3JzOiAoXG5cdCdwcmltYXJ5J1x0XHRcdDogJHByaW1hcnksXG5cdCdwcmltYXJ5LWRhcmsnXHRcdDogJHByaW1hcnktZGFyayxcblx0J3ByaW1hcnktMTAwJyBcdFx0OiAkcHJpbWFyeS0xMDAsXG5cdCdwcmltYXJ5LTkwJyBcdFx0OiAkcHJpbWFyeS05MCxcblx0J3ByaW1hcnktNzAnIFx0XHQ6ICRwcmltYXJ5LTcwLFxuXHQncHJpbWFyeS01MCcgXHRcdDogJHByaW1hcnktNTAsXG5cdCdwcmltYXJ5LTMwJyBcdFx0OiAkcHJpbWFyeS0zMCxcblx0J3ByaW1hcnktMTAnIFx0XHQ6ICRwcmltYXJ5LTEwLFxuXHQncHJpbWFyeS04JyBcdFx0OiAkcHJpbWFyeS04LFxuXHQncHJpbWFyeS01JyBcdFx0OiAkcHJpbWFyeS01LFxuXHQncmVkJ1x0XHRcdFx0OiAkc2Vjb25kYXJ5LXJlZCxcblx0J2JyaWdodC1ibHVlJ1x0XHQ6ICRzZWNvbmRhcnktYmx1ZSxcblx0J2dvbGQnXHRcdFx0XHQ6ICRzZWNvbmRhcnktZ29sZCxcblx0J3dhcm0tZ3JheSdcdFx0XHQ6ICR3YXJtLWdyYXksXG5cdCdkYXJrLWdyYXknXHRcdFx0OiAkZGFyay1ncmF5LFxuXHQnYmxhY2snXHRcdFx0XHQ6ICRibGFjayxcblx0J3doaXRlJ1x0XHRcdFx0OiAkd2hpdGVcbik7XG5cbi8vIFNhbi1zZXJpZiBGb250c1xuJGF2ZW5pci1yZWc6ICdBdmVuaXIgTFQgUHJvIFJlZ3VsYXInLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGF2ZW5pci1tZWQ6ICdBdmVuaXIgTFQgUHJvIE1lZGl1bScsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kYXZlbmlyLWRlbWk6ICdBdmVuaXIgTFQgUHJvIERlbWknLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGF2ZW5pci1ib2xkOiAnQXZlbmlyIExUIFBybyBCb2xkJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8gU2VyaWYgRm9udHNcbiRnZW9yZ2lhOiAnR2VvcmdpYScsIHNlcmlmICFkZWZhdWx0OyIsIkB1c2UgJ3Nhc3M6bWF0aCc7XG5cbi8vIFNvbWUgaG91c2UgbWl4aW5zOlxuQGZ1bmN0aW9uIHVybEVuY29kZUNvbG9yKCRzdHJpbmcpe1xuXHRAaWYgdHlwZS1vZigkc3RyaW5nKSA9PSAnY29sb3Ine1xuXHRcdCRoZXg6IHN0ci1zbGljZShpZS1oZXgtc3RyKCRzdHJpbmcpLCA0KTtcblx0XHQkc3RyaW5nOiB1bnF1b3RlKFwiI3skaGV4fVwiKTtcblx0fVxuXHQkc3RyaW5nOiAnJTIzJyArICRzdHJpbmc7XG5cdEByZXR1cm4gJHN0cmluZztcbn1cbkBmdW5jdGlvbiBzdHJpcC11bml0KCR2YWx1ZSl7XG5cdEByZXR1cm4gbWF0aC5kaXYoJHZhbHVlLCAkdmFsdWUgKiAwICsgMSk7XG59XG5AbWl4aW4gZmx1aWQtdHlwZSgkbWluLXZ3LCAkbWF4LXZ3LCAkbWluLWZvbnQtc2l6ZSwgJG1heC1mb250LXNpemUpe1xuXHQkdTE6IHVuaXQoJG1pbi12dyk7XG5cdCR1MjogdW5pdCgkbWF4LXZ3KTtcblx0JHUzOiB1bml0KCRtaW4tZm9udC1zaXplKTtcblx0JHU0OiB1bml0KCRtYXgtZm9udC1zaXplKTtcblx0QGlmICR1MSA9PSAkdTIgYW5kICR1MSA9PSAkdTMgYW5kICR1MSA9PSAkdTR7XG5cdFx0Jntcblx0XHRcdGZvbnQtc2l6ZTogJG1pbi1mb250LXNpemU7XG5cdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluLXZ3KXtcblx0XHRcdFx0Zm9udC1zaXplOiBjYWxjKCN7JG1pbi1mb250LXNpemV9ICsgI3tzdHJpcC11bml0KCRtYXgtZm9udC1zaXplIC0gJG1pbi1mb250LXNpemUpfSAqICgoMTAwdncgLSAjeyRtaW4tdnd9KSAvICN7c3RyaXAtdW5pdCgkbWF4LXZ3IC0gJG1pbi12dyl9KSk7XG5cdFx0XHR9XG5cdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWF4LXZ3KXtcblx0XHRcdFx0Zm9udC1zaXplOiAkbWF4LWZvbnQtc2l6ZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbi8vIOKUgOKUgOKUgCBWMiBzZWN0aW9uIHJoeXRobSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFRoZSBzaW5nbGUgdmVydGljYWwgcGFkZGluZyB0b2tlbiBldmVyeSBWMiBzZWN0aW9uIGJsb2NrIHVzZXMuIEJlZm9yZSB0aGlzXG4vLyBleGlzdGVkLCAyNiBWMiBibG9ja3MgY2FycmllZCAxMyBkaWZmZXJlbnQgdG9wL2JvdHRvbSBwYWlyaW5ncyBzdGVwcGluZyBhdFxuLy8gdHdvIGRpZmZlcmVudCBicmVha3BvaW50czsgNDgg4oaSIDgwIGlzIHRoZSBtZWRpYW4gb2Ygd2hhdCB3YXMgYWxyZWFkeSB0aGVyZVxuLy8gYW5kIGltYWdlLWFuZC1pdGVtLWxpc3QtVjIgLyByZXNvdXJjZS1jYXJvdXNlbC1WMiAvIHNvY2lhbC1wcm9vZi12MiBhbHJlYWR5XG4vLyBtYXRjaGVkIGl0IGV4YWN0bHksIHNvIGl0IGlzIHRoZSBzbWFsbGVzdCB0b3RhbCBtb3ZlLlxuLy9cbi8vIFN0ZXBwaW5nIGF0IGBsZ2AgKG5vdCBgbWRgKSBpcyBkZWxpYmVyYXRlOiBpdCBsaW5lcyB0aGUgdmVydGljYWwgc3RlcCB1cCB3aXRoXG4vLyB0aGUgaG9yaXpvbnRhbCBndXR0ZXIgcmFtcCAoMS41cmVtIOKGkiA2cmVtIEBsZykgdGhhdCAxOSBibG9ja3MgYWxyZWFkeSB1c2UsIHNvXG4vLyBhIHNlY3Rpb24gY2hhbmdlcyBpdHMgc3BhY2luZyBpbiBvbmUgZGlyZWN0aW9uIGF0IG9uZSB3aWR0aC5cbi8vXG4vLyBgJHNpZGVzYCBsZXRzIGEgYmxvY2sgdGFrZSB0aGUgdG9rZW4gb24gb25lIGVkZ2Ugd2hpbGUgb3duaW5nIHRoZSBvdGhlciDigJRcbi8vIGNhcGFiaWxpdGllcy1WMiBuZWVkcyBpdHMgb3duIGJvdHRvbSAoaXQgcmVzZXJ2ZXMgNjBweCBmb3IgYW4gYWJzb2x1dGVseVxuLy8gcG9zaXRpb25lZCBlbGVtZW50KS4gQW55dGhpbmcgb3B0aW5nIG91dCBlbnRpcmVseSBqdXN0IGRvZXNuJ3QgaW5jbHVkZSB0aGlzLlxuJHYyLXNlY3Rpb24tcGFkZGluZy1zbTogNDhweDtcbiR2Mi1zZWN0aW9uLXBhZGRpbmctbGc6IDgwcHg7XG5cbkBtaXhpbiB2Mi1zZWN0aW9uLXBhZGRpbmcoJHNpZGVzOiBib3RoKSB7XG5cdEBpZiAkc2lkZXMgPT0gYm90aCBvciAkc2lkZXMgPT0gdG9wIHtcblx0XHRwYWRkaW5nLXRvcDogJHYyLXNlY3Rpb24tcGFkZGluZy1zbTtcblx0fVxuXHRAaWYgJHNpZGVzID09IGJvdGggb3IgJHNpZGVzID09IGJvdHRvbSB7XG5cdFx0cGFkZGluZy1ib3R0b206ICR2Mi1zZWN0aW9uLXBhZGRpbmctc207XG5cdH1cblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0QGlmICRzaWRlcyA9PSBib3RoIG9yICRzaWRlcyA9PSB0b3Age1xuXHRcdFx0cGFkZGluZy10b3A6ICR2Mi1zZWN0aW9uLXBhZGRpbmctbGc7XG5cdFx0fVxuXHRcdEBpZiAkc2lkZXMgPT0gYm90aCBvciAkc2lkZXMgPT0gYm90dG9tIHtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAkdjItc2VjdGlvbi1wYWRkaW5nLWxnO1xuXHRcdH1cblx0fVxufVxuLy8g4pSA4pSA4pSAIEdyYWRpZW50IHRleHQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBEZXNjZW5kZXIgcm9vbSBmb3IgZ3JhZGllbnQtY2xpcHBlZCB0ZXh0LlxuLy9cbi8vIFYyIGhlYWRpbmdzIHRha2UgdGhlaXIgY29sb3VyIGZyb20gYSBncmFkaWVudCAqYmFja2dyb3VuZCogY2xpcHBlZCB0byB0aGVcbi8vIGdseXBocyAoYGJhY2tncm91bmQtY2xpcDogdGV4dGAgcGx1cyBhIHRyYW5zcGFyZW50IHRleHQgZmlsbCkuIEEgYmFja2dyb3VuZFxuLy8gb25seSBwYWludHMgaW5zaWRlIHRoZSBlbGVtZW50J3MgYm94LCBzbyBpbmsgaGFuZ2luZyBiZWxvdyB0aGF0IGJveCBoYXNcbi8vIG5vdGhpbmcgdG8gcGFpbnQgd2l0aCBhbmQgc2ltcGx5IGRpc2FwcGVhcnMuIEl0IGRvZXNuJ3QgcmVhZCBhcyBjbGlwcGVkIOKAlFxuLy8gdGhlIGJvdHRvbSBsb29wIG9mIGEgXCJnXCIgb3IgdGhlIHRhaWwgb2YgYSBcInlcIiBpcyBqdXN0IGFic2VudCDigJQgd2hpY2ggaXMgd2h5XG4vLyBpdCBnb2VzIHVubm90aWNlZCB1bnRpbCBhbiBlZGl0b3IgaGFwcGVucyB0byB0eXBlIG9uZSBvbnRvIHRoZSBsYXN0IGxpbmUuXG4vL1xuLy8gVGhlIG92ZXJoYW5nIGlzIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHRpZ2h0IGVkaXRvcmlhbCBsaW5lLWhlaWdodHMgdGhlIGRlc2lnbnNcbi8vIHVzZS4gQXZlbmlyJ3MgZGVzY2VuZGVyIGluayByZWFjaGVzIDAuMjQwZW0gYmVsb3cgdGhlIGJhc2VsaW5lLCBzbyBjbGlwcGluZ1xuLy8gYmVnaW5zIHdoZXJldmVyIGxpbmUtaGVpZ2h0IGRyb3BzIGJlbG93IH4xLjE3NCwgYW5kIG5vIFYyIGhlYWRpbmcgaXMgYWJvdmVcbi8vIHRoYXQuIE9ubHkgdGhlIGZpbmFsIGxpbmUgaXMgZXZlciBhZmZlY3RlZDsgaW50ZXJpb3IgbGluZXMgc2l0IGluc2lkZSB0aGUgYm94LlxuLy9cbi8vIDAuMWVtIGNvdmVycyB0aGUgd29yc3QgY2FzZSAoOTBweCBoZWFkbGluZXMgYXQgbGluZS1oZWlnaHQgMSkgd2l0aCBoZWFkcm9vbS5cbi8vIEluIGVtIHNvIGl0IHRyYWNrcyBhIGhlYWRpbmcncyByZXNwb25zaXZlIHNpemVzIOKAlCBpbmNsdWRpbmcgY2xhbXAoKSDigJQgd2l0aG91dFxuLy8gcGVyLWJyZWFrcG9pbnQgb3ZlcnJpZGVzLiBSYWlzaW5nIGxpbmUtaGVpZ2h0IHBhc3QgfjEuMTc0IHdvdWxkIGFsc28gZml4IGl0LFxuLy8gYnV0IHRoYXQgbG9vc2VucyBldmVyeSBsaW5lIG9mIGEgbXVsdGktbGluZSBoZWFkaW5nIGJ5IDEwLTE3JSBhbmQgdGhlIHRpZ2h0XG4vLyBzZXR0aW5nIGlzIHRoZSBkZXNpZ24uXG4vL1xuLy8gT25seSB0aGUgYm90dG9tIG5lZWRzIGl0OiB0aGUgdGFsbGVzdCBpbmsgaW4gdGhlIGZhY2Ugc2l0cyB3ZWxsIGluc2lkZSB0aGVcbi8vIGxpbmUgYm94IHRvcCwgc28gYXNjZW5kZXJzIGFscmVhZHkgaGF2ZSBjbGVhcmFuY2UuXG4vL1xuLy8gT25lIHNpZGUgZWZmZWN0IHdvcnRoIGtub3dpbmc6IGJhY2tncm91bmQtb3JpZ2luIGlzIHRoZSBwYWRkaW5nIGJveCwgc28gdGhpc1xuLy8gbGVuZ3RoZW5zIHRoZSBncmFkaWVudCdzIHBhaW50aW5nIGFyZWEgYnkgdGhlIHNhbWUgMC4xZW0uIFRoZSByYW1wIHN0cmV0Y2hlc1xuLy8gd2l0aCBpdCBhbmQgdGhlIGNvbG91cnMgbGFuZCBtYXJnaW5hbGx5IGxvd2VyIOKAlCB1bmRlciAxMCUgb2YgdGhlIHJhbXAgb24gYVxuLy8gc2luZ2xlLWxpbmUgaGVhZGluZywgcHJvcG9ydGlvbmFsbHkgbGVzcyBhcyBsaW5lcyBhcmUgYWRkZWQuIERlbGliZXJhdGVseSBub3Rcbi8vIGNvbXBlbnNhdGVkIHdpdGggYSBuZWdhdGl2ZSBtYXJnaW4gaGVyZTogYSBibG9jayB0aGF0IHNldHMgbWFyZ2luLWJvdHRvbVxuLy8gYWZ0ZXIgdGhlIGluY2x1ZGUgd291bGQgc2lsZW50bHkgY2FuY2VsIGl0LlxuLy9cbi8vIFRoZSByb29tIGEgZ2l2ZW4gc2V0dGluZyBhY3R1YWxseSBuZWVkcywgaW4gZW0sIGlzXG4vL1xuLy8gICBpbmtfZGVzY2VudCAtIGZvbnRfZGVzY2VudCArIChjb250ZW50X2FyZWEgLSBsaW5lX2hlaWdodCkgLyAyXG4vL1xuLy8gd2hpY2ggZm9yIHRoZSB0aHJlZSBmYWNlcyBpbiBwbGF5IHB1dHMgdGhlIGNsaXBwaW5nIHRocmVzaG9sZCBhdFxuLy9cbi8vICAgQXZlbmlyIExUIFBybyBCb2xkICAgICBpbmsgMC4yNDAyICBkZXNjZW50IDAuMjcwMCAgY29udGVudCAxLjIzMjUgIGxoIDwgMS4xNzNcbi8vICAgQXZlbmlyIExUIFBybyBNZWRpdW0gICBpbmsgMC4yNDAyICBkZXNjZW50IDAuMjcwMCAgY29udGVudCAxLjIyMDAgIGxoIDwgMS4xNjBcbi8vICAgQXZlbmlyIE5leHQgICAgICAgICAgICBpbmsgMC4yNDAwICBkZXNjZW50IDAuMzY1MCAgY29udGVudCAxLjM2NTAgIGxoIDwgMS4xMTVcbi8vXG4vLyBBdmVuaXIgTmV4dCdzIGRlZXBlciBkZXNjZW50IG1ldHJpYyBidXlzIGl0IDAuMDZlbSBvZiBzbGFjayB0aGUgTFQgUHJvIGZhY2VzXG4vLyBkb24ndCBoYXZlLCB3aGljaCBpcyB3aHkgdGhlIHR3byBhY2NvcmRpb24gaGVhZGluZ3MgYXQgbGluZS1oZWlnaHQgMS4xNSBkb24ndFxuLy8gY2xpcCB3aGlsZSB0aGUgTFQgUHJvIGhlYWRpbmdzIGF0IDEuMTExIGRvLiAoQ2hlY2tlZCB0aGUgV2luZG93cyBmYWxsYmFjayB0b286XG4vLyBnZW5lcmljIHNhbnMtc2VyaWYgaXMgMC4yMjEyIC8gMC4yMzAwIC8gMS4xNTAwLCB0aHJlc2hvbGQgMS4xMzIsIGFsc28gY2xlYXIuKVxuLy9cbi8vICRyb29tIGV4aXN0cyBmb3IgdGhlIHNoYWxsb3cgdGllci4gRWxldmVuIDQ1cHgvNTBweCBoZWFkaW5ncyBvdmVyaGFuZyBieVxuLy8gMS40cHg7IHRoZSBkZWZhdWx0IDAuMWVtIHdvdWxkIGZpeCB0aGF0IGF0IGEgY29zdCBvZiA0LjVweCBvZiBleHRyYSBnYXBcbi8vIHVuZGVyIGVhY2ggb25lLCBzbyB0aGV5IHRha2UgMC4wNWVtIGluc3RlYWQg4oCUIDIuMjVweCwgc3RpbGwgNjAlIGhlYWRyb29tIG92ZXIgdGhlIDEuNHB4LFxuLy8gZm9yIGEgZ2FwIGNoYW5nZSB0aGF0IHN0YXlzIHVuZGVyIHRoZSAycHggdGhlIGluayBpdHNlbGYgb2NjdXBpZXMuIEFueXRoaW5nXG4vLyBkZWVwZXIgdGhhbiB+Mi41cHggc2hvdWxkIHRha2UgdGhlIGRlZmF1bHQuXG5AbWl4aW4gdjItZ3JhZGllbnQtdGV4dC1kZXNjZW5kZXItcm9vbSgkcm9vbTogMC4xZW0pIHtcblx0cGFkZGluZy1ib3R0b206ICRyb29tO1xufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwgeHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQGlmIG5vdCAkbiB7XG4gICAgQGVycm9yIFwiYnJlYWtwb2ludCBgI3skbmFtZX1gIG5vdCBmb3VuZCBpbiBgI3skYnJlYWtwb2ludHN9YFwiO1xuICB9XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIHJlZHVjZWQgYnkgMC4wMnB4IHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZlxuLy8gYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChtZCwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1heCBhbmQgJG1heCA+IDAsICRtYXggLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46ICBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogIGJyZWFrcG9pbnQtbWF4KCRuZXh0LCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/