monkey-front-core 0.0.618 → 0.0.620
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/esm2020/lib/core/interfaces/monkeyecx-store.mjs +1 -1
- package/esm2020/lib/core/services/store/monkeyecx-store-base.service.mjs +31 -7
- package/esm2020/lib/core/utils/utils.mjs +5 -1
- package/fesm2015/monkey-front-core.mjs +35 -7
- package/fesm2015/monkey-front-core.mjs.map +1 -1
- package/fesm2020/monkey-front-core.mjs +34 -7
- package/fesm2020/monkey-front-core.mjs.map +1 -1
- package/lib/core/interfaces/monkeyecx-store.d.ts +2 -0
- package/lib/core/services/store/monkeyecx-store-base.service.d.ts +3 -1
- package/monkey-front-core-0.0.620.tgz +0 -0
- package/package.json +1 -1
- package/monkey-front-core-0.0.618.tgz +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL2ludGVyZmFjZXMvbW9ua2V5ZWN4LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAnLi4vbW9kZWwnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UGFnaW5hdGlvbiB9IGZyb20gJy4vbW9ua2V5ZWN4LXBhZ2luYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vbmtleUVjeENvbmZpZ1N0b3JlIHtcbiAgYWN0aW9ucz86IHt9O1xuICBzZWxlY3RvcnM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL2ludGVyZmFjZXMvbW9ua2V5ZWN4LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAnLi4vbW9kZWwnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UGFnaW5hdGlvbiB9IGZyb20gJy4vbW9ua2V5ZWN4LXBhZ2luYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vbmtleUVjeENvbmZpZ1N0b3JlIHtcbiAgYWN0aW9ucz86IHt9O1xuICBzZWxlY3RvcnM/OiB7fTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb25rZXlFY3hDb2xsZWN0aW9uU3RvcmUgZXh0ZW5kcyBNb25rZXlFY3hDb25maWdTdG9yZSB7XG4gIGFjdGlvbnM6IHtcbiAgICB1cGRhdGVDb250cm9sOiBBY3Rpb247XG4gICAgdXBkYXRlTGlua3M6IEFjdGlvbjtcbiAgICB1cGRhdGVQYWdlOiBBY3Rpb247XG4gICAgdXBkYXRlQWxsOiBBY3Rpb247XG4gICAgY2xlYXI6IEFjdGlvbjtcbiAgICBsb2FkOiBBY3Rpb247XG4gIH07XG4gIHNlbGVjdG9yczoge1xuICAgIGxpbmtzSGFzRGlmZmVyZW5jZT86IEZ1bmN0aW9uO1xuICAgIHNlbGVjdExpbmtzOiBGdW5jdGlvbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb25rZXlFY3hFbnRpdHlTdG9yZSBleHRlbmRzIE1vbmtleUVjeENvbmZpZ1N0b3JlIHtcbiAgYWN0aW9uczoge1xuICAgIHVwZGF0ZUNvbnRyb2w6IEFjdGlvbjtcbiAgICB1cGRhdGVPbmU6IEFjdGlvbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb25rZXlFY3hDb250cm9sU3RvcmUge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ua2V5RWN4TGlua3Mge1xuICBba2V5OiBzdHJpbmddOiBMaW5rIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB1cmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ua2V5RWN4U3RvcmVDb250cm9sIHtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vbmtleUVjeFN0b3JlTG9hZFBhcmFtcyB7XG4gIGZvcmNlPzogYm9vbGVhbjtcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xuICBza2lwQ2xlYXI/OiBib29sZWFuO1xuICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb25rZXlFY3hTdG9yZUxvYWRQYWdlUGFyYW1zIHtcbiAgcGFnaW5hdGlvbjogTW9ua2V5RWN4UGFnaW5hdGlvbjtcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import {
|
|
2
|
+
import { EMPTY } from 'rxjs';
|
|
3
|
+
import { finalize, take, tap } from 'rxjs/operators';
|
|
3
4
|
import { MonkeyEcxCoreService } from '../../decorators';
|
|
4
5
|
import { MonkeyEcxLinksModel } from '../../model';
|
|
5
6
|
import { MonkeyEcxCommonsService } from '../commons';
|
|
@@ -124,18 +125,30 @@ export class MonkeyEcxCommonsStoreBaseService extends MonkeyEcxCommonsService {
|
|
|
124
125
|
throw new Error(`${e?.message}`);
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
|
-
|
|
128
|
-
|
|
128
|
+
loadDataStream(url) {
|
|
129
|
+
this.updateControl({ isLoading: true });
|
|
130
|
+
return (this.monkeyecxService?.get(url).pipe(finalize(() => {
|
|
131
|
+
this.updateControl({ isLoading: false });
|
|
132
|
+
}), tap((resp) => {
|
|
133
|
+
this.handleResponseData(resp);
|
|
134
|
+
})) || EMPTY);
|
|
135
|
+
}
|
|
136
|
+
async loadPageData(pagination, dispatchLoadAction = false) {
|
|
137
|
+
const { store, selector, action } = this;
|
|
129
138
|
const data = await store
|
|
130
139
|
.select(selector.selectLinks())
|
|
131
140
|
.pipe(take(1))
|
|
132
141
|
.toPromise();
|
|
133
|
-
const {
|
|
134
|
-
const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {
|
|
142
|
+
const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(pagination?.action) || {
|
|
135
143
|
href: ''
|
|
136
144
|
};
|
|
137
145
|
if (href) {
|
|
138
|
-
|
|
146
|
+
if (dispatchLoadAction) {
|
|
147
|
+
this.store.dispatch(action.load({ url: href, skipClear: true }));
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.loadData(href);
|
|
151
|
+
}
|
|
139
152
|
}
|
|
140
153
|
}
|
|
141
154
|
/**
|
|
@@ -171,4 +184,15 @@ __decorate([
|
|
|
171
184
|
}
|
|
172
185
|
})
|
|
173
186
|
], MonkeyEcxCommonsStoreBaseService.prototype, "loadData", null);
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9zdG9yZS9tb25rZXllY3gtc3RvcmUtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFReEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUlyRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFnQixnQ0FHcEIsU0FBUSx1QkFBdUI7SUFLL0IsWUFDRSxnQkFBa0MsRUFDbEMsWUFBMEMsRUFDaEMsS0FBWSxFQUN0QixNQUFTO1FBRVQsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBSDVCLFVBQUssR0FBTCxLQUFLLENBQU87UUFJdEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVMsRUFBRSxXQUFXLEdBQUcsSUFBSTtRQUN0RCxJQUFJO1lBQ0YsSUFBSSxJQUFPLENBQUM7WUFFWixJQUFJLElBQUksRUFBRSxTQUFTLEVBQUU7Z0JBQ25CLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztnQkFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUks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QUFDO2FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLEVBQUUsQ0FBQztRQUVmLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDOUIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUk7WUFDOUUsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDO1FBRUYsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0ksSUFBSSxDQUFFLElBQVM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxRQUFRLENBQUUsSUFBUztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBcERDO0lBVEMsb0JBQW9CLENBQUM7UUFDcEIsWUFBWSxFQUFFO1lBQ1osY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ3JCLHNCQUFzQixFQUFFLENBQUMsR0FBRyxDQUFDO1NBQzlCO1FBQ0QsaUJBQWlCLEVBQUU7WUFDakIsWUFBWSxFQUFFLElBQUk7U0FDbkI7S0FDRixDQUFDO2dFQVlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4Q29yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzJztcbmltcG9ydCB7XG4gIE1vbmtleUVjeENvbmZpZ1N0b3JlLFxuICBNb25rZXlFY3hDb250cm9sU3RvcmUsXG4gIE1vbmtleUVjeExpbmtzLFxuICBNb25rZXlFY3hQYWdlLFxuICBNb25rZXlFY3hQYWdpbmF0aW9uXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4TGlua3NNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IE1vbmtleUVjeENvbW1vbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9ucyc7XG5pbXBvcnQgeyBNb25rZXlFY3hTZXJ2aWNlIH0gZnJvbSAnLi4vbW9ua2V5ZWN4LXNlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZSc7XG5cbi8qKlxuICogQ2xhc3NlIGdlbsOpcmljYSBxdWUgcmVjZWJlIGR1YXMgaW50ZXJmYWNlcyBjb21vIHRpcG9zIGdlbsOpcmljb3MuXG4gKlxuICogQHR5cGVwYXJhbSBUIGRldmUgc2VyIGEgbWVzbWEgaW50ZXJmYWNlIHV0aWxpemFkYSBuYSBFbnRpdHkgZGEgU3RvcmVcbiAqIEB0eXBlcGFyYW0gSyBmYXogcmVmZXLDqm5jaWEgYW8gdGlwbyBkZSBjb25maWd1cmHDp8Ojby5cbiAqXG4gKiBAZGVzY3JpcHRpb24gaW50ZXJmYWNlcyBkZSBjb25maWd1cmHDp8OjbzpcbiAqIGBgYFxuICogTW9ua2V5RWN4Q29sbGVjdGlvblN0b3JlIGUgTW9ua2V5RWN4RW50aXR5U3RvcmVcbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9ua2V5RWN4Q29tbW9uc1N0b3JlQmFzZVNlcnZpY2U8XG4gIFQsXG4gIEsgZXh0ZW5kcyBNb25rZXlFY3hDb25maWdTdG9yZVxuPiBleHRlbmRzIE1vbmtleUVjeENvbW1vbnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhY3Rpb246IGFueTtcblxuICBwcml2YXRlIHNlbGVjdG9yOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbW9ua2V5ZWN4U2VydmljZTogTW9ua2V5RWN4U2VydmljZSxcbiAgICB0b2tlblN0b3JhZ2U6IE1vbmtleUVjeFRva2VuU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZSxcbiAgICBjb25maWc6IEtcbiAgKSB7XG4gICAgc3VwZXIobW9ua2V5ZWN4U2VydmljZSwgdG9rZW5TdG9yYWdlKTtcbiAgICBjb25zdCB7IGFjdGlvbnMsIHNlbGVjdG9ycyB9ID0gY29uZmlnO1xuXG4gICAgdGhpcy5hY3Rpb24gPSBhY3Rpb25zO1xuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcnM7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJlc3BvbnNlRGF0YShyZXNwOiBhbnksIHVwZGF0ZUxpbmtzID0gdHJ1ZSkge1xuICAgIHRyeSB7XG4gICAgICBsZXQgZGF0YTogVDtcblxuICAgICAgaWYgKHJlc3A/Ll9lbWJlZGRlZCkge1xuICAgICAgICBjb25zdCB7IF9lbWJlZGRlZCwgX2xpbmtzLCBwYWdlIH0gPSByZXNwO1xuICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhfZW1iZWRkZWQpWzBdO1xuXG4gICAgICAgIGRhdGEgPSBfZW1iZWRkZWRba2V5XTtcblxuICAgICAgICBpZiAodXBkYXRlTGlua3MpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUxpbmtzPy4oX2xpbmtzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlUGFnZT8uKHBhZ2UpO1xuICAgICAgfSBlbHNlIGRhdGEgPSByZXNwO1xuXG4gICAgICB0aGlzLnVwZGF0ZT8uKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIGhhbmRsZVJlc3BvbnNlRGF0YSAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUNvbnRyb2woZGF0YTogTW9ua2V5RWN4Q29udHJvbFN0b3JlKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuYWN0aW9uLnVwZGF0ZUNvbnRyb2woe1xuICAgICAgICAgIGRhdGFcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgdXBkYXRlQ29udHJvbCAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcHBpbmdEYXRhKGFyZ3M6IFQgfCBUW10pOiBUIHwgVFtdIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaGFuZGxlID0gKGl0ZW06IFQpID0+IHtcbiAgICAgICAgbGV0IGlkID0gJyc7XG4gICAgICAgIGNvbnN0IHsgaHJlZiB9ID0gbmV3IE1vbmtleUVjeExpbmtzTW9kZWwoaXRlbSk/LmdldEFjdGlvbignc2VsZicpIHx8IHtcbiAgICAgICAgICBocmVmOiAnJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChocmVmKSB7XG4gICAgICAgICAgaWQgPSBocmVmLnNwbGl0KCcvJykucG9wKCkgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgaWRcbiAgICAgICAgfTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChhcmdzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3MubWFwKChpdGVtOiBUKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZShpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoYW5kbGUoYXJncyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgbWFwcGluZ0RhdGEgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGU/KGFyZ3M6IFQgfCBUW10pIHtcbiAgICB0cnkge1xuICAgICAgbGV0IHR5cGVBY3Rpb24gPSAndXBkYXRlT25lJztcblxuICAgICAgaWYgKGFyZ3MgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICB0eXBlQWN0aW9uID0gJ3VwZGF0ZUFsbCc7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuYWN0aW9uW3R5cGVBY3Rpb25dKHtcbiAgICAgICAgICBkYXRhOiB0aGlzLm1hcHBpbmdEYXRhKGFyZ3MpXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIHVwZGF0ZSAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVBhZ2U/KGRhdGE6IE1vbmtleUVjeFBhZ2UpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5hY3Rpb24udXBkYXRlUGFnZSh7XG4gICAgICAgICAgZGF0YVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCB1cGRhdGVQYWdlIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlTGlua3M/KGRhdGE6IE1vbmtleUVjeExpbmtzKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuYWN0aW9uLnVwZGF0ZUxpbmtzKHtcbiAgICAgICAgICBkYXRhXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIHVwZGF0ZUxpbmtzIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBATW9ua2V5RWN4Q29yZVNlcnZpY2Uoe1xuICAgIGh0dHBSZXNwb25zZToge1xuICAgICAgaHR0cENvZGVJZ25vcmU6IFs0MTJdLFxuICAgICAgaHR0cENvZGVJZ25vcmVSZWRpcmVjdDogWzQxMl1cbiAgICB9LFxuICAgIHJlcXVlc3RJblByb2dyZXNzOiB7XG4gICAgICBzaG93UHJvZ3Jlc3M6IHRydWVcbiAgICB9XG4gIH0pXG4gIHByb3RlY3RlZCBhc3luYyBsb2FkRGF0YSh1cmw6IHN0cmluZywgdXBkYXRlTGlua3MgPSB0cnVlKSB7XG4gICAgdGhpcy51cGRhdGVDb250cm9sKHsgaXNMb2FkaW5nOiB0cnVlIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLm1vbmtleWVjeFNlcnZpY2U/LmdldDxhbnk+KHVybCkudG9Qcm9taXNlKCk7XG4gICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlRGF0YShkYXRhLCB1cGRhdGVMaW5rcyk7XG4gICAgICB0aGlzLnVwZGF0ZUNvbnRyb2woeyBpc0xvYWRpbmc6IGZhbHNlIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhpcy51cGRhdGVDb250cm9sKHsgaXNMb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlPy5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBsb2FkUGFnZURhdGEocGFnaW5hdGlvbjogTW9ua2V5RWN4UGFnaW5hdGlvbikge1xuICAgIGNvbnN0IHsgc3RvcmUsIHNlbGVjdG9yIH0gPSB0aGlzO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBzdG9yZVxuICAgICAgLnNlbGVjdChzZWxlY3Rvci5zZWxlY3RMaW5rcygpKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC50b1Byb21pc2UoKTtcblxuICAgIGNvbnN0IHsgYWN0aW9uIH0gPSBwYWdpbmF0aW9uO1xuICAgIGNvbnN0IHsgaHJlZiB9ID0gbmV3IE1vbmtleUVjeExpbmtzTW9kZWwoeyBfbGlua3M6IGRhdGEgfSkuZ2V0QWN0aW9uKGFjdGlvbikgfHwge1xuICAgICAgaHJlZjogJydcbiAgICB9O1xuXG4gICAgaWYgKGhyZWYpIHtcbiAgICAgIHRoaXMubG9hZERhdGEoaHJlZik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOZXN0ZSBtw6l0b2RvIHByZWNpc2Ftb3MgaW5jbHVpciBhIGzDs2dpY2EgcGFyYSBjb25mZXJpciBzZSBwcmVjaXNhIGxpbXBhciBhXG4gICAqIGVudGlkYWRlIG91IG7Do29cbiAgICogRSBkZXBvaXMgcHJlY2lzYSBpbnZvY2FyIG8gbcOpdG9kbyBsb2FkRGF0YVxuICAgKiBAcGFyYW0gKHVybCkgb3UgZGUgYWNvcmRvIGNvbSBhIGFjdGlvbiBjcmlhZGFcbiAgICogQGV4YW1wbGVcbiAgICogYGBgXG4gICAqIGNvbnN0IGhhc0RpZmZlcmVuY2UgPSAuLi4uLlxuICAgKiBpZihoYXNEaWZmZXJlbmNlKSB7XG4gICAqICAgIHN0b3JlLmRpc3BhdGNoKGNsZWFyKVxuICAgKiB9XG4gICAqXG4gICAqIHRoaXMubG9hZERhdGEoLi4uKVxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBsb2FkPyhhcmdzOiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01FQ1ggQ29yZSAtIE1ldGhvZCBsb2FkIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkUGFnZT8oYXJnczogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNRUNYIENvcmUgLSBNZXRob2QgbG9hZFBhZ2Ugbm90IGltcGxlbWVudGVkLicpO1xuICB9XG59XG4iXX0=
|
|
187
|
+
__decorate([
|
|
188
|
+
MonkeyEcxCoreService({
|
|
189
|
+
httpResponse: {
|
|
190
|
+
httpCodeIgnore: [412],
|
|
191
|
+
httpCodeIgnoreRedirect: [412]
|
|
192
|
+
},
|
|
193
|
+
requestInProgress: {
|
|
194
|
+
showProgress: true
|
|
195
|
+
}
|
|
196
|
+
})
|
|
197
|
+
], MonkeyEcxCommonsStoreBaseService.prototype, "loadDataStream", null);
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LXN0b3JlLWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9zdG9yZS9tb25rZXllY3gtc3RvcmUtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBUXhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJckQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sT0FBZ0IsZ0NBR3BCLFNBQVEsdUJBQXVCO0lBSy9CLFlBQ0UsZ0JBQWtDLEVBQ2xDLFlBQTBDLEVBQ2hDLEtBQVksRUFDdEIsTUFBUztRQUVULEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUg1QixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBSXRCLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO0lBQzVCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFTLEVBQUUsV0FBVyxHQUFHLElBQUk7UUFDdEQsSUFBSTtZQUNGLElBQUksSUFBTyxDQUFDO1lBRVosSUFBSSxJQUFJLEVBQUUsU0FBUyxFQUFFO2dCQUNuQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJ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ckI7U0FDRjtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNJLElBQUksQ0FBRSxJQUFTO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sUUFBUSxDQUFFLElBQVM7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRjtBQS9FQztJQVRDLG9CQUFvQixDQUFDO1FBQ3BCLFlBQVksRUFBRTtZQUNaLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUNyQixzQkFBc0IsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUM5QjtRQUNELGlCQUFpQixFQUFFO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0YsQ0FBQztnRUFZRDtBQVdEO0lBVEMsb0JBQW9CLENBQUM7UUFDcEIsWUFBWSxFQUFFO1lBQ1osY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ3JCLHNCQUFzQixFQUFFLENBQUMsR0FBRyxDQUFDO1NBQzlCO1FBQ0QsaUJBQWlCLEVBQUU7WUFDakIsWUFBWSxFQUFFLElBQUk7U0FDbkI7S0FDRixDQUFDO3NFQWNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1vbmtleUVjeENvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycyc7XG5pbXBvcnQge1xuICBNb25rZXlFY3hDb25maWdTdG9yZSxcbiAgTW9ua2V5RWN4Q29udHJvbFN0b3JlLFxuICBNb25rZXlFY3hMaW5rcyxcbiAgTW9ua2V5RWN4UGFnZSxcbiAgTW9ua2V5RWN4UGFnaW5hdGlvblxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1vbmtleUVjeExpbmtzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBNb25rZXlFY3hDb21tb25zU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbnMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4VG9rZW5TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2UnO1xuXG4vKipcbiAqIENsYXNzZSBnZW7DqXJpY2EgcXVlIHJlY2ViZSBkdWFzIGludGVyZmFjZXMgY29tbyB0aXBvcyBnZW7DqXJpY29zLlxuICpcbiAqIEB0eXBlcGFyYW0gVCBkZXZlIHNlciBhIG1lc21hIGludGVyZmFjZSB1dGlsaXphZGEgbmEgRW50aXR5IGRhIFN0b3JlXG4gKiBAdHlwZXBhcmFtIEsgZmF6IHJlZmVyw6puY2lhIGFvIHRpcG8gZGUgY29uZmlndXJhw6fDo28uXG4gKlxuICogQGRlc2NyaXB0aW9uIGludGVyZmFjZXMgZGUgY29uZmlndXJhw6fDo286XG4gKiBgYGBcbiAqIE1vbmtleUVjeENvbGxlY3Rpb25TdG9yZSBlIE1vbmtleUVjeEVudGl0eVN0b3JlXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1vbmtleUVjeENvbW1vbnNTdG9yZUJhc2VTZXJ2aWNlPFxuICBULFxuICBLIGV4dGVuZHMgTW9ua2V5RWN4Q29uZmlnU3RvcmVcbj4gZXh0ZW5kcyBNb25rZXlFY3hDb21tb25zU2VydmljZSB7XG4gIHByaXZhdGUgYWN0aW9uOiBhbnk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1vbmtleWVjeFNlcnZpY2U6IE1vbmtleUVjeFNlcnZpY2UsXG4gICAgdG9rZW5TdG9yYWdlOiBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBzdG9yZTogU3RvcmUsXG4gICAgY29uZmlnOiBLXG4gICkge1xuICAgIHN1cGVyKG1vbmtleWVjeFNlcnZpY2UsIHRva2VuU3RvcmFnZSk7XG4gICAgY29uc3QgeyBhY3Rpb25zLCBzZWxlY3RvcnMgfSA9IGNvbmZpZztcblxuICAgIHRoaXMuYWN0aW9uID0gYWN0aW9ucztcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3JzO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVSZXNwb25zZURhdGEocmVzcDogYW55LCB1cGRhdGVMaW5rcyA9IHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgbGV0IGRhdGE6IFQ7XG5cbiAgICAgIGlmIChyZXNwPy5fZW1iZWRkZWQpIHtcbiAgICAgICAgY29uc3QgeyBfZW1iZWRkZWQsIF9saW5rcywgcGFnZSB9ID0gcmVzcDtcbiAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoX2VtYmVkZGVkKVswXTtcblxuICAgICAgICBkYXRhID0gX2VtYmVkZGVkW2tleV07XG5cbiAgICAgICAgaWYgKHVwZGF0ZUxpbmtzKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVMaW5rcz8uKF9saW5rcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVBhZ2U/LihwYWdlKTtcbiAgICAgIH0gZWxzZSBkYXRhID0gcmVzcDtcblxuICAgICAgdGhpcy51cGRhdGU/LihkYXRhKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBoYW5kbGVSZXNwb25zZURhdGEgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVDb250cm9sKGRhdGE6IE1vbmtleUVjeENvbnRyb2xTdG9yZSkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLmFjdGlvbi51cGRhdGVDb250cm9sKHtcbiAgICAgICAgICBkYXRhXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIHVwZGF0ZUNvbnRyb2wgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBtYXBwaW5nRGF0YShhcmdzOiBUIHwgVFtdKTogVCB8IFRbXSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGhhbmRsZSA9IChpdGVtOiBUKSA9PiB7XG4gICAgICAgIGxldCBpZCA9ICcnO1xuICAgICAgICBjb25zdCB7IGhyZWYgfSA9IG5ldyBNb25rZXlFY3hMaW5rc01vZGVsKGl0ZW0pPy5nZXRBY3Rpb24oJ3NlbGYnKSB8fCB7XG4gICAgICAgICAgaHJlZjogJydcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoaHJlZikge1xuICAgICAgICAgIGlkID0gaHJlZi5zcGxpdCgnLycpLnBvcCgpIHx8ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgIGlkXG4gICAgICAgIH07XG4gICAgICB9O1xuXG4gICAgICBpZiAoYXJncyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHJldHVybiBhcmdzLm1hcCgoaXRlbTogVCkgPT4ge1xuICAgICAgICAgIHJldHVybiBoYW5kbGUoaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaGFuZGxlKGFyZ3MpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIG1hcHBpbmdEYXRhIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlPyhhcmdzOiBUIHwgVFtdKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB0eXBlQWN0aW9uID0gJ3VwZGF0ZU9uZSc7XG5cbiAgICAgIGlmIChhcmdzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgdHlwZUFjdGlvbiA9ICd1cGRhdGVBbGwnO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLmFjdGlvblt0eXBlQWN0aW9uXSh7XG4gICAgICAgICAgZGF0YTogdGhpcy5tYXBwaW5nRGF0YShhcmdzKVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCB1cGRhdGUgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVQYWdlPyhkYXRhOiBNb25rZXlFY3hQYWdlKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuYWN0aW9uLnVwZGF0ZVBhZ2Uoe1xuICAgICAgICAgIGRhdGFcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgdXBkYXRlUGFnZSAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUxpbmtzPyhkYXRhOiBNb25rZXlFY3hMaW5rcykge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLmFjdGlvbi51cGRhdGVMaW5rcyh7XG4gICAgICAgICAgZGF0YVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCB1cGRhdGVMaW5rcyAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgQE1vbmtleUVjeENvcmVTZXJ2aWNlKHtcbiAgICBodHRwUmVzcG9uc2U6IHtcbiAgICAgIGh0dHBDb2RlSWdub3JlOiBbNDEyXSxcbiAgICAgIGh0dHBDb2RlSWdub3JlUmVkaXJlY3Q6IFs0MTJdXG4gICAgfSxcbiAgICByZXF1ZXN0SW5Qcm9ncmVzczoge1xuICAgICAgc2hvd1Byb2dyZXNzOiB0cnVlXG4gICAgfVxuICB9KVxuICBwcm90ZWN0ZWQgYXN5bmMgbG9hZERhdGEodXJsOiBzdHJpbmcsIHVwZGF0ZUxpbmtzID0gdHJ1ZSkge1xuICAgIHRoaXMudXBkYXRlQ29udHJvbCh7IGlzTG9hZGluZzogdHJ1ZSB9KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5tb25rZXllY3hTZXJ2aWNlPy5nZXQ8YW55Pih1cmwpLnRvUHJvbWlzZSgpO1xuICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZURhdGEoZGF0YSwgdXBkYXRlTGlua3MpO1xuICAgICAgdGhpcy51cGRhdGVDb250cm9sKHsgaXNMb2FkaW5nOiBmYWxzZSB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRoaXMudXBkYXRlQ29udHJvbCh7IGlzTG9hZGluZzogZmFsc2UgfSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZT8ubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBATW9ua2V5RWN4Q29yZVNlcnZpY2Uoe1xuICAgIGh0dHBSZXNwb25zZToge1xuICAgICAgaHR0cENvZGVJZ25vcmU6IFs0MTJdLFxuICAgICAgaHR0cENvZGVJZ25vcmVSZWRpcmVjdDogWzQxMl1cbiAgICB9LFxuICAgIHJlcXVlc3RJblByb2dyZXNzOiB7XG4gICAgICBzaG93UHJvZ3Jlc3M6IHRydWVcbiAgICB9XG4gIH0pXG4gIHByb3RlY3RlZCBsb2FkRGF0YVN0cmVhbSh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy51cGRhdGVDb250cm9sKHsgaXNMb2FkaW5nOiB0cnVlIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubW9ua2V5ZWN4U2VydmljZT8uZ2V0KHVybCkucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ29udHJvbCh7IGlzTG9hZGluZzogZmFsc2UgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKHJlc3ApID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlRGF0YShyZXNwKTtcbiAgICAgICAgfSlcbiAgICAgICkgfHwgRU1QVFlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGxvYWRQYWdlRGF0YShwYWdpbmF0aW9uOiBNb25rZXlFY3hQYWdpbmF0aW9uLCBkaXNwYXRjaExvYWRBY3Rpb24gPSBmYWxzZSkge1xuICAgIGNvbnN0IHsgc3RvcmUsIHNlbGVjdG9yLCBhY3Rpb24gfSA9IHRoaXM7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHN0b3JlXG4gICAgICAuc2VsZWN0KHNlbGVjdG9yLnNlbGVjdExpbmtzKCkpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgY29uc3QgeyBocmVmIH0gPSBuZXcgTW9ua2V5RWN4TGlua3NNb2RlbCh7IF9saW5rczogZGF0YSB9KS5nZXRBY3Rpb24ocGFnaW5hdGlvbj8uYWN0aW9uKSB8fCB7XG4gICAgICBocmVmOiAnJ1xuICAgIH07XG5cbiAgICBpZiAoaHJlZikge1xuICAgICAgaWYgKGRpc3BhdGNoTG9hZEFjdGlvbikge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKGFjdGlvbi5sb2FkKHsgdXJsOiBocmVmLCBza2lwQ2xlYXI6IHRydWUgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2FkRGF0YShocmVmKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE5lc3RlIG3DqXRvZG8gcHJlY2lzYW1vcyBpbmNsdWlyIGEgbMOzZ2ljYSBwYXJhIGNvbmZlcmlyIHNlIHByZWNpc2EgbGltcGFyIGFcbiAgICogZW50aWRhZGUgb3UgbsOjb1xuICAgKiBFIGRlcG9pcyBwcmVjaXNhIGludm9jYXIgbyBtw6l0b2RvIGxvYWREYXRhXG4gICAqIEBwYXJhbSAodXJsKSBvdSBkZSBhY29yZG8gY29tIGEgYWN0aW9uIGNyaWFkYVxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBcbiAgICogY29uc3QgaGFzRGlmZmVyZW5jZSA9IC4uLi4uXG4gICAqIGlmKGhhc0RpZmZlcmVuY2UpIHtcbiAgICogICAgc3RvcmUuZGlzcGF0Y2goY2xlYXIpXG4gICAqIH1cbiAgICpcbiAgICogdGhpcy5sb2FkRGF0YSguLi4pXG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGxvYWQ/KGFyZ3M6IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTUVDWCBDb3JlIC0gTWV0aG9kIGxvYWQgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgcHVibGljIGxvYWRQYWdlPyhhcmdzOiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01FQ1ggQ29yZSAtIE1ldGhvZCBsb2FkUGFnZSBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -64,6 +64,10 @@ export class MonkeyEcxUtils {
|
|
|
64
64
|
MX: {
|
|
65
65
|
CPF: CountryMasks.RFC1,
|
|
66
66
|
CNPJ: CountryMasks.RFC2
|
|
67
|
+
},
|
|
68
|
+
US: {
|
|
69
|
+
CPF: CountryMasks.EIN,
|
|
70
|
+
CNPJ: CountryMasks.EIN
|
|
67
71
|
}
|
|
68
72
|
}[country.toUpperCase()]?.[type];
|
|
69
73
|
}
|
|
@@ -583,4 +587,4 @@ export function base64ToBuffer(base64) {
|
|
|
583
587
|
}
|
|
584
588
|
return bytes.buffer;
|
|
585
589
|
}
|
|
586
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLDRCQUE0QjtBQUM1QixzQ0FBc0M7QUFDdEMsZ0NBQWdDO0FBQ2hDLG1DQUFtQztBQUNuQywyQkFBMkI7QUFDM0IsaUNBQWlDO0FBQ2pDLGdDQUFnQztBQUNoQywyQkFBMkI7QUFFM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLHFDQUFxQztBQUNyQyxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMseUJBQXlCLENBQUMsRUFBTztRQUN0QyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVcsRUFBRSxPQUFnQjtRQUNsRCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxLQUFLLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNuQyxJQUFJLE9BQU8sS0FBSyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDbkMsSUFBSSxPQUFPLEtBQUssSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLENBQUM7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QU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRztZQUNqQixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxHQUFHLEVBQUUsRUFBRTtZQUNQLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLEdBQUcsRUFBRSxFQUFFO1lBQ1AsQ0FBQyxFQUFFLEVBQUU7U0FDTixDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUMvQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDcEIsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsT0FBTyxHQUFHLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUM3QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQztpQkFDZixJQUFJLEVBQUU7aUJBQ04sV0FBVyxFQUFFO2lCQUNiLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUM7UUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ25DLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkQsaURBQWlEO1lBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDO1FBRUYsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ2hELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2hELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqQyxJQUFJLEdBQUcsS0FBSyxFQUFFO2dCQUFFLE9BQU8sS0FBSyxLQUFLLEdBQUcsQ0FBQztZQUNyQyxJQUFJLEdBQUcsS0FBSyxFQUFFO2dCQUFFLE9BQU8sS0FBSyxLQUFLLEdBQUcsQ0FBQztZQUNyQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUM7UUFDL0IsQ0FBQyxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxHQUFHLE9BQU8sR0FBRyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4RSxNQUFNLGlCQUFpQixHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDO1FBRUYsSUFBSTtZQUNGLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVuQyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDdkMsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsY0FBYztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUNsQyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVk7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDaEMsTUFBTSxhQUFhLEdBQUcseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWE7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDakMsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFM0MsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsWUFBWTtTQUNiO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVqRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLGFBQWEsR0FBRztZQUNwQixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0os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SyxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdkM7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNvbW1hLWRhbmdsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdXNlbGVzcy1lc2NhcGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBsdXNwbHVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25kLWFzc2lnbiAqL1xuLyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZWRlY2xhcmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIHZhcnMtb24tdG9wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12YXIgKi9cblxuaW1wb3J0IHsgZGF0YWRvZ0xvZ3MgfSBmcm9tICdAZGF0YWRvZy9icm93c2VyLWxvZ3MnO1xuaW1wb3J0IHsgQ05QSlZhbGlkYXRvciB9IGZyb20gJy4vQ05QSic7XG5pbXBvcnQgeyBDUEZWYWxpZGF0b3IgfSBmcm9tICcuL0NQRic7XG5pbXBvcnQgeyBDb3VudHJ5TWFza3MgfSBmcm9tICcuL3N0YXRpY3MnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBibG9jay1zY29wZWQtdmFyICovXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4VXRpbHMge1xuICBzdGF0aWMgcGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh0cDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRwICE9PSBudWxsICYmIHRwICE9PSB1bmRlZmluZWQgJiYgdHAgIT09ICcnO1xuICB9XG5cbiAgc3RhdGljIGdldERvY3VtZW50VHlwZShkb2M6IHN0cmluZywgY291bnRyeT86IHN0cmluZykge1xuICAgIGlmICghZG9jKSByZXR1cm4gJyc7XG4gICAgaWYgKGNvdW50cnkgPT09ICdjbCcpIHJldHVybiAnUlVUJztcbiAgICBpZiAoY291bnRyeSA9PT0gJ214JykgcmV0dXJuICdSRkMnO1xuICAgIGlmIChjb3VudHJ5ID09PSAndXMnKSByZXR1cm4gJ0VJTic7XG4gICAgcmV0dXJuIGRvYy5sZW5ndGggPD0gMTEgPyAnQ1BGJyA6ICdDTlBKJztcbiAgfVxuXG4gIHN0YXRpYyBnZXREb2N1bWVudE1hc2sodHlwZTogc3RyaW5nLCBjb3VudHJ5ID0gJycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgQlI6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuQ1BGLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuQ05QSixcbiAgICAgICAgJyc6IGAke0NvdW50cnlNYXNrcy5DUEZ9fHwke0NvdW50cnlNYXNrcy5DTlBKfWBcbiAgICAgIH0sXG4gICAgICBDTDoge1xuICAgICAgICBDUEY6IENvdW50cnlNYXNrcy5SVVQxLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuUlVUMixcbiAgICAgICAgJyc6IGAke0NvdW50cnlNYXNrcy5SVVQxfXx8JHtDb3VudHJ5TWFza3MuUlVUMn1gXG4gICAgICB9LFxuICAgICAgTVg6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuUkZDMSxcbiAgICAgICAgQ05QSjogQ291bnRyeU1hc2tzLlJGQzIsXG4gICAgICAgICcnOiBgJHtDb3VudHJ5TWFza3MuUkZDMX18fCR7Q291bnRyeU1hc2tzLlJGQzJ9YFxuICAgICAgfSxcbiAgICAgIFVTOiB7XG4gICAgICAgIENQRjogQ291bnRyeU1hc2tzLkVJTixcbiAgICAgICAgQ05QSjogQ291bnRyeU1hc2tzLkVJTixcbiAgICAgICAgJyc6IENvdW50cnlNYXNrcy5FSU5cbiAgICAgIH1cbiAgICB9W2NvdW50cnkudG9VcHBlckNhc2UoKV0/Llt0eXBlXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXREb2N1bWVudFBsYWNlaG9sZGVyKHR5cGU6IHN0cmluZywgY291bnRyeSA9ICcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEJSOiB7XG4gICAgICAgIENQRjogJzAwMC4wMDAuMDAwLVhYJyxcbiAgICAgICAgQ05QSjogJzAwLjAwMC4wMDAvMDAwMC0wMCdcbiAgICAgIH0sXG4gICAgICBDTDoge1xuICAgICAgICBDUEY6ICcwMDAwMDAwLUEnLFxuICAgICAgICBDTlBKOiAnMDAwMDAwMC1BJ1xuICAgICAgfSxcbiAgICAgIE1YOiB7XG4gICAgICAgIENQRjogQ291bnRyeU1hc2tzLlJGQzEsXG4gICAgICAgIENOUEo6IENvdW50cnlNYXNrcy5SRkMyXG4gICAgICB9XG4gICAgfVtjb3VudHJ5LnRvVXBwZXJDYXNlKCldPy5bdHlwZV07XG4gIH1cblxuICBzdGF0aWMgZm9ybWF0RG9jdW1lbnRXaXRoTWFzayhkb2M6IHN0cmluZywgd2l0aFR5cGU/OiBib29sZWFuLCBjb3VudHJ5Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWRvYykgcmV0dXJuIGRvYztcbiAgICBsZXQgZm9ybWF0ZWQ6IHN0cmluZyA9ICcnO1xuICAgIGlmIChjb3VudHJ5ID09PSAnY2wnKSB7XG4gICAgICBmb3JtYXRlZCA9IGRvYy5yZXBsYWNlKC9eKFxcZHsxLDJ9KShcXGR7M30pKFxcZHszfSkoXFx3ezF9KSQvLCAnJDEuJDIuJDMtJDQnKTtcbiAgICAgIHJldHVybiBgJHtmb3JtYXRlZH1gO1xuICAgIH1cbiAgICBpZiAoY291bnRyeSA9PT0gJ3VzJykge1xuICAgICAgZm9ybWF0ZWQgPSBkb2MucmVwbGFjZSgvXihcXGR7Mn0pKFxcZHs3fSkkLywgJyQxLSQyJyk7XG4gICAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgICB9XG4gICAgaWYgKGRvYy5sZW5ndGggPT09IDE0KSB7XG4gICAgICBjb25zdCBjbGVhbmVkID0gZG9jLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnJykudG9VcHBlckNhc2UoKTtcblxuICAgICAgZm9ybWF0ZWQgPSBjbGVhbmVkXG4gICAgICAgIC5yZXBsYWNlKC9eKFtBLVowLTldezJ9KShbQS1aMC05XSkvLCAnJDEuJDInKVxuICAgICAgICAucmVwbGFjZSgvXihbQS1aMC05XXsyfSlcXC4oW0EtWjAtOV17M30pKFtBLVowLTldKS8sICckMS4kMi4kMycpXG4gICAgICAgIC5yZXBsYWNlKC9cXC4oXFx3ezN9KShcXHcpLywgJy4kMS8kMicpXG4gICAgICAgIC5yZXBsYWNlKC8oXFxkezR9KShcXGQpLywgJyQxLSQyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1hdGVkID0gZG9jXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSkoXFxkKS8sICckMS4kMicpXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSlcXC4oXFxkezN9KShcXGQpLywgJyQxLiQyLiQzJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dpdGhUeXBlID8gYCR7dGhpcy5nZXREb2N1bWVudFR5cGUoZG9jKX06YCA6ICcnfSAke2Zvcm1hdGVkfWA7XG4gIH1cblxuICBzdGF0aWMgY3V0Rmlyc3RMYXN0TmFtZSh2YWx1ZTogc3RyaW5nLCB0cDogc3RyaW5nID0gJ2ZpcnN0Jykge1xuICAgIGNvbnN0IHNwbGl0ID0gdmFsdWU/LnRyaW0oKT8uc3BsaXQoJyAnKTtcblxuICAgIGlmICh0cCA9PT0gJ2ZpcnN0JykgcmV0dXJuIHNwbGl0WzBdO1xuICAgIHJldHVybiBzcGxpdD8uc3BsaWNlKDEsIHNwbGl0Lmxlbmd0aCk/LmpvaW4oJyAnKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0NQRkNOUEpWYWxpZChkb2N1bWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgZG9jdW1lbnQgPSBkb2N1bWVudC5yZXBsYWNlKC9bXlxcZF0vZywgJycpO1xuXG4gICAgY29uc3QgaGFuZGxlZCA9IGRvY3VtZW50LnJlcGxhY2UobmV3IFJlZ0V4cChkb2N1bWVudC5jaGFyQXQoMCksICdnJyksICcnKTtcbiAgICBpZiAoIWhhbmRsZWQpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDExKSB7XG4gICAgICBsZXQgYmFzZSA9IFsxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMF07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCA5OyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKSA7XG4gICAgICBpZiAoZG9jdW1lbnRbOV0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgYmFzZSA9IFsxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDk7IG4gKz0gZG9jdW1lbnRbaV0gKiBiYXNlW2krK10pIDtcbiAgICAgIGlmIChkb2N1bWVudFsxMF0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDE0IHx8IC8wezE0fS8udGVzdChkb2N1bWVudCkpIHtcbiAgICAgIGNvbnN0IGJhc2UgPSBbNiwgNSwgNCwgMywgMiwgOSwgOCwgNywgNiwgNSwgNCwgMywgMl07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCAxMjsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbKytpXSkgO1xuICAgICAgaWYgKGRvY3VtZW50WzEyXSAhPSAoKG4gJT0gMTEpIDwgMiA/IDAgOiAxMSAtIG4pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDEyOyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKSA7XG4gICAgICBpZiAoZG9jdW1lbnRbMTNdICE9ICgobiAlPSAxMSkgPCAyID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIGlzQ1BGQWxwaGFudW1lcmljQ05QSlZhbGlkKGRvY3VtZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBkb2N1bWVudCA9IGRvY3VtZW50LnJlcGxhY2UoL1suLy1dL2csICcnKTtcblxuICAgIGNvbnN0IGhhbmRsZWQgPSBkb2N1bWVudC5yZXBsYWNlKG5ldyBSZWdFeHAoZG9jdW1lbnQuY2hhckF0KDApLCAnZycpLCAnJyk7XG4gICAgaWYgKCFoYW5kbGVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoZG9jdW1lbnQubGVuZ3RoID09PSAxMSkge1xuICAgICAgcmV0dXJuIENQRlZhbGlkYXRvci5pc1ZhbGlkKGRvY3VtZW50KTtcbiAgICB9XG4gICAgaWYgKGRvY3VtZW50Lmxlbmd0aCA9PT0gMTQgfHwgLzB7MTR9Ly50ZXN0KGRvY3VtZW50KSkge1xuICAgICAgcmV0dXJuIENOUEpWYWxpZGF0b3IuaXNWYWxpZChkb2N1bWVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFJVVChkb2N1bWVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkb2N1bWVudCB8fCBkb2N1bWVudC50cmltKCkubGVuZ3RoIDwgMykgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGRvY3VtZW50SGFuZGxlZCA9IGRvY3VtZW50LnJlcGxhY2UoL1teMC05a0tdL2csICcnKTtcblxuICAgIGlmIChkb2N1bWVudEhhbmRsZWQubGVuZ3RoIDwgMykgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgY2FsY0R2ID0gKHJ1dDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gYCR7cnV0fWA7XG4gICAgICBsZXQgc3VtID0gMDtcbiAgICAgIGxldCBtdWx0ID0gMjtcblxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBtdWx0ICogTnVtYmVyKHZhbHVlLmNoYXJBdCh2YWx1ZS5sZW5ndGggLSBpKSk7XG5cbiAgICAgICAgc3VtICs9IGluZGV4O1xuXG4gICAgICAgIGlmIChtdWx0IDwgNykge1xuICAgICAgICAgIG11bHQgKz0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtdWx0ID0gMjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkdkVzcGVyYWRvID0gMTEgLSAoc3VtICUgMTEpO1xuICAgICAgaWYgKGR2RXNwZXJhZG8gPT09IDEwKSByZXR1cm4gJ0snO1xuICAgICAgaWYgKGR2RXNwZXJhZG8gPT09IDExKSByZXR1cm4gJzAnO1xuICAgICAgcmV0dXJuIGAke2R2RXNwZXJhZG99YDtcbiAgICB9O1xuXG4gICAgY29uc3QgbnVtID0gZG9jdW1lbnRIYW5kbGVkLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCBkZ3YgPSBkb2N1bWVudEhhbmRsZWQuc2xpY2UoLTEpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICBjb25zdCBkdkNhbGMgPSBjYWxjRHYobnVtKTtcbiAgICByZXR1cm4gZHZDYWxjID09PSBkZ3Y7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRSRkMoZG9jdW1lbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IFJGQ19SRUdFWFAgPSAvXihbQS1aw5FcXHgyNl17Myw0fSkoWzAtOV17Nn0pKFtBLVowLTldezN9KSQvO1xuICAgIGNvbnN0IFNQRUNJQUxfQ0FTRVMgPSB7XG4gICAgICBYRVhYMDEwMTAxMDAwOiAnZm9yZWlnbicsXG4gICAgICBYQVhYMDEwMTAxMDAwOiAnZ2VuZXJpYydcbiAgICB9O1xuICAgIGNvbnN0IEZPUkJJRERFTl9XT1JEUyA9IFtcbiAgICAgICdCVUVJJyxcbiAgICAgICdCVUVZJyxcbiAgICAgICdDQUNBJyxcbiAgICAgICdDQUNPJyxcbiAgICAgICdDQUdBJyxcbiAgICAgICdDQUdPJyxcbiAgICAgICdDQUtBJyxcbiAgICAgICdDQUtPJyxcbiAgICAgICdDT0dFJyxcbiAgICAgICdDT0pBJyxcbiAgICAgICdDT0pFJyxcbiAgICAgICdDT0pJJyxcbiAgICAgICdDT0pPJyxcbiAgICAgICdDVUxPJyxcbiAgICAgICdGRVRPJyxcbiAgICAgICdHVUVZJyxcbiAgICAgICdKT1RPJyxcbiAgICAgICdLQUNBJyxcbiAgICAgICdLQUNPJyxcbiAgICAgICdLQUdBJyxcbiAgICAgICdLQUdPJyxcbiAgICAgICdLT0dFJyxcbiAgICAgICdLT0pPJyxcbiAgICAgICdLQUtBJyxcbiAgICAgICdLVUxPJyxcbiAgICAgICdNQU1FJyxcbiAgICAgICdNQU1PJyxcbiAgICAgICdNRUFSJyxcbiAgICAgICdNRUFTJyxcbiAgICAgICdNRU9OJyxcbiAgICAgICdNSU9OJyxcbiAgICAgICdNT0NPJyxcbiAgICAgICdNVUxBJyxcbiAgICAgICdQRURBJyxcbiAgICAgICdQRURPJyxcbiAgICAgICdQRU5FJyxcbiAgICAgICdQVVRBJyxcbiAgICAgICdQVVRPJyxcbiAgICAgICdRVUxPJyxcbiAgICAgICdSQVRBJyxcbiAgICAgICdSVUlOJ1xuICAgIF07XG5cbiAgICBjb25zdCBWQUxVRVNfTUFQID0ge1xuICAgICAgMDogMCxcbiAgICAgIDE6IDEsXG4gICAgICAyOiAyLFxuICAgICAgMzogMyxcbiAgICAgIDQ6IDQsXG4gICAgICA1OiA1LFxuICAgICAgNjogNixcbiAgICAgIDc6IDcsXG4gICAgICA4OiA4LFxuICAgICAgOTogOSxcbiAgICAgIEE6IDEwLFxuICAgICAgQjogMTEsXG4gICAgICBDOiAxMixcbiAgICAgIEQ6IDEzLFxuICAgICAgRTogMTQsXG4gICAgICBGOiAxNSxcbiAgICAgIEc6IDE2LFxuICAgICAgSDogMTcsXG4gICAgICBJOiAxOCxcbiAgICAgIEo6IDE5LFxuICAgICAgSzogMjAsXG4gICAgICBMOiAyMSxcbiAgICAgIE06IDIyLFxuICAgICAgTjogMjMsXG4gICAgICAnJic6IDI0LFxuICAgICAgTzogMjUsXG4gICAgICBQOiAyNixcbiAgICAgIFE6IDI3LFxuICAgICAgUjogMjgsXG4gICAgICBTOiAyOSxcbiAgICAgIFQ6IDMwLFxuICAgICAgVTogMzEsXG4gICAgICBWOiAzMixcbiAgICAgIFc6IDMzLFxuICAgICAgWDogMzQsXG4gICAgICBZOiAzNSxcbiAgICAgIFo6IDM2LFxuICAgICAgJyAnOiAzNyxcbiAgICAgIMOROiAzOFxuICAgIH07XG5cbiAgICBjb25zdCBnZXRTY29yZSA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGRvYy5zcGxpdCgnJykucmV2ZXJzZSgpLnJlZHVjZSgoc3VtLCBjaGFyLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaSArIDI7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gVkFMVUVTX01BUFtjaGFyXSB8fCAwO1xuICAgICAgICByZXR1cm4gc3VtICsgdmFsdWUgKiBpbmRleDtcbiAgICAgIH0sIDApO1xuICAgIH07XG5cbiAgICBjb25zdCBwYXJzZUlucHV0ID0gKGRvYzogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gU3RyaW5nKGRvYylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAudG9VcHBlckNhc2UoKVxuICAgICAgICAucmVwbGFjZSgvW14wLTlBLVrDkVxceDI2XS9nLCAnJyk7XG4gICAgfTtcblxuICAgIGNvbnN0IHZhbGlkYXRlRGF0ZSA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGF0ZVN0ciA9IGRvYy5zbGljZSgwLCAtMykuc2xpY2UoLTYpO1xuICAgICAgY29uc3QgeWVhciA9IGRhdGVTdHIuc2xpY2UoMCwgMik7XG4gICAgICBjb25zdCBtb250aCA9IGRhdGVTdHIuc2xpY2UoMiwgNCk7XG4gICAgICBjb25zdCBkYXkgPSBkYXRlU3RyLnNsaWNlKDQsIDYpO1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGAyMCR7eWVhcn0tJHttb250aH0tJHtkYXl9YCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgICByZXR1cm4gIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdmFsaWRhdGVWZXJpZmljYXRpb25EaWdpdCA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGlnaXQgPSBkb2Muc2xpY2UoLTEpO1xuICAgICAgY29uc3QgcmZjID0gZG9jLmxlbmd0aCA9PT0gMTIgPyBgICR7ZG9jfWAgOiBkb2M7XG4gICAgICBjb25zdCBiYXNlID0gcmZjLnNsaWNlKDAsIC0xKTtcbiAgICAgIGNvbnN0IHNjb3JlID0gZ2V0U2NvcmUoYmFzZSk7XG4gICAgICBjb25zdCBtb2QgPSAoMTEwMDAgLSBzY29yZSkgJSAxMTtcbiAgICAgIGlmIChtb2QgPT09IDExKSByZXR1cm4gZGlnaXQgPT09ICcwJztcbiAgICAgIGlmIChtb2QgPT09IDEwKSByZXR1cm4gZGlnaXQgPT09ICdBJztcbiAgICAgIHJldHVybiBTdHJpbmcobW9kKSA9PT0gZGlnaXQ7XG4gICAgfTtcblxuICAgIGNvbnN0IGlzU3BlY2lhbENhc2UgPSAoZG9jOiBzdHJpbmcpID0+IHsgcmV0dXJuIGRvYyBpbiBTUEVDSUFMX0NBU0VTOyB9O1xuXG4gICAgY29uc3QgaGFzRm9yYmlkZGVuV29yZHMgPSAoZG9jOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IChkb2MgfHwgJycpLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIEZPUkJJRERFTl9XT1JEUy5pbmNsdWRlcyhwcmVmaXgpO1xuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5wdXQgPSBwYXJzZUlucHV0KGRvY3VtZW50KTtcblxuICAgICAgaWYgKGlzU3BlY2lhbENhc2UoaW5wdXQpKSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBoYXNWYWxpZEZvcm1hdCA9IFJGQ19SRUdFWFAudGVzdChpbnB1dCk7XG4gICAgICBpZiAoIWhhc1ZhbGlkRm9ybWF0KSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBoYXNWYWxpZERhdGUgPSB2YWxpZGF0ZURhdGUoaW5wdXQpO1xuICAgICAgaWYgKCFoYXNWYWxpZERhdGUpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IGhhc1ZhbGlkRGlnaXQgPSB2YWxpZGF0ZVZlcmlmaWNhdGlvbkRpZ2l0KGlucHV0KTtcbiAgICAgIGlmICghaGFzVmFsaWREaWdpdCkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKGhhc0ZvcmJpZGRlbldvcmRzKGlucHV0KSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBub3QgdG8gZG9cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRFSU4oZWluOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjbGVhbmVkRUlOID0gZWluPy5yZXBsYWNlKC9cXEQvZywgJycpIHx8ICcnO1xuXG4gICAgaWYgKGNsZWFuZWRFSU4ubGVuZ3RoICE9PSA5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRQcmVmaXhlcyA9IFtcbiAgICAgICcxMCcsXG4gICAgICAnMTInLFxuICAgICAgJzYwJyxcbiAgICAgICc2NycsXG4gICAgICAnNTAnLFxuICAgICAgJzUzJyxcbiAgICAgICcwMScsXG4gICAgICAnMDInLFxuICAgICAgJzAzJyxcbiAgICAgICcwNCcsXG4gICAgICAnMDUnLFxuICAgICAgJzA2JyxcbiAgICAgICcxMScsXG4gICAgICAnMTMnLFxuICAgICAgJzE0JyxcbiAgICAgICcxNicsXG4gICAgICAnMjEnLFxuICAgICAgJzIyJyxcbiAgICAgICcyMycsXG4gICAgICAnMjUnLFxuICAgICAgJzM0JyxcbiAgICAgICc1MScsXG4gICAgICAnNTInLFxuICAgICAgJzU0JyxcbiAgICAgICc1NScsXG4gICAgICAnNTYnLFxuICAgICAgJzU3JyxcbiAgICAgICc1OCcsXG4gICAgICAnNTknLFxuICAgICAgJzY1JyxcbiAgICAgICczMCcsXG4gICAgICAnMzInLFxuICAgICAgJzM1JyxcbiAgICAgICczNicsXG4gICAgICAnMzcnLFxuICAgICAgJzM4JyxcbiAgICAgICc2MScsXG4gICAgICAnMTUnLFxuICAgICAgJzI0JyxcbiAgICAgICcyMCcsXG4gICAgICAnMjYnLFxuICAgICAgJzI3JyxcbiAgICAgICc0NScsXG4gICAgICAnNDYnLFxuICAgICAgJzQ3JyxcbiAgICAgICc4MScsXG4gICAgICAnODInLFxuICAgICAgJzgzJyxcbiAgICAgICc4NCcsXG4gICAgICAnODUnLFxuICAgICAgJzQwJyxcbiAgICAgICc0NCcsXG4gICAgICAnOTQnLFxuICAgICAgJzk1JyxcbiAgICAgICc4MCcsXG4gICAgICAnOTAnLFxuICAgICAgJzMzJyxcbiAgICAgICczOScsXG4gICAgICAnNDEnLFxuICAgICAgJzQyJyxcbiAgICAgICc0MycsXG4gICAgICAnNDYnLFxuICAgICAgJzQ4JyxcbiAgICAgICc2MicsXG4gICAgICAnNjMnLFxuICAgICAgJzY0JyxcbiAgICAgICc2NicsXG4gICAgICAnNjgnLFxuICAgICAgJzcxJyxcbiAgICAgICc3MicsXG4gICAgICAnNzMnLFxuICAgICAgJzc0JyxcbiAgICAgICc3NScsXG4gICAgICAnNzYnLFxuICAgICAgJzc3JyxcbiAgICAgICc4NicsXG4gICAgICAnODcnLFxuICAgICAgJzg4JyxcbiAgICAgICc5MScsXG4gICAgICAnOTInLFxuICAgICAgJzkzJyxcbiAgICAgICc5OCcsXG4gICAgICAnOTknLFxuICAgICAgJzMxJ1xuICAgIF07XG5cbiAgICBjb25zdCBwcmVmaXggPSBjbGVhbmVkRUlOLnN1YnN0cmluZygwLCAyKTtcblxuICAgIHJldHVybiB2YWxpZFByZWZpeGVzLmluZGV4T2YocHJlZml4KSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgaXNWYWxpZFVybCh0eHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gLyhodHRwcz86XFwvXFwvKD86W2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/XFwuKStbYS16MC05XVthLXowLTktXXswLDYxfVthLXowLTldKSg6P1xcZCopXFwvPyhbYS16X1xcXFwvMC05XFwtIy5dKilcXD8/KFthLXpfXFxcXC8wLTlcXC0jPSZdKikvZztcbiAgICByZXR1cm4gcmVnZXgudGVzdCh0eHQpO1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRaaXBDb2RlKHppcENvZGU6IHN0cmluZywgY291bnRyeT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxlbmd0aCA9IHtcbiAgICAgIGJyOiA4LFxuICAgICAgY2w6IDcsXG4gICAgICBteDogNSxcbiAgICAgIHVzOiA1XG4gICAgfVtjb3VudHJ5IHx8ICdiciddO1xuXG4gICAgcmV0dXJuIGAke3RoaXMuaGFuZGxlT25seU51bWJlcnMoemlwQ29kZSl9YC5sZW5ndGggPT09IGxlbmd0aDtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkRW1haWwoZW1haWw6IHN0cmluZykge1xuICAgIHJldHVybiAvXltcXHctLl0rQChbXFx3LV0rXFwuKStbXFx3LV17MSw2NH0kLy50ZXN0KGVtYWlsIHx8ICcnKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRSYW5kb21TdHJpbmcobGVuOiBudW1iZXIsIGNoYXJTZXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNoYXJTZXQgPSBjaGFyU2V0IHx8ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG5cbiAgICBjb25zdCByYW5kb21TdHJpbmc6IHN0cmluZyA9IG5ldyBBcnJheShsZW4pXG4gICAgICAuZmlsbCgnMScpXG4gICAgICAubWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNoYXJTZXQ/LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyU2V0Py5sZW5ndGgpKTtcbiAgICAgIH0pXG4gICAgICAuam9pbignJyk7XG4gICAgcmV0dXJuIHJhbmRvbVN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBoYW5kbGVPbmx5TnVtYmVycyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgvW14wLTldL2cpLCAnJyk7XG4gIH1cblxuICBzdGF0aWMgaGFuZGxlT25seUFscGhhTnVtZXJpYyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoL1teMC05QS1aYS16XS8sICdnJyksICcnKTtcbiAgfVxuXG4gIHN0YXRpYyBjYXBpdGFsaXplKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt2YWx1ZS5zbGljZSgxKX1gO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFppcENvZGUoemlwQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXppcENvZGUpIHJldHVybiB6aXBDb2RlO1xuICAgIGNvbnN0IGZvcm1hdGVkOiBzdHJpbmcgPSB6aXBDb2RlXG4gICAgICAucmVwbGFjZSgvXihcXGR7NX0pKFxcZCkvLCAnJDEtJDInKVxuICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG5cbiAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgfVxuXG4gIHN0YXRpYyBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gICAgbGV0IGwgPSAwO1xuICAgIHdoaWxlIChzaXplID49IDEwMjQgJiYgKytsKSB7XG4gICAgICBzaXplIC89IDEwMjQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtzaXplLnRvRml4ZWQoc2l6ZSA8IDEwICYmIGwgPiAwID8gMSA6IDApfSAke3VuaXRzW2xdfWA7XG4gIH1cblxuICBzdGF0aWMgc3VmZmx1ZShkYXRhOiBhbnlbXSk6IGFueVtdIHtcbiAgICBmb3IgKGxldCBpID0gZGF0YS5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaSk7XG4gICAgICBjb25zdCB0ZW1wID0gZGF0YVtpXTtcbiAgICAgIGRhdGFbaV0gPSBkYXRhW2pdO1xuICAgICAgZGF0YVtqXSA9IHRlbXA7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdGljIGhhbmRsZUJsb2JGaWxlKHRoZUJsb2I6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgZmlsZVR5cGU6IHN0cmluZykge1xuICAgIGZ1bmN0aW9uIGJsb2JUb0ZpbGUodGhlQmxvYjogYW55LCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBiID0gdGhlQmxvYjtcbiAgICAgIGIubGFzdE1vZGlmaWVkRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBiLm5hbWUgPSBmaWxlTmFtZTtcbiAgICAgIHJldHVybiBiO1xuICAgIH1cblxuICAgIGxldCBmaWxlOiBhbnk7XG4gICAgaWYgKCEobmF2aWdhdG9yIGFzIGFueSkubXNTYXZlQmxvYikge1xuICAgICAgZmlsZSA9IG5ldyBGaWxlKFt0aGVCbG9iXSwgZmlsZU5hbWUsIHtcbiAgICAgICAgdHlwZTogZmlsZVR5cGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZSA9IG5ldyBCbG9iKFt0aGVCbG9iXSwge1xuICAgICAgICB0eXBlOiBmaWxlVHlwZSxcbiAgICAgIH0pO1xuICAgICAgZmlsZSA9IGJsb2JUb0ZpbGUoZmlsZSwgZmlsZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsZTtcbiAgfVxuXG4gIHN0YXRpYyB0cnVuY2F0ZSh0ZXh0OiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyID0gMjUpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1pZENoYXIgPSAnLi4uJztcbiAgICBpZiAoIXRleHQpIHJldHVybiBtaWRDaGFyO1xuICAgIGlmICh0ZXh0ICYmIHRleHQubGVuZ3RoIDw9IG1heExlbmd0aCkgcmV0dXJuIHRleHQ7XG5cbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5jZWlsKG1heExlbmd0aCAvIDIpO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGV4dC5sZW5ndGggLSBsZWZ0ICsgMTtcblxuICAgIHJldHVybiBgJHt0ZXh0LnN1YnN0cigwLCBsZWZ0KX0gJHttaWRDaGFyfSAke3RleHQuc3Vic3RyaW5nKHJpZ2h0KX1gO1xuICB9XG5cbiAgc3RhdGljIGlzTG9jYWxob3N0KCkge1xuICAgIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93Py5sb2NhdGlvbjtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaHJlZj8uc2VhcmNoKCdsb2NhbGhvc3QnKSA+PSAwO1xuICB9XG5cbiAgc3RhdGljIGlzU2FtZU9yaWdpbihmcm9udGVuZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5pdGlhbFBhdGg6IHN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgcmV0dXJuIChpbml0aWFsUGF0aCB8fCAnJykgPT09IGZyb250ZW5kO1xuICB9XG5cbiAgc3RhdGljIHJlcGxhY2VWYXJpYWJsZXMoZGF0YTogc3RyaW5nLCBvYmo6IGFueSkge1xuICAgIGxldCBoYW5kbGVkID0gZGF0YTtcbiAgICBPYmplY3QuZW50cmllcyhvYmopLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaGFuZGxlZCA9IGhhbmRsZWQucmVwbGFjZShuZXcgUmVnRXhwKGB7JHtrZXl9fWAsICdnJyksIGAke3ZhbHVlfWApO1xuICAgIH0pO1xuICAgIHJldHVybiBoYW5kbGVkO1xuICB9XG5cbiAgc3RhdGljIHRyaW1WYWx1ZXNUb1NhdmUob2JqOiBhbnksIGZpZWxkczogc3RyaW5nW10pIHtcbiAgICBsZXQgcmV0ID0gb2JqO1xuICAgIGNvbnN0IGdyb3VwZWQgPSBmaWVsZHMuam9pbignIycpO1xuICAgIE9iamVjdC5lbnRyaWVzKG9iaikubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmIChncm91cGVkLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgcmV0ID0ge1xuICAgICAgICAgIC4uLnJldCxcbiAgICAgICAgICBba2V5XTogYCR7dmFsdWV9YC50cmltKClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBNb25rZXlFY3hMb2dzRXJyb3JUeXBlcyA9ICdvaycgfFxuICAnZGVidWcnIHxcbiAgJ2luZm8nIHxcbiAgJ25vdGljZScgfFxuICAnd2FybicgfFxuICAnZXJyb3InIHxcbiAgJ2NyaXRpY2FsJyB8XG4gICdhbGVydCcgfFxuICAnZW1lcmcnO1xuXG5leHBvcnQgdHlwZSBNb25rZXlFY3hMb2dQYXJhbXMgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY29udGV4dD86IGFueTtcbiAgZXJyb3I/OiBFcnJvcjtcbiAgdHlwZT86IE1vbmtleUVjeExvZ3NFcnJvclR5cGVzO1xufVxuXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4TG9ncyB7XG4gIHN0YXRpYyBsb2cocGFyYW1zOiBNb25rZXlFY3hMb2dQYXJhbXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyB0eXBlLCBtZXNzYWdlLCBjb250ZXh0LCBlcnJvciB9ID0gcGFyYW1zO1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyW3R5cGUgfHwgJ2Vycm9yJ10obWVzc2FnZSwgY29udGV4dCwgZXJyb3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdCB0byBkb1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVmZmVyVG9CYXNlNjQoYnVmZmVyOiBBcnJheUJ1ZmZlcik6IHN0cmluZyB7XG4gIGxldCBiaW5hcnkgPSAnJztcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICBjb25zdCBsZW4gPSBieXRlcy5ieXRlTGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0pO1xuICB9XG4gIHJldHVybiB3aW5kb3cuYnRvYShiaW5hcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0VG9CdWZmZXIoYmFzZTY0OiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IGJpbmFyeVN0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7XG4gIGNvbnN0IGxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGJ5dGVzW2ldID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gIH1cbiAgcmV0dXJuIGJ5dGVzLmJ1ZmZlcjtcbn1cbiJdfQ==
|
|
590
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLDRCQUE0QjtBQUM1QixzQ0FBc0M7QUFDdEMsZ0NBQWdDO0FBQ2hDLG1DQUFtQztBQUNuQywyQkFBMkI7QUFDM0IsaUNBQWlDO0FBQ2pDLGdDQUFnQztBQUNoQywyQkFBMkI7QUFFM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLHFDQUFxQztBQUNyQyxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMseUJBQXlCLENBQUMsRUFBTztRQUN0QyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVcsRUFBRSxPQUFnQjtRQUNsRCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxLQUFLLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNuQyxJQUFJLE9BQU8sS0FBSyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDbkMsSUFBSSxPQUFPLEtBQUssSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLENBQUM7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LFFBQVEsQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQUUsQ0FBQztZQUM5RCxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQUUsQ0FBQztZQUMvRCxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFD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QixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRztZQUNqQixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lB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QUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdkM7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNvbW1hLWRhbmdsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdXNlbGVzcy1lc2NhcGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBsdXNwbHVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25kLWFzc2lnbiAqL1xuLyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZWRlY2xhcmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIHZhcnMtb24tdG9wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12YXIgKi9cblxuaW1wb3J0IHsgZGF0YWRvZ0xvZ3MgfSBmcm9tICdAZGF0YWRvZy9icm93c2VyLWxvZ3MnO1xuaW1wb3J0IHsgQ05QSlZhbGlkYXRvciB9IGZyb20gJy4vQ05QSic7XG5pbXBvcnQgeyBDUEZWYWxpZGF0b3IgfSBmcm9tICcuL0NQRic7XG5pbXBvcnQgeyBDb3VudHJ5TWFza3MgfSBmcm9tICcuL3N0YXRpY3MnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBibG9jay1zY29wZWQtdmFyICovXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4VXRpbHMge1xuICBzdGF0aWMgcGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh0cDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRwICE9PSBudWxsICYmIHRwICE9PSB1bmRlZmluZWQgJiYgdHAgIT09ICcnO1xuICB9XG5cbiAgc3RhdGljIGdldERvY3VtZW50VHlwZShkb2M6IHN0cmluZywgY291bnRyeT86IHN0cmluZykge1xuICAgIGlmICghZG9jKSByZXR1cm4gJyc7XG4gICAgaWYgKGNvdW50cnkgPT09ICdjbCcpIHJldHVybiAnUlVUJztcbiAgICBpZiAoY291bnRyeSA9PT0gJ214JykgcmV0dXJuICdSRkMnO1xuICAgIGlmIChjb3VudHJ5ID09PSAndXMnKSByZXR1cm4gJ0VJTic7XG4gICAgcmV0dXJuIGRvYy5sZW5ndGggPD0gMTEgPyAnQ1BGJyA6ICdDTlBKJztcbiAgfVxuXG4gIHN0YXRpYyBnZXREb2N1bWVudE1hc2sodHlwZTogc3RyaW5nLCBjb3VudHJ5ID0gJycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgQlI6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuQ1BGLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuQ05QSixcbiAgICAgICAgJyc6IGAke0NvdW50cnlNYXNrcy5DUEZ9fHwke0NvdW50cnlNYXNrcy5DTlBKfWBcbiAgICAgIH0sXG4gICAgICBDTDoge1xuICAgICAgICBDUEY6IENvdW50cnlNYXNrcy5SVVQxLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuUlVUMixcbiAgICAgICAgJyc6IGAke0NvdW50cnlNYXNrcy5SVVQxfXx8JHtDb3VudHJ5TWFza3MuUlVUMn1gXG4gICAgICB9LFxuICAgICAgTVg6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuUkZDMSxcbiAgICAgICAgQ05QSjogQ291bnRyeU1hc2tzLlJGQzIsXG4gICAgICAgICcnOiBgJHtDb3VudHJ5TWFza3MuUkZDMX18fCR7Q291bnRyeU1hc2tzLlJGQzJ9YFxuICAgICAgfSxcbiAgICAgIFVTOiB7XG4gICAgICAgIENQRjogQ291bnRyeU1hc2tzLkVJTixcbiAgICAgICAgQ05QSjogQ291bnRyeU1hc2tzLkVJTixcbiAgICAgICAgJyc6IENvdW50cnlNYXNrcy5FSU5cbiAgICAgIH1cbiAgICB9W2NvdW50cnkudG9VcHBlckNhc2UoKV0/Llt0eXBlXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXREb2N1bWVudFBsYWNlaG9sZGVyKHR5cGU6IHN0cmluZywgY291bnRyeSA9ICcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEJSOiB7XG4gICAgICAgIENQRjogJzAwMC4wMDAuMDAwLVhYJyxcbiAgICAgICAgQ05QSjogJzAwLjAwMC4wMDAvMDAwMC0wMCdcbiAgICAgIH0sXG4gICAgICBDTDoge1xuICAgICAgICBDUEY6ICcwMDAwMDAwLUEnLFxuICAgICAgICBDTlBKOiAnMDAwMDAwMC1BJ1xuICAgICAgfSxcbiAgICAgIE1YOiB7XG4gICAgICAgIENQRjogQ291bnRyeU1hc2tzLlJGQzEsXG4gICAgICAgIENOUEo6IENvdW50cnlNYXNrcy5SRkMyXG4gICAgICB9LFxuICAgICAgVVM6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuRUlOLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuRUlOXG4gICAgICB9XG4gICAgfVtjb3VudHJ5LnRvVXBwZXJDYXNlKCldPy5bdHlwZV07XG4gIH1cblxuICBzdGF0aWMgZm9ybWF0RG9jdW1lbnRXaXRoTWFzayhkb2M6IHN0cmluZywgd2l0aFR5cGU/OiBib29sZWFuLCBjb3VudHJ5Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWRvYykgcmV0dXJuIGRvYztcbiAgICBsZXQgZm9ybWF0ZWQ6IHN0cmluZyA9ICcnO1xuICAgIGlmIChjb3VudHJ5ID09PSAnY2wnKSB7XG4gICAgICBmb3JtYXRlZCA9IGRvYy5yZXBsYWNlKC9eKFxcZHsxLDJ9KShcXGR7M30pKFxcZHszfSkoXFx3ezF9KSQvLCAnJDEuJDIuJDMtJDQnKTtcbiAgICAgIHJldHVybiBgJHtmb3JtYXRlZH1gO1xuICAgIH1cbiAgICBpZiAoY291bnRyeSA9PT0gJ3VzJykge1xuICAgICAgZm9ybWF0ZWQgPSBkb2MucmVwbGFjZSgvXihcXGR7Mn0pKFxcZHs3fSkkLywgJyQxLSQyJyk7XG4gICAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgICB9XG4gICAgaWYgKGRvYy5sZW5ndGggPT09IDE0KSB7XG4gICAgICBjb25zdCBjbGVhbmVkID0gZG9jLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnJykudG9VcHBlckNhc2UoKTtcblxuICAgICAgZm9ybWF0ZWQgPSBjbGVhbmVkXG4gICAgICAgIC5yZXBsYWNlKC9eKFtBLVowLTldezJ9KShbQS1aMC05XSkvLCAnJDEuJDInKVxuICAgICAgICAucmVwbGFjZSgvXihbQS1aMC05XXsyfSlcXC4oW0EtWjAtOV17M30pKFtBLVowLTldKS8sICckMS4kMi4kMycpXG4gICAgICAgIC5yZXBsYWNlKC9cXC4oXFx3ezN9KShcXHcpLywgJy4kMS8kMicpXG4gICAgICAgIC5yZXBsYWNlKC8oXFxkezR9KShcXGQpLywgJyQxLSQyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1hdGVkID0gZG9jXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSkoXFxkKS8sICckMS4kMicpXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSlcXC4oXFxkezN9KShcXGQpLywgJyQxLiQyLiQzJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dpdGhUeXBlID8gYCR7dGhpcy5nZXREb2N1bWVudFR5cGUoZG9jKX06YCA6ICcnfSAke2Zvcm1hdGVkfWA7XG4gIH1cblxuICBzdGF0aWMgY3V0Rmlyc3RMYXN0TmFtZSh2YWx1ZTogc3RyaW5nLCB0cDogc3RyaW5nID0gJ2ZpcnN0Jykge1xuICAgIGNvbnN0IHNwbGl0ID0gdmFsdWU/LnRyaW0oKT8uc3BsaXQoJyAnKTtcblxuICAgIGlmICh0cCA9PT0gJ2ZpcnN0JykgcmV0dXJuIHNwbGl0WzBdO1xuICAgIHJldHVybiBzcGxpdD8uc3BsaWNlKDEsIHNwbGl0Lmxlbmd0aCk/LmpvaW4oJyAnKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0NQRkNOUEpWYWxpZChkb2N1bWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgZG9jdW1lbnQgPSBkb2N1bWVudC5yZXBsYWNlKC9bXlxcZF0vZywgJycpO1xuXG4gICAgY29uc3QgaGFuZGxlZCA9IGRvY3VtZW50LnJlcGxhY2UobmV3IFJlZ0V4cChkb2N1bWVudC5jaGFyQXQoMCksICdnJyksICcnKTtcbiAgICBpZiAoIWhhbmRsZWQpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDExKSB7XG4gICAgICBsZXQgYmFzZSA9IFsxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMF07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCA5OyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKSA7XG4gICAgICBpZiAoZG9jdW1lbnRbOV0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgYmFzZSA9IFsxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDk7IG4gKz0gZG9jdW1lbnRbaV0gKiBiYXNlW2krK10pIDtcbiAgICAgIGlmIChkb2N1bWVudFsxMF0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDE0IHx8IC8wezE0fS8udGVzdChkb2N1bWVudCkpIHtcbiAgICAgIGNvbnN0IGJhc2UgPSBbNiwgNSwgNCwgMywgMiwgOSwgOCwgNywgNiwgNSwgNCwgMywgMl07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCAxMjsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbKytpXSkgO1xuICAgICAgaWYgKGRvY3VtZW50WzEyXSAhPSAoKG4gJT0gMTEpIDwgMiA/IDAgOiAxMSAtIG4pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDEyOyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKSA7XG4gICAgICBpZiAoZG9jdW1lbnRbMTNdICE9ICgobiAlPSAxMSkgPCAyID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIGlzQ1BGQWxwaGFudW1lcmljQ05QSlZhbGlkKGRvY3VtZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBkb2N1bWVudCA9IGRvY3VtZW50LnJlcGxhY2UoL1suLy1dL2csICcnKTtcblxuICAgIGNvbnN0IGhhbmRsZWQgPSBkb2N1bWVudC5yZXBsYWNlKG5ldyBSZWdFeHAoZG9jdW1lbnQuY2hhckF0KDApLCAnZycpLCAnJyk7XG4gICAgaWYgKCFoYW5kbGVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoZG9jdW1lbnQubGVuZ3RoID09PSAxMSkge1xuICAgICAgcmV0dXJuIENQRlZhbGlkYXRvci5pc1ZhbGlkKGRvY3VtZW50KTtcbiAgICB9XG4gICAgaWYgKGRvY3VtZW50Lmxlbmd0aCA9PT0gMTQgfHwgLzB7MTR9Ly50ZXN0KGRvY3VtZW50KSkge1xuICAgICAgcmV0dXJuIENOUEpWYWxpZGF0b3IuaXNWYWxpZChkb2N1bWVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFJVVChkb2N1bWVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkb2N1bWVudCB8fCBkb2N1bWVudC50cmltKCkubGVuZ3RoIDwgMykgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGRvY3VtZW50SGFuZGxlZCA9IGRvY3VtZW50LnJlcGxhY2UoL1teMC05a0tdL2csICcnKTtcblxuICAgIGlmIChkb2N1bWVudEhhbmRsZWQubGVuZ3RoIDwgMykgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgY2FsY0R2ID0gKHJ1dDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gYCR7cnV0fWA7XG4gICAgICBsZXQgc3VtID0gMDtcbiAgICAgIGxldCBtdWx0ID0gMjtcblxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBtdWx0ICogTnVtYmVyKHZhbHVlLmNoYXJBdCh2YWx1ZS5sZW5ndGggLSBpKSk7XG5cbiAgICAgICAgc3VtICs9IGluZGV4O1xuXG4gICAgICAgIGlmIChtdWx0IDwgNykge1xuICAgICAgICAgIG11bHQgKz0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtdWx0ID0gMjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkdkVzcGVyYWRvID0gMTEgLSAoc3VtICUgMTEpO1xuICAgICAgaWYgKGR2RXNwZXJhZG8gPT09IDEwKSByZXR1cm4gJ0snO1xuICAgICAgaWYgKGR2RXNwZXJhZG8gPT09IDExKSByZXR1cm4gJzAnO1xuICAgICAgcmV0dXJuIGAke2R2RXNwZXJhZG99YDtcbiAgICB9O1xuXG4gICAgY29uc3QgbnVtID0gZG9jdW1lbnRIYW5kbGVkLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCBkZ3YgPSBkb2N1bWVudEhhbmRsZWQuc2xpY2UoLTEpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICBjb25zdCBkdkNhbGMgPSBjYWxjRHYobnVtKTtcbiAgICByZXR1cm4gZHZDYWxjID09PSBkZ3Y7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRSRkMoZG9jdW1lbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IFJGQ19SRUdFWFAgPSAvXihbQS1aw5FcXHgyNl17Myw0fSkoWzAtOV17Nn0pKFtBLVowLTldezN9KSQvO1xuICAgIGNvbnN0IFNQRUNJQUxfQ0FTRVMgPSB7XG4gICAgICBYRVhYMDEwMTAxMDAwOiAnZm9yZWlnbicsXG4gICAgICBYQVhYMDEwMTAxMDAwOiAnZ2VuZXJpYydcbiAgICB9O1xuICAgIGNvbnN0IEZPUkJJRERFTl9XT1JEUyA9IFtcbiAgICAgICdCVUVJJyxcbiAgICAgICdCVUVZJyxcbiAgICAgICdDQUNBJyxcbiAgICAgICdDQUNPJyxcbiAgICAgICdDQUdBJyxcbiAgICAgICdDQUdPJyxcbiAgICAgICdDQUtBJyxcbiAgICAgICdDQUtPJyxcbiAgICAgICdDT0dFJyxcbiAgICAgICdDT0pBJyxcbiAgICAgICdDT0pFJyxcbiAgICAgICdDT0pJJyxcbiAgICAgICdDT0pPJyxcbiAgICAgICdDVUxPJyxcbiAgICAgICdGRVRPJyxcbiAgICAgICdHVUVZJyxcbiAgICAgICdKT1RPJyxcbiAgICAgICdLQUNBJyxcbiAgICAgICdLQUNPJyxcbiAgICAgICdLQUdBJyxcbiAgICAgICdLQUdPJyxcbiAgICAgICdLT0dFJyxcbiAgICAgICdLT0pPJyxcbiAgICAgICdLQUtBJyxcbiAgICAgICdLVUxPJyxcbiAgICAgICdNQU1FJyxcbiAgICAgICdNQU1PJyxcbiAgICAgICdNRUFSJyxcbiAgICAgICdNRUFTJyxcbiAgICAgICdNRU9OJyxcbiAgICAgICdNSU9OJyxcbiAgICAgICdNT0NPJyxcbiAgICAgICdNVUxBJyxcbiAgICAgICdQRURBJyxcbiAgICAgICdQRURPJyxcbiAgICAgICdQRU5FJyxcbiAgICAgICdQVVRBJyxcbiAgICAgICdQVVRPJyxcbiAgICAgICdRVUxPJyxcbiAgICAgICdSQVRBJyxcbiAgICAgICdSVUlOJ1xuICAgIF07XG5cbiAgICBjb25zdCBWQUxVRVNfTUFQID0ge1xuICAgICAgMDogMCxcbiAgICAgIDE6IDEsXG4gICAgICAyOiAyLFxuICAgICAgMzogMyxcbiAgICAgIDQ6IDQsXG4gICAgICA1OiA1LFxuICAgICAgNjogNixcbiAgICAgIDc6IDcsXG4gICAgICA4OiA4LFxuICAgICAgOTogOSxcbiAgICAgIEE6IDEwLFxuICAgICAgQjogMTEsXG4gICAgICBDOiAxMixcbiAgICAgIEQ6IDEzLFxuICAgICAgRTogMTQsXG4gICAgICBGOiAxNSxcbiAgICAgIEc6IDE2LFxuICAgICAgSDogMTcsXG4gICAgICBJOiAxOCxcbiAgICAgIEo6IDE5LFxuICAgICAgSzogMjAsXG4gICAgICBMOiAyMSxcbiAgICAgIE06IDIyLFxuICAgICAgTjogMjMsXG4gICAgICAnJic6IDI0LFxuICAgICAgTzogMjUsXG4gICAgICBQOiAyNixcbiAgICAgIFE6IDI3LFxuICAgICAgUjogMjgsXG4gICAgICBTOiAyOSxcbiAgICAgIFQ6IDMwLFxuICAgICAgVTogMzEsXG4gICAgICBWOiAzMixcbiAgICAgIFc6IDMzLFxuICAgICAgWDogMzQsXG4gICAgICBZOiAzNSxcbiAgICAgIFo6IDM2LFxuICAgICAgJyAnOiAzNyxcbiAgICAgIMOROiAzOFxuICAgIH07XG5cbiAgICBjb25zdCBnZXRTY29yZSA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGRvYy5zcGxpdCgnJykucmV2ZXJzZSgpLnJlZHVjZSgoc3VtLCBjaGFyLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaSArIDI7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gVkFMVUVTX01BUFtjaGFyXSB8fCAwO1xuICAgICAgICByZXR1cm4gc3VtICsgdmFsdWUgKiBpbmRleDtcbiAgICAgIH0sIDApO1xuICAgIH07XG5cbiAgICBjb25zdCBwYXJzZUlucHV0ID0gKGRvYzogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gU3RyaW5nKGRvYylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAudG9VcHBlckNhc2UoKVxuICAgICAgICAucmVwbGFjZSgvW14wLTlBLVrDkVxceDI2XS9nLCAnJyk7XG4gICAgfTtcblxuICAgIGNvbnN0IHZhbGlkYXRlRGF0ZSA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGF0ZVN0ciA9IGRvYy5zbGljZSgwLCAtMykuc2xpY2UoLTYpO1xuICAgICAgY29uc3QgeWVhciA9IGRhdGVTdHIuc2xpY2UoMCwgMik7XG4gICAgICBjb25zdCBtb250aCA9IGRhdGVTdHIuc2xpY2UoMiwgNCk7XG4gICAgICBjb25zdCBkYXkgPSBkYXRlU3RyLnNsaWNlKDQsIDYpO1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGAyMCR7eWVhcn0tJHttb250aH0tJHtkYXl9YCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgICByZXR1cm4gIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdmFsaWRhdGVWZXJpZmljYXRpb25EaWdpdCA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGlnaXQgPSBkb2Muc2xpY2UoLTEpO1xuICAgICAgY29uc3QgcmZjID0gZG9jLmxlbmd0aCA9PT0gMTIgPyBgICR7ZG9jfWAgOiBkb2M7XG4gICAgICBjb25zdCBiYXNlID0gcmZjLnNsaWNlKDAsIC0xKTtcbiAgICAgIGNvbnN0IHNjb3JlID0gZ2V0U2NvcmUoYmFzZSk7XG4gICAgICBjb25zdCBtb2QgPSAoMTEwMDAgLSBzY29yZSkgJSAxMTtcbiAgICAgIGlmIChtb2QgPT09IDExKSByZXR1cm4gZGlnaXQgPT09ICcwJztcbiAgICAgIGlmIChtb2QgPT09IDEwKSByZXR1cm4gZGlnaXQgPT09ICdBJztcbiAgICAgIHJldHVybiBTdHJpbmcobW9kKSA9PT0gZGlnaXQ7XG4gICAgfTtcblxuICAgIGNvbnN0IGlzU3BlY2lhbENhc2UgPSAoZG9jOiBzdHJpbmcpID0+IHsgcmV0dXJuIGRvYyBpbiBTUEVDSUFMX0NBU0VTOyB9O1xuXG4gICAgY29uc3QgaGFzRm9yYmlkZGVuV29yZHMgPSAoZG9jOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IChkb2MgfHwgJycpLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIEZPUkJJRERFTl9XT1JEUy5pbmNsdWRlcyhwcmVmaXgpO1xuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5wdXQgPSBwYXJzZUlucHV0KGRvY3VtZW50KTtcblxuICAgICAgaWYgKGlzU3BlY2lhbENhc2UoaW5wdXQpKSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBoYXNWYWxpZEZvcm1hdCA9IFJGQ19SRUdFWFAudGVzdChpbnB1dCk7XG4gICAgICBpZiAoIWhhc1ZhbGlkRm9ybWF0KSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBoYXNWYWxpZERhdGUgPSB2YWxpZGF0ZURhdGUoaW5wdXQpO1xuICAgICAgaWYgKCFoYXNWYWxpZERhdGUpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IGhhc1ZhbGlkRGlnaXQgPSB2YWxpZGF0ZVZlcmlmaWNhdGlvbkRpZ2l0KGlucHV0KTtcbiAgICAgIGlmICghaGFzVmFsaWREaWdpdCkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKGhhc0ZvcmJpZGRlbldvcmRzKGlucHV0KSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBub3QgdG8gZG9cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRFSU4oZWluOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjbGVhbmVkRUlOID0gZWluPy5yZXBsYWNlKC9cXEQvZywgJycpIHx8ICcnO1xuXG4gICAgaWYgKGNsZWFuZWRFSU4ubGVuZ3RoICE9PSA5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRQcmVmaXhlcyA9IFtcbiAgICAgICcxMCcsXG4gICAgICAnMTInLFxuICAgICAgJzYwJyxcbiAgICAgICc2NycsXG4gICAgICAnNTAnLFxuICAgICAgJzUzJyxcbiAgICAgICcwMScsXG4gICAgICAnMDInLFxuICAgICAgJzAzJyxcbiAgICAgICcwNCcsXG4gICAgICAnMDUnLFxuICAgICAgJzA2JyxcbiAgICAgICcxMScsXG4gICAgICAnMTMnLFxuICAgICAgJzE0JyxcbiAgICAgICcxNicsXG4gICAgICAnMjEnLFxuICAgICAgJzIyJyxcbiAgICAgICcyMycsXG4gICAgICAnMjUnLFxuICAgICAgJzM0JyxcbiAgICAgICc1MScsXG4gICAgICAnNTInLFxuICAgICAgJzU0JyxcbiAgICAgICc1NScsXG4gICAgICAnNTYnLFxuICAgICAgJzU3JyxcbiAgICAgICc1OCcsXG4gICAgICAnNTknLFxuICAgICAgJzY1JyxcbiAgICAgICczMCcsXG4gICAgICAnMzInLFxuICAgICAgJzM1JyxcbiAgICAgICczNicsXG4gICAgICAnMzcnLFxuICAgICAgJzM4JyxcbiAgICAgICc2MScsXG4gICAgICAnMTUnLFxuICAgICAgJzI0JyxcbiAgICAgICcyMCcsXG4gICAgICAnMjYnLFxuICAgICAgJzI3JyxcbiAgICAgICc0NScsXG4gICAgICAnNDYnLFxuICAgICAgJzQ3JyxcbiAgICAgICc4MScsXG4gICAgICAnODInLFxuICAgICAgJzgzJyxcbiAgICAgICc4NCcsXG4gICAgICAnODUnLFxuICAgICAgJzQwJyxcbiAgICAgICc0NCcsXG4gICAgICAnOTQnLFxuICAgICAgJzk1JyxcbiAgICAgICc4MCcsXG4gICAgICAnOTAnLFxuICAgICAgJzMzJyxcbiAgICAgICczOScsXG4gICAgICAnNDEnLFxuICAgICAgJzQyJyxcbiAgICAgICc0MycsXG4gICAgICAnNDYnLFxuICAgICAgJzQ4JyxcbiAgICAgICc2MicsXG4gICAgICAnNjMnLFxuICAgICAgJzY0JyxcbiAgICAgICc2NicsXG4gICAgICAnNjgnLFxuICAgICAgJzcxJyxcbiAgICAgICc3MicsXG4gICAgICAnNzMnLFxuICAgICAgJzc0JyxcbiAgICAgICc3NScsXG4gICAgICAnNzYnLFxuICAgICAgJzc3JyxcbiAgICAgICc4NicsXG4gICAgICAnODcnLFxuICAgICAgJzg4JyxcbiAgICAgICc5MScsXG4gICAgICAnOTInLFxuICAgICAgJzkzJyxcbiAgICAgICc5OCcsXG4gICAgICAnOTknLFxuICAgICAgJzMxJ1xuICAgIF07XG5cbiAgICBjb25zdCBwcmVmaXggPSBjbGVhbmVkRUlOLnN1YnN0cmluZygwLCAyKTtcblxuICAgIHJldHVybiB2YWxpZFByZWZpeGVzLmluZGV4T2YocHJlZml4KSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgaXNWYWxpZFVybCh0eHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gLyhodHRwcz86XFwvXFwvKD86W2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/XFwuKStbYS16MC05XVthLXowLTktXXswLDYxfVthLXowLTldKSg6P1xcZCopXFwvPyhbYS16X1xcXFwvMC05XFwtIy5dKilcXD8/KFthLXpfXFxcXC8wLTlcXC0jPSZdKikvZztcbiAgICByZXR1cm4gcmVnZXgudGVzdCh0eHQpO1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRaaXBDb2RlKHppcENvZGU6IHN0cmluZywgY291bnRyeT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxlbmd0aCA9IHtcbiAgICAgIGJyOiA4LFxuICAgICAgY2w6IDcsXG4gICAgICBteDogNSxcbiAgICAgIHVzOiA1XG4gICAgfVtjb3VudHJ5IHx8ICdiciddO1xuXG4gICAgcmV0dXJuIGAke3RoaXMuaGFuZGxlT25seU51bWJlcnMoemlwQ29kZSl9YC5sZW5ndGggPT09IGxlbmd0aDtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkRW1haWwoZW1haWw6IHN0cmluZykge1xuICAgIHJldHVybiAvXltcXHctLl0rQChbXFx3LV0rXFwuKStbXFx3LV17MSw2NH0kLy50ZXN0KGVtYWlsIHx8ICcnKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRSYW5kb21TdHJpbmcobGVuOiBudW1iZXIsIGNoYXJTZXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNoYXJTZXQgPSBjaGFyU2V0IHx8ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG5cbiAgICBjb25zdCByYW5kb21TdHJpbmc6IHN0cmluZyA9IG5ldyBBcnJheShsZW4pXG4gICAgICAuZmlsbCgnMScpXG4gICAgICAubWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNoYXJTZXQ/LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyU2V0Py5sZW5ndGgpKTtcbiAgICAgIH0pXG4gICAgICAuam9pbignJyk7XG4gICAgcmV0dXJuIHJhbmRvbVN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBoYW5kbGVPbmx5TnVtYmVycyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgvW14wLTldL2cpLCAnJyk7XG4gIH1cblxuICBzdGF0aWMgaGFuZGxlT25seUFscGhhTnVtZXJpYyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoL1teMC05QS1aYS16XS8sICdnJyksICcnKTtcbiAgfVxuXG4gIHN0YXRpYyBjYXBpdGFsaXplKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt2YWx1ZS5zbGljZSgxKX1gO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFppcENvZGUoemlwQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXppcENvZGUpIHJldHVybiB6aXBDb2RlO1xuICAgIGNvbnN0IGZvcm1hdGVkOiBzdHJpbmcgPSB6aXBDb2RlXG4gICAgICAucmVwbGFjZSgvXihcXGR7NX0pKFxcZCkvLCAnJDEtJDInKVxuICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG5cbiAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgfVxuXG4gIHN0YXRpYyBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gICAgbGV0IGwgPSAwO1xuICAgIHdoaWxlIChzaXplID49IDEwMjQgJiYgKytsKSB7XG4gICAgICBzaXplIC89IDEwMjQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtzaXplLnRvRml4ZWQoc2l6ZSA8IDEwICYmIGwgPiAwID8gMSA6IDApfSAke3VuaXRzW2xdfWA7XG4gIH1cblxuICBzdGF0aWMgc3VmZmx1ZShkYXRhOiBhbnlbXSk6IGFueVtdIHtcbiAgICBmb3IgKGxldCBpID0gZGF0YS5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaSk7XG4gICAgICBjb25zdCB0ZW1wID0gZGF0YVtpXTtcbiAgICAgIGRhdGFbaV0gPSBkYXRhW2pdO1xuICAgICAgZGF0YVtqXSA9IHRlbXA7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdGljIGhhbmRsZUJsb2JGaWxlKHRoZUJsb2I6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgZmlsZVR5cGU6IHN0cmluZykge1xuICAgIGZ1bmN0aW9uIGJsb2JUb0ZpbGUodGhlQmxvYjogYW55LCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBiID0gdGhlQmxvYjtcbiAgICAgIGIubGFzdE1vZGlmaWVkRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBiLm5hbWUgPSBmaWxlTmFtZTtcbiAgICAgIHJldHVybiBiO1xuICAgIH1cblxuICAgIGxldCBmaWxlOiBhbnk7XG4gICAgaWYgKCEobmF2aWdhdG9yIGFzIGFueSkubXNTYXZlQmxvYikge1xuICAgICAgZmlsZSA9IG5ldyBGaWxlKFt0aGVCbG9iXSwgZmlsZU5hbWUsIHtcbiAgICAgICAgdHlwZTogZmlsZVR5cGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZSA9IG5ldyBCbG9iKFt0aGVCbG9iXSwge1xuICAgICAgICB0eXBlOiBmaWxlVHlwZSxcbiAgICAgIH0pO1xuICAgICAgZmlsZSA9IGJsb2JUb0ZpbGUoZmlsZSwgZmlsZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsZTtcbiAgfVxuXG4gIHN0YXRpYyB0cnVuY2F0ZSh0ZXh0OiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyID0gMjUpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1pZENoYXIgPSAnLi4uJztcbiAgICBpZiAoIXRleHQpIHJldHVybiBtaWRDaGFyO1xuICAgIGlmICh0ZXh0ICYmIHRleHQubGVuZ3RoIDw9IG1heExlbmd0aCkgcmV0dXJuIHRleHQ7XG5cbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5jZWlsKG1heExlbmd0aCAvIDIpO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGV4dC5sZW5ndGggLSBsZWZ0ICsgMTtcblxuICAgIHJldHVybiBgJHt0ZXh0LnN1YnN0cigwLCBsZWZ0KX0gJHttaWRDaGFyfSAke3RleHQuc3Vic3RyaW5nKHJpZ2h0KX1gO1xuICB9XG5cbiAgc3RhdGljIGlzTG9jYWxob3N0KCkge1xuICAgIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93Py5sb2NhdGlvbjtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaHJlZj8uc2VhcmNoKCdsb2NhbGhvc3QnKSA+PSAwO1xuICB9XG5cbiAgc3RhdGljIGlzU2FtZU9yaWdpbihmcm9udGVuZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5pdGlhbFBhdGg6IHN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgcmV0dXJuIChpbml0aWFsUGF0aCB8fCAnJykgPT09IGZyb250ZW5kO1xuICB9XG5cbiAgc3RhdGljIHJlcGxhY2VWYXJpYWJsZXMoZGF0YTogc3RyaW5nLCBvYmo6IGFueSkge1xuICAgIGxldCBoYW5kbGVkID0gZGF0YTtcbiAgICBPYmplY3QuZW50cmllcyhvYmopLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaGFuZGxlZCA9IGhhbmRsZWQucmVwbGFjZShuZXcgUmVnRXhwKGB7JHtrZXl9fWAsICdnJyksIGAke3ZhbHVlfWApO1xuICAgIH0pO1xuICAgIHJldHVybiBoYW5kbGVkO1xuICB9XG5cbiAgc3RhdGljIHRyaW1WYWx1ZXNUb1NhdmUob2JqOiBhbnksIGZpZWxkczogc3RyaW5nW10pIHtcbiAgICBsZXQgcmV0ID0gb2JqO1xuICAgIGNvbnN0IGdyb3VwZWQgPSBmaWVsZHMuam9pbignIycpO1xuICAgIE9iamVjdC5lbnRyaWVzKG9iaikubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmIChncm91cGVkLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgcmV0ID0ge1xuICAgICAgICAgIC4uLnJldCxcbiAgICAgICAgICBba2V5XTogYCR7dmFsdWV9YC50cmltKClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBNb25rZXlFY3hMb2dzRXJyb3JUeXBlcyA9ICdvaycgfFxuICAnZGVidWcnIHxcbiAgJ2luZm8nIHxcbiAgJ25vdGljZScgfFxuICAnd2FybicgfFxuICAnZXJyb3InIHxcbiAgJ2NyaXRpY2FsJyB8XG4gICdhbGVydCcgfFxuICAnZW1lcmcnO1xuXG5leHBvcnQgdHlwZSBNb25rZXlFY3hMb2dQYXJhbXMgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY29udGV4dD86IGFueTtcbiAgZXJyb3I/OiBFcnJvcjtcbiAgdHlwZT86IE1vbmtleUVjeExvZ3NFcnJvclR5cGVzO1xufVxuXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4TG9ncyB7XG4gIHN0YXRpYyBsb2cocGFyYW1zOiBNb25rZXlFY3hMb2dQYXJhbXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyB0eXBlLCBtZXNzYWdlLCBjb250ZXh0LCBlcnJvciB9ID0gcGFyYW1zO1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyW3R5cGUgfHwgJ2Vycm9yJ10obWVzc2FnZSwgY29udGV4dCwgZXJyb3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdCB0byBkb1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVmZmVyVG9CYXNlNjQoYnVmZmVyOiBBcnJheUJ1ZmZlcik6IHN0cmluZyB7XG4gIGxldCBiaW5hcnkgPSAnJztcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICBjb25zdCBsZW4gPSBieXRlcy5ieXRlTGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0pO1xuICB9XG4gIHJldHVybiB3aW5kb3cuYnRvYShiaW5hcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0VG9CdWZmZXIoYmFzZTY0OiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IGJpbmFyeVN0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7XG4gIGNvbnN0IGxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGJ5dGVzW2ldID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gIH1cbiAgcmV0dXJuIGJ5dGVzLmJ1ZmZlcjtcbn1cbiJdfQ==
|
|
@@ -8,8 +8,8 @@ import * as i1$1 from '@ngx-translate/core';
|
|
|
8
8
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
9
9
|
import * as moment_ from 'moment';
|
|
10
10
|
import { datadogLogs } from '@datadog/browser-logs';
|
|
11
|
-
import { map, catchError, filter, takeWhile, take, first, takeUntil,
|
|
12
|
-
import { throwError, BehaviorSubject, Subscription, interval, concat, Subject, of, from } from 'rxjs';
|
|
11
|
+
import { map, catchError, filter, takeWhile, take, first, takeUntil, finalize, tap, mergeMap } from 'rxjs/operators';
|
|
12
|
+
import { throwError, BehaviorSubject, Subscription, interval, concat, Subject, of, EMPTY, from } from 'rxjs';
|
|
13
13
|
import * as i1$2 from '@angular/common/http';
|
|
14
14
|
import { HttpParams, HttpErrorResponse, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
15
15
|
import * as i2$1 from '@angular/platform-browser';
|
|
@@ -306,6 +306,10 @@ class MonkeyEcxUtils {
|
|
|
306
306
|
MX: {
|
|
307
307
|
CPF: CountryMasks.RFC1,
|
|
308
308
|
CNPJ: CountryMasks.RFC2
|
|
309
|
+
},
|
|
310
|
+
US: {
|
|
311
|
+
CPF: CountryMasks.EIN,
|
|
312
|
+
CNPJ: CountryMasks.EIN
|
|
309
313
|
}
|
|
310
314
|
}[country.toUpperCase()]) === null || _a === void 0 ? void 0 : _a[type];
|
|
311
315
|
}
|
|
@@ -6491,19 +6495,32 @@ class MonkeyEcxCommonsStoreBaseService extends MonkeyEcxCommonsService {
|
|
|
6491
6495
|
}
|
|
6492
6496
|
});
|
|
6493
6497
|
}
|
|
6494
|
-
|
|
6498
|
+
loadDataStream(url) {
|
|
6499
|
+
var _a;
|
|
6500
|
+
this.updateControl({ isLoading: true });
|
|
6501
|
+
return (((_a = this.monkeyecxService) === null || _a === void 0 ? void 0 : _a.get(url).pipe(finalize(() => {
|
|
6502
|
+
this.updateControl({ isLoading: false });
|
|
6503
|
+
}), tap((resp) => {
|
|
6504
|
+
this.handleResponseData(resp);
|
|
6505
|
+
}))) || EMPTY);
|
|
6506
|
+
}
|
|
6507
|
+
loadPageData(pagination, dispatchLoadAction = false) {
|
|
6495
6508
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6496
|
-
const { store, selector } = this;
|
|
6509
|
+
const { store, selector, action } = this;
|
|
6497
6510
|
const data = yield store
|
|
6498
6511
|
.select(selector.selectLinks())
|
|
6499
6512
|
.pipe(take(1))
|
|
6500
6513
|
.toPromise();
|
|
6501
|
-
const {
|
|
6502
|
-
const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {
|
|
6514
|
+
const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(pagination === null || pagination === void 0 ? void 0 : pagination.action) || {
|
|
6503
6515
|
href: ''
|
|
6504
6516
|
};
|
|
6505
6517
|
if (href) {
|
|
6506
|
-
|
|
6518
|
+
if (dispatchLoadAction) {
|
|
6519
|
+
this.store.dispatch(action.load({ url: href, skipClear: true }));
|
|
6520
|
+
}
|
|
6521
|
+
else {
|
|
6522
|
+
this.loadData(href);
|
|
6523
|
+
}
|
|
6507
6524
|
}
|
|
6508
6525
|
});
|
|
6509
6526
|
}
|
|
@@ -6540,6 +6557,17 @@ __decorate([
|
|
|
6540
6557
|
}
|
|
6541
6558
|
})
|
|
6542
6559
|
], MonkeyEcxCommonsStoreBaseService.prototype, "loadData", null);
|
|
6560
|
+
__decorate([
|
|
6561
|
+
MonkeyEcxCoreService({
|
|
6562
|
+
httpResponse: {
|
|
6563
|
+
httpCodeIgnore: [412],
|
|
6564
|
+
httpCodeIgnoreRedirect: [412]
|
|
6565
|
+
},
|
|
6566
|
+
requestInProgress: {
|
|
6567
|
+
showProgress: true
|
|
6568
|
+
}
|
|
6569
|
+
})
|
|
6570
|
+
], MonkeyEcxCommonsStoreBaseService.prototype, "loadDataStream", null);
|
|
6543
6571
|
|
|
6544
6572
|
class MonkeyEcxCommonsActions {
|
|
6545
6573
|
static getActions(actionName) {
|