raise-common-lib 0.0.235-beta → 0.0.236-beta
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/README.md +57 -57
- package/bundles/raise-common-lib.umd.js +62 -30
- package/bundles/raise-common-lib.umd.js.map +1 -1
- package/bundles/raise-common-lib.umd.min.js +1 -1
- package/bundles/raise-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/commentary/index.component.js +3 -2
- package/esm2015/lib/common-grid/grid-action/grid-action.component.js +3 -2
- package/esm2015/lib/common-grid/index.component.js +3 -2
- package/esm2015/lib/dashboard/dashboard-properties/data-mart-new/data-mart-new.component.js +4 -3
- package/esm2015/lib/dashboard/dashboardPorlets.service.js +4 -3
- package/esm2015/lib/dashboard/dialog-group/download/index.component.js +3 -2
- package/esm2015/lib/dashboard/gadget-group/gadget-pivot/gadget-pivot.component.js +3 -2
- package/esm2015/lib/dashboard/gadget-group/gadget-pivot-chart/gadget-pivot.component.js +3 -2
- package/esm2015/lib/dashboard/gadget-group/gadget-table/gadget-table.component.js +3 -2
- package/esm2015/lib/dashboard/gadget-group/gadget-transpose/gadget-transpose.component.js +3 -2
- package/esm2015/lib/dashboard/pane-group-new.component.js +4 -3
- package/esm2015/lib/dashboard/sidebar-iconlist/field-filter/field-filter.component.js +3 -2
- package/esm2015/lib/dashboard/sidebar-iconlist/field-format/field-format.component.js +3 -2
- package/esm2015/lib/dashboard/sidebar-iconlist/portlet-type-new/portlet-type-new.component.js +3 -2
- package/esm2015/lib/dashboard/sidebar-iconlist/sidebar-iconlist-new.component.js +4 -3
- package/esm2015/lib/dialog/common-delete-dialog/index.component.js +3 -2
- package/esm2015/lib/dialog/common-dialog/index.component.js +3 -2
- package/esm2015/lib/form/checkbox-group/index.component.js +3 -2
- package/esm2015/lib/form/confirm-select/index.component.js +3 -2
- package/esm2015/lib/form/search-input/index.component.js +3 -2
- package/esm2015/lib/layout/grid-box/index.component.js +3 -2
- package/esm2015/lib/layout/multi-tab/index.component.js +3 -2
- package/esm2015/lib/layout/page-list/index.component.js +3 -2
- package/esm2015/lib/layout/rs-header/index.component.js +5 -4
- package/esm2015/lib/service/dialog.service.js +3 -2
- package/esm2015/lib/utils/utils.js +32 -0
- package/esm5/lib/commentary/index.component.js +3 -2
- package/esm5/lib/common-grid/grid-action/grid-action.component.js +3 -2
- package/esm5/lib/common-grid/index.component.js +3 -2
- package/esm5/lib/dashboard/dashboard-properties/data-mart-new/data-mart-new.component.js +4 -3
- package/esm5/lib/dashboard/dashboardPorlets.service.js +4 -3
- package/esm5/lib/dashboard/dialog-group/download/index.component.js +3 -2
- package/esm5/lib/dashboard/gadget-group/gadget-pivot/gadget-pivot.component.js +3 -2
- package/esm5/lib/dashboard/gadget-group/gadget-pivot-chart/gadget-pivot.component.js +3 -2
- package/esm5/lib/dashboard/gadget-group/gadget-table/gadget-table.component.js +3 -2
- package/esm5/lib/dashboard/gadget-group/gadget-transpose/gadget-transpose.component.js +3 -2
- package/esm5/lib/dashboard/pane-group-new.component.js +4 -3
- package/esm5/lib/dashboard/sidebar-iconlist/field-filter/field-filter.component.js +3 -2
- package/esm5/lib/dashboard/sidebar-iconlist/field-format/field-format.component.js +3 -2
- package/esm5/lib/dashboard/sidebar-iconlist/portlet-type-new/portlet-type-new.component.js +3 -2
- package/esm5/lib/dashboard/sidebar-iconlist/sidebar-iconlist-new.component.js +4 -3
- package/esm5/lib/dialog/common-delete-dialog/index.component.js +3 -2
- package/esm5/lib/dialog/common-dialog/index.component.js +3 -2
- package/esm5/lib/form/checkbox-group/index.component.js +3 -2
- package/esm5/lib/form/confirm-select/index.component.js +3 -2
- package/esm5/lib/form/search-input/index.component.js +3 -2
- package/esm5/lib/layout/grid-box/index.component.js +3 -2
- package/esm5/lib/layout/multi-tab/index.component.js +3 -2
- package/esm5/lib/layout/page-list/index.component.js +3 -2
- package/esm5/lib/layout/rs-header/index.component.js +5 -4
- package/esm5/lib/service/dialog.service.js +3 -2
- package/esm5/lib/utils/utils.js +32 -0
- package/fesm2015/raise-common-lib.js +62 -30
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +62 -30
- package/fesm5/raise-common-lib.js.map +1 -1
- package/lib/utils/utils.d.ts +1 -0
- package/package.json +1 -1
- package/raise-common-lib.metadata.json +1 -1
- package/src/assets/img/arrow_right.svg +4 -4
- package/src/assets/img/calendar-disabled.svg +6 -6
- package/src/assets/img/calendar.svg +6 -6
- package/src/assets/img/calendar_arrow_left.svg +3 -3
- package/src/assets/img/calendar_arrow_right.svg +3 -3
- package/src/assets/img/checked-vector.svg +3 -3
- package/src/assets/img/dialog-close.svg +4 -4
- package/src/assets/img/dialog-grow.svg +6 -6
- package/src/assets/img/dialog-shrink.svg +6 -6
- package/src/assets/img/plus.svg +4 -4
- package/src/assets/img/search.svg +4 -4
- package/src/assets/img/shrink-icon.svg +6 -6
- package/src/assets/img/time-disabled.svg +4 -4
- package/src/assets/img/time.svg +4 -4
- package/src/assets/img/toolbar-action-addFolder.svg +17 -17
- package/src/assets/img/toolbar-action-calculator.svg +11 -11
- package/src/assets/img/toolbar-action-collapse.svg +7 -7
- package/src/assets/img/toolbar-action-combine.svg +4 -4
- package/src/assets/img/toolbar-action-edit.svg +4 -4
- package/src/assets/img/toolbar-action-expand.svg +7 -7
- package/src/assets/img/toolbar-action-folderMove.svg +8 -8
- package/src/assets/img/toolbar-action-lock.svg +6 -6
- package/src/assets/img/toolbar-action-preview.svg +7 -7
- package/src/assets/img/toolbar-action-publish.svg +5 -5
- package/src/assets/img/toolbar-action-reminders.svg +10 -10
- package/src/assets/img/toolbar-action-rename.svg +7 -7
- package/src/assets/img/toolbar-action-saveSequence.svg +5 -5
- package/src/assets/img/toolbar-action-send-file.svg +5 -5
- package/src/assets/img/toolbar-action-settle.svg +7 -7
- package/src/assets/img/toolbar-action-share.svg +5 -5
- package/src/assets/img/toolbar-action-submitForApproval.svg +4 -4
- package/src/assets/img/toolbar-action-sync.svg +4 -4
- package/src/assets/img/toolbar-action-template.svg +6 -6
- package/src/assets/img/toolbar-action-workflow.svg +9 -9
|
@@ -10,6 +10,7 @@ import { DashboardPorletsService } from "../../dashboardPorlets.service";
|
|
|
10
10
|
import { HttpClient } from "@angular/common/http";
|
|
11
11
|
import { ApiList } from "../../api";
|
|
12
12
|
import { find } from "lodash";
|
|
13
|
+
import { getTranslation } from "../../../utils/utils";
|
|
13
14
|
var PaneDownloadComponent = /** @class */ (function () {
|
|
14
15
|
function PaneDownloadComponent(data, dialogRef, DashboardPorletsService, httpClient, api, ref) {
|
|
15
16
|
if (data === void 0) { data = {
|
|
@@ -32,7 +33,7 @@ var PaneDownloadComponent = /** @class */ (function () {
|
|
|
32
33
|
*/
|
|
33
34
|
function () {
|
|
34
35
|
var _this = this;
|
|
35
|
-
this.translation =
|
|
36
|
+
this.translation = getTranslation();
|
|
36
37
|
this.portlets = this.data.portlets.filter((/**
|
|
37
38
|
* @param {?} item
|
|
38
39
|
* @return {?}
|
|
@@ -438,4 +439,4 @@ if (false) {
|
|
|
438
439
|
*/
|
|
439
440
|
PaneDownloadComponent.prototype.ref;
|
|
440
441
|
}
|
|
441
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9kYXNoYm9hcmQvZGlhbG9nLWdyb3VwL2Rvd25sb2FkL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQ04sU0FBUyxFQUVULE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTXBDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFPOUI7SUFjQywrQkFFUSxJQUdOLEVBQ00sU0FBOEMsRUFDN0MsdUJBQWdELEVBQ2hELFVBQXNCLEVBQ3RCLEdBQVksRUFDWixHQUFzQjtRQVJ2QixxQkFBQSxFQUFBO1lBQ04sUUFBUSxFQUFFLEVBQUU7WUFDWixTQUFTLEVBQUUsSUFBSTtTQUNmO1FBSE0sU0FBSSxHQUFKLElBQUksQ0FHVjtRQUNNLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQzdDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFTO1FBQ1osUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFaL0IsYUFBUSxHQUFHLEVBQUUsQ0FBQztJQWFYLENBQUM7Ozs7SUFFSix3Q0FBUTs7O0lBQVI7UUFBQSxpQkFNQztRQUxBLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZ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QUNWLE9BQU87Z0JBTGYsaUJBQWlCOzs7d0JBeUJoQixZQUFZLFNBQUMsUUFBUTt3QkFFckIsWUFBWSxTQUFDLFFBQVE7MkJBRXJCLFlBQVksU0FBQyxXQUFXOztJQXdOMUIsNEJBQUM7Q0FBQSxBQW5PRCxJQW1PQztTQTlOWSxxQkFBcUI7OztJQUNqQyw0Q0FBWTs7SUFDWixzQ0FDOEM7O0lBQzlDLHNDQUMwRTs7SUFDMUUseUNBQW1FOztJQUNuRSx5Q0FBYzs7SUFHYixxQ0FJQzs7SUFDRCwwQ0FBcUQ7Ozs7O0lBQ3JELHdEQUF3RDs7Ozs7SUFDeEQsMkNBQThCOzs7OztJQUM5QixvQ0FBb0I7Ozs7O0lBQ3BCLG9DQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdE9uSW5pdCxcclxuXHRJbmplY3QsXHJcblx0Vmlld0NoaWxkcmVuLFxyXG5cdFF1ZXJ5TGlzdCxcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vZGFzaGJvYXJkUG9ybGV0cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgQXBpTGlzdCB9IGZyb20gXCIuLi8uLi9hcGlcIjtcclxuaW1wb3J0IHtcclxuXHRFeGNlbEV4cG9ydFByb3BlcnRpZXMsXHJcblx0Q29sdW1uTW9kZWwsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWdyaWRzXCI7XHJcbmltcG9ydCB7IElBeGlzU2V0IH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBpdm90dmlld1wiO1xyXG5pbXBvcnQgeyBmaW5kIH0gZnJvbSBcImxvZGFzaFwiO1xyXG5cclxuaW1wb3J0IHsgR2FkZ2V0VGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vZ2FkZ2V0LWdyb3VwL2dhZGdldC10YWJsZS9nYWRnZXQtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEdhZGdldFBpdm90Q2hhcnRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vZ2FkZ2V0LWdyb3VwL2dhZGdldC1waXZvdC1jaGFydC9nYWRnZXQtcGl2b3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEdhZGdldFBpdm90Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2dhZGdldC1ncm91cC9nYWRnZXQtcGl2b3QvZ2FkZ2V0LXBpdm90LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCYXJDaGFydHNDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vYmFyLWNoYXJ0cy9iYXItY2hhcnRzLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwicnMtcGFuZS1kb3dubG9hZFwiLFxyXG5cdHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuXHRzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYW5lRG93bmxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdHRyYW5zbGF0aW9uO1xyXG5cdEBWaWV3Q2hpbGRyZW4oXCJkdGFibGVcIilcclxuXHRwdWJsaWMgdGFibGU6IFF1ZXJ5TGlzdDxHYWRnZXRUYWJsZUNvbXBvbmVudD47XHJcblx0QFZpZXdDaGlsZHJlbihcImRwaXZvdFwiKVxyXG5cdHB1YmxpYyBwaXZvdDogUXVlcnlMaXN0PEdhZGdldFBpdm90Q29tcG9uZW50IHwgR2FkZ2V0UGl2b3RDaGFydENvbXBvbmVudD47XHJcblx0QFZpZXdDaGlsZHJlbihcImRuZXdDaGFydFwiKSBuZXdDaGFydDogUXVlcnlMaXN0PEJhckNoYXJ0c0NvbXBvbmVudD47XHJcblx0cG9ydGxldHMgPSBbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcclxuXHRcdHB1YmxpYyBkYXRhOiBhbnkgPSB7XHJcblx0XHRcdHBvcnRsZXRzOiBbXSxcclxuXHRcdFx0ZGFzaGJvYXJkOiBudWxsLFxyXG5cdFx0fSxcclxuXHRcdHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQYW5lRG93bmxvYWRDb21wb25lbnQ+LFxyXG5cdFx0cHJpdmF0ZSBEYXNoYm9hcmRQb3JsZXRzU2VydmljZTogRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGFwaTogQXBpTGlzdCxcclxuXHRcdHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG5cdCkge31cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLnRyYW5zbGF0aW9uID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRyYW5zbGF0aW9uXCIpKTtcclxuXHRcdHRoaXMucG9ydGxldHMgPSB0aGlzLmRhdGEucG9ydGxldHMuZmlsdGVyKChpdGVtKSA9PiB7XHJcblx0XHRcdGNvbnN0IHR5cGUgPSB0aGlzLmdldFBvcnRsZXRUeXBlKGl0ZW0pO1xyXG5cdFx0XHRyZXR1cm4gdHlwZSAhPT0gXCJ0cmFuc3Bvc2VcIjtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Y2xvc2UoKSB7XHJcblx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZG93bmxvYWRBbGwoKSB7XHJcblx0XHRmb3IgKGxldCBwb3J0bGV0IG9mIHRoaXMucG9ydGxldHMpIHtcclxuXHRcdFx0YXdhaXQgdGhpcy5kb3dubG9hZChwb3J0bGV0KTtcclxuXHRcdH1cclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmNsb3NlKCk7XHJcblx0XHR9LCAyMDApO1xyXG5cdH1cclxuXHJcblx0R2V0Z2FkZ2V0VGl0bGUoY29uZmlnKSB7XHJcblx0XHRpZiAoY29uZmlnICYmIGNvbmZpZyAhPT0gXCJudWxsXCIpIHtcclxuXHRcdFx0bGV0IGNvbmZpZ18gPSBKU09OLnBhcnNlKGNvbmZpZyk7XHJcblx0XHRcdHJldHVybiBjb25maWdfLmdhZGdldFRpdGxlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIFwiXCI7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhc3luYyBkb3dubG9hZChpdGVtKSB7XHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcclxuXHRcdFx0Y29uc3QgcG9ydGxldFR5cGUgPSB0aGlzLmdldFBvcnRsZXRUeXBlKGl0ZW0pO1xyXG5cdFx0XHRjb25zdCB0aXRsZSA9IHRoaXMuR2V0Z2FkZ2V0VGl0bGUoaXRlbS5jb25maWcpO1xyXG5cdFx0XHRzd2l0Y2ggKHBvcnRsZXRUeXBlKSB7XHJcblx0XHRcdFx0Y2FzZSBcInRhYmxlXCI6XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLmRvd25sb2FkVGFibGUoaXRlbSwgdGl0bGUpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBcIm5ld2NoYXJ0XCI6XHJcblx0XHRcdFx0Y2FzZSBcInBpdm90XCI6XHJcblx0XHRcdFx0XHRjb25zdCBwaXZvdCA9IGZpbmQoXHJcblx0XHRcdFx0XHRcdCh0aGlzLnBpdm90IGFzIGFueSkuX3Jlc3VsdHMsXHJcblx0XHRcdFx0XHRcdChlbCkgPT4gZWwucG9ydGxldC5uZXdJZCA9PT0gaXRlbS5uZXdJZFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdGNvbnN0IGV4Y2VsRXhwb3J0UHJvcGVydGllc19waXZvdDogRXhjZWxFeHBvcnRQcm9wZXJ0aWVzID0ge1xyXG5cdFx0XHRcdFx0XHRmaWxlTmFtZTogdGl0bGVcclxuXHRcdFx0XHRcdFx0XHQ/IHRpdGxlICsgXCIueGxzeFwiXHJcblx0XHRcdFx0XHRcdFx0OiBcIlBpdm90LVwiICsgbmV3IERhdGUoKS50b0lTT1N0cmluZygpICsgXCIueGxzeFwiLFxyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdGlmIChwaXZvdC5waXZvdE9iai5kYXRhU291cmNlU2V0dGluZ3MuZm9ybWF0U2V0dGluZ3MpIHtcclxuXHRcdFx0XHRcdFx0cGl2b3QucGl2b3RPYmouZGF0YVNvdXJjZVNldHRpbmdzLmZvcm1hdFNldHRpbmdzLmZvckVhY2goXHJcblx0XHRcdFx0XHRcdFx0KHNldHRpbmcpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIHN5bmNmdXNpb24gZm9ybWF0IHRyYW5zZm9ybSB0byBleGNlbCBmb3JtYXRcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IG1hcCA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XCIjLCMjIywsLjA7KCMsIyMjLCwuMClcIjogJzAuMCwsXCJcIjsoMC4wLCwpJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0JzAuMCwsXCJcIjsoMC4wLCwpJzogXCIjLCMjIywsLjA7KCMsIyMjLCwuMClcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XCIjLCMjIywsOygjLCMjIywsKVwiOiAnMCwsXCJcIjsoMCwsKScsXHJcblx0XHRcdFx0XHRcdFx0XHRcdCcwLCxcIlwiOygwLCwpJzogXCIjLCMjIywsOygjLCMjIywsKVwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcIiMsIyMjLCwuMDA7KCMsIyMjLCwuMDApXCI6XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0JzAuMDAsLFwiXCI7KDAuMDAsLCknLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnMC4wMCwsXCJcIjsoMC4wMCwsKSc6XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XCIjLCMjIywsLjAwOygjLCMjIywsLjAwKVwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRpZiAobWFwW3NldHRpbmcuZm9ybWF0XSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzZXR0aW5nLmZvcm1hdCA9IG1hcFtzZXR0aW5nLmZvcm1hdF07XHJcblx0XHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNldHRpbmcuZm9ybWF0ID0gbWFwW3NldHRpbmcuZm9ybWF0XTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMudXBkYXRlRm9ybWF0KFxyXG5cdFx0XHRcdFx0XHRwaXZvdC5waXZvdE9iai5ncmlkLmNvbHVtbnMgYXMgQ29sdW1uTW9kZWxbXSxcclxuXHRcdFx0XHRcdFx0cGl2b3QucGl2b3RPYmpcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRwaXZvdC5waXZvdE9iai5leGNlbEV4cG9ydChleGNlbEV4cG9ydFByb3BlcnRpZXNfcGl2b3QpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBcIm5ld2NvbHVtblwiOlxyXG5cdFx0XHRcdGNhc2UgXCJuZXdsaW5lXCI6XHJcblx0XHRcdFx0Y2FzZSBcIm5ld2NvbHVtbmxpbmVcIjpcclxuXHRcdFx0XHRcdGNvbnN0IGNoYXJ0SWR4ID0gdGhpcy5nZXRDaGFydEluZGV4SW5BbGwoaXRlbSk7XHJcblx0XHRcdFx0XHRjb25zdCBzZWxlY3RlZENvbXBvbmVudCA9IHRoaXMubmV3Q2hhcnQudG9BcnJheSgpW2NoYXJ0SWR4XTtcclxuXHRcdFx0XHRcdHNlbGVjdGVkQ29tcG9uZW50LmV4cG9ydENoYXJ0KCk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXNvbHZlKHRydWUpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvLyDmoLnmja5pZHjojrflj5bngrnlh7vlm77ooajlnKjlm77ooajliJfooajph4znmoTnnJ/mraPpobrluo9cclxuXHRnZXRDaGFydEluZGV4SW5BbGwoaXRlbSkge1xyXG5cdFx0Y29uc3QgY2hhckFyciA9IHRoaXMucG9ydGxldHMuZmlsdGVyKChlKSA9PiB7XHJcblx0XHRcdHJldHVybiBbXCJuZXdjb2x1bW5cIiwgXCJuZXdsaW5lXCIsIFwibmV3Y29sdW1ubGluZVwiXS5pbmNsdWRlcyhcclxuXHRcdFx0XHRKU09OLnBhcnNlKGUuY29uZmlnKS5wb3J0bGV0VHlwZVxyXG5cdFx0XHQpO1xyXG5cdFx0fSk7XHJcblx0XHRsZXQgcmVzdWx0SWR4ID0gMDtcclxuXHRcdGlmIChjaGFyQXJyLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0Y2hhckFyci5mb3JFYWNoKChlLCBpZHgpID0+IHtcclxuXHRcdFx0XHRpZiAoZS5uZXdJZCA9PSBpdGVtLm5ld0lkKSB7XHJcblx0XHRcdFx0XHRyZXN1bHRJZHggPSBpZHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHRJZHg7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZG93bmxvYWRUYWJsZShpdGVtLCB0aXRsZSkge1xyXG5cdFx0Ly8gVGFibGUg5LiL6L295YWo6YOo5pWw5o2uXHJcblx0XHRsZXQgY29uZmlnID0gSlNPTi5wYXJzZShpdGVtLmNvbmZpZyk7XHJcblx0XHRsZXQgcGFnZVNldHRpbmcgPSBPYmplY3QuYXNzaWduKFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0Y3VycmVudFBhZ2U6IDEsXHJcblx0XHRcdFx0cGFnZVNpemU6IDk5OTk5OTksXHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbmZpZyAmJiBjb25maWcudGFibGVTb3J0U2V0dGluZ1xyXG5cdFx0KTtcclxuXHRcdGxldCBwYXJhbXMgPSB0aGlzLkRhc2hib2FyZFBvcmxldHNTZXJ2aWNlLmdldFBhcmFtc0J5UG9ydGxldChcclxuXHRcdFx0aXRlbSxcclxuXHRcdFx0cGFnZVNldHRpbmdcclxuXHRcdCk7XHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuXHRcdFx0Ly8ganNvbiBidWZmZXJcclxuXHRcdFx0dGhpcy5odHRwQ2xpZW50XHJcblx0XHRcdFx0LnBvc3QoXHJcblx0XHRcdFx0XHR0aGlzLmFwaS5iYXNldXJsICsgdGhpcy5hcGkudXJsTGlzdC5HZXRQb3J0bGV0RGF0YVYyLFxyXG5cdFx0XHRcdFx0cGFyYW1zXHJcblx0XHRcdFx0KVxyXG5cdFx0XHRcdC5zdWJzY3JpYmUoXHJcblx0XHRcdFx0XHQocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB0YWJsZSA9IGZpbmQoXHJcblx0XHRcdFx0XHRcdFx0XHQodGhpcy50YWJsZSBhcyBhbnkpLl9yZXN1bHRzLFxyXG5cdFx0XHRcdFx0XHRcdFx0KGVsKSA9PiBlbC5wb3J0bGV0Lm5ld0lkID09PSBpdGVtLm5ld0lkXHJcblx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBleGNlbEV4cG9ydFByb3BlcnRpZXM6IEV4Y2VsRXhwb3J0UHJvcGVydGllcyA9XHJcblx0XHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGZpbGVOYW1lOiB0aXRsZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdD8gdGl0bGUgKyBcIi54bHN4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ6IFwiVGFibGUtXCIgK1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAgbmV3IERhdGUoKS50b0lTT1N0cmluZygpICtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQgIFwiLnhsc3hcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gQHRzLWlnbm9yZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhU291cmNlOiByZXN1bHQuZGF0YSxcclxuXHRcdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRhYmxlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0YWJsZS5ncmlkLmV4Y2VsRXhwb3J0KGV4Y2VsRXhwb3J0UHJvcGVydGllcyk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0KHJlc3BvbnNlKSA9PiB7fSxcclxuXHRcdFx0XHRcdCgpID0+IHt9XHJcblx0XHRcdFx0KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB1cGRhdGVGb3JtYXQoY29sdW1uczogQ29sdW1uTW9kZWxbXSwgcGl2b3RPYmopIHtcclxuXHRcdHZhciBmTGlzdCA9IHBpdm90T2JqLnJlbmRlck1vZHVsZS5nZXRGb3JtYXRMaXN0KCk7XHJcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGNvbHVtbnMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdChjb2x1bW5zW2ldIGFzIENvbHVtbk1vZGVsKS5jb2x1bW5zICYmXHJcblx0XHRcdFx0KGNvbHVtbnNbaV0gYXMgQ29sdW1uTW9kZWwpLmNvbHVtbnMubGVuZ3RoID4gMFxyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHR0aGlzLnVwZGF0ZUZvcm1hdChcclxuXHRcdFx0XHRcdChjb2x1bW5zW2ldIGFzIENvbHVtbk1vZGVsKS5jb2x1bW5zIGFzIENvbHVtbk1vZGVsW10sXHJcblx0XHRcdFx0XHRwaXZvdE9ialxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0Y29sdW1uc1tpXS5jdXN0b21BdHRyaWJ1dGVzICYmXHJcblx0XHRcdFx0XHRmTGlzdFtcclxuXHRcdFx0XHRcdFx0KGNvbHVtbnNbaV0uY3VzdG9tQXR0cmlidXRlcy5jZWxsIGFzIElBeGlzU2V0KVxyXG5cdFx0XHRcdFx0XHRcdC5hY3R1YWxUZXh0XHJcblx0XHRcdFx0XHRdID09PSBcIk5cIlxyXG5cdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0KGNvbHVtbnNbaV0gYXMgQ29sdW1uTW9kZWwpLmZvcm1hdCA9IHVuZGVmaW5lZDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRQb3J0bGV0VHlwZShpdGVtKSB7XHJcblx0XHRjb25zdCBjb25maWcgPSBpdGVtICYmIGl0ZW0uY29uZmlnID8gSlNPTi5wYXJzZShpdGVtLmNvbmZpZykgOiB7fTtcclxuXHRcdGlmIChjb25maWcucG9ydGxldFR5cGUpIHtcclxuXHRcdFx0aWYgKGNvbmZpZy5wb3J0bGV0VHlwZSA9PT0gXCJoaXN0b3JpY2FsSVJSXCIpIHtcclxuXHRcdFx0XHRyZXR1cm4gY29uZmlnLnNlbGVjdGVkVmlzdWFsVHlwZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gY29uZmlnLnBvcnRsZXRUeXBlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dXBkYXRlUG9ybGV0Q29uZmlnKGV2ZW50KSB7XHJcblx0XHQvLyDlpITnkIbphY3nva7mm7TmlrBcclxuXHRcdGNvbnNvbGUubG9nKCd1cGRhdGVQb3JsZXRDb25maWcgY2FsbGVkIHdpdGg6JywgZXZlbnQpO1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
442
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9kYXNoYm9hcmQvZGlhbG9nLWdyb3VwL2Rvd25sb2FkL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQ04sU0FBUyxFQUVULE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTXBDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFNOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXREO0lBY0MsK0JBRVEsSUFHTixFQUNNLFNBQThDLEVBQzdDLHVCQUFnRCxFQUNoRCxVQUFzQixFQUN0QixHQUFZLEVBQ1osR0FBc0I7UUFSdkIscUJBQUEsRUFBQTtZQUNOLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLElBQUk7U0FDZjtRQUhNLFNBQUksR0FBSixJQUFJLENBR1Y7UUFDTSxjQUFTLEdBQVQsU0FBUyxDQUFxQztRQUM3Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBUztRQUNaLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBWi9CLGFBQVEsR0FBRyxFQUFFLENBQUM7SUFhWCxDQUFDOzs7O0lBRUosd0NBQVE7OztJQUFSO1FBQUEsaUJBTUM7UUFM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VixPQUFPO2dCQUxmLGlCQUFpQjs7O3dCQTBCaEIsWUFBWSxTQUFDLFFBQVE7d0JBRXJCLFlBQVksU0FBQyxRQUFROzJCQUVyQixZQUFZLFNBQUMsV0FBVzs7SUF3TjFCLDRCQUFDO0NBQUEsQUFuT0QsSUFtT0M7U0E5TlkscUJBQXFCOzs7SUFDakMsNENBQVk7O0lBQ1osc0NBQzhDOztJQUM5QyxzQ0FDMEU7O0lBQzFFLHlDQUFtRTs7SUFDbkUseUNBQWM7O0lBR2IscUNBSUM7O0lBQ0QsMENBQXFEOzs7OztJQUNyRCx3REFBd0Q7Ozs7O0lBQ3hELDJDQUE4Qjs7Ozs7SUFDOUIsb0NBQW9COzs7OztJQUNwQixvQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRPbkluaXQsXHJcblx0SW5qZWN0LFxyXG5cdFZpZXdDaGlsZHJlbixcclxuXHRRdWVyeUxpc3QsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IERhc2hib2FyZFBvcmxldHNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Rhc2hib2FyZFBvcmxldHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEFwaUxpc3QgfSBmcm9tIFwiLi4vLi4vYXBpXCI7XHJcbmltcG9ydCB7XHJcblx0RXhjZWxFeHBvcnRQcm9wZXJ0aWVzLFxyXG5cdENvbHVtbk1vZGVsLFxyXG59IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1ncmlkc1wiO1xyXG5pbXBvcnQgeyBJQXhpc1NldCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1waXZvdHZpZXdcIjtcclxuaW1wb3J0IHsgZmluZCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuXHJcbmltcG9ydCB7IEdhZGdldFRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2dhZGdldC1ncm91cC9nYWRnZXQtdGFibGUvZ2FkZ2V0LXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHYWRnZXRQaXZvdENoYXJ0Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2dhZGdldC1ncm91cC9nYWRnZXQtcGl2b3QtY2hhcnQvZ2FkZ2V0LXBpdm90LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHYWRnZXRQaXZvdENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9nYWRnZXQtZ3JvdXAvZ2FkZ2V0LXBpdm90L2dhZGdldC1waXZvdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmFyQ2hhcnRzQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2Jhci1jaGFydHMvYmFyLWNoYXJ0cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgZ2V0VHJhbnNsYXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdXRpbHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiBcInJzLXBhbmUtZG93bmxvYWRcIixcclxuXHR0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcblx0c3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFuZURvd25sb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHR0cmFuc2xhdGlvbjtcclxuXHRAVmlld0NoaWxkcmVuKFwiZHRhYmxlXCIpXHJcblx0cHVibGljIHRhYmxlOiBRdWVyeUxpc3Q8R2FkZ2V0VGFibGVDb21wb25lbnQ+O1xyXG5cdEBWaWV3Q2hpbGRyZW4oXCJkcGl2b3RcIilcclxuXHRwdWJsaWMgcGl2b3Q6IFF1ZXJ5TGlzdDxHYWRnZXRQaXZvdENvbXBvbmVudCB8IEdhZGdldFBpdm90Q2hhcnRDb21wb25lbnQ+O1xyXG5cdEBWaWV3Q2hpbGRyZW4oXCJkbmV3Q2hhcnRcIikgbmV3Q2hhcnQ6IFF1ZXJ5TGlzdDxCYXJDaGFydHNDb21wb25lbnQ+O1xyXG5cdHBvcnRsZXRzID0gW107XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0QEluamVjdChNQVRfRElBTE9HX0RBVEEpXHJcblx0XHRwdWJsaWMgZGF0YTogYW55ID0ge1xyXG5cdFx0XHRwb3J0bGV0czogW10sXHJcblx0XHRcdGRhc2hib2FyZDogbnVsbCxcclxuXHRcdH0sXHJcblx0XHRwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UGFuZURvd25sb2FkQ29tcG9uZW50PixcclxuXHRcdHByaXZhdGUgRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2U6IERhc2hib2FyZFBvcmxldHNTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG5cdFx0cHJpdmF0ZSBhcGk6IEFwaUxpc3QsXHJcblx0XHRwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHt9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy50cmFuc2xhdGlvbiA9IGdldFRyYW5zbGF0aW9uKCk7XHJcblx0XHR0aGlzLnBvcnRsZXRzID0gdGhpcy5kYXRhLnBvcnRsZXRzLmZpbHRlcigoaXRlbSkgPT4ge1xyXG5cdFx0XHRjb25zdCB0eXBlID0gdGhpcy5nZXRQb3J0bGV0VHlwZShpdGVtKTtcclxuXHRcdFx0cmV0dXJuIHR5cGUgIT09IFwidHJhbnNwb3NlXCI7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNsb3NlKCkge1xyXG5cdFx0dGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGRvd25sb2FkQWxsKCkge1xyXG5cdFx0Zm9yIChsZXQgcG9ydGxldCBvZiB0aGlzLnBvcnRsZXRzKSB7XHJcblx0XHRcdGF3YWl0IHRoaXMuZG93bmxvYWQocG9ydGxldCk7XHJcblx0XHR9XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5jbG9zZSgpO1xyXG5cdFx0fSwgMjAwKTtcclxuXHR9XHJcblxyXG5cdEdldGdhZGdldFRpdGxlKGNvbmZpZykge1xyXG5cdFx0aWYgKGNvbmZpZyAmJiBjb25maWcgIT09IFwibnVsbFwiKSB7XHJcblx0XHRcdGxldCBjb25maWdfID0gSlNPTi5wYXJzZShjb25maWcpO1xyXG5cdFx0XHRyZXR1cm4gY29uZmlnXy5nYWRnZXRUaXRsZTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBcIlwiO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXN5bmMgZG93bmxvYWQoaXRlbSkge1xyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XHJcblx0XHRcdGNvbnN0IHBvcnRsZXRUeXBlID0gdGhpcy5nZXRQb3J0bGV0VHlwZShpdGVtKTtcclxuXHRcdFx0Y29uc3QgdGl0bGUgPSB0aGlzLkdldGdhZGdldFRpdGxlKGl0ZW0uY29uZmlnKTtcclxuXHRcdFx0c3dpdGNoIChwb3J0bGV0VHlwZSkge1xyXG5cdFx0XHRcdGNhc2UgXCJ0YWJsZVwiOlxyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5kb3dubG9hZFRhYmxlKGl0ZW0sIHRpdGxlKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgXCJuZXdjaGFydFwiOlxyXG5cdFx0XHRcdGNhc2UgXCJwaXZvdFwiOlxyXG5cdFx0XHRcdFx0Y29uc3QgcGl2b3QgPSBmaW5kKFxyXG5cdFx0XHRcdFx0XHQodGhpcy5waXZvdCBhcyBhbnkpLl9yZXN1bHRzLFxyXG5cdFx0XHRcdFx0XHQoZWwpID0+IGVsLnBvcnRsZXQubmV3SWQgPT09IGl0ZW0ubmV3SWRcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRjb25zdCBleGNlbEV4cG9ydFByb3BlcnRpZXNfcGl2b3Q6IEV4Y2VsRXhwb3J0UHJvcGVydGllcyA9IHtcclxuXHRcdFx0XHRcdFx0ZmlsZU5hbWU6IHRpdGxlXHJcblx0XHRcdFx0XHRcdFx0PyB0aXRsZSArIFwiLnhsc3hcIlxyXG5cdFx0XHRcdFx0XHRcdDogXCJQaXZvdC1cIiArIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSArIFwiLnhsc3hcIixcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRpZiAocGl2b3QucGl2b3RPYmouZGF0YVNvdXJjZVNldHRpbmdzLmZvcm1hdFNldHRpbmdzKSB7XHJcblx0XHRcdFx0XHRcdHBpdm90LnBpdm90T2JqLmRhdGFTb3VyY2VTZXR0aW5ncy5mb3JtYXRTZXR0aW5ncy5mb3JFYWNoKFxyXG5cdFx0XHRcdFx0XHRcdChzZXR0aW5nKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBzeW5jZnVzaW9uIGZvcm1hdCB0cmFuc2Zvcm0gdG8gZXhjZWwgZm9ybWF0XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBtYXAgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFwiIywjIyMsLC4wOygjLCMjIywsLjApXCI6ICcwLjAsLFwiXCI7KDAuMCwsKScsXHJcblx0XHRcdFx0XHRcdFx0XHRcdCcwLjAsLFwiXCI7KDAuMCwsKSc6IFwiIywjIyMsLC4wOygjLCMjIywsLjApXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFwiIywjIyMsLDsoIywjIyMsLClcIjogJzAsLFwiXCI7KDAsLCknLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnMCwsXCJcIjsoMCwsKSc6IFwiIywjIyMsLDsoIywjIyMsLClcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XCIjLCMjIywsLjAwOygjLCMjIywsLjAwKVwiOlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCcwLjAwLCxcIlwiOygwLjAwLCwpJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0JzAuMDAsLFwiXCI7KDAuMDAsLCknOlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiIywjIyMsLC4wMDsoIywjIyMsLC4wMClcIixcclxuXHRcdFx0XHRcdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKG1hcFtzZXR0aW5nLmZvcm1hdF0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2V0dGluZy5mb3JtYXQgPSBtYXBbc2V0dGluZy5mb3JtYXRdO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzZXR0aW5nLmZvcm1hdCA9IG1hcFtzZXR0aW5nLmZvcm1hdF07XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUZvcm1hdChcclxuXHRcdFx0XHRcdFx0cGl2b3QucGl2b3RPYmouZ3JpZC5jb2x1bW5zIGFzIENvbHVtbk1vZGVsW10sXHJcblx0XHRcdFx0XHRcdHBpdm90LnBpdm90T2JqXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0cGl2b3QucGl2b3RPYmouZXhjZWxFeHBvcnQoZXhjZWxFeHBvcnRQcm9wZXJ0aWVzX3Bpdm90KTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgXCJuZXdjb2x1bW5cIjpcclxuXHRcdFx0XHRjYXNlIFwibmV3bGluZVwiOlxyXG5cdFx0XHRcdGNhc2UgXCJuZXdjb2x1bW5saW5lXCI6XHJcblx0XHRcdFx0XHRjb25zdCBjaGFydElkeCA9IHRoaXMuZ2V0Q2hhcnRJbmRleEluQWxsKGl0ZW0pO1xyXG5cdFx0XHRcdFx0Y29uc3Qgc2VsZWN0ZWRDb21wb25lbnQgPSB0aGlzLm5ld0NoYXJ0LnRvQXJyYXkoKVtjaGFydElkeF07XHJcblx0XHRcdFx0XHRzZWxlY3RlZENvbXBvbmVudC5leHBvcnRDaGFydCgpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdFx0cmVzb2x2ZSh0cnVlKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Ly8g5qC55o2uaWR46I635Y+W54K55Ye75Zu+6KGo5Zyo5Zu+6KGo5YiX6KGo6YeM55qE55yf5q2j6aG65bqPXHJcblx0Z2V0Q2hhcnRJbmRleEluQWxsKGl0ZW0pIHtcclxuXHRcdGNvbnN0IGNoYXJBcnIgPSB0aGlzLnBvcnRsZXRzLmZpbHRlcigoZSkgPT4ge1xyXG5cdFx0XHRyZXR1cm4gW1wibmV3Y29sdW1uXCIsIFwibmV3bGluZVwiLCBcIm5ld2NvbHVtbmxpbmVcIl0uaW5jbHVkZXMoXHJcblx0XHRcdFx0SlNPTi5wYXJzZShlLmNvbmZpZykucG9ydGxldFR5cGVcclxuXHRcdFx0KTtcclxuXHRcdH0pO1xyXG5cdFx0bGV0IHJlc3VsdElkeCA9IDA7XHJcblx0XHRpZiAoY2hhckFyci5sZW5ndGggPiAwKSB7XHJcblx0XHRcdGNoYXJBcnIuZm9yRWFjaCgoZSwgaWR4KSA9PiB7XHJcblx0XHRcdFx0aWYgKGUubmV3SWQgPT0gaXRlbS5uZXdJZCkge1xyXG5cdFx0XHRcdFx0cmVzdWx0SWR4ID0gaWR4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0SWR4O1xyXG5cdH1cclxuXHJcblx0cHVibGljIGRvd25sb2FkVGFibGUoaXRlbSwgdGl0bGUpIHtcclxuXHRcdC8vIFRhYmxlIOS4i+i9veWFqOmDqOaVsOaNrlxyXG5cdFx0bGV0IGNvbmZpZyA9IEpTT04ucGFyc2UoaXRlbS5jb25maWcpO1xyXG5cdFx0bGV0IHBhZ2VTZXR0aW5nID0gT2JqZWN0LmFzc2lnbihcclxuXHRcdFx0e1xyXG5cdFx0XHRcdGN1cnJlbnRQYWdlOiAxLFxyXG5cdFx0XHRcdHBhZ2VTaXplOiA5OTk5OTk5LFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjb25maWcgJiYgY29uZmlnLnRhYmxlU29ydFNldHRpbmdcclxuXHRcdCk7XHJcblx0XHRsZXQgcGFyYW1zID0gdGhpcy5EYXNoYm9hcmRQb3JsZXRzU2VydmljZS5nZXRQYXJhbXNCeVBvcnRsZXQoXHJcblx0XHRcdGl0ZW0sXHJcblx0XHRcdHBhZ2VTZXR0aW5nXHJcblx0XHQpO1xyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcblx0XHRcdC8vIGpzb24gYnVmZmVyXHJcblx0XHRcdHRoaXMuaHR0cENsaWVudFxyXG5cdFx0XHRcdC5wb3N0KFxyXG5cdFx0XHRcdFx0dGhpcy5hcGkuYmFzZXVybCArIHRoaXMuYXBpLnVybExpc3QuR2V0UG9ydGxldERhdGFWMixcclxuXHRcdFx0XHRcdHBhcmFtc1xyXG5cdFx0XHRcdClcclxuXHRcdFx0XHQuc3Vic2NyaWJlKFxyXG5cdFx0XHRcdFx0KHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgdGFibGUgPSBmaW5kKFxyXG5cdFx0XHRcdFx0XHRcdFx0KHRoaXMudGFibGUgYXMgYW55KS5fcmVzdWx0cyxcclxuXHRcdFx0XHRcdFx0XHRcdChlbCkgPT4gZWwucG9ydGxldC5uZXdJZCA9PT0gaXRlbS5uZXdJZFxyXG5cdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgZXhjZWxFeHBvcnRQcm9wZXJ0aWVzOiBFeGNlbEV4cG9ydFByb3BlcnRpZXMgPVxyXG5cdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRmaWxlTmFtZTogdGl0bGVcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ/IHRpdGxlICsgXCIueGxzeFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0OiBcIlRhYmxlLVwiICtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQgIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSArXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICBcIi54bHN4XCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdC8vIEB0cy1pZ25vcmVcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YVNvdXJjZTogcmVzdWx0LmRhdGEsXHJcblx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0YWJsZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGFibGUuZ3JpZC5leGNlbEV4cG9ydChleGNlbEV4cG9ydFByb3BlcnRpZXMpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdChyZXNwb25zZSkgPT4ge30sXHJcblx0XHRcdFx0XHQoKSA9PiB7fVxyXG5cdFx0XHRcdCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdXBkYXRlRm9ybWF0KGNvbHVtbnM6IENvbHVtbk1vZGVsW10sIHBpdm90T2JqKSB7XHJcblx0XHR2YXIgZkxpc3QgPSBwaXZvdE9iai5yZW5kZXJNb2R1bGUuZ2V0Rm9ybWF0TGlzdCgpO1xyXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBjb2x1bW5zLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHQoY29sdW1uc1tpXSBhcyBDb2x1bW5Nb2RlbCkuY29sdW1ucyAmJlxyXG5cdFx0XHRcdChjb2x1bW5zW2ldIGFzIENvbHVtbk1vZGVsKS5jb2x1bW5zLmxlbmd0aCA+IDBcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0dGhpcy51cGRhdGVGb3JtYXQoXHJcblx0XHRcdFx0XHQoY29sdW1uc1tpXSBhcyBDb2x1bW5Nb2RlbCkuY29sdW1ucyBhcyBDb2x1bW5Nb2RlbFtdLFxyXG5cdFx0XHRcdFx0cGl2b3RPYmpcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdGNvbHVtbnNbaV0uY3VzdG9tQXR0cmlidXRlcyAmJlxyXG5cdFx0XHRcdFx0Zkxpc3RbXHJcblx0XHRcdFx0XHRcdChjb2x1bW5zW2ldLmN1c3RvbUF0dHJpYnV0ZXMuY2VsbCBhcyBJQXhpc1NldClcclxuXHRcdFx0XHRcdFx0XHQuYWN0dWFsVGV4dFxyXG5cdFx0XHRcdFx0XSA9PT0gXCJOXCJcclxuXHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdChjb2x1bW5zW2ldIGFzIENvbHVtbk1vZGVsKS5mb3JtYXQgPSB1bmRlZmluZWQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0UG9ydGxldFR5cGUoaXRlbSkge1xyXG5cdFx0Y29uc3QgY29uZmlnID0gaXRlbSAmJiBpdGVtLmNvbmZpZyA/IEpTT04ucGFyc2UoaXRlbS5jb25maWcpIDoge307XHJcblx0XHRpZiAoY29uZmlnLnBvcnRsZXRUeXBlKSB7XHJcblx0XHRcdGlmIChjb25maWcucG9ydGxldFR5cGUgPT09IFwiaGlzdG9yaWNhbElSUlwiKSB7XHJcblx0XHRcdFx0cmV0dXJuIGNvbmZpZy5zZWxlY3RlZFZpc3VhbFR5cGU7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIGNvbmZpZy5wb3J0bGV0VHlwZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHVwZGF0ZVBvcmxldENvbmZpZyhldmVudCkge1xyXG5cdFx0Ly8g5aSE55CG6YWN572u5pu05pawXHJcblx0XHRjb25zb2xlLmxvZygndXBkYXRlUG9ybGV0Q29uZmlnIGNhbGxlZCB3aXRoOicsIGV2ZW50KTtcclxuXHR9XHJcbn1cclxuIl19
|