.block--feature-grid-v2{background-color:#f7f6ff;overflow:hidden;padding-bottom:48px;padding-top:48px;position:relative}@media (min-width:992px){.block--feature-grid-v2{padding-bottom:80px;padding-top:80px}}.block--feature-grid-v2 .feature-grid__decoration{display:none;pointer-events:none;position:absolute}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__decoration{display:block}}.block--feature-grid-v2 .feature-grid__decoration--left-bottom{transform:translateY(var(--parallax-y,0));will-change:transform;z-index:0}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__decoration--left-bottom{aspect-ratio:341/473;left:-8rem;top:38%;width:275px}}.block--feature-grid-v2 .feature-grid__decoration--left-bottom svg{display:block;height:100%;overflow:visible;width:100%}.block--feature-grid-v2 .feature-grid__decoration--left-top{background:#ffbe00;-webkit-clip-path:polygon(51.4% 0,100% 0,48.7% 100%,0 100%);clip-path:polygon(51.4% 0,100% 0,48.7% 100%,0 100%);opacity:.7;transform:translateY(calc(var(--parallax-y, 0px)*-.6));will-change:transform;z-index:0}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__decoration--left-top{aspect-ratio:597.92/553.768;bottom:-18%;left:-18rem;width:420px}}.block--feature-grid-v2 .feature-grid__decoration--right{aspect-ratio:6/1;background:repeating-linear-gradient(135deg,#23004b,#23004b 2px,transparent 0,transparent 10px);bottom:0;-webkit-clip-path:polygon(16.6667% 0,100% 0,83.3333% 100%,0 100%);clip-path:polygon(16.6667% 0,100% 0,83.3333% 100%,0 100%);opacity:.15;right:max(0px,50% - 720px);width:min(40%,576px);z-index:0}.block--feature-grid-v2:not(:has(.feature-grid__cta-wrap)) .feature-grid__decoration--right{bottom:-2rem}.block--feature-grid-v2 .feature-grid__layout{margin:0 auto;max-width:1440px;padding:0 1.5rem;position:relative;z-index:1}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__layout{padding:0 6rem}}.block--feature-grid-v2 .feature-grid__heading{-webkit-text-fill-color:transparent;background:linear-gradient(180deg,#41329b,#23004b);-webkit-background-clip:text;background-clip:text;color:transparent;font-family:Avenir LT Pro Bold,sans-serif;font-size:1.75rem;line-height:1.15;margin-bottom:2.5rem;padding-bottom:.05em;text-align:center}@media (min-width:768px){.block--feature-grid-v2 .feature-grid__heading{font-size:2.25rem}}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__heading{font-size:2.8125rem;line-height:50px;margin-bottom:3.75rem}}.block--feature-grid-v2 .feature-grid__heading p{line-height:inherit;margin:0}.block--feature-grid-v2 .feature-grid__heading:has(+.feature-grid__subheading){margin-bottom:1rem}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__heading:has(+.feature-grid__subheading){margin-bottom:1.25rem}}.block--feature-grid-v2 .feature-grid__subheading{color:#23004b;font-family:Avenir LT Pro Regular,sans-serif;font-size:1rem;line-height:1.5;margin:0 0 2.5rem;text-align:center}.block--feature-grid-v2 .feature-grid__subheading p{margin:0}.block--feature-grid-v2 .feature-grid__subheading p+p{margin-top:.75em}.block--feature-grid-v2 .feature-grid__subheading ol,.block--feature-grid-v2 .feature-grid__subheading ul{list-style-position:inside;margin:.75em 0 0;padding-left:0}.block--feature-grid-v2 .feature-grid__subheading a,.block--feature-grid-v2 .feature-grid__subheading a:link,.block--feature-grid-v2 .feature-grid__subheading a:visited{color:inherit;font-family:inherit;text-decoration:underline}@media (min-width:768px){.block--feature-grid-v2 .feature-grid__subheading{font-size:1.125rem;line-height:1.55}}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__subheading{margin-bottom:3.75rem}}.block--feature-grid-v2 .feature-grid__rows{display:flex;flex-direction:column;gap:2.5rem;margin-left:auto;margin-right:auto;max-width:1024px}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__rows{gap:2.75rem}}.block--feature-grid-v2 .feature-grid__row{display:grid;gap:2rem;grid-template-columns:1fr}@media (min-width:768px){.block--feature-grid-v2 .feature-grid__row{-moz-column-gap:2rem;column-gap:2rem;grid-template-columns:repeat(2,1fr);row-gap:2rem}}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__row{-moz-column-gap:4rem;column-gap:4rem;grid-template-columns:repeat(3,1fr)}}.block--feature-grid-v2 .feature-grid__column{align-items:flex-start;color:#23004b;display:flex;gap:.5rem}.block--feature-grid-v2 .feature-grid__column-mark{display:block;flex:0 0 auto;height:12px;margin-top:.625rem;width:15px}.block--feature-grid-v2 .feature-grid__column-content{display:flex;flex-direction:column;gap:.75rem;min-width:0}.block--feature-grid-v2 .feature-grid__column-header{color:#23004b;font-family:Avenir LT Pro Bold,sans-serif;font-size:1.375rem;line-height:32px;margin:0}.block--feature-grid-v2 .feature-grid__column-body{color:#23004b;font-family:Avenir LT Pro Regular,sans-serif;font-size:1rem;line-height:26px;margin:0}.block--feature-grid-v2.feature-grid--layout-cards .feature-grid__rows{max-width:820px}.block--feature-grid-v2.feature-grid--layout-cards .feature-grid__row{align-items:stretch}@media (min-width:768px){.block--feature-grid-v2.feature-grid--layout-cards .feature-grid__row{-moz-column-gap:1rem;column-gap:1rem}}.block--feature-grid-v2.feature-grid--layout-cards .feature-grid__column{background-color:#fff;border:1px solid rgba(35,0,75,.2);border-radius:4px;height:100%;min-height:240px;overflow:hidden;padding:40px 44px;position:relative}.block--feature-grid-v2.feature-grid--layout-cards .feature-grid__column:before{background:linear-gradient(270deg,#7159ff 1.75%,#1e0999 97.54%);border-top-left-radius:4px;border-top-right-radius:4px;content:"";height:7px;left:0;position:absolute;right:0;top:0;z-index:2}.block--feature-grid-v2.feature-grid--layout-cards .feature-grid__column-mark{margin-top:.5rem}.block--feature-grid-v2.feature-grid--layout-cards .feature-grid__decoration--right{aspect-ratio:3/1;-webkit-clip-path:polygon(33.3333% 0,100% 0,66.6667% 100%,0 100%);clip-path:polygon(33.3333% 0,100% 0,66.6667% 100%,0 100%)}.block--feature-grid-v2 .feature-grid__cta-wrap{display:flex;justify-content:center;margin-top:2.5rem}@media (min-width:992px){.block--feature-grid-v2 .feature-grid__cta-wrap{margin-top:3.75rem}}@media (prefers-reduced-motion:reduce){.block--feature-grid-v2 .feature-grid__decoration--left-bottom,.block--feature-grid-v2 .feature-grid__decoration--left-top{transform:none;will-change:auto}}.block--feature-grid-v2 .feature-grid__cta{background-color:#ffbe00;border:1px solid #ffbe00;border-radius:3px;display:inline-block;font-family:Avenir LT Pro Medium,sans-serif;font-size:1.125rem;font-weight:500;line-height:1;min-width:239px;padding:1rem 2.5rem;text-align:center;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.block--feature-grid-v2 .feature-grid__cta,.block--feature-grid-v2 .feature-grid__cta:link,.block--feature-grid-v2 .feature-grid__cta:visited{color:#23004b}.block--feature-grid-v2 .feature-grid__cta:active,.block--feature-grid-v2 .feature-grid__cta:focus,.block--feature-grid-v2 .feature-grid__cta:focus-visible,.block--feature-grid-v2 .feature-grid__cta:hover{background-color:#d6a000;border-color:#d6a000;color:#23004b}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tzL2ZlYXR1cmUtZ3JpZC12Mi9kaXN0L3N0eWxlLm1pbi5jc3MiLCJtYXBwaW5ncyI6IkFBRUEsd0JBR0Msd0JDS1ksQ0ROWixnQkVpREMsbUJBUnNCLENBS3RCLGdCQUxzQixDRjFDdkIsaUJBR0QsQ0d5REkseUJIN0RKLHdCRTJERyxtQkFmcUIsQ0FZckIsZ0JGL0NELENBQ0YsQ0FEQyxrREFHQyxhQURBLG9CQURBLGlCQUtGLENHOENJLHlCSHBESCxrREFNRSxhQUlELENBQ0YsQ0FJRSwrREFFQywwQ0FDQSxzQkFGQSxTQUFILENHb0NJLHlCSHJDRiwrREFZRSxxQkFOQSxXQUlBLFFBQ0EsV0FIRixDQUNGLENBUUcsbUVBQ0MsY0FFQSxZQUNBLGlCQUZBLFVBSkosQ0FjRSw0REFDQyxtQkFDQSxnSEFDQSxXQUVBLHVEQUNBLHNCQUZBLFNBVkgsQ0djSSx5QkhSRiw0REFjRSw0QkFGQSxZQUhBLFlBSUEsV0FaRixDQUNGLENBeUNFLHlEQUlDLGlCQUNBLGdHQUpBLFNBdUJBLDRIQVpBLFlBVkEsMkJBQ0EscUJBVUEsU0E1Q0gsQ0ErREMsNEZBQ0MsWUE3REYsQ0FrRUMsOENBSUMsY0FEQSxpQkFFQSxpQkFKQSxrQkFDQSxTQTdERixDR2RJLHlCSHlFSCw4Q0FRRSxjQS9ERCxDQUNGLENBbUVDLCtDQVlDLG9DQUpBLG1EQUNBLDZCQUNBLHFCQUNBLGtCQVRBLHlDQ3RGWSxDRHVGWixrQkFDQSxpQkFDQSxxQkVyQ0Qsb0JGNkMwQyxDQVp6QyxpQkF2REYsQ0doQ0kseUJIc0ZILCtDQWdCRSxpQkFsRUQsQ0FDRixDR3JDSSx5QkhzRkgsK0NBb0JFLG9CQUNBLGlCQUNBLHFCQWpFRCxDQUNGLENBb0VFLGlEQUVDLG9CQURBLFFBakVILENBdUVFLCtFQUNDLGtCQXJFSCxDR25ESSx5Qkh1SEYsK0VBSUUscUJBcEVGLENBQ0YsQ0FrRkMsa0RBTUMsYUM1TWEsQ0R5TWIsNENDOUlXLENEK0lYLGVBQ0EsZ0JBSkEsa0JBQ0EsaUJBNUVGLENBb0ZFLG9EQUNDLFFBbEZILENBb0ZHLHNEQUNDLGdCQWxGSixDQXdGRSwwR0FJQywyQkFGQSxpQkFDQSxjQXJGSCxDQXNHRSx5S0FHQyxjQUNBLG9CQUNBLHlCQXBHSCxDR25GSSx5QkgwSUgsa0RBaURFLG1CQUNBLGdCQXBHRCxDQUNGLENHekZJLHlCSDBJSCxrREFzREUscUJBbkdELENBQ0YsQ0F3R0MsNENBQ0MsYUFDQSxzQkFDQSxXQUVBLGlCQUNBLGtCQUZBLGdCQXBHRixDR3RHSSx5QkhzTUgsNENBU0UsV0FyR0QsQ0FDRixDQXdHQywyQ0FDQyxhQUVBLFNBREEseUJBckdGLENHaEhJLHlCSG1OSCwyQ0FPRSxxQ0FEQSxvQ0FFQSxZQXJHRCxDQUNGLENHdkhJLHlCSG1OSCwyQ0FjRSxxQ0FEQSxtQ0FwR0QsQ0FDRixDQXdHQyw4Q0FHQyx1QkFDQSxhQ3JTYSxDRGtTYixhQUNBLFNBcEdGLENBeUdDLG1EQUtDLGNBSkEsY0FFQSxZQUNBLG1CQUZBLFVBcEdGLENBMEdDLHNEQUNDLGFBQ0Esc0JBQ0EsV0FDQSxXQXhHRixDQTJHQyxxREFLQyxhQzVUYSxDRHdUYix5Q0MxUFksQ0QyUFosbUJBQ0EsaUJBQ0EsUUF4R0YsQ0E0R0MsbURBS0MsYUNwVWEsQ0RnVWIsNENDclFXLENEc1FYLGVBQ0EsaUJBQ0EsUUF6R0YsQ0FxSEUsdUVBQ0MsZUFuSEgsQ0FzSEUsc0VBQ0MsbUJBcEhILENHcEtJLHlCSHVSRixzRUFJRSxvQ0FuSEYsQ0FDRixDQXlIRSx5RUFLQyxzQkFDQSxrQ0FDQSxrQkFMQSxZQUNBLGlCQUtBLGdCQUpBLGtCQUhBLGlCQWhISCxDQXlIRyxnRkFPQyxnRUFDQSwyQkFDQSw0QkFSQSxXQUtBLFdBRkEsT0FGQSxrQkFHQSxRQUZBLE1BT0EsU0F2SEosQ0E2SEUsOEVBQ0MsZ0JBM0hILENBdUlFLG9GQUNDLGlCQUNBLDJIQXJJSCxDQTBJQyxnREFDQyxhQUNBLHVCQUNBLGlCQXhJRixDRzNNSSx5QkhnVkgsZ0RBTUUsa0JBdklELENBQ0YsQ0E0SUMsdUNBQ0MsMkhBRUMsZUFDQSxnQkExSUQsQ0FDRixDQTZJQywyQ0FFQyx3QkMzWU8sQ0Q0WVAseUJBQ0Esa0JBSEEscUJBTUEsMkNDM1dXLENENFdYLG1CQUNBLGdCQUNBLGNBSkEsZ0JBREEsb0JBTUEsa0JBQ0EscUJBQ0EseUVBM0lGLENBaUpFLDhJQUdDLGFBakpILENBb0pFLDZNQUlDLHlCQUNBLHFCQUNBLGFBckpILEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93ZWJtZWNoYW5peC8uL2Jsb2Nrcy9mZWF0dXJlLWdyaWQtdjIvc3JjL19mZWF0dXJlLWdyaWQtdjIuc2NzcyIsIndlYnBhY2s6Ly93ZWJtZWNoYW5peC8uL3NyYy9zY3NzL2N1c3RvbS9fYnJhbmRpbmcuc2NzcyIsIndlYnBhY2s6Ly93ZWJtZWNoYW5peC8uL3NyYy9zY3NzL2N1c3RvbS9wYXJ0aWFscy9faG91c2UtbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vd2VibWVjaGFuaXgvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9zY3NzL2JhcmUtYnMtbmVjZXNzaXRpZXMnO1xuXG4uYmxvY2stLWZlYXR1cmUtZ3JpZC12MiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0YmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktNTsgLy8gWmVsaXMgSW5rIE1pc3QgKCNGN0Y2RkYpXG5cdEBpbmNsdWRlIHYyLXNlY3Rpb24tcGFkZGluZztcblxuXHQvLyAtLS0tLS0tLSBkZWNvcmF0aXZlIHNoYXBlcyAtLS0tLS0tLVxuXHQvLyBUd28gbGVmdC1zaWRlIHBhcmFsbGVsb2dyYW1zIChmcm9zdGVkIGdsYXNzICsgc29saWQgeWVsbG93KSBhbmQgYVxuXHQvLyByaWdodC1zaWRlIGRpYWdvbmFsIGhhdGNoIGJhbmQuXG5cdC5mZWF0dXJlLWdyaWRfX2RlY29yYXRpb24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG5cdFx0Ly8gLS0gQm90dG9tLWxlZnQ6IGZyb3N0ZWQtZ2xhc3MgcGFyYWxsZWxvZ3JhbS5cblx0XHQvLyBTVkcgY29tYmluZXMgYSAxNSUgd2hpdGUgZmlsbCwgYSAzMCUtb3BhY2l0eSBkYXJrLXB1cnBsZSBzdHJva2UsIGFuZCBhXG5cdFx0Ly8gZm9yZWlnbk9iamVjdCB3aXRoIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpIGNsaXBwZWQgdG8gdGhlIHNoYXBlLlxuXHRcdC8vXG5cdFx0Ly8gUGFyYWxsYXg6IGRyaWZ0cyBXSVRIIHRoZSBzY3JvbGwgcHJvZ3Jlc3MgKHBvc2l0aXZlIG11bHRpcGxpZXIpLlxuXHRcdC8vIEpTIHNldHMgYC0tcGFyYWxsYXgteWAgb24gdGhlIGJsb2NrOyByYW5nZSDCsTQwcHguXG5cdFx0Ji0tbGVmdC1ib3R0b20ge1xuXHRcdFx0ei1pbmRleDogMDtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1wYXJhbGxheC15LCAwcHgpKTtcblx0XHRcdHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdFx0bGVmdDogLThyZW07XG5cdFx0XHRcdC8vICUgb2YgdGhlIChjb250ZW50LWRyaXZlbikgYmxvY2sgaGVpZ2h0IHNvIHRoZSBzaGFwZSBrZWVwcyBpdHNcblx0XHRcdFx0Ly8gcmVsYXRpdmUgdmVydGljYWwgcG9zaXRpb24gYXMgZmVhdHVyZSByb3dzIGFyZSBhZGRlZC9yZW1vdmVkLlxuXHRcdFx0XHQvLyB+MzglIOKJiCB0aGUgb2xkIDE4cmVtIG9uIGEgcmVwcmVzZW50YXRpdmUgMi1yb3cgKH40NnJlbSkgYmxvY2suXG5cdFx0XHRcdHRvcDogMzglO1xuXHRcdFx0XHR3aWR0aDogMjc1cHg7XG5cdFx0XHRcdGFzcGVjdC1yYXRpbzogMzQxIC8gNDczO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTVkcgcGF0aCBibGVlZHMgbGVmdCBvZiBpdHMgdmlld0JveCAoeD0tMTQyIHRvIHg9MzQwIHZzIHZpZXdCb3ggeD0w4oCTMzQxKTtcblx0XHRcdC8vIG92ZXJmbG93OiB2aXNpYmxlIGxldHMgdGhhdCBibGVlZCByZW5kZXIgb3V0c2lkZSB0aGUgU1ZHJ3MgYm94LlxuXHRcdFx0c3ZnIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIC0tIFRvcC1sZWZ0OiBzb2xpZCB5ZWxsb3cgcGFyYWxsZWxvZ3JhbS4gUHVyZSBDU1MsIG5vIFNWRy5cblx0XHQvL1xuXHRcdC8vIFBhcmFsbGF4OiBkcmlmdHMgQ09VTlRFUiB0byAtLWxlZnQtYm90dG9tIChuZWdhdGl2ZSBtdWx0aXBsaWVyIMOXIDAuNilcblx0XHQvLyBzbyB0aGUgdHdvIHNoYXBlcyBzZXBhcmF0ZSBhcyB5b3Ugc2Nyb2xsLCBjcmVhdGluZyBkZXB0aC5cblx0XHQmLS1sZWZ0LXRvcCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjRkZCRTAwO1xuXHRcdFx0Y2xpcC1wYXRoOiBwb2x5Z29uKDUxLjQlIDAsIDEwMCUgMCwgNDguNyUgMTAwJSwgMCAxMDAlKTtcblx0XHRcdG9wYWNpdHk6IC43O1xuXHRcdFx0ei1pbmRleDogMDtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKHZhcigtLXBhcmFsbGF4LXksIDBweCkgKiAtMC42KSk7XG5cdFx0XHR3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRcdGxlZnQ6IC0xOHJlbTtcblx0XHRcdFx0Ly8gJSBvZiB0aGUgKGNvbnRlbnQtZHJpdmVuKSBibG9jayBoZWlnaHQgc28gdGhlIHNoYXBlIHNjYWxlcyB3aXRoXG5cdFx0XHRcdC8vIGNvbnRlbnQ7IG5lZ2F0aXZlIHB1c2hlcyBpdCBiZWxvdyB0aGUgYmxvY2sncyBib3R0b20gZWRnZS5cblx0XHRcdFx0Ym90dG9tOiAtMTglO1xuXHRcdFx0XHR3aWR0aDogNDIwcHg7XG5cdFx0XHRcdGFzcGVjdC1yYXRpbzogNTk3LjkyIC8gNTUzLjc2ODtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyAtLSBCb3R0b20tcmlnaHQgYmFuZDogZGlhZ29uYWwtbGluZSBoYXRjaC5cblx0XHQvL1xuXHRcdC8vIFNoYXBlZCBhcyBhIHBhcmFsbGVsb2dyYW0sIG5vdCBhIHJlY3RhbmdsZSwgc28gZXZlcnkgaGF0Y2ggbGluZSBzcGFuc1xuXHRcdC8vIHRoZSBmdWxsIHZlcnRpY2FsIGhlaWdodC4gVGhlIGxlZnQgZWRnZSBzbGFudHMgYXQgNDVkZWcgcGFyYWxsZWwgdG9cblx0XHQvLyB0aGUgbGluZXMgKG1hdGNoaW5nIGFzcGVjdC1yYXRpbyA2LzEg4oaSIHRvcC1sZWZ0IHZlcnRleCBhdCAxNi42NjY3JSk7XG5cdFx0Ly8gaG9yaXpvbnRhbCB0b3AvYm90dG9tIGVkZ2VzIGNhcCBlYWNoIGxpbmUgY29uc2lzdGVudGx5LiBSaWdodCBlZGdlXG5cdFx0Ly8gc3RheXMgdmVydGljYWwsIGFuY2hvcmVkIHRvIHRoZSBibG9jaydzIHJpZ2h0IGVkZ2UuXG5cdFx0Ly9cblx0XHQvLyBXaWR0aCBjYXBwZWQgYXQgNDAlIHNvIHRoZSBiYW5kIGVuZHMgdG8gdGhlIHJpZ2h0IG9mIHRoZSBjZW50ZXJlZFxuXHRcdC8vIENUQSBidXR0b24gKENUQSBhdCA1MCUgY2VudGVyLCBtaW4td2lkdGggMjM5cHgg4oaSIHJpZ2h0IGVkZ2UgfjU4JSBvblxuXHRcdC8vIGEgMTQ0MC13aWRlIGJsb2NrOyA0MCUgZnJvbSByaWdodCA9IGxlZnQgZWRnZSBhdCA2MCUpLlxuXHRcdC8vXG5cdFx0Ly8gVGhhdCBjYWxpYnJhdGlvbiBpcyBzdGF0ZWQgYWdhaW5zdCBhIDE0NDAtd2lkZSBibG9jaywgYnV0IHRoZSBkZWNvcmF0aW9uc1xuXHRcdC8vIGFyZSBzaWJsaW5ncyBvZiAuZmVhdHVyZS1ncmlkX19sYXlvdXQg4oCUIG5vdCBjaGlsZHJlbiDigJQgc28gdGhleSBhbmNob3IgdG9cblx0XHQvLyB0aGUgZnVsbC1ibGVlZCBibG9jayByb290LCBub3QgdGhlIDE0NDAgY2FwLiBQbGFpbiBgcmlnaHQ6IDBgICsgYHdpZHRoOiA0MCVgXG5cdFx0Ly8gdGhlcmVmb3JlIGJvdGggcGlubmVkIHRoZSBiYW5kIHRvIHRoZSB2aWV3cG9ydCBlZGdlIEFORCBncmV3IGl0OiA1NzZweFxuXHRcdC8vIGVuZGluZyBhdCAxNDQwIG9uIGEgMTQ0MCBzY3JlZW4sIDc2OHB4IGVuZGluZyBhdCAxOTIwIG9uIGEgMTkyMCBvbmUuXG5cdFx0Ly9cblx0XHQvLyBCb3RoIHZhbHVlcyBhcmUgbm93IGZyb3plbiBhdCB3aGF0IHRoZXkgcmVzb2x2ZSB0byBhdCAxNDQwcHgsIHNvIHRoZSBiYW5kXG5cdFx0Ly8gaG9sZHMgaXRzIGRlc2lnbmVkIHBvc2l0aW9uIGFuZCBzaXplIG9uIHdpZGVyIHNjcmVlbnM6XG5cdFx0Ly8gICByaWdodCDihpIgNTAlIC0gNzIwcHggaW5zZXRzIGZyb20gdGhlIGJsb2NrIGVkZ2UgdG8gdGhlIGJhbmQgZWRnZVxuXHRcdC8vICAgICAgICAgICAoZXZhbHVhdGVzIHRvIDAgYXQgZXhhY3RseSAxNDQwcHgsIGhlbmNlIG1heCgpIHRvIHBpbiBpdCB0aGVyZVxuXHRcdC8vICAgICAgICAgICBiZWxvdyAxNDQwIHdoZXJlIHRoZSBiYW5kIGlzIHRoZSBmdWxsIHdpZHRoKVxuXHRcdC8vICAgd2lkdGgg4oaSIDQwJSBvZiAxNDQwID0gNTc2cHhcblx0XHQvLyBhc3BlY3QtcmF0aW8gZGVyaXZlcyB0aGUgaGVpZ2h0IGZyb20gdGhlIHdpZHRoLCBzbyB0aGF0IGZyZWV6ZXMgdG9vLlxuXHRcdCYtLXJpZ2h0IHtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdHJpZ2h0OiBtYXgoMHB4LCBjYWxjKDUwJSAtIDcyMHB4KSk7XG5cdFx0XHR3aWR0aDogbWluKDQwJSwgNTc2cHgpO1xuXHRcdFx0YXNwZWN0LXJhdGlvOiA2IC8gMTtcblx0XHRcdGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG5cdFx0XHRcdDEzNWRlZyxcblx0XHRcdFx0JHByaW1hcnktMTAwIDAsXG5cdFx0XHRcdCRwcmltYXJ5LTEwMCAycHgsXG5cdFx0XHRcdHRyYW5zcGFyZW50IDJweCxcblx0XHRcdFx0dHJhbnNwYXJlbnQgMTBweFxuXHRcdFx0KTtcblx0XHRcdG9wYWNpdHk6IC4xNTtcblx0XHRcdHotaW5kZXg6IDA7XG5cdFx0XHQvLyBUcnVlIHBhcmFsbGVsb2dyYW06IEJPVEggdmVydGljYWwgZWRnZXMgc2xhbnQgMTYuNjY2NyUsIHNvIGVhY2ggc3RyaXBlXG5cdFx0XHQvLyBpcyBjdXQgdG8gdGhlIHNhbWUgbGVuZ3RoLiBUaGUgYm90dG9tLXJpZ2h0IHdhcyAxMDAlIOKAlCBhIHZlcnRpY2FsIGVkZ2Vcblx0XHRcdC8vIHRoYXQgc2xpY2VkIGFjcm9zcyB0aGUgZGlhZ29uYWxzIGFuZCBsZWZ0IHZpc2libHkgdHJ1bmNhdGVkIHN0cmlwZXMgaW5cblx0XHRcdC8vIHRoZSBib3R0b20tcmlnaHQgY29ybmVyLlxuXHRcdFx0Ly9cblx0XHRcdC8vIDE2LjY2NjclIGlzIHRoZSBtYWdpYyBudW1iZXIgcmF0aGVyIHRoYW4gYW4gYXJiaXRyYXJ5IGxlYW46IHRoZSBlbGVtZW50XG5cdFx0XHQvLyBpcyBhc3BlY3QtcmF0aW8gNi8xLCBzbyAxLzYgb2YgaXRzIHdpZHRoIGVxdWFscyBpdHMgaGVpZ2h0LCBtYWtpbmcgdGhhdFxuXHRcdFx0Ly8gb2Zmc2V0IGV4YWN0bHkgNDXCsCDigJQgcGFyYWxsZWwgdG8gdGhlIHN0cmlwZXMgYSAxMzVkZWcgZ3JhZGllbnQgcGFpbnRzLlxuXHRcdFx0Ly8gQmVjYXVzZSBpdCBpcyBleHByZXNzZWQgYXMgYSBwZXJjZW50YWdlIGFuZCB0aGUgYXNwZWN0IHJhdGlvIGlzIGZpeGVkLFxuXHRcdFx0Ly8gaXQgc3RheXMgNDXCsCBhdCBldmVyeSB3aWR0aCwgc28gdGhpcyBuZWVkcyBubyBwZXItYnJlYWtwb2ludCBtYXRoLlxuXHRcdFx0Y2xpcC1wYXRoOiBwb2x5Z29uKDE2LjY2NjclIDAsIDEwMCUgMCwgODMuMzMzMyUgMTAwJSwgMCAxMDAlKTtcblx0XHR9XG5cdH1cblxuXHQvLyBXaGVuIHRoZSBibG9jayBoYXMgbm8gYm90dG9tIENUQSBpdCdzIHNob3J0ZXIsIHNvIHRoZSByaWdodC1zaWRlIGhhdGNoXG5cdC8vIGJhbmQgKGFuY2hvcmVkIHRvIGJvdHRvbTogMCkgc2l0cyBmbHVzaCBhZ2FpbnN0IHRoZSBsYXN0IGNvbnRlbnQgcm93LlxuXHQvLyBEcm9wIGl0IGEgYml0IHNvIGl0IGNsZWFycyB0aGUgY29udGVudCAodGhlIG92ZXJmbG93OmhpZGRlbiBjbGlwcyB0aGVcblx0Ly8gYm90dG9tIHRoYXQgbm93IGZhbGxzIGJlbG93IHRoZSBibG9jayBlZGdlKS5cblx0Jjpub3QoOmhhcyguZmVhdHVyZS1ncmlkX19jdGEtd3JhcCkpIC5mZWF0dXJlLWdyaWRfX2RlY29yYXRpb24tLXJpZ2h0IHtcblx0XHRib3R0b206IC0ycmVtO1xuXHR9XG5cblx0Ly8gLS0tLS0tLS0gbGF5b3V0IC0tLS0tLS0tXG5cdC8vIFRoZW1lLXdpZGUgMTQ0MCBjb250ZW50IGNhcCAoQm9vdHN0cmFwJ3MgLmNvbnRhaW5lciBvbmx5IGdvZXMgdG8gMTMyMCkuXG5cdC5mZWF0dXJlLWdyaWRfX2xheW91dCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0bWF4LXdpZHRoOiAxNDQwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0cGFkZGluZzogMCAxLjVyZW07XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRwYWRkaW5nOiAwIDZyZW07XG5cdFx0fVxuXHR9XG5cblx0Ly8gLS0tLS0tLS0gaGVhZGluZyAtLS0tLS0tLVxuXHQuZmVhdHVyZS1ncmlkX19oZWFkaW5nIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1mYW1pbHk6ICRhdmVuaXItYm9sZDtcblx0XHRmb250LXNpemU6IDEuNzVyZW07IC8vIDI4cHggbW9iaWxlXG5cdFx0bGluZS1oZWlnaHQ6IDEuMTU7XG5cdFx0bWFyZ2luLWJvdHRvbTogMi41cmVtO1xuXG5cdFx0Ly8gZ3JhZGllbnQgdGV4dCDigJQgaW5rLXN0b25lIHRvIGluay1ibHVlICh0b3Ag4oaSIGJvdHRvbSksIHBlciBGaWdtYVxuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICM0MTMyOUIgMCUsICMyMzAwNEIgMTAwJSk7XG5cdFx0LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG5cdFx0YmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuXHRcdGNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHQtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0QGluY2x1ZGUgdjItZ3JhZGllbnQtdGV4dC1kZXNjZW5kZXItcm9vbSgwLjA1ZW0pO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHRcdFx0Zm9udC1zaXplOiAyLjI1cmVtO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdGZvbnQtc2l6ZTogMi44MTI1cmVtOyAvLyA0NXB4IEZpZ21hXG5cdFx0XHRsaW5lLWhlaWdodDogNTBweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDMuNzVyZW07IC8vIH42MHB4IGdhcCBiZWZvcmUgZ3JpZFxuXHRcdH1cblxuXHRcdC8vIEFsbG93IGVkaXRvcnMgdG8gYnJlYWsgdGhlIHRpdGxlIGFjcm9zcyB0d28gbGluZXMgdmlhIHRoZSB3eXNpd3lnLlxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdFx0fVxuXG5cdFx0Ly8gV2l0aCBhIHN1YiBoZWFkZXIgcHJlc2VudCB0aGUgaGVhZGluZyBoYW5kcyB0aGUgYm90dG9tIGdhcCBvdmVyIHRvIGl0XG5cdFx0Ly8gYW5kIGtlZXBzIG9ubHkgYSB0aWdodCBsZWFkLWluLlxuXHRcdCY6aGFzKCsgLmZlYXR1cmUtZ3JpZF9fc3ViaGVhZGluZykge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIC0tLS0tLS0tIHN1YiBoZWFkZXIgLS0tLS0tLS1cblx0Ly8gT3B0aW9uYWwgc3VwcG9ydGluZyBjb3B5IHVuZGVyIHRoZSBoZWFkaW5nLiBGbGF0IGluay1ibHVlIChubyBncmFkaWVudCBmaWxsKVxuXHQvLyBzbyBpdCByZWFkcyBhcyBzZWNvbmRhcnkgdG8gdGhlIGhlYWRpbmc7IGNhcnJpZXMgdGhlIGdhcCBkb3duIHRvIHRoZSBncmlkLFxuXHQvLyBtYXRjaGluZyB0aGUgaGVhZGluZydzIG93biBtYXJnaW4gd2hlbiBpdCdzIGFic2VudC5cblx0Ly9cblx0Ly8gVGhpcyBpcyBhIHd5c2l3eWcgZmllbGQsIHNvIGl0IGlzIGEgPGRpdj4gd3JhcHBpbmcgZWRpdG9yIEhUTUwgcmF0aGVyIHRoYW4gYVxuXHQvLyA8cD4gb2YgaXRzIG93bi4gVHlwb2dyYXBoeSBpcyBzZXQgaGVyZSBhbmQgaW5oZXJpdGVkOyB0aGUgcGFyYWdyYXBoIHJlc2V0XG5cdC8vIGJlbG93IGlzIHdoYXQga2VlcHMgdGhlIGJsb2NrJ3Mgb3duIHNwYWNpbmcgYXV0aG9yaXRhdGl2ZSDigJQgb3RoZXJ3aXNlIHRoZVxuXHQvLyB0aGVtZSdzIGdsb2JhbCA8cD4gbWFyZ2lucyB3b3VsZCBzdGFjayBvbiB0b3Agb2YgdGhpcyBtYXJnaW4gYW5kIG9wZW4gYSBnYXBcblx0Ly8gYmVmb3JlIHRoZSBncmlkIHRoYXQgY2hhbmdlcyB3aXRoIHRoZSBudW1iZXIgb2YgcGFyYWdyYXBocy5cblx0LmZlYXR1cmUtZ3JpZF9fc3ViaGVhZGluZyB7XG5cdFx0bWFyZ2luOiAwIDAgMi41cmVtO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LWZhbWlseTogJGF2ZW5pci1yZWc7XG5cdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjU7XG5cdFx0Y29sb3I6ICRwcmltYXJ5LTEwMDtcblxuXHRcdC8vIFBhcmFncmFwaHMgc2l0IGZsdXNoOyBvbmx5IHRoZSBnYXBzIEJFVFdFRU4gdGhlbSBhcmUgc3BhY2VkLCBzbyBhXG5cdFx0Ly8gb25lLXBhcmFncmFwaCBzdWIgaGVhZGVyIG1lYXN1cmVzIGV4YWN0bHkgYXMgaXQgZGlkIGFzIGEgPHA+LlxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHQrIHAge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwLjc1ZW07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRWRpdG9ycyBnZXQgbGlzdHMgZnJvbSB0aGUgYmFzaWMgdG9vbGJhci4gS2VlcCB0aGVtIGNlbnRyZWQgd2l0aCB0aGVcblx0XHQvLyByZXN0IHJhdGhlciB0aGFuIGluaGVyaXRpbmcgdGhlIHRoZW1lJ3MgbGVmdC1pbmRlbnRlZCBsaXN0IHBhZGRpbmcuXG5cdFx0dWwsXG5cdFx0b2wge1xuXHRcdFx0bWFyZ2luOiAwLjc1ZW0gMCAwO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0bGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuXHRcdH1cblxuXHRcdC8vIElubGluZSBsaW5rcyByZWFkIGFzIHBhcnQgb2YgdGhlIHNlbnRlbmNlIHJhdGhlciB0aGFuIHBpY2tpbmcgdXAgdGhlXG5cdFx0Ly8gZ2xvYmFsIGJyaWdodC1ibHVlIGFuY2hvciBzdHlsZS5cblx0XHQvL1xuXHRcdC8vIFRoZSA6bGluay86dmlzaXRlZCB2YXJpYW50cyBhcmUgbG9hZC1iZWFyaW5nLCBub3QgZGVjb3JhdGlvbi4gUmVhZCB0aGVcblx0XHQvLyBDT01QSUxFRCBjc3MsIG5vdCB0aGUgc291cmNlOiBgLmdmb3JtX2J1dHRvbi5nZm9ybV9idXR0b24geyBAZXh0ZW5kIC5idG4gfWBcblx0XHQvLyAoX2Zvcm1zLWdyYXZpdHlmb3Jtcy5zY3NzKSBtYWtlcyBTYXNzIGV4cGFuZCB0aGUgZ2xvYmFsIHJ1bGUncyA6bm90KCksIHNvXG5cdFx0Ly8gaXQgc2hpcHMgYXMgYGE6bm90KC5idG4sLmdmb3JtX2J1dHRvbi5nZm9ybV9idXR0b24sLmJ1dHRvbiwuYWNmLWljb24pYCDigJRcblx0XHQvLyBhbmQgOm5vdCgpIGluaGVyaXRzIGl0cyBtb3N0IHNwZWNpZmljIGFyZ3VtZW50LCBzbyB0aGF0IGRvdWJsZSBjbGFzcyBtYWtlc1xuXHRcdC8vIGl0ICgwLDIsMSksIHNldHRpbmcgY29sb3VyLCBmb250LWZhbWlseSBBTkQgdGV4dC1kZWNvcmF0aW9uOiBub25lLiBBIGJhcmVcblx0XHQvLyBgYWAgaGVyZSBjb21waWxlcyB0byAoMCwyLDEpIHRvbywgYW5kIGFwcC5taW4uY3NzIGlzIGVucXVldWVkIGFmdGVyIHRoZVxuXHRcdC8vIGJsb2NrJ3Mgb3duIHN0eWxlc2hlZXQsIHNvIHRoZSB0aWUgZ29lcyB0byB0aGUgZ2xvYmFsLiBBZGRpbmcgYVxuXHRcdC8vIHBzZXVkby1jbGFzcyB0YWtlcyB0aGlzIHRvICgwLDMsMSkgYW5kIGNsZWFycyBpdCBvdXRyaWdodC4gRXZlcnkgYW5jaG9yXG5cdFx0Ly8gd2l0aCBhbiBocmVmIG1hdGNoZXMgb25lIG9mIHRoZSB0d287IHRoZSBiYXJlIGBhYCBpcyBqdXN0IGEgZmFsbGJhY2suXG5cdFx0YSxcblx0XHRhOmxpbmssXG5cdFx0YTp2aXNpdGVkIHtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIGdsb2JhbCBmb3JjZXMgQXZlbmlyIERlbWk7IGtlZXAgdGhlIGJvZHkgd2VpZ2h0XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0XHRmb250LXNpemU6IDEuMTI1cmVtO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNTU7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMy43NXJlbTsgLy8gfjYwcHggZ2FwIGJlZm9yZSBncmlkLCBzYW1lIGFzIHRoZSBoZWFkaW5nJ3Ncblx0XHR9XG5cdH1cblxuXHQvLyAtLS0tLS0tLSByb3dzIG9mIDMgY29sdW1ucyAtLS0tLS0tLVxuXHQvLyBTdGFjayBvZiByb3dzOyBlYWNoIHJvdyBpcyBpdHMgb3duIDMtY29sIGdyaWQgKGxvY2tlZCB0byAzIGF0IGxnKykuXG5cdC5mZWF0dXJlLWdyaWRfX3Jvd3Mge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRnYXA6IDIuNXJlbTtcblx0XHRtYXgtd2lkdGg6IDEwMjRweDtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRnYXA6IDIuNzVyZW07IC8vIH40NHB4IGJldHdlZW4gcm93cyAoRmlnbWEpXG5cdFx0fVxuXHR9XG5cblx0LmZlYXR1cmUtZ3JpZF9fcm93IHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXHRcdGdhcDogMnJlbTtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG5cdFx0XHRjb2x1bW4tZ2FwOiAycmVtO1xuXHRcdFx0cm93LWdhcDogMnJlbTtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHQvLyBMb2NrZWQgdG8gMyBjb2x1bW5zIHBlciByb3cgKGRhdGEgbW9kZWwgYWxzbyBlbmZvcmNlcyAzKS5cblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG5cdFx0XHRjb2x1bW4tZ2FwOiA0cmVtOyAvLyA2NXB4IEZpZ21hXG5cdFx0fVxuXHR9XG5cblx0LmZlYXR1cmUtZ3JpZF9fY29sdW1uIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGdhcDogMC41cmVtO1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRcdGNvbG9yOiAkcHJpbWFyeS0xMDA7IC8vIGluay1ibHVlXG5cdH1cblxuXHQuZmVhdHVyZS1ncmlkX19jb2x1bW4tbWFyayB7XG5cdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0d2lkdGg6IDE1cHg7XG5cdFx0aGVpZ2h0OiAxMnB4OyAvLyBGaWdtYSBGaWxsLTExIGlzIDE1IMOXIDExLjg3OVxuXHRcdG1hcmdpbi10b3A6IDAuNjI1cmVtOyAvLyBhbGlnbiBtYXJrIHdpdGggY2FwLWhlaWdodCBvZiB0aGUgMjJweCBoZWFkZXJcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdC5mZWF0dXJlLWdyaWRfX2NvbHVtbi1jb250ZW50IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0Z2FwOiAwLjc1cmVtOyAvLyAxMnB4IEZpZ21hXG5cdFx0bWluLXdpZHRoOiAwO1xuXHR9XG5cblx0LmZlYXR1cmUtZ3JpZF9fY29sdW1uLWhlYWRlciB7XG5cdFx0Zm9udC1mYW1pbHk6ICRhdmVuaXItYm9sZDtcblx0XHRmb250LXNpemU6IDEuMzc1cmVtOyAvLyAyMnB4IEZpZ21hXG5cdFx0bGluZS1oZWlnaHQ6IDMycHg7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGNvbG9yOiAkcHJpbWFyeS0xMDA7XG5cdH1cblxuXHQuZmVhdHVyZS1ncmlkX19jb2x1bW4tYm9keSB7XG5cdFx0Zm9udC1mYW1pbHk6ICRhdmVuaXItcmVnO1xuXHRcdGZvbnQtc2l6ZTogMXJlbTsgLy8gMTZweCBGaWdtYVxuXHRcdGxpbmUtaGVpZ2h0OiAyNnB4O1xuXHRcdG1hcmdpbjogMDtcblx0XHRjb2xvcjogJHByaW1hcnktMTAwO1xuXHR9XG5cblx0Ly8gLS0tLS0tLS0gY2FyZCBsYXlvdXQgLS0tLS0tLS1cblx0Ly8gT3B0LWluIHZpYSB0aGUgYGxheW91dF9zdHlsZWAgZmllbGQuIEVhY2ggY29sdW1uIHJlbmRlcnMgYXMgYSBjYXJkIOKAlFxuXHQvLyBzYW1lIGNocm9tZSBmYW1pbHkgYXMgY2FyZC1ncmlkLXYyICh3aGl0ZSBmaWxsLCBpbmstYmx1ZSBib3JkZXIpIGJ1dCB3aXRoXG5cdC8vIHJvdW5kZWQgY29ybmVycywgYSBzb2Z0IHNoYWRvdywgYW5kIGEgZ3JhZGllbnQgYm9yZGVyIChkYXJrZXIgdG9wLWxlZnQpLFxuXHQvLyBhbmQgbm8gaG92ZXItc3dhcCAvIHBlci1jYXJkIENUQS4gVGhlIG1hcmsgKyBoZWFkZXIgKyBib2R5IHN0YXkgdmlzaWJsZS5cblx0Ji5mZWF0dXJlLWdyaWQtLWxheW91dC1jYXJkcyB7XG5cblx0XHQvLyBOYXJyb3cgdGhlIGdyaWQgKH4yMCUpIHNvIGVhY2ggY2FyZCBpcyB+MjAlIG5hcnJvd2VyOyBzdGF5cyBjZW50ZXJlZC5cblx0XHQuZmVhdHVyZS1ncmlkX19yb3dzIHtcblx0XHRcdG1heC13aWR0aDogODIwcHg7IC8vIHdhcyAxMDI0cHhcblx0XHR9XG5cblx0XHQuZmVhdHVyZS1ncmlkX19yb3cge1xuXHRcdFx0YWxpZ24taXRlbXM6IHN0cmV0Y2g7IC8vIGNhcmRzIGluIGEgcm93IHNoYXJlIGhlaWdodFxuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0XHRcdGNvbHVtbi1nYXA6IDFyZW07IC8vIHRpZ2h0ZXIgdGhhbiB0aGUgZmxhdCBsYXlvdXQncyAycmVtIChtZCkgLyA0cmVtIChsZylcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBTaGFyZWQgY2FyZCBjaHJvbWUgKHBlciBQUiAjMjIpOiB3aGl0ZSBmaWxsLCAxcHggaW5rLWJsdWUgYm9yZGVyLCA0cHhcblx0XHQvLyByYWRpdXMsIGFuZCBhIDdweCBncmFkaWVudCBzdHJpcCBhY3Jvc3MgdGhlIHRvcCBlZGdlLiBPbmx5IHRoZSBpbm5lclxuXHRcdC8vIGNvbnRlbnQgKG1hcmsgKyBoZWFkZXIgKyBib2R5KSBkaWZmZXJzIGZyb20gY2FyZC1ncmlkIC8gY2FwYWJpbGl0aWVzLlxuXHRcdC5mZWF0dXJlLWdyaWRfX2NvbHVtbiB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRtaW4taGVpZ2h0OiAyNDBweDsgLy8gcHJlc2VuY2UgKyBlcXVhbC1oZWlnaHQgYWNyb3NzIGEgcm93OyBjb250ZW50LWRyaXZlblxuXHRcdFx0cGFkZGluZzogNDBweCA0NHB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJHByaW1hcnktMTAwLCAwLjIpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjsgLy8gY2xpcHMgdGhlIGdyYWRpZW50IHN0cmlwJ3MgdG9wIGNvcm5lcnMgdG8gdGhlIGNhcmQgcmFkaXVzXG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0aGVpZ2h0OiA3cHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyNzBkZWcsICM3MTU5RkYgMS43NSUsICMxRTA5OTkgOTcuNTQlKTtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuXHRcdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFRoZSBtYXJrIGFscmVhZHkgc2l0cyBpbmxpbmUtbGVmdCBvZiB0aGUgaGVhZGVyOyBudWRnZSBpdCB0byBsaW5lIHVwXG5cdFx0Ly8gd2l0aCB0aGUgY2FyZCBwYWRkaW5nJ3MgY2FwLWhlaWdodC5cblx0XHQuZmVhdHVyZS1ncmlkX19jb2x1bW4tbWFyayB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwLjVyZW07XG5cdFx0fVxuXG5cdFx0Ly8gRG91YmxlIHRoZSBib3R0b20tcmlnaHQgaGF0Y2ggYmFuZCdzIGhlaWdodCAoYXNwZWN0IDYvMSAtPiAzLzEpLiBCb3RoXG5cdFx0Ly8gc2xhbnRlZCB2ZXJ0aWNlcyBzY2FsZSB3aXRoIGl0OiBhdCAzLzEgYSB0aGlyZCBvZiB0aGUgd2lkdGggZXF1YWxzIHRoZVxuXHRcdC8vIGhlaWdodCwgc28gMzMuMzMzMyUgaXMgdGhlIDQ1ZGVnIG9mZnNldCBoZXJlICh2cyAxNi42NjY3JSBhdCA2LzEpLCBrZWVwaW5nXG5cdFx0Ly8gdGhlIGVkZ2VzIHBhcmFsbGVsIHRvIHRoZSBoYXRjaCBsaW5lcy4gQm90dG9tLXJpZ2h0IG1pcnJvcnMgaXQgYXRcblx0XHQvLyAxMDAlIC0gMzMuMzMzMyUgc28gdGhpcyBzdGF5cyBhIHBhcmFsbGVsb2dyYW0gYW5kIG5vIHN0cmlwZSBpcyB0cnVuY2F0ZWQg4oCUXG5cdFx0Ly8gc2FtZSBmaXggYXMgdGhlIGJhc2UgcnVsZSwgd2hpY2ggaGFkIHRoZSBzYW1lIHZlcnRpY2FsIHJpZ2h0IGVkZ2UuXG5cdFx0Ly9cblx0XHQvLyBJbmhlcml0cyB0aGUgZnJvemVuIGByaWdodGAgYW5kIGB3aWR0aGAgZnJvbSB0aGUgYmFzZSBydWxlLCBzbyBpdCBob2xkcyBpdHNcblx0XHQvLyAxNDQwcHggcG9zaXRpb24gYW5kIHNpemUgb24gd2lkZXIgc2NyZWVucyB0b28uXG5cdFx0LmZlYXR1cmUtZ3JpZF9fZGVjb3JhdGlvbi0tcmlnaHQge1xuXHRcdFx0YXNwZWN0LXJhdGlvOiAzIC8gMTtcblx0XHRcdGNsaXAtcGF0aDogcG9seWdvbigzMy4zMzMzJSAwLCAxMDAlIDAsIDY2LjY2NjclIDEwMCUsIDAgMTAwJSk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gLS0tLS0tLS0gQ1RBIC0tLS0tLS0tXG5cdC5mZWF0dXJlLWdyaWRfX2N0YS13cmFwIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdG1hcmdpbi10b3A6IDIuNXJlbTtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdG1hcmdpbi10b3A6IDMuNzVyZW07IC8vIH42MHB4IEZpZ21hXG5cdFx0fVxuXHR9XG5cblx0Ly8gSG9ub3IgcmVkdWNlZC1tb3Rpb246IHBpbiBkZWNvcmF0aW9ucyBpbiBwbGFjZSAoSlMgYWxzbyBiYWlscywgYnV0IHRoaXNcblx0Ly8gaXMgYmVsdC1hbmQtYnJhY2VzIOKAlCBrZWVwcyB0aGUgd2lsbC1jaGFuZ2UgaGludCBmcm9tIHRyaWdnZXJpbmcgbGF5ZXJzKS5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHQuZmVhdHVyZS1ncmlkX19kZWNvcmF0aW9uLS1sZWZ0LWJvdHRvbSxcblx0XHQuZmVhdHVyZS1ncmlkX19kZWNvcmF0aW9uLS1sZWZ0LXRvcCB7XG5cdFx0XHR0cmFuc2Zvcm06IG5vbmU7XG5cdFx0XHR3aWxsLWNoYW5nZTogYXV0bztcblx0XHR9XG5cdH1cblxuXHQuZmVhdHVyZS1ncmlkX19jdGEge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWdvbGQ7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHNlY29uZGFyeS1nb2xkO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRwYWRkaW5nOiAxcmVtIDIuNXJlbTtcblx0XHRtaW4td2lkdGg6IDIzOXB4OyAvLyBGaWdtYSBidXR0b24gd2lkdGhcblx0XHRmb250LWZhbWlseTogJGF2ZW5pci1tZWQ7XG5cdFx0Zm9udC1zaXplOiAxLjEyNXJlbTsgLy8gMThweCBGaWdtYVxuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlO1xuXG5cdFx0Ly8gT3ZlcnJpZGUgdGhlIGdsb2JhbCBhOm5vdCguYnRuLC4uLikgYnJpZ2h0LWJsdWUgbGluayBydWxlIGZyb21cblx0XHQvLyBfdHlwb2dyYXBoeS5zY3NzLiAuYnRuIGlzIGluIHRoZSA6bm90KCkgbGlzdCBzbyB3ZSdkIGFscmVhZHkgd2luLFxuXHRcdC8vIGJ1dCBidW1waW5nIHdpdGggJiwgJjpsaW5rLCAmOnZpc2l0ZWQga2VlcHMgdGhpcyByZXNpbGllbnQgaWYgdGhlXG5cdFx0Ly8gY2xhc3MgbGlzdCBldmVyIGNoYW5nZXMuXG5cdFx0Jixcblx0XHQmOmxpbmssXG5cdFx0Jjp2aXNpdGVkIHtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS0xMDA7XG5cdFx0fVxuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmFjdGl2ZSxcblx0XHQmOmZvY3VzLFxuXHRcdCY6Zm9jdXMtdmlzaWJsZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHNlY29uZGFyeS1nb2xkLCA4JSk7XG5cdFx0XHRib3JkZXItY29sb3I6IGRhcmtlbigkc2Vjb25kYXJ5LWdvbGQsIDglKTtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS0xMDA7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBQcmltYXJ5XG4kYmx1ZTogICAgXHRcdCMzMjBGRkY7XG4kZGFyay1ibHVlOiAgICBcdCM0MTMyOUI7XG4kaW5rLWJsdWUtMTAwOlx0IzIzMDA0QjtcbiRpbmstYmx1ZS05MDpcdCMyODBBNUY7XG4kaW5rLWJsdWUtNzA6XHQjMzIxNDc4O1xuJGluay1ibHVlLTUwOlx0IzQxMzI5QjtcbiRpbmstYmx1ZS0zMDpcdCM1RjVGQzM7XG4kaW5rLWJsdWUtMTA6XHQjODI4Q0UxO1xuJGluay1ibHVlLTg6XHQjQ0REMUYzO1xuJGluay1ibHVlLTU6XHQjZjdmNmZmO1xuJHByaW1hcnk6XHQgIFx0JGJsdWU7XG4kcHJpbWFyeS1kYXJrOiBcdCRkYXJrLWJsdWU7XG4kcHJpbWFyeS0xMDA6IFx0JGluay1ibHVlLTEwMDtcbiRwcmltYXJ5LTkwOiBcdCRpbmstYmx1ZS05MDtcbiRwcmltYXJ5LTcwOiBcdCRpbmstYmx1ZS03MDtcbiRwcmltYXJ5LTUwOiBcdCRpbmstYmx1ZS01MDtcbiRwcmltYXJ5LTMwOiBcdCRpbmstYmx1ZS0zMDtcbiRwcmltYXJ5LTEwOiBcdCRpbmstYmx1ZS0xMDtcbiRwcmltYXJ5LTg6IFx0JGluay1ibHVlLTg7XG4kcHJpbWFyeS01OiBcdCRpbmstYmx1ZS01O1xuXG5cbi8vIFNlY29uZGFyeVxuJHJlZDpcdFx0XHQjRTYxRTJEO1xuJGJyaWdodC1ibHVlOlx0IzMyMEZGRjtcbiRnb2xkOlx0XHRcdCNGRkJFMDA7XG5cbiRzZWNvbmRhcnktcmVkOlx0XHQkcmVkO1xuJHNlY29uZGFyeS1ibHVlOlx0JGJyaWdodC1ibHVlO1xuJHNlY29uZGFyeS1nb2xkOlx0JGdvbGQ7XG5cbi8vIE5ldXRyYWxcbiRibGFjazogXHQjMDAwMDAwO1xuJGRhcmstZ3JheTogIzc5NzI3OTtcbiR3YXJtLWdyYXk6XHQjQjRCNEI5O1xuJHNub3ctZ3JheTogI0YwRjBGMTtcbiR3aGl0ZTogXHQjRkZGRkZGO1xuXG5cbi8vIEV4dHJhc1xuJGNvbG9yczogKFxuXHQncHJpbWFyeSdcdFx0XHQ6ICRwcmltYXJ5LFxuXHQncHJpbWFyeS1kYXJrJ1x0XHQ6ICRwcmltYXJ5LWRhcmssXG5cdCdwcmltYXJ5LTEwMCcgXHRcdDogJHByaW1hcnktMTAwLFxuXHQncHJpbWFyeS05MCcgXHRcdDogJHByaW1hcnktOTAsXG5cdCdwcmltYXJ5LTcwJyBcdFx0OiAkcHJpbWFyeS03MCxcblx0J3ByaW1hcnktNTAnIFx0XHQ6ICRwcmltYXJ5LTUwLFxuXHQncHJpbWFyeS0zMCcgXHRcdDogJHByaW1hcnktMzAsXG5cdCdwcmltYXJ5LTEwJyBcdFx0OiAkcHJpbWFyeS0xMCxcblx0J3ByaW1hcnktOCcgXHRcdDogJHByaW1hcnktOCxcblx0J3ByaW1hcnktNScgXHRcdDogJHByaW1hcnktNSxcblx0J3JlZCdcdFx0XHRcdDogJHNlY29uZGFyeS1yZWQsXG5cdCdicmlnaHQtYmx1ZSdcdFx0OiAkc2Vjb25kYXJ5LWJsdWUsXG5cdCdnb2xkJ1x0XHRcdFx0OiAkc2Vjb25kYXJ5LWdvbGQsXG5cdCd3YXJtLWdyYXknXHRcdFx0OiAkd2FybS1ncmF5LFxuXHQnZGFyay1ncmF5J1x0XHRcdDogJGRhcmstZ3JheSxcblx0J2JsYWNrJ1x0XHRcdFx0OiAkYmxhY2ssXG5cdCd3aGl0ZSdcdFx0XHRcdDogJHdoaXRlXG4pO1xuXG4vLyBTYW4tc2VyaWYgRm9udHNcbiRhdmVuaXItcmVnOiAnQXZlbmlyIExUIFBybyBSZWd1bGFyJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRhdmVuaXItbWVkOiAnQXZlbmlyIExUIFBybyBNZWRpdW0nLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGF2ZW5pci1kZW1pOiAnQXZlbmlyIExUIFBybyBEZW1pJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRhdmVuaXItYm9sZDogJ0F2ZW5pciBMVCBQcm8gQm9sZCcsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFNlcmlmIEZvbnRzXG4kZ2VvcmdpYTogJ0dlb3JnaWEnLCBzZXJpZiAhZGVmYXVsdDsiLCJAdXNlICdzYXNzOm1hdGgnO1xuXG4vLyBTb21lIGhvdXNlIG1peGluczpcbkBmdW5jdGlvbiB1cmxFbmNvZGVDb2xvcigkc3RyaW5nKXtcblx0QGlmIHR5cGUtb2YoJHN0cmluZykgPT0gJ2NvbG9yJ3tcblx0XHQkaGV4OiBzdHItc2xpY2UoaWUtaGV4LXN0cigkc3RyaW5nKSwgNCk7XG5cdFx0JHN0cmluZzogdW5xdW90ZShcIiN7JGhleH1cIik7XG5cdH1cblx0JHN0cmluZzogJyUyMycgKyAkc3RyaW5nO1xuXHRAcmV0dXJuICRzdHJpbmc7XG59XG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkdmFsdWUpe1xuXHRAcmV0dXJuIG1hdGguZGl2KCR2YWx1ZSwgJHZhbHVlICogMCArIDEpO1xufVxuQG1peGluIGZsdWlkLXR5cGUoJG1pbi12dywgJG1heC12dywgJG1pbi1mb250LXNpemUsICRtYXgtZm9udC1zaXplKXtcblx0JHUxOiB1bml0KCRtaW4tdncpO1xuXHQkdTI6IHVuaXQoJG1heC12dyk7XG5cdCR1MzogdW5pdCgkbWluLWZvbnQtc2l6ZSk7XG5cdCR1NDogdW5pdCgkbWF4LWZvbnQtc2l6ZSk7XG5cdEBpZiAkdTEgPT0gJHUyIGFuZCAkdTEgPT0gJHUzIGFuZCAkdTEgPT0gJHU0e1xuXHRcdCZ7XG5cdFx0XHRmb250LXNpemU6ICRtaW4tZm9udC1zaXplO1xuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1pbi12dyl7XG5cdFx0XHRcdGZvbnQtc2l6ZTogY2FsYygjeyRtaW4tZm9udC1zaXplfSArICN7c3RyaXAtdW5pdCgkbWF4LWZvbnQtc2l6ZSAtICRtaW4tZm9udC1zaXplKX0gKiAoKDEwMHZ3IC0gI3skbWluLXZ3fSkgLyAje3N0cmlwLXVuaXQoJG1heC12dyAtICRtaW4tdncpfSkpO1xuXHRcdFx0fVxuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1heC12dyl7XG5cdFx0XHRcdGZvbnQtc2l6ZTogJG1heC1mb250LXNpemU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4vLyDilIDilIDilIAgVjIgc2VjdGlvbiByaHl0aG0g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUaGUgc2luZ2xlIHZlcnRpY2FsIHBhZGRpbmcgdG9rZW4gZXZlcnkgVjIgc2VjdGlvbiBibG9jayB1c2VzLiBCZWZvcmUgdGhpc1xuLy8gZXhpc3RlZCwgMjYgVjIgYmxvY2tzIGNhcnJpZWQgMTMgZGlmZmVyZW50IHRvcC9ib3R0b20gcGFpcmluZ3Mgc3RlcHBpbmcgYXRcbi8vIHR3byBkaWZmZXJlbnQgYnJlYWtwb2ludHM7IDQ4IOKGkiA4MCBpcyB0aGUgbWVkaWFuIG9mIHdoYXQgd2FzIGFscmVhZHkgdGhlcmVcbi8vIGFuZCBpbWFnZS1hbmQtaXRlbS1saXN0LVYyIC8gcmVzb3VyY2UtY2Fyb3VzZWwtVjIgLyBzb2NpYWwtcHJvb2YtdjIgYWxyZWFkeVxuLy8gbWF0Y2hlZCBpdCBleGFjdGx5LCBzbyBpdCBpcyB0aGUgc21hbGxlc3QgdG90YWwgbW92ZS5cbi8vXG4vLyBTdGVwcGluZyBhdCBgbGdgIChub3QgYG1kYCkgaXMgZGVsaWJlcmF0ZTogaXQgbGluZXMgdGhlIHZlcnRpY2FsIHN0ZXAgdXAgd2l0aFxuLy8gdGhlIGhvcml6b250YWwgZ3V0dGVyIHJhbXAgKDEuNXJlbSDihpIgNnJlbSBAbGcpIHRoYXQgMTkgYmxvY2tzIGFscmVhZHkgdXNlLCBzb1xuLy8gYSBzZWN0aW9uIGNoYW5nZXMgaXRzIHNwYWNpbmcgaW4gb25lIGRpcmVjdGlvbiBhdCBvbmUgd2lkdGguXG4vL1xuLy8gYCRzaWRlc2AgbGV0cyBhIGJsb2NrIHRha2UgdGhlIHRva2VuIG9uIG9uZSBlZGdlIHdoaWxlIG93bmluZyB0aGUgb3RoZXIg4oCUXG4vLyBjYXBhYmlsaXRpZXMtVjIgbmVlZHMgaXRzIG93biBib3R0b20gKGl0IHJlc2VydmVzIDYwcHggZm9yIGFuIGFic29sdXRlbHlcbi8vIHBvc2l0aW9uZWQgZWxlbWVudCkuIEFueXRoaW5nIG9wdGluZyBvdXQgZW50aXJlbHkganVzdCBkb2Vzbid0IGluY2x1ZGUgdGhpcy5cbiR2Mi1zZWN0aW9uLXBhZGRpbmctc206IDQ4cHg7XG4kdjItc2VjdGlvbi1wYWRkaW5nLWxnOiA4MHB4O1xuXG5AbWl4aW4gdjItc2VjdGlvbi1wYWRkaW5nKCRzaWRlczogYm90aCkge1xuXHRAaWYgJHNpZGVzID09IGJvdGggb3IgJHNpZGVzID09IHRvcCB7XG5cdFx0cGFkZGluZy10b3A6ICR2Mi1zZWN0aW9uLXBhZGRpbmctc207XG5cdH1cblx0QGlmICRzaWRlcyA9PSBib3RoIG9yICRzaWRlcyA9PSBib3R0b20ge1xuXHRcdHBhZGRpbmctYm90dG9tOiAkdjItc2VjdGlvbi1wYWRkaW5nLXNtO1xuXHR9XG5cblx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdEBpZiAkc2lkZXMgPT0gYm90aCBvciAkc2lkZXMgPT0gdG9wIHtcblx0XHRcdHBhZGRpbmctdG9wOiAkdjItc2VjdGlvbi1wYWRkaW5nLWxnO1xuXHRcdH1cblx0XHRAaWYgJHNpZGVzID09IGJvdGggb3IgJHNpZGVzID09IGJvdHRvbSB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogJHYyLXNlY3Rpb24tcGFkZGluZy1sZztcblx0XHR9XG5cdH1cbn1cbi8vIOKUgOKUgOKUgCBHcmFkaWVudCB0ZXh0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRGVzY2VuZGVyIHJvb20gZm9yIGdyYWRpZW50LWNsaXBwZWQgdGV4dC5cbi8vXG4vLyBWMiBoZWFkaW5ncyB0YWtlIHRoZWlyIGNvbG91ciBmcm9tIGEgZ3JhZGllbnQgKmJhY2tncm91bmQqIGNsaXBwZWQgdG8gdGhlXG4vLyBnbHlwaHMgKGBiYWNrZ3JvdW5kLWNsaXA6IHRleHRgIHBsdXMgYSB0cmFuc3BhcmVudCB0ZXh0IGZpbGwpLiBBIGJhY2tncm91bmRcbi8vIG9ubHkgcGFpbnRzIGluc2lkZSB0aGUgZWxlbWVudCdzIGJveCwgc28gaW5rIGhhbmdpbmcgYmVsb3cgdGhhdCBib3ggaGFzXG4vLyBub3RoaW5nIHRvIHBhaW50IHdpdGggYW5kIHNpbXBseSBkaXNhcHBlYXJzLiBJdCBkb2Vzbid0IHJlYWQgYXMgY2xpcHBlZCDigJRcbi8vIHRoZSBib3R0b20gbG9vcCBvZiBhIFwiZ1wiIG9yIHRoZSB0YWlsIG9mIGEgXCJ5XCIgaXMganVzdCBhYnNlbnQg4oCUIHdoaWNoIGlzIHdoeVxuLy8gaXQgZ29lcyB1bm5vdGljZWQgdW50aWwgYW4gZWRpdG9yIGhhcHBlbnMgdG8gdHlwZSBvbmUgb250byB0aGUgbGFzdCBsaW5lLlxuLy9cbi8vIFRoZSBvdmVyaGFuZyBpcyBhIGNvbnNlcXVlbmNlIG9mIHRoZSB0aWdodCBlZGl0b3JpYWwgbGluZS1oZWlnaHRzIHRoZSBkZXNpZ25zXG4vLyB1c2UuIEF2ZW5pcidzIGRlc2NlbmRlciBpbmsgcmVhY2hlcyAwLjI0MGVtIGJlbG93IHRoZSBiYXNlbGluZSwgc28gY2xpcHBpbmdcbi8vIGJlZ2lucyB3aGVyZXZlciBsaW5lLWhlaWdodCBkcm9wcyBiZWxvdyB+MS4xNzQsIGFuZCBubyBWMiBoZWFkaW5nIGlzIGFib3ZlXG4vLyB0aGF0LiBPbmx5IHRoZSBmaW5hbCBsaW5lIGlzIGV2ZXIgYWZmZWN0ZWQ7IGludGVyaW9yIGxpbmVzIHNpdCBpbnNpZGUgdGhlIGJveC5cbi8vXG4vLyAwLjFlbSBjb3ZlcnMgdGhlIHdvcnN0IGNhc2UgKDkwcHggaGVhZGxpbmVzIGF0IGxpbmUtaGVpZ2h0IDEpIHdpdGggaGVhZHJvb20uXG4vLyBJbiBlbSBzbyBpdCB0cmFja3MgYSBoZWFkaW5nJ3MgcmVzcG9uc2l2ZSBzaXplcyDigJQgaW5jbHVkaW5nIGNsYW1wKCkg4oCUIHdpdGhvdXRcbi8vIHBlci1icmVha3BvaW50IG92ZXJyaWRlcy4gUmFpc2luZyBsaW5lLWhlaWdodCBwYXN0IH4xLjE3NCB3b3VsZCBhbHNvIGZpeCBpdCxcbi8vIGJ1dCB0aGF0IGxvb3NlbnMgZXZlcnkgbGluZSBvZiBhIG11bHRpLWxpbmUgaGVhZGluZyBieSAxMC0xNyUgYW5kIHRoZSB0aWdodFxuLy8gc2V0dGluZyBpcyB0aGUgZGVzaWduLlxuLy9cbi8vIE9ubHkgdGhlIGJvdHRvbSBuZWVkcyBpdDogdGhlIHRhbGxlc3QgaW5rIGluIHRoZSBmYWNlIHNpdHMgd2VsbCBpbnNpZGUgdGhlXG4vLyBsaW5lIGJveCB0b3AsIHNvIGFzY2VuZGVycyBhbHJlYWR5IGhhdmUgY2xlYXJhbmNlLlxuLy9cbi8vIE9uZSBzaWRlIGVmZmVjdCB3b3J0aCBrbm93aW5nOiBiYWNrZ3JvdW5kLW9yaWdpbiBpcyB0aGUgcGFkZGluZyBib3gsIHNvIHRoaXNcbi8vIGxlbmd0aGVucyB0aGUgZ3JhZGllbnQncyBwYWludGluZyBhcmVhIGJ5IHRoZSBzYW1lIDAuMWVtLiBUaGUgcmFtcCBzdHJldGNoZXNcbi8vIHdpdGggaXQgYW5kIHRoZSBjb2xvdXJzIGxhbmQgbWFyZ2luYWxseSBsb3dlciDigJQgdW5kZXIgMTAlIG9mIHRoZSByYW1wIG9uIGFcbi8vIHNpbmdsZS1saW5lIGhlYWRpbmcsIHByb3BvcnRpb25hbGx5IGxlc3MgYXMgbGluZXMgYXJlIGFkZGVkLiBEZWxpYmVyYXRlbHkgbm90XG4vLyBjb21wZW5zYXRlZCB3aXRoIGEgbmVnYXRpdmUgbWFyZ2luIGhlcmU6IGEgYmxvY2sgdGhhdCBzZXRzIG1hcmdpbi1ib3R0b21cbi8vIGFmdGVyIHRoZSBpbmNsdWRlIHdvdWxkIHNpbGVudGx5IGNhbmNlbCBpdC5cbi8vXG4vLyBUaGUgcm9vbSBhIGdpdmVuIHNldHRpbmcgYWN0dWFsbHkgbmVlZHMsIGluIGVtLCBpc1xuLy9cbi8vICAgaW5rX2Rlc2NlbnQgLSBmb250X2Rlc2NlbnQgKyAoY29udGVudF9hcmVhIC0gbGluZV9oZWlnaHQpIC8gMlxuLy9cbi8vIHdoaWNoIGZvciB0aGUgdGhyZWUgZmFjZXMgaW4gcGxheSBwdXRzIHRoZSBjbGlwcGluZyB0aHJlc2hvbGQgYXRcbi8vXG4vLyAgIEF2ZW5pciBMVCBQcm8gQm9sZCAgICAgaW5rIDAuMjQwMiAgZGVzY2VudCAwLjI3MDAgIGNvbnRlbnQgMS4yMzI1ICBsaCA8IDEuMTczXG4vLyAgIEF2ZW5pciBMVCBQcm8gTWVkaXVtICAgaW5rIDAuMjQwMiAgZGVzY2VudCAwLjI3MDAgIGNvbnRlbnQgMS4yMjAwICBsaCA8IDEuMTYwXG4vLyAgIEF2ZW5pciBOZXh0ICAgICAgICAgICAgaW5rIDAuMjQwMCAgZGVzY2VudCAwLjM2NTAgIGNvbnRlbnQgMS4zNjUwICBsaCA8IDEuMTE1XG4vL1xuLy8gQXZlbmlyIE5leHQncyBkZWVwZXIgZGVzY2VudCBtZXRyaWMgYnV5cyBpdCAwLjA2ZW0gb2Ygc2xhY2sgdGhlIExUIFBybyBmYWNlc1xuLy8gZG9uJ3QgaGF2ZSwgd2hpY2ggaXMgd2h5IHRoZSB0d28gYWNjb3JkaW9uIGhlYWRpbmdzIGF0IGxpbmUtaGVpZ2h0IDEuMTUgZG9uJ3Rcbi8vIGNsaXAgd2hpbGUgdGhlIExUIFBybyBoZWFkaW5ncyBhdCAxLjExMSBkby4gKENoZWNrZWQgdGhlIFdpbmRvd3MgZmFsbGJhY2sgdG9vOlxuLy8gZ2VuZXJpYyBzYW5zLXNlcmlmIGlzIDAuMjIxMiAvIDAuMjMwMCAvIDEuMTUwMCwgdGhyZXNob2xkIDEuMTMyLCBhbHNvIGNsZWFyLilcbi8vXG4vLyAkcm9vbSBleGlzdHMgZm9yIHRoZSBzaGFsbG93IHRpZXIuIEVsZXZlbiA0NXB4LzUwcHggaGVhZGluZ3Mgb3ZlcmhhbmcgYnlcbi8vIDEuNHB4OyB0aGUgZGVmYXVsdCAwLjFlbSB3b3VsZCBmaXggdGhhdCBhdCBhIGNvc3Qgb2YgNC41cHggb2YgZXh0cmEgZ2FwXG4vLyB1bmRlciBlYWNoIG9uZSwgc28gdGhleSB0YWtlIDAuMDVlbSBpbnN0ZWFkIOKAlCAyLjI1cHgsIHN0aWxsIDYwJSBoZWFkcm9vbSBvdmVyIHRoZSAxLjRweCxcbi8vIGZvciBhIGdhcCBjaGFuZ2UgdGhhdCBzdGF5cyB1bmRlciB0aGUgMnB4IHRoZSBpbmsgaXRzZWxmIG9jY3VwaWVzLiBBbnl0aGluZ1xuLy8gZGVlcGVyIHRoYW4gfjIuNXB4IHNob3VsZCB0YWtlIHRoZSBkZWZhdWx0LlxuQG1peGluIHYyLWdyYWRpZW50LXRleHQtZGVzY2VuZGVyLXJvb20oJHJvb206IDAuMWVtKSB7XG5cdHBhZGRpbmctYm90dG9tOiAkcm9vbTtcbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/