@kepler.gl/components 3.1.10 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/modal-container.js
CHANGED
|
@@ -95,8 +95,8 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
95
95
|
rows: []
|
|
96
96
|
},
|
|
97
97
|
metadata: _objectSpread(_objectSpread({}, processedMetadata), tileset.metadata),
|
|
98
|
-
//
|
|
99
|
-
supportedFilterTypes: [_constants.ALL_FIELD_TYPES.real, _constants.ALL_FIELD_TYPES.integer],
|
|
98
|
+
// Vector tile layer supports GPU filtering for numeric and boolean fields
|
|
99
|
+
supportedFilterTypes: [_constants.ALL_FIELD_TYPES.real, _constants.ALL_FIELD_TYPES.integer, _constants.ALL_FIELD_TYPES["boolean"]],
|
|
100
100
|
disableDataOperation: true
|
|
101
101
|
}, {
|
|
102
102
|
autoCreateLayers: true,
|
|
@@ -432,4 +432,4 @@ function ModalContainerFactory(DeleteDatasetModal, OverWriteMapModal, DataTableM
|
|
|
432
432
|
}(_react.Component);
|
|
433
433
|
return ModalContainer;
|
|
434
434
|
}
|
|
435
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9nZXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RvY3VtZW50IiwiX2NvbnN0YW50cyIsIl9yZWR1Y2VycyIsIl91dGlscyIsIl9tb2RhbERpYWxvZyIsIl9kZWxldGVEYXRhTW9kYWwiLCJfb3ZlcndyaXRlTWFwTW9kYWwiLCJfZGF0YVRhYmxlTW9kYWwiLCJfbG9hZERhdGFNb2RhbCIsIl9leHBvcnRJbWFnZU1vZGFsIiwiX2V4cG9ydERhdGFNb2RhbCIsIl9leHBvcnRNYXBNb2RhbCIsIl9hZGRNYXBTdHlsZU1vZGFsIiwiX3NhdmVNYXBNb2RhbCIsIl9zaGFyZU1hcE1vZGFsIiwiX3N0eWxlcyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIkRhdGFUYWJsZU1vZGFsU3R5bGUiLCJjc3MiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIm1lZGlhIiwicG9ydGFibGUiLCJwYWxtIiwic21hbGxNb2RhbENzcyIsIkxvYWREYXRhTW9kYWxTdHlsZSIsIkRlZmF1bHRTdHlsZSIsIk1vZGFsQ29udGFpbmVyRmFjdG9yeSIsImRlcHMiLCJEZWxldGVEYXRhc2V0TW9kYWxGYWN0b3J5IiwiT3ZlcldyaXRlTWFwTW9kYWxGYWN0b3J5IiwiRGF0YVRhYmxlTW9kYWxGYWN0b3J5IiwiTG9hZERhdGFNb2RhbEZhY3RvcnkiLCJFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeSIsIkV4cG9ydERhdGFNb2RhbEZhY3RvcnkiLCJFeHBvcnRNYXBNb2RhbEZhY3RvcnkiLCJBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeSIsIk1vZGFsRGlhbG9nRmFjdG9yeSIsIlNhdmVNYXBNb2RhbEZhY3RvcnkiLCJTaGFyZU1hcE1vZGFsRmFjdG9yeSIsIkRlbGV0ZURhdGFzZXRNb2RhbCIsIk92ZXJXcml0ZU1hcE1vZGFsIiwiRGF0YVRhYmxlTW9kYWwiLCJMb2FkRGF0YU1vZGFsIiwiRXhwb3J0SW1hZ2VNb2RhbCIsIkV4cG9ydERhdGFNb2RhbCIsIkV4cG9ydE1hcE1vZGFsIiwiQWRkTWFwU3R5bGVNb2RhbCIsIk1vZGFsRGlhbG9nIiwiU2F2ZU1hcE1vZGFsIiwiU2hhcmVNYXBNb2RhbCIsIk1vZGFsQ29udGFpbmVyIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiX29uS2V5VXAiLCJldmVudCIsImtleUNvZGUiLCJLZXlFdmVudCIsIkRPTV9WS19FU0NBUEUiLCJfY2xvc2VNb2RhbCIsInByb3BzIiwidWlTdGF0ZUFjdGlvbnMiLCJ0b2dnbGVNb2RhbCIsImtleSIsInZpc1N0YXRlQWN0aW9ucyIsInJlbW92ZURhdGFzZXQiLCJtYXBTdHlsZUFjdGlvbnMiLCJhZGRDdXN0b21NYXBTdHlsZSIsImZpbGVMaXN0IiwibG9hZEZpbGVzIiwidGlsZXNldCIsInByb2Nlc3NlZE1ldGFkYXRhIiwidXBkYXRlVmlzRGF0YSIsImluZm8iLCJsYWJlbCIsIm5hbWUiLCJ0eXBlIiwiZm9ybWF0IiwiZGF0YSIsImZpZWxkcyIsInJvd3MiLCJtZXRhZGF0YSIsInN1cHBvcnRlZEZpbHRlclR5cGVzIiwiQUxMX0ZJRUxEX1RZUEVTIiwicmVhbCIsImludGVnZXIiLCJkaXNhYmxlRGF0YU9wZXJhdGlvbiIsImF1dG9DcmVhdGVMYXllcnMiLCJjZW50ZXJNYXAiLCJ1aVN0YXRlIiwiZXhwb3J0SW1hZ2UiLCJwcm9jZXNzaW5nIiwiYXBwTmFtZSIsImNsZWFudXBFeHBvcnRJbWFnZSIsImV4cG9ydERhdGEiLCJleHBvcnRNYXAiLCJFWFBPUlRfTUFQX0ZPUk1BVFMiLCJIVE1MIiwiZXhwb3J0SHRtbCIsImV4cG9ydEpzb24iLCJfcmVmIiwicHJvdmlkZXIiLCJpc1B1YmxpYyIsIm92ZXJ3cml0ZSIsImNsb3NlTW9kYWwiLCJ0b1NhdmUiLCJwcm92aWRlckFjdGlvbnMiLCJleHBvcnRGaWxlVG9DbG91ZCIsIm1hcERhdGEiLCJvcHRpb25zIiwibWFwSWRUb092ZXJ3cml0ZSIsInByb3ZpZGVyU3RhdGUiLCJzYXZlZE1hcElkIiwib25TdWNjZXNzIiwib25FeHBvcnRUb0Nsb3VkU3VjY2VzcyIsIm9uRXJyb3IiLCJvbkV4cG9ydFRvQ2xvdWRFcnJvciIsInVuZGVmaW5lZCIsIl9leHBvcnRGaWxlVG9DbG91ZCIsIl9vblNhdmVNYXAiLCJyZXNldFByb3ZpZGVyU3RhdHVzIiwicGF5bG9hZCIsImxvYWRDbG91ZE1hcCIsIm9uTG9hZENsb3VkTWFwU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwRXJyb3IiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsInZhbHVlIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMiLCJjb250YWluZXJXIiwiY29udGFpbmVySCIsIm1hcFN0eWxlIiwibWFwU3RhdGUiLCJ2aXNTdGF0ZSIsInJvb3ROb2RlIiwiY3VycmVudE1vZGFsIiwiZGF0YXNldEtleVRvUmVtb3ZlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJlZGl0aW5nRGF0YXNldCIsInRlbXBsYXRlIiwibW9kYWxQcm9wcyIsImlkIiwiY3JlYXRlRWxlbWVudCIsIkRBVEFfVEFCTEVfSUQiLCJ3aWR0aCIsImRhdGFJZCIsInNob3dEYXRhc2V0VGFibGUiLCJzb3J0VGFibGVDb2x1bW4iLCJwaW5UYWJsZUNvbHVtbiIsImNvcHlUYWJsZUNvbHVtbiIsInNldENvbHVtbkRpc3BsYXlGb3JtYXQiLCJjc3NTdHlsZSIsIkRFTEVURV9EQVRBX0lEIiwiZGF0YXNldCIsInRpdGxlIiwiZm9vdGVyIiwib25Db25maXJtIiwiX2RlbGV0ZURhdGFzZXQiLCJvbkNhbmNlbCIsImNvbmZpcm1CdXR0b24iLCJuZWdhdGl2ZSIsImxhcmdlIiwiY2hpbGRyZW4iLCJBRERfREFUQV9JRCIsIl9leHRlbmRzMiIsIm9uQ2xvc2UiLCJvbkZpbGVVcGxvYWQiLCJfb25GaWxlVXBsb2FkIiwib25UaWxlc2V0QWRkZWQiLCJfb25UaWxlc2V0QWRkZWQiLCJvbkxvYWRDbG91ZE1hcCIsIl9vbkxvYWRDbG91ZE1hcCIsImZpbGVMb2FkaW5nIiwiZmlsZUxvYWRpbmdQcm9ncmVzcyIsImZpbGVGb3JtYXROYW1lcyIsImdldEZpbGVGb3JtYXROYW1lcyIsImZpbGVFeHRlbnNpb25zIiwiZ2V0RmlsZUV4dGVuc2lvbnMiLCJFWFBPUlRfSU1BR0VfSUQiLCJtYXBXIiwibWFwSCIsIm9uVXBkYXRlSW1hZ2VTZXR0aW5nIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nIiwiX29uRXhwb3J0SW1hZ2UiLCJkaXNhYmxlZCIsIkVYUE9SVF9EQVRBX0lEIiwic3VwcG9ydGVkRGF0YVR5cGVzIiwiRVhQT1JUX0RBVEFfVFlQRV9PUFRJT05TIiwiYXBwbHlDUFVGaWx0ZXIiLCJvbkNoYW5nZUV4cG9ydERhdGFUeXBlIiwic2V0RXhwb3J0RGF0YVR5cGUiLCJvbkNoYW5nZUV4cG9ydFNlbGVjdGVkRGF0YXNldCIsInNldEV4cG9ydFNlbGVjdGVkRGF0YXNldCIsIm9uQ2hhbmdlRXhwb3J0RmlsdGVyZWQiLCJzZXRFeHBvcnRGaWx0ZXJlZCIsIl9vbkV4cG9ydERhdGEiLCJFWFBPUlRfTUFQX0lEIiwia2VwbGVyR2xDb25maWciLCJzY2hlbWEiLCJnZXRDb25maWdUb1NhdmUiLCJjb25maWciLCJvbkNoYW5nZUV4cG9ydE1hcEZvcm1hdCIsInNldEV4cG9ydE1hcEZvcm1hdCIsIm9uRWRpdFVzZXJNYXBib3hBY2Nlc3NUb2tlbiIsInNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbiIsIm9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGUiLCJzZXRFeHBvcnRIVE1MTWFwTW9kZSIsIl9vbkV4cG9ydE1hcCIsIkFERF9NQVBfU1RZTEVfSUQiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsImlucHV0U3R5bGUiLCJpbnB1dE1hcFN0eWxlIiwibG9hZEN1c3RvbU1hcFN0eWxlIiwiX29uQWRkQ3VzdG9tTWFwU3R5bGUiLCJlcnJvciIsInVybCIsIlNBVkVfTUFQX0lEIiwibWFwSW5mbyIsIm9uU2V0TWFwSW5mbyIsInNldE1hcEluZm8iLCJPVkVSV1JJVEVfTUFQX0lEIiwiX29uT3ZlcndyaXRlTWFwIiwiU0hBUkVfTUFQX0lEIiwib25FeHBvcnQiLCJfb25TaGFyZU1hcFVybCIsIl9vbkNsb3NlU2F2ZU1hcCIsInBhcmVudFNlbGVjdG9yIiwiaXNPcGVuIiwiQ29tcG9uZW50Il0sInNvdXJjZXMiOlsiLi4vc3JjL21vZGFsLWNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nzc30gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBkb2N1bWVudCBmcm9tICdnbG9iYWwvZG9jdW1lbnQnO1xuXG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgZXhwb3J0RGF0YSxcbiAgZ2V0RmlsZUZvcm1hdE5hbWVzLFxuICBnZXRGaWxlRXh0ZW5zaW9ucyxcbiAgTWFwU3R5bGUsXG4gIFByb3ZpZGVyU3RhdGVcbn0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge2V4cG9ydEh0bWwsIGV4cG9ydE1hcCwgZXhwb3J0SnNvbiwgZXhwb3J0SW1hZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQgTW9kYWxEaWFsb2dGYWN0b3J5IGZyb20gJy4vbW9kYWxzL21vZGFsLWRpYWxvZyc7XG5cbi8vIG1vZGFsc1xuaW1wb3J0IERlbGV0ZURhdGFzZXRNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZGVsZXRlLWRhdGEtbW9kYWwnO1xuaW1wb3J0IE92ZXJXcml0ZU1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9vdmVyd3JpdGUtbWFwLW1vZGFsJztcbmltcG9ydCBEYXRhVGFibGVNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZGF0YS10YWJsZS1tb2RhbCc7XG5pbXBvcnQgTG9hZERhdGFNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvbG9hZC1kYXRhLW1vZGFsJztcbmltcG9ydCBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9leHBvcnQtaW1hZ2UtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydERhdGFNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZXhwb3J0LWRhdGEtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydE1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9leHBvcnQtbWFwLW1vZGFsL2V4cG9ydC1tYXAtbW9kYWwnO1xuaW1wb3J0IEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL2FkZC1tYXAtc3R5bGUtbW9kYWwnO1xuaW1wb3J0IFNhdmVNYXBNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvc2F2ZS1tYXAtbW9kYWwnO1xuaW1wb3J0IFNoYXJlTWFwTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL3NoYXJlLW1hcC1tb2RhbCc7XG5cbi8vIEJyZWFrcG9pbnRzXG5pbXBvcnQge21lZGlhfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5cbi8vIFRlbXBsYXRlXG5pbXBvcnQge1xuICBFWFBPUlRfREFUQV9UWVBFX09QVElPTlMsXG4gIEVYUE9SVF9NQVBfRk9STUFUUyxcbiAgS2V5RXZlbnQsXG4gIEFERF9EQVRBX0lELFxuICBEQVRBX1RBQkxFX0lELFxuICBERUxFVEVfREFUQV9JRCxcbiAgRVhQT1JUX0RBVEFfSUQsXG4gIEVYUE9SVF9JTUFHRV9JRCxcbiAgRVhQT1JUX01BUF9JRCxcbiAgQUREX01BUF9TVFlMRV9JRCxcbiAgU0FWRV9NQVBfSUQsXG4gIFNIQVJFX01BUF9JRCxcbiAgT1ZFUldSSVRFX01BUF9JRFxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7TWFwU3RhdGUsIFVpU3RhdGUsIE9uU3VjY2Vzc0NhbGxCYWNrLCBPbkVycm9yQ2FsbEJhY2t9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBWaXNTdGF0ZUFjdGlvbnMsXG4gIFVJU3RhdGVBY3Rpb25zLFxuICBNYXBTdHlsZUFjdGlvbnMsXG4gIFByb3ZpZGVyQWN0aW9uc1xufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNb2RhbERpYWxvZ1Byb3BzfSBmcm9tICcuL2NvbW1vbi9tb2RhbCc7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICdAa2VwbGVyLmdsL2Nsb3VkLXByb3ZpZGVycyc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuXG5jb25zdCBEYXRhVGFibGVNb2RhbFN0eWxlID0gY3NzYFxuICB0b3A6IDcwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiA5MHZ3O1xuICBtYXgtd2lkdGg6IDkwdnc7XG5cbiAgJHttZWRpYS5wb3J0YWJsZWBcbiAgICBwYWRkaW5nOiAwO1xuICBgfSAke21lZGlhLnBhbG1gXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgYH07XG5gO1xuY29uc3Qgc21hbGxNb2RhbENzcyA9IGNzc2BcbiAgd2lkdGg6IDQwJTtcbiAgcGFkZGluZzogNDBweCA0MHB4IDMycHggNDBweDtcbmA7XG5cbmNvbnN0IExvYWREYXRhTW9kYWxTdHlsZSA9IGNzc2BcbiAgdG9wOiA2MHB4O1xuYDtcblxuY29uc3QgRGVmYXVsdFN0eWxlID0gY3NzYFxuICBtYXgtd2lkdGg6IDk2MHB4O1xuYDtcblxuZXhwb3J0IHR5cGUgTW9kYWxDb250YWluZXJQcm9wcyA9IHtcbiAgYXBwTmFtZTogc3RyaW5nO1xuICByb290Tm9kZTogUmVhY3QuUmVhY3RJbnN0YW5jZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvbnRhaW5lclc6IG51bWJlcjtcbiAgY29udGFpbmVySDogbnVtYmVyO1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwU3R5bGU6IE1hcFN0eWxlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICB2aXNTdGF0ZTogVmlzU3RhdGU7XG4gIHByb3ZpZGVyU3RhdGU6IFByb3ZpZGVyU3RhdGU7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgbWFwU3R5bGVBY3Rpb25zOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zO1xuICBwcm92aWRlckFjdGlvbnM6IHR5cGVvZiBQcm92aWRlckFjdGlvbnM7XG4gIG9uU2F2ZVRvU3RvcmFnZT86ICgpID0+IHZvaWQ7XG4gIGNsb3VkUHJvdmlkZXJzOiBQcm92aWRlcltdO1xuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbiAgb25FeHBvcnRUb0Nsb3VkU3VjY2Vzcz86IE9uU3VjY2Vzc0NhbGxCYWNrO1xuICBvbkV4cG9ydFRvQ2xvdWRFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbn07XG5cbk1vZGFsQ29udGFpbmVyRmFjdG9yeS5kZXBzID0gW1xuICBEZWxldGVEYXRhc2V0TW9kYWxGYWN0b3J5LFxuICBPdmVyV3JpdGVNYXBNb2RhbEZhY3RvcnksXG4gIERhdGFUYWJsZU1vZGFsRmFjdG9yeSxcbiAgTG9hZERhdGFNb2RhbEZhY3RvcnksXG4gIEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5LFxuICBFeHBvcnREYXRhTW9kYWxGYWN0b3J5LFxuICBFeHBvcnRNYXBNb2RhbEZhY3RvcnksXG4gIEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5LFxuICBNb2RhbERpYWxvZ0ZhY3RvcnksXG4gIFNhdmVNYXBNb2RhbEZhY3RvcnksXG4gIFNoYXJlTWFwTW9kYWxGYWN0b3J5XG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNb2RhbENvbnRhaW5lckZhY3RvcnkoXG4gIERlbGV0ZURhdGFzZXRNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeT4sXG4gIE92ZXJXcml0ZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBPdmVyV3JpdGVNYXBNb2RhbEZhY3Rvcnk+LFxuICBEYXRhVGFibGVNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YVRhYmxlTW9kYWxGYWN0b3J5PixcbiAgTG9hZERhdGFNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgTG9hZERhdGFNb2RhbEZhY3Rvcnk+LFxuICBFeHBvcnRJbWFnZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydERhdGFNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydE1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBFeHBvcnRNYXBNb2RhbEZhY3Rvcnk+LFxuICBBZGRNYXBTdHlsZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeT4sXG4gIE1vZGFsRGlhbG9nOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbERpYWxvZ0ZhY3Rvcnk+LFxuICBTYXZlTWFwTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIFNhdmVNYXBNb2RhbEZhY3Rvcnk+LFxuICBTaGFyZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBTaGFyZU1hcE1vZGFsRmFjdG9yeT5cbik6IFJlYWN0LkVsZW1lbnRUeXBlPE1vZGFsQ29udGFpbmVyUHJvcHM+IHtcbiAgLyoqIEBhdWdtZW50cyBSZWFjdC5Db21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4gKi9cbiAgY2xhc3MgTW9kYWxDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4ge1xuICAgIC8vIFRPRE8gLSByZW1vdmUgd2hlbiBwcm9wIHR5cGVzIGFyZSBmdWxseSBleHBvcnRlZFxuICAgIGNvbXBvbmVudERpZE1vdW50ID0gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9O1xuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9XG5cbiAgICBfb25LZXlVcCA9IGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgICAgaWYgKGtleUNvZGUgPT09IEtleUV2ZW50LkRPTV9WS19FU0NBUEUpIHtcbiAgICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfY2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICAgIHRoaXMucHJvcHMudWlTdGF0ZUFjdGlvbnMudG9nZ2xlTW9kYWwobnVsbCk7XG4gICAgfTtcblxuICAgIF9kZWxldGVEYXRhc2V0ID0ga2V5ID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLnJlbW92ZURhdGFzZXQoa2V5KTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uQWRkQ3VzdG9tTWFwU3R5bGUgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5hZGRDdXN0b21NYXBTdHlsZSgpO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25GaWxlVXBsb2FkID0gZmlsZUxpc3QgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMubG9hZEZpbGVzKGZpbGVMaXN0KTtcbiAgICB9O1xuXG4gICAgX29uVGlsZXNldEFkZGVkID0gKFxuICAgICAgdGlsZXNldDoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55Pn0sXG4gICAgICBwcm9jZXNzZWRNZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICApID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVZpc0RhdGEoXG4gICAgICAgIHtcbiAgICAgICAgICBpbmZvOiB7bGFiZWw6IHRpbGVzZXQubmFtZSwgdHlwZTogdGlsZXNldC50eXBlLCBmb3JtYXQ6ICdyb3dzJ30sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZmllbGRzOiBwcm9jZXNzZWRNZXRhZGF0YT8uZmllbGRzIHx8IFtdLFxuICAgICAgICAgICAgcm93czogW11cbiAgICAgICAgICB9LFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAuLi5wcm9jZXNzZWRNZXRhZGF0YSxcbiAgICAgICAgICAgIC4uLnRpbGVzZXQubWV0YWRhdGFcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIHZlY3RvciB0aWxlIGxheWVyIG9ubHkgc3VwcG9ydHMgZ3B1IGZpbHRlcmluZyBmb3Igbm93XG4gICAgICAgICAgc3VwcG9ydGVkRmlsdGVyVHlwZXM6IFtBTExfRklFTERfVFlQRVMucmVhbCwgQUxMX0ZJRUxEX1RZUEVTLmludGVnZXJdLFxuICAgICAgICAgIGRpc2FibGVEYXRhT3BlcmF0aW9uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBhdXRvQ3JlYXRlTGF5ZXJzOiB0cnVlLFxuICAgICAgICAgIGNlbnRlck1hcDogdHJ1ZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25FeHBvcnRJbWFnZSA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLnByb2Nlc3NpbmcpIHtcbiAgICAgICAgZXhwb3J0SW1hZ2UodGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLCBgJHt0aGlzLnByb3BzLmFwcE5hbWV9LnBuZ2ApO1xuICAgICAgICB0aGlzLnByb3BzLnVpU3RhdGVBY3Rpb25zLmNsZWFudXBFeHBvcnRJbWFnZSgpO1xuICAgICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9vbkV4cG9ydERhdGEgPSAoKSA9PiB7XG4gICAgICBleHBvcnREYXRhKHRoaXMucHJvcHMsIHRoaXMucHJvcHMudWlTdGF0ZS5leHBvcnREYXRhKTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uRXhwb3J0TWFwID0gKCkgPT4ge1xuICAgICAgY29uc3Qge3VpU3RhdGV9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtmb3JtYXR9ID0gdWlTdGF0ZS5leHBvcnRNYXA7XG4gICAgICAoZm9ybWF0ID09PSBFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTCA/IGV4cG9ydEh0bWwgOiBleHBvcnRKc29uKShcbiAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICAgdGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydE1hcFtmb3JtYXRdIHx8IHt9XG4gICAgICApO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfZXhwb3J0RmlsZVRvQ2xvdWQgPSAoe3Byb3ZpZGVyLCBpc1B1YmxpYywgb3ZlcndyaXRlLCBjbG9zZU1vZGFsfSkgPT4ge1xuICAgICAgY29uc3QgdG9TYXZlID0gZXhwb3J0TWFwKHRoaXMucHJvcHMpO1xuXG4gICAgICB0aGlzLnByb3BzLnByb3ZpZGVyQWN0aW9ucy5leHBvcnRGaWxlVG9DbG91ZCh7XG4gICAgICAgIG1hcERhdGE6IHRvU2F2ZSxcbiAgICAgICAgcHJvdmlkZXIsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBpc1B1YmxpYyxcbiAgICAgICAgICBvdmVyd3JpdGUsXG4gICAgICAgICAgbWFwSWRUb092ZXJ3cml0ZTogdGhpcy5wcm9wcy5wcm92aWRlclN0YXRlLnNhdmVkTWFwSWRcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2VNb2RhbCxcbiAgICAgICAgb25TdWNjZXNzOiB0aGlzLnByb3BzLm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MsXG4gICAgICAgIG9uRXJyb3I6IHRoaXMucHJvcHMub25FeHBvcnRUb0Nsb3VkRXJyb3JcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfb25TYXZlTWFwID0gKHByb3ZpZGVyLCBvdmVyd3JpdGUgPSBmYWxzZSkgPT4ge1xuICAgICAgdGhpcy5fZXhwb3J0RmlsZVRvQ2xvdWQoe1xuICAgICAgICBwcm92aWRlcixcbiAgICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgICBvdmVyd3JpdGUsXG4gICAgICAgIGNsb3NlTW9kYWw6IHRydWVcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfb25PdmVyd3JpdGVNYXAgPSBwcm92aWRlciA9PiB7XG4gICAgICB0aGlzLl9vblNhdmVNYXAocHJvdmlkZXIsIHRydWUpO1xuICAgIH07XG5cbiAgICBfb25TaGFyZU1hcFVybCA9IHByb3ZpZGVyID0+IHtcbiAgICAgIHRoaXMuX2V4cG9ydEZpbGVUb0Nsb3VkKHtwcm92aWRlciwgaXNQdWJsaWM6IHRydWUsIG92ZXJ3cml0ZTogZmFsc2UsIGNsb3NlTW9kYWw6IGZhbHNlfSk7XG4gICAgfTtcblxuICAgIF9vbkNsb3NlU2F2ZU1hcCA9ICgpID0+IHtcbiAgICAgIHRoaXMucHJvcHMucHJvdmlkZXJBY3Rpb25zLnJlc2V0UHJvdmlkZXJTdGF0dXMoKTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uTG9hZENsb3VkTWFwID0gcGF5bG9hZCA9PiB7XG4gICAgICB0aGlzLnByb3BzLnByb3ZpZGVyQWN0aW9ucy5sb2FkQ2xvdWRNYXAoe1xuICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICBvblN1Y2Nlc3M6IHRoaXMucHJvcHMub25Mb2FkQ2xvdWRNYXBTdWNjZXNzLFxuICAgICAgICBvbkVycm9yOiB0aGlzLnByb3BzLm9uTG9hZENsb3VkTWFwRXJyb3JcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBjb250YWluZXJXLFxuICAgICAgICBjb250YWluZXJILFxuICAgICAgICBtYXBTdHlsZSxcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIHVpU3RhdGUsXG4gICAgICAgIHZpc1N0YXRlLFxuICAgICAgICByb290Tm9kZSxcbiAgICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgICAgcHJvdmlkZXJTdGF0ZVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7Y3VycmVudE1vZGFsLCBkYXRhc2V0S2V5VG9SZW1vdmV9ID0gdWlTdGF0ZTtcbiAgICAgIGNvbnN0IHtkYXRhc2V0cywgbGF5ZXJzLCBlZGl0aW5nRGF0YXNldH0gPSB2aXNTdGF0ZTtcblxuICAgICAgbGV0IHRlbXBsYXRlOiBKU1guRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgICAgbGV0IG1vZGFsUHJvcHM6IFBhcnRpYWw8TW9kYWxEaWFsb2dQcm9wcz4gPSB7fTtcblxuICAgICAgLy8gVE9ETyAtIGN1cnJlbnRNb2RhbCBpcyBhIHN0cmluZ1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKGN1cnJlbnRNb2RhbCAmJiBjdXJyZW50TW9kYWwuaWQgJiYgY3VycmVudE1vZGFsLnRlbXBsYXRlKSB7XG4gICAgICAgIC8vIGlmIGN1cnJlbnRNZG9hbCB0ZW1wbGF0ZSBpcyBhbHJlYWR5IHByb3ZpZGVkXG4gICAgICAgIC8vIFRPRE86IG5lZWQgdG8gY2hlY2sgd2hldGhlciB0ZW1wbGF0ZSBpcyB2YWxpZFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRlbXBsYXRlID0gPGN1cnJlbnRNb2RhbC50ZW1wbGF0ZSAvPjtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBtb2RhbFByb3BzID0gY3VycmVudE1vZGFsLm1vZGFsUHJvcHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGN1cnJlbnRNb2RhbCkge1xuICAgICAgICAgIGNhc2UgREFUQV9UQUJMRV9JRDoge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBjb250YWluZXJXICogMC45O1xuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxEYXRhVGFibGVNb2RhbFxuICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICBkYXRhSWQ9e2VkaXRpbmdEYXRhc2V0fVxuICAgICAgICAgICAgICAgIHNob3dEYXRhc2V0VGFibGU9e3Zpc1N0YXRlQWN0aW9ucy5zaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgICAgICAgIHNvcnRUYWJsZUNvbHVtbj17dmlzU3RhdGVBY3Rpb25zLnNvcnRUYWJsZUNvbHVtbn1cbiAgICAgICAgICAgICAgICBwaW5UYWJsZUNvbHVtbj17dmlzU3RhdGVBY3Rpb25zLnBpblRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIGNvcHlUYWJsZUNvbHVtbj17dmlzU3RhdGVBY3Rpb25zLmNvcHlUYWJsZUNvbHVtbn1cbiAgICAgICAgICAgICAgICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0PXt2aXNTdGF0ZUFjdGlvbnMuc2V0Q29sdW1uRGlzcGxheUZvcm1hdH1cbiAgICAgICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgdWlTdGF0ZT17dWlTdGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IHdlIG5lZWQgdG8gbWFrZSB0aGlzIHdpZHRoIGNvbnNpc3RlbnQgd2l0aCB0aGUgY3NzIHJ1bGUgZGVmaW5lZCBtb2RhbC5qczozMiBtYXgtd2lkdGg6IDcwdndcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLy8gVE9ETyBmaXggdGhpcyBhZnRlciBhZGQgdHlwZXMgdG8gVGhlbWVcbiAgICAgICAgICAgIG1vZGFsUHJvcHMuY3NzU3R5bGUgPSBjc3NgXG4gICAgICAgICAgICAgICR7RGF0YVRhYmxlTW9kYWxTdHlsZX07XG4gICAgICAgICAgICAgICR7bWVkaWEucGFsbWBcbiAgICAgICAgICAgICAgICB3aWR0aDogJHt3aWR0aH1weDtcbiAgICAgICAgICAgICAgYH07XG4gICAgICAgICAgICBgO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgREVMRVRFX0RBVEFfSUQ6IHtcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlIG9wdGlvbnNcbiAgICAgICAgICAgIGlmIChkYXRhc2V0S2V5VG9SZW1vdmUgJiYgZGF0YXNldHMgJiYgZGF0YXNldHNbZGF0YXNldEtleVRvUmVtb3ZlXSkge1xuICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgICA8RGVsZXRlRGF0YXNldE1vZGFsIGRhdGFzZXQ9e2RhdGFzZXRzW2RhdGFzZXRLZXlUb1JlbW92ZV19IGxheWVycz17bGF5ZXJzfSAvPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZGVsZXRlRGF0YXNldCcsXG4gICAgICAgICAgICAgICAgY3NzU3R5bGU6IHNtYWxsTW9kYWxDc3MsXG4gICAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIG9uQ29uZmlybTogKCkgPT4gdGhpcy5fZGVsZXRlRGF0YXNldChkYXRhc2V0S2V5VG9SZW1vdmUpLFxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5kZWxldGUnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7IC8vIGluIGNhc2Ugd2UgYWRkIGEgbmV3IGNhc2UgYWZ0ZXIgdGhpcyBvbmVcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBBRERfREFUQV9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8TG9hZERhdGFNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuX2Nsb3NlTW9kYWx9XG4gICAgICAgICAgICAgICAgb25GaWxlVXBsb2FkPXt0aGlzLl9vbkZpbGVVcGxvYWR9XG4gICAgICAgICAgICAgICAgb25UaWxlc2V0QWRkZWQ9e3RoaXMuX29uVGlsZXNldEFkZGVkfVxuICAgICAgICAgICAgICAgIG9uTG9hZENsb3VkTWFwPXt0aGlzLl9vbkxvYWRDbG91ZE1hcH1cbiAgICAgICAgICAgICAgICBsb2FkRmlsZXM9e3VpU3RhdGUubG9hZEZpbGVzfVxuICAgICAgICAgICAgICAgIGZpbGVMb2FkaW5nPXt2aXNTdGF0ZS5maWxlTG9hZGluZ31cbiAgICAgICAgICAgICAgICBmaWxlTG9hZGluZ1Byb2dyZXNzPXt2aXNTdGF0ZS5maWxlTG9hZGluZ1Byb2dyZXNzfVxuICAgICAgICAgICAgICAgIGZpbGVGb3JtYXROYW1lcz17Z2V0RmlsZUZvcm1hdE5hbWVzKHRoaXMucHJvcHMudmlzU3RhdGUpfVxuICAgICAgICAgICAgICAgIGZpbGVFeHRlbnNpb25zPXtnZXRGaWxlRXh0ZW5zaW9ucyh0aGlzLnByb3BzLnZpc1N0YXRlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmFkZERhdGFUb01hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiBMb2FkRGF0YU1vZGFsU3R5bGUsXG4gICAgICAgICAgICAgIGZvb3RlcjogZmFsc2UsXG4gICAgICAgICAgICAgIG9uQ29uZmlybTogdGhpcy5fY2xvc2VNb2RhbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRVhQT1JUX0lNQUdFX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxFeHBvcnRJbWFnZU1vZGFsXG4gICAgICAgICAgICAgICAgZXhwb3J0SW1hZ2U9e3VpU3RhdGUuZXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgbWFwVz17Y29udGFpbmVyV31cbiAgICAgICAgICAgICAgICBtYXBIPXtjb250YWluZXJIfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5leHBvcnRJbWFnZScsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydEltYWdlLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHVpU3RhdGUuZXhwb3J0SW1hZ2UucHJvY2Vzc2luZyxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5kb3dubG9hZCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRVhQT1JUX0RBVEFfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEV4cG9ydERhdGFNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi51aVN0YXRlLmV4cG9ydERhdGF9XG4gICAgICAgICAgICAgICAgc3VwcG9ydGVkRGF0YVR5cGVzPXtFWFBPUlRfREFUQV9UWVBFX09QVElPTlN9XG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgIGFwcGx5Q1BVRmlsdGVyPXt0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5hcHBseUNQVUZpbHRlcn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydERhdGFUeXBlPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnREYXRhVHlwZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydFNlbGVjdGVkRGF0YXNldD17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0RmlsdGVyZWQ9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEZpbHRlcmVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZXhwb3J0RGF0YScsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydERhdGEsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5leHBvcnQnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVYUE9SVF9NQVBfSUQ6IHtcbiAgICAgICAgICAgIGNvbnN0IGtlcGxlckdsQ29uZmlnID0gdmlzU3RhdGUuc2NoZW1hLmdldENvbmZpZ1RvU2F2ZSh7XG4gICAgICAgICAgICAgIG1hcFN0eWxlLFxuICAgICAgICAgICAgICB2aXNTdGF0ZSxcbiAgICAgICAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgICAgICAgIHVpU3RhdGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxFeHBvcnRNYXBNb2RhbFxuICAgICAgICAgICAgICAgIGNvbmZpZz17a2VwbGVyR2xDb25maWd9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17dWlTdGF0ZS5leHBvcnRNYXB9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VFeHBvcnRNYXBGb3JtYXQ9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydE1hcEZvcm1hdH1cbiAgICAgICAgICAgICAgICBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW49e3VpU3RhdGVBY3Rpb25zLnNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRIVE1MTWFwTW9kZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmV4cG9ydE1hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fY2xvc2VNb2RhbCxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9vbkV4cG9ydE1hcCxcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjoge1xuICAgICAgICAgICAgICAgIGxhcmdlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAnbW9kYWwuYnV0dG9uLmV4cG9ydCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIEFERF9NQVBfU1RZTEVfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEFkZE1hcFN0eWxlTW9kYWxcbiAgICAgICAgICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbj17dGhpcy5wcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgICBtYXBib3hBcGlVcmw9e3RoaXMucHJvcHMubWFwYm94QXBpVXJsfVxuICAgICAgICAgICAgICAgIG1hcFN0YXRlPXt0aGlzLnByb3BzLm1hcFN0YXRlfVxuICAgICAgICAgICAgICAgIGlucHV0U3R5bGU9e21hcFN0eWxlLmlucHV0U3R5bGV9XG4gICAgICAgICAgICAgICAgaW5wdXRNYXBTdHlsZT17dGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMuaW5wdXRNYXBTdHlsZX1cbiAgICAgICAgICAgICAgICBsb2FkQ3VzdG9tTWFwU3R5bGU9e3RoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLmxvYWRDdXN0b21NYXBTdHlsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmFkZEN1c3RvbU1hcGJveFN0eWxlJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICBvbkNvbmZpcm06IHRoaXMuX29uQWRkQ3VzdG9tTWFwU3R5bGUsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDpcbiAgICAgICAgICAgICAgICAgIG1hcFN0eWxlLmlucHV0U3R5bGUuZXJyb3IgfHxcbiAgICAgICAgICAgICAgICAgICFtYXBTdHlsZS5pbnB1dFN0eWxlLnVybCB8fFxuICAgICAgICAgICAgICAgICAgIW1hcFN0eWxlLmlucHV0U3R5bGUubGFiZWwsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46ICdtb2RhbC5idXR0b24uYWRkU3R5bGUnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNBVkVfTUFQX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxTYXZlTWFwTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4ucHJvdmlkZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICBleHBvcnRJbWFnZT17dWlTdGF0ZS5leHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBtYXBJbmZvPXt2aXNTdGF0ZS5tYXBJbmZvfVxuICAgICAgICAgICAgICAgIG9uU2V0TWFwSW5mbz17dmlzU3RhdGVBY3Rpb25zLnNldE1hcEluZm99XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZ31cbiAgICAgICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5fY2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgICBvbkNvbmZpcm09e3Byb3ZpZGVyID0+IHRoaXMuX29uU2F2ZU1hcChwcm92aWRlciwgZmFsc2UpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuc2F2ZU1hcCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgZm9vdGVyOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgT1ZFUldSSVRFX01BUF9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8T3ZlcldyaXRlTWFwTW9kYWxcbiAgICAgICAgICAgICAgICB7Li4ucHJvdmlkZXJTdGF0ZX1cbiAgICAgICAgICAgICAgICB0aXRsZT17Z2V0KHZpc1N0YXRlLCBbJ21hcEluZm8nLCAndGl0bGUnXSl9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZ31cbiAgICAgICAgICAgICAgICBjbGVhbnVwRXhwb3J0SW1hZ2U9e3VpU3RhdGVBY3Rpb25zLmNsZWFudXBFeHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBvbkNvbmZpcm09e3RoaXMuX29uT3ZlcndyaXRlTWFwfVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLl9jbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnT3ZlcndyaXRlIEV4aXN0aW5nIEZpbGU/JyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6IHNtYWxsTW9kYWxDc3MsXG4gICAgICAgICAgICAgIGZvb3RlcjogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNIQVJFX01BUF9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8U2hhcmVNYXBNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIG9uRXhwb3J0PXt0aGlzLl9vblNoYXJlTWFwVXJsfVxuICAgICAgICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17dWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nPXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5zaGFyZVVSTCcsXG4gICAgICAgICAgICAgIGNzc1N0eWxlOiAnJyxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX29uQ2xvc2VTYXZlTWFwXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb290Tm9kZSA/IChcbiAgICAgICAgPE1vZGFsRGlhbG9nXG4gICAgICAgICAgcGFyZW50U2VsZWN0b3I9eygpID0+IHJvb3ROb2RlIGFzIEhUTUxFbGVtZW50fVxuICAgICAgICAgIGlzT3Blbj17Qm9vbGVhbihjdXJyZW50TW9kYWwpfVxuICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLl9jbG9zZU1vZGFsfVxuICAgICAgICAgIHsuLi5tb2RhbFByb3BzfVxuICAgICAgICAgIGNzc1N0eWxlPXtEZWZhdWx0U3R5bGUuY29uY2F0KG1vZGFsUHJvcHMuY3NzU3R5bGUpfVxuICAgICAgICA+XG4gICAgICAgICAge3RlbXBsYXRlfVxuICAgICAgICA8L01vZGFsRGlhbG9nPlxuICAgICAgKSA6IG51bGw7XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuICB9XG5cbiAgcmV0dXJuIE1vZGFsQ29udGFpbmVyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLElBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQU9BLElBQUFPLE1BQUEsR0FBQVAsT0FBQTtBQUVBLElBQUFRLFlBQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUdBLElBQUFTLGdCQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxrQkFBQSxHQUFBUCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVcsZUFBQSxHQUFBUixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVksY0FBQSxHQUFBVCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQWEsaUJBQUEsR0FBQVYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFjLGdCQUFBLEdBQUFYLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBZSxlQUFBLEdBQUFaLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBZ0IsaUJB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
|
|
435
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9nZXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RvY3VtZW50IiwiX2NvbnN0YW50cyIsIl9yZWR1Y2VycyIsIl91dGlscyIsIl9tb2RhbERpYWxvZyIsIl9kZWxldGVEYXRhTW9kYWwiLCJfb3ZlcndyaXRlTWFwTW9kYWwiLCJfZGF0YVRhYmxlTW9kYWwiLCJfbG9hZERhdGFNb2RhbCIsIl9leHBvcnRJbWFnZU1vZGFsIiwiX2V4cG9ydERhdGFNb2RhbCIsIl9leHBvcnRNYXBNb2RhbCIsIl9hZGRNYXBTdHlsZU1vZGFsIiwiX3NhdmVNYXBNb2RhbCIsIl9zaGFyZU1hcE1vZGFsIiwiX3N0eWxlcyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIkRhdGFUYWJsZU1vZGFsU3R5bGUiLCJjc3MiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIm1lZGlhIiwicG9ydGFibGUiLCJwYWxtIiwic21hbGxNb2RhbENzcyIsIkxvYWREYXRhTW9kYWxTdHlsZSIsIkRlZmF1bHRTdHlsZSIsIk1vZGFsQ29udGFpbmVyRmFjdG9yeSIsImRlcHMiLCJEZWxldGVEYXRhc2V0TW9kYWxGYWN0b3J5IiwiT3ZlcldyaXRlTWFwTW9kYWxGYWN0b3J5IiwiRGF0YVRhYmxlTW9kYWxGYWN0b3J5IiwiTG9hZERhdGFNb2RhbEZhY3RvcnkiLCJFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeSIsIkV4cG9ydERhdGFNb2RhbEZhY3RvcnkiLCJFeHBvcnRNYXBNb2RhbEZhY3RvcnkiLCJBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeSIsIk1vZGFsRGlhbG9nRmFjdG9yeSIsIlNhdmVNYXBNb2RhbEZhY3RvcnkiLCJTaGFyZU1hcE1vZGFsRmFjdG9yeSIsIkRlbGV0ZURhdGFzZXRNb2RhbCIsIk92ZXJXcml0ZU1hcE1vZGFsIiwiRGF0YVRhYmxlTW9kYWwiLCJMb2FkRGF0YU1vZGFsIiwiRXhwb3J0SW1hZ2VNb2RhbCIsIkV4cG9ydERhdGFNb2RhbCIsIkV4cG9ydE1hcE1vZGFsIiwiQWRkTWFwU3R5bGVNb2RhbCIsIk1vZGFsRGlhbG9nIiwiU2F2ZU1hcE1vZGFsIiwiU2hhcmVNYXBNb2RhbCIsIk1vZGFsQ29udGFpbmVyIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiX29uS2V5VXAiLCJldmVudCIsImtleUNvZGUiLCJLZXlFdmVudCIsIkRPTV9WS19FU0NBUEUiLCJfY2xvc2VNb2RhbCIsInByb3BzIiwidWlTdGF0ZUFjdGlvbnMiLCJ0b2dnbGVNb2RhbCIsImtleSIsInZpc1N0YXRlQWN0aW9ucyIsInJlbW92ZURhdGFzZXQiLCJtYXBTdHlsZUFjdGlvbnMiLCJhZGRDdXN0b21NYXBTdHlsZSIsImZpbGVMaXN0IiwibG9hZEZpbGVzIiwidGlsZXNldCIsInByb2Nlc3NlZE1ldGFkYXRhIiwidXBkYXRlVmlzRGF0YSIsImluZm8iLCJsYWJlbCIsIm5hbWUiLCJ0eXBlIiwiZm9ybWF0IiwiZGF0YSIsImZpZWxkcyIsInJvd3MiLCJtZXRhZGF0YSIsInN1cHBvcnRlZEZpbHRlclR5cGVzIiwiQUxMX0ZJRUxEX1RZUEVTIiwicmVhbCIsImludGVnZXIiLCJkaXNhYmxlRGF0YU9wZXJhdGlvbiIsImF1dG9DcmVhdGVMYXllcnMiLCJjZW50ZXJNYXAiLCJ1aVN0YXRlIiwiZXhwb3J0SW1hZ2UiLCJwcm9jZXNzaW5nIiwiYXBwTmFtZSIsImNsZWFudXBFeHBvcnRJbWFnZSIsImV4cG9ydERhdGEiLCJleHBvcnRNYXAiLCJFWFBPUlRfTUFQX0ZPUk1BVFMiLCJIVE1MIiwiZXhwb3J0SHRtbCIsImV4cG9ydEpzb24iLCJfcmVmIiwicHJvdmlkZXIiLCJpc1B1YmxpYyIsIm92ZXJ3cml0ZSIsImNsb3NlTW9kYWwiLCJ0b1NhdmUiLCJwcm92aWRlckFjdGlvbnMiLCJleHBvcnRGaWxlVG9DbG91ZCIsIm1hcERhdGEiLCJvcHRpb25zIiwibWFwSWRUb092ZXJ3cml0ZSIsInByb3ZpZGVyU3RhdGUiLCJzYXZlZE1hcElkIiwib25TdWNjZXNzIiwib25FeHBvcnRUb0Nsb3VkU3VjY2VzcyIsIm9uRXJyb3IiLCJvbkV4cG9ydFRvQ2xvdWRFcnJvciIsInVuZGVmaW5lZCIsIl9leHBvcnRGaWxlVG9DbG91ZCIsIl9vblNhdmVNYXAiLCJyZXNldFByb3ZpZGVyU3RhdHVzIiwicGF5bG9hZCIsImxvYWRDbG91ZE1hcCIsIm9uTG9hZENsb3VkTWFwU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwRXJyb3IiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsInZhbHVlIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMiLCJjb250YWluZXJXIiwiY29udGFpbmVySCIsIm1hcFN0eWxlIiwibWFwU3RhdGUiLCJ2aXNTdGF0ZSIsInJvb3ROb2RlIiwiY3VycmVudE1vZGFsIiwiZGF0YXNldEtleVRvUmVtb3ZlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJlZGl0aW5nRGF0YXNldCIsInRlbXBsYXRlIiwibW9kYWxQcm9wcyIsImlkIiwiY3JlYXRlRWxlbWVudCIsIkRBVEFfVEFCTEVfSUQiLCJ3aWR0aCIsImRhdGFJZCIsInNob3dEYXRhc2V0VGFibGUiLCJzb3J0VGFibGVDb2x1bW4iLCJwaW5UYWJsZUNvbHVtbiIsImNvcHlUYWJsZUNvbHVtbiIsInNldENvbHVtbkRpc3BsYXlGb3JtYXQiLCJjc3NTdHlsZSIsIkRFTEVURV9EQVRBX0lEIiwiZGF0YXNldCIsInRpdGxlIiwiZm9vdGVyIiwib25Db25maXJtIiwiX2RlbGV0ZURhdGFzZXQiLCJvbkNhbmNlbCIsImNvbmZpcm1CdXR0b24iLCJuZWdhdGl2ZSIsImxhcmdlIiwiY2hpbGRyZW4iLCJBRERfREFUQV9JRCIsIl9leHRlbmRzMiIsIm9uQ2xvc2UiLCJvbkZpbGVVcGxvYWQiLCJfb25GaWxlVXBsb2FkIiwib25UaWxlc2V0QWRkZWQiLCJfb25UaWxlc2V0QWRkZWQiLCJvbkxvYWRDbG91ZE1hcCIsIl9vbkxvYWRDbG91ZE1hcCIsImZpbGVMb2FkaW5nIiwiZmlsZUxvYWRpbmdQcm9ncmVzcyIsImZpbGVGb3JtYXROYW1lcyIsImdldEZpbGVGb3JtYXROYW1lcyIsImZpbGVFeHRlbnNpb25zIiwiZ2V0RmlsZUV4dGVuc2lvbnMiLCJFWFBPUlRfSU1BR0VfSUQiLCJtYXBXIiwibWFwSCIsIm9uVXBkYXRlSW1hZ2VTZXR0aW5nIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nIiwiX29uRXhwb3J0SW1hZ2UiLCJkaXNhYmxlZCIsIkVYUE9SVF9EQVRBX0lEIiwic3VwcG9ydGVkRGF0YVR5cGVzIiwiRVhQT1JUX0RBVEFfVFlQRV9PUFRJT05TIiwiYXBwbHlDUFVGaWx0ZXIiLCJvbkNoYW5nZUV4cG9ydERhdGFUeXBlIiwic2V0RXhwb3J0RGF0YVR5cGUiLCJvbkNoYW5nZUV4cG9ydFNlbGVjdGVkRGF0YXNldCIsInNldEV4cG9ydFNlbGVjdGVkRGF0YXNldCIsIm9uQ2hhbmdlRXhwb3J0RmlsdGVyZWQiLCJzZXRFeHBvcnRGaWx0ZXJlZCIsIl9vbkV4cG9ydERhdGEiLCJFWFBPUlRfTUFQX0lEIiwia2VwbGVyR2xDb25maWciLCJzY2hlbWEiLCJnZXRDb25maWdUb1NhdmUiLCJjb25maWciLCJvbkNoYW5nZUV4cG9ydE1hcEZvcm1hdCIsInNldEV4cG9ydE1hcEZvcm1hdCIsIm9uRWRpdFVzZXJNYXBib3hBY2Nlc3NUb2tlbiIsInNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbiIsIm9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGUiLCJzZXRFeHBvcnRIVE1MTWFwTW9kZSIsIl9vbkV4cG9ydE1hcCIsIkFERF9NQVBfU1RZTEVfSUQiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsImlucHV0U3R5bGUiLCJpbnB1dE1hcFN0eWxlIiwibG9hZEN1c3RvbU1hcFN0eWxlIiwiX29uQWRkQ3VzdG9tTWFwU3R5bGUiLCJlcnJvciIsInVybCIsIlNBVkVfTUFQX0lEIiwibWFwSW5mbyIsIm9uU2V0TWFwSW5mbyIsInNldE1hcEluZm8iLCJPVkVSV1JJVEVfTUFQX0lEIiwiX29uT3ZlcndyaXRlTWFwIiwiU0hBUkVfTUFQX0lEIiwib25FeHBvcnQiLCJfb25TaGFyZU1hcFVybCIsIl9vbkNsb3NlU2F2ZU1hcCIsInBhcmVudFNlbGVjdG9yIiwiaXNPcGVuIiwiQ29tcG9uZW50Il0sInNvdXJjZXMiOlsiLi4vc3JjL21vZGFsLWNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nzc30gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBkb2N1bWVudCBmcm9tICdnbG9iYWwvZG9jdW1lbnQnO1xuXG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgZXhwb3J0RGF0YSxcbiAgZ2V0RmlsZUZvcm1hdE5hbWVzLFxuICBnZXRGaWxlRXh0ZW5zaW9ucyxcbiAgTWFwU3R5bGUsXG4gIFByb3ZpZGVyU3RhdGVcbn0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge2V4cG9ydEh0bWwsIGV4cG9ydE1hcCwgZXhwb3J0SnNvbiwgZXhwb3J0SW1hZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQgTW9kYWxEaWFsb2dGYWN0b3J5IGZyb20gJy4vbW9kYWxzL21vZGFsLWRpYWxvZyc7XG5cbi8vIG1vZGFsc1xuaW1wb3J0IERlbGV0ZURhdGFzZXRNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZGVsZXRlLWRhdGEtbW9kYWwnO1xuaW1wb3J0IE92ZXJXcml0ZU1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9vdmVyd3JpdGUtbWFwLW1vZGFsJztcbmltcG9ydCBEYXRhVGFibGVNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZGF0YS10YWJsZS1tb2RhbCc7XG5pbXBvcnQgTG9hZERhdGFNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvbG9hZC1kYXRhLW1vZGFsJztcbmltcG9ydCBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9leHBvcnQtaW1hZ2UtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydERhdGFNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvZXhwb3J0LWRhdGEtbW9kYWwnO1xuaW1wb3J0IEV4cG9ydE1hcE1vZGFsRmFjdG9yeSBmcm9tICcuL21vZGFscy9leHBvcnQtbWFwLW1vZGFsL2V4cG9ydC1tYXAtbW9kYWwnO1xuaW1wb3J0IEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL2FkZC1tYXAtc3R5bGUtbW9kYWwnO1xuaW1wb3J0IFNhdmVNYXBNb2RhbEZhY3RvcnkgZnJvbSAnLi9tb2RhbHMvc2F2ZS1tYXAtbW9kYWwnO1xuaW1wb3J0IFNoYXJlTWFwTW9kYWxGYWN0b3J5IGZyb20gJy4vbW9kYWxzL3NoYXJlLW1hcC1tb2RhbCc7XG5cbi8vIEJyZWFrcG9pbnRzXG5pbXBvcnQge21lZGlhfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5cbi8vIFRlbXBsYXRlXG5pbXBvcnQge1xuICBFWFBPUlRfREFUQV9UWVBFX09QVElPTlMsXG4gIEVYUE9SVF9NQVBfRk9STUFUUyxcbiAgS2V5RXZlbnQsXG4gIEFERF9EQVRBX0lELFxuICBEQVRBX1RBQkxFX0lELFxuICBERUxFVEVfREFUQV9JRCxcbiAgRVhQT1JUX0RBVEFfSUQsXG4gIEVYUE9SVF9JTUFHRV9JRCxcbiAgRVhQT1JUX01BUF9JRCxcbiAgQUREX01BUF9TVFlMRV9JRCxcbiAgU0FWRV9NQVBfSUQsXG4gIFNIQVJFX01BUF9JRCxcbiAgT1ZFUldSSVRFX01BUF9JRFxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7TWFwU3RhdGUsIFVpU3RhdGUsIE9uU3VjY2Vzc0NhbGxCYWNrLCBPbkVycm9yQ2FsbEJhY2t9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBWaXNTdGF0ZUFjdGlvbnMsXG4gIFVJU3RhdGVBY3Rpb25zLFxuICBNYXBTdHlsZUFjdGlvbnMsXG4gIFByb3ZpZGVyQWN0aW9uc1xufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNb2RhbERpYWxvZ1Byb3BzfSBmcm9tICcuL2NvbW1vbi9tb2RhbCc7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICdAa2VwbGVyLmdsL2Nsb3VkLXByb3ZpZGVycyc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuXG5jb25zdCBEYXRhVGFibGVNb2RhbFN0eWxlID0gY3NzYFxuICB0b3A6IDcwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiA5MHZ3O1xuICBtYXgtd2lkdGg6IDkwdnc7XG5cbiAgJHttZWRpYS5wb3J0YWJsZWBcbiAgICBwYWRkaW5nOiAwO1xuICBgfSAke21lZGlhLnBhbG1gXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgYH07XG5gO1xuY29uc3Qgc21hbGxNb2RhbENzcyA9IGNzc2BcbiAgd2lkdGg6IDQwJTtcbiAgcGFkZGluZzogNDBweCA0MHB4IDMycHggNDBweDtcbmA7XG5cbmNvbnN0IExvYWREYXRhTW9kYWxTdHlsZSA9IGNzc2BcbiAgdG9wOiA2MHB4O1xuYDtcblxuY29uc3QgRGVmYXVsdFN0eWxlID0gY3NzYFxuICBtYXgtd2lkdGg6IDk2MHB4O1xuYDtcblxuZXhwb3J0IHR5cGUgTW9kYWxDb250YWluZXJQcm9wcyA9IHtcbiAgYXBwTmFtZTogc3RyaW5nO1xuICByb290Tm9kZTogUmVhY3QuUmVhY3RJbnN0YW5jZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvbnRhaW5lclc6IG51bWJlcjtcbiAgY29udGFpbmVySDogbnVtYmVyO1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwU3R5bGU6IE1hcFN0eWxlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICB2aXNTdGF0ZTogVmlzU3RhdGU7XG4gIHByb3ZpZGVyU3RhdGU6IFByb3ZpZGVyU3RhdGU7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgbWFwU3R5bGVBY3Rpb25zOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zO1xuICBwcm92aWRlckFjdGlvbnM6IHR5cGVvZiBQcm92aWRlckFjdGlvbnM7XG4gIG9uU2F2ZVRvU3RvcmFnZT86ICgpID0+IHZvaWQ7XG4gIGNsb3VkUHJvdmlkZXJzOiBQcm92aWRlcltdO1xuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbiAgb25FeHBvcnRUb0Nsb3VkU3VjY2Vzcz86IE9uU3VjY2Vzc0NhbGxCYWNrO1xuICBvbkV4cG9ydFRvQ2xvdWRFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbn07XG5cbk1vZGFsQ29udGFpbmVyRmFjdG9yeS5kZXBzID0gW1xuICBEZWxldGVEYXRhc2V0TW9kYWxGYWN0b3J5LFxuICBPdmVyV3JpdGVNYXBNb2RhbEZhY3RvcnksXG4gIERhdGFUYWJsZU1vZGFsRmFjdG9yeSxcbiAgTG9hZERhdGFNb2RhbEZhY3RvcnksXG4gIEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5LFxuICBFeHBvcnREYXRhTW9kYWxGYWN0b3J5LFxuICBFeHBvcnRNYXBNb2RhbEZhY3RvcnksXG4gIEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5LFxuICBNb2RhbERpYWxvZ0ZhY3RvcnksXG4gIFNhdmVNYXBNb2RhbEZhY3RvcnksXG4gIFNoYXJlTWFwTW9kYWxGYWN0b3J5XG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNb2RhbENvbnRhaW5lckZhY3RvcnkoXG4gIERlbGV0ZURhdGFzZXRNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeT4sXG4gIE92ZXJXcml0ZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBPdmVyV3JpdGVNYXBNb2RhbEZhY3Rvcnk+LFxuICBEYXRhVGFibGVNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YVRhYmxlTW9kYWxGYWN0b3J5PixcbiAgTG9hZERhdGFNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgTG9hZERhdGFNb2RhbEZhY3Rvcnk+LFxuICBFeHBvcnRJbWFnZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydERhdGFNb2RhbDogUmV0dXJuVHlwZTx0eXBlb2YgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeT4sXG4gIEV4cG9ydE1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBFeHBvcnRNYXBNb2RhbEZhY3Rvcnk+LFxuICBBZGRNYXBTdHlsZU1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBBZGRNYXBTdHlsZU1vZGFsRmFjdG9yeT4sXG4gIE1vZGFsRGlhbG9nOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbERpYWxvZ0ZhY3Rvcnk+LFxuICBTYXZlTWFwTW9kYWw6IFJldHVyblR5cGU8dHlwZW9mIFNhdmVNYXBNb2RhbEZhY3Rvcnk+LFxuICBTaGFyZU1hcE1vZGFsOiBSZXR1cm5UeXBlPHR5cGVvZiBTaGFyZU1hcE1vZGFsRmFjdG9yeT5cbik6IFJlYWN0LkVsZW1lbnRUeXBlPE1vZGFsQ29udGFpbmVyUHJvcHM+IHtcbiAgLyoqIEBhdWdtZW50cyBSZWFjdC5Db21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4gKi9cbiAgY2xhc3MgTW9kYWxDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnQ8TW9kYWxDb250YWluZXJQcm9wcz4ge1xuICAgIC8vIFRPRE8gLSByZW1vdmUgd2hlbiBwcm9wIHR5cGVzIGFyZSBmdWxseSBleHBvcnRlZFxuICAgIGNvbXBvbmVudERpZE1vdW50ID0gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9O1xuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwKTtcbiAgICB9XG5cbiAgICBfb25LZXlVcCA9IGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgICAgaWYgKGtleUNvZGUgPT09IEtleUV2ZW50LkRPTV9WS19FU0NBUEUpIHtcbiAgICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfY2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICAgIHRoaXMucHJvcHMudWlTdGF0ZUFjdGlvbnMudG9nZ2xlTW9kYWwobnVsbCk7XG4gICAgfTtcblxuICAgIF9kZWxldGVEYXRhc2V0ID0ga2V5ID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLnJlbW92ZURhdGFzZXQoa2V5KTtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICB9O1xuXG4gICAgX29uQWRkQ3VzdG9tTWFwU3R5bGUgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5hZGRDdXN0b21NYXBTdHlsZSgpO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25GaWxlVXBsb2FkID0gZmlsZUxpc3QgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMubG9hZEZpbGVzKGZpbGVMaXN0KTtcbiAgICB9O1xuXG4gICAgX29uVGlsZXNldEFkZGVkID0gKFxuICAgICAgdGlsZXNldDoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55Pn0sXG4gICAgICBwcm9jZXNzZWRNZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICApID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVZpc0RhdGEoXG4gICAgICAgIHtcbiAgICAgICAgICBpbmZvOiB7bGFiZWw6IHRpbGVzZXQubmFtZSwgdHlwZTogdGlsZXNldC50eXBlLCBmb3JtYXQ6ICdyb3dzJ30sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZmllbGRzOiBwcm9jZXNzZWRNZXRhZGF0YT8uZmllbGRzIHx8IFtdLFxuICAgICAgICAgICAgcm93czogW11cbiAgICAgICAgICB9LFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAuLi5wcm9jZXNzZWRNZXRhZGF0YSxcbiAgICAgICAgICAgIC4uLnRpbGVzZXQubWV0YWRhdGFcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIFZlY3RvciB0aWxlIGxheWVyIHN1cHBvcnRzIEdQVSBmaWx0ZXJpbmcgZm9yIG51bWVyaWMgYW5kIGJvb2xlYW4gZmllbGRzXG4gICAgICAgICAgc3VwcG9ydGVkRmlsdGVyVHlwZXM6IFtcbiAgICAgICAgICAgIEFMTF9GSUVMRF9UWVBFUy5yZWFsLFxuICAgICAgICAgICAgQUxMX0ZJRUxEX1RZUEVTLmludGVnZXIsXG4gICAgICAgICAgICBBTExfRklFTERfVFlQRVMuYm9vbGVhblxuICAgICAgICAgIF0sXG4gICAgICAgICAgZGlzYWJsZURhdGFPcGVyYXRpb246IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGF1dG9DcmVhdGVMYXllcnM6IHRydWUsXG4gICAgICAgICAgY2VudGVyTWFwOiB0cnVlXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgfTtcblxuICAgIF9vbkV4cG9ydEltYWdlID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UucHJvY2Vzc2luZykge1xuICAgICAgICBleHBvcnRJbWFnZSh0aGlzLnByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UsIGAke3RoaXMucHJvcHMuYXBwTmFtZX0ucG5nYCk7XG4gICAgICAgIHRoaXMucHJvcHMudWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlKCk7XG4gICAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uRXhwb3J0RGF0YSA9ICgpID0+IHtcbiAgICAgIGV4cG9ydERhdGEodGhpcy5wcm9wcywgdGhpcy5wcm9wcy51aVN0YXRlLmV4cG9ydERhdGEpO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25FeHBvcnRNYXAgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7dWlTdGF0ZX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge2Zvcm1hdH0gPSB1aVN0YXRlLmV4cG9ydE1hcDtcbiAgICAgIChmb3JtYXQgPT09IEVYUE9SVF9NQVBfRk9STUFUUy5IVE1MID8gZXhwb3J0SHRtbCA6IGV4cG9ydEpzb24pKFxuICAgICAgICB0aGlzLnByb3BzLFxuICAgICAgICB0aGlzLnByb3BzLnVpU3RhdGUuZXhwb3J0TWFwW2Zvcm1hdF0gfHwge31cbiAgICAgICk7XG4gICAgICB0aGlzLl9jbG9zZU1vZGFsKCk7XG4gICAgfTtcblxuICAgIF9leHBvcnRGaWxlVG9DbG91ZCA9ICh7cHJvdmlkZXIsIGlzUHVibGljLCBvdmVyd3JpdGUsIGNsb3NlTW9kYWx9KSA9PiB7XG4gICAgICBjb25zdCB0b1NhdmUgPSBleHBvcnRNYXAodGhpcy5wcm9wcyk7XG5cbiAgICAgIHRoaXMucHJvcHMucHJvdmlkZXJBY3Rpb25zLmV4cG9ydEZpbGVUb0Nsb3VkKHtcbiAgICAgICAgbWFwRGF0YTogdG9TYXZlLFxuICAgICAgICBwcm92aWRlcixcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGlzUHVibGljLFxuICAgICAgICAgIG92ZXJ3cml0ZSxcbiAgICAgICAgICBtYXBJZFRvT3ZlcndyaXRlOiB0aGlzLnByb3BzLnByb3ZpZGVyU3RhdGUuc2F2ZWRNYXBJZFxuICAgICAgICB9LFxuICAgICAgICBjbG9zZU1vZGFsLFxuICAgICAgICBvblN1Y2Nlc3M6IHRoaXMucHJvcHMub25FeHBvcnRUb0Nsb3VkU3VjY2VzcyxcbiAgICAgICAgb25FcnJvcjogdGhpcy5wcm9wcy5vbkV4cG9ydFRvQ2xvdWRFcnJvclxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9vblNhdmVNYXAgPSAocHJvdmlkZXIsIG92ZXJ3cml0ZSA9IGZhbHNlKSA9PiB7XG4gICAgICB0aGlzLl9leHBvcnRGaWxlVG9DbG91ZCh7XG4gICAgICAgIHByb3ZpZGVyLFxuICAgICAgICBpc1B1YmxpYzogZmFsc2UsXG4gICAgICAgIG92ZXJ3cml0ZSxcbiAgICAgICAgY2xvc2VNb2RhbDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9vbk92ZXJ3cml0ZU1hcCA9IHByb3ZpZGVyID0+IHtcbiAgICAgIHRoaXMuX29uU2F2ZU1hcChwcm92aWRlciwgdHJ1ZSk7XG4gICAgfTtcblxuICAgIF9vblNoYXJlTWFwVXJsID0gcHJvdmlkZXIgPT4ge1xuICAgICAgdGhpcy5fZXhwb3J0RmlsZVRvQ2xvdWQoe3Byb3ZpZGVyLCBpc1B1YmxpYzogdHJ1ZSwgb3ZlcndyaXRlOiBmYWxzZSwgY2xvc2VNb2RhbDogZmFsc2V9KTtcbiAgICB9O1xuXG4gICAgX29uQ2xvc2VTYXZlTWFwID0gKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5wcm92aWRlckFjdGlvbnMucmVzZXRQcm92aWRlclN0YXR1cygpO1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbCgpO1xuICAgIH07XG5cbiAgICBfb25Mb2FkQ2xvdWRNYXAgPSBwYXlsb2FkID0+IHtcbiAgICAgIHRoaXMucHJvcHMucHJvdmlkZXJBY3Rpb25zLmxvYWRDbG91ZE1hcCh7XG4gICAgICAgIC4uLnBheWxvYWQsXG4gICAgICAgIG9uU3VjY2VzczogdGhpcy5wcm9wcy5vbkxvYWRDbG91ZE1hcFN1Y2Nlc3MsXG4gICAgICAgIG9uRXJyb3I6IHRoaXMucHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvclxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGNvbnRhaW5lclcsXG4gICAgICAgIGNvbnRhaW5lckgsXG4gICAgICAgIG1hcFN0eWxlLFxuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgdWlTdGF0ZSxcbiAgICAgICAgdmlzU3RhdGUsXG4gICAgICAgIHJvb3ROb2RlLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgICBwcm92aWRlclN0YXRlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtjdXJyZW50TW9kYWwsIGRhdGFzZXRLZXlUb1JlbW92ZX0gPSB1aVN0YXRlO1xuICAgICAgY29uc3Qge2RhdGFzZXRzLCBsYXllcnMsIGVkaXRpbmdEYXRhc2V0fSA9IHZpc1N0YXRlO1xuXG4gICAgICBsZXQgdGVtcGxhdGU6IEpTWC5FbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgICBsZXQgbW9kYWxQcm9wczogUGFydGlhbDxNb2RhbERpYWxvZ1Byb3BzPiA9IHt9O1xuXG4gICAgICAvLyBUT0RPIC0gY3VycmVudE1vZGFsIGlzIGEgc3RyaW5nXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAoY3VycmVudE1vZGFsICYmIGN1cnJlbnRNb2RhbC5pZCAmJiBjdXJyZW50TW9kYWwudGVtcGxhdGUpIHtcbiAgICAgICAgLy8gaWYgY3VycmVudE1kb2FsIHRlbXBsYXRlIGlzIGFscmVhZHkgcHJvdmlkZWRcbiAgICAgICAgLy8gVE9ETzogbmVlZCB0byBjaGVjayB3aGV0aGVyIHRlbXBsYXRlIGlzIHZhbGlkXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGVtcGxhdGUgPSA8Y3VycmVudE1vZGFsLnRlbXBsYXRlIC8+O1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG1vZGFsUHJvcHMgPSBjdXJyZW50TW9kYWwubW9kYWxQcm9wcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoY3VycmVudE1vZGFsKSB7XG4gICAgICAgICAgY2FzZSBEQVRBX1RBQkxFX0lEOiB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGNvbnRhaW5lclcgKiAwLjk7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPERhdGFUYWJsZU1vZGFsXG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgIGRhdGFJZD17ZWRpdGluZ0RhdGFzZXR9XG4gICAgICAgICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17dmlzU3RhdGVBY3Rpb25zLnNob3dEYXRhc2V0VGFibGV9XG4gICAgICAgICAgICAgICAgc29ydFRhYmxlQ29sdW1uPXt2aXNTdGF0ZUFjdGlvbnMuc29ydFRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIHBpblRhYmxlQ29sdW1uPXt2aXNTdGF0ZUFjdGlvbnMucGluVGFibGVDb2x1bW59XG4gICAgICAgICAgICAgICAgY29weVRhYmxlQ29sdW1uPXt2aXNTdGF0ZUFjdGlvbnMuY29weVRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIHNldENvbHVtbkRpc3BsYXlGb3JtYXQ9e3Zpc1N0YXRlQWN0aW9ucy5zZXRDb2x1bW5EaXNwbGF5Rm9ybWF0fVxuICAgICAgICAgICAgICAgIHVpU3RhdGVBY3Rpb25zPXt1aVN0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgICB1aVN0YXRlPXt1aVN0YXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gVE9ETzogd2UgbmVlZCB0byBtYWtlIHRoaXMgd2lkdGggY29uc2lzdGVudCB3aXRoIHRoZSBjc3MgcnVsZSBkZWZpbmVkIG1vZGFsLmpzOjMyIG1heC13aWR0aDogNzB2d1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSAvLyBUT0RPIGZpeCB0aGlzIGFmdGVyIGFkZCB0eXBlcyB0byBUaGVtZVxuICAgICAgICAgICAgbW9kYWxQcm9wcy5jc3NTdHlsZSA9IGNzc2BcbiAgICAgICAgICAgICAgJHtEYXRhVGFibGVNb2RhbFN0eWxlfTtcbiAgICAgICAgICAgICAgJHttZWRpYS5wYWxtYFxuICAgICAgICAgICAgICAgIHdpZHRoOiAke3dpZHRofXB4O1xuICAgICAgICAgICAgICBgfTtcbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBERUxFVEVfREFUQV9JRDoge1xuICAgICAgICAgICAgLy8gdmFsaWRhdGUgb3B0aW9uc1xuICAgICAgICAgICAgaWYgKGRhdGFzZXRLZXlUb1JlbW92ZSAmJiBkYXRhc2V0cyAmJiBkYXRhc2V0c1tkYXRhc2V0S2V5VG9SZW1vdmVdKSB7XG4gICAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICAgIDxEZWxldGVEYXRhc2V0TW9kYWwgZGF0YXNldD17ZGF0YXNldHNbZGF0YXNldEtleVRvUmVtb3ZlXX0gbGF5ZXJzPXtsYXllcnN9IC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5kZWxldGVEYXRhc2V0JyxcbiAgICAgICAgICAgICAgICBjc3NTdHlsZTogc21hbGxNb2RhbENzcyxcbiAgICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgb25Db25maXJtOiAoKSA9PiB0aGlzLl9kZWxldGVEYXRhc2V0KGRhdGFzZXRLZXlUb1JlbW92ZSksXG4gICAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWwsXG4gICAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjoge1xuICAgICAgICAgICAgICAgICAgbmVnYXRpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAnbW9kYWwuYnV0dG9uLmRlbGV0ZSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhazsgLy8gaW4gY2FzZSB3ZSBhZGQgYSBuZXcgY2FzZSBhZnRlciB0aGlzIG9uZVxuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIEFERF9EQVRBX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxMb2FkRGF0YU1vZGFsXG4gICAgICAgICAgICAgICAgey4uLnByb3ZpZGVyU3RhdGV9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17dGhpcy5fY2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgICBvbkZpbGVVcGxvYWQ9e3RoaXMuX29uRmlsZVVwbG9hZH1cbiAgICAgICAgICAgICAgICBvblRpbGVzZXRBZGRlZD17dGhpcy5fb25UaWxlc2V0QWRkZWR9XG4gICAgICAgICAgICAgICAgb25Mb2FkQ2xvdWRNYXA9e3RoaXMuX29uTG9hZENsb3VkTWFwfVxuICAgICAgICAgICAgICAgIGxvYWRGaWxlcz17dWlTdGF0ZS5sb2FkRmlsZXN9XG4gICAgICAgICAgICAgICAgZmlsZUxvYWRpbmc9e3Zpc1N0YXRlLmZpbGVMb2FkaW5nfVxuICAgICAgICAgICAgICAgIGZpbGVMb2FkaW5nUHJvZ3Jlc3M9e3Zpc1N0YXRlLmZpbGVMb2FkaW5nUHJvZ3Jlc3N9XG4gICAgICAgICAgICAgICAgZmlsZUZvcm1hdE5hbWVzPXtnZXRGaWxlRm9ybWF0TmFtZXModGhpcy5wcm9wcy52aXNTdGF0ZSl9XG4gICAgICAgICAgICAgICAgZmlsZUV4dGVuc2lvbnM9e2dldEZpbGVFeHRlbnNpb25zKHRoaXMucHJvcHMudmlzU3RhdGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuYWRkRGF0YVRvTWFwJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6IExvYWREYXRhTW9kYWxTdHlsZSxcbiAgICAgICAgICAgICAgZm9vdGVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgb25Db25maXJtOiB0aGlzLl9jbG9zZU1vZGFsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBFWFBPUlRfSU1BR0VfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEV4cG9ydEltYWdlTW9kYWxcbiAgICAgICAgICAgICAgICBleHBvcnRJbWFnZT17dWlTdGF0ZS5leHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBtYXBXPXtjb250YWluZXJXfVxuICAgICAgICAgICAgICAgIG1hcEg9e2NvbnRhaW5lckh9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZ31cbiAgICAgICAgICAgICAgICBjbGVhbnVwRXhwb3J0SW1hZ2U9e3VpU3RhdGVBY3Rpb25zLmNsZWFudXBFeHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLmV4cG9ydEltYWdlJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICBvbkNvbmZpcm06IHRoaXMuX29uRXhwb3J0SW1hZ2UsXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b246IHtcbiAgICAgICAgICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdWlTdGF0ZS5leHBvcnRJbWFnZS5wcm9jZXNzaW5nLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAnbW9kYWwuYnV0dG9uLmRvd25sb2FkJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBFWFBPUlRfREFUQV9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8RXhwb3J0RGF0YU1vZGFsXG4gICAgICAgICAgICAgICAgey4uLnVpU3RhdGUuZXhwb3J0RGF0YX1cbiAgICAgICAgICAgICAgICBzdXBwb3J0ZWREYXRhVHlwZXM9e0VYUE9SVF9EQVRBX1RZUEVfT1BUSU9OU31cbiAgICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgICAgYXBwbHlDUFVGaWx0ZXI9e3RoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLmFwcGx5Q1BVRmlsdGVyfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0RGF0YVR5cGU9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydERhdGFUeXBlfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0U2VsZWN0ZWREYXRhc2V0PXt1aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRTZWxlY3RlZERhdGFzZXR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VFeHBvcnRGaWx0ZXJlZD17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0RmlsdGVyZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5leHBvcnREYXRhJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICBvbkNvbmZpcm06IHRoaXMuX29uRXhwb3J0RGF0YSxcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjoge1xuICAgICAgICAgICAgICAgIGxhcmdlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAnbW9kYWwuYnV0dG9uLmV4cG9ydCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRVhQT1JUX01BUF9JRDoge1xuICAgICAgICAgICAgY29uc3Qga2VwbGVyR2xDb25maWcgPSB2aXNTdGF0ZS5zY2hlbWEuZ2V0Q29uZmlnVG9TYXZlKHtcbiAgICAgICAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgICAgICAgIHZpc1N0YXRlLFxuICAgICAgICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgICAgICAgdWlTdGF0ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPEV4cG9ydE1hcE1vZGFsXG4gICAgICAgICAgICAgICAgY29uZmlnPXtrZXBsZXJHbENvbmZpZ31cbiAgICAgICAgICAgICAgICBvcHRpb25zPXt1aVN0YXRlLmV4cG9ydE1hcH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUV4cG9ydE1hcEZvcm1hdD17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0TWFwRm9ybWF0fVxuICAgICAgICAgICAgICAgIG9uRWRpdFVzZXJNYXBib3hBY2Nlc3NUb2tlbj17dWlTdGF0ZUFjdGlvbnMuc2V0VXNlck1hcGJveEFjY2Vzc1Rva2VufVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGU9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEhUTUxNYXBNb2RlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuZXhwb3J0TWFwJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBmb290ZXI6IHRydWUsXG4gICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLl9jbG9zZU1vZGFsLFxuICAgICAgICAgICAgICBvbkNvbmZpcm06IHRoaXMuX29uRXhwb3J0TWFwLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46ICdtb2RhbC5idXR0b24uZXhwb3J0J1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgQUREX01BUF9TVFlMRV9JRDpcbiAgICAgICAgICAgIHRlbXBsYXRlID0gKFxuICAgICAgICAgICAgICA8QWRkTWFwU3R5bGVNb2RhbFxuICAgICAgICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuPXt0aGlzLnByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VufVxuICAgICAgICAgICAgICAgIG1hcGJveEFwaVVybD17dGhpcy5wcm9wcy5tYXBib3hBcGlVcmx9XG4gICAgICAgICAgICAgICAgbWFwU3RhdGU9e3RoaXMucHJvcHMubWFwU3RhdGV9XG4gICAgICAgICAgICAgICAgaW5wdXRTdHlsZT17bWFwU3R5bGUuaW5wdXRTdHlsZX1cbiAgICAgICAgICAgICAgICBpbnB1dE1hcFN0eWxlPXt0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5pbnB1dE1hcFN0eWxlfVxuICAgICAgICAgICAgICAgIGxvYWRDdXN0b21NYXBTdHlsZT17dGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMubG9hZEN1c3RvbU1hcFN0eWxlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1vZGFsUHJvcHMgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnbW9kYWwudGl0bGUuYWRkQ3VzdG9tTWFwYm94U3R5bGUnLFxuICAgICAgICAgICAgICBjc3NTdHlsZTogJycsXG4gICAgICAgICAgICAgIGZvb3RlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgb25DYW5jZWw6IHRoaXMuX2Nsb3NlTW9kYWwsXG4gICAgICAgICAgICAgIG9uQ29uZmlybTogdGhpcy5fb25BZGRDdXN0b21NYXBTdHlsZSxcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjoge1xuICAgICAgICAgICAgICAgIGxhcmdlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOlxuICAgICAgICAgICAgICAgICAgbWFwU3R5bGUuaW5wdXRTdHlsZS5lcnJvciB8fFxuICAgICAgICAgICAgICAgICAgIW1hcFN0eWxlLmlucHV0U3R5bGUudXJsIHx8XG4gICAgICAgICAgICAgICAgICAhbWFwU3R5bGUuaW5wdXRTdHlsZS5sYWJlbCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5hZGRTdHlsZSdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU0FWRV9NQVBfSUQ6XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICAgICAgPFNhdmVNYXBNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIGV4cG9ydEltYWdlPXt1aVN0YXRlLmV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAgIG1hcEluZm89e3Zpc1N0YXRlLm1hcEluZm99XG4gICAgICAgICAgICAgICAgb25TZXRNYXBJbmZvPXt2aXNTdGF0ZUFjdGlvbnMuc2V0TWFwSW5mb31cbiAgICAgICAgICAgICAgICBjbGVhbnVwRXhwb3J0SW1hZ2U9e3VpU3RhdGVBY3Rpb25zLmNsZWFudXBFeHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZz17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nfVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLl9jbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAgIG9uQ29uZmlybT17cHJvdmlkZXIgPT4gdGhpcy5fb25TYXZlTWFwKHByb3ZpZGVyLCBmYWxzZSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdtb2RhbC50aXRsZS5zYXZlTWFwJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBmb290ZXI6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBPVkVSV1JJVEVfTUFQX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxPdmVyV3JpdGVNYXBNb2RhbFxuICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlclN0YXRlfVxuICAgICAgICAgICAgICAgIHRpdGxlPXtnZXQodmlzU3RhdGUsIFsnbWFwSW5mbycsICd0aXRsZSddKX1cbiAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZz17dWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nfVxuICAgICAgICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17dWlTdGF0ZUFjdGlvbnMuY2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICAgICAgICAgIG9uQ29uZmlybT17dGhpcy5fb25PdmVyd3JpdGVNYXB9XG4gICAgICAgICAgICAgICAgb25DYW5jZWw9e3RoaXMuX2Nsb3NlTW9kYWx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbW9kYWxQcm9wcyA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdPdmVyd3JpdGUgRXhpc3RpbmcgRmlsZT8nLFxuICAgICAgICAgICAgICBjc3NTdHlsZTogc21hbGxNb2RhbENzcyxcbiAgICAgICAgICAgICAgZm9vdGVyOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU0hBUkVfTUFQX0lEOlxuICAgICAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgICAgIDxTaGFyZU1hcE1vZGFsXG4gICAgICAgICAgICAgICAgey4uLnByb3ZpZGVyU3RhdGV9XG4gICAgICAgICAgICAgICAgb25FeHBvcnQ9e3RoaXMuX29uU2hhcmVNYXBVcmx9XG4gICAgICAgICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXt1aVN0YXRlQWN0aW9ucy5jbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e3VpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZ31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtb2RhbFByb3BzID0ge1xuICAgICAgICAgICAgICB0aXRsZTogJ21vZGFsLnRpdGxlLnNoYXJlVVJMJyxcbiAgICAgICAgICAgICAgY3NzU3R5bGU6ICcnLFxuICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5fb25DbG9zZVNhdmVNYXBcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJvb3ROb2RlID8gKFxuICAgICAgICA8TW9kYWxEaWFsb2dcbiAgICAgICAgICBwYXJlbnRTZWxlY3Rvcj17KCkgPT4gcm9vdE5vZGUgYXMgSFRNTEVsZW1lbnR9XG4gICAgICAgICAgaXNPcGVuPXtCb29sZWFuKGN1cnJlbnRNb2RhbCl9XG4gICAgICAgICAgb25DYW5jZWw9e3RoaXMuX2Nsb3NlTW9kYWx9XG4gICAgICAgICAgey4uLm1vZGFsUHJvcHN9XG4gICAgICAgICAgY3NzU3R5bGU9e0RlZmF1bHRTdHlsZS5jb25jYXQobW9kYWxQcm9wcy5jc3NTdHlsZSl9XG4gICAgICAgID5cbiAgICAgICAgICB7dGVtcGxhdGV9XG4gICAgICAgIDwvTW9kYWxEaWFsb2c+XG4gICAgICApIDogbnVsbDtcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG4gIH1cblxuICByZXR1cm4gTW9kYWxDb250YWluZXI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsSUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBT0EsSUFBQU8sTUFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsWUFBQSxHQUFBTCxzQkFBQSxDQUFBSCxPQUFBO0FBR0EsSUFBQVMsZ0JBQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFVLGtCQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVyxlQUFBLEdBQUFSLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBWSxjQUFBLEdBQUFULHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBYSxpQkFBQSxHQUFBVixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQWMsZ0JBQUEsR0FBQVgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFlLGVBQUEsR0FBQVosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFnQixpQkFBQSxHQUFBYixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQWlCLGFBQUEsR0FBQWQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFrQixjQUFBLEdBQUFmLHNCQUFBLENBQUFILE9BQUE7QUFHQSxJQUFBbUIsT0FBQSxHQUFBbkIsT0FBQTtBQUF3QyxJQUFBb0IsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWpDeEM7QUFDQTtBQW1CQTtBQVlBO0FBR0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQTlCLHdCQUFBOEIsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFXLFFBQUFuQixDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBUSxNQUFBLENBQUFTLElBQUEsQ0FBQXBCLENBQUEsT0FBQVcsTUFBQSxDQUFBVSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFYLE1BQUEsQ0FBQVUscUJBQUEsQ0FBQXJCLENBQUEsR0FBQUUsQ0FBQSxLQUFBb0IsQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQXJCLENBQUEsV0FBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFFLENBQUEsRUFBQXNCLFVBQUEsT0FBQXJCLENBQUEsQ0FBQXNCLElBQUEsQ0FBQUMsS0FBQSxDQUFBdkIsQ0FBQSxFQUFBbUIsQ0FBQSxZQUFBbkIsQ0FBQTtBQUFBLFNBQUF3QixjQUFBM0IsQ0FBQSxhQUFBRSxDQUFBLE1BQUFBLENBQUEsR0FBQTBCLFNBQUEsQ0FBQUMsTUFBQSxFQUFBM0IsQ0FBQSxVQUFBQyxDQUFBLFdBQUF5QixTQUFBLENBQUExQixDQUFBLElBQUEwQixTQUFBLENBQUExQixDQUFBLFFBQUFBLENBQUEsT0FBQWlCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLE9BQUEyQixPQUFBLFdBQUE1QixDQUFBLFFBQUE2QixnQkFBQSxhQUFBL0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBUyxNQUFBLENBQUFxQix5QkFBQSxHQUFBckIsTUFBQSxDQUFBc0IsZ0JBQUEsQ0FBQWpDLENBQUEsRUFBQVcsTUFBQSxDQUFBcUIseUJBQUEsQ0FBQTdCLENBQUEsS0FBQWdCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLEdBQUEyQixPQUFBLFdBQUE1QixDQUFBLElBQUFTLE1BQUEsQ0FBQUMsY0FBQSxDQUFBWixDQUFBLEVBQUFFLENBQUEsRUFBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixDQUFBLEVBQUFELENBQUEsaUJBQUFGLENBQUE7QUFBQSxTQUFBa0MsV0FBQS9CLENBQUEsRUFBQW1CLENBQUEsRUFBQXRCLENBQUEsV0FBQXNCLENBQUEsT0FBQWEsZ0JBQUEsYUFBQWIsQ0FBQSxPQUFBYywyQkFBQSxhQUFBakMsQ0FBQSxFQUFBa0MseUJBQUEsS0FBQUMsT0FBQSxDQUFBQyxTQUFBLENBQUFqQixDQUFBLEVBQUF0QixDQUFBLFlBQUFtQyxnQkFBQSxhQUFBaEMsQ0FBQSxFQUFBcUMsV0FBQSxJQUFBbEIsQ0FBQSxDQUFBSSxLQUFBLENBQUF2QixDQUFBLEVBQUFILENBQUE7QUFBQSxTQUFBcUMsMEJBQUEsY0FBQWxDLENBQUEsSUFBQXNDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUEzQixJQUFBLENBQUFzQixPQUFBLENBQUFDLFNBQUEsQ0FBQUUsT0FBQSxpQ0FBQXRDLENBQUEsYUFBQWtDLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFsQyxDQUFBO0FBNkJBLElBQU15QyxtQkFBbUIsT0FBR0MscUJBQUcsRUFBQXRELGVBQUEsS0FBQUEsZUFBQSxPQUFBdUQsdUJBQUEsd0dBTTNCQyxhQUFLLENBQUNDLFFBQVEsQ0FBQXhELGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFzRCx1QkFBQSwyQ0FFWEMsYUFBSyxDQUFDRSxJQUFJLENBQUF4RCxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBcUQsdUJBQUEsK0RBSWhCO0FBQ0QsSUFBTUksYUFBYSxPQUFHTCxxQkFBRyxFQUFBbkQsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQW9ELHVCQUFBLHNFQUd4QjtBQUVELElBQU1LLGtCQUFrQixPQUFHTixxQkFBRyxFQUFBbEQsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQW1ELHVCQUFBLG9DQUU3QjtBQUVELElBQU1NLFlBQVksT0FBR1AscUJBQUcsRUFBQWpELGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFrRCx1QkFBQSwyQ0FFdkI7QUEwQkRPLHFCQUFxQixDQUFDQyxJQUFJLEdBQUcsQ0FDM0JDLDJCQUF5QixFQUN6QkMsNkJBQXdCLEVBQ3hCQywwQkFBcUIsRUFDckJDLHlCQUFvQixFQUNwQkMsNEJBQXVCLEVBQ3ZCQywyQkFBc0IsRUFDdEJDLDBCQUFxQixFQUNyQkMsNEJBQXVCLEVBQ3ZCQyx1QkFBa0IsRUFDbEJDLHdCQUFtQixFQUNuQkMseUJBQW9CLENBQ3JCO0FBRWMsU0FBU1oscUJBQXFCQSxDQUMzQ2Esa0JBQWdFLEVBQ2hFQyxpQkFBOEQsRUFDOURDLGNBQXdELEVBQ3hEQyxhQUFzRCxFQUN0REMsZ0JBQTRELEVBQzVEQyxlQUEwRCxFQUMxREMsY0FBd0QsRUFDeERDLGdCQUE0RCxFQUM1REMsV0FBa0QsRUFDbERDLFlBQW9ELEVBQ3BEQyxhQUFzRCxFQUNkO0VBQ3hDO0VBQUEsSUFDTUMsY0FBYywwQkFBQUMsVUFBQTtJQUFBLFNBQUFELGVBQUE7TUFBQSxJQUFBRSxLQUFBO01BQUEsSUFBQUMsZ0JBQUEsbUJBQUFILGNBQUE7TUFBQSxTQUFBSSxJQUFBLEdBQUFyRCxTQUFBLENBQUFDLE1BQUEsRUFBQXFELElBQUEsT0FBQUMsS0FBQSxDQUFBRixJQUFBLEdBQUFHLElBQUEsTUFBQUEsSUFBQSxHQUFBSCxJQUFBLEVBQUFHLElBQUE7UUFBQUYsSUFBQSxDQUFBRSxJQUFBLElBQUF4RCxTQUFBLENBQUF3RCxJQUFBO01BQUE7TUFBQUwsS0FBQSxHQUFBN0MsVUFBQSxPQUFBMkMsY0FBQSxLQUFBUSxNQUFBLENBQUFILElBQUE7TUFDbEI7TUFBQSxJQUFBbkQsZ0JBQUEsYUFBQWdELEtBQUEsdUJBQ29CLFlBQU07UUFDeEJPLG9CQUFRLENBQUNDLGdCQUFnQixDQUFDLE9BQU8sRUFBRVIsS0FBQSxDQUFLUyxRQUFRLENBQUM7TUFDbkQsQ0FBQztNQUFBLElBQUF6RCxnQkFBQSxhQUFBZ0QsS0FBQSxjQUtVLFVBQUFVLEtBQUssRUFBSTtRQUNsQixJQUFNQyxPQUFPLEdBQUdELEtBQUssQ0FBQ0MsT0FBTztRQUM3QixJQUFJQSxPQUFPLEtBQUtDLG1CQUFRLENBQUNDLGFBQWEsRUFBRTtVQUN0Q2IsS0FBQSxDQUFLYyxXQUFXLENBQUMsQ0FBQztRQUNwQjtNQUNGLENBQUM7TUFBQSxJQUFBOUQsZ0JBQUEsYUFBQWdELEtBQUEsaUJBRWEsWUFBTTtRQUNsQkEsS0FBQSxDQUFLZSxLQUFLLENBQUNDLGNBQWMsQ0FBQ0MsV0FBVyxDQUFDLElBQUksQ0FBQztNQUM3QyxDQUFDO01BQUEsSUFBQWpFLGdCQUFBLGFBQUFnRCxLQUFBLG9CQUVnQixVQUFBa0IsR0FBRyxFQUFJO1FBQ3RCbEIsS0FBQSxDQUFLZSxLQUFLLENBQUNJLGVBQWUsQ0FBQ0MsYUFBYSxDQUFDRixHQUFHLENBQUM7UUFDN0NsQixLQUFBLENBQUtjLFdBQVcsQ0FBQyxDQUFDO01BQ3BCLENBQUM7TUFBQSxJQUFBOUQsZ0JBQUEsYUFBQWdELEtBQUEsMEJBRXNCLFlBQU07UUFDM0JBLEtBQUEsQ0FBS2UsS0FBSyxDQUFDTSxlQUFlLENBQUNDLGlCQUFpQixDQUFDLENBQUM7UUFDOUN0QixLQUFBLENBQUtjLFdBQVcsQ0FBQyxDQUFDO01BQ3BCLENBQUM7TUFBQSxJQUFBOUQsZ0JBQUEsYUFBQWdELEtBQUEsbUJBRWUsVUFBQXVCLFFBQVEsRUFBSTtRQUMxQnZCLEtBQUEsQ0FBS2UsS0FBSyxDQUFDSSxlQUFlLENBQUNLLFNBQVMsQ0FBQ0QsUUFBUSxDQUFDO01BQ2hELENBQUM7TUFBQSxJQUFBdkUsZ0JBQUEsYUFBQWdELEtBQUEscUJBRWlCLFVBQ2hCeUIsT0FBb0UsRUFDcEVDLGlCQUF1QyxFQUNwQztRQUNIMUIsS0FBQSxDQUFLZSxLQUFLLENBQUNJLGVBQWUsQ0FBQ1EsYUFBYSxDQUN0QztVQUNFQyxJQUFJLEVBQUU7WUFBQ0MsS0FBSyxFQUFFSixPQUFPLENBQUNLLElBQUk7WUFBRUMsSUFBSSxFQUFFTixPQUFPLENBQUNNLElBQUk7WUFBRUMsTUFBTSxFQUFFO1VBQU0sQ0FBQztVQUMvREMsSUFBSSxFQUFFO1lBQ0pDLE1BQU0sRUFBRSxDQUFBUixpQkFBaUIsYUFBakJBLGlCQUFpQix1QkFBakJBLGlCQUFpQixDQUFFUSxNQUFNLEtBQUksRUFBRTtZQUN2Q0MsSUFBSSxFQUFFO1VBQ1IsQ0FBQztVQUNEQyxRQUFRLEVBQUF4RixhQUFBLENBQUFBLGFBQUEsS0FDSDhFLGlCQUFpQixHQUNqQkQsT0FBTyxDQUFDVyxRQUFRLENBQ3BCO1VBQ0Q7VUFDQUMsb0JBQW9CLEVBQUUsQ0FDcEJDLDBCQUFlLENBQUNDLElBQUksRUFDcEJELDBCQUFlLENBQUNFLE9BQU8sRUFDdkJGLDBCQUFlLFdBQVEsQ0FDeEI7VUFDREcsb0JBQW9CLEVBQUU7UUFDeEIsQ0FBQyxFQUNEO1VBQ0VDLGdCQUFnQixFQUFFLElBQUk7VUFDdEJDLFNBQVMsRUFBRTtRQUNiLENBQ0YsQ0FBQztRQUNEM0MsS0FBQSxDQUFLYyxXQUFXLENBQUMsQ0FBQztNQUNwQixDQUFDO01BQUEsSUFBQTlELGdCQUFBLGFBQUFnRCxLQUFBLG9CQUVnQixZQUFNO1FBQ3JCLElBQUksQ0FBQ0EsS0FBQSxDQUFLZSxLQUFLLENBQUM2QixPQUFPLENBQUNDLFdBQVcsQ0FBQ0MsVUFBVSxFQUFFO1VBQzlDLElBQUFELGtCQUFXLEVBQUM3QyxLQUFBLENBQUtlLEtBQUssQ0FBQzZCLE9BQU8sQ0FBQ0MsV0FBVyxLQUFBdkMsTUFBQSxDQUFLTixLQUFBLENBQUtlLEtBQUssQ0FBQ2dDLE9BQU8sU0FBTSxDQUFDO1VBQ3hFL0MsS0FBQSxDQUFLZSxLQUFLLENBQUNDLGNBQWMsQ0FBQ2dDLGtCQUFrQixDQUFDLENBQUM7VUFDOUNoRCxLQUFBLENBQUtjLFdBQVcsQ0FBQyxDQUFDO1FBQ3BCO01BQ0YsQ0FBQztNQUFBLElBQUE5RCxnQkFBQSxhQUFBZ0QsS0FBQSxtQkFFZSxZQUFNO1FBQ3BCLElBQUFpRCxvQkFBVSxFQUFDakQsS0FBQSxDQUFLZSxLQUFLLEVBQUVmLEtBQUEsQ0FBS2UsS0FBSyxDQUFDNkIsT0FBTyxDQUFDSyxVQUFVLENBQUM7UUFDckRqRCxLQUFBLENBQUtjLFdBQVcsQ0FBQyxDQUFDO01BQ3BCLENBQUM7TUFBQSxJQUFBOUQsZ0JBQUEsYUFBQWdELEtBQUEsa0JBRWMsWUFBTTtRQUNuQixJQUFPNEMsT0FBTyxHQUFJNUMsS0FBQSxDQUFLZSxLQUFLLENBQXJCNkIsT0FBTztRQUNkLElBQU9aLE1BQU0sR0FBSVksT0FBTyxDQUFDTSxTQUFTLENBQTNCbEIsTUFBTTtRQUNiLENBQUNBLE1BQU0sS0FBS21CLDZCQUFrQixDQUFDQyxJQUFJLEdBQUdDLGlCQUFVLEdBQUdDLGlCQUFVLEVBQzNEdEQsS0FBQSxDQUFLZSxLQUFLLEVBQ1ZmLEtBQUEsQ0FBS2UsS0FBSyxDQUFDNkIsT0FBTyxDQUFDTSxTQUFTLENBQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQzNDLENBQUM7UUFDRGhDLEtBQUEsQ0FBS2MsV0FBVyxDQUFDLENBQUM7TUFDcEIsQ0FBQztNQUFBLElBQUE5RCxnQkFBQSxhQUFBZ0QsS0FBQSx3QkFFb0IsVUFBQXVELElBQUEsRUFBaUQ7UUFBQSxJQUEvQ0MsUUFBUSxHQUFBRCxJQUFBLENBQVJDLFFBQVE7VUFBRUMsUUFBUSxHQUFBRixJQUFBLENBQVJFLFFBQVE7VUFBRUMsU0FBUyxHQUFBSCxJQUFBLENBQVRHLFNBQVM7VUFBRUMsVUFBVSxHQUFBSixJQUFBLENBQVZJLFVBQVU7UUFDOUQsSUFBTUMsTUFBTSxHQUFHLElBQUFWLGdCQUFTLEVBQUNsRCxLQUFBLENBQUtlLEtBQUssQ0FBQztRQUVwQ2YsS0FBQSxDQUFLZSxLQUFLLENBQUM4QyxlQUFlLENBQUNDLGlCQUFpQixDQUFDO1VBQzNDQyxPQUFPLEVBQUVILE1BQU07VUFDZkosUUFBUSxFQUFSQSxRQUFRO1VBQ1JRLE9BQU8sRUFBRTtZQUNQUCxRQUFRLEVBQVJBLFFBQVE7WUFDUkMsU0FBUyxFQUFUQSxTQUFTO1lBQ1RPLGdCQUFnQixFQUFFakUsS0FBQSxDQUFLZSxLQUFLLENBQUNtRCxhQUFhLENBQUNDO1VBQzdDLENBQUM7VUFDRFIsVUFBVSxFQUFWQSxVQUFVO1VBQ1ZTLFNBQVMsRUFBRXBFLEtBQUEsQ0FBS2UsS0FBSyxDQUFDc0Qsc0JBQXNCO1VBQzVDQyxPQUFPLEVBQUV0RSxLQUFBLENBQUtlLEtBQUssQ0FBQ3dEO1FBQ3RCLENBQUMsQ0FBQztNQUNKLENBQUM7TUFBQSxJQUFBdkgsZ0JBQUEsYUFBQWdELEtBQUEsZ0JBRVksVUFBQ3dELFFBQVEsRUFBd0I7UUFBQSxJQUF0QkUsU0FBUyxHQUFBN0csU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQTJILFNBQUEsR0FBQTNILFNBQUEsTUFBRyxLQUFLO1FBQ3ZDbUQsS0FBQSxDQUFLeUUsa0JBQWtCLENBQUM7VUFDdEJqQixRQUFRLEVBQVJBLFFBQVE7VUFDUkMsUUFBUSxFQUFFLEtBQUs7VUFDZkMsU0FBUyxFQUFUQSxTQUFTO1VBQ1RDLFVBQVUsRUFBRTtRQUNkLENBQUMsQ0FBQztNQUNKLENBQUM7TUFBQSxJQUFBM0csZ0JBQUEsYUFBQWdELEtBQUEscUJBRWlCLFVBQUF3RCxRQUFRLEVBQUk7UUFDNUJ4RCxLQUFBLENBQUswRSxVQUFVLENBQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDO01BQ2pDLENBQUM7TUFBQSxJQUFBeEcsZ0JBQUEsYUFBQWdELEtBQUEsb0JBRWdCLFVBQUF3RCxRQUFRLEVBQUk7UUFDM0J4RCxLQUFBLENBQUt5RSxrQkFBa0IsQ0FBQztVQUFDakIsUUFBUSxFQUFSQSxRQUFRO1VBQUVDLFFBQVEsRUFBRSxJQUFJO1VBQUVDLFNBQVMsRUFBRSxLQUFLO1VBQUVDLFVBQVUsRUFBRTtRQUFLLENBQUMsQ0FBQztNQUMxRixDQUFDO01BQUEsSUFBQTNHLGdCQUFBLGFBQUFnRCxLQUFBLHFCQUVpQixZQUFNO1FBQ3RCQSxLQUFBLENBQUtlLEtBQUssQ0FBQzhDLGVBQWUsQ0FBQ2MsbUJBQW1CLENBQUMsQ0FBQztRQUNoRDNFLEtBQUEsQ0FBS2MsV0FBVyxDQUFDLENBQUM7TUFDcEIsQ0FBQztNQUFBLElBQUE5RCxnQkFBQSxhQUFBZ0QsS0FBQSxxQkFFaUIsVUFBQTRFLE9BQU8sRUFBSTtRQUMzQjVFLEtBQUEsQ0FBS2UsS0FBSyxDQUFDOEMsZUFBZSxDQUFDZ0IsWUFBWSxDQUFBakksYUFBQSxDQUFBQSxhQUFBLEtBQ2xDZ0ksT0FBTztVQUNWUixTQUFTLEVBQUVwRSxLQUFBLENBQUtlLEtBQUssQ0FBQytELHFCQUFxQjtVQUMzQ1IsT0FBTyxFQUFFdEUsS0FBQSxDQUFLZSxLQUFLLENBQUNnRTtRQUFtQixFQUN4QyxDQUFDO01BQ0osQ0FBQztNQUFBLE9BQUEvRSxLQUFBO0lBQUE7SUFBQSxJQUFBZ0YsVUFBQSxhQUFBbEYsY0FBQSxFQUFBQyxVQUFBO0lBQUEsV0FBQWtGLGFBQUEsYUFBQW5GLGNBQUE7TUFBQW9CLEdBQUE7TUFBQWdFLEtBQUEsRUFoSUQsU0FBQUMsb0JBQW9CQSxDQUFBLEVBQUc7UUFDckI1RSxvQkFBUSxDQUFDNkUsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQzNFLFFBQVEsQ0FBQztNQUN0RDtJQUFDO01BQUFTLEdBQUE7TUFBQWdFLEtBQUEsRUFnSUQ7TUFDQSxTQUFBRyxNQUFNQSxDQUFBLEVBQUc7UUFBQSxJQUFBQyxNQUFBO1FBQ1AsSUFBQUMsV0FBQSxHQVdJLElBQUksQ0FBQ3hFLEtBQUs7VUFWWnlFLFVBQVUsR0FBQUQsV0FBQSxDQUFWQyxVQUFVO1VBQ1ZDLFVBQVUsR0FBQUYsV0FBQSxDQUFWRSxVQUFVO1VBQ1ZDLFFBQVEsR0FBQUgsV0FBQSxDQUFSRyxRQUFRO1VBQ1JDLFFBQVEsR0FBQUosV0FBQSxDQUFSSSxRQUFRO1VBQ1IvQyxPQUFPLEdBQUEyQyxXQUFBLENBQVAzQyxPQUFPO1VBQ1BnRCxRQUFRLEdBQUFMLFdBQUEsQ0FBUkssUUFBUTtVQUNSQyxRQUFRLEdBQUFOLFdBQUEsQ0FBUk0sUUFBUTtVQUNSMUUsZUFBZSxHQUFBb0UsV0FBQSxDQUFmcEUsZUFBZTtVQUNmSCxjQUFjLEdBQUF1RSxXQUFBLENBQWR2RSxjQUFjO1VBQ2RrRCxhQUFhLEdBQUFxQixXQUFBLENBQWJyQixhQUFhO1FBRWYsSUFBTzRCLFlBQVksR0FBd0JsRCxPQUFPLENBQTNDa0QsWUFBWTtVQUFFQyxrQkFBa0IsR0FBSW5ELE9BQU8sQ0FBN0JtRCxrQkFBa0I7UUFDdkMsSUFBT0MsUUFBUSxHQUE0QkosUUFBUSxDQUE1Q0ksUUFBUTtVQUFFQyxNQUFNLEdBQW9CTCxRQUFRLENBQWxDSyxNQUFNO1VBQUVDLGNBQWMsR0FBSU4sUUFBUSxDQUExQk0sY0FBYztRQUV2QyxJQUFJQyxRQUE0QixHQUFHLElBQUk7UUFDdkMsSUFBSUMsVUFBcUMsR0FBRyxDQUFDLENBQUM7O1FBRTlDO1FBQ0E7UUFDQSxJQUFJTixZQUFZLElBQUlBLFlBQVksQ0FBQ08sRUFBRSxJQUFJUCxZQUFZLENBQUNLLFFBQVEsRUFBRTtVQUM1RDtVQUNBO1VBQ0E7VUFDQUEsUUFBUSxnQkFBR2pOLE1BQUEsWUFBQW9OLGFBQUEsQ0FBQ1IsWUFBWSxDQUFDSyxRQUFRLE1BQUUsQ0FBQztVQUNwQztVQUNBQyxVQUFVLEdBQUdOLFlBQVksQ0FBQ00sVUFBVTtRQUN0QyxDQUFDLE1BQU07VUFDTCxRQUFRTixZQUFZO1lBQ2xCLEtBQUtTLHdCQUFhO2NBQUU7Z0JBQ2xCLElBQU1DLEtBQUssR0FBR2hCLFVBQVUsR0FBRyxHQUFHO2dCQUM5QlcsUUFBUSxnQkFDTmpOLE1BQUEsWUFBQW9OLGFBQUEsQ0FBQ2pILGNBQWM7a0JBQ2IyRyxRQUFRLEVBQUVBLFFBQVM7a0JBQ25CUyxNQUFNLEVBQUVQLGNBQWU7a0JBQ3ZCUSxnQkFBZ0IsRUFBRXZGLGVBQWUsQ0FBQ3VGLGdCQUFpQjtrQkFDbkRDLGVBQWUsRUFBRXhGLGVBQWUsQ0FBQ3dGLGVBQWdCO2tCQUNqREMsY0FBYyxFQUFFekYsZUFBZSxDQUFDeUYsY0FBZTtrQkFDL0NDLGVBQWUsRUFBRTFGLGVBQWUsQ0FBQzBGLGVBQWdCO2tCQUNqREMsc0JBQXNCLEVBQUUzRixlQUFlLENBQUMyRixzQkFBdUI7a0JBQy9EOUYsY0FBYyxFQUFFQSxjQUFlO2tCQUMvQjRCLE9BQU8sRUFBRUE7Z0JBQVEsQ0FDbEIsQ0FDRjs7Z0JBRUQ7Z0JBQ0E7Z0JBQ0F3RCxVQUFVLENBQUNXLFFBQVEsT0FBR2pKLHFCQUFHLEVBQUFoRCxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBaUQsdUJBQUEsNkVBQ3JCRixtQkFBbUIsRUFDbkJHLGFBQUssQ0FBQ0UsSUFBSSxDQUFBbkQsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQWdELHVCQUFBLHFFQUNEeUksS0FBSyxFQUVqQjtnQkFDRDtjQUNGO1lBQ0EsS0FBS1EseUJBQWM7Y0FBRTtnQkFDbkI7Z0JBQ0EsSUFBSWpCLGtCQUFrQixJQUFJQyxRQUFRLElBQUlBLFFBQVEsQ0FBQ0Qsa0JBQWtCLENBQUMsRUFBRTtrQkFDbEVJLFFBQVEsZ0JBQ05qTixNQUFBLFlBQUFvTixhQUFBLENBQUNuSCxrQkFBa0I7b0JBQUM4SCxPQUFPLEVBQUVqQixRQUFRLENBQUNELGtCQUFrQixDQUFFO29CQUFDRSxNQUFNLEVBQUVBO2tCQUFPLENBQUUsQ0FDN0U7a0JBQ0RHLFVBQVUsR0FBRztvQkFDWGMsS0FBSyxFQUFFLDJCQUEyQjtvQkFDbENILFFBQVEsRUFBRTVJLGFBQWE7b0JBQ3ZCZ0osTUFBTSxFQUFFLElBQUk7b0JBQ1pDLFNBQVMsRUFBRSxTQUFYQSxTQUFTQSxDQUFBO3NCQUFBLE9BQVE5QixNQUFJLENBQUMrQixjQUFjLENBQUN0QixrQkFBa0IsQ0FBQztvQkFBQTtvQkFDeER1QixRQUFRLEVBQUUsSUFBSSxDQUFDeEcsV0FBVztvQkFDMUJ5RyxhQUFhLEVBQUU7c0JBQ2JDLFFBQVEsRUFBRSxJQUFJO3NCQUNkQyxLQUFLLEVBQUUsSUFBSTtzQkFDWEMsUUFBUSxFQUFFO29CQUNaO2tCQUNGLENBQUM7Z0JBQ0g7Z0JBQ0EsTUFBTSxDQUFDO2NBQ1Q7WUFDQSxLQUFLQyxzQkFBVztjQUNkeEIsUUFBUSxnQkFDTmpOLE1BQUEsWUFBQW9OLGFBQUEsQ0FBQ2hILGFBQWEsTUFBQXNJLFNBQUEsaUJBQ1IxRCxhQUFhO2dCQUNqQjJELE9BQU8sRUFBRSxJQUFJLENBQUMvRyxXQUFZO2dCQUMxQmdILFlBQVksRUFBRSxJQUFJLENBQUNDLGFBQWM7Z0JBQ2pDQyxjQUFjLEVBQUUsSUFBSSxDQUFDQyxlQUFnQjtnQkFDckNDLGNBQWMsRUFBRSxJQUFJLENBQUNDLGVBQWdCO2dCQUNyQzNHLFNBQVMsRUFBRW9CLE9BQU8sQ0FBQ3BCLFNBQVU7Z0JBQzdCNEcsV0FBVyxFQUFFeEMsUUFBUSxDQUFDd0MsV0FBWTtnQkFDbENDLG1CQUFtQixFQUFFekMsUUFBUSxDQUFDeUMsbUJBQW9CO2dCQUNsREMsZUFBZSxFQUFFLElBQUFDLDRCQUFrQixFQUFDLElBQUksQ0FBQ3hILEtBQUssQ0FBQzZFLFFBQVEsQ0FBRTtnQkFDekQ0QyxjQUFjLEVBQUUsSUFBQUMsMkJBQWlCLEVBQUMsSUFBSSxDQUFDMUgsS0FBSyxDQUFDNkUsUUFBUTtjQUFFLEVBQ3hELENBQ0Y7Y0FDRFEsVUFBVSxHQUFHO2dCQUNYYyxLQUFLLEVBQUUsMEJBQTBCO2dCQUNqQ0gsUUFBUSxFQUFFM0ksa0JBQWtCO2dCQUM1QitJLE1BQU0sRUFBRSxLQUFLO2dCQUNiQyxTQUFTLEVBQUUsSUFBSSxDQUFDdEc7Y0FDbEIsQ0FBQztjQUNEO1lBQ0YsS0FBSzRILDBCQUFlO2NBQ2xCdkMsUUFBUSxnQkFDTmpOLE1BQUEsWUFBQW9OLGFBQUEsQ0FBQy9HLGdCQUFnQjtnQkFDZnNELFdBQVcsRUFBRUQsT0FBTyxDQUFDQyxXQUFZO2dCQUNqQzhGLElBQUksRUFBRW5ELFVBQVc7Z0JBQ2pCb0QsSUFBSSxFQUFFbkQsVUFBVztnQkFDakJvRCxvQkFBb0IsRUFBRTdILGNBQWMsQ0FBQzhILHFCQUFzQjtnQkFDM0Q5RixrQkFBa0IsRUFBRWhDLGNBQWMsQ0FBQ2dDO2NBQW1CLENBQ3ZELENBQ0Y7Y0FDRG9ELFVBQVUsR0FBRztnQkFDWGMsS0FBSyxFQUFFLHlCQUF5QjtnQkFDaENILFFBQVEsRUFBRSxFQUFFO2dCQUNaSSxNQUFNLEVBQUUsSUFBSTtnQkFDWkcsUUFBUSxFQUFFLElBQUksQ0FBQ3hHLFdBQVc7Z0JBQzFCc0csU0FBUyxFQUFFLElBQUksQ0FBQzJCLGNBQWM7Z0JBQzlCeEIsYUFBYSxFQUFFO2tCQUNiRSxLQUFLLEVBQUUsSUFBSTtrQkFDWHVCLFFBQVEsRUFBRXBHLE9BQU8sQ0FBQ0MsV0FBVyxDQUFDQyxVQUFVO2tCQUN4QzRFLFFBQVEsRUFBRTtnQkFDWjtjQUNGLENBQUM7Y0FDRDtZQUNGLEtBQUt1Qix5QkFBYztjQUNqQjlDLFFBQVEsZ0JBQ05qTixNQUFBLFlBQUFvTixhQUFBLENBQUM5RyxlQUFlLE1BQUFvSSxTQUFBLGlCQUNWaEYsT0FBTyxDQUFDSyxVQUFVO2dCQUN0QmlHLGtCQUFrQixFQUFFQyxtQ0FBeUI7Z0JBQzdDbkQsUUFBUSxFQUFFQSxRQUFTO2dCQUNuQm9ELGNBQWMsRUFBRSxJQUFJLENBQUNySSxLQUFLLENBQUNJLGVBQWUsQ0FBQ2lJLGNBQWU7Z0JBQzFEQyxzQkFBc0IsRUFBRXJJLGNBQWMsQ0FBQ3NJLGlCQUFrQjtnQkFDekRDLDZCQUE2QixFQUFFdkksY0FBYyxDQUFDd0ksd0JBQXlCO2dCQUN2RUMsc0JBQXNCLEVBQUV6SSxjQUFjLENBQUMwSTtjQUFrQixFQUMxRCxDQUNGO2NBQ0R0RCxVQUFVLEdBQUc7Z0JBQ1hjLEtBQUssRUFBRSx3QkFBd0I7Z0JBQy9CSCxRQUFRLEVBQUUsRUFBRTtnQkFDWkksTUFBTSxFQUFFLElBQUk7Z0JBQ1pHLFFBQVEsRUFBRSxJQUFJLENBQUN4RyxXQUFXO2dCQUMxQnNHLFNBQVMsRUFBRSxJQUFJLENBQUN1QyxhQUFhO2dCQUM3QnBDLGFBQWEsRUFBRTtrQkFDYkUsS0FBSyxFQUFFLElBQUk7a0JBQ1hDLFFBQVEsRUFBRTtnQkFDWjtjQUNGLENBQUM7Y0FDRDtZQUNGLEtBQUtrQyx3QkFBYTtjQUFFO2dCQUNsQixJQUFNQyxjQUFjLEdBQUdqRSxRQUFRLENBQUNrRSxNQUFNLENBQUNDLGVBQWUsQ0FBQztrQkFDckRyRSxRQUFRLEVBQVJBLFFBQVE7a0JBQ1JFLFFBQVEsRUFBUkEsUUFBUTtrQkFDUkQsUUFBUSxFQUFSQSxRQUFRO2tCQUNSL0MsT0FBTyxFQUFQQTtnQkFDRixDQUFDLENBQUM7Z0JBQ0Z1RCxRQUFRLGdCQUNOak4sTUFBQSxZQUFBb04sYUFBQSxDQUFDN0csY0FBYztrQkFDYnVLLE1BQU0sRUFBRUgsY0FBZTtrQkFDdkI3RixPQUFPLEVBQUVwQixPQUFPLENBQUNNLFNBQVU7a0JBQzNCK0csdUJBQXVCLEVBQUVqSixjQUFjLENBQUNrSixrQkFBbUI7a0JBQzNEQywyQkFBMkIsRUFBRW5KLGNBQWMsQ0FBQ29KLHdCQUF5QjtrQkFDckVDLHlCQUF5QixFQUFFckosY0FBYyxDQUFDc0o7Z0JBQXFCLENBQ2hFLENBQ0Y7Z0JBQ0RsRSxVQUFVLEdBQUc7a0JBQ1hjLEtBQUssRUFBRSx1QkFBdUI7a0JBQzlCSCxRQUFRLEVBQUUsRUFBRTtrQkFDWkksTUFBTSxFQUFFLElBQUk7a0JBQ1pHLFFBQVEsRUFBRSxJQUFJLENBQUN4RyxXQUFXO2tCQUMxQnNHLFNBQVMsRUFBRSxJQUFJLENBQUNtRCxZQUFZO2tCQUM1QmhELGFBQWEsRUFBRTtvQkFDYkUsS0FBSyxFQUFFLElBQUk7b0JBQ1hDLFFBQVEsRUFBRTtrQkFDWjtnQkFDRixDQUFDO2dCQUNEO2NBQ0Y7WUFDQSxLQUFLOEMsMkJBQWdCO2NBQ25CckUsUUFBUSxnQkFDTmpOLE1BQUEsWUFBQW9OLGFBQUEsQ0FBQzVHLGdCQUFnQjtnQkFDZitLLG9CQUFvQixFQUFFLElBQUksQ0FBQzFKLEtBQUssQ0FBQzBKLG9CQUFxQjtnQkFDdERDLFlBQVksRUFBRSxJQUFJLENBQUMzSixLQUFLLENBQUMySixZQUFhO2dCQUN0Qy9FLFFBQVEsRUFBRSxJQUFJLENBQUM1RSxLQUFLLENBQUM0RSxRQUFTO2dCQUM5QmdGLFVBQVUsRUFBRWpGLFFBQVEsQ0FBQ2lGLFVBQVc7Z0JBQ2hDQyxhQUFhLEVBQUUsSUFBSSxDQUFDN0osS0FBSyxDQUFDTSxlQUFlLENBQUN1SixhQUFjO2dCQUN4REMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDOUosS0FBSyxDQUFDTSxlQUFlLENBQUN3SjtjQUFtQixDQUNuRSxDQUNGO2NBQ0R6RSxVQUFVLEdBQUc7Z0JBQ1hjLEtBQUssRUFBRSxrQ0FBa0M7Z0JBQ3pDSCxRQUFRLEVBQUUsRUFBRTtnQkFDWkksTUFBTSxFQUFFLElBQUk7Z0JBQ1pHLFFBQVEsRUFBRSxJQUFJLENBQUN4RyxXQUFXO2dCQUMxQnNHLFNBQVMsRUFBRSxJQUFJLENBQUMwRCxvQkFBb0I7Z0JBQ3BDdkQsYUFBYSxFQUFFO2tCQUNiRSxLQUFLLEVBQUUsSUFBSTtrQkFDWHVCLFFBQVEsRUFDTnRELFFBQVEsQ0FBQ2lGLFVBQVUsQ0FBQ0ksS0FBSyxJQUN6QixDQUFDckYsUUFBUSxDQUFDaUYsVUFBVSxDQUFDSyxHQUFHLElBQ3hCLENBQUN0RixRQUFRLENBQUNpRixVQUFVLENBQUM5SSxLQUFLO2tCQUM1QjZGLFFBQVEsRUFBRTtnQkFDWjtjQUNGLENBQUM7Y0FDRDtZQUNGLEtBQUt1RCxzQkFBVztjQUNkOUUsUUFBUSxnQkFDTmpOLE1BQUEsWUFBQW9OLGFBQUEsQ0FBQzFHLFlBQVksTUFBQWdJLFNBQUEsaUJBQ1AxRCxhQUFhO2dCQUNqQnJCLFdBQVcsRUFBRUQsT0FBTyxDQUFDQyxXQUFZO2dCQUNqQ3FJLE9BQU8sRUFBRXRGLFFBQVEsQ0FBQ3NGLE9BQVE7Z0JBQzFCQyxZQUFZLEVBQUVoSyxlQUFlLENBQUNpSyxVQUFXO2dCQUN6Q3BJLGtCQUFrQixFQUFFaEMsY0FBYyxDQUFDZ0Msa0JBQW1CO2dCQUN0RDZGLG9CQUFvQixFQUFFN0gsY0FBYyxDQUFDOEgscUJBQXNCO2dCQUMzRHhCLFFBQVEsRUFBRSxJQUFJLENBQUN4RyxXQUFZO2dCQUMzQnNHLFNBQVMsRUFBRSxTQUFYQSxTQUFTQSxDQUFFNUQsUUFBUTtrQkFBQSxPQUFJOEIsTUFBSSxDQUFDWixVQUFVLENBQUNsQixRQUFRLEVBQUUsS0FBSyxDQUFDO2dCQUFBO2NBQUMsRUFDekQsQ0FDRjtjQUNENEMsVUFBVSxHQUFHO2dCQUNYYyxLQUFLLEVBQUUscUJBQXFCO2dCQUM1QkgsUUFBUSxFQUFFLEVBQUU7Z0JBQ1pJLE1BQU0sRUFBRTtjQUNWLENBQUM7Y0FDRDtZQUNGLEtBQUtrRSwyQkFBZ0I7Y0FDbkJsRixRQUFRLGdCQUNOak4sTUFBQSxZQUFBb04sYUFBQSxDQUFDbEgsaUJBQWlCLE1BQUF3SSxTQUFBLGlCQUNaMUQsYUFBYTtnQkFDakJnRCxLQUFLLEVBQUUsSUFBQTFMLGVBQUcsRUFBQ29LLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBRTtnQkFDM0NpRCxvQkFBb0IsRUFBRTdILGNBQWMsQ0FBQzhILHFCQUFzQjtnQkFDM0Q5RixrQkFBa0IsRUFBRWhDLGNBQWMsQ0FBQ2dDLGtCQUFtQjtnQkFDdERvRSxTQUFTLEVBQUUsSUFBSSxDQUFDa0UsZUFBZ0I7Z0JBQ2hDaEUsUUFBUSxFQUFFLElBQUksQ0FBQ3hHO2NBQVksRUFDNUIsQ0FDRjtjQUNEc0YsVUFBVSxHQUFHO2dCQUNYYyxLQUFLLEVBQUUsMEJBQTBCO2dCQUNqQ0gsUUFBUSxFQUFFNUksYUFBYTtnQkFDdkJnSixNQUFNLEVBQUU7Y0FDVixDQUFDO2NBQ0Q7WUFDRixLQUFLb0UsdUJBQVk7Y0FDZnBGLFFBQVEsZ0JBQ05qTixNQUFBLFlBQUFvTixhQUFBLENBQUN6RyxhQUFhLE1BQUErSCxTQUFBLGlCQUNSMUQsYUFBYTtnQkFDakJzSCxRQUFRLEVBQUUsSUFBSSxDQUFDQyxjQUFlO2dCQUM5QnpJLGtCQUFrQixFQUFFaEMsY0FBYyxDQUFDZ0Msa0JBQW1CO2dCQUN0RDZGLG9CQUFvQixFQUFFN0gsY0FBYyxDQUFDOEg7Y0FBc0IsRUFDNUQsQ0FDRjtjQUNEMUMsVUFBVSxHQUFHO2dCQUNYYyxLQUFLLEVBQUUsc0JBQXNCO2dCQUM3QkgsUUFBUSxFQUFFLEVBQUU7Z0JBQ1pPLFFBQVEsRUFBRSxJQUFJLENBQUNvRTtjQUNqQixDQUFDO2NBQ0Q7WUFDRjtjQUNFO1VBQ0o7UUFDRjtRQUVBLE9BQU83RixRQUFRLGdCQUNiM00sTUFBQSxZQUFBb04sYUFBQSxDQUFDM0csV0FBVyxNQUFBaUksU0FBQTtVQUNWK0QsY0FBYyxFQUFFLFNBQWhCQSxjQUFjQSxDQUFBO1lBQUEsT0FBUTlGLFFBQVE7VUFBQSxDQUFnQjtVQUM5QytGLE1BQU0sRUFBRWxPLE9BQU8sQ0FBQ29JLFlBQVksQ0FBRTtVQUM5QndCLFFBQVEsRUFBRSxJQUFJLENBQUN4RztRQUFZLEdBQ3ZCc0YsVUFBVTtVQUNkVyxRQUFRLEVBQUUxSSxZQUFZLENBQUNpQyxNQUFNLENBQUM4RixVQUFVLENBQUNXLFFBQVE7UUFBRSxJQUVsRFosUUFDVSxDQUFDLEdBQ1osSUFBSTtNQUNWO01BQ0E7SUFBQTtFQUFBLEVBdFoyQjBGLGdCQUFTO0VBeVp0QyxPQUFPL0wsY0FBYztBQUN2QiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -18,30 +18,45 @@ var _table = require("@kepler.gl/table");
|
|
|
18
18
|
var _utils = require("@kepler.gl/utils");
|
|
19
19
|
var _useFetchRasterTileMetadata = _interopRequireDefault(require("../../hooks/use-fetch-raster-tile-metadata"));
|
|
20
20
|
var _common = require("../../common");
|
|
21
|
-
var
|
|
21
|
+
var _icons = require("../../common/icons");
|
|
22
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
|
|
22
23
|
// Copyright contributors to the kepler.gl project
|
|
23
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
24
25
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
25
26
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
26
27
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
27
|
-
var TilesetInputContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n grid-template-rows: repeat(3, 1fr);\n row-gap:
|
|
28
|
+
var TilesetInputContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n grid-template-rows: repeat(3, 1fr);\n row-gap: 0px;\n font-size: 12px;\n"])));
|
|
28
29
|
var TilesetInputDescription = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: center;\n color: ", ";\n font-size: 11px;\n"])), function (props) {
|
|
29
30
|
return props.theme.AZURE200;
|
|
30
31
|
});
|
|
32
|
+
var LabelRow = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n"])));
|
|
31
33
|
function getDatasetAttributesFromRasterTile(_ref) {
|
|
32
34
|
var name = _ref.name,
|
|
33
35
|
metadataUrl = _ref.metadataUrl,
|
|
34
36
|
rasterTileServerUrls = _ref.rasterTileServerUrls;
|
|
37
|
+
var appConfig = (0, _utils.getApplicationConfig)();
|
|
35
38
|
return {
|
|
36
39
|
name: name,
|
|
37
40
|
type: _constants.DatasetType.RASTER_TILE,
|
|
38
|
-
metadata: _objectSpread({
|
|
41
|
+
metadata: _objectSpread(_objectSpread({
|
|
39
42
|
metadataUrl: metadataUrl
|
|
40
43
|
}, rasterTileServerUrls ? {
|
|
41
44
|
rasterTileServerUrls: rasterTileServerUrls
|
|
42
|
-
} : {})
|
|
45
|
+
} : {}), {}, {
|
|
46
|
+
// Persist raster server-related application config with the layer
|
|
47
|
+
rasterServerUseLatestTitiler: appConfig.rasterServerUseLatestTitiler,
|
|
48
|
+
rasterServerSupportsElevation: appConfig.rasterServerSupportsElevation,
|
|
49
|
+
rasterServerMaxRetries: appConfig.rasterServerMaxRetries,
|
|
50
|
+
rasterServerRetryDelay: appConfig.rasterServerRetryDelay,
|
|
51
|
+
rasterServerServerErrorsToRetry: appConfig.rasterServerServerErrorsToRetry,
|
|
52
|
+
rasterServerMaxPerServerRequests: appConfig.rasterServerMaxPerServerRequests
|
|
53
|
+
})
|
|
43
54
|
};
|
|
44
55
|
}
|
|
56
|
+
var InfoIconLink = _styledComponents["default"].a(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 4px;\n color: ", ";\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n line-height: 0;\n vertical-align: middle;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n\n svg {\n display: block;\n }\n"])), function (props) {
|
|
57
|
+
return props.theme.labelColor;
|
|
58
|
+
});
|
|
59
|
+
var RASTER_TILE_DOCUMENTATION_URL = 'https://docs.kepler.gl/docs/user-guides/c-types-of-layers/n-raster-tile-layer';
|
|
45
60
|
var parseMetadataAllowCollections = function parseMetadataAllowCollections(metadata, _ref2) {
|
|
46
61
|
var metadataUrl = _ref2.metadataUrl,
|
|
47
62
|
rasterTileType = _ref2.rasterTileType;
|
|
@@ -160,16 +175,30 @@ var RasterTileForm = function RasterTileForm(_ref3) {
|
|
|
160
175
|
placeholder: "Name your tileset",
|
|
161
176
|
value: tileName,
|
|
162
177
|
onChange: onTileNameChange
|
|
163
|
-
})), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
178
|
+
})), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(LabelRow, null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
164
179
|
htmlFor: "tile-metadata"
|
|
165
|
-
}, "Tileset metadata URL"), /*#__PURE__*/_react["default"].createElement(
|
|
180
|
+
}, "Tileset metadata URL"), /*#__PURE__*/_react["default"].createElement(InfoIconLink, {
|
|
181
|
+
href: RASTER_TILE_DOCUMENTATION_URL,
|
|
182
|
+
target: "_blank",
|
|
183
|
+
rel: "noopener noreferrer",
|
|
184
|
+
"aria-label": "Open Raster Tile Layer documentation"
|
|
185
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons.Help, {
|
|
186
|
+
height: "16px"
|
|
187
|
+
}))), /*#__PURE__*/_react["default"].createElement(_common.InputLight, {
|
|
166
188
|
id: "tile-metadata",
|
|
167
189
|
placeholder: "Tileset metadata URL",
|
|
168
190
|
value: metadataUrl !== null && metadataUrl !== void 0 ? metadataUrl : undefined,
|
|
169
191
|
onChange: onMetadataUrlChange
|
|
170
|
-
}), /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "Supports raster .pmtiles. Limited support for STAC Items and Collections.")), showServerInput && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
192
|
+
}), /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "Supports raster .pmtiles. Limited support for STAC Items and Collections.")), showServerInput && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(LabelRow, null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
171
193
|
htmlFor: "tileset-raster-servers"
|
|
172
|
-
}, "Raster tile servers"), /*#__PURE__*/_react["default"].createElement(
|
|
194
|
+
}, "Raster tile servers"), /*#__PURE__*/_react["default"].createElement(InfoIconLink, {
|
|
195
|
+
href: RASTER_TILE_DOCUMENTATION_URL,
|
|
196
|
+
target: "_blank",
|
|
197
|
+
rel: "noopener noreferrer",
|
|
198
|
+
"aria-label": "Open Raster Tile Layer documentation"
|
|
199
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons.Help, {
|
|
200
|
+
height: "16px"
|
|
201
|
+
}))), /*#__PURE__*/_react["default"].createElement(_common.InputLight, {
|
|
173
202
|
id: "tileset-raster-servers",
|
|
174
203
|
placeholder: "Raster tile servers (separated by commas)",
|
|
175
204
|
value: rasterTileServerUrls,
|
|
@@ -177,4 +206,4 @@ var RasterTileForm = function RasterTileForm(_ref3) {
|
|
|
177
206
|
}), /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "Raster tile server URLs for Cloud Optimized GeoTIFF tilesets and elevation.")));
|
|
178
207
|
};
|
|
179
208
|
var _default = exports["default"] = RasterTileForm;
|
|
180
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX3V0aWxzIiwiX3VzZUZldGNoUmFzdGVyVGlsZU1ldGFkYXRhIiwiX2NvbW1vbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJUaWxlc2V0SW5wdXRDb250YWluZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIlRpbGVzZXRJbnB1dERlc2NyaXB0aW9uIiwicHJvcHMiLCJ0aGVtZSIsIkFaVVJFMjAwIiwiZ2V0RGF0YXNldEF0dHJpYnV0ZXNGcm9tUmFzdGVyVGlsZSIsIl9yZWYiLCJuYW1lIiwibWV0YWRhdGFVcmwiLCJyYXN0ZXJUaWxlU2VydmVyVXJscyIsInR5cGUiLCJEYXRhc2V0VHlwZSIsIlJBU1RFUl9USUxFIiwibWV0YWRhdGEiLCJwYXJzZU1ldGFkYXRhQWxsb3dDb2xsZWN0aW9ucyIsIl9yZWYyIiwicmFzdGVyVGlsZVR5cGUiLCJSYXN0ZXJUaWxlVHlwZSIsIlBNVElMRVMiLCJwYXJzZVZlY3Rvck1ldGFkYXRhIiwidGlsZVVybCIsInBhcnNlUmFzdGVyTWV0YWRhdGEiLCJhbGxvd0NvbGxlY3Rpb25zIiwiUmFzdGVyVGlsZUZvcm0iLCJfcmVmMyIsInNldFJlc3BvbnNlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwidGlsZU5hbWUiLCJzZXRUaWxlTmFtZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwidGlsZU5hbWVXYXNNb2RpZmllZCIsInNldFRpbGVOYW1lV2FzTW9kaWZpZWQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldE1ldGFkYXRhVXJsIiwiX3VzZVN0YXRlNyIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwicmFzdGVyU2VydmVyVXJscyIsImpvaW4iLCJfdXNlU3RhdGU4Iiwic2V0UmFzdGVyVGlsZVNlcnZlclVybHMiLCJjbGVhcmVkTWV0YWRhdGFVcmwiLCJlbmRzV2l0aCIsInNsaWNlIiwib25UaWxlTmFtZUNoYW5nZSIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInRhcmdldCIsInZhbHVlIiwib25NZXRhZGF0YVVybENoYW5nZSIsInNwbGl0IiwiQm9vbGVhbiIsInBvcCIsIm9uUmFzdGVyVGlsZVNlcnZlclVybHNDaGFuZ2UiLCJfdXNlRmV0Y2hKc29uIiwidXNlRmV0Y2hKc29uIiwidXJsIiwiaXNQTVRpbGVzVXJsIiwiU1RBQyIsInByb2Nlc3MiLCJkYXRhIiwibG9hZGluZyIsIm1ldGFFcnJvciIsImVycm9yIiwidXNlRWZmZWN0IiwicG10aWxlc1R5cGUiLCJQTVRpbGVzVHlwZSIsIk1WVCIsImRhdGFzZXQiLCJFcnJvciIsInJhc3RlclRpbGVTZXJ2ZXJzIiwibWFwIiwic2VydmVyIiwidHJpbSIsImV2ZXJ5IiwidmFsaWRhdGVVcmwiLCJzaG93U2VydmVySW5wdXQiLCJyYXN0ZXJTZXJ2ZXJTaG93U2VydmVySW5wdXQiLCJjcmVhdGVFbGVtZW50IiwiaHRtbEZvciIsIklucHV0TGlnaHQiLCJpZCIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJ1bmRlZmluZWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kYWxzL3RpbGVzZXRzLW1vZGFscy90aWxlc2V0LXJhc3Rlci1mb3JtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7UE1UaWxlc01ldGFkYXRhfSBmcm9tICdAbG9hZGVycy5nbC9wbXRpbGVzJztcblxuaW1wb3J0IHtpc1BNVGlsZXNVcmwsIHZhbGlkYXRlVXJsfSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge0RhdGFzZXRUeXBlLCBSYXN0ZXJUaWxlVHlwZSwgUE1UaWxlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7SnNvbk9iamVjdE9yQXJyYXl9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtwYXJzZVJhc3Rlck1ldGFkYXRhLCBwYXJzZVZlY3Rvck1ldGFkYXRhfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7Z2V0QXBwbGljYXRpb25Db25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQge2RlZmF1bHQgYXMgdXNlRmV0Y2hKc29ufSBmcm9tICcuLi8uLi9ob29rcy91c2UtZmV0Y2gtcmFzdGVyLXRpbGUtbWV0YWRhdGEnO1xuaW1wb3J0IHtEYXRhc2V0Q3JlYXRpb25BdHRyaWJ1dGVzLCBNZXRhUmVzcG9uc2V9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7SW5wdXRMaWdodH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuY29uc3QgVGlsZXNldElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMywgMWZyKTtcbiAgcm93LWdhcDogMThweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuYDtcblxuY29uc3QgVGlsZXNldElucHV0RGVzY3JpcHRpb24gPSBzdHlsZWQuZGl2YFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkFaVVJFMjAwfTtcbiAgZm9udC1zaXplOiAxMXB4O1xuYDtcblxuZXhwb3J0IHR5cGUgUmFzdGVyVGlsZXNldE1ldGEgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbWV0YWRhdGFVcmw6IHN0cmluZztcbiAgcmFzdGVyVGlsZVNlcnZlclVybHM/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhc2V0QXR0cmlidXRlc0Zyb21SYXN0ZXJUaWxlKHtcbiAgbmFtZSxcbiAgbWV0YWRhdGFVcmwsXG4gIHJhc3RlclRpbGVTZXJ2ZXJVcmxzXG59OiBSYXN0ZXJUaWxlc2V0TWV0YSk6IERhdGFzZXRDcmVhdGlvbkF0dHJpYnV0ZXMge1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdHlwZTogRGF0YXNldFR5cGUuUkFTVEVSX1RJTEUsXG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIG1ldGFkYXRhVXJsLFxuICAgICAgLi4uKHJhc3RlclRpbGVTZXJ2ZXJVcmxzID8ge3Jhc3RlclRpbGVTZXJ2ZXJVcmxzfSA6IHt9KVxuICAgIH1cbiAgfTtcbn1cblxudHlwZSBSYXN0ZXJUaWxlRm9ybVByb3BzID0ge1xuICBzZXRSZXNwb25zZTogKHJlc3BvbnNlOiBNZXRhUmVzcG9uc2UpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBwYXJzZU1ldGFkYXRhQWxsb3dDb2xsZWN0aW9ucyA9IChcbiAgbWV0YWRhdGE6IEpzb25PYmplY3RPckFycmF5IHwgUE1UaWxlc01ldGFkYXRhLFxuICB7bWV0YWRhdGFVcmwsIHJhc3RlclRpbGVUeXBlfToge21ldGFkYXRhVXJsOiBzdHJpbmc7IHJhc3RlclRpbGVUeXBlOiBSYXN0ZXJUaWxlVHlwZX1cbikgPT4ge1xuICByZXR1cm4gcmFzdGVyVGlsZVR5cGUgPT09IFJhc3RlclRpbGVUeXBlLlBNVElMRVNcbiAgICA/IHBhcnNlVmVjdG9yTWV0YWRhdGEobWV0YWRhdGEgYXMgUE1UaWxlc01ldGFkYXRhLCB7XG4gICAgICAgIHRpbGVVcmw6IG1ldGFkYXRhVXJsXG4gICAgICB9KVxuICAgIDogcGFyc2VSYXN0ZXJNZXRhZGF0YShtZXRhZGF0YSBhcyBKc29uT2JqZWN0T3JBcnJheSwge2FsbG93Q29sbGVjdGlvbnM6IHRydWV9KTtcbn07XG5cbmNvbnN0IFJhc3RlclRpbGVGb3JtOiBSZWFjdC5GQzxSYXN0ZXJUaWxlRm9ybVByb3BzPiA9ICh7c2V0UmVzcG9uc2V9KSA9PiB7XG4gIGNvbnN0IFt0aWxlTmFtZSwgc2V0VGlsZU5hbWVdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG4gIGNvbnN0IFt0aWxlTmFtZVdhc01vZGlmaWVkLCBzZXRUaWxlTmFtZVdhc01vZGlmaWVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW21ldGFkYXRhVXJsLCBzZXRNZXRhZGF0YVVybF0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3Jhc3RlclRpbGVTZXJ2ZXJVcmxzLCBzZXRSYXN0ZXJUaWxlU2VydmVyVXJsc10gPSB1c2VTdGF0ZTxzdHJpbmc+KFxuICAgIChnZXRBcHBsaWNhdGlvbkNvbmZpZygpLnJhc3RlclNlcnZlclVybHMgfHwgW10pLmpvaW4oJywnKVxuICApO1xuXG4gIC8vIFJlbW92ZSB0cmFpbGluZyBzbGFzaCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIHJhc3RlciB0aWxlIHNlcnZlcnNcbiAgY29uc3QgY2xlYXJlZE1ldGFkYXRhVXJsID0gbWV0YWRhdGFVcmwuZW5kc1dpdGgoJy8nKSA/IG1ldGFkYXRhVXJsLnNsaWNlKDAsIC0xKSA6IG1ldGFkYXRhVXJsO1xuXG4gIGNvbnN0IG9uVGlsZU5hbWVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0VGlsZU5hbWVXYXNNb2RpZmllZCh0cnVlKTtcbiAgICAgIHNldFRpbGVOYW1lKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfSxcbiAgICBbc2V0VGlsZU5hbWVdXG4gICk7XG5cbiAgY29uc3Qgb25NZXRhZGF0YVVybENoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCB7dmFsdWV9ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgc2V0TWV0YWRhdGFVcmwodmFsdWUpO1xuXG4gICAgICBpZiAoIXRpbGVOYW1lV2FzTW9kaWZpZWQpIHtcbiAgICAgICAgc2V0VGlsZU5hbWUodmFsdWUuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbikucG9wKCkgfHwgJycpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3RpbGVOYW1lV2FzTW9kaWZpZWRdXG4gICk7XG5cbiAgY29uc3Qgb25SYXN0ZXJUaWxlU2VydmVyVXJsc0NoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBzZXRSYXN0ZXJUaWxlU2VydmVyVXJscyhldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0sXG4gICAgW3NldFJhc3RlclRpbGVTZXJ2ZXJVcmxzXVxuICApO1xuXG4gIGNvbnN0IHtcbiAgICBkYXRhOiBtZXRhZGF0YSxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yOiBtZXRhRXJyb3JcbiAgfSA9IHVzZUZldGNoSnNvbih7XG4gICAgdXJsOiBjbGVhcmVkTWV0YWRhdGFVcmwsXG4gICAgcmFzdGVyVGlsZVR5cGU6IGlzUE1UaWxlc1VybChjbGVhcmVkTWV0YWRhdGFVcmwpID8gUmFzdGVyVGlsZVR5cGUuUE1USUxFUyA6IFJhc3RlclRpbGVUeXBlLlNUQUMsXG4gICAgcHJvY2VzczogcGFyc2VNZXRhZGF0YUFsbG93Q29sbGVjdGlvbnNcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGlsZU5hbWUgJiYgY2xlYXJlZE1ldGFkYXRhVXJsKSB7XG4gICAgICBjb25zdCBwbXRpbGVzVHlwZSA9IG1ldGFkYXRhPy5wbXRpbGVzVHlwZTtcblxuICAgICAgaWYgKHBtdGlsZXNUeXBlID09PSBQTVRpbGVzVHlwZS5NVlQpIHtcbiAgICAgICAgcmV0dXJuIHNldFJlc3BvbnNlKHtcbiAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICBkYXRhc2V0OiBudWxsLFxuICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgZXJyb3I6IG5ldyBFcnJvcignRm9yIC5wbXRpbGVzIGluIG12dCBmb3JtYXQsIHBsZWFzZSB1c2UgdGhlIFZlY3RvciBUaWxlIGZvcm0uJylcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBlcnJvciA9IG1ldGFFcnJvcjtcblxuICAgICAgLy8gY2hlY2sgZm9yIHJhc3RlciB0aWxlIHNlcnZlcnMgZm9yIFNUQUMgaXRlbXMgYW5kIGNvbGxlY3Rpb25zXG4gICAgICBsZXQgcmFzdGVyVGlsZVNlcnZlcnM7XG4gICAgICBpZiAoXG4gICAgICAgICFlcnJvclxuICAgICAgICAvLyBXZSBzdGlsbCBuZWVkIHJhc3RlciB0aWxlIHNlcnZlcnMgZm9yIFBNVGlsZXMgd2hlbiB3ZSBwbGFuIHRvIHVzZSBlbGV2YXRpb25cbiAgICAgICkge1xuICAgICAgICByYXN0ZXJUaWxlU2VydmVycyA9IHJhc3RlclRpbGVTZXJ2ZXJVcmxzXG4gICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAubWFwKHNlcnZlciA9PiBzZXJ2ZXIudHJpbSgpKVxuICAgICAgICAgIC5maWx0ZXIoc2VydmVyID0+IHNlcnZlcik7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByYXN0ZXJUaWxlU2VydmVycy5sZW5ndGggPCAxIHx8XG4gICAgICAgICAgIXJhc3RlclRpbGVTZXJ2ZXJzLmV2ZXJ5KHNlcnZlciA9PiB2YWxpZGF0ZVVybChzZXJ2ZXIpKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocG10aWxlc1R5cGUpIHtcbiAgICAgICAgICAgIC8vIEZvciByYXN0ZXIgdGlsZXMgZWxldmF0aW9uIHN1cHBvcnQgaXMgb3B0aW9uYWxcbiAgICAgICAgICAgIC8vIFRPRE8gZGlzcGxheSBhIHdhcm5pbmcsIGJ1dCBub3QgYSBibG9ja2luZyBlcnJvclxuICAgICAgICAgICAgcmFzdGVyVGlsZVNlcnZlcnMgPSBbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdQcm92aWRlIHZhbGlkIHJhc3RlciB0aWxlIHNlcnZlciB1cmxzIHRvIHN1cHBvcnQgU1RBQyBhbmQgZWxldmF0aW9ucy4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhc2V0ID0gZ2V0RGF0YXNldEF0dHJpYnV0ZXNGcm9tUmFzdGVyVGlsZSh7XG4gICAgICAgIG5hbWU6IHRpbGVOYW1lLFxuICAgICAgICBtZXRhZGF0YVVybDogY2xlYXJlZE1ldGFkYXRhVXJsLFxuICAgICAgICByYXN0ZXJUaWxlU2VydmVyVXJsczogcmFzdGVyVGlsZVNlcnZlcnNcbiAgICAgIH0pO1xuXG4gICAgICBzZXRSZXNwb25zZSh7XG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBkYXRhc2V0LFxuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBlcnJvclxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFJlc3BvbnNlKHtcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIGRhdGFzZXQ6IG51bGwsXG4gICAgICAgIGxvYWRpbmcsXG4gICAgICAgIGVycm9yOiBtZXRhRXJyb3JcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW1xuICAgIG1ldGFkYXRhLFxuICAgIGxvYWRpbmcsXG4gICAgbWV0YUVycm9yLFxuICAgIHRpbGVOYW1lLFxuICAgIGNsZWFyZWRNZXRhZGF0YVVybCxcbiAgICByYXN0ZXJUaWxlU2VydmVyVXJscyxcbiAgICBzZXRSZXNwb25zZVxuICBdKTtcblxuICBjb25zdCBzaG93U2VydmVySW5wdXQgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLnJhc3RlclNlcnZlclNob3dTZXJ2ZXJJbnB1dDtcblxuICByZXR1cm4gKFxuICAgIDxUaWxlc2V0SW5wdXRDb250YWluZXI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgaHRtbEZvcj1cInRpbGVzZXQtbmFtZVwiPk5hbWU8L2xhYmVsPlxuICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgIGlkPVwidGlsZXNldC1uYW1lXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5hbWUgeW91ciB0aWxlc2V0XCJcbiAgICAgICAgICB2YWx1ZT17dGlsZU5hbWV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uVGlsZU5hbWVDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlsZS1tZXRhZGF0YVwiPlRpbGVzZXQgbWV0YWRhdGEgVVJMPC9sYWJlbD5cbiAgICAgICAgPElucHV0TGlnaHRcbiAgICAgICAgICBpZD1cInRpbGUtbWV0YWRhdGFcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVGlsZXNldCBtZXRhZGF0YSBVUkxcIlxuICAgICAgICAgIHZhbHVlPXttZXRhZGF0YVVybCA/PyB1bmRlZmluZWR9XG4gICAgICAgICAgb25DaGFuZ2U9e29uTWV0YWRhdGFVcmxDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICAgIDxUaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgICAgICBTdXBwb3J0cyByYXN0ZXIgLnBtdGlsZXMuIExpbWl0ZWQgc3VwcG9ydCBmb3IgU1RBQyBJdGVtcyBhbmQgQ29sbGVjdGlvbnMuXG4gICAgICAgIDwvVGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtzaG93U2VydmVySW5wdXQgJiYgKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlsZXNldC1yYXN0ZXItc2VydmVyc1wiPlJhc3RlciB0aWxlIHNlcnZlcnM8L2xhYmVsPlxuICAgICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgICBpZD1cInRpbGVzZXQtcmFzdGVyLXNlcnZlcnNcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJSYXN0ZXIgdGlsZSBzZXJ2ZXJzIChzZXBhcmF0ZWQgYnkgY29tbWFzKVwiXG4gICAgICAgICAgICB2YWx1ZT17cmFzdGVyVGlsZVNlcnZlclVybHN9XG4gICAgICAgICAgICBvbkNoYW5nZT17b25SYXN0ZXJUaWxlU2VydmVyVXJsc0NoYW5nZX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxUaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgICAgICAgIFJhc3RlciB0aWxlIHNlcnZlciBVUkxzIGZvciBDbG91ZCBPcHRpbWl6ZWQgR2VvVElGRiB0aWxlc2V0cyBhbmQgZWxldmF0aW9uLlxuICAgICAgICAgIDwvVGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L1RpbGVzZXRJbnB1dENvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJhc3RlclRpbGVGb3JtO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBSUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBRUEsSUFBQU8sMkJBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUF3QyxJQUFBUyxlQUFBLEVBQUFDLGdCQUFBLEVBaEJ4QztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFiLHdCQUFBYSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFB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SUFBTXdELGVBQWUsR0FBRyxJQUFBekMsMkJBQW9CLEVBQUMsQ0FBQyxDQUFDMEMsMkJBQTJCO0VBRTFFLG9CQUNFckksTUFBQSxZQUFBc0ksYUFBQSxDQUFDdEYscUJBQXFCLHFCQUNwQmhELE1BQUEsWUFBQXNJLGFBQUEsMkJBQ0V0SSxNQUFBLFlBQUFzSSxhQUFBO0lBQU9DLE9BQU8sRUFBQztFQUFjLEdBQUMsTUFBVyxDQUFDLGVBQzFDdkksTUFBQSxZQUFBc0ksYUFBQSxDQUFDNUgsT0FBQSxDQUFBOEgsVUFBVTtJQUNUQyxFQUFFLEVBQUMsY0FBYztJQUNqQkMsV0FBVyxFQUFDLG1CQUFtQjtJQUMvQmxDLEtBQUssRUFBRXZCLFFBQVM7SUFDaEIwRCxRQUFRLEVBQUV4QztFQUFpQixDQUM1QixDQUNFLENBQUMsZUFDTm5HLE1BQUEsWUFBQXNJLGFBQUEsMkJBQ0V0SSxNQUFBLFlBQUFzSSxhQUFBO0lBQU9DLE9BQU8sRUFBQztFQUFlLEdBQUMsc0JBQTJCLENBQUMsZUFDM0R2SSxNQUFBLFlBQUFzSSxhQUFBLENBQUM1SCxPQUFBLENBQUE4SCxVQUFVO0lBQ1RDLEVBQUUsRUFBQyxlQUFlO0lBQ2xCQyxXQUFXLEVBQUMsc0JBQXNCO0lBQ2xDbEMsS0FBSyxFQUFFN0MsV0FBVyxhQUFYQSxXQUFXLGNBQVhBLFdBQVcsR0FBSWlGLFNBQVU7SUFDaENELFFBQVEsRUFBRWxDO0VBQW9CLENBQy9CLENBQUMsZUFDRnpHLE1BQUEsWUFBQXNJLGFBQUEsQ0FBQ2xGLHVCQUF1QixRQUFDLDJFQUVBLENBQ3RCLENBQUMsRUFDTGdGLGVBQWUsaUJBQ2RwSSxNQUFBLFlBQUFzSSxhQUFBLDJCQUNFdEksTUFBQSxZQUFBc0ksYUFBQTtJQUFPQyxPQUFPLEVBQUM7RUFBd0IsR0FBQyxxQkFBMEIsQ0FBQyxlQUNuRXZJLE1BQUEsWUFBQXNJLGFBQUEsQ0FBQzVILE9BQUEsQ0FBQThILFVBQVU7SUFDVEMsRUFBRSxFQUFDLHdCQUF3QjtJQUMzQkMsV0FBVyxFQUFDLDJDQUEyQztJQUN2RGxDLEtBQUssRUFBRTVDLG9CQUFxQjtJQUM1QitFLFFBQVEsRUFBRTlCO0VBQTZCLENBQ3hDLENBQUMsZUFDRjdHLE1BQUEsWUFBQXNJLGFBQUEsQ0FBQ2xGLHVCQUF1QixRQUFDLDZFQUVBLENBQ3RCLENBRWMsQ0FBQztBQUU1QixDQUFDO0FBQUMsSUFBQXlGLFFBQUEsR0FBQUMsT0FBQSxjQUVhcEUsY0FBYyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
209
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX3V0aWxzIiwiX3VzZUZldGNoUmFzdGVyVGlsZU1ldGFkYXRhIiwiX2NvbW1vbiIsIl9pY29ucyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlRpbGVzZXRJbnB1dENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiVGlsZXNldElucHV0RGVzY3JpcHRpb24iLCJwcm9wcyIsInRoZW1lIiwiQVpVUkUyMDAiLCJMYWJlbFJvdyIsImdldERhdGFzZXRBdHRyaWJ1dGVzRnJvbVJhc3RlclRpbGUiLCJfcmVmIiwibmFtZSIsIm1ldGFkYXRhVXJsIiwicmFzdGVyVGlsZVNlcnZlclVybHMiLCJhcHBDb25maWciLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsInR5cGUiLCJEYXRhc2V0VHlwZSIsIlJBU1RFUl9USUxFIiwibWV0YWRhdGEiLCJyYXN0ZXJTZXJ2ZXJVc2VMYXRlc3RUaXRpbGVyIiwicmFzdGVyU2VydmVyU3VwcG9ydHNFbGV2YXRpb24iLCJyYXN0ZXJTZXJ2ZXJNYXhSZXRyaWVzIiwicmFzdGVyU2VydmVyUmV0cnlEZWxheSIsInJhc3RlclNlcnZlclNlcnZlckVycm9yc1RvUmV0cnkiLCJyYXN0ZXJTZXJ2ZXJNYXhQZXJTZXJ2ZXJSZXF1ZXN0cyIsIkluZm9JY29uTGluayIsImxhYmVsQ29sb3IiLCJSQVNURVJfVElMRV9ET0NVTUVOVEFUSU9OX1VSTCIsInBhcnNlTWV0YWRhdGFBbGxvd0NvbGxlY3Rpb25zIiwiX3JlZjIiLCJyYXN0ZXJUaWxlVHlwZSIsIlJhc3RlclRpbGVUeXBlIiwiUE1USUxFUyIsInBhcnNlVmVjdG9yTWV0YWRhdGEiLCJ0aWxlVXJsIiwicGFyc2VSYXN0ZXJNZXRhZGF0YSIsImFsbG93Q29sbGVjdGlvbnMiLCJSYXN0ZXJUaWxlRm9ybSIsIl9yZWYzIiwic2V0UmVzcG9uc2UiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJ0aWxlTmFtZSIsInNldFRpbGVOYW1lIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJ0aWxlTmFtZVdhc01vZGlmaWVkIiwic2V0VGlsZU5hbWVXYXNNb2RpZmllZCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2V0TWV0YWRhdGFVcmwiLCJfdXNlU3RhdGU3IiwicmFzdGVyU2VydmVyVXJscyIsImpvaW4iLCJfdXNlU3RhdGU4Iiwic2V0UmFzdGVyVGlsZVNlcnZlclVybHMiLCJjbGVhcmVkTWV0YWRhdGFVcmwiLCJlbmRzV2l0aCIsInNsaWNlIiwib25UaWxlTmFtZUNoYW5nZSIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInRhcmdldCIsInZhbHVlIiwib25NZXRhZGF0YVVybENoYW5nZSIsInNwbGl0IiwiQm9vbGVhbiIsInBvcCIsIm9uUmFzdGVyVGlsZVNlcnZlclVybHNDaGFuZ2UiLCJfdXNlRmV0Y2hKc29uIiwidXNlRmV0Y2hKc29uIiwidXJsIiwiaXNQTVRpbGVzVXJsIiwiU1RBQyIsInByb2Nlc3MiLCJkYXRhIiwibG9hZGluZyIsIm1ldGFFcnJvciIsImVycm9yIiwidXNlRWZmZWN0IiwicG10aWxlc1R5cGUiLCJQTVRpbGVzVHlwZSIsIk1WVCIsImRhdGFzZXQiLCJFcnJvciIsInJhc3RlclRpbGVTZXJ2ZXJzIiwibWFwIiwic2VydmVyIiwidHJpbSIsImV2ZXJ5IiwidmFsaWRhdGVVcmwiLCJzaG93U2VydmVySW5wdXQiLCJyYXN0ZXJTZXJ2ZXJTaG93U2VydmVySW5wdXQiLCJjcmVhdGVFbGVtZW50IiwiaHRtbEZvciIsIklucHV0TGlnaHQiLCJpZCIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJocmVmIiwicmVsIiwiSGVscCIsImhlaWdodCIsInVuZGVmaW5lZCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvdGlsZXNldHMtbW9kYWxzL3RpbGVzZXQtcmFzdGVyLWZvcm0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtQTVRpbGVzTWV0YWRhdGF9IGZyb20gJ0Bsb2FkZXJzLmdsL3BtdGlsZXMnO1xuXG5pbXBvcnQge2lzUE1UaWxlc1VybCwgdmFsaWRhdGVVcmx9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7RGF0YXNldFR5cGUsIFJhc3RlclRpbGVUeXBlLCBQTVRpbGVzVHlwZX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtKc29uT2JqZWN0T3JBcnJheX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge3BhcnNlUmFzdGVyTWV0YWRhdGEsIHBhcnNlVmVjdG9yTWV0YWRhdGF9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtnZXRBcHBsaWNhdGlvbkNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7ZGVmYXVsdCBhcyB1c2VGZXRjaEpzb259IGZyb20gJy4uLy4uL2hvb2tzL3VzZS1mZXRjaC1yYXN0ZXItdGlsZS1tZXRhZGF0YSc7XG5pbXBvcnQge0RhdGFzZXRDcmVhdGlvbkF0dHJpYnV0ZXMsIE1ldGFSZXNwb25zZX0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHtJbnB1dExpZ2h0fSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHtIZWxwfSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuXG5jb25zdCBUaWxlc2V0SW5wdXRDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgzLCAxZnIpO1xuICByb3ctZ2FwOiAwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbmA7XG5cbmNvbnN0IFRpbGVzZXRJbnB1dERlc2NyaXB0aW9uID0gc3R5bGVkLmRpdmBcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5BWlVSRTIwMH07XG4gIGZvbnQtc2l6ZTogMTFweDtcbmA7XG5cbmNvbnN0IExhYmVsUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmV4cG9ydCB0eXBlIFJhc3RlclRpbGVzZXRNZXRhID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG1ldGFkYXRhVXJsOiBzdHJpbmc7XG4gIHJhc3RlclRpbGVTZXJ2ZXJVcmxzPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YXNldEF0dHJpYnV0ZXNGcm9tUmFzdGVyVGlsZSh7XG4gIG5hbWUsXG4gIG1ldGFkYXRhVXJsLFxuICByYXN0ZXJUaWxlU2VydmVyVXJsc1xufTogUmFzdGVyVGlsZXNldE1ldGEpOiBEYXRhc2V0Q3JlYXRpb25BdHRyaWJ1dGVzIHtcbiAgY29uc3QgYXBwQ29uZmlnID0gZ2V0QXBwbGljYXRpb25Db25maWcoKTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IERhdGFzZXRUeXBlLlJBU1RFUl9USUxFLFxuICAgIG1ldGFkYXRhOiB7XG4gICAgICBtZXRhZGF0YVVybCxcbiAgICAgIC4uLihyYXN0ZXJUaWxlU2VydmVyVXJscyA/IHtyYXN0ZXJUaWxlU2VydmVyVXJsc30gOiB7fSksXG4gICAgICAvLyBQZXJzaXN0IHJhc3RlciBzZXJ2ZXItcmVsYXRlZCBhcHBsaWNhdGlvbiBjb25maWcgd2l0aCB0aGUgbGF5ZXJcbiAgICAgIHJhc3RlclNlcnZlclVzZUxhdGVzdFRpdGlsZXI6IGFwcENvbmZpZy5yYXN0ZXJTZXJ2ZXJVc2VMYXRlc3RUaXRpbGVyLFxuICAgICAgcmFzdGVyU2VydmVyU3VwcG9ydHNFbGV2YXRpb246IGFwcENvbmZpZy5yYXN0ZXJTZXJ2ZXJTdXBwb3J0c0VsZXZhdGlvbixcbiAgICAgIHJhc3RlclNlcnZlck1heFJldHJpZXM6IGFwcENvbmZpZy5yYXN0ZXJTZXJ2ZXJNYXhSZXRyaWVzLFxuICAgICAgcmFzdGVyU2VydmVyUmV0cnlEZWxheTogYXBwQ29uZmlnLnJhc3RlclNlcnZlclJldHJ5RGVsYXksXG4gICAgICByYXN0ZXJTZXJ2ZXJTZXJ2ZXJFcnJvcnNUb1JldHJ5OiBhcHBDb25maWcucmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeSxcbiAgICAgIHJhc3RlclNlcnZlck1heFBlclNlcnZlclJlcXVlc3RzOiBhcHBDb25maWcucmFzdGVyU2VydmVyTWF4UGVyU2VydmVyUmVxdWVzdHNcbiAgICB9XG4gIH07XG59XG5cbnR5cGUgUmFzdGVyVGlsZUZvcm1Qcm9wcyA9IHtcbiAgc2V0UmVzcG9uc2U6IChyZXNwb25zZTogTWV0YVJlc3BvbnNlKSA9PiB2b2lkO1xufTtcblxuY29uc3QgSW5mb0ljb25MaW5rID0gc3R5bGVkLmFgXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgb3BhY2l0eTogMC43O1xuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5gO1xuXG5jb25zdCBSQVNURVJfVElMRV9ET0NVTUVOVEFUSU9OX1VSTCA9XG4gICdodHRwczovL2RvY3Mua2VwbGVyLmdsL2RvY3MvdXNlci1ndWlkZXMvYy10eXBlcy1vZi1sYXllcnMvbi1yYXN0ZXItdGlsZS1sYXllcic7XG5cbmNvbnN0IHBhcnNlTWV0YWRhdGFBbGxvd0NvbGxlY3Rpb25zID0gKFxuICBtZXRhZGF0YTogSnNvbk9iamVjdE9yQXJyYXkgfCBQTVRpbGVzTWV0YWRhdGEsXG4gIHttZXRhZGF0YVVybCwgcmFzdGVyVGlsZVR5cGV9OiB7bWV0YWRhdGFVcmw6IHN0cmluZzsgcmFzdGVyVGlsZVR5cGU6IFJhc3RlclRpbGVUeXBlfVxuKSA9PiB7XG4gIHJldHVybiByYXN0ZXJUaWxlVHlwZSA9PT0gUmFzdGVyVGlsZVR5cGUuUE1USUxFU1xuICAgID8gcGFyc2VWZWN0b3JNZXRhZGF0YShtZXRhZGF0YSBhcyBQTVRpbGVzTWV0YWRhdGEsIHtcbiAgICAgICAgdGlsZVVybDogbWV0YWRhdGFVcmxcbiAgICAgIH0pXG4gICAgOiBwYXJzZVJhc3Rlck1ldGFkYXRhKG1ldGFkYXRhIGFzIEpzb25PYmplY3RPckFycmF5LCB7YWxsb3dDb2xsZWN0aW9uczogdHJ1ZX0pO1xufTtcblxuY29uc3QgUmFzdGVyVGlsZUZvcm06IFJlYWN0LkZDPFJhc3RlclRpbGVGb3JtUHJvcHM+ID0gKHtzZXRSZXNwb25zZX0pID0+IHtcbiAgY29uc3QgW3RpbGVOYW1lLCBzZXRUaWxlTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3RpbGVOYW1lV2FzTW9kaWZpZWQsIHNldFRpbGVOYW1lV2FzTW9kaWZpZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbbWV0YWRhdGFVcmwsIHNldE1ldGFkYXRhVXJsXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBbcmFzdGVyVGlsZVNlcnZlclVybHMsIHNldFJhc3RlclRpbGVTZXJ2ZXJVcmxzXSA9IHVzZVN0YXRlPHN0cmluZz4oXG4gICAgKGdldEFwcGxpY2F0aW9uQ29uZmlnKCkucmFzdGVyU2VydmVyVXJscyB8fCBbXSkuam9pbignLCcpXG4gICk7XG5cbiAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoIHRvIHByZXZlbnQgaXNzdWVzIHdpdGggcmFzdGVyIHRpbGUgc2VydmVyc1xuICBjb25zdCBjbGVhcmVkTWV0YWRhdGFVcmwgPSBtZXRhZGF0YVVybC5lbmRzV2l0aCgnLycpID8gbWV0YWRhdGFVcmwuc2xpY2UoMCwgLTEpIDogbWV0YWRhdGFVcmw7XG5cbiAgY29uc3Qgb25UaWxlTmFtZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBzZXRUaWxlTmFtZVdhc01vZGlmaWVkKHRydWUpO1xuICAgICAgc2V0VGlsZU5hbWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9LFxuICAgIFtzZXRUaWxlTmFtZV1cbiAgKTtcblxuICBjb25zdCBvbk1ldGFkYXRhVXJsQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IHt2YWx1ZX0gPSBldmVudC50YXJnZXQ7XG4gICAgICBzZXRNZXRhZGF0YVVybCh2YWx1ZSk7XG5cbiAgICAgIGlmICghdGlsZU5hbWVXYXNNb2RpZmllZCkge1xuICAgICAgICBzZXRUaWxlTmFtZSh2YWx1ZS5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKS5wb3AoKSB8fCAnJyk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbdGlsZU5hbWVXYXNNb2RpZmllZF1cbiAgKTtcblxuICBjb25zdCBvblJhc3RlclRpbGVTZXJ2ZXJVcmxzQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldFJhc3RlclRpbGVTZXJ2ZXJVcmxzKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfSxcbiAgICBbc2V0UmFzdGVyVGlsZVNlcnZlclVybHNdXG4gICk7XG5cbiAgY29uc3Qge1xuICAgIGRhdGE6IG1ldGFkYXRhLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3I6IG1ldGFFcnJvclxuICB9ID0gdXNlRmV0Y2hKc29uKHtcbiAgICB1cmw6IGNsZWFyZWRNZXRhZGF0YVVybCxcbiAgICByYXN0ZXJUaWxlVHlwZTogaXNQTVRpbGVzVXJsKGNsZWFyZWRNZXRhZGF0YVVybCkgPyBSYXN0ZXJUaWxlVHlwZS5QTVRJTEVTIDogUmFzdGVyVGlsZVR5cGUuU1RBQyxcbiAgICBwcm9jZXNzOiBwYXJzZU1ldGFkYXRhQWxsb3dDb2xsZWN0aW9uc1xuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aWxlTmFtZSAmJiBjbGVhcmVkTWV0YWRhdGFVcmwpIHtcbiAgICAgIGNvbnN0IHBtdGlsZXNUeXBlID0gbWV0YWRhdGE/LnBtdGlsZXNUeXBlO1xuXG4gICAgICBpZiAocG10aWxlc1R5cGUgPT09IFBNVGlsZXNUeXBlLk1WVCkge1xuICAgICAgICByZXR1cm4gc2V0UmVzcG9uc2Uoe1xuICAgICAgICAgIG1ldGFkYXRhLFxuICAgICAgICAgIGRhdGFzZXQ6IG51bGwsXG4gICAgICAgICAgbG9hZGluZyxcbiAgICAgICAgICBlcnJvcjogbmV3IEVycm9yKCdGb3IgLnBtdGlsZXMgaW4gbXZ0IGZvcm1hdCwgcGxlYXNlIHVzZSB0aGUgVmVjdG9yIFRpbGUgZm9ybS4nKVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IGVycm9yID0gbWV0YUVycm9yO1xuXG4gICAgICAvLyBjaGVjayBmb3IgcmFzdGVyIHRpbGUgc2VydmVycyBmb3IgU1RBQyBpdGVtcyBhbmQgY29sbGVjdGlvbnNcbiAgICAgIGxldCByYXN0ZXJUaWxlU2VydmVycztcbiAgICAgIGlmIChcbiAgICAgICAgIWVycm9yXG4gICAgICAgIC8vIFdlIHN0aWxsIG5lZWQgcmFzdGVyIHRpbGUgc2VydmVycyBmb3IgUE1UaWxlcyB3aGVuIHdlIHBsYW4gdG8gdXNlIGVsZXZhdGlvblxuICAgICAgKSB7XG4gICAgICAgIHJhc3RlclRpbGVTZXJ2ZXJzID0gcmFzdGVyVGlsZVNlcnZlclVybHNcbiAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgIC5tYXAoc2VydmVyID0+IHNlcnZlci50cmltKCkpXG4gICAgICAgICAgLmZpbHRlcihzZXJ2ZXIgPT4gc2VydmVyKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJhc3RlclRpbGVTZXJ2ZXJzLmxlbmd0aCA8IDEgfHxcbiAgICAgICAgICAhcmFzdGVyVGlsZVNlcnZlcnMuZXZlcnkoc2VydmVyID0+IHZhbGlkYXRlVXJsKHNlcnZlcikpXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChwbXRpbGVzVHlwZSkge1xuICAgICAgICAgICAgLy8gRm9yIHJhc3RlciB0aWxlcyBlbGV2YXRpb24gc3VwcG9ydCBpcyBvcHRpb25hbFxuICAgICAgICAgICAgLy8gVE9ETyBkaXNwbGF5IGEgd2FybmluZywgYnV0IG5vdCBhIGJsb2NraW5nIGVycm9yXG4gICAgICAgICAgICByYXN0ZXJUaWxlU2VydmVycyA9IFtdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgJ1Byb3ZpZGUgdmFsaWQgcmFzdGVyIHRpbGUgc2VydmVyIHVybHMgdG8gc3VwcG9ydCBTVEFDIGFuZCBlbGV2YXRpb25zLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFzZXQgPSBnZXREYXRhc2V0QXR0cmlidXRlc0Zyb21SYXN0ZXJUaWxlKHtcbiAgICAgICAgbmFtZTogdGlsZU5hbWUsXG4gICAgICAgIG1ldGFkYXRhVXJsOiBjbGVhcmVkTWV0YWRhdGFVcmwsXG4gICAgICAgIHJhc3RlclRpbGVTZXJ2ZXJVcmxzOiByYXN0ZXJUaWxlU2VydmVyc1xuICAgICAgfSk7XG5cbiAgICAgIHNldFJlc3BvbnNlKHtcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIGRhdGFzZXQsXG4gICAgICAgIGxvYWRpbmcsXG4gICAgICAgIGVycm9yXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0UmVzcG9uc2Uoe1xuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgZGF0YXNldDogbnVsbCxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgZXJyb3I6IG1ldGFFcnJvclxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbXG4gICAgbWV0YWRhdGEsXG4gICAgbG9hZGluZyxcbiAgICBtZXRhRXJyb3IsXG4gICAgdGlsZU5hbWUsXG4gICAgY2xlYXJlZE1ldGFkYXRhVXJsLFxuICAgIHJhc3RlclRpbGVTZXJ2ZXJVcmxzLFxuICAgIHNldFJlc3BvbnNlXG4gIF0pO1xuXG4gIGNvbnN0IHNob3dTZXJ2ZXJJbnB1dCA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkucmFzdGVyU2VydmVyU2hvd1NlcnZlcklucHV0O1xuXG4gIHJldHVybiAoXG4gICAgPFRpbGVzZXRJbnB1dENvbnRhaW5lcj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlsZXNldC1uYW1lXCI+TmFtZTwvbGFiZWw+XG4gICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgaWQ9XCJ0aWxlc2V0LW5hbWVcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZSB5b3VyIHRpbGVzZXRcIlxuICAgICAgICAgIHZhbHVlPXt0aWxlTmFtZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25UaWxlTmFtZUNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPExhYmVsUm93PlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlsZS1tZXRhZGF0YVwiPlRpbGVzZXQgbWV0YWRhdGEgVVJMPC9sYWJlbD5cbiAgICAgICAgICA8SW5mb0ljb25MaW5rXG4gICAgICAgICAgICBocmVmPXtSQVNURVJfVElMRV9ET0NVTUVOVEFUSU9OX1VSTH1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJPcGVuIFJhc3RlciBUaWxlIExheWVyIGRvY3VtZW50YXRpb25cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxIZWxwIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgICAgIDwvSW5mb0ljb25MaW5rPlxuICAgICAgICA8L0xhYmVsUm93PlxuICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgIGlkPVwidGlsZS1tZXRhZGF0YVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJUaWxlc2V0IG1ldGFkYXRhIFVSTFwiXG4gICAgICAgICAgdmFsdWU9e21ldGFkYXRhVXJsID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICBvbkNoYW5nZT17b25NZXRhZGF0YVVybENoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgICAgPFRpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgICAgIFN1cHBvcnRzIHJhc3RlciAucG10aWxlcy4gTGltaXRlZCBzdXBwb3J0IGZvciBTVEFDIEl0ZW1zIGFuZCBDb2xsZWN0aW9ucy5cbiAgICAgICAgPC9UaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgIDwvZGl2PlxuICAgICAge3Nob3dTZXJ2ZXJJbnB1dCAmJiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPExhYmVsUm93PlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ0aWxlc2V0LXJhc3Rlci1zZXJ2ZXJzXCI+UmFzdGVyIHRpbGUgc2VydmVyczwvbGFiZWw+XG4gICAgICAgICAgICA8SW5mb0ljb25MaW5rXG4gICAgICAgICAgICAgIGhyZWY9e1JBU1RFUl9USUxFX0RPQ1VNRU5UQVRJT05fVVJMfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk9wZW4gUmFzdGVyIFRpbGUgTGF5ZXIgZG9jdW1lbnRhdGlvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxIZWxwIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgICAgICAgPC9JbmZvSWNvbkxpbms+XG4gICAgICAgICAgPC9MYWJlbFJvdz5cbiAgICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgICAgaWQ9XCJ0aWxlc2V0LXJhc3Rlci1zZXJ2ZXJzXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUmFzdGVyIHRpbGUgc2VydmVycyAoc2VwYXJhdGVkIGJ5IGNvbW1hcylcIlxuICAgICAgICAgICAgdmFsdWU9e3Jhc3RlclRpbGVTZXJ2ZXJVcmxzfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uUmFzdGVyVGlsZVNlcnZlclVybHNDaGFuZ2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8VGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgICAgICBSYXN0ZXIgdGlsZSBzZXJ2ZXIgVVJMcyBmb3IgQ2xvdWQgT3B0aW1pemVkIEdlb1RJRkYgdGlsZXNldHMgYW5kIGVsZXZhdGlvbi5cbiAgICAgICAgICA8L1RpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9UaWxlc2V0SW5wdXRDb250YWluZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSYXN0ZXJUaWxlRm9ybTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUlBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLDJCQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFULE9BQUE7QUFBd0MsSUFBQVUsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWpCeEM7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxD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
|
|
@@ -175,7 +175,7 @@ function RasterTileLayerConfiguratorFactory(LayerConfigGroup, VisConfigSlider, I
|
|
|
175
175
|
|
|
176
176
|
// eslint-disable-next-line complexity
|
|
177
177
|
var RasterTileLayerConfigurator = function RasterTileLayerConfigurator(_ref3) {
|
|
178
|
-
var _stac$rasterTileServe;
|
|
178
|
+
var _stac$rasterServerSup, _stac$rasterTileServe;
|
|
179
179
|
var layer = _ref3.layer,
|
|
180
180
|
visConfiguratorProps = _ref3.visConfiguratorProps,
|
|
181
181
|
dataset = _ref3.dataset;
|
|
@@ -241,7 +241,7 @@ function RasterTileLayerConfiguratorFactory(LayerConfigGroup, VisConfigSlider, I
|
|
|
241
241
|
});
|
|
242
242
|
}
|
|
243
243
|
}, [visConfiguratorProps, dynamicColor, isDynamicColorsOnly]);
|
|
244
|
-
var elevationUI = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (0, _utils.getApplicationConfig)().rasterServerSupportsElevation && ((_stac$rasterTileServe = stac.rasterTileServerUrls) === null || _stac$rasterTileServe === void 0 ? void 0 : _stac$rasterTileServe.length) && /*#__PURE__*/_react["default"].createElement(LayerConfigGroup, (0, _extends2["default"])({}, layer.visConfigSettings.enableTerrain || {
|
|
244
|
+
var elevationUI = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, ((_stac$rasterServerSup = stac.rasterServerSupportsElevation) !== null && _stac$rasterServerSup !== void 0 ? _stac$rasterServerSup : (0, _utils.getApplicationConfig)().rasterServerSupportsElevation) && ((_stac$rasterTileServe = stac.rasterTileServerUrls) === null || _stac$rasterTileServe === void 0 ? void 0 : _stac$rasterTileServe.length) && /*#__PURE__*/_react["default"].createElement(LayerConfigGroup, (0, _extends2["default"])({}, layer.visConfigSettings.enableTerrain || {
|
|
245
245
|
label: 'layer.color'
|
|
246
246
|
}, visConfiguratorProps, {
|
|
247
247
|
collapsible: true
|
|
@@ -355,4 +355,4 @@ function RasterTileLayerConfiguratorFactory(LayerConfigGroup, VisConfigSlider, I
|
|
|
355
355
|
return STACCheckConfiguratorWrapper;
|
|
356
356
|
}
|
|
357
357
|
var _default = exports["default"] = RasterTileLayerConfiguratorFactory;
|
|
358
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX2xheWVycyIsIl9sb2NhbGl6YXRpb24iLCJfdXRpbHMiLCJfcmFzdGVyVGlsZUNvbG9ybWFwTGlzdEl0ZW0iLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfc3dpdGNoIiwiX2luZm9IZWxwZXIiLCJfaXRlbVNlbGVjdG9yIiwiX3Zpc0NvbmZpZ1NsaWRlciIsIl9sYXllckNvbmZpZ0dyb3VwIiwiX3Zpc0NvbmZpZ1N3aXRjaCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU1RBQ19TRUFSQ0hfVUlfRU5BQkxFRCIsIlN0eWxlZFZpc0NvbmZpZ1N3aXRjaCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiQ3VzdG9tVmlzQ29uZmlnU3dpdGNoIiwiX3JlZiIsIl9yZWYkbGF5ZXIiLCJsYXllciIsImlkIiwiY29uZmlnIiwicHJvcGVydHkiLCJvbkNoYW5nZSIsImxhYmVsIiwiZGlzYWJsZWQiLCJjcmVhdGVFbGVtZW50IiwiU2lkZVBhbmVsU2VjdGlvbiIsIkJvb2xlYW4iLCJjbGFzc05hbWUiLCJQYW5lbExhYmVsV3JhcHBlciIsIlBhbmVsTGFiZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIiwiY2hlY2tlZCIsInZpc0NvbmZpZyIsImNvbmNhdCIsIlN0eWxlZExheWVyQ29uZmlndXJhdG9yIiwiRGVzY3JpcHRpb25UZXh0IiwicHJvcHMiLCJ0aGVtZSIsInN1YnRleHRDb2xvciIsImZpbmRWaXNDb25maWdJdGVtQnlJZCIsInByb3AiLCJ2aXNDb25maWdTZXR0aW5ncyIsIm9wdGlvbnMiLCJmaW5kIiwib3AiLCJmaW5kSXRlbUJ5SWQiLCJnZXRCYW5kU2VsZWN0b3JPcHRpb25zIiwic3RhYyIsImVvQmFuZHMiLCJnZXRFT0JhbmRzIiwibWFwIiwiZW9CYW5kIiwibmFtZSIsImNvbW1vbl9uYW1lIiwiZ2V0Q2F0ZWdvcmljYWxDb2xvcm1hcExpc3RJdGVtIiwiY2F0ZWdvcmljYWxDb2xvck1hcCIsImNhdGVnb3JpY2FsSXRlbSIsIkNBVEVHT1JJQ0FMX0NPTE9STUFQX0lEIiwiaXNEYXRhU291cmNlQ29sb3JSYW5nZUF2YWlsYWJsZSIsInByZXNldCIsInNpbmdsZUJhbmRQcmVzZXRPcHRpb25zIiwibWluUGl4ZWxWYWx1ZSIsIm1heFBpeGVsVmFsdWUiLCJkYXRhU291cmNlUGFyYW1zIiwiZ2V0RGF0YVNvdXJjZVBhcmFtcyIsInNpbmdsZUJhbmQiLCJ1cGRhdGVDb2xvclBhcmFtc09uUHJlc2V0Q2hhbmdlIiwib2xkUHJlc2V0IiwibmV3UHJlc2V0IiwiY29sb3JQYXJhbXMiLCJjb2xvck92ZXJyaWRlcyIsIkRBVEFfU09VUkNFX0NPTE9SX0RFRkFVTFRTIiwiYmFuZE9mSW50ZXJlc3QiLCJSQVNURVJfQ09MT1JfUkVTRVRfUEFSQU1TIiwiUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yRmFjdG9yeSIsImRlcHMiLCJMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSIsIlZpc0NvbmZpZ1NsaWRlckZhY3RvcnkiLCJJbmZvSGVscGVyRmFjdG9yeSIsIlZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkiLCJMYXllckNvbmZpZ0dyb3VwIiwiVmlzQ29uZmlnU2xpZGVyIiwiSW5mb0hlbHBlciIsIlZpc0NvbmZpZ1N3aXRjaCIsIlNUQUNDaGVja0NvbmZpZ3VyYXRvcldyYXBwZXIiLCJfcmVmMiIsInZpc0NvbmZpZ3VyYXRvclByb3BzIiwiZGF0YXNldCIsIm1ldGFkYXRhIiwiUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yIiwiX3JlZjMiLCJfc3RhYyRyYXN0ZXJUaWxlU2VydmUiLCJfbGF5ZXIkY29uZmlnJHZpc0NvbmYiLCJub25MaW5lYXJSZXNjYWxpbmciLCJ1c2VTVEFDU2VhcmNoaW5nIiwiY29sb3JSYW5nZSIsImNvbG9yTWFwIiwiZHluYW1pY0NvbG9yIiwic2luZ2xlQmFuZE5hbWUiLCJhdmFpbGFibGVQcmVzZXRzIiwidXNlTWVtbyIsImZpbHRlckF2YWlsYWJsZVByZXNldHMiLCJQUkVTRVRfT1BUSU9OUyIsInByZXNldE9wdGlvbnMiLCJfcmVmNCIsImluY2x1ZGVzIiwic2luZ2xlQmFuZE9wdGlvbnMiLCJjb2xvcm1hcE9wdGlvbnMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiY29sb3JtYXBJZCIsImNhdGVnb3JpY2FsTGlzdEl0ZW0iLCJfcmVmNSIsImJhbmRDb21iaW5hdGlvbiIsImNvbG9ybWFwQWxsb3dlZCIsImlzQ29sb3JtYXBBbGxvd2VkIiwicmVzY2FsaW5nQWxsb3dlZCIsImlzUmVzY2FsaW5nQWxsb3dlZCIsImZpbHRlckFsbG93ZWQiLCJpc0ZpbHRlckFsbG93ZWQiLCJzdGFjU2VhcmNoQWxsb3dlZCIsImlzU2VhcmNoYWJsZVN0YWMiLCJzZWxlY3RlZENvbG9ybWFwIiwic2VsZWN0ZWRQcmVzZXQiLCJzZWxlY3RlZFNpbmdsZUJhbmROYW1lIiwiZ2V0U2luZ2xlQmFuZFByZXNldE9wdGlvbnMiLCJfZ2V0UmFzdGVyU3RhdGlzdGljc00iLCJnZXRSYXN0ZXJTdGF0aXN0aWNzTWluTWF4IiwiX2dldFJhc3RlclN0YXRpc3RpY3NNMiIsIl9zbGljZWRUb0FycmF5MiIsIm1pbkNhdGVnb3JpY2FsQmFuZFZhbHVlIiwibWF4Q2F0ZWdvcmljYWxCYW5kVmFsdWUiLCJDb2xvck1hcExpc3RJdGVtIiwiZ2V0Q29sb3JNYXBMaXN0SXRlbUNvbXBvbmVudCIsIm1pblZhbHVlIiwibWF4VmFsdWUiLCJpc0R5bmFtaWNDb2xvcnNPbmx5IiwidXNlRWZmZWN0IiwiZWxldmF0aW9uVUkiLCJGcmFnbWVudCIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwicmFzdGVyU2VydmVyU3VwcG9ydHNFbGV2YXRpb24iLCJyYXN0ZXJUaWxlU2VydmVyVXJscyIsIl9leHRlbmRzMiIsImVuYWJsZVRlcnJhaW4iLCJjb2xsYXBzaWJsZSIsIkNvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50IiwiZW5hYmxlVGVycmFpblRvcFZpZXciLCJwbXRpbGVzVHlwZSIsIlBNVGlsZXNUeXBlIiwiUkFTVEVSIiwib3BhY2l0eSIsImRlc2NyaXB0aW9uIiwic2VsZWN0ZWRJdGVtcyIsIm11bHRpU2VsZWN0Iiwic2VhcmNoYWJsZSIsImRpc3BsYXlPcHRpb24iLCJnZXRPcHRpb25WYWx1ZSIsIm92ZXJyaWRlcyIsImluZm9VcmwiLCJ0YXJnZXQiLCJyZWwiLCJocmVmIiwidmFsIiwic3RhY1NlYXJjaFByb3ZpZGVyIiwicGxhY2Vob2xkZXIiLCJJbnB1dCIsInR5cGUiLCJfcmVmNiIsInZhbHVlIiwic3RhcnREYXRlIiwiX3JlZjciLCJlbmREYXRlIiwiRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudCIsImZpbHRlck9wdGlvbiIsImdhbW1hQ29udHJhc3RGYWN0b3IiLCJzaWdtb2lkYWxDb250cmFzdEZhY3RvciIsInNpZ21vaWRhbEJpYXNGYWN0b3IiLCJsaW5lYXJSZXNjYWxpbmdGYWN0b3IiLCJzYXR1cmF0aW9uVmFsdWUiLCJmaWx0ZXJFbmFibGVkIiwiZmlsdGVyUmFuZ2UiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9yYXN0ZXItdGlsZS1sYXllci1jb25maWd1cmF0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7UE1UaWxlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGZpbHRlckF2YWlsYWJsZVByZXNldHMsXG4gIGdldEVPQmFuZHMsXG4gIGdldFJhc3RlclN0YXRpc3RpY3NNaW5NYXgsXG4gIGdldFNpbmdsZUJhbmRQcmVzZXRPcHRpb25zLFxuICBpc0NvbG9ybWFwQWxsb3dlZCxcbiAgaXNGaWx0ZXJBbGxvd2VkLFxuICBpc1Jlc2NhbGluZ0FsbG93ZWQsXG4gIGlzU2VhcmNoYWJsZVN0YWMsXG4gIENvbXBsZXRlU1RBQ09iamVjdCxcbiAgR2V0VGlsZURhdGFDdXN0b21Qcm9wcyxcbiAgRGF0YVNvdXJjZVBhcmFtcyxcbiAgUHJlc2V0T3B0aW9uLFxuICBSYXN0ZXJUaWxlTGF5ZXIsXG4gIENBVEVHT1JJQ0FMX0NPTE9STUFQX0lELFxuICBQUkVTRVRfT1BUSU9OUyxcbiAgUkFTVEVSX0NPTE9SX1JFU0VUX1BBUkFNUyxcbiAgREFUQV9TT1VSQ0VfQ09MT1JfREVGQVVMVFNcbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlciwgZ2V0QXBwbGljYXRpb25Db25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZSBhcyBLZXBsZXJEYXRhc2V0fSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB0eXBlIHtTdGFjVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge2dldENvbG9yTWFwTGlzdEl0ZW1Db21wb25lbnR9IGZyb20gJy4vcmFzdGVyLXRpbGUtY29sb3JtYXAtbGlzdC1pdGVtJztcblxuaW1wb3J0IHtcbiAgSW5wdXQsXG4gIFBhbmVsTGFiZWwsXG4gIFBhbmVsTGFiZWxXcmFwcGVyLFxuICBTaWRlUGFuZWxTZWN0aW9uXG59IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgU3dpdGNoIGZyb20gJy4uLy4uL2NvbW1vbi9zd2l0Y2gnO1xuaW1wb3J0IEluZm9IZWxwZXJGYWN0b3J5IGZyb20gJy4uLy4uL2NvbW1vbi9pbmZvLWhlbHBlcic7XG5pbXBvcnQgSXRlbVNlbGVjdG9yIGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3InO1xuaW1wb3J0IFZpc0NvbmZpZ1NsaWRlckZhY3RvcnkgZnJvbSAnLi4vLi4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC92aXMtY29uZmlnLXNsaWRlcic7XG5pbXBvcnQgTGF5ZXJDb25maWdHcm91cEZhY3RvcnksIHtcbiAgQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnRcbn0gZnJvbSAnLi4vLi4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWctZ3JvdXAnO1xuaW1wb3J0IFZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkgZnJvbSAnLi4vLi4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC92aXMtY29uZmlnLXN3aXRjaCc7XG5cbnR5cGUgRU9CYW5kID0gU3RhY1R5cGVzLkJhbmQ7XG5cbmNvbnN0IFNUQUNfU0VBUkNIX1VJX0VOQUJMRUQgPSB0cnVlO1xuXG5jb25zdCBTdHlsZWRWaXNDb25maWdTd2l0Y2ggPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgLnZpcy1jb25maWctc3dpdGNoX190aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuYDtcblxuY29uc3QgQ3VzdG9tVmlzQ29uZmlnU3dpdGNoID0gKHtcbiAgbGF5ZXI6IHtpZCwgY29uZmlnfSxcbiAgcHJvcGVydHksXG4gIG9uQ2hhbmdlLFxuICBsYWJlbCxcbiAgZGlzYWJsZWRcbn06IHtcbiAgbGF5ZXI6IFJhc3RlclRpbGVMYXllcjtcbiAgcHJvcGVydHk6IHN0cmluZztcbiAgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICBsYWJlbDogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbn0pID0+IChcbiAgPFNpZGVQYW5lbFNlY3Rpb24gZGlzYWJsZWQ9e0Jvb2xlYW4oZGlzYWJsZWQpfT5cbiAgICA8U3R5bGVkVmlzQ29uZmlnU3dpdGNoIGNsYXNzTmFtZT1cInZpcy1jb25maWctc3dpdGNoXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInZpcy1jb25maWctc3dpdGNoX190aXRsZVwiPlxuICAgICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAge2xhYmVsID8gKFxuICAgICAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgICAgIHsobGFiZWwgJiYgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e2xhYmVsfSAvPikgfHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHByb3BlcnR5KX1cbiAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2aXMtY29uZmlnLXN3aXRjaF9fc3dpdGNoXCI+XG4gICAgICAgIDxTd2l0Y2hcbiAgICAgICAgICBjaGVja2VkPXtjb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XX1cbiAgICAgICAgICBpZD17YCR7aWR9LSR7cHJvcGVydHl9LXN3aXRjaGB9XG4gICAgICAgICAgb25DaGFuZ2U9eygpID0+IG9uQ2hhbmdlKHtbcHJvcGVydHldOiAhY29uZmlnLnZpc0NvbmZpZ1twcm9wZXJ0eV19KX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvU3R5bGVkVmlzQ29uZmlnU3dpdGNoPlxuICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4pO1xuXG5jb25zdCBTdHlsZWRMYXllckNvbmZpZ3VyYXRvciA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDEycHg7XG5gO1xuXG5jb25zdCBEZXNjcmlwdGlvblRleHQgPSBzdHlsZWQoUGFuZWxMYWJlbClgXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgfVxuYDtcblxuLy8gVE9ETzogY29tYmluZSB0aGVzZSB0d28gaGVscGVycyBpbnRvIG9uZVxuZnVuY3Rpb24gZmluZFZpc0NvbmZpZ0l0ZW1CeUlkKGxheWVyLCBwcm9wKSB7XG4gIHJldHVybiBsYXllci52aXNDb25maWdTZXR0aW5nc1twcm9wXS5vcHRpb25zLmZpbmQob3AgPT4gb3AuaWQgPT09IGxheWVyLmNvbmZpZy52aXNDb25maWdbcHJvcF0pO1xufVxuXG5mdW5jdGlvbiBmaW5kSXRlbUJ5SWQobGF5ZXIsIG9wdGlvbnMsIHByb3ApIHtcbiAgLy8gRm9yIG5vdyBpdCdzIHBvc3NpYmxlIHRoYXQgbm9uLXJhc3RlciBtZXRhZGF0YSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgcmFzdGVyIGNvbmZpZ3VyYXRvciwgc29cbiAgLy8gb3B0aW9ucyBtYXkgYmUgbnVsbFxuICByZXR1cm4gb3B0aW9ucz8uZmluZChvcCA9PiBvcC5pZCA9PT0gbGF5ZXIuY29uZmlnLnZpc0NvbmZpZ1twcm9wXSk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgZHJvcCBkb3duIGxhYmVscyBmb3Igc2luZ2xlIGJhbmQgc2VsZWN0b3JcbiAqIEBwYXJhbSBzdGFjIC0gU1RBQyBpdGVtIG1ldGFkYXRhIG9iamVjdFxuICogQHJldHVybnMgYXJyYXkgb2Yge2lkLCBsYWJlbH0gZWxlbWVudHNcbiAqL1xuZnVuY3Rpb24gZ2V0QmFuZFNlbGVjdG9yT3B0aW9ucyhzdGFjOiBDb21wbGV0ZVNUQUNPYmplY3QpOiB7aWQ/OiBzdHJpbmc7IGxhYmVsPzogc3RyaW5nfVtdIHtcbiAgY29uc3QgZW9CYW5kcyA9IGdldEVPQmFuZHMoc3RhYykgfHwgW107XG4gIHJldHVybiBlb0JhbmRzLm1hcCgoZW9CYW5kOiBFT0JhbmQpID0+ICh7XG4gICAgaWQ6IGVvQmFuZC5uYW1lIHx8IGVvQmFuZC5jb21tb25fbmFtZSxcbiAgICBsYWJlbDogZW9CYW5kLmNvbW1vbl9uYW1lXG4gICAgICA/IGAke2VvQmFuZC5uYW1lIHx8IGVvQmFuZC5jb21tb25fbmFtZX0gKCR7ZW9CYW5kLmNvbW1vbl9uYW1lfSlgXG4gICAgICA6IGVvQmFuZC5uYW1lXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2F0ZWdvcmljYWxDb2xvcm1hcExpc3RJdGVtKGNhdGVnb3JpY2FsQ29sb3JNYXApIHtcbiAgbGV0IGNhdGVnb3JpY2FsSXRlbToge2xhYmVsOiBzdHJpbmc7IGlkOiBzdHJpbmd9IHwgdW5kZWZpbmVkO1xuICBpZiAoY2F0ZWdvcmljYWxDb2xvck1hcCkge1xuICAgIGNhdGVnb3JpY2FsSXRlbSA9IHtsYWJlbDogJ0NhdGVnb3JpY2FsJywgaWQ6IENBVEVHT1JJQ0FMX0NPTE9STUFQX0lEfTtcbiAgfVxuICByZXR1cm4gY2F0ZWdvcmljYWxJdGVtO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGRhdGEgc291cmNlIGdsb2JhbCBwaXhlbCBjb2xvciByYW5nZSBpcyBjYWxjdWxhdGVkIGNvcnJlY3RseVxuICogQHBhcmFtIGxheWVyIC0gcmFzdGVyIGxheWVyXG4gKiBAcGFyYW0gc3RhYyAtIFNUQUMgbWV0YWRhdGEgb2JqZWN0XG4gKiBAcGFyYW0gcHJlc2V0IC0gcHJlc2V0IG5hbWVcbiAqIEBwYXJhbSBzaW5nbGVCYW5kUHJlc2V0T3B0aW9ucyAtIG9wdGlvbnMgZm9yIHNpbmdsZSBiYW5kIHByZXNldFxuICogQHJldHVybnMgYm9vbGVhbiB2YWx1ZVxuICovXG5mdW5jdGlvbiBpc0RhdGFTb3VyY2VDb2xvclJhbmdlQXZhaWxhYmxlKFxuICBsYXllcjogUmFzdGVyVGlsZUxheWVyLFxuICBzdGFjOiBDb21wbGV0ZVNUQUNPYmplY3QsXG4gIHByZXNldDogc3RyaW5nLFxuICBzaW5nbGVCYW5kUHJlc2V0T3B0aW9uczogUHJlc2V0T3B0aW9uWydzaW5nbGVCYW5kJ11cbik6IGJvb2xlYW4ge1xuICBsZXQgbWluUGl4ZWxWYWx1ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGxldCBtYXhQaXhlbFZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgY29uc3QgZGF0YVNvdXJjZVBhcmFtczogRGF0YVNvdXJjZVBhcmFtcyB8IG51bGwgPSBsYXllci5nZXREYXRhU291cmNlUGFyYW1zKHN0YWMsIHByZXNldCwge1xuICAgIHNpbmdsZUJhbmQ6IHNpbmdsZUJhbmRQcmVzZXRPcHRpb25zXG4gIH0pO1xuICBpZiAoZGF0YVNvdXJjZVBhcmFtcykge1xuICAgIG1pblBpeGVsVmFsdWUgPSBkYXRhU291cmNlUGFyYW1zLm1pblBpeGVsVmFsdWU7XG4gICAgbWF4UGl4ZWxWYWx1ZSA9IGRhdGFTb3VyY2VQYXJhbXMubWF4UGl4ZWxWYWx1ZTtcbiAgfVxuICByZXR1cm4gbWluUGl4ZWxWYWx1ZSAhPT0gbnVsbCAmJiBtYXhQaXhlbFZhbHVlICE9PSBudWxsO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgY29sb3IgcGFyYW1ldGVycyBiYXNlZCBvbiBhIGNoYW5nZSBpbiB2aXN1YWxpemF0aW9uIHByZXNldC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGFkanVzdHMgdGhlIGNvbG9yIHByb2Nlc3NpbmcgcGFyYW1ldGVycyB3aGVuIHRoZSB2aXN1YWxpemF0aW9uXG4gKiBwcmVzZXQgY2hhbmdlcywgYmFzZWQgb24gd2hldGhlciB0aGUgcHJlc2V0IGlzIHN3aXRjaGluZyB0byBvciBmcm9tIGFcbiAqIHNpbmdsZS1iYW5kLiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYXBwbHkgY29sb3JcbiAqIGVuaGFuY2VtZW50cyBvciByZXNldCBwYXJhbWV0ZXJzIGJhc2VkIG9uIHRoZSBwcmVzZXQgdHJhbnNpdGlvbi5cbiAqXG4gKiBAcGFyYW0gc3RhYyBBIFNUQUMgKFNwYXRpb1RlbXBvcmFsIEFzc2V0IENhdGFsb2cpIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGRhdGFzZXQuXG4gKiBAcGFyYW0gbmV3UHJlc2V0IFRoZSBvbGQgdmlzdWFsaXphdGlvbiBwcmVzZXQgYmVpbmcgYXBwbGllZC5cbiAqIEBwYXJhbSBuZXdQcmVzZXQgVGhlIG5ldyB2aXN1YWxpemF0aW9uIHByZXNldCBiZWluZyBhcHBsaWVkLlxuICogQHJldHVybnMgVGhlIHVwZGF0ZWQgY29sb3IgcGFyYW1ldGVycyB0byBhcHBseS5cbiAqL1xuZnVuY3Rpb24gdXBkYXRlQ29sb3JQYXJhbXNPblByZXNldENoYW5nZShcbiAgc3RhYzogQ29tcGxldGVTVEFDT2JqZWN0LFxuICBvbGRQcmVzZXQ6IHN0cmluZyxcbiAgbmV3UHJlc2V0OiBzdHJpbmdcbikge1xuICBsZXQgY29sb3JQYXJhbXMgPSB7fTtcbiAgY29uc3QgY29sb3JPdmVycmlkZXMgPSBEQVRBX1NPVVJDRV9DT0xPUl9ERUZBVUxUU1tzdGFjLmlkXTtcbiAgaWYgKGNvbG9yT3ZlcnJpZGVzKSByZXR1cm4gY29sb3JQYXJhbXM7XG5cbiAgY29uc3QgYmFuZE9mSW50ZXJlc3QgPSAnc2luZ2xlQmFuZCc7XG4gIGlmIChvbGRQcmVzZXQgPT09IGJhbmRPZkludGVyZXN0ICYmIG5ld1ByZXNldCAhPT0gYmFuZE9mSW50ZXJlc3QpIHtcbiAgICAvLyBlbmNoYW5jZSBjb2xvcnMgZm9yIG11bHRpYmFuZCBjb21iaW5hdGlvbnNcbiAgICBjb2xvclBhcmFtcyA9IGNvbG9yT3ZlcnJpZGVzO1xuICB9IGVsc2UgaWYgKG9sZFByZXNldCAhPT0gYmFuZE9mSW50ZXJlc3QgJiYgbmV3UHJlc2V0ID09PSBiYW5kT2ZJbnRlcmVzdCkge1xuICAgIC8vIHJlc2V0IGltYWdlIHByb2Nlc3NuZyBwYXJhbXNcbiAgICBjb2xvclBhcmFtcyA9IFJBU1RFUl9DT0xPUl9SRVNFVF9QQVJBTVM7XG4gIH1cblxuICByZXR1cm4gY29sb3JQYXJhbXM7XG59XG5cbnR5cGUgUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yUHJvcHMgPSB7XG4gIGxheWVyOiBSYXN0ZXJUaWxlTGF5ZXI7XG4gIHZpc0NvbmZpZ3VyYXRvclByb3BzOiBhbnk7XG4gIGRhdGFzZXQ6IEtlcGxlckRhdGFzZXQ7XG59O1xuXG5SYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5LmRlcHMgPSBbXG4gIExheWVyQ29uZmlnR3JvdXBGYWN0b3J5LFxuICBWaXNDb25maWdTbGlkZXJGYWN0b3J5LFxuICBJbmZvSGVscGVyRmFjdG9yeSxcbiAgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yRmFjdG9yeShcbiAgTGF5ZXJDb25maWdHcm91cDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJDb25maWdHcm91cEZhY3Rvcnk+LFxuICBWaXNDb25maWdTbGlkZXI6IFJldHVyblR5cGU8dHlwZW9mIFZpc0NvbmZpZ1NsaWRlckZhY3Rvcnk+LFxuICBJbmZvSGVscGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBJbmZvSGVscGVyRmFjdG9yeT4sXG4gIFZpc0NvbmZpZ1N3aXRjaDogUmV0dXJuVHlwZTx0eXBlb2YgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeT5cbik6IFJlYWN0LkZDPFJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvclByb3BzPiB7XG4gIC8qKlxuICAgKiBXcmFwcGVyIGFyb3VuZCBjb25maWd1cmF0b3IgdG8gY2hlY2sgZm9yIGRhdGFzZXQubWV0YWRhdGEgYmVpbmcgbnVsbC91bmRlZmluZWRcbiAgICovXG4gIGNvbnN0IFNUQUNDaGVja0NvbmZpZ3VyYXRvcldyYXBwZXIgPSAoe1xuICAgIGxheWVyLFxuICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgIGRhdGFzZXRcbiAgfTogUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yUHJvcHMpID0+IHtcbiAgICBjb25zdCBzdGFjID0gZGF0YXNldD8ubWV0YWRhdGE7XG5cbiAgICAvLyBJZiBubyBkYXRhc2V0IGlzIGxvYWRlZCBpbnRvIEtlcGxlciwgc3RhYyBjYW4gYmUgdW5kZWZpbmVkXG4gICAgaWYgKCFzdGFjKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvclxuICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzPXt2aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgZGF0YXNldD17ZGF0YXNldH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICBjb25zdCBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3I6IFJlYWN0LkZDPFJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvclByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgZGF0YXNldFxuICB9KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgcHJlc2V0LFxuICAgICAgbm9uTGluZWFyUmVzY2FsaW5nLFxuICAgICAgdXNlU1RBQ1NlYXJjaGluZyxcbiAgICAgIGNvbG9yUmFuZ2U6IHtjb2xvck1hcDogY2F0ZWdvcmljYWxDb2xvck1hcH0sXG4gICAgICBkeW5hbWljQ29sb3IsXG4gICAgICBzaW5nbGVCYW5kTmFtZVxuICAgIH0gPSBsYXllci5jb25maWcudmlzQ29uZmlnO1xuXG4gICAgY29uc3Qgc3RhYyA9IGRhdGFzZXQ/Lm1ldGFkYXRhIGFzIEdldFRpbGVEYXRhQ3VzdG9tUHJvcHNbJ3N0YWMnXTtcblxuICAgIGNvbnN0IGF2YWlsYWJsZVByZXNldHMgPSB1c2VNZW1vKCgpID0+IGZpbHRlckF2YWlsYWJsZVByZXNldHMoc3RhYywgUFJFU0VUX09QVElPTlMpLCBbc3RhY10pO1xuXG4gICAgY29uc3QgcHJlc2V0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICAoXG4gICAgICAgICAgbGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucHJlc2V0Lm9wdGlvbnMgYXMgdW5rbm93biBhcyB7XG4gICAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgICAgICB9W11cbiAgICAgICAgKS5maWx0ZXIoKHtpZH0pID0+IGF2YWlsYWJsZVByZXNldHM/LmluY2x1ZGVzKGlkKSksXG4gICAgICBbbGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucHJlc2V0Lm9wdGlvbnMsIGF2YWlsYWJsZVByZXNldHNdXG4gICAgKTtcbiAgICBjb25zdCBzaW5nbGVCYW5kT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0QmFuZFNlbGVjdG9yT3B0aW9ucyhzdGFjKSwgW3N0YWNdKTtcbiAgICBjb25zdCBjb2xvcm1hcE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBbXG4gICAgICAgIC4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvcm1hcElkLm9wdGlvbnMgYXMgdW5rbm93biBhcyB7XG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgICB9W10pXG4gICAgICBdO1xuICAgICAgY29uc3QgY2F0ZWdvcmljYWxMaXN0SXRlbSA9IGdldENhdGVnb3JpY2FsQ29sb3JtYXBMaXN0SXRlbShjYXRlZ29yaWNhbENvbG9yTWFwKTtcbiAgICAgIGlmIChjYXRlZ29yaWNhbExpc3RJdGVtKSB7XG4gICAgICAgIG9wdGlvbnMucHVzaChjYXRlZ29yaWNhbExpc3RJdGVtKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH0sIFtsYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvcm1hcElkLm9wdGlvbnMsIGNhdGVnb3JpY2FsQ29sb3JNYXBdKTtcblxuICAgIGNvbnN0IHtiYW5kQ29tYmluYXRpb259ID0gUFJFU0VUX09QVElPTlNbcHJlc2V0XSB8fCB7fTtcbiAgICBjb25zdCBjb2xvcm1hcEFsbG93ZWQgPSBpc0NvbG9ybWFwQWxsb3dlZChiYW5kQ29tYmluYXRpb24pO1xuICAgIGNvbnN0IHJlc2NhbGluZ0FsbG93ZWQgPSAhY2F0ZWdvcmljYWxDb2xvck1hcCAmJiBpc1Jlc2NhbGluZ0FsbG93ZWQoYmFuZENvbWJpbmF0aW9uKTtcbiAgICBjb25zdCBmaWx0ZXJBbGxvd2VkID0gaXNGaWx0ZXJBbGxvd2VkKGJhbmRDb21iaW5hdGlvbik7XG5cbiAgICAvLyBIZXJlIHdlIHNob3cgdGhlIFVJIHdoZW4gdXNlU1RBQ1NlYXJjaGluZyBpcyBleHBsaWNpdGx5IHNldCB0byB0cnVlIHNvIHRoYXQgdGhlIFVJIHNob3dzIHVwXG4gICAgY29uc3Qgc3RhY1NlYXJjaEFsbG93ZWQgPSBpc1NlYXJjaGFibGVTdGFjKHN0YWMpIHx8IHVzZVNUQUNTZWFyY2hpbmc7XG5cbiAgICBjb25zdCBzZWxlY3RlZENvbG9ybWFwID1cbiAgICAgIGZpbmRWaXNDb25maWdJdGVtQnlJZChsYXllciwgJ2NvbG9ybWFwSWQnKSB8fFxuICAgICAgZ2V0Q2F0ZWdvcmljYWxDb2xvcm1hcExpc3RJdGVtKGNhdGVnb3JpY2FsQ29sb3JNYXApO1xuICAgIGNvbnN0IHNlbGVjdGVkUHJlc2V0ID0gZmluZFZpc0NvbmZpZ0l0ZW1CeUlkKGxheWVyLCAncHJlc2V0Jyk7XG4gICAgY29uc3Qgc2VsZWN0ZWRTaW5nbGVCYW5kTmFtZSA9IGZpbmRJdGVtQnlJZChsYXllciwgc2luZ2xlQmFuZE9wdGlvbnMsICdzaW5nbGVCYW5kTmFtZScpO1xuXG4gICAgY29uc3Qgc2luZ2xlQmFuZFByZXNldE9wdGlvbnMgPSBnZXRTaW5nbGVCYW5kUHJlc2V0T3B0aW9ucyhzdGFjLCBzaW5nbGVCYW5kTmFtZSk7XG4gICAgY29uc3QgW21pbkNhdGVnb3JpY2FsQmFuZFZhbHVlLCBtYXhDYXRlZ29yaWNhbEJhbmRWYWx1ZV0gPSBnZXRSYXN0ZXJTdGF0aXN0aWNzTWluTWF4KFxuICAgICAgc3RhYyxcbiAgICAgIHByZXNldCxcbiAgICAgIHNpbmdsZUJhbmRQcmVzZXRPcHRpb25zXG4gICAgKTtcbiAgICBjb25zdCBDb2xvck1hcExpc3RJdGVtID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGdldENvbG9yTWFwTGlzdEl0ZW1Db21wb25lbnQoe1xuICAgICAgICAgIGNvbG9yTWFwOiBjYXRlZ29yaWNhbENvbG9yTWFwLFxuICAgICAgICAgIG1pblZhbHVlOiBtaW5DYXRlZ29yaWNhbEJhbmRWYWx1ZSxcbiAgICAgICAgICBtYXhWYWx1ZTogbWF4Q2F0ZWdvcmljYWxCYW5kVmFsdWVcbiAgICAgICAgfSksXG4gICAgICBbY2F0ZWdvcmljYWxDb2xvck1hcCwgbWluQ2F0ZWdvcmljYWxCYW5kVmFsdWUsIG1heENhdGVnb3JpY2FsQmFuZFZhbHVlXVxuICAgICk7XG4gICAgY29uc3QgaXNEeW5hbWljQ29sb3JzT25seSA9ICFpc0RhdGFTb3VyY2VDb2xvclJhbmdlQXZhaWxhYmxlKFxuICAgICAgbGF5ZXIsXG4gICAgICBzdGFjLFxuICAgICAgcHJlc2V0LFxuICAgICAgc2luZ2xlQmFuZFByZXNldE9wdGlvbnNcbiAgICApO1xuXG4gICAgLy8gRGVmYXVsdCBvZiBgZHluYW1pY0NvbG9yYCBpcyBmYWxzZS4gU2V0IGl0IHRydWUgaWYgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGdldCBkYXRhIHNvdXJjZVxuICAgIC8vIHdpZGUgY29sb3IgcmFuZ2VcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzRHluYW1pY0NvbG9yc09ubHkgJiYgIWR5bmFtaWNDb2xvcikge1xuICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZSh7ZHluYW1pY0NvbG9yOiB0cnVlfSk7XG4gICAgICB9XG4gICAgfSwgW3Zpc0NvbmZpZ3VyYXRvclByb3BzLCBkeW5hbWljQ29sb3IsIGlzRHluYW1pY0NvbG9yc09ubHldKTtcblxuICAgIGNvbnN0IGVsZXZhdGlvblVJID0gKFxuICAgICAgPD5cbiAgICAgICAge2dldEFwcGxpY2F0aW9uQ29uZmlnKCkucmFzdGVyU2VydmVyU3VwcG9ydHNFbGV2YXRpb24gJiZcbiAgICAgICAgICBzdGFjLnJhc3RlclRpbGVTZXJ2ZXJVcmxzPy5sZW5ndGggJiYgKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGVUZXJyYWluIHx8IHtsYWJlbDogJ2xheWVyLmNvbG9yJ30pfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoXG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlVGVycmFpblRvcFZpZXd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApfVxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIC8vIEZvciBQTVRpbGVzIGluIHJhc3RlciBmb3JtYXQsIG9ubHkgc2hvdyBvcGFjaXR5IGFuZCB0ZXJyYWluIG9wdGlvbnMgZm9yIG5vd1xuICAgIGlmIChzdGFjLnBtdGlsZXNUeXBlID09PSBQTVRpbGVzVHlwZS5SQVNURVIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllckNvbmZpZ3VyYXRvcj5cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IGxhYmVsPVwiVmlzdWFsIFNldHRpbmdzXCIgY29sbGFwc2libGU9e2ZhbHNlfT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAge2VsZXZhdGlvblVJfVxuICAgICAgICA8L1N0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgICB7YXZhaWxhYmxlUHJlc2V0cyAmJiAoXG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cIkltYWdlIFNlbGVjdGlvblwiIGNvbGxhcHNpYmxlPXtmYWxzZX0+XG4gICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgIDxQYW5lbExhYmVsPlByZXNldDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICA8SW5mb0hlbHBlclxuICAgICAgICAgICAgICAgICAgaWQ9XCJwcmVzZXRcIlxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJTZWxlY3QgYSBwcmVzZXQgdG8gZGVzY3JpYmUgaG93IHRvIGNvbWJpbmUgc3BlY3RyYWwgYmFuZHMuXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17c2VsZWN0ZWRQcmVzZXR9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17cHJlc2V0T3B0aW9uc31cbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT1cImlkXCJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17bmV3UHJlc2V0ID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IHVwZGF0ZUNvbG9yUGFyYW1zT25QcmVzZXRDaGFuZ2UoXG4gICAgICAgICAgICAgICAgICAgIHN0YWMsXG4gICAgICAgICAgICAgICAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLmxheWVyLmNvbmZpZy52aXNDb25maWcucHJlc2V0LFxuICAgICAgICAgICAgICAgICAgICBuZXdQcmVzZXQgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoey4uLm92ZXJyaWRlcywgcHJlc2V0OiBuZXdQcmVzZXR9KTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB7c2VsZWN0ZWRQcmVzZXQ/LmRlc2NyaXB0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICB7c2VsZWN0ZWRQcmVzZXQ/LmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAge3NlbGVjdGVkUHJlc2V0Py5pbmZvVXJsID8gKFxuICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgaHJlZj17c2VsZWN0ZWRQcmVzZXQ/LmluZm9Vcmx9PlxuICAgICAgICAgICAgICAgICAgICAgIE1vcmUgSW5mb1xuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG5cbiAgICAgICAgICAgIHtzZWxlY3RlZFByZXNldC5pZCA9PT0gJ3NpbmdsZUJhbmQnICYmIChcbiAgICAgICAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgPFBhbmVsTGFiZWw+U2luZ2xlIEJhbmQgTmFtZTwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxJbmZvSGVscGVyXG4gICAgICAgICAgICAgICAgICAgIGlkPXtgJHtsYXllci5pZH0tc2luZ2xlLWJhbmQtbmFtZWB9XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiU2VsZWN0IGEgc2luZ2xlIGJhbmQuXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZFNpbmdsZUJhbmROYW1lfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17c2luZ2xlQmFuZE9wdGlvbnN9XG4gICAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT1cImlkXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZSh7c2luZ2xlQmFuZE5hbWU6IHZhbH0pO1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7U1RBQ19TRUFSQ0hfVUlfRU5BQkxFRCAmJiBzdGFjU2VhcmNoQWxsb3dlZCAmJiAoXG4gICAgICAgICAgICAgIDxDdXN0b21WaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudXNlU1RBQ1NlYXJjaGluZ31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7U1RBQ19TRUFSQ0hfVUlfRU5BQkxFRCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge3N0YWNTZWFyY2hBbGxvd2VkICYmIHVzZVNUQUNTZWFyY2hpbmcgPyAoXG4gICAgICAgICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxQYW5lbExhYmVsPlNUQUMgU2VhcmNoIFByb3ZpZGVyPC9QYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0YWNTZWFyY2hQcm92aWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtmaW5kVmlzQ29uZmlnSXRlbUJ5SWQobGF5ZXIsICdzdGFjU2VhcmNoUHJvdmlkZXInKX1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNob29zZSBzZWFyY2ggcHJvdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGdldE9wdGlvblZhbHVlPVwiaWRcIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogY2hlY2sgd2hlbiBzd2l0Y2hpbmcgbGF5ZXJzIHNvIHRoYXQgeW91IGRvbid0IG1pc21hdGNoIGFsbG93ZWQgbW9zYWljcyB3aXRoIGxheWVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe3N0YWNTZWFyY2hQcm92aWRlcjogdmFsfSk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBhbmVsTGFiZWw+RGF0ZSBSYW5nZTwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPXtgJHtsYXllci5pZH0tc3RhcnREYXRlYH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHt0YXJnZXQ6IHt2YWx1ZX19KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZSh7c3RhcnREYXRlOiB2YWx1ZX0pO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2xheWVyLmNvbmZpZy52aXNDb25maWcuc3RhcnREYXRlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9e2Ake2xheWVyLmlkfS1lbmREYXRlYH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHt0YXJnZXQ6IHt2YWx1ZX19KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZSh7ZW5kRGF0ZTogdmFsdWV9KTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtsYXllci5jb25maWcudmlzQ29uZmlnLmVuZERhdGV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvblRleHQ+RGF0ZSBmb3JtYXQgbXVzdCBiZSBcIllZWVktTU0tRERcIjwvRGVzY3JpcHRpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICApfVxuXG4gICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gbGFiZWw9XCJWaXN1YWwgU2V0dGluZ3NcIiBjb2xsYXBzaWJsZT17ZmFsc2V9PlxuICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICB7Y29sb3JtYXBBbGxvd2VkICYmIChcbiAgICAgICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5Db2xvcm1hcDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3NlbGVjdGVkQ29sb3JtYXB9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17Y29sb3JtYXBPcHRpb25zfVxuICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgIGdldE9wdGlvblZhbHVlPVwiaWRcIlxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWwgPT4ge1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe2NvbG9ybWFwSWQ6IHZhbH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudD17Q29sb3JNYXBMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICBmaWx0ZXJPcHRpb249XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICB7LyogUmVzY2FsaW5nICovfVxuICAgICAgICB7cmVzY2FsaW5nQWxsb3dlZCAmJiAoXG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cIlJlc2NhbGluZ1wiPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5keW5hbWljQ29sb3J9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtpc0R5bmFtaWNDb2xvcnNPbmx5fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm5vbkxpbmVhclJlc2NhbGluZ31cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17bm9uTGluZWFyUmVzY2FsaW5nID8gJ05vbi1MaW5lYXIgUmVzY2FsaW5nJyA6ICdMaW5lYXIgUmVzY2FsaW5nJ31cbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIHsvKiBUT0RPOiBhZGQgc2xpZGVycyBmb3IgcmVkLCBncmVlbiwgYmx1ZSwgbm90IGEgc2luZ2xlIHNsaWRlciAqL31cbiAgICAgICAgICAgIHtub25MaW5lYXJSZXNjYWxpbmcgPyAoXG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmdhbW1hQ29udHJhc3RGYWN0b3J9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2lnbW9pZGFsQ29udHJhc3RGYWN0b3J9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2lnbW9pZGFsQmlhc0ZhY3Rvcn1cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MubGluZWFyUmVzY2FsaW5nRmFjdG9yfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNhdHVyYXRpb25WYWx1ZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICl9XG5cbiAgICAgICAge2ZpbHRlckFsbG93ZWQgJiYgKFxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsdGVyRW5hYmxlZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsdGVyUmFuZ2V9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICl9XG5cbiAgICAgICAge2VsZXZhdGlvblVJfVxuICAgICAgPC9TdHlsZWRMYXllckNvbmZpZ3VyYXRvcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBTVEFDQ2hlY2tDb25maWd1cmF0b3JXcmFwcGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQW1CQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFJQSxJQUFBTywyQkFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsa0JBQUEsR0FBQVIsT0FBQTtBQU1BLElBQUFTLE9BQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQVIsc0JBQUEsQ0FBQUYsT0FBQTtB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QUFBMkQsU0FBQSxpQkFDVjlILEtBQUssQ0FBQ3lCLGlCQUFpQixDQUFDb0Qsa0JBQWtCLEVBQzFDUCxvQkFBb0I7TUFDeEJqRSxLQUFLLEVBQUV3RSxrQkFBa0IsR0FBRyxzQkFBc0IsR0FBRztJQUFtQixFQUN6RSxDQUFDLEVBR0RBLGtCQUFrQixnQkFDakI1SSxNQUFBLFlBQUFzRSxhQUFBLDJCQUNFdEUsTUFBQSxZQUFBc0UsYUFBQSxDQUFDMEQsZUFBZSxNQUFBNkQsU0FBQSxpQkFDVjlILEtBQUssQ0FBQ3lCLGlCQUFpQixDQUFDcUksbUJBQW1CLEVBQzNDeEYsb0JBQW9CLENBQ3pCLENBQUMsZUFDRnJJLE1BQUEsWUFBQXNFLGFBQUEsQ0FBQzBELGVBQWUsTUFBQTZELFNBQUEsaUJBQ1Y5SCxLQUFLLENBQUN5QixpQkFBaUIsQ0FBQ3NJLHVCQUF1QixFQUMvQ3pGLG9CQUFvQixDQUN6QixDQUFDLGVBQ0ZySSxNQUFBLFlBQUFzRSxhQUFBLENBQUMwRCxlQUFlLE1BQUE2RCxTQUFBLGlCQUNWOUgsS0FBSyxDQUFDeUIsaUJBQWlCLENBQUN1SSxtQkFBbUIsRUFDM0MxRixvQkFBb0IsQ0FDekIsQ0FDRSxDQUFDLGdCQUVOckksTUFBQSxZQUFBc0UsYUFBQSxDQUFDMEQsZUFBZSxNQUFBNkQsU0FBQSxpQkFDVjlILEtBQUssQ0FBQ3lCLGlCQUFpQixDQUFDd0kscUJBQXFCLEVBQzdDM0Ysb0JBQW9CLENBQ3pCLENBQ0YsZUFFRHJJLE1BQUEsWUFBQXNFLGFBQUEsQ0FBQzBELGVBQWUsTUFBQTZELFNBQUEsaUJBQ1Y5SCxLQUFLLENBQUN5QixpQkFBaUIsQ0FBQ3lJLGVBQWUsRUFDdkM1RixvQkFBb0IsQ0FDekIsQ0FDZSxDQUNuQixFQUVBK0IsYUFBYSxpQkFDWnBLLE1BQUEsWUFBQXNFLGFBQUEsQ0FBQ3lELGdCQUFnQixNQUFBOEQsU0FBQSxpQkFDWDlILEtBQUssQ0FBQ3lCLGlCQUFpQixDQUFDMEksYUFBYSxFQUNyQzdGLG9CQUFvQjtNQUN4QjBELFdBQVc7SUFBQSxpQkFFWC9MLE1BQUEsWUFBQXNFLGFBQUEsQ0FBQzBELGVBQWUsTUFBQTZELFNBQUEsaUJBQUs5SCxLQUFLLENBQUN5QixpQkFBaUIsQ0FBQzJJLFdBQVcsRUFBTTlGLG9CQUFvQixDQUFHLENBQ3JFLENBQ25CLEVBRUFtRCxXQUNzQixDQUFDO0VBRTlCLENBQUM7RUFFRCxPQUFPckQsNEJBQTRCO0FBQ3JDO0FBQUMsSUFBQWlHLFFBQUEsR0FBQUMsT0FBQSxjQUVjNUcsa0NBQWtDIiwiaWdub3JlTGlzdCI6W119
|
|
358
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX2xheWVycyIsIl9sb2NhbGl6YXRpb24iLCJfdXRpbHMiLCJfcmFzdGVyVGlsZUNvbG9ybWFwTGlzdEl0ZW0iLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfc3dpdGNoIiwiX2luZm9IZWxwZXIiLCJfaXRlbVNlbGVjdG9yIiwiX3Zpc0NvbmZpZ1NsaWRlciIsIl9sYXllckNvbmZpZ0dyb3VwIiwiX3Zpc0NvbmZpZ1N3aXRjaCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU1RBQ19TRUFSQ0hfVUlfRU5BQkxFRCIsIlN0eWxlZFZpc0NvbmZpZ1N3aXRjaCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiQ3VzdG9tVmlzQ29uZmlnU3dpdGNoIiwiX3JlZiIsIl9yZWYkbGF5ZXIiLCJsYXllciIsImlkIiwiY29uZmlnIiwicHJvcGVydHkiLCJvbkNoYW5nZSIsImxhYmVsIiwiZGlzYWJsZWQiLCJjcmVhdGVFbGVtZW50IiwiU2lkZVBhbmVsU2VjdGlvbiIsIkJvb2xlYW4iLCJjbGFzc05hbWUiLCJQYW5lbExhYmVsV3JhcHBlciIsIlBhbmVsTGFiZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIiwiY2hlY2tlZCIsInZpc0NvbmZpZyIsImNvbmNhdCIsIlN0eWxlZExheWVyQ29uZmlndXJhdG9yIiwiRGVzY3JpcHRpb25UZXh0IiwicHJvcHMiLCJ0aGVtZSIsInN1YnRleHRDb2xvciIsImZpbmRWaXNDb25maWdJdGVtQnlJZCIsInByb3AiLCJ2aXNDb25maWdTZXR0aW5ncyIsIm9wdGlvbnMiLCJmaW5kIiwib3AiLCJmaW5kSXRlbUJ5SWQiLCJnZXRCYW5kU2VsZWN0b3JPcHRpb25zIiwic3RhYyIsImVvQmFuZHMiLCJnZXRFT0JhbmRzIiwibWFwIiwiZW9CYW5kIiwibmFtZSIsImNvbW1vbl9uYW1lIiwiZ2V0Q2F0ZWdvcmljYWxDb2xvcm1hcExpc3RJdGVtIiwiY2F0ZWdvcmljYWxDb2xvck1hcCIsImNhdGVnb3JpY2FsSXRlbSIsIkNBVEVHT1JJQ0FMX0NPTE9STUFQX0lEIiwiaXNEYXRhU291cmNlQ29sb3JSYW5nZUF2YWlsYWJsZSIsInByZXNldCIsInNpbmdsZUJhbmRQcmVzZXRPcHRpb25zIiwibWluUGl4ZWxWYWx1ZSIsIm1heFBpeGVsVmFsdWUiLCJkYXRhU291cmNlUGFyYW1zIiwiZ2V0RGF0YVNvdXJjZVBhcmFtcyIsInNpbmdsZUJhbmQiLCJ1cGRhdGVDb2xvclBhcmFtc09uUHJlc2V0Q2hhbmdlIiwib2xkUHJlc2V0IiwibmV3UHJlc2V0IiwiY29sb3JQYXJhbXMiLCJjb2xvck92ZXJyaWRlcyIsIkRBVEFfU09VUkNFX0NPTE9SX0RFRkFVTFRTIiwiYmFuZE9mSW50ZXJlc3QiLCJSQVNURVJfQ09MT1JfUkVTRVRfUEFSQU1TIiwiUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yRmFjdG9yeSIsImRlcHMiLCJMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSIsIlZpc0NvbmZpZ1NsaWRlckZhY3RvcnkiLCJJbmZvSGVscGVyRmFjdG9yeSIsIlZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkiLCJMYXllckNvbmZpZ0dyb3VwIiwiVmlzQ29uZmlnU2xpZGVyIiwiSW5mb0hlbHBlciIsIlZpc0NvbmZpZ1N3aXRjaCIsIlNUQUNDaGVja0NvbmZpZ3VyYXRvcldyYXBwZXIiLCJfcmVmMiIsInZpc0NvbmZpZ3VyYXRvclByb3BzIiwiZGF0YXNldCIsIm1ldGFkYXRhIiwiUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yIiwiX3JlZjMiLCJfc3RhYyRyYXN0ZXJTZXJ2ZXJTdXAiLCJfc3RhYyRyYXN0ZXJUaWxlU2VydmUiLCJfbGF5ZXIkY29uZmlnJHZpc0NvbmYiLCJub25MaW5lYXJSZXNjYWxpbmciLCJ1c2VTVEFDU2VhcmNoaW5nIiwiY29sb3JSYW5nZSIsImNvbG9yTWFwIiwiZHluYW1pY0NvbG9yIiwic2luZ2xlQmFuZE5hbWUiLCJhdmFpbGFibGVQcmVzZXRzIiwidXNlTWVtbyIsImZpbHRlckF2YWlsYWJsZVByZXNldHMiLCJQUkVTRVRfT1BUSU9OUyIsInByZXNldE9wdGlvbnMiLCJfcmVmNCIsImluY2x1ZGVzIiwic2luZ2xlQmFuZE9wdGlvbnMiLCJjb2xvcm1hcE9wdGlvbnMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiY29sb3JtYXBJZCIsImNhdGVnb3JpY2FsTGlzdEl0ZW0iLCJfcmVmNSIsImJhbmRDb21iaW5hdGlvbiIsImNvbG9ybWFwQWxsb3dlZCIsImlzQ29sb3JtYXBBbGxvd2VkIiwicmVzY2FsaW5nQWxsb3dlZCIsImlzUmVzY2FsaW5nQWxsb3dlZCIsImZpbHRlckFsbG93ZWQiLCJpc0ZpbHRlckFsbG93ZWQiLCJzdGFjU2VhcmNoQWxsb3dlZCIsImlzU2VhcmNoYWJsZVN0YWMiLCJzZWxlY3RlZENvbG9ybWFwIiwic2VsZWN0ZWRQcmVzZXQiLCJzZWxlY3RlZFNpbmdsZUJhbmROYW1lIiwiZ2V0U2luZ2xlQmFuZFByZXNldE9wdGlvbnMiLCJfZ2V0UmFzdGVyU3RhdGlzdGljc00iLCJnZXRSYXN0ZXJTdGF0aXN0aWNzTWluTWF4IiwiX2dldFJhc3RlclN0YXRpc3RpY3NNMiIsIl9zbGljZWRUb0FycmF5MiIsIm1pbkNhdGVnb3JpY2FsQmFuZFZhbHVlIiwibWF4Q2F0ZWdvcmljYWxCYW5kVmFsdWUiLCJDb2xvck1hcExpc3RJdGVtIiwiZ2V0Q29sb3JNYXBMaXN0SXRlbUNvbXBvbmVudCIsIm1pblZhbHVlIiwibWF4VmFsdWUiLCJpc0R5bmFtaWNDb2xvcnNPbmx5IiwidXNlRWZmZWN0IiwiZWxldmF0aW9uVUkiLCJGcmFnbWVudCIsInJhc3RlclNlcnZlclN1cHBvcnRzRWxldmF0aW9uIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJyYXN0ZXJUaWxlU2VydmVyVXJscyIsIl9leHRlbmRzMiIsImVuYWJsZVRlcnJhaW4iLCJjb2xsYXBzaWJsZSIsIkNvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50IiwiZW5hYmxlVGVycmFpblRvcFZpZXciLCJwbXRpbGVzVHlwZSIsIlBNVGlsZXNUeXBlIiwiUkFTVEVSIiwib3BhY2l0eSIsImRlc2NyaXB0aW9uIiwic2VsZWN0ZWRJdGVtcyIsIm11bHRpU2VsZWN0Iiwic2VhcmNoYWJsZSIsImRpc3BsYXlPcHRpb24iLCJnZXRPcHRpb25WYWx1ZSIsIm92ZXJyaWRlcyIsImluZm9VcmwiLCJ0YXJnZXQiLCJyZWwiLCJocmVmIiwidmFsIiwic3RhY1NlYXJjaFByb3ZpZGVyIiwicGxhY2Vob2xkZXIiLCJJbnB1dCIsInR5cGUiLCJfcmVmNiIsInZhbHVlIiwic3RhcnREYXRlIiwiX3JlZjciLCJlbmREYXRlIiwiRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudCIsImZpbHRlck9wdGlvbiIsImdhbW1hQ29udHJhc3RGYWN0b3IiLCJzaWdtb2lkYWxDb250cmFzdEZhY3RvciIsInNpZ21vaWRhbEJpYXNGYWN0b3IiLCJsaW5lYXJSZXNjYWxpbmdGYWN0b3IiLCJzYXR1cmF0aW9uVmFsdWUiLCJmaWx0ZXJFbmFibGVkIiwiZmlsdGVyUmFuZ2UiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9yYXN0ZXItdGlsZS1sYXllci1jb25maWd1cmF0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7UE1UaWxlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGZpbHRlckF2YWlsYWJsZVByZXNldHMsXG4gIGdldEVPQmFuZHMsXG4gIGdldFJhc3RlclN0YXRpc3RpY3NNaW5NYXgsXG4gIGdldFNpbmdsZUJhbmRQcmVzZXRPcHRpb25zLFxuICBpc0NvbG9ybWFwQWxsb3dlZCxcbiAgaXNGaWx0ZXJBbGxvd2VkLFxuICBpc1Jlc2NhbGluZ0FsbG93ZWQsXG4gIGlzU2VhcmNoYWJsZVN0YWMsXG4gIENvbXBsZXRlU1RBQ09iamVjdCxcbiAgR2V0VGlsZURhdGFDdXN0b21Qcm9wcyxcbiAgRGF0YVNvdXJjZVBhcmFtcyxcbiAgUHJlc2V0T3B0aW9uLFxuICBSYXN0ZXJUaWxlTGF5ZXIsXG4gIENBVEVHT1JJQ0FMX0NPTE9STUFQX0lELFxuICBQUkVTRVRfT1BUSU9OUyxcbiAgUkFTVEVSX0NPTE9SX1JFU0VUX1BBUkFNUyxcbiAgREFUQV9TT1VSQ0VfQ09MT1JfREVGQVVMVFNcbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlciwgZ2V0QXBwbGljYXRpb25Db25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZSBhcyBLZXBsZXJEYXRhc2V0fSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB0eXBlIHtTdGFjVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge2dldENvbG9yTWFwTGlzdEl0ZW1Db21wb25lbnR9IGZyb20gJy4vcmFzdGVyLXRpbGUtY29sb3JtYXAtbGlzdC1pdGVtJztcblxuaW1wb3J0IHtcbiAgSW5wdXQsXG4gIFBhbmVsTGFiZWwsXG4gIFBhbmVsTGFiZWxXcmFwcGVyLFxuICBTaWRlUGFuZWxTZWN0aW9uXG59IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgU3dpdGNoIGZyb20gJy4uLy4uL2NvbW1vbi9zd2l0Y2gnO1xuaW1wb3J0IEluZm9IZWxwZXJGYWN0b3J5IGZyb20gJy4uLy4uL2NvbW1vbi9pbmZvLWhlbHBlcic7XG5pbXBvcnQgSXRlbVNlbGVjdG9yIGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3InO1xuaW1wb3J0IFZpc0NvbmZpZ1NsaWRlckZhY3RvcnkgZnJvbSAnLi4vLi4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC92aXMtY29uZmlnLXNsaWRlcic7XG5pbXBvcnQgTGF5ZXJDb25maWdHcm91cEZhY3RvcnksIHtcbiAgQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnRcbn0gZnJvbSAnLi4vLi4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWctZ3JvdXAnO1xuaW1wb3J0IFZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkgZnJvbSAnLi4vLi4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC92aXMtY29uZmlnLXN3aXRjaCc7XG5cbnR5cGUgRU9CYW5kID0gU3RhY1R5cGVzLkJhbmQ7XG5cbmNvbnN0IFNUQUNfU0VBUkNIX1VJX0VOQUJMRUQgPSB0cnVlO1xuXG5jb25zdCBTdHlsZWRWaXNDb25maWdTd2l0Y2ggPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgLnZpcy1jb25maWctc3dpdGNoX190aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuYDtcblxuY29uc3QgQ3VzdG9tVmlzQ29uZmlnU3dpdGNoID0gKHtcbiAgbGF5ZXI6IHtpZCwgY29uZmlnfSxcbiAgcHJvcGVydHksXG4gIG9uQ2hhbmdlLFxuICBsYWJlbCxcbiAgZGlzYWJsZWRcbn06IHtcbiAgbGF5ZXI6IFJhc3RlclRpbGVMYXllcjtcbiAgcHJvcGVydHk6IHN0cmluZztcbiAgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICBsYWJlbDogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbn0pID0+IChcbiAgPFNpZGVQYW5lbFNlY3Rpb24gZGlzYWJsZWQ9e0Jvb2xlYW4oZGlzYWJsZWQpfT5cbiAgICA8U3R5bGVkVmlzQ29uZmlnU3dpdGNoIGNsYXNzTmFtZT1cInZpcy1jb25maWctc3dpdGNoXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInZpcy1jb25maWctc3dpdGNoX190aXRsZVwiPlxuICAgICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAge2xhYmVsID8gKFxuICAgICAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgICAgIHsobGFiZWwgJiYgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e2xhYmVsfSAvPikgfHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHByb3BlcnR5KX1cbiAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2aXMtY29uZmlnLXN3aXRjaF9fc3dpdGNoXCI+XG4gICAgICAgIDxTd2l0Y2hcbiAgICAgICAgICBjaGVja2VkPXtjb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XX1cbiAgICAgICAgICBpZD17YCR7aWR9LSR7cHJvcGVydHl9LXN3aXRjaGB9XG4gICAgICAgICAgb25DaGFuZ2U9eygpID0+IG9uQ2hhbmdlKHtbcHJvcGVydHldOiAhY29uZmlnLnZpc0NvbmZpZ1twcm9wZXJ0eV19KX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvU3R5bGVkVmlzQ29uZmlnU3dpdGNoPlxuICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4pO1xuXG5jb25zdCBTdHlsZWRMYXllckNvbmZpZ3VyYXRvciA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDEycHg7XG5gO1xuXG5jb25zdCBEZXNjcmlwdGlvblRleHQgPSBzdHlsZWQoUGFuZWxMYWJlbClgXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgfVxuYDtcblxuLy8gVE9ETzogY29tYmluZSB0aGVzZSB0d28gaGVscGVycyBpbnRvIG9uZVxuZnVuY3Rpb24gZmluZFZpc0NvbmZpZ0l0ZW1CeUlkKGxheWVyLCBwcm9wKSB7XG4gIHJldHVybiBsYXllci52aXNDb25maWdTZXR0aW5nc1twcm9wXS5vcHRpb25zLmZpbmQob3AgPT4gb3AuaWQgPT09IGxheWVyLmNvbmZpZy52aXNDb25maWdbcHJvcF0pO1xufVxuXG5mdW5jdGlvbiBmaW5kSXRlbUJ5SWQobGF5ZXIsIG9wdGlvbnMsIHByb3ApIHtcbiAgLy8gRm9yIG5vdyBpdCdzIHBvc3NpYmxlIHRoYXQgbm9uLXJhc3RlciBtZXRhZGF0YSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgcmFzdGVyIGNvbmZpZ3VyYXRvciwgc29cbiAgLy8gb3B0aW9ucyBtYXkgYmUgbnVsbFxuICByZXR1cm4gb3B0aW9ucz8uZmluZChvcCA9PiBvcC5pZCA9PT0gbGF5ZXIuY29uZmlnLnZpc0NvbmZpZ1twcm9wXSk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgZHJvcCBkb3duIGxhYmVscyBmb3Igc2luZ2xlIGJhbmQgc2VsZWN0b3JcbiAqIEBwYXJhbSBzdGFjIC0gU1RBQyBpdGVtIG1ldGFkYXRhIG9iamVjdFxuICogQHJldHVybnMgYXJyYXkgb2Yge2lkLCBsYWJlbH0gZWxlbWVudHNcbiAqL1xuZnVuY3Rpb24gZ2V0QmFuZFNlbGVjdG9yT3B0aW9ucyhzdGFjOiBDb21wbGV0ZVNUQUNPYmplY3QpOiB7aWQ/OiBzdHJpbmc7IGxhYmVsPzogc3RyaW5nfVtdIHtcbiAgY29uc3QgZW9CYW5kcyA9IGdldEVPQmFuZHMoc3RhYykgfHwgW107XG4gIHJldHVybiBlb0JhbmRzLm1hcCgoZW9CYW5kOiBFT0JhbmQpID0+ICh7XG4gICAgaWQ6IGVvQmFuZC5uYW1lIHx8IGVvQmFuZC5jb21tb25fbmFtZSxcbiAgICBsYWJlbDogZW9CYW5kLmNvbW1vbl9uYW1lXG4gICAgICA/IGAke2VvQmFuZC5uYW1lIHx8IGVvQmFuZC5jb21tb25fbmFtZX0gKCR7ZW9CYW5kLmNvbW1vbl9uYW1lfSlgXG4gICAgICA6IGVvQmFuZC5uYW1lXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2F0ZWdvcmljYWxDb2xvcm1hcExpc3RJdGVtKGNhdGVnb3JpY2FsQ29sb3JNYXApIHtcbiAgbGV0IGNhdGVnb3JpY2FsSXRlbToge2xhYmVsOiBzdHJpbmc7IGlkOiBzdHJpbmd9IHwgdW5kZWZpbmVkO1xuICBpZiAoY2F0ZWdvcmljYWxDb2xvck1hcCkge1xuICAgIGNhdGVnb3JpY2FsSXRlbSA9IHtsYWJlbDogJ0NhdGVnb3JpY2FsJywgaWQ6IENBVEVHT1JJQ0FMX0NPTE9STUFQX0lEfTtcbiAgfVxuICByZXR1cm4gY2F0ZWdvcmljYWxJdGVtO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGRhdGEgc291cmNlIGdsb2JhbCBwaXhlbCBjb2xvciByYW5nZSBpcyBjYWxjdWxhdGVkIGNvcnJlY3RseVxuICogQHBhcmFtIGxheWVyIC0gcmFzdGVyIGxheWVyXG4gKiBAcGFyYW0gc3RhYyAtIFNUQUMgbWV0YWRhdGEgb2JqZWN0XG4gKiBAcGFyYW0gcHJlc2V0IC0gcHJlc2V0IG5hbWVcbiAqIEBwYXJhbSBzaW5nbGVCYW5kUHJlc2V0T3B0aW9ucyAtIG9wdGlvbnMgZm9yIHNpbmdsZSBiYW5kIHByZXNldFxuICogQHJldHVybnMgYm9vbGVhbiB2YWx1ZVxuICovXG5mdW5jdGlvbiBpc0RhdGFTb3VyY2VDb2xvclJhbmdlQXZhaWxhYmxlKFxuICBsYXllcjogUmFzdGVyVGlsZUxheWVyLFxuICBzdGFjOiBDb21wbGV0ZVNUQUNPYmplY3QsXG4gIHByZXNldDogc3RyaW5nLFxuICBzaW5nbGVCYW5kUHJlc2V0T3B0aW9uczogUHJlc2V0T3B0aW9uWydzaW5nbGVCYW5kJ11cbik6IGJvb2xlYW4ge1xuICBsZXQgbWluUGl4ZWxWYWx1ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGxldCBtYXhQaXhlbFZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgY29uc3QgZGF0YVNvdXJjZVBhcmFtczogRGF0YVNvdXJjZVBhcmFtcyB8IG51bGwgPSBsYXllci5nZXREYXRhU291cmNlUGFyYW1zKHN0YWMsIHByZXNldCwge1xuICAgIHNpbmdsZUJhbmQ6IHNpbmdsZUJhbmRQcmVzZXRPcHRpb25zXG4gIH0pO1xuICBpZiAoZGF0YVNvdXJjZVBhcmFtcykge1xuICAgIG1pblBpeGVsVmFsdWUgPSBkYXRhU291cmNlUGFyYW1zLm1pblBpeGVsVmFsdWU7XG4gICAgbWF4UGl4ZWxWYWx1ZSA9IGRhdGFTb3VyY2VQYXJhbXMubWF4UGl4ZWxWYWx1ZTtcbiAgfVxuICByZXR1cm4gbWluUGl4ZWxWYWx1ZSAhPT0gbnVsbCAmJiBtYXhQaXhlbFZhbHVlICE9PSBudWxsO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgY29sb3IgcGFyYW1ldGVycyBiYXNlZCBvbiBhIGNoYW5nZSBpbiB2aXN1YWxpemF0aW9uIHByZXNldC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGFkanVzdHMgdGhlIGNvbG9yIHByb2Nlc3NpbmcgcGFyYW1ldGVycyB3aGVuIHRoZSB2aXN1YWxpemF0aW9uXG4gKiBwcmVzZXQgY2hhbmdlcywgYmFzZWQgb24gd2hldGhlciB0aGUgcHJlc2V0IGlzIHN3aXRjaGluZyB0byBvciBmcm9tIGFcbiAqIHNpbmdsZS1iYW5kLiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYXBwbHkgY29sb3JcbiAqIGVuaGFuY2VtZW50cyBvciByZXNldCBwYXJhbWV0ZXJzIGJhc2VkIG9uIHRoZSBwcmVzZXQgdHJhbnNpdGlvbi5cbiAqXG4gKiBAcGFyYW0gc3RhYyBBIFNUQUMgKFNwYXRpb1RlbXBvcmFsIEFzc2V0IENhdGFsb2cpIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGRhdGFzZXQuXG4gKiBAcGFyYW0gbmV3UHJlc2V0IFRoZSBvbGQgdmlzdWFsaXphdGlvbiBwcmVzZXQgYmVpbmcgYXBwbGllZC5cbiAqIEBwYXJhbSBuZXdQcmVzZXQgVGhlIG5ldyB2aXN1YWxpemF0aW9uIHByZXNldCBiZWluZyBhcHBsaWVkLlxuICogQHJldHVybnMgVGhlIHVwZGF0ZWQgY29sb3IgcGFyYW1ldGVycyB0byBhcHBseS5cbiAqL1xuZnVuY3Rpb24gdXBkYXRlQ29sb3JQYXJhbXNPblByZXNldENoYW5nZShcbiAgc3RhYzogQ29tcGxldGVTVEFDT2JqZWN0LFxuICBvbGRQcmVzZXQ6IHN0cmluZyxcbiAgbmV3UHJlc2V0OiBzdHJpbmdcbikge1xuICBsZXQgY29sb3JQYXJhbXMgPSB7fTtcbiAgY29uc3QgY29sb3JPdmVycmlkZXMgPSBEQVRBX1NPVVJDRV9DT0xPUl9ERUZBVUxUU1tzdGFjLmlkXTtcbiAgaWYgKGNvbG9yT3ZlcnJpZGVzKSByZXR1cm4gY29sb3JQYXJhbXM7XG5cbiAgY29uc3QgYmFuZE9mSW50ZXJlc3QgPSAnc2luZ2xlQmFuZCc7XG4gIGlmIChvbGRQcmVzZXQgPT09IGJhbmRPZkludGVyZXN0ICYmIG5ld1ByZXNldCAhPT0gYmFuZE9mSW50ZXJlc3QpIHtcbiAgICAvLyBlbmNoYW5jZSBjb2xvcnMgZm9yIG11bHRpYmFuZCBjb21iaW5hdGlvbnNcbiAgICBjb2xvclBhcmFtcyA9IGNvbG9yT3ZlcnJpZGVzO1xuICB9IGVsc2UgaWYgKG9sZFByZXNldCAhPT0gYmFuZE9mSW50ZXJlc3QgJiYgbmV3UHJlc2V0ID09PSBiYW5kT2ZJbnRlcmVzdCkge1xuICAgIC8vIHJlc2V0IGltYWdlIHByb2Nlc3NuZyBwYXJhbXNcbiAgICBjb2xvclBhcmFtcyA9IFJBU1RFUl9DT0xPUl9SRVNFVF9QQVJBTVM7XG4gIH1cblxuICByZXR1cm4gY29sb3JQYXJhbXM7XG59XG5cbnR5cGUgUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yUHJvcHMgPSB7XG4gIGxheWVyOiBSYXN0ZXJUaWxlTGF5ZXI7XG4gIHZpc0NvbmZpZ3VyYXRvclByb3BzOiBhbnk7XG4gIGRhdGFzZXQ6IEtlcGxlckRhdGFzZXQ7XG59O1xuXG5SYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5LmRlcHMgPSBbXG4gIExheWVyQ29uZmlnR3JvdXBGYWN0b3J5LFxuICBWaXNDb25maWdTbGlkZXJGYWN0b3J5LFxuICBJbmZvSGVscGVyRmFjdG9yeSxcbiAgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yRmFjdG9yeShcbiAgTGF5ZXJDb25maWdHcm91cDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJDb25maWdHcm91cEZhY3Rvcnk+LFxuICBWaXNDb25maWdTbGlkZXI6IFJldHVyblR5cGU8dHlwZW9mIFZpc0NvbmZpZ1NsaWRlckZhY3Rvcnk+LFxuICBJbmZvSGVscGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBJbmZvSGVscGVyRmFjdG9yeT4sXG4gIFZpc0NvbmZpZ1N3aXRjaDogUmV0dXJuVHlwZTx0eXBlb2YgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeT5cbik6IFJlYWN0LkZDPFJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvclByb3BzPiB7XG4gIC8qKlxuICAgKiBXcmFwcGVyIGFyb3VuZCBjb25maWd1cmF0b3IgdG8gY2hlY2sgZm9yIGRhdGFzZXQubWV0YWRhdGEgYmVpbmcgbnVsbC91bmRlZmluZWRcbiAgICovXG4gIGNvbnN0IFNUQUNDaGVja0NvbmZpZ3VyYXRvcldyYXBwZXIgPSAoe1xuICAgIGxheWVyLFxuICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgIGRhdGFzZXRcbiAgfTogUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yUHJvcHMpID0+IHtcbiAgICBjb25zdCBzdGFjID0gZGF0YXNldD8ubWV0YWRhdGE7XG5cbiAgICAvLyBJZiBubyBkYXRhc2V0IGlzIGxvYWRlZCBpbnRvIEtlcGxlciwgc3RhYyBjYW4gYmUgdW5kZWZpbmVkXG4gICAgaWYgKCFzdGFjKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvclxuICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzPXt2aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgZGF0YXNldD17ZGF0YXNldH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICBjb25zdCBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3I6IFJlYWN0LkZDPFJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvclByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgZGF0YXNldFxuICB9KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgcHJlc2V0LFxuICAgICAgbm9uTGluZWFyUmVzY2FsaW5nLFxuICAgICAgdXNlU1RBQ1NlYXJjaGluZyxcbiAgICAgIGNvbG9yUmFuZ2U6IHtjb2xvck1hcDogY2F0ZWdvcmljYWxDb2xvck1hcH0sXG4gICAgICBkeW5hbWljQ29sb3IsXG4gICAgICBzaW5nbGVCYW5kTmFtZVxuICAgIH0gPSBsYXllci5jb25maWcudmlzQ29uZmlnO1xuXG4gICAgY29uc3Qgc3RhYyA9IGRhdGFzZXQ/Lm1ldGFkYXRhIGFzIEdldFRpbGVEYXRhQ3VzdG9tUHJvcHNbJ3N0YWMnXTtcblxuICAgIGNvbnN0IGF2YWlsYWJsZVByZXNldHMgPSB1c2VNZW1vKCgpID0+IGZpbHRlckF2YWlsYWJsZVByZXNldHMoc3RhYywgUFJFU0VUX09QVElPTlMpLCBbc3RhY10pO1xuXG4gICAgY29uc3QgcHJlc2V0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICAoXG4gICAgICAgICAgbGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucHJlc2V0Lm9wdGlvbnMgYXMgdW5rbm93biBhcyB7XG4gICAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgICAgICB9W11cbiAgICAgICAgKS5maWx0ZXIoKHtpZH0pID0+IGF2YWlsYWJsZVByZXNldHM/LmluY2x1ZGVzKGlkKSksXG4gICAgICBbbGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucHJlc2V0Lm9wdGlvbnMsIGF2YWlsYWJsZVByZXNldHNdXG4gICAgKTtcbiAgICBjb25zdCBzaW5nbGVCYW5kT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0QmFuZFNlbGVjdG9yT3B0aW9ucyhzdGFjKSwgW3N0YWNdKTtcbiAgICBjb25zdCBjb2xvcm1hcE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBbXG4gICAgICAgIC4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvcm1hcElkLm9wdGlvbnMgYXMgdW5rbm93biBhcyB7XG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgICB9W10pXG4gICAgICBdO1xuICAgICAgY29uc3QgY2F0ZWdvcmljYWxMaXN0SXRlbSA9IGdldENhdGVnb3JpY2FsQ29sb3JtYXBMaXN0SXRlbShjYXRlZ29yaWNhbENvbG9yTWFwKTtcbiAgICAgIGlmIChjYXRlZ29yaWNhbExpc3RJdGVtKSB7XG4gICAgICAgIG9wdGlvbnMucHVzaChjYXRlZ29yaWNhbExpc3RJdGVtKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH0sIFtsYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvcm1hcElkLm9wdGlvbnMsIGNhdGVnb3JpY2FsQ29sb3JNYXBdKTtcblxuICAgIGNvbnN0IHtiYW5kQ29tYmluYXRpb259ID0gUFJFU0VUX09QVElPTlNbcHJlc2V0XSB8fCB7fTtcbiAgICBjb25zdCBjb2xvcm1hcEFsbG93ZWQgPSBpc0NvbG9ybWFwQWxsb3dlZChiYW5kQ29tYmluYXRpb24pO1xuICAgIGNvbnN0IHJlc2NhbGluZ0FsbG93ZWQgPSAhY2F0ZWdvcmljYWxDb2xvck1hcCAmJiBpc1Jlc2NhbGluZ0FsbG93ZWQoYmFuZENvbWJpbmF0aW9uKTtcbiAgICBjb25zdCBmaWx0ZXJBbGxvd2VkID0gaXNGaWx0ZXJBbGxvd2VkKGJhbmRDb21iaW5hdGlvbik7XG5cbiAgICAvLyBIZXJlIHdlIHNob3cgdGhlIFVJIHdoZW4gdXNlU1RBQ1NlYXJjaGluZyBpcyBleHBsaWNpdGx5IHNldCB0byB0cnVlIHNvIHRoYXQgdGhlIFVJIHNob3dzIHVwXG4gICAgY29uc3Qgc3RhY1NlYXJjaEFsbG93ZWQgPSBpc1NlYXJjaGFibGVTdGFjKHN0YWMpIHx8IHVzZVNUQUNTZWFyY2hpbmc7XG5cbiAgICBjb25zdCBzZWxlY3RlZENvbG9ybWFwID1cbiAgICAgIGZpbmRWaXNDb25maWdJdGVtQnlJZChsYXllciwgJ2NvbG9ybWFwSWQnKSB8fFxuICAgICAgZ2V0Q2F0ZWdvcmljYWxDb2xvcm1hcExpc3RJdGVtKGNhdGVnb3JpY2FsQ29sb3JNYXApO1xuICAgIGNvbnN0IHNlbGVjdGVkUHJlc2V0ID0gZmluZFZpc0NvbmZpZ0l0ZW1CeUlkKGxheWVyLCAncHJlc2V0Jyk7XG4gICAgY29uc3Qgc2VsZWN0ZWRTaW5nbGVCYW5kTmFtZSA9IGZpbmRJdGVtQnlJZChsYXllciwgc2luZ2xlQmFuZE9wdGlvbnMsICdzaW5nbGVCYW5kTmFtZScpO1xuXG4gICAgY29uc3Qgc2luZ2xlQmFuZFByZXNldE9wdGlvbnMgPSBnZXRTaW5nbGVCYW5kUHJlc2V0T3B0aW9ucyhzdGFjLCBzaW5nbGVCYW5kTmFtZSk7XG4gICAgY29uc3QgW21pbkNhdGVnb3JpY2FsQmFuZFZhbHVlLCBtYXhDYXRlZ29yaWNhbEJhbmRWYWx1ZV0gPSBnZXRSYXN0ZXJTdGF0aXN0aWNzTWluTWF4KFxuICAgICAgc3RhYyxcbiAgICAgIHByZXNldCxcbiAgICAgIHNpbmdsZUJhbmRQcmVzZXRPcHRpb25zXG4gICAgKTtcbiAgICBjb25zdCBDb2xvck1hcExpc3RJdGVtID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGdldENvbG9yTWFwTGlzdEl0ZW1Db21wb25lbnQoe1xuICAgICAgICAgIGNvbG9yTWFwOiBjYXRlZ29yaWNhbENvbG9yTWFwLFxuICAgICAgICAgIG1pblZhbHVlOiBtaW5DYXRlZ29yaWNhbEJhbmRWYWx1ZSxcbiAgICAgICAgICBtYXhWYWx1ZTogbWF4Q2F0ZWdvcmljYWxCYW5kVmFsdWVcbiAgICAgICAgfSksXG4gICAgICBbY2F0ZWdvcmljYWxDb2xvck1hcCwgbWluQ2F0ZWdvcmljYWxCYW5kVmFsdWUsIG1heENhdGVnb3JpY2FsQmFuZFZhbHVlXVxuICAgICk7XG4gICAgY29uc3QgaXNEeW5hbWljQ29sb3JzT25seSA9ICFpc0RhdGFTb3VyY2VDb2xvclJhbmdlQXZhaWxhYmxlKFxuICAgICAgbGF5ZXIsXG4gICAgICBzdGFjLFxuICAgICAgcHJlc2V0LFxuICAgICAgc2luZ2xlQmFuZFByZXNldE9wdGlvbnNcbiAgICApO1xuXG4gICAgLy8gRGVmYXVsdCBvZiBgZHluYW1pY0NvbG9yYCBpcyBmYWxzZS4gU2V0IGl0IHRydWUgaWYgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGdldCBkYXRhIHNvdXJjZVxuICAgIC8vIHdpZGUgY29sb3IgcmFuZ2VcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzRHluYW1pY0NvbG9yc09ubHkgJiYgIWR5bmFtaWNDb2xvcikge1xuICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZSh7ZHluYW1pY0NvbG9yOiB0cnVlfSk7XG4gICAgICB9XG4gICAgfSwgW3Zpc0NvbmZpZ3VyYXRvclByb3BzLCBkeW5hbWljQ29sb3IsIGlzRHluYW1pY0NvbG9yc09ubHldKTtcblxuICAgIGNvbnN0IGVsZXZhdGlvblVJID0gKFxuICAgICAgPD5cbiAgICAgICAgeyhzdGFjLnJhc3RlclNlcnZlclN1cHBvcnRzRWxldmF0aW9uID8/XG4gICAgICAgICAgZ2V0QXBwbGljYXRpb25Db25maWcoKS5yYXN0ZXJTZXJ2ZXJTdXBwb3J0c0VsZXZhdGlvbikgJiZcbiAgICAgICAgICBzdGFjLnJhc3RlclRpbGVTZXJ2ZXJVcmxzPy5sZW5ndGggJiYgKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGVUZXJyYWluIHx8IHtsYWJlbDogJ2xheWVyLmNvbG9yJ30pfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoXG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlVGVycmFpblRvcFZpZXd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApfVxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIC8vIEZvciBQTVRpbGVzIGluIHJhc3RlciBmb3JtYXQsIG9ubHkgc2hvdyBvcGFjaXR5IGFuZCB0ZXJyYWluIG9wdGlvbnMgZm9yIG5vd1xuICAgIGlmIChzdGFjLnBtdGlsZXNUeXBlID09PSBQTVRpbGVzVHlwZS5SQVNURVIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllckNvbmZpZ3VyYXRvcj5cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IGxhYmVsPVwiVmlzdWFsIFNldHRpbmdzXCIgY29sbGFwc2libGU9e2ZhbHNlfT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAge2VsZXZhdGlvblVJfVxuICAgICAgICA8L1N0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgICB7YXZhaWxhYmxlUHJlc2V0cyAmJiAoXG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cIkltYWdlIFNlbGVjdGlvblwiIGNvbGxhcHNpYmxlPXtmYWxzZX0+XG4gICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgIDxQYW5lbExhYmVsPlByZXNldDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICA8SW5mb0hlbHBlclxuICAgICAgICAgICAgICAgICAgaWQ9XCJwcmVzZXRcIlxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJTZWxlY3QgYSBwcmVzZXQgdG8gZGVzY3JpYmUgaG93IHRvIGNvbWJpbmUgc3BlY3RyYWwgYmFuZHMuXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17c2VsZWN0ZWRQcmVzZXR9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17cHJlc2V0T3B0aW9uc31cbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT1cImlkXCJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17bmV3UHJlc2V0ID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IHVwZGF0ZUNvbG9yUGFyYW1zT25QcmVzZXRDaGFuZ2UoXG4gICAgICAgICAgICAgICAgICAgIHN0YWMsXG4gICAgICAgICAgICAgICAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLmxheWVyLmNvbmZpZy52aXNDb25maWcucHJlc2V0LFxuICAgICAgICAgICAgICAgICAgICBuZXdQcmVzZXQgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoey4uLm92ZXJyaWRlcywgcHJlc2V0OiBuZXdQcmVzZXR9KTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB7c2VsZWN0ZWRQcmVzZXQ/LmRlc2NyaXB0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICB7c2VsZWN0ZWRQcmVzZXQ/LmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAge3NlbGVjdGVkUHJlc2V0Py5pbmZvVXJsID8gKFxuICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgaHJlZj17c2VsZWN0ZWRQcmVzZXQ/LmluZm9Vcmx9PlxuICAgICAgICAgICAgICAgICAgICAgIE1vcmUgSW5mb1xuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG5cbiAgICAgICAgICAgIHtzZWxlY3RlZFByZXNldC5pZCA9PT0gJ3NpbmdsZUJhbmQnICYmIChcbiAgICAgICAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgPFBhbmVsTGFiZWw+U2luZ2xlIEJhbmQgTmFtZTwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxJbmZvSGVscGVyXG4gICAgICAgICAgICAgICAgICAgIGlkPXtgJHtsYXllci5pZH0tc2luZ2xlLWJhbmQtbmFtZWB9XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiU2VsZWN0IGEgc2luZ2xlIGJhbmQuXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZFNpbmdsZUJhbmROYW1lfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17c2luZ2xlQmFuZE9wdGlvbnN9XG4gICAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT1cImlkXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZSh7c2luZ2xlQmFuZE5hbWU6IHZhbH0pO1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7U1RBQ19TRUFSQ0hfVUlfRU5BQkxFRCAmJiBzdGFjU2VhcmNoQWxsb3dlZCAmJiAoXG4gICAgICAgICAgICAgIDxDdXN0b21WaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudXNlU1RBQ1NlYXJjaGluZ31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7U1RBQ19TRUFSQ0hfVUlfRU5BQkxFRCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge3N0YWNTZWFyY2hBbGxvd2VkICYmIHVzZVNUQUNTZWFyY2hpbmcgPyAoXG4gICAgICAgICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxQYW5lbExhYmVsPlNUQUMgU2VhcmNoIFByb3ZpZGVyPC9QYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0YWNTZWFyY2hQcm92aWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtmaW5kVmlzQ29uZmlnSXRlbUJ5SWQobGF5ZXIsICdzdGFjU2VhcmNoUHJvdmlkZXInKX1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNob29zZSBzZWFyY2ggcHJvdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGdldE9wdGlvblZhbHVlPVwiaWRcIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogY2hlY2sgd2hlbiBzd2l0Y2hpbmcgbGF5ZXJzIHNvIHRoYXQgeW91IGRvbid0IG1pc21hdGNoIGFsbG93ZWQgbW9zYWljcyB3aXRoIGxheWVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe3N0YWNTZWFyY2hQcm92aWRlcjogdmFsfSk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPFBhbmVsTGFiZWw+RGF0ZSBSYW5nZTwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPXtgJHtsYXllci5pZH0tc3RhcnREYXRlYH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHt0YXJnZXQ6IHt2YWx1ZX19KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZSh7c3RhcnREYXRlOiB2YWx1ZX0pO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2xheWVyLmNvbmZpZy52aXNDb25maWcuc3RhcnREYXRlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9e2Ake2xheWVyLmlkfS1lbmREYXRlYH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHt0YXJnZXQ6IHt2YWx1ZX19KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZSh7ZW5kRGF0ZTogdmFsdWV9KTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtsYXllci5jb25maWcudmlzQ29uZmlnLmVuZERhdGV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvblRleHQ+RGF0ZSBmb3JtYXQgbXVzdCBiZSBcIllZWVktTU0tRERcIjwvRGVzY3JpcHRpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICApfVxuXG4gICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gbGFiZWw9XCJWaXN1YWwgU2V0dGluZ3NcIiBjb2xsYXBzaWJsZT17ZmFsc2V9PlxuICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICB7Y29sb3JtYXBBbGxvd2VkICYmIChcbiAgICAgICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5Db2xvcm1hcDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3NlbGVjdGVkQ29sb3JtYXB9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17Y29sb3JtYXBPcHRpb25zfVxuICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgIGdldE9wdGlvblZhbHVlPVwiaWRcIlxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWwgPT4ge1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe2NvbG9ybWFwSWQ6IHZhbH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudD17Q29sb3JNYXBMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICBmaWx0ZXJPcHRpb249XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICB7LyogUmVzY2FsaW5nICovfVxuICAgICAgICB7cmVzY2FsaW5nQWxsb3dlZCAmJiAoXG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cIlJlc2NhbGluZ1wiPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5keW5hbWljQ29sb3J9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtpc0R5bmFtaWNDb2xvcnNPbmx5fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm5vbkxpbmVhclJlc2NhbGluZ31cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17bm9uTGluZWFyUmVzY2FsaW5nID8gJ05vbi1MaW5lYXIgUmVzY2FsaW5nJyA6ICdMaW5lYXIgUmVzY2FsaW5nJ31cbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIHsvKiBUT0RPOiBhZGQgc2xpZGVycyBmb3IgcmVkLCBncmVlbiwgYmx1ZSwgbm90IGEgc2luZ2xlIHNsaWRlciAqL31cbiAgICAgICAgICAgIHtub25MaW5lYXJSZXNjYWxpbmcgPyAoXG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmdhbW1hQ29udHJhc3RGYWN0b3J9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2lnbW9pZGFsQ29udHJhc3RGYWN0b3J9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2lnbW9pZGFsQmlhc0ZhY3Rvcn1cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MubGluZWFyUmVzY2FsaW5nRmFjdG9yfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNhdHVyYXRpb25WYWx1ZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICl9XG5cbiAgICAgICAge2ZpbHRlckFsbG93ZWQgJiYgKFxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsdGVyRW5hYmxlZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsdGVyUmFuZ2V9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICl9XG5cbiAgICAgICAge2VsZXZhdGlvblVJfVxuICAgICAgPC9TdHlsZWRMYXllckNvbmZpZ3VyYXRvcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBTVEFDQ2hlY2tDb25maWd1cmF0b3JXcmFwcGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQW1CQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFJQSxJQUFBTywyQkFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsa0JBQUEsR0FBQVIsT0FBQTtBQU1B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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kepler.gl/components",
|
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.2.0",
|
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -38,20 +38,20 @@
|
|
|
38
38
|
"@dnd-kit/utilities": "^3.2.2",
|
|
39
39
|
"@emotion/is-prop-valid": "^1.2.1",
|
|
40
40
|
"@floating-ui/react": "0.25.1",
|
|
41
|
-
"@kepler.gl/actions": "3.
|
|
42
|
-
"@kepler.gl/cloud-providers": "3.
|
|
43
|
-
"@kepler.gl/common-utils": "3.
|
|
44
|
-
"@kepler.gl/constants": "3.
|
|
45
|
-
"@kepler.gl/effects": "3.
|
|
46
|
-
"@kepler.gl/layers": "3.
|
|
47
|
-
"@kepler.gl/localization": "3.
|
|
48
|
-
"@kepler.gl/processors": "3.
|
|
49
|
-
"@kepler.gl/reducers": "3.
|
|
50
|
-
"@kepler.gl/schemas": "3.
|
|
51
|
-
"@kepler.gl/styles": "3.
|
|
52
|
-
"@kepler.gl/table": "3.
|
|
53
|
-
"@kepler.gl/types": "3.
|
|
54
|
-
"@kepler.gl/utils": "3.
|
|
41
|
+
"@kepler.gl/actions": "3.2.0",
|
|
42
|
+
"@kepler.gl/cloud-providers": "3.2.0",
|
|
43
|
+
"@kepler.gl/common-utils": "3.2.0",
|
|
44
|
+
"@kepler.gl/constants": "3.2.0",
|
|
45
|
+
"@kepler.gl/effects": "3.2.0",
|
|
46
|
+
"@kepler.gl/layers": "3.2.0",
|
|
47
|
+
"@kepler.gl/localization": "3.2.0",
|
|
48
|
+
"@kepler.gl/processors": "3.2.0",
|
|
49
|
+
"@kepler.gl/reducers": "3.2.0",
|
|
50
|
+
"@kepler.gl/schemas": "3.2.0",
|
|
51
|
+
"@kepler.gl/styles": "3.2.0",
|
|
52
|
+
"@kepler.gl/table": "3.2.0",
|
|
53
|
+
"@kepler.gl/types": "3.2.0",
|
|
54
|
+
"@kepler.gl/utils": "3.2.0",
|
|
55
55
|
"@loaders.gl/mvt": "^4.3.2",
|
|
56
56
|
"@loaders.gl/pmtiles": "^4.3.2",
|
|
57
57
|
"@loaders.gl/wms": "4.3.2",
|