.ps-site-search .view-all-results{background-color:var(--ps-color-primary-light, #f99d1a)}.ps-site-search .modal-dialog{max-width:100vw;margin:0}@media(max-width: 991.98px){.ps-site-search .modal-dialog{max-width:100vw;margin:0}}.ps-site-search .modal-content{background:var(--ps-color-secondary, #090917);max-height:100vh}@media(max-width: 991.98px){.ps-site-search .modal-content{max-height:100vh}}.ps-site-search .modal-header{border:1px solid #5d5d5d;background:#1e1e1e;border-radius:0;padding:0px}.ps-site-search .modal-header .vehicle-select-title{display:none;padding-left:25px}.ps-site-search .modal-header .search_input_group{width:100%}.ps-site-search .modal-header .search_input_group .search{flex:1}.ps-site-search .modal-header .search_input_group .searchInput{align-items:center}.ps-site-search .modal-header .search_input_group .search input{background:rgba(0,0,0,0);border:none;box-shadow:none;color:#fff}.ps-site-search .modal-header .search_input_group .searchIcon{color:#fff;border:none;cursor:pointer;background-image:linear-gradient(to bottom, var(--ps-color-primary, #001877), var(--ps-color-primary, #001877));padding:15px 25px}.ps-site-search .modal-header .search_input_group .searchIcon:hover{background-image:linear-gradient(to bottom, #001d91, #001d91)}.ps-site-search .modal-header .search_input_group .selectedVehicle{background-color:var(--ps-color-primary, #001877);color:#fff;font-size:12px;margin-right:5px}@media(max-width: 767.98px){.ps-site-search .modal-header .search_input_group .selectedVehicle{position:absolute;top:63px;left:10px;z-index:10}}.ps-site-search .modal-header .search_input_group .selectedVehicle .remove{cursor:pointer}.ps-site-search .modal-header .search_input_group .vehicle-text{padding-left:10px}.ps-site-search .modal-header .close{color:#fff;border:none;border-left:1px solid #5d5d5d;cursor:pointer;background:#1e1e1e;padding:.9375rem 1.5625rem}.ps-site-search .modal-body{min-height:200px;overflow:auto;padding-top:55px;position:relative}.ps-site-search .modal-body .vehicle-select{display:none;position:relative;top:0;bottom:auto}.ps-site-search .modal-body .vehicle-select .container{max-width:none}.ps-site-search .modal-body .vehicle-select .container .body{background:rgba(0,0,0,0);box-shadow:none}.ps-site-search .modal-body .vehicle-select .container .body .search_by{display:none}.ps-site-search .modal-body .loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:1000}.ps-site-search .modal-body .loading-spinner{border:4px solid rgba(255,255,255,.3);border-top:4px solid #fff;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.ps-site-search .modal-body .search_results .current_vehicle_prompt{display:none}.ps-site-search .modal-body .search_results h2.search-prompt{color:#fff}.ps-site-search .modal-body .search_results .non-vehicle-text-in-search{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector{color:var(--ps-color-border-2, #a7a7a7);padding:10PX}.ps-site-search .modal-body .search_results .product-list-selector .product-cont{background-color:var(--ps-color-secondary, #090917);border:.0625rem solid #4b4a4a}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .title{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .brand-logo-cont{margin-left:3px}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .pricing .price span{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .part-number-cont label{color:#fff;font-weight:400}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .fits-row table tr th{background-color:#464646}.ps-site-search .modal-body .search_results .product-list-selector .facets-cont label{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .nav-tabs .nav-link.active{border-color:#262626;background-color:#262626}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .tab-pane{background-color:#262626;border-color:#262626}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .tab-pane .header{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .tab-pane .stacktable{color:#ababab;font-weight:500}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .info-col-2 .prod-attr-cont{background-color:#262626}.ps-site-search .modal-body::-webkit-scrollbar{width:4px}.ps-site-search .modal-body::-webkit-scrollbar-track{background:#000;box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:2px}.ps-site-search .modal-body::-webkit-scrollbar-thumb{background:var(--ps-color-primary, #001877);border:3px solid var(--ps-color-primary, #001877);border-radius:2px}.ps-site-search .modal-footer{background:#1e1e1e;border-radius:0;border:1px solid #5d5d5d;justify-content:space-between}.ps-site-search--light .modal-content{background-color:#fff;border:0}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont .title{color:#000}.ps-site-search--light .modal-body .search_results h2.search-prompt{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont .pricing .price span{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont .part-number-cont label{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector .facets-cont label{color:#000}.ps-site-search--light .modal-body .search_results .non-vehicle-text-in-search{color:#000}.ps-site-search--light .modal-body{background-color:#fff}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont{background-color:#fff;border:.0625rem solid #fff;border-bottom:1px solid #000}.ps-site-search--light .modal-header{border:0;border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);background:none}.ps-site-search--light .modal-header .close{background:#fff;color:#000}.ps-site-search--light .modal-footer{background:#fff}.ps-site-search--light .search_by{color:var(--bs-secondary-color)}.ps-site-search--light .modal-header .search_input_group .search input{color:#000}.ps-site-search--light .vehicle-select .container .body .selected-vehicle .my-garage .selected_vehicle a{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector .product-details-tabs .info-col-2 .prod-attr-cont{background-color:#fff}.ps-site-search--light .modal-body .search_results .product-list-selector .product-details-tabs .nav-tabs .nav-link.active{background-color:unset;border-color:unset}.ps-site-search--light .modal-body .search_results .product-list-selector .product-details-tabs .tab-pane{background-color:unset;border-color:unset}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont .fits-row table tr th{background-color:var(--ps-color-text-2, #575757)}.ps-site-search--dark .ps-search-cards,.ps-site-search--dark .live-search-cont{--ps-pc-color-bg: #1e1e1e;--ps-pc-color-surface: #262626;--ps-pc-color-surface-alt: #2f2f2f;--ps-pc-color-ink: #f5f5f5;--ps-pc-color-ink-2: #b8b8b8;--ps-pc-color-hairline: #3a3a3a}.ps-site-search--dark .vehicle-select{--ps-vs-color-body-bg: #1e1e1e;--ps-vs-color-surface: #262626;--ps-vs-color-text: #f5f5f5;--ps-vs-color-border: #3a3a3a}.ps-site-search .ps-search-mode{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;margin-left:12px;padding:3px;border:1px solid #5d5d5d;border-radius:999px;background:rgba(255,255,255,.06)}.ps-site-search .ps-search-mode__btn{display:inline-flex;align-items:center;gap:6px;border:none;background:rgba(0,0,0,0);color:#cfcfcf;font-size:13px;font-weight:600;line-height:1;padding:8px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.ps-site-search .ps-search-mode__btn .bi{font-size:13px;line-height:1}.ps-site-search .ps-search-mode__btn:hover{color:#fff}.ps-site-search .ps-search-mode__btn--active{background:var(--ps-color-primary, #001877);color:#fff}.ps-site-search .ps-search-mode__btn--active:hover{color:#fff}@media(max-width: 575.98px){.ps-site-search .ps-search-mode{margin-left:8px}.ps-site-search .ps-search-mode .ps-search-mode__long{display:none}.ps-site-search .ps-search-mode__btn{padding:8px 11px}}.ps-site-search .modal-body .ai-chat-pane{padding:10px 10px 24px;max-width:1440px;margin:0 auto}.ps-site-search--mode-ai .view-all-results{display:none !important}.ps-site-search--light .ps-search-mode{border-color:#d9dde3;background:#f2f4f7}.ps-site-search--light .ps-search-mode .ps-search-mode__btn{color:#59626e}.ps-site-search--light .ps-search-mode .ps-search-mode__btn:hover{color:#000}.ps-site-search--light .ps-search-mode .ps-search-mode__btn--active{background:var(--ps-color-primary, #001877);color:#fff}.ps-site-search--light .ps-search-mode .ps-search-mode__btn--active:hover{color:#fff}.ps-site-search--dark .ai-chat-pane{--ps-color-surface: #262626;--ps-color-surface-alt: #1e1e1e;--ps-color-text: #f5f5f5;--ps-color-text-3: #b8b8b8;--ps-color-border: #3a3a3a}.searchInput--ai .searchInput-ai{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;align-self:center;position:relative;z-index:3;margin:0 6px;padding:6px 12px;border-radius:999px;background:var(--ps-color-primary, #001877);color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:0 1px 6px rgba(0,0,0,.18);font-size:12px;font-weight:700;line-height:1;letter-spacing:.02em;white-space:nowrap;text-decoration:none;transition:filter .15s ease,transform .15s ease}.searchInput--ai .searchInput-ai .bi{font-size:13px;line-height:1}.searchInput--ai .searchInput-ai:hover{color:#fff;filter:brightness(1.12);transform:translateY(-1px)}@media(max-width: 767.98px){.searchInput--ai .searchInput-ai{padding:6px 9px}.searchInput--ai .searchInput-ai .searchInput-ai-label{display:none}}.searchInput .searchInput-mic{position:relative;z-index:6;margin:0 4px 0 -40px;margin-left:-40px !important}@media(max-width: 767.98px){.searchInput .searchInput-mic{margin-left:-44px !important}}.searchInput.searchInput--voice .searchInput-field{padding-right:40px}@media(max-width: 767.98px){.searchInput.searchInput--voice .searchInput-field{padding-right:44px}}.ps-site-search .search_input_group .searchInput .ps-voice-btn--overlay{position:relative;z-index:3;margin:0 8px 0 2px}@media(max-width: 767.98px){.ps-site-search .modal-header:has(.ps-search-mode){display:grid;grid-template-columns:1fr auto;grid-template-areas:"mode  close" "search search";align-items:center}.ps-site-search .modal-header:has(.ps-search-mode) .ps-search-mode{grid-area:mode;margin:6px 0 6px 8px}.ps-site-search .modal-header:has(.ps-search-mode) .search_input_group{grid-area:search;width:100%}.ps-site-search .modal-header:has(.ps-search-mode) .close{grid-area:close;border-left:0;margin-left:10px}.ps-site-search .modal-header .search_input_group .searchIcon{padding-left:0;padding-right:0;min-width:44px;justify-content:center}}.ps-site-search .modal-body{padding-top:12px}@media(max-width: 767.98px){.ps-site-search--mode-ai .modal-body{padding-bottom:0}}.ps-site-search .ps-suggest-cont{margin-top:0}@media(max-width: 767.98px){.ps-site-search .product-main-title-group .prompt-list{font-size:13px;line-height:1.3;padding:0;margin:0 0 6px}.ps-site-search .product-main-title-group h1,.ps-site-search .product-main-title-group h2,.ps-site-search .product-main-title-group h3,.ps-site-search .product-main-title-group .h1,.ps-site-search .product-main-title-group .h2,.ps-site-search .product-main-title-group .h3{font-size:13px;line-height:1.3;margin:0;text-transform:none}.ps-site-search .pagination-container:not(.pagination-bottom){display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px}.ps-site-search .pagination-container:not(.pagination-bottom) .pagination-container-item{padding:0}.ps-site-search .pagination-container:not(.pagination-bottom) .-showing p{font-size:12px;margin:0}.ps-site-search .pagination-container:not(.pagination-bottom) .pagination,.ps-site-search .pagination-container:not(.pagination-bottom) nav[aria-label*=agination]{display:none}.ps-site-search .pagination-container:not(.pagination-bottom) .pp-cont{display:none}.ps-site-search .pagination-container:not(.pagination-bottom) .show-side-nav{flex:1 0 100%;order:2}.ps-site-search .pagination-container:not(.pagination-bottom) .show-filter{font-size:13px;font-weight:700}.ps-site-search .pagination-bottom{margin-top:18px;padding-top:14px;border-top:1px solid rgba(128,128,128,.25)}}.ps-site-search .facets-cont>.close{position:sticky;top:0;z-index:5;background:inherit}@media(max-width: 767.98px){.ps-site-search .search_by{display:flex;align-items:baseline;gap:8px;white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:12px}.ps-site-search .search_by .search_by_list{display:flex;gap:8px;margin:0;padding:0;list-style:none;font-size:inherit}.ps-site-search .search_by .search_by_list_item{white-space:nowrap;margin-right:0;padding-right:0}}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9jb21wb25lbnQtc2l0ZS1zZWFyY2gtZGVmYXVsdC5lNWE4OWI5OGIzNGRiY2ZjMTAyMy5jc3MiLCJtYXBwaW5ncyI6IkFBd0NJLGtDQUNJLHVEQ2ZnQixDRG1CaEIsOEJBTUksZ0JBRUEsU0FQQSw0QkFESiw4QkFFUSxnQkFDQSxVQU9SLCtCQUNJLDZDQ3pCYyxDRDJCZCxpQkFDQSw0QkFKSiwrQkFLUSxrQkFHUiw4QkFDSSx5QkFDQSxtQkFDQSxnQkFDQSxZQUNBLG9EQUNJLGFBQ0Esa0JBRUosa0RBQ0ksV0FDQSwwREFDSSxPQUNBLCtEQUNJLG1CQUVKLGdFQUNJLHlCQUNBLFlBQ0EsZ0JBQ0EsV0FHUiw4REFDSSxXQUNBLFlBQ0EsZUFDQSxnSEFDQSxrQkFDQSxvRUFDSSw4REFHUixtRUFDSSxpREN4RUksQ0R5RUosV0FDQSxlQUNBLGlCQUVBLDRCQU5KLG1FQU9RLGtCQUNBLFNBQ0EsVUFDQSxZQUdKLDJFQUNJLGVBR1IsZ0VBQ0ksa0JBR1IscUNBQ0ksV0FDQSxZQUNBLDhCQUNBLGVBQ0EsbUJBQ0EsMkJBR1IsNEJBQ0ksaUJBQ0EsY0FDQSxpQkFDQSxrQkFFQSw0Q0FDSSxhQUNBLGtCQUNBLE1BQ0EsWUFDQSx1REFDSSxlQUNBLDZEQUNJLHlCQUNBLGdCQUNBLHdFQUNJLGFBT2hCLDZDQUNJLGtCQUNBLE1BQ0EsT0FDQSxXQUNBLFlBQ0EsMEJBQ0EsYUFDQSx1QkFDQSxtQkFDQSxhQUdKLDZDQUNJLHNDQUNBLDBCQUNBLGtCQUNBLFdBQ0EsWUFDQSxrQ0FHSixnQkFDSSwwQkFDQSwrQkFLQSxvRUFDSSxhQUdKLDZEQUNJLFdBR0osd0VBQ0ksV0FJSixtRUFDSSx1Q0N6SkYsQ0QwSkUsYUFDQSxpRkFDSSxtRENyS0UsQ0RzS0YsOEJBQ0Esd0ZBQ0ksV0FFSixrR0FDSSxnQkFJSSxzR0FDSSxXQUtSLHlHQUNJLFdBQ0EsZ0JBR1IsdUdBQ0kseUJBSUosc0ZBQ0ksV0FNSSxvSEFDSSxxQkFDQSx5QkFLWixtR0FDSSx5QkFDQSxxQkFDQSwyR0FDSSxXQUVKLCtHQUNJLGNBQ0EsZ0JBSUoscUhBQ0kseUJBTXBCLCtDQUNJLFVBR0YscURBQ0UsZ0JBQ0Esd0NBQ0Esa0JBR0YscURBQ0UsMkNDalBRLENEa1BSLGtEQUNBLGtCQUdSLDhCQUNJLG1CQUNBLGdCQUNBLHlCQUNBLDhCQVlSLHNDQUNJLHNCQUNBLFNBR0osK0ZBQ0ksV0FHSixvRUFDSSxXQUdKLDBFQUNJLFdBR0osNkdBQ0ksV0FHSixnSEFDSSxXQUdKLDZGQUNJLFdBR0osK0VBQ0ksV0FHSixtQ0FDSSxzQkFHSix3RkFDSSxzQkFDQSwyQkFDQSw2QkFHSixxQ0FDSSxTQUNBLDRGQUNBLGdCQUdKLDRDQUNJLGdCQUNBLFdBR0oscUNBQ0ksZ0JBR0osa0NBQ0ksZ0NBR0osdUVBQ0ksV0FHSix5R0FDSSxXQUdKLDRIQUNJLHNCQUdKLDJIQUNJLHVCQUNBLG1CQUdKLDBHQUNJLHVCQUNBLG1CQUdKLDhHQUNJLGdEQ2xWa0IsQ0RnV3RCLCtFQUVJLDBCQUNBLCtCQUNBLG1DQUNBLDJCQUNBLDZCQUNBLGdDQUdKLHNDQUNJLCtCQUNBLCtCQUNBLDRCQUNBLDhCQWtCSixnQ0FDSSxvQkFDQSxtQkFDQSxRQUNBLGNBQ0EsaUJBQ0EsWUFDQSx5QkFDQSxvQkFDQSxpQ0FFQSxxQ0FDSSxvQkFDQSxtQkFDQSxRQUNBLFlBQ0EseUJBQ0EsY0FDQSxlQUNBLGdCQUNBLGNBQ0EsaUJBQ0Esb0JBQ0EsZUFDQSxtQkFDQSxnREFFQSxzRUFFQSxzREFFQSw2Q0FDSSwyQ0N6YVEsQ0QwYVIsV0FFQSw4REFJUiw0QkF2Q0osZ0NBd0NRLGdCQUVBLG1FQUVBLHVEQUlSLDBDQUNJLHVCQUNBLGlCQUNBLGNBSUosbUVBSUosdUNBQ0kscUJBQ0EsbUJBRUEsNERBQ0ksY0FFQSw2RUFFQSxvRUFDSSwyQ0M5Y1ksQ0QrY1osV0FFQSxxRkFRWixvQ0FDSSw0QkFDQSxnQ0FDQSx5QkFDQSwyQkFDQSwyQkFTQSxpQ0FDSSxvQkFDQSxtQkFDQSxRQUNBLGNBQ0Esa0JBSUEsa0JBQ0EsVUFDQSxhQUNBLGlCQUNBLG9CQUNBLDJDQ3JmZ0IsQ0RzZmhCLFdBQ0EsdUNBQ0EscUNBQ0EsZUFDQSxnQkFDQSxjQUNBLHFCQUNBLG1CQUNBLHFCQUNBLGdEQUVBLGtFQUVBLHVDQUNJLFdBQ0Esd0JBQ0EsMkJBSVIsNEJBQ0ksaUNBQ0ksZ0JBRUEscUVBYVosOEJBQ0ksa0JBQ0EsVUFXQSxxQkFDQSw2QkFDQSw0QkFmSiw4QkFlbUMsOEJBRW5DLG1EQUNJLG1CQUNBLDRCQUZKLG1EQUVtQyxvQkFFbkMsd0VBQ0ksa0JBQ0EsVUFDQSxtQkF5QkosNEJBQ0UsbURBQ0UsYUFDQSwrQkFDQSxpREFDRSxDQUVGLG1CQUVBLHVHQUNBLG1HQVNBLDBEQUNFLGdCQUNBLGNBQ0EsaUJBT0osOERBQ0UsZUFDQSxnQkFDQSxlQUNBLHdCQVNKLDRCQUNFLGlCQVNGLDRCQUNFLHVEQUdGLGlDQUNFLGFBU0YsNEJBSU0sdURBQ0UsZUFDQSxnQkFDQSxVQUNBLGVBR0YsaVJBQ0UsZUFDQSxnQkFDQSxTQUNBLG9CQUtKLDhEQUNFLGFBQ0EsZUFDQSxtQkFDQSxhQUNBLGtCQUVBLG1HQUVBLGtHQUdBLG1LQUMrQixhQUcvQixvRkFFQSxtR0FDQSwwR0FJRixtQ0FDRSxnQkFDQSxpQkFDQSw0Q0FVSixvQ0FDRSxnQkFDQSxNQUNBLFVBRUEsbUJBUUosNEJBQ0UsMkJBQ0UsYUFDQSxxQkFDQSxRQUNBLG1CQUNBLGdCQUNBLGlDQUlBLGVBRUEsMkNBQ0UsYUFDQSxRQUNBLFNBQ0EsVUFDQSxnQkFHQSxrQkFNRixnREFDRSxtQkFDQSxlQUNBLGlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmVhY2hzaWRlYXV0b3BhcnRzLy4uLy4uLy4uL2F1dG8tcHJlc3MvcmVzb3VyY2VzL2NvbXBvbmVudHMvc2l0ZS1zZWFyY2gvZGVmYXVsdC9pbmRleC5zY3NzIiwid2VicGFjazovL2JlYWNoc2lkZWF1dG9wYXJ0cy8uLi8uLi8uLi9hdXRvLXByZXNzL3Jlc291cmNlcy9zdHlsZXMvdmFyaWFudHMvX2NvbG9ycy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNJVEUtU0VBUkNIIOKAlCB2YXJpYW50IFwiZGVmYXVsdFwiIChOUE9URyBmdWxsc2NyZWVuIHNlYXJjaCBtb2RhbClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBvcnRlZCB2ZXJiYXRpbSBmcm9tIE5QT1RHOlxuLy8gICBzcmMvc3R5bGVzL2NvbXBvbmVudHMvX21vZGFsX3NlYXJjaC5zY3NzICAgICAgICAgICAgIChkYXJrIGJhc2UgcGFsZXR0ZSlcbi8vICAgc3JjL3N0eWxlcy9jb21wb25lbnRzL19tb2RhbF9zZWFyY2hfd2hpdGVfdGhlbWUuc2NzcyAobGlnaHQgb3ZlcnJpZGVzKVxuLy8gQ29tcGlsZXMgdG8gY29tcG9uZW50LXNpdGUtc2VhcmNoLWRlZmF1bHQuY3NzLlxuLy9cbi8vIFNjb3Bpbmc6IHRoZSBsZWdhY3kgZmlsZXMga2V5ZWQgZXZlcnl0aGluZyBvZmYgI21vZGFsU2VhcmNoLiBUaGUgY29tcG9uZW50XG4vLyByb290IGNhcnJpZXMgdGhhdCBzYW1lIGlkIFBMVVMgLnBzLXNpdGUtc2VhcmNoIGFuZCBhIHRoZW1lIG1vZGlmaWVyLCBzbyB0aGVcbi8vIHBvcnQgc2NvcGVzIG9mZiB0aGUgY2xhc3NlcyBpbnN0ZWFkOlxuLy8gICAucHMtc2l0ZS1zZWFyY2ggICAgICAgICAg4oCUIHN0cnVjdHVyYWwgc3R5bGVzICsgdGhlIGRhcmsgcGFsZXR0ZVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hhdCAtLWRhcmsgcmVuZGVyczsgbGVnYWN5IF9tb2RhbF9zZWFyY2guc2Nzcylcbi8vICAgLnBzLXNpdGUtc2VhcmNoLS1saWdodCAgIOKAlCB0aGUgd2hpdGUtdGhlbWUgb3ZlcnJpZGVzIGxheWVyZWQgb24gdG9wLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGFjdGx5IGxpa2UgTlBPVEcncyBidWlsZCwgd2hpY2ggaW1wb3J0cyB0aGVcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUgdGhlbWUgZmlsZSBBRlRFUiB0aGUgZGFyayBvbmUuIEVxdWFsXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmljaXR5ICsgbGF0ZXIgb3JkZXIgPSBsaWdodCB3aW5zLCB0aGVcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtZSBtZWNoYW5pc20gdGhlIGxlZ2FjeSBmaWxlcyByZWxpZWQgb24uXG4vL1xuLy8gQnJlYWtwb2ludHM6IE5QT1RHIGNvbXBpbGVkIHRoZXNlIHdpdGggQm9vdHN0cmFwIDUgbWl4aW5zIChkb3duKG1kKSA9XG4vLyA8NzY4cHgsIGRvd24obGcpID0gPDk5MnB4KTsgdGhlIF9jYXRhbG9nL2dsb2JhbHMgYnJpZGdlIG1peGlucyBhcmVcbi8vIEJTNC1zdHlsZSAoZG93bihtZCkgPSA8OTkycHgpLCBzbyB0aGUgbWVkaWEgcXVlcmllcyBhcmUgd3JpdHRlbiBvdXRcbi8vIGV4cGxpY2l0bHkgZm9yIHBpeGVsIHBhcml0eSB3aXRoIHRoZSBsZWdhY3kgYnVpbGQuXG4vL1xuLy8gRGVwczogJGNvbG9yX3ByaW1hcnkgLyAkY29sb3JfcHJpbWFyeV9saWdodCAvICRjb2xvcl9zZWNvbmRhcnkgZnJvbSB0aGVcbi8vIHNpdGUncyBzdHlsZXMvdmFyaWFudHMvY29sb3JzICh2aWEgX2NhdGFsb2cvZ2xvYmFscyk7IHJlbWMoKSBmcm9tIGdsb2JhbHMuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvX2NhdGFsb2cvZ2xvYmFscyc7XG5cbi8vIFBhbGV0dGUgcGllY2VzIHRoZSBnbG9iYWxzIGJyaWRnZSBkb2Vzbid0IHNoaXAg4oCUIE5QT1RHIHZhbHVlcyBhcyBmYWxsYmFja3Ncbi8vICh0aGUgc2l0ZSdzIHZhcmlhbnRzL2NvbG9ycywgaW1wb3J0ZWQgc2l0ZS1maXJzdCBhYm92ZSwgd2lucyB3aGVuIGRlZmluZWQpLlxuJGNvbG9yX25ldXRyYWxfMjogI2E3YTdhNyAhZGVmYXVsdDtcbiRjb2xvcl9zZWNvbmRhcnlfbGlnaHQ6ICM1NzU3NTcgIWRlZmF1bHQ7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQmFzZSArIGRhcmsgcGFsZXR0ZSAobGVnYWN5IF9tb2RhbF9zZWFyY2guc2NzcyBsaW5lcyAxLTI0MSlcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnBzLXNpdGUtc2VhcmNoIHtcblxuICAgIC52aWV3LWFsbC1yZXN1bHRzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnlfbGlnaHQ7XG4gICAgfVxuXG4gICAgLm1vZGFsIHtcbiAgICAgICAgJi1kaWFsb2cge1xuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7IC8vIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZyksIEJTNVxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gYWx3YXlzIGZvcmNlIGl0IHRvIGJlIGZ1bGwgd2lkdGhcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgICAgICAgICAvLyByZW1vdmUgbWFyZ2luIHRoYXQgbWFrZXMgYSBtb2RlbCBoYXZlIGEgZ2FwIG9uIHRoZSB0b3BcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgICAmLWNvbnRlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeTtcbiAgICAgICAgICAgIC8vbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7IC8vIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZyksIEJTNVxuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM1ZDVkNWQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWUxZTFlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgIC52ZWhpY2xlLXNlbGVjdC10aXRsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbWMoMjVweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc2VhcmNoX2lucHV0X2dyb3VwIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAuc2VhcmNoIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgJklucHV0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zZWFyY2hJY29uIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJGNvbG9yX3ByaW1hcnksICRjb2xvcl9wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogcmVtYygxNXB4LCAyNXB4KTtcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBsaWdodGVuKCRjb2xvcl9wcmltYXJ5X2hleCwgNSUpLCBsaWdodGVuKCRjb2xvcl9wcmltYXJ5X2hleCwgNSUpKTsgLy8gaGV4IHR3aW46IFNhc3MgbGlnaHRlbigpIGNhbid0IHRha2UgYSB2YXIoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zZWxlY3RlZFZlaGljbGUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcHJpbWFyeTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbWMoMTJweCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtYyg1cHgpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkgeyAvLyBtZWRpYS1icmVha3BvaW50LWRvd24obWQpLCBCUzVcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogcmVtYyg2M3B4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHJlbWMoMTBweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OjEwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnJlbW92ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnZlaGljbGUtdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY2xvc2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNWQ1ZDVkO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWUxZTFlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuOTM3NXJlbSAxLjU2MjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi1ib2R5IHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbWMoMjAwcHgpO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtYyg1NXB4KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgLnZlaGljbGUtc2VsZWN0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgLmJvZHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgLnNlYXJjaF9ieSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAubG9hZGluZy1vdmVybGF5IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTsgLyogR3JheSBvdXQgdGhlIGJhY2tncm91bmQgKi9cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiA0cHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGtleWZyYW1lcyBzcGluIHtcbiAgICAgICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gICAgICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNlYXJjaF9yZXN1bHRzIHtcblxuICAgICAgICAgICAgICAgIC5jdXJyZW50X3ZlaGljbGVfcHJvbXB0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBoMi5zZWFyY2gtcHJvbXB0IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5ub24tdmVoaWNsZS10ZXh0LWluLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvL2Rpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtbGlzdC1zZWxlY3RvciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfbmV1dHJhbF8yO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMFBYO1xuICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1jb250IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9zZWNvbmRhcnk7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHJlbWMoMSkgc29saWQgIzRiNGE0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLmJyYW5kLWxvZ28tY29udCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wYXJ0LW51bWJlci1jb250e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVse1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpdHMtcm93IHRhYmxlIHRyIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0NjQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5mYWNldHMtY29udCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5wcm9kdWN0LWRldGFpbHMtdGFicyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAubmF2LXRhYnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5uYXYtbGluayB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzI2MjYyNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNjI2MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC50YWItcGFuZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI2MjYyNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICMyNjI2MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN0YWNrdGFibGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2FiYWJhYjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAuaW5mby1jb2wtMiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb2QtYXR0ci1jb250IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI2MjYyNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnk7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJGNvbG9yX3ByaW1hcnk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi1mb290ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlMWUxZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNWQ1ZDVkO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIExpZ2h0IHRoZW1lIG92ZXJyaWRlcyAobGVnYWN5IF9tb2RhbF9zZWFyY2hfd2hpdGVfdGhlbWUuc2NzcyBsaW5lcyAxLTk2KVxuLy8gTXVzdCBzdGF5IEFGVEVSIHRoZSBiYXNlIGJsb2NrOiBlcXVhbCBzcGVjaWZpY2l0eSwgbGF0ZXIgb3JkZXIgd2lucyDigJRcbi8vIG1pcnJvcmluZyBOUE9URydzIG1haW4uc2NzcyBpbXBvcnQgb3JkZXIuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5wcy1zaXRlLXNlYXJjaC0tbGlnaHQge1xuXG4gICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkgLnNlYXJjaF9yZXN1bHRzIC5wcm9kdWN0LWxpc3Qtc2VsZWN0b3IgLnByb2R1Y3QtY29udCAudGl0bGUge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuc2VhcmNoX3Jlc3VsdHMgaDIuc2VhcmNoLXByb21wdCB7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC5tb2RhbC1ib2R5IC5zZWFyY2hfcmVzdWx0cyAucHJvZHVjdC1saXN0LXNlbGVjdG9yIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkgLnNlYXJjaF9yZXN1bHRzIC5wcm9kdWN0LWxpc3Qtc2VsZWN0b3IgLnByb2R1Y3QtY29udCAucHJpY2luZyAucHJpY2Ugc3BhbiB7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC5tb2RhbC1ib2R5IC5zZWFyY2hfcmVzdWx0cyAucHJvZHVjdC1saXN0LXNlbGVjdG9yIC5wcm9kdWN0LWNvbnQgLnBhcnQtbnVtYmVyLWNvbnQgbGFiZWwge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuc2VhcmNoX3Jlc3VsdHMgLnByb2R1Y3QtbGlzdC1zZWxlY3RvciAuZmFjZXRzLWNvbnQgbGFiZWwge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuc2VhcmNoX3Jlc3VsdHMgLm5vbi12ZWhpY2xlLXRleHQtaW4tc2VhcmNoIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIH1cblxuICAgIC5tb2RhbC1ib2R5IC5zZWFyY2hfcmVzdWx0cyAucHJvZHVjdC1saXN0LXNlbGVjdG9yIC5wcm9kdWN0LWNvbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAjZmZmO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7XG4gICAgfVxuXG4gICAgLm1vZGFsLWhlYWRlciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYnMtbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLm1vZGFsLWhlYWRlciAuY2xvc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAubW9kYWwtZm9vdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB9XG5cbiAgICAuc2VhcmNoX2J5IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1jb2xvcik7XG4gICAgfVxuXG4gICAgLm1vZGFsLWhlYWRlciAuc2VhcmNoX2lucHV0X2dyb3VwIC5zZWFyY2ggaW5wdXQge1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuXG4gICAgLnZlaGljbGUtc2VsZWN0IC5jb250YWluZXIgLmJvZHkgLnNlbGVjdGVkLXZlaGljbGUgLm15LWdhcmFnZSAuc2VsZWN0ZWRfdmVoaWNsZSBhIHtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cblxuICAgIC5tb2RhbC1ib2R5IC5zZWFyY2hfcmVzdWx0cyAucHJvZHVjdC1saXN0LXNlbGVjdG9yIC5wcm9kdWN0LWRldGFpbHMtdGFicyAuaW5mby1jb2wtMiAucHJvZC1hdHRyLWNvbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuc2VhcmNoX3Jlc3VsdHMgLnByb2R1Y3QtbGlzdC1zZWxlY3RvciAucHJvZHVjdC1kZXRhaWxzLXRhYnMgLm5hdi10YWJzIC5uYXYtbGluay5hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB1bnNldDtcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuc2VhcmNoX3Jlc3VsdHMgLnByb2R1Y3QtbGlzdC1zZWxlY3RvciAucHJvZHVjdC1kZXRhaWxzLXRhYnMgLnRhYi1wYW5lIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdW5zZXQ7XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkgLnNlYXJjaF9yZXN1bHRzIC5wcm9kdWN0LWxpc3Qtc2VsZWN0b3IgLnByb2R1Y3QtY29udCAuZml0cy1yb3cgdGFibGUgdHIgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfc2Vjb25kYXJ5X2xpZ2h0O1xuICAgIH1cbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBXUzUg4oCUIGRhcmstdGhlbWUgYnJpZGdlIGZvciBFTUJFRERFRCBjb21wb25lbnRzIChidWlsZGVyLWNob3NlbiByZXN1bHQgY2FyZHNcbi8vICsgdGhlIHZlaGljbGUgcGlja2VyKS4gV2hlbiB0aGUgc2VhcmNoIG1vZGFsIHJlbmRlcnMgZGFya1xuLy8gKC5wcy1zaXRlLXNlYXJjaC0tZGFyayksIHRoZSBwcm9kdWN0LWNhcmQgLyB2ZWhpY2xlLXNlbGVjdCBjb21wb25lbnRzIOKAlCB3aGljaFxuLy8gZGVmYXVsdCB0byBhIGxpZ2h0IHBhbGV0dGUg4oCUIHdvdWxkIG90aGVyd2lzZSBzaXQgbGlnaHQtb24tZGFyay4gUmVtYXAgdGhlaXJcbi8vIGRlc2lnbiB0b2tlbnMgdG8gdGhlIG1vZGFsJ3MgZGFyayB2YWx1ZXMgc28gdGhlIGVtYmVkcyBtYXRjaCB0aGUgY2hyb21lLlxuLy8gQSBtZXJjaGFudCdzIG93biBwZXItZW1iZWQgdG9rZW4gb3ZlcnJpZGUgKGlubGluZSBzdHlsZSBvbiAucHMtc2VhcmNoLWNhcmRzIC9cbi8vIC52ZWhpY2xlLXNlbGVjdCkgc3RpbGwgd2luczogaW5saW5lIHN0eWxlcyBiZWF0IHRoZXNlIHN0eWxlc2hlZXQgcnVsZXMuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5wcy1zaXRlLXNlYXJjaC0tZGFyayB7XG4gICAgLnBzLXNlYXJjaC1jYXJkcyxcbiAgICAubGl2ZS1zZWFyY2gtY29udCB7XG4gICAgICAgIC0tcHMtcGMtY29sb3ItYmc6ICMxZTFlMWU7XG4gICAgICAgIC0tcHMtcGMtY29sb3Itc3VyZmFjZTogIzI2MjYyNjtcbiAgICAgICAgLS1wcy1wYy1jb2xvci1zdXJmYWNlLWFsdDogIzJmMmYyZjtcbiAgICAgICAgLS1wcy1wYy1jb2xvci1pbms6ICNmNWY1ZjU7XG4gICAgICAgIC0tcHMtcGMtY29sb3ItaW5rLTI6ICNiOGI4Yjg7XG4gICAgICAgIC0tcHMtcGMtY29sb3ItaGFpcmxpbmU6ICMzYTNhM2E7XG4gICAgfVxuXG4gICAgLnZlaGljbGUtc2VsZWN0IHtcbiAgICAgICAgLS1wcy12cy1jb2xvci1ib2R5LWJnOiAjMWUxZTFlO1xuICAgICAgICAtLXBzLXZzLWNvbG9yLXN1cmZhY2U6ICMyNjI2MjY7XG4gICAgICAgIC0tcHMtdnMtY29sb3ItdGV4dDogI2Y1ZjVmNTtcbiAgICAgICAgLS1wcy12cy1jb2xvci1ib3JkZXI6ICMzYTNhM2E7XG4gICAgfVxufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEFJIG1vZGUgKHVuaWZpZWQgc2VhcmNoICsgY2hhdClcbi8vIFJlbmRlcmVkIG9ubHkgd2hlbiB0aGUgYmxhZGUncyBhdmFpbGFiaWxpdHkgZ2F0ZSBwYXNzZXMgKCRhaUVuYWJsZWQpOlxuLy8gICAucHMtc2VhcmNoLW1vZGUgICAgICDigJQgdGhlIFNlYXJjaCB8IEFJIHNlZ21lbnRlZCB0b2dnbGUgaW4gdGhlIG1vZGFsIGhlYWRlclxuLy8gICAuYWktY2hhdC1wYW5lICAgICAgICDigJQgdGhlIGVtYmVkZGVkIGFpLWNoYXRib3QgcGFuZSAod2lkZ2V0IGxheW91dC9zaXplIGlzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgb3duZWQgYnkgdGhlIGNoYXQgYnVuZGxlJ3MgLnBzLWNoYXQtLW92ZXJsYXkgY2xhc3MpXG4vLyAgIC5zZWFyY2hJbnB1dC0tYWkvLWFpIOKAlCB0aGUgaGVhZGVyIGNvbWJpbmVkIHNlYXJjaCBib3ggYWZmb3JkYW5jZS4gSXRzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3VwIGxpdmVzIGluIHNpdGUtaGVhZGVyLCBidXQgdGhlIHN0eWxpbmcgYmVsb25nc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgIHRvIFRISVMgYnVuZGxlOiB0aGUgaGVhZGVyIGVtaXRzIHRoZXNlIHN0eWxlcyBleGFjdGx5XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiB0aGUgZnVsbHNjcmVlbiBzZWFyY2ggbW9kYWwgaXMgZW1iZWRkZWQuXG4vLyBCYXNlID0gZGFyayBjaHJvbWU7IHRoZSAtLWxpZ2h0IG92ZXJyaWRlcyBmb2xsb3cgKHNhbWUgbWVjaGFuaXNtIGFzIGFib3ZlKS5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnBzLXNpdGUtc2VhcmNoIHtcblxuICAgIC5wcy1zZWFyY2gtbW9kZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiByZW1jKDEycHgpO1xuICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM1ZDVkNWQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xuXG4gICAgICAgICZfX2J0biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IHJlbWMoNnB4KTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICNjZmNmY2Y7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbWMoMTNweCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW1jKDhweCkgcmVtYygxNHB4KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTtcblxuICAgICAgICAgICAgLmJpIHsgZm9udC1zaXplOiByZW1jKDEzcHgpOyBsaW5lLWhlaWdodDogMTsgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHsgY29sb3I6ICNmZmY7IH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeTtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIgeyBjb2xvcjogI2ZmZjsgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7IC8vIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSksIEJTNVxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbWMoOHB4KTtcblxuICAgICAgICAgICAgLnBzLXNlYXJjaC1tb2RlX19sb25nIHsgZGlzcGxheTogbm9uZTsgfSAvLyBcIkFJIGFzc2lzdGFudFwiIOKGkiBcIkFJXCJcblxuICAgICAgICAgICAgJl9fYnRuIHsgcGFkZGluZzogcmVtYyg4cHgpIHJlbWMoMTFweCk7IH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tb2RhbC1ib2R5IC5haS1jaGF0LXBhbmUge1xuICAgICAgICBwYWRkaW5nOiByZW1jKDEwcHgpIHJlbWMoMTBweCkgcmVtYygyNHB4KTtcbiAgICAgICAgbWF4LXdpZHRoOiAxNDQwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cblxuICAgIC8vIEFJIG1vZGUgaGlkZXMgdGhlIGtleXdvcmQtcmVzdWx0cyBjaHJvbWUgdGhhdCBsaXZlcyBvdXRzaWRlIHRoZSBwYW5lc1xuICAgICYtLW1vZGUtYWkgLnZpZXctYWxsLXJlc3VsdHMgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gLy8gbGl2ZS5qcyBzZXRzIGlubGluZSBkaXNwbGF5XG59XG5cbi8vIGxpZ2h0IGNocm9tZSAoZXF1YWwgc3BlY2lmaWNpdHksIGxhdGVyIG9yZGVyIOKAlCBzYW1lIGFzIHRoZSB0aGVtZSBibG9jayBhYm92ZSlcbi5wcy1zaXRlLXNlYXJjaC0tbGlnaHQgLnBzLXNlYXJjaC1tb2RlIHtcbiAgICBib3JkZXItY29sb3I6ICNkOWRkZTM7XG4gICAgYmFja2dyb3VuZDogI2YyZjRmNztcblxuICAgIC5wcy1zZWFyY2gtbW9kZV9fYnRuIHtcbiAgICAgICAgY29sb3I6ICM1OTYyNmU7XG5cbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiAjMDAwOyB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgICAgICY6aG92ZXIgeyBjb2xvcjogI2ZmZjsgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBkYXJrIGNocm9tZTogZmVlZCB0aGUgY2hhdCdzIHNpdGUtdG9rZW4gZmFsbGJhY2tzICgtLXBzLWNoYXQtKiBmYWxsIGJhY2sgdG9cbi8vIC0tcHMtY29sb3ItKikgc28gdGhlIGVtYmVkZGVkIGFzc2lzdGFudCBtYXRjaGVzIHRoZSBkYXJrIG1vZGFsLiBBIG1lcmNoYW50J3Ncbi8vIHBlci1lbWJlZCBTdHlsZSBvdmVycmlkZXMgcmlkZSBJTkxJTkUgb24gdGhlIC5wcy1jaGF0IHJvb3QgYW5kIHN0aWxsIHdpbi5cbi5wcy1zaXRlLXNlYXJjaC0tZGFyayAuYWktY2hhdC1wYW5lIHtcbiAgICAtLXBzLWNvbG9yLXN1cmZhY2U6ICMyNjI2MjY7XG4gICAgLS1wcy1jb2xvci1zdXJmYWNlLWFsdDogIzFlMWUxZTtcbiAgICAtLXBzLWNvbG9yLXRleHQ6ICNmNWY1ZjU7XG4gICAgLS1wcy1jb2xvci10ZXh0LTM6ICNiOGI4Yjg7XG4gICAgLS1wcy1jb2xvci1ib3JkZXI6ICMzYTNhM2E7XG59XG5cbi8vIOKUgOKUgCB0aGUgaGVhZGVyIGNvbWJpbmVkIHNlYXJjaCBib3ggKG1hcmt1cCBpbiBzaXRlLWhlYWRlci9kZWZhdWx0LmJsYWRlLnBocCkg4pSA4pSAXG4vLyBBIHJlYWRvbmx5IGRpc3BsYXkgYm94IHRoYXQgb3BlbnMgdGhpcyBtb2RhbDsgd2l0aCBBSSBvbiBpdCBiZWNvbWVzIHRoZVxuLy8gY29tYmluZWQgXCJTZWFyY2ggb3IgYXNrIEFJXCIgd2lkZ2V0OiB0aGUgc3BhcmtsZSBjaGlwIG9wZW5zIHN0cmFpZ2h0IGludG8gQUlcbi8vIG1vZGUgKGRhdGEtc2VhcmNoPVwiYWlcIikuXG4uc2VhcmNoSW5wdXQtLWFpIHtcblxuICAgIC5zZWFyY2hJbnB1dC1haSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHJlbWMoNXB4KTtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgLy8gdGhlIGxlZ2FjeSAuc2VhcmNoSW5wdXQtZ2xhc3MgaXMgYW4gYWJzb2x1dGUgZnVsbC1ib3ggb3ZlcmxheSBhbmNob3JcbiAgICAgICAgLy8gKHRoZSB3aG9sZSBzZWFyY2ggYm94IG9wZW5zIGtleXdvcmQgc2VhcmNoKSDigJQgdGhlIGNoaXAgbXVzdCBzaXRcbiAgICAgICAgLy8gQUJPVkUgaXQgdG8gYmUgY2xpY2thYmxlLCBhbmQgdG8gcmVhZCBhcyBpdHMgb3duIGNvbnRyb2wuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgbWFyZ2luOiAwIHJlbWMoNnB4KTtcbiAgICAgICAgcGFkZGluZzogcmVtYyg2cHgpIHJlbWMoMTJweCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuICAgICAgICBmb250LXNpemU6IHJlbWMoMTJweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcblxuICAgICAgICAuYmkgeyBmb250LXNpemU6IHJlbWMoMTNweCk7IGxpbmUtaGVpZ2h0OiAxOyB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcygxLjEyKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkgeyAvLyBtZWRpYS1icmVha3BvaW50LWRvd24obWQpLCBCUzVcbiAgICAgICAgLnNlYXJjaElucHV0LWFpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbWMoNnB4KSByZW1jKDlweCk7XG5cbiAgICAgICAgICAgIC5zZWFyY2hJbnB1dC1haS1sYWJlbCB7IGRpc3BsYXk6IG5vbmU7IH0gLy8gaWNvbi1vbmx5IGNoaXBcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8g4pSA4pSAIHZvaWNlIHNlYXJjaCAoZG9jcy9Wb2ljZSBTZWFyY2gvTUlDUk9QSE9ORS5tZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBMb29rIGluIF9zaGFyZWQvX3ZvaWNlLXNlYXJjaC5zY3NzICh3aGl0ZSBnbHlwaCBvbiBhIHByaW1hcnkgZGlzYyk7IG9ubHlcbi8vIFBMQUNFTUVOVCBoZXJlLlxuLy8gICAuc2VhcmNoSW5wdXQtbWljICAgICAgICB0aGUgaGVhZGVyIGJveCdzIG1pYyAoRnVsbHNjcmVlbiBNb2RhbCBzdHlsZSkuIExpa2Vcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIEFzayBBSSBjaGlwIGl0IG11c3Qgc2l0IEFCT1ZFIC5zZWFyY2hJbnB1dC1nbGFzcyxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFic29sdXRlIGZ1bGwtYm94IGNsaWNrIG92ZXJsYXksIHRvIGJlIHRhcHBhYmxlLlxuLy8gICAucHMtdm9pY2UtYnRuLS1vdmVybGF5ICB0aGUgbWljIGluc2lkZSAjbW9kYWxTZWFyY2gncyBrZXl3b3JkIGJveDogYSBmbGV4XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkIGFmdGVyIHRoZSAuc2VhcmNoIGZpZWxkLCBiZWZvcmUgdGhlIHZlaGljbGUgY2hpcC5cbi5zZWFyY2hJbnB1dCAuc2VhcmNoSW5wdXQtbWljIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogNjsgICAvLyBhYm92ZSBCb290c3RyYXAncyBmb2N1c2VkLWZpZWxkIHotaW5kZXggNSBpbnNpZGUgYW4gaW5wdXQtZ3JvdXAgKHNlZSBpbmxpbmUvaW5kZXguc2NzcylcbiAgICAvLyBJTlNJREUgdGhlIGZpZWxkIChvd25lciwgMjAyNi0xMC0yMik6IG9uIHRoZSBkZWZhdWx0IC8gc3VtbWl0IHNraW5zIHRoZVxuICAgIC8vIHdoaXRlIGJveCBJUyB0aGUgPGlucHV0PiAoLnNlYXJjaElucHV0LWZpZWxkKTsgYSBmbGV4IHNpYmxpbmcgYWZ0ZXIgaXRcbiAgICAvLyBsYW5kcyBvbiB0aGUgaGVhZGVyIGJhciBiZXNpZGUgdGhlIGZpZWxkLCBub3QgaW4gaXQuIFRoZSBtaWMgaXMgcHVsbGVkXG4gICAgLy8gb3ZlciB0aGUgZmllbGQncyBsYXN0IDQwcHggd2l0aCBhIG5lZ2F0aXZlIG1hcmdpbiAoaXQgaXMgbGF0ZXIgaW4gRE9NXG4gICAgLy8gb3JkZXIgYW5kIGFib3ZlIHRoZSBnbGFzcywgc28gaXQgcGFpbnRzIG9uIHRvcCksIGFuZCB0aGUgZmllbGQgdGFrZXNcbiAgICAvLyB0aGUgc2FtZSBwYWRkaW5nLXJpZ2h0IHNvIHRoZSBwbGFjZWhvbGRlciAvIHR5cGVkIHRleHQgbmV2ZXIgcnVucyB1bmRlclxuICAgIC8vIHRoZSBnbHlwaC4gNDRweCBvbiBwaG9uZXMgPSB0aGUgdGFwIHRhcmdldC4gIWltcG9ydGFudCBiZWNhdXNlIEJvb3RzdHJhcCdzXG4gICAgLy8gb3duIGAuaW5wdXQtZ3JvdXAgPiA6bm90KDpmaXJzdC1jaGlsZCk6bm90KOKApinDlzUgeyBtYXJnaW4tbGVmdDogLTFweCB9YCBoYXMgYVxuICAgIC8vIHNwZWNpZmljaXR5IG9mIHNpeCBjbGFzc2VzIGFuZCBzaWxlbnRseSB3aW5zIG90aGVyd2lzZSAoaXQgZGlkOiBmaXJzdCBidWlsZFxuICAgIC8vIG9mIHRoaXMgcnVsZSBsZWZ0IHRoZSBtaWMgb24gdGhlIGJhcikuXG4gICAgbWFyZ2luOiAwIHJlbWMoNHB4KSAwIC00MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtNDBweCAhaW1wb3J0YW50O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkgeyBtYXJnaW4tbGVmdDogLTQ0cHggIWltcG9ydGFudDsgfVxufVxuLnNlYXJjaElucHV0LnNlYXJjaElucHV0LS12b2ljZSAuc2VhcmNoSW5wdXQtZmllbGQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7IHBhZGRpbmctcmlnaHQ6IDQ0cHg7IH1cbn1cbi5wcy1zaXRlLXNlYXJjaCAuc2VhcmNoX2lucHV0X2dyb3VwIC5zZWFyY2hJbnB1dCAucHMtdm9pY2UtYnRuLS1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMztcbiAgICBtYXJnaW46IDAgcmVtYyg4cHgpIDAgcmVtYygycHgpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNT0JJTEUgU0VBUkNIIE9WRVJMQVkgIChvd25lciByZXBvcnQgMjAyNi0wOC0xNylcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNpeCBzZXBhcmF0ZSBjb21wbGFpbnRzLCBhbGwgb2YgdGhlbSB0aGUgc2FtZSB1bmRlcmx5aW5nIGNhdXNlOiB0aGlzIG92ZXJsYXlcbiAgIHdhcyBsYWlkIG91dCBmb3IgYSBkZXNrdG9wIG1vZGFsIGFuZCB0aGVuIGxldCBsb29zZSBvbiBhIDM5MHB4IHBob25lLCB3aGVyZVxuICAgZXZlcnkgcm93IGl0IHN0YWNrcyBlYXRzIHNjcmVlbiB0aGUgc2hvcHBlciBuZWVkcyBmb3IgcmVzdWx0cy5cblxuICAgTWVhc3VyZWQgYmVmb3JlLCBvbiBhIDM5MHB4IHZpZXdwb3J0OlxuICAgICBtb2RlIHRvZ2dsZSAxNjUgKyBzZWFyY2ggaWNvbiA2NiArIGlucHV0IDEwMCArIGNsb3NlIDY3ID0gMzk4cHggICg+IDM5MClcbiAgICAg4oaSIHRoZSBrZXl3b3JkIGZpZWxkIHdhcyAxMDBweCB3aWRlIGFuZCBpdHMgcGxhY2Vob2xkZXIgd2FzIGNsaXBwZWRcbiAgICAgbW9kYWwtYm9keSBwYWRkaW5nLXRvcCA1NXB4IOKGkiBhIDY1cHggdm9pZCBhYm92ZSB0aGUgc3VnZ2VzdGlvbiBsaXN0XG4gICAgIGhlYWRpbmcgYmxvY2sgOTJweCArIHRvb2xiYXIgMTc2cHggPSAyNjhweCBvZiBjaHJvbWUgYmVmb3JlIHByb2R1Y3Qgb25lXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIC0tLSAxLiBIZWFkZXI6IHR3byByb3dzIG9uIHBob25lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFRoZSB0b2dnbGUsIHRoZSBpY29uIGJ1dHRvbiwgdGhlIGZpZWxkIGFuZCB0aGUgY2xvc2UgYnV0dG9uIGNhbm5vdCBzaGFyZVxuICAgMzkwcHguIE9ubHkgdGhlIEZJRUxEIGRlc2VydmVzIHRoZSB3aWR0aCwgc28gdGhlIGNocm9tZSBtb3ZlcyB0byBpdHMgb3duXG4gICBsaW5lOiBtb2RlIHRvZ2dsZSBsZWZ0LCBjbG9zZSByaWdodCwgc2VhcmNoIGFjcm9zcyB0aGUgZnVsbCB3aWR0aCBiZW5lYXRoLlxuXG4gICBTY29wZWQgd2l0aCA6aGFzKC5wcy1zZWFyY2gtbW9kZSkgZGVsaWJlcmF0ZWx5IOKAlCBhbiBvdmVybGF5IFdJVEhPVVQgdGhlIEFJXG4gICB0b2dnbGUgaGFzIHJvb20gZm9yIHRoZSBzaW5nbGUtcm93IGxheW91dCBpdCBhbHJlYWR5IHVzZXMsIGFuZCByZXN0YWNraW5nIGl0XG4gICB3b3VsZCBhZGQgYSByb3cgZm9yIG5vIHJlYXNvbi4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAucHMtc2l0ZS1zZWFyY2ggLm1vZGFsLWhlYWRlcjpoYXMoLnBzLXNlYXJjaC1tb2RlKSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICBcIm1vZGUgIGNsb3NlXCJcbiAgICAgIFwic2VhcmNoIHNlYXJjaFwiO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAucHMtc2VhcmNoLW1vZGUgICAgICB7IGdyaWQtYXJlYTogbW9kZTsgbWFyZ2luOiA2cHggMCA2cHggOHB4OyB9XG4gICAgLnNlYXJjaF9pbnB1dF9ncm91cCAgeyBncmlkLWFyZWE6IHNlYXJjaDsgd2lkdGg6IDEwMCU7IH1cblxuICAgIC8qIFRoZSBjbG9zZSBidXR0b24gY2FycmllcyBhIGJvcmRlci1sZWZ0IHRoYXQgcmVhZHMgYXMgYSBkaXZpZGVyIG9uXG4gICAgICAgREVTS1RPUCwgd2hlcmUgaXQgc2VwYXJhdGVzIHRoZSBzZWFyY2ggZmllbGQgZnJvbSB0aGUgWCBhY3Jvc3Mgb25lIHJvdy5cbiAgICAgICBIZXJlIHRoZSByb3cgaXMgW1NlYXJjaHxBSSBwaWxsXVtYXSwgc28gdGhhdCBydWxlIGxhbmRzIGhhcmQgYWdhaW5zdCB0aGVcbiAgICAgICBwaWxsJ3Mgcm91bmRlZCBlZGdlIOKAlCBhIHNlYW0gYmV0d2VlbiB0d28gdGhpbmdzIHRoYXQgYXJlIGFscmVhZHlcbiAgICAgICB2aXN1YWxseSBkaXN0aW5jdCAob3duZXIsIDIwMjYtMDgtMjg6IFwidGhlIHZlcnRpY2FsIGxpbmUgaXMgYnV0dCB1cFxuICAgICAgIGFnYWluc3QgdGhlIHBpbGzigKYgaXQgbG9va3MgYmFkXCIpLiBEcm9wIHRoZSBydWxlIG9uIHBob25lcyBhbmQgZ2l2ZSB0aGUgWFxuICAgICAgIHJlYWwgc3BhY2UgaW5zdGVhZDsgdGhlIHBpbGwncyBvd24gYmFja2dyb3VuZCBkb2VzIHRoZSBzZXBhcmF0aW5nLiAqL1xuICAgIC5jbG9zZSB7XG4gICAgICBncmlkLWFyZWE6IGNsb3NlO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG4gIH1cblxuICAvKiBUaGUgaWNvbiBidXR0b24gd2FzIGEgNjZweCBzbGFiIOKAlCBhIHRoaXJkIG9mIHRoZSBmaWVsZCdzIHdpZHRoIGZvciBhIGdseXBoXG4gICAgIHRoYXQgcmVwZWF0cyB3aGF0IHRoZSBwbGFjZWhvbGRlciBzYXlzLiBLZWVwIGl0IGFzIHRoZSBzdWJtaXQgYWZmb3JkYW5jZSxcbiAgICAgYXQgYSB0aHVtYi1zaXplZCA0NHB4LiAqL1xuICAucHMtc2l0ZS1zZWFyY2ggLm1vZGFsLWhlYWRlciAuc2VhcmNoX2lucHV0X2dyb3VwIC5zZWFyY2hJY29uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBtaW4td2lkdGg6IDQ0cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cblxuLyogLS0tIDIuIFN1Z2dlc3Rpb25zIHNpdCB1bmRlciB0aGUgZmllbGQsIG5vdCA2NXB4IGJlbG93IGl0IC0tLS0tLS0tLS0tLS0tLS1cbiAgIGBwYWRkaW5nLXRvcDogNTVweGAgb24gdGhlIGJvZHkgd2FzIHJlc2VydmluZyByb29tIG5vdGhpbmcgb2NjdXBpZXMgb25jZSB0aGVcbiAgIGhlYWRlciBpcyBpbiBmbG93LiBTdWdnZXN0aW9ucyBiZWxvbmcgZGlyZWN0bHkgYmVuZWF0aCB0aGUgaW5wdXQgKHRoYXQgaXNcbiAgIHdoYXQgbWFrZXMgYSB0eXBlYWhlYWQgcmVhZCBhcyBhdHRhY2hlZCB0byB0aGUgZmllbGQpLiBBcHBsaWVkIGF0IGV2ZXJ5XG4gICB3aWR0aCDigJQgdGhlIG93bmVyIGNhbGxlZCBvdXQgZGVza3RvcCB0b28uICovXG4ucHMtc2l0ZS1zZWFyY2ggLm1vZGFsLWJvZHkge1xuICBwYWRkaW5nLXRvcDogcmVtYygxMnB4KTtcbn1cblxuLyogQUkgbW9kZSBvbiBwaG9uZXM6IHRoZSBjaGF0IHBhbmUgcnVucyBzaW5nbGUtc2Nyb2xsIGZsb3cgKHNlZSB0aGVcbiAgIGFpLWNoYXRib3QgYnVuZGxlJ3MgbW9iaWxlIGZsb3cgYmxvY2spIHdpdGggaXRzIGNvbXBvc2VyIHN0aWNreSB0byBUSElTXG4gICBzY3JvbGxwb3J0J3MgYm90dG9tLiBUaGUgYm9keSdzIG93biBib3R0b20gcGFkZGluZyB3b3VsZCBob2xkIHRoZSBwaW5uZWRcbiAgIGNvbXBvc2VyIH4xNnB4IGFib3ZlIHRoZSBtb2RhbCBlZGdlIOKAlCBhIGRlYWQgc3RyaXAgdW5kZXIgdGhlIGlucHV0IOKAlCBzbyBpdFxuICAgZ29lcyB0byB6ZXJvIGhlcmU7IHRoZSAuYWktY2hhdC1wYW5lIGtlZXBzIGl0cyBvd24gYm90dG9tIHBhZGRpbmcgZm9yXG4gICBzcGFjaW5nIGFmdGVyIHRoZSBtYXRjaGluZy1wcm9kdWN0cyBncmlkLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wcy1zaXRlLXNlYXJjaC0tbW9kZS1haSAubW9kYWwtYm9keSB7IHBhZGRpbmctYm90dG9tOiAwOyB9XG59XG5cbi5wcy1zaXRlLXNlYXJjaCAucHMtc3VnZ2VzdC1jb250IHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLyogLS0tIDMuIFJlc3VsdHMgY2hyb21lOiBmaXZlIHN0YWNrZWQgcm93cyDihpIgdHdvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgQmVmb3JlIHRoZSBmaXJzdCBwcm9kdWN0IGEgcGhvbmUgc2hvd2VkOiBhIHR3by1saW5lIDkycHggaGVhZGluZywgdGhlXG4gICBcIlNob3dpbmcgMSAtIDkgb2YgMTIsOTEyIHByb2R1Y3RzXCIgbGluZSwgU2hvdyBGaWx0ZXJzLCB0aGUgc29ydCBzZWxlY3QsIGFuZFxuICAgYSBmdWxsIHBhZ2luYXRpb24gc3RyaXAuIFRoZSBoZWFkaW5nIGFuZCB0aGUgY291bnQgc2F5IHRoZSBzYW1lIHRoaW5nIHR3aWNlLFxuICAgYW5kIHBhZ2luYXRpb24gYXQgdGhlIFRPUCBvZiBhIGxpc3Qgbm9ib2R5IGhhcyByZWFkIHlldCBpcyBub2lzZSDigJQgaXQgaXNcbiAgIHN0aWxsIHRoZXJlIGF0IHRoZSBib3R0b20sIHdoaWNoIGlzIHdoZXJlIGl0IGlzIHVzZWZ1bC4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAucHMtc2l0ZS1zZWFyY2gge1xuICAgIC8qIHRoZSBcIlNob3AgQnkgUHJvZHVjdCBNYXRjaGluZyDigKZcIiBiYW5uZXIg4oaSIG9uZSBxdWlldCBsaW5lICovXG4gICAgLnByb2R1Y3QtbWFpbi10aXRsZS1ncm91cCB7XG4gICAgICAucHJvbXB0LWxpc3Qge1xuICAgICAgICBmb250LXNpemU6IHJlbWMoMTNweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMCAwIHJlbWMoNnB4KTtcbiAgICAgIH1cblxuICAgICAgaDEsIGgyLCBoMywgLmgxLCAuaDIsIC5oMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtYygxM3B4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiB0b29sYmFyOiBjb3VudCArIHNvcnQgb24gb25lIGxpbmUsIFNob3cgRmlsdGVycyBvbiB0aGUgbmV4dCAqL1xuICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lcjpub3QoLnBhZ2luYXRpb24tYm90dG9tKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogNnB4IDEwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW1jKDhweCk7XG5cbiAgICAgIC5wYWdpbmF0aW9uLWNvbnRhaW5lci1pdGVtIHsgcGFkZGluZzogMDsgfVxuXG4gICAgICAuLXNob3dpbmcgcCB7IGZvbnQtc2l6ZTogcmVtYygxMnB4KTsgbWFyZ2luOiAwOyB9XG5cbiAgICAgIC8qIHRoZSB0b3AgcGFnaW5hdGlvbiBzdHJpcCByZXBlYXRzIHRoZSBib3R0b20gb25lICovXG4gICAgICAucGFnaW5hdGlvbixcbiAgICAgIG5hdlthcmlhLWxhYmVsKj1cImFnaW5hdGlvblwiXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgLyogcm93cy1wZXItcGFnZSBpcyBhIGRlc2t0b3AgcmVmaW5lbWVudDsgdGhlIHBob25lIGhhcyB0aGUgc29ydCBzZWxlY3QgKi9cbiAgICAgIC5wcC1jb250IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAuc2hvdy1zaWRlLW5hdiB7IGZsZXg6IDEgMCAxMDAlOyBvcmRlcjogMjsgfVxuICAgICAgLnNob3ctZmlsdGVyICAgeyBmb250LXNpemU6IHJlbWMoMTNweCk7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICB9XG5cbiAgICAvKiAtLS0gNi4gdGhlIGJvdHRvbSBiYXIgd2FzIGJ1dHRlZCBhZ2FpbnN0IHRoZSBsYXN0IGNhcmQgLS0tLS0tLS0tLS0tLS0gKi9cbiAgICAucGFnaW5hdGlvbi1ib3R0b20ge1xuICAgICAgbWFyZ2luLXRvcDogcmVtYygxOHB4KTtcbiAgICAgIHBhZGRpbmctdG9wOiByZW1jKDE0cHgpO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4yNSk7XG4gICAgfVxuICB9XG59XG5cbi8qIC0tLSA0LiBGaWx0ZXJzIHBhbmVsOiB0aGUgY2xvc2UgY29udHJvbCBtdXN0IG5ldmVyIHNjcm9sbCBhd2F5IC0tLS0tLS0tLS0tXG4gICAuZmFjZXRzLWNvbnQgaXMgcG9zaXRpb246Zml4ZWQgd2l0aCBpdHMgb3duIHNjcm9sbCwgYW5kIGl0cyAuY2xvc2Ugd2FzIGp1c3RcbiAgIHRoZSBmaXJzdCBjaGlsZCDigJQgc2Nyb2xsIHRoZSB5ZWFyIGxpc3QgYW5kIHRoZSBvbmx5IHdheSBvdXQgbGVmdCB0aGUgc2NyZWVuLlxuICAgU3RpY2t5IHBpbnMgaXQgdG8gdGhlIHBhbmVsJ3MgdG9wIGVkZ2UgZm9yIHRoZSB3aG9sZSBzY3JvbGwuICovXG4ucHMtc2l0ZS1zZWFyY2ggLmZhY2V0cy1jb250IHtcbiAgPiAuY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDU7XG4gICAgLyogdGhlIHBhbmVsIGJhY2tncm91bmQsIHNvIGxpc3Qgcm93cyBwYXNzIFVOREVSIGl0IHJhdGhlciB0aGFuIHRocm91Z2ggKi9cbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICB9XG59XG5cbi8qIC0tLSA1LiBcIlNlYXJjaCBieTpcIiBmb290ZXIgb24gb25lIGxpbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFwiQUkgQXNzaXN0YW50XCIgcHVzaGVkIHRoZSByb3cgdG8gdHdvIGxpbmVzIGFuZCBkcmFnZ2VkIFwiU2VhcmNoIGJ5OlwiIHdpdGggaXQuXG4gICBUaGUgbGFiZWwgYW5kIHRoZSBsaW5rcyBub3cgc2hhcmUgYSBzaW5nbGUgZmxleCByb3cgdGhhdCBzY3JvbGxzIHNpZGV3YXlzIGlmXG4gICBhIHNpdGUgZXZlciBhZGRzIGEgZmlmdGggZW50cnksIGluc3RlYWQgb2YgcmVmbG93aW5nLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wcy1zaXRlLXNlYXJjaCAuc2VhcmNoX2J5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDhweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC8qIDEycHggKyA4cHggZ2FwcyBtZWFzdXJlcyB+Mjk2cHggb2YgdGhlIDM1OHB4IGF2YWlsYWJsZSwgc28gYWxsIGZvdXJcbiAgICAgICBlbnRyaWVzIGZpdCBvbiBvbmUgbGluZSBhdCAzOTBweDsgb3ZlcmZsb3cteCBpcyB0aGUgc2FmZXR5IG5ldCBmb3IgYVxuICAgICAgIG5hcnJvd2VyIGRldmljZSBvciBhIHNpdGUgdGhhdCBhZGRzIGEgZmlmdGguICovXG4gICAgZm9udC1zaXplOiByZW1jKDEycHgpO1xuXG4gICAgLnNlYXJjaF9ieV9saXN0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgLy8gdGhlIGxpc3QgY2FycmllcyBpdHMgb3duIDE0cHg7IHdpdGhvdXQgdGhpcyB0aGUgbGFiZWwgc2hyaW5rcyBhbmQgdGhlXG4gICAgICAvLyBsaW5rcyBkbyBub3QsIHdoaWNoIGlzIHdoYXQgcHVzaGVkIFwiQnJhbmRcIiBvZmYgdGhlIHJvd1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8vIEVhY2ggaXRlbSBhbHNvIGhhZCBtYXJnaW4tcmlnaHQ6MTBweCBBTkQgcGFkZGluZy1yaWdodDoxMHB4LCBzbyB0aGUgcmVhbFxuICAgIC8vIHNlYW0gd2FzIDI4cHgsIG5vdCB0aGUgOHB4IGdhcC4gWmVybyB0aGVtIGFuZCBsZXQgYGdhcGAgYmUgdGhlIG9uZSB0aGluZ1xuICAgIC8vIHRoYXQgZGVjaWRlcyB0aGUgc3BhY2luZy5cbiAgICAuc2VhcmNoX2J5X2xpc3RfaXRlbSB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUaGVtZSBwYWxldHRlIOKAlCBUT0tFTi1CQUNLRUQgKFJvdW5kIDE0LCBDT0xPUlNfVE9LRU5TX1JFQ09OQ0lMSUFUSU9OLm1kKS5cbi8vXG4vLyBFdmVyeSAkY29sb3JfKiB2YXIgcmVzb2x2ZXMgdG8gYSBUaGVtZSBCdWlsZGVyIGdsb2JhbCBkZXNpZ24gdG9rZW5cbi8vICh2YXIoLS1wcy1jb2xvci0qLCA8YnJhbmQgaGV4IGZhbGxiYWNrPikpLiBSZW5kZXJpbmcgaXMgSURFTlRJQ0FMIHRvIHRoZSBvbGRcbi8vIHN0YXRpYyBwYWxldHRlIHVudGlsIHRoZSBiYWNrZW5kIHRoZW1lIGVkaXRvciBwdWJsaXNoZXMgYSB0b2tlbiB2YWx1ZSDigJQgdGhlblxuLy8gdGhhdCB2YWx1ZSB3aW5zIGFjcm9zcyB0aGUgZW50aXJlIGNvbXBpbGVkIHN0eWxlc2hlZXQgKGdsb2JhbCBzaGVldCBBTkQgZXZlcnlcbi8vIGNvbXBvbmVudCBidW5kbGUsIHNpbmNlIHRoZXkgYWxsIGltcG9ydCB0aGlzIGZpbGUgdmlhIF9jYXRhbG9nL2dsb2JhbHMpLlxuLy9cbi8vIFJVTEVTOlxuLy8gIC0gU2FzcyBjb2xvciBmdW5jdGlvbnMgKGxpZ2h0ZW4vZGFya2VuL3JnYmEvbWl4KSBDQU5OT1Qgb3BlcmF0ZSBvbiB2YXIoKS5cbi8vICAgIFVzZSB0aGUgKl9oZXggbGl0ZXJhbHMgZm9yIHRob3NlIOKAlCBCb290c3RyYXAncyAkdGhlbWUtY29sb3JzIG1hdGggZG9lc1xuLy8gICAgKG92ZXJyaWRlcy9fdmFyaWFibGVzLnNjc3MpLCBhbmQgc28gZG9lcyB0aGUgc2l0ZS1zZWFyY2ggbW9kYWwgZ3JhZGllbnQuXG4vLyAgLSBEZXJpdmVkIHNoYWRlcyBhcmUgTk9UIGNvbXB1dGVkIGZyb20gdGhlIGJhc2U6IGVhY2ggaXMgaXRzIG93biB0b2tlbiB3aXRoXG4vLyAgICBpdHMgb3duIGZhbGxiYWNrICh0aGUgbGVnYWN5IHZhbHVlcyB3ZXJlIG5ldmVyIGFsZ29yaXRobWljIHRpbnRzKS5cbi8vICAtIFRoZSBKSVMtZm9zc2lsIHZhcnMgKCRjb2xvcl9qaXMqKSBhbmQgdGhlICRjb2xvcl9wcmltYXJ5X2xpZ2h0ZXN0IGFsaWFzXG4vLyAgICB3ZXJlIHJldGlyZWQgaGVyZSAoemVybyBjYWxsZXJzIGFmdGVyIHRoZSBSb3VuZCAxMyBzd2VlcCkuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyDilIDilIAgUmF3IGJyYW5kIGxpdGVyYWxzIOKAlCBPTkxZIGZvciBTYXNzIGNvbG9yIG1hdGggKEJvb3RzdHJhcCB0aGVtZSBjb2xvcnMsXG4vLyAgICBsaWdodGVuKCkvcmdiYSgpIGNhbGwgc2l0ZXMpLiBFdmVyeXRoaW5nIGVsc2UgdXNlcyB0aGUgdG9rZW4tYmFja2VkIHZhcnMuXG4kY29sb3JfcHJpbWFyeV9oZXg6ICAgIzAwMTg3NztcbiRjb2xvcl9zZWNvbmRhcnlfaGV4OiAjMDkwOTE3O1xuXG4vLyDilIDilIAgUHJpbWFyeSAoYnJhbmQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuJGNvbG9yX3ByaW1hcnk6ICAgICAgICAgdmFyKC0tcHMtY29sb3ItcHJpbWFyeSwgI3skY29sb3JfcHJpbWFyeV9oZXh9KTtcbiRjb2xvcl9wcmltYXJ5X2xpZ2h0OiAgIHZhcigtLXBzLWNvbG9yLXByaW1hcnktbGlnaHQsICNmOTlkMWEpOyAgIC8vIG9yYW5nZSBhY2NlbnQgKG5vdCBhIHRpbnQpXG4kY29sb3JfcHJpbWFyeV9kYXJrOiAgICB2YXIoLS1wcy1jb2xvci1wcmltYXJ5LWRhcmssICM0Yjg0YzApOyAgICAvLyBsaWdodGVyIGJsdWUgKGxlZ2FjeSBuYW1pbmcpXG4kY29sb3JfcHJpbWFyeV9kYXJrZXI6ICB2YXIoLS1wcy1jb2xvci1wcmltYXJ5LWhvdmVyLCAjeyRjb2xvcl9wcmltYXJ5X2hleH0pOyAvLyBsZWdhY3kgc2VsZi1hbGlhcyDihpIgaG92ZXIgdG9rZW5cblxuLy8g4pSA4pSAIFNlY29uZGFyeSAoZGFyayBiYW5kcyAvIGJhY2tncm91bmRzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiRjb2xvcl9zZWNvbmRhcnk6ICAgICAgICAgdmFyKC0tcHMtY29sb3Itc2Vjb25kYXJ5LCAjeyRjb2xvcl9zZWNvbmRhcnlfaGV4fSk7XG4kY29sb3Jfc2Vjb25kYXJ5X2RhcmtlcjogIHZhcigtLXBzLWNvbG9yLXNlY29uZGFyeS1kYXJrZXIsICMwMDAwMDApO1xuJGNvbG9yX3NlY29uZGFyeV9kYXJrOiAgICB2YXIoLS1wcy1jb2xvci1zZWNvbmRhcnktZGFyaywgIzE0MTYxOCk7XG4kY29sb3Jfc2Vjb25kYXJ5X2xpZ2h0OiAgIHZhcigtLXBzLWNvbG9yLXRleHQtMiwgIzU3NTc1Nyk7XG4kY29sb3Jfc2Vjb25kYXJ5X2xpZ2h0ZXI6IHZhcigtLXBzLWNvbG9yLXRleHQtMywgIzdjN2M3Yyk7XG5cbi8vIOKUgOKUgCBOZXV0cmFscyAvIHN1cmZhY2VzIC8gYm9yZGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiRjb2xvcl9uZXV0cmFsOiAgIHZhcigtLXBzLWNvbG9yLW5ldXRyYWwsICNmZmZmZmYpO1xuJGNvbG9yX25ldXRyYWxfMTogdmFyKC0tcHMtY29sb3Itc3VyZmFjZS1hbHQsICNmMGYwZjApO1xuJGNvbG9yX25ldXRyYWxfMjogdmFyKC0tcHMtY29sb3ItYm9yZGVyLTIsICNhN2E3YTcpO1xuJGNvbG9yX25ldXRyYWxfMzogdmFyKC0tcHMtY29sb3ItYm9yZGVyLCAjZGJkYmRiKTtcbiRjb2xvci1uZXV0cmFsXzQ6IHZhcigtLXBzLWNvbG9yLXN1cmZhY2UtYWx0LCAjZWZlZmVmKTtcblxuLy8g4pSA4pSAIFNlbWFudGljIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuJGNvbG9yX3JlZDogICAgICAgIHZhcigtLXBzLWNvbG9yLWRhbmdlciwgI2ZmMWUwMCk7XG4kY29sb3JfdGV4dF9saWdodDogdmFyKC0tcHMtY29sb3ItdGV4dC1pbnZlcnNlLCAjZmZmZmZmKTtcblxuLy8gUHJlY29tcHV0ZWQgdHJhbnNsdWNlbnQgb3ZlcmxheSDigJQgYSBmaXJzdC1jbGFzcyB0b2tlbiAoU2FzcyBjYW4ndCByZ2JhKCkgYVxuLy8gdmFyKCk7IHRoZSBsZWdhY3kgdmFsdWUgd2FzIHJnYmEoJGNvbG9yX3NlY29uZGFyeV9kYXJrZXIsIC44KSA9IHJnYmEgYmxhY2spLlxuJG92ZXJsYXktZGFyazogdmFyKC0tcHMtY29sb3Itb3ZlcmxheS1kYXJrLCByZ2JhKDAsIDAsIDAsIDAuOCkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/