diff --git a/dist/app.css b/dist/app.css index e8c52e03..22778eda 100644 --- a/dist/app.css +++ b/dist/app.css @@ -1,5 +1,5 @@ /*! - * Chimera UI Libraries - Build 0.23.24 (12/11/2024, 13:58:09) + * Chimera UI Libraries - Build 0.23.25 (12/12/2024, 14:19:59) * */ .no-font{font-size:0;line-height:0}.margin-auto{margin-left:auto;margin-right:auto}.no-margin{margin:0}.full-width{width:100%;max-width:100%}.position-absolute-0{top:0;bottom:0;left:0;right:0}.hide-all{display:none}.hide-overflow{height:0;overflow:hidden;visibility:hidden}.no-border-no-outline{border:0;outline:0}.focused:focus{outline:0}@media only screen and (min-width:1200px){.focused:focus{outline:2px solid #1492e6}}.focus-pseudo-element{position:relative}.focus-pseudo-element:focus:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;border:2px solid #1473e6;z-index:1}.focus-shadow-round{position:relative}.focus-shadow-round:focus:after{border-radius:18px;content:"";display:block;position:absolute;left:0;right:0;bottom:0;top:0;margin:-2px;transition:box-shadow .13s ease-out,margin .13s ease-out;box-shadow:0 0 0 2px #1492e6}.focus-underline:focus{box-shadow:0 2px 0 0 #1492e6}.card-hover:hover{box-shadow:0 3px 6px 0 rgba(0,0,0,.16);transition:box-shadow .3s ease-in-out}.card-hover-header [class*=-header]{position:relative}.card-hover-header [class*=-header]:after{position:absolute;content:"";top:0;bottom:0;left:0;right:0;margin:auto;z-index:0;background-color:rgba(0,0,0,.35);opacity:0;transition:opacity .3s ease-in-out}.card-hover-header:hover [class*=-header]:after{opacity:1}.video-button-styles{display:block;position:absolute;width:40px;height:40px;right:24px;bottom:16px;font-size:0;line-height:0;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%231473e6' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;background-size:cover;z-index:1;cursor:pointer;transform-origin:50% 50%;transition:transform .3s ease-in-out}.video-button-styles:active,.video-button-styles:hover{transform:scale(1.1);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%230059c2' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;transition:transform .3s ease-in-out}.video-button-styles:focus{transform:scale(1.1);transition:transform .3s ease-in-out;outline:2px solid #1492e6}.hide{display:none!important}@keyframes circle{0%{transform:rotate(0deg)}70%,to{transform:rotate(1turn)}}@keyframes fade-in-up{0%{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:none}}@keyframes carousel-fade-button{0%{opacity:0}to{opacity:1}}.consonant-Wrapper button{border:0;outline:0;cursor:pointer}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-content,.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-content{background:transparent linear-gradient(180deg,transparent,hsla(0,0%,100%,.5) 15%,hsla(0,0%,100%,.8) 40%,#fff) 0 0 no-repeat padding-box}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-header:after,.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-header:after{background:transparent linear-gradient(180deg,hsla(0,0%,100%,.01) 35%,hsla(0,0%,100%,.75) 60%,hsla(0,0%,100%,.85)) 0 0 no-repeat}.consonant-u-themeLight .consonant-CardsGrid .consonant-FiltersInfo-results,.consonant-u-themeLight .consonant-CardsGrid .consonant-FiltersInfo-title{color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-LeftFilters{border-color:#e1e1e1;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-LeftFilters-deskTitle{color:inherit}.consonant-u-themeLight .consonant-CardsGrid .consonant-LeftFilters .consonant-Search-inputTitle{color:#4b4b4b}.consonant-u-themeLight .consonant-CardsGrid .consonant-LeftFilters .consonant-Search-input{background-color:#f5f5f5;color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-LeftFilters .consonant-ChosenFilter{color:#4b4b4b}.consonant-u-themeLight .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter-itemsItemName,.consonant-u-themeLight .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter-link{color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter.is-opened .consonant-LeftFilter-link{color:#4b4b4b}.consonant-u-themeLight .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter-itemsItem:hover{background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Pagination-btn,.consonant-u-themeLight .consonant-CardsGrid .consonant-Pagination-itemBtn,.consonant-u-themeLight .consonant-CardsGrid .consonant-Pagination-summary{color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.three-fourths{border-color:#e1e1e1;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-inner{background-color:#fff}@media only screen and (min-width:1200px){.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-inner:focus:after{border-color:#0d66d0}}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-header{background-color:#e1e1e1}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-label{color:#4b4b4b}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-title{color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-banner{color:#fff;background-color:#0d66d0}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-badge{color:#6e6e6e;border-color:#8e8e8e;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.one-half{border-color:#e1e1e1;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-inner{background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header{background-color:#e1e1e1}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-label{color:#4b4b4b}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-title{color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-text{color:#6e6e6e}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-banner{color:#fff;background-color:#0d66d0}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-badge{color:#6e6e6e;border-color:#8e8e8e;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.text-card{border-color:#e1e1e1;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-header,.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-inner{background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-label{color:#4b4b4b}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-title{color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-text{color:#6e6e6e}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-banner{color:#fff;background-color:#0d66d0}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-badge{color:#6e6e6e;border-color:#8e8e8e;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.product{border-color:#e1e1e1;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.product .consonant-Card-inner{background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.product .consonant-Card-title{color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.product .consonant-Card-text{color:#6e6e6e}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.icon-card{border-color:#e1e1e1;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-header{filter:contrast(.5) saturate(1.5)}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-label,.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-title{color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.double-wide{border-color:#e1e1e1;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-inner{background-color:#fff}@media only screen and (min-width:1200px){.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-inner:focus:after{border-color:#0d66d0}}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-title{color:#2c2c2c}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-text{color:#6e6e6e}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-label{color:#4b4b4b}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.full-card{border-color:#b3b3b3;background-color:#fff}@media only screen and (min-width:1200px){.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-inner:focus:after{border-color:#0d66d0}}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-inner:before{border-color:#fff;box-shadow:1px 1px 0 0 #fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-header{background-color:#e1e1e1}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-banner{color:#fff;background-color:#0d66d0}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-label{color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-title{color:#cacaca}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-badge{color:#6e6e6e;border-color:#8e8e8e;background-color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-label,.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title{color:#fff}.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-banner{color:#fff;background-color:#0d66d0}@media only screen and (min-width:1200px){.consonant-u-themeLight .consonant-CardsGrid .consonant-Card.half-height .consonant-Card:focus:after{border-color:#0d66d0}}.consonant-u-themeLight .consonant-CardsGrid .consonant-CardFooter--divider:last-child{border-color:#e1e1e1}.consonant-u-themeLight .consonant-BookmarkInfobit.is-active .consonant-BookmarkInfobit-ico{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath stroke-width='1.5' stroke='%236e6e6e' fill='%236e6e6e' d='M13.6.6c-1.7.1-3.3 1-4.1 2.5C8.6 1.6 7.1.7 5.5.6c-2.8 0-5 2.2-5 5 0 4.7 9 10.8 9 10.8s9-6 9-10.8c0-2.7-2.1-5-4.9-5z'/%3E%3C/svg%3E")}.consonant-u-themeLight .consonant-BookmarkInfobit-ico{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath stroke-width='1.5' fill='%23fff' stroke='%236e6e6e' d='M13.6.6c-1.7.1-3.3 1-4.1 2.5C8.6 1.6 7.1.7 5.5.6c-2.8 0-5 2.2-5 5 0 4.7 9 10.8 9 10.8s9-6 9-10.8c0-2.7-2.1-5-4.9-5z'/%3E%3C/svg%3E")}@media only screen and (min-width:1200px){.consonant-u-themeLight .consonant-BookmarkInfobit:focus{outline-color:#0d66d0}}.consonant-u-themeLight .consonant-Tooltip{color:#fff;background-color:#6e6e6e}.consonant-u-themeLight .consonant-Tooltip:after{background-color:#6e6e6e}.consonant-u-themeLight .consonant-BtnInfobit{border-color:#4b4b4b;background-color:#fff}.consonant-u-themeLight .consonant-BtnInfobit:not(.consonant-u-themeLight .consonant-BtnInfobit--cta) span{color:#4b4b4b}.consonant-u-themeLight .consonant-BtnInfobit:hover{border-color:#4b4b4b;background-color:#4b4b4b}.consonant-u-themeLight .consonant-BtnInfobit:hover:not(.consonant-u-themeLight .consonant-BtnInfobit--cta) span{color:#fff}.consonant-u-themeLight .consonant-BtnInfobit:active{border-color:#2c2c2c;background-color:#2c2c2c}.consonant-u-themeLight .consonant-BtnInfobit:active:not(.consonant-u-themeLight .consonant-BtnInfobit--cta) span{color:#fff}.consonant-u-themeLight .consonant-BtnInfobit:focus{outline-color:#0d66d0}.consonant-u-themeLight .consonant-BtnInfobit--cta{border-color:#1473e6;background-color:#1473e6}.consonant-u-themeLight .consonant-BtnInfobit--cta:hover{border-color:#0d66d0;background-color:#0d66d0}.consonant-u-themeLight .consonant-BtnInfobit--cta:active{border-color:#095aba;background-color:#095aba}.consonant-u-themeLight .consonant-DateIntervalInfobit,.consonant-u-themeLight .consonant-IconWithTextInfobit-text{color:#6e6e6e}.consonant-u-themeLight .consonant-LinkWithIcoInfobit:focus{outline-color:#0d66d0}.consonant-u-themeLight .consonant-LinkWithIcoInfobit span{color:#1473e6}.consonant-u-themeLight .consonant-LinkWithIcoInfobit:hover span{color:#0d66d0}.consonant-u-themeLight .consonant-LinkWithIcoInfobit:active span{color:#095aba}.consonant-u-themeLight .consonant-LinkInfobit{color:#1473e6}.consonant-u-themeLight .consonant-LinkInfobit:hover{color:#0d66d0}.consonant-u-themeLight .consonant-LinkInfobit:active{color:#095aba}.consonant-u-themeLight .consonant-LinkInfobit:focus{outline-color:#0d66d0}.consonant-u-themeLight .consonant-PriceInfobit-price{color:#2c2c2c}.consonant-u-themeLight .consonant-PriceInfobit-term{color:#8e8e8e}.consonant-u-themeLight .consonant-ProgressInfobit-text{color:#6e6e6e}.consonant-u-themeLight .consonant-ProgressInfobit-el{background-color:#fff;border-color:#cacaca}.consonant-u-themeLight .consonant-RatingInfobit-stars:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg id='Layer_1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 15'%3E%3Cstyle%3E.st0{fill:none}.st1{fill:%23cacaca}%3C/style%3E%3Cg id='Shape'%3E%3Cpath class='st0' d='M8.6.7c-.1 0-.3.1-.3.2L6.4 5.7l-5.2.2c-.2 0-.3.2-.3.4 0 .1 0 .2.1.2l4 3.2-1.4 5c0 .2.1.3.2.4h.1c.1 0 .1 0 .2-.1l4.3-2.8 4.3 2.8c.1.1.3.1.4-.1 0-.1.1-.2 0-.3l-1.4-5 4-3.2c.1-.1.2-.3 0-.4.3 0 .2-.1.1-.1l-5.2-.2L8.9.9C8.8.8 8.7.7 8.6.7z' transform='translate(-.029 -.412)'/%3E%3Cpath class='st1' d='M8.6 2.2L7.1 6l-.2.4h-.5l-4 .2 3.2 2.5.4.3-.2.5-1.1 3.9 3.4-2.2.4-.3.4.3 3.4 2.2-1.1-3.9-.1-.5.4-.3 3.2-2.5-4-.2h-.5L10 6 8.6 2.2m0-1.5c.1 0 .2.1.3.2l1.8 4.8 5.2.2c.1 0 .2.1.3.2 0 .1 0 .3-.1.3l-4 3.2 1.4 5v.1c0 .1-.1.2-.2.3h-.2c-.1 0-.1 0-.2-.1l-4.3-2.8-4.3 2.8c-.1 0-.1.1-.2.1H4c-.1 0-.2-.1-.2-.1 0-.1-.1-.2 0-.2l1.4-5L1 6.5c-.1-.1-.1-.2-.1-.3.1-.2.2-.3.3-.3l5.2-.2L8.3.9c0-.1.1-.2.3-.2z' transform='translate(-.029 -.412)'/%3E%3C/g%3E%3C/svg%3E")}.consonant-u-themeLight .consonant-RatingInfobit-stars:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' id='Layer_1' viewBox='0 0 17 15'%3E%3Cstyle%3E.st0{fill:%230d66d0}%3C/style%3E%3Cg id='Shape'%3E%3Cpath class='st0' d='M8.6.7c-.1 0-.3.1-.3.2L6.4 5.7l-5.2.2c-.2 0-.3.2-.3.4 0 .1 0 .2.1.2l4 3.2-1.4 5c0 .2.1.3.2.4h.1c.1 0 .1 0 .2-.1l4.3-2.8 4.3 2.8c.1.1.3.1.4-.1 0-.1.1-.2 0-.3l-1.4-5 4-3.2c.1-.1.2-.3 0-.4.3 0 .2-.1.1-.1l-5.2-.2L8.9.9C8.8.8 8.7.7 8.6.7z' transform='translate(-.029 -.412)'/%3E%3Cpath class='st0' d='M8.6 2.2L7.1 6l-.2.4h-.5l-4 .2 3.2 2.5.4.3-.2.5-1.1 3.9 3.4-2.2.4-.3.4.3 3.4 2.2-1.1-3.9-.1-.5.4-.3 3.2-2.5-4-.2h-.5L10 6 8.6 2.2m0-1.5c.1 0 .2.1.3.2l1.8 4.8 5.2.2c.1 0 .2.1.3.2 0 .1 0 .3-.1.3l-4 3.2 1.4 5v.1c0 .1-.1.2-.2.3h-.2c-.1 0-.1 0-.2-.1l-4.3-2.8-4.3 2.8c-.1 0-.1.1-.2.1H4c-.1 0-.2-.1-.2-.1 0-.1-.1-.2 0-.2l1.4-5L1 6.5c-.1-.1-.1-.2-.1-.3.1-.2.2-.3.3-.3l5.2-.2L8.3.9c0-.1.1-.2.3-.2z' transform='translate(-.029 -.412)'/%3E%3C/g%3E%3C/svg%3E")}.consonant-u-themeLight .consonant-RatingInfobit-text{color:#8e8e8e}.consonant-u-themeLight .consonant-TextInfobit{color:#6e6e6e}.consonant-u-themeLight .consonant-LoadMore--overBg .consonant-u-themeLight .consonant-LoadMore-btn{color:#4b4b4b}.consonant-u-themeDark .consonant-CardsGrid .consonant-FiltersInfo-results,.consonant-u-themeDark .consonant-CardsGrid .consonant-FiltersInfo-title{color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-LeftFilters{border-color:#4a4a4a;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-LeftFilters-deskTitle{color:inherit}.consonant-u-themeDark .consonant-CardsGrid .consonant-LeftFilters .consonant-Search-inputTitle{color:#e3e3e3}.consonant-u-themeDark .consonant-CardsGrid .consonant-LeftFilters .consonant-Search-input{background-color:#323232;color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-LeftFilters .consonant-ChosenFilter{color:#e3e3e3}.consonant-u-themeDark .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter-itemsItemName,.consonant-u-themeDark .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter-link{color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter.is-opened .consonant-LeftFilter-link{color:#e3e3e3}.consonant-u-themeDark .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter-itemsItem:hover{background-color:#252525}.consonant-u-themeDark .consonant-CardsGrid .consonant-Pagination-btn,.consonant-u-themeDark .consonant-CardsGrid .consonant-Pagination-itemBtn,.consonant-u-themeDark .consonant-CardsGrid .consonant-Pagination-summary{color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.three-fourths{border-color:#4a4a4a;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-inner{background-color:#323232}@media only screen and (min-width:1200px){.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-inner:focus:after{border-color:#4b9cf5}}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-header{background-color:#4a4a4a}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-label{color:#e3e3e3}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-title{color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-banner{color:#323232;background-color:#4b9cf5}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-badge{color:#b9b9b9;border-color:#909090;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.one-half{border-color:#4a4a4a;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-inner{background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header{background-color:#4a4a4a}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-label{color:#e3e3e3}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-title{color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-text{color:#b9b9b9}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-banner{color:#323232;background-color:#4b9cf5}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-badge{color:#b9b9b9;border-color:#909090;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.text-card{border-color:#4a4a4a;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-header,.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-inner{background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-label{color:#e3e3e3}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-title{color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-text{color:#b9b9b9}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-banner{color:#323232;background-color:#4b9cf5}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-badge{color:#b9b9b9;border-color:#909090;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.product{border-color:#4a4a4a;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.product .consonant-Card-inner{background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.product .consonant-Card-title{color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.product .consonant-Card-text{color:#b9b9b9}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.icon-card{border-color:#4a4a4a;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-header{filter:contrast(.5) saturate(1.5)}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-label,.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-title{color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.double-wide{border-color:#4a4a4a;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-inner{background-color:#323232}@media only screen and (min-width:1200px){.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-inner:focus:after{border-color:#4b9cf5}}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-title{color:#fff}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-text{color:#b9b9b9}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-label{color:#e3e3e3}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.full-card{border-color:#6e6e6e;background-color:#323232}@media only screen and (min-width:1200px){.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-inner:focus:after{border-color:#4b9cf5}}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-inner:before{border-color:#323232;box-shadow:1px 1px 0 0 #323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-header{background-color:#4a4a4a}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-banner{color:#323232;background-color:#4b9cf5}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-label{color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-title{color:#5a5a5a}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-badge{color:#b9b9b9;border-color:#909090;background-color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-label,.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title{color:#323232}.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-banner{color:#323232;background-color:#4b9cf5}@media only screen and (min-width:1200px){.consonant-u-themeDark .consonant-CardsGrid .consonant-Card.half-height .consonant-Card:focus:after{border-color:#4b9cf5}}.consonant-u-themeDark .consonant-CardsGrid .consonant-CardFooter--divider:last-child{border-color:#4a4a4a}.consonant-u-themeDark .consonant-BookmarkInfobit.is-active .consonant-BookmarkInfobit-ico{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath stroke-width='1.5' stroke='%23b9b9b9' fill='%23b9b9b9' d='M13.6.6c-1.7.1-3.3 1-4.1 2.5C8.6 1.6 7.1.7 5.5.6c-2.8 0-5 2.2-5 5 0 4.7 9 10.8 9 10.8s9-6 9-10.8c0-2.7-2.1-5-4.9-5z'/%3E%3C/svg%3E")}.consonant-u-themeDark .consonant-BookmarkInfobit-ico{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath stroke-width='1.5' fill='%23323232' stroke='%23b9b9b9' d='M13.6.6c-1.7.1-3.3 1-4.1 2.5C8.6 1.6 7.1.7 5.5.6c-2.8 0-5 2.2-5 5 0 4.7 9 10.8 9 10.8s9-6 9-10.8c0-2.7-2.1-5-4.9-5z'/%3E%3C/svg%3E")}@media only screen and (min-width:1200px){.consonant-u-themeDark .consonant-BookmarkInfobit:focus{outline-color:#4b9cf5}}.consonant-u-themeDark .consonant-Tooltip{color:#323232;background-color:#b9b9b9}.consonant-u-themeDark .consonant-Tooltip:after{background-color:#b9b9b9}.consonant-u-themeDark .consonant-BtnInfobit{border-color:#e3e3e3;background-color:#323232}.consonant-u-themeDark .consonant-BtnInfobit:not(.consonant-u-themeDark .consonant-BtnInfobit--cta) span{color:#e3e3e3}.consonant-u-themeDark .consonant-BtnInfobit:hover{border-color:#e3e3e3;background-color:#e3e3e3}.consonant-u-themeDark .consonant-BtnInfobit:hover:not(.consonant-u-themeDark .consonant-BtnInfobit--cta) span{color:#323232}.consonant-u-themeDark .consonant-BtnInfobit:active{border-color:#fff;background-color:#fff}.consonant-u-themeDark .consonant-BtnInfobit:active:not(.consonant-u-themeDark .consonant-BtnInfobit--cta) span{color:#323232}.consonant-u-themeDark .consonant-BtnInfobit:focus{outline-color:#4b9cf5}.consonant-u-themeDark .consonant-BtnInfobit--cta{border-color:#378ef0;background-color:#378ef0}.consonant-u-themeDark .consonant-BtnInfobit--cta:hover{border-color:#4b9cf5;background-color:#4b9cf5}.consonant-u-themeDark .consonant-BtnInfobit--cta:active{border-color:#5aa9fa;background-color:#5aa9fa}.consonant-u-themeDark .consonant-DateIntervalInfobit,.consonant-u-themeDark .consonant-IconWithTextInfobit-text{color:#b9b9b9}.consonant-u-themeDark .consonant-LinkWithIcoInfobit:focus{outline-color:#4b9cf5}.consonant-u-themeDark .consonant-LinkWithIcoInfobit span{color:#378ef0}.consonant-u-themeDark .consonant-LinkWithIcoInfobit:hover span{color:#4b9cf5}.consonant-u-themeDark .consonant-LinkWithIcoInfobit:active span{color:#5aa9fa}.consonant-u-themeDark .consonant-LinkInfobit{color:#378ef0}.consonant-u-themeDark .consonant-LinkInfobit:hover{color:#4b9cf5}.consonant-u-themeDark .consonant-LinkInfobit:active{color:#5aa9fa}.consonant-u-themeDark .consonant-LinkInfobit:focus{outline-color:#4b9cf5}.consonant-u-themeDark .consonant-PriceInfobit-price{color:#fff}.consonant-u-themeDark .consonant-PriceInfobit-term{color:#909090}.consonant-u-themeDark .consonant-ProgressInfobit-text{color:#b9b9b9}.consonant-u-themeDark .consonant-ProgressInfobit-el{background-color:#323232;border-color:#5a5a5a}.consonant-u-themeDark .consonant-RatingInfobit-stars:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg id='Layer_1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 15'%3E%3Cstyle%3E.st0{fill:none}.st1{fill:%235a5a5a}%3C/style%3E%3Cg id='Shape'%3E%3Cpath class='st0' d='M8.6.7c-.1 0-.3.1-.3.2L6.4 5.7l-5.2.2c-.2 0-.3.2-.3.4 0 .1 0 .2.1.2l4 3.2-1.4 5c0 .2.1.3.2.4h.1c.1 0 .1 0 .2-.1l4.3-2.8 4.3 2.8c.1.1.3.1.4-.1 0-.1.1-.2 0-.3l-1.4-5 4-3.2c.1-.1.2-.3 0-.4.3 0 .2-.1.1-.1l-5.2-.2L8.9.9C8.8.8 8.7.7 8.6.7z' transform='translate(-.029 -.412)'/%3E%3Cpath class='st1' d='M8.6 2.2L7.1 6l-.2.4h-.5l-4 .2 3.2 2.5.4.3-.2.5-1.1 3.9 3.4-2.2.4-.3.4.3 3.4 2.2-1.1-3.9-.1-.5.4-.3 3.2-2.5-4-.2h-.5L10 6 8.6 2.2m0-1.5c.1 0 .2.1.3.2l1.8 4.8 5.2.2c.1 0 .2.1.3.2 0 .1 0 .3-.1.3l-4 3.2 1.4 5v.1c0 .1-.1.2-.2.3h-.2c-.1 0-.1 0-.2-.1l-4.3-2.8-4.3 2.8c-.1 0-.1.1-.2.1H4c-.1 0-.2-.1-.2-.1 0-.1-.1-.2 0-.2l1.4-5L1 6.5c-.1-.1-.1-.2-.1-.3.1-.2.2-.3.3-.3l5.2-.2L8.3.9c0-.1.1-.2.3-.2z' transform='translate(-.029 -.412)'/%3E%3C/g%3E%3C/svg%3E")}.consonant-u-themeDark .consonant-RatingInfobit-stars:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' id='Layer_1' viewBox='0 0 17 15'%3E%3Cstyle%3E.st0{fill:%234b9cf5}%3C/style%3E%3Cg id='Shape'%3E%3Cpath class='st0' d='M8.6.7c-.1 0-.3.1-.3.2L6.4 5.7l-5.2.2c-.2 0-.3.2-.3.4 0 .1 0 .2.1.2l4 3.2-1.4 5c0 .2.1.3.2.4h.1c.1 0 .1 0 .2-.1l4.3-2.8 4.3 2.8c.1.1.3.1.4-.1 0-.1.1-.2 0-.3l-1.4-5 4-3.2c.1-.1.2-.3 0-.4.3 0 .2-.1.1-.1l-5.2-.2L8.9.9C8.8.8 8.7.7 8.6.7z' transform='translate(-.029 -.412)'/%3E%3Cpath class='st0' d='M8.6 2.2L7.1 6l-.2.4h-.5l-4 .2 3.2 2.5.4.3-.2.5-1.1 3.9 3.4-2.2.4-.3.4.3 3.4 2.2-1.1-3.9-.1-.5.4-.3 3.2-2.5-4-.2h-.5L10 6 8.6 2.2m0-1.5c.1 0 .2.1.3.2l1.8 4.8 5.2.2c.1 0 .2.1.3.2 0 .1 0 .3-.1.3l-4 3.2 1.4 5v.1c0 .1-.1.2-.2.3h-.2c-.1 0-.1 0-.2-.1l-4.3-2.8-4.3 2.8c-.1 0-.1.1-.2.1H4c-.1 0-.2-.1-.2-.1 0-.1-.1-.2 0-.2l1.4-5L1 6.5c-.1-.1-.1-.2-.1-.3.1-.2.2-.3.3-.3l5.2-.2L8.3.9c0-.1.1-.2.3-.2z' transform='translate(-.029 -.412)'/%3E%3C/g%3E%3C/svg%3E")}.consonant-u-themeDark .consonant-RatingInfobit-text{color:#909090}.consonant-u-themeDark .consonant-TextInfobit{color:#b9b9b9}.consonant-u-themeDark .consonant-LoadMore--overBg .consonant-u-themeDark .consonant-LoadMore-btn{color:#e3e3e3}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-FiltersInfo-results,.consonant-u-themeDarkest .consonant-CardsGrid .consonant-FiltersInfo-title{color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-LeftFilters{border-color:#393939;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-LeftFilters-deskTitle{color:inherit}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-LeftFilters .consonant-Search-inputTitle{color:#c8c8c8}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-LeftFilters .consonant-Search-input{background-color:#1e1e1e;color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-LeftFilters .consonant-ChosenFilter{color:#c8c8c8}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter-itemsItemName,.consonant-u-themeDarkest .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter-link{color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter.is-opened .consonant-LeftFilter-link{color:#c8c8c8}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-LeftFilters .consonant-LeftFilter-itemsItem:hover{background-color:#080808}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Pagination-btn,.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Pagination-itemBtn,.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Pagination-summary{color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.three-fourths{border-color:#393939;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-inner{background-color:#1e1e1e}@media only screen and (min-width:1200px){.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-inner:focus:after{border-color:#378ef0}}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-header{background-color:#393939}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-label{color:#c8c8c8}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-title{color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-banner{color:#1e1e1e;background-color:#378ef0}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-badge{color:#a2a2a2;border-color:#7c7c7c;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.one-half{border-color:#393939;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-inner{background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header{background-color:#393939}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-label{color:#c8c8c8}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-title{color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-text{color:#a2a2a2}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-banner{color:#1e1e1e;background-color:#378ef0}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-badge{color:#a2a2a2;border-color:#7c7c7c;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.text-card{border-color:#393939;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-header,.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-inner{background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-label{color:#c8c8c8}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-title{color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-text{color:#a2a2a2}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-banner{color:#1e1e1e;background-color:#378ef0}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.text-card .consonant-Card-badge{color:#a2a2a2;border-color:#7c7c7c;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.product{border-color:#393939;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.product .consonant-Card-inner{background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.product .consonant-Card-title{color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.product .consonant-Card-text{color:#a2a2a2}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.icon-card{border-color:#393939;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-header{filter:contrast(.5) saturate(1.5)}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-label,.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-title{color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.double-wide{border-color:#393939;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-inner{background-color:#1e1e1e}@media only screen and (min-width:1200px){.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-inner:focus:after{border-color:#378ef0}}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-title{color:#efefef}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-text{color:#a2a2a2}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-label{color:#c8c8c8}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.full-card{border-color:#5c5c5c;background-color:#1e1e1e}@media only screen and (min-width:1200px){.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-inner:focus:after{border-color:#378ef0}}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-inner:before{border-color:#1e1e1e;box-shadow:1px 1px 0 0 #1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-header{background-color:#393939}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-banner{color:#1e1e1e;background-color:#378ef0}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-label{color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-title{color:#494949}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.full-card .consonant-Card-badge{color:#a2a2a2;border-color:#7c7c7c;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-label,.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title{color:#1e1e1e}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-banner{color:#1e1e1e;background-color:#378ef0}@media only screen and (min-width:1200px){.consonant-u-themeDarkest .consonant-CardsGrid .consonant-Card.half-height .consonant-Card:focus:after{border-color:#378ef0}}.consonant-u-themeDarkest .consonant-CardsGrid .consonant-CardFooter--divider:last-child{border-color:#393939}.consonant-u-themeDarkest .consonant-BookmarkInfobit.is-active .consonant-BookmarkInfobit-ico{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath stroke-width='1.5' stroke='%23a2a2a2' fill='%23a2a2a2' d='M13.6.6c-1.7.1-3.3 1-4.1 2.5C8.6 1.6 7.1.7 5.5.6c-2.8 0-5 2.2-5 5 0 4.7 9 10.8 9 10.8s9-6 9-10.8c0-2.7-2.1-5-4.9-5z'/%3E%3C/svg%3E")}.consonant-u-themeDarkest .consonant-BookmarkInfobit-ico{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath stroke-width='1.5' fill='%231e1e1e' stroke='%23a2a2a2' d='M13.6.6c-1.7.1-3.3 1-4.1 2.5C8.6 1.6 7.1.7 5.5.6c-2.8 0-5 2.2-5 5 0 4.7 9 10.8 9 10.8s9-6 9-10.8c0-2.7-2.1-5-4.9-5z'/%3E%3C/svg%3E")}@media only screen and (min-width:1200px){.consonant-u-themeDarkest .consonant-BookmarkInfobit:focus{outline-color:#378ef0}}.consonant-u-themeDarkest .consonant-Tooltip{color:#1e1e1e;background-color:#a2a2a2}.consonant-u-themeDarkest .consonant-Tooltip:after{background-color:#a2a2a2}.consonant-u-themeDarkest .consonant-BtnInfobit{border-color:#c8c8c8;background-color:#1e1e1e}.consonant-u-themeDarkest .consonant-BtnInfobit:not(.consonant-u-themeDarkest .consonant-BtnInfobit--cta) span{color:#c8c8c8}.consonant-u-themeDarkest .consonant-BtnInfobit:hover{border-color:#c8c8c8;background-color:#c8c8c8}.consonant-u-themeDarkest .consonant-BtnInfobit:hover:not(.consonant-u-themeDarkest .consonant-BtnInfobit--cta) span{color:#1e1e1e}.consonant-u-themeDarkest .consonant-BtnInfobit:active{border-color:#efefef;background-color:#efefef}.consonant-u-themeDarkest .consonant-BtnInfobit:active:not(.consonant-u-themeDarkest .consonant-BtnInfobit--cta) span{color:#1e1e1e}.consonant-u-themeDarkest .consonant-BtnInfobit:focus{outline-color:#378ef0}.consonant-u-themeDarkest .consonant-BtnInfobit--cta{border-color:#2680eb;background-color:#2680eb}.consonant-u-themeDarkest .consonant-BtnInfobit--cta:hover{border-color:#378ef0;background-color:#378ef0}.consonant-u-themeDarkest .consonant-BtnInfobit--cta:active{border-color:#4b9cf5;background-color:#4b9cf5}.consonant-u-themeDarkest .consonant-DateIntervalInfobit,.consonant-u-themeDarkest .consonant-IconWithTextInfobit-text{color:#a2a2a2}.consonant-u-themeDarkest .consonant-LinkWithIcoInfobit:focus{outline-color:#378ef0}.consonant-u-themeDarkest .consonant-LinkWithIcoInfobit span{color:#2680eb}.consonant-u-themeDarkest .consonant-LinkWithIcoInfobit:hover span{color:#378ef0}.consonant-u-themeDarkest .consonant-LinkWithIcoInfobit:active span{color:#4b9cf5}.consonant-u-themeDarkest .consonant-LinkInfobit{color:#2680eb}.consonant-u-themeDarkest .consonant-LinkInfobit:hover{color:#378ef0}.consonant-u-themeDarkest .consonant-LinkInfobit:active{color:#4b9cf5}.consonant-u-themeDarkest .consonant-LinkInfobit:focus{outline-color:#378ef0}.consonant-u-themeDarkest .consonant-PriceInfobit-price{color:#efefef}.consonant-u-themeDarkest .consonant-PriceInfobit-term{color:#7c7c7c}.consonant-u-themeDarkest .consonant-ProgressInfobit-text{color:#a2a2a2}.consonant-u-themeDarkest .consonant-ProgressInfobit-el{background-color:#1e1e1e;border-color:#494949}.consonant-u-themeDarkest .consonant-RatingInfobit-stars:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg id='Layer_1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 15'%3E%3Cstyle%3E.st0{fill:none}.st1{fill:%23494949}%3C/style%3E%3Cg id='Shape'%3E%3Cpath class='st0' d='M8.6.7c-.1 0-.3.1-.3.2L6.4 5.7l-5.2.2c-.2 0-.3.2-.3.4 0 .1 0 .2.1.2l4 3.2-1.4 5c0 .2.1.3.2.4h.1c.1 0 .1 0 .2-.1l4.3-2.8 4.3 2.8c.1.1.3.1.4-.1 0-.1.1-.2 0-.3l-1.4-5 4-3.2c.1-.1.2-.3 0-.4.3 0 .2-.1.1-.1l-5.2-.2L8.9.9C8.8.8 8.7.7 8.6.7z' transform='translate(-.029 -.412)'/%3E%3Cpath class='st1' d='M8.6 2.2L7.1 6l-.2.4h-.5l-4 .2 3.2 2.5.4.3-.2.5-1.1 3.9 3.4-2.2.4-.3.4.3 3.4 2.2-1.1-3.9-.1-.5.4-.3 3.2-2.5-4-.2h-.5L10 6 8.6 2.2m0-1.5c.1 0 .2.1.3.2l1.8 4.8 5.2.2c.1 0 .2.1.3.2 0 .1 0 .3-.1.3l-4 3.2 1.4 5v.1c0 .1-.1.2-.2.3h-.2c-.1 0-.1 0-.2-.1l-4.3-2.8-4.3 2.8c-.1 0-.1.1-.2.1H4c-.1 0-.2-.1-.2-.1 0-.1-.1-.2 0-.2l1.4-5L1 6.5c-.1-.1-.1-.2-.1-.3.1-.2.2-.3.3-.3l5.2-.2L8.3.9c0-.1.1-.2.3-.2z' transform='translate(-.029 -.412)'/%3E%3C/g%3E%3C/svg%3E")}.consonant-u-themeDarkest .consonant-RatingInfobit-stars:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' id='Layer_1' viewBox='0 0 17 15'%3E%3Cstyle%3E.st0{fill:%23378ef0}%3C/style%3E%3Cg id='Shape'%3E%3Cpath class='st0' d='M8.6.7c-.1 0-.3.1-.3.2L6.4 5.7l-5.2.2c-.2 0-.3.2-.3.4 0 .1 0 .2.1.2l4 3.2-1.4 5c0 .2.1.3.2.4h.1c.1 0 .1 0 .2-.1l4.3-2.8 4.3 2.8c.1.1.3.1.4-.1 0-.1.1-.2 0-.3l-1.4-5 4-3.2c.1-.1.2-.3 0-.4.3 0 .2-.1.1-.1l-5.2-.2L8.9.9C8.8.8 8.7.7 8.6.7z' transform='translate(-.029 -.412)'/%3E%3Cpath class='st0' d='M8.6 2.2L7.1 6l-.2.4h-.5l-4 .2 3.2 2.5.4.3-.2.5-1.1 3.9 3.4-2.2.4-.3.4.3 3.4 2.2-1.1-3.9-.1-.5.4-.3 3.2-2.5-4-.2h-.5L10 6 8.6 2.2m0-1.5c.1 0 .2.1.3.2l1.8 4.8 5.2.2c.1 0 .2.1.3.2 0 .1 0 .3-.1.3l-4 3.2 1.4 5v.1c0 .1-.1.2-.2.3h-.2c-.1 0-.1 0-.2-.1l-4.3-2.8-4.3 2.8c-.1 0-.1.1-.2.1H4c-.1 0-.2-.1-.2-.1 0-.1-.1-.2 0-.2l1.4-5L1 6.5c-.1-.1-.1-.2-.1-.3.1-.2.2-.3.3-.3l5.2-.2L8.3.9c0-.1.1-.2.3-.2z' transform='translate(-.029 -.412)'/%3E%3C/g%3E%3C/svg%3E")}.consonant-u-themeDarkest .consonant-RatingInfobit-text{color:#7c7c7c}.consonant-u-themeDarkest .consonant-TextInfobit{color:#a2a2a2}.consonant-u-themeDarkest .consonant-LoadMore--overBg .consonant-u-themeDarkest .consonant-LoadMore-btn{color:#c8c8c8}[dir=rtl] .consonant-FiltersInfo>.consonant-Select{margin-left:0;margin-right:auto}[dir=rtl] .consonant-FiltersInfo-btn--withFilters{padding-left:0}[dir=rtl] .consonant-FiltersInfo-btnText{padding-left:7px;text-align:right}[dir=rtl] .consonant-FiltersInfo-btnSelected{padding-right:8px;padding-left:7px;border-left:0;border-right:1px solid #505050}[dir=rtl] .consonant-FiltersInfo-results{margin-left:0;margin-right:auto;padding-left:0;text-align:right}[dir=rtl] .consonant-LeftFilters-mobBack{margin-left:13px;margin-right:0;transform:scale(-1)}[dir=rtl] .consonant-LeftFilters-mobileFooter{flex-direction:row-reverse}[dir=rtl] .consonant-LeftFilters-mobileFooterTotalResQty{margin-right:auto}[dir=rtl] .consonant-LeftFilters-clearLink,[dir=rtl] .consonant-LeftFilters-deskTitle,[dir=rtl] .consonant-LeftFilters-mobileFooterTotalResQty,[dir=rtl] .consonant-LeftFilters-mobTitle span{text-align:right}[dir=rtl] .consonant-LeftFilter:after{left:16px;right:auto;transform:scale(-1) rotate(-135deg)}[dir=rtl] .consonant-LeftFilter-link{padding-left:36px;padding-right:6px;text-align:right}[dir=rtl] .consonant-LeftFilter-footerClearBtn,[dir=rtl] .consonant-LeftFilter-footerResQty,[dir=rtl] .consonant-LeftFilter-itemsItemName{text-align:right}[dir=rtl] .consonant-LeftFilter-itemsItemCheckmark{margin-left:10px;margin-right:0}[dir=rtl] .consonant-LeftFilter-selectedItemsQty{text-align:right;padding-left:18px;padding-right:0}[dir=rtl] .consonant-LeftFilter-selectedItemsQty:after{left:0;right:auto}[dir=rtl] .consonant-LeftFilter-footer{flex-direction:row-reverse}[dir=rtl] .consonant-LeftFilter-footerClearBtn{margin-left:auto}[dir=rtl] .consonant-LeftFilter.is-opened .consonant-LeftFilter-name{padding-left:0;padding-right:20px}[dir=rtl] .consonant-TopFilters-filters{margin-right:0;margin-left:17px}[dir=rtl] .consonant-TopFilters-clearBtnWrapper{left:0;right:auto;margin-left:0;margin-right:0}[dir=rtl] .consonant-TopFilters-clearBtnWrapper:empty{margin-left:0;margin-right:-16px}[dir=rtl] .consonant-TopFilters-clearBtnWrapper:after{right:auto;left:100%;transform:scale(-1)}[dir=rtl] .consonant-TopFilters-clearBtn{text-align:right}[dir=rtl] .consonant-TopFilters-selectWrapper{margin-right:0;margin-left:8px}[dir=rtl] .consonant-TopFilters-results{margin-left:0;margin-right:auto;padding-left:0}[dir=rtl] .consonant-TopFilter{margin-right:0;margin-left:8px}[dir=rtl] .consonant-TopFilter:last-of-type{margin-left:0}[dir=rtl] .consonant-TopFilter-itemCheckmark{margin-right:0;margin-left:10px}[dir=rtl] .consonant-TopFilter-footerClearBtn,[dir=rtl] .consonant-TopFilter-footerResQty,[dir=rtl] .consonant-TopFilter-itemsItemName,[dir=rtl] .consonant-TopFilter-link{text-align:right}[dir=rtl] .consonant-TopFilter-selctedItemsQty{margin-right:9px;margin-left:0;text-align:right}[dir=rtl] .consonant-TopFilter-selctedItemsQty:after{left:auto;right:0}[dir=rtl] .consonant-TopFilter-footerResQty{margin-right:0;margin-left:auto}[dir=rtl] .consonant-TopFilter-footerBtn{margin-left:0;margin-right:0}[dir=rtl] .consonant-TopFilter-footerBtn:only-child{margin-right:auto}[dir=rtl] .consonant-TopFilter-footerClearBtn{margin-right:auto;margin-left:17px}[dir=rtl] .consonant-TopFilter.is-selected:not(.is-opened) .consonant-TopFilter-link{padding-left:0;padding-right:12px}[dir=rtl] .consonant-TopFilter.is-opened .consonant-TopFilter-link{padding-right:20px;padding-left:12px;text-align:right}[dir=rtl] .consonant-Select:after{right:auto;left:12px}[dir=rtl] .consonant-Select-btn{padding-left:34px;padding-right:12px;text-align:right}[dir=rtl] .consonant-Select-options{left:0;right:auto}[dir=rtl] .consonant-Select-options--left{right:0;left:auto}[dir=rtl] .consonant-Select-option{text-align:right;padding-left:30px;padding-right:20px}[dir=rtl] .consonant-Select-option.is-selected{text-align:right}[dir=rtl] .consonant-Select-option.is-selected:after{right:auto;left:12px}[dir=rtl] .consonant-Search input{text-align:right}[dir=rtl] .consonant-Search input:focus{padding-right:8px}[dir=rtl] .consonant-Search-inputTitle{text-align:right}[dir=rtl] .consonant-Search-inputClear{display:none}[dir=rtl] .consonant-DoubleWideCard .consonant-DoubleWideCard-label,[dir=rtl] .consonant-DoubleWideCard .consonant-DoubleWideCard-text,[dir=rtl] .consonant-DoubleWideCard .consonant-DoubleWideCard-title,[dir=rtl] .consonant-FullCard .consonant-FullCard-badge,[dir=rtl] .consonant-FullCard .consonant-FullCard-banner,[dir=rtl] .consonant-FullCard .consonant-FullCard-label,[dir=rtl] .consonant-FullCard .consonant-FullCard-title,[dir=rtl] .consonant-HalfHeightCard .consonant-HalfHeightCard-label,[dir=rtl] .consonant-HalfHeightCard .consonant-HalfHeightCard-title,[dir=rtl] .consonant-OneHalfCard .consonant-OneHalfCard-badge,[dir=rtl] .consonant-OneHalfCard .consonant-OneHalfCard-banner,[dir=rtl] .consonant-OneHalfCard .consonant-OneHalfCard-label,[dir=rtl] .consonant-OneHalfCard .consonant-OneHalfCard-text,[dir=rtl] .consonant-OneHalfCard .consonant-OneHalfCard-title,[dir=rtl] .consonant-ThreeFourthCard .consonant-ThreeFourthCard-badge,[dir=rtl] .consonant-ThreeFourthCard .consonant-ThreeFourthCard-banner,[dir=rtl] .consonant-ThreeFourthCard .consonant-ThreeFourthCard-label,[dir=rtl] .consonant-ThreeFourthCard .consonant-ThreeFourthCard-title{text-align:right}[dir=rtl] .consonant-FullCard .consonant-FullCard-videoIco,[dir=rtl] .consonant-OneHalfCard .consonant-OneHalfCard-videoIco,[dir=rtl] .consonant-ThreeFourthCard .consonant-ThreeFourthCard-videoIco{transform:rotate(180deg)}[dir=rtl] .consonant-FullCard .consonant-FullCard-videoIco:hover,[dir=rtl] .consonant-OneHalfCard .consonant-OneHalfCard-videoIco:hover,[dir=rtl] .consonant-ThreeFourthCard .consonant-ThreeFourthCard-videoIco:hover{transform:rotate(180deg) scale(1.1)}[dir=rtl] .consonant-FullCard .consonant-FullCard-banner,[dir=rtl] .consonant-OneHalfCard .consonant-OneHalfCard-banner,[dir=rtl] .consonant-ThreeFourthCard .consonant-ThreeFourthCard-banner{display:flex;align-items:center;justify-content:flex-start}[dir=rtl] .consonant-FullCard .consonant-FullCard-bannerIconWrapper,[dir=rtl] .consonant-OneHalfCard .consonant-OneHalfCard-bannerIconWrapper,[dir=rtl] .consonant-ThreeFourthCard .consonant-ThreeFourthCard-bannerIconWrapper{margin-left:4px;margin-right:0}[dir=rtl] .consonant-CardFooter-cell--left>:first-child,[dir=rtl] .consonant-CardFooter-cell--left>:last-child{margin-left:16px}[dir=rtl] .consonant-CardFooter-cell--left:last-child>:last-child,[dir=rtl] .consonant-CardFooter-cell--right:last-child>:last-child{margin-left:0}[dir=rtl] .consonant-DateIntervalInfobit,[dir=rtl] .consonant-IconWithTextInfobit-text,[dir=rtl] .consonant-LinkInfobit,[dir=rtl] .consonant-LinkWithIcoInfobit span,[dir=rtl] .consonant-PriceInfobit-price,[dir=rtl] .consonant-PriceInfobit-term,[dir=rtl] .consonant-ProgressInfobit-text,[dir=rtl] .consonant-RatingInfobit-text,[dir=rtl] .consonant-TextInfobit{text-align:right}[dir=rtl] .consonant-IconWithTextInfobit img{margin-right:0;margin-left:4px}[dir=rtl] .consonant img+.consonant-TextInfobit{margin-right:-12px}[dir=rtl] .consonant-RatingInfobit-text{margin-left:0;margin-right:7px}[dir=rtl] .consonant-ProgressInfobit-text:not(:last-child){padding-right:0;padding-left:8px}[dir=rtl] .consonant-BtnInfobit-ico{width:auto;height:auto;max-width:24px;max-height:24px;margin-left:8px;overflow:hidden;object-fit:cover}[dir=rtl] .consonant-BtnInfobit-ico--last{margin-left:0;margin-right:8px}[dir=rtl] .consonant-Bookmarks-title{padding-left:55px;padding-right:0;text-align:right}[dir=rtl] .consonant-Bookmarks-itemBadge{left:16px;right:auto}[dir=rtl] .consonant-Bookmarks-icoWrapper .consonant-Bookmarks-ico{margin-left:6px;margin-right:0}[dir=rtl] .consonant-Pagination-btn,[dir=rtl] .consonant-Pagination-summary{text-align:right}[dir=rtl] .consonant-CardCollection-inner{margin-left:-32px;margin-right:0}[dir=rtl] .consonant-CardCollection-inner>div{margin-left:32px;margin-right:0}@media only screen and (min-width:768px){[dir=rtl] .consonant-TopFilters-filtersWrapper{margin-right:0;margin-left:16px}[dir=rtl] .consonant-TopFilters-selectWrapper{margin-left:0;margin-right:8px}[dir=rtl] .consonant-TopFilters-title{text-align:right;margin-left:12px;margin-right:0}[dir=rtl] .consonant-TopFilters-filters--truncated .consonant-TopFilters-moreBtn{margin-left:23px;margin-right:0}[dir=rtl] .consonant-TopFilters-results{text-align:right}[dir=rtl] .consonant-TopFilters-results:after{right:auto;left:0}[dir=rtl] .consonant-TopFilters-results strong{text-align:right}[dir=rtl] .consonant-TopFilters-searchIcoWrapper{margin-left:0;margin-right:auto}[dir=rtl] .consonant-TopFilters-searchIcoWrapper>div{left:0;right:auto}[dir=rtl] .consonant-TopFilters-inner>:not([dir=rtl] .consonant-TopFilters-filtersWrapper):first-child{margin-left:0;margin-right:auto}[dir=rtl] .consonant-TopFilter.is-opened{margin-left:8px;margin-right:0}[dir=rtl] .consonant-TopFilter.is-opened:last-child{margin-left:0}[dir=rtl] .consonant-TopFilter.is-opened .consonant-TopFilter-link{margin-right:0;padding-right:17px}}@media only screen and (min-width:1200px){[dir=rtl] .consonant-LeftFilters{margin-right:0;margin-left:32px}[dir=rtl] .consonant-TopFilters-results{margin-left:0;margin-right:auto}[dir=rtl] .consonant-TopFilters-selectWrapper>div:first-child:after{right:auto;left:12px}[dir=rtl] .consonant-FiltersInfo-wrapper{padding-right:0;padding-left:32px}[dir=rtl] .consonant-FiltersInfo-wrapper:after{right:auto;left:16px}[dir=rtl] .consonant-FiltersInfo-search+.consonant-FiltersInfo-wrapper:last-child{padding-left:0}[dir=rtl] .consonant-FiltersInfo-results{text-align:left}[dir=rtl] .consonant-LeftFilter:after{transform:scale(-1) rotate(135deg)}[dir=rtl] .consonant-LeftFilter-link{padding-right:6px}[dir=rtl] .consonant-LeftFilter-itemBadge{left:32px;right:auto}[dir=rtl] .consonant-LeftFilter.is-opened .consonant-LeftFilter-name{padding-right:0}[dir=rtl] .consonant-LeftFilter.is-opened .consonant-LeftFilter-link{padding-right:8px}[dir=rtl] .consonant-TopFilter .consonant-TopFilter-absoluteWrapper{left:auto;right:0}[dir=rtl] .consonant-ChosenFilter{margin-right:0;margin-left:7px;padding-left:17px;padding-right:8px;text-align:right}[dir=rtl] .consonant-ChosenFilter:after,[dir=rtl] .consonant-ChosenFilter:before{left:8px;right:auto}[dir=rtl] .consonant-Bookmarks .consonant-Bookmarks-itemBadge{left:30px}[dir=rtl] .consonant-Select-btn{padding-right:0}}.consonant-CardsGrid{display:grid!important;justify-content:center;width:100%;max-width:100%;grid-template-columns:repeat(auto-fit,minmax(300px,max-content))}.consonant-CardsGrid.card-hover-grow .consonant-Card.one-half{transition:all .2s ease-in-out}.consonant-CardsGrid.card-hover-grow .consonant-Card.one-half:hover{transform:scale(1.03);transition:all .2s ease-in-out}.consonant-CardsGrid.card-hover-grow .consonant-Card.one-half [class*=-header]:after{display:none!important}.consonant-CardsGrid--with1xGutter{gap:8px;padding-bottom:8px}.consonant-CardsGrid--with2xGutter{gap:16px;padding-bottom:16px}.consonant-CardsGrid--with3xGutter{gap:24px;padding-bottom:24px}.consonant-CardsGrid--with4xGutter{gap:32px;padding-bottom:32px}.consonant-CardsGrid--2up{grid-template-columns:repeat(auto-fit,minmax(300px,max-content))}.consonant-CardsGrid--2up .consonant-Card{max-width:584px}.consonant-CardsGrid--2up .consonant-Card-content{width:100%;max-width:100%}.consonant-CardsGrid--3up .consonant-Card{width:378px;max-width:100%}.consonant-CardsGrid--3up .consonant-Card-content{width:100%;max-width:100%}.consonant-CardsGrid--4up{grid-template-columns:repeat(auto-fit,minmax(225px,max-content))}.consonant-CardsGrid--4up .consonant-Card{min-width:225px;width:276px;max-width:100%;height:384px}.consonant-CardsGrid--4up .consonant-Card-content{width:100%;max-width:100%;padding:20px}.consonant-CardsGrid--5up{grid-template-columns:repeat(auto-fit,minmax(190px,max-content))}.consonant-CardsGrid--5up .consonant-Card{min-width:190px;max-width:228px;height:344px}.consonant-CardsGrid--5up .consonant-Card-content{width:100%;max-width:100%;padding:20px}.consonant-CardsGrid--5up .one-half.consonant-Card{height:auto}.consonant-CardsGrid--5up .one-half.consonant-Card .consonant-Card-header{min-height:172px;max-height:172px}@media only screen and (min-width:680px){.consonant-CardsGrid--2up{grid-template-columns:repeat(auto-fit,minmax(500px,max-content))}}.consonant-Wrapper{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;position:relative;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;margin-top:1px}.consonant-Wrapper *{box-sizing:border-box}.consonant-Wrapper-inner>:last-of-type{display:block;position:relative;flex-grow:1}.consonant-Wrapper-collection{background-color:transparent}.consonant-Wrapper-collection.is-loading{min-height:536px}.consonant-Wrapper-collection:first-child .consonant-FiltersInfo:empty{display:none}.consonant-Wrapper--1200MaxWidth .consonant-Wrapper-inner{width:83.3%;max-width:1200px;margin-left:auto;margin-right:auto}.consonant-Wrapper--1600MaxWidth .consonant-Wrapper-inner{width:83.3%;max-width:1600px;margin-left:auto;margin-right:auto}.consonant-Wrapper--83PercentContainier .consonant-Wrapper-inner{width:83.3%;margin-left:auto;margin-right:auto}.consonant-Wrapper--32MarginContainer .consonant-Wrapper-inner{max-width:unset;margin-left:32px;margin-right:32px}@media only screen and (min-width:1200px){.consonant-Wrapper--withLeftFilter .consonant-Wrapper-inner{display:grid;grid-template-columns:204px auto;gap:32px}.consonant-Wrapper-collection{overflow:visible}}@media only screen and (min-width:1440px){.consonant-Wrapper-collection{margin-bottom:8px}}.consonant-FiltersInfo{display:flex;width:100%;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-left:auto;margin-right:auto;box-sizing:border-box;padding:0 0 16px;top:0;left:0;background-color:transparent}.consonant-FiltersInfo-search{width:100%;max-width:100%}.consonant-FiltersInfo-btnWrapper{max-width:100%}.consonant-FiltersInfo-btn{display:inline-flex;align-items:center;min-width:89px;max-width:100%;margin-bottom:10px;padding:0 0 0 11px;border:1px solid #505050;border-radius:5px;overflow:hidden;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.875rem;font-weight:700;color:#505050;font-style:normal;word-break:break-word;text-align:left;text-transform:capitalize;background-color:#fff;outline:0;user-select:none}.consonant-FiltersInfo-btn:focus{border-color:#1492e6}.consonant-FiltersInfo-btnSelected{display:block;max-width:40%;padding-left:8px;padding-right:7px;border-left:1px solid #505050;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.consonant-FiltersInfo-btn--withFilters{background-color:#f4f4f4;color:#323232}.consonant-FiltersInfo-btnIco{display:block;min-width:18px;width:18px;height:18px;margin-right:8px;background:transparent url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE2Ljc1IDMuMDAwMDZINy45NUM3LjgzNTI0IDIuNDM0OTIgNy41Mjg2NCAxLjkyNjgzIDcuMDgyMTMgMS41NjE4OEM2LjYzNTYyIDEuMTk2OTIgNi4wNzY2OCAwLjk5NzU1OSA1LjUgMC45OTc1NTlDNC45MjMzMiAwLjk5NzU1OSA0LjM2NDM4IDEuMTk2OTIgMy45MTc4NyAxLjU2MTg4QzMuNDcxMzYgMS45MjY4MyAzLjE2NDc2IDIuNDM0OTIgMy4wNSAzLjAwMDA2SDEuMjVDMS4xODM3IDMuMDAwMDYgMS4xMjAxMSAzLjAyNjQgMS4wNzMyMiAzLjA3MzI5QzEuMDI2MzQgMy4xMjAxNyAxIDMuMTgzNzYgMSAzLjI1MDA2VjMuNzUwMDZDMSAzLjgxNjM3IDEuMDI2MzQgMy44Nzk5NiAxLjA3MzIyIDMuOTI2ODRDMS4xMjAxMSAzLjk3MzczIDEuMTgzNyA0LjAwMDA2IDEuMjUgNC4wMDAwNkgzLjA1QzMuMTY0NzYgNC41NjUyMSAzLjQ3MTM2IDUuMDczMyAzLjkxNzg3IDUuNDM4MjVDNC4zNjQzOCA1LjgwMzIxIDQuOTIzMzIgNi4wMDI1NyA1LjUgNi4wMDI1N0M2LjA3NjY4IDYuMDAyNTcgNi42MzU2MiA1LjgwMzIxIDcuMDgyMTMgNS40MzgyNUM3LjUyODY0IDUuMDczMyA3LjgzNTI0IDQuNTY1MjEgNy45NSA0LjAwMDA2SDE2Ljc1QzE2LjgxNjMgNC4wMDAwNiAxNi44Nzk5IDMuOTczNzMgMTYuOTI2OCAzLjkyNjg0QzE2Ljk3MzcgMy44Nzk5NiAxNyAzLjgxNjM3IDE3IDMuNzUwMDZWMy4yNTAwNkMxNyAzLjE4Mzc2IDE2Ljk3MzcgMy4xMjAxNyAxNi45MjY4IDMuMDczMjlDMTYuODc5OSAzLjAyNjQgMTYuODE2MyAzLjAwMDA2IDE2Ljc1IDMuMDAwMDZaTTUuNSA1LjAwMDA2QzUuMjAzMzMgNS4wMDAwNiA0LjkxMzMyIDQuOTEyMDkgNC42NjY2NCA0Ljc0NzI3QzQuNDE5OTcgNC41ODI0NSA0LjIyNzcxIDQuMzQ4MTggNC4xMTQxOCA0LjA3NDA5QzQuMDAwNjUgMy44IDMuOTcwOTQgMy40OTg0IDQuMDI4ODIgMy4yMDc0M0M0LjA4NjcgMi45MTY0NiA0LjIyOTU2IDIuNjQ5MTggNC40MzkzNCAyLjQzOTRDNC42NDkxMiAyLjIyOTYzIDQuOTE2MzkgMi4wODY3NiA1LjIwNzM2IDIuMDI4ODlDNS40OTgzNCAxLjk3MTAxIDUuNzk5OTQgMi4wMDA3MSA2LjA3NDAzIDIuMTE0MjVDNi4zNDgxMSAyLjIyNzc4IDYuNTgyMzggMi40MjAwNCA2Ljc0NzIgMi42NjY3MUM2LjkxMjAzIDIuOTEzMzggNyAzLjIwMzM5IDcgMy41MDAwNkM3IDMuODk3ODkgNi44NDE5NiA0LjI3OTQyIDYuNTYwNjYgNC41NjA3M0M2LjI3OTM2IDQuODQyMDMgNS44OTc4MiA1LjAwMDA2IDUuNSA1LjAwMDA2WiIgZmlsbD0iIzUwNTA1MCIvPgo8cGF0aCBkPSJNMTYuNzUgMTMuMDAwMUg5Ljk1QzkuODM1MjQgMTIuNDM0OSA5LjUyODY0IDExLjkyNjggOS4wODIxMyAxMS41NjE5QzguNjM1NjIgMTEuMTk2OSA4LjA3NjY4IDEwLjk5NzYgNy41IDEwLjk5NzZDNi45MjMzMiAxMC45OTc2IDYuMzY0MzggMTEuMTk2OSA1LjkxNzg3IDExLjU2MTlDNS40NzEzNiAxMS45MjY4IDUuMTY0NzYgMTIuNDM0OSA1LjA1IDEzLjAwMDFIMS4yNUMxLjE4MzcgMTMuMDAwMSAxLjEyMDExIDEzLjAyNjQgMS4wNzMyMiAxMy4wNzMzQzEuMDI2MzQgMTMuMTIwMiAxIDEzLjE4MzggMSAxMy4yNTAxVjEzLjc1MDFDMSAxMy44MTY0IDEuMDI2MzQgMTMuODggMS4wNzMyMiAxMy45MjY4QzEuMTIwMTEgMTMuOTczNyAxLjE4MzcgMTQuMDAwMSAxLjI1IDE0LjAwMDFINS4wNUM1LjE2NDc2IDE0LjU2NTIgNS40NzEzNiAxNS4wNzMzIDUuOTE3ODcgMTUuNDM4M0M2LjM2NDM4IDE1LjgwMzIgNi45MjMzMiAxNi4wMDI2IDcuNSAxNi4wMDI2QzguMDc2NjggMTYuMDAyNiA4LjYzNTYyIDE1LjgwMzIgOS4wODIxMyAxNS40MzgzQzkuNTI4NjQgMTUuMDczMyA5LjgzNTI0IDE0LjU2NTIgOS45NSAxNC4wMDAxSDE2Ljc1QzE2LjgxNjMgMTQuMDAwMSAxNi44Nzk5IDEzLjk3MzcgMTYuOTI2OCAxMy45MjY4QzE2Ljk3MzcgMTMuODggMTcgMTMuODE2NCAxNyAxMy43NTAxVjEzLjI1MDFDMTcgMTMuMTgzOCAxNi45NzM3IDEzLjEyMDIgMTYuOTI2OCAxMy4wNzMzQzE2Ljg3OTkgMTMuMDI2NCAxNi44MTYzIDEzLjAwMDEgMTYuNzUgMTMuMDAwMVpNNy41IDE1LjAwMDFDNy4yMDMzMyAxNS4wMDAxIDYuOTEzMzIgMTQuOTEyMSA2LjY2NjY0IDE0Ljc0NzNDNi40MTk5NyAxNC41ODI0IDYuMjI3NzEgMTQuMzQ4MiA2LjExNDE4IDE0LjA3NDFDNi4wMDA2NSAxMy44IDUuOTcwOTQgMTMuNDk4NCA2LjAyODgyIDEzLjIwNzRDNi4wODY3IDEyLjkxNjUgNi4yMjk1NiAxMi42NDkyIDYuNDM5MzQgMTIuNDM5NEM2LjY0OTEyIDEyLjIyOTYgNi45MTYzOSAxMi4wODY4IDcuMjA3MzYgMTIuMDI4OUM3LjQ5ODM0IDExLjk3MSA3Ljc5OTk0IDEyLjAwMDcgOC4wNzQwMyAxMi4xMTQyQzguMzQ4MTEgMTIuMjI3OCA4LjU4MjM4IDEyLjQyIDguNzQ3MiAxMi42NjY3QzguOTEyMDMgMTIuOTEzNCA5IDEzLjIwMzQgOSAxMy41MDAxQzkgMTMuODk3OSA4Ljg0MTk2IDE0LjI3OTQgOC41NjA2NiAxNC41NjA3QzguMjc5MzYgMTQuODQyIDcuODk3ODIgMTUuMDAwMSA3LjUgMTUuMDAwMVoiIGZpbGw9IiM1MDUwNTAiLz4KPHBhdGggZD0iTTEgOC4yNTAwNlY4Ljc1MDA2QzEgOC44MTYzNyAxLjAyNjM0IDguODc5OTYgMS4wNzMyMiA4LjkyNjg0QzEuMTIwMTEgOC45NzM3MyAxLjE4MzcgOS4wMDAwNiAxLjI1IDkuMDAwMDZIMTAuMDVDMTAuMTY0OCA5LjU2NTIxIDEwLjQ3MTQgMTAuMDczMyAxMC45MTc5IDEwLjQzODNDMTEuMzY0NCAxMC44MDMyIDExLjkyMzMgMTEuMDAyNiAxMi41IDExLjAwMjZDMTMuMDc2NyAxMS4wMDI2IDEzLjYzNTYgMTAuODAzMiAxNC4wODIxIDEwLjQzODNDMTQuNTI4NiAxMC4wNzMzIDE0LjgzNTIgOS41NjUyMSAxNC45NSA5LjAwMDA2SDE2Ljc1QzE2LjgxNjMgOS4wMDAwNiAxNi44Nzk5IDguOTczNzMgMTYuOTI2OCA4LjkyNjg0QzE2Ljk3MzcgOC44Nzk5NiAxNyA4LjgxNjM3IDE3IDguNzUwMDZWOC4yNTAwNkMxNyA4LjE4Mzc2IDE2Ljk3MzcgOC4xMjAxNyAxNi45MjY4IDguMDczMjlDMTYuODc5OSA4LjAyNjQgMTYuODE2MyA4LjAwMDA2IDE2Ljc1IDguMDAwMDZIMTQuOTVDMTQuODM1MiA3LjQzNDkyIDE0LjUyODYgNi45MjY4MyAxNC4wODIxIDYuNTYxODhDMTMuNjM1NiA2LjE5NjkyIDEzLjA3NjcgNS45OTc1NiAxMi41IDUuOTk3NTZDMTEuOTIzMyA1Ljk5NzU2IDExLjM2NDQgNi4xOTY5MiAxMC45MTc5IDYuNTYxODhDMTAuNDcxNCA2LjkyNjgzIDEwLjE2NDggNy40MzQ5MiAxMC4wNSA4LjAwMDA2SDEuMjVDMS4xODM3IDguMDAwMDYgMS4xMjAxMSA4LjAyNjQgMS4wNzMyMiA4LjA3MzI5QzEuMDI2MzQgOC4xMjAxNyAxIDguMTgzNzYgMSA4LjI1MDA2Wk0xMSA4LjUwMDA2QzExIDguMjAzMzkgMTEuMDg4IDcuOTEzMzggMTEuMjUyOCA3LjY2NjcxQzExLjQxNzYgNy40MjAwNCAxMS42NTE5IDcuMjI3NzggMTEuOTI2IDcuMTE0MjVDMTIuMjAwMSA3LjAwMDcxIDEyLjUwMTcgNi45NzEwMSAxMi43OTI2IDcuMDI4ODlDMTMuMDgzNiA3LjA4Njc2IDEzLjM1MDkgNy4yMjk2MyAxMy41NjA3IDcuNDM5NEMxMy43NzA0IDcuNjQ5MTggMTMuOTEzMyA3LjkxNjQ2IDEzLjk3MTIgOC4yMDc0M0MxNC4wMjkxIDguNDk4NCAxMy45OTk0IDguOCAxMy44ODU4IDkuMDc0MDlDMTMuNzcyMyA5LjM0ODE4IDEzLjU4IDkuNTgyNDUgMTMuMzMzNCA5Ljc0NzI3QzEzLjA4NjcgOS45MTIwOSAxMi43OTY3IDEwLjAwMDEgMTIuNSAxMC4wMDAxQzEyLjEwMjIgMTAuMDAwMSAxMS43MjA2IDkuODQyMDMgMTEuNDM5MyA5LjU2MDczQzExLjE1OCA5LjI3OTQyIDExIDguODk3ODkgMTEgOC41MDAwNloiIGZpbGw9IiM1MDUwNTAiLz4KPC9zdmc+Cg==") no-repeat 0 0}.consonant-FiltersInfo-btnText{display:block;max-width:100%;white-space:nowrap;text-overflow:ellipsis;padding-right:7px;overflow:hidden}.consonant-FiltersInfo-wrapper{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;width:100%;padding-top:14px}.consonant-FiltersInfo-wrapper:first-child{padding-top:0}.consonant-FiltersInfo-title{max-width:540px;margin:0;font-size:1.125rem;line-height:1.375rem;font-weight:700;color:#2c2c2c;text-align:left}.consonant-FiltersInfo-results,.consonant-FiltersInfo-title{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-style:normal;word-break:break-word}.consonant-FiltersInfo-results{display:block;margin-left:auto;padding-left:12px;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#505050;text-align:right}.consonant-FiltersInfo-results strong{font-weight:700}.consonant-FiltersInfo--withLightText .consonant-FiltersInfo-results,.consonant-FiltersInfo--withLightText .consonant-FiltersInfo-title{color:#eaeaea}.consonant-FiltersInfo>.consonant-Select{margin-left:auto}@media only screen and (min-width:1200px){.consonant-FiltersInfo{flex-wrap:nowrap;align-items:stretch;margin-left:auto;margin-right:auto;padding-bottom:28px}.consonant-FiltersInfo-wrapper{order:-1;padding:0 32px 0 0;flex-wrap:nowrap;align-items:center}.consonant-FiltersInfo-wrapper:after{content:"";position:absolute;width:1px;background-color:#e1e1e1;top:0;bottom:0;right:16px;margin:auto}.consonant-FiltersInfo-wrapper--noLine:after,.consonant-FiltersInfo-wrapper:only-child:after{display:none}.consonant-FiltersInfo-search+.consonant-FiltersInfo-wrapper:last-child{padding-right:0}.consonant-FiltersInfo-search+.consonant-FiltersInfo-wrapper:last-child:after{display:none}.consonant-FiltersInfo-results{min-width:15%;max-width:25%}.consonant-FiltersInfo-btn,.consonant-FiltersInfo-search{display:none}}@media only screen and (min-width:1440px){.consonant-FiltersInfo-title{max-width:720px}}div:not(:only-child)>.consonant-FiltersInfo .consonant-FiltersInfo-wrapper:only-child{padding-top:6px}.consonant-Search{position:relative;padding-bottom:12px}.consonant-Search label{display:flex;flex-wrap:wrap;max-width:100%;cursor:pointer;word-break:break-word}.consonant-Search-inputTitle{display:none;margin:0 0 5px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:.875rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;cursor:pointer}.consonant-Search-inputWrapper{position:relative;display:block;width:100%}.consonant-Search-inputWrapper:after{content:"";width:15px;height:15px;position:absolute;top:0;bottom:0;left:10px;margin:auto;background:transparent url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjkyIDEyLjY3NUwxMC41ODYgOS4zNDIwMUMxMS4zOTAyIDguMjE5NTEgMTEuNzQyNyA2LjgzNTYgMTEuNTczNSA1LjQ2NTE3QzExLjQwNDMgNC4wOTQ3NSAxMC43MjU5IDIuODM4MDkgOS42NzI5MyAxLjk0NDgzQzguNjE5OTUgMS4wNTE1NiA3LjI2OTUxIDAuNTg3MDQ2IDUuODg5ODQgMC42NDM1NThDNC41MTAxNyAwLjcwMDA3MSAzLjIwMjI0IDEuMjczNDcgMi4yMjU4NSAyLjI0OTg2QzEuMjQ5NDYgMy4yMjYyNSAwLjY3NjA1MyA0LjUzNDE5IDAuNjE5NTQxIDUuOTEzODZDMC41NjMwMjkgNy4yOTM1MiAxLjAyNzU0IDguNjQzOTcgMS45MjA4MSA5LjY5Njk0QzIuODE0MDcgMTAuNzQ5OSA0LjA3MDczIDExLjQyODQgNS40NDExNiAxMS41OTc1QzYuODExNTggMTEuNzY2NyA4LjE5NTQ5IDExLjQxNDIgOS4zMTggMTAuNjFMMTIuNjUxIDEzLjk0M0MxMi44MjMyIDE0LjA5MDUgMTMuMDQ0NiAxNC4xNjc1IDEzLjI3MTEgMTQuMTU4OEMxMy40OTc3IDE0LjE1IDEzLjcxMjUgMTQuMDU2MSAxMy44NzI4IDEzLjg5NThDMTQuMDMzMSAxMy43MzU1IDE0LjEyNyAxMy41MjA3IDE0LjEzNTcgMTMuMjk0MkMxNC4xNDQ1IDEzLjA2NzcgMTQuMDY3NCAxMi44NDYyIDEzLjkyIDEyLjY3NFYxMi42NzVaTTIuMjY2IDYuMTUwMDFDMi4yNjYgNS4zODY1OCAyLjQ5MjM4IDQuNjQwMjggMi45MTY1MiA0LjAwNTUxQzMuMzQwNjYgMy4zNzA3NCAzLjk0MzUxIDIuODc1OTkgNC42NDg4NCAyLjU4Mzg0QzUuMzU0MTYgMi4yOTE2OCA2LjEzMDI4IDIuMjE1MjQgNi44NzkwNCAyLjM2NDE4QzcuNjI3ODEgMi41MTMxMiA4LjMxNTYgMi44ODA3NSA4Ljg1NTQzIDMuNDIwNThDOS4zOTUyNiAzLjk2MDQxIDkuNzYyODkgNC42NDgyIDkuOTExODMgNS4zOTY5NkMxMC4wNjA4IDYuMTQ1NzMgOS45ODQzMiA2LjkyMTg1IDkuNjkyMTcgNy42MjcxN0M5LjQwMDAyIDguMzMyNDkgOC45MDUyNyA4LjkzNTM0IDguMjcwNSA5LjM1OTQ5QzcuNjM1NzIgOS43ODM2MyA2Ljg4OTQzIDEwLjAxIDYuMTI1OTkgMTAuMDFDNS4xMDIyNiAxMC4wMSA0LjEyMDQ1IDkuNjAzMzQgMy4zOTY1NiA4Ljg3OTQ1QzIuNjcyNjcgOC4xNTU1NSAyLjI2NiA3LjE3Mzc1IDIuMjY2IDYuMTUwMDFWNi4xNTAwMVoiIGZpbGw9IiM1MDUwNTAiLz4KPC9zdmc+Cg==") no-repeat 0 0;background-size:cover;z-index:1}.consonant-Search input{box-sizing:border-box;min-height:32px;width:100%;max-width:100%;padding:0 8px 0 32px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.875rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:left;border:1px solid #eaeaea;border-radius:5px;background-color:#fff;transition:border-color background-color .3s ease-in-out ease-in-out .3s;outline:0;box-shadow:none}.consonant-Search input::-webkit-search-cancel-button,.consonant-Search input::-webkit-search-decoration,.consonant-Search input::-webkit-search-results-button,.consonant-Search input::-webkit-search-results-decoration{display:none}.consonant-Search input::-ms-clear,.consonant-Search input::-ms-reveal{display:none;width:0;height:0}.consonant-Search input::placeholder{font-style:italic;color:#959595;transition:opacity .3s ease-in-out}.consonant-Search input:focus{padding-right:32px;border-color:#2680eb;background-color:#fff}.consonant-Search input:focus::placeholder{opacity:0}input:valid+.consonant-Search-inputClear{visibility:visible;opacity:1;pointer-events:auto}.consonant-Search-inputClear{visibility:hidden;opacity:0;position:absolute;width:20px;height:20px;top:0;bottom:0;right:6px;margin:auto;font-size:0;line-height:0;border:0;border-radius:50%;background-color:#f4f4f4;outline:0;pointer-events:none;transition:background-color .3s ease-in-out}.consonant-Search-inputClear:after,.consonant-Search-inputClear:before{content:"";position:absolute;width:8px;height:1px;top:0;bottom:0;left:0;right:0;margin:auto;background-color:#747474;transform:rotate(45deg)}.consonant-Search-inputClear:after{transform:rotate(-45deg)}.consonant-Search-inputClear:focus{border:1px solid #1492e6}@media only screen and (min-width:1200px){.consonant-Search{order:-2}.consonant-Search-inputTitle{display:block}.consonant-Search-inputClear{width:24px;height:24px}.consonant-Search-inputClear:after,.consonant-Search-inputClear:before{width:10px}.consonant-Search-inputClear:hover{background-color:#1473e6}.consonant-Search-inputClear:hover:after,.consonant-Search-inputClear:hover:before{background-color:#fff}}.consonant-Select{position:relative;width:140px;margin-bottom:10px}.consonant-Select:after{content:"";position:absolute;width:6px;height:6px;top:0;bottom:0;right:12px;margin:auto;border:1px solid #323232;z-index:1;transform:rotate(-45deg) translate3d(-1px,-2px,0);border-top:0;border-right:0;pointer-events:none}.consonant-Select-btn{box-sizing:border-box;display:block;width:100%;max-width:140px;padding:0 34px 0 12px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.875rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:left;text-transform:capitalize;white-space:nowrap;cursor:pointer;border:1px solid #eaeaea;border-radius:5px;background-color:#fff;overflow:hidden;outline:0;text-overflow:ellipsis}.consonant-Select-btn:focus{border-color:#1492e6}.consonant-Select-btn.is-active+.consonant-Select-options{opacity:1}.consonant-Select-options{opacity:0;position:absolute;max-width:70vw;top:calc(100% + 6px);right:0;word-break:break-word;border:1px solid #eaeaea;background-color:#fff;box-shadow:0 3px 15px rgba(80,80,80,.1);transition:opacity .3s ease-in-out;z-index:5;border-radius:5px;overflow:hidden}.consonant-Select-options:empty{display:none}.consonant-Select-options--left{right:auto;left:0}.consonant-Select-option{display:block;width:100%;max-width:100%;padding:9px 30px 9px 20px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:left;white-space:nowrap;text-overflow:ellipsis;background-color:#fff;transition:background-color .3s ease-in-out;outline:0;overflow:hidden;border:2px solid transparent}.consonant-Select-option:focus{border-color:#1492e6}.consonant-Select-option:hover{background-color:#f4f4f4}.consonant-Select-option.is-selected{position:relative;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:700;color:#2680eb;font-style:normal;word-break:break-word;text-align:left}.consonant-Select-option.is-selected:after{content:"";position:absolute;width:10px;height:5px;top:0;bottom:0;right:16px;margin:auto;border:2px solid #1473e6;border-top:0;border-right:0;transform:rotate(-45deg) translate3d(1px,-2px,0);pointer-events:none}.consonant-Select--autoWidth{width:100%;max-width:100%;margin-bottom:0}.consonant-Select--autoWidth:after{width:4px;height:4px;border-color:#505050}.consonant-Select--autoWidth .consonant-Select-options{min-width:140px}.consonant-Select--autoWidth .consonant-Select-btn{max-width:100%}@media only screen and (min-width:768px){.consonant-Select--autoWidth{margin-right:0}.consonant-Select--autoWidth .consonant-Select-options{width:auto}}@media only screen and (min-width:1200px){.consonant-Select{width:112px;margin-bottom:0}.consonant-Select:focus{border-color:#1492e6}.consonant-Select:after{right:4px}.consonant-Select-options{min-width:108px}.consonant-Select-option{padding-top:7px;padding-bottom:7px}.consonant-Select-btn{max-width:112px;padding-left:4px;padding-right:10px;border:2px solid transparent}}.consonant-Pagination{justify-content:space-between;align-items:center;margin-left:auto;margin-right:auto;margin-bottom:50px;user-select:none}.consonant-Pagination-paginator{display:flex;justify-content:space-between;align-items:center;flex-grow:1;overflow-x:auto}.consonant-Pagination-btn{padding-left:0;padding-right:0;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.1875rem;font-weight:700;color:#4b4b4b;font-style:normal;word-break:break-word;text-align:left;white-space:nowrap;text-transform:capitalize;background-color:transparent;border:2px solid transparent;outline:0;transition:border-color .3s ease-in-out}.consonant-Pagination-btn:focus{border-color:#1492e6}.consonant-Pagination-items{display:flex;align-items:center;margin:0;padding:0 12px 0 20px;list-style-type:none}.consonant-Pagination-item{margin-right:7px}.consonant-Pagination-item:hover .consonant-Pagination-itemBtn{color:#2c2c2c}.consonant-Pagination-item:active .consonant-Pagination-itemBtn{color:#2c2c2c;background-color:#e1e1e1}.consonant-Pagination-item:active .consonant-Pagination-itemBtn:disabled,.consonant-Pagination-item:hover .consonant-Pagination-itemBtn:disabled,.consonant-Pagination-itemBtn:disabled{color:#b3b3b3;pointer-events:none;background-color:transparent}.consonant-Pagination-item.is-active .consonant-Pagination-itemBtn{background-color:#e1e1e1;color:#4b4b4b}.consonant-Pagination-item.is-active:active .consonant-Pagination-itemBtn,.consonant-Pagination-item.is-active:hover .consonant-Pagination-itemBtn{color:#2c2c2c}.consonant-Pagination-item.is-active .consonant-Pagination-itemBtn:disabled{color:#b3b3b3;background-color:#eaeaea}.consonant-Pagination-item:nth-of-type(n+5){display:none}.consonant-Pagination-itemBtn{position:relative;min-width:32px;min-height:32px;max-width:70px;padding:8px 10px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:.875rem;font-weight:400;color:#4b4b4b;font-style:normal;word-break:break-word;text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:16px;outline:0;cursor:pointer;background-color:transparent;overflow:hidden}.consonant-Pagination-itemBtn:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;border:2px solid transparent;border-radius:30px;z-index:1}.consonant-Pagination-itemBtn:focus:after{border-color:#1492e6}.consonant-Pagination-summary{display:none;max-width:30%;align-items:center;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:right;margin-left:auto}@media only screen and (min-width:768px){.consonant-Pagination-paginator{justify-content:center}}@media only screen and (min-width:1200px){.consonant-Pagination{display:flex;justify-content:space-between;align-items:center;margin-bottom:100px}.consonant-Pagination-paginator{justify-content:flex-start;margin:0}.consonant-Pagination-btn{max-width:15%;overflow:hidden;text-overflow:ellipsis}.consonant-Pagination-item:nth-of-type(n+5){display:list-item}.consonant-Pagination-item:nth-of-type(n+11){display:none}.consonant-Pagination-summary{display:block}}.consonant-LoadMore{display:block;margin-left:auto;margin-right:auto;padding-bottom:115px;text-align:center;user-select:none}.consonant-LoadMore-inner{display:flex;flex-direction:column;align-items:center}.consonant-LoadMore-text{margin:0 0 14px;font-weight:400;transition:color .3s ease-in-out}.consonant-LoadMore-btn,.consonant-LoadMore-text{max-width:75%;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.1875rem;color:#505050;font-style:normal;word-break:break-word;text-align:center}.consonant-LoadMore-btn{box-sizing:border-box;padding:5px 13px;font-weight:700;text-transform:capitalize;background-color:transparent;border:2px solid #505050;border-radius:30px;outline:0;user-select:none;transition:color .3s ease-in-out,background-color .3s ease-in-out,border-color .3s ease-in-out}.consonant-LoadMore-btn:hover{background-color:#505050;color:#fff}.consonant-LoadMore-btn:active{background-color:#323232;border-color:#323232;color:#fff}.consonant-LoadMore-btn:focus{outline:0}@media only screen and (min-width:1200px){.consonant-LoadMore-btn:focus{outline:2px solid #1492e6}}@media (prefers-color-scheme:dark){.consonant-LoadMore-btn{color:#c8c8c8;border-color:#c8c8c8}.consonant-LoadMore-btn:hover{background-color:#c8c8c8;color:#080808}.consonant-LoadMore-btn:active{background-color:#efefef;border-color:#efefef;color:#080808}.consonant-LoadMore-text{color:#c8c8c8}}.consonant-LoadMore--overBg .consonant-LoadMore-btn{border-color:#fff;color:#fff}.consonant-LoadMore--overBg .consonant-LoadMore-btn:active,.consonant-LoadMore--overBg .consonant-LoadMore-btn:hover{background-color:#fff;border-color:#fff;color:#505050}.consonant-LoadMore--themeThree .consonant-LoadMore-btn{color:#505050;border-color:#505050;background-color:transparent}.consonant-LoadMore--themeThree .consonant-LoadMore-btn:active,.consonant-LoadMore--themeThree .consonant-LoadMore-btn:hover{color:#fff;border-color:#505050;background-color:#505050}.consonant-LoadMore--themeThree .consonant-LoadMore-text{color:#505050}.consonant-LoadMore--overBg .consonant-LoadMore-text{color:#fff}@media only screen and (min-width:768px){.consonant-LoadMore{padding-bottom:121px}}@media only screen and (min-width:1440px){.consonant-LoadMore{padding-bottom:140px}}.consonant-Loader{box-sizing:border-box;display:inline-block;position:relative;width:16px;height:16px;border-radius:50%;overflow:hidden}.consonant-Loader--absolute{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;z-index:9}.consonant-Loader:after{content:"";position:absolute;box-sizing:border-box;top:0;bottom:0;left:0;right:0;border:2px solid #eaeaea;border-radius:50%;z-index:0}.consonant-Loader div{box-sizing:border-box;display:block;position:absolute;width:16px;height:16px;border:2px solid #2680eb;border-radius:100%;animation:circle 1s ease-in infinite;transform-origin:50% 50%;border-color:#2680eb transparent transparent;z-index:2;opacity:1;overflow:visible}.consonant-Loader div:first-child{animation-delay:-.1s}.consonant-Loader div:nth-child(2),.consonant-Loader div:nth-child(3){animation-delay:-.14s}.consonant-Loader--medium{width:32px;height:32px}.consonant-Loader--medium:after,.consonant-Loader--medium div{width:32px;height:32px;border-width:4px}.consonant-Loader--big{width:64px;height:64px}.consonant-Loader--big:after,.consonant-Loader--big div{width:64px;height:64px;border-width:5px}[data-tooltip-wrapper]{position:relative;overflow:visible}@media only screen and (min-width:1200px){[data-tooltip-wrapper]:hover .consonant-Tooltip{z-index:6000000;animation-name:fade-in-up;animation-duration:.3s;animation-delay:.2s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}}.consonant-Tooltip{position:absolute;display:none;width:160px;padding:7px 14px;bottom:calc(100% + 9px);left:-72px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1rem;font-weight:400;color:#fff;font-style:normal;word-break:break-word;text-align:center;text-decoration:none;border-radius:8px;background-color:#747474;z-index:-1;user-select:text;opacity:0}.consonant-Tooltip:after{content:"";position:absolute;width:6px;height:6px;bottom:-3px;left:0;right:0;margin:auto;background-color:#747474;transform-origin:50% 50%;transform:rotate(45deg)}@media only screen and (min-width:1200px){.consonant-Tooltip{display:block}}.consonant-SearchResult{background-color:rgba(250,124,19,.4)}.consonant-Bookmarks{position:relative;padding:19px 16px;background-color:transparent;order:1;border:0;outline:0;border-top:1px solid #eaeaea}.consonant-Bookmarks+div:last-child{margin-top:0}.consonant-Bookmarks-itemBadge{display:block;position:absolute;min-width:24px;max-width:100px;height:24px;margin:auto;padding:5px 7px;top:0;bottom:0;right:16px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:.875rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:15px;background-color:#1473e6;z-index:1;opacity:1;border:0;outline:0;transition:opacity .3s ease-in-out;transition-delay:.1s;overflow:hidden}.consonant-Bookmarks-icoWrapper{display:flex;justify-content:flex-start;align-items:center;padding:0;background-color:transparent;border:0;outline:0}.consonant-Bookmarks-icoWrapper .consonant-Bookmarks-ico{display:block;min-width:16px;height:16px;margin-right:6px;background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNSAxMyc+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmU7c3Ryb2tlOiM3MDcwNzB9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9J2Nscy0xJyBkPSdNMTAuNjguNUE0IDQgMCAwIDAgNy41IDIuNDEgNCA0IDAgMCAwIDQuMzIuNSAzLjgyIDMuODIgMCAwIDAgLjUgNC4zMmMwIDMuNjUgNyA4LjI3IDcgOC4yN3M3LTQuNTggNy04LjI3QTMuODIgMy44MiAwIDAgMCAxMC42OC41eicvPjwvc3ZnPg==") no-repeat 50% 50%;background-size:contain}.consonant-Bookmarks-title{display:block;padding-right:55px;padding-bottom:1px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:700;color:#505050;font-style:normal;word-break:break-word;text-align:left;transition:color .3s ease-in-out}.consonant-Bookmarks.is-selected .consonant-Bookmarks-ico{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNSAxMyc+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMxNDkyZTY7c3Ryb2tlOiMxNDkyZTZ9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9J2Nscy0xJyBkPSdNMTAuNjguNUE0IDQgMCAwIDAgNy41IDIuNDEgNCA0IDAgMCAwIDQuMzIuNSAzLjgyIDMuODIgMCAwIDAgLjUgNC4zMmMwIDMuNjUgNyA4LjI3IDcgOC4yN3M3LTQuNTggNy04LjI3QTMuODIgMy44MiAwIDAgMCAxMC42OC41eicvPjwvc3ZnPg==")}@media only screen and (min-width:1200px){.consonant-Bookmarks{position:relative;display:flex;margin-top:-1px;padding:14px 0;border:2px solid transparent;order:0}.consonant-Bookmarks:focus{border-color:#1492e6}.consonant-Bookmarks:after{content:"";position:absolute;display:block;height:1px;width:100%;left:0;top:0;background-color:#eaeaea;z-index:1}.consonant-Bookmarks-itemBadge{right:30px;font-size:.875rem;line-height:.875rem}.consonant-Bookmarks-itemBadge:active,.consonant-Bookmarks-itemBadge:hover{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:.875rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:center}.consonant-Bookmarks-title:hover{color:#707070}}.consonant-SearchIco{display:flex;justify-content:center;align-items:center;box-sizing:border-box;align-self:stretch;height:32px;padding-left:20px;padding-right:20px;border:0;outline:0;background-color:transparent;transition:background-color .15s ease-in-out;font-size:0;line-height:0}.consonant-SearchIco:active,.consonant-SearchIco:hover{background-color:hsla(0,0%,92%,.3)}.consonant-SearchIco span{display:block;width:15px;height:15px;background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNScgaGVpZ2h0PScxNScgdmlld0JveD0nMCAwIDE1IDE1Jz48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmYxM2RjO29wYWNpdHk6MH0uYntmaWxsOiM1MDUwNTB9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9J2EnIGQ9J00wIDBoMTV2MTVIMHonLz48cGF0aCBjbGFzcz0nYicgZD0nTTEzLjUyNyAxMi40MzVMMTAuMzggOS4yODlhNS4xOTIgNS4xOTIgMCAxIDAtMS4yIDEuMmwzLjE0NiAzLjE0NmEuODUuODUgMCAwIDAgMS4yLTEuMnptLTExLTYuMTU5QTMuNjQzIDMuNjQzIDAgMSAxIDYuMTcgOS45MmEzLjY0MyAzLjY0MyAwIDAgMS0zLjY0My0zLjY0NHonLz48L3N2Zz4=") no-repeat 0 0;background-size:contain}@media only screen and (min-width:1200px){.consonant-SearchIco{padding-left:18px;padding-right:18px;border:2px solid transparent}.consonant-SearchIco:focus{border-color:#1492e6}}.consonant-NoResultsView{max-width:86%;margin-left:auto;margin-right:auto;margin-bottom:20px;padding:24px;overflow:hidden}.consonant-NoResultsView-title{display:block;margin-bottom:20px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1.125rem;line-height:1.6875rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:center}.consonant-NoResultsView-description{text-align:center}.consonant-NoResultsView-description *{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:center}.consonant-NoResultsView-description strong{font-weight:700}.consonant-NoResultsView--withLightText .consonant-NoResultsView-description *,.consonant-NoResultsView--withLightText .consonant-NoResultsView-title{color:#fff}.consonant-Wrapper--carousel{display:flex;justify-content:center}.consonant-Wrapper--carousel .consonant-Wrapper-inner{max-width:1200px;width:83.4%}@media only screen and (max-width:1199px){.consonant-Wrapper--carousel .consonant-Wrapper-inner{padding:0;width:100%}}@media only screen and (max-width:599px){.consonant-Wrapper--carousel .consonant-Wrapper-inner{padding:0;max-width:100%;width:100%}}.consonant-Wrapper--carousel .consonant-Wrapper-collection{min-height:100%;min-width:100%}.consonant-Wrapper--carousel .consonant-Wrapper-collection.is-loading{min-height:496px}.consonant-Wrapper--carousel .consonant-Container--carousel{min-width:100%;padding:8px 0;overflow-x:scroll;scroll-behavior:smooth}@media screen and (min-width:1200px){.consonant-Wrapper--carousel .consonant-Container--carousel{overflow:-moz-scrollbars-none;-ms-overflow-style:none}.consonant-Wrapper--carousel .consonant-Container--carousel::-webkit-scrollbar{height:0!important}}@media only screen and (max-width:1199px){.consonant-Wrapper--carousel .consonant-Container--carousel{padding-left:24px;padding-right:0}}@media only screen and (max-width:599px){.consonant-Wrapper--carousel .consonant-Container--carousel{overflow:auto;padding-bottom:24px;padding-left:8px}}.consonant-Wrapper--carousel .consonant-CarouselInfo{display:flex;padding-left:16px;justify-content:space-between}@media screen and (min-width:600px) and (max-width:1199px){.consonant-Wrapper--carousel .consonant-CarouselInfo{padding-left:32px}}.consonant-Wrapper--carousel .consonant-CarouselInfo-collectionTitle{margin:0;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1.125rem;line-height:1.375rem;font-weight:700;color:#2c2c2c;font-style:normal;word-break:break-word;text-align:left}.consonant-Wrapper--carousel .consonant-CarouselInfo-collectionTitle--withLightText{color:#fff}.consonant-Wrapper--carousel .consonant-CarouselInfo-results{display:block;margin-left:auto;padding-left:12px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:right}.consonant-Wrapper--carousel .consonant-CarouselInfo-results strong{font-weight:700}.consonant-Wrapper--carousel .consonant-CarouselInfo-results--withLightText{color:#eaeaea}.consonant-Wrapper--carousel .consonant-CardsGrid{grid-auto-flow:column;justify-content:flex-start;padding:8px 0;width:100%}@media only screen and (max-width:599px){.consonant-Wrapper--carousel .consonant-CardsGrid{width:1200px}}.consonant-Wrapper--carousel .consonant-CardsGrid:after{display:block;content:"";height:100%;margin-left:-16px}.consonant-Wrapper--carousel .consonant-CardsGrid--2up{grid-template-columns:repeat(auto-fill,minmax(500px,500px))}.consonant-Wrapper--carousel .consonant-CardsGrid--2up .consonant-Card{min-width:500px}.consonant-Wrapper--carousel .consonant-CardsGrid--2up:after{width:1px}@media only screen and (max-width:599px){.consonant-Wrapper--carousel .consonant-CardsGrid--2up{grid-template-columns:repeat(auto-fit,clamp(300px,90vw,500px))}.consonant-Wrapper--carousel .consonant-CardsGrid--2up .consonant-Card{min-width:300px;width:clamp(300px,90vw,500px)}.consonant-Wrapper--carousel .consonant-CardsGrid--2up:after{padding:0;width:1px}}.consonant-Wrapper--carousel .consonant-CardsGrid--3up{grid-template-columns:repeat(auto-fill,minmax(378px,378.5px))}.consonant-Wrapper--carousel .consonant-CardsGrid--3up .consonant-Card{min-width:378.5px}.consonant-Wrapper--carousel .consonant-CardsGrid--3up:after{width:1px}@media only screen and (max-width:599px){.consonant-Wrapper--carousel .consonant-CardsGrid--3up{grid-template-columns:repeat(auto-fit,clamp(300px,90vw,378px))}.consonant-Wrapper--carousel .consonant-CardsGrid--3up .consonant-Card{min-width:300px;width:clamp(300px,90vw,378px)}.consonant-Wrapper--carousel .consonant-CardsGrid--3up:after{padding:0;width:1px}}.consonant-Wrapper--carousel .consonant-CardsGrid--4up{grid-template-columns:repeat(auto-fill,minmax(276px,276px))}.consonant-Wrapper--carousel .consonant-CardsGrid--4up .consonant-Card{min-width:276px}.consonant-Wrapper--carousel .consonant-CardsGrid--4up:after{width:1px}@media only screen and (max-width:599px){.consonant-Wrapper--carousel .consonant-CardsGrid--4up{grid-template-columns:repeat(auto-fit,minmax(276px,max-content))}.consonant-Wrapper--carousel .consonant-CardsGrid--4up:after{padding:0;width:1px}}.consonant-Wrapper--carousel .consonant-CardsGrid--5up{grid-template-columns:repeat(auto-fill,minmax(228px,228px))}.consonant-Wrapper--carousel .consonant-CardsGrid--5up .consonant-Card{min-width:228px}.consonant-Wrapper--carousel .consonant-CardsGrid--5up:after{width:1px}@media only screen and (max-width:599px){.consonant-Wrapper--carousel .consonant-CardsGrid--5up{grid-template-columns:repeat(auto-fit,minmax(225px,max-content))}.consonant-Wrapper--carousel .consonant-CardsGrid--5up .consonant-Card{min-width:225px}.consonant-Wrapper--carousel .consonant-CardsGrid--5up:after{padding:0;width:1px}}@media screen and (max-width:599px){.consonant-Wrapper--carousel .consonant-CardsGrid--with4xGutter{padding-left:8px}}.consonant-Wrapper--carousel .consonant-Navigation--carousel{display:none}@media screen and (min-width:600px){.consonant-Wrapper--carousel .consonant-Navigation--carousel{display:block}}.consonant-Wrapper--carousel .consonant-Navigation--carousel button{background:#efefef;border-radius:100%;display:block;height:34px;outline:none;position:absolute;right:0;top:50%;transform:translate(50%,-50%);animation:carousel-fade-button 1s;transition:all .3s ease;width:34px;z-index:5}@media only screen and (max-width:1199px){.consonant-Wrapper--carousel .consonant-Navigation--carousel button{margin-right:36px}}.consonant-Wrapper--carousel .consonant-Navigation--carousel button.consonant-Button--previous{left:0;right:auto;transform:translate(-50%,-50%) rotate(180deg)}.consonant-Wrapper--carousel .consonant-Navigation--carousel button:after,.consonant-Wrapper--carousel .consonant-Navigation--carousel button:before{background-color:#505050;border-bottom-left-radius:25% 60%;border-bottom-right-radius:25% 60%;border-top-left-radius:25% 60%;border-top-right-radius:25%;content:"";display:block;height:3px;left:17px;position:absolute;top:14px;transform-origin:left center;transform:rotate(45deg) translate(-50%,-50%);width:11px;z-index:1}.consonant-Wrapper--carousel .consonant-Navigation--carousel button:after{border-bottom-left-radius:25% 60%;border-bottom-right-radius:25%;border-top-left-radius:25% 60%;border-top-right-radius:25% 60%;top:18px;transform:rotate(-45deg) translate(-50%,50%)}.consonant-Wrapper--carousel .consonant-Navigation--carousel button:hover:after,.consonant-Wrapper--carousel .consonant-Navigation--carousel button:hover:before{background-color:#000}.modalContainer .modal.stuck-above-footer{bottom:0;position:absolute;width:100%}.modalContainer .modal.stuck-above-footer .dexter-Modal_overlay{position:absolute}.dexter-Modal_overlay{display:flex;opacity:0;position:fixed;transition:opacity 125ms ease-in-out,background-color 125ms ease-in-out,backdrop-filter 125ms ease-in-out,-webkit-backdrop-filter 125ms ease-in-out,transform 125ms ease-in-out;visibility:hidden}.dexter-Modal_overlay.is-Open{align-items:center;background:none;bottom:0;justify-content:center;left:0;opacity:1;right:0;top:0;visibility:visible}.dexter-Modal_overlay.closePlacement-outsideTopRight{padding:5.125rem 2.625rem 2.625rem}.dexter-Modal_overlay.closePlacement-outsideTopRight .dexter-CloseButton{right:-2.0625rem;top:-2.0625rem}.dexter-Modal_overlay[data-conf-display*=onPageLoad],.dexter-Modal_overlay[data-conf-preset*=NoClose]{pointer-events:none;z-index:110}.dexter-Modal_overlay[data-conf-display*=onHashChange]:not([data-conf-preset*=NoClose]){background-color:rgba(0,0,0,.9);pointer-events:all;z-index:200}.dexter-Modal_overlay[data-conf-preset*=NoClose] .dexter-Modal{display:block;opacity:1;visibility:visible}.dexter-Modal_overlay[data-conf-preset*=NoClose] .dexter-CloseButton{display:none}.dexter-Modal_overlay.mobile-place-top{align-items:flex-start}.dexter-Modal_overlay.mobile-place-middle{align-items:center}.dexter-Modal_overlay.mobile-place-bottom,.dexter-Modal_overlay[data-conf-preset*=stickyBottom]{align-items:flex-end}@media only screen and (min-width:37.5rem){.dexter-Modal_overlay.tablet-place-top{align-items:flex-start}.dexter-Modal_overlay.tablet-place-middle{align-items:center}.dexter-Modal_overlay.tablet-place-bottom,.dexter-Modal_overlay[data-conf-preset*=stickyBottom]{align-items:flex-end}.dexter-Modal_overlay.tablet-place-left{justify-content:flex-start}.dexter-Modal_overlay.tablet-place-center{justify-content:center}.dexter-Modal_overlay.tablet-place-right{justify-content:flex-end}}@media only screen and (min-width:75rem){.dexter-Modal_overlay.closePlacement-outsideTopRight{padding-top:7.625rem}.dexter-Modal_overlay.desktop-place-top{align-items:flex-start}.dexter-Modal_overlay.desktop-place-middle{align-items:center}.dexter-Modal_overlay.desktop-place-bottom,.dexter-Modal_overlay[data-conf-preset*=stickyBottom]{align-items:flex-end}.dexter-Modal_overlay.desktop-place-left{justify-content:flex-start}.dexter-Modal_overlay.desktop-place-center{justify-content:center}.dexter-Modal_overlay.desktop-place-right{justify-content:flex-end}}.dexter-Modal{display:none;opacity:0;pointer-events:all;visibility:hidden;width:100%}.dexter-Modal:focus{outline:none}.dexter-Modal.is-Open{background:#fff;display:block;opacity:1;position:relative;visibility:visible}.dexter-Modal.mobile-height-100{height:100%}.dexter-Modal.mobile-height-auto,[data-conf-preset*=stickyBottom] .dexter-Modal{height:auto}.dexter-Modal.mobile-height-auto>.aem-Grid,[data-conf-preset*=stickyBottom] .dexter-Modal>.aem-Grid{max-height:calc(100vh - 150px);overflow-x:hidden;overflow-y:auto}.dexter-Modal.drop-shadow{box-shadow:0 .5em 1em -.125em hsla(0,0%,4%,.1),0 0 0 1px hsla(0,0%,4%,.02)}.dexter-Modal .dexter-CloseButton{border:3px solid transparent;border-radius:50%;height:24px;position:absolute;right:5px;top:5px;width:24px;z-index:1}.dexter-Modal .dexter-CloseButton.focus-ring{outline:3px solid #1473e6}.dexter-Modal .dexter-CloseButton .dexter-CloseButton_icon:after{content:"";height:44px;left:-13px;position:absolute;top:-13px;width:44px}.dexter-Modal .dexter-CloseButton .dexter-CloseButton_icon.spectrum-close-circle-light:after{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NCIgaGVpZ2h0PSI0NCI+PHBhdGggZD0iTTI5IDE1YTEwIDEwIDAgMSAwIDAgMTQuMTJBMTAgMTAgMCAwIDAgMjkgMTVabS0zLjExIDExLjc0YS41LjUgMCAwIDEtLjcxIDBMMjIgMjMuNTZsLTMuMTggMy4xOGEuNS41IDAgMCAxLS43MSAwbC0uODUtLjg1YS41LjUgMCAwIDEgMC0uNzFMMjAuNDQgMjJsLTMuMTgtMy4xOGEuNS41IDAgMCAxIDAtLjcxbC44NS0uODVhLjUuNSAwIDAgMSAuNzEgMEwyMiAyMC40NGwzLjE4LTMuMThhLjUuNSAwIDAgMSAuNzEgMGwuODUuODVhLjUuNSAwIDAgMSAwIC43MUwyMy41NSAyMmwzLjE4IDMuMThhLjUuNSAwIDAgMSAwIC43MVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=")}.dexter-Modal .dexter-CloseButton .dexter-CloseButton_icon.spectrum-close-circle-dark:after{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NCIgaGVpZ2h0PSI0NCI+PHBhdGggZD0iTTI5IDE1YTEwIDEwIDAgMSAwIDAgMTQuMTJBMTAgMTAgMCAwIDAgMjkgMTVabS0zLjExIDExLjc0YS41LjUgMCAwIDEtLjcxIDBMMjIgMjMuNTZsLTMuMTggMy4xOGEuNS41IDAgMCAxLS43MSAwbC0uODUtLjg1YS41LjUgMCAwIDEgMC0uNzFMMjAuNDQgMjJsLTMuMTgtMy4xOGEuNS41IDAgMCAxIDAtLjcxbC44NS0uODVhLjUuNSAwIDAgMSAuNzEgMEwyMiAyMC40NGwzLjE4LTMuMThhLjUuNSAwIDAgMSAuNzEgMGwuODUuODVhLjUuNSAwIDAgMSAwIC43MUwyMy41NSAyMmwzLjE4IDMuMThhLjUuNSAwIDAgMSAwIC43MVoiIGZpbGw9IiM3MDcwNzAiLz48L3N2Zz4=")}.dexter-Modal .aem-Grid{height:100%;overflow:auto}.dexter-Modal .aem-Grid.focus-ring,.dexter-Modal .aem-Grid:focus{outline:none}@media only screen and (min-width:37.5rem){.dexter-Modal.tablet-width-100{width:100%}.dexter-Modal.tablet-width-240{width:15rem}.dexter-Modal.tablet-width-360{width:22.5rem}.dexter-Modal.tablet-width-480{width:30rem}.dexter-Modal.tablet-width-640{width:40rem}.dexter-Modal.tablet-height-100{height:100%;top:0}.dexter-Modal.tablet-height-240{height:15rem}.dexter-Modal.tablet-height-360{height:22.5rem}.dexter-Modal.tablet-height-480{height:30rem}.dexter-Modal.tablet-height-640{height:40rem}.dexter-Modal.tablet-height-auto,[data-conf-preset*=stickyBottom] .dexter-Modal{height:auto}.dexter-Modal.tablet-height-auto>.aem-Grid,[data-conf-preset*=stickyBottom] .dexter-Modal>.aem-Grid{max-height:calc(100vh - 60px);overflow-x:hidden;overflow-y:auto}}@media only screen and (max-device-width:56.1875rem) and (orientation:landscape){.dexter-Modal.tablet-height-auto#languageNavigation{height:100%}}@media only screen and (min-width:75rem){.dexter-Modal.desktop-width-100{width:100%}.dexter-Modal.desktop-width-240{width:15rem}.dexter-Modal.desktop-width-360{width:22.5rem}.dexter-Modal.desktop-width-480{width:30rem}.dexter-Modal.desktop-width-640{width:40rem}.dexter-Modal.desktop-width-1024{width:64rem}.dexter-Modal.desktop-height-100{height:100%;top:0}.dexter-Modal.desktop-height-240{height:15rem}.dexter-Modal.desktop-height-360{height:22.5rem}.dexter-Modal.desktop-height-480{height:30rem}.dexter-Modal.desktop-height-640{height:40rem}.dexter-Modal.desktop-height-1024{height:64rem}.dexter-Modal.desktop-height-auto,.dexter-Modal.mobile-height-auto,.dexter-Modal.tablet-height-auto,[data-conf-preset*=stickyBottom] .dexter-Modal{height:auto}.dexter-Modal.desktop-height-auto>.aem-Grid,.dexter-Modal.mobile-height-auto>.aem-Grid,.dexter-Modal.tablet-height-auto>.aem-Grid,[data-conf-preset*=stickyBottom] .dexter-Modal>.aem-Grid{max-height:100vh;overflow-x:hidden;overflow-y:auto}}.consonant-TopFilters{display:block;margin:0 auto;padding-bottom:16px}.consonant-TopFilters-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;max-width:100%}.consonant-TopFilters-filters:last-child>div:last-child{margin-right:0}.consonant-TopFilters-inner>:not(.consonant-TopFilters-filtersWrapper):first-child{margin-left:auto;margin-right:0}.consonant-TopFilters-searchWrapper{display:block;order:-2}.consonant-TopFilters-filtersWrapper{display:flex;justify-content:flex-end;align-items:flex-start;flex-grow:1;max-width:calc(100% - 140px * .85 - 8px)}.consonant-TopFilters-filtersWrapper:first-child{max-width:100%;justify-content:flex-start}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.consonant-TopFilters-filtersWrapper{flex-basis:100%}}.consonant-TopFilters-filtersWrapper+*{margin-left:auto}.consonant-TopFilters-filters{display:flex;justify-content:flex-start;align-items:stretch;margin-right:16px;overflow-y:auto}.consonant-TopFilters-filters:last-child{margin-right:0}.consonant-TopFilters-filters>div h3 button{white-space:nowrap}.consonant-TopFilters-filters.consonant-TopFilters-filters--truncated>div h3 button{white-space:nowrap}.consonant-TopFilters-moreBtn{margin-bottom:8px;padding:5px 12px 6px;font-size:.875rem;line-height:1.1875rem;font-weight:700;color:#505050;text-align:center;text-transform:capitalize;background-color:#fff;border:1px solid #eaeaea;border-radius:16px;outline:0}.consonant-TopFilters-moreBtn,.consonant-TopFilters-title{display:none;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-style:normal;word-break:break-word;user-select:none;white-space:nowrap}.consonant-TopFilters-title{margin-right:12px;min-width:55px;max-width:20%;text-overflow:ellipsis;overflow:hidden;font-size:1rem;line-height:2rem;font-weight:600;color:#2c2c2c;text-align:left}.consonant-TopFilters-clearBtnWrapper{position:sticky;display:flex;justify-content:center;align-items:center;right:0;min-height:32px;max-width:40%}.consonant-TopFilters-clearBtnWrapper:empty{margin-left:-16px;overflow:visible}.consonant-TopFilters-clearBtnWrapper--withBlur:after{content:"";position:absolute;width:56px;height:100%;background:transparent linear-gradient(270deg,#fff,hsla(0,0%,100%,0)) 0 0 no-repeat padding-box;top:0;bottom:0;right:100%;margin:auto;z-index:2;pointer-events:none}.consonant-TopFilters-clearBtn{padding:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:2rem;font-weight:700;color:#1473e6;font-style:normal;word-break:break-word;text-align:right;background-color:transparent}.consonant-TopFilters-clearBtn:focus{outline:0}@media only screen and (min-width:1200px){.consonant-TopFilters-clearBtn:focus{outline:2px solid #1492e6}}.consonant-TopFilters-selectWrapper{display:flex;justify-content:flex-end;width:119px;margin-right:8px;order:-1;overflow:visible}.consonant-TopFilters-selectWrapper:only-child{margin-left:auto;margin-right:0}.consonant-TopFilters-searchIcoWrapper{display:none}.consonant-TopFilters-infoWrapper{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;width:100%;padding-top:16px}.consonant-TopFilters-infoWrapper:only-child{padding-top:0}.consonant-TopFilters-collectionTitle{margin:0;font-size:1.125rem;line-height:1.375rem;font-weight:700;color:#2c2c2c;text-align:left}.consonant-TopFilters-collectionTitle,.consonant-TopFilters-results{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-style:normal;word-break:break-word}.consonant-TopFilters-results{display:block;margin-left:auto;padding-left:12px;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#505050;text-align:right}.consonant-TopFilters-results strong{font-weight:700}.consonant-TopFilters--withLightText .consonant-TopFilters-collectionTitle,.consonant-TopFilters--withLightText .consonant-TopFilters-results,.consonant-TopFilters--withLightText .consonant-TopFilters-title{color:#fff}.consonant-TopFilters:empty{display:none}@media only screen and (min-width:768px){.consonant-TopFilters{padding-bottom:32px}.consonant-TopFilters-filtersWrapper{max-width:60%;justify-content:flex-start;margin-right:16px}.consonant-TopFilters-title{display:block}.consonant-TopFilters-filters{align-items:flex-start;flex-wrap:wrap;overflow:hidden}.consonant-TopFilters-filters--truncated{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto}.consonant-TopFilters-filters--truncated .consonant-TopFilters-filters-moreBtn{display:block;min-width:120px;margin-right:24px}.consonant-TopFilters-filters--truncated>div:nth-child(n+4){display:none}.consonant-TopFilters-filters>div h3 button{white-space:normal}.consonant-TopFilters-clearBtnWrapper:after{display:none}.consonant-TopFilters-moreBtn{display:block;min-width:auto}.consonant-TopFilters-selectWrapper{max-width:140px;order:0;margin-right:0}.consonant-TopFilters-searchIcoWrapper{position:relative;display:flex;justify-content:center;align-items:center;min-width:55px;min-height:24px}.consonant-TopFilters-searchIcoWrapper>div{position:relative;width:268px;top:0;right:20px;z-index:3;margin-bottom:-20px}.consonant-TopFilters-searchIcoWrapper:only-child>div{right:0}.consonant-TopFilters-searchIcoWrapper>div+button{display:none;margin:0;padding:0}}@media only screen and (min-width:1200px){.consonant-TopFilters-searchIcoWrapper label>span:first-child{display:none}.consonant-TopFilters-selectWrapper{min-width:auto;max-width:160px;margin-right:0;margin-left:0}.consonant-TopFilters-selectWrapper>div:first-child>button{padding-left:12px;padding-right:12px;border:1px solid #eaeaea;border-radius:4px}.consonant-TopFilters-selectWrapper>div:first-child:after{right:12px}.consonant-TopFilters-filters{overflow:visible}.consonant-TopFilters-filters.consonant-TopFilters-filters--truncated{justify-content:flex-start;flex-wrap:wrap;overflow:visible}.consonant-TopFilters-filters.consonant-TopFilters-filters--truncated>div:last-child{margin-right:0}.consonant-TopFilters .is-opened{margin-bottom:8px}}.consonant-TopFilter{position:relative;margin-right:8px;margin-bottom:8px;cursor:pointer;user-select:none;border:0;outline:0}.consonant-TopFilter:after{content:"";position:absolute;top:0;bottom:0;right:8px;margin:auto;width:4px;height:4px;border:1px solid #747474;transform:rotate(-45deg) translate3d(1px,-2px,0);border-top:0;border-right:0;pointer-events:none}.consonant-TopFilter-inner{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;width:100%;max-width:100%;max-height:90vh;background-color:transparent;border-radius:5px}.consonant-TopFilter-selectedItems,.consonant-TopFilter-selectedItems ul~.consonant-TopFilter-footer{display:none}.consonant-TopFilter-name{display:flex;align-items:center;margin:2px 0}.consonant-TopFilter-link{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:100%;padding:5px 17px 6px 12px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.1875rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:left;text-transform:capitalize;text-decoration:none;border:1px solid #eaeaea;border-radius:4px;background-color:#fff;outline:0;cursor:pointer}.consonant-TopFilter-link:focus{outline:0}@media only screen and (min-width:1200px){.consonant-TopFilter-link:focus{outline:2px solid #1492e6}}.consonant-TopFilter-selectedItemsQty{display:block;position:relative;margin:0 0 0 9px;padding:0 6px;overflow:visible;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.1875rem;font-weight:400;color:#323232;font-style:normal;word-break:break-word;text-align:left}.consonant-TopFilter-selectedItemsQty:after{content:"";position:absolute;width:1px;height:calc(100% + 4px + 3px);left:0;top:-4px;background-color:#eaeaea}.consonant-TopFilter-selectedItemsQty:empty{display:none}.consonant-TopFilter-items{display:block;height:50vh;margin:auto 0 0;padding:0;list-style-type:none;border-top:1px solid #eaeaea;overflow-y:auto;cursor:default}.consonant-TopFilter-items--clipped{padding-bottom:32px}.consonant-TopFilter-bg{position:relative;display:none;overflow:visible}.consonant-TopFilter-bg:after{content:"";position:absolute;width:100%;max-width:100%;height:20px;left:0;right:0;bottom:100%;background:transparent linear-gradient(180deg,hsla(0,0%,100%,.3),#fff) no-repeat 0 0;z-index:1;pointer-events:none}.consonant-TopFilter-items.consonant-TopFilter-items--clipped+aside{display:block}.consonant-TopFilter-item{display:flex;align-items:baseline;transition:background-color .3s ease-in-out}.consonant-TopFilter-item:hover{background-color:#f4f4f4}.consonant-TopFilter-itemLabel{position:relative;display:flex;align-items:center;width:100%;max-width:100%;padding:8px 20px 6px;cursor:pointer}.consonant-TopFilter-itemLabel:focus{outline:0}@media only screen and (min-width:1200px){.consonant-TopFilter-itemLabel:focus{outline:2px solid #1492e6}}.consonant-TopFilter input[type=checkbox]{width:0;height:0;max-width:0;max-height:0;margin:0;padding:0;opacity:0;border:0;outline:0}input[type=checkbox]:checked+.consonant-TopFilter-itemCheckmark{background-color:#2680eb;border-color:#2680eb}input[type=checkbox]:checked+.consonant-TopFilter-itemCheckmark:after{display:block}.consonant-TopFilter-itemCheckmark{position:relative;display:block;min-width:14px;width:14px;height:14px;margin-right:10px;border:2px solid #959595;border-radius:3px;transition:border-color .3s ease-in-out,background-color .3s ease-in-out;pointer-events:none}.consonant-TopFilter-itemCheckmark:after{display:none;content:"";position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;width:8px;height:4px;border:2px solid #fff;border-top:0;border-right:0;border-radius:2px;transform:rotate(-45deg) translate3d(1px,0,0)}.consonant-TopFilter-itemName{padding-bottom:1px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.1875rem;font-weight:400;color:#505050;font-style:normal;text-align:left;text-transform:capitalize;word-break:break-word;pointer-events:none}.consonant-TopFilter-footer{margin-top:auto;align-items:center;padding:16px;border-top:1px solid #eaeaea}.consonant-TopFilter-footerResQty{margin-right:auto;color:#505050;text-transform:capitalize}.consonant-TopFilter-footerClearBtn,.consonant-TopFilter-footerResQty{display:block;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:700;font-style:normal;word-break:break-word;text-align:left}.consonant-TopFilter-footerClearBtn{margin-right:17px;padding:0;color:#1473e6;background-color:transparent;border:0;outline:0}.consonant-TopFilter-footerClearBtn:focus{outline:0}@media only screen and (min-width:1200px){.consonant-TopFilter-footerClearBtn:focus{outline:2px solid #1492e6}}.consonant-TopFilter-footerClearBtn+.consonant-TopFilter-footerBtn{margin-left:0}.consonant-TopFilter-footerBtn{min-width:71px;margin-left:auto;padding:8px 16px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:center;text-transform:capitalize;background-color:#1473e6;border-radius:20px;border:0;outline:0}.consonant-TopFilter-footerBtn:focus{outline:0}@media only screen and (min-width:1200px){.consonant-TopFilter-footerBtn:focus{outline:2px solid #1492e6}}.consonant-TopFilter.is-selected:not(.is-opened):after{display:none}.consonant-TopFilter.is-selected:not(.is-opened)>.consonant-TopFilter-inner{background-color:#f4f4f4}.consonant-TopFilter.is-selected:not(.is-opened) .consonant-TopFilter-link{border-color:#505050;padding-right:0;color:#323232;background-color:#f4f4f4}.consonant-TopFilter.is-opened{position:fixed;display:flex;justify-content:center;align-items:center;width:100%;max-width:100%;padding-left:20px;padding-right:20px;top:0;bottom:0;left:0;right:0;margin:auto;z-index:4;background-color:rgba(80,80,80,.8)}.consonant-TopFilter.is-opened:after{display:none}.consonant-TopFilter.is-opened .consonant-TopFilter-inner{position:relative;box-shadow:0 3px 15px rgba(80,80,80,.8);border:1px solid #eaeaea;border-radius:4px;background-color:#fff}.consonant-TopFilter.is-opened .consonant-TopFilter-inner:after{content:"";position:absolute;display:block;width:100%;max-width:100%;height:33px;bottom:65px;left:0;right:0;background:transparent linear-gradient(180deg,hsla(0,0%,100%,.5),#fff) no-repeat 0 0;z-index:1;pointer-events:none}.consonant-TopFilter.is-opened .consonant-TopFilter-selectedItems ul~.consonant-TopFilter-footer{display:flex}.consonant-TopFilter.is-opened .consonant-TopFilter-selectedItems{display:block}.consonant-TopFilter.is-opened .consonant-TopFilter-selectedItemsQty{display:none}.consonant-TopFilter.is-opened .consonant-TopFilter-link{padding-top:17px;padding-bottom:17px;padding-right:36px;border-bottom:0;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.1875rem;font-weight:700;color:#505050;font-style:normal;word-break:break-word;text-align:left;text-transform:capitalize;text-decoration:none;cursor:pointer}@media only screen and (min-width:768px){.consonant-TopFilter{max-width:100%}.consonant-TopFilter.is-opened .consonant-TopFilter-inner{max-width:70vw;margin-left:auto;margin-right:auto}}@media only screen and (min-width:1200px){.consonant-TopFilter-items{min-height:0;max-height:295px;padding-top:12px;overflow-y:auto}.consonant-TopFilter-itemLabel{padding-left:24px;padding-right:24px}.consonant-TopFilter.is-opened{position:relative;width:auto;margin:0;padding:0;margin-right:8px;margin-bottom:8px;border-radius:4px;z-index:2;background-color:transparent}.consonant-TopFilter.is-opened:after{width:4px;height:4px;top:0;bottom:0;right:8px;margin:auto;border-color:#1473e6;border-width:1px;transform:rotate(-45deg) translate3d(1px,-2px,0);transition:border-color .3s ease-in-out}.consonant-TopFilter.is-opened .consonant-TopFilter-inner{position:static;box-shadow:none;border:0;background-color:transparent}.consonant-TopFilter.is-opened .consonant-TopFilter-inner:after{display:none}.consonant-TopFilter.is-opened .consonant-TopFilter-link{display:flex;justify-content:space-between;align-items:center;height:32px;padding:5px 17px 6px 12px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.1875rem;font-weight:400;color:#1473e6;font-style:normal;word-break:break-word;text-align:left;white-space:nowrap;border:1px solid #1473e6;border-radius:4px;transition:border-color .3s ease-in-out,color .3s ease-in-out}.consonant-TopFilter.is-opened input[type=checkbox]:focus+.consonant-TopFilter-itemCheckmark{outline:2px solid #1492e6}.consonant-TopFilter.is-opened .consonant-TopFilter-absoluteWrapper{position:absolute;display:block;left:0;top:40px;width:320px;max-height:360px;overflow-y:auto;border:1px solid #eaeaea;border-radius:4px;box-shadow:0 3px 15px rgba(80,80,80,.101);background-color:#fff;z-index:2;overflow:hidden}.consonant-TopFilter.is-opened .consonant-TopFilter-selectedItemsQty{padding:0;visibility:hidden;font-size:0}.consonant-TopFilter.is-opened .consonant-TopFilter-selectedItems ul~.consonant-TopFilter-footer{display:flex}}.consonant-LeftFilters{position:static;display:flex;flex-direction:column;width:100%;max-width:100%;top:0;bottom:0;left:0;right:0;background-color:#fff;overflow:visible;user-select:none}.consonant-LeftFilters>*,.consonant-LeftFilters>.consonant-Search{display:none}.consonant-LeftFilters-header{display:flex;justify-content:space-between;align-items:center;display:none;width:100%;max-width:100%;padding:14px 12px;border-bottom:1px solid #eaeaea}.consonant-LeftFilters-deskTitle{display:none;margin:0;max-width:70%;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.1875rem;font-weight:700;color:#2c2c2c;font-style:normal;word-break:break-word;text-align:left}.consonant-LeftFilters-mobTitle{display:flex;align-items:center}.consonant-LeftFilters-mobTitle span{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.1875rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:left}.consonant-LeftFilters-mobTitle span:focus{outline:1px solid #1492e6}.consonant-LeftFilters-mobBack{display:block;width:32px;height:32px;margin-right:13px;font-size:0;line-height:0;border:1px solid #eaeaea;border-radius:50%;background:#fff url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAxNCAxMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjk4OTkgNC4wMDAwNkgzLjQxMzg4TDUuNjk5ODggMS43MTcwNkM1Ljc5MjkyIDEuNjI0MDIgNS44NjY3MiAxLjUxMzU2IDUuOTE3MDggMS4zOTJDNS45Njc0MyAxLjI3MDQzIDUuOTkzMzUgMS4xNDAxNCA1Ljk5MzM1IDEuMDA4NTZDNS45OTMzNSAwLjg3Njk4MSA1Ljk2NzQzIDAuNzQ2Njg5IDUuOTE3MDggMC42MjUxMjVDNS44NjY3MiAwLjUwMzU2IDUuNzkyOTIgMC4zOTMxMDQgNS42OTk4OCAwLjMwMDA2MkM1LjYwNjg0IDAuMjA3MDIxIDUuNDk2MzggMC4xMzMyMTYgNS4zNzQ4MiAwLjA4Mjg2MjNDNS4yNTMyNSAwLjAzMjUwODUgNS4xMjI5NiAwLjAwNjU5MTggNC45OTEzOCAwLjAwNjU5MThDNC43MjU2NCAwLjAwNjU5MTggNC40NzA3OCAwLjExMjE1NiA0LjI4Mjg4IDAuMzAwMDYyTDAuMjk5ODc4IDQuMjkzMDZDMC4yMDY5MDIgNC4zODU5NCAwLjEzMzE0MyA0LjQ5NjIyIDAuMDgyODE4NyA0LjYxNzYyQzAuMDMyNDk0NCA0LjczOTAyIDAuMDA2NTkxOCA0Ljg2OTE1IDAuMDA2NTkxOCA1LjAwMDU2QzAuMDA2NTkxOCA1LjEzMTk4IDAuMDMyNDk0NCA1LjI2MjEgMC4wODI4MTg3IDUuMzgzNUMwLjEzMzE0MyA1LjUwNDkgMC4yMDY5MDIgNS42MTUxOSAwLjI5OTg3OCA1LjcwODA2TDQuMjgyODggOS43MDAwNkM0LjM3NTkyIDkuNzkzMSA0LjQ4NjM4IDkuODY2OTEgNC42MDc5NCA5LjkxNzI2QzQuNzI5NTEgOS45Njc2MiA0Ljg1OTggOS45OTM1MyA0Ljk5MTM4IDkuOTkzNTNDNS4xMjI5NiA5Ljk5MzUzIDUuMjUzMjUgOS45Njc2MiA1LjM3NDgyIDkuOTE3MjZDNS40OTYzOCA5Ljg2NjkxIDUuNjA2ODQgOS43OTMxIDUuNjk5ODggOS43MDAwNkM1Ljc5MjkyIDkuNjA3MDIgNS44NjY3MiA5LjQ5NjU2IDUuOTE3MDggOS4zNzVDNS45Njc0MyA5LjI1MzQzIDUuOTkzMzUgOS4xMjMxNCA1Ljk5MzM1IDguOTkxNTZDNS45OTMzNSA4Ljg1OTk4IDUuOTY3NDMgOC43Mjk2OSA1LjkxNzA4IDguNjA4MTJDNS44NjY3MiA4LjQ4NjU2IDUuNzkyOTIgOC4zNzYxIDUuNjk5ODggOC4yODMwNkwzLjQxMzg4IDYuMDAwMDZIMTIuOTg5OUMxMy4yNTUxIDYuMDAwMDYgMTMuNTA5NCA1Ljg5NDcgMTMuNjk3IDUuNzA3MTdDMTMuODg0NSA1LjUxOTYzIDEzLjk4OTkgNS4yNjUyOCAxMy45ODk5IDUuMDAwMDZDMTMuOTg5OSA0LjczNDg1IDEzLjg4NDUgNC40ODA0OSAxMy42OTcgNC4yOTI5NkMxMy41MDk0IDQuMTA1NDIgMTMuMjU1MSA0LjAwMDA2IDEyLjk4OTkgNC4wMDAwNloiIGZpbGw9IiM1MDUwNTAiLz4KPC9zdmc+Cg==") no-repeat 50% 50%;background-position:contain;outline:0}.consonant-LeftFilters-mobBack:focus{border-color:#1492e6}.consonant-LeftFilters-clearLink{display:none;padding:0;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:700;color:#bcbcbc;font-style:normal;word-break:break-word;text-align:left;text-transform:capitalize;background-color:transparent;outline:0}.consonant-LeftFilters-clearLink:focus{outline:0}@media only screen and (min-width:1200px){.consonant-LeftFilters-clearLink:focus{outline:2px solid #1492e6}}.consonant-LeftFilters-list{margin-bottom:auto;padding-left:16px;padding-right:16px;overflow-y:auto}.consonant-LeftFilters-mobileFooter{display:none;align-items:center;padding:16px;border-top:1px solid #eaeaea;order:2}.consonant-LeftFilters-mobileFooterTotalResQty{margin-right:auto;max-width:55%;color:#505050;text-transform:capitalize}.consonant-LeftFilters-mobileFooterClearBtn,.consonant-LeftFilters-mobileFooterTotalResQty{display:block;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:700;font-style:normal;word-break:break-word;text-align:left}.consonant-LeftFilters-mobileFooterClearBtn{margin-right:17px;padding:0;color:#1473e6;background-color:transparent;border:0;outline:0}.consonant-LeftFilters-mobileFooterClearBtn:focus{box-shadow:0 2px 0 0 #1492e6}.consonant-LeftFilters-mobileFooterClearBtn:first-child{margin-left:auto}.consonant-LeftFilters-mobileFooterClearBtn+.consonant-LeftFilters-mobileFooterBtn{margin-left:0}.consonant-LeftFilters-mobileFooterBtn{min-width:71px;margin-left:auto;padding:8px 16px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:center;text-transform:capitalize;background-color:#1473e6;border-radius:20px;border:0;outline:0;position:relative}.consonant-LeftFilters-mobileFooterBtn:focus:after{border-radius:18px;content:"";display:block;position:absolute;left:0;right:0;bottom:0;top:0;margin:-2px;transition:box-shadow .13s ease-out,margin .13s ease-out;box-shadow:0 0 0 2px #1492e6}.consonant-LeftFilters.is-opened{position:fixed;z-index:10000;display:flex}.consonant-LeftFilters.is-opened .consonant-LeftFilters-header,.consonant-LeftFilters.is-opened .consonant-LeftFilters-mobileFooter,.consonant-LeftFilters.is-opened>button{display:flex}.consonant-LeftFilters.is-opened .consonant-LeftFilters-list{display:block}.consonant-LeftFilters.is-opened .consonant-LeftFilters-itemName img{display:none;position:relative;top:4px}.consonant-LeftFilters-chosenFilters{position:relative;flex-wrap:wrap;justify-content:flex-start;align-items:center;margin-top:-16px;width:100%;max-width:100%;padding-bottom:8px;background-color:transparent}.consonant-LeftFilters-chosenFilters:empty{display:none}@media only screen and (min-width:1200px){.consonant-LeftFilters{width:204px;max-width:204px;margin-right:32px;padding:8px 16px 16px;border-radius:4px;overflow:visible}.consonant-LeftFilters-list{display:block;margin-bottom:0;padding:0;border-top:1px solid #eaeaea;overflow:hidden;z-index:1}.consonant-LeftFilters-mobTitle{display:none}.consonant-LeftFilters-header{display:flex;padding:0 0 24px;border-bottom:1px solid #eaeaea;order:-3}.consonant-LeftFilters-header+button:after{display:none}.consonant-LeftFilters-deskTitle{display:block}.consonant-LeftFilters>.consonant-Search{display:block;padding-top:13px;padding-bottom:32px}.consonant-LeftFilters>button{display:flex}.consonant-LeftFilters-clearLink{display:block;transition:color .3s ease-in-out}.consonant-LeftFilters-clearLink:active,.consonant-LeftFilters-clearLink:hover{color:#1473e6}.consonant-LeftFilters-chosenFilters{display:flex}}.consonant-LeftFilter{position:relative;border-bottom:1px solid #eaeaea;outline:0;cursor:pointer}.consonant-LeftFilter:after{content:"";position:absolute;right:16px;top:0;bottom:0;margin:auto;width:8px;height:8px;border:2px solid #d3d3d3;transform:rotate(-135deg);border-top:0;border-right:0;pointer-events:none}.consonant-LeftFilter:last-of-type{border-bottom:0}.consonant-LeftFilter-inner{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;width:100%;max-width:100%;max-height:90vh;background-color:#fff;border-radius:5px}.consonant-LeftFilter-name{display:flex;align-items:center;margin:0}.consonant-LeftFilter-name img{display:block;max-width:16px;height:auto;max-height:16px;margin-right:6px}.consonant-LeftFilter-link{display:block;width:100%;max-width:100%;padding-top:17px;padding-bottom:17px;padding-right:36px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.1875rem;font-weight:700;color:#505050;font-style:normal;word-break:break-word;text-align:left;text-transform:capitalize;text-decoration:none;background-color:transparent;outline:0;cursor:pointer;border:1px solid transparent}.consonant-LeftFilter-link:focus{border-color:#1492e6}.consonant-LeftFilter-selectedItemsQty{position:relative;display:block;margin-top:4px;padding-right:18px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:400;color:#959595;font-style:normal;word-break:break-word;text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.consonant-LeftFilter-selectedItemsQty:after{position:absolute;right:12px;content:attr(data-qty);font-weight:700;background-color:#fff}.consonant-LeftFilter-selectedItemsQty:empty{display:none}.consonant-LeftFilter-itemBadge{display:none;position:absolute;min-width:24px;max-width:100px;height:24px;padding:5px 7px;top:12px;right:30px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:.875rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:15px;background-color:#1473e6;z-index:1;opacity:1;border:0;outline:0;transition:opacity .3s ease-in-out;transition-delay:.1s;overflow:hidden}.consonant-LeftFilter-itemBadge:focus{outline:0}@media only screen and (min-width:1200px){.consonant-LeftFilter-itemBadge:focus{outline:2px solid #1492e6}}.consonant-LeftFilter-itemBadge:hover{font-size:0;line-height:0}.consonant-LeftFilter-itemBadge:after,.consonant-LeftFilter-itemBadge:before{content:"";position:absolute;width:10px;height:2px;top:0;bottom:0;left:0;right:0;margin:auto;background-color:#fff;z-index:1;opacity:0;transition:opacity .3s ease-in-out;transition-delay:.1s;transform:rotate(45deg)}.consonant-LeftFilter-itemBadge:after{transform:rotate(-45deg)}.consonant-LeftFilter-itemBadge:hover:after,.consonant-LeftFilter-itemBadge:hover:before{opacity:1}.consonant-LeftFilter-items{display:none;height:50vh;margin:auto 0 0;padding:0;list-style-type:none;border-top:1px solid #eaeaea;overflow-y:auto}.consonant-LeftFilter-itemsItem{display:flex;align-items:baseline;transition:background-color .3s ease-in-out}.consonant-LeftFilter-itemsItem:hover{background-color:#f4f4f4}.consonant-LeftFilter-itemsItem:nth-of-type(n+10):last-of-type{margin-bottom:32px}.consonant-LeftFilter-itemsItemLabel{position:relative;display:flex;align-items:center;width:100%;max-width:100%;padding:8px 20px 6px;cursor:pointer}.consonant-LeftFilter input[type=checkbox]{width:0;height:0;max-width:0;max-height:0;margin:0;padding:0;opacity:0;border:0;outline:0}input[type=checkbox]:checked+.consonant-LeftFilter-itemsItemCheckmark{background-color:#2680eb;border-color:#2680eb}input[type=checkbox]:checked+.consonant-LeftFilter-itemsItemCheckmark:after{display:block}input[type=checkbox]:focus+.consonant-LeftFilter-itemsItemCheckmark{border-color:#1492e6}.consonant-LeftFilter-itemsItemCheckmark{position:relative;display:block;min-width:14px;width:14px;height:14px;margin-right:10px;border:2px solid #959595;border-radius:3px;transition:border-color .3s ease-in-out,background-color .3s ease-in-out;pointer-events:none}.consonant-LeftFilter-itemsItemCheckmark:after{display:none;content:"";position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;width:8px;height:4px;border:2px solid #fff;border-top:0;border-right:0;border-radius:2px;transform:rotate(-45deg) translate3d(1px,0,0)}.consonant-LeftFilter-itemsItemName{padding-bottom:1px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.1875rem;font-weight:400;color:#505050;font-style:normal;text-align:left;word-break:break-word;pointer-events:none}.consonant-LeftFilter-footer{display:none;margin-top:auto;align-items:center;padding:16px;border-top:1px solid #eaeaea}.consonant-LeftFilter-footerResQty{margin-right:auto;color:#505050;text-transform:capitalize}.consonant-LeftFilter-footerClearBtn,.consonant-LeftFilter-footerResQty{display:block;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:700;font-style:normal;word-break:break-word;text-align:left}.consonant-LeftFilter-footerClearBtn{margin-right:17px;padding:0;color:#1473e6;background-color:transparent;border:0;outline:0}.consonant-LeftFilter-footerClearBtn:focus{box-shadow:0 2px 0 0 #1492e6}.consonant-LeftFilter-footerClearBtn+.consonant-LeftFilter-footerBtn{margin-left:0}.consonant-LeftFilter-footerBtn{min-width:71px;margin-left:auto;padding:8px 16px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:center;text-transform:capitalize;background-color:#1473e6;border-radius:20px;border:0;outline:0;position:relative}.consonant-LeftFilter-footerBtn:focus:after{border-radius:18px;content:"";display:block;position:absolute;left:0;right:0;bottom:0;top:0;margin:-2px;transition:box-shadow .13s ease-out,margin .13s ease-out;box-shadow:0 0 0 2px #1492e6}.consonant-LeftFilter.is-opened{position:fixed;display:flex;justify-content:center;align-items:center;width:100%;max-width:100%;padding-left:20px;padding-right:20px;top:0;bottom:0;left:0;right:0;margin:auto;z-index:4;background-color:rgba(80,80,80,.8)}.consonant-LeftFilter.is-opened:after{display:none}.consonant-LeftFilter.is-opened .consonant-LeftFilter-inner{position:relative;box-shadow:0 3px 15px rgba(80,80,80,.8);border:1px solid #eaeaea;border-radius:4px}.consonant-LeftFilter.is-opened .consonant-LeftFilter-inner:after{content:"";position:absolute;display:block;width:100%;max-width:100%;height:33px;bottom:65px;left:0;right:0;background:transparent linear-gradient(180deg,hsla(0,0%,100%,.8),#fff) no-repeat 0 0;z-index:1;pointer-events:none}.consonant-LeftFilter.is-opened .consonant-LeftFilter-footer{display:flex}.consonant-LeftFilter.is-opened .consonant-LeftFilter-items{display:block}.consonant-LeftFilter.is-opened .consonant-LeftFilter-selectedItemsQty{display:none}.consonant-LeftFilter.is-opened .consonant-LeftFilter-name{padding-left:20px}@media only screen and (min-width:768px){.consonant-LeftFilter.is-opened .consonant-LeftFilter-inner{max-width:70vw;margin-left:auto;margin-right:auto}}@media only screen and (min-width:1200px){.consonant-LeftFilter:after{display:block;right:13px;border-color:#bcbcbc;transform:rotate(-45deg)}.consonant-LeftFilter-inner{border-radius:0;background-color:transparent}.consonant-LeftFilter-items{min-height:0;max-height:100%;height:auto;padding-top:12px;border-color:transparent;overflow-y:auto}.consonant-LeftFilter-itemsItemLabel{padding:6px 8px}input[type=checkbox]:focus+.consonant-LeftFilter-itemsItemCheckmark{outline:2px solid #1492e6}.consonant-LeftFilter-itemsItem:nth-of-type(n+10):last-of-type{margin-bottom:0}.consonant-LeftFilter-itemsItemName{font-size:.875rem;line-height:1rem}.consonant-LeftFilter-footer{display:none}.consonant-LeftFilter-link{padding-top:14px;padding-bottom:14px;font-size:.875rem;line-height:1rem;word-break:break-word;transition:color .3s ease-in-out;border:2px solid transparent}.consonant-LeftFilter-link:hover{color:#707070}.consonant-LeftFilter-link:focus{border-color:#1492e6}.consonant-LeftFilter-itemBadge{display:block}.consonant-LeftFilter-selectedItemsQty{display:none}.consonant-LeftFilter.is-opened{position:relative;padding:0;background-color:transparent;border-bottom-color:transparent}.consonant-LeftFilter.is-opened:after{display:block;top:24px;bottom:auto;border-color:#959595;transform:rotate(135deg)}.consonant-LeftFilter.is-opened .consonant-LeftFilter-inner{min-height:0;max-height:none;max-width:100%;margin-left:0;margin-right:0;overflow:hidden;box-shadow:none;border:0}.consonant-LeftFilter.is-opened .consonant-LeftFilter-inner:after{display:none}.consonant-LeftFilter.is-opened .consonant-LeftFilter-name{padding-left:0}.consonant-LeftFilter.is-opened .consonant-LeftFilter-name img{display:block;position:relative;top:4px}.consonant-LeftFilter.is-opened .consonant-LeftFilter-link{padding-right:36px;color:#707070}.consonant-LeftFilter.is-opened .consonant-LeftFilter-items{padding-top:4px}.consonant-LeftFilter.is-opened .consonant-LeftFilter-footer{display:none}}.consonant-ChosenFilter{position:relative;max-width:50vw;margin-right:7px;margin-bottom:8px;padding:0 17px 0 8px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1.375rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;text-overflow:ellipsis;white-space:nowrap;background-color:transparent;border:1px solid #959595;border-radius:4px;outline:0;overflow:hidden}.consonant-ChosenFilter:after,.consonant-ChosenFilter:before{content:"";position:absolute;top:0;bottom:0;margin:auto;right:8px;width:7px;height:1px;background-color:#959595;transform:rotate(45deg)}.consonant-ChosenFilter:after{transform:rotate(-45deg)}.consonant-ChosenFilter:focus{outline:0}@media only screen and (min-width:1200px){.consonant-ChosenFilter:focus{outline:2px solid #1492e6}}.consonant-Card{background-color:#fff;width:100%;max-width:100%;padding-bottom:7px;text-align:left;border:1px solid #eaeaea;border-radius:4px;overflow:hidden;margin:0 auto}.consonant-Card,.consonant-Card-content{position:relative;display:flex;flex-direction:column}.consonant-Card-content{flex-grow:1;padding:20px 24px 24px;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.consonant-Card-title{max-height:2.75rem;margin:0 0 7px;font-size:1.125rem;line-height:1.375rem;font-weight:700;color:#323232;text-decoration:none;-webkit-line-clamp:2}.consonant-Card-text,.consonant-Card-title{display:-webkit-box;-webkit-box-orient:vertical;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-style:normal;text-align:left;word-break:break-word;overflow:hidden}.consonant-Card-text{max-height:3.9375rem;margin:0 0 14px;padding:0;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#747474;-webkit-line-clamp:3}.consonant-Card-text:empty{display:none}.consonant-Card-label+.consonant-Card-title+p{max-height:4rem;line-height:1rem}.consonant-Card .consonant-BtnInfobit:first-child{margin-left:0}.consonant-Card .consonant-CardFooter--divider:last-child{padding-top:20px}.consonant-Card.consonant-hide-cta .consonant-OneHalfCard-title+p{max-height:none;-webkit-line-clamp:7;margin:0}.consonant-Card.consonant-u-noBorders{border:0}.consonant-Card:focus{border:2px;border-color:#1492e6}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.consonant-Card{flex-grow:0;flex-shrink:0;flex-basis:300px}}@media only screen and (min-width:768px){.consonant-Card{padding-bottom:0}.consonant-Card-content{padding-bottom:24px}}.consonant-CardsGrid .consonant-Card.one-half:hover{box-shadow:0 3px 6px 0 rgba(0,0,0,.16);transition:box-shadow .3s ease-in-out}.consonant-CardsGrid .consonant-Card.one-half [class*=-header]{position:relative}.consonant-CardsGrid .consonant-Card.one-half [class*=-header]:after{position:absolute;content:"";top:0;bottom:0;left:0;right:0;margin:auto;z-index:0;background-color:rgba(0,0,0,.35);opacity:0;transition:opacity .3s ease-in-out}.consonant-CardsGrid .consonant-Card.one-half:hover [class*=-header]:after{opacity:1}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header{position:relative;width:100%;height:213px;background-color:#eaeaea;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;border-top-left-radius:4px;border-top-right-radius:4px;overflow:hidden}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header .consonant-Card-banner{position:absolute;display:flex;justify-content:flex-start;max-width:56%;max-height:70%;top:24px;right:0;padding:8px 13px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1.0625rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:left;letter-spacing:.72px;text-transform:uppercase;border-top-left-radius:4px;border-bottom-left-radius:4px;z-index:1;background-color:#1473e6;user-select:none;overflow-y:auto}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header .consonant-Card-bannerIconWrapper{margin-right:4px}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header .consonant-Card-bannerIconWrapper img{width:8px;height:8px}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header .consonant-Card-badge{position:absolute;display:block;max-width:36%;max-height:50%;top:24px;left:24px;padding:4px 11px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;border:1px solid #959595;border-radius:4px;background-color:#fff;overflow-y:auto;z-index:1}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header .consonant-Card-logo{position:absolute;display:block;bottom:16px;left:0;padding:7px 24px;border:1px solid transparent;border-top-right-radius:4px;border-bottom-right-radius:4px;background-color:#fff;z-index:1;font-size:0;line-height:0}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header .consonant-Card-logo img{width:auto;height:auto;max-width:90px;max-height:32px;object-fit:contain;user-select:none}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header button.consonant-Card-videoButton-wrapper{width:100%;height:100%;background-color:transparent}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header button.consonant-Card-videoButton-wrapper .consonant-Card-videoIco{display:block;position:absolute;width:40px;height:40px;right:24px;bottom:16px;font-size:0;line-height:0;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%231473e6' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;background-size:cover;z-index:1;cursor:pointer;transform-origin:50% 50%;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header button.consonant-Card-videoButton-wrapper .consonant-Card-videoIco:active,.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header button.consonant-Card-videoButton-wrapper .consonant-Card-videoIco:hover{transform:scale(1.1);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%230059c2' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-header button.consonant-Card-videoButton-wrapper .consonant-Card-videoIco:focus{transform:scale(1.1);transition:transform .3s ease-in-out;outline:2px solid #1492e6}.consonant-CardsGrid .consonant-Card.one-half .consonant-Card-label{display:block;max-width:100%;margin-bottom:4px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:left;text-decoration:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.consonant-CardsGrid--2up .consonant-Card.one-half,.consonant-CardsGrid--3up .consonant-Card.one-half{min-height:448px}.consonant-CardsGrid--4up .consonant-Card.one-half{height:auto}.consonant-CardsGrid--4up .consonant-Card.one-half .consonant-Card-header{min-height:192px;max-height:192px}.consonant-CardsGrid--4up .consonant-Card.one-half .consonant-Card-content,.consonant-CardsGrid--5up .consonant-Card.one-half .consonant-Card-content{padding:16px 16px 20px}.consonant-CardsGrid .consonant-Card.three-fourths{height:448px}.consonant-CardsGrid .consonant-Card.three-fourths:hover{box-shadow:0 3px 6px 0 rgba(0,0,0,.16);transition:box-shadow .3s ease-in-out}.consonant-CardsGrid .consonant-Card.three-fourths [class*=-header]{position:relative}.consonant-CardsGrid .consonant-Card.three-fourths [class*=-header]:after{position:absolute;content:"";top:0;bottom:0;left:0;right:0;margin:auto;z-index:0;background-color:rgba(0,0,0,.35);opacity:0;transition:opacity .3s ease-in-out}.consonant-CardsGrid .consonant-Card.three-fourths:hover [class*=-header]:after{opacity:1}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-header{background-color:#eaeaea;height:316px;overflow:hidden;position:relative;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-header button.consonant-Card-videoButton-wrapper{width:100%;height:100%;background-color:transparent}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-videoIco{display:block;position:absolute;width:40px;height:40px;right:24px;bottom:16px;font-size:0;line-height:0;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%231473e6' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;background-size:cover;z-index:1;cursor:pointer;transform-origin:50% 50%;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-videoIco:active,.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-videoIco:hover{transform:scale(1.1);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%230059c2' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-videoIco:focus{transform:scale(1.1);transition:transform .3s ease-in-out;outline:2px solid #1492e6}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-logo{position:absolute;display:block;bottom:16px;left:0;padding:7px 24px;border:1px solid transparent;border-top-right-radius:4px;border-bottom-right-radius:4px;z-index:1;background-color:#fff;font-size:0;line-height:0}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-logo img{width:auto;height:auto;max-width:90px;max-height:32px;object-fit:contain;user-select:none}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-label{display:block;max-width:100%;max-height:1rem;margin-bottom:4px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:left;text-decoration:none;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-label:empty{display:none}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-content{padding:20px 20px 24px}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-title{max-height:2.75rem;margin:0 0 7px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1.125rem;line-height:1.375rem;font-weight:700;color:#323232;font-style:normal;text-align:left;text-decoration:none;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-title:only-child{max-height:5.5rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-title:empty{display:none}.consonant-Card-label+.consonant-CardsGrid .consonant-Card.three-fourths-title:last-child{max-height:4.125rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-text{max-height:2rem;margin:0;padding:0;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-text:empty{display:none}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-text:only-child{max-height:5rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-label+.consonant-Card-text:last-child{max-height:4rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-label+.consonant-Card-title+.consonant-Card-text{max-height:1rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-banner{position:absolute;display:flex;justify-content:flex-start;max-width:56%;max-height:70%;top:24px;right:0;padding:8px 13px 7px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1.0625rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:left;letter-spacing:.72px;text-transform:uppercase;border-top-left-radius:4px;border-bottom-left-radius:4px;z-index:1;background-color:#1473e6;user-select:none;overflow-y:auto}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-bannerIconWrapper{margin-right:4px}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-bannerIconWrapper img{width:8px;height:8px}.consonant-CardsGrid .consonant-Card.three-fourths .consonant-Card-badge{position:absolute;display:block;max-width:36%;max-height:50%;top:24px;left:24px;padding:4px 11px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;border:1px solid #959595;border-radius:4px;background-color:#fff;overflow-y:auto;z-index:1}.consonant-CardsGrid--4up .consonant-Card.three-fourths .consonant-Card-title,.consonant-CardsGrid--5up .consonant-Card.three-fourths .consonant-Card-title{margin-bottom:0;max-height:2.75rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.consonant-CardsGrid--4up .consonant-Card.three-fourths .consonant-Card-title:first-child,.consonant-CardsGrid--5up .consonant-Card.three-fourths .consonant-Card-title:first-child{max-height:4.125rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.consonant-CardsGrid--4up .consonant-Card.three-fourths .consonant-Card-text,.consonant-CardsGrid--5up .consonant-Card.three-fourths .consonant-Card-text{display:none!important}.consonant-CardsGrid--4up .consonant-Card.three-fourths .consonant-Card-badge,.consonant-CardsGrid--5up .consonant-Card.three-fourths .consonant-Card-badge{position:absolute;display:block;max-width:36%;max-height:50%;top:24px;left:24px;padding:4px 11px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;border:1px solid #959595;border-radius:4px;background-color:#fff;overflow-y:auto;z-index:1}.consonant-CardsGrid--4up .consonant-Card.three-fourths{height:384px}.consonant-CardsGrid--4up .consonant-Card.three-fourths .consonant-Card-header{min-height:232px;height:276px}.consonant-CardsGrid--5up .consonant-Card.three-fourths{height:344px}.consonant-CardsGrid--5up .consonant-Card-header{min-height:232px;height:232px}.consonant-CardsGrid .consonant-Card.full-card{height:448px}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-content{position:absolute;bottom:0;display:flex;flex-direction:column;justify-content:flex-end;min-height:108px;margin-top:auto;padding:0 24px 24px;text-decoration:none;background:transparent linear-gradient(180deg,transparent,rgba(0,0,0,.501) 36%,rgba(0,0,0,.701)) 0 0 no-repeat padding-box;outline:0}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-content:before{content:"";position:absolute;right:24px;bottom:32px;width:12px;height:12px;border:1px solid #fff;box-shadow:1px 1px 0 0 #fff;border-top:0;border-left:0;transform:rotate(-45deg)}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-content:active,.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-content:hover{text-decoration:none}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-header{position:absolute!important;width:100%;height:auto;max-height:none;background-color:#eaeaea;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;z-index:0;top:0;bottom:0;left:0;right:0}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-header img{min-width:100%;min-height:100%}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-header button.consonant-Card-videoButton-wrapper{width:100%;height:100%;background-color:transparent}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-videoIco{display:block;position:absolute;width:40px;height:40px;right:24px;bottom:16px;font-size:0;line-height:0;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%231473e6' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;background-size:cover;z-index:1;cursor:pointer;transform-origin:50% 50%;transition:transform .3s ease-in-out;bottom:124px}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-videoIco:active,.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-videoIco:hover{transform:scale(1.1);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%230059c2' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-videoIco:focus{transform:scale(1.1);transition:transform .3s ease-in-out;outline:2px solid #1492e6}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-logo{position:absolute;display:block;bottom:124px;left:0;padding:7px 24px;border:1px solid transparent;border-top-right-radius:4px;border-bottom-right-radius:4px;background-color:#fff;z-index:3;font-size:0;line-height:0}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-logo img{width:auto;height:auto;max-width:90px;max-height:32px;object-fit:contain;user-select:none}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-label{display:block;max-width:100%;margin-bottom:5px;font-size:.875rem;line-height:1rem;font-weight:400;white-space:nowrap;text-overflow:ellipsis}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-label,.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-title{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;color:#fff;font-style:normal;word-break:break-word;text-align:left;text-decoration:none;overflow:hidden;z-index:1}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-title{display:-webkit-box;-webkit-box-orient:vertical;max-height:2.75rem;margin:0;padding-right:24px;font-size:1.125rem;line-height:1.375rem;font-weight:700;-webkit-line-clamp:2}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-banner{position:absolute;display:flex;justify-content:flex-start;max-width:56%;max-height:70%;top:24px;right:0;padding:8px 13px 7px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1.0625rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:left;letter-spacing:.72px;text-transform:uppercase;border-top-left-radius:4px;border-bottom-left-radius:4px;z-index:1;background-color:#1473e6;user-select:none;overflow-y:auto}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-bannerIconWrapper{margin-right:4px}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-bannerIconWrapper img{width:8px;height:8px}.consonant-CardsGrid .consonant-Card.full-card .consonant-Card-badge{position:absolute;display:block;max-width:36%;max-height:50%;top:24px;left:24px;padding:4px 11px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;border:1px solid #959595;border-radius:4px;background-color:#fff;overflow-y:auto;z-index:1}.consonant-CardsGrid--4up .consonant-Card.full-card{height:384px}.consonant-CardsGrid--5up .consonant-Card.full-card{height:344px}.consonant-CardsGrid .consonant-Card.half-height{height:208px}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-header{z-index:0;height:100%;background-color:#eaeaea;background-position:50% 0;background-repeat:no-repeat;background-size:cover}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-header:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background:transparent linear-gradient(180deg,rgba(0,0,0,.1) 10%,rgba(0,0,0,.8) 80%) 0 0 no-repeat;z-index:1;opacity:1}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-videoButton-wrapper{top:-118px;background:transparent;position:absolute;height:208px;left:0;right:0;z-index:2;width:100%}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-videoIco{display:block;position:absolute;width:40px;height:40px;right:24px;bottom:16px;font-size:0;line-height:0;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%231473e6' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;background-size:cover;z-index:1;cursor:pointer;transform-origin:50% 50%;transition:transform .3s ease-in-out;top:75px;left:24px;right:auto}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-videoIco:active,.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-videoIco:hover{transform:scale(1.1);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%230059c2' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-videoIco:focus{transform:scale(1.1);transition:transform .3s ease-in-out;outline:2px solid #1492e6}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-content{position:absolute;text-decoration:none;bottom:0;background-color:transparent;flex-direction:column-reverse;padding:8px 24px 32px}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title{margin:0 0 5px;max-height:3rem;padding:0;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.25rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title :only-child{margin-bottom:0}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-label{display:block;max-height:1.3125rem;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#fff;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-banner{position:absolute;display:flex;justify-content:flex-start;max-width:56%;max-height:31%;top:16px;right:0;padding:8px 13px 7px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1.0625rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:left;letter-spacing:.72px;text-transform:uppercase;border-top-left-radius:4px;border-bottom-left-radius:4px;z-index:2;background-color:#1473e6;user-select:none;overflow-y:auto}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-bannerIconWrapper{margin-right:4px}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-bannerIconWrapper img{width:8px;height:8px}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card--labelTop .consonant-Card-content{flex-direction:column-reverse}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card--labelTop .consonant-Card-label{margin-bottom:8px}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card--labelTop .consonant-Card-label :only-child,.consonant-CardsGrid .consonant-Card.half-height .consonant-Card--labelTop .consonant-Card-title{margin-bottom:0}.consonant-CardsGrid .consonant-Card.half-height .consonant-Card.consonant-u-noBorders{border:0}@media only screen and (min-width:600px){.consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title{max-height:3.175rem;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1.125rem;line-height:1.375rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:left}}@media only screen and (min-width:1200px){.consonant-CardsGrid .consonant-Card.half-height{outline:0;position:relative}.consonant-CardsGrid .consonant-Card.half-height:focus:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;border:2px solid #1473e6;z-index:1}}.consonant-CardsGrid .consonant-Card.double-wide{min-width:300px;max-width:584px;height:448px}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-header{position:relative;height:306px;overflow:hidden;background-position:50% 0;background-repeat:no-repeat;background-size:cover}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-videoIco{display:block;position:absolute;width:40px;height:40px;right:24px;bottom:16px;font-size:0;line-height:0;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%231473e6' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;background-size:cover;z-index:1;cursor:pointer;transform-origin:50% 50%;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-videoIco:active,.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-videoIco:hover{transform:scale(1.1);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%230059c2' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-videoIco:focus{transform:scale(1.1);transition:transform .3s ease-in-out;outline:2px solid #1492e6}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-content{flex-grow:1;display:flex;flex-direction:column;padding:16px 24px 28px;text-decoration:none;outline:0;width:100%}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-content:active,.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-content:hover{text-decoration:none}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-content:empty{display:none}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-title{margin:0 0 5px;padding:0;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:1.125rem;line-height:1.375rem;font-weight:700;color:#323232;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-title :only-child{margin-bottom:0}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-logo{position:absolute;display:block;bottom:16px;left:0;padding:7px 24px;border:1px solid transparent;border-top-right-radius:4px;border-bottom-right-radius:4px;background-color:#fff;z-index:1;font-size:0;line-height:0}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-logo img{width:auto;height:auto;max-width:90px;max-height:32px;object-fit:contain;user-select:none}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-label{display:block;margin-bottom:8px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-label :only-child{margin-bottom:0}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-banner{position:absolute;display:flex;justify-content:flex-start;max-width:56%;max-height:70%;top:24px;right:0;padding:8px 13px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1.0625rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:left;letter-spacing:.72px;text-transform:uppercase;border-top-left-radius:4px;border-bottom-left-radius:4px;z-index:1;background-color:#1473e6;user-select:none;overflow-y:auto}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-bannerIconWrapper{margin-right:4px}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-bannerIconWrapper img{width:8px;height:8px}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-text{margin:0;padding:0;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card--contentTop{flex-direction:column-reverse}.consonant-Card--contentTop .consonant-CardsGrid .consonant-Card.double-wide-img{flex-grow:1}.consonant-Card--contentTop .consonant-CardsGrid .consonant-Card.double-wide-content{position:absolute;top:0;left:0;right:0;padding-top:24px;background-color:transparent;z-index:1}.consonant-Card--noTextInfo .consonant-CardsGrid .consonant-Card.double-wide-img{height:100%}.consonant-Card--noTextInfo .consonant-CardsGrid .consonant-Card.double-wide-content{display:none}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card.consonant-u-noBorders{border:0}@media only screen and (min-width:1200px){.consonant-CardsGrid .consonant-Card.double-wide{min-width:500px}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-content{outline:0;position:relative}.consonant-CardsGrid .consonant-Card.double-wide .consonant-Card-content:focus:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;border:2px solid #1473e6;z-index:1}}@media only screen and (min-width:680px){.consonant-CardsGrid .consonant-Card.double-wide--2up .consonant-Card.double-wide{min-width:500px}.consonant-CardsGrid .consonant-Card.double-wide--3up .consonant-Card.double-wide,.consonant-CardsGrid .consonant-Card.double-wide--4up .consonant-Card.double-wide,.consonant-CardsGrid .consonant-Card.double-wide--5up .consonant-Card.double-wide{grid-template-columns:repeat(auto-fit,minmax(500px,max-content))}}.consonant-CardsGrid .consonant-Card.product{height:auto;min-height:222px}.consonant-CardsGrid .consonant-Card.product .consonant-Card-content{padding:16px 16px 20px}.consonant-CardsGrid .consonant-Card.product .consonant-Card-videoIco{display:block;position:absolute;width:40px;height:40px;right:24px;bottom:16px;font-size:0;line-height:0;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%231473e6' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;background-size:cover;z-index:1;cursor:pointer;transform-origin:50% 50%;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.product .consonant-Card-videoIco:active,.consonant-CardsGrid .consonant-Card.product .consonant-Card-videoIco:hover{transform:scale(1.1);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%230059c2' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.product .consonant-Card-videoIco:focus{transform:scale(1.1);transition:transform .3s ease-in-out;outline:2px solid #1492e6}.consonant-CardsGrid .consonant-Card.product .consonant-Card-row{display:flex;flex-direction:row;margin-bottom:16px;align-items:center}.consonant-CardsGrid .consonant-Card.product .consonant-Card-title{flex:1;display:-webkit-box;-webkit-box-orient:vertical;max-height:2.75rem;margin:6px 0 10px;text-decoration:none;word-break:break-word;-webkit-line-clamp:2;overflow:hidden}.consonant-CardsGrid .consonant-Card.product .consonant-Card-text{display:-webkit-box;-webkit-box-orient:vertical;max-height:3.9375rem;margin:0 0 20px;padding:0;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;overflow:hidden}.consonant-CardsGrid .consonant-Card.product .consonant-Card-text:empty{display:none}.consonant-CardsGrid .consonant-Card.text-card{height:auto}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-content{padding:16px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding-bottom:24px}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-header{flex-grow:1;position:relative;width:100%;padding:16px 0 0 16px;height:64px;max-height:64px;border-top-left-radius:4px;border-top-right-radius:4px;background-image:none!important}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-videoIco{display:block;position:absolute;width:40px;height:40px;right:24px;bottom:16px;font-size:0;line-height:0;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%231473e6' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;background-size:cover;z-index:1;cursor:pointer;transform-origin:50% 50%;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-videoIco:active,.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-videoIco:hover{transform:scale(1.1);background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg data-name='40' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg data-name='Ellipse 20182' fill='%230059c2' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='20' cy='20' r='20' stroke='none'/%3E%3Ccircle cx='20' cy='20' r='19' fill='none'/%3E%3C/g%3E%3Cpath data-name='Path 356676' d='M15 10.833v18.333l13.333-9.167z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 0 0;transition:transform .3s ease-in-out}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-videoIco:focus{transform:scale(1.1);transition:transform .3s ease-in-out;outline:2px solid #1492e6}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-logo{display:block;width:48px;height:48px;overflow:hidden;background-size:cover;background-position:50%;border-radius:4px;font-size:0;line-height:0}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-logo img{width:48px;height:48px;object-fit:cover;user-select:none}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-label{display:none;max-width:100%;margin-bottom:4px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:400;color:#505050;font-style:normal;word-break:break-word;text-align:left;text-decoration:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-title{max-height:2.75rem;margin:0 0 6px;font-size:1.125rem;line-height:1.375rem;font-weight:700;color:#323232}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-text,.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-title{display:-webkit-box;-webkit-box-orient:vertical;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-style:normal;word-break:break-word;text-align:left}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-text{max-height:3.9375rem;margin:0 0 14px;padding:0;font-size:.875rem;line-height:1.3125rem;font-weight:400;color:#747474;-webkit-line-clamp:3;overflow:hidden}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-text:empty{display:none}.consonant-Card-label+.consonant-CardsGrid .consonant-Card.text-card-title+p{max-height:3rem;line-height:1rem}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-banner{position:absolute;display:flex;justify-content:flex-start;max-width:56%;max-height:70%;top:16px;right:0;padding:8px 13px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1.0625rem;font-weight:700;color:#fff;font-style:normal;word-break:break-word;text-align:left;letter-spacing:.72px;text-transform:uppercase;border-top-left-radius:4px;border-bottom-left-radius:4px;z-index:1;background-color:#1473e6;user-select:none;overflow-y:auto}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-bannerIconWrapper{margin-right:4px}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-bannerIconWrapper img{width:8px;height:8px}.consonant-CardsGrid .consonant-Card.text-card .consonant-Card-badge{position:absolute;display:block;max-width:36%;max-height:50%;top:24px;left:24px;padding:4px 11px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.75rem;line-height:1rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;border:1px solid #959595;border-radius:4px;background-color:#fff;overflow-y:auto;z-index:1}.consonant-CardsGrid .consonant-Card.text-card .consonant-DateIntervalInfobit{display:none}.consonant-CardsGrid .consonant-Card.text-card .consonant-BtnInfobit{margin-left:0}.consonant-CardsGrid .consonant-Card.icon-card{height:auto;background-color:#f8f8f8;border:1px solid #f8f8f8}.consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-content{padding:16px 16px 20px}.consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-header{flex-grow:1;position:relative;width:100%;padding:16px 0 0 16px;height:64px;max-height:64px;border-top-left-radius:4px;border-top-right-radius:4px;background-image:none!important}.consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-logo{display:block;width:48px;height:48px;overflow:hidden;background-size:cover;background-position:50%;border-radius:4px}.consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-logo img{width:48px;height:48px;object-fit:cover;user-select:none}.consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-label{max-width:100%;margin-bottom:4px;font-size:.875rem;line-height:1rem;font-weight:400;white-space:nowrap;text-overflow:ellipsis}.consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-label,.consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-title{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;color:#2c2c2c;font-style:normal;word-break:break-word;text-align:left;text-decoration:none;overflow:hidden}.consonant-CardsGrid .consonant-Card.icon-card .consonant-Card-title{flex:1;display:-webkit-box;-webkit-box-orient:vertical;max-height:2.75rem;margin:6px 0 10px;-webkit-line-clamp:2;font-size:1.125rem;line-height:1.375rem;font-weight:700}.consonant-LinkBlocker{position:absolute;top:0;left:0;display:block;background-color:transparent;width:100%;height:100%;cursor:pointer;z-index:1}.consonant-LinkBlocker:focus{border:2px solid #1492e6}.consonant-CardFooter{margin-top:auto;padding-top:24px}.consonant-CardFooter:not(:last-child){padding-top:0;padding-bottom:10px}.consonant-CardFooter+.consonant-CardFooter{margin-top:0;padding-top:10px}.consonant-CardFooter+.consonant-CardFooter:not(.consonant-CardFooter--divider){padding-top:0}.consonant-CardFooter--divider:last-child{border-top:1px solid #eaeaea}.consonant-CardFooter-row{display:flex;width:100%;justify-content:space-between;align-items:stretch;height:32px}.consonant-CardFooter-cell{display:flex;justify-content:flex-start;align-items:center;max-width:100%;flex-basis:auto;flex-grow:1}.consonant-CardFooter-cell:empty{display:none}.consonant-CardFooter-cell--left>:first-child{margin-left:0}.consonant-CardFooter-cell--center{justify-content:center}.consonant-CardFooter-cell--center:first-child:not(:only-child){justify-content:flex-start}.consonant-CardFooter-cell--center:first-child>:first-child{margin-left:0}.consonant-CardFooter-cell--right{justify-content:flex-end}.consonant-CardFooter-cell>:nth-of-type(n+11){display:none}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.consonant-CardFooter-cell{width:100%}}.consonant-CardFooter+.consonant-CardFooter~.consonant-CardFooter{display:none}span+h2+p+.consonant-CardFooter+.consonant-CardFooter{margin-bottom:-10px}[data-cells="3"]:not(.consonant-CardFooter-row--fluid) .consonant-CardFooter-cell{max-width:33.33333333%}[data-cells="2"]:not(.consonant-CardFooter-row--fluid) .consonant-CardFooter-cell{max-width:50%}[data-cells="1"]:not(.consonant-CardFooter-row--fluid) .consonant-CardFooter-cell{max-width:100%}[data-cells="0"]:not(.consonant-CardFooter-row--fluid) .consonant-CardFooter-cell{max-width:Infinity%}.consonant-BtnInfobit{display:flex;justify-content:center;align-items:center;min-width:76px;max-width:100%;height:32px;max-height:32px;margin-left:16px;padding-left:16px;padding-right:16px;text-decoration:none;border:2px solid #505050;border-radius:16px;background-color:#fff;cursor:pointer;transition:border-color .3s ease-in-out,background-color .3s ease-in-out}.consonant-BtnInfobit span{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.8235rem;line-height:.9375rem;font-weight:700;color:#505050;font-style:normal;word-break:break-word;text-align:center;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;transition:color .3s ease-in-out}.consonant-BtnInfobit:hover{text-decoration:none!important;border-color:#505050;background-color:#505050}.consonant-BtnInfobit:hover span{color:#fff}.consonant-BtnInfobit:active{text-decoration:none!important;border-color:#323232;background-color:#323232}.consonant-BtnInfobit:active span{color:#fff}.consonant-BtnInfobit:focus{outline:0}@media only screen and (min-width:1200px){.consonant-BtnInfobit:focus{outline:2px solid #1492e6}}.consonant-BtnInfobit--cta{background-color:#2680eb;border-color:#2680eb}.consonant-BtnInfobit--cta span{color:#fff}.consonant-BtnInfobit--cta:hover{text-decoration:none!important;background-color:#1473e6;border-color:#1473e6}.consonant-BtnInfobit--cta:hover span{color:#fff}.consonant-BtnInfobit--cta:active{text-decoration:none!important;background-color:#0d66d0;border-color:#0d66d0}.consonant-BtnInfobit--cta:active span{color:#fff}.consonant-BtnInfobit-ico{width:auto;height:auto;max-width:24px;max-height:24px;margin-right:8px;overflow:hidden;object-fit:cover;user-select:none}.consonant-BtnInfobit-ico--last{order:1;margin-left:8px;margin-right:0}.consonant-BtnInfobit-ico:only-child{margin:0}.consonant-PriceInfobit{display:flex;justify-content:flex-start;align-items:baseline;min-width:0;max-width:100%;margin-left:16px}.consonant-PriceInfobit-price{max-width:100%;flex-shrink:0;font-size:1.125rem;color:#323232}.consonant-PriceInfobit-price,.consonant-PriceInfobit-term{font-family:adobe-clean,Segoe UI,Roboto,sans-serif;line-height:1.6875rem;font-weight:400;font-style:normal;word-break:break-word;text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.consonant-PriceInfobit-term{position:relative;flex-shrink:1;font-size:.875rem;color:#959595}.consonant-PriceInfobit-term:before{content:"/"}.consonant-IconWithTextInfobit{display:flex;justify-content:flex-start;align-items:center;min-width:0;max-width:100%;margin-left:16px}.consonant-IconWithTextInfobit img{display:block;width:auto;height:auto;max-width:80px;max-height:22px;margin-right:4px;object-fit:contain;user-select:none}.consonant-IconWithTextInfobit-text{max-width:100%;max-height:2rem;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.consonant-LinkWithIcoInfobit{display:flex;justify-content:flex-start;align-items:center;min-width:0;max-width:100%;margin-left:16px;text-decoration:none}.consonant-LinkWithIcoInfobit:focus{outline:0}@media only screen and (min-width:1200px){.consonant-LinkWithIcoInfobit:focus{outline:2px solid #1492e6}}.consonant-LinkWithIcoInfobit span{max-width:100%;max-height:2rem;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.9375rem;line-height:1rem;font-weight:700;color:#2680eb;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.consonant-LinkWithIcoInfobit:hover span{text-decoration:none;color:#1473e6}.consonant-LinkWithIcoInfobit:active span{text-decoration:none;color:#0d66d0}.consonant-LinkWithIcoInfobit img{display:block;width:18px;height:auto;max-width:18px;max-height:18px;object-fit:contain;user-select:none}.consonant-LinkWithIcoInfobit img:not(:last-child){margin-right:8px}.consonant-RatingInfobit{display:flex;justify-content:flex-start;align-items:center;max-width:100%;margin-left:16px}.consonant-RatingInfobit--negMargin{margin-right:-24px}.consonant-RatingInfobit-stars{display:block;position:relative;height:15px;max-width:100%;white-space:nowrap}.consonant-RatingInfobit-stars:before{content:"";display:block;position:relative;height:15px;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg id='Layer_1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 15'%3E%3Cstyle%3E.st0{fill:none}.st1{fill:%23d3d3d3}%3C/style%3E%3Cg id='Shape'%3E%3Cpath class='st0' d='M8.6.7c-.1 0-.3.1-.3.2L6.4 5.7l-5.2.2c-.2 0-.3.2-.3.4 0 .1 0 .2.1.2l4 3.2-1.4 5c0 .2.1.3.2.4h.1c.1 0 .1 0 .2-.1l4.3-2.8 4.3 2.8c.1.1.3.1.4-.1 0-.1.1-.2 0-.3l-1.4-5 4-3.2c.1-.1.2-.3 0-.4.3 0 .2-.1.1-.1l-5.2-.2L8.9.9C8.8.8 8.7.7 8.6.7z' transform='translate(-.029 -.412)'/%3E%3Cpath class='st1' d='M8.6 2.2L7.1 6l-.2.4h-.5l-4 .2 3.2 2.5.4.3-.2.5-1.1 3.9 3.4-2.2.4-.3.4.3 3.4 2.2-1.1-3.9-.1-.5.4-.3 3.2-2.5-4-.2h-.5L10 6 8.6 2.2m0-1.5c.1 0 .2.1.3.2l1.8 4.8 5.2.2c.1 0 .2.1.3.2 0 .1 0 .3-.1.3l-4 3.2 1.4 5v.1c0 .1-.1.2-.2.3h-.2c-.1 0-.1 0-.2-.1l-4.3-2.8-4.3 2.8c-.1 0-.1.1-.2.1H4c-.1 0-.2-.1-.2-.1 0-.1-.1-.2 0-.2l1.4-5L1 6.5c-.1-.1-.1-.2-.1-.3.1-.2.2-.3.3-.3l5.2-.2L8.3.9c0-.1.1-.2.3-.2z' transform='translate(-.029 -.412)'/%3E%3C/g%3E%3C/svg%3E") repeat-x 0 0;background-size:17px 15px;z-index:1;overflow:hidden}.consonant-RatingInfobit-stars:after{content:"";display:block;position:absolute;height:15px;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' id='Layer_1' viewBox='0 0 17 15'%3E%3Cstyle%3E.st0{fill:%231473e6}%3C/style%3E%3Cg id='Shape'%3E%3Cpath class='st0' d='M8.6.7c-.1 0-.3.1-.3.2L6.4 5.7l-5.2.2c-.2 0-.3.2-.3.4 0 .1 0 .2.1.2l4 3.2-1.4 5c0 .2.1.3.2.4h.1c.1 0 .1 0 .2-.1l4.3-2.8 4.3 2.8c.1.1.3.1.4-.1 0-.1.1-.2 0-.3l-1.4-5 4-3.2c.1-.1.2-.3 0-.4.3 0 .2-.1.1-.1l-5.2-.2L8.9.9C8.8.8 8.7.7 8.6.7z' transform='translate(-.029 -.412)'/%3E%3Cpath class='st0' d='M8.6 2.2L7.1 6l-.2.4h-.5l-4 .2 3.2 2.5.4.3-.2.5-1.1 3.9 3.4-2.2.4-.3.4.3 3.4 2.2-1.1-3.9-.1-.5.4-.3 3.2-2.5-4-.2h-.5L10 6 8.6 2.2m0-1.5c.1 0 .2.1.3.2l1.8 4.8 5.2.2c.1 0 .2.1.3.2 0 .1 0 .3-.1.3l-4 3.2 1.4 5v.1c0 .1-.1.2-.2.3h-.2c-.1 0-.1 0-.2-.1l-4.3-2.8-4.3 2.8c-.1 0-.1.1-.2.1H4c-.1 0-.2-.1-.2-.1 0-.1-.1-.2 0-.2l1.4-5L1 6.5c-.1-.1-.1-.2-.1-.3.1-.2.2-.3.3-.3l5.2-.2L8.3.9c0-.1.1-.2.3-.2z' transform='translate(-.029 -.412)'/%3E%3C/g%3E%3C/svg%3E") repeat-x 0 0;background-size:17px 15px;z-index:2;left:0;top:0;bottom:0;overflow:hidden}.consonant-RatingInfobit-text{max-width:35%;margin-left:7px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.375rem;font-weight:400;color:#959595;font-style:normal;word-break:break-word;text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.consonant-RatingInfobit[data-stars="5"]{min-width:109px}.consonant-RatingInfobit[data-stars="5"] .consonant-RatingInfobit-stars:before{width:85px}.consonant-RatingInfobit[data-stars="4"]{min-width:92px}.consonant-RatingInfobit[data-stars="4"] .consonant-RatingInfobit-stars:before{width:68px}.consonant-RatingInfobit[data-stars="3"]{min-width:75px}.consonant-RatingInfobit[data-stars="3"] .consonant-RatingInfobit-stars:before{width:51px}.consonant-RatingInfobit[data-stars="2"]{min-width:58px}.consonant-RatingInfobit[data-stars="2"] .consonant-RatingInfobit-stars:before{width:34px}.consonant-RatingInfobit[data-stars="1"]{min-width:41px}.consonant-RatingInfobit[data-stars="1"] .consonant-RatingInfobit-stars:before{width:17px}.consonant-RatingInfobit-stars[data-rating="100"]:after{width:100%}.consonant-RatingInfobit-stars[data-rating="99"]:after{width:99%}.consonant-RatingInfobit-stars[data-rating="98"]:after{width:98%}.consonant-RatingInfobit-stars[data-rating="97"]:after{width:97%}.consonant-RatingInfobit-stars[data-rating="96"]:after{width:96%}.consonant-RatingInfobit-stars[data-rating="95"]:after{width:95%}.consonant-RatingInfobit-stars[data-rating="94"]:after{width:94%}.consonant-RatingInfobit-stars[data-rating="93"]:after{width:93%}.consonant-RatingInfobit-stars[data-rating="92"]:after{width:92%}.consonant-RatingInfobit-stars[data-rating="91"]:after{width:91%}.consonant-RatingInfobit-stars[data-rating="90"]:after{width:90%}.consonant-RatingInfobit-stars[data-rating="89"]:after{width:89%}.consonant-RatingInfobit-stars[data-rating="88"]:after{width:88%}.consonant-RatingInfobit-stars[data-rating="87"]:after{width:87%}.consonant-RatingInfobit-stars[data-rating="86"]:after{width:86%}.consonant-RatingInfobit-stars[data-rating="85"]:after{width:85%}.consonant-RatingInfobit-stars[data-rating="84"]:after{width:84%}.consonant-RatingInfobit-stars[data-rating="83"]:after{width:83%}.consonant-RatingInfobit-stars[data-rating="82"]:after{width:82%}.consonant-RatingInfobit-stars[data-rating="81"]:after{width:81%}.consonant-RatingInfobit-stars[data-rating="80"]:after{width:80%}.consonant-RatingInfobit-stars[data-rating="79"]:after{width:79%}.consonant-RatingInfobit-stars[data-rating="78"]:after{width:78%}.consonant-RatingInfobit-stars[data-rating="77"]:after{width:77%}.consonant-RatingInfobit-stars[data-rating="76"]:after{width:76%}.consonant-RatingInfobit-stars[data-rating="75"]:after{width:75%}.consonant-RatingInfobit-stars[data-rating="74"]:after{width:74%}.consonant-RatingInfobit-stars[data-rating="73"]:after{width:73%}.consonant-RatingInfobit-stars[data-rating="72"]:after{width:72%}.consonant-RatingInfobit-stars[data-rating="71"]:after{width:71%}.consonant-RatingInfobit-stars[data-rating="70"]:after{width:70%}.consonant-RatingInfobit-stars[data-rating="69"]:after{width:69%}.consonant-RatingInfobit-stars[data-rating="68"]:after{width:68%}.consonant-RatingInfobit-stars[data-rating="67"]:after{width:67%}.consonant-RatingInfobit-stars[data-rating="66"]:after{width:66%}.consonant-RatingInfobit-stars[data-rating="65"]:after{width:65%}.consonant-RatingInfobit-stars[data-rating="64"]:after{width:64%}.consonant-RatingInfobit-stars[data-rating="63"]:after{width:63%}.consonant-RatingInfobit-stars[data-rating="62"]:after{width:62%}.consonant-RatingInfobit-stars[data-rating="61"]:after{width:61%}.consonant-RatingInfobit-stars[data-rating="60"]:after{width:60%}.consonant-RatingInfobit-stars[data-rating="59"]:after{width:59%}.consonant-RatingInfobit-stars[data-rating="58"]:after{width:58%}.consonant-RatingInfobit-stars[data-rating="57"]:after{width:57%}.consonant-RatingInfobit-stars[data-rating="56"]:after{width:56%}.consonant-RatingInfobit-stars[data-rating="55"]:after{width:55%}.consonant-RatingInfobit-stars[data-rating="54"]:after{width:54%}.consonant-RatingInfobit-stars[data-rating="53"]:after{width:53%}.consonant-RatingInfobit-stars[data-rating="52"]:after{width:52%}.consonant-RatingInfobit-stars[data-rating="51"]:after{width:51%}.consonant-RatingInfobit-stars[data-rating="50"]:after{width:50%}.consonant-RatingInfobit-stars[data-rating="49"]:after{width:49%}.consonant-RatingInfobit-stars[data-rating="48"]:after{width:48%}.consonant-RatingInfobit-stars[data-rating="47"]:after{width:47%}.consonant-RatingInfobit-stars[data-rating="46"]:after{width:46%}.consonant-RatingInfobit-stars[data-rating="45"]:after{width:45%}.consonant-RatingInfobit-stars[data-rating="44"]:after{width:44%}.consonant-RatingInfobit-stars[data-rating="43"]:after{width:43%}.consonant-RatingInfobit-stars[data-rating="42"]:after{width:42%}.consonant-RatingInfobit-stars[data-rating="41"]:after{width:41%}.consonant-RatingInfobit-stars[data-rating="40"]:after{width:40%}.consonant-RatingInfobit-stars[data-rating="39"]:after{width:39%}.consonant-RatingInfobit-stars[data-rating="38"]:after{width:38%}.consonant-RatingInfobit-stars[data-rating="37"]:after{width:37%}.consonant-RatingInfobit-stars[data-rating="36"]:after{width:36%}.consonant-RatingInfobit-stars[data-rating="35"]:after{width:35%}.consonant-RatingInfobit-stars[data-rating="34"]:after{width:34%}.consonant-RatingInfobit-stars[data-rating="33"]:after{width:33%}.consonant-RatingInfobit-stars[data-rating="32"]:after{width:32%}.consonant-RatingInfobit-stars[data-rating="31"]:after{width:31%}.consonant-RatingInfobit-stars[data-rating="30"]:after{width:30%}.consonant-RatingInfobit-stars[data-rating="29"]:after{width:29%}.consonant-RatingInfobit-stars[data-rating="28"]:after{width:28%}.consonant-RatingInfobit-stars[data-rating="27"]:after{width:27%}.consonant-RatingInfobit-stars[data-rating="26"]:after{width:26%}.consonant-RatingInfobit-stars[data-rating="25"]:after{width:25%}.consonant-RatingInfobit-stars[data-rating="24"]:after{width:24%}.consonant-RatingInfobit-stars[data-rating="23"]:after{width:23%}.consonant-RatingInfobit-stars[data-rating="22"]:after{width:22%}.consonant-RatingInfobit-stars[data-rating="21"]:after{width:21%}.consonant-RatingInfobit-stars[data-rating="20"]:after{width:20%}.consonant-RatingInfobit-stars[data-rating="19"]:after{width:19%}.consonant-RatingInfobit-stars[data-rating="18"]:after{width:18%}.consonant-RatingInfobit-stars[data-rating="17"]:after{width:17%}.consonant-RatingInfobit-stars[data-rating="16"]:after{width:16%}.consonant-RatingInfobit-stars[data-rating="15"]:after{width:15%}.consonant-RatingInfobit-stars[data-rating="14"]:after{width:14%}.consonant-RatingInfobit-stars[data-rating="13"]:after{width:13%}.consonant-RatingInfobit-stars[data-rating="12"]:after{width:12%}.consonant-RatingInfobit-stars[data-rating="11"]:after{width:11%}.consonant-RatingInfobit-stars[data-rating="10"]:after{width:10%}.consonant-RatingInfobit-stars[data-rating="9"]:after{width:9%}.consonant-RatingInfobit-stars[data-rating="8"]:after{width:8%}.consonant-RatingInfobit-stars[data-rating="7"]:after{width:7%}.consonant-RatingInfobit-stars[data-rating="6"]:after{width:6%}.consonant-RatingInfobit-stars[data-rating="5"]:after{width:5%}.consonant-RatingInfobit-stars[data-rating="4"]:after{width:4%}.consonant-RatingInfobit-stars[data-rating="3"]:after{width:3%}.consonant-RatingInfobit-stars[data-rating="2"]:after{width:2%}.consonant-RatingInfobit-stars[data-rating="1"]:after{width:1%}.consonant-RatingInfobit-stars[data-rating="0"]:after{width:0}.consonant-RatingInfobit-stars[data-rating="0"]:after,.consonant-RatingInfobit-stars[data-rating="1"]:after,.consonant-RatingInfobit-stars[data-rating="2"]:after,.consonant-RatingInfobit-stars[data-rating="3"]:after,.consonant-RatingInfobit-stars[data-rating="4"]:after,.consonant-RatingInfobit-stars[data-rating="5"]:after,.consonant-RatingInfobit-stars[data-rating="6"]:after,.consonant-RatingInfobit-stars[data-rating="7"]:after,.consonant-RatingInfobit-stars[data-rating="8"]:after,.consonant-RatingInfobit-stars[data-rating="9"]:after,.consonant-RatingInfobit-stars[data-rating="10"]:after,.consonant-RatingInfobit-stars[data-rating="11"]:after,.consonant-RatingInfobit-stars[data-rating="12"]:after,.consonant-RatingInfobit-stars[data-rating="13"]:after,.consonant-RatingInfobit-stars[data-rating="14"]:after,.consonant-RatingInfobit-stars[data-rating="15"]:after,.consonant-RatingInfobit-stars[data-rating="16"]:after,.consonant-RatingInfobit-stars[data-rating="17"]:after,.consonant-RatingInfobit-stars[data-rating="18"]:after,.consonant-RatingInfobit-stars[data-rating="19"]:after,.consonant-RatingInfobit-stars[data-rating="20"]:after{background-size:cover}.consonant-BookmarkInfobit{margin-left:16px;padding:0;font-size:0;line-height:0;border:0;outline:0;background-color:transparent}.consonant-BookmarkInfobit:focus{outline:0}@media only screen and (min-width:1200px){.consonant-BookmarkInfobit:focus{outline:2px solid #1492e6}}.consonant-BookmarkInfobit.is-active .consonant-BookmarkInfobit-ico{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath stroke-width='1.5' stroke='%23747474' fill='%23747474' d='M13.6.6c-1.7.1-3.3 1-4.1 2.5C8.6 1.6 7.1.7 5.5.6c-2.8 0-5 2.2-5 5 0 4.7 9 10.8 9 10.8s9-6 9-10.8c0-2.7-2.1-5-4.9-5z'/%3E%3C/svg%3E")}.consonant-BookmarkInfobit.is-disabled{pointer-events:none;opacity:.5}.consonant-BookmarkInfobit-ico{display:block;width:19px;height:17px;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath stroke-width='1.5' fill='%23fff' stroke='%23747474' d='M13.6.6c-1.7.1-3.3 1-4.1 2.5C8.6 1.6 7.1.7 5.5.6c-2.8 0-5 2.2-5 5 0 4.7 9 10.8 9 10.8s9-6 9-10.8c0-2.7-2.1-5-4.9-5z'/%3E%3C/svg%3E") no-repeat 50% 50%;background-size:contain}.consonant-DateIntervalInfobit{display:block;min-width:0;max-width:100%;max-height:2rem;margin-left:16px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;text-overflow:clip;overflow:hidden}.consonant-ProgressInfobit{min-width:0;max-width:100%;width:100%;margin-left:16px}.consonant-ProgressInfobit-wrapper{display:flex;justify-content:space-between;align-self:flex-start;margin-bottom:5px}.consonant-ProgressInfobit-text{display:block;max-width:100%;padding-right:8px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1.375rem;font-weight:700;color:#747474;font-style:normal;word-break:break-word;text-align:left;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.14px;overflow:hidden}.consonant-ProgressInfobit-text:last-of-type{padding-right:0}.consonant-ProgressInfobit-text--italic{font-style:italic}.consonant-ProgressInfobit-el{position:relative;width:100%;height:5px;background-color:#fff;border:1px solid #d3d3d3;border-radius:5px}.consonant-ProgressInfobit-val{position:absolute;top:-1px;bottom:-1px;left:-1px;z-index:1;border-radius:5px;font-size:0;line-height:0}.consonant-TextInfobit{min-width:0;max-width:100%;max-height:2rem;margin:0 0 0 16px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.875rem;line-height:1rem;font-weight:400;color:#747474;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}img+.consonant-TextInfobit{margin-left:4px}.consonant-IconInfobit{display:block;min-width:14px;width:auto;height:auto;max-width:28px;max-height:28px;margin-left:16px;object-fit:contain;user-select:none}.consonant-IconInfobit+.consonant-IconInfobit{margin-left:12px}.consonant-LinkInfobit{min-width:0;max-width:100%;max-height:2rem;margin-left:16px;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;font-size:.9375rem;line-height:1.375rem;font-weight:700;color:#2680eb;font-style:normal;word-break:break-word;text-align:left;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-decoration:none;transition:color .3s ease-in-out}.consonant-LinkInfobit:hover{color:#1473e6;text-decoration:none}.consonant-LinkInfobit:active{color:#0d66d0;text-decoration:none}.consonant-LinkInfobit:focus{outline:0}@media only screen and (min-width:1200px){.consonant-LinkInfobit:focus{outline:2px solid #1492e6}}:not(:last-of-type):nth-child(2)>.consonant-LinkInfobit:only-child{margin-right:0}.Categories .consonant-TopFilters-categoriesTitle{text-align:center;font-size:30px;font-weight:700;font-family:adobe-clean,Segoe UI,Roboto,sans-serif;margin-bottom:32px;color:#2c2c2c}.Categories .consonant-TopFilters-collectionTitle{display:none}.Categories .filters-category{text-align:center;margin-bottom:30px;display:flex;overflow-x:auto;justify-content:left}.Categories .filters-category button{border-radius:24px;background:#909090;color:#fff;font-weight:700;font-size:16px;height:48px;margin:0 6px;padding:12px 20px 13px 18px;display:flex;white-space:nowrap;align-items:center;font-family:adobe-clean,Segoe UI,Roboto,sans-serif}.Categories .filters-category button img.filters-category--icon{height:24px;vertical-align:-8px;margin-right:6px}.Categories .filters-category button:not(:first-child):after{content:"";width:12px}.Categories .filters-category button:hover{background:#505050}.Categories .filters-category button[data-selected=selected]{background:#292929}.Categories .filters-category button[data-group=alltopics] img{display:none}.Categories .consonant-TopFilter button{border:1px solid #bbb}.Categories span.filter-group-title{display:block;text-transform:uppercase;font-weight:600;padding-top:12px;font-size:14px;border-top:1px solid #ddd;margin:6px 20px}.Categories span.filter-group-title:first-child{border-top:none;margin-top:0;padding-top:2px}.Categories .consonant-Card-label{text-transform:uppercase}.Categories .consonant-NoResultsView{min-height:300px}@media screen and (max-width:480px){.consonant-Wrapper--1200MaxWidth .consonant-Wrapper-inner{width:92%}.Categories .filters-category{justify-content:left}}.consonant-BtnInfobit--dark,[class*=consonant-u-theme] .consonant-BtnInfobit--dark{border-color:#101010;background-color:#1e1e1e}.consonant-BtnInfobit--dark span,[class*=consonant-u-theme] .consonant-BtnInfobit--dark span{color:#e3e3e3!important}.consonant-BtnInfobit--dark:hover,[class*=consonant-u-theme] .consonant-BtnInfobit--dark:hover{border-color:#000;background-color:#000}.consonant-BtnInfobit--dark:hover span,[class*=consonant-u-theme] .consonant-BtnInfobit--dark:hover span{color:#fff!important}:lang(ja) .consonant-Wrapper,:lang(ko) .consonant-Wrapper,:lang(th) .consonant-Wrapper,:lang(tw) .consonant-Wrapper,:lang(zh) .consonant-Wrapper{font-family:inherit}:lang(ja) .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title,:lang(ja) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-title,:lang(ko) .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title,:lang(ko) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-title,:lang(th) .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title,:lang(th) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-title,:lang(tw) .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title,:lang(tw) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-title,:lang(zh) .consonant-CardsGrid .consonant-Card.half-height .consonant-Card-title,:lang(zh) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-title{font-size:15px;line-height:normal}:lang(ja) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-text,:lang(ko) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-text,:lang(th) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-text,:lang(tw) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-text,:lang(zh) .consonant-CardsGrid .consonant-Card.one-half .consonant-Card-text{line-height:1.275rem} \ No newline at end of file diff --git a/dist/main.js b/dist/main.js index 14823f15..71312e61 100644 --- a/dist/main.js +++ b/dist/main.js @@ -1,5 +1,5 @@ /*! - * Chimera UI Libraries - Build 0.23.24 (12/11/2024, 13:58:09) + * Chimera UI Libraries - Build 0.23.25 (12/12/2024, 14:19:59) * */ /******/ (function(modules) { // webpackBootstrap @@ -2389,7 +2389,10 @@ var getDateAscSort = exports.getDateAscSort = function getDateAscSort(cards) { var cardOneDate = (0, _general.getByPath)(cardOne, 'cardDate'); var cardTwoDate = (0, _general.getByPath)(cardTwo, 'cardDate'); if (cardOneDate && cardTwoDate) { - return cardOneDate !== cardTwoDate ? cardOneDate.localeCompare(cardTwoDate) : -1; + if (cardOneDate !== cardTwoDate) { + return cardOneDate.localeCompare(cardTwoDate); + } + return (cardOne.id || '').localeCompare(cardTwo.id || ''); } return 0; }); diff --git a/dist/main.min.js b/dist/main.min.js index 750042d0..f3fbef44 100644 --- a/dist/main.min.js +++ b/dist/main.min.js @@ -1,12 +1,12 @@ /*! - * Chimera UI Libraries - Build 0.23.24 (12/11/2024, 13:58:09) + * Chimera UI Libraries - Build 0.23.25 (12/12/2024, 14:19:59) * */!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=119)}([function(e,t,n){"use strict";(function(t){"production"===t.env.NODE_ENV?e.exports=n(210):e.exports=n(211)}).call(t,n(12))},function(e,t,n){(function(t){if("production"!==t.env.NODE_ENV){var r=n(109);e.exports=n(230)(r.isElement,!0)}else e.exports=n(231)()}).call(t,n(12))},function(e,t,n){var r=n(9),o=n(3),i=n(23),a=n(27),l=n(25),u="prototype",s=function(e,t,n){var c,f,d,p,h=e&s.F,m=e&s.G,v=e&s.S,y=e&s.P,g=e&s.B,b=m?r:v?r[t]||(r[t]={}):(r[t]||{})[u],w=m?o:o[t]||(o[t]={}),T=w[u]||(w[u]={});for(c in m&&(n=t),n)d=((f=!h&&b&&void 0!==b[c])?b:n)[c],p=g&&f?l(d,r):y&&"function"==typeof d?l(Function.call,d):d,b&&a(b,c,d,e&s.U),w[c]!=d&&i(w,c,p),y&&T[c]!=d&&(T[c]=d)};r.core=o,s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,e.exports=s},function(e,t){var n=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(41)("wks"),o=n(34),i=n(9).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSearchParam=t.getGlobalNavHeight=t.getLinkTarget=t.getEventBanner=t.getCurrentDate=t.isDateAfterInterval=t.isDateBeforeInterval=t.isDateWithinInterval=t.qs=t.mergeDeep=t.setByPath=t.debounce=t.getSelectedItemsCount=t.getByPath=t.template=t.getEndNumber=t.getStartNumber=t.getPageStartEnd=t.generateRange=t.stopPropagation=t.isAtleastOneFilterSelected=t.isNullish=t.parseToPrimitive=t.isObject=t.mapObject=t.sanitizeText=t.sortByKey=t.intersection=t.isSuperset=t.chainFromIterable=t.chain=t.removeDuplicatesByKey=t.truncateList=t.truncateString=t.readInclusionsFromLocalStorage=t.readBookmarksFromLocalStorage=t.saveBookmarksToLocalStorage=void 0;var r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};t.getTransitions=function(e){for(var t=[].concat(i(e)),n=h(),r=new o.MinPriorityQueue,a=0;a0&&r.enqueue(t[a],l);var u=Date.parse(Date.parse(t[a].endDate)-n);t[a].endDate&&u>0&&r.enqueue(null,u)}return r};var o=n(222);function i(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);tt(n)?1:0}))},/[a-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\s.]/g),s=(t.sanitizeText=function(e){if(!e)return"";var t=e.toLowerCase().trim(),n=t.match(u);return t=n?n.join(""):""},t.mapObject=function(e,t){var n={};return Object.keys(e).forEach((function(r){n[r]=t(e[r])})),n}),c=t.isObject=function(e){return!!e&&e.constructor===Object},f=(t.parseToPrimitive=function e(t){if(c(t))return s(t,e);if(Array.isArray(t))return t.map(e);try{return e(JSON.parse(t))}catch(e){return t}},t.isNullish=function(e){return null==e||Number.isNaN(e)},t.isAtleastOneFilterSelected=function(e){return l(e.map((function(e){return e.items}))).some((function(e){return e.selected}))},t.stopPropagation=function(e){return e.stopPropagation()},t.generateRange=function(e,t){var n=e,r=1,o=[];for(t0?t>=n:t<=n;)o.push(n),n+=r;return o},t.getPageStartEnd=function(e,t,n){var r=Math.floor(t/2),o=void 0,i=void 0;return n<=t+1?(o=1,i=n):(o=Math.min(Math.max(1,e-r),n-t),i=Math.max(Math.min(e+r,n),t+1)),[o,i]},t.getStartNumber=function(e,t){return 1===e?1:e*t-(t-1)},t.getEndNumber=function(e,t,n){var r=e*t;return r0&&void 0!==arguments[0]?arguments[0]:"",t=arguments[1];if(!t)return e;return e.replace(/{([A-z]*)}/gi,(function(e,n){return t[n]||e}))},t.getByPath=function(e,t,n){if(!e||!t)return n;for(var r=e,o=t.split("."),i=0;i1&&void 0!==arguments[1]?arguments[1]:0,n=void 0;return function(){for(var r=arguments.length,o=Array(r),i=0;i1?n-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{}).array,n=new URLSearchParams;return Object.entries(e).forEach((function(e){var o=r(e,2),i=o[0],a=o[1];f(i)?Array.isArray(a)?"comma"===t?n.append(i,encodeURIComponent(a)):n.append(i,encodeURIComponent(a.join("|"))):n.append(i,encodeURIComponent(a)):n.append(i,a)})),n.toString()}},t.isDateWithinInterval=function(e,t,n){var r=Date.parse(e),o=Date.parse(t),i=Date.parse(n);return o<=r&&i>r}),p=t.isDateBeforeInterval=function(e,t){return Date.parse(e)Date.parse(t)},t.getCurrentDate=function(){var e=new URLSearchParams(window.location.search),t=parseInt(e.get("servertime"),10),n=performance.now();return t?new Date(t+n):new Date});t.getEventBanner=function(e,t,n){var r=h();return d(r,e,t)?n.live||{backgroundColor:"",description:"",fontColor:"",icon:""}:p(r,e)?n.upcoming||{backgroundColor:"",description:"",fontColor:"",icon:""}:n.onDemand||{backgroundColor:"",description:"",fontColor:"",icon:""}};t.getLinkTarget=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.location.hostname;if(t||e.startsWith("#"))return t;var r="_blank";try{var o=new URL(e).hostname;n===(void 0===o?"":o)&&(r="_self")}catch(e){}return r},t.getGlobalNavHeight=function(){var e=document.querySelector("header");if(!e)return 20;var t=e.getAttribute("daa-lh")&&e.getAttribute("daa-lh").includes("bacom"),n=t?e:document.querySelector(".feds-header-wrapper");return t||n&&n.classList.contains("feds-header-wrapper--sticky")?e.offsetHeight+20:20},t.getSearchParam=function(e,t){return e&&e.startsWith("http")&&t?new URL(e).searchParams.get(t):null}},function(e,t,n){var r; /*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames -*/!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e="",t=0;t0&&void 0!==arguments[0]?arguments[0]:{}).isRegistered&&r(!0)})).catch((function(){var e,t,n,o,i,l=(e=(0,a.getByPath)(window,"feds.data",null),t=(0,a.getByPath)(e,"eventName",null),n=t&&e[t]?e[t]:null,o=n?n.isRegistered:null,i=(0,a.getByPath)(e,"isRegisteredForMax",null),!(!o&&!i));l&&r(l)}))}}),[n]),n}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){e.exports=!n(16)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){var r=n(8);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function l(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,s=[],c=!1,f=-1;function d(){c&&u&&(c=!1,u.length?s=u.concat(s):f=-1,s.length&&p())}function p(){if(!c){var e=l(d);c=!0;for(var t=s.length;t;){for(u=s,s=[];++f1)for(var n=1;n0?o(r(e),9007199254740991):0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.configType=t.sortOptionType=t.filterType=t.filterItemType=void 0;var r=n(1),o=n(39),i=[r.string,r.number],a=[r.string,r.number],l=[r.bool,r.string],u={title:r.string,endpoint:r.string,cardStyle:r.string,totalResultsText:r.string,resultsPerPage:(0,r.oneOfType)(i),totalCardLimit:(0,r.oneOfType)(a),displayTotalResults:(0,r.oneOfType)(l)},s=[r.string,(0,r.arrayOf)((0,r.shape)(o.cardType)),(0,r.arrayOf)(r.string)],c=[r.bool,r.string],f={enabled:(0,r.oneOfType)(c)},d=t.filterItemType={id:r.string,label:(0,r.oneOfType)([r.string,r.number])},p=t.filterType={id:r.string,group:r.string,items:(0,r.arrayOf)((0,r.shape)(d))},h=[r.string,(0,r.arrayOf)((0,r.shape)(p))],m={type:r.string,filterLogic:r.string,clearFilterText:r.string,leftPanelHeader:r.string,clearAllFiltersText:r.string,enabled:(0,r.oneOfType)(c),filters:(0,r.oneOfType)(h)},v={type:r.string,paginatorPrevLabel:r.string,paginatorNextLabel:r.string,loadMoreButtonText:r.string,enabled:(0,r.oneOfType)(c),loadMoreQuantityText:r.string,paginatorQuantityText:r.string},y={saveCardText:r.string,cardSavedIcon:r.string,unsaveCardText:r.string,cardUnsavedIcon:r.string,selectBookmarksIcon:r.string,enabled:(0,r.oneOfType)(c),bookmarksFilterTitle:r.string,unselectBookmarksIcon:r.string},g=[r.string,(0,r.arrayOf)(r.string)],b={leftPanelTitle:r.string,inputPlaceholderText:r.string,enabled:(0,r.oneOfType)(c),searchFields:(0,r.oneOfType)(g)},w=t.sortOptionType={sort:r.string,label:r.string},T={enabled:(0,r.oneOfType)(c),options:(0,r.oneOfType)([r.string,(0,r.arrayOf)((0,r.shape)(w))])};t.configType={sort:(0,r.shape)(T),search:(0,r.shape)(b),header:(0,r.shape)(f),bookmarks:(0,r.shape)(y),collection:(0,r.shape)(u),pagination:(0,r.shape)(v),filterPanel:(0,r.shape)(m),featuredCards:(0,r.oneOfType)(s)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sanitizeStr=t.getFeaturedCards=t.getRandomSort=t.getUpdatedCardBookmarkData=t.processCards=t.joinCardSets=t.getCardsMatchingSearch=t.getEventSort=t.getDateDescSort=t.getDateAscSort=t.getFeaturedSort=t.getModifiedAscSort=t.getModifiedDescSort=t.getTitleDescSort=t.getTitleAscSort=t.hasTag=t.getCardsMatchingQuery=t.highlightCard=t.getFilteredCards=t.getActivePanels=t.getActiveFilterIds=t.getBookmarkedCards=t.getCollectionCards=t.getTotalPages=t.getNumCardsToShow=t.shouldDisplayPaginator=void 0;var r,o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},i=Object.assign||function(e){for(var t=1;t0&&!(n>t)},t.getNumCardsToShow=function(e,t,n){return Math.min(e*t,n)},t.getTotalPages=function(e,t){return 0===e?0:Math.ceil(t/e)},t.getCollectionCards=function(e,t,n){return e?t:n},t.getBookmarkedCards=function(e){return e.filter((function(e){return e.isBookmarked}))},t.getActiveFilterIds=function(e){return(0,s.chainFromIterable)(e.map((function(e){return e.items}))).filter((function(e){return e.selected})).map((function(e){return e.id}))},t.getActivePanels=function(e){return new Set(e.map((function(e){return e.replace(/\/.*$/,"")})))};var d=function(e,t){var n=Date.now(),r=(0,f.convertDateStrToMs)(e.startDate),o=(0,f.convertDateStrToMs)(e.endDate),i=!(!r||!o),a=!!i&&(0,f.defineIsUpcoming)(n,r),l=!(!i||a)&&(0,f.defineIsOnDemand)(n,o),u=!(!i||a||l||!r);return!!i&&(!(!t.has(c.EVENT_TIMING_IDS.UPCOMING)||!a)||(!(!t.has(c.EVENT_TIMING_IDS.ONDEMAND)||!l)||!(!t.has(c.EVENT_TIMING_IDS.LIVE)||!u)))},p=(t.getFilteredCards=function(e,t,n,r,o,i){var a=new Set(t),l=(0,s.intersection)(a,new Set([c.EVENT_TIMING_IDS.LIVE,c.EVENT_TIMING_IDS.ONDEMAND,c.EVENT_TIMING_IDS.UPCOMING])),u=function(e,t){return e===t.XOR||e===t.AND}(r,o),f=function(e,t){return e===t.OR}(r,o),p=function(e){return e.has(c.EVENT_TIMING_IDS.LIVE)||e.has(c.EVENT_TIMING_IDS.ONDEMAND)||e.has(c.EVENT_TIMING_IDS.UPCOMING)}(a);l.forEach((function(e){return a.delete(e)}));var h=[],m=new Set;if(i&&i.length){for(var v=0;v1&&void 0!==arguments[1]?arguments[1]:[];return!(!t.length||"RegExp"!==e.constructor.name)&&t.some((function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).id,n=void 0===t?"":t;return n&&e.test(n)}))},t.getTitleAscSort=function(e){return e.sort((function(e,t){var n=(0,s.getByPath)(e,"contentArea.title"),r=(0,s.getByPath)(t,"contentArea.title");return n.localeCompare(r)}))}),m=(t.getTitleDescSort=function(e){return h(e).reverse()},t.getModifiedDescSort=function(e){return e.sort((function(e,t){var n=(0,s.getByPath)(e,"modifiedDate"),r=(0,s.getByPath)(t,"modifiedDate");return n&&r?r.localeCompare(n):0}))}),v=(t.getModifiedAscSort=function(e){return m(e).reverse()},t.getFeaturedSort=function(e){return e},t.getDateAscSort=function(e){return e.sort((function(e,t){var n=(0,s.getByPath)(e,"cardDate"),r=(0,s.getByPath)(t,"cardDate");return n&&r?n!==r?n.localeCompare(r):-1:0}))}),y=(t.getDateDescSort=function(e){return v(e).reverse()},t.getEventSort=function(){var e=arguments[1],t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((function(e){return{id:e.id,startDate:e.contentArea.dateDetailText.startTime,endDate:e.contentArea.dateDetailText.endTime,tags:e.tags||[]}})),n=(0,f.eventTiming)(t,e),r=n.visibleSessions.filter((function(t){return t.tags.includes(e)})).map((function(e){return{id:e.id,contentArea:{dateDetailText:{startTime:e.startDate,endTime:e.endDate}},tags:e.tags}}));return{nextTransitionMs:n.nextTransitionMs,visibleSessions:r}},t.getCardsMatchingSearch=function(e,t,n){if(!e)return t;var r=(0,s.sanitizeText)(e);return p(t,n,r)},t.joinCardSets=function(e,t){return e.concat(t)}),g=(t.processCards=function(e,t){return(0,s.removeDuplicatesByKey)(y(e,t),"id")},t.getUpdatedCardBookmarkData=function(e,t){return e.map((function(e){return i({},e,{isBookmarked:t.some((function(t){return t===e.id}))})}))},new Map);function b(e,t){return Math.floor(Math.random()*(t-e))+e}t.getRandomSort=function(e,t,n,r){if(!g.get(t)){var i=function(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var l,u=Object.entries(e)[Symbol.iterator]();!(r=(l=u.next()).done);r=!0){var s=l.value,c=o(s,2),f=c[0],d=c[1];if(n.length")}},function(e,t,n){var r=n(13),o=n(33);e.exports=n(10)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(29);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(36),o=n(33),i=n(18),a=n(32),l=n(24),u=n(72),s=Object.getOwnPropertyDescriptor;t.f=n(10)?s:function(e,t){if(e=i(e),t=a(t,!0),u)try{return s(e,t)}catch(e){}if(l(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t,n){var r=n(9),o=n(23),i=n(24),a=n(34)("src"),l=n(124),u="toString",s=(""+l).split(u);n(3).inspectSource=function(e){return l.call(e)},(e.exports=function(e,t,n,l){var u="function"==typeof n;u&&(i(n,"name")||o(n,"name",t)),e[t]!==n&&(u&&(i(n,a)||o(n,a,e[t]?""+e[t]:s.join(String(t)))),e===r?e[t]=n:l?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,u,(function(){return"function"==typeof this&&this[a]||l.call(this)}))},function(e,t){e.exports=!1},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(75),o=n(55);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){var r=n(8);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(30),o=n(4)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){"use strict"; +*/!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e="",t=0;t0&&void 0!==arguments[0]?arguments[0]:{}).isRegistered&&r(!0)})).catch((function(){var e,t,n,o,i,l=(e=(0,a.getByPath)(window,"feds.data",null),t=(0,a.getByPath)(e,"eventName",null),n=t&&e[t]?e[t]:null,o=n?n.isRegistered:null,i=(0,a.getByPath)(e,"isRegisteredForMax",null),!(!o&&!i));l&&r(l)}))}}),[n]),n}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){e.exports=!n(16)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){var r=n(8);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function l(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,s=[],c=!1,f=-1;function d(){c&&u&&(c=!1,u.length?s=u.concat(s):f=-1,s.length&&p())}function p(){if(!c){var e=l(d);c=!0;for(var t=s.length;t;){for(u=s,s=[];++f1)for(var n=1;n0?o(r(e),9007199254740991):0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.configType=t.sortOptionType=t.filterType=t.filterItemType=void 0;var r=n(1),o=n(39),i=[r.string,r.number],a=[r.string,r.number],l=[r.bool,r.string],u={title:r.string,endpoint:r.string,cardStyle:r.string,totalResultsText:r.string,resultsPerPage:(0,r.oneOfType)(i),totalCardLimit:(0,r.oneOfType)(a),displayTotalResults:(0,r.oneOfType)(l)},s=[r.string,(0,r.arrayOf)((0,r.shape)(o.cardType)),(0,r.arrayOf)(r.string)],c=[r.bool,r.string],f={enabled:(0,r.oneOfType)(c)},d=t.filterItemType={id:r.string,label:(0,r.oneOfType)([r.string,r.number])},p=t.filterType={id:r.string,group:r.string,items:(0,r.arrayOf)((0,r.shape)(d))},h=[r.string,(0,r.arrayOf)((0,r.shape)(p))],m={type:r.string,filterLogic:r.string,clearFilterText:r.string,leftPanelHeader:r.string,clearAllFiltersText:r.string,enabled:(0,r.oneOfType)(c),filters:(0,r.oneOfType)(h)},v={type:r.string,paginatorPrevLabel:r.string,paginatorNextLabel:r.string,loadMoreButtonText:r.string,enabled:(0,r.oneOfType)(c),loadMoreQuantityText:r.string,paginatorQuantityText:r.string},y={saveCardText:r.string,cardSavedIcon:r.string,unsaveCardText:r.string,cardUnsavedIcon:r.string,selectBookmarksIcon:r.string,enabled:(0,r.oneOfType)(c),bookmarksFilterTitle:r.string,unselectBookmarksIcon:r.string},g=[r.string,(0,r.arrayOf)(r.string)],b={leftPanelTitle:r.string,inputPlaceholderText:r.string,enabled:(0,r.oneOfType)(c),searchFields:(0,r.oneOfType)(g)},w=t.sortOptionType={sort:r.string,label:r.string},T={enabled:(0,r.oneOfType)(c),options:(0,r.oneOfType)([r.string,(0,r.arrayOf)((0,r.shape)(w))])};t.configType={sort:(0,r.shape)(T),search:(0,r.shape)(b),header:(0,r.shape)(f),bookmarks:(0,r.shape)(y),collection:(0,r.shape)(u),pagination:(0,r.shape)(v),filterPanel:(0,r.shape)(m),featuredCards:(0,r.oneOfType)(s)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sanitizeStr=t.getFeaturedCards=t.getRandomSort=t.getUpdatedCardBookmarkData=t.processCards=t.joinCardSets=t.getCardsMatchingSearch=t.getEventSort=t.getDateDescSort=t.getDateAscSort=t.getFeaturedSort=t.getModifiedAscSort=t.getModifiedDescSort=t.getTitleDescSort=t.getTitleAscSort=t.hasTag=t.getCardsMatchingQuery=t.highlightCard=t.getFilteredCards=t.getActivePanels=t.getActiveFilterIds=t.getBookmarkedCards=t.getCollectionCards=t.getTotalPages=t.getNumCardsToShow=t.shouldDisplayPaginator=void 0;var r,o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},i=Object.assign||function(e){for(var t=1;t0&&!(n>t)},t.getNumCardsToShow=function(e,t,n){return Math.min(e*t,n)},t.getTotalPages=function(e,t){return 0===e?0:Math.ceil(t/e)},t.getCollectionCards=function(e,t,n){return e?t:n},t.getBookmarkedCards=function(e){return e.filter((function(e){return e.isBookmarked}))},t.getActiveFilterIds=function(e){return(0,s.chainFromIterable)(e.map((function(e){return e.items}))).filter((function(e){return e.selected})).map((function(e){return e.id}))},t.getActivePanels=function(e){return new Set(e.map((function(e){return e.replace(/\/.*$/,"")})))};var d=function(e,t){var n=Date.now(),r=(0,f.convertDateStrToMs)(e.startDate),o=(0,f.convertDateStrToMs)(e.endDate),i=!(!r||!o),a=!!i&&(0,f.defineIsUpcoming)(n,r),l=!(!i||a)&&(0,f.defineIsOnDemand)(n,o),u=!(!i||a||l||!r);return!!i&&(!(!t.has(c.EVENT_TIMING_IDS.UPCOMING)||!a)||(!(!t.has(c.EVENT_TIMING_IDS.ONDEMAND)||!l)||!(!t.has(c.EVENT_TIMING_IDS.LIVE)||!u)))},p=(t.getFilteredCards=function(e,t,n,r,o,i){var a=new Set(t),l=(0,s.intersection)(a,new Set([c.EVENT_TIMING_IDS.LIVE,c.EVENT_TIMING_IDS.ONDEMAND,c.EVENT_TIMING_IDS.UPCOMING])),u=function(e,t){return e===t.XOR||e===t.AND}(r,o),f=function(e,t){return e===t.OR}(r,o),p=function(e){return e.has(c.EVENT_TIMING_IDS.LIVE)||e.has(c.EVENT_TIMING_IDS.ONDEMAND)||e.has(c.EVENT_TIMING_IDS.UPCOMING)}(a);l.forEach((function(e){return a.delete(e)}));var h=[],m=new Set;if(i&&i.length){for(var v=0;v1&&void 0!==arguments[1]?arguments[1]:[];return!(!t.length||"RegExp"!==e.constructor.name)&&t.some((function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).id,n=void 0===t?"":t;return n&&e.test(n)}))},t.getTitleAscSort=function(e){return e.sort((function(e,t){var n=(0,s.getByPath)(e,"contentArea.title"),r=(0,s.getByPath)(t,"contentArea.title");return n.localeCompare(r)}))}),m=(t.getTitleDescSort=function(e){return h(e).reverse()},t.getModifiedDescSort=function(e){return e.sort((function(e,t){var n=(0,s.getByPath)(e,"modifiedDate"),r=(0,s.getByPath)(t,"modifiedDate");return n&&r?r.localeCompare(n):0}))}),v=(t.getModifiedAscSort=function(e){return m(e).reverse()},t.getFeaturedSort=function(e){return e},t.getDateAscSort=function(e){return e.sort((function(e,t){var n=(0,s.getByPath)(e,"cardDate"),r=(0,s.getByPath)(t,"cardDate");return n&&r?n!==r?n.localeCompare(r):(e.id||"").localeCompare(t.id||""):0}))}),y=(t.getDateDescSort=function(e){return v(e).reverse()},t.getEventSort=function(){var e=arguments[1],t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((function(e){return{id:e.id,startDate:e.contentArea.dateDetailText.startTime,endDate:e.contentArea.dateDetailText.endTime,tags:e.tags||[]}})),n=(0,f.eventTiming)(t,e),r=n.visibleSessions.filter((function(t){return t.tags.includes(e)})).map((function(e){return{id:e.id,contentArea:{dateDetailText:{startTime:e.startDate,endTime:e.endDate}},tags:e.tags}}));return{nextTransitionMs:n.nextTransitionMs,visibleSessions:r}},t.getCardsMatchingSearch=function(e,t,n){if(!e)return t;var r=(0,s.sanitizeText)(e);return p(t,n,r)},t.joinCardSets=function(e,t){return e.concat(t)}),g=(t.processCards=function(e,t){return(0,s.removeDuplicatesByKey)(y(e,t),"id")},t.getUpdatedCardBookmarkData=function(e,t){return e.map((function(e){return i({},e,{isBookmarked:t.some((function(t){return t===e.id}))})}))},new Map);function b(e,t){return Math.floor(Math.random()*(t-e))+e}t.getRandomSort=function(e,t,n,r){if(!g.get(t)){var i=function(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var l,u=Object.entries(e)[Symbol.iterator]();!(r=(l=u.next()).done);r=!0){var s=l.value,c=o(s,2),f=c[0],d=c[1];if(n.length")}},function(e,t,n){var r=n(13),o=n(33);e.exports=n(10)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(29);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(36),o=n(33),i=n(18),a=n(32),l=n(24),u=n(72),s=Object.getOwnPropertyDescriptor;t.f=n(10)?s:function(e,t){if(e=i(e),t=a(t,!0),u)try{return s(e,t)}catch(e){}if(l(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t,n){var r=n(9),o=n(23),i=n(24),a=n(34)("src"),l=n(124),u="toString",s=(""+l).split(u);n(3).inspectSource=function(e){return l.call(e)},(e.exports=function(e,t,n,l){var u="function"==typeof n;u&&(i(n,"name")||o(n,"name",t)),e[t]!==n&&(u&&(i(n,a)||o(n,a,e[t]?""+e[t]:s.join(String(t)))),e===r?e[t]=n:l?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,u,(function(){return"function"==typeof this&&this[a]||l.call(this)}))},function(e,t){e.exports=!1},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(75),o=n(55);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){var r=n(8);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(30),o=n(4)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){"use strict"; /* object-assign (c) Sindre Sorhus diff --git a/dist/main.source.js b/dist/main.source.js index 139f8750..866658f7 100644 --- a/dist/main.source.js +++ b/dist/main.source.js @@ -205,7 +205,7 @@ eval("// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitizeStr = exports.getFeaturedCards = exports.getRandomSort = exports.getUpdatedCardBookmarkData = exports.processCards = exports.joinCardSets = exports.getCardsMatchingSearch = exports.getEventSort = exports.getDateDescSort = exports.getDateAscSort = exports.getFeaturedSort = exports.getModifiedAscSort = exports.getModifiedDescSort = exports.getTitleDescSort = exports.getTitleAscSort = exports.hasTag = exports.getCardsMatchingQuery = exports.highlightCard = exports.getFilteredCards = exports.getActivePanels = exports.getActiveFilterIds = exports.getBookmarkedCards = exports.getCollectionCards = exports.getTotalPages = exports.getNumCardsToShow = exports.shouldDisplayPaginator = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _immer = __webpack_require__(270);\n\nvar _immer2 = _interopRequireDefault(_immer);\n\nvar _rendering = __webpack_require__(40);\n\nvar _general = __webpack_require__(5);\n\nvar _constants = __webpack_require__(15);\n\nvar _eventSort = __webpack_require__(271);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * Needs to be explicitly called by immer - Needed for IE 11 support\n * @type {Function}\n */\n(0, _immer.enableES5)();\n\n/**\n * Determines whether paginator component should display\n * @param {Boolean} enabled - Authored flag whether component should display or not\n * @param {Number} totalCardLimit - Authored limit for how many cards should display\n * @param {Number} totalResults - Total cards in collection\n * @returns {Boolean} - Whether Paginator should display or not\n */\nvar shouldDisplayPaginator = exports.shouldDisplayPaginator = function shouldDisplayPaginator(enabled, totalCardLimit, totalResults) {\n var totalCardLimitNotZero = totalCardLimit > 0;\n var cardLengthExceedsDisplayLimit = totalResults > totalCardLimit;\n\n return enabled && totalCardLimitNotZero && !cardLengthExceedsDisplayLimit;\n};\n\n/**\n * Determines how many cards to show\n * @param {Number} resultsPerPage - How many cards should show per page (Authored Field)\n * @param {Number} currentPage - Current page user is on\n * @param {Number} totalResults - Total cards in collection\n * @returns {Number} - Number of cards to show\n */\nvar getNumCardsToShow = exports.getNumCardsToShow = function getNumCardsToShow(resultsPerPage, currentPage, totalResults) {\n return Math.min(resultsPerPage * currentPage, totalResults);\n};\n\n/**\n * Gets Total Page Count (For Paginator Component)\n * @param {Number} resultsPerPage - How many cards should show per page (Authored Field)\n * @param {Number} totalResults - Total cards in collection\n * @returns {Number} - Total number of pages\n */\nvar getTotalPages = exports.getTotalPages = function getTotalPages(resultsPerPage, totalResults) {\n if (resultsPerPage === 0) return 0;\n return Math.ceil(totalResults / resultsPerPage);\n};\n\n/**\n * Determines whether to show collection cards or bookmarked cards only\n * (If author chooses bookmarks only collection)\n\n * @param {Boolean} showBookmarksOnly - Authored Flag to Force Card Collection To\n * Only Show Bookmarks\n * @param {Array} bookmarkedCards - Bookmarked cards only\n * @param {Array} collectionCards - All cards\n * @returns {Array} - Which collection of cards to show\n */\nvar getCollectionCards = exports.getCollectionCards = function getCollectionCards(showBookmarksOnly, bookmarkedCards, collectionCards) {\n return showBookmarksOnly ? bookmarkedCards : collectionCards;\n};\n\n/**\n * Filter to get all bookmarked cards\n * @param {Array} collectionCards - All cards\n * @returns {Array} - All bookmarked cards\n */\nvar getBookmarkedCards = exports.getBookmarkedCards = function getBookmarkedCards(collectionCards) {\n return collectionCards.filter(function (card) {\n return card.isBookmarked;\n });\n};\n\n/**\n * Gets all filters checked by a user\n * @param {Array} filters - All filters on page\n * @returns {Array} - All checked filters by user\n */\nvar getActiveFilterIds = exports.getActiveFilterIds = function getActiveFilterIds(filters) {\n return (0, _general.chainFromIterable)(filters.map(function (f) {\n return f.items;\n })).filter(function (item) {\n return item.selected;\n }).map(function (item) {\n return item.id;\n });\n};\n\n/**\n * Gets all filter panels with filters checked by a user\n * @param {Array} activeFilters - All filters checked\n * @returns {Set} - Set of filter panels with filters checked on the page\n */\nvar getActivePanels = exports.getActivePanels = function getActivePanels(activeFilters) {\n return new Set(activeFilters.map(function (filter) {\n return filter.replace(/\\/.*$/, '');\n }));\n};\n\n/**\n * Helper method to dermine whether author chose XOR or AND type filtering\n * @param {String} filterType - Filter used in collection\n * @param {Object} filterTypes - All possible filters\n * @returns {Boolean} - Whether collection is using a XOR or AND type filtering\n */\nvar getUsingXorAndFilter = function getUsingXorAndFilter(filterType, filterTypes) {\n return filterType === filterTypes.XOR || filterType === filterTypes.AND;\n};\n\n/**\n * Helper method to dermine whether author chose OR type filtering\n * @param {String} filterType - Filter used in collection\n * @param {Object} filterTypes - All possible filters\n * @returns {Boolean} - Whether collection is using OR type filtering\n */\nvar getUsingOrFilter = function getUsingOrFilter(filterType, filterTypes) {\n return filterType === filterTypes.OR;\n};\n\n/**\n * Helper method to determine whether we are doing event filtering from the side bar tags\n * @param {Set} activeFilterSet\n * @returns {Boolean} - Whether collection has an event filter\n */\nvar getUsingTimingFilter = function getUsingTimingFilter(activeFiltersSet) {\n return activeFiltersSet.has(_constants.EVENT_TIMING_IDS.LIVE) || activeFiltersSet.has(_constants.EVENT_TIMING_IDS.ONDEMAND) || activeFiltersSet.has(_constants.EVENT_TIMING_IDS.UPCOMING);\n};\n\n/**\n * Helper method to determine whether the card is within event timing\n * @param {Object} card\n * @param {Set} timing\n * @returns {Boolean} - whether the card falls within selected timing options\n */\nvar checkEventTiming = function checkEventTiming(card, timing) {\n var curMs = Date.now();\n // Times in milliseconds\n var startMs = (0, _eventSort.convertDateStrToMs)(card.startDate);\n var endMs = (0, _eventSort.convertDateStrToMs)(card.endDate);\n // Timed categories\n var isTimed = !!(startMs && endMs);\n var isUpComing = isTimed ? (0, _eventSort.defineIsUpcoming)(curMs, startMs) : false;\n var isOnDemand = isTimed && !isUpComing ? (0, _eventSort.defineIsOnDemand)(curMs, endMs) : false;\n var isLive = !!(isTimed && !isUpComing && !isOnDemand && startMs);\n\n // if you have timing filters active and there is no timing on the card it should be rejected\n if (!isTimed) return false;\n if (timing.has(_constants.EVENT_TIMING_IDS.UPCOMING) && isUpComing) return true;else if (timing.has(_constants.EVENT_TIMING_IDS.ONDEMAND) && isOnDemand) return true;else if (timing.has(_constants.EVENT_TIMING_IDS.LIVE) && isLive) return true;\n return false;\n};\n\n/**\n * Will return all cards that match a set of filters\n * @param {Array} cards - All cards in the collection\n * @param {Array} activeFilters - All filters selected by user\n * @param {Array} activePanels - Active filters panels selected by user\n * @param {String} filterType - Filter used in collection\n * @param {Object} filterTypes - All possible filters\n * @returns {Array} - All cards that match filter options\n */\n// eslint-disable-next-line max-len\nvar getFilteredCards = exports.getFilteredCards = function getFilteredCards(cards, activeFilters, activePanels, filterType, filterTypes, categories) {\n var activeFiltersSet = new Set(activeFilters);\n var timingSet = (0, _general.intersection)(activeFiltersSet, new Set([_constants.EVENT_TIMING_IDS.LIVE, _constants.EVENT_TIMING_IDS.ONDEMAND, _constants.EVENT_TIMING_IDS.UPCOMING]));\n var usingXorAndFilter = getUsingXorAndFilter(filterType, filterTypes);\n var usingOrFilter = getUsingOrFilter(filterType, filterTypes);\n var usingTimingFilter = getUsingTimingFilter(activeFiltersSet);\n // remove the time elements from the active filter set before you actually filter\n timingSet.forEach(function (filter) {\n return activeFiltersSet.delete(filter);\n });\n\n var temp = [];\n var set = new Set();\n if (categories && categories.length) {\n for (var i = 0; i < cards.length; i++) {\n var card = cards[i];\n for (var j = 0; j < categories.length; j++) {\n var category = categories[j];\n for (var k = 0; k < card.tags.length; k++) {\n var currTag = card.tags[k];\n if (currTag.id.includes(category) && !set.has(card.id)) {\n set.add(card.id);\n temp.push(card);\n }\n }\n }\n }\n /* eslint-disable-next-line no-param-reassign */\n cards = temp;\n }\n\n if (activeFiltersSet.size === 0 && !usingTimingFilter) return cards;\n\n return cards.filter(function (card) {\n if (!card.tags && !usingTimingFilter) {\n return false;\n } else if (usingTimingFilter && !checkEventTiming(card, timingSet)) {\n return false;\n } else if (usingTimingFilter && checkEventTiming(card, timingSet) && activeFiltersSet.size === 0) {\n // if the only filters being performed are about event timing\n return true;\n }\n // you proceed to check the other tags in the cards after the time filter checks\n var tagIds = new Set(card.tags.map(function (tag) {\n return tag.id;\n }));\n\n if (usingXorAndFilter) {\n return (0, _general.isSuperset)(tagIds, activeFiltersSet);\n } else if (usingOrFilter && activePanels.size < 2) {\n return (0, _general.intersection)(tagIds, activeFiltersSet).size;\n } else if (usingOrFilter) {\n // check if card' tags panels include all panels with selected filters\n var tagPanels = new Set(card.tags.map(function (tag) {\n return tag.id.replace(/\\/.*$/, '');\n }));\n if (!(0, _general.isSuperset)(tagPanels, activePanels)) return false;\n\n // check if card' tags include all panels with selected filters\n var allPanelsMatch = true;\n // eslint-disable-next-line no-restricted-syntax\n\n var _loop = function _loop(panel) {\n var filtersCheckedInPanel = new Set([].concat(_toConsumableArray(activeFiltersSet)).filter(function (id) {\n return id.includes(panel, 0);\n }));\n if (!(0, _general.intersection)(tagIds, filtersCheckedInPanel).size) {\n allPanelsMatch = false;\n }\n };\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = activePanels[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var panel = _step.value;\n\n _loop(panel);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return allPanelsMatch;\n }\n throw new Error('Unrecognized filter type: ' + filterType);\n });\n};\n\n/**\n * If a card matches a search query, this method will highlight it\n * @param {Array} baseCard - Card to highlight\n * @param {Array} searchField - Field that matches Query\n * @param {String} query - The users search query\n * @returns {Card} The highlighted caard\n */\nvar highlightCard = exports.highlightCard = function highlightCard(baseCard, searchField, query) {\n return (0, _immer2.default)(baseCard, function (draftCard) {\n var searchFieldValue = (0, _general.getByPath)(draftCard, searchField, null);\n if (searchFieldValue === null || searchFieldValue === '') return;\n var highlightedSearchFieldValue = (0, _rendering.HighlightSearchField)(searchFieldValue, query);\n (0, _general.setByPath)(draftCard, searchField, highlightedSearchFieldValue);\n });\n};\n\n/**\n * If a card matches a search query, this method will highlight it\n * @param {Array} searchField - Field that matches Query\n * @param {Array} card - Card to check\n * @param {String} query - The users search query\n * @returns {Boolean} If the card matches the user's search query\n */\nvar cardMatchesQuery = function cardMatchesQuery(searchField, card, searchQuery) {\n var searchFieldValue = (0, _general.getByPath)(card, searchField, '');\n var cleanSearchFieldValue = (0, _general.sanitizeText)(searchFieldValue);\n return cleanSearchFieldValue.includes(searchQuery);\n};\n\n/**\n * Helper to implement Set() data structure w/ Vanilla Arrays\n * Would've used new Set(), but polyfill has bug in IE11 converting Array.from(new Set())\n *\n * @param {Array} cards\n * @return {Array} - Unique Card Set from Cards (filtering based off unique card ids)\n */\nvar getUniqueCardSet = function getUniqueCardSet(cards) {\n var uniqueCardSet = [];\n cards.forEach(function (card) {\n var cardNotInSet = uniqueCardSet.findIndex(function (element) {\n return element.id === card.id;\n }) <= -1;\n if (cardNotInSet) {\n uniqueCardSet.push(card);\n }\n });\n return uniqueCardSet;\n};\n\n/**\n * Gets all cards that matches a users search query\n * @param {Array} cards - All cards in the card collection\n * @param {Array} searchFields - All authored search fields to check\n * @param {String} query - The users search query\n * @returns {Array} - All cards that match the user's query for a given set of search fields\n */\nvar getCardsMatchingQuery = exports.getCardsMatchingQuery = function getCardsMatchingQuery(cards, searchFields, query) {\n var cardsMatchingQuery = [];\n cards.forEach(function (card) {\n searchFields.forEach(function (searchField) {\n if (cardMatchesQuery(searchField, card, query)) {\n cardsMatchingQuery.push(card);\n }\n });\n });\n return getUniqueCardSet(cardsMatchingQuery);\n};\n/**\n * @func hasTag\n * @desc Does current entity have a specific tag?\n * @param {RegExp} compare a regEx pattern to test for\n * @param {Array} tags an array of tags\n */\nvar hasTag = exports.hasTag = function hasTag(compare) {\n var tags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (!tags.length || compare.constructor.name !== 'RegExp') return false;\n\n return tags.some(function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$id = _ref.id,\n id = _ref$id === undefined ? '' : _ref$id;\n\n return id && compare.test(id);\n });\n};\n\n/**\n * Returns all cards title sorted (A-Z)\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by title\n */\nvar getTitleAscSort = exports.getTitleAscSort = function getTitleAscSort(cards) {\n return cards.sort(function (cardOne, cardTwo) {\n var cardOneTitle = (0, _general.getByPath)(cardOne, 'contentArea.title');\n var cardTwoTitle = (0, _general.getByPath)(cardTwo, 'contentArea.title');\n return cardOneTitle.localeCompare(cardTwoTitle);\n });\n};\n\n/**\n * Returns all cards title sorted (Z-A)\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by title\n */\nvar getTitleDescSort = exports.getTitleDescSort = function getTitleDescSort(cards) {\n return getTitleAscSort(cards).reverse();\n};\n\n/**\n * Returns all cards sorted by date modified newest to oldest\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by title\n */\nvar getModifiedDescSort = exports.getModifiedDescSort = function getModifiedDescSort(cards) {\n return cards.sort(function (cardOne, cardTwo) {\n var cardOneModDate = (0, _general.getByPath)(cardOne, 'modifiedDate');\n var cardTwoModDate = (0, _general.getByPath)(cardTwo, 'modifiedDate');\n if (cardOneModDate && cardTwoModDate) {\n return cardTwoModDate.localeCompare(cardOneModDate);\n }\n return 0;\n });\n};\n\n/**\n * Returns all cards sorted by date modified oldest to newest\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by title\n */\nvar getModifiedAscSort = exports.getModifiedAscSort = function getModifiedAscSort(cards) {\n return getModifiedDescSort(cards).reverse();\n};\n\n/**\n * Returns all cards Featured sorted\n * This just returns the original cards returned by Chimera IO\n * Chimera IO is responsible for handling featured sort\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - Cards in the original order given by Chimera IO\n */\nvar getFeaturedSort = exports.getFeaturedSort = function getFeaturedSort(cards) {\n return cards;\n};\n\n/**\n * Returns all Cards Date Sorted (Old To New)\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by Date\n */\nvar getDateAscSort = exports.getDateAscSort = function getDateAscSort(cards) {\n return cards.sort(function (cardOne, cardTwo) {\n var cardOneDate = (0, _general.getByPath)(cardOne, 'cardDate');\n var cardTwoDate = (0, _general.getByPath)(cardTwo, 'cardDate');\n if (cardOneDate && cardTwoDate) {\n return cardOneDate !== cardTwoDate ? cardOneDate.localeCompare(cardTwoDate) : -1;\n }\n return 0;\n });\n};\n\n/**\n * Returns all Cards Date Sorted (New To Old)\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by Date\n */\nvar getDateDescSort = exports.getDateDescSort = function getDateDescSort(cards) {\n return getDateAscSort(cards).reverse();\n};\n\n/**\n * @func getEventSort\n * @desc This method, if needed, sets up Timing features for a collection\n (1) Has to check each card for card.contentArea.dateDetailText.startTime\n || endTime, if neither the card gets pushed to back of stack.\n (2) There are six categories for consideration\n a. Live: Current Time > Start Time && Current Time < End Time\n b. Upcoming: Current Time < Start Time and does not have\n \"OnDemand scheduled\" tag which cannot show until it is onDemand\n c. \"OnDemand scheduled\": UpComing, and has \"OnDemand scheduled\" tag,\n will not be seen until it is OnDemand.\n d. OnDemand: Current Time > End Time, does not have \"Live Expired\" tag\n e. Live Expired: OnDemand, has \"live-expired\" tag, and is no longer shown.\n f. All other cards, not having startTime || endTime.\n * @param {Array} cards - All cards in the card collection\n * @param {Object} urlState - URL search/query Params.\n * @returns {Array} visibleCards\n */\nvar getEventSort = exports.getEventSort = function getEventSort() {\n var cards = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var eventFilter = arguments[1];\n\n var transformedCards = cards.map(function (card) {\n return {\n id: card.id,\n startDate: card.contentArea.dateDetailText.startTime,\n endDate: card.contentArea.dateDetailText.endTime,\n tags: card.tags || []\n };\n });\n\n var result = (0, _eventSort.eventTiming)(transformedCards, eventFilter);\n\n var visibleSessions = result.visibleSessions.filter(function (session) {\n return session.tags.includes(eventFilter);\n }).map(function (session) {\n return {\n id: session.id,\n contentArea: {\n dateDetailText: {\n startTime: session.startDate,\n endTime: session.endDate\n }\n },\n tags: session.tags\n };\n });\n\n return {\n nextTransitionMs: result.nextTransitionMs,\n visibleSessions: visibleSessions\n };\n};\n/**\n * Gets all cards that matches a users search query\n * @param {String} query - The users search query\n * @param {Array} cards - All cards in the card collection\n * @param {Array} searchFields - All authored search fields to check\n * @returns {Array} - All cards that match the user's query for a given set of search fields\n */\nvar getCardsMatchingSearch = exports.getCardsMatchingSearch = function getCardsMatchingSearch(query, cards, searchFields) {\n if (!query) {\n return cards;\n }\n var searchQuery = (0, _general.sanitizeText)(query);\n var cardsMatchingQuery = getCardsMatchingQuery(cards, searchFields, searchQuery);\n return cardsMatchingQuery;\n};\n\n/**\n * Joins two sets of cards\n * @param {Array} cardSetOne - Set one of cards to join\n * @param {Array} cardSetTwo - Set two of cards to join\n * @returns {Array} - Cards sets one and two joined\n */\nvar joinCardSets = exports.joinCardSets = function joinCardSets(cardSetOne, cardSetTwo) {\n return cardSetOne.concat(cardSetTwo);\n};\n\n/**\n * Processes featured cards with raw cards received from API response\n * @param {Array} featuredCards - Authored Featured Cards\n * @param {Array} rawCards - Cards from API response\n * @returns {Array} - Set of cards processed\n */\nvar processCards = exports.processCards = function processCards(featuredCards, rawCards) {\n return (0, _general.removeDuplicatesByKey)(joinCardSets(featuredCards, rawCards), 'id');\n};\n\n/**\n * Helper method for effect that adds bookmark meta data to cards\n * @param {Array} cards - All cards in card collection\n * @param {Array} bookmarkedCardIds - All bookmarked card ids\n * @returns {Array} - Cards with bookmark meta data\n */\nvar getUpdatedCardBookmarkData = exports.getUpdatedCardBookmarkData = function getUpdatedCardBookmarkData(cards, bookmarkedCardIds) {\n return cards.map(function (card) {\n return _extends({}, card, {\n isBookmarked: bookmarkedCardIds.some(function (i) {\n return i === card.id;\n })\n });\n });\n};\n\nvar cache = new Map();\n\n/**\n * Returns a random number from [start, bound)\n * @param {int} start - Starting bound (inclusive)\n * @param {int} end - Ending bound (exclusive)\n * @returns {int} - A random integer between [start, bound)\n */\nfunction getRandom(start, end) {\n return Math.floor(Math.random() * (end - start)) + start;\n}\n\n/**\n * Returns a random sample of sampleSize from an array stream\n * @param {Array} stream - An array of items to select a random sample from\n * @param {int} sampleSize - The size of the random sample\n * @returns {Array} - A random sample from the array stream\n */\nfunction reservoirSample(stream, sampleSize) {\n var reservoir = [];\n /* eslint-disable-next-line no-restricted-syntax */\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.entries(stream)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref2 = _step2.value;\n\n var _ref3 = _slicedToArray(_ref2, 2);\n\n var i = _ref3[0];\n var val = _ref3[1];\n\n if (reservoir.length < sampleSize) {\n reservoir.push(val);\n } else {\n var random = getRandom(0, i + 1);\n if (random < sampleSize) {\n reservoir[random] = val;\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return reservoir;\n}\n\n/**\n * Returns the input array randomly shuffled using the Fisher-Yates algorithm.\n *\n * @param {Array} arr - Array to be shuffled\n * @returns {Array} - The shuffled array\n */\nfunction fischerYatesShuffle(arr) {\n var currentIndex = arr.length;\n var randomIndex = void 0;\n while (currentIndex !== 0) {\n randomIndex = getRandom(0, currentIndex);\n /* eslint-disable-next-line no-plusplus */\n currentIndex--;\n var _ref4 = [arr[randomIndex], arr[currentIndex]];\n arr[currentIndex] = _ref4[0];\n arr[randomIndex] = _ref4[1];\n }\n return arr;\n}\n\n/**\n * Returns an an array of randomly sorted cards.\n *\n * If the cards for a given card collection have already been sorted, return from cache.\n * Otherwise sort randomly and cache result.\n *\n * @param {Array} cards - cards to be randomly sorted\n * @param {int} id - Id of the card collection the cards belong to.\n * @param {int} sampleSize - sample size used for the random sample\n * @returns {Array} - An array of randomly sorted cards\n */\nvar getRandomSort = exports.getRandomSort = function getRandomSort(cards, id, sampleSize, reservoirSize) {\n if (!cache.get(id)) {\n var stream = fischerYatesShuffle(cards.slice(0, reservoirSize));\n var randomSample = reservoirSample(stream, sampleSize);\n cache.set(id, randomSample);\n }\n return cache.get(id);\n};\n\nvar getFeaturedCards = exports.getFeaturedCards = function getFeaturedCards(ids, cards) {\n var ans = [];\n /* eslint-disable no-restricted-syntax */\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = ids[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var id = _step3.value;\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = cards[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var card = _step4.value;\n\n if (card.id === id) {\n var c = JSON.parse(JSON.stringify(card)); // Deep clone using JSON methods\n c.isFeatured = true;\n ans.push(c);\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return ans;\n};\n\n/**\n * Returns an sanitized (html friendly) string\n *\n * If the string conatins '&' it will be replaced with '&'\n * if the string contains '<' it will be replaced with '<'\n * if the string contains '>' it will be replaced with '>'\n *\n * @param {str} str - string to be sanitized\n * @returns {str} - satinized string\n */\nvar sanitizeStr = exports.sanitizeStr = function sanitizeStr(str) {\n return str.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>');\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZWFjdC9zcmMvanMvY29tcG9uZW50cy9Db25zb25hbnQvSGVscGVycy9IZWxwZXJzLmpzPzBlNDUiXSwibmFtZXMiOlsic2hvdWxkRGlzcGxheVBhZ2luYXRvciIsImVuYWJsZWQiLCJ0b3RhbENhcmRMaW1pdCIsInRvdGFsUmVzdWx0cyIsInRvdGFsQ2FyZExpbWl0Tm90WmVybyIsImNhcmRMZW5ndGhFeGNlZWRzRGlzcGxheUxpbWl0IiwiZ2V0TnVtQ2FyZHNUb1Nob3ciLCJyZXN1bHRzUGVyUGFnZSIsImN1cnJlbnRQYWdlIiwiTWF0aCIsIm1pbiIsImdldFRvdGFsUGFnZXMiLCJjZWlsIiwiZ2V0Q29sbGVjdGlvbkNhcmRzIiwic2hvd0Jvb2ttYXJrc09ubHkiLCJib29rbWFya2VkQ2FyZHMiLCJjb2xsZWN0aW9uQ2FyZHMiLCJnZXRCb29rbWFya2VkQ2FyZHMiLCJmaWx0ZXIiLCJjYXJkIiwiaXNCb29rbWFya2VkIiwiZ2V0QWN0aXZlRmlsdGVySWRzIiwiZmlsdGVycyIsIm1hcCIsImYiLCJpdGVtcyIsIml0ZW0iLCJzZWxlY3RlZCIsImlkIiwiZ2V0QWN0aXZlUGFuZWxzIiwiU2V0IiwiYWN0aXZlRmlsdGVycyIsInJlcGxhY2UiLCJnZXRVc2luZ1hvckFuZEZpbHRlciIsImZpbHRlclR5cGUiLCJmaWx0ZXJUeXBlcyIsIlhPUiIsIkFORCIsImdldFVzaW5nT3JGaWx0ZXIiLCJPUiIsImdldFVzaW5nVGltaW5nRmlsdGVyIiwiYWN0aXZlRmlsdGVyc1NldCIsImhhcyIsIkVWRU5UX1RJTUlOR19JRFMiLCJMSVZFIiwiT05ERU1BTkQiLCJVUENPTUlORyIsImNoZWNrRXZlbnRUaW1pbmciLCJ0aW1pbmciLCJjdXJNcyIsIkRhdGUiLCJub3ciLCJzdGFydE1zIiwic3RhcnREYXRlIiwiZW5kTXMiLCJlbmREYXRlIiwiaXNUaW1lZCIsImlzVXBDb21pbmciLCJpc09uRGVtYW5kIiwiaXNMaXZlIiwiZ2V0RmlsdGVyZWRDYXJkcyIsImNhcmRzIiwiYWN0aXZlUGFuZWxzIiwiY2F0ZWdvcmllcyIsInRpbWluZ1NldCIsInVzaW5nWG9yQW5kRmlsdGVyIiwidXNpbmdPckZpbHRlciIsInVzaW5nVGltaW5nRmlsdGVyIiwiZm9yRWFjaCIsImRlbGV0ZSIsInRlbXAiLCJzZXQiLCJsZW5ndGgiLCJpIiwiaiIsImNhdGVnb3J5IiwiayIsInRhZ3MiLCJjdXJyVGFnIiwiaW5jbHVkZXMiLCJhZGQiLCJwdXNoIiwic2l6ZSIsInRhZ0lkcyIsInRhZyIsInRhZ1BhbmVscyIsImFsbFBhbmVsc01hdGNoIiwicGFuZWwiLCJmaWx0ZXJzQ2hlY2tlZEluUGFuZWwiLCJFcnJvciIsImhpZ2hsaWdodENhcmQiLCJiYXNlQ2FyZCIsInNlYXJjaEZpZWxkIiwicXVlcnkiLCJkcmFmdENhcmQiLCJzZWFyY2hGaWVsZFZhbHVlIiwiaGlnaGxpZ2h0ZWRTZWFyY2hGaWVsZFZhbHVlIiwiY2FyZE1hdGNoZXNRdWVyeSIsInNlYXJjaFF1ZXJ5IiwiY2xlYW5TZWFyY2hGaWVsZFZhbHVlIiwiZ2V0VW5pcXVlQ2FyZFNldCIsInVuaXF1ZUNhcmRTZXQiLCJjYXJkTm90SW5TZXQiLCJmaW5kSW5kZXgiLCJlbGVtZW50IiwiZ2V0Q2FyZHNNYXRjaGluZ1F1ZXJ5Iiwic2VhcmNoRmllbGRzIiwiY2FyZHNNYXRjaGluZ1F1ZXJ5IiwiaGFzVGFnIiwiY29tcGFyZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInNvbWUiLCJ0ZXN0IiwiZ2V0VGl0bGVBc2NTb3J0Iiwic29ydCIsImNhcmRPbmUiLCJjYXJkVHdvIiwiY2FyZE9uZVRpdGxlIiwiY2FyZFR3b1RpdGxlIiwibG9jYWxlQ29tcGFyZSIsImdldFRpdGxlRGVzY1NvcnQiLCJyZXZlcnNlIiwiZ2V0TW9kaWZpZWREZXNjU29ydCIsImNhcmRPbmVNb2REYXRlIiwiY2FyZFR3b01vZERhdGUiLCJnZXRNb2RpZmllZEFzY1NvcnQiLCJnZXRGZWF0dXJlZFNvcnQiLCJnZXREYXRlQXNjU29ydCIsImNhcmRPbmVEYXRlIiwiY2FyZFR3b0RhdGUiLCJnZXREYXRlRGVzY1NvcnQiLCJnZXRFdmVudFNvcnQiLCJldmVudEZpbHRlciIsInRyYW5zZm9ybWVkQ2FyZHMiLCJjb250ZW50QXJlYSIsImRhdGVEZXRhaWxUZXh0Iiwic3RhcnRUaW1lIiwiZW5kVGltZSIsInJlc3VsdCIsInZpc2libGVTZXNzaW9ucyIsInNlc3Npb24iLCJuZXh0VHJhbnNpdGlvbk1zIiwiZ2V0Q2FyZHNNYXRjaGluZ1NlYXJjaCIsImpvaW5DYXJkU2V0cyIsImNhcmRTZXRPbmUiLCJjYXJkU2V0VHdvIiwiY29uY2F0IiwicHJvY2Vzc0NhcmRzIiwiZmVhdHVyZWRDYXJkcyIsInJhd0NhcmRzIiwiZ2V0VXBkYXRlZENhcmRCb29rbWFya0RhdGEiLCJib29rbWFya2VkQ2FyZElkcyIsImNhY2hlIiwiTWFwIiwiZ2V0UmFuZG9tIiwic3RhcnQiLCJlbmQiLCJmbG9vciIsInJhbmRvbSIsInJlc2Vydm9pclNhbXBsZSIsInN0cmVhbSIsInNhbXBsZVNpemUiLCJyZXNlcnZvaXIiLCJPYmplY3QiLCJlbnRyaWVzIiwidmFsIiwiZmlzY2hlcllhdGVzU2h1ZmZsZSIsImFyciIsImN1cnJlbnRJbmRleCIsInJhbmRvbUluZGV4IiwiZ2V0UmFuZG9tU29ydCIsInJlc2Vydm9pclNpemUiLCJnZXQiLCJzbGljZSIsInJhbmRvbVNhbXBsZSIsImdldEZlYXR1cmVkQ2FyZHMiLCJpZHMiLCJhbnMiLCJjIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiaXNGZWF0dXJlZCIsInNhbml0aXplU3RyIiwic3RyIiwicmVwbGFjZUFsbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUVBOztBQUNBOztBQVNBOztBQUNBOzs7Ozs7QUFPQTs7OztBQUlBOztBQUVBOzs7Ozs7O0FBT08sSUFBTUEsMERBQXlCLFNBQXpCQSxzQkFBeUIsQ0FBQ0MsT0FBRCxFQUFVQyxjQUFWLEVBQTBCQyxZQUExQixFQUEyQztBQUM3RSxRQUFNQyx3QkFBd0JGLGlCQUFp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R0FBTixDQUFVakosRUFBVixDQUFQO0FBQ0gsQ0FQTTs7QUFTQSxJQUFNb0osOENBQW1CLFNBQW5CQSxnQkFBbUIsQ0FBQ0MsR0FBRCxFQUFNcEgsS0FBTixFQUFnQjtBQUM1QyxRQUFNcUgsTUFBTSxFQUFaO0FBQ0E7QUFGNEM7QUFBQTtBQUFBOztBQUFBO0FBRzVDLDhCQUFpQkQsR0FBakIsbUlBQXNCO0FBQUEsZ0JBQVhySixFQUFXO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQ2xCLHNDQUFtQmlDLEtBQW5CLG1JQUEwQjtBQUFBLHdCQUFmMUMsSUFBZTs7QUFDdEIsd0JBQUlBLEtBQUtTLEVBQUwsS0FBWUEsRUFBaEIsRUFBb0I7QUFDaEIsNEJBQU11SixJQUFJQyxLQUFLQyxLQUFMLENBQVdELEtBQUtFLFNBQUwsQ0FBZW5LLElBQWYsQ0FBWCxDQUFWLENBRGdCLENBQzRCO0FBQzVDZ0ssMEJBQUVJLFVBQUYsR0FBZSxJQUFmO0FBQ0FMLDRCQUFJakcsSUFBSixDQUFTa0csQ0FBVDtBQUNIO0FBQ0o7QUFQaUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFyQjtBQVgyQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQVk1QyxXQUFPRCxHQUFQO0FBQ0gsQ0FiTTs7QUFlUDs7Ozs7Ozs7OztBQVVPLElBQU1NLG9DQUFjLFNBQWRBLFdBQWM7QUFBQSxXQUFPQyxJQUM3QkMsVUFENkIsQ0FDbEIsT0FEa0IsRUFDVCxHQURTLEVBRTdCQSxVQUY2QixDQUVsQixNQUZrQixFQUVWLEdBRlUsRUFHN0JBLFVBSDZCLENBR2xCLE1BSGtCLEVBR1YsR0FIVSxDQUFQO0FBQUEsQ0FBcEIiLCJmaWxlIjoiMjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvZHVjZSwgeyBlbmFibGVFUzUgfSBmcm9tICdpbW1lcic7XG5cbmltcG9ydCB7IEhpZ2hsaWdodFNlYXJjaEZpZWxkIH0gZnJvbSAnLi9yZW5kZXJpbmcnO1xuaW1wb3J0IHtcbiAgICBnZXRCeVBhdGgsXG4gICAgc2V0QnlQYXRoLFxuICAgIGlzU3VwZXJzZXQsXG4gICAgaW50ZXJzZWN0aW9uLFxuICAgIHNhbml0aXplVGV4dCxcbiAgICBjaGFpbkZyb21JdGVyYWJsZSxcbiAgICByZW1vdmVEdXBsaWNhdGVzQnlLZXksXG59IGZyb20gJy4vZ2VuZXJhbCc7XG5pbXBvcnQgeyBFVkVOVF9USU1JTkdfSURTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBldmVudFRpbWluZyxcbiAgICBjb252ZXJ0RGF0ZVN0clRvTXMsXG4gICAgZGVmaW5lSXNPbkRlbWFuZCxcbiAgICBkZWZpbmVJc1VwY29taW5nLFxufSBmcm9tICcuL2V2ZW50U29ydCc7XG5cbi8qKlxuICogTmVlZHMgdG8gYmUgZXhwbGljaXRseSBjYWxsZWQgYnkgaW1tZXIgLSBOZWVkZWQgZm9yIElFIDExIHN1cHBvcnRcbiAqIEB0eXBlIHtGdW5jdGlvbn1cbiAqL1xuZW5hYmxlRVM1KCk7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHBhZ2luYXRvciBjb21wb25lbnQgc2hvdWxkIGRpc3BsYXlcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gZW5hYmxlZCAtIEF1dGhvcmVkIGZsYWcgd2hldGhlciBjb21wb25lbnQgc2hvdWxkIGRpc3BsYXkgb3Igbm90XG4gKiBAcGFyYW0ge051bWJlcn0gdG90YWxDYXJkTGltaXQgLSBBdXRob3JlZCBsaW1pdCBmb3IgaG93IG1hbnkgY2FyZHMgc2hvdWxkIGRpc3BsYXlcbiAqIEBwYXJhbSB7TnVtYmVyfSB0b3RhbFJlc3VsdHMgLSBUb3RhbCBjYXJkcyBpbiBjb2xsZWN0aW9uXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gLSBXaGV0aGVyIFBhZ2luYXRvciBzaG91bGQgZGlzcGxheSBvciBub3RcbiAqL1xuZXhwb3J0IGNvbnN0IHNob3VsZERpc3BsYXlQYWdpbmF0b3IgPSAoZW5hYmxlZCwgdG90YWxDYXJkTGltaXQsIHRvdGFsUmVzdWx0cykgPT4ge1xuICAgIGNvbnN0IHRvdGFsQ2FyZExpbWl0Tm90WmVybyA9IHRvdGFsQ2FyZExpbWl0ID4gMDtcbiAgICBjb25zdCBjYXJkTGVuZ3RoRXhjZWVkc0Rpc3BsYXlMaW1pdCA9IHRvdGFsUmVzdWx0cyA+IHRvdGFsQ2FyZExpbWl0O1xuXG4gICAgcmV0dXJuIGVuYWJsZWQgJiZcbiAgICAgICAgdG90YWxDYXJkTGltaXROb3RaZXJvICYmXG4gICAgICAgICFjYXJkTGVuZ3RoRXhjZWVkc0Rpc3BsYXlMaW1pdDtcbn07XG5cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGhvdyBtYW55IGNhcmRzIHRvIHNob3dcbiAqIEBwYXJhbSB7TnVtYmVyfSByZXN1bHRzUGVyUGFnZSAtIEhvdyBtYW55IGNhcmRzIHNob3VsZCBzaG93IHBlciBwYWdlIChBdXRob3JlZCBGaWVsZClcbiAqIEBwYXJhbSB7TnVtYmVyfSBjdXJyZW50UGFnZSAtIEN1cnJlbnQgcGFnZSB1c2VyIGlzIG9uXG4gKiBAcGFyYW0ge051bWJlcn0gdG90YWxSZXN1bHRzIC0gVG90YWwgY2FyZHMgaW4gY29sbGVjdGlvblxuICogQHJldHVybnMge051bWJlcn0gLSBOdW1iZXIgb2YgY2FyZHMgdG8gc2hvd1xuICovXG5leHBvcnQgY29uc3QgZ2V0TnVtQ2FyZHNUb1Nob3cgPSAocmVzdWx0c1BlclBhZ2UsIGN1cnJlbnRQYWdlLCB0b3RhbFJlc3VsdHMpID0+XG4gICAgTWF0aC5taW4ocmVzdWx0c1BlclBhZ2UgKiBjdXJyZW50UGFnZSwgdG90YWxSZXN1bHRzKTtcblxuLyoqXG4gKiBHZXRzIFRvdGFsIFBhZ2UgQ291bnQgKEZvciBQYWdpbmF0b3IgQ29tcG9uZW50KVxuICogQHBhcmFtIHtOdW1iZXJ9IHJlc3VsdHNQZXJQYWdlIC0gSG93IG1hbnkgY2FyZHMgc2hvdWxkIHNob3cgcGVyIHBhZ2UgKEF1dGhvcmVkIEZpZWxkKVxuICogQHBhcmFtIHtOdW1iZXJ9IHRvdGFsUmVzdWx0cyAtIFRvdGFsIGNhcmRzIGluIGNvbGxlY3Rpb25cbiAqIEByZXR1cm5zIHtOdW1iZXJ9IC0gVG90YWwgbnVtYmVyIG9mIHBhZ2VzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUb3RhbFBhZ2VzID0gKHJlc3VsdHNQZXJQYWdlLCB0b3RhbFJlc3VsdHMpID0+IHtcbiAgICBpZiAocmVzdWx0c1BlclBhZ2UgPT09IDApIHJldHVybiAwO1xuICAgIHJldHVybiBNYXRoLmNlaWwodG90YWxSZXN1bHRzIC8gcmVzdWx0c1BlclBhZ2UpO1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2hvdyBjb2xsZWN0aW9uIGNhcmRzIG9yIGJvb2ttYXJrZWQgY2FyZHMgb25seVxuICogKElmIGF1dGhvciBjaG9vc2VzIGJvb2ttYXJrcyBvbmx5IGNvbGxlY3Rpb24pXG5cbiAqIEBwYXJhbSB7Qm9vbGVhbn0gc2hvd0Jvb2ttYXJrc09ubHkgLSBBdXRob3JlZCBGbGFnIHRvIEZvcmNlIENhcmQgQ29sbGVjdGlvbiBUb1xuICogT25seSBTaG93IEJvb2ttYXJrc1xuICogQHBhcmFtIHtBcnJheX0gYm9va21hcmtlZENhcmRzIC0gQm9va21hcmtlZCBjYXJkcyBvbmx5XG4gKiBAcGFyYW0ge0FycmF5fSBjb2xsZWN0aW9uQ2FyZHMgLSBBbGwgY2FyZHNcbiAqIEByZXR1cm5zIHtBcnJheX0gLSBXaGljaCBjb2xsZWN0aW9uIG9mIGNhcmRzIHRvIHNob3dcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENvbGxlY3Rpb25DYXJkcyA9IChzaG93Qm9va21hcmtzT25seSwgYm9va21hcmtlZENhcmRzLCBjb2xsZWN0aW9uQ2FyZHMpID0+IChcbiAgICBzaG93Qm9va21hcmtzT25seSA/IGJvb2ttYXJrZWRDYXJkcyA6IGNvbGxlY3Rpb25DYXJkc1xuKTtcblxuLyoqXG4gKiBGaWx0ZXIgdG8gZ2V0IGFsbCBib29rbWFya2VkIGNhcmRzXG4gKiBAcGFyYW0ge0FycmF5fSBjb2xsZWN0aW9uQ2FyZHMgLSBBbGwgY2FyZHNcbiAqIEByZXR1cm5zIHtBcnJheX0gLSBBbGwgYm9va21hcmtlZCBjYXJkc1xuICovXG5leHBvcnQgY29uc3QgZ2V0Qm9va21hcmtlZENhcmRzID1cbiAgICBjb2xsZWN0aW9uQ2FyZHMgPT4gY29sbGVjdGlvbkNhcmRzLmZpbHRlcihjYXJkID0+IGNhcmQuaXNCb29rbWFya2VkKTtcblxuLyoqXG4gKiBHZXRzIGFsbCBmaWx0ZXJzIGNoZWNrZWQgYnkgYSB1c2VyXG4gKiBAcGFyYW0ge0FycmF5fSBmaWx0ZXJzIC0gQWxsIGZpbHRlcnMgb24gcGFnZVxuICogQHJldHVybnMge0FycmF5fSAtIEFsbCBjaGVja2VkIGZpbHRlcnMgYnkgdXNlclxuICovXG5leHBvcnQgY29uc3QgZ2V0QWN0aXZlRmlsdGVySWRzID0gZmlsdGVycyA9PiBjaGFpbkZyb21JdGVyYWJsZShmaWx0ZXJzLm1hcChmID0+IGYuaXRlbXMpKVxuICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKVxuICAgIC5tYXAoaXRlbSA9PiBpdGVtLmlkKTtcblxuLyoqXG4gKiBHZXRzIGFsbCBmaWx0ZXIgcGFuZWxzIHdpdGggZmlsdGVycyBjaGVja2VkIGJ5IGEgdXNlclxuICogQHBhcmFtIHtBcnJheX0gYWN0aXZlRmlsdGVycyAtIEFsbCBmaWx0ZXJzIGNoZWNrZWRcbiAqIEByZXR1cm5zIHtTZXR9IC0gU2V0IG9mIGZpbHRlciBwYW5lbHMgd2l0aCBmaWx0ZXJzIGNoZWNrZWQgb24gdGhlIHBhZ2VcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFjdGl2ZVBhbmVscyA9XG4gICAgYWN0aXZlRmlsdGVycyA9PiBuZXcgU2V0KGFjdGl2ZUZpbHRlcnMubWFwKGZpbHRlciA9PiBmaWx0ZXIucmVwbGFjZSgvXFwvLiokLywgJycpKSk7XG5cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBkZXJtaW5lIHdoZXRoZXIgYXV0aG9yIGNob3NlIFhPUiBvciBBTkQgdHlwZSBmaWx0ZXJpbmdcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWx0ZXJUeXBlIC0gRmlsdGVyIHVzZWQgaW4gY29sbGVjdGlvblxuICogQHBhcmFtIHtPYmplY3R9IGZpbHRlclR5cGVzIC0gQWxsIHBvc3NpYmxlIGZpbHRlcnNcbiAqIEByZXR1cm5zIHtCb29sZWFufSAtIFdoZXRoZXIgY29sbGVjdGlvbiBpcyB1c2luZyBhIFhPUiBvciBBTkQgdHlwZSBmaWx0ZXJpbmdcbiAqL1xuY29uc3QgZ2V0VXNpbmdYb3JBbmRGaWx0ZXIgPSAoZmlsdGVyVHlwZSwgZmlsdGVyVHlwZXMpID0+IChcbiAgICBmaWx0ZXJUeXBlID09PSBmaWx0ZXJUeXBlcy5YT1IgfHwgZmlsdGVyVHlwZSA9PT0gZmlsdGVyVHlwZXMuQU5EXG4pO1xuXG4vKipcbiAqIEhlbHBlciBtZXRob2QgdG8gZGVybWluZSB3aGV0aGVyIGF1dGhvciBjaG9zZSBPUiB0eXBlIGZpbHRlcmluZ1xuICogQHBhcmFtIHtTdHJpbmd9IGZpbHRlclR5cGUgLSBGaWx0ZXIgdXNlZCBpbiBjb2xsZWN0aW9uXG4gKiBAcGFyYW0ge09iamVjdH0gZmlsdGVyVHlwZXMgLSBBbGwgcG9zc2libGUgZmlsdGVyc1xuICogQHJldHVybnMge0Jvb2xlYW59IC0gV2hldGhlciBjb2xsZWN0aW9uIGlzIHVzaW5nIE9SIHR5cGUgZmlsdGVyaW5nXG4gKi9cbmNvbnN0IGdldFVzaW5nT3JGaWx0ZXIgPSAoZmlsdGVyVHlwZSwgZmlsdGVyVHlwZXMpID0+IChcbiAgICBmaWx0ZXJUeXBlID09PSBmaWx0ZXJUeXBlcy5PUlxuKTtcblxuLyoqXG4gKiBIZWxwZXIgbWV0aG9kIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGFyZSBkb2luZyBldmVudCBmaWx0ZXJpbmcgZnJvbSB0aGUgc2lkZSBiYXIgdGFnc1xuICogQHBhcmFtIHtTZXR9IGFjdGl2ZUZpbHRlclNldFxuICogQHJldHVybnMge0Jvb2xlYW59IC0gV2hldGhlciBjb2xsZWN0aW9uIGhhcyBhbiBldmVudCBmaWx0ZXJcbiAqL1xuY29uc3QgZ2V0VXNpbmdUaW1pbmdGaWx0ZXIgPSBhY3RpdmVGaWx0ZXJzU2V0ID0+IChcbiAgICBhY3RpdmVGaWx0ZXJzU2V0LmhhcyhFVkVOVF9USU1JTkdfSURTLkxJVkUpIHx8XG4gICAgYWN0aXZlRmlsdGVyc1NldC5oYXMoRVZFTlRfVElNSU5HX0lEUy5PTkRFTUFORCkgfHxcbiAgICBhY3RpdmVGaWx0ZXJzU2V0LmhhcyhFVkVOVF9USU1JTkdfSURTLlVQQ09NSU5HKVxuKTtcblxuLyoqXG4gKiBIZWxwZXIgbWV0aG9kIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBjYXJkIGlzIHdpdGhpbiBldmVudCB0aW1pbmdcbiAqIEBwYXJhbSB7T2JqZWN0fSBjYXJkXG4gKiBAcGFyYW0ge1NldH0gdGltaW5nXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gLSB3aGV0aGVyIHRoZSBjYXJkIGZhbGxzIHdpdGhpbiBzZWxlY3RlZCB0aW1pbmcgb3B0aW9uc1xuICovXG5jb25zdCBjaGVja0V2ZW50VGltaW5nID0gKGNhcmQsIHRpbWluZykgPT4ge1xuICAgIGNvbnN0IGN1ck1zID0gRGF0ZS5ub3coKTtcbiAgICAvLyBUaW1lcyBpbiBtaWxsaXNlY29uZHNcbiAgICBjb25zdCBzdGFydE1zID0gY29udmVydERhdGVTdHJUb01zKGNhcmQuc3RhcnREYXRlKTtcbiAgICBjb25zdCBlbmRNcyA9IGNvbnZlcnREYXRlU3RyVG9NcyhjYXJkLmVuZERhdGUpO1xuICAgIC8vIFRpbWVkIGNhdGVnb3JpZXNcbiAgICBjb25zdCBpc1RpbWVkID0gISEoc3RhcnRNcyAmJiBlbmRNcyk7XG4gICAgY29uc3QgaXNVcENvbWluZyA9IGlzVGltZWQgP1xuICAgICAgICBkZWZpbmVJc1VwY29taW5nKGN1ck1zLCBzdGFydE1zKSA6IGZhbHNlO1xuICAgIGNvbnN0IGlzT25EZW1hbmQgPSBpc1RpbWVkICYmICFpc1VwQ29taW5nID9cbiAgICAgICAgZGVmaW5lSXNPbkRlbWFuZChjdXJNcywgZW5kTXMpIDogZmFsc2U7XG4gICAgY29uc3QgaXNMaXZlID0gISEoaXNUaW1lZCAmJiAhaXNVcENvbWluZyAmJiAhaXNPbkRlbWFuZCAmJiBzdGFydE1zKTtcblxuICAgIC8vIGlmIHlvdSBoYXZlIHRpbWluZyBmaWx0ZXJzIGFjdGl2ZSBhbmQgdGhlcmUgaXMgbm8gdGltaW5nIG9uIHRoZSBjYXJkIGl0IHNob3VsZCBiZSByZWplY3RlZFxuICAgIGlmICghaXNUaW1lZCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aW1pbmcuaGFzKEVWRU5UX1RJTUlOR19JRFMuVVBDT01JTkcpICYmIGlzVXBDb21pbmcpIHJldHVybiB0cnVlO1xuICAgIGVsc2UgaWYgKHRpbWluZy5oYXMoRVZFTlRfVElNSU5HX0lEUy5PTkRFTUFORCkgJiYgaXNPbkRlbWFuZCkgcmV0dXJuIHRydWU7XG4gICAgZWxzZSBpZiAodGltaW5nLmhhcyhFVkVOVF9USU1JTkdfSURTLkxJVkUpICYmIGlzTGl2ZSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuLyoqXG4gKiBXaWxsIHJldHVybiBhbGwgY2FyZHMgdGhhdCBtYXRjaCBhIHNldCBvZiBmaWx0ZXJzXG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkcyAtIEFsbCBjYXJkcyBpbiB0aGUgY29sbGVjdGlvblxuICogQHBhcmFtIHtBcnJheX0gYWN0aXZlRmlsdGVycyAtIEFsbCBmaWx0ZXJzIHNlbGVjdGVkIGJ5IHVzZXJcbiAqIEBwYXJhbSB7QXJyYXl9IGFjdGl2ZVBhbmVscyAtIEFjdGl2ZSBmaWx0ZXJzIHBhbmVscyBzZWxlY3RlZCBieSB1c2VyXG4gKiBAcGFyYW0ge1N0cmluZ30gZmlsdGVyVHlwZSAtIEZpbHRlciB1c2VkIGluIGNvbGxlY3Rpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBmaWx0ZXJUeXBlcyAtIEFsbCBwb3NzaWJsZSBmaWx0ZXJzXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQWxsIGNhcmRzIHRoYXQgbWF0Y2ggZmlsdGVyIG9wdGlvbnNcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbmV4cG9ydCBjb25zdCBnZXRGaWx0ZXJlZENhcmRzID0gKGNhcmRzLCBhY3RpdmVGaWx0ZXJzLCBhY3RpdmVQYW5lbHMsIGZpbHRlclR5cGUsIGZpbHRlclR5cGVzLCBjYXRlZ29yaWVzKSA9PiB7XG4gICAgY29uc3QgYWN0aXZlRmlsdGVyc1NldCA9IG5ldyBTZXQoYWN0aXZlRmlsdGVycyk7XG4gICAgY29uc3QgdGltaW5nU2V0ID0gaW50ZXJzZWN0aW9uKGFjdGl2ZUZpbHRlcnNTZXQsIG5ldyBTZXQoW1xuICAgICAgICBFVkVOVF9USU1JTkdfSURTLkxJVkUsXG4gICAgICAgIEVWRU5UX1RJTUlOR19JRFMuT05ERU1BTkQsXG4gICAgICAgIEVWRU5UX1RJTUlOR19JRFMuVVBDT01JTkcsXG4gICAgXSkpO1xuICAgIGNvbnN0IHVzaW5nWG9yQW5kRmlsdGVyID0gZ2V0VXNpbmdYb3JBbmRGaWx0ZXIoZmlsdGVyVHlwZSwgZmlsdGVyVHlwZXMpO1xuICAgIGNvbnN0IHVzaW5nT3JGaWx0ZXIgPSBnZXRVc2luZ09yRmlsdGVyKGZpbHRlclR5cGUsIGZpbHRlclR5cGVzKTtcbiAgICBjb25zdCB1c2luZ1RpbWluZ0ZpbHRlciA9IGdldFVzaW5nVGltaW5nRmlsdGVyKGFjdGl2ZUZpbHRlcnNTZXQpO1xuICAgIC8vIHJlbW92ZSB0aGUgdGltZSBlbGVtZW50cyBmcm9tIHRoZSBhY3RpdmUgZmlsdGVyIHNldCBiZWZvcmUgeW91IGFjdHVhbGx5IGZpbHRlclxuICAgIHRpbWluZ1NldC5mb3JFYWNoKGZpbHRlciA9PiBhY3RpdmVGaWx0ZXJzU2V0LmRlbGV0ZShmaWx0ZXIpKTtcblxuICAgIGNvbnN0IHRlbXAgPSBbXTtcbiAgICBjb25zdCBzZXQgPSBuZXcgU2V0KCk7XG4gICAgaWYgKGNhdGVnb3JpZXMgJiYgY2F0ZWdvcmllcy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXJkcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2FyZCA9IGNhcmRzW2ldO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW2pdO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgY2FyZC50YWdzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJUYWcgPSBjYXJkLnRhZ3Nba107XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyVGFnLmlkLmluY2x1ZGVzKGNhdGVnb3J5KSAmJiAhc2V0LmhhcyhjYXJkLmlkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChjYXJkLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucHVzaChjYXJkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbiAgICAgICAgY2FyZHMgPSB0ZW1wO1xuICAgIH1cblxuICAgIGlmIChhY3RpdmVGaWx0ZXJzU2V0LnNpemUgPT09IDAgJiYgIXVzaW5nVGltaW5nRmlsdGVyKSByZXR1cm4gY2FyZHM7XG5cbiAgICByZXR1cm4gY2FyZHMuZmlsdGVyKChjYXJkKSA9PiB7XG4gICAgICAgIGlmICghY2FyZC50YWdzICYmICF1c2luZ1RpbWluZ0ZpbHRlcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKHVzaW5nVGltaW5nRmlsdGVyICYmICFjaGVja0V2ZW50VGltaW5nKGNhcmQsIHRpbWluZ1NldCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHVzaW5nVGltaW5nRmlsdGVyICYmXG4gICAgICAgICAgICBjaGVja0V2ZW50VGltaW5nKGNhcmQsIHRpbWluZ1NldCkgJiZcbiAgICAgICAgICAgIGFjdGl2ZUZpbHRlcnNTZXQuc2l6ZSA9PT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIGlmIHRoZSBvbmx5IGZpbHRlcnMgYmVpbmcgcGVyZm9ybWVkIGFyZSBhYm91dCBldmVudCB0aW1pbmdcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHlvdSBwcm9jZWVkIHRvIGNoZWNrIHRoZSBvdGhlciB0YWdzIGluIHRoZSBjYXJkcyBhZnRlciB0aGUgdGltZSBmaWx0ZXIgY2hlY2tzXG4gICAgICAgIGNvbnN0IHRhZ0lkcyA9IG5ldyBTZXQoY2FyZC50YWdzLm1hcCh0YWcgPT4gdGFnLmlkKSk7XG5cbiAgICAgICAgaWYgKHVzaW5nWG9yQW5kRmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNTdXBlcnNldCh0YWdJZHMsIGFjdGl2ZUZpbHRlcnNTZXQpO1xuICAgICAgICB9IGVsc2UgaWYgKHVzaW5nT3JGaWx0ZXIgJiYgYWN0aXZlUGFuZWxzLnNpemUgPCAyKSB7XG4gICAgICAgICAgICByZXR1cm4gaW50ZXJzZWN0aW9uKHRhZ0lkcywgYWN0aXZlRmlsdGVyc1NldCkuc2l6ZTtcbiAgICAgICAgfSBlbHNlIGlmICh1c2luZ09yRmlsdGVyKSB7XG4gICAgICAgICAgICAvLyBjaGVjayBpZiBjYXJkJyB0YWdzIHBhbmVscyBpbmNsdWRlIGFsbCBwYW5lbHMgd2l0aCBzZWxlY3RlZCBmaWx0ZXJzXG4gICAgICAgICAgICBjb25zdCB0YWdQYW5lbHMgPSBuZXcgU2V0KGNhcmQudGFncy5tYXAodGFnID0+IHRhZy5pZC5yZXBsYWNlKC9cXC8uKiQvLCAnJykpKTtcbiAgICAgICAgICAgIGlmICghaXNTdXBlcnNldCh0YWdQYW5lbHMsIGFjdGl2ZVBhbmVscykpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgY2FyZCcgdGFncyBpbmNsdWRlIGFsbCBwYW5lbHMgd2l0aCBzZWxlY3RlZCBmaWx0ZXJzXG4gICAgICAgICAgICBsZXQgYWxsUGFuZWxzTWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhbmVsIG9mIGFjdGl2ZVBhbmVscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcnNDaGVja2VkSW5QYW5lbCA9IG5ldyBTZXQoWy4uLmFjdGl2ZUZpbHRlcnNTZXRdXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoaWQgPT4gaWQuaW5jbHVkZXMocGFuZWwsIDApKSk7XG4gICAgICAgICAgICAgICAgaWYgKCFpbnRlcnNlY3Rpb24odGFnSWRzLCBmaWx0ZXJzQ2hlY2tlZEluUGFuZWwpLnNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsUGFuZWxzTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYWxsUGFuZWxzTWF0Y2g7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgZmlsdGVyIHR5cGU6ICR7ZmlsdGVyVHlwZX1gKTtcbiAgICB9KTtcbn07XG5cbi8qKlxuICogSWYgYSBjYXJkIG1hdGNoZXMgYSBzZWFyY2ggcXVlcnksIHRoaXMgbWV0aG9kIHdpbGwgaGlnaGxpZ2h0IGl0XG4gKiBAcGFyYW0ge0FycmF5fSBiYXNlQ2FyZCAtIENhcmQgdG8gaGlnaGxpZ2h0XG4gKiBAcGFyYW0ge0FycmF5fSBzZWFyY2hGaWVsZCAtIEZpZWxkIHRoYXQgbWF0Y2hlcyBRdWVyeVxuICogQHBhcmFtIHtTdHJpbmd9IHF1ZXJ5IC0gVGhlIHVzZXJzIHNlYXJjaCBxdWVyeVxuICogQHJldHVybnMge0NhcmR9IFRoZSBoaWdobGlnaHRlZCBjYWFyZFxuICovXG5leHBvcnQgY29uc3QgaGlnaGxpZ2h0Q2FyZCA9IChiYXNlQ2FyZCwgc2VhcmNoRmllbGQsIHF1ZXJ5KSA9PiBwcm9kdWNlKGJhc2VDYXJkLCAoZHJhZnRDYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoRmllbGRWYWx1ZSA9IGdldEJ5UGF0aChkcmFmdENhcmQsIHNlYXJjaEZpZWxkLCBudWxsKTtcbiAgICBpZiAoc2VhcmNoRmllbGRWYWx1ZSA9PT0gbnVsbCB8fCBzZWFyY2hGaWVsZFZhbHVlID09PSAnJykgcmV0dXJuO1xuICAgIGNvbnN0IGhpZ2hsaWdodGVkU2VhcmNoRmllbGRWYWx1ZSA9IEhpZ2hsaWdodFNlYXJjaEZpZWxkKHNlYXJjaEZpZWxkVmFsdWUsIHF1ZXJ5KTtcbiAgICBzZXRCeVBhdGgoZHJhZnRDYXJkLCBzZWFyY2hGaWVsZCwgaGlnaGxpZ2h0ZWRTZWFyY2hGaWVsZFZhbHVlKTtcbn0pO1xuXG4vKipcbiAqIElmIGEgY2FyZCBtYXRjaGVzIGEgc2VhcmNoIHF1ZXJ5LCB0aGlzIG1ldGhvZCB3aWxsIGhpZ2hsaWdodCBpdFxuICogQHBhcmFtIHtBcnJheX0gc2VhcmNoRmllbGQgLSBGaWVsZCB0aGF0IG1hdGNoZXMgUXVlcnlcbiAqIEBwYXJhbSB7QXJyYXl9IGNhcmQgLSBDYXJkIHRvIGNoZWNrXG4gKiBAcGFyYW0ge1N0cmluZ30gcXVlcnkgLSBUaGUgdXNlcnMgc2VhcmNoIHF1ZXJ5XG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gSWYgdGhlIGNhcmQgbWF0Y2hlcyB0aGUgdXNlcidzIHNlYXJjaCBxdWVyeVxuICovXG5jb25zdCBjYXJkTWF0Y2hlc1F1ZXJ5ID0gKHNlYXJjaEZpZWxkLCBjYXJkLCBzZWFyY2hRdWVyeSkgPT4ge1xuICAgIGNvbnN0IHNlYXJjaEZpZWxkVmFsdWUgPSBnZXRCeVBhdGgoY2FyZCwgc2VhcmNoRmllbGQsICcnKTtcbiAgICBjb25zdCBjbGVhblNlYXJjaEZpZWxkVmFsdWUgPSBzYW5pdGl6ZVRleHQoc2VhcmNoRmllbGRWYWx1ZSk7XG4gICAgcmV0dXJuIGNsZWFuU2VhcmNoRmllbGRWYWx1ZS5pbmNsdWRlcyhzZWFyY2hRdWVyeSk7XG59O1xuXG4vKipcbiAqIEhlbHBlciB0byBpbXBsZW1lbnQgU2V0KCkgZGF0YSBzdHJ1Y3R1cmUgdy8gVmFuaWxsYSBBcnJheXNcbiAqIFdvdWxkJ3ZlIHVzZWQgbmV3IFNldCgpLCBidXQgcG9seWZpbGwgaGFzIGJ1ZyBpbiBJRTExIGNvbnZlcnRpbmcgQXJyYXkuZnJvbShuZXcgU2V0KCkpXG4gKlxuICogQHBhcmFtIHtBcnJheX0gY2FyZHNcbiAqIEByZXR1cm4ge0FycmF5fSAtIFVuaXF1ZSBDYXJkIFNldCBmcm9tIENhcmRzIChmaWx0ZXJpbmcgYmFzZWQgb2ZmIHVuaXF1ZSBjYXJkIGlkcylcbiAqL1xuY29uc3QgZ2V0VW5pcXVlQ2FyZFNldCA9IChjYXJkcykgPT4ge1xuICAgIGNvbnN0IHVuaXF1ZUNhcmRTZXQgPSBbXTtcbiAgICBjYXJkcy5mb3JFYWNoKChjYXJkKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhcmROb3RJblNldCA9IHVuaXF1ZUNhcmRTZXQuZmluZEluZGV4KGVsZW1lbnQgPT4gZWxlbWVudC5pZCA9PT0gY2FyZC5pZCkgPD0gLTE7XG4gICAgICAgIGlmIChjYXJkTm90SW5TZXQpIHtcbiAgICAgICAgICAgIHVuaXF1ZUNhcmRTZXQucHVzaChjYXJkKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB1bmlxdWVDYXJkU2V0O1xufTtcblxuLyoqXG4gKiBHZXRzIGFsbCBjYXJkcyB0aGF0IG1hdGNoZXMgYSB1c2VycyBzZWFyY2ggcXVlcnlcbiAqIEBwYXJhbSB7QXJyYXl9IGNhcmRzIC0gQWxsIGNhcmRzIGluIHRoZSBjYXJkIGNvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl9IHNlYXJjaEZpZWxkcyAtIEFsbCBhdXRob3JlZCBzZWFyY2ggZmllbGRzIHRvIGNoZWNrXG4gKiBAcGFyYW0ge1N0cmluZ30gcXVlcnkgLSBUaGUgdXNlcnMgc2VhcmNoIHF1ZXJ5XG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQWxsIGNhcmRzIHRoYXQgbWF0Y2ggdGhlIHVzZXIncyBxdWVyeSBmb3IgYSBnaXZlbiBzZXQgb2Ygc2VhcmNoIGZpZWxkc1xuICovXG5leHBvcnQgY29uc3QgZ2V0Q2FyZHNNYXRjaGluZ1F1ZXJ5ID0gKGNhcmRzLCBzZWFyY2hGaWVsZHMsIHF1ZXJ5KSA9PiB7XG4gICAgY29uc3QgY2FyZHNNYXRjaGluZ1F1ZXJ5ID0gW107XG4gICAgY2FyZHMuZm9yRWFjaCgoY2FyZCkgPT4ge1xuICAgICAgICBzZWFyY2hGaWVsZHMuZm9yRWFjaCgoc2VhcmNoRmllbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChjYXJkTWF0Y2hlc1F1ZXJ5KHNlYXJjaEZpZWxkLCBjYXJkLCBxdWVyeSkpIHtcbiAgICAgICAgICAgICAgICBjYXJkc01hdGNoaW5nUXVlcnkucHVzaChjYXJkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGdldFVuaXF1ZUNhcmRTZXQoY2FyZHNNYXRjaGluZ1F1ZXJ5KTtcbn07XG4vKipcbiAqIEBmdW5jIGhhc1RhZ1xuICogQGRlc2MgRG9lcyBjdXJyZW50IGVudGl0eSBoYXZlIGEgc3BlY2lmaWMgdGFnP1xuICogQHBhcmFtIHtSZWdFeHB9IGNvbXBhcmUgYSByZWdFeCBwYXR0ZXJuIHRvIHRlc3QgZm9yXG4gKiBAcGFyYW0ge0FycmF5fSB0YWdzIGFuIGFycmF5IG9mIHRhZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1RhZyA9IChjb21wYXJlLCB0YWdzID0gW10pID0+IHtcbiAgICBpZiAoIXRhZ3MubGVuZ3RoIHx8IGNvbXBhcmUuY29uc3RydWN0b3IubmFtZSAhPT0gJ1JlZ0V4cCcpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiB0YWdzLnNvbWUoKHsgaWQgPSAnJyB9ID0ge30pID0+IGlkICYmIGNvbXBhcmUudGVzdChpZCkpO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBjYXJkcyB0aXRsZSBzb3J0ZWQgKEEtWilcbiAqIEBwYXJhbSB7QXJyYXl9IGNhcmRzIC0gQWxsIGNhcmRzIGluIHRoZSBjYXJkIGNvbGxlY3Rpb25cbiAqIEByZXR1cm5zIHtBcnJheX0gLSBBbGwgY2FyZHMgc29ydGVkIGJ5IHRpdGxlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUaXRsZUFzY1NvcnQgPSBjYXJkcyA9PiBjYXJkcy5zb3J0KChjYXJkT25lLCBjYXJkVHdvKSA9PiB7XG4gICAgY29uc3QgY2FyZE9uZVRpdGxlID0gZ2V0QnlQYXRoKGNhcmRPbmUsICdjb250ZW50QXJlYS50aXRsZScpO1xuICAgIGNvbnN0IGNhcmRUd29UaXRsZSA9IGdldEJ5UGF0aChjYXJkVHdvLCAnY29udGVudEFyZWEudGl0bGUnKTtcbiAgICByZXR1cm4gY2FyZE9uZVRpdGxlLmxvY2FsZUNvbXBhcmUoY2FyZFR3b1RpdGxlKTtcbn0pO1xuXG4vKipcbiAqIFJldHVybnMgYWxsIGNhcmRzIHRpdGxlIHNvcnRlZCAoWi1BKVxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHJldHVybnMge0FycmF5fSAtIEFsbCBjYXJkcyBzb3J0ZWQgYnkgdGl0bGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRpdGxlRGVzY1NvcnQgPSBjYXJkcyA9PiBnZXRUaXRsZUFzY1NvcnQoY2FyZHMpLnJldmVyc2UoKTtcblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBjYXJkcyBzb3J0ZWQgYnkgZGF0ZSBtb2RpZmllZCBuZXdlc3QgdG8gb2xkZXN0XG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkcyAtIEFsbCBjYXJkcyBpbiB0aGUgY2FyZCBjb2xsZWN0aW9uXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQWxsIGNhcmRzIHNvcnRlZCBieSB0aXRsZVxuICovXG5leHBvcnQgY29uc3QgZ2V0TW9kaWZpZWREZXNjU29ydCA9IGNhcmRzID0+IGNhcmRzLnNvcnQoKGNhcmRPbmUsIGNhcmRUd28pID0+IHtcbiAgICBjb25zdCBjYXJkT25lTW9kRGF0ZSA9IGdldEJ5UGF0aChjYXJkT25lLCAnbW9kaWZpZWREYXRlJyk7XG4gICAgY29uc3QgY2FyZFR3b01vZERhdGUgPSBnZXRCeVBhdGgoY2FyZFR3bywgJ21vZGlmaWVkRGF0ZScpO1xuICAgIGlmIChjYXJkT25lTW9kRGF0ZSAmJiBjYXJkVHdvTW9kRGF0ZSkge1xuICAgICAgICByZXR1cm4gY2FyZFR3b01vZERhdGUubG9jYWxlQ29tcGFyZShjYXJkT25lTW9kRGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiAwO1xufSk7XG5cbi8qKlxuICogUmV0dXJucyBhbGwgY2FyZHMgc29ydGVkIGJ5IGRhdGUgbW9kaWZpZWQgb2xkZXN0IHRvIG5ld2VzdFxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHJldHVybnMge0FycmF5fSAtIEFsbCBjYXJkcyBzb3J0ZWQgYnkgdGl0bGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE1vZGlmaWVkQXNjU29ydCA9IGNhcmRzID0+IGdldE1vZGlmaWVkRGVzY1NvcnQoY2FyZHMpLnJldmVyc2UoKTtcblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBjYXJkcyBGZWF0dXJlZCBzb3J0ZWRcbiAqIFRoaXMganVzdCByZXR1cm5zIHRoZSBvcmlnaW5hbCBjYXJkcyByZXR1cm5lZCBieSBDaGltZXJhIElPXG4gKiBDaGltZXJhIElPIGlzIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyBmZWF0dXJlZCBzb3J0XG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkcyAtIEFsbCBjYXJkcyBpbiB0aGUgY2FyZCBjb2xsZWN0aW9uXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQ2FyZHMgaW4gdGhlIG9yaWdpbmFsIG9yZGVyIGdpdmVuIGJ5IENoaW1lcmEgSU9cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEZlYXR1cmVkU29ydCA9IGNhcmRzID0+IGNhcmRzO1xuXG4vKipcbiAqIFJldHVybnMgYWxsIENhcmRzIERhdGUgU29ydGVkIChPbGQgVG8gTmV3KVxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHJldHVybnMge0FycmF5fSAtIEFsbCBjYXJkcyBzb3J0ZWQgYnkgRGF0ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0RGF0ZUFzY1NvcnQgPSBjYXJkcyA9PiBjYXJkcy5zb3J0KChjYXJkT25lLCBjYXJkVHdvKSA9PiB7XG4gICAgY29uc3QgY2FyZE9uZURhdGUgPSBnZXRCeVBhdGgoY2FyZE9uZSwgJ2NhcmREYXRlJyk7XG4gICAgY29uc3QgY2FyZFR3b0RhdGUgPSBnZXRCeVBhdGgoY2FyZFR3bywgJ2NhcmREYXRlJyk7XG4gICAgaWYgKGNhcmRPbmVEYXRlICYmIGNhcmRUd29EYXRlKSB7XG4gICAgICAgIHJldHVybiBjYXJkT25lRGF0ZSAhPT0gY2FyZFR3b0RhdGUgPyBjYXJkT25lRGF0ZS5sb2NhbGVDb21wYXJlKGNhcmRUd29EYXRlKSA6IC0xO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbn0pO1xuXG4vKipcbiAqIFJldHVybnMgYWxsIENhcmRzIERhdGUgU29ydGVkIChOZXcgVG8gT2xkKVxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHJldHVybnMge0FycmF5fSAtIEFsbCBjYXJkcyBzb3J0ZWQgYnkgRGF0ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0RGF0ZURlc2NTb3J0ID0gY2FyZHMgPT4gZ2V0RGF0ZUFzY1NvcnQoY2FyZHMpLnJldmVyc2UoKTtcblxuLyoqXG4gKiBAZnVuYyBnZXRFdmVudFNvcnRcbiAqIEBkZXNjIFRoaXMgbWV0aG9kLCBpZiBuZWVkZWQsIHNldHMgdXAgVGltaW5nIGZlYXR1cmVzIGZvciBhIGNvbGxlY3Rpb25cbiAoMSkgSGFzIHRvIGNoZWNrIGVhY2ggY2FyZCBmb3IgY2FyZC5jb250ZW50QXJlYS5kYXRlRGV0YWlsVGV4dC5zdGFydFRpbWVcbiB8fCBlbmRUaW1lLCBpZiBuZWl0aGVyIHRoZSBjYXJkIGdldHMgcHVzaGVkIHRvIGJhY2sgb2Ygc3RhY2suXG4gKDIpIFRoZXJlIGFyZSBzaXggY2F0ZWdvcmllcyBmb3IgY29uc2lkZXJhdGlvblxuIGEuIExpdmU6IEN1cnJlbnQgVGltZSA+IFN0YXJ0IFRpbWUgJiYgQ3VycmVudCBUaW1lIDwgRW5kIFRpbWVcbiBiLiBVcGNvbWluZzogQ3VycmVudCBUaW1lIDwgU3RhcnQgVGltZSBhbmQgZG9lcyBub3QgaGF2ZVxuIFwiT25EZW1hbmQgc2NoZWR1bGVkXCIgdGFnIHdoaWNoIGNhbm5vdCBzaG93IHVudGlsIGl0IGlzIG9uRGVtYW5kXG4gYy4gXCJPbkRlbWFuZCBzY2hlZHVsZWRcIjogVXBDb21pbmcsIGFuZCBoYXMgXCJPbkRlbWFuZCBzY2hlZHVsZWRcIiB0YWcsXG4gd2lsbCBub3QgYmUgc2VlbiB1bnRpbCBpdCBpcyBPbkRlbWFuZC5cbiBkLiBPbkRlbWFuZDogQ3VycmVudCBUaW1lID4gRW5kIFRpbWUsIGRvZXMgbm90IGhhdmUgXCJMaXZlIEV4cGlyZWRcIiB0YWdcbiBlLiBMaXZlIEV4cGlyZWQ6IE9uRGVtYW5kLCBoYXMgXCJsaXZlLWV4cGlyZWRcIiB0YWcsIGFuZCBpcyBubyBsb25nZXIgc2hvd24uXG4gZi4gQWxsIG90aGVyIGNhcmRzLCBub3QgaGF2aW5nIHN0YXJ0VGltZSB8fCBlbmRUaW1lLlxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHBhcmFtIHtPYmplY3R9IHVybFN0YXRlIC0gVVJMIHNlYXJjaC9xdWVyeSBQYXJhbXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IHZpc2libGVDYXJkc1xuICovXG5leHBvcnQgY29uc3QgZ2V0RXZlbnRTb3J0ID0gKGNhcmRzID0gW10sIGV2ZW50RmlsdGVyKSA9PiB7XG4gICAgY29uc3QgdHJhbnNmb3JtZWRDYXJkcyA9IGNhcmRzLm1hcChjYXJkID0+ICh7XG4gICAgICAgIGlkOiBjYXJkLmlkLFxuICAgICAgICBzdGFydERhdGU6IGNhcmQuY29udGVudEFyZWEuZGF0ZURldGFpbFRleHQuc3RhcnRUaW1lLFxuICAgICAgICBlbmREYXRlOiBjYXJkLmNvbnRlbnRBcmVhLmRhdGVEZXRhaWxUZXh0LmVuZFRpbWUsXG4gICAgICAgIHRhZ3M6IGNhcmQudGFncyB8fCBbXSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBldmVudFRpbWluZyh0cmFuc2Zvcm1lZENhcmRzLCBldmVudEZpbHRlcik7XG5cbiAgICBjb25zdCB2aXNpYmxlU2Vzc2lvbnMgPSByZXN1bHQudmlzaWJsZVNlc3Npb25zXG4gICAgICAgIC5maWx0ZXIoc2Vzc2lvbiA9PiBzZXNzaW9uLnRhZ3MuaW5jbHVkZXMoZXZlbnRGaWx0ZXIpKVxuICAgICAgICAubWFwKHNlc3Npb24gPT4gKHtcbiAgICAgICAgICAgIGlkOiBzZXNzaW9uLmlkLFxuICAgICAgICAgICAgY29udGVudEFyZWE6IHtcbiAgICAgICAgICAgICAgICBkYXRlRGV0YWlsVGV4dDoge1xuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHNlc3Npb24uc3RhcnREYXRlLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiBzZXNzaW9uLmVuZERhdGUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0YWdzOiBzZXNzaW9uLnRhZ3MsXG4gICAgICAgIH0pKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIG5leHRUcmFuc2l0aW9uTXM6IHJlc3VsdC5uZXh0VHJhbnNpdGlvbk1zLFxuICAgICAgICB2aXNpYmxlU2Vzc2lvbnMsXG4gICAgfTtcbn07XG4vKipcbiAqIEdldHMgYWxsIGNhcmRzIHRoYXQgbWF0Y2hlcyBhIHVzZXJzIHNlYXJjaCBxdWVyeVxuICogQHBhcmFtIHtTdHJpbmd9IHF1ZXJ5IC0gVGhlIHVzZXJzIHNlYXJjaCBxdWVyeVxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHBhcmFtIHtBcnJheX0gc2VhcmNoRmllbGRzIC0gQWxsIGF1dGhvcmVkIHNlYXJjaCBmaWVsZHMgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtBcnJheX0gLSBBbGwgY2FyZHMgdGhhdCBtYXRjaCB0aGUgdXNlcidzIHF1ZXJ5IGZvciBhIGdpdmVuIHNldCBvZiBzZWFyY2ggZmllbGRzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDYXJkc01hdGNoaW5nU2VhcmNoID0gKHF1ZXJ5LCBjYXJkcywgc2VhcmNoRmllbGRzKSA9PiB7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgICByZXR1cm4gY2FyZHM7XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaFF1ZXJ5ID0gc2FuaXRpemVUZXh0KHF1ZXJ5KTtcbiAgICBjb25zdCBjYXJkc01hdGNoaW5nUXVlcnkgPSBnZXRDYXJkc01hdGNoaW5nUXVlcnkoY2FyZHMsIHNlYXJjaEZpZWxkcywgc2VhcmNoUXVlcnkpO1xuICAgIHJldHVybiBjYXJkc01hdGNoaW5nUXVlcnk7XG59O1xuXG4vKipcbiAqIEpvaW5zIHR3byBzZXRzIG9mIGNhcmRzXG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkU2V0T25lIC0gU2V0IG9uZSBvZiBjYXJkcyB0byBqb2luXG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkU2V0VHdvIC0gU2V0IHR3byBvZiBjYXJkcyB0byBqb2luXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQ2FyZHMgc2V0cyBvbmUgYW5kIHR3byBqb2luZWRcbiAqL1xuZXhwb3J0IGNvbnN0IGpvaW5DYXJkU2V0cyA9IChjYXJkU2V0T25lLCBjYXJkU2V0VHdvKSA9PiBjYXJkU2V0T25lLmNvbmNhdChjYXJkU2V0VHdvKTtcblxuLyoqXG4gKiBQcm9jZXNzZXMgZmVhdHVyZWQgY2FyZHMgd2l0aCByYXcgY2FyZHMgcmVjZWl2ZWQgZnJvbSBBUEkgcmVzcG9uc2VcbiAqIEBwYXJhbSB7QXJyYXl9IGZlYXR1cmVkQ2FyZHMgLSBBdXRob3JlZCBGZWF0dXJlZCBDYXJkc1xuICogQHBhcmFtIHtBcnJheX0gcmF3Q2FyZHMgLSBDYXJkcyBmcm9tIEFQSSByZXNwb25zZVxuICogQHJldHVybnMge0FycmF5fSAtIFNldCBvZiBjYXJkcyBwcm9jZXNzZWRcbiAqL1xuZXhwb3J0IGNvbnN0IHByb2Nlc3NDYXJkcyA9IChmZWF0dXJlZENhcmRzLCByYXdDYXJkcykgPT4gcmVtb3ZlRHVwbGljYXRlc0J5S2V5KGpvaW5DYXJkU2V0cyhmZWF0dXJlZENhcmRzLCByYXdDYXJkcyksICdpZCcpO1xuXG4vKipcbiAqIEhlbHBlciBtZXRob2QgZm9yIGVmZmVjdCB0aGF0IGFkZHMgYm9va21hcmsgbWV0YSBkYXRhIHRvIGNhcmRzXG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkcyAtIEFsbCBjYXJkcyBpbiBjYXJkIGNvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl9IGJvb2ttYXJrZWRDYXJkSWRzIC0gQWxsIGJvb2ttYXJrZWQgY2FyZCBpZHNcbiAqIEByZXR1cm5zIHtBcnJheX0gLSBDYXJkcyB3aXRoIGJvb2ttYXJrIG1ldGEgZGF0YVxuICovXG5leHBvcnQgY29uc3QgZ2V0VXBkYXRlZENhcmRCb29rbWFya0RhdGEgPSAoY2FyZHMsIGJvb2ttYXJrZWRDYXJkSWRzKSA9PiBjYXJkcy5tYXAoY2FyZCA9PiAoe1xuICAgIC4uLmNhcmQsXG4gICAgaXNCb29rbWFya2VkOiBib29rbWFya2VkQ2FyZElkcy5zb21lKGkgPT4gaSA9PT0gY2FyZC5pZCksXG59KSk7XG5cbmNvbnN0IGNhY2hlID0gbmV3IE1hcCgpO1xuXG4vKipcbiAqIFJldHVybnMgYSByYW5kb20gbnVtYmVyIGZyb20gW3N0YXJ0LCBib3VuZClcbiAqIEBwYXJhbSB7aW50fSBzdGFydCAtIFN0YXJ0aW5nIGJvdW5kIChpbmNsdXNpdmUpXG4gKiBAcGFyYW0ge2ludH0gZW5kIC0gRW5kaW5nIGJvdW5kIChleGNsdXNpdmUpXG4gKiBAcmV0dXJucyB7aW50fSAtIEEgcmFuZG9tIGludGVnZXIgYmV0d2VlbiBbc3RhcnQsIGJvdW5kKVxuICovXG5mdW5jdGlvbiBnZXRSYW5kb20oc3RhcnQsIGVuZCkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoZW5kIC0gc3RhcnQpKSArIHN0YXJ0O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByYW5kb20gc2FtcGxlIG9mIHNhbXBsZVNpemUgZnJvbSBhbiBhcnJheSBzdHJlYW1cbiAqIEBwYXJhbSB7QXJyYXl9IHN0cmVhbSAtIEFuIGFycmF5IG9mIGl0ZW1zIHRvIHNlbGVjdCBhIHJhbmRvbSBzYW1wbGUgZnJvbVxuICogQHBhcmFtIHtpbnR9IHNhbXBsZVNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgcmFuZG9tIHNhbXBsZVxuICogQHJldHVybnMge0FycmF5fSAtIEEgcmFuZG9tIHNhbXBsZSBmcm9tIHRoZSBhcnJheSBzdHJlYW1cbiAqL1xuZnVuY3Rpb24gcmVzZXJ2b2lyU2FtcGxlKHN0cmVhbSwgc2FtcGxlU2l6ZSkge1xuICAgIGNvbnN0IHJlc2Vydm9pciA9IFtdO1xuICAgIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuICAgIGZvciAoY29uc3QgW2ksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMoc3RyZWFtKSkge1xuICAgICAgICBpZiAocmVzZXJ2b2lyLmxlbmd0aCA8IHNhbXBsZVNpemUpIHtcbiAgICAgICAgICAgIHJlc2Vydm9pci5wdXNoKHZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByYW5kb20gPSBnZXRSYW5kb20oMCwgaSArIDEpO1xuICAgICAgICAgICAgaWYgKHJhbmRvbSA8IHNhbXBsZVNpemUpIHtcbiAgICAgICAgICAgICAgICByZXNlcnZvaXJbcmFuZG9tXSA9IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzZXJ2b2lyO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGlucHV0IGFycmF5IHJhbmRvbWx5IHNodWZmbGVkIHVzaW5nIHRoZSBGaXNoZXItWWF0ZXMgYWxnb3JpdGhtLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyciAtIEFycmF5IHRvIGJlIHNodWZmbGVkXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gVGhlIHNodWZmbGVkIGFycmF5XG4gKi9cbmZ1bmN0aW9uIGZpc2NoZXJZYXRlc1NodWZmbGUoYXJyKSB7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IGFyci5sZW5ndGg7XG4gICAgbGV0IHJhbmRvbUluZGV4O1xuICAgIHdoaWxlIChjdXJyZW50SW5kZXggIT09IDApIHtcbiAgICAgICAgcmFuZG9tSW5kZXggPSBnZXRSYW5kb20oMCwgY3VycmVudEluZGV4KTtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzICovXG4gICAgICAgIGN1cnJlbnRJbmRleC0tO1xuICAgICAgICBbYXJyW2N1cnJlbnRJbmRleF0sIGFycltyYW5kb21JbmRleF1dID0gW2FycltyYW5kb21JbmRleF0sIGFycltjdXJyZW50SW5kZXhdXTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFuIGFycmF5IG9mIHJhbmRvbWx5IHNvcnRlZCBjYXJkcy5cbiAqXG4gKiBJZiB0aGUgY2FyZHMgZm9yIGEgZ2l2ZW4gY2FyZCBjb2xsZWN0aW9uIGhhdmUgYWxyZWFkeSBiZWVuIHNvcnRlZCwgcmV0dXJuIGZyb20gY2FjaGUuXG4gKiBPdGhlcndpc2Ugc29ydCByYW5kb21seSBhbmQgY2FjaGUgcmVzdWx0LlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGNhcmRzIC0gY2FyZHMgdG8gYmUgcmFuZG9tbHkgc29ydGVkXG4gKiBAcGFyYW0ge2ludH0gaWQgLSBJZCBvZiB0aGUgY2FyZCBjb2xsZWN0aW9uIHRoZSBjYXJkcyBiZWxvbmcgdG8uXG4gKiBAcGFyYW0ge2ludH0gc2FtcGxlU2l6ZSAtIHNhbXBsZSBzaXplIHVzZWQgZm9yIHRoZSByYW5kb20gc2FtcGxlXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQW4gYXJyYXkgb2YgcmFuZG9tbHkgc29ydGVkIGNhcmRzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRSYW5kb21Tb3J0ID0gKGNhcmRzLCBpZCwgc2FtcGxlU2l6ZSwgcmVzZXJ2b2lyU2l6ZSkgPT4ge1xuICAgIGlmICghY2FjaGUuZ2V0KGlkKSkge1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBmaXNjaGVyWWF0ZXNTaHVmZmxlKGNhcmRzLnNsaWNlKDAsIHJlc2Vydm9pclNpemUpKTtcbiAgICAgICAgY29uc3QgcmFuZG9tU2FtcGxlID0gcmVzZXJ2b2lyU2FtcGxlKHN0cmVhbSwgc2FtcGxlU2l6ZSk7XG4gICAgICAgIGNhY2hlLnNldChpZCwgcmFuZG9tU2FtcGxlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlLmdldChpZCk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmVhdHVyZWRDYXJkcyA9IChpZHMsIGNhcmRzKSA9PiB7XG4gICAgY29uc3QgYW5zID0gW107XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXggKi9cbiAgICBmb3IgKGNvbnN0IGlkIG9mIGlkcykge1xuICAgICAgICBmb3IgKGNvbnN0IGNhcmQgb2YgY2FyZHMpIHtcbiAgICAgICAgICAgIGlmIChjYXJkLmlkID09PSBpZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNhcmQpKTsgLy8gRGVlcCBjbG9uZSB1c2luZyBKU09OIG1ldGhvZHNcbiAgICAgICAgICAgICAgICBjLmlzRmVhdHVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGFucy5wdXNoKGMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhbnM7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gc2FuaXRpemVkIChodG1sIGZyaWVuZGx5KSBzdHJpbmdcbiAqXG4gKiBJZiB0aGUgc3RyaW5nIGNvbmF0aW5zICcmYW1wOycgaXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoICcmJ1xuICogaWYgdGhlIHN0cmluZyBjb250YWlucyAnJmx0OycgaXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoICc8J1xuICogaWYgdGhlIHN0cmluZyBjb250YWlucyAnJmd0OycgaXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoICc+J1xuICpcbiAqIEBwYXJhbSB7c3RyfSBzdHIgLSBzdHJpbmcgdG8gYmUgc2FuaXRpemVkXG4gKiBAcmV0dXJucyB7c3RyfSAtIHNhdGluaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHNhbml0aXplU3RyID0gc3RyID0+IHN0clxuICAgIC5yZXBsYWNlQWxsKCcmYW1wOycsICcmJylcbiAgICAucmVwbGFjZUFsbCgnJmx0OycsICc8JylcbiAgICAucmVwbGFjZUFsbCgnJmd0OycsICc+Jyk7XG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3JlYWN0L3NyYy9qcy9jb21wb25lbnRzL0NvbnNvbmFudC9IZWxwZXJzL0hlbHBlcnMuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///22\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitizeStr = exports.getFeaturedCards = exports.getRandomSort = exports.getUpdatedCardBookmarkData = exports.processCards = exports.joinCardSets = exports.getCardsMatchingSearch = exports.getEventSort = exports.getDateDescSort = exports.getDateAscSort = exports.getFeaturedSort = exports.getModifiedAscSort = exports.getModifiedDescSort = exports.getTitleDescSort = exports.getTitleAscSort = exports.hasTag = exports.getCardsMatchingQuery = exports.highlightCard = exports.getFilteredCards = exports.getActivePanels = exports.getActiveFilterIds = exports.getBookmarkedCards = exports.getCollectionCards = exports.getTotalPages = exports.getNumCardsToShow = exports.shouldDisplayPaginator = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _immer = __webpack_require__(270);\n\nvar _immer2 = _interopRequireDefault(_immer);\n\nvar _rendering = __webpack_require__(40);\n\nvar _general = __webpack_require__(5);\n\nvar _constants = __webpack_require__(15);\n\nvar _eventSort = __webpack_require__(271);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * Needs to be explicitly called by immer - Needed for IE 11 support\n * @type {Function}\n */\n(0, _immer.enableES5)();\n\n/**\n * Determines whether paginator component should display\n * @param {Boolean} enabled - Authored flag whether component should display or not\n * @param {Number} totalCardLimit - Authored limit for how many cards should display\n * @param {Number} totalResults - Total cards in collection\n * @returns {Boolean} - Whether Paginator should display or not\n */\nvar shouldDisplayPaginator = exports.shouldDisplayPaginator = function shouldDisplayPaginator(enabled, totalCardLimit, totalResults) {\n var totalCardLimitNotZero = totalCardLimit > 0;\n var cardLengthExceedsDisplayLimit = totalResults > totalCardLimit;\n\n return enabled && totalCardLimitNotZero && !cardLengthExceedsDisplayLimit;\n};\n\n/**\n * Determines how many cards to show\n * @param {Number} resultsPerPage - How many cards should show per page (Authored Field)\n * @param {Number} currentPage - Current page user is on\n * @param {Number} totalResults - Total cards in collection\n * @returns {Number} - Number of cards to show\n */\nvar getNumCardsToShow = exports.getNumCardsToShow = function getNumCardsToShow(resultsPerPage, currentPage, totalResults) {\n return Math.min(resultsPerPage * currentPage, totalResults);\n};\n\n/**\n * Gets Total Page Count (For Paginator Component)\n * @param {Number} resultsPerPage - How many cards should show per page (Authored Field)\n * @param {Number} totalResults - Total cards in collection\n * @returns {Number} - Total number of pages\n */\nvar getTotalPages = exports.getTotalPages = function getTotalPages(resultsPerPage, totalResults) {\n if (resultsPerPage === 0) return 0;\n return Math.ceil(totalResults / resultsPerPage);\n};\n\n/**\n * Determines whether to show collection cards or bookmarked cards only\n * (If author chooses bookmarks only collection)\n\n * @param {Boolean} showBookmarksOnly - Authored Flag to Force Card Collection To\n * Only Show Bookmarks\n * @param {Array} bookmarkedCards - Bookmarked cards only\n * @param {Array} collectionCards - All cards\n * @returns {Array} - Which collection of cards to show\n */\nvar getCollectionCards = exports.getCollectionCards = function getCollectionCards(showBookmarksOnly, bookmarkedCards, collectionCards) {\n return showBookmarksOnly ? bookmarkedCards : collectionCards;\n};\n\n/**\n * Filter to get all bookmarked cards\n * @param {Array} collectionCards - All cards\n * @returns {Array} - All bookmarked cards\n */\nvar getBookmarkedCards = exports.getBookmarkedCards = function getBookmarkedCards(collectionCards) {\n return collectionCards.filter(function (card) {\n return card.isBookmarked;\n });\n};\n\n/**\n * Gets all filters checked by a user\n * @param {Array} filters - All filters on page\n * @returns {Array} - All checked filters by user\n */\nvar getActiveFilterIds = exports.getActiveFilterIds = function getActiveFilterIds(filters) {\n return (0, _general.chainFromIterable)(filters.map(function (f) {\n return f.items;\n })).filter(function (item) {\n return item.selected;\n }).map(function (item) {\n return item.id;\n });\n};\n\n/**\n * Gets all filter panels with filters checked by a user\n * @param {Array} activeFilters - All filters checked\n * @returns {Set} - Set of filter panels with filters checked on the page\n */\nvar getActivePanels = exports.getActivePanels = function getActivePanels(activeFilters) {\n return new Set(activeFilters.map(function (filter) {\n return filter.replace(/\\/.*$/, '');\n }));\n};\n\n/**\n * Helper method to dermine whether author chose XOR or AND type filtering\n * @param {String} filterType - Filter used in collection\n * @param {Object} filterTypes - All possible filters\n * @returns {Boolean} - Whether collection is using a XOR or AND type filtering\n */\nvar getUsingXorAndFilter = function getUsingXorAndFilter(filterType, filterTypes) {\n return filterType === filterTypes.XOR || filterType === filterTypes.AND;\n};\n\n/**\n * Helper method to dermine whether author chose OR type filtering\n * @param {String} filterType - Filter used in collection\n * @param {Object} filterTypes - All possible filters\n * @returns {Boolean} - Whether collection is using OR type filtering\n */\nvar getUsingOrFilter = function getUsingOrFilter(filterType, filterTypes) {\n return filterType === filterTypes.OR;\n};\n\n/**\n * Helper method to determine whether we are doing event filtering from the side bar tags\n * @param {Set} activeFilterSet\n * @returns {Boolean} - Whether collection has an event filter\n */\nvar getUsingTimingFilter = function getUsingTimingFilter(activeFiltersSet) {\n return activeFiltersSet.has(_constants.EVENT_TIMING_IDS.LIVE) || activeFiltersSet.has(_constants.EVENT_TIMING_IDS.ONDEMAND) || activeFiltersSet.has(_constants.EVENT_TIMING_IDS.UPCOMING);\n};\n\n/**\n * Helper method to determine whether the card is within event timing\n * @param {Object} card\n * @param {Set} timing\n * @returns {Boolean} - whether the card falls within selected timing options\n */\nvar checkEventTiming = function checkEventTiming(card, timing) {\n var curMs = Date.now();\n // Times in milliseconds\n var startMs = (0, _eventSort.convertDateStrToMs)(card.startDate);\n var endMs = (0, _eventSort.convertDateStrToMs)(card.endDate);\n // Timed categories\n var isTimed = !!(startMs && endMs);\n var isUpComing = isTimed ? (0, _eventSort.defineIsUpcoming)(curMs, startMs) : false;\n var isOnDemand = isTimed && !isUpComing ? (0, _eventSort.defineIsOnDemand)(curMs, endMs) : false;\n var isLive = !!(isTimed && !isUpComing && !isOnDemand && startMs);\n\n // if you have timing filters active and there is no timing on the card it should be rejected\n if (!isTimed) return false;\n if (timing.has(_constants.EVENT_TIMING_IDS.UPCOMING) && isUpComing) return true;else if (timing.has(_constants.EVENT_TIMING_IDS.ONDEMAND) && isOnDemand) return true;else if (timing.has(_constants.EVENT_TIMING_IDS.LIVE) && isLive) return true;\n return false;\n};\n\n/**\n * Will return all cards that match a set of filters\n * @param {Array} cards - All cards in the collection\n * @param {Array} activeFilters - All filters selected by user\n * @param {Array} activePanels - Active filters panels selected by user\n * @param {String} filterType - Filter used in collection\n * @param {Object} filterTypes - All possible filters\n * @returns {Array} - All cards that match filter options\n */\n// eslint-disable-next-line max-len\nvar getFilteredCards = exports.getFilteredCards = function getFilteredCards(cards, activeFilters, activePanels, filterType, filterTypes, categories) {\n var activeFiltersSet = new Set(activeFilters);\n var timingSet = (0, _general.intersection)(activeFiltersSet, new Set([_constants.EVENT_TIMING_IDS.LIVE, _constants.EVENT_TIMING_IDS.ONDEMAND, _constants.EVENT_TIMING_IDS.UPCOMING]));\n var usingXorAndFilter = getUsingXorAndFilter(filterType, filterTypes);\n var usingOrFilter = getUsingOrFilter(filterType, filterTypes);\n var usingTimingFilter = getUsingTimingFilter(activeFiltersSet);\n // remove the time elements from the active filter set before you actually filter\n timingSet.forEach(function (filter) {\n return activeFiltersSet.delete(filter);\n });\n\n var temp = [];\n var set = new Set();\n if (categories && categories.length) {\n for (var i = 0; i < cards.length; i++) {\n var card = cards[i];\n for (var j = 0; j < categories.length; j++) {\n var category = categories[j];\n for (var k = 0; k < card.tags.length; k++) {\n var currTag = card.tags[k];\n if (currTag.id.includes(category) && !set.has(card.id)) {\n set.add(card.id);\n temp.push(card);\n }\n }\n }\n }\n /* eslint-disable-next-line no-param-reassign */\n cards = temp;\n }\n\n if (activeFiltersSet.size === 0 && !usingTimingFilter) return cards;\n\n return cards.filter(function (card) {\n if (!card.tags && !usingTimingFilter) {\n return false;\n } else if (usingTimingFilter && !checkEventTiming(card, timingSet)) {\n return false;\n } else if (usingTimingFilter && checkEventTiming(card, timingSet) && activeFiltersSet.size === 0) {\n // if the only filters being performed are about event timing\n return true;\n }\n // you proceed to check the other tags in the cards after the time filter checks\n var tagIds = new Set(card.tags.map(function (tag) {\n return tag.id;\n }));\n\n if (usingXorAndFilter) {\n return (0, _general.isSuperset)(tagIds, activeFiltersSet);\n } else if (usingOrFilter && activePanels.size < 2) {\n return (0, _general.intersection)(tagIds, activeFiltersSet).size;\n } else if (usingOrFilter) {\n // check if card' tags panels include all panels with selected filters\n var tagPanels = new Set(card.tags.map(function (tag) {\n return tag.id.replace(/\\/.*$/, '');\n }));\n if (!(0, _general.isSuperset)(tagPanels, activePanels)) return false;\n\n // check if card' tags include all panels with selected filters\n var allPanelsMatch = true;\n // eslint-disable-next-line no-restricted-syntax\n\n var _loop = function _loop(panel) {\n var filtersCheckedInPanel = new Set([].concat(_toConsumableArray(activeFiltersSet)).filter(function (id) {\n return id.includes(panel, 0);\n }));\n if (!(0, _general.intersection)(tagIds, filtersCheckedInPanel).size) {\n allPanelsMatch = false;\n }\n };\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = activePanels[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var panel = _step.value;\n\n _loop(panel);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return allPanelsMatch;\n }\n throw new Error('Unrecognized filter type: ' + filterType);\n });\n};\n\n/**\n * If a card matches a search query, this method will highlight it\n * @param {Array} baseCard - Card to highlight\n * @param {Array} searchField - Field that matches Query\n * @param {String} query - The users search query\n * @returns {Card} The highlighted caard\n */\nvar highlightCard = exports.highlightCard = function highlightCard(baseCard, searchField, query) {\n return (0, _immer2.default)(baseCard, function (draftCard) {\n var searchFieldValue = (0, _general.getByPath)(draftCard, searchField, null);\n if (searchFieldValue === null || searchFieldValue === '') return;\n var highlightedSearchFieldValue = (0, _rendering.HighlightSearchField)(searchFieldValue, query);\n (0, _general.setByPath)(draftCard, searchField, highlightedSearchFieldValue);\n });\n};\n\n/**\n * If a card matches a search query, this method will highlight it\n * @param {Array} searchField - Field that matches Query\n * @param {Array} card - Card to check\n * @param {String} query - The users search query\n * @returns {Boolean} If the card matches the user's search query\n */\nvar cardMatchesQuery = function cardMatchesQuery(searchField, card, searchQuery) {\n var searchFieldValue = (0, _general.getByPath)(card, searchField, '');\n var cleanSearchFieldValue = (0, _general.sanitizeText)(searchFieldValue);\n return cleanSearchFieldValue.includes(searchQuery);\n};\n\n/**\n * Helper to implement Set() data structure w/ Vanilla Arrays\n * Would've used new Set(), but polyfill has bug in IE11 converting Array.from(new Set())\n *\n * @param {Array} cards\n * @return {Array} - Unique Card Set from Cards (filtering based off unique card ids)\n */\nvar getUniqueCardSet = function getUniqueCardSet(cards) {\n var uniqueCardSet = [];\n cards.forEach(function (card) {\n var cardNotInSet = uniqueCardSet.findIndex(function (element) {\n return element.id === card.id;\n }) <= -1;\n if (cardNotInSet) {\n uniqueCardSet.push(card);\n }\n });\n return uniqueCardSet;\n};\n\n/**\n * Gets all cards that matches a users search query\n * @param {Array} cards - All cards in the card collection\n * @param {Array} searchFields - All authored search fields to check\n * @param {String} query - The users search query\n * @returns {Array} - All cards that match the user's query for a given set of search fields\n */\nvar getCardsMatchingQuery = exports.getCardsMatchingQuery = function getCardsMatchingQuery(cards, searchFields, query) {\n var cardsMatchingQuery = [];\n cards.forEach(function (card) {\n searchFields.forEach(function (searchField) {\n if (cardMatchesQuery(searchField, card, query)) {\n cardsMatchingQuery.push(card);\n }\n });\n });\n return getUniqueCardSet(cardsMatchingQuery);\n};\n/**\n * @func hasTag\n * @desc Does current entity have a specific tag?\n * @param {RegExp} compare a regEx pattern to test for\n * @param {Array} tags an array of tags\n */\nvar hasTag = exports.hasTag = function hasTag(compare) {\n var tags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (!tags.length || compare.constructor.name !== 'RegExp') return false;\n\n return tags.some(function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$id = _ref.id,\n id = _ref$id === undefined ? '' : _ref$id;\n\n return id && compare.test(id);\n });\n};\n\n/**\n * Returns all cards title sorted (A-Z)\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by title\n */\nvar getTitleAscSort = exports.getTitleAscSort = function getTitleAscSort(cards) {\n return cards.sort(function (cardOne, cardTwo) {\n var cardOneTitle = (0, _general.getByPath)(cardOne, 'contentArea.title');\n var cardTwoTitle = (0, _general.getByPath)(cardTwo, 'contentArea.title');\n return cardOneTitle.localeCompare(cardTwoTitle);\n });\n};\n\n/**\n * Returns all cards title sorted (Z-A)\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by title\n */\nvar getTitleDescSort = exports.getTitleDescSort = function getTitleDescSort(cards) {\n return getTitleAscSort(cards).reverse();\n};\n\n/**\n * Returns all cards sorted by date modified newest to oldest\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by title\n */\nvar getModifiedDescSort = exports.getModifiedDescSort = function getModifiedDescSort(cards) {\n return cards.sort(function (cardOne, cardTwo) {\n var cardOneModDate = (0, _general.getByPath)(cardOne, 'modifiedDate');\n var cardTwoModDate = (0, _general.getByPath)(cardTwo, 'modifiedDate');\n if (cardOneModDate && cardTwoModDate) {\n return cardTwoModDate.localeCompare(cardOneModDate);\n }\n return 0;\n });\n};\n\n/**\n * Returns all cards sorted by date modified oldest to newest\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by title\n */\nvar getModifiedAscSort = exports.getModifiedAscSort = function getModifiedAscSort(cards) {\n return getModifiedDescSort(cards).reverse();\n};\n\n/**\n * Returns all cards Featured sorted\n * This just returns the original cards returned by Chimera IO\n * Chimera IO is responsible for handling featured sort\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - Cards in the original order given by Chimera IO\n */\nvar getFeaturedSort = exports.getFeaturedSort = function getFeaturedSort(cards) {\n return cards;\n};\n\n/**\n * Returns all Cards Date Sorted (Old To New)\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by Date\n */\nvar getDateAscSort = exports.getDateAscSort = function getDateAscSort(cards) {\n return cards.sort(function (cardOne, cardTwo) {\n var cardOneDate = (0, _general.getByPath)(cardOne, 'cardDate');\n var cardTwoDate = (0, _general.getByPath)(cardTwo, 'cardDate');\n if (cardOneDate && cardTwoDate) {\n if (cardOneDate !== cardTwoDate) {\n return cardOneDate.localeCompare(cardTwoDate);\n }\n return (cardOne.id || '').localeCompare(cardTwo.id || '');\n }\n return 0;\n });\n};\n\n/**\n * Returns all Cards Date Sorted (New To Old)\n * @param {Array} cards - All cards in the card collection\n * @returns {Array} - All cards sorted by Date\n */\nvar getDateDescSort = exports.getDateDescSort = function getDateDescSort(cards) {\n return getDateAscSort(cards).reverse();\n};\n\n/**\n * @func getEventSort\n * @desc This method, if needed, sets up Timing features for a collection\n (1) Has to check each card for card.contentArea.dateDetailText.startTime\n || endTime, if neither the card gets pushed to back of stack.\n (2) There are six categories for consideration\n a. Live: Current Time > Start Time && Current Time < End Time\n b. Upcoming: Current Time < Start Time and does not have\n \"OnDemand scheduled\" tag which cannot show until it is onDemand\n c. \"OnDemand scheduled\": UpComing, and has \"OnDemand scheduled\" tag,\n will not be seen until it is OnDemand.\n d. OnDemand: Current Time > End Time, does not have \"Live Expired\" tag\n e. Live Expired: OnDemand, has \"live-expired\" tag, and is no longer shown.\n f. All other cards, not having startTime || endTime.\n * @param {Array} cards - All cards in the card collection\n * @param {Object} urlState - URL search/query Params.\n * @returns {Array} visibleCards\n */\nvar getEventSort = exports.getEventSort = function getEventSort() {\n var cards = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var eventFilter = arguments[1];\n\n var transformedCards = cards.map(function (card) {\n return {\n id: card.id,\n startDate: card.contentArea.dateDetailText.startTime,\n endDate: card.contentArea.dateDetailText.endTime,\n tags: card.tags || []\n };\n });\n\n var result = (0, _eventSort.eventTiming)(transformedCards, eventFilter);\n\n var visibleSessions = result.visibleSessions.filter(function (session) {\n return session.tags.includes(eventFilter);\n }).map(function (session) {\n return {\n id: session.id,\n contentArea: {\n dateDetailText: {\n startTime: session.startDate,\n endTime: session.endDate\n }\n },\n tags: session.tags\n };\n });\n\n return {\n nextTransitionMs: result.nextTransitionMs,\n visibleSessions: visibleSessions\n };\n};\n/**\n * Gets all cards that matches a users search query\n * @param {String} query - The users search query\n * @param {Array} cards - All cards in the card collection\n * @param {Array} searchFields - All authored search fields to check\n * @returns {Array} - All cards that match the user's query for a given set of search fields\n */\nvar getCardsMatchingSearch = exports.getCardsMatchingSearch = function getCardsMatchingSearch(query, cards, searchFields) {\n if (!query) {\n return cards;\n }\n var searchQuery = (0, _general.sanitizeText)(query);\n var cardsMatchingQuery = getCardsMatchingQuery(cards, searchFields, searchQuery);\n return cardsMatchingQuery;\n};\n\n/**\n * Joins two sets of cards\n * @param {Array} cardSetOne - Set one of cards to join\n * @param {Array} cardSetTwo - Set two of cards to join\n * @returns {Array} - Cards sets one and two joined\n */\nvar joinCardSets = exports.joinCardSets = function joinCardSets(cardSetOne, cardSetTwo) {\n return cardSetOne.concat(cardSetTwo);\n};\n\n/**\n * Processes featured cards with raw cards received from API response\n * @param {Array} featuredCards - Authored Featured Cards\n * @param {Array} rawCards - Cards from API response\n * @returns {Array} - Set of cards processed\n */\nvar processCards = exports.processCards = function processCards(featuredCards, rawCards) {\n return (0, _general.removeDuplicatesByKey)(joinCardSets(featuredCards, rawCards), 'id');\n};\n\n/**\n * Helper method for effect that adds bookmark meta data to cards\n * @param {Array} cards - All cards in card collection\n * @param {Array} bookmarkedCardIds - All bookmarked card ids\n * @returns {Array} - Cards with bookmark meta data\n */\nvar getUpdatedCardBookmarkData = exports.getUpdatedCardBookmarkData = function getUpdatedCardBookmarkData(cards, bookmarkedCardIds) {\n return cards.map(function (card) {\n return _extends({}, card, {\n isBookmarked: bookmarkedCardIds.some(function (i) {\n return i === card.id;\n })\n });\n });\n};\n\nvar cache = new Map();\n\n/**\n * Returns a random number from [start, bound)\n * @param {int} start - Starting bound (inclusive)\n * @param {int} end - Ending bound (exclusive)\n * @returns {int} - A random integer between [start, bound)\n */\nfunction getRandom(start, end) {\n return Math.floor(Math.random() * (end - start)) + start;\n}\n\n/**\n * Returns a random sample of sampleSize from an array stream\n * @param {Array} stream - An array of items to select a random sample from\n * @param {int} sampleSize - The size of the random sample\n * @returns {Array} - A random sample from the array stream\n */\nfunction reservoirSample(stream, sampleSize) {\n var reservoir = [];\n /* eslint-disable-next-line no-restricted-syntax */\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.entries(stream)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref2 = _step2.value;\n\n var _ref3 = _slicedToArray(_ref2, 2);\n\n var i = _ref3[0];\n var val = _ref3[1];\n\n if (reservoir.length < sampleSize) {\n reservoir.push(val);\n } else {\n var random = getRandom(0, i + 1);\n if (random < sampleSize) {\n reservoir[random] = val;\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return reservoir;\n}\n\n/**\n * Returns the input array randomly shuffled using the Fisher-Yates algorithm.\n *\n * @param {Array} arr - Array to be shuffled\n * @returns {Array} - The shuffled array\n */\nfunction fischerYatesShuffle(arr) {\n var currentIndex = arr.length;\n var randomIndex = void 0;\n while (currentIndex !== 0) {\n randomIndex = getRandom(0, currentIndex);\n /* eslint-disable-next-line no-plusplus */\n currentIndex--;\n var _ref4 = [arr[randomIndex], arr[currentIndex]];\n arr[currentIndex] = _ref4[0];\n arr[randomIndex] = _ref4[1];\n }\n return arr;\n}\n\n/**\n * Returns an an array of randomly sorted cards.\n *\n * If the cards for a given card collection have already been sorted, return from cache.\n * Otherwise sort randomly and cache result.\n *\n * @param {Array} cards - cards to be randomly sorted\n * @param {int} id - Id of the card collection the cards belong to.\n * @param {int} sampleSize - sample size used for the random sample\n * @returns {Array} - An array of randomly sorted cards\n */\nvar getRandomSort = exports.getRandomSort = function getRandomSort(cards, id, sampleSize, reservoirSize) {\n if (!cache.get(id)) {\n var stream = fischerYatesShuffle(cards.slice(0, reservoirSize));\n var randomSample = reservoirSample(stream, sampleSize);\n cache.set(id, randomSample);\n }\n return cache.get(id);\n};\n\nvar getFeaturedCards = exports.getFeaturedCards = function getFeaturedCards(ids, cards) {\n var ans = [];\n /* eslint-disable no-restricted-syntax */\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = ids[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var id = _step3.value;\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = cards[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var card = _step4.value;\n\n if (card.id === id) {\n var c = JSON.parse(JSON.stringify(card)); // Deep clone using JSON methods\n c.isFeatured = true;\n ans.push(c);\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return ans;\n};\n\n/**\n * Returns an sanitized (html friendly) string\n *\n * If the string conatins '&' it will be replaced with '&'\n * if the string contains '<' it will be replaced with '<'\n * if the string contains '>' it will be replaced with '>'\n *\n * @param {str} str - string to be sanitized\n * @returns {str} - satinized string\n */\nvar sanitizeStr = exports.sanitizeStr = function sanitizeStr(str) {\n return str.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>');\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZWFjdC9zcmMvanMvY29tcG9uZW50cy9Db25zb25hbnQvSGVscGVycy9IZWxwZXJzLmpzPzBlNDUiXSwibmFtZXMiOlsic2hvdWxkRGlzcGxheVBhZ2luYXRvciIsImVuYWJsZWQiLCJ0b3RhbENhcmRMaW1pdCIsInRvdGFsUmVzdWx0cyIsInRvdGFsQ2FyZExpbWl0Tm90WmVybyIsImNhcmRMZW5ndGhFeGNlZWRzRGlzcGxheUxpbWl0IiwiZ2V0TnVtQ2FyZHNUb1Nob3ciLCJyZXN1bHRzUGVyUGFnZSIsImN1cnJlbnRQYWdlIiwiTWF0aCIsIm1pbiIsImdldFRvdGFsUGFnZXMiLCJjZWlsIiwiZ2V0Q29sbGVjdGlvbkNhcmRzIiwic2hvd0Jvb2ttYXJrc09ubHkiLCJib29rbWFya2VkQ2FyZHMiLCJjb2xsZWN0aW9uQ2FyZHMiLCJnZXRCb29rbWFya2VkQ2FyZHMiLCJmaWx0ZXIiLCJjYXJkIiwiaXNCb29rbWFya2VkIiwiZ2V0QWN0aXZlRmlsdGVySWRzIiwiZmlsdGVycyIsIm1hcCIsImYiLCJpdGVtcyIsIml0ZW0iLCJzZWxlY3RlZCIsImlkIiwiZ2V0QWN0aXZlUGFuZWxzIiwiU2V0IiwiYWN0aXZlRmlsdGVycyIsInJlcGxhY2UiLCJnZXRVc2luZ1hvckFuZEZpbHRlciIsImZpbHRlclR5cGUiLCJmaWx0ZXJUeXBlcyIsIlhPUiIsIkFORCIsImdldFVzaW5nT3JGaWx0ZXIiLCJPUiIsImdldFVzaW5nVGltaW5nRmlsdGVyIiwiYWN0aXZlRmlsdGVyc1NldCIsImhhcyIsIkVWRU5UX1RJTUlOR19JRFMiLCJMSVZFIiwiT05ERU1BTkQiLCJVUENPTUlORyIsImNoZWNrRXZlbnRUaW1pbmciLCJ0aW1pbmciLCJjdXJNcyIsIkRhdGUiLCJub3ciLCJzdGFydE1zIiwic3RhcnREYXRlIiwiZW5kTXMiLCJlbmREYXRlIiwiaXNUaW1lZCIsImlzVXBDb21pbmciLCJpc09uRGVtYW5kIiwiaXNMaXZlIiwiZ2V0RmlsdGVyZWRDYXJkcyIsImNhcmRzIiwiYWN0aXZlUGFuZWxzIiwiY2F0ZWdvcmllcyIsInRpbWluZ1NldCIsInVzaW5nWG9yQW5kRmlsdGVyIiwidXNpbmdPckZpbHRlciIsInVzaW5nVGltaW5nRmlsdGVyIiwiZm9yRWFjaCIsImRlbGV0ZSIsInRlbXAiLCJzZXQiLCJsZW5ndGgiLCJpIiwiaiIsImNhdGVnb3J5IiwiayIsInRhZ3MiLCJjdXJyVGFnIiwiaW5jbHVkZXMiLCJhZGQiLCJwdXNoIiwic2l6ZSIsInRhZ0lkcyIsInRhZyIsInRhZ1BhbmVscyIsImFsbFBhbmVsc01hdGNoIiwicGFuZWwiLCJmaWx0ZXJzQ2hlY2tlZEluUGFuZWwiLCJFcnJvciIsImhpZ2hsaWdodENhcmQiLCJiYXNlQ2FyZCIsInNlYXJjaEZpZWxkIiwicXVlcnkiLCJkcmFmdENhcmQiLCJzZWFyY2hGaWVsZFZhbHVlIiwiaGlnaGxpZ2h0ZWRTZWFyY2hGaWVsZFZhbHVlIiwiY2FyZE1hdGNoZXNRdWVyeSIsInNlYXJjaFF1ZXJ5IiwiY2xlYW5TZWFyY2hGaWVsZFZhbHVlIiwiZ2V0VW5pcXVlQ2FyZFNldCIsInVuaXF1ZUNhcmRTZXQiLCJjYXJkTm90SW5TZXQiLCJmaW5kSW5kZXgiLCJlbGVtZW50IiwiZ2V0Q2FyZHNNYXRjaGluZ1F1ZXJ5Iiwic2VhcmNoRmllbGRzIiwiY2FyZHNNYXRjaGluZ1F1ZXJ5IiwiaGFzVGFnIiwiY29tcGFyZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInNvbWUiLCJ0ZXN0IiwiZ2V0VGl0bGVBc2NTb3J0Iiwic29ydCIsImNhcmRPbmUiLCJjYXJkVHdvIiwiY2FyZE9uZVRpdGxlIiwiY2FyZFR3b1RpdGxlIiwibG9jYWxlQ29tcGFyZSIsImdldFRpdGxlRGVzY1NvcnQiLCJyZXZlcnNlIiwiZ2V0TW9kaWZpZWREZXNjU29ydCIsImNhcmRPbmVNb2REYXRlIiwiY2FyZFR3b01vZERhdGUiLCJnZXRNb2RpZmllZEFzY1NvcnQiLCJnZXRGZWF0dXJlZFNvcnQiLCJnZXREYXRlQXNjU29ydCIsImNhcmRPbmVEYXRlIiwiY2FyZFR3b0RhdGUiLCJnZXREYXRlRGVzY1NvcnQiLCJnZXRFdmVudFNvcnQiLCJldmVudEZpbHRlciIsInRyYW5zZm9ybWVkQ2FyZHMiLCJjb250ZW50QXJlYSIsImRhdGVEZXRhaWxUZXh0Iiwic3RhcnRUaW1lIiwiZW5kVGltZSIsInJlc3VsdCIsInZpc2libGVTZXNzaW9ucyIsInNlc3Npb24iLCJuZXh0VHJhbnNpdGlvbk1zIiwiZ2V0Q2FyZHNNYXRjaGluZ1NlYXJjaCIsImpvaW5DYXJkU2V0cyIsImNhcmRTZXRPbmUiLCJjYXJkU2V0VHdvIiwiY29uY2F0IiwicHJvY2Vzc0NhcmRzIiwiZmVhdHVyZWRDYXJkcyIsInJhd0NhcmRzIiwiZ2V0VXBkYXRlZENhcmRCb29rbWFya0RhdGEiLCJib29rbWFya2VkQ2FyZElkcyIsImNhY2hlIiwiTWFwIiwiZ2V0UmFuZG9tIiwic3RhcnQiLCJlbmQiLCJmbG9vciIsInJhbmRvbSIsInJlc2Vydm9pclNhbXBsZSIsInN0cmVhbSIsInNhbXBsZVNpemUiLCJyZXNlcnZvaXIiLCJPYmplY3QiLCJlbnRyaWVzIiwidmFsIiwiZmlzY2hlcllhdGVzU2h1ZmZsZSIsImFyciIsImN1cnJlbnRJbmRleCIsInJhbmRvbUluZGV4IiwiZ2V0UmFuZG9tU29ydCIsInJlc2Vydm9pclNpemUiLCJnZXQiLCJzbGljZSIsInJhbmRvbVNhbXBsZSIsImdldEZlYXR1cmVkQ2FyZHMiLCJpZHMiLCJhbnMiLCJjIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiaXNGZWF0dXJlZCIsInNhbml0aXplU3RyIiwic3RyIiwicmVwbGFjZUFsbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUVBOztBQUNBOztBQVNBOztBQUNBOzs7Ozs7QUFPQTs7OztBQUlBOztBQUVBOzs7Ozs7O0FBT08sSUFBTUEsMERBQXlCLFNBQXpCQSxzQkFBeUIsQ0FBQ0MsT0FBRCxFQUFVQyxjQUFWLEVBQTBCQyxZQUExQixFQUEyQztBQUM3RSxRQUFNQyx3QkFBd0JGLGlCQUFp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IjIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByb2R1Y2UsIHsgZW5hYmxlRVM1IH0gZnJvbSAnaW1tZXInO1xuXG5pbXBvcnQgeyBIaWdobGlnaHRTZWFyY2hGaWVsZCB9IGZyb20gJy4vcmVuZGVyaW5nJztcbmltcG9ydCB7XG4gICAgZ2V0QnlQYXRoLFxuICAgIHNldEJ5UGF0aCxcbiAgICBpc1N1cGVyc2V0LFxuICAgIGludGVyc2VjdGlvbixcbiAgICBzYW5pdGl6ZVRleHQsXG4gICAgY2hhaW5Gcm9tSXRlcmFibGUsXG4gICAgcmVtb3ZlRHVwbGljYXRlc0J5S2V5LFxufSBmcm9tICcuL2dlbmVyYWwnO1xuaW1wb3J0IHsgRVZFTlRfVElNSU5HX0lEUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gICAgZXZlbnRUaW1pbmcsXG4gICAgY29udmVydERhdGVTdHJUb01zLFxuICAgIGRlZmluZUlzT25EZW1hbmQsXG4gICAgZGVmaW5lSXNVcGNvbWluZyxcbn0gZnJvbSAnLi9ldmVudFNvcnQnO1xuXG4vKipcbiAqIE5lZWRzIHRvIGJlIGV4cGxpY2l0bHkgY2FsbGVkIGJ5IGltbWVyIC0gTmVlZGVkIGZvciBJRSAxMSBzdXBwb3J0XG4gKiBAdHlwZSB7RnVuY3Rpb259XG4gKi9cbmVuYWJsZUVTNSgpO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBwYWdpbmF0b3IgY29tcG9uZW50IHNob3VsZCBkaXNwbGF5XG4gKiBAcGFyYW0ge0Jvb2xlYW59IGVuYWJsZWQgLSBBdXRob3JlZCBmbGFnIHdoZXRoZXIgY29tcG9uZW50IHNob3VsZCBkaXNwbGF5IG9yIG5vdFxuICogQHBhcmFtIHtOdW1iZXJ9IHRvdGFsQ2FyZExpbWl0IC0gQXV0aG9yZWQgbGltaXQgZm9yIGhvdyBtYW55IGNhcmRzIHNob3VsZCBkaXNwbGF5XG4gKiBAcGFyYW0ge051bWJlcn0gdG90YWxSZXN1bHRzIC0gVG90YWwgY2FyZHMgaW4gY29sbGVjdGlvblxuICogQHJldHVybnMge0Jvb2xlYW59IC0gV2hldGhlciBQYWdpbmF0b3Igc2hvdWxkIGRpc3BsYXkgb3Igbm90XG4gKi9cbmV4cG9ydCBjb25zdCBzaG91bGREaXNwbGF5UGFnaW5hdG9yID0gKGVuYWJsZWQsIHRvdGFsQ2FyZExpbWl0LCB0b3RhbFJlc3VsdHMpID0+IHtcbiAgICBjb25zdCB0b3RhbENhcmRMaW1pdE5vdFplcm8gPSB0b3RhbENhcmRMaW1pdCA+IDA7XG4gICAgY29uc3QgY2FyZExlbmd0aEV4Y2VlZHNEaXNwbGF5TGltaXQgPSB0b3RhbFJlc3VsdHMgPiB0b3RhbENhcmRMaW1pdDtcblxuICAgIHJldHVybiBlbmFibGVkICYmXG4gICAgICAgIHRvdGFsQ2FyZExpbWl0Tm90WmVybyAmJlxuICAgICAgICAhY2FyZExlbmd0aEV4Y2VlZHNEaXNwbGF5TGltaXQ7XG59O1xuXG5cbi8qKlxuICogRGV0ZXJtaW5lcyBob3cgbWFueSBjYXJkcyB0byBzaG93XG4gKiBAcGFyYW0ge051bWJlcn0gcmVzdWx0c1BlclBhZ2UgLSBIb3cgbWFueSBjYXJkcyBzaG91bGQgc2hvdyBwZXIgcGFnZSAoQXV0aG9yZWQgRmllbGQpXG4gKiBAcGFyYW0ge051bWJlcn0gY3VycmVudFBhZ2UgLSBDdXJyZW50IHBhZ2UgdXNlciBpcyBvblxuICogQHBhcmFtIHtOdW1iZXJ9IHRvdGFsUmVzdWx0cyAtIFRvdGFsIGNhcmRzIGluIGNvbGxlY3Rpb25cbiAqIEByZXR1cm5zIHtOdW1iZXJ9IC0gTnVtYmVyIG9mIGNhcmRzIHRvIHNob3dcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE51bUNhcmRzVG9TaG93ID0gKHJlc3VsdHNQZXJQYWdlLCBjdXJyZW50UGFnZSwgdG90YWxSZXN1bHRzKSA9PlxuICAgIE1hdGgubWluKHJlc3VsdHNQZXJQYWdlICogY3VycmVudFBhZ2UsIHRvdGFsUmVzdWx0cyk7XG5cbi8qKlxuICogR2V0cyBUb3RhbCBQYWdlIENvdW50IChGb3IgUGFnaW5hdG9yIENvbXBvbmVudClcbiAqIEBwYXJhbSB7TnVtYmVyfSByZXN1bHRzUGVyUGFnZSAtIEhvdyBtYW55IGNhcmRzIHNob3VsZCBzaG93IHBlciBwYWdlIChBdXRob3JlZCBGaWVsZClcbiAqIEBwYXJhbSB7TnVtYmVyfSB0b3RhbFJlc3VsdHMgLSBUb3RhbCBjYXJkcyBpbiBjb2xsZWN0aW9uXG4gKiBAcmV0dXJucyB7TnVtYmVyfSAtIFRvdGFsIG51bWJlciBvZiBwYWdlc1xuICovXG5leHBvcnQgY29uc3QgZ2V0VG90YWxQYWdlcyA9IChyZXN1bHRzUGVyUGFnZSwgdG90YWxSZXN1bHRzKSA9PiB7XG4gICAgaWYgKHJlc3VsdHNQZXJQYWdlID09PSAwKSByZXR1cm4gMDtcbiAgICByZXR1cm4gTWF0aC5jZWlsKHRvdGFsUmVzdWx0cyAvIHJlc3VsdHNQZXJQYWdlKTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHNob3cgY29sbGVjdGlvbiBjYXJkcyBvciBib29rbWFya2VkIGNhcmRzIG9ubHlcbiAqIChJZiBhdXRob3IgY2hvb3NlcyBib29rbWFya3Mgb25seSBjb2xsZWN0aW9uKVxuXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHNob3dCb29rbWFya3NPbmx5IC0gQXV0aG9yZWQgRmxhZyB0byBGb3JjZSBDYXJkIENvbGxlY3Rpb24gVG9cbiAqIE9ubHkgU2hvdyBCb29rbWFya3NcbiAqIEBwYXJhbSB7QXJyYXl9IGJvb2ttYXJrZWRDYXJkcyAtIEJvb2ttYXJrZWQgY2FyZHMgb25seVxuICogQHBhcmFtIHtBcnJheX0gY29sbGVjdGlvbkNhcmRzIC0gQWxsIGNhcmRzXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gV2hpY2ggY29sbGVjdGlvbiBvZiBjYXJkcyB0byBzaG93XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDb2xsZWN0aW9uQ2FyZHMgPSAoc2hvd0Jvb2ttYXJrc09ubHksIGJvb2ttYXJrZWRDYXJkcywgY29sbGVjdGlvbkNhcmRzKSA9PiAoXG4gICAgc2hvd0Jvb2ttYXJrc09ubHkgPyBib29rbWFya2VkQ2FyZHMgOiBjb2xsZWN0aW9uQ2FyZHNcbik7XG5cbi8qKlxuICogRmlsdGVyIHRvIGdldCBhbGwgYm9va21hcmtlZCBjYXJkc1xuICogQHBhcmFtIHtBcnJheX0gY29sbGVjdGlvbkNhcmRzIC0gQWxsIGNhcmRzXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQWxsIGJvb2ttYXJrZWQgY2FyZHNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEJvb2ttYXJrZWRDYXJkcyA9XG4gICAgY29sbGVjdGlvbkNhcmRzID0+IGNvbGxlY3Rpb25DYXJkcy5maWx0ZXIoY2FyZCA9PiBjYXJkLmlzQm9va21hcmtlZCk7XG5cbi8qKlxuICogR2V0cyBhbGwgZmlsdGVycyBjaGVja2VkIGJ5IGEgdXNlclxuICogQHBhcmFtIHtBcnJheX0gZmlsdGVycyAtIEFsbCBmaWx0ZXJzIG9uIHBhZ2VcbiAqIEByZXR1cm5zIHtBcnJheX0gLSBBbGwgY2hlY2tlZCBmaWx0ZXJzIGJ5IHVzZXJcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFjdGl2ZUZpbHRlcklkcyA9IGZpbHRlcnMgPT4gY2hhaW5Gcm9tSXRlcmFibGUoZmlsdGVycy5tYXAoZiA9PiBmLml0ZW1zKSlcbiAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZClcbiAgICAubWFwKGl0ZW0gPT4gaXRlbS5pZCk7XG5cbi8qKlxuICogR2V0cyBhbGwgZmlsdGVyIHBhbmVscyB3aXRoIGZpbHRlcnMgY2hlY2tlZCBieSBhIHVzZXJcbiAqIEBwYXJhbSB7QXJyYXl9IGFjdGl2ZUZpbHRlcnMgLSBBbGwgZmlsdGVycyBjaGVja2VkXG4gKiBAcmV0dXJucyB7U2V0fSAtIFNldCBvZiBmaWx0ZXIgcGFuZWxzIHdpdGggZmlsdGVycyBjaGVja2VkIG9uIHRoZSBwYWdlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBY3RpdmVQYW5lbHMgPVxuICAgIGFjdGl2ZUZpbHRlcnMgPT4gbmV3IFNldChhY3RpdmVGaWx0ZXJzLm1hcChmaWx0ZXIgPT4gZmlsdGVyLnJlcGxhY2UoL1xcLy4qJC8sICcnKSkpO1xuXG4vKipcbiAqIEhlbHBlciBtZXRob2QgdG8gZGVybWluZSB3aGV0aGVyIGF1dGhvciBjaG9zZSBYT1Igb3IgQU5EIHR5cGUgZmlsdGVyaW5nXG4gKiBAcGFyYW0ge1N0cmluZ30gZmlsdGVyVHlwZSAtIEZpbHRlciB1c2VkIGluIGNvbGxlY3Rpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBmaWx0ZXJUeXBlcyAtIEFsbCBwb3NzaWJsZSBmaWx0ZXJzXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gLSBXaGV0aGVyIGNvbGxlY3Rpb24gaXMgdXNpbmcgYSBYT1Igb3IgQU5EIHR5cGUgZmlsdGVyaW5nXG4gKi9cbmNvbnN0IGdldFVzaW5nWG9yQW5kRmlsdGVyID0gKGZpbHRlclR5cGUsIGZpbHRlclR5cGVzKSA9PiAoXG4gICAgZmlsdGVyVHlwZSA9PT0gZmlsdGVyVHlwZXMuWE9SIHx8IGZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVzLkFORFxuKTtcblxuLyoqXG4gKiBIZWxwZXIgbWV0aG9kIHRvIGRlcm1pbmUgd2hldGhlciBhdXRob3IgY2hvc2UgT1IgdHlwZSBmaWx0ZXJpbmdcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWx0ZXJUeXBlIC0gRmlsdGVyIHVzZWQgaW4gY29sbGVjdGlvblxuICogQHBhcmFtIHtPYmplY3R9IGZpbHRlclR5cGVzIC0gQWxsIHBvc3NpYmxlIGZpbHRlcnNcbiAqIEByZXR1cm5zIHtCb29sZWFufSAtIFdoZXRoZXIgY29sbGVjdGlvbiBpcyB1c2luZyBPUiB0eXBlIGZpbHRlcmluZ1xuICovXG5jb25zdCBnZXRVc2luZ09yRmlsdGVyID0gKGZpbHRlclR5cGUsIGZpbHRlclR5cGVzKSA9PiAoXG4gICAgZmlsdGVyVHlwZSA9PT0gZmlsdGVyVHlwZXMuT1Jcbik7XG5cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBhcmUgZG9pbmcgZXZlbnQgZmlsdGVyaW5nIGZyb20gdGhlIHNpZGUgYmFyIHRhZ3NcbiAqIEBwYXJhbSB7U2V0fSBhY3RpdmVGaWx0ZXJTZXRcbiAqIEByZXR1cm5zIHtCb29sZWFufSAtIFdoZXRoZXIgY29sbGVjdGlvbiBoYXMgYW4gZXZlbnQgZmlsdGVyXG4gKi9cbmNvbnN0IGdldFVzaW5nVGltaW5nRmlsdGVyID0gYWN0aXZlRmlsdGVyc1NldCA9PiAoXG4gICAgYWN0aXZlRmlsdGVyc1NldC5oYXMoRVZFTlRfVElNSU5HX0lEUy5MSVZFKSB8fFxuICAgIGFjdGl2ZUZpbHRlcnNTZXQuaGFzKEVWRU5UX1RJTUlOR19JRFMuT05ERU1BTkQpIHx8XG4gICAgYWN0aXZlRmlsdGVyc1NldC5oYXMoRVZFTlRfVElNSU5HX0lEUy5VUENPTUlORylcbik7XG5cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgY2FyZCBpcyB3aXRoaW4gZXZlbnQgdGltaW5nXG4gKiBAcGFyYW0ge09iamVjdH0gY2FyZFxuICogQHBhcmFtIHtTZXR9IHRpbWluZ1xuICogQHJldHVybnMge0Jvb2xlYW59IC0gd2hldGhlciB0aGUgY2FyZCBmYWxscyB3aXRoaW4gc2VsZWN0ZWQgdGltaW5nIG9wdGlvbnNcbiAqL1xuY29uc3QgY2hlY2tFdmVudFRpbWluZyA9IChjYXJkLCB0aW1pbmcpID0+IHtcbiAgICBjb25zdCBjdXJNcyA9IERhdGUubm93KCk7XG4gICAgLy8gVGltZXMgaW4gbWlsbGlzZWNvbmRzXG4gICAgY29uc3Qgc3RhcnRNcyA9IGNvbnZlcnREYXRlU3RyVG9NcyhjYXJkLnN0YXJ0RGF0ZSk7XG4gICAgY29uc3QgZW5kTXMgPSBjb252ZXJ0RGF0ZVN0clRvTXMoY2FyZC5lbmREYXRlKTtcbiAgICAvLyBUaW1lZCBjYXRlZ29yaWVzXG4gICAgY29uc3QgaXNUaW1lZCA9ICEhKHN0YXJ0TXMgJiYgZW5kTXMpO1xuICAgIGNvbnN0IGlzVXBDb21pbmcgPSBpc1RpbWVkID9cbiAgICAgICAgZGVmaW5lSXNVcGNvbWluZyhjdXJNcywgc3RhcnRNcykgOiBmYWxzZTtcbiAgICBjb25zdCBpc09uRGVtYW5kID0gaXNUaW1lZCAmJiAhaXNVcENvbWluZyA/XG4gICAgICAgIGRlZmluZUlzT25EZW1hbmQoY3VyTXMsIGVuZE1zKSA6IGZhbHNlO1xuICAgIGNvbnN0IGlzTGl2ZSA9ICEhKGlzVGltZWQgJiYgIWlzVXBDb21pbmcgJiYgIWlzT25EZW1hbmQgJiYgc3RhcnRNcyk7XG5cbiAgICAvLyBpZiB5b3UgaGF2ZSB0aW1pbmcgZmlsdGVycyBhY3RpdmUgYW5kIHRoZXJlIGlzIG5vIHRpbWluZyBvbiB0aGUgY2FyZCBpdCBzaG91bGQgYmUgcmVqZWN0ZWRcbiAgICBpZiAoIWlzVGltZWQpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGltaW5nLmhhcyhFVkVOVF9USU1JTkdfSURTLlVQQ09NSU5HKSAmJiBpc1VwQ29taW5nKSByZXR1cm4gdHJ1ZTtcbiAgICBlbHNlIGlmICh0aW1pbmcuaGFzKEVWRU5UX1RJTUlOR19JRFMuT05ERU1BTkQpICYmIGlzT25EZW1hbmQpIHJldHVybiB0cnVlO1xuICAgIGVsc2UgaWYgKHRpbWluZy5oYXMoRVZFTlRfVElNSU5HX0lEUy5MSVZFKSAmJiBpc0xpdmUpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogV2lsbCByZXR1cm4gYWxsIGNhcmRzIHRoYXQgbWF0Y2ggYSBzZXQgb2YgZmlsdGVyc1xuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl9IGFjdGl2ZUZpbHRlcnMgLSBBbGwgZmlsdGVycyBzZWxlY3RlZCBieSB1c2VyXG4gKiBAcGFyYW0ge0FycmF5fSBhY3RpdmVQYW5lbHMgLSBBY3RpdmUgZmlsdGVycyBwYW5lbHMgc2VsZWN0ZWQgYnkgdXNlclxuICogQHBhcmFtIHtTdHJpbmd9IGZpbHRlclR5cGUgLSBGaWx0ZXIgdXNlZCBpbiBjb2xsZWN0aW9uXG4gKiBAcGFyYW0ge09iamVjdH0gZmlsdGVyVHlwZXMgLSBBbGwgcG9zc2libGUgZmlsdGVyc1xuICogQHJldHVybnMge0FycmF5fSAtIEFsbCBjYXJkcyB0aGF0IG1hdGNoIGZpbHRlciBvcHRpb25zXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG5leHBvcnQgY29uc3QgZ2V0RmlsdGVyZWRDYXJkcyA9IChjYXJkcywgYWN0aXZlRmlsdGVycywgYWN0aXZlUGFuZWxzLCBmaWx0ZXJUeXBlLCBmaWx0ZXJUeXBlcywgY2F0ZWdvcmllcykgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZUZpbHRlcnNTZXQgPSBuZXcgU2V0KGFjdGl2ZUZpbHRlcnMpO1xuICAgIGNvbnN0IHRpbWluZ1NldCA9IGludGVyc2VjdGlvbihhY3RpdmVGaWx0ZXJzU2V0LCBuZXcgU2V0KFtcbiAgICAgICAgRVZFTlRfVElNSU5HX0lEUy5MSVZFLFxuICAgICAgICBFVkVOVF9USU1JTkdfSURTLk9OREVNQU5ELFxuICAgICAgICBFVkVOVF9USU1JTkdfSURTLlVQQ09NSU5HLFxuICAgIF0pKTtcbiAgICBjb25zdCB1c2luZ1hvckFuZEZpbHRlciA9IGdldFVzaW5nWG9yQW5kRmlsdGVyKGZpbHRlclR5cGUsIGZpbHRlclR5cGVzKTtcbiAgICBjb25zdCB1c2luZ09yRmlsdGVyID0gZ2V0VXNpbmdPckZpbHRlcihmaWx0ZXJUeXBlLCBmaWx0ZXJUeXBlcyk7XG4gICAgY29uc3QgdXNpbmdUaW1pbmdGaWx0ZXIgPSBnZXRVc2luZ1RpbWluZ0ZpbHRlcihhY3RpdmVGaWx0ZXJzU2V0KTtcbiAgICAvLyByZW1vdmUgdGhlIHRpbWUgZWxlbWVudHMgZnJvbSB0aGUgYWN0aXZlIGZpbHRlciBzZXQgYmVmb3JlIHlvdSBhY3R1YWxseSBmaWx0ZXJcbiAgICB0aW1pbmdTZXQuZm9yRWFjaChmaWx0ZXIgPT4gYWN0aXZlRmlsdGVyc1NldC5kZWxldGUoZmlsdGVyKSk7XG5cbiAgICBjb25zdCB0ZW1wID0gW107XG4gICAgY29uc3Qgc2V0ID0gbmV3IFNldCgpO1xuICAgIGlmIChjYXRlZ29yaWVzICYmIGNhdGVnb3JpZXMubGVuZ3RoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FyZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNhcmQgPSBjYXJkc1tpXTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2F0ZWdvcmllcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tqXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IGNhcmQudGFncy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyVGFnID0gY2FyZC50YWdzW2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VyclRhZy5pZC5pbmNsdWRlcyhjYXRlZ29yeSkgJiYgIXNldC5oYXMoY2FyZC5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldC5hZGQoY2FyZC5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnB1c2goY2FyZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduICovXG4gICAgICAgIGNhcmRzID0gdGVtcDtcbiAgICB9XG5cbiAgICBpZiAoYWN0aXZlRmlsdGVyc1NldC5zaXplID09PSAwICYmICF1c2luZ1RpbWluZ0ZpbHRlcikgcmV0dXJuIGNhcmRzO1xuXG4gICAgcmV0dXJuIGNhcmRzLmZpbHRlcigoY2FyZCkgPT4ge1xuICAgICAgICBpZiAoIWNhcmQudGFncyAmJiAhdXNpbmdUaW1pbmdGaWx0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmICh1c2luZ1RpbWluZ0ZpbHRlciAmJiAhY2hlY2tFdmVudFRpbWluZyhjYXJkLCB0aW1pbmdTZXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICB1c2luZ1RpbWluZ0ZpbHRlciAmJlxuICAgICAgICAgICAgY2hlY2tFdmVudFRpbWluZyhjYXJkLCB0aW1pbmdTZXQpICYmXG4gICAgICAgICAgICBhY3RpdmVGaWx0ZXJzU2V0LnNpemUgPT09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgb25seSBmaWx0ZXJzIGJlaW5nIHBlcmZvcm1lZCBhcmUgYWJvdXQgZXZlbnQgdGltaW5nXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyB5b3UgcHJvY2VlZCB0byBjaGVjayB0aGUgb3RoZXIgdGFncyBpbiB0aGUgY2FyZHMgYWZ0ZXIgdGhlIHRpbWUgZmlsdGVyIGNoZWNrc1xuICAgICAgICBjb25zdCB0YWdJZHMgPSBuZXcgU2V0KGNhcmQudGFncy5tYXAodGFnID0+IHRhZy5pZCkpO1xuXG4gICAgICAgIGlmICh1c2luZ1hvckFuZEZpbHRlcikge1xuICAgICAgICAgICAgcmV0dXJuIGlzU3VwZXJzZXQodGFnSWRzLCBhY3RpdmVGaWx0ZXJzU2V0KTtcbiAgICAgICAgfSBlbHNlIGlmICh1c2luZ09yRmlsdGVyICYmIGFjdGl2ZVBhbmVscy5zaXplIDwgMikge1xuICAgICAgICAgICAgcmV0dXJuIGludGVyc2VjdGlvbih0YWdJZHMsIGFjdGl2ZUZpbHRlcnNTZXQpLnNpemU7XG4gICAgICAgIH0gZWxzZSBpZiAodXNpbmdPckZpbHRlcikge1xuICAgICAgICAgICAgLy8gY2hlY2sgaWYgY2FyZCcgdGFncyBwYW5lbHMgaW5jbHVkZSBhbGwgcGFuZWxzIHdpdGggc2VsZWN0ZWQgZmlsdGVyc1xuICAgICAgICAgICAgY29uc3QgdGFnUGFuZWxzID0gbmV3IFNldChjYXJkLnRhZ3MubWFwKHRhZyA9PiB0YWcuaWQucmVwbGFjZSgvXFwvLiokLywgJycpKSk7XG4gICAgICAgICAgICBpZiAoIWlzU3VwZXJzZXQodGFnUGFuZWxzLCBhY3RpdmVQYW5lbHMpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIGNhcmQnIHRhZ3MgaW5jbHVkZSBhbGwgcGFuZWxzIHdpdGggc2VsZWN0ZWQgZmlsdGVyc1xuICAgICAgICAgICAgbGV0IGFsbFBhbmVsc01hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgICAgICAgZm9yIChjb25zdCBwYW5lbCBvZiBhY3RpdmVQYW5lbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzQ2hlY2tlZEluUGFuZWwgPSBuZXcgU2V0KFsuLi5hY3RpdmVGaWx0ZXJzU2V0XVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGlkID0+IGlkLmluY2x1ZGVzKHBhbmVsLCAwKSkpO1xuICAgICAgICAgICAgICAgIGlmICghaW50ZXJzZWN0aW9uKHRhZ0lkcywgZmlsdGVyc0NoZWNrZWRJblBhbmVsKS5zaXplKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsbFBhbmVsc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFsbFBhbmVsc01hdGNoO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIGZpbHRlciB0eXBlOiAke2ZpbHRlclR5cGV9YCk7XG4gICAgfSk7XG59O1xuXG4vKipcbiAqIElmIGEgY2FyZCBtYXRjaGVzIGEgc2VhcmNoIHF1ZXJ5LCB0aGlzIG1ldGhvZCB3aWxsIGhpZ2hsaWdodCBpdFxuICogQHBhcmFtIHtBcnJheX0gYmFzZUNhcmQgLSBDYXJkIHRvIGhpZ2hsaWdodFxuICogQHBhcmFtIHtBcnJheX0gc2VhcmNoRmllbGQgLSBGaWVsZCB0aGF0IG1hdGNoZXMgUXVlcnlcbiAqIEBwYXJhbSB7U3RyaW5nfSBxdWVyeSAtIFRoZSB1c2VycyBzZWFyY2ggcXVlcnlcbiAqIEByZXR1cm5zIHtDYXJkfSBUaGUgaGlnaGxpZ2h0ZWQgY2FhcmRcbiAqL1xuZXhwb3J0IGNvbnN0IGhpZ2hsaWdodENhcmQgPSAoYmFzZUNhcmQsIHNlYXJjaEZpZWxkLCBxdWVyeSkgPT4gcHJvZHVjZShiYXNlQ2FyZCwgKGRyYWZ0Q2FyZCkgPT4ge1xuICAgIGNvbnN0IHNlYXJjaEZpZWxkVmFsdWUgPSBnZXRCeVBhdGgoZHJhZnRDYXJkLCBzZWFyY2hGaWVsZCwgbnVsbCk7XG4gICAgaWYgKHNlYXJjaEZpZWxkVmFsdWUgPT09IG51bGwgfHwgc2VhcmNoRmllbGRWYWx1ZSA9PT0gJycpIHJldHVybjtcbiAgICBjb25zdCBoaWdobGlnaHRlZFNlYXJjaEZpZWxkVmFsdWUgPSBIaWdobGlnaHRTZWFyY2hGaWVsZChzZWFyY2hGaWVsZFZhbHVlLCBxdWVyeSk7XG4gICAgc2V0QnlQYXRoKGRyYWZ0Q2FyZCwgc2VhcmNoRmllbGQsIGhpZ2hsaWdodGVkU2VhcmNoRmllbGRWYWx1ZSk7XG59KTtcblxuLyoqXG4gKiBJZiBhIGNhcmQgbWF0Y2hlcyBhIHNlYXJjaCBxdWVyeSwgdGhpcyBtZXRob2Qgd2lsbCBoaWdobGlnaHQgaXRcbiAqIEBwYXJhbSB7QXJyYXl9IHNlYXJjaEZpZWxkIC0gRmllbGQgdGhhdCBtYXRjaGVzIFF1ZXJ5XG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkIC0gQ2FyZCB0byBjaGVja1xuICogQHBhcmFtIHtTdHJpbmd9IHF1ZXJ5IC0gVGhlIHVzZXJzIHNlYXJjaCBxdWVyeVxuICogQHJldHVybnMge0Jvb2xlYW59IElmIHRoZSBjYXJkIG1hdGNoZXMgdGhlIHVzZXIncyBzZWFyY2ggcXVlcnlcbiAqL1xuY29uc3QgY2FyZE1hdGNoZXNRdWVyeSA9IChzZWFyY2hGaWVsZCwgY2FyZCwgc2VhcmNoUXVlcnkpID0+IHtcbiAgICBjb25zdCBzZWFyY2hGaWVsZFZhbHVlID0gZ2V0QnlQYXRoKGNhcmQsIHNlYXJjaEZpZWxkLCAnJyk7XG4gICAgY29uc3QgY2xlYW5TZWFyY2hGaWVsZFZhbHVlID0gc2FuaXRpemVUZXh0KHNlYXJjaEZpZWxkVmFsdWUpO1xuICAgIHJldHVybiBjbGVhblNlYXJjaEZpZWxkVmFsdWUuaW5jbHVkZXMoc2VhcmNoUXVlcnkpO1xufTtcblxuLyoqXG4gKiBIZWxwZXIgdG8gaW1wbGVtZW50IFNldCgpIGRhdGEgc3RydWN0dXJlIHcvIFZhbmlsbGEgQXJyYXlzXG4gKiBXb3VsZCd2ZSB1c2VkIG5ldyBTZXQoKSwgYnV0IHBvbHlmaWxsIGhhcyBidWcgaW4gSUUxMSBjb252ZXJ0aW5nIEFycmF5LmZyb20obmV3IFNldCgpKVxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGNhcmRzXG4gKiBAcmV0dXJuIHtBcnJheX0gLSBVbmlxdWUgQ2FyZCBTZXQgZnJvbSBDYXJkcyAoZmlsdGVyaW5nIGJhc2VkIG9mZiB1bmlxdWUgY2FyZCBpZHMpXG4gKi9cbmNvbnN0IGdldFVuaXF1ZUNhcmRTZXQgPSAoY2FyZHMpID0+IHtcbiAgICBjb25zdCB1bmlxdWVDYXJkU2V0ID0gW107XG4gICAgY2FyZHMuZm9yRWFjaCgoY2FyZCkgPT4ge1xuICAgICAgICBjb25zdCBjYXJkTm90SW5TZXQgPSB1bmlxdWVDYXJkU2V0LmZpbmRJbmRleChlbGVtZW50ID0+IGVsZW1lbnQuaWQgPT09IGNhcmQuaWQpIDw9IC0xO1xuICAgICAgICBpZiAoY2FyZE5vdEluU2V0KSB7XG4gICAgICAgICAgICB1bmlxdWVDYXJkU2V0LnB1c2goY2FyZCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdW5pcXVlQ2FyZFNldDtcbn07XG5cbi8qKlxuICogR2V0cyBhbGwgY2FyZHMgdGhhdCBtYXRjaGVzIGEgdXNlcnMgc2VhcmNoIHF1ZXJ5XG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkcyAtIEFsbCBjYXJkcyBpbiB0aGUgY2FyZCBjb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fSBzZWFyY2hGaWVsZHMgLSBBbGwgYXV0aG9yZWQgc2VhcmNoIGZpZWxkcyB0byBjaGVja1xuICogQHBhcmFtIHtTdHJpbmd9IHF1ZXJ5IC0gVGhlIHVzZXJzIHNlYXJjaCBxdWVyeVxuICogQHJldHVybnMge0FycmF5fSAtIEFsbCBjYXJkcyB0aGF0IG1hdGNoIHRoZSB1c2VyJ3MgcXVlcnkgZm9yIGEgZ2l2ZW4gc2V0IG9mIHNlYXJjaCBmaWVsZHNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENhcmRzTWF0Y2hpbmdRdWVyeSA9IChjYXJkcywgc2VhcmNoRmllbGRzLCBxdWVyeSkgPT4ge1xuICAgIGNvbnN0IGNhcmRzTWF0Y2hpbmdRdWVyeSA9IFtdO1xuICAgIGNhcmRzLmZvckVhY2goKGNhcmQpID0+IHtcbiAgICAgICAgc2VhcmNoRmllbGRzLmZvckVhY2goKHNlYXJjaEZpZWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2FyZE1hdGNoZXNRdWVyeShzZWFyY2hGaWVsZCwgY2FyZCwgcXVlcnkpKSB7XG4gICAgICAgICAgICAgICAgY2FyZHNNYXRjaGluZ1F1ZXJ5LnB1c2goY2FyZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBnZXRVbmlxdWVDYXJkU2V0KGNhcmRzTWF0Y2hpbmdRdWVyeSk7XG59O1xuLyoqXG4gKiBAZnVuYyBoYXNUYWdcbiAqIEBkZXNjIERvZXMgY3VycmVudCBlbnRpdHkgaGF2ZSBhIHNwZWNpZmljIHRhZz9cbiAqIEBwYXJhbSB7UmVnRXhwfSBjb21wYXJlIGEgcmVnRXggcGF0dGVybiB0byB0ZXN0IGZvclxuICogQHBhcmFtIHtBcnJheX0gdGFncyBhbiBhcnJheSBvZiB0YWdzXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNUYWcgPSAoY29tcGFyZSwgdGFncyA9IFtdKSA9PiB7XG4gICAgaWYgKCF0YWdzLmxlbmd0aCB8fCBjb21wYXJlLmNvbnN0cnVjdG9yLm5hbWUgIT09ICdSZWdFeHAnKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gdGFncy5zb21lKCh7IGlkID0gJycgfSA9IHt9KSA9PiBpZCAmJiBjb21wYXJlLnRlc3QoaWQpKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbGwgY2FyZHMgdGl0bGUgc29ydGVkIChBLVopXG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkcyAtIEFsbCBjYXJkcyBpbiB0aGUgY2FyZCBjb2xsZWN0aW9uXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQWxsIGNhcmRzIHNvcnRlZCBieSB0aXRsZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VGl0bGVBc2NTb3J0ID0gY2FyZHMgPT4gY2FyZHMuc29ydCgoY2FyZE9uZSwgY2FyZFR3bykgPT4ge1xuICAgIGNvbnN0IGNhcmRPbmVUaXRsZSA9IGdldEJ5UGF0aChjYXJkT25lLCAnY29udGVudEFyZWEudGl0bGUnKTtcbiAgICBjb25zdCBjYXJkVHdvVGl0bGUgPSBnZXRCeVBhdGgoY2FyZFR3bywgJ2NvbnRlbnRBcmVhLnRpdGxlJyk7XG4gICAgcmV0dXJuIGNhcmRPbmVUaXRsZS5sb2NhbGVDb21wYXJlKGNhcmRUd29UaXRsZSk7XG59KTtcblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBjYXJkcyB0aXRsZSBzb3J0ZWQgKFotQSlcbiAqIEBwYXJhbSB7QXJyYXl9IGNhcmRzIC0gQWxsIGNhcmRzIGluIHRoZSBjYXJkIGNvbGxlY3Rpb25cbiAqIEByZXR1cm5zIHtBcnJheX0gLSBBbGwgY2FyZHMgc29ydGVkIGJ5IHRpdGxlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUaXRsZURlc2NTb3J0ID0gY2FyZHMgPT4gZ2V0VGl0bGVBc2NTb3J0KGNhcmRzKS5yZXZlcnNlKCk7XG5cbi8qKlxuICogUmV0dXJucyBhbGwgY2FyZHMgc29ydGVkIGJ5IGRhdGUgbW9kaWZpZWQgbmV3ZXN0IHRvIG9sZGVzdFxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHJldHVybnMge0FycmF5fSAtIEFsbCBjYXJkcyBzb3J0ZWQgYnkgdGl0bGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE1vZGlmaWVkRGVzY1NvcnQgPSBjYXJkcyA9PiBjYXJkcy5zb3J0KChjYXJkT25lLCBjYXJkVHdvKSA9PiB7XG4gICAgY29uc3QgY2FyZE9uZU1vZERhdGUgPSBnZXRCeVBhdGgoY2FyZE9uZSwgJ21vZGlmaWVkRGF0ZScpO1xuICAgIGNvbnN0IGNhcmRUd29Nb2REYXRlID0gZ2V0QnlQYXRoKGNhcmRUd28sICdtb2RpZmllZERhdGUnKTtcbiAgICBpZiAoY2FyZE9uZU1vZERhdGUgJiYgY2FyZFR3b01vZERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGNhcmRUd29Nb2REYXRlLmxvY2FsZUNvbXBhcmUoY2FyZE9uZU1vZERhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbn0pO1xuXG4vKipcbiAqIFJldHVybnMgYWxsIGNhcmRzIHNvcnRlZCBieSBkYXRlIG1vZGlmaWVkIG9sZGVzdCB0byBuZXdlc3RcbiAqIEBwYXJhbSB7QXJyYXl9IGNhcmRzIC0gQWxsIGNhcmRzIGluIHRoZSBjYXJkIGNvbGxlY3Rpb25cbiAqIEByZXR1cm5zIHtBcnJheX0gLSBBbGwgY2FyZHMgc29ydGVkIGJ5IHRpdGxlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRNb2RpZmllZEFzY1NvcnQgPSBjYXJkcyA9PiBnZXRNb2RpZmllZERlc2NTb3J0KGNhcmRzKS5yZXZlcnNlKCk7XG5cbi8qKlxuICogUmV0dXJucyBhbGwgY2FyZHMgRmVhdHVyZWQgc29ydGVkXG4gKiBUaGlzIGp1c3QgcmV0dXJucyB0aGUgb3JpZ2luYWwgY2FyZHMgcmV0dXJuZWQgYnkgQ2hpbWVyYSBJT1xuICogQ2hpbWVyYSBJTyBpcyByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgZmVhdHVyZWQgc29ydFxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHJldHVybnMge0FycmF5fSAtIENhcmRzIGluIHRoZSBvcmlnaW5hbCBvcmRlciBnaXZlbiBieSBDaGltZXJhIElPXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGZWF0dXJlZFNvcnQgPSBjYXJkcyA9PiBjYXJkcztcblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBDYXJkcyBEYXRlIFNvcnRlZCAoT2xkIFRvIE5ldylcbiAqIEBwYXJhbSB7QXJyYXl9IGNhcmRzIC0gQWxsIGNhcmRzIGluIHRoZSBjYXJkIGNvbGxlY3Rpb25cbiAqIEByZXR1cm5zIHtBcnJheX0gLSBBbGwgY2FyZHMgc29ydGVkIGJ5IERhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldERhdGVBc2NTb3J0ID0gY2FyZHMgPT4gY2FyZHMuc29ydCgoY2FyZE9uZSwgY2FyZFR3bykgPT4ge1xuICAgIGNvbnN0IGNhcmRPbmVEYXRlID0gZ2V0QnlQYXRoKGNhcmRPbmUsICdjYXJkRGF0ZScpO1xuICAgIGNvbnN0IGNhcmRUd29EYXRlID0gZ2V0QnlQYXRoKGNhcmRUd28sICdjYXJkRGF0ZScpO1xuICAgIGlmIChjYXJkT25lRGF0ZSAmJiBjYXJkVHdvRGF0ZSkge1xuICAgICAgICBpZiAoY2FyZE9uZURhdGUgIT09IGNhcmRUd29EYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FyZE9uZURhdGUubG9jYWxlQ29tcGFyZShjYXJkVHdvRGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChjYXJkT25lLmlkIHx8ICcnKS5sb2NhbGVDb21wYXJlKGNhcmRUd28uaWQgfHwgJycpO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbn0pO1xuXG4vKipcbiAqIFJldHVybnMgYWxsIENhcmRzIERhdGUgU29ydGVkIChOZXcgVG8gT2xkKVxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHJldHVybnMge0FycmF5fSAtIEFsbCBjYXJkcyBzb3J0ZWQgYnkgRGF0ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0RGF0ZURlc2NTb3J0ID0gY2FyZHMgPT4gZ2V0RGF0ZUFzY1NvcnQoY2FyZHMpLnJldmVyc2UoKTtcblxuLyoqXG4gKiBAZnVuYyBnZXRFdmVudFNvcnRcbiAqIEBkZXNjIFRoaXMgbWV0aG9kLCBpZiBuZWVkZWQsIHNldHMgdXAgVGltaW5nIGZlYXR1cmVzIGZvciBhIGNvbGxlY3Rpb25cbiAoMSkgSGFzIHRvIGNoZWNrIGVhY2ggY2FyZCBmb3IgY2FyZC5jb250ZW50QXJlYS5kYXRlRGV0YWlsVGV4dC5zdGFydFRpbWVcbiB8fCBlbmRUaW1lLCBpZiBuZWl0aGVyIHRoZSBjYXJkIGdldHMgcHVzaGVkIHRvIGJhY2sgb2Ygc3RhY2suXG4gKDIpIFRoZXJlIGFyZSBzaXggY2F0ZWdvcmllcyBmb3IgY29uc2lkZXJhdGlvblxuIGEuIExpdmU6IEN1cnJlbnQgVGltZSA+IFN0YXJ0IFRpbWUgJiYgQ3VycmVudCBUaW1lIDwgRW5kIFRpbWVcbiBiLiBVcGNvbWluZzogQ3VycmVudCBUaW1lIDwgU3RhcnQgVGltZSBhbmQgZG9lcyBub3QgaGF2ZVxuIFwiT25EZW1hbmQgc2NoZWR1bGVkXCIgdGFnIHdoaWNoIGNhbm5vdCBzaG93IHVudGlsIGl0IGlzIG9uRGVtYW5kXG4gYy4gXCJPbkRlbWFuZCBzY2hlZHVsZWRcIjogVXBDb21pbmcsIGFuZCBoYXMgXCJPbkRlbWFuZCBzY2hlZHVsZWRcIiB0YWcsXG4gd2lsbCBub3QgYmUgc2VlbiB1bnRpbCBpdCBpcyBPbkRlbWFuZC5cbiBkLiBPbkRlbWFuZDogQ3VycmVudCBUaW1lID4gRW5kIFRpbWUsIGRvZXMgbm90IGhhdmUgXCJMaXZlIEV4cGlyZWRcIiB0YWdcbiBlLiBMaXZlIEV4cGlyZWQ6IE9uRGVtYW5kLCBoYXMgXCJsaXZlLWV4cGlyZWRcIiB0YWcsIGFuZCBpcyBubyBsb25nZXIgc2hvd24uXG4gZi4gQWxsIG90aGVyIGNhcmRzLCBub3QgaGF2aW5nIHN0YXJ0VGltZSB8fCBlbmRUaW1lLlxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHBhcmFtIHtPYmplY3R9IHVybFN0YXRlIC0gVVJMIHNlYXJjaC9xdWVyeSBQYXJhbXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IHZpc2libGVDYXJkc1xuICovXG5leHBvcnQgY29uc3QgZ2V0RXZlbnRTb3J0ID0gKGNhcmRzID0gW10sIGV2ZW50RmlsdGVyKSA9PiB7XG4gICAgY29uc3QgdHJhbnNmb3JtZWRDYXJkcyA9IGNhcmRzLm1hcChjYXJkID0+ICh7XG4gICAgICAgIGlkOiBjYXJkLmlkLFxuICAgICAgICBzdGFydERhdGU6IGNhcmQuY29udGVudEFyZWEuZGF0ZURldGFpbFRleHQuc3RhcnRUaW1lLFxuICAgICAgICBlbmREYXRlOiBjYXJkLmNvbnRlbnRBcmVhLmRhdGVEZXRhaWxUZXh0LmVuZFRpbWUsXG4gICAgICAgIHRhZ3M6IGNhcmQudGFncyB8fCBbXSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBldmVudFRpbWluZyh0cmFuc2Zvcm1lZENhcmRzLCBldmVudEZpbHRlcik7XG5cbiAgICBjb25zdCB2aXNpYmxlU2Vzc2lvbnMgPSByZXN1bHQudmlzaWJsZVNlc3Npb25zXG4gICAgICAgIC5maWx0ZXIoc2Vzc2lvbiA9PiBzZXNzaW9uLnRhZ3MuaW5jbHVkZXMoZXZlbnRGaWx0ZXIpKVxuICAgICAgICAubWFwKHNlc3Npb24gPT4gKHtcbiAgICAgICAgICAgIGlkOiBzZXNzaW9uLmlkLFxuICAgICAgICAgICAgY29udGVudEFyZWE6IHtcbiAgICAgICAgICAgICAgICBkYXRlRGV0YWlsVGV4dDoge1xuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHNlc3Npb24uc3RhcnREYXRlLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiBzZXNzaW9uLmVuZERhdGUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0YWdzOiBzZXNzaW9uLnRhZ3MsXG4gICAgICAgIH0pKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIG5leHRUcmFuc2l0aW9uTXM6IHJlc3VsdC5uZXh0VHJhbnNpdGlvbk1zLFxuICAgICAgICB2aXNpYmxlU2Vzc2lvbnMsXG4gICAgfTtcbn07XG4vKipcbiAqIEdldHMgYWxsIGNhcmRzIHRoYXQgbWF0Y2hlcyBhIHVzZXJzIHNlYXJjaCBxdWVyeVxuICogQHBhcmFtIHtTdHJpbmd9IHF1ZXJ5IC0gVGhlIHVzZXJzIHNlYXJjaCBxdWVyeVxuICogQHBhcmFtIHtBcnJheX0gY2FyZHMgLSBBbGwgY2FyZHMgaW4gdGhlIGNhcmQgY29sbGVjdGlvblxuICogQHBhcmFtIHtBcnJheX0gc2VhcmNoRmllbGRzIC0gQWxsIGF1dGhvcmVkIHNlYXJjaCBmaWVsZHMgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtBcnJheX0gLSBBbGwgY2FyZHMgdGhhdCBtYXRjaCB0aGUgdXNlcidzIHF1ZXJ5IGZvciBhIGdpdmVuIHNldCBvZiBzZWFyY2ggZmllbGRzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDYXJkc01hdGNoaW5nU2VhcmNoID0gKHF1ZXJ5LCBjYXJkcywgc2VhcmNoRmllbGRzKSA9PiB7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgICByZXR1cm4gY2FyZHM7XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaFF1ZXJ5ID0gc2FuaXRpemVUZXh0KHF1ZXJ5KTtcbiAgICBjb25zdCBjYXJkc01hdGNoaW5nUXVlcnkgPSBnZXRDYXJkc01hdGNoaW5nUXVlcnkoY2FyZHMsIHNlYXJjaEZpZWxkcywgc2VhcmNoUXVlcnkpO1xuICAgIHJldHVybiBjYXJkc01hdGNoaW5nUXVlcnk7XG59O1xuXG4vKipcbiAqIEpvaW5zIHR3byBzZXRzIG9mIGNhcmRzXG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkU2V0T25lIC0gU2V0IG9uZSBvZiBjYXJkcyB0byBqb2luXG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkU2V0VHdvIC0gU2V0IHR3byBvZiBjYXJkcyB0byBqb2luXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQ2FyZHMgc2V0cyBvbmUgYW5kIHR3byBqb2luZWRcbiAqL1xuZXhwb3J0IGNvbnN0IGpvaW5DYXJkU2V0cyA9IChjYXJkU2V0T25lLCBjYXJkU2V0VHdvKSA9PiBjYXJkU2V0T25lLmNvbmNhdChjYXJkU2V0VHdvKTtcblxuLyoqXG4gKiBQcm9jZXNzZXMgZmVhdHVyZWQgY2FyZHMgd2l0aCByYXcgY2FyZHMgcmVjZWl2ZWQgZnJvbSBBUEkgcmVzcG9uc2VcbiAqIEBwYXJhbSB7QXJyYXl9IGZlYXR1cmVkQ2FyZHMgLSBBdXRob3JlZCBGZWF0dXJlZCBDYXJkc1xuICogQHBhcmFtIHtBcnJheX0gcmF3Q2FyZHMgLSBDYXJkcyBmcm9tIEFQSSByZXNwb25zZVxuICogQHJldHVybnMge0FycmF5fSAtIFNldCBvZiBjYXJkcyBwcm9jZXNzZWRcbiAqL1xuZXhwb3J0IGNvbnN0IHByb2Nlc3NDYXJkcyA9IChmZWF0dXJlZENhcmRzLCByYXdDYXJkcykgPT4gcmVtb3ZlRHVwbGljYXRlc0J5S2V5KGpvaW5DYXJkU2V0cyhmZWF0dXJlZENhcmRzLCByYXdDYXJkcyksICdpZCcpO1xuXG4vKipcbiAqIEhlbHBlciBtZXRob2QgZm9yIGVmZmVjdCB0aGF0IGFkZHMgYm9va21hcmsgbWV0YSBkYXRhIHRvIGNhcmRzXG4gKiBAcGFyYW0ge0FycmF5fSBjYXJkcyAtIEFsbCBjYXJkcyBpbiBjYXJkIGNvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl9IGJvb2ttYXJrZWRDYXJkSWRzIC0gQWxsIGJvb2ttYXJrZWQgY2FyZCBpZHNcbiAqIEByZXR1cm5zIHtBcnJheX0gLSBDYXJkcyB3aXRoIGJvb2ttYXJrIG1ldGEgZGF0YVxuICovXG5leHBvcnQgY29uc3QgZ2V0VXBkYXRlZENhcmRCb29rbWFya0RhdGEgPSAoY2FyZHMsIGJvb2ttYXJrZWRDYXJkSWRzKSA9PiBjYXJkcy5tYXAoY2FyZCA9PiAoe1xuICAgIC4uLmNhcmQsXG4gICAgaXNCb29rbWFya2VkOiBib29rbWFya2VkQ2FyZElkcy5zb21lKGkgPT4gaSA9PT0gY2FyZC5pZCksXG59KSk7XG5cbmNvbnN0IGNhY2hlID0gbmV3IE1hcCgpO1xuXG4vKipcbiAqIFJldHVybnMgYSByYW5kb20gbnVtYmVyIGZyb20gW3N0YXJ0LCBib3VuZClcbiAqIEBwYXJhbSB7aW50fSBzdGFydCAtIFN0YXJ0aW5nIGJvdW5kIChpbmNsdXNpdmUpXG4gKiBAcGFyYW0ge2ludH0gZW5kIC0gRW5kaW5nIGJvdW5kIChleGNsdXNpdmUpXG4gKiBAcmV0dXJucyB7aW50fSAtIEEgcmFuZG9tIGludGVnZXIgYmV0d2VlbiBbc3RhcnQsIGJvdW5kKVxuICovXG5mdW5jdGlvbiBnZXRSYW5kb20oc3RhcnQsIGVuZCkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoZW5kIC0gc3RhcnQpKSArIHN0YXJ0O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByYW5kb20gc2FtcGxlIG9mIHNhbXBsZVNpemUgZnJvbSBhbiBhcnJheSBzdHJlYW1cbiAqIEBwYXJhbSB7QXJyYXl9IHN0cmVhbSAtIEFuIGFycmF5IG9mIGl0ZW1zIHRvIHNlbGVjdCBhIHJhbmRvbSBzYW1wbGUgZnJvbVxuICogQHBhcmFtIHtpbnR9IHNhbXBsZVNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgcmFuZG9tIHNhbXBsZVxuICogQHJldHVybnMge0FycmF5fSAtIEEgcmFuZG9tIHNhbXBsZSBmcm9tIHRoZSBhcnJheSBzdHJlYW1cbiAqL1xuZnVuY3Rpb24gcmVzZXJ2b2lyU2FtcGxlKHN0cmVhbSwgc2FtcGxlU2l6ZSkge1xuICAgIGNvbnN0IHJlc2Vydm9pciA9IFtdO1xuICAgIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuICAgIGZvciAoY29uc3QgW2ksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMoc3RyZWFtKSkge1xuICAgICAgICBpZiAocmVzZXJ2b2lyLmxlbmd0aCA8IHNhbXBsZVNpemUpIHtcbiAgICAgICAgICAgIHJlc2Vydm9pci5wdXNoKHZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByYW5kb20gPSBnZXRSYW5kb20oMCwgaSArIDEpO1xuICAgICAgICAgICAgaWYgKHJhbmRvbSA8IHNhbXBsZVNpemUpIHtcbiAgICAgICAgICAgICAgICByZXNlcnZvaXJbcmFuZG9tXSA9IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzZXJ2b2lyO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGlucHV0IGFycmF5IHJhbmRvbWx5IHNodWZmbGVkIHVzaW5nIHRoZSBGaXNoZXItWWF0ZXMgYWxnb3JpdGhtLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyciAtIEFycmF5IHRvIGJlIHNodWZmbGVkXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gVGhlIHNodWZmbGVkIGFycmF5XG4gKi9cbmZ1bmN0aW9uIGZpc2NoZXJZYXRlc1NodWZmbGUoYXJyKSB7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IGFyci5sZW5ndGg7XG4gICAgbGV0IHJhbmRvbUluZGV4O1xuICAgIHdoaWxlIChjdXJyZW50SW5kZXggIT09IDApIHtcbiAgICAgICAgcmFuZG9tSW5kZXggPSBnZXRSYW5kb20oMCwgY3VycmVudEluZGV4KTtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzICovXG4gICAgICAgIGN1cnJlbnRJbmRleC0tO1xuICAgICAgICBbYXJyW2N1cnJlbnRJbmRleF0sIGFycltyYW5kb21JbmRleF1dID0gW2FycltyYW5kb21JbmRleF0sIGFycltjdXJyZW50SW5kZXhdXTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFuIGFycmF5IG9mIHJhbmRvbWx5IHNvcnRlZCBjYXJkcy5cbiAqXG4gKiBJZiB0aGUgY2FyZHMgZm9yIGEgZ2l2ZW4gY2FyZCBjb2xsZWN0aW9uIGhhdmUgYWxyZWFkeSBiZWVuIHNvcnRlZCwgcmV0dXJuIGZyb20gY2FjaGUuXG4gKiBPdGhlcndpc2Ugc29ydCByYW5kb21seSBhbmQgY2FjaGUgcmVzdWx0LlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGNhcmRzIC0gY2FyZHMgdG8gYmUgcmFuZG9tbHkgc29ydGVkXG4gKiBAcGFyYW0ge2ludH0gaWQgLSBJZCBvZiB0aGUgY2FyZCBjb2xsZWN0aW9uIHRoZSBjYXJkcyBiZWxvbmcgdG8uXG4gKiBAcGFyYW0ge2ludH0gc2FtcGxlU2l6ZSAtIHNhbXBsZSBzaXplIHVzZWQgZm9yIHRoZSByYW5kb20gc2FtcGxlXG4gKiBAcmV0dXJucyB7QXJyYXl9IC0gQW4gYXJyYXkgb2YgcmFuZG9tbHkgc29ydGVkIGNhcmRzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRSYW5kb21Tb3J0ID0gKGNhcmRzLCBpZCwgc2FtcGxlU2l6ZSwgcmVzZXJ2b2lyU2l6ZSkgPT4ge1xuICAgIGlmICghY2FjaGUuZ2V0KGlkKSkge1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBmaXNjaGVyWWF0ZXNTaHVmZmxlKGNhcmRzLnNsaWNlKDAsIHJlc2Vydm9pclNpemUpKTtcbiAgICAgICAgY29uc3QgcmFuZG9tU2FtcGxlID0gcmVzZXJ2b2lyU2FtcGxlKHN0cmVhbSwgc2FtcGxlU2l6ZSk7XG4gICAgICAgIGNhY2hlLnNldChpZCwgcmFuZG9tU2FtcGxlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlLmdldChpZCk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmVhdHVyZWRDYXJkcyA9IChpZHMsIGNhcmRzKSA9PiB7XG4gICAgY29uc3QgYW5zID0gW107XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXggKi9cbiAgICBmb3IgKGNvbnN0IGlkIG9mIGlkcykge1xuICAgICAgICBmb3IgKGNvbnN0IGNhcmQgb2YgY2FyZHMpIHtcbiAgICAgICAgICAgIGlmIChjYXJkLmlkID09PSBpZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNhcmQpKTsgLy8gRGVlcCBjbG9uZSB1c2luZyBKU09OIG1ldGhvZHNcbiAgICAgICAgICAgICAgICBjLmlzRmVhdHVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGFucy5wdXNoKGMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhbnM7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gc2FuaXRpemVkIChodG1sIGZyaWVuZGx5KSBzdHJpbmdcbiAqXG4gKiBJZiB0aGUgc3RyaW5nIGNvbmF0aW5zICcmYW1wOycgaXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoICcmJ1xuICogaWYgdGhlIHN0cmluZyBjb250YWlucyAnJmx0OycgaXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoICc8J1xuICogaWYgdGhlIHN0cmluZyBjb250YWlucyAnJmd0OycgaXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoICc+J1xuICpcbiAqIEBwYXJhbSB7c3RyfSBzdHIgLSBzdHJpbmcgdG8gYmUgc2FuaXRpemVkXG4gKiBAcmV0dXJucyB7c3RyfSAtIHNhdGluaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHNhbml0aXplU3RyID0gc3RyID0+IHN0clxuICAgIC5yZXBsYWNlQWxsKCcmYW1wOycsICcmJylcbiAgICAucmVwbGFjZUFsbCgnJmx0OycsICc8JylcbiAgICAucmVwbGFjZUFsbCgnJmd0OycsICc+Jyk7XG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3JlYWN0L3NyYy9qcy9jb21wb25lbnRzL0NvbnNvbmFudC9IZWxwZXJzL0hlbHBlcnMuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///22\n"); /***/ }), /* 23 */ diff --git a/react/src/js/components/Consonant/Helpers/Helpers.js b/react/src/js/components/Consonant/Helpers/Helpers.js index 3d484848..69ba91cd 100644 --- a/react/src/js/components/Consonant/Helpers/Helpers.js +++ b/react/src/js/components/Consonant/Helpers/Helpers.js @@ -377,7 +377,10 @@ export const getDateAscSort = cards => cards.sort((cardOne, cardTwo) => { const cardOneDate = getByPath(cardOne, 'cardDate'); const cardTwoDate = getByPath(cardTwo, 'cardDate'); if (cardOneDate && cardTwoDate) { - return cardOneDate !== cardTwoDate ? cardOneDate.localeCompare(cardTwoDate) : -1; + if (cardOneDate !== cardTwoDate) { + return cardOneDate.localeCompare(cardTwoDate); + } + return (cardOne.id || '').localeCompare(cardTwo.id || ''); } return 0; }); diff --git a/react/src/js/components/Consonant/Helpers/TestingConstants/CardFilterer.js b/react/src/js/components/Consonant/Helpers/TestingConstants/CardFilterer.js index 45222a51..543dd609 100644 --- a/react/src/js/components/Consonant/Helpers/TestingConstants/CardFilterer.js +++ b/react/src/js/components/Consonant/Helpers/TestingConstants/CardFilterer.js @@ -6,108 +6,126 @@ const filterCards = helperProps.getFilteredCards; const cardsToSort = { 1: { + id: '1', isFeatured: true, initialTitle: 'c title', contentArea: { title: 'a title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 2: { + id: '2', isFeatured: true, initialTitle: 'c title', contentArea: { title: 'b title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 3: { + id: '3', isFeatured: true, initialTitle: 'c title', contentArea: { title: 'c title' }, cardDate: null, }, 4: { + id: '4', isFeatured: true, initialTitle: 'a title', contentArea: { title: 'a title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 5: { + id: '5', isFeatured: true, initialTitle: 'a title', contentArea: { title: 'b title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 6: { + id: '6', isFeatured: true, initialTitle: 'a title', contentArea: { title: 'c title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 7: { + id: '7', isFeatured: false, initialTitle: 'c title', contentArea: { title: 'a title' }, cardDate: '2021-10-10T21:00:00.000Z', }, 8: { + id: '8', isFeatured: false, initialTitle: 'c title', contentArea: { title: 'b title' }, cardDate: null, }, 9: { + id: '9', isFeatured: false, initialTitle: 'c title', contentArea: { title: 'c title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 10: { + id: '10', isFeatured: true, initialTitle: 'b title', contentArea: { title: 'a title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 11: { + id: '11', isFeatured: true, initialTitle: 'b title', contentArea: { title: 'b title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 12: { + id: '12', isFeatured: true, initialTitle: 'b title', contentArea: { title: 'c title' }, cardDate: '2021-10-10T21:00:00.000Z', }, 13: { + id: '13', isFeatured: false, initialTitle: 'a title', contentArea: { title: 'a title' }, cardDate: null, }, 14: { + id: '14', isFeatured: false, initialTitle: 'a title', contentArea: { title: 'b title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 15: { + id: '15', isFeatured: false, initialTitle: 'a title', contentArea: { title: 'c title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 16: { + id: '16', isFeatured: false, initialTitle: 'b title', contentArea: { title: 'a title' }, cardDate: '2021-10-12T21:00:00.000Z', }, 17: { + id: '17', isFeatured: false, initialTitle: 'b title', contentArea: { title: 'b title' }, cardDate: '2021-10-10T21:00:00.000Z', }, 18: { + id: '18', isFeatured: false, initialTitle: 'b title', contentArea: { title: 'c title' }, @@ -125,13 +143,13 @@ const sortCards = [ { cards: [...cardsWithoutSorting], sortOption: { sort: SORT_TYPES.DATEASC }, - expectedValue: getCards([17, 12, 7, 16, 15, 14, 11, 10, 9, 6, 5, 4, 2, 1, 3, 8, 13, 18]), + expectedValue: getCards([12, 17, 7, 1, 10, 2, 3, 11, 15, 4, 5, 6, 8, 9, 13, 14, 16, 18]), }, { cards: [...cardsWithoutSorting], sortOption: { sort: SORT_TYPES.DATEDESC }, // expectedValue: getCards([18, 16, 15, 14, 17, 13, 11, 10, 9, 8, 6, 5, 4, 3, 2, 1, 12, 7]), - expectedValue: getCards([18, 13, 8, 3, 1, 2, 4, 5, 6, 9, 10, 11, 14, 15, 16, 7, 12, 17]), + expectedValue: getCards([18, 16, 14, 13, 9, 8, 6, 5, 4, 15, 11, 3, 2, 10, 1, 7, 17, 12]), }, { cards: [...cardsWithoutSorting],