@kepler.gl/components 3.1.3 → 3.1.4
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/common/animation-control/playback-controls.js +10 -6
- package/dist/common/checkbox.js +4 -4
- package/dist/common/data-table/grid.js +3 -3
- package/dist/common/data-table/index.js +6 -6
- package/dist/common/file-uploader/file-upload.js +10 -12
- package/dist/common/icons/arrow-down.d.ts +1 -0
- package/dist/common/icons/arrow-down.js +15 -5
- package/dist/common/icons/{map.d.ts → base-map.d.ts} +3 -2
- package/dist/common/icons/base-map.js +57 -0
- package/dist/common/icons/bug.d.ts +1 -0
- package/dist/common/icons/bug.js +33 -5
- package/dist/common/icons/{rocket.d.ts → cloud.d.ts} +2 -1
- package/dist/common/icons/{rocket.js → cloud.js} +21 -11
- package/dist/common/icons/copy.d.ts +5 -0
- package/dist/common/icons/copy.js +15 -9
- package/dist/common/icons/cube-3d.d.ts +1 -0
- package/dist/common/icons/cube-3d.js +17 -7
- package/dist/common/icons/data-table.d.ts +1 -0
- package/dist/common/icons/data-table.js +39 -4
- package/dist/common/icons/db.d.ts +1 -0
- package/dist/common/icons/db.js +21 -4
- package/dist/common/icons/delete.d.ts +1 -0
- package/dist/common/icons/delete.js +17 -7
- package/dist/common/icons/docs2.d.ts +10 -0
- package/dist/common/icons/docs2.js +51 -0
- package/dist/common/icons/eye-seen.d.ts +1 -0
- package/dist/common/icons/eye-seen.js +10 -3
- package/dist/common/icons/eye-unseen.d.ts +1 -0
- package/dist/common/icons/eye-unseen.js +8 -3
- package/dist/common/icons/filter-funnel.d.ts +1 -0
- package/dist/common/icons/filter-funnel.js +14 -4
- package/dist/common/icons/index.d.ts +8 -3
- package/dist/common/icons/index.js +49 -14
- package/dist/common/icons/layers.d.ts +1 -0
- package/dist/common/icons/layers.js +19 -5
- package/dist/common/icons/legend.d.ts +1 -0
- package/dist/common/icons/legend.js +31 -3
- package/dist/common/icons/map-pin.d.ts +10 -0
- package/dist/common/icons/map-pin.js +57 -0
- package/dist/common/icons/messages.d.ts +1 -0
- package/dist/common/icons/messages.js +17 -3
- package/dist/common/icons/pause.d.ts +1 -0
- package/dist/common/icons/pause.js +23 -3
- package/dist/common/icons/picture.d.ts +1 -0
- package/dist/common/icons/picture.js +24 -6
- package/dist/common/icons/pin.d.ts +2 -1
- package/dist/common/icons/pin.js +18 -10
- package/dist/common/icons/play.d.ts +1 -0
- package/dist/common/icons/play.js +13 -3
- package/dist/common/icons/pointer-click.d.ts +10 -0
- package/dist/common/icons/pointer-click.js +59 -0
- package/dist/common/icons/reset.d.ts +1 -0
- package/dist/common/icons/reset.js +19 -3
- package/dist/common/icons/save.d.ts +1 -0
- package/dist/common/icons/save.js +20 -5
- package/dist/common/icons/save2.d.ts +1 -0
- package/dist/common/icons/save2.js +15 -7
- package/dist/common/icons/settings.d.ts +1 -0
- package/dist/common/icons/settings.js +25 -7
- package/dist/common/icons/share.d.ts +1 -0
- package/dist/common/icons/share.js +33 -3
- package/dist/common/icons/speed.d.ts +10 -0
- package/dist/common/icons/speed.js +53 -0
- package/dist/common/icons/trash.js +18 -7
- package/dist/common/icons/zoom-in.d.ts +10 -0
- package/dist/common/icons/zoom-in.js +48 -0
- package/dist/common/item-selector/chickleted-input.js +2 -1
- package/dist/common/item-selector/dropdown-select.js +2 -2
- package/dist/common/item-selector/item-selector.js +3 -3
- package/dist/common/link-renderer.d.ts +3 -0
- package/dist/common/link-renderer.js +20 -0
- package/dist/common/modal.js +2 -2
- package/dist/common/portaled.js +6 -6
- package/dist/common/styled-components.js +4 -2
- package/dist/common/time-range-slider.js +3 -3
- package/dist/common/timeline-slider.js +3 -3
- package/dist/dnd-context.js +1 -4
- package/dist/editor/editor.js +4 -4
- package/dist/filters/filter-panels/polygon-filter-panel.js +4 -4
- package/dist/geocoder/geocoder.js +2 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.js +23 -1
- package/dist/kepler-gl.js +2 -2
- package/dist/map/layer-selector-panel.js +2 -2
- package/dist/map/map-draw-panel.js +2 -2
- package/dist/map/map-legend-panel.js +6 -2
- package/dist/map/toggle-3d-button.js +7 -2
- package/dist/map-container.js +5 -5
- package/dist/map-view-state-context.js +4 -4
- package/dist/modal-container.js +3 -3
- package/dist/modals/image-modal-container.js +4 -4
- package/dist/modals/load-data-modal.js +3 -3
- package/dist/notification-panel/notification-item.js +10 -12
- package/dist/plot-container.js +4 -4
- package/dist/side-panel/common/dataset-tag.js +2 -2
- package/dist/side-panel/common/dataset-title.js +2 -2
- package/dist/side-panel/filter-panel/filter-panel.js +3 -3
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +2 -1
- package/dist/side-panel/layer-panel/custom-palette.js +3 -3
- package/dist/side-panel/layer-panel/layer-panel-header.js +31 -7
- package/dist/side-panel/panel-header.js +3 -3
- package/dist/side-panel.js +22 -6
- package/package.json +18 -32
- package/dist/common/icons/map.js +0 -48
|
@@ -16,7 +16,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
16
16
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
17
17
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
18
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
var
|
|
19
|
+
var _uniq = _interopRequireDefault(require("lodash/uniq"));
|
|
20
20
|
var _reactSortableHoc = require("react-sortable-hoc");
|
|
21
21
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
22
22
|
var _portaled = _interopRequireDefault(require("../../common/portaled"));
|
|
@@ -368,7 +368,7 @@ var CategoricalSelector = exports.CategoricalSelector = function CategoricalSele
|
|
|
368
368
|
setShowTypeahead = _useState4[1];
|
|
369
369
|
var onOptionSelected = (0, _react.useCallback)(function (value) {
|
|
370
370
|
var previousSelected = (0, _commonUtils.toArray)(selectedValues);
|
|
371
|
-
var items = (0,
|
|
371
|
+
var items = (0, _uniq["default"])(previousSelected.concat((0, _commonUtils.toArray)(value)));
|
|
372
372
|
addColorMapValue === null || addColorMapValue === void 0 || addColorMapValue(items, index);
|
|
373
373
|
}, [selectedValues, index, addColorMapValue]);
|
|
374
374
|
var onOpenDropdown = (0, _react.useCallback)(function () {
|
|
@@ -730,4 +730,4 @@ function CustomPaletteFactory() {
|
|
|
730
730
|
return CustomPalette;
|
|
731
731
|
}
|
|
732
732
|
var _default = exports["default"] = CustomPaletteFactory;
|
|
733
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfbG9kYXNoIiwiX3JlYWN0U29ydGFibGVIb2MiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9wb3J0YWxlZCIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90eXBlYWhlYWQiLCJfY2hpY2tsZXRlZElucHV0IiwiX2Ryb3Bkb3duTGlzdCIsIl9jb21tb25VdGlscyIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfaWNvbnMiLCJfY3VzdG9tUGlja2VyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl90ZW1wbGF0ZU9iamVjdDkiLCJfdGVtcGxhdGVPYmplY3QxMCIsIl90ZW1wbGF0ZU9iamVjdDExIiwiX3RlbXBsYXRlT2JqZWN0MTIiLCJfdGVtcGxhdGVPYmplY3QxMyIsIl90ZW1wbGF0ZU9iamVjdDE0IiwiX3RlbXBsYXRlT2JqZWN0MTUiLCJfdGVtcGxhdGVPYmplY3QxNiIsIl90ZW1wbGF0ZU9iamVjdDE3IiwiX3RlbXBsYXRlT2JqZWN0MTgiLCJfdGVtcGxhdGVPYmplY3QxOSIsIl90ZW1wbGF0ZU9iamVjdDIwIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJUcmFzaCIsInNvcnQiLCJWZXJ0RG90cyIsImFkZCIsIkFkZCIsImRyYWdIYW5kbGVBY3RpdmUiLCJjc3MiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3JIbCIsIkNvbG9yUGFsZXR0ZUl0ZW0iLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2IiwiZHJvcGRvd25XcmFwcGVyWiIsInBhbmVsQmFja2dyb3VuZEhvdmVyIiwiU3R5bGVkRHJhZ0hhbmRsZSIsIlN0eWxlZEFjdGlvbiIsInN1YnRleHRDb2xvciIsInN1YnRleHRDb2xvckFjdGl2ZSIsIkRpdmlkZXJMaW5lIiwiZHJvcGRvd25MaXN0Qm9yZGVyVG9wIiwiQ29sb3JTd2F0Y2giLCJhdHRycyIsImNsYXNzTmFtZSIsImNvbG9yIiwiYm94U2hhZG93IiwiU3R5bGVkQnV0dG9uQ29udGFpbmVyIiwiU3R5bGVkQWRkU3RlcENvbnRhaW5lciIsImlucHV0Q29sb3IiLCJTdHlsZWRJbnB1dCIsIklucHV0Iiwid2l0aENvbmZpZyIsInNob3VsZEZvcndhcmRQcm9wIiwiX3Byb3BzJHdpZHRoIiwid2lkdGgiLCJfcHJvcHMkdGV4dEFsaWduIiwidGV4dEFsaWduIiwiZGlzYWJsZWQiLCJJbnB1dFRleHQiLCJpbnB1dCIsIl9wcm9wcyR3aWR0aDIiLCJfcHJvcHMkdGV4dEFsaWduMiIsIlNvcnRhYmxlSXRlbSIsIlNvcnRhYmxlRWxlbWVudCIsIl9yZWYiLCJjaGlsZHJlbiIsImlzU29ydGluZyIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc25hbWVzIiwic29ydGluZyIsIldyYXBwZWRTb3J0YWJsZUNvbnRhaW5lciIsIlNvcnRhYmxlQ29udGFpbmVyIiwiX3JlZjIiLCJEcmFnSGFuZGxlIiwiU29ydGFibGVIYW5kbGUiLCJfcmVmMyIsIkNvbG9yUGFsZXR0ZUlucHV0IiwiX3JlZjQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiaWQiLCJlZGl0YWJsZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInN0YXRlVmFsdWUiLCJzZXRWYWx1ZSIsImlucHV0UmVmIiwidXNlUmVmIiwidXNlRWZmZWN0Iiwib25LZXlEb3duIiwidXNlQ2FsbGJhY2siLCJrZXlDb2RlIiwiS2V5RXZlbnQiLCJET01fVktfRU5URVIiLCJET01fVktfUkVUVVJOIiwiY3VycmVudCIsImJsdXIiLCJfb25DaGFuZ2UiLCJ0YXJnZXQiLCJvbkJsdXIiLCJyZWYiLCJzZWNvbmRhcnkiLCJEYXNoIiwiU3R5bGVkUmFuZ2VJbnB1dCIsIlN0eWxlZENvbG9ySGV4SW5wdXQiLCJFZGl0YWJsZUNvbG9yUmFuZ2UiLCJfcmVmNSIsIml0ZW0iLCJpc0xhc3QiLCJpbmRleCIsImVkaXRDb2xvck1hcCIsIm5vTWluQm91bmQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImlucHV0cyIsIm5vTWF4Qm91bmQiLCJvbkNoYW5nZUxlZnQiLCJ2YWwiLCJwYXJzZUZsb2F0Iiwib25DaGFuZ2VSaWdodCIsInRvU3RyaW5nIiwiY29uY2F0IiwiQWRkQ29sb3JTdG9wIiwiX3JlZjYiLCJvbkNvbG9yQWRkIiwiSWNvbkNvbXBvbmVudCIsIm9uQ2xpY2siLCJoZWlnaHQiLCJEZWxldGVDb2xvclN0b3AiLCJfcmVmNyIsIm9uQ29sb3JEZWxldGUiLCJDdXN0b21QYWxldHRlSW5wdXQiLCJfcmVmOCIsImNvbG9yQnJlYWtzIiwiaW5wdXRDb2xvckhleCIsImVkaXRDb2xvck1hcFZhbHVlIiwiX3JlZjgkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsImRpc2FibGVBcHBlbmQiLCJkaXNhYmxlRGVsZXRlIiwib25EZWxldGUiLCJvbkFkZCIsIm9uVG9nZ2xlU2tldGNoZXIiLCJvbkNsaWNrU3d0YWNoIiwib25Db2xvcklucHV0IiwidiIsInNob3dIZXhJbnB1dCIsInRvVXBwZXJDYXNlIiwiaXNOdW1lcmljQ29sb3JCcmVha3MiLCJTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyV3JhcHBlciIsIlN0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXIiLCJub0JvcmRlciIsIkRyb3Bkb3duVmFsdWVzV3JhcHBlciIsIlNlbGVjdGVkVmFsdWVzV3JhcHBlciIsIlN0eWxlZERyb3Bkb3duSGVhZGVyIiwiU3R5bGVkVG9vbHRpcENvbnRlbnQiLCJOVU1CRVJfVkFMVUVTX0lOX1RPT0xUSVAiLCJDYXRlZ29yaWNhbFNlbGVjdG9yQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsIm9uU2VsZWN0UmVzdCIsIm9uUmVzZXQiLCJNb2RpZmllZERyb3Bkb3duTGlzdCIsIl9Ecm9wZG93bkxpc3QiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJyZW5kZXIiLCJfdGhpcyIsIkZyYWdtZW50IiwiQ29uc3VtZXIiLCJjb250ZXh0IiwiQnV0dG9uIiwibGluayIsInNpemUiLCJEcm9wZG93bkxpc3QiLCJDYXRlZ29yaWNhbFNlbGVjdG9yIiwiX3JlZjkiLCJzZWxlY3RlZFZhbHVlcyIsImFsbFZhbHVlcyIsImFkZENvbG9yTWFwVmFsdWUiLCJyZW1vdmVDb2xvck1hcFZhbHVlIiwicmVzZXRDb2xvck1hcFZhbHVlIiwic2VsZWN0UmVzdENvbG9yTWFwVmFsdWUiLCJfcmVmOSRlZGl0YWJsZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd1R5cGVhaGVhZCIsInNldFNob3dUeXBlYWhlYWQiLCJvbk9wdGlvblNlbGVjdGVkIiwicHJldmlvdXNTZWxlY3RlZCIsInRvQXJyYXkiLCJpdGVtcyIsInVuaXEiLCJvbk9wZW5Ecm9wZG93biIsIm9uQ2xvc2VEcm9wZG93biIsIm9uUmVtb3ZlSXRlbSIsIlRvb2x0aXAiLCJwbGFjZSIsImludGVyYWN0aXZlIiwic2xpY2UiLCJtYXAiLCJsZWZ0IiwidG9wIiwiaXNPcGVuZWQiLCJvbkNsb3NlIiwic2VsZWN0ZWRJdGVtcyIsInBsYWNlaG9sZGVyIiwicmVtb3ZlSXRlbSIsIkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50Iiwic3R5bGUiLCJwb3NpdGlvbiIsIlByb3ZpZGVyIiwiY3VzdG9tQ2xhc3NlcyIsInJlc3VsdHMiLCJsaXN0SXRlbSIsImxpc3RBbmNob3IiLCJvcHRpb25zIiwiY3VzdG9tTGlzdENvbXBvbmVudCIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiTGlzdEl0ZW0iLCJzZWFyY2hhYmxlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJDYXRlZ29yaWNhbEN1c3RvbVBhbGV0dGVJbnB1dCIsIl9yZWYxMCIsImNvbG9yTWFwIiwiX3JlZjEwJGFjdGlvbkljb25zIiwidXNlTWVtbyIsInZhbHVlcyIsIkFycmF5IiwiaXNBcnJheSIsIkJvdHRvbUFjdGlvbiIsIl9yZWYxMSIsIm9uQ2FuY2VsIiwib25Db25maXJtIiwic21hbGwiLCJTdHlsZWRDdXN0b21QYWxldHRlIiwiQ3VzdG9tUGFsZXR0ZUZhY3RvcnkiLCJDdXN0b21QYWxldHRlIiwiX3JlZjEyIiwib3JkaW5hbERvbWFpbiIsImN1c3RvbVBhbGV0dGUiLCJzZXRDb2xvclBhbGV0dGVVSSIsInNob3dTa2V0Y2hlciIsIl9yZWYxMiRhY3Rpb25JY29ucyIsIm9uQXBwbHkiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldElzU29ydGluZyIsImNvbG9ycyIsInR5cGUiLCJjb2xvck1hcFRvQ29sb3JCcmVha3MiLCJjb2xvck1hcFRvQ2F0ZWdvcmljYWxDb2xvckJyZWFrcyIsIm9uUGlja2VyVXBkYXRlIiwibmV3Q3VzdG9tUGFsZXR0ZSIsInVwZGF0ZUN1c3RvbVBhbGV0dGVDb2xvciIsImhleCIsInJlbW92ZUN1c3RvbVBhbGV0dGVDb2xvciIsImFkZEN1c3RvbVBhbGV0dGVDb2xvciIsIm9uQWRkQ2F0ZWdvcmljYWxTdGVwIiwib25Td2F0Y2hDbG9zZSIsImV2ZW50Iiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJvblNvcnRFbmQiLCJfcmVmMTMiLCJvbGRJbmRleCIsIm5ld0luZGV4Iiwic29ydEN1c3RvbVBhbGV0dGVDb2xvciIsIm9uU29ydFN0YXJ0IiwibmV3Q29sb3JNYXAiLCJjbSIsImJyZWFrcyIsImIiLCJzb3J0ZWROZXdDb2xvck1hcCIsInJlbW92ZUNhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZSIsInJlbW92ZUNhdGVnb3JpY2FsVmFsdWVGcm9tQ29sb3JNYXAiLCJhZGRDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWUiLCJhZGRDYXRlZ29yaWNhbFZhbHVlc1RvQ29sb3JNYXAiLCJyZXNldENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZSIsInJlc2V0Q2F0ZWdvcmljYWxDb2xvck1hcEJ5SW5kZXgiLCJzZWxlY3RSZXN0Q2F0ZWdvcmljYWxDb2xvck1hcCIsInNlbGVjdFJlc3RDYXRlZ29yaWNhbENvbG9yTWFwQnlJbmRleCIsImxvY2tBeGlzIiwiaGVscGVyQ2xhc3MiLCJ1c2VEcmFnSGFuZGxlIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9jdXN0b20tcGFsZXR0ZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgRWxlbWVudFR5cGUsXG4gIFByb3BzV2l0aENoaWxkcmVuLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1bmlxIGZyb20gJ2xvZGFzaC51bmlxJztcbmltcG9ydCB7XG4gIFNvcnRhYmxlQ29udGFpbmVyLFxuICBTb3J0YWJsZUNvbnRhaW5lclByb3BzLFxuICBTb3J0YWJsZUVsZW1lbnQsXG4gIFNvcnRhYmxlRWxlbWVudFByb3BzLFxuICBTb3J0YWJsZUhhbmRsZVxufSBmcm9tICdyZWFjdC1zb3J0YWJsZS1ob2MnO1xuaW1wb3J0IHN0eWxlZCwge2Nzc30gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFBvcnRhbGVkIGZyb20gJy4uLy4uL2NvbW1vbi9wb3J0YWxlZCc7XG5pbXBvcnQge1Rvb2x0aXB9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgVHlwZWFoZWFkIGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL3R5cGVhaGVhZCc7XG5pbXBvcnQgQ2hpY2tsZXRlZElucHV0IGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2NoaWNrbGV0ZWQtaW5wdXQnO1xuaW1wb3J0IERyb3Bkb3duTGlzdCwge0xpc3RJdGVtfSBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9kcm9wZG93bi1saXN0JztcbmltcG9ydCB7c2hvdWxkRm9yd2FyZFByb3B9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3RvQXJyYXl9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7S2V5RXZlbnR9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Q29sb3JNYXAsIENvbG9yVUksIEhleENvbG9yLCBOZXN0ZWRQYXJ0aWFsfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIGFkZENhdGVnb3JpY2FsVmFsdWVzVG9Db2xvck1hcCxcbiAgYWRkQ3VzdG9tUGFsZXR0ZUNvbG9yLFxuICBjb2xvck1hcFRvQ2F0ZWdvcmljYWxDb2xvckJyZWFrcyxcbiAgY29sb3JNYXBUb0NvbG9yQnJlYWtzLFxuICBpc051bWVyaWNDb2xvckJyZWFrcyxcbiAgcmVzZXRDYXRlZ29yaWNhbENvbG9yTWFwQnlJbmRleCxcbiAgcmVtb3ZlQ2F0ZWdvcmljYWxWYWx1ZUZyb21Db2xvck1hcCxcbiAgcmVtb3ZlQ3VzdG9tUGFsZXR0ZUNvbG9yLFxuICBzZWxlY3RSZXN0Q2F0ZWdvcmljYWxDb2xvck1hcEJ5SW5kZXgsXG4gIHNvcnRDdXN0b21QYWxldHRlQ29sb3IsXG4gIHVwZGF0ZUN1c3RvbVBhbGV0dGVDb2xvclxufSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7Q29sb3JCcmVhaywgQ29sb3JCcmVha09yZGluYWx9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtBZGQsIFRyYXNoLCBWZXJ0RG90c30gZnJvbSAnLi4vLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCB7QnV0dG9uLCBJbnB1dH0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBDdXN0b21QaWNrZXIgZnJvbSAnLi9jdXN0b20tcGlja2VyJztcblxuZXhwb3J0IHR5cGUgQWN0aW9uSWNvbnMgPSB7XG4gIGRlbGV0ZTogRWxlbWVudFR5cGU7XG4gIHNvcnQ6IEVsZW1lbnRUeXBlO1xuICBhZGQ6IEVsZW1lbnRUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgRWRpdENvbG9yTWFwRnVuYyA9ICh2OiBudW1iZXIsIGk6IG51bWJlcikgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIFNldENvbG9yVUlGdW5jID0gKG5ld0NvbmZpZzogTmVzdGVkUGFydGlhbDxDb2xvclVJPikgPT4gdm9pZDtcblxuLyoqXG4gKiBFZGl0YWJsZUNvbG9yUmFuZ2VcbiAqL1xuZXhwb3J0IHR5cGUgRWRpdGFibGVDb2xvclJhbmdlUHJvcHMgPSB7XG4gIGl0ZW06IENvbG9yQnJlYWs7XG4gIGlzTGFzdDogYm9vbGVhbjtcbiAgaW5kZXg6IG51bWJlcjtcbiAgZWRpdENvbG9yTWFwPzogRWRpdENvbG9yTWFwRnVuYztcbiAgZWRpdGFibGU6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21QYWxldHRlUHJvcHMgPSB7XG4gIGN1c3RvbVBhbGV0dGU6IENvbG9yVUlbJ2N1c3RvbVBhbGV0dGUnXTtcbiAgc2V0Q29sb3JQYWxldHRlVUk6IFNldENvbG9yVUlGdW5jO1xuICBzaG93U2tldGNoZXI6IG51bWJlciB8IGJvb2xlYW47XG4gIG9yZGluYWxEb21haW4/OiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICBhY3Rpb25JY29ucz86IEFjdGlvbkljb25zO1xuICBvbkFwcGx5OiAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgb25DYW5jZWw6ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21QYWxldHRlSW5wdXRQcm9wcyA9IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgaXNTb3J0aW5nOiBib29sZWFuO1xuICBjb2xvcjogSGV4Q29sb3I7XG4gIGNvbG9yQnJlYWtzOiBDb2xvckJyZWFrT3JkaW5hbFtdIHwgQ29sb3JCcmVha1tdIHwgbnVsbDtcbiAgaW5wdXRDb2xvckhleDogKGluZGV4OiBudW1iZXIsIHY6IEhleENvbG9yKSA9PiB2b2lkO1xuICBlZGl0Q29sb3JNYXBWYWx1ZTogRWRpdENvbG9yTWFwRnVuYztcbiAgYWN0aW9uSWNvbnM/OiBBY3Rpb25JY29ucztcbiAgZGlzYWJsZUFwcGVuZD86IGJvb2xlYW47XG4gIGRpc2FibGVEZWxldGU/OiBib29sZWFuO1xuICBvbkRlbGV0ZTogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uQWRkOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgb25Ub2dnbGVTa2V0Y2hlcjogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gIGRlbGV0ZTogVHJhc2gsXG4gIHNvcnQ6IFZlcnREb3RzLFxuICBhZGQ6IEFkZFxufTtcblxuY29uc3QgZHJhZ0hhbmRsZUFjdGl2ZSA9IGNzc2BcbiAgLmxheWVyX19kcmFnLWhhbmRsZSB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgQ29sb3JQYWxldHRlSXRlbSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiAycHg7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWiArIDF9O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgLmN1c3RvbS1wYWxldHRlLWlucHV0X19sZWZ0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAuY3VzdG9tLXBhbGV0dGUtaW5wdXRfX3JpZ2h0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy1yaWdodDogNnB4O1xuICB9XG5cbiAgJjpub3QoLnNvcnRpbmcpOm5vdCguZGlzYWJsZWQpIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuICAgICAgJHtkcmFnSGFuZGxlQWN0aXZlfTtcbiAgICB9XG4gIH1cblxuICAmLnNvcnRpbmctY29sb3JzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICAke2RyYWdIYW5kbGVBY3RpdmV9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWREcmFnSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbmA7XG5cbmNvbnN0IFN0eWxlZEFjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gIHN2ZyB7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3JBY3RpdmV9O1xuICAgIH1cbiAgfVxuXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IERpdmlkZXJMaW5lID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wfTtcbiAgbWFyZ2luLXRvcDogOHB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IENvbG9yU3dhdGNoID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2N1c3RvbS1wYWxldHRlX19zd2F0Y2gnXG59KWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvcn07XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgJjpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5ib3hTaGFkb3d9O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkQnV0dG9uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogMTFweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZGlyZWN0aW9uOiBydGw7XG4gIHBhZGRpbmc6IDAgMTJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZEFkZFN0ZXBDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tdG9wOiAxMXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRDb2xvcn07XG4gIC5hZGRjb2xvciB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkud2l0aENvbmZpZyh7c2hvdWxkRm9yd2FyZFByb3B9KTx7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xufT5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRoID8/ICcxMDAlJ307XG4gIHRleHQtYWxpZ246ICR7cHJvcHMgPT4gcHJvcHMudGV4dEFsaWduID8/ICdlbmQnfTtcbiAgcG9pbnRlci1ldmVudHM6ICR7cHJvcHMgPT4gKHByb3BzLmRpc2FibGVkID8gJ25vbmUnIDogJ2FsbCcpfTtcbmA7XG5cbmNvbnN0IElucHV0VGV4dCA9IHN0eWxlZC5kaXYud2l0aENvbmZpZyh7c2hvdWxkRm9yd2FyZFByb3B9KTx7d2lkdGg6IHN0cmluZzsgdGV4dEFsaWduOiBzdHJpbmd9PmBcbiAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dH07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aCA/PyAnMTAwJSd9O1xuICB0ZXh0LWFsaWduOiAke3Byb3BzID0+IHByb3BzLnRleHRBbGlnbiA/PyAnZW5kJ307XG5cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbmA7XG5cbnR5cGUgU29ydGFibGVJdGVtUHJvcHMgPSBTb3J0YWJsZUVsZW1lbnRQcm9wcyAmIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaXNTb3J0aW5nOiBib29sZWFuO1xufTtcblxuY29uc3QgU29ydGFibGVJdGVtID0gU29ydGFibGVFbGVtZW50PFNvcnRhYmxlSXRlbVByb3BzPigoe2NoaWxkcmVuLCBpc1NvcnRpbmd9KSA9PiAoXG4gIDxDb2xvclBhbGV0dGVJdGVtIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnY3VzdG9tLXBhbGV0dGVfX3NvcnRhYmxlLWl0ZW1zJywge3NvcnRpbmc6IGlzU29ydGluZ30pfT5cbiAgICB7Y2hpbGRyZW59XG4gIDwvQ29sb3JQYWxldHRlSXRlbT5cbikpO1xuXG50eXBlIFdyYXBwZWRTb3J0YWJsZUNvbnRhaW5lclByb3BzID0gU29ydGFibGVDb250YWluZXJQcm9wcyAmIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn07XG5cbi8vIFRPRE86IFNob3VsZCBjbGFzc05hbWUgYmUgYXBwbGllZCB0byB0aGUgZGl2IGhlcmU/XG5jb25zdCBXcmFwcGVkU29ydGFibGVDb250YWluZXIgPSBTb3J0YWJsZUNvbnRhaW5lcjxXcmFwcGVkU29ydGFibGVDb250YWluZXJQcm9wcz4oXG4gICh7Y2hpbGRyZW4sIGNsYXNzTmFtZX0pID0+IDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWV9PntjaGlsZHJlbn08L2Rpdj5cbik7XG5cbnR5cGUgRHJhZ0hhbmRsZVByb3BzID0gUHJvcHNXaXRoQ2hpbGRyZW48e2NsYXNzTmFtZT86IHN0cmluZzsgbGlzdGVuZXJzPzogdW5rbm93bn0+O1xuXG5leHBvcnQgY29uc3QgRHJhZ0hhbmRsZSA9IFNvcnRhYmxlSGFuZGxlPERyYWdIYW5kbGVQcm9wcz4oKHtjbGFzc05hbWUsIGNoaWxkcmVufSkgPT4gKFxuICA8U3R5bGVkRHJhZ0hhbmRsZSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+e2NoaWxkcmVufTwvU3R5bGVkRHJhZ0hhbmRsZT5cbikpO1xuXG5leHBvcnQgdHlwZSBDb2xvclBhbGV0dGVJbnB1dFByb3BzID0ge1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBvbkNoYW5nZTogKHZhbDogdW5rbm93bikgPT4gdm9pZDtcbiAgaWQ6IHN0cmluZztcbiAgd2lkdGg6IHN0cmluZztcbiAgdGV4dEFsaWduOiBzdHJpbmc7XG4gIGVkaXRhYmxlOiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IENvbG9yUGFsZXR0ZUlucHV0ID0gKHtcbiAgdmFsdWUsXG4gIG9uQ2hhbmdlLFxuICBpZCxcbiAgd2lkdGgsXG4gIHRleHRBbGlnbixcbiAgZWRpdGFibGVcbn06IENvbG9yUGFsZXR0ZUlucHV0UHJvcHMpID0+IHtcbiAgY29uc3QgW3N0YXRlVmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKHZhbHVlKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0VmFsdWUodmFsdWUpO1xuICB9LCBbdmFsdWVdKTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICBlID0+IHtcbiAgICAgIHN3aXRjaCAoZS5rZXlDb2RlKSB7XG4gICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX0VOVEVSOlxuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19SRVRVUk46XG4gICAgICAgICAgb25DaGFuZ2Uoc3RhdGVWYWx1ZSk7XG4gICAgICAgICAgaWYgKGlucHV0UmVmICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBpbnB1dFJlZj8uY3VycmVudC5ibHVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlLCBzdGF0ZVZhbHVlXVxuICApO1xuXG4gIGNvbnN0IF9vbkNoYW5nZSA9IHVzZUNhbGxiYWNrKGUgPT4gc2V0VmFsdWUoZS50YXJnZXQudmFsdWUpLCBbc2V0VmFsdWVdKTtcbiAgY29uc3Qgb25CbHVyID0gdXNlQ2FsbGJhY2soKCkgPT4gb25DaGFuZ2Uoc3RhdGVWYWx1ZSksIFtvbkNoYW5nZSwgc3RhdGVWYWx1ZV0pO1xuXG4gIHJldHVybiBlZGl0YWJsZSA/IChcbiAgICA8U3R5bGVkSW5wdXRcbiAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZS1oZXhfX2lucHV0XCJcbiAgICAgIHZhbHVlPXtzdGF0ZVZhbHVlfVxuICAgICAgb25DaGFuZ2U9e19vbkNoYW5nZX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICBpZD17aWR9XG4gICAgICB3aWR0aD17d2lkdGh9XG4gICAgICB0ZXh0QWxpZ249e3RleHRBbGlnbn1cbiAgICAgIHNlY29uZGFyeVxuICAgIC8+XG4gICkgOiAoXG4gICAgPElucHV0VGV4dCBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZS1oZXhfX2lucHV0X190ZXh0XCIgd2lkdGg9e3dpZHRofSB0ZXh0QWxpZ249e3RleHRBbGlnbn0+XG4gICAgICB7dmFsdWV9XG4gICAgPC9JbnB1dFRleHQ+XG4gICk7XG59O1xuXG5jb25zdCBEYXNoID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDZweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XG5gO1xuXG5jb25zdCBTdHlsZWRSYW5nZUlucHV0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG5gO1xuXG5jb25zdCBTdHlsZWRDb2xvckhleElucHV0ID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG5gO1xuXG5leHBvcnQgY29uc3QgRWRpdGFibGVDb2xvclJhbmdlOiBSZWFjdC5GQzxFZGl0YWJsZUNvbG9yUmFuZ2VQcm9wcz4gPSAoe1xuICBpdGVtLFxuICBpc0xhc3QsXG4gIGluZGV4LFxuICBlZGl0Q29sb3JNYXAsXG4gIGVkaXRhYmxlXG59KSA9PiB7XG4gIGNvbnN0IG5vTWluQm91bmQgPSAhTnVtYmVyLmlzRmluaXRlKGl0ZW0uaW5wdXRzWzBdKSAmJiBpbmRleCA9PT0gMDtcbiAgY29uc3Qgbm9NYXhCb3VuZCA9ICFOdW1iZXIuaXNGaW5pdGUoaXRlbS5pbnB1dHNbMV0pICYmIGlzTGFzdDtcbiAgY29uc3Qgb25DaGFuZ2VMZWZ0ID0gdXNlQ2FsbGJhY2soXG4gICAgdmFsID0+IHtcbiAgICAgIGlmIChlZGl0YWJsZSAmJiBlZGl0Q29sb3JNYXApIGVkaXRDb2xvck1hcChwYXJzZUZsb2F0KHZhbCksIGluZGV4IC0gMSk7XG4gICAgfSxcbiAgICBbZWRpdENvbG9yTWFwLCBpbmRleCwgZWRpdGFibGVdXG4gICk7XG4gIGNvbnN0IG9uQ2hhbmdlUmlnaHQgPSB1c2VDYWxsYmFjayhcbiAgICB2YWwgPT4ge1xuICAgICAgaWYgKGVkaXRhYmxlICYmIGVkaXRDb2xvck1hcCkgZWRpdENvbG9yTWFwKHBhcnNlRmxvYXQodmFsKSwgaW5kZXgpO1xuICAgIH0sXG4gICAgW2VkaXRDb2xvck1hcCwgaW5kZXgsIGVkaXRhYmxlXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFJhbmdlSW5wdXQ+XG4gICAgICA8Q29sb3JQYWxldHRlSW5wdXRcbiAgICAgICAgdmFsdWU9e25vTWluQm91bmQgPyAnTGVzcycgOiBpdGVtLmlucHV0c1swXS50b1N0cmluZygpfVxuICAgICAgICBpZD17YGNvbG9yLXBhbGV0dGUtaW5wdXQtJHtpbmRleH0tbGVmdGB9XG4gICAgICAgIHdpZHRoPVwiNTBweFwiXG4gICAgICAgIHRleHRBbGlnbj1cImVuZFwiXG4gICAgICAgIGVkaXRhYmxlPXtub01pbkJvdW5kID8gZmFsc2UgOiBlZGl0YWJsZX1cbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlTGVmdH1cbiAgICAgIC8+XG4gICAgICA8RGFzaCAvPlxuICAgICAgPENvbG9yUGFsZXR0ZUlucHV0XG4gICAgICAgIHZhbHVlPXtub01heEJvdW5kID8gJ01vcmUnIDogaXRlbS5pbnB1dHNbMV0udG9TdHJpbmcoKX1cbiAgICAgICAgaWQ9e2Bjb2xvci1wYWxldHRlLWlucHV0LSR7aW5kZXh9LXJpZ2h0YH1cbiAgICAgICAgd2lkdGg9XCI1MHB4XCJcbiAgICAgICAgdGV4dEFsaWduPVwiZW5kXCJcbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlUmlnaHR9XG4gICAgICAgIGVkaXRhYmxlPXtub01heEJvdW5kID8gZmFsc2UgOiBlZGl0YWJsZX1cbiAgICAgIC8+XG4gICAgPC9TdHlsZWRSYW5nZUlucHV0PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IEFkZENvbG9yU3RvcCA9ICh7b25Db2xvckFkZCwgSWNvbkNvbXBvbmVudH0pID0+IChcbiAgPFN0eWxlZEFjdGlvbiBvbkNsaWNrPXtvbkNvbG9yQWRkfSBjbGFzc05hbWU9XCJhZGRjb2xvclwiPlxuICAgIDxJY29uQ29tcG9uZW50IGhlaWdodD1cIjE0cHhcIiAvPlxuICA8L1N0eWxlZEFjdGlvbj5cbik7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDb2xvclN0b3AgPSAoe29uQ29sb3JEZWxldGUsIEljb25Db21wb25lbnR9KSA9PiAoXG4gIDxTdHlsZWRBY3Rpb24gb25DbGljaz17b25Db2xvckRlbGV0ZX0gY2xhc3NOYW1lPVwidHJhc2hiaW5cIj5cbiAgICA8SWNvbkNvbXBvbmVudCBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgPC9TdHlsZWRBY3Rpb24+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3VzdG9tUGFsZXR0ZUlucHV0OiBSZWFjdC5GQzxDdXN0b21QYWxldHRlSW5wdXRQcm9wcz4gPSAoe1xuICBpbmRleCxcbiAgaXNTb3J0aW5nLFxuICBjb2xvcixcbiAgY29sb3JCcmVha3MsXG4gIGlucHV0Q29sb3JIZXgsXG4gIGVkaXRDb2xvck1hcFZhbHVlLFxuICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29ucyxcbiAgZGlzYWJsZUFwcGVuZCxcbiAgZGlzYWJsZURlbGV0ZSxcbiAgb25EZWxldGUsXG4gIG9uQWRkLFxuICBvblRvZ2dsZVNrZXRjaGVyXG59KSA9PiB7XG4gIGNvbnN0IG9uQ2xpY2tTd3RhY2ggPSB1c2VDYWxsYmFjaygoKSA9PiBvblRvZ2dsZVNrZXRjaGVyKGluZGV4KSwgW29uVG9nZ2xlU2tldGNoZXIsIGluZGV4XSk7XG4gIGNvbnN0IG9uQ29sb3JJbnB1dCA9IHVzZUNhbGxiYWNrKHYgPT4gaW5wdXRDb2xvckhleChpbmRleCwgdiksIFtpbnB1dENvbG9ySGV4LCBpbmRleF0pO1xuICBjb25zdCBvbkNvbG9yRGVsZXRlID0gdXNlQ2FsbGJhY2soKCkgPT4gb25EZWxldGUoaW5kZXgpLCBbb25EZWxldGUsIGluZGV4XSk7XG4gIGNvbnN0IG9uQ29sb3JBZGQgPSB1c2VDYWxsYmFjaygoKSA9PiBvbkFkZChpbmRleCksIFtvbkFkZCwgaW5kZXhdKTtcbiAgY29uc3Qgc2hvd0hleElucHV0ID0gIWNvbG9yQnJlYWtzO1xuXG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSXRlbSBpbmRleD17aW5kZXh9IGlzU29ydGluZz17aXNTb3J0aW5nfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaW5wdXRfX2xlZnRcIj5cbiAgICAgICAgPERyYWdIYW5kbGUgY2xhc3NOYW1lPVwibGF5ZXJfX2RyYWctaGFuZGxlXCI+XG4gICAgICAgICAgPGFjdGlvbkljb25zLnNvcnQgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgIDwvRHJhZ0hhbmRsZT5cbiAgICAgICAgPENvbG9yU3dhdGNoIGNvbG9yPXtjb2xvcn0gb25DbGljaz17b25DbGlja1N3dGFjaH0gLz5cbiAgICAgICAge3Nob3dIZXhJbnB1dCA/IChcbiAgICAgICAgICA8U3R5bGVkQ29sb3JIZXhJbnB1dD5cbiAgICAgICAgICAgIDxDb2xvclBhbGV0dGVJbnB1dFxuICAgICAgICAgICAgICB2YWx1ZT17Y29sb3IudG9VcHBlckNhc2UoKX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ29sb3JJbnB1dH1cbiAgICAgICAgICAgICAgaWQ9e2BpbnB1dC1sYXllci1sYWJlbC0ke2luZGV4fWB9XG4gICAgICAgICAgICAgIGVkaXRhYmxlXG4gICAgICAgICAgICAgIHRleHRBbGlnbj1cImxlZnRcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjcwcHhcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1N0eWxlZENvbG9ySGV4SW5wdXQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7aXNOdW1lcmljQ29sb3JCcmVha3MoY29sb3JCcmVha3MpID8gKFxuICAgICAgICAgIDxFZGl0YWJsZUNvbG9yUmFuZ2VcbiAgICAgICAgICAgIGl0ZW09e2NvbG9yQnJlYWtzW2luZGV4XX1cbiAgICAgICAgICAgIGlzTGFzdD17aW5kZXggPT09IGNvbG9yQnJlYWtzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICBlZGl0Q29sb3JNYXA9e2VkaXRDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgZWRpdGFibGVcbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZS1pbnB1dF9fcmlnaHRcIj5cbiAgICAgICAgeyFkaXNhYmxlQXBwZW5kID8gKFxuICAgICAgICAgIDxBZGRDb2xvclN0b3Agb25Db2xvckFkZD17b25Db2xvckFkZH0gSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMuYWRkfSAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgeyFkaXNhYmxlRGVsZXRlID8gKFxuICAgICAgICAgIDxEZWxldGVDb2xvclN0b3Agb25Db2xvckRlbGV0ZT17b25Db2xvckRlbGV0ZX0gSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMuZGVsZXRlfSAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgIDwvU29ydGFibGVJdGVtPlxuICApO1xufTtcblxuY29uc3QgU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlcldyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY2F0ZWdvcmljYWwtdmFsdWUtcGlja2VyJ1xufSlgXG4gIHdpZHRoOiAxNTBweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRDb2xvcn07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGNvbHVtbi1nYXA6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuYDtcblxudHlwZSBTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyUHJvcHMgPSB7bm9Cb3JkZXI6IGJvb2xlYW59O1xuY29uc3QgU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlciA9IHN0eWxlZC5kaXY8U3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlclByb3BzPmBcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBmb250LXNpemU6IDExcHg7XG4gIGJvcmRlci1ib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLm5vQm9yZGVyID8gJycgOiAnMXB4IGRhc2hlZCcpfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWF4LXdpZHRoOiAxMDBweDtcbmA7XG5cbnR5cGUgRHJvcGRvd25WYWx1ZXNXcmFwcGVyUHJvcHMgPSB7d2lkdGg6IG51bWJlcn07XG5jb25zdCBEcm9wZG93blZhbHVlc1dyYXBwZXIgPSBzdHlsZWQuZGl2PERyb3Bkb3duVmFsdWVzV3JhcHBlclByb3BzPmBcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldyYXBwZXJafTtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG5gO1xuXG50eXBlIFNlbGVjdGVkVmFsdWVzV3JhcHBlclByb3BzID0ge3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfTtcbmNvbnN0IFNlbGVjdGVkVmFsdWVzV3JhcHBlciA9IHN0eWxlZChEcm9wZG93blZhbHVlc1dyYXBwZXIpPFNlbGVjdGVkVmFsdWVzV3JhcHBlclByb3BzPmBcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG4gIG1heC1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaGVpZ2h0fXB4O1xuICBvdmVyZmxvdzogYXV0bztcblxuICAuY3VzdG9tLXBhbGV0dGUtY2hpY2tsZXRlZC1pbnB1dCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWn07XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZERyb3Bkb3duSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dENvbG9yfTtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcblxuICAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFRvb2x0aXBDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogOHB4O1xuICB3aWR0aDogMTUwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcblxuICBkaXYge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuYDtcblxuY29uc3QgTlVNQkVSX1ZBTFVFU19JTl9UT09MVElQID0gMTA7XG5cbmNvbnN0IENhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7XG4gIG9uU2VsZWN0UmVzdDogKCkgPT4gbnVsbCxcbiAgb25SZXNldDogKCkgPT4gbnVsbFxufSk7XG5cbi8vIENhdGVnb3JpY2FsIHZhbHVlcyBkcm9wZG93bmxpc3Q6XG4vLyBleHRlbmRpbmcgRHJvcGRvd25MaXN0IGFuZCBhZGRpbmcgJ1NlbGVjdCB0aGUgUmVzdCcgYW5kICdSZXNldCcgYnV0dG9uc1xuY2xhc3MgTW9kaWZpZWREcm9wZG93bkxpc3QgZXh0ZW5kcyBEcm9wZG93bkxpc3Qge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgIHtjb250ZXh0ID0+IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxTdHlsZWREcm9wZG93bkhlYWRlcj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIGxpbmsgc2l6ZT1cInNtYWxcIiBvbkNsaWNrPXtjb250ZXh0Lm9uU2VsZWN0UmVzdH0+XG4gICAgICAgICAgICAgICAgICBTZWxlY3QgdGhlIFJlc3RcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIGxpbmsgc2l6ZT1cInNtYWxcIiBvbkNsaWNrPXtjb250ZXh0Lm9uUmVzZXR9PlxuICAgICAgICAgICAgICAgICAgUmVzZXRcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPC9TdHlsZWREcm9wZG93bkhlYWRlcj5cbiAgICAgICAgICAgICAgPERpdmlkZXJMaW5lIC8+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkxpc3Qgey4uLnRoaXMucHJvcHN9IC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICA8L0NhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBDYXRlZ29yaWNhbFNlbGVjdG9yUHJvcHMgPSB7XG4gIGluZGV4OiBudW1iZXI7XG4gIHNlbGVjdGVkVmFsdWVzOiAoc3RyaW5nIHwgbnVtYmVyIHwgbnVsbClbXTtcbiAgYWxsVmFsdWVzOiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICBhZGRDb2xvck1hcFZhbHVlPzogKHY6IChudW1iZXIgfCBzdHJpbmcgfCBudWxsKVtdLCBpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHJlbW92ZUNvbG9yTWFwVmFsdWU/OiAodjogbnVtYmVyIHwgc3RyaW5nLCBpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHJlc2V0Q29sb3JNYXBWYWx1ZT86IChpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlPzogKGk6IG51bWJlcikgPT4gdm9pZDtcbiAgZWRpdGFibGU/OiBib29sZWFuO1xufTtcblxuLy8gQ2F0ZWdvcmljYWwgdmFsdWVzIHNlbGVjdG9yIGZvciBlZGl0aW5nIGNhdGVnb3JpY2FsIHZhbHVlc1xuZXhwb3J0IGNvbnN0IENhdGVnb3JpY2FsU2VsZWN0b3I6IFJlYWN0LkZDPENhdGVnb3JpY2FsU2VsZWN0b3JQcm9wcz4gPSAoe1xuICBpbmRleCxcbiAgc2VsZWN0ZWRWYWx1ZXMsXG4gIGFsbFZhbHVlcyxcbiAgYWRkQ29sb3JNYXBWYWx1ZSxcbiAgcmVtb3ZlQ29sb3JNYXBWYWx1ZSxcbiAgcmVzZXRDb2xvck1hcFZhbHVlLFxuICBzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZSxcbiAgZWRpdGFibGUgPSB0cnVlXG59OiBDYXRlZ29yaWNhbFNlbGVjdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgW3Nob3dUeXBlYWhlYWQsIHNldFNob3dUeXBlYWhlYWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IG9uT3B0aW9uU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBwcmV2aW91c1NlbGVjdGVkID0gdG9BcnJheShzZWxlY3RlZFZhbHVlcyk7XG4gICAgICBjb25zdCBpdGVtcyA9IHVuaXEocHJldmlvdXNTZWxlY3RlZC5jb25jYXQodG9BcnJheSh2YWx1ZSkpKTtcbiAgICAgIGFkZENvbG9yTWFwVmFsdWU/LihpdGVtcywgaW5kZXgpO1xuICAgIH0sXG4gICAgW3NlbGVjdGVkVmFsdWVzLCBpbmRleCwgYWRkQ29sb3JNYXBWYWx1ZV1cbiAgKTtcblxuICBjb25zdCBvbk9wZW5Ecm9wZG93biA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRTaG93VHlwZWFoZWFkKHRydWUpO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25DbG9zZURyb3Bkb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNob3dUeXBlYWhlYWQoZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25SZW1vdmVJdGVtID0gdXNlQ2FsbGJhY2soXG4gICAgdmFsdWUgPT4ge1xuICAgICAgcmVtb3ZlQ29sb3JNYXBWYWx1ZT8uKHZhbHVlLCBpbmRleCk7XG4gICAgfSxcbiAgICBbaW5kZXgsIHJlbW92ZUNvbG9yTWFwVmFsdWVdXG4gICk7XG5cbiAgY29uc3Qgb25SZXNldCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICByZXNldENvbG9yTWFwVmFsdWU/LihpbmRleCk7XG4gICAgc2V0U2hvd1R5cGVhaGVhZChmYWxzZSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtyZXNldENvbG9yTWFwVmFsdWUsIGluZGV4XSk7XG5cbiAgY29uc3Qgb25TZWxlY3RSZXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlPy4oaW5kZXgpO1xuICAgIHNldFNob3dUeXBlYWhlYWQoZmFsc2UpO1xuICAgIHJldHVybiBudWxsO1xuICB9LCBbc2VsZWN0UmVzdENvbG9yTWFwVmFsdWUsIGluZGV4XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlcldyYXBwZXI+XG4gICAgICB7ZWRpdGFibGUgJiYgPEFkZCBoZWlnaHQ9XCIxMnB4XCIgb25DbGljaz17b25PcGVuRHJvcGRvd259IC8+fVxuICAgICAgPFN0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXJcbiAgICAgICAgbm9Cb3JkZXI9e3NlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMCB8fCAhZWRpdGFibGV9XG4gICAgICAgIG9uQ2xpY2s9e29uT3BlbkRyb3Bkb3dufVxuICAgICAgICBkYXRhLXRpcFxuICAgICAgICBkYXRhLWZvcj17YGNhdGVnb3J5LXZhbHVlcy0ke2luZGV4fWB9XG4gICAgICA+XG4gICAgICAgIHtzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDBcbiAgICAgICAgICA/ICdBZGQgVmFsdWUnXG4gICAgICAgICAgOiBzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICA/IHNlbGVjdGVkVmFsdWVzWzBdXG4gICAgICAgICAgOiBgJHtzZWxlY3RlZFZhbHVlcy5sZW5ndGh9IHNlbGVjdGVkYH1cbiAgICAgICAge3NlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICAgIDxUb29sdGlwIGlkPXtgY2F0ZWdvcnktdmFsdWVzLSR7aW5kZXh9YH0gcGxhY2U9XCJ0b3BcIiBpbnRlcmFjdGl2ZT17dHJ1ZX0+XG4gICAgICAgICAgICA8U3R5bGVkVG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgICAgIHtzZWxlY3RlZFZhbHVlcy5zbGljZSgwLCBOVU1CRVJfVkFMVUVTX0lOX1RPT0xUSVApLm1hcCgodmFsdWUsIGkpID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17aX0+e3ZhbHVlfTwvZGl2PlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAge3NlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IE5VTUJFUl9WQUxVRVNfSU5fVE9PTFRJUCAmJiA8ZGl2Pi4uLjwvZGl2Pn1cbiAgICAgICAgICAgIDwvU3R5bGVkVG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApfVxuICAgICAgPC9TdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyPlxuICAgICAge2VkaXRhYmxlICYmIChcbiAgICAgICAgPFBvcnRhbGVkIGxlZnQ9ezB9IHRvcD17MH0gaXNPcGVuZWQ9e3Nob3dUeXBlYWhlYWR9IG9uQ2xvc2U9e29uQ2xvc2VEcm9wZG93bn0+XG4gICAgICAgICAge3NlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICAgICAgPFNlbGVjdGVkVmFsdWVzV3JhcHBlciB3aWR0aD17MjUwfSBoZWlnaHQ9ezIwMH0+XG4gICAgICAgICAgICAgIDxDaGlja2xldGVkSW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9eydjdXN0b20tcGFsZXR0ZS1jaGlja2xldGVkLWlucHV0J31cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZFZhbHVlc31cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17Jyd9XG4gICAgICAgICAgICAgICAgcmVtb3ZlSXRlbT17b25SZW1vdmVJdGVtfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG51bGx9XG4gICAgICAgICAgICAgICAgQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQ9e251bGx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1NlbGVjdGVkVmFsdWVzV3JhcHBlcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxEcm9wZG93blZhbHVlc1dyYXBwZXIgd2lkdGg9ezI1MH0+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7cG9zaXRpb246ICdyZWxhdGl2ZSd9fT5cbiAgICAgICAgICAgICAgPENhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICAgICAgICAgIG9uUmVzZXQsXG4gICAgICAgICAgICAgICAgICBvblNlbGVjdFJlc3RcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgICAgICAgICAgY3VzdG9tQ2xhc3Nlcz17e1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRzOiAnbGlzdC1zZWxlY3RvcicsXG4gICAgICAgICAgICAgICAgICAgIGlucHV0OiAndHlwZWFoZWFkX19pbnB1dCcsXG4gICAgICAgICAgICAgICAgICAgIGxpc3RJdGVtOiAnbGlzdF9faXRlbScsXG4gICAgICAgICAgICAgICAgICAgIGxpc3RBbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17YWxsVmFsdWVzfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9eydTZWFyY2gnfVxuICAgICAgICAgICAgICAgICAgb25PcHRpb25TZWxlY3RlZD17b25PcHRpb25TZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgIGN1c3RvbUxpc3RDb21wb25lbnQ9e01vZGlmaWVkRHJvcGRvd25MaXN0fVxuICAgICAgICAgICAgICAgICAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ9e0xpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgIHNob3dPcHRpb25zV2hlbkVtcHR5XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZFZhbHVlc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9Ecm9wZG93blZhbHVlc1dyYXBwZXI+XG4gICAgICAgIDwvUG9ydGFsZWQ+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlcldyYXBwZXI+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBDYXRlZ29yaWNhbEN1c3RvbVBhbGV0dGVJbnB1dFByb3BzID0ge1xuICBpbmRleDogbnVtYmVyO1xuICBpc1NvcnRpbmc6IGJvb2xlYW47XG4gIGNvbG9yOiBIZXhDb2xvcjtcbiAgY29sb3JNYXA/OiBDb2xvck1hcCB8IG51bGw7XG4gIGFkZENvbG9yTWFwVmFsdWU6ICh2OiAobnVtYmVyIHwgc3RyaW5nIHwgbnVsbClbXSwgaTogbnVtYmVyKSA9PiB2b2lkO1xuICByZW1vdmVDb2xvck1hcFZhbHVlOiAodjogbnVtYmVyIHwgc3RyaW5nLCBpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHJlc2V0Q29sb3JNYXBWYWx1ZTogKGk6IG51bWJlcikgPT4gdm9pZDtcbiAgc2VsZWN0UmVzdENvbG9yTWFwVmFsdWU6IChpOiBudW1iZXIpID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zPzogQWN0aW9uSWNvbnM7XG4gIG9uRGVsZXRlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgb25BZGQ6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xuICBvblRvZ2dsZVNrZXRjaGVyOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgYWxsVmFsdWVzOiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICBkaXNhYmxlRGVsZXRlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBDYXRlZ29yaWNhbEN1c3RvbVBhbGV0dGVJbnB1dDogUmVhY3QuRkM8Q2F0ZWdvcmljYWxDdXN0b21QYWxldHRlSW5wdXRQcm9wcz4gPSAoe1xuICBpbmRleCxcbiAgaXNTb3J0aW5nLFxuICBjb2xvcixcbiAgY29sb3JNYXAsXG4gIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICBvbkRlbGV0ZSxcbiAgZGlzYWJsZURlbGV0ZSxcbiAgb25Ub2dnbGVTa2V0Y2hlcixcbiAgYWRkQ29sb3JNYXBWYWx1ZSxcbiAgcmVtb3ZlQ29sb3JNYXBWYWx1ZSxcbiAgcmVzZXRDb2xvck1hcFZhbHVlLFxuICBzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZSxcbiAgYWxsVmFsdWVzXG59OiBDYXRlZ29yaWNhbEN1c3RvbVBhbGV0dGVJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IHNlbGVjdGVkVmFsdWVzOiAobnVtYmVyIHwgc3RyaW5nIHwgbnVsbClbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghY29sb3JNYXAgfHwgIWNvbG9yTWFwW2luZGV4XSkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHZhbHVlID0gY29sb3JNYXBbaW5kZXhdWzBdO1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiB2YWx1ZSAhPT0gbnVsbCA/IFt2YWx1ZV0gOiBbXTtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9LCBbY29sb3JNYXAsIGluZGV4XSk7XG5cbiAgY29uc3Qgb25DbGlja1N3dGFjaCA9IHVzZUNhbGxiYWNrKCgpID0+IG9uVG9nZ2xlU2tldGNoZXIoaW5kZXgpLCBbb25Ub2dnbGVTa2V0Y2hlciwgaW5kZXhdKTtcbiAgY29uc3Qgb25Db2xvckRlbGV0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IG9uRGVsZXRlKGluZGV4KSwgW29uRGVsZXRlLCBpbmRleF0pO1xuXG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSXRlbSBpbmRleD17aW5kZXh9IGlzU29ydGluZz17aXNTb3J0aW5nfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaW5wdXRfX2xlZnRcIj5cbiAgICAgICAgPERyYWdIYW5kbGUgY2xhc3NOYW1lPVwibGF5ZXJfX2RyYWctaGFuZGxlXCI+XG4gICAgICAgICAgPGFjdGlvbkljb25zLnNvcnQgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgIDwvRHJhZ0hhbmRsZT5cbiAgICAgICAgPENvbG9yU3dhdGNoIGNvbG9yPXtjb2xvcn0gb25DbGljaz17b25DbGlja1N3dGFjaH0gLz5cbiAgICAgICAge2NvbG9yTWFwICYmIGNvbG9yTWFwW2luZGV4XSAmJiAoXG4gICAgICAgICAgPENhdGVnb3JpY2FsU2VsZWN0b3JcbiAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzPXtzZWxlY3RlZFZhbHVlc31cbiAgICAgICAgICAgIGFsbFZhbHVlcz17YWxsVmFsdWVzfVxuICAgICAgICAgICAgYWRkQ29sb3JNYXBWYWx1ZT17YWRkQ29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgIHJlbW92ZUNvbG9yTWFwVmFsdWU9e3JlbW92ZUNvbG9yTWFwVmFsdWV9XG4gICAgICAgICAgICByZXNldENvbG9yTWFwVmFsdWU9e3Jlc2V0Q29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlPXtzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlLWlucHV0X19yaWdodFwiPlxuICAgICAgICB7IWRpc2FibGVEZWxldGUgPyAoXG4gICAgICAgICAgPERlbGV0ZUNvbG9yU3RvcCBvbkNvbG9yRGVsZXRlPXtvbkNvbG9yRGVsZXRlfSBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5kZWxldGV9IC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG4gICAgPC9Tb3J0YWJsZUl0ZW0+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgQm90dG9tQWN0aW9uID0gKHtvbkNhbmNlbCwgb25Db25maXJtfSkgPT4gKFxuICA8U3R5bGVkQnV0dG9uQ29udGFpbmVyPlxuICAgIDxCdXR0b24gY2xhc3NOYW1lPVwiY29uZmlybS1hcHBseV9fYnV0dG9uXCIgc21hbGwgb25DbGljaz17b25Db25maXJtfT5cbiAgICAgIENvbmZpcm1cbiAgICA8L0J1dHRvbj5cbiAgICA8QnV0dG9uIGxpbmsgc21hbGwgb25DbGljaz17b25DYW5jZWx9PlxuICAgICAgQ2FuY2VsXG4gICAgPC9CdXR0b24+XG4gIDwvU3R5bGVkQnV0dG9uQ29udGFpbmVyPlxuKTtcblxuY29uc3QgU3R5bGVkQ3VzdG9tUGFsZXR0ZSA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdjdXN0b20tcGFsZXR0ZSdcbn0pYFxuICBtYXJnaW4tdG9wOiA4cHg7XG5gO1xuXG5mdW5jdGlvbiBDdXN0b21QYWxldHRlRmFjdG9yeSgpOiBSZWFjdC5GQzxDdXN0b21QYWxldHRlUHJvcHM+IHtcbiAgY29uc3QgQ3VzdG9tUGFsZXR0ZTogUmVhY3QuRkM8Q3VzdG9tUGFsZXR0ZVByb3BzPiA9ICh7XG4gICAgb3JkaW5hbERvbWFpbixcbiAgICBjdXN0b21QYWxldHRlLFxuICAgIHNldENvbG9yUGFsZXR0ZVVJLFxuICAgIHNob3dTa2V0Y2hlcixcbiAgICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29ucyxcbiAgICBvbkNhbmNlbCxcbiAgICBvbkFwcGx5XG4gIH0pID0+IHtcbiAgICBjb25zdCBbaXNTb3J0aW5nLCBzZXRJc1NvcnRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHtjb2xvcnMsIGNvbG9yTWFwfSA9IGN1c3RvbVBhbGV0dGU7XG4gICAgY29uc3QgY29sb3JCcmVha3MgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgY29sb3JNYXBcbiAgICAgICAgICA/IGN1c3RvbVBhbGV0dGUudHlwZSA9PT0gJ2N1c3RvbSdcbiAgICAgICAgICAgID8gY29sb3JNYXBUb0NvbG9yQnJlYWtzKGNvbG9yTWFwKVxuICAgICAgICAgICAgOiBjb2xvck1hcFRvQ2F0ZWdvcmljYWxDb2xvckJyZWFrcyhjb2xvck1hcClcbiAgICAgICAgICA6IG51bGwsXG4gICAgICBbY3VzdG9tUGFsZXR0ZS50eXBlLCBjb2xvck1hcF1cbiAgICApO1xuXG4gICAgY29uc3Qgb25QaWNrZXJVcGRhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIGNvbG9yID0+IHtcbiAgICAgICAgaWYgKGNvbG9yICYmIE51bWJlci5pc0Zpbml0ZShzaG93U2tldGNoZXIpKSB7XG4gICAgICAgICAgY29uc3QgbmV3Q3VzdG9tUGFsZXR0ZSA9IHVwZGF0ZUN1c3RvbVBhbGV0dGVDb2xvcihcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGUsXG4gICAgICAgICAgICBOdW1iZXIoc2hvd1NrZXRjaGVyKSxcbiAgICAgICAgICAgIGNvbG9yLmhleFxuICAgICAgICAgICk7XG4gICAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZTogbmV3Q3VzdG9tUGFsZXR0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2N1c3RvbVBhbGV0dGUsIHNob3dTa2V0Y2hlciwgc2V0Q29sb3JQYWxldHRlVUldXG4gICAgKTtcbiAgICBjb25zdCBvblRvZ2dsZVNrZXRjaGVyID0gdXNlQ2FsbGJhY2soXG4gICAgICB2YWwgPT4ge1xuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgc2hvd1NrZXRjaGVyOiB2YWxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJXVxuICAgICk7XG4gICAgY29uc3Qgb25EZWxldGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIGluZGV4ID0+IHtcbiAgICAgICAgY29uc3QgbmV3Q3VzdG9tUGFsZXR0ZSA9IHJlbW92ZUN1c3RvbVBhbGV0dGVDb2xvcihjdXN0b21QYWxldHRlLCBpbmRleCk7XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiBuZXdDdXN0b21QYWxldHRlXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtjdXN0b21QYWxldHRlLCBzZXRDb2xvclBhbGV0dGVVSV1cbiAgICApO1xuXG4gICAgY29uc3Qgb25BZGQgPSB1c2VDYWxsYmFjayhcbiAgICAgIGluZGV4ID0+IHtcbiAgICAgICAgLy8gYWRkIGNvbG9yIGF0IHRoZSBlbmRcbiAgICAgICAgY29uc3QgbmV3Q3VzdG9tUGFsZXR0ZSA9IGFkZEN1c3RvbVBhbGV0dGVDb2xvcihjdXN0b21QYWxldHRlLCBpbmRleCk7XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiBuZXdDdXN0b21QYWxldHRlXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtjdXN0b21QYWxldHRlLCBzZXRDb2xvclBhbGV0dGVVSV1cbiAgICApO1xuXG4gICAgY29uc3Qgb25BZGRDYXRlZ29yaWNhbFN0ZXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvbkFkZChjb2xvcnMubGVuZ3RoIC0gMSk7XG4gICAgfSwgW2NvbG9ycy5sZW5ndGgsIG9uQWRkXSk7XG5cbiAgICBjb25zdCBvblN3YXRjaENsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVTa2V0Y2hlcihmYWxzZSk7XG4gICAgfSwgW29uVG9nZ2xlU2tldGNoZXJdKTtcblxuICAgIGNvbnN0IG9uQ29uZmlybSA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25DYW5jZWwoKTtcbiAgICAgICAgb25BcHBseShldmVudCk7XG4gICAgICB9LFxuICAgICAgW29uQ2FuY2VsLCBvbkFwcGx5XVxuICAgICk7XG5cbiAgICBjb25zdCBvblNvcnRFbmQgPSB1c2VDYWxsYmFjayhcbiAgICAgICh7b2xkSW5kZXgsIG5ld0luZGV4fSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdDdXN0b21QYWxldHRlID0gc29ydEN1c3RvbVBhbGV0dGVDb2xvcihjdXN0b21QYWxldHRlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZTogbmV3Q3VzdG9tUGFsZXR0ZVxuICAgICAgICB9KTtcbiAgICAgICAgc2V0SXNTb3J0aW5nKGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBbY3VzdG9tUGFsZXR0ZSwgc2V0Q29sb3JQYWxldHRlVUksIHNldElzU29ydGluZ11cbiAgICApO1xuXG4gICAgY29uc3Qgb25Tb3J0U3RhcnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRJc1NvcnRpbmcodHJ1ZSk7XG4gICAgfSwgW3NldElzU29ydGluZ10pO1xuXG4gICAgY29uc3QgaW5wdXRDb2xvckhleCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGluZGV4LCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdDdXN0b21QYWxldHRlID0gdXBkYXRlQ3VzdG9tUGFsZXR0ZUNvbG9yKGN1c3RvbVBhbGV0dGUsIGluZGV4LCB2YWx1ZSk7XG4gICAgICAgIC8vIHNldENvbG9ycyhuZXdDb2xvcnMpO1xuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZTogbmV3Q3VzdG9tUGFsZXR0ZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbY3VzdG9tUGFsZXR0ZSwgc2V0Q29sb3JQYWxldHRlVUldXG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRDb2xvck1hcFZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgICAodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY3VzdG9tUGFsZXR0ZS5jb2xvck1hcCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdDb2xvck1hcCA9IGN1c3RvbVBhbGV0dGUuY29sb3JNYXAubWFwKFxuICAgICAgICAgIChjbSwgaSkgPT4gKGkgPT09IGluZGV4ID8gW3ZhbHVlLCBjbVsxXV0gOiBjbSkgYXMgW3N0cmluZywgc3RyaW5nXVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIHNvcnQgdGhlIHVzZXIgaW5wdXRzIGluIGNhc2UgdGhlIGJyZWFrIHZhbHVlcyBhcmUgbm90IG9yZGVyZWRcbiAgICAgICAgY29uc3QgYnJlYWtzID0gbmV3Q29sb3JNYXBcbiAgICAgICAgICAubWFwKGNtID0+IGNtWzBdIGFzIHN0cmluZyB8IG51bGwpXG4gICAgICAgICAgLnNsaWNlKDAsIC0xKVxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBOdW1iZXIoYSkgLSBOdW1iZXIoYikpXG4gICAgICAgICAgLmNvbmNhdChudWxsKTtcbiAgICAgICAgY29uc3Qgc29ydGVkTmV3Q29sb3JNYXA6IENvbG9yTWFwID0gbmV3Q29sb3JNYXAubWFwKChjbSwgaSkgPT4gW2JyZWFrc1tpXSwgY21bMV1dKTtcblxuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZToge1xuICAgICAgICAgICAgLi4uY3VzdG9tUGFsZXR0ZSxcbiAgICAgICAgICAgIGNvbG9yTWFwOiBzb3J0ZWROZXdDb2xvck1hcFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJLCBjdXN0b21QYWxldHRlXVxuICAgICk7XG5cbiAgICAvLyByZW1vdmUgYSBzZWxlY3RlZCBjYXRlZ29yeSBpdGVtIGZyb20gYSBjb2xvciBtYXBcbiAgICBjb25zdCByZW1vdmVDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWUgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNvbG9yTWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiB7XG4gICAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgY29sb3JNYXA6IHJlbW92ZUNhdGVnb3JpY2FsVmFsdWVGcm9tQ29sb3JNYXAoY29sb3JNYXAsIGl0ZW0sIGluZGV4KVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJLCBjdXN0b21QYWxldHRlLCBjb2xvck1hcF1cbiAgICApO1xuXG4gICAgLy8gYWRkIHNlbGVjdGVkIGNhdGVnb3JpY2FsIGl0ZW1zIHRvIGEgY29sb3IgbWFwXG4gICAgY29uc3QgYWRkQ2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXRlbXMsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY29sb3JNYXApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IHtcbiAgICAgICAgICAgIC4uLmN1c3RvbVBhbGV0dGUsXG4gICAgICAgICAgICBjb2xvck1hcDogYWRkQ2F0ZWdvcmljYWxWYWx1ZXNUb0NvbG9yTWFwKGNvbG9yTWFwLCBpdGVtcywgaW5kZXgpXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbc2V0Q29sb3JQYWxldHRlVUksIGN1c3RvbVBhbGV0dGUsIGNvbG9yTWFwXVxuICAgICk7XG5cbiAgICAvLyByZXNldCBhIGNvbG9yIG1hcFxuICAgIGNvbnN0IHJlc2V0Q2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgICBpbmRleCA9PiB7XG4gICAgICAgIGlmICghY29sb3JNYXApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IHtcbiAgICAgICAgICAgIC4uLmN1c3RvbVBhbGV0dGUsXG4gICAgICAgICAgICBjb2xvck1hcDogcmVzZXRDYXRlZ29yaWNhbENvbG9yTWFwQnlJbmRleChjb2xvck1hcCwgaW5kZXgpXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbc2V0Q29sb3JQYWxldHRlVUksIGN1c3RvbVBhbGV0dGUsIGNvbG9yTWFwXVxuICAgICk7XG5cbiAgICAvLyBzZWxlY3QgdGhlIHJlc3QgdmFsdWVzIGZvciBhIGNvbG9yIG1hcFxuICAgIGNvbnN0IHNlbGVjdFJlc3RDYXRlZ29yaWNhbENvbG9yTWFwID0gdXNlQ2FsbGJhY2soXG4gICAgICBpbmRleCA9PiB7XG4gICAgICAgIGlmICghY29sb3JNYXApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IHtcbiAgICAgICAgICAgIC4uLmN1c3RvbVBhbGV0dGUsXG4gICAgICAgICAgICBjb2xvck1hcDogc2VsZWN0UmVzdENhdGVnb3JpY2FsQ29sb3JNYXBCeUluZGV4KGNvbG9yTWFwLCBpbmRleCwgb3JkaW5hbERvbWFpbilcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclBhbGV0dGVVSSwgY3VzdG9tUGFsZXR0ZSwgY29sb3JNYXAsIG9yZGluYWxEb21haW5dXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkQ3VzdG9tUGFsZXR0ZT5cbiAgICAgICAgPFdyYXBwZWRTb3J0YWJsZUNvbnRhaW5lclxuICAgICAgICAgIGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlX19zb3J0YWJsZS1jb250YWluZXJcIlxuICAgICAgICAgIG9uU29ydEVuZD17b25Tb3J0RW5kfVxuICAgICAgICAgIG9uU29ydFN0YXJ0PXtvblNvcnRTdGFydH1cbiAgICAgICAgICBsb2NrQXhpcz1cInlcIlxuICAgICAgICAgIGhlbHBlckNsYXNzPVwic29ydGluZy1jb2xvcnNcIlxuICAgICAgICAgIHVzZURyYWdIYW5kbGVcbiAgICAgICAgPlxuICAgICAgICAgIHtjb2xvcnMubWFwKChjb2xvciwgaW5kZXgpID0+XG4gICAgICAgICAgICBjdXN0b21QYWxldHRlLnR5cGUgPT09ICdjdXN0b20nID8gKFxuICAgICAgICAgICAgICA8Q3VzdG9tUGFsZXR0ZUlucHV0XG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBjb2xvckJyZWFrcz17Y29sb3JCcmVha3N9XG4gICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgIGlzU29ydGluZz17aXNTb3J0aW5nfVxuICAgICAgICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICAgICAgICBpbnB1dENvbG9ySGV4PXtpbnB1dENvbG9ySGV4fVxuICAgICAgICAgICAgICAgIGRpc2FibGVBcHBlbmQ9e2NvbG9ycy5sZW5ndGggPj0gMjB9XG4gICAgICAgICAgICAgICAgZGlzYWJsZURlbGV0ZT17Y29sb3JzLmxlbmd0aCA8PSAyfVxuICAgICAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAgICAgICBvbkFkZD17b25BZGR9XG4gICAgICAgICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgICAgICAgIG9uVG9nZ2xlU2tldGNoZXI9e29uVG9nZ2xlU2tldGNoZXJ9XG4gICAgICAgICAgICAgICAgZWRpdENvbG9yTWFwVmFsdWU9e2VkaXRDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgb3JkaW5hbERvbWFpbiAmJiAoXG4gICAgICAgICAgICAgICAgPENhdGVnb3JpY2FsQ3VzdG9tUGFsZXR0ZUlucHV0XG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgY29sb3JNYXA9e2NvbG9yTWFwfVxuICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgaXNTb3J0aW5nPXtpc1NvcnRpbmd9XG4gICAgICAgICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICAgICAgICBhY3Rpb25JY29ucz17YWN0aW9uSWNvbnN9XG4gICAgICAgICAgICAgICAgICBvbkFkZD17b25BZGR9XG4gICAgICAgICAgICAgICAgICBvbkRlbGV0ZT17b25EZWxldGV9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlRGVsZXRlPXtjb2xvcnMubGVuZ3RoIDw9IDJ9XG4gICAgICAgICAgICAgICAgICBvblRvZ2dsZVNrZXRjaGVyPXtvblRvZ2dsZVNrZXRjaGVyfVxuICAgICAgICAgICAgICAgICAgYWRkQ29sb3JNYXBWYWx1ZT17YWRkQ2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAgICAgcmVtb3ZlQ29sb3JNYXBWYWx1ZT17cmVtb3ZlQ2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAgICAgcmVzZXRDb2xvck1hcFZhbHVlPXtyZXNldENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlPXtzZWxlY3RSZXN0Q2F0ZWdvcmljYWxDb2xvck1hcH1cbiAgICAgICAgICAgICAgICAgIGFsbFZhbHVlcz17b3JkaW5hbERvbWFpbn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKX1cbiAgICAgICAgPC9XcmFwcGVkU29ydGFibGVDb250YWluZXI+XG4gICAgICAgIHtjdXN0b21QYWxldHRlLnR5cGUgPT09ICdjdXN0b21PcmRpbmFsJyAmJiAoXG4gICAgICAgICAgPFN0eWxlZEFkZFN0ZXBDb250YWluZXI+XG4gICAgICAgICAgICA8QWRkQ29sb3JTdG9wIG9uQ29sb3JBZGQ9e29uQWRkQ2F0ZWdvcmljYWxTdGVwfSBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5hZGR9IC8+XG4gICAgICAgICAgICA8QnV0dG9uIGxpbmsgc2l6ZT1cInNtYWxcIiBvbkNsaWNrPXtvbkFkZENhdGVnb3JpY2FsU3RlcH0+XG4gICAgICAgICAgICAgIEFkZCBTdGVwXG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1N0eWxlZEFkZFN0ZXBDb250YWluZXI+XG4gICAgICAgICl9XG4gICAgICAgIDxEaXZpZGVyTGluZSAvPlxuICAgICAgICB7LyogQ2FuY2VsIG9yIENvbmZpcm0gQnV0dG9ucyAqL31cbiAgICAgICAgPEJvdHRvbUFjdGlvbiBvbkNhbmNlbD17b25DYW5jZWx9IG9uQ29uZmlybT17b25Db25maXJtfSAvPlxuICAgICAgICA8UG9ydGFsZWQgaXNPcGVuZWQ9e3Nob3dTa2V0Y2hlciAhPT0gZmFsc2V9IGxlZnQ9ezI4MH0gdG9wPXstMzAwfSBvbkNsb3NlPXtvblN3YXRjaENsb3NlfT5cbiAgICAgICAgICA8Q3VzdG9tUGlja2VyIGNvbG9yPXtjb2xvcnNbTnVtYmVyKHNob3dTa2V0Y2hlcildfSBvbkNoYW5nZT17b25QaWNrZXJVcGRhdGV9IC8+XG4gICAgICAgIDwvUG9ydGFsZWQ+XG4gICAgICA8L1N0eWxlZEN1c3RvbVBhbGV0dGU+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gQ3VzdG9tUGFsZXR0ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ3VzdG9tUGFsZXR0ZUZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxXQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFTQSxJQUFBRyxPQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBSixPQUFBO0FBT0EsSUFBQUssaUJBQUEsR0FBQUgsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGtCQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxnQkFBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsYUFBQSxHQUFBUix1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQVcsWUFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksVUFBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsTUFBQSxHQUFBYixPQUFBO0FBY0EsSUFBQWMsTUFBQSxHQUFBZCxPQUFBO0FBRUEsSUFBQWUsYUFBQSxHQUFBaEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUEyQyxJQUFBZ0IsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxpQkFBQSxFQS9DM0M7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBbkMsd0JBQUFtQyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLGNBQUFSLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFlLEdBQUEsQ0FBQWxCLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQVcsUUFBQW5CLENBQUEsRUFBQUUsQ0FBQSxRQUFBQyxDQUFBLEdBQUFRLE1BQUEsQ0FBQVMsSUFBQSxDQUFBcEIsQ0FBQSxPQUFBVyxNQUFBLENBQUFVLHFCQUFBLFFBQUFDLENBQUEsR0FBQVgsTUFBQSxDQUFBVSxxQkFBQSxDQUFBckIsQ0FBQSxHQUFBRSxDQUFBLEtBQUFvQixDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBckIsQ0FBQSxXQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQUUsQ0FBQSxFQUFBc0IsVUFBQSxPQUFBckIsQ0FBQSxDQUFBc0IsSUFBQSxDQUFBQyxLQUFBLENBQUF2QixDQUFBLEVBQUFtQixDQUFBLFlBQUFuQixDQUFBO0FBQUEsU0FBQXdCLGNBQUEzQixDQUFBLGFBQUFFLENBQUEsTUFBQUEsQ0FBQSxHQUFBMEIsU0FBQSxDQUFBQyxNQUFBLEVBQUEzQixDQUFBLFVBQUFDLENBQUEsV0FBQXlCLFNBQUEsQ0FBQTFCLENBQUEsSUFBQTBCLFNBQUEsQ0FBQTFCLENBQUEsUUFBQUEsQ0FBQSxPQUFBaUIsT0FBQSxDQUFBUixNQUFBLENBQUFSLENBQUEsT0FBQTJCLE9BQUEsV0FBQTVCLENBQUEsUUFBQTZCLGdCQUFBLGFBQUEvQixDQUFBLEVBQUFFLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFTLE1BQUEsQ0FBQXFCLHlCQUFBLEdBQUFyQixNQUFBLENBQUFzQixnQkFBQSxDQUFBakMsQ0FBQSxFQUFBVyxNQUFBLENBQUFxQix5QkFBQSxDQUFBN0IsQ0FBQSxLQUFBZ0IsT0FBQSxDQUFBUixNQUFBLENBQUFSLENBQUEsR0FBQTJCLE9BQUEsV0FBQTVCLENBQUEsSUFBQVMsTUFBQSxDQUFBQyxjQUFBLENBQUFaLENBQUEsRUFBQUUsQ0FBQSxFQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFWLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUYsQ0FBQTtBQUFBLFNBQUFrQyxXQUFBL0IsQ0FBQSxFQUFBbUIsQ0FBQSxFQUFBdEIsQ0FBQSxXQUFBc0IsQ0FBQSxPQUFBYSxnQkFBQSxhQUFBYixDQUFBLE9BQUFjLDJCQUFBLGFBQUFqQyxDQUFBLEVBQUFrQyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQWpCLENBQUEsRUFBQXRCLENBQUEsWUFBQW1DLGdCQUFBLGFBQUFoQyxDQUFBLEVBQUFxQyxXQUFBLElBQUFsQixDQUFBLENBQUFJLEtBQUEsQ0FBQXZCLENBQUEsRUFBQUgsQ0FBQTtBQUFBLFNBQUFxQywwQkFBQSxjQUFBbEMsQ0FBQSxJQUFBc0MsT0FBQSxDQUFBQyxTQUFBLENBQUFDLE9BQUEsQ0FBQTNCLElBQUEsQ0FBQXNCLE9BQUEsQ0FBQUMsU0FBQSxDQUFBRSxPQUFBLGlDQUFBdEMsQ0FBQSxhQUFBa0MseUJBQUEsWUFBQUEsMEJBQUEsYUFBQWxDLENBQUE7QUF5REE7QUFDQTtBQUNBOztBQWtDQSxJQUFNeUMsa0JBQWtCLEdBQUc7RUFDekIsVUFBUUMsWUFBSztFQUNiQyxJQUFJLEVBQUVDLGVBQVE7RUFDZEMsR0FBRyxFQUFFQztBQUNQLENBQUM7QUFFRCxJQUFNQyxnQkFBZ0IsT0FBR0MscUJBQUcsRUFBQXhFLGVBQUEsS0FBQUEsZUFBQSxPQUFBeUUsdUJBQUEsMkdBRWYsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxXQUFXO0FBQUEsRUFJNUM7QUFFTSxJQUFNQyxnQkFBZ0IsR0FBQUMsT0FBQSxDQUFBRCxnQkFBQSxHQUFHRSw0QkFBTSxDQUFDQyxHQUFHLENBQUEvRSxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBd0UsdUJBQUEsMmhCQUs3QixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNNLGdCQUFnQixHQUFHLENBQUM7QUFBQSxHQWdCNUIsVUFBQVAsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDTyxvQkFBb0I7QUFBQSxHQUMzRFgsZ0JBQWdCLEVBS0EsVUFBQUcsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDTyxvQkFBb0I7QUFBQSxHQUMzRFgsZ0JBQWdCLENBRXJCO0FBRUQsSUFBTVksZ0JBQWdCLEdBQUdKLDRCQUFNLENBQUNDLEdBQUcsQ0FBQTlFLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUF1RSx1QkFBQSwrRUFJbEM7QUFFRCxJQUFNVyxZQUFZLEdBQUdMLDRCQUFNLENBQUNDLEdBQUcsQ0FBQTdFLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFzRSx1QkFBQSw4SkFDcEIsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDVSxZQUFZO0FBQUEsR0FHN0IsVUFBQVgsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDVyxrQkFBa0I7QUFBQSxFQVFyRDtBQUVNLElBQU1DLFdBQVcsR0FBQVQsT0FBQSxDQUFBUyxXQUFBLEdBQUdSLDRCQUFNLENBQUNDLEdBQUcsQ0FBQTVFLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFxRSx1QkFBQSxzRkFFZixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNhLHFCQUFxQjtBQUFBLEVBRS9EO0FBRU0sSUFBTUMsV0FBVyxHQUFBWCxPQUFBLENBQUFXLFdBQUEsR0FBR1YsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFDVSxLQUFLLENBQUM7RUFDMUNDLFNBQVMsRUFBRTtBQUNiLENBQUMsQ0FBQyxDQUFBdEYsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQW9FLHVCQUFBLDRLQUNvQixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDa0IsS0FBSztBQUFBLEdBS3hCLFVBQUFsQixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNrQixTQUFTO0FBQUEsRUFHL0M7QUFFRCxJQUFNQyxxQkFBcUIsR0FBR2YsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBMUUsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQW1FLHVCQUFBLG9HQUt2QztBQUVELElBQU1zQixzQkFBc0IsR0FBR2hCLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXpFLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFrRSx1QkFBQSw0TkFPOUIsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDcUIsVUFBVTtBQUFBLEVBSXpDO0FBRUQsSUFBTUMsV0FBVyxHQUFHLElBQUFsQiw0QkFBTSxFQUFDbUIsd0JBQUssQ0FBQyxDQUFDQyxVQUFVLENBQUM7RUFBQ0MsaUJBQWlCLEVBQWpCQTtBQUFpQixDQUFDLENBQUMsQ0FBQTVGLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFpRSx1QkFBQSxxRkFJdEQsVUFBQUMsS0FBSztFQUFBLElBQUEyQixZQUFBO0VBQUEsUUFBQUEsWUFBQSxHQUFJM0IsS0FBSyxDQUFDNEIsS0FBSyxjQUFBRCxZQUFBLGNBQUFBLFlBQUEsR0FBSSxNQUFNO0FBQUEsR0FDekIsVUFBQTNCLEtBQUs7RUFBQSxJQUFBNkIsZ0JBQUE7RUFBQSxRQUFBQSxnQkFBQSxHQUFJN0IsS0FBSyxDQUFDOEIsU0FBUyxjQUFBRCxnQkFBQSxjQUFBQSxnQkFBQSxHQUFJLEtBQUs7QUFBQSxHQUM3QixVQUFBN0IsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQytCLFFBQVEsR0FBRyxNQUFNLEdBQUcsS0FBSztBQUFBLENBQUMsQ0FDN0Q7QUFFRCxJQUFNQyxTQUFTLEdBQUczQiw0QkFBTSxDQUFDQyxHQUFHLENBQUNtQixVQUFVLENBQUM7RUFBQ0MsaUJBQWlCLEVBQWpCQTtBQUFpQixDQUFDLENBQUMsQ0FBQTNGLGlCQUFBLEtBQUFBLGlCQUFBLE9BQUFnRSx1QkFBQSxnUEFDeEQsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDZ0MsS0FBSztBQUFBLEdBR25CLFVBQUFqQyxLQUFLO0VBQUEsSUFBQWtDLGFBQUE7RUFBQSxRQUFBQSxhQUFBLEdBQUlsQyxLQUFLLENBQUM0QixLQUFLLGNBQUFNLGFBQUEsY0FBQUEsYUFBQSxHQUFJLE1BQU07QUFBQSxHQUN6QixVQUFBbEMsS0FBSztFQUFBLElBQUFtQyxpQkFBQTtFQUFBLFFBQUFBLGlCQUFBLEdBQUluQyxLQUFLLENBQUM4QixTQUFTLGNBQUFLLGlCQUFBLGNBQUFBLGlCQUFBLEdBQUksS0FBSztBQUFBLEVBT2hEO0FBUUQsSUFBTUMsWUFBWSxHQUFHLElBQUFDLGlDQUFlLEVBQW9CLFVBQUFDLElBQUE7RUFBQSxJQUFFQyxRQUFRLEdBQUFELElBQUEsQ0FBUkMsUUFBUTtJQUFFQyxTQUFTLEdBQUFGLElBQUEsQ0FBVEUsU0FBUztFQUFBLG9CQUMzRWpJLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3RDLGdCQUFnQjtJQUFDYyxTQUFTLEVBQUUsSUFBQXlCLHNCQUFVLEVBQUMsZ0NBQWdDLEVBQUU7TUFBQ0MsT0FBTyxFQUFFSDtJQUFTLENBQUM7RUFBRSxHQUM3RkQsUUFDZSxDQUFDO0FBQUEsQ0FDcEIsQ0FBQztBQU9GO0FBQ0EsSUFBTUssd0JBQXdCLEdBQUcsSUFBQUMsbUNBQWlCLEVBQ2hELFVBQUFDLEtBQUE7RUFBQSxJQUFFUCxRQUFRLEdBQUFPLEtBQUEsQ0FBUlAsUUFBUTtJQUFFdEIsU0FBUyxHQUFBNkIsS0FBQSxDQUFUN0IsU0FBUztFQUFBLG9CQUFNMUcsTUFBQSxZQUFBa0ksYUFBQTtJQUFLeEIsU0FBUyxFQUFFQTtFQUFVLEdBQUVzQixRQUFjLENBQUM7QUFBQSxDQUN4RSxDQUFDO0FBSU0sSUFBTVEsVUFBVSxHQUFBM0MsT0FBQSxDQUFBMkMsVUFBQSxHQUFHLElBQUFDLGdDQUFjLEVBQWtCLFVBQUFDLEtBQUE7RUFBQSxJQUFFaEMsU0FBUyxHQUFBZ0MsS0FBQSxDQUFUaEMsU0FBUztJQUFFc0IsUUFBUSxHQUFBVSxLQUFBLENBQVJWLFFBQVE7RUFBQSxvQkFDN0VoSSxNQUFBLFlBQUFrSSxhQUFBLENBQUNoQyxnQkFBZ0I7SUFBQ1EsU0FBUyxFQUFFQTtFQUFVLEdBQUVzQixRQUEyQixDQUFDO0FBQUEsQ0FDdEUsQ0FBQztBQVdLLElBQU1XLGlCQUFpQixHQUFBOUMsT0FBQSxDQUFBOEMsaUJBQUEsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBQyxLQUFBLEVBT0E7RUFBQSxJQU41QkMsS0FBSyxHQUFBRCxLQUFBLENBQUxDLEtBQUs7SUFDTEMsUUFBUSxHQUFBRixLQUFBLENBQVJFLFFBQVE7SUFDUkMsRUFBRSxHQUFBSCxLQUFBLENBQUZHLEVBQUU7SUFDRjFCLEtBQUssR0FBQXVCLEtBQUEsQ0FBTHZCLEtBQUs7SUFDTEUsU0FBUyxHQUFBcUIsS0FBQSxDQUFUckIsU0FBUztJQUNUeUIsUUFBUSxHQUFBSixLQUFBLENBQVJJLFFBQVE7RUFFUixJQUFBQyxTQUFBLEdBQStCLElBQUFDLGVBQVEsRUFBQ0wsS0FBSyxDQUFDO0lBQUFNLFVBQUEsT0FBQUMsZUFBQSxhQUFBSCxTQUFBO0lBQXZDSSxVQUFVLEdBQUFGLFVBQUE7SUFBRUcsUUFBUSxHQUFBSCxVQUFBO0VBQzNCLElBQU1JLFFBQVEsR0FBRyxJQUFBQyxhQUFNLEVBQUMsSUFBSSxDQUFDO0VBQzdCLElBQUFDLGdCQUFTLEVBQUMsWUFBTTtJQUNkSCxRQUFRLENBQUNULEtBQUssQ0FBQztFQUNqQixDQUFDLEVBQUUsQ0FBQ0EsS0FBSyxDQUFDLENBQUM7RUFFWCxJQUFNYSxTQUFTLEdBQUcsSUFBQUMsa0JBQVcsRUFDM0IsVUFBQXZILENBQUMsRUFBSTtJQUNILFFBQVFBLENBQUMsQ0FBQ3dILE9BQU87TUFDZixLQUFLQyxtQkFBUSxDQUFDQyxZQUFZO01BQzFCLEtBQUtELG1CQUFRLENBQUNFLGFBQWE7UUFDekJqQixRQUFRLENBQUNPLFVBQVUsQ0FBQztRQUNwQixJQUFJRSxRQUFRLEtBQUssSUFBSSxFQUFFO1VBQ3JCO1VBQ0FBLFFBQVEsYUFBUkEsUUFBUSxlQUFSQSxRQUFRLENBQUVTLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLENBQUM7UUFDMUI7UUFDQTtNQUNGO1FBQ0U7SUFDSjtFQUNGLENBQUMsRUFDRCxDQUFDbkIsUUFBUSxFQUFFTyxVQUFVLENBQ3ZCLENBQUM7RUFFRCxJQUFNYSxTQUFTLEdBQUcsSUFBQVAsa0JBQVcsRUFBQyxVQUFBdkgsQ0FBQztJQUFBLE9BQUlrSCxRQUFRLENBQUNsSCxDQUFDLENBQUMrSCxNQUFNLENBQUN0QixLQUFLLENBQUM7RUFBQSxHQUFFLENBQUNTLFFBQVEsQ0FBQyxDQUFDO0VBQ3hFLElBQU1jLE1BQU0sR0FBRyxJQUFBVCxrQkFBVyxFQUFDO0lBQUEsT0FBTWIsUUFBUSxDQUFDTyxVQUFVLENBQUM7RUFBQSxHQUFFLENBQUNQLFFBQVEsRUFBRU8sVUFBVSxDQUFDLENBQUM7RUFFOUUsT0FBT0wsUUFBUSxnQkFDYmhKLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ2xCLFdBQVc7SUFDVnFELEdBQUcsRUFBRWQsUUFBUztJQUNkN0MsU0FBUyxFQUFDLDJCQUEyQjtJQUNyQ21DLEtBQUssRUFBRVEsVUFBVztJQUNsQlAsUUFBUSxFQUFFb0IsU0FBVTtJQUNwQkUsTUFBTSxFQUFFQSxNQUFPO0lBQ2ZWLFNBQVMsRUFBRUEsU0FBVTtJQUNyQlgsRUFBRSxFQUFFQSxFQUFHO0lBQ1AxQixLQUFLLEVBQUVBLEtBQU07SUFDYkUsU0FBUyxFQUFFQSxTQUFVO0lBQ3JCK0MsU0FBUztFQUFBLENBQ1YsQ0FBQyxnQkFFRnRLLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ1QsU0FBUztJQUFDZixTQUFTLEVBQUMsaUNBQWlDO0lBQUNXLEtBQUssRUFBRUEsS0FBTTtJQUFDRSxTQUFTLEVBQUVBO0VBQVUsR0FDdkZzQixLQUNRLENBQ1o7QUFDSCxDQUFDO0FBRUQsSUFBTTBCLElBQUksR0FBR3pFLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXRFLGlCQUFBLEtBQUFBLGlCQUFBLE9BQUErRCx1QkFBQSxnSEFFRyxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNVLFlBQVk7QUFBQSxFQUcxRDtBQUVELElBQU1vRSxnQkFBZ0IsR0FBRzFFLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXJFLGlCQUFBLEtBQUFBLGlCQUFBLE9BQUE4RCx1QkFBQSxvSEFLbEM7QUFFRCxJQUFNaUYsbUJBQW1CLEdBQUczRSw0QkFBTSxDQUFDQyxHQUFHLENBQUFwRSxpQkFBQSxLQUFBQSxpQkFBQSxPQUFBNkQsdUJBQUEsNENBRXJDO0FBRU0sSUFBTWtGLGtCQUFxRCxHQUFBN0UsT0FBQSxDQUFBNkUsa0JBQUEsR0FBRyxTQUF4REEsa0JBQXFEQSxDQUFBQyxLQUFBLEVBTTVEO0VBQUEsSUFMSkMsSUFBSSxHQUFBRCxLQUFBLENBQUpDLElBQUk7SUFDSkMsTUFBTSxHQUFBRixLQUFBLENBQU5FLE1BQU07SUFDTkMsS0FBSyxHQUFBSCxLQUFBLENBQUxHLEtBQUs7SUFDTEMsWUFBWSxHQUFBSixLQUFBLENBQVpJLFlBQVk7SUFDWi9CLFFBQVEsR0FBQTJCLEtBQUEsQ0FBUjNCLFFBQVE7RUFFUixJQUFNZ0MsVUFBVSxHQUFHLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDTixJQUFJLENBQUNPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJTCxLQUFLLEtBQUssQ0FBQztFQUNsRSxJQUFNTSxVQUFVLEdBQUcsQ0FBQ0gsTUFBTSxDQUFDQyxRQUFRLENBQUNOLElBQUksQ0FBQ08sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUlOLE1BQU07RUFDN0QsSUFBTVEsWUFBWSxHQUFHLElBQUExQixrQkFBVyxFQUM5QixVQUFBMkIsR0FBRyxFQUFJO0lBQ0wsSUFBSXRDLFFBQVEsSUFBSStCLFlBQVksRUFBRUEsWUFBWSxDQUFDUSxVQUFVLENBQUNELEdBQUcsQ0FBQyxFQUFFUixLQUFLLEdBQUcsQ0FBQyxDQUFDO0VBQ3hFLENBQUMsRUFDRCxDQUFDQyxZQUFZLEVBQUVELEtBQUssRUFBRTlCLFFBQVEsQ0FDaEMsQ0FBQztFQUNELElBQU13QyxhQUFhLEdBQUcsSUFBQTdCLGtCQUFXLEVBQy9CLFVBQUEyQixHQUFHLEVBQUk7SUFDTCxJQUFJdEMsUUFBUSxJQUFJK0IsWUFBWSxFQUFFQSxZQUFZLENBQUNRLFVBQVUsQ0FBQ0QsR0FBRyxDQUFDLEVBQUVSLEtBQUssQ0FBQztFQUNwRSxDQUFDLEVBQ0QsQ0FBQ0MsWUFBWSxFQUFFRCxLQUFLLEVBQUU5QixRQUFRLENBQ2hDLENBQUM7RUFFRCxvQkFDRWhKLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3NDLGdCQUFnQixxQkFDZnhLLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ1MsaUJBQWlCO0lBQ2hCRSxLQUFLLEVBQUVtQyxVQUFVLEdBQUcsTUFBTSxHQUFHSixJQUFJLENBQUNPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQ00sUUFBUSxDQUFDLENBQUU7SUFDdkQxQyxFQUFFLHlCQUFBMkMsTUFBQSxDQUF5QlosS0FBSyxVQUFRO0lBQ3hDekQsS0FBSyxFQUFDLE1BQU07SUFDWkUsU0FBUyxFQUFDLEtBQUs7SUFDZnlCLFFBQVEsRUFBRWdDLFVBQVUsR0FBRyxLQUFLLEdBQUdoQyxRQUFTO0lBQ3hDRixRQUFRLEVBQUV1QztFQUFhLENBQ3hCLENBQUMsZUFDRnJMLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3FDLElBQUksTUFBRSxDQUFDLGVBQ1J2SyxNQUFBLFlBQUFrSSxhQUFBLENBQUNTLGlCQUFpQjtJQUNoQkUsS0FBSyxFQUFFdUMsVUFBVSxHQUFHLE1BQU0sR0FBR1IsSUFBSSxDQUFDTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNNLFFBQVEsQ0FBQyxDQUFFO0lBQ3ZEMUMsRUFBRSx5QkFBQTJDLE1BQUEsQ0FBeUJaLEtBQUssV0FBUztJQUN6Q3pELEtBQUssRUFBQyxNQUFNO0lBQ1pFLFNBQVMsRUFBQyxLQUFLO0lBQ2Z1QixRQUFRLEVBQUUwQyxhQUFjO0lBQ3hCeEMsUUFBUSxFQUFFb0MsVUFBVSxHQUFHLEtBQUssR0FBR3BDO0VBQVMsQ0FDekMsQ0FDZSxDQUFDO0FBRXZCLENBQUM7QUFFTSxJQUFNMkMsWUFBWSxHQUFBOUYsT0FBQSxDQUFBOEYsWUFBQSxHQUFHLFNBQWZBLFlBQVlBLENBQUFDLEtBQUE7RUFBQSxJQUFLQyxVQUFVLEdBQUFELEtBQUEsQ0FBVkMsVUFBVTtJQUFFQyxhQUFhLEdBQUFGLEtBQUEsQ0FBYkUsYUFBYTtFQUFBLG9CQUNyRDlMLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQy9CLFlBQVk7SUFBQzRGLE9BQU8sRUFBRUYsVUFBVztJQUFDbkYsU0FBUyxFQUFDO0VBQVUsZ0JBQ3JEMUcsTUFBQSxZQUFBa0ksYUFBQSxDQUFDNEQsYUFBYTtJQUFDRSxNQUFNLEVBQUM7RUFBTSxDQUFFLENBQ2xCLENBQUM7QUFBQSxDQUNoQjtBQUVNLElBQU1DLGVBQWUsR0FBQXBHLE9BQUEsQ0FBQW9HLGVBQUEsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQUMsS0FBQTtFQUFBLElBQUtDLGFBQWEsR0FBQUQsS0FBQSxDQUFiQyxhQUFhO0lBQUVMLGFBQWEsR0FBQUksS0FBQSxDQUFiSixhQUFhO0VBQUEsb0JBQzNEOUwsTUFBQSxZQUFBa0ksYUFBQSxDQUFDL0IsWUFBWTtJQUFDNEYsT0FBTyxFQUFFSSxhQUFjO0lBQUN6RixTQUFTLEVBQUM7RUFBVSxnQkFDeEQxRyxNQUFBLFlBQUFrSSxhQUFBLENBQUM0RCxhQUFhO0lBQUNFLE1BQU0sRUFBQztFQUFNLENBQUUsQ0FDbEIsQ0FBQztBQUFBLENBQ2hCO0FBRU0sSUFBTUksa0JBQXFELEdBQUF2RyxPQUFBLENBQUF1RyxrQkFBQSxHQUFHLFNBQXhEQSxrQkFBcURBLENBQUFDLEtBQUEsRUFhNUQ7RUFBQSxJQVpKdkIsS0FBSyxHQUFBdUIsS0FBQSxDQUFMdkIsS0FBSztJQUNMN0MsU0FBUyxHQUFBb0UsS0FBQSxDQUFUcEUsU0FBUztJQUNUdEIsS0FBSyxHQUFBMEYsS0FBQSxDQUFMMUYsS0FBSztJQUNMMkYsV0FBVyxHQUFBRCxLQUFBLENBQVhDLFdBQVc7SUFDWEMsYUFBYSxHQUFBRixLQUFBLENBQWJFLGFBQWE7SUFDYkMsaUJBQWlCLEdBQUFILEtBQUEsQ0FBakJHLGlCQUFpQjtJQUFBQyxpQkFBQSxHQUFBSixLQUFBLENBQ2pCSyxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsaUJBQUEsY0FBR3pILGtCQUFrQixHQUFBeUgsaUJBQUE7SUFDaENFLGFBQWEsR0FBQU4sS0FBQSxDQUFiTSxhQUFhO0lBQ2JDLGFBQWEsR0FBQVAsS0FBQSxDQUFiTyxhQUFhO0lBQ2JDLFFBQVEsR0FBQVIsS0FBQSxDQUFSUSxRQUFRO0lBQ1JDLEtBQUssR0FBQVQsS0FBQSxDQUFMUyxLQUFLO0lBQ0xDLGdCQUFnQixHQUFBVixLQUFBLENBQWhCVSxnQkFBZ0I7RUFFaEIsSUFBTUMsYUFBYSxHQUFHLElBQUFyRCxrQkFBVyxFQUFDO0lBQUEsT0FBTW9ELGdCQUFnQixDQUFDakMsS0FBSyxDQUFDO0VBQUEsR0FBRSxDQUFDaUMsZ0JBQWdCLEVBQUVqQyxLQUFLLENBQUMsQ0FBQztFQUMzRixJQUFNbUMsWUFBWSxHQUFHLElBQUF0RCxrQkFBVyxFQUFDLFVBQUF1RCxDQUFDO0lBQUEsT0FBSVgsYUFBYSxDQUFDekIsS0FBSyxFQUFFb0MsQ0FBQyxDQUFDO0VBQUEsR0FBRSxDQUFDWCxhQUFhLEVBQUV6QixLQUFLLENBQUMsQ0FBQztFQUN0RixJQUFNcUIsYUFBYSxHQUFHLElBQUF4QyxrQkFBVyxFQUFDO0lBQUEsT0FBTWtELFFBQVEsQ0FBQy9CLEtBQUssQ0FBQztFQUFBLEdBQUUsQ0FBQytCLFFBQVEsRUFBRS9CLEtBQUssQ0FBQyxDQUFDO0VBQzNFLElBQU1lLFVBQVUsR0FBRyxJQUFBbEMsa0JBQVcsRUFBQztJQUFBLE9BQU1tRCxLQUFLLENBQUNoQyxLQUFLLENBQUM7RUFBQSxHQUFFLENBQUNnQyxLQUFLLEVBQUVoQyxLQUFLLENBQUMsQ0FBQztFQUNsRSxJQUFNcUMsWUFBWSxHQUFHLENBQUNiLFdBQVc7RUFFakMsb0JBQ0V0TSxNQUFBLFlBQUFrSSxhQUFBLENBQUNMLFlBQVk7SUFBQ2lELEtBQUssRUFBRUEsS0FBTTtJQUFDN0MsU0FBUyxFQUFFQTtFQUFVLGdCQUMvQ2pJLE1BQUEsWUFBQWtJLGFBQUE7SUFBS3hCLFNBQVMsRUFBQztFQUE0QixnQkFDekMxRyxNQUFBLFlBQUFrSSxhQUFBLENBQUNNLFVBQVU7SUFBQzlCLFNBQVMsRUFBQztFQUFvQixnQkFDeEMxRyxNQUFBLFlBQUFrSSxhQUFBLENBQUN3RSxXQUFXLENBQUN4SCxJQUFJO0lBQUM4RyxNQUFNLEVBQUM7RUFBTSxDQUFFLENBQ3ZCLENBQUMsZUFDYmhNLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQzFCLFdBQVc7SUFBQ0csS0FBSyxFQUFFQSxLQUFNO0lBQUNvRixPQUFPLEVBQUVpQjtFQUFjLENBQUUsQ0FBQyxFQUNwREcsWUFBWSxnQkFDWG5OLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3VDLG1CQUFtQixxQkFDbEJ6SyxNQUFBLFlBQUFrSSxhQUFBLENBQUNTLGlCQUFpQjtJQUNoQkUsS0FBSyxFQUFFbEMsS0FBSyxDQUFDeUcsV0FBVyxDQUFDLENBQUU7SUFDM0J0RSxRQUFRLEVBQUVtRSxZQUFhO0lBQ3ZCbEUsRUFBRSx1QkFBQTJDLE1BQUEsQ0FBdUJaLEtBQUssQ0FBRztJQUNqQzlCLFFBQVE7SUFDUnpCLFNBQVMsRUFBQyxNQUFNO0lBQ2hCRixLQUFLLEVBQUM7RUFBTSxDQUNiLENBQ2tCLENBQUMsR0FDcEIsSUFBSSxFQUNQLElBQUFnRywyQkFBb0IsRUFBQ2YsV0FBVyxDQUFDLGdCQUNoQ3RNLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3dDLGtCQUFrQjtJQUNqQkUsSUFBSSxFQUFFMEIsV0FBVyxDQUFDeEIsS0FBSyxDQUFFO0lBQ3pCRCxNQUFNLEVBQUVDLEtBQUssS0FBS3dCLFdBQVcsQ0FBQ3JJLE1BQU0sR0FBRyxDQUFFO0lBQ3pDNkcsS0FBSyxFQUFFQSxLQUFNO0lBQ2JDLFlBQVksRUFBRXlCLGlCQUFrQjtJQUNoQ3hELFFBQVE7RUFBQSxDQUNULENBQUMsR0FDQSxJQUNELENBQUMsZUFDTmhKLE1BQUEsWUFBQWtJLGFBQUE7SUFBS3hCLFNBQVMsRUFBQztFQUE2QixHQUN6QyxDQUFDaUcsYUFBYSxnQkFDYjNNLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3lELFlBQVk7SUFBQ0UsVUFBVSxFQUFFQSxVQUFXO0lBQUNDLGFBQWEsRUFBRVksV0FBVyxDQUFDdEg7RUFBSSxDQUFFLENBQUMsR0FDdEUsSUFBSSxFQUNQLENBQUN3SCxhQUFhLGdCQUNiNU0sTUFBQSxZQUFBa0ksYUFBQSxDQUFDK0QsZUFBZTtJQUFDRSxhQUFhLEVBQUVBLGFBQWM7SUFBQ0wsYUFBYSxFQUFFWSxXQUFXO0VBQVEsQ0FBRSxDQUFDLEdBQ2xGLElBQ0QsQ0FDTyxDQUFDO0FBRW5CLENBQUM7QUFFRCxJQUFNWSxtQ0FBbUMsR0FBR3hILDRCQUFNLENBQUNDLEdBQUcsQ0FBQ1UsS0FBSyxDQUFDO0VBQzNEQyxTQUFTLEVBQUU7QUFDYixDQUFDLENBQUMsQ0FBQTlFLGlCQUFBLEtBQUFBLGlCQUFBLE9BQUE0RCx1QkFBQSxnTUFFUyxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNxQixVQUFVO0FBQUEsRUFPekM7QUFHRCxJQUFNd0csNEJBQTRCLEdBQUd6SCw0QkFBTSxDQUFDQyxHQUFHLENBQUFsRSxpQkFBQSxLQUFBQSxpQkFBQSxPQUFBMkQsdUJBQUEsNE1BRzVCLFVBQUFDLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUMrSCxRQUFRLEdBQUcsRUFBRSxHQUFHLFlBQVk7QUFBQSxDQUFDLENBTS9EO0FBR0QsSUFBTUMscUJBQXFCLEdBQUczSCw0QkFBTSxDQUFDQyxHQUFHLENBQUFqRSxpQkFBQSxLQUFBQSxpQkFBQSxPQUFBMEQsdUJBQUEscUdBSTNCLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ00sZ0JBQWdCO0FBQUEsR0FDdkMsVUFBQVAsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQzRCLEtBQUs7QUFBQSxFQUM5QjtBQUdELElBQU1xRyxxQkFBcUIsR0FBRyxJQUFBNUgsNEJBQU0sRUFBQzJILHFCQUFxQixDQUFDLENBQUExTCxpQkFBQSxLQUFBQSxpQkFBQSxPQUFBeUQsdUJBQUEsZ0xBQ2hELFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUM0QixLQUFLO0FBQUEsR0FDZixVQUFBNUIsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ3VHLE1BQU07QUFBQSxHQUtiLFVBQUF2RyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNNLGdCQUFnQjtBQUFBLEVBRTVEO0FBRUQsSUFBTTJILG9CQUFvQixHQUFHN0gsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBL0QsaUJBQUEsS0FBQUEsaUJBQUEsT0FBQXdELHVCQUFBLHlPQUk1QixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNxQixVQUFVO0FBQUEsRUFTekM7QUFFRCxJQUFNNkcsb0JBQW9CLEdBQUc5SCw0QkFBTSxDQUFDQyxHQUFHLENBQUE5RCxpQkFBQSxLQUFBQSxpQkFBQSxPQUFBdUQsdUJBQUEsaU9BV3RDO0FBRUQsSUFBTXFJLHdCQUF3QixHQUFHLEVBQUU7QUFFbkMsSUFBTUMsMEJBQTBCLGdCQUFHQyxpQkFBSyxDQUFDQyxhQUFhLENBQUM7RUFDckRDLFlBQVksRUFBRSxTQUFkQSxZQUFZQSxDQUFBO0lBQUEsT0FBUSxJQUFJO0VBQUE7RUFDeEJDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO0lBQUEsT0FBUSxJQUFJO0VBQUE7QUFDckIsQ0FBQyxDQUFDOztBQUVGO0FBQ0E7QUFBQSxJQUNNQyxvQkFBb0IsMEJBQUFDLGFBQUE7RUFDeEIsU0FBQUQscUJBQVkxSSxLQUFLLEVBQUU7SUFBQSxJQUFBNEksZ0JBQUEsbUJBQUFGLG9CQUFBO0lBQUEsT0FBQTdKLFVBQUEsT0FBQTZKLG9CQUFBLEdBQ1gxSSxLQUFLO0VBQ2I7RUFBQyxJQUFBNkksVUFBQSxhQUFBSCxvQkFBQSxFQUFBQyxhQUFBO0VBQUEsV0FBQUcsYUFBQSxhQUFBSixvQkFBQTtJQUFBSyxHQUFBO0lBQUEzRixLQUFBLEVBRUQsU0FBQTRGLE1BQU1BLENBQUEsRUFBRztNQUFBLElBQUFDLEtBQUE7TUFDUCxvQkFDRTFPLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQWxJLE1BQUEsWUFBQTJPLFFBQUEscUJBQ0UzTyxNQUFBLFlBQUFrSSxhQUFBLENBQUM0RiwwQkFBMEIsQ0FBQ2MsUUFBUSxRQUNqQyxVQUFBQyxPQUFPO1FBQUEsb0JBQ043TyxNQUFBLFlBQUFrSSxhQUFBLENBQUFsSSxNQUFBLFlBQUEyTyxRQUFBLHFCQUNFM08sTUFBQSxZQUFBa0ksYUFBQSxDQUFDeUYsb0JBQW9CLHFCQUNuQjNOLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQzVILGtCQUFBLENBQUF3TyxNQUFNO1VBQUNDLElBQUk7VUFBQ0MsSUFBSSxFQUFDLE1BQU07VUFBQ2pELE9BQU8sRUFBRThDLE9BQU8sQ0FBQ1o7UUFBYSxHQUFDLGlCQUVoRCxDQUFDLGVBQ1RqTyxNQUFBLFlBQUFrSSxhQUFBLENBQUM1SCxrQkFBQSxDQUFBd08sTUFBTTtVQUFDQyxJQUFJO1VBQUNDLElBQUksRUFBQyxNQUFNO1VBQUNqRCxPQUFPLEVBQUU4QyxPQUFPLENBQUNYO1FBQVEsR0FBQyxPQUUzQyxDQUNZLENBQUMsZUFDdkJsTyxNQUFBLFlBQUFrSSxhQUFBLENBQUM1QixXQUFXLE1BQUUsQ0FBQyxlQUNmdEcsTUFBQSxZQUFBa0ksYUFBQSxDQUFDekgsYUFBQSxXQUFZLEVBQUtpTyxLQUFJLENBQUNqSixLQUFRLENBQy9CLENBQUM7TUFBQSxDQUU4QixDQUNyQyxDQUFDO0lBRVA7RUFBQztBQUFBLEVBMUJnQ3dKLHdCQUFZO0FBd0MvQztBQUNPLElBQU1DLG1CQUF1RCxHQUFBckosT0FBQSxDQUFBcUosbUJBQUEsR0FBRyxTQUExREEsbUJBQXVEQSxDQUFBQyxLQUFBLEVBU3BDO0VBQUEsSUFSOUJyRSxLQUFLLEdBQUFxRSxLQUFBLENBQUxyRSxLQUFLO0lBQ0xzRSxjQUFjLEdBQUFELEtBQUEsQ0FBZEMsY0FBYztJQUNkQyxTQUFTLEdBQUFGLEtBQUEsQ0FBVEUsU0FBUztJQUNUQyxnQkFBZ0IsR0FBQUgsS0FBQSxDQUFoQkcsZ0JBQWdCO0lBQ2hCQyxtQkFBbUIsR0FBQUosS0FBQSxDQUFuQkksbUJBQW1CO0lBQ25CQyxrQkFBa0IsR0FBQUwsS0FBQSxDQUFsQkssa0JBQWtCO0lBQ2xCQyx1QkFBdUIsR0FBQU4sS0FBQSxDQUF2Qk0sdUJBQXVCO0lBQUFDLGNBQUEsR0FBQVAsS0FBQSxDQUN2Qm5HLFFBQVE7SUFBUkEsUUFBUSxHQUFBMEcsY0FBQSxjQUFHLElBQUksR0FBQUEsY0FBQTtFQUVmLElBQUFDLFVBQUEsR0FBMEMsSUFBQXpHLGVBQVEsRUFBQyxLQUFLLENBQUM7SUFBQTBHLFVBQUEsT0FBQXhHLGVBQUEsYUFBQXVHLFVBQUE7SUFBbERFLGFBQWEsR0FBQUQsVUFBQTtJQUFFRSxnQkFBZ0IsR0FBQUYsVUFBQTtFQUV0QyxJQUFNRyxnQkFBZ0IsR0FBRyxJQUFBcEcsa0JBQVcsRUFDbEMsVUFBQWQsS0FBSyxFQUFJO0lBQ1AsSUFBTW1ILGdCQUFnQixHQUFHLElBQUFDLG9CQUFPLEVBQUNiLGNBQWMsQ0FBQztJQUNoRCxJQUFNYyxLQUFLLEdBQUcsSUFBQUMsa0JBQUksRUFBQ0gsZ0JBQWdCLENBQUN0RSxNQUFNLENBQUMsSUFBQXVFLG9CQUFPLEVBQUNwSCxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNEeUcsZ0JBQWdCLGFBQWhCQSxnQkFBZ0IsZUFBaEJBLGdCQUFnQixDQUFHWSxLQUFLLEVBQUVwRixLQUFLLENBQUM7RUFDbEMsQ0FBQyxFQUNELENBQUNzRSxjQUFjLEVBQUV0RSxLQUFLLEVBQUV3RSxnQkFBZ0IsQ0FDMUMsQ0FBQztFQUVELElBQU1jLGNBQWMsR0FBRyxJQUFBekcsa0JBQVcsRUFBQyxZQUFNO0lBQ3ZDbUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0VBQ3hCLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFNTyxlQUFlLEdBQUcsSUFBQTFHLGtCQUFXLEVBQUMsWUFBTTtJQUN4Q21HLGdCQUFnQixDQUFDLEtBQUssQ0FBQztFQUN6QixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sSUFBTVEsWUFBWSxHQUFHLElBQUEzRyxrQkFBVyxFQUM5QixVQUFBZCxLQUFLLEVBQUk7SUFDUDBHLG1CQUFtQixhQUFuQkEsbUJBQW1CLGVBQW5CQSxtQkFBbUIsQ0FBRzFHLEtBQUssRUFBRWlDLEtBQUssQ0FBQztFQUNyQyxDQUFDLEVBQ0QsQ0FBQ0EsS0FBSyxFQUFFeUUsbUJBQW1CLENBQzdCLENBQUM7RUFFRCxJQUFNckIsT0FBTyxHQUFHLElBQUF2RSxrQkFBVyxFQUFDLFlBQU07SUFDaEM2RixrQkFBa0IsYUFBbEJBLGtCQUFrQixlQUFsQkEsa0JBQWtCLENBQUcxRSxLQUFLLENBQUM7SUFDM0JnRixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDdkIsT0FBTyxJQUFJO0VBQ2IsQ0FBQyxFQUFFLENBQUNOLGtCQUFrQixFQUFFMUUsS0FBSyxDQUFDLENBQUM7RUFFL0IsSUFBTW1ELFlBQVksR0FBRyxJQUFBdEUsa0JBQVcsRUFBQyxZQUFNO0lBQ3JDOEYsdUJBQXVCLGFBQXZCQSx1QkFBdUIsZUFBdkJBLHVCQUF1QixDQUFHM0UsS0FBSyxDQUFDO0lBQ2hDZ0YsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3ZCLE9BQU8sSUFBSTtFQUNiLENBQUMsRUFBRSxDQUFDTCx1QkFBdUIsRUFBRTNFLEtBQUssQ0FBQyxDQUFDO0VBRXBDLG9CQUNFOUssTUFBQSxZQUFBa0ksYUFBQSxDQUFDb0YsbUNBQW1DLFFBQ2pDdEUsUUFBUSxpQkFBSWhKLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3JILE1BQUEsQ0FBQXdFLEdBQUc7SUFBQzJHLE1BQU0sRUFBQyxNQUFNO0lBQUNELE9BQU8sRUFBRXFFO0VBQWUsQ0FBRSxDQUFDLGVBQzNEcFEsTUFBQSxZQUFBa0ksYUFBQSxDQUFDcUYsNEJBQTRCO0lBQzNCQyxRQUFRLEVBQUU0QixjQUFjLENBQUNuTCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMrRSxRQUFTO0lBQ25EK0MsT0FBTyxFQUFFcUUsY0FBZTtJQUN4QixnQkFBUTtJQUNSLCtCQUFBMUUsTUFBQSxDQUE2QlosS0FBSztFQUFHLEdBRXBDc0UsY0FBYyxDQUFDbkwsTUFBTSxLQUFLLENBQUMsR0FDeEIsV0FBVyxHQUNYbUwsY0FBYyxDQUFDbkwsTUFBTSxLQUFLLENBQUMsR0FDM0JtTCxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQUExRCxNQUFBLENBQ2QwRCxjQUFjLENBQUNuTCxNQUFNLGNBQVcsRUFDdENtTCxjQUFjLENBQUNuTCxNQUFNLEdBQUcsQ0FBQyxpQkFDeEJqRSxNQUFBLFlBQUFrSSxhQUFBLENBQUM1SCxrQkFBQSxDQUFBaVEsT0FBTztJQUFDeEgsRUFBRSxxQkFBQTJDLE1BQUEsQ0FBcUJaLEtBQUssQ0FBRztJQUFDMEYsS0FBSyxFQUFDLEtBQUs7SUFBQ0MsV0FBVyxFQUFFO0VBQUssZ0JBQ3JFelEsTUFBQSxZQUFBa0ksYUFBQSxDQUFDMEYsb0JBQW9CLFFBQ2xCd0IsY0FBYyxDQUFDc0IsS0FBSyxDQUFDLENBQUMsRUFBRTdDLHdCQUF3QixDQUFDLENBQUM4QyxHQUFHLENBQUMsVUFBQzlILEtBQUssRUFBRXhGLENBQUM7SUFBQSxvQkFDOURyRCxNQUFBLFlBQUFrSSxhQUFBO01BQUtzRyxHQUFHLEVBQUVuTDtJQUFFLEdBQUV3RixLQUFXLENBQUM7RUFBQSxDQUMzQixDQUFDLEVBQ0R1RyxjQUFjLENBQUNuTCxNQUFNLEdBQUc0Six3QkFBd0IsaUJBQUk3TixNQUFBLFlBQUFrSSxhQUFBLGNBQUssS0FBUSxDQUM5QyxDQUNmLENBRWlCLENBQUMsRUFDOUJjLFFBQVEsaUJBQ1BoSixNQUFBLFlBQUFrSSxhQUFBLENBQUM3SCxTQUFBLFdBQVE7SUFBQ3VRLElBQUksRUFBRSxDQUFFO0lBQUNDLEdBQUcsRUFBRSxDQUFFO0lBQUNDLFFBQVEsRUFBRWpCLGFBQWM7SUFBQ2tCLE9BQU8sRUFBRVY7RUFBZ0IsR0FDMUVqQixjQUFjLENBQUNuTCxNQUFNLEdBQUcsQ0FBQyxpQkFDeEJqRSxNQUFBLFlBQUFrSSxhQUFBLENBQUN3RixxQkFBcUI7SUFBQ3JHLEtBQUssRUFBRSxHQUFJO0lBQUMyRSxNQUFNLEVBQUU7RUFBSSxnQkFDN0NoTSxNQUFBLFlBQUFrSSxhQUFBLENBQUMxSCxnQkFBQSxXQUFlO0lBQ2RrRyxTQUFTLEVBQUUsaUNBQWtDO0lBQzdDc0ssYUFBYSxFQUFFNUIsY0FBZTtJQUM5QjZCLFdBQVcsRUFBRSxFQUFHO0lBQ2hCQyxVQUFVLEVBQUVaLFlBQWE7SUFDekJ2RSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVEsSUFBSTtJQUFBLENBQUM7SUFDcEJvRix1QkFBdUIsRUFBRTtFQUFLLENBQy9CLENBQ29CLENBQ3hCLGVBQ0RuUixNQUFBLFlBQUFrSSxhQUFBLENBQUN1RixxQkFBcUI7SUFBQ3BHLEtBQUssRUFBRTtFQUFJLGdCQUNoQ3JILE1BQUEsWUFBQWtJLGFBQUE7SUFBS2tKLEtBQUssRUFBRTtNQUFDQyxRQUFRLEVBQUU7SUFBVTtFQUFFLGdCQUNqQ3JSLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQzRGLDBCQUEwQixDQUFDd0QsUUFBUTtJQUNsQ3pJLEtBQUssRUFBRTtNQUNMcUYsT0FBTyxFQUFQQSxPQUFPO01BQ1BELFlBQVksRUFBWkE7SUFDRjtFQUFFLGdCQUVGak8sTUFBQSxZQUFBa0ksYUFBQSxDQUFDM0gsVUFBQSxXQUFTO0lBQ1JnUixhQUFhLEVBQUU7TUFDYkMsT0FBTyxFQUFFLGVBQWU7TUFDeEI5SixLQUFLLEVBQUUsa0JBQWtCO01BQ3pCK0osUUFBUSxFQUFFLFlBQVk7TUFDdEJDLFVBQVUsRUFBRTtJQUNkLENBQUU7SUFDRkMsT0FBTyxFQUFFdEMsU0FBVTtJQUNuQjRCLFdBQVcsRUFBRSxRQUFTO0lBQ3RCbEIsZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUNuQzZCLG1CQUFtQixFQUFFekQsb0JBQXFCO0lBQzFDMEQsdUJBQXVCLEVBQUVDLHNCQUFTO0lBQ2xDQyxVQUFVLEVBQUUsSUFBSztJQUNqQkMsb0JBQW9CO0lBQ3BCaEIsYUFBYSxFQUFFNUI7RUFBZSxDQUMvQixDQUNrQyxDQUNsQyxDQUNnQixDQUNmLENBRXVCLENBQUM7QUFFMUMsQ0FBQztBQW1CTSxJQUFNNkMsNkJBQTJFLEdBQUFwTSxPQUFBLENBQUFvTSw2QkFBQSxHQUFHLFNBQTlFQSw2QkFBMkVBLENBQUFDLE1BQUEsRUFjOUM7RUFBQSxJQWJ4Q3BILEtBQUssR0FBQW9ILE1BQUEsQ0FBTHBILEtBQUs7SUFDTDdDLFNBQVMsR0FBQWlLLE1BQUEsQ0FBVGpLLFNBQVM7SUFDVHRCLEtBQUssR0FBQXVMLE1BQUEsQ0FBTHZMLEtBQUs7SUFDTHdMLFFBQVEsR0FBQUQsTUFBQSxDQUFSQyxRQUFRO0lBQUFDLGtCQUFBLEdBQUFGLE1BQUEsQ0FDUnhGLFdBQVc7SUFBWEEsV0FBVyxHQUFBMEYsa0JBQUEsY0FBR3BOLGtCQUFrQixHQUFBb04sa0JBQUE7SUFDaEN2RixRQUFRLEdBQUFxRixNQUFBLENBQVJyRixRQUFRO0lBQ1JELGFBQWEsR0FBQXNGLE1BQUEsQ0FBYnRGLGFBQWE7SUFDYkcsZ0JBQWdCLEdBQUFtRixNQUFBLENBQWhCbkYsZ0JBQWdCO0lBQ2hCdUMsZ0JBQWdCLEdBQUE0QyxNQUFBLENBQWhCNUMsZ0JBQWdCO0lBQ2hCQyxtQkFBbUIsR0FBQTJDLE1BQUEsQ0FBbkIzQyxtQkFBbUI7SUFDbkJDLGtCQUFrQixHQUFBMEMsTUFBQSxDQUFsQjFDLGtCQUFrQjtJQUNsQkMsdUJBQXVCLEdBQUF5QyxNQUFBLENBQXZCekMsdUJBQXVCO0lBQ3ZCSixTQUFTLEdBQUE2QyxNQUFBLENBQVQ3QyxTQUFTO0VBRVQsSUFBTUQsY0FBMEMsR0FBRyxJQUFBaUQsY0FBTyxFQUFDLFlBQU07SUFDL0QsSUFBSSxDQUFDRixRQUFRLElBQUksQ0FBQ0EsUUFBUSxDQUFDckgsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFO0lBQzVDLElBQU1qQyxLQUFLLEdBQUdzSixRQUFRLENBQUNySCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsSUFBTXdILE1BQU0sR0FBR0MsS0FBSyxDQUFDQyxPQUFPLENBQUMzSixLQUFLLENBQUMsR0FBR0EsS0FBSyxHQUFHQSxLQUFLLEtBQUssSUFBSSxHQUFHLENBQUNBLEtBQUssQ0FBQyxHQUFHLEVBQUU7SUFDM0UsT0FBT3lKLE1BQU07RUFDZixDQUFDLEVBQUUsQ0FBQ0gsUUFBUSxFQUFFckgsS0FBSyxDQUFDLENBQUM7RUFFckIsSUFBTWtDLGFBQWEsR0FBRyxJQUFBckQsa0JBQVcsRUFBQztJQUFBLE9BQU1vRCxnQkFBZ0IsQ0FBQ2pDLEtBQUssQ0FBQztFQUFBLEdBQUUsQ0FBQ2lDLGdCQUFnQixFQUFFakMsS0FBSyxDQUFDLENBQUM7RUFDM0YsSUFBTXFCLGFBQWEsR0FBRyxJQUFBeEMsa0JBQVcsRUFBQztJQUFBLE9BQU1rRCxRQUFRLENBQUMvQixLQUFLLENBQUM7RUFBQSxHQUFFLENBQUMrQixRQUFRLEVBQUUvQixLQUFLLENBQUMsQ0FBQztFQUUzRSxvQkFDRTlLLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ0wsWUFBWTtJQUFDaUQsS0FBSyxFQUFFQSxLQUFNO0lBQUM3QyxTQUFTLEVBQUVBO0VBQVUsZ0JBQy9DakksTUFBQSxZQUFBa0ksYUFBQTtJQUFLeEIsU0FBUyxFQUFDO0VBQTRCLGdCQUN6QzFHLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ00sVUFBVTtJQUFDOUIsU0FBUyxFQUFDO0VBQW9CLGdCQUN4QzFHLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3dFLFdBQVcsQ0FBQ3hILElBQUk7SUFBQzhHLE1BQU0sRUFBQztFQUFNLENBQUUsQ0FDdkIsQ0FBQyxlQUNiaE0sTUFBQSxZQUFBa0ksYUFBQSxDQUFDMUIsV0FBVztJQUFDRyxLQUFLLEVBQUVBLEtBQU07SUFBQ29GLE9BQU8sRUFBRWlCO0VBQWMsQ0FBRSxDQUFDLEVBQ3BEbUYsUUFBUSxJQUFJQSxRQUFRLENBQUNySCxLQUFLLENBQUMsaUJBQzFCOUssTUFBQSxZQUFBa0ksYUFBQSxDQUFDZ0gsbUJBQW1CO0lBQ2xCRSxjQUFjLEVBQUVBLGNBQWU7SUFDL0JDLFNBQVMsRUFBRUEsU0FBVTtJQUNyQkMsZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUNuQ0MsbUJBQW1CLEVBQUVBLG1CQUFvQjtJQUN6Q0Msa0JBQWtCLEVBQUVBLGtCQUFtQjtJQUN2Q0MsdUJBQXVCLEVBQUVBLHVCQUF3QjtJQUNqRDNFLEtBQUssRUFBRUE7RUFBTSxDQUNkLENBRUEsQ0FBQyxlQUNOOUssTUFBQSxZQUFBa0ksYUFBQTtJQUFLeEIsU0FBUyxFQUFDO0VBQTZCLEdBQ3pDLENBQUNrRyxhQUFhLGdCQUNiNU0sTUFBQSxZQUFBa0ksYUFBQSxDQUFDK0QsZUFBZTtJQUFDRSxhQUFhLEVBQUVBLGFBQWM7SUFBQ0wsYUFBYSxFQUFFWSxXQUFXO0VBQVEsQ0FBRSxDQUFDLEdBQ2xGLElBQ0QsQ0FDTyxDQUFDO0FBRW5CLENBQUM7QUFFTSxJQUFNK0YsWUFBWSxHQUFBNU0sT0FBQSxDQUFBNE0sWUFBQSxHQUFHLFNBQWZBLFlBQVlBLENBQUFDLE1BQUE7RUFBQSxJQUFLQyxRQUFRLEdBQUFELE1BQUEsQ0FBUkMsUUFBUTtJQUFFQyxTQUFTLEdBQUFGLE1BQUEsQ0FBVEUsU0FBUztFQUFBLG9CQUMvQzVTLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3JCLHFCQUFxQixxQkFDcEI3RyxNQUFBLFlBQUFrSSxhQUFBLENBQUM1SCxrQkFBQSxDQUFBd08sTUFBTTtJQUFDcEksU0FBUyxFQUFDLHVCQUF1QjtJQUFDbU0sS0FBSztJQUFDOUcsT0FBTyxFQUFFNkc7RUFBVSxHQUFDLFNBRTVELENBQUMsZUFDVDVTLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQzVILGtCQUFBLENBQUF3TyxNQUFNO0lBQUNDLElBQUk7SUFBQzhELEtBQUs7SUFBQzlHLE9BQU8sRUFBRTRHO0VBQVMsR0FBQyxRQUU5QixDQUNhLENBQUM7QUFBQSxDQUN6QjtBQUVELElBQU1HLG1CQUFtQixHQUFHaE4sNEJBQU0sQ0FBQ0MsR0FBRyxDQUFDVSxLQUFLLENBQUM7RUFDM0NDLFNBQVMsRUFBRTtBQUNiLENBQUMsQ0FBQyxDQUFBeEUsaUJBQUEsS0FBQUEsaUJBQUEsT0FBQXNELHVCQUFBLDBDQUVEO0FBRUQsU0FBU3VOLG9CQUFvQkEsQ0FBQSxFQUFpQztFQUM1RCxJQUFNQyxhQUEyQyxHQUFHLFNBQTlDQSxhQUEyQ0EsQ0FBQUMsTUFBQSxFQVEzQztJQUFBLElBUEpDLGFBQWEsR0FBQUQsTUFBQSxDQUFiQyxhQUFhO01BQ2JDLGFBQWEsR0FBQUYsTUFBQSxDQUFiRSxhQUFhO01BQ2JDLGlCQUFpQixHQUFBSCxNQUFBLENBQWpCRyxpQkFBaUI7TUFDakJDLFlBQVksR0FBQUosTUFBQSxDQUFaSSxZQUFZO01BQUFDLGtCQUFBLEdBQUFMLE1BQUEsQ0FDWnZHLFdBQVc7TUFBWEEsV0FBVyxHQUFBNEcsa0JBQUEsY0FBR3RPLGtCQUFrQixHQUFBc08sa0JBQUE7TUFDaENYLFFBQVEsR0FBQU0sTUFBQSxDQUFSTixRQUFRO01BQ1JZLE9BQU8sR0FBQU4sTUFBQSxDQUFQTSxPQUFPO0lBRVAsSUFBQUMsVUFBQSxHQUFrQyxJQUFBdEssZUFBUSxFQUFDLEtBQUssQ0FBQztNQUFBdUssVUFBQSxPQUFBckssZUFBQSxhQUFBb0ssVUFBQTtNQUExQ3ZMLFNBQVMsR0FBQXdMLFVBQUE7TUFBRUMsWUFBWSxHQUFBRCxVQUFBO0lBQzlCLElBQU9FLE1BQU0sR0FBY1IsYUFBYSxDQUFqQ1EsTUFBTTtNQUFFeEIsUUFBUSxHQUFJZ0IsYUFBYSxDQUF6QmhCLFFBQVE7SUFDdkIsSUFBTTdGLFdBQVcsR0FBRyxJQUFBK0YsY0FBTyxFQUN6QjtNQUFBLE9BQ0VGLFFBQVEsR0FDSmdCLGFBQWEsQ0FBQ1MsSUFBSSxLQUFLLFFBQVEsR0FDN0IsSUFBQUMsNEJBQXFCLEVBQUMxQixRQUFRLENBQUMsR0FDL0IsSUFBQTJCLHVDQUFnQyxFQUFDM0IsUUFBUSxDQUFDLEdBQzVDLElBQUk7SUFBQSxHQUNWLENBQUNnQixhQUFhLENBQUNTLElBQUksRUFBRXpCLFFBQVEsQ0FDL0IsQ0FBQztJQUVELElBQU00QixjQUFjLEdBQUcsSUFBQXBLLGtCQUFXLEVBQ2hDLFVBQUFoRCxLQUFLLEVBQUk7TUFDUCxJQUFJQSxLQUFLLElBQUlzRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ21JLFlBQVksQ0FBQyxFQUFFO1FBQzFDLElBQU1XLGdCQUFnQixHQUFHLElBQUFDLCtCQUF3QixFQUMvQ2QsYUFBYSxFQUNibEksTUFBTSxDQUFDb0ksWUFBWSxDQUFDLEVBQ3BCMU0sS0FBSyxDQUFDdU4sR0FDUixDQUFDO1FBQ0RkLGlCQUFpQixDQUFDO1VBQ2hCRCxhQUFhLEVBQUVhO1FBQ2pCLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxFQUNELENBQUNiLGFBQWEsRUFBRUUsWUFBWSxFQUFFRCxpQkFBaUIsQ0FDakQsQ0FBQztJQUNELElBQU1yRyxnQkFBZ0IsR0FBRyxJQUFBcEQsa0JBQVcsRUFDbEMsVUFBQTJCLEdBQUcsRUFBSTtNQUNMOEgsaUJBQWlCLENBQUM7UUFDaEJDLFlBQVksRUFBRS9IO01BQ2hCLENBQUMsQ0FBQztJQUNKLENBQUMsRUFDRCxDQUFDOEgsaUJBQWlCLENBQ3BCLENBQUM7SUFDRCxJQUFNdkcsUUFBUSxHQUFHLElBQUFsRCxrQkFBVyxFQUMxQixVQUFBbUIsS0FBSyxFQUFJO01BQ1AsSUFBTWtKLGdCQUFnQixHQUFHLElBQUFHLCtCQUF3QixFQUFDaEIsYUFBYSxFQUFFckksS0FBSyxDQUFDO01BQ3ZFc0ksaUJBQWlCLENBQUM7UUFDaEJELGFBQWEsRUFBRWE7TUFDakIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxFQUNELENBQUNiLGFBQWEsRUFBRUMsaUJBQWlCLENBQ25DLENBQUM7SUFFRCxJQUFNdEcsS0FBSyxHQUFHLElBQUFuRCxrQkFBVyxFQUN2QixVQUFBbUIsS0FBSyxFQUFJO01BQ1A7TUFDQSxJQUFNa0osZ0JBQWdCLEdBQUcsSUFBQUksNEJBQXFCLEVBQUNqQixhQUFhLEVBQUVySSxLQUFLLENBQUM7TUFDcEVzSSxpQkFBaUIsQ0FBQztRQUNoQkQsYUFBYSxFQUFFYTtNQUNqQixDQUFDLENBQUM7SUFDSixDQUFDLEVBQ0QsQ0FBQ2IsYUFBYSxFQUFFQyxpQkFBaUIsQ0FDbkMsQ0FBQztJQUVELElBQU1pQixvQkFBb0IsR0FBRyxJQUFBMUssa0JBQVcsRUFBQyxZQUFNO01BQzdDbUQsS0FBSyxDQUFDNkcsTUFBTSxDQUFDMVAsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDLEVBQUUsQ0FBQzBQLE1BQU0sQ0FBQzFQLE1BQU0sRUFBRTZJLEtBQUssQ0FBQyxDQUFDO0lBRTFCLElBQU13SCxhQUFhLEdBQUcsSUFBQTNLLGtCQUFXLEVBQUMsWUFBTTtNQUN0Q29ELGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUN6QixDQUFDLEVBQUUsQ0FBQ0EsZ0JBQWdCLENBQUMsQ0FBQztJQUV0QixJQUFNNkYsU0FBUyxHQUFHLElBQUFqSixrQkFBVyxFQUMzQixVQUFBNEssS0FBSyxFQUFJO01BQ1BBLEtBQUssQ0FBQ0MsZUFBZSxDQUFDLENBQUM7TUFDdkJELEtBQUssQ0FBQ0UsY0FBYyxDQUFDLENBQUM7TUFDdEI5QixRQUFRLENBQUMsQ0FBQztNQUNWWSxPQUFPLENBQUNnQixLQUFLLENBQUM7SUFDaEIsQ0FBQyxFQUNELENBQUM1QixRQUFRLEVBQUVZLE9BQU8sQ0FDcEIsQ0FBQztJQUVELElBQU1tQixTQUFTLEdBQUcsSUFBQS9LLGtCQUFXLEVBQzNCLFVBQUFnTCxNQUFBLEVBQTBCO01BQUEsSUFBeEJDLFFBQVEsR0FBQUQsTUFBQSxDQUFSQyxRQUFRO1FBQUVDLFFBQVEsR0FBQUYsTUFBQSxDQUFSRSxRQUFRO01BQ2xCLElBQU1iLGdCQUFnQixHQUFHLElBQUFjLDZCQUFzQixFQUFDM0IsYUFBYSxFQUFFeUIsUUFBUSxFQUFFQyxRQUFRLENBQUM7TUFDbEZ6QixpQkFBaUIsQ0FBQztRQUNoQkQsYUFBYSxFQUFFYTtNQUNqQixDQUFDLENBQUM7TUFDRk4sWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNyQixDQUFDLEVBQ0QsQ0FBQ1AsYUFBYSxFQUFFQyxpQkFBaUIsRUFBRU0sWUFBWSxDQUNqRCxDQUFDO0lBRUQsSUFBTXFCLFdBQVcsR0FBRyxJQUFBcEwsa0JBQVcsRUFBQyxZQUFNO01BQ3BDK0osWUFBWSxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDLEVBQUUsQ0FBQ0EsWUFBWSxDQUFDLENBQUM7SUFFbEIsSUFBTW5ILGFBQWEsR0FBRyxJQUFBNUMsa0JBQVcsRUFDL0IsVUFBQ21CLEtBQUssRUFBRWpDLEtBQUssRUFBSztNQUNoQixJQUFNbUwsZ0JBQWdCLEdBQUcsSUFBQUMsK0JBQXdCLEVBQUNkLGFBQWEsRUFBRXJJLEtBQUssRUFBRWpDLEtBQUssQ0FBQztNQUM5RTtNQUNBdUssaUJBQWlCLENBQUM7UUFDaEJELGFBQWEsRUFBRWE7TUFDakIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxFQUNELENBQUNiLGFBQWEsRUFBRUMsaUJBQWlCLENBQ25DLENBQUM7SUFFRCxJQUFNNUcsaUJBQWlCLEdBQUcsSUFBQTdDLGtCQUFXLEVBQ25DLFVBQUNkLEtBQUssRUFBRWlDLEtBQUssRUFBSztNQUNoQixJQUFJLENBQUNxSSxhQUFhLENBQUNoQixRQUFRLEVBQUU7UUFDM0I7TUFDRjtNQUNBLElBQU02QyxXQUFXLEdBQUc3QixhQUFhLENBQUNoQixRQUFRLENBQUN4QixHQUFHLENBQzVDLFVBQUNzRSxFQUFFLEVBQUU1UixDQUFDO1FBQUEsT0FBTUEsQ0FBQyxLQUFLeUgsS0FBSyxHQUFHLENBQUNqQyxLQUFLLEVBQUVvTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBR0EsRUFBRTtNQUFBLENBQy9DLENBQUM7O01BRUQ7TUFDQSxJQUFNQyxNQUFNLEdBQUdGLFdBQVcsQ0FDdkJyRSxHQUFHLENBQUMsVUFBQXNFLEVBQUU7UUFBQSxPQUFJQSxFQUFFLENBQUMsQ0FBQyxDQUFDO01BQUEsQ0FBaUIsQ0FBQyxDQUNqQ3ZFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDWnhMLElBQUksQ0FBQyxVQUFDcEMsQ0FBQyxFQUFFcVMsQ0FBQztRQUFBLE9BQUtsSyxNQUFNLENBQUNuSSxDQUFDLENBQUMsR0FBR21JLE1BQU0sQ0FBQ2tLLENBQUMsQ0FBQztNQUFBLEVBQUMsQ0FDckN6SixNQUFNLENBQUMsSUFBSSxDQUFDO01BQ2YsSUFBTTBKLGlCQUEyQixHQUFHSixXQUFXLENBQUNyRSxHQUFHLENBQUMsVUFBQ3NFLEVBQUUsRUFBRTVSLENBQUM7UUFBQSxPQUFLLENBQUM2UixNQUFNLENBQUM3UixDQUFDLENBQUMsRUFBRTRSLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztNQUFBLEVBQUM7TUFFbEY3QixpQkFBaUIsQ0FBQztRQUNoQkQsYUFBYSxFQUFBcFAsYUFBQSxDQUFBQSxhQUFBLEtBQ1JvUCxhQUFhO1VBQ2hCaEIsUUFBUSxFQUFFaUQ7UUFBaUI7TUFFL0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxFQUNELENBQUNoQyxpQkFBaUIsRUFBRUQsYUFBYSxDQUNuQyxDQUFDOztJQUVEO0lBQ0EsSUFBTWtDLDhCQUE4QixHQUFHLElBQUExTCxrQkFBVyxFQUNoRCxVQUFDaUIsSUFBSSxFQUFFRSxLQUFLLEVBQUs7TUFDZixJQUFJLENBQUNxSCxRQUFRLEVBQUU7UUFDYjtNQUNGO01BQ0FpQixpQkFBaUIsQ0FBQztRQUNoQkQsYUFBYSxFQUFBcFAsYUFBQSxDQUFBQSxhQUFBLEtBQ1JvUCxhQUFhO1VBQ2hCaEIsUUFBUSxFQUFFLElBQUFtRCx5Q0FBa0MsRUFBQ25ELFFBQVEsRUFBRXZILElBQUksRUFBRUUsS0FBSztRQUFDO01BRXZFLENBQUMsQ0FBQztJQUNKLENBQUMsRUFDRCxDQUFDc0ksaUJBQWlCLEVBQUVELGFBQWEsRUFBRWhCLFFBQVEsQ0FDN0MsQ0FBQzs7SUFFRDtJQUNBLElBQU1vRCwyQkFBMkIsR0FBRyxJQUFBNUwsa0JBQVcsRUFDN0MsVUFBQ3VHLEtBQUssRUFBRXBGLEtBQUssRUFBSztNQUNoQixJQUFJLENBQUNxSCxRQUFRLEVBQUU7UUFDYjtNQUNGO01BQ0FpQixpQkFBaUIsQ0FBQztRQUNoQkQsYUFBYSxFQUFBcFAsYUFBQSxDQUFBQSxhQUFBLEtBQ1JvUCxhQUFhO1VBQ2hCaEIsUUFBUSxFQUFFLElBQUFxRCxxQ0FBOEIsRUFBQ3JELFFBQVEsRUFBRWpDLEtBQUssRUFBRXBGLEtBQUs7UUFBQztNQUVwRSxDQUFDLENBQUM7SUFDSixDQUFDLEVBQ0QsQ0FBQ3NJLGlCQUFpQixFQUFFRCxhQUFhLEVBQUVoQixRQUFRLENBQzdDLENBQUM7O0lBRUQ7SUFDQSxJQUFNc0QsNkJBQTZCLEdBQUcsSUFBQTlMLGtCQUFXLEVBQy9DLFVBQUFtQixLQUFLLEVBQUk7TUFDUCxJQUFJLENBQUNxSCxRQUFRLEVBQUU7UUFDYjtNQUNGO01BQ0FpQixpQkFBaUIsQ0FBQztRQUNoQkQsYUFBYSxFQUFBcFAsYUFBQSxDQUFBQSxhQUFBLEtBQ1JvUCxhQUFhO1VBQ2hCaEIsUUFBUSxFQUFFLElBQUF1RCxzQ0FBK0IsRUFBQ3ZELFFBQVEsRUFBRXJILEtBQUs7UUFBQztNQUU5RCxDQUFDLENBQUM7SUFDSixDQUFDLEVBQ0QsQ0FBQ3NJLGlCQUFpQixFQUFFRCxhQUFhLEVBQUVoQixRQUFRLENBQzdDLENBQUM7O0lBRUQ7SUFDQSxJQUFNd0QsNkJBQTZCLEdBQUcsSUFBQWhNLGtCQUFXLEVBQy9DLFVBQUFtQixLQUFLLEVBQUk7TUFDUCxJQUFJLENBQUNxSCxRQUFRLEVBQUU7UUFDYjtNQUNGO01BQ0FpQixpQkFBaUIsQ0FBQztRQUNoQkQsYUFBYSxFQUFBcFAsYUFBQSxDQUFBQSxhQUFBLEtBQ1JvUCxhQUFhO1VBQ2hCaEIsUUFBUSxFQUFFLElBQUF5RCwyQ0FBb0MsRUFBQ3pELFFBQVEsRUFBRXJILEtBQUssRUFBRW9JLGFBQWE7UUFBQztNQUVsRixDQUFDLENBQUM7SUFDSixDQUFDLEVBQ0QsQ0FBQ0UsaUJBQWlCLEVBQUVELGFBQWEsRUFBRWhCLFFBQVEsRUFBRWUsYUFBYSxDQUM1RCxDQUFDO0lBRUQsb0JBQ0VsVCxNQUFBLFlBQUFrSSxhQUFBLENBQUM0SyxtQkFBbUIscUJBQ2xCOVMsTUFBQSxZQUFBa0ksYUFBQSxDQUFDRyx3QkFBd0I7TUFDdkIzQixTQUFTLEVBQUMsb0NBQW9DO01BQzlDZ08sU0FBUyxFQUFFQSxTQUFVO01BQ3JCSyxXQUFXLEVBQUVBLFdBQVk7TUFDekJjLFFBQVEsRUFBQyxHQUFHO01BQ1pDLFdBQVcsRUFBQyxnQkFBZ0I7TUFDNUJDLGFBQWE7SUFBQSxHQUVacEMsTUFBTSxDQUFDaEQsR0FBRyxDQUFDLFVBQUNoSyxLQUFLLEVBQUVtRSxLQUFLO01BQUEsT0FDdkJxSSxhQUFhLENBQUNTLElBQUksS0FBSyxRQUFRLGdCQUM3QjVULE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ2tFLGtCQUFrQjtRQUNqQm9DLEdBQUcsRUFBRTFELEtBQU07UUFDWHdCLFdBQVcsRUFBRUEsV0FBWTtRQUN6QnhCLEtBQUssRUFBRUEsS0FBTTtRQUNiN0MsU0FBUyxFQUFFQSxTQUFVO1FBQ3JCdEIsS0FBSyxFQUFFQSxLQUFNO1FBQ2I0RixhQUFhLEVBQUVBLGFBQWM7UUFDN0JJLGFBQWEsRUFBRWdILE1BQU0sQ0FBQzFQLE1BQU0sSUFBSSxFQUFHO1FBQ25DMkksYUFBYSxFQUFFK0csTUFBTSxDQUFDMVAsTUFBTSxJQUFJLENBQUU7UUFDbEN5SSxXQUFXLEVBQUVBLFdBQVk7UUFDekJJLEtBQUssRUFBRUEsS0FBTTtRQUNiRCxRQUFRLEVBQUVBLFFBQVM7UUFDbkJFLGdCQUFnQixFQUFFQSxnQkFBaUI7UUFDbkNQLGlCQUFpQixFQUFFQTtNQUFrQixDQUN0QyxDQUFDLEdBRUYwRyxhQUFhLGlCQUNYbFQsTUFBQSxZQUFBa0ksYUFBQSxDQUFDK0osNkJBQTZCO1FBQzVCekQsR0FBRyxFQUFFMUQsS0FBTTtRQUNYcUgsUUFBUSxFQUFFQSxRQUFTO1FBQ25CckgsS0FBSyxFQUFFQSxLQUFNO1FBQ2I3QyxTQUFTLEVBQUVBLFNBQVU7UUFDckJ0QixLQUFLLEVBQUVBLEtBQU07UUFDYitGLFdBQVcsRUFBRUEsV0FBWTtRQUN6QkksS0FBSyxFQUFFQSxLQUFNO1FBQ2JELFFBQVEsRUFBRUEsUUFBUztRQUNuQkQsYUFBYSxFQUFFK0csTUFBTSxDQUFDMVAsTUFBTSxJQUFJLENBQUU7UUFDbEM4SSxnQkFBZ0IsRUFBRUEsZ0JBQWlCO1FBQ25DdUMsZ0JBQWdCLEVBQUVpRywyQkFBNEI7UUFDOUNoRyxtQkFBbUIsRUFBRThGLDhCQUErQjtRQUNwRDdGLGtCQUFrQixFQUFFaUcsNkJBQThCO1FBQ2xEaEcsdUJBQXVCLEVBQUVrRyw2QkFBOEI7UUFDdkR0RyxTQUFTLEVBQUU2RDtNQUFjLENBQzFCLENBRUo7SUFBQSxDQUNILENBQ3dCLENBQUMsRUFDMUJDLGFBQWEsQ0FBQ1MsSUFBSSxLQUFLLGVBQWUsaUJBQ3JDNVQsTUFBQSxZQUFBa0ksYUFBQSxDQUFDcEIsc0JBQXNCLHFCQUNyQjlHLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQ3lELFlBQVk7TUFBQ0UsVUFBVSxFQUFFd0ksb0JBQXFCO01BQUN2SSxhQUFhLEVBQUVZLFdBQVcsQ0FBQ3RIO0lBQUksQ0FBRSxDQUFDLGVBQ2xGcEYsTUFBQSxZQUFBa0ksYUFBQSxDQUFDNUgsa0JBQUEsQ0FBQXdPLE1BQU07TUFBQ0MsSUFBSTtNQUFDQyxJQUFJLEVBQUMsTUFBTTtNQUFDakQsT0FBTyxFQUFFc0k7SUFBcUIsR0FBQyxVQUVoRCxDQUNjLENBQ3pCLGVBQ0RyVSxNQUFBLFlBQUFrSSxhQUFBLENBQUM1QixXQUFXLE1BQUUsQ0FBQyxlQUVmdEcsTUFBQSxZQUFBa0ksYUFBQSxDQUFDdUssWUFBWTtNQUFDRSxRQUFRLEVBQUVBLFFBQVM7TUFBQ0MsU0FBUyxFQUFFQTtJQUFVLENBQUUsQ0FBQyxlQUMxRDVTLE1BQUEsWUFBQWtJLGFBQUEsQ0FBQzdILFNBQUEsV0FBUTtNQUFDeVEsUUFBUSxFQUFFdUMsWUFBWSxLQUFLLEtBQU07TUFBQ3pDLElBQUksRUFBRSxHQUFJO01BQUNDLEdBQUcsRUFBRSxDQUFDLEdBQUk7TUFBQ0UsT0FBTyxFQUFFdUQ7SUFBYyxnQkFDdkZ0VSxNQUFBLFlBQUFrSSxhQUFBLENBQUNwSCxhQUFBLFdBQVk7TUFBQzZGLEtBQUssRUFBRWdOLE1BQU0sQ0FBQzFJLE1BQU0sQ0FBQ29JLFlBQVksQ0FBQyxDQUFFO01BQUN2SyxRQUFRLEVBQUVpTDtJQUFlLENBQUUsQ0FDdEUsQ0FDUyxDQUFDO0VBRTFCLENBQUM7RUFFRCxPQUFPZixhQUFhO0FBQ3RCO0FBQUMsSUFBQWdELFFBQUEsR0FBQW5RLE9BQUEsY0FFY2tOLG9CQUFvQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
733
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdW5pcSIsIl9yZWFjdFNvcnRhYmxlSG9jIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfcG9ydGFsZWQiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfdHlwZWFoZWFkIiwiX2NoaWNrbGV0ZWRJbnB1dCIsIl9kcm9wZG93bkxpc3QiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX2ljb25zIiwiX2N1c3RvbVBpY2tlciIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfdGVtcGxhdGVPYmplY3Q5IiwiX3RlbXBsYXRlT2JqZWN0MTAiLCJfdGVtcGxhdGVPYmplY3QxMSIsIl90ZW1wbGF0ZU9iamVjdDEyIiwiX3RlbXBsYXRlT2JqZWN0MTMiLCJfdGVtcGxhdGVPYmplY3QxNCIsIl90ZW1wbGF0ZU9iamVjdDE1IiwiX3RlbXBsYXRlT2JqZWN0MTYiLCJfdGVtcGxhdGVPYmplY3QxNyIsIl90ZW1wbGF0ZU9iamVjdDE4IiwiX3RlbXBsYXRlT2JqZWN0MTkiLCJfdGVtcGxhdGVPYmplY3QyMCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiZGVmYXVsdEFjdGlvbkljb25zIiwiVHJhc2giLCJzb3J0IiwiVmVydERvdHMiLCJhZGQiLCJBZGQiLCJkcmFnSGFuZGxlQWN0aXZlIiwiY3NzIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9ySGwiLCJDb2xvclBhbGV0dGVJdGVtIiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsImRyb3Bkb3duV3JhcHBlcloiLCJwYW5lbEJhY2tncm91bmRIb3ZlciIsIlN0eWxlZERyYWdIYW5kbGUiLCJTdHlsZWRBY3Rpb24iLCJzdWJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3JBY3RpdmUiLCJEaXZpZGVyTGluZSIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIkNvbG9yU3dhdGNoIiwiYXR0cnMiLCJjbGFzc05hbWUiLCJjb2xvciIsImJveFNoYWRvdyIsIlN0eWxlZEJ1dHRvbkNvbnRhaW5lciIsIlN0eWxlZEFkZFN0ZXBDb250YWluZXIiLCJpbnB1dENvbG9yIiwiU3R5bGVkSW5wdXQiLCJJbnB1dCIsIndpdGhDb25maWciLCJzaG91bGRGb3J3YXJkUHJvcCIsIl9wcm9wcyR3aWR0aCIsIndpZHRoIiwiX3Byb3BzJHRleHRBbGlnbiIsInRleHRBbGlnbiIsImRpc2FibGVkIiwiSW5wdXRUZXh0IiwiaW5wdXQiLCJfcHJvcHMkd2lkdGgyIiwiX3Byb3BzJHRleHRBbGlnbjIiLCJTb3J0YWJsZUl0ZW0iLCJTb3J0YWJsZUVsZW1lbnQiLCJfcmVmIiwiY2hpbGRyZW4iLCJpc1NvcnRpbmciLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NuYW1lcyIsInNvcnRpbmciLCJXcmFwcGVkU29ydGFibGVDb250YWluZXIiLCJTb3J0YWJsZUNvbnRhaW5lciIsIl9yZWYyIiwiRHJhZ0hhbmRsZSIsIlNvcnRhYmxlSGFuZGxlIiwiX3JlZjMiLCJDb2xvclBhbGV0dGVJbnB1dCIsIl9yZWY0IiwidmFsdWUiLCJvbkNoYW5nZSIsImlkIiwiZWRpdGFibGUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzdGF0ZVZhbHVlIiwic2V0VmFsdWUiLCJpbnB1dFJlZiIsInVzZVJlZiIsInVzZUVmZmVjdCIsIm9uS2V5RG93biIsInVzZUNhbGxiYWNrIiwia2V5Q29kZSIsIktleUV2ZW50IiwiRE9NX1ZLX0VOVEVSIiwiRE9NX1ZLX1JFVFVSTiIsImN1cnJlbnQiLCJibHVyIiwiX29uQ2hhbmdlIiwidGFyZ2V0Iiwib25CbHVyIiwicmVmIiwic2Vjb25kYXJ5IiwiRGFzaCIsIlN0eWxlZFJhbmdlSW5wdXQiLCJTdHlsZWRDb2xvckhleElucHV0IiwiRWRpdGFibGVDb2xvclJhbmdlIiwiX3JlZjUiLCJpdGVtIiwiaXNMYXN0IiwiaW5kZXgiLCJlZGl0Q29sb3JNYXAiLCJub01pbkJvdW5kIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJpbnB1dHMiLCJub01heEJvdW5kIiwib25DaGFuZ2VMZWZ0IiwidmFsIiwicGFyc2VGbG9hdCIsIm9uQ2hhbmdlUmlnaHQiLCJ0b1N0cmluZyIsImNvbmNhdCIsIkFkZENvbG9yU3RvcCIsIl9yZWY2Iiwib25Db2xvckFkZCIsIkljb25Db21wb25lbnQiLCJvbkNsaWNrIiwiaGVpZ2h0IiwiRGVsZXRlQ29sb3JTdG9wIiwiX3JlZjciLCJvbkNvbG9yRGVsZXRlIiwiQ3VzdG9tUGFsZXR0ZUlucHV0IiwiX3JlZjgiLCJjb2xvckJyZWFrcyIsImlucHV0Q29sb3JIZXgiLCJlZGl0Q29sb3JNYXBWYWx1ZSIsIl9yZWY4JGFjdGlvbkljb25zIiwiYWN0aW9uSWNvbnMiLCJkaXNhYmxlQXBwZW5kIiwiZGlzYWJsZURlbGV0ZSIsIm9uRGVsZXRlIiwib25BZGQiLCJvblRvZ2dsZVNrZXRjaGVyIiwib25DbGlja1N3dGFjaCIsIm9uQ29sb3JJbnB1dCIsInYiLCJzaG93SGV4SW5wdXQiLCJ0b1VwcGVyQ2FzZSIsImlzTnVtZXJpY0NvbG9yQnJlYWtzIiwiU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlcldyYXBwZXIiLCJTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyIiwibm9Cb3JkZXIiLCJEcm9wZG93blZhbHVlc1dyYXBwZXIiLCJTZWxlY3RlZFZhbHVlc1dyYXBwZXIiLCJTdHlsZWREcm9wZG93bkhlYWRlciIsIlN0eWxlZFRvb2x0aXBDb250ZW50IiwiTlVNQkVSX1ZBTFVFU19JTl9UT09MVElQIiwiQ2F0ZWdvcmljYWxTZWxlY3RvckNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJvblNlbGVjdFJlc3QiLCJvblJlc2V0IiwiTW9kaWZpZWREcm9wZG93bkxpc3QiLCJfRHJvcGRvd25MaXN0IiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwicmVuZGVyIiwiX3RoaXMiLCJGcmFnbWVudCIsIkNvbnN1bWVyIiwiY29udGV4dCIsIkJ1dHRvbiIsImxpbmsiLCJzaXplIiwiRHJvcGRvd25MaXN0IiwiQ2F0ZWdvcmljYWxTZWxlY3RvciIsIl9yZWY5Iiwic2VsZWN0ZWRWYWx1ZXMiLCJhbGxWYWx1ZXMiLCJhZGRDb2xvck1hcFZhbHVlIiwicmVtb3ZlQ29sb3JNYXBWYWx1ZSIsInJlc2V0Q29sb3JNYXBWYWx1ZSIsInNlbGVjdFJlc3RDb2xvck1hcFZhbHVlIiwiX3JlZjkkZWRpdGFibGUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dUeXBlYWhlYWQiLCJzZXRTaG93VHlwZWFoZWFkIiwib25PcHRpb25TZWxlY3RlZCIsInByZXZpb3VzU2VsZWN0ZWQiLCJ0b0FycmF5IiwiaXRlbXMiLCJ1bmlxIiwib25PcGVuRHJvcGRvd24iLCJvbkNsb3NlRHJvcGRvd24iLCJvblJlbW92ZUl0ZW0iLCJUb29sdGlwIiwicGxhY2UiLCJpbnRlcmFjdGl2ZSIsInNsaWNlIiwibWFwIiwibGVmdCIsInRvcCIsImlzT3BlbmVkIiwib25DbG9zZSIsInNlbGVjdGVkSXRlbXMiLCJwbGFjZWhvbGRlciIsInJlbW92ZUl0ZW0iLCJDdXN0b21DaGlja2xldENvbXBvbmVudCIsInN0eWxlIiwicG9zaXRpb24iLCJQcm92aWRlciIsImN1c3RvbUNsYXNzZXMiLCJyZXN1bHRzIiwibGlzdEl0ZW0iLCJsaXN0QW5jaG9yIiwib3B0aW9ucyIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJjdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsIkxpc3RJdGVtIiwic2VhcmNoYWJsZSIsInNob3dPcHRpb25zV2hlbkVtcHR5IiwiQ2F0ZWdvcmljYWxDdXN0b21QYWxldHRlSW5wdXQiLCJfcmVmMTAiLCJjb2xvck1hcCIsIl9yZWYxMCRhY3Rpb25JY29ucyIsInVzZU1lbW8iLCJ2YWx1ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJCb3R0b21BY3Rpb24iLCJfcmVmMTEiLCJvbkNhbmNlbCIsIm9uQ29uZmlybSIsInNtYWxsIiwiU3R5bGVkQ3VzdG9tUGFsZXR0ZSIsIkN1c3RvbVBhbGV0dGVGYWN0b3J5IiwiQ3VzdG9tUGFsZXR0ZSIsIl9yZWYxMiIsIm9yZGluYWxEb21haW4iLCJjdXN0b21QYWxldHRlIiwic2V0Q29sb3JQYWxldHRlVUkiLCJzaG93U2tldGNoZXIiLCJfcmVmMTIkYWN0aW9uSWNvbnMiLCJvbkFwcGx5IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZXRJc1NvcnRpbmciLCJjb2xvcnMiLCJ0eXBlIiwiY29sb3JNYXBUb0NvbG9yQnJlYWtzIiwiY29sb3JNYXBUb0NhdGVnb3JpY2FsQ29sb3JCcmVha3MiLCJvblBpY2tlclVwZGF0ZSIsIm5ld0N1c3RvbVBhbGV0dGUiLCJ1cGRhdGVDdXN0b21QYWxldHRlQ29sb3IiLCJoZXgiLCJyZW1vdmVDdXN0b21QYWxldHRlQ29sb3IiLCJhZGRDdXN0b21QYWxldHRlQ29sb3IiLCJvbkFkZENhdGVnb3JpY2FsU3RlcCIsIm9uU3dhdGNoQ2xvc2UiLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0Iiwib25Tb3J0RW5kIiwiX3JlZjEzIiwib2xkSW5kZXgiLCJuZXdJbmRleCIsInNvcnRDdXN0b21QYWxldHRlQ29sb3IiLCJvblNvcnRTdGFydCIsIm5ld0NvbG9yTWFwIiwiY20iLCJicmVha3MiLCJiIiwic29ydGVkTmV3Q29sb3JNYXAiLCJyZW1vdmVDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWUiLCJyZW1vdmVDYXRlZ29yaWNhbFZhbHVlRnJvbUNvbG9yTWFwIiwiYWRkQ2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlIiwiYWRkQ2F0ZWdvcmljYWxWYWx1ZXNUb0NvbG9yTWFwIiwicmVzZXRDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWUiLCJyZXNldENhdGVnb3JpY2FsQ29sb3JNYXBCeUluZGV4Iiwic2VsZWN0UmVzdENhdGVnb3JpY2FsQ29sb3JNYXAiLCJzZWxlY3RSZXN0Q2F0ZWdvcmljYWxDb2xvck1hcEJ5SW5kZXgiLCJsb2NrQXhpcyIsImhlbHBlckNsYXNzIiwidXNlRHJhZ0hhbmRsZSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY3VzdG9tLXBhbGV0dGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFJlYWN0LCB7XG4gIEVsZW1lbnRUeXBlLFxuICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZVxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gvdW5pcSc7XG5pbXBvcnQge1xuICBTb3J0YWJsZUNvbnRhaW5lcixcbiAgU29ydGFibGVDb250YWluZXJQcm9wcyxcbiAgU29ydGFibGVFbGVtZW50LFxuICBTb3J0YWJsZUVsZW1lbnRQcm9wcyxcbiAgU29ydGFibGVIYW5kbGVcbn0gZnJvbSAncmVhY3Qtc29ydGFibGUtaG9jJztcbmltcG9ydCBzdHlsZWQsIHtjc3N9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBQb3J0YWxlZCBmcm9tICcuLi8uLi9jb21tb24vcG9ydGFsZWQnO1xuaW1wb3J0IHtUb29sdGlwfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFR5cGVhaGVhZCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci90eXBlYWhlYWQnO1xuaW1wb3J0IENoaWNrbGV0ZWRJbnB1dCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9jaGlja2xldGVkLWlucHV0JztcbmltcG9ydCBEcm9wZG93bkxpc3QsIHtMaXN0SXRlbX0gZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvZHJvcGRvd24tbGlzdCc7XG5pbXBvcnQge3Nob3VsZEZvcndhcmRQcm9wfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHt0b0FycmF5fSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge0tleUV2ZW50fSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0NvbG9yTWFwLCBDb2xvclVJLCBIZXhDb2xvciwgTmVzdGVkUGFydGlhbH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBhZGRDYXRlZ29yaWNhbFZhbHVlc1RvQ29sb3JNYXAsXG4gIGFkZEN1c3RvbVBhbGV0dGVDb2xvcixcbiAgY29sb3JNYXBUb0NhdGVnb3JpY2FsQ29sb3JCcmVha3MsXG4gIGNvbG9yTWFwVG9Db2xvckJyZWFrcyxcbiAgaXNOdW1lcmljQ29sb3JCcmVha3MsXG4gIHJlc2V0Q2F0ZWdvcmljYWxDb2xvck1hcEJ5SW5kZXgsXG4gIHJlbW92ZUNhdGVnb3JpY2FsVmFsdWVGcm9tQ29sb3JNYXAsXG4gIHJlbW92ZUN1c3RvbVBhbGV0dGVDb2xvcixcbiAgc2VsZWN0UmVzdENhdGVnb3JpY2FsQ29sb3JNYXBCeUluZGV4LFxuICBzb3J0Q3VzdG9tUGFsZXR0ZUNvbG9yLFxuICB1cGRhdGVDdXN0b21QYWxldHRlQ29sb3Jcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0NvbG9yQnJlYWssIENvbG9yQnJlYWtPcmRpbmFsfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7QWRkLCBUcmFzaCwgVmVydERvdHN9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge0J1dHRvbiwgSW5wdXR9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgQ3VzdG9tUGlja2VyIGZyb20gJy4vY3VzdG9tLXBpY2tlcic7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkljb25zID0ge1xuICBkZWxldGU6IEVsZW1lbnRUeXBlO1xuICBzb3J0OiBFbGVtZW50VHlwZTtcbiAgYWRkOiBFbGVtZW50VHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIEVkaXRDb2xvck1hcEZ1bmMgPSAodjogbnVtYmVyLCBpOiBudW1iZXIpID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBTZXRDb2xvclVJRnVuYyA9IChuZXdDb25maWc6IE5lc3RlZFBhcnRpYWw8Q29sb3JVST4pID0+IHZvaWQ7XG5cbi8qKlxuICogRWRpdGFibGVDb2xvclJhbmdlXG4gKi9cbmV4cG9ydCB0eXBlIEVkaXRhYmxlQ29sb3JSYW5nZVByb3BzID0ge1xuICBpdGVtOiBDb2xvckJyZWFrO1xuICBpc0xhc3Q6IGJvb2xlYW47XG4gIGluZGV4OiBudW1iZXI7XG4gIGVkaXRDb2xvck1hcD86IEVkaXRDb2xvck1hcEZ1bmM7XG4gIGVkaXRhYmxlOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tUGFsZXR0ZVByb3BzID0ge1xuICBjdXN0b21QYWxldHRlOiBDb2xvclVJWydjdXN0b21QYWxldHRlJ107XG4gIHNldENvbG9yUGFsZXR0ZVVJOiBTZXRDb2xvclVJRnVuYztcbiAgc2hvd1NrZXRjaGVyOiBudW1iZXIgfCBib29sZWFuO1xuICBvcmRpbmFsRG9tYWluPzogc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgYWN0aW9uSWNvbnM/OiBBY3Rpb25JY29ucztcbiAgb25BcHBseTogKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIG9uQ2FuY2VsOiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tUGFsZXR0ZUlucHV0UHJvcHMgPSB7XG4gIGluZGV4OiBudW1iZXI7XG4gIGlzU29ydGluZzogYm9vbGVhbjtcbiAgY29sb3I6IEhleENvbG9yO1xuICBjb2xvckJyZWFrczogQ29sb3JCcmVha09yZGluYWxbXSB8IENvbG9yQnJlYWtbXSB8IG51bGw7XG4gIGlucHV0Q29sb3JIZXg6IChpbmRleDogbnVtYmVyLCB2OiBIZXhDb2xvcikgPT4gdm9pZDtcbiAgZWRpdENvbG9yTWFwVmFsdWU6IEVkaXRDb2xvck1hcEZ1bmM7XG4gIGFjdGlvbkljb25zPzogQWN0aW9uSWNvbnM7XG4gIGRpc2FibGVBcHBlbmQ/OiBib29sZWFuO1xuICBkaXNhYmxlRGVsZXRlPzogYm9vbGVhbjtcbiAgb25EZWxldGU6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xuICBvbkFkZDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU2tldGNoZXI6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xufTtcblxuY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICBkZWxldGU6IFRyYXNoLFxuICBzb3J0OiBWZXJ0RG90cyxcbiAgYWRkOiBBZGRcbn07XG5cbmNvbnN0IGRyYWdIYW5kbGVBY3RpdmUgPSBjc3NgXG4gIC5sYXllcl9fZHJhZy1oYW5kbGUge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGN1cnNvcjogbW92ZTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IENvbG9yUGFsZXR0ZUl0ZW0gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICB6LWluZGV4OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV3JhcHBlclogKyAxfTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gIC5jdXN0b20tcGFsZXR0ZS1pbnB1dF9fbGVmdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLmN1c3RvbS1wYWxldHRlLWlucHV0X19yaWdodCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcbiAgfVxuXG4gICY6bm90KC5zb3J0aW5nKTpub3QoLmRpc2FibGVkKSB7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICAgICR7ZHJhZ0hhbmRsZUFjdGl2ZX07XG4gICAgfVxuICB9XG5cbiAgJi5zb3J0aW5nLWNvbG9ycyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gICAgJHtkcmFnSGFuZGxlQWN0aXZlfTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkRHJhZ0hhbmRsZSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG5gO1xuXG5jb25zdCBTdHlsZWRBY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICBzdmcge1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yQWN0aXZlfTtcbiAgICB9XG4gIH1cblxuICBtYXJnaW4tbGVmdDogNHB4O1xuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBEaXZpZGVyTGluZSA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG4gIG1hcmdpbi10b3A6IDhweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBDb2xvclN3YXRjaCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdjdXN0b20tcGFsZXR0ZV9fc3dhdGNoJ1xufSlgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuY29sb3J9O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICY6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDExcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGRpcmVjdGlvbjogcnRsO1xuICBwYWRkaW5nOiAwIDEycHg7XG5gO1xuXG5jb25zdCBTdHlsZWRBZGRTdGVwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogMTFweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Q29sb3J9O1xuICAuYWRkY29sb3Ige1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQoSW5wdXQpLndpdGhDb25maWcoe3Nob3VsZEZvcndhcmRQcm9wfSk8e1xuICB3aWR0aDogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbn0+YFxuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aCA/PyAnMTAwJSd9O1xuICB0ZXh0LWFsaWduOiAke3Byb3BzID0+IHByb3BzLnRleHRBbGlnbiA/PyAnZW5kJ307XG4gIHBvaW50ZXItZXZlbnRzOiAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlZCA/ICdub25lJyA6ICdhbGwnKX07XG5gO1xuXG5jb25zdCBJbnB1dFRleHQgPSBzdHlsZWQuZGl2LndpdGhDb25maWcoe3Nob3VsZEZvcndhcmRQcm9wfSk8e3dpZHRoOiBzdHJpbmc7IHRleHRBbGlnbjogc3RyaW5nfT5gXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXR9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGggPz8gJzEwMCUnfTtcbiAgdGV4dC1hbGlnbjogJHtwcm9wcyA9PiBwcm9wcy50ZXh0QWxpZ24gPz8gJ2VuZCd9O1xuXG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5gO1xuXG50eXBlIFNvcnRhYmxlSXRlbVByb3BzID0gU29ydGFibGVFbGVtZW50UHJvcHMgJiB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGlzU29ydGluZzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFNvcnRhYmxlSXRlbSA9IFNvcnRhYmxlRWxlbWVudDxTb3J0YWJsZUl0ZW1Qcm9wcz4oKHtjaGlsZHJlbiwgaXNTb3J0aW5nfSkgPT4gKFxuICA8Q29sb3JQYWxldHRlSXRlbSBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2N1c3RvbS1wYWxldHRlX19zb3J0YWJsZS1pdGVtcycsIHtzb3J0aW5nOiBpc1NvcnRpbmd9KX0+XG4gICAge2NoaWxkcmVufVxuICA8L0NvbG9yUGFsZXR0ZUl0ZW0+XG4pKTtcblxudHlwZSBXcmFwcGVkU29ydGFibGVDb250YWluZXJQcm9wcyA9IFNvcnRhYmxlQ29udGFpbmVyUHJvcHMgJiB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59O1xuXG4vLyBUT0RPOiBTaG91bGQgY2xhc3NOYW1lIGJlIGFwcGxpZWQgdG8gdGhlIGRpdiBoZXJlP1xuY29uc3QgV3JhcHBlZFNvcnRhYmxlQ29udGFpbmVyID0gU29ydGFibGVDb250YWluZXI8V3JhcHBlZFNvcnRhYmxlQ29udGFpbmVyUHJvcHM+KFxuICAoe2NoaWxkcmVuLCBjbGFzc05hbWV9KSA9PiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT57Y2hpbGRyZW59PC9kaXY+XG4pO1xuXG50eXBlIERyYWdIYW5kbGVQcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuPHtjbGFzc05hbWU/OiBzdHJpbmc7IGxpc3RlbmVycz86IHVua25vd259PjtcblxuZXhwb3J0IGNvbnN0IERyYWdIYW5kbGUgPSBTb3J0YWJsZUhhbmRsZTxEcmFnSGFuZGxlUHJvcHM+KCh7Y2xhc3NOYW1lLCBjaGlsZHJlbn0pID0+IChcbiAgPFN0eWxlZERyYWdIYW5kbGUgY2xhc3NOYW1lPXtjbGFzc05hbWV9PntjaGlsZHJlbn08L1N0eWxlZERyYWdIYW5kbGU+XG4pKTtcblxuZXhwb3J0IHR5cGUgQ29sb3JQYWxldHRlSW5wdXRQcm9wcyA9IHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgb25DaGFuZ2U6ICh2YWw6IHVua25vd24pID0+IHZvaWQ7XG4gIGlkOiBzdHJpbmc7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBlZGl0YWJsZTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBDb2xvclBhbGV0dGVJbnB1dCA9ICh7XG4gIHZhbHVlLFxuICBvbkNoYW5nZSxcbiAgaWQsXG4gIHdpZHRoLFxuICB0ZXh0QWxpZ24sXG4gIGVkaXRhYmxlXG59OiBDb2xvclBhbGV0dGVJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IFtzdGF0ZVZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZSh2YWx1ZSk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFZhbHVlKHZhbHVlKTtcbiAgfSwgW3ZhbHVlXSk7XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgZSA9PiB7XG4gICAgICBzd2l0Y2ggKGUua2V5Q29kZSkge1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19FTlRFUjpcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfUkVUVVJOOlxuICAgICAgICAgIG9uQ2hhbmdlKHN0YXRlVmFsdWUpO1xuICAgICAgICAgIGlmIChpbnB1dFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgaW5wdXRSZWY/LmN1cnJlbnQuYmx1cigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgc3RhdGVWYWx1ZV1cbiAgKTtcblxuICBjb25zdCBfb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhlID0+IHNldFZhbHVlKGUudGFyZ2V0LnZhbHVlKSwgW3NldFZhbHVlXSk7XG4gIGNvbnN0IG9uQmx1ciA9IHVzZUNhbGxiYWNrKCgpID0+IG9uQ2hhbmdlKHN0YXRlVmFsdWUpLCBbb25DaGFuZ2UsIHN0YXRlVmFsdWVdKTtcblxuICByZXR1cm4gZWRpdGFibGUgPyAoXG4gICAgPFN0eWxlZElucHV0XG4gICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaGV4X19pbnB1dFwiXG4gICAgICB2YWx1ZT17c3RhdGVWYWx1ZX1cbiAgICAgIG9uQ2hhbmdlPXtfb25DaGFuZ2V9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgaWQ9e2lkfVxuICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgdGV4dEFsaWduPXt0ZXh0QWxpZ259XG4gICAgICBzZWNvbmRhcnlcbiAgICAvPlxuICApIDogKFxuICAgIDxJbnB1dFRleHQgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaGV4X19pbnB1dF9fdGV4dFwiIHdpZHRoPXt3aWR0aH0gdGV4dEFsaWduPXt0ZXh0QWxpZ259PlxuICAgICAge3ZhbHVlfVxuICAgIDwvSW5wdXRUZXh0PlxuICApO1xufTtcblxuY29uc3QgRGFzaCA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA2cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuYDtcblxuY29uc3QgU3R5bGVkUmFuZ2VJbnB1dCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JIZXhJbnB1dCA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IEVkaXRhYmxlQ29sb3JSYW5nZTogUmVhY3QuRkM8RWRpdGFibGVDb2xvclJhbmdlUHJvcHM+ID0gKHtcbiAgaXRlbSxcbiAgaXNMYXN0LFxuICBpbmRleCxcbiAgZWRpdENvbG9yTWFwLFxuICBlZGl0YWJsZVxufSkgPT4ge1xuICBjb25zdCBub01pbkJvdW5kID0gIU51bWJlci5pc0Zpbml0ZShpdGVtLmlucHV0c1swXSkgJiYgaW5kZXggPT09IDA7XG4gIGNvbnN0IG5vTWF4Qm91bmQgPSAhTnVtYmVyLmlzRmluaXRlKGl0ZW0uaW5wdXRzWzFdKSAmJiBpc0xhc3Q7XG4gIGNvbnN0IG9uQ2hhbmdlTGVmdCA9IHVzZUNhbGxiYWNrKFxuICAgIHZhbCA9PiB7XG4gICAgICBpZiAoZWRpdGFibGUgJiYgZWRpdENvbG9yTWFwKSBlZGl0Q29sb3JNYXAocGFyc2VGbG9hdCh2YWwpLCBpbmRleCAtIDEpO1xuICAgIH0sXG4gICAgW2VkaXRDb2xvck1hcCwgaW5kZXgsIGVkaXRhYmxlXVxuICApO1xuICBjb25zdCBvbkNoYW5nZVJpZ2h0ID0gdXNlQ2FsbGJhY2soXG4gICAgdmFsID0+IHtcbiAgICAgIGlmIChlZGl0YWJsZSAmJiBlZGl0Q29sb3JNYXApIGVkaXRDb2xvck1hcChwYXJzZUZsb2F0KHZhbCksIGluZGV4KTtcbiAgICB9LFxuICAgIFtlZGl0Q29sb3JNYXAsIGluZGV4LCBlZGl0YWJsZV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRSYW5nZUlucHV0PlxuICAgICAgPENvbG9yUGFsZXR0ZUlucHV0XG4gICAgICAgIHZhbHVlPXtub01pbkJvdW5kID8gJ0xlc3MnIDogaXRlbS5pbnB1dHNbMF0udG9TdHJpbmcoKX1cbiAgICAgICAgaWQ9e2Bjb2xvci1wYWxldHRlLWlucHV0LSR7aW5kZXh9LWxlZnRgfVxuICAgICAgICB3aWR0aD1cIjUwcHhcIlxuICAgICAgICB0ZXh0QWxpZ249XCJlbmRcIlxuICAgICAgICBlZGl0YWJsZT17bm9NaW5Cb3VuZCA/IGZhbHNlIDogZWRpdGFibGV9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZUxlZnR9XG4gICAgICAvPlxuICAgICAgPERhc2ggLz5cbiAgICAgIDxDb2xvclBhbGV0dGVJbnB1dFxuICAgICAgICB2YWx1ZT17bm9NYXhCb3VuZCA/ICdNb3JlJyA6IGl0ZW0uaW5wdXRzWzFdLnRvU3RyaW5nKCl9XG4gICAgICAgIGlkPXtgY29sb3ItcGFsZXR0ZS1pbnB1dC0ke2luZGV4fS1yaWdodGB9XG4gICAgICAgIHdpZHRoPVwiNTBweFwiXG4gICAgICAgIHRleHRBbGlnbj1cImVuZFwiXG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZVJpZ2h0fVxuICAgICAgICBlZGl0YWJsZT17bm9NYXhCb3VuZCA/IGZhbHNlIDogZWRpdGFibGV9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkUmFuZ2VJbnB1dD5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBBZGRDb2xvclN0b3AgPSAoe29uQ29sb3JBZGQsIEljb25Db21wb25lbnR9KSA9PiAoXG4gIDxTdHlsZWRBY3Rpb24gb25DbGljaz17b25Db2xvckFkZH0gY2xhc3NOYW1lPVwiYWRkY29sb3JcIj5cbiAgICA8SWNvbkNvbXBvbmVudCBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgPC9TdHlsZWRBY3Rpb24+XG4pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlQ29sb3JTdG9wID0gKHtvbkNvbG9yRGVsZXRlLCBJY29uQ29tcG9uZW50fSkgPT4gKFxuICA8U3R5bGVkQWN0aW9uIG9uQ2xpY2s9e29uQ29sb3JEZWxldGV9IGNsYXNzTmFtZT1cInRyYXNoYmluXCI+XG4gICAgPEljb25Db21wb25lbnQgaGVpZ2h0PVwiMTRweFwiIC8+XG4gIDwvU3R5bGVkQWN0aW9uPlxuKTtcblxuZXhwb3J0IGNvbnN0IEN1c3RvbVBhbGV0dGVJbnB1dDogUmVhY3QuRkM8Q3VzdG9tUGFsZXR0ZUlucHV0UHJvcHM+ID0gKHtcbiAgaW5kZXgsXG4gIGlzU29ydGluZyxcbiAgY29sb3IsXG4gIGNvbG9yQnJlYWtzLFxuICBpbnB1dENvbG9ySGV4LFxuICBlZGl0Q29sb3JNYXBWYWx1ZSxcbiAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gIGRpc2FibGVBcHBlbmQsXG4gIGRpc2FibGVEZWxldGUsXG4gIG9uRGVsZXRlLFxuICBvbkFkZCxcbiAgb25Ub2dnbGVTa2V0Y2hlclxufSkgPT4ge1xuICBjb25zdCBvbkNsaWNrU3d0YWNoID0gdXNlQ2FsbGJhY2soKCkgPT4gb25Ub2dnbGVTa2V0Y2hlcihpbmRleCksIFtvblRvZ2dsZVNrZXRjaGVyLCBpbmRleF0pO1xuICBjb25zdCBvbkNvbG9ySW5wdXQgPSB1c2VDYWxsYmFjayh2ID0+IGlucHV0Q29sb3JIZXgoaW5kZXgsIHYpLCBbaW5wdXRDb2xvckhleCwgaW5kZXhdKTtcbiAgY29uc3Qgb25Db2xvckRlbGV0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IG9uRGVsZXRlKGluZGV4KSwgW29uRGVsZXRlLCBpbmRleF0pO1xuICBjb25zdCBvbkNvbG9yQWRkID0gdXNlQ2FsbGJhY2soKCkgPT4gb25BZGQoaW5kZXgpLCBbb25BZGQsIGluZGV4XSk7XG4gIGNvbnN0IHNob3dIZXhJbnB1dCA9ICFjb2xvckJyZWFrcztcblxuICByZXR1cm4gKFxuICAgIDxTb3J0YWJsZUl0ZW0gaW5kZXg9e2luZGV4fSBpc1NvcnRpbmc9e2lzU29ydGluZ30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlLWlucHV0X19sZWZ0XCI+XG4gICAgICAgIDxEcmFnSGFuZGxlIGNsYXNzTmFtZT1cImxheWVyX19kcmFnLWhhbmRsZVwiPlxuICAgICAgICAgIDxhY3Rpb25JY29ucy5zb3J0IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L0RyYWdIYW5kbGU+XG4gICAgICAgIDxDb2xvclN3YXRjaCBjb2xvcj17Y29sb3J9IG9uQ2xpY2s9e29uQ2xpY2tTd3RhY2h9IC8+XG4gICAgICAgIHtzaG93SGV4SW5wdXQgPyAoXG4gICAgICAgICAgPFN0eWxlZENvbG9ySGV4SW5wdXQ+XG4gICAgICAgICAgICA8Q29sb3JQYWxldHRlSW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbG9yLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNvbG9ySW5wdXR9XG4gICAgICAgICAgICAgIGlkPXtgaW5wdXQtbGF5ZXItbGFiZWwtJHtpbmRleH1gfVxuICAgICAgICAgICAgICBlZGl0YWJsZVxuICAgICAgICAgICAgICB0ZXh0QWxpZ249XCJsZWZ0XCJcbiAgICAgICAgICAgICAgd2lkdGg9XCI3MHB4XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRDb2xvckhleElucHV0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2lzTnVtZXJpY0NvbG9yQnJlYWtzKGNvbG9yQnJlYWtzKSA/IChcbiAgICAgICAgICA8RWRpdGFibGVDb2xvclJhbmdlXG4gICAgICAgICAgICBpdGVtPXtjb2xvckJyZWFrc1tpbmRleF19XG4gICAgICAgICAgICBpc0xhc3Q9e2luZGV4ID09PSBjb2xvckJyZWFrcy5sZW5ndGggLSAxfVxuICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgZWRpdENvbG9yTWFwPXtlZGl0Q29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgIGVkaXRhYmxlXG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaW5wdXRfX3JpZ2h0XCI+XG4gICAgICAgIHshZGlzYWJsZUFwcGVuZCA/IChcbiAgICAgICAgICA8QWRkQ29sb3JTdG9wIG9uQ29sb3JBZGQ9e29uQ29sb3JBZGR9IEljb25Db21wb25lbnQ9e2FjdGlvbkljb25zLmFkZH0gLz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHshZGlzYWJsZURlbGV0ZSA/IChcbiAgICAgICAgICA8RGVsZXRlQ29sb3JTdG9wIG9uQ29sb3JEZWxldGU9e29uQ29sb3JEZWxldGV9IEljb25Db21wb25lbnQ9e2FjdGlvbkljb25zLmRlbGV0ZX0gLz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2Rpdj5cbiAgICA8L1NvcnRhYmxlSXRlbT5cbiAgKTtcbn07XG5cbmNvbnN0IFN0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXJXcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2NhdGVnb3JpY2FsLXZhbHVlLXBpY2tlcidcbn0pYFxuICB3aWR0aDogMTUwcHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Q29sb3J9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBjb2x1bW4tZ2FwOiA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbmA7XG5cbnR5cGUgU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlclByb3BzID0ge25vQm9yZGVyOiBib29sZWFufTtcbmNvbnN0IFN0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXIgPSBzdHlsZWQuZGl2PFN0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXJQcm9wcz5gXG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBib3JkZXItYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5ub0JvcmRlciA/ICcnIDogJzFweCBkYXNoZWQnKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogMTAwcHg7XG5gO1xuXG50eXBlIERyb3Bkb3duVmFsdWVzV3JhcHBlclByb3BzID0ge3dpZHRoOiBudW1iZXJ9O1xuY29uc3QgRHJvcGRvd25WYWx1ZXNXcmFwcGVyID0gc3R5bGVkLmRpdjxEcm9wZG93blZhbHVlc1dyYXBwZXJQcm9wcz5gXG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWn07XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuYDtcblxudHlwZSBTZWxlY3RlZFZhbHVlc1dyYXBwZXJQcm9wcyA9IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn07XG5jb25zdCBTZWxlY3RlZFZhbHVlc1dyYXBwZXIgPSBzdHlsZWQoRHJvcGRvd25WYWx1ZXNXcmFwcGVyKTxTZWxlY3RlZFZhbHVlc1dyYXBwZXJQcm9wcz5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICBtYXgtaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLmhlaWdodH1weDtcbiAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgLmN1c3RvbS1wYWxldHRlLWNoaWNrbGV0ZWQtaW5wdXQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV3JhcHBlclp9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWREcm9wZG93bkhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRDb2xvcn07XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBmb250LXNpemU6IDEwcHg7XG5cbiAgLmJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRUb29sdGlwQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDhweDtcbiAgd2lkdGg6IDE1MHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG5cbiAgZGl2IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cbmA7XG5cbmNvbnN0IE5VTUJFUl9WQUxVRVNfSU5fVE9PTFRJUCA9IDEwO1xuXG5jb25zdCBDYXRlZ29yaWNhbFNlbGVjdG9yQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICBvblNlbGVjdFJlc3Q6ICgpID0+IG51bGwsXG4gIG9uUmVzZXQ6ICgpID0+IG51bGxcbn0pO1xuXG4vLyBDYXRlZ29yaWNhbCB2YWx1ZXMgZHJvcGRvd25saXN0OlxuLy8gZXh0ZW5kaW5nIERyb3Bkb3duTGlzdCBhbmQgYWRkaW5nICdTZWxlY3QgdGhlIFJlc3QnIGFuZCAnUmVzZXQnIGJ1dHRvbnNcbmNsYXNzIE1vZGlmaWVkRHJvcGRvd25MaXN0IGV4dGVuZHMgRHJvcGRvd25MaXN0IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxDYXRlZ29yaWNhbFNlbGVjdG9yQ29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgICB7Y29udGV4dCA9PiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8U3R5bGVkRHJvcGRvd25IZWFkZXI+XG4gICAgICAgICAgICAgICAgPEJ1dHRvbiBsaW5rIHNpemU9XCJzbWFsXCIgb25DbGljaz17Y29udGV4dC5vblNlbGVjdFJlc3R9PlxuICAgICAgICAgICAgICAgICAgU2VsZWN0IHRoZSBSZXN0XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgPEJ1dHRvbiBsaW5rIHNpemU9XCJzbWFsXCIgb25DbGljaz17Y29udGV4dC5vblJlc2V0fT5cbiAgICAgICAgICAgICAgICAgIFJlc2V0XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIDwvU3R5bGVkRHJvcGRvd25IZWFkZXI+XG4gICAgICAgICAgICAgIDxEaXZpZGVyTGluZSAvPlxuICAgICAgICAgICAgICA8RHJvcGRvd25MaXN0IHsuLi50aGlzLnByb3BzfSAvPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9DYXRlZ29yaWNhbFNlbGVjdG9yQ29udGV4dC5Db25zdW1lcj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQ2F0ZWdvcmljYWxTZWxlY3RvclByb3BzID0ge1xuICBpbmRleDogbnVtYmVyO1xuICBzZWxlY3RlZFZhbHVlczogKHN0cmluZyB8IG51bWJlciB8IG51bGwpW107XG4gIGFsbFZhbHVlczogc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgYWRkQ29sb3JNYXBWYWx1ZT86ICh2OiAobnVtYmVyIHwgc3RyaW5nIHwgbnVsbClbXSwgaTogbnVtYmVyKSA9PiB2b2lkO1xuICByZW1vdmVDb2xvck1hcFZhbHVlPzogKHY6IG51bWJlciB8IHN0cmluZywgaTogbnVtYmVyKSA9PiB2b2lkO1xuICByZXNldENvbG9yTWFwVmFsdWU/OiAoaTogbnVtYmVyKSA9PiB2b2lkO1xuICBzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZT86IChpOiBudW1iZXIpID0+IHZvaWQ7XG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcbn07XG5cbi8vIENhdGVnb3JpY2FsIHZhbHVlcyBzZWxlY3RvciBmb3IgZWRpdGluZyBjYXRlZ29yaWNhbCB2YWx1ZXNcbmV4cG9ydCBjb25zdCBDYXRlZ29yaWNhbFNlbGVjdG9yOiBSZWFjdC5GQzxDYXRlZ29yaWNhbFNlbGVjdG9yUHJvcHM+ID0gKHtcbiAgaW5kZXgsXG4gIHNlbGVjdGVkVmFsdWVzLFxuICBhbGxWYWx1ZXMsXG4gIGFkZENvbG9yTWFwVmFsdWUsXG4gIHJlbW92ZUNvbG9yTWFwVmFsdWUsXG4gIHJlc2V0Q29sb3JNYXBWYWx1ZSxcbiAgc2VsZWN0UmVzdENvbG9yTWFwVmFsdWUsXG4gIGVkaXRhYmxlID0gdHJ1ZVxufTogQ2F0ZWdvcmljYWxTZWxlY3RvclByb3BzKSA9PiB7XG4gIGNvbnN0IFtzaG93VHlwZWFoZWFkLCBzZXRTaG93VHlwZWFoZWFkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBvbk9wdGlvblNlbGVjdGVkID0gdXNlQ2FsbGJhY2soXG4gICAgdmFsdWUgPT4ge1xuICAgICAgY29uc3QgcHJldmlvdXNTZWxlY3RlZCA9IHRvQXJyYXkoc2VsZWN0ZWRWYWx1ZXMpO1xuICAgICAgY29uc3QgaXRlbXMgPSB1bmlxKHByZXZpb3VzU2VsZWN0ZWQuY29uY2F0KHRvQXJyYXkodmFsdWUpKSk7XG4gICAgICBhZGRDb2xvck1hcFZhbHVlPy4oaXRlbXMsIGluZGV4KTtcbiAgICB9LFxuICAgIFtzZWxlY3RlZFZhbHVlcywgaW5kZXgsIGFkZENvbG9yTWFwVmFsdWVdXG4gICk7XG5cbiAgY29uc3Qgb25PcGVuRHJvcGRvd24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U2hvd1R5cGVhaGVhZCh0cnVlKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IG9uQ2xvc2VEcm9wZG93biA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRTaG93VHlwZWFoZWFkKGZhbHNlKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IG9uUmVtb3ZlSXRlbSA9IHVzZUNhbGxiYWNrKFxuICAgIHZhbHVlID0+IHtcbiAgICAgIHJlbW92ZUNvbG9yTWFwVmFsdWU/Lih2YWx1ZSwgaW5kZXgpO1xuICAgIH0sXG4gICAgW2luZGV4LCByZW1vdmVDb2xvck1hcFZhbHVlXVxuICApO1xuXG4gIGNvbnN0IG9uUmVzZXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgcmVzZXRDb2xvck1hcFZhbHVlPy4oaW5kZXgpO1xuICAgIHNldFNob3dUeXBlYWhlYWQoZmFsc2UpO1xuICAgIHJldHVybiBudWxsO1xuICB9LCBbcmVzZXRDb2xvck1hcFZhbHVlLCBpbmRleF0pO1xuXG4gIGNvbnN0IG9uU2VsZWN0UmVzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZT8uKGluZGV4KTtcbiAgICBzZXRTaG93VHlwZWFoZWFkKGZhbHNlKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW3NlbGVjdFJlc3RDb2xvck1hcFZhbHVlLCBpbmRleF0pO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXJXcmFwcGVyPlxuICAgICAge2VkaXRhYmxlICYmIDxBZGQgaGVpZ2h0PVwiMTJweFwiIG9uQ2xpY2s9e29uT3BlbkRyb3Bkb3dufSAvPn1cbiAgICAgIDxTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyXG4gICAgICAgIG5vQm9yZGVyPXtzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDAgfHwgIWVkaXRhYmxlfVxuICAgICAgICBvbkNsaWNrPXtvbk9wZW5Ecm9wZG93bn1cbiAgICAgICAgZGF0YS10aXBcbiAgICAgICAgZGF0YS1mb3I9e2BjYXRlZ29yeS12YWx1ZXMtJHtpbmRleH1gfVxuICAgICAgPlxuICAgICAgICB7c2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgPyAnQWRkIFZhbHVlJ1xuICAgICAgICAgIDogc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAxXG4gICAgICAgICAgPyBzZWxlY3RlZFZhbHVlc1swXVxuICAgICAgICAgIDogYCR7c2VsZWN0ZWRWYWx1ZXMubGVuZ3RofSBzZWxlY3RlZGB9XG4gICAgICAgIHtzZWxlY3RlZFZhbHVlcy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgICA8VG9vbHRpcCBpZD17YGNhdGVnb3J5LXZhbHVlcy0ke2luZGV4fWB9IHBsYWNlPVwidG9wXCIgaW50ZXJhY3RpdmU9e3RydWV9PlxuICAgICAgICAgICAgPFN0eWxlZFRvb2x0aXBDb250ZW50PlxuICAgICAgICAgICAgICB7c2VsZWN0ZWRWYWx1ZXMuc2xpY2UoMCwgTlVNQkVSX1ZBTFVFU19JTl9UT09MVElQKS5tYXAoKHZhbHVlLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPGRpdiBrZXk9e2l9Pnt2YWx1ZX08L2Rpdj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIHtzZWxlY3RlZFZhbHVlcy5sZW5ndGggPiBOVU1CRVJfVkFMVUVTX0lOX1RPT0xUSVAgJiYgPGRpdj4uLi48L2Rpdj59XG4gICAgICAgICAgICA8L1N0eWxlZFRvb2x0aXBDb250ZW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlcj5cbiAgICAgIHtlZGl0YWJsZSAmJiAoXG4gICAgICAgIDxQb3J0YWxlZCBsZWZ0PXswfSB0b3A9ezB9IGlzT3BlbmVkPXtzaG93VHlwZWFoZWFkfSBvbkNsb3NlPXtvbkNsb3NlRHJvcGRvd259PlxuICAgICAgICAgIHtzZWxlY3RlZFZhbHVlcy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgICAgIDxTZWxlY3RlZFZhbHVlc1dyYXBwZXIgd2lkdGg9ezI1MH0gaGVpZ2h0PXsyMDB9PlxuICAgICAgICAgICAgICA8Q2hpY2tsZXRlZElucHV0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnY3VzdG9tLXBhbGV0dGUtY2hpY2tsZXRlZC1pbnB1dCd9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17c2VsZWN0ZWRWYWx1ZXN9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9eycnfVxuICAgICAgICAgICAgICAgIHJlbW92ZUl0ZW09e29uUmVtb3ZlSXRlbX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBudWxsfVxuICAgICAgICAgICAgICAgIEN1c3RvbUNoaWNrbGV0Q29tcG9uZW50PXtudWxsfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9TZWxlY3RlZFZhbHVlc1dyYXBwZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8RHJvcGRvd25WYWx1ZXNXcmFwcGVyIHdpZHRoPXsyNTB9PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17e3Bvc2l0aW9uOiAncmVsYXRpdmUnfX0+XG4gICAgICAgICAgICAgIDxDYXRlZ29yaWNhbFNlbGVjdG9yQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgICAgICAgIHZhbHVlPXt7XG4gICAgICAgICAgICAgICAgICBvblJlc2V0LFxuICAgICAgICAgICAgICAgICAgb25TZWxlY3RSZXN0XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUeXBlYWhlYWRcbiAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0czogJ2xpc3Qtc2VsZWN0b3InLFxuICAgICAgICAgICAgICAgICAgICBpbnB1dDogJ3R5cGVhaGVhZF9faW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nLFxuICAgICAgICAgICAgICAgICAgICBsaXN0QW5jaG9yOiAnbGlzdF9faXRlbV9fYW5jaG9yJ1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e2FsbFZhbHVlc31cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXsnU2VhcmNoJ31cbiAgICAgICAgICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e29uT3B0aW9uU2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICBjdXN0b21MaXN0Q29tcG9uZW50PXtNb2RpZmllZERyb3Bkb3duTGlzdH1cbiAgICAgICAgICAgICAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PXtMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICAgIHNlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgICBzaG93T3B0aW9uc1doZW5FbXB0eVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17c2VsZWN0ZWRWYWx1ZXN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9DYXRlZ29yaWNhbFNlbGVjdG9yQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvRHJvcGRvd25WYWx1ZXNXcmFwcGVyPlxuICAgICAgICA8L1BvcnRhbGVkPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXJXcmFwcGVyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgQ2F0ZWdvcmljYWxDdXN0b21QYWxldHRlSW5wdXRQcm9wcyA9IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgaXNTb3J0aW5nOiBib29sZWFuO1xuICBjb2xvcjogSGV4Q29sb3I7XG4gIGNvbG9yTWFwPzogQ29sb3JNYXAgfCBudWxsO1xuICBhZGRDb2xvck1hcFZhbHVlOiAodjogKG51bWJlciB8IHN0cmluZyB8IG51bGwpW10sIGk6IG51bWJlcikgPT4gdm9pZDtcbiAgcmVtb3ZlQ29sb3JNYXBWYWx1ZTogKHY6IG51bWJlciB8IHN0cmluZywgaTogbnVtYmVyKSA9PiB2b2lkO1xuICByZXNldENvbG9yTWFwVmFsdWU6IChpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlOiAoaTogbnVtYmVyKSA9PiB2b2lkO1xuICBhY3Rpb25JY29ucz86IEFjdGlvbkljb25zO1xuICBvbkRlbGV0ZTogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uQWRkOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgb25Ub2dnbGVTa2V0Y2hlcjogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIGFsbFZhbHVlczogc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgZGlzYWJsZURlbGV0ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgQ2F0ZWdvcmljYWxDdXN0b21QYWxldHRlSW5wdXQ6IFJlYWN0LkZDPENhdGVnb3JpY2FsQ3VzdG9tUGFsZXR0ZUlucHV0UHJvcHM+ID0gKHtcbiAgaW5kZXgsXG4gIGlzU29ydGluZyxcbiAgY29sb3IsXG4gIGNvbG9yTWFwLFxuICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29ucyxcbiAgb25EZWxldGUsXG4gIGRpc2FibGVEZWxldGUsXG4gIG9uVG9nZ2xlU2tldGNoZXIsXG4gIGFkZENvbG9yTWFwVmFsdWUsXG4gIHJlbW92ZUNvbG9yTWFwVmFsdWUsXG4gIHJlc2V0Q29sb3JNYXBWYWx1ZSxcbiAgc2VsZWN0UmVzdENvbG9yTWFwVmFsdWUsXG4gIGFsbFZhbHVlc1xufTogQ2F0ZWdvcmljYWxDdXN0b21QYWxldHRlSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCBzZWxlY3RlZFZhbHVlczogKG51bWJlciB8IHN0cmluZyB8IG51bGwpW10gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNvbG9yTWFwIHx8ICFjb2xvck1hcFtpbmRleF0pIHJldHVybiBbXTtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbG9yTWFwW2luZGV4XVswXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogdmFsdWUgIT09IG51bGwgPyBbdmFsdWVdIDogW107XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfSwgW2NvbG9yTWFwLCBpbmRleF0pO1xuXG4gIGNvbnN0IG9uQ2xpY2tTd3RhY2ggPSB1c2VDYWxsYmFjaygoKSA9PiBvblRvZ2dsZVNrZXRjaGVyKGluZGV4KSwgW29uVG9nZ2xlU2tldGNoZXIsIGluZGV4XSk7XG4gIGNvbnN0IG9uQ29sb3JEZWxldGUgPSB1c2VDYWxsYmFjaygoKSA9PiBvbkRlbGV0ZShpbmRleCksIFtvbkRlbGV0ZSwgaW5kZXhdKTtcblxuICByZXR1cm4gKFxuICAgIDxTb3J0YWJsZUl0ZW0gaW5kZXg9e2luZGV4fSBpc1NvcnRpbmc9e2lzU29ydGluZ30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlLWlucHV0X19sZWZ0XCI+XG4gICAgICAgIDxEcmFnSGFuZGxlIGNsYXNzTmFtZT1cImxheWVyX19kcmFnLWhhbmRsZVwiPlxuICAgICAgICAgIDxhY3Rpb25JY29ucy5zb3J0IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L0RyYWdIYW5kbGU+XG4gICAgICAgIDxDb2xvclN3YXRjaCBjb2xvcj17Y29sb3J9IG9uQ2xpY2s9e29uQ2xpY2tTd3RhY2h9IC8+XG4gICAgICAgIHtjb2xvck1hcCAmJiBjb2xvck1hcFtpbmRleF0gJiYgKFxuICAgICAgICAgIDxDYXRlZ29yaWNhbFNlbGVjdG9yXG4gICAgICAgICAgICBzZWxlY3RlZFZhbHVlcz17c2VsZWN0ZWRWYWx1ZXN9XG4gICAgICAgICAgICBhbGxWYWx1ZXM9e2FsbFZhbHVlc31cbiAgICAgICAgICAgIGFkZENvbG9yTWFwVmFsdWU9e2FkZENvbG9yTWFwVmFsdWV9XG4gICAgICAgICAgICByZW1vdmVDb2xvck1hcFZhbHVlPXtyZW1vdmVDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgcmVzZXRDb2xvck1hcFZhbHVlPXtyZXNldENvbG9yTWFwVmFsdWV9XG4gICAgICAgICAgICBzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZT17c2VsZWN0UmVzdENvbG9yTWFwVmFsdWV9XG4gICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZS1pbnB1dF9fcmlnaHRcIj5cbiAgICAgICAgeyFkaXNhYmxlRGVsZXRlID8gKFxuICAgICAgICAgIDxEZWxldGVDb2xvclN0b3Agb25Db2xvckRlbGV0ZT17b25Db2xvckRlbGV0ZX0gSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMuZGVsZXRlfSAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgIDwvU29ydGFibGVJdGVtPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IEJvdHRvbUFjdGlvbiA9ICh7b25DYW5jZWwsIG9uQ29uZmlybX0pID0+IChcbiAgPFN0eWxlZEJ1dHRvbkNvbnRhaW5lcj5cbiAgICA8QnV0dG9uIGNsYXNzTmFtZT1cImNvbmZpcm0tYXBwbHlfX2J1dHRvblwiIHNtYWxsIG9uQ2xpY2s9e29uQ29uZmlybX0+XG4gICAgICBDb25maXJtXG4gICAgPC9CdXR0b24+XG4gICAgPEJ1dHRvbiBsaW5rIHNtYWxsIG9uQ2xpY2s9e29uQ2FuY2VsfT5cbiAgICAgIENhbmNlbFxuICAgIDwvQnV0dG9uPlxuICA8L1N0eWxlZEJ1dHRvbkNvbnRhaW5lcj5cbik7XG5cbmNvbnN0IFN0eWxlZEN1c3RvbVBhbGV0dGUgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY3VzdG9tLXBhbGV0dGUnXG59KWBcbiAgbWFyZ2luLXRvcDogOHB4O1xuYDtcblxuZnVuY3Rpb24gQ3VzdG9tUGFsZXR0ZUZhY3RvcnkoKTogUmVhY3QuRkM8Q3VzdG9tUGFsZXR0ZVByb3BzPiB7XG4gIGNvbnN0IEN1c3RvbVBhbGV0dGU6IFJlYWN0LkZDPEN1c3RvbVBhbGV0dGVQcm9wcz4gPSAoe1xuICAgIG9yZGluYWxEb21haW4sXG4gICAgY3VzdG9tUGFsZXR0ZSxcbiAgICBzZXRDb2xvclBhbGV0dGVVSSxcbiAgICBzaG93U2tldGNoZXIsXG4gICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gICAgb25DYW5jZWwsXG4gICAgb25BcHBseVxuICB9KSA9PiB7XG4gICAgY29uc3QgW2lzU29ydGluZywgc2V0SXNTb3J0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB7Y29sb3JzLCBjb2xvck1hcH0gPSBjdXN0b21QYWxldHRlO1xuICAgIGNvbnN0IGNvbG9yQnJlYWtzID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGNvbG9yTWFwXG4gICAgICAgICAgPyBjdXN0b21QYWxldHRlLnR5cGUgPT09ICdjdXN0b20nXG4gICAgICAgICAgICA/IGNvbG9yTWFwVG9Db2xvckJyZWFrcyhjb2xvck1hcClcbiAgICAgICAgICAgIDogY29sb3JNYXBUb0NhdGVnb3JpY2FsQ29sb3JCcmVha3MoY29sb3JNYXApXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgW2N1c3RvbVBhbGV0dGUudHlwZSwgY29sb3JNYXBdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uUGlja2VyVXBkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgICBjb2xvciA9PiB7XG4gICAgICAgIGlmIChjb2xvciAmJiBOdW1iZXIuaXNGaW5pdGUoc2hvd1NrZXRjaGVyKSkge1xuICAgICAgICAgIGNvbnN0IG5ld0N1c3RvbVBhbGV0dGUgPSB1cGRhdGVDdXN0b21QYWxldHRlQ29sb3IoXG4gICAgICAgICAgICBjdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgTnVtYmVyKHNob3dTa2V0Y2hlciksXG4gICAgICAgICAgICBjb2xvci5oZXhcbiAgICAgICAgICApO1xuICAgICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjdXN0b21QYWxldHRlLCBzaG93U2tldGNoZXIsIHNldENvbG9yUGFsZXR0ZVVJXVxuICAgICk7XG4gICAgY29uc3Qgb25Ub2dnbGVTa2V0Y2hlciA9IHVzZUNhbGxiYWNrKFxuICAgICAgdmFsID0+IHtcbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIHNob3dTa2V0Y2hlcjogdmFsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclBhbGV0dGVVSV1cbiAgICApO1xuICAgIGNvbnN0IG9uRGVsZXRlID0gdXNlQ2FsbGJhY2soXG4gICAgICBpbmRleCA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0N1c3RvbVBhbGV0dGUgPSByZW1vdmVDdXN0b21QYWxldHRlQ29sb3IoY3VzdG9tUGFsZXR0ZSwgaW5kZXgpO1xuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZTogbmV3Q3VzdG9tUGFsZXR0ZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbY3VzdG9tUGFsZXR0ZSwgc2V0Q29sb3JQYWxldHRlVUldXG4gICAgKTtcblxuICAgIGNvbnN0IG9uQWRkID0gdXNlQ2FsbGJhY2soXG4gICAgICBpbmRleCA9PiB7XG4gICAgICAgIC8vIGFkZCBjb2xvciBhdCB0aGUgZW5kXG4gICAgICAgIGNvbnN0IG5ld0N1c3RvbVBhbGV0dGUgPSBhZGRDdXN0b21QYWxldHRlQ29sb3IoY3VzdG9tUGFsZXR0ZSwgaW5kZXgpO1xuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZTogbmV3Q3VzdG9tUGFsZXR0ZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbY3VzdG9tUGFsZXR0ZSwgc2V0Q29sb3JQYWxldHRlVUldXG4gICAgKTtcblxuICAgIGNvbnN0IG9uQWRkQ2F0ZWdvcmljYWxTdGVwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25BZGQoY29sb3JzLmxlbmd0aCAtIDEpO1xuICAgIH0sIFtjb2xvcnMubGVuZ3RoLCBvbkFkZF0pO1xuXG4gICAgY29uc3Qgb25Td2F0Y2hDbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlU2tldGNoZXIoZmFsc2UpO1xuICAgIH0sIFtvblRvZ2dsZVNrZXRjaGVyXSk7XG5cbiAgICBjb25zdCBvbkNvbmZpcm0gPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uQ2FuY2VsKCk7XG4gICAgICAgIG9uQXBwbHkoZXZlbnQpO1xuICAgICAgfSxcbiAgICAgIFtvbkNhbmNlbCwgb25BcHBseV1cbiAgICApO1xuXG4gICAgY29uc3Qgb25Tb3J0RW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICAoe29sZEluZGV4LCBuZXdJbmRleH0pID0+IHtcbiAgICAgICAgY29uc3QgbmV3Q3VzdG9tUGFsZXR0ZSA9IHNvcnRDdXN0b21QYWxldHRlQ29sb3IoY3VzdG9tUGFsZXR0ZSwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgfSk7XG4gICAgICAgIHNldElzU29ydGluZyhmYWxzZSk7XG4gICAgICB9LFxuICAgICAgW2N1c3RvbVBhbGV0dGUsIHNldENvbG9yUGFsZXR0ZVVJLCBzZXRJc1NvcnRpbmddXG4gICAgKTtcblxuICAgIGNvbnN0IG9uU29ydFN0YXJ0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNTb3J0aW5nKHRydWUpO1xuICAgIH0sIFtzZXRJc1NvcnRpbmddKTtcblxuICAgIGNvbnN0IGlucHV0Q29sb3JIZXggPSB1c2VDYWxsYmFjayhcbiAgICAgIChpbmRleCwgdmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgbmV3Q3VzdG9tUGFsZXR0ZSA9IHVwZGF0ZUN1c3RvbVBhbGV0dGVDb2xvcihjdXN0b21QYWxldHRlLCBpbmRleCwgdmFsdWUpO1xuICAgICAgICAvLyBzZXRDb2xvcnMobmV3Q29sb3JzKTtcbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW2N1c3RvbVBhbGV0dGUsIHNldENvbG9yUGFsZXR0ZVVJXVxuICAgICk7XG5cbiAgICBjb25zdCBlZGl0Q29sb3JNYXBWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWN1c3RvbVBhbGV0dGUuY29sb3JNYXApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3Q29sb3JNYXAgPSBjdXN0b21QYWxldHRlLmNvbG9yTWFwLm1hcChcbiAgICAgICAgICAoY20sIGkpID0+IChpID09PSBpbmRleCA/IFt2YWx1ZSwgY21bMV1dIDogY20pIGFzIFtzdHJpbmcsIHN0cmluZ11cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBzb3J0IHRoZSB1c2VyIGlucHV0cyBpbiBjYXNlIHRoZSBicmVhayB2YWx1ZXMgYXJlIG5vdCBvcmRlcmVkXG4gICAgICAgIGNvbnN0IGJyZWFrcyA9IG5ld0NvbG9yTWFwXG4gICAgICAgICAgLm1hcChjbSA9PiBjbVswXSBhcyBzdHJpbmcgfCBudWxsKVxuICAgICAgICAgIC5zbGljZSgwLCAtMSlcbiAgICAgICAgICAuc29ydCgoYSwgYikgPT4gTnVtYmVyKGEpIC0gTnVtYmVyKGIpKVxuICAgICAgICAgIC5jb25jYXQobnVsbCk7XG4gICAgICAgIGNvbnN0IHNvcnRlZE5ld0NvbG9yTWFwOiBDb2xvck1hcCA9IG5ld0NvbG9yTWFwLm1hcCgoY20sIGkpID0+IFticmVha3NbaV0sIGNtWzFdXSk7XG5cbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IHtcbiAgICAgICAgICAgIC4uLmN1c3RvbVBhbGV0dGUsXG4gICAgICAgICAgICBjb2xvck1hcDogc29ydGVkTmV3Q29sb3JNYXBcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclBhbGV0dGVVSSwgY3VzdG9tUGFsZXR0ZV1cbiAgICApO1xuXG4gICAgLy8gcmVtb3ZlIGEgc2VsZWN0ZWQgY2F0ZWdvcnkgaXRlbSBmcm9tIGEgY29sb3IgbWFwXG4gICAgY29uc3QgcmVtb3ZlQ2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjb2xvck1hcCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZToge1xuICAgICAgICAgICAgLi4uY3VzdG9tUGFsZXR0ZSxcbiAgICAgICAgICAgIGNvbG9yTWFwOiByZW1vdmVDYXRlZ29yaWNhbFZhbHVlRnJvbUNvbG9yTWFwKGNvbG9yTWFwLCBpdGVtLCBpbmRleClcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclBhbGV0dGVVSSwgY3VzdG9tUGFsZXR0ZSwgY29sb3JNYXBdXG4gICAgKTtcblxuICAgIC8vIGFkZCBzZWxlY3RlZCBjYXRlZ29yaWNhbCBpdGVtcyB0byBhIGNvbG9yIG1hcFxuICAgIGNvbnN0IGFkZENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGl0ZW1zLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNvbG9yTWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiB7XG4gICAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgY29sb3JNYXA6IGFkZENhdGVnb3JpY2FsVmFsdWVzVG9Db2xvck1hcChjb2xvck1hcCwgaXRlbXMsIGluZGV4KVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJLCBjdXN0b21QYWxldHRlLCBjb2xvck1hcF1cbiAgICApO1xuXG4gICAgLy8gcmVzZXQgYSBjb2xvciBtYXBcbiAgICBjb25zdCByZXNldENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgaW5kZXggPT4ge1xuICAgICAgICBpZiAoIWNvbG9yTWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiB7XG4gICAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgY29sb3JNYXA6IHJlc2V0Q2F0ZWdvcmljYWxDb2xvck1hcEJ5SW5kZXgoY29sb3JNYXAsIGluZGV4KVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJLCBjdXN0b21QYWxldHRlLCBjb2xvck1hcF1cbiAgICApO1xuXG4gICAgLy8gc2VsZWN0IHRoZSByZXN0IHZhbHVlcyBmb3IgYSBjb2xvciBtYXBcbiAgICBjb25zdCBzZWxlY3RSZXN0Q2F0ZWdvcmljYWxDb2xvck1hcCA9IHVzZUNhbGxiYWNrKFxuICAgICAgaW5kZXggPT4ge1xuICAgICAgICBpZiAoIWNvbG9yTWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiB7XG4gICAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgY29sb3JNYXA6IHNlbGVjdFJlc3RDYXRlZ29yaWNhbENvbG9yTWFwQnlJbmRleChjb2xvck1hcCwgaW5kZXgsIG9yZGluYWxEb21haW4pXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbc2V0Q29sb3JQYWxldHRlVUksIGN1c3RvbVBhbGV0dGUsIGNvbG9yTWFwLCBvcmRpbmFsRG9tYWluXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEN1c3RvbVBhbGV0dGU+XG4gICAgICAgIDxXcmFwcGVkU29ydGFibGVDb250YWluZXJcbiAgICAgICAgICBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZV9fc29ydGFibGUtY29udGFpbmVyXCJcbiAgICAgICAgICBvblNvcnRFbmQ9e29uU29ydEVuZH1cbiAgICAgICAgICBvblNvcnRTdGFydD17b25Tb3J0U3RhcnR9XG4gICAgICAgICAgbG9ja0F4aXM9XCJ5XCJcbiAgICAgICAgICBoZWxwZXJDbGFzcz1cInNvcnRpbmctY29sb3JzXCJcbiAgICAgICAgICB1c2VEcmFnSGFuZGxlXG4gICAgICAgID5cbiAgICAgICAgICB7Y29sb3JzLm1hcCgoY29sb3IsIGluZGV4KSA9PlxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZS50eXBlID09PSAnY3VzdG9tJyA/IChcbiAgICAgICAgICAgICAgPEN1c3RvbVBhbGV0dGVJbnB1dFxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgY29sb3JCcmVha3M9e2NvbG9yQnJlYWtzfVxuICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICBpc1NvcnRpbmc9e2lzU29ydGluZ31cbiAgICAgICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICAgICAgaW5wdXRDb2xvckhleD17aW5wdXRDb2xvckhleH1cbiAgICAgICAgICAgICAgICBkaXNhYmxlQXBwZW5kPXtjb2xvcnMubGVuZ3RoID49IDIwfVxuICAgICAgICAgICAgICAgIGRpc2FibGVEZWxldGU9e2NvbG9ycy5sZW5ndGggPD0gMn1cbiAgICAgICAgICAgICAgICBhY3Rpb25JY29ucz17YWN0aW9uSWNvbnN9XG4gICAgICAgICAgICAgICAgb25BZGQ9e29uQWRkfVxuICAgICAgICAgICAgICAgIG9uRGVsZXRlPXtvbkRlbGV0ZX1cbiAgICAgICAgICAgICAgICBvblRvZ2dsZVNrZXRjaGVyPXtvblRvZ2dsZVNrZXRjaGVyfVxuICAgICAgICAgICAgICAgIGVkaXRDb2xvck1hcFZhbHVlPXtlZGl0Q29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIG9yZGluYWxEb21haW4gJiYgKFxuICAgICAgICAgICAgICAgIDxDYXRlZ29yaWNhbEN1c3RvbVBhbGV0dGVJbnB1dFxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGNvbG9yTWFwPXtjb2xvck1hcH1cbiAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGlzU29ydGluZz17aXNTb3J0aW5nfVxuICAgICAgICAgICAgICAgICAgY29sb3I9e2NvbG9yfVxuICAgICAgICAgICAgICAgICAgYWN0aW9uSWNvbnM9e2FjdGlvbkljb25zfVxuICAgICAgICAgICAgICAgICAgb25BZGQ9e29uQWRkfVxuICAgICAgICAgICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZURlbGV0ZT17Y29sb3JzLmxlbmd0aCA8PSAyfVxuICAgICAgICAgICAgICAgICAgb25Ub2dnbGVTa2V0Y2hlcj17b25Ub2dnbGVTa2V0Y2hlcn1cbiAgICAgICAgICAgICAgICAgIGFkZENvbG9yTWFwVmFsdWU9e2FkZENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgICAgIHJlbW92ZUNvbG9yTWFwVmFsdWU9e3JlbW92ZUNhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgICAgIHJlc2V0Q29sb3JNYXBWYWx1ZT17cmVzZXRDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWV9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZT17c2VsZWN0UmVzdENhdGVnb3JpY2FsQ29sb3JNYXB9XG4gICAgICAgICAgICAgICAgICBhbGxWYWx1ZXM9e29yZGluYWxEb21haW59XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICl9XG4gICAgICAgIDwvV3JhcHBlZFNvcnRhYmxlQ29udGFpbmVyPlxuICAgICAgICB7Y3VzdG9tUGFsZXR0ZS50eXBlID09PSAnY3VzdG9tT3JkaW5hbCcgJiYgKFxuICAgICAgICAgIDxTdHlsZWRBZGRTdGVwQ29udGFpbmVyPlxuICAgICAgICAgICAgPEFkZENvbG9yU3RvcCBvbkNvbG9yQWRkPXtvbkFkZENhdGVnb3JpY2FsU3RlcH0gSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMuYWRkfSAvPlxuICAgICAgICAgICAgPEJ1dHRvbiBsaW5rIHNpemU9XCJzbWFsXCIgb25DbGljaz17b25BZGRDYXRlZ29yaWNhbFN0ZXB9PlxuICAgICAgICAgICAgICBBZGQgU3RlcFxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9TdHlsZWRBZGRTdGVwQ29udGFpbmVyPlxuICAgICAgICApfVxuICAgICAgICA8RGl2aWRlckxpbmUgLz5cbiAgICAgICAgey8qIENhbmNlbCBvciBDb25maXJtIEJ1dHRvbnMgKi99XG4gICAgICAgIDxCb3R0b21BY3Rpb24gb25DYW5jZWw9e29uQ2FuY2VsfSBvbkNvbmZpcm09e29uQ29uZmlybX0gLz5cbiAgICAgICAgPFBvcnRhbGVkIGlzT3BlbmVkPXtzaG93U2tldGNoZXIgIT09IGZhbHNlfSBsZWZ0PXsyODB9IHRvcD17LTMwMH0gb25DbG9zZT17b25Td2F0Y2hDbG9zZX0+XG4gICAgICAgICAgPEN1c3RvbVBpY2tlciBjb2xvcj17Y29sb3JzW051bWJlcihzaG93U2tldGNoZXIpXX0gb25DaGFuZ2U9e29uUGlja2VyVXBkYXRlfSAvPlxuICAgICAgICA8L1BvcnRhbGVkPlxuICAgICAgPC9TdHlsZWRDdXN0b21QYWxldHRlPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIEN1c3RvbVBhbGV0dGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEN1c3RvbVBhbGV0dGVGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBU0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQU9BLElBQUFLLGlCQUFBLEdBQUFILHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxTQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxrQkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsZ0JBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLGFBQUEsR0FBQVIsdUJBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFXLFlBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFVBQUEsR0FBQVosT0FBQTtBQUVBLElBQUFhLE1BQUEsR0FBQWIsT0FBQTtBQWNB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
|