info-library 2.15.1-beta → 3.0.0-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/controls/alert/alert.component.d.ts +7 -7
- package/controls/autocomplete/autocomplete.component.d.ts +52 -51
- package/controls/big-checkbox/big-checkbox.component.d.ts +41 -41
- package/controls/card/card.component.d.ts +16 -16
- package/controls/card-menu/card-menu.component.d.ts +23 -23
- package/controls/checkbox/checkbox.component.d.ts +27 -27
- package/controls/chips/chips.component.d.ts +23 -23
- package/controls/date/date.component.d.ts +38 -37
- package/controls/date-month/date-month.component.d.ts +40 -39
- package/controls/editor/editor.component.d.ts +40 -40
- package/controls/grid/grid.component.d.ts +172 -172
- package/controls/input/input.component.d.ts +47 -37
- package/controls/input-list/input-list.component.d.ts +29 -29
- package/controls/list-checkbox/list-checkbox.component.d.ts +26 -26
- package/controls/message/message.component.d.ts +10 -10
- package/controls/multi-select/multi-select.component.d.ts +39 -37
- package/controls/paginator/paginator.component.d.ts +25 -25
- package/controls/select/select.component.d.ts +42 -41
- package/controls/timeline/timeline.component.d.ts +17 -17
- package/directives/mask.directive.d.ts +24 -24
- package/directives/unmask.directive.d.ts +12 -11
- package/enum/dialog-buttons.enum.d.ts +7 -7
- package/enum/index.d.ts +3 -3
- package/enum/modal-action.enum.d.ts +10 -10
- package/enum/page-action.enum.d.ts +8 -8
- package/esm2022/controls/alert/alert.component.mjs +72 -0
- package/esm2022/controls/autocomplete/autocomplete.component.mjs +265 -0
- package/esm2022/controls/big-checkbox/big-checkbox.component.mjs +300 -0
- package/esm2022/controls/card/card.component.mjs +83 -0
- package/esm2022/controls/card-menu/card-menu.component.mjs +143 -0
- package/esm2022/controls/checkbox/checkbox.component.mjs +93 -0
- package/esm2022/controls/chips/chips.component.mjs +114 -0
- package/esm2022/controls/date/date.component.mjs +173 -0
- package/esm2022/controls/date-month/date-month.component.mjs +181 -0
- package/esm2022/controls/editor/editor.component.mjs +139 -0
- package/esm2022/controls/grid/grid.component.mjs +1818 -0
- package/esm2022/controls/input/input.component.mjs +389 -0
- package/esm2022/controls/input-list/input-list.component.mjs +259 -0
- package/{esm2020 → esm2022}/controls/list-checkbox/list-checkbox.component.mjs +242 -238
- package/esm2022/controls/message/message.component.mjs +48 -0
- package/esm2022/controls/multi-select/multi-select.component.mjs +174 -0
- package/esm2022/controls/paginator/paginator.component.mjs +177 -0
- package/esm2022/controls/select/select.component.mjs +189 -0
- package/esm2022/controls/timeline/timeline.component.mjs +116 -0
- package/esm2022/directives/mask.directive.mjs +134 -0
- package/esm2022/directives/unmask.directive.mjs +35 -0
- package/{esm2020 → esm2022}/enum/dialog-buttons.enum.mjs +8 -8
- package/{esm2020 → esm2022}/enum/index.mjs +3 -3
- package/{esm2020 → esm2022}/enum/modal-action.enum.mjs +11 -11
- package/{esm2020 → esm2022}/enum/page-action.enum.mjs +9 -9
- package/{esm2020 → esm2022}/global-config.mjs +3 -3
- package/{esm2020 → esm2022}/info-library.mjs +4 -4
- package/esm2022/info-library.module.mjs +283 -0
- package/esm2022/layouts/dialog/dialog.component.mjs +192 -0
- package/esm2022/layouts/filter/filter.component.mjs +179 -0
- package/esm2022/layouts/loading/loading.component.mjs +40 -0
- package/esm2022/layouts/main/main.component.mjs +305 -0
- package/esm2022/layouts/modal/modal.component.mjs +273 -0
- package/esm2022/layouts/pagebar/pagebar.component.mjs +432 -0
- package/esm2022/layouts/sidebar/sidebar.component.mjs +447 -0
- package/esm2022/layouts/topbar/topbar.component.mjs +1032 -0
- package/esm2022/layouts/topmenu/topmenu.component.mjs +173 -0
- package/esm2022/model/app-config.model.mjs +14 -0
- package/esm2022/model/data-access.model.mjs +37 -0
- package/esm2022/model/dialog-result.model.mjs +9 -0
- package/esm2022/model/dialog.model.mjs +15 -0
- package/esm2022/model/form-prop.model.mjs +37 -0
- package/esm2022/model/grid-button.model.mjs +26 -0
- package/{esm2020 → esm2022}/model/index.mjs +14 -14
- package/esm2022/model/last-search.model.mjs +7 -0
- package/esm2022/model/login.model.mjs +11 -0
- package/esm2022/model/method-grid-button.model.mjs +11 -0
- package/esm2022/model/notification.model.mjs +13 -0
- package/{esm2020 → esm2022}/model/pagebar-buttons.model.mjs +15 -15
- package/esm2022/model/permission.model.mjs +6 -0
- package/esm2022/model/platform.model.mjs +20 -0
- package/esm2022/model/session.model.mjs +27 -0
- package/{esm2020 → esm2022}/pipe/index.mjs +2 -2
- package/esm2022/pipe/mask.pipe.mjs +38 -0
- package/esm2022/pipe/translate.pipe.mjs +27 -0
- package/{esm2020 → esm2022}/public_api.mjs +37 -36
- package/esm2022/service/authentication.service.mjs +411 -0
- package/esm2022/service/configuration.service.mjs +90 -0
- package/esm2022/service/data.service.mjs +129 -0
- package/{esm2020 → esm2022}/service/index.mjs +5 -5
- package/esm2022/service/theme.service.mjs +89 -0
- package/esm2022/service/translate.service.mjs +57 -0
- package/esm2022/utils/utilities.mjs +189 -0
- package/fesm2022/info-library.mjs +9364 -0
- package/fesm2022/info-library.mjs.map +1 -0
- package/global-config.d.ts +3 -3
- package/index.d.ts +5 -5
- package/info-library-3.0.0-beta.tgz +0 -0
- package/info-library.module.d.ts +61 -60
- package/layouts/dialog/dialog.component.d.ts +29 -29
- package/layouts/filter/filter.component.d.ts +24 -0
- package/layouts/loading/loading.component.d.ts +8 -8
- package/layouts/main/main.component.d.ts +60 -56
- package/layouts/modal/modal.component.d.ts +40 -39
- package/layouts/pagebar/pagebar.component.d.ts +45 -45
- package/layouts/sidebar/sidebar.component.d.ts +40 -40
- package/layouts/topbar/topbar.component.d.ts +69 -66
- package/layouts/topmenu/topmenu.component.d.ts +34 -34
- package/model/app-config.model.d.ts +13 -11
- package/model/data-access.model.d.ts +12 -12
- package/model/dialog-result.model.d.ts +6 -6
- package/model/dialog.model.d.ts +14 -14
- package/model/form-prop.model.d.ts +12 -12
- package/model/grid-button.model.d.ts +18 -18
- package/model/index.d.ts +14 -14
- package/model/last-search.model.d.ts +6 -6
- package/model/login.model.d.ts +6 -6
- package/model/method-grid-button.model.d.ts +6 -6
- package/model/notification.model.d.ts +12 -12
- package/model/pagebar-buttons.model.d.ts +10 -10
- package/model/permission.model.d.ts +5 -5
- package/model/platform.model.d.ts +16 -16
- package/model/session.model.d.ts +27 -22
- package/package.json +5 -11
- package/pipe/index.d.ts +2 -2
- package/pipe/mask.pipe.d.ts +8 -8
- package/pipe/translate.pipe.d.ts +10 -10
- package/public_api.d.ts +34 -33
- package/service/authentication.service.d.ts +63 -61
- package/service/configuration.service.d.ts +17 -14
- package/service/data.service.d.ts +41 -39
- package/service/index.d.ts +5 -5
- package/service/theme.service.d.ts +16 -16
- package/service/translate.service.d.ts +16 -16
- package/utils/utilities.d.ts +38 -27
- package/esm2020/controls/alert/alert.component.mjs +0 -74
- package/esm2020/controls/autocomplete/autocomplete.component.mjs +0 -258
- package/esm2020/controls/big-checkbox/big-checkbox.component.mjs +0 -298
- package/esm2020/controls/card/card.component.mjs +0 -77
- package/esm2020/controls/card-menu/card-menu.component.mjs +0 -145
- package/esm2020/controls/checkbox/checkbox.component.mjs +0 -93
- package/esm2020/controls/chips/chips.component.mjs +0 -113
- package/esm2020/controls/date/date.component.mjs +0 -141
- package/esm2020/controls/date-month/date-month.component.mjs +0 -148
- package/esm2020/controls/editor/editor.component.mjs +0 -135
- package/esm2020/controls/grid/grid.component.mjs +0 -1800
- package/esm2020/controls/input/input.component.mjs +0 -314
- package/esm2020/controls/input-list/input-list.component.mjs +0 -258
- package/esm2020/controls/message/message.component.mjs +0 -50
- package/esm2020/controls/multi-select/multi-select.component.mjs +0 -161
- package/esm2020/controls/paginator/paginator.component.mjs +0 -178
- package/esm2020/controls/select/select.component.mjs +0 -180
- package/esm2020/controls/timeline/timeline.component.mjs +0 -117
- package/esm2020/directives/mask.directive.mjs +0 -125
- package/esm2020/directives/unmask.directive.mjs +0 -28
- package/esm2020/info-library.module.mjs +0 -278
- package/esm2020/layouts/dialog/dialog.component.mjs +0 -188
- package/esm2020/layouts/loading/loading.component.mjs +0 -42
- package/esm2020/layouts/main/main.component.mjs +0 -258
- package/esm2020/layouts/modal/modal.component.mjs +0 -258
- package/esm2020/layouts/pagebar/pagebar.component.mjs +0 -404
- package/esm2020/layouts/sidebar/sidebar.component.mjs +0 -395
- package/esm2020/layouts/topbar/topbar.component.mjs +0 -868
- package/esm2020/layouts/topmenu/topmenu.component.mjs +0 -165
- package/esm2020/model/app-config.model.mjs +0 -14
- package/esm2020/model/data-access.model.mjs +0 -35
- package/esm2020/model/dialog-result.model.mjs +0 -8
- package/esm2020/model/dialog.model.mjs +0 -16
- package/esm2020/model/form-prop.model.mjs +0 -35
- package/esm2020/model/grid-button.model.mjs +0 -21
- package/esm2020/model/last-search.model.mjs +0 -9
- package/esm2020/model/login.model.mjs +0 -9
- package/esm2020/model/method-grid-button.model.mjs +0 -9
- package/esm2020/model/notification.model.mjs +0 -9
- package/esm2020/model/permission.model.mjs +0 -3
- package/esm2020/model/platform.model.mjs +0 -21
- package/esm2020/model/session.model.mjs +0 -8
- package/esm2020/pipe/mask.pipe.mjs +0 -34
- package/esm2020/pipe/translate.pipe.mjs +0 -26
- package/esm2020/service/authentication.service.mjs +0 -358
- package/esm2020/service/configuration.service.mjs +0 -59
- package/esm2020/service/data.service.mjs +0 -112
- package/esm2020/service/theme.service.mjs +0 -79
- package/esm2020/service/translate.service.mjs +0 -53
- package/esm2020/utils/utilities.mjs +0 -142
- package/fesm2015/info-library.mjs +0 -9312
- package/fesm2015/info-library.mjs.map +0 -1
- package/fesm2020/info-library.mjs +0 -8462
- package/fesm2020/info-library.mjs.map +0 -1
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Renderer2, Input, forwardRef, Inject } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { createTextMaskInputElement } from 'text-mask-core/dist/textMaskCore';
|
|
4
|
-
import { createAutoCorrectedDatePipe, emailMask } from 'text-mask-addons';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class InfoMaskDirective {
|
|
7
|
-
constructor(renderer, element) {
|
|
8
|
-
this.renderer = renderer;
|
|
9
|
-
this.element = element;
|
|
10
|
-
this._onTouched = () => { };
|
|
11
|
-
this._onChange = (_) => { };
|
|
12
|
-
}
|
|
13
|
-
ngOnChanges(changes) {
|
|
14
|
-
this.setupMask(true);
|
|
15
|
-
if (this.maskInputElement !== undefined)
|
|
16
|
-
this.maskInputElement.update(this.inputElement.value);
|
|
17
|
-
}
|
|
18
|
-
writeValue(value) {
|
|
19
|
-
this.setupMask();
|
|
20
|
-
const normalizedValue = value == null ? '' : value;
|
|
21
|
-
this.renderer.setProperty(this.inputElement, 'value', normalizedValue);
|
|
22
|
-
if (this.maskInputElement !== undefined) {
|
|
23
|
-
this.maskInputElement.update(value);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
registerOnChange(fn) { this._onChange = fn; }
|
|
27
|
-
registerOnTouched(fn) { this._onTouched = fn; }
|
|
28
|
-
setDisabledState(isDisabled) {
|
|
29
|
-
this.renderer.setProperty(this.element.nativeElement, 'disabled', isDisabled);
|
|
30
|
-
}
|
|
31
|
-
onInput(value) {
|
|
32
|
-
this.setupMask();
|
|
33
|
-
if (this.maskInputElement !== undefined) {
|
|
34
|
-
this.maskInputElement.update(value);
|
|
35
|
-
value = this.inputElement.value;
|
|
36
|
-
if (this.lastValue !== value) {
|
|
37
|
-
this.lastValue = value;
|
|
38
|
-
this._onChange(value);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
setupMask(create = false) {
|
|
43
|
-
if (!this.inputElement) {
|
|
44
|
-
if (this.element.nativeElement.tagName === 'INPUT')
|
|
45
|
-
this.inputElement = this.element.nativeElement;
|
|
46
|
-
else
|
|
47
|
-
this.inputElement = this.element.nativeElement.getElementsByTagName('INPUT')[0];
|
|
48
|
-
}
|
|
49
|
-
if (this.inputElement && create) {
|
|
50
|
-
let pipe = undefined;
|
|
51
|
-
if (this.maskType == 'email')
|
|
52
|
-
this.mask = emailMask;
|
|
53
|
-
else if (this.maskType == 'phone')
|
|
54
|
-
this.mask = ['(', /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/];
|
|
55
|
-
else if (this.maskType == 'cel')
|
|
56
|
-
this.mask = ['(', /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/];
|
|
57
|
-
else if (this.maskType == 'cep')
|
|
58
|
-
this.mask = [/\d/, /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/];
|
|
59
|
-
else if (this.maskType == 'date') {
|
|
60
|
-
pipe = createAutoCorrectedDatePipe('dd/mm/yyyy');
|
|
61
|
-
this.mask = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
62
|
-
}
|
|
63
|
-
else if (this.maskType == 'datemonth') {
|
|
64
|
-
pipe = createAutoCorrectedDatePipe('mm/yyyy');
|
|
65
|
-
this.mask = [/\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
66
|
-
}
|
|
67
|
-
else if (this.maskType == 'time') {
|
|
68
|
-
pipe = createAutoCorrectedDatePipe('HH:MM');
|
|
69
|
-
this.mask = [/\d/, /\d/, ':', /\d/, /\d/];
|
|
70
|
-
}
|
|
71
|
-
else if (this.maskType == 'cpf')
|
|
72
|
-
this.mask = [/\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '-', /\d/, /\d/];
|
|
73
|
-
else if (this.maskType == 'cnpj')
|
|
74
|
-
this.mask = [/\d/, /\d/, '.', /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/];
|
|
75
|
-
else
|
|
76
|
-
this.mask = [];
|
|
77
|
-
let maskConfig = {
|
|
78
|
-
mask: this.mask,
|
|
79
|
-
guide: true,
|
|
80
|
-
placeholderChar: '_',
|
|
81
|
-
pipe: pipe,
|
|
82
|
-
modelClean: true,
|
|
83
|
-
keepCharPositions: false,
|
|
84
|
-
};
|
|
85
|
-
this.maskInputElement = createTextMaskInputElement(Object.assign({ inputElement: this.inputElement }, maskConfig));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/** @nocollapse */ InfoMaskDirective.ɵfac = function InfoMaskDirective_Factory(t) { return new (t || InfoMaskDirective)(i0.ɵɵdirectiveInject(Renderer2), i0.ɵɵdirectiveInject(ElementRef)); };
|
|
90
|
-
/** @nocollapse */ InfoMaskDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: InfoMaskDirective, selectors: [["", "setmask", ""]], hostBindings: function InfoMaskDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
91
|
-
i0.ɵɵlistener("input", function InfoMaskDirective_input_HostBindingHandler($event) { return ctx.onInput($event.target.value); })("blur", function InfoMaskDirective_blur_HostBindingHandler() { return ctx._onTouched(); });
|
|
92
|
-
} }, inputs: { maskType: ["setmask", "maskType"] }, features: [i0.ɵɵProvidersFeature([
|
|
93
|
-
{
|
|
94
|
-
provide: NG_VALUE_ACCESSOR,
|
|
95
|
-
useExisting: forwardRef((() => InfoMaskDirective)),
|
|
96
|
-
multi: true
|
|
97
|
-
}
|
|
98
|
-
]), i0.ɵɵNgOnChangesFeature] });
|
|
99
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoMaskDirective, [{
|
|
100
|
-
type: Directive,
|
|
101
|
-
args: [{
|
|
102
|
-
host: {
|
|
103
|
-
'(input)': 'onInput($event.target.value)',
|
|
104
|
-
'(blur)': '_onTouched()'
|
|
105
|
-
},
|
|
106
|
-
selector: '[setmask]',
|
|
107
|
-
providers: [
|
|
108
|
-
{
|
|
109
|
-
provide: NG_VALUE_ACCESSOR,
|
|
110
|
-
useExisting: forwardRef((() => InfoMaskDirective)),
|
|
111
|
-
multi: true
|
|
112
|
-
}
|
|
113
|
-
]
|
|
114
|
-
}]
|
|
115
|
-
}], function () { return [{ type: i0.Renderer2, decorators: [{
|
|
116
|
-
type: Inject,
|
|
117
|
-
args: [Renderer2]
|
|
118
|
-
}] }, { type: i0.ElementRef, decorators: [{
|
|
119
|
-
type: Inject,
|
|
120
|
-
args: [ElementRef]
|
|
121
|
-
}] }]; }, { maskType: [{
|
|
122
|
-
type: Input,
|
|
123
|
-
args: ['setmask']
|
|
124
|
-
}] }); })();
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2RpcmVjdGl2ZXMvbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUE7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDN0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWdCMUUsTUFBTSxPQUFPLGlCQUFpQjtJQVkxQixZQUF1QyxRQUFtQixFQUE4QixPQUFtQjtRQUFwRSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQThCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFIM0csZUFBVSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUN0QixjQUFTLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUVvRixDQUFDO0lBRWhILFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFaEIsTUFBTSxlQUFlLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUE7UUFFdEUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDdEM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBdUIsSUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFFdkUsaUJBQWlCLENBQUMsRUFBYSxJQUFVLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFBLENBQUMsQ0FBQztJQUUvRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDakYsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLO1FBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBRWhCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBRW5DLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQTtZQUUvQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFO2dCQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtnQkFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTthQUN4QjtTQUNKO0lBQ0wsQ0FBQztJQUVPLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxPQUFPO2dCQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDOztnQkFFOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4RjtRQUVELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxNQUFNLEVBQUU7WUFFN0IsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDO1lBRXJCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPO2dCQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztpQkFFckIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU87Z0JBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBRTVGLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLO2dCQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFFbEcsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUs7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUVqRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxFQUFFO2dCQUM5QixJQUFJLEdBQUcsMkJBQTJCLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUMxRTtpQkFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksV0FBVyxFQUFFO2dCQUNuQyxJQUFJLEdBQUcsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN6RDtpQkFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxFQUFFO2dCQUM5QixJQUFJLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDN0M7aUJBQ0ksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUs7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUM7aUJBRWhGLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNO2dCQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQzs7Z0JBRW5HLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBRXBCLElBQUksVUFBVSxHQUFHO2dCQUNiLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixLQUFLLEVBQUUsSUFBSTtnQkFDWCxlQUFlLEVBQUUsR0FBRztnQkFDcEIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGlCQUFpQixFQUFFLEtBQUs7YUFDM0IsQ0FBQztZQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRywwQkFBMEIsQ0FDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQ2pFLENBQUE7U0FDSjtJQUVMLENBQUM7O3FHQWpIUSxpQkFBaUIsdUJBWU4sU0FBUyx3QkFBdUMsVUFBVTttR0FackUsaUJBQWlCO29HQUFqQixnQ0FBNEIsMkVBQTVCLGdCQUFZO3lGQVJWO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBQztnQkFDaEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKO3VGQUVRLGlCQUFpQjtjQWQ3QixTQUFTO2VBQUM7Z0JBQ1AsSUFBSSxFQUFFO29CQUNGLFNBQVMsRUFBRSw4QkFBOEI7b0JBQ3pDLFFBQVEsRUFBRSxjQUFjO2lCQUMzQjtnQkFDRCxRQUFRLEVBQUUsV0FBVztnQkFDckIsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFDO3dCQUNoRCxLQUFLLEVBQUUsSUFBSTtxQkFDZDtpQkFDSjthQUNKOztzQkFhZ0IsTUFBTTt1QkFBQyxTQUFTOztzQkFBZ0MsTUFBTTt1QkFBQyxVQUFVO3dCQUw1RCxRQUFRO2tCQUF6QixLQUFLO21CQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgSW5wdXQsIGZvcndhcmRSZWYsIEluamVjdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xyXG5pbXBvcnQgeyBjcmVhdGVUZXh0TWFza0lucHV0RWxlbWVudCB9IGZyb20gJ3RleHQtbWFzay1jb3JlL2Rpc3QvdGV4dE1hc2tDb3JlJ1xyXG5pbXBvcnQgeyBjcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUsIGVtYWlsTWFzayB9IGZyb20gJ3RleHQtbWFzay1hZGRvbnMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgJyhpbnB1dCknOiAnb25JbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXHJcbiAgICAgICAgJyhibHVyKSc6ICdfb25Ub3VjaGVkKCknXHJcbiAgICB9LFxyXG4gICAgc2VsZWN0b3I6ICdbc2V0bWFza10nLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5mb01hc2tEaXJlY3RpdmUpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9NYXNrRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcyB7XHJcbiAgICBwcml2YXRlIG1hc2tJbnB1dEVsZW1lbnQ6IGFueVxyXG4gICAgcHJpdmF0ZSBpbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnRcclxuXHJcbiAgICBwcml2YXRlIGxhc3RWYWx1ZTogYW55XHJcbiAgICBwcml2YXRlIG1hc2s6IGFueVxyXG5cclxuICAgIEBJbnB1dCgnc2V0bWFzaycpIG1hc2tUeXBlOiBhbnlcclxuXHJcbiAgICBfb25Ub3VjaGVkID0gKCkgPT4geyB9XHJcbiAgICBfb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFJlbmRlcmVyMikgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIHRoaXMuc2V0dXBNYXNrKHRydWUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tYXNrSW5wdXRFbGVtZW50ICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHRoaXMubWFza0lucHV0RWxlbWVudC51cGRhdGUodGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpXHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zZXR1cE1hc2soKVxyXG5cclxuICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB2YWx1ZSA9PSBudWxsID8gJycgOiB2YWx1ZVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5pbnB1dEVsZW1lbnQsICd2YWx1ZScsIG5vcm1hbGl6ZWRWYWx1ZSlcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWFza0lucHV0RWxlbWVudCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFza0lucHV0RWxlbWVudC51cGRhdGUodmFsdWUpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiBhbnkpOiB2b2lkIHsgdGhpcy5fb25DaGFuZ2UgPSBmbiB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IGFueSk6IHZvaWQgeyB0aGlzLl9vblRvdWNoZWQgPSBmbiB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZClcclxuICAgIH1cclxuXHJcbiAgICBvbklucHV0KHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZXR1cE1hc2soKVxyXG5cclxuICAgICAgICBpZiAodGhpcy5tYXNrSW5wdXRFbGVtZW50ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tYXNrSW5wdXRFbGVtZW50LnVwZGF0ZSh2YWx1ZSlcclxuXHJcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWVcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxhc3RWYWx1ZSAhPT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFzdFZhbHVlID0gdmFsdWVcclxuICAgICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0dXBNYXNrKGNyZWF0ZSA9IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0RWxlbWVudCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZSA9PT0gJ0lOUFVUJylcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICBlbHNlIHRoaXMuaW5wdXRFbGVtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ0lOUFVUJylbMF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQgJiYgY3JlYXRlKSB7XHJcblxyXG4gICAgICAgICAgICBsZXQgcGlwZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1hc2tUeXBlID09ICdlbWFpbCcpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hc2sgPSBlbWFpbE1hc2s7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5tYXNrVHlwZSA9PSAncGhvbmUnKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXNrID0gWycoJywgL1xcZC8sIC9cXGQvLCAnKScsICcgJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC8sICctJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC9dO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5tYXNrVHlwZSA9PSAnY2VsJylcclxuICAgICAgICAgICAgICAgIHRoaXMubWFzayA9IFsnKCcsIC9cXGQvLCAvXFxkLywgJyknLCAnICcsIC9cXGQvLCAvXFxkLywgL1xcZC8sIC9cXGQvLCAvXFxkLywgJy0nLCAvXFxkLywgL1xcZC8sIC9cXGQvLCAvXFxkL107XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLm1hc2tUeXBlID09ICdjZXAnKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXNrID0gWy9cXGQvLCAvXFxkLywgL1xcZC8sIC9cXGQvLCAvXFxkLywgJy0nLCAvXFxkLywgL1xcZC8sIC9cXGQvXTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLm1hc2tUeXBlID09ICdkYXRlJykge1xyXG4gICAgICAgICAgICAgICAgcGlwZSA9IGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSgnZGQvbW0veXl5eScpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXNrID0gWy9cXGQvLCAvXFxkLywgJy8nLCAvXFxkLywgL1xcZC8sICcvJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC9dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMubWFza1R5cGUgPT0gJ2RhdGVtb250aCcpIHtcclxuICAgICAgICAgICAgICAgIHBpcGUgPSBjcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUoJ21tL3l5eXknKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFzayA9IFsvXFxkLywgL1xcZC8sICcvJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC9dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMubWFza1R5cGUgPT0gJ3RpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBwaXBlID0gY3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlKCdISDpNTScpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXNrID0gWy9cXGQvLCAvXFxkLywgJzonLCAvXFxkLywgL1xcZC9dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMubWFza1R5cGUgPT0gJ2NwZicpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hc2sgPSBbL1xcZC8sL1xcZC8sL1xcZC8sJy4nLC9cXGQvLC9cXGQvLC9cXGQvLCcuJywvXFxkLywvXFxkLywvXFxkLywnLScsL1xcZC8sL1xcZC9dO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5tYXNrVHlwZSA9PSAnY25waicpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hc2sgPSBbL1xcZC8sL1xcZC8sJy4nLC9cXGQvLC9cXGQvLC9cXGQvLCcuJywvXFxkLywvXFxkLywvXFxkLywnLycsL1xcZC8sL1xcZC8sL1xcZC8sL1xcZC8sJy0nLC9cXGQvLC9cXGQvXTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5tYXNrID0gW107XHJcblxyXG4gICAgICAgICAgICBsZXQgbWFza0NvbmZpZyA9IHtcclxuICAgICAgICAgICAgICAgIG1hc2s6IHRoaXMubWFzayxcclxuICAgICAgICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnXycsXHJcbiAgICAgICAgICAgICAgICBwaXBlOiBwaXBlLFxyXG4gICAgICAgICAgICAgICAgbW9kZWxDbGVhbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiBmYWxzZSxcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMubWFza0lucHV0RWxlbWVudCA9IGNyZWF0ZVRleHRNYXNrSW5wdXRFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7IGlucHV0RWxlbWVudDogdGhpcy5pbnB1dEVsZW1lbnQgfSwgbWFza0NvbmZpZylcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener } from '@angular/core';
|
|
2
|
-
import { NgControl } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/forms";
|
|
5
|
-
export class InfoUnmaskDirective {
|
|
6
|
-
constructor(elementRef, model) {
|
|
7
|
-
this.elementRef = elementRef;
|
|
8
|
-
this.model = model;
|
|
9
|
-
}
|
|
10
|
-
inputChange() {
|
|
11
|
-
const newValue = this.elementRef.nativeElement.value.replace(/\D/g, '');
|
|
12
|
-
this.model.control.setValue(newValue);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
/** @nocollapse */ InfoUnmaskDirective.ɵfac = function InfoUnmaskDirective_Factory(t) { return new (t || InfoUnmaskDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.NgControl)); };
|
|
16
|
-
/** @nocollapse */ InfoUnmaskDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: InfoUnmaskDirective, selectors: [["", "unmask", ""]], hostBindings: function InfoUnmaskDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
17
|
-
i0.ɵɵlistener("input", function InfoUnmaskDirective_input_HostBindingHandler() { return ctx.inputChange(); });
|
|
18
|
-
} } });
|
|
19
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoUnmaskDirective, [{
|
|
20
|
-
type: Directive,
|
|
21
|
-
args: [{
|
|
22
|
-
selector: '[unmask]'
|
|
23
|
-
}]
|
|
24
|
-
}], function () { return [{ type: i0.ElementRef }, { type: i1.NgControl }]; }, { inputChange: [{
|
|
25
|
-
type: HostListener,
|
|
26
|
-
args: ['input']
|
|
27
|
-
}] }); })();
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvZGlyZWN0aXZlcy91bm1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUszQyxNQUFNLE9BQU8sbUJBQW1CO0lBRTVCLFlBQW9CLFVBQXNCLEVBQVUsS0FBZ0I7UUFBaEQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQVc7SUFBSSxDQUFDO0lBRWxELFdBQVc7UUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDdkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3lHQVBRLG1CQUFtQjtxR0FBbkIsbUJBQW1CO2dHQUFuQixpQkFBYTs7dUZBQWIsbUJBQW1CO2NBSC9CLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsVUFBVTthQUN2QjtxRkFLMEIsV0FBVztrQkFBakMsWUFBWTttQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1t1bm1hc2tdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb1VubWFza0RpcmVjdGl2ZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIG1vZGVsOiBOZ0NvbnRyb2wpIHsgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JykgaW5wdXRDaGFuZ2UoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpXHJcbiAgICAgICAgdGhpcy5tb2RlbC5jb250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
2
|
-
import { RouterModule } from '@angular/router';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
5
|
-
import { CurrencyMaskModule } from 'ng2-currency-mask';
|
|
6
|
-
import { MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
7
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
8
|
-
import { MatCardModule } from '@angular/material/card';
|
|
9
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
10
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
11
|
-
import { MatInputModule } from '@angular/material/input';
|
|
12
|
-
import { MatListModule } from '@angular/material/list';
|
|
13
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
14
|
-
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
15
|
-
import { MatRadioModule } from '@angular/material/radio';
|
|
16
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
17
|
-
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
18
|
-
import { MatDialogModule } from '@angular/material/dialog';
|
|
19
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
20
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
21
|
-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
22
|
-
import { AngularEditorModule } from '@kolkov/angular-editor';
|
|
23
|
-
import { MatChipsModule } from '@angular/material/chips';
|
|
24
|
-
import { InfoTranslatePipe } from './pipe/translate.pipe';
|
|
25
|
-
import { InfoMaskPipe } from './pipe/mask.pipe';
|
|
26
|
-
import { InfoMaskDirective } from './directives/mask.directive';
|
|
27
|
-
import { InfoUnmaskDirective } from './directives/unmask.directive';
|
|
28
|
-
import { Utilities } from './utils/utilities';
|
|
29
|
-
// Controls
|
|
30
|
-
import { InfoAlertComponent } from './controls/alert/alert.component';
|
|
31
|
-
import { InfoAutoCompleteComponent } from './controls/autocomplete/autocomplete.component';
|
|
32
|
-
import { InfoBigCheckboxComponent } from './controls/big-checkbox/big-checkbox.component';
|
|
33
|
-
import { InfoCardComponent } from './controls/card/card.component';
|
|
34
|
-
import { InfoMenuCardComponent } from './controls/card-menu/card-menu.component';
|
|
35
|
-
import { InfoCheckboxComponent } from './controls/checkbox/checkbox.component';
|
|
36
|
-
import { InfoDateComponent } from './controls/date/date.component';
|
|
37
|
-
import { InfoDateMonthComponent } from './controls/date-month/date-month.component';
|
|
38
|
-
import { InfoGridComponent, InfoGridModalComponent } from './controls/grid/grid.component';
|
|
39
|
-
import { InfoInputComponent } from './controls/input/input.component';
|
|
40
|
-
import { InfoInputListComponent } from './controls/input-list/input-list.component';
|
|
41
|
-
import { InfoListCheckboxComponent } from './controls/list-checkbox/list-checkbox.component';
|
|
42
|
-
import { InfoMessageComponent } from './controls/message/message.component';
|
|
43
|
-
import { InfoPaginatorComponent } from './controls/paginator/paginator.component';
|
|
44
|
-
import { InfoSelectComponent } from './controls/select/select.component';
|
|
45
|
-
import { InfoTimelineComponent } from './controls/timeline/timeline.component';
|
|
46
|
-
import { InfoEditorComponent } from './controls/editor/editor.component';
|
|
47
|
-
import { InfoMultiSelectComponent } from './controls/multi-select/multi-select.component';
|
|
48
|
-
import { InfoChipsComponent } from './controls/chips/chips.component';
|
|
49
|
-
// Layouts
|
|
50
|
-
import { InfoDialogComponent } from './layouts/dialog/dialog.component';
|
|
51
|
-
import { InfoLoadingComponent } from './layouts/loading/loading.component';
|
|
52
|
-
import { InfoMainComponent } from './layouts/main/main.component';
|
|
53
|
-
import { InfoModalComponent } from './layouts/modal/modal.component';
|
|
54
|
-
import { InfoPagebarComponent, AtalhoModalComponent } from './layouts/pagebar/pagebar.component';
|
|
55
|
-
import { InfoSidebarComponent } from './layouts/sidebar/sidebar.component';
|
|
56
|
-
import { InfoTopbarComponent } from './layouts/topbar/topbar.component';
|
|
57
|
-
import { RefreshSessionTimeModalComponent } from './service/authentication.service';
|
|
58
|
-
import { InfoTopMenuComponent } from './layouts/topmenu/topmenu.component';
|
|
59
|
-
import * as i0 from "@angular/core";
|
|
60
|
-
export class InfoLibraryModule {
|
|
61
|
-
}
|
|
62
|
-
/** @nocollapse */ InfoLibraryModule.ɵfac = function InfoLibraryModule_Factory(t) { return new (t || InfoLibraryModule)(); };
|
|
63
|
-
/** @nocollapse */ InfoLibraryModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: InfoLibraryModule });
|
|
64
|
-
/** @nocollapse */ InfoLibraryModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [
|
|
65
|
-
Utilities
|
|
66
|
-
], imports: [CommonModule,
|
|
67
|
-
HttpClientModule,
|
|
68
|
-
FormsModule,
|
|
69
|
-
ReactiveFormsModule,
|
|
70
|
-
MatCardModule,
|
|
71
|
-
MatIconModule,
|
|
72
|
-
MatInputModule,
|
|
73
|
-
MatFormFieldModule,
|
|
74
|
-
MatListModule,
|
|
75
|
-
MatSelectModule,
|
|
76
|
-
MatCheckboxModule,
|
|
77
|
-
MatRadioModule,
|
|
78
|
-
MatButtonModule,
|
|
79
|
-
MatDatepickerModule,
|
|
80
|
-
MatMomentDateModule,
|
|
81
|
-
MatDialogModule,
|
|
82
|
-
MatProgressBarModule,
|
|
83
|
-
MatAutocompleteModule,
|
|
84
|
-
MatTooltipModule,
|
|
85
|
-
RouterModule,
|
|
86
|
-
CurrencyMaskModule,
|
|
87
|
-
AngularEditorModule,
|
|
88
|
-
MatChipsModule] });
|
|
89
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoLibraryModule, [{
|
|
90
|
-
type: NgModule,
|
|
91
|
-
args: [{
|
|
92
|
-
imports: [
|
|
93
|
-
CommonModule,
|
|
94
|
-
HttpClientModule,
|
|
95
|
-
FormsModule,
|
|
96
|
-
ReactiveFormsModule,
|
|
97
|
-
MatCardModule,
|
|
98
|
-
MatIconModule,
|
|
99
|
-
MatInputModule,
|
|
100
|
-
MatFormFieldModule,
|
|
101
|
-
MatListModule,
|
|
102
|
-
MatSelectModule,
|
|
103
|
-
MatCheckboxModule,
|
|
104
|
-
MatRadioModule,
|
|
105
|
-
MatButtonModule,
|
|
106
|
-
MatDatepickerModule,
|
|
107
|
-
MatMomentDateModule,
|
|
108
|
-
MatDialogModule,
|
|
109
|
-
MatProgressBarModule,
|
|
110
|
-
MatAutocompleteModule,
|
|
111
|
-
MatTooltipModule,
|
|
112
|
-
RouterModule,
|
|
113
|
-
CurrencyMaskModule,
|
|
114
|
-
AngularEditorModule,
|
|
115
|
-
MatChipsModule,
|
|
116
|
-
],
|
|
117
|
-
declarations: [
|
|
118
|
-
InfoTranslatePipe,
|
|
119
|
-
InfoMaskPipe,
|
|
120
|
-
InfoMaskDirective,
|
|
121
|
-
InfoUnmaskDirective,
|
|
122
|
-
InfoAlertComponent,
|
|
123
|
-
InfoAutoCompleteComponent,
|
|
124
|
-
InfoBigCheckboxComponent,
|
|
125
|
-
InfoCardComponent,
|
|
126
|
-
InfoMenuCardComponent,
|
|
127
|
-
InfoCheckboxComponent,
|
|
128
|
-
InfoDateComponent,
|
|
129
|
-
InfoDateMonthComponent,
|
|
130
|
-
InfoGridComponent,
|
|
131
|
-
InfoGridModalComponent,
|
|
132
|
-
InfoInputComponent,
|
|
133
|
-
InfoInputListComponent,
|
|
134
|
-
InfoListCheckboxComponent,
|
|
135
|
-
InfoMessageComponent,
|
|
136
|
-
InfoPaginatorComponent,
|
|
137
|
-
InfoSelectComponent,
|
|
138
|
-
InfoTimelineComponent,
|
|
139
|
-
InfoEditorComponent,
|
|
140
|
-
InfoMultiSelectComponent,
|
|
141
|
-
InfoChipsComponent,
|
|
142
|
-
InfoDialogComponent,
|
|
143
|
-
InfoLoadingComponent,
|
|
144
|
-
InfoMainComponent,
|
|
145
|
-
InfoModalComponent,
|
|
146
|
-
InfoPagebarComponent,
|
|
147
|
-
InfoSidebarComponent,
|
|
148
|
-
InfoTopbarComponent,
|
|
149
|
-
InfoTopMenuComponent,
|
|
150
|
-
AtalhoModalComponent,
|
|
151
|
-
RefreshSessionTimeModalComponent,
|
|
152
|
-
],
|
|
153
|
-
exports: [
|
|
154
|
-
InfoTranslatePipe,
|
|
155
|
-
InfoMaskPipe,
|
|
156
|
-
InfoAlertComponent,
|
|
157
|
-
InfoAutoCompleteComponent,
|
|
158
|
-
InfoBigCheckboxComponent,
|
|
159
|
-
InfoCardComponent,
|
|
160
|
-
InfoMenuCardComponent,
|
|
161
|
-
InfoCheckboxComponent,
|
|
162
|
-
InfoDateComponent,
|
|
163
|
-
InfoDateMonthComponent,
|
|
164
|
-
InfoGridComponent,
|
|
165
|
-
InfoGridModalComponent,
|
|
166
|
-
InfoInputComponent,
|
|
167
|
-
InfoInputListComponent,
|
|
168
|
-
InfoListCheckboxComponent,
|
|
169
|
-
InfoMessageComponent,
|
|
170
|
-
InfoPaginatorComponent,
|
|
171
|
-
InfoSelectComponent,
|
|
172
|
-
InfoTimelineComponent,
|
|
173
|
-
InfoEditorComponent,
|
|
174
|
-
InfoMultiSelectComponent,
|
|
175
|
-
InfoChipsComponent,
|
|
176
|
-
InfoDialogComponent,
|
|
177
|
-
InfoLoadingComponent,
|
|
178
|
-
InfoMainComponent,
|
|
179
|
-
InfoModalComponent,
|
|
180
|
-
InfoPagebarComponent,
|
|
181
|
-
InfoSidebarComponent,
|
|
182
|
-
InfoTopbarComponent,
|
|
183
|
-
InfoTopMenuComponent,
|
|
184
|
-
],
|
|
185
|
-
schemas: [
|
|
186
|
-
CUSTOM_ELEMENTS_SCHEMA
|
|
187
|
-
],
|
|
188
|
-
providers: [
|
|
189
|
-
Utilities
|
|
190
|
-
]
|
|
191
|
-
}]
|
|
192
|
-
}], null, null); })();
|
|
193
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(InfoLibraryModule, { declarations: [InfoTranslatePipe,
|
|
194
|
-
InfoMaskPipe,
|
|
195
|
-
InfoMaskDirective,
|
|
196
|
-
InfoUnmaskDirective,
|
|
197
|
-
InfoAlertComponent,
|
|
198
|
-
InfoAutoCompleteComponent,
|
|
199
|
-
InfoBigCheckboxComponent,
|
|
200
|
-
InfoCardComponent,
|
|
201
|
-
InfoMenuCardComponent,
|
|
202
|
-
InfoCheckboxComponent,
|
|
203
|
-
InfoDateComponent,
|
|
204
|
-
InfoDateMonthComponent,
|
|
205
|
-
InfoGridComponent,
|
|
206
|
-
InfoGridModalComponent,
|
|
207
|
-
InfoInputComponent,
|
|
208
|
-
InfoInputListComponent,
|
|
209
|
-
InfoListCheckboxComponent,
|
|
210
|
-
InfoMessageComponent,
|
|
211
|
-
InfoPaginatorComponent,
|
|
212
|
-
InfoSelectComponent,
|
|
213
|
-
InfoTimelineComponent,
|
|
214
|
-
InfoEditorComponent,
|
|
215
|
-
InfoMultiSelectComponent,
|
|
216
|
-
InfoChipsComponent,
|
|
217
|
-
InfoDialogComponent,
|
|
218
|
-
InfoLoadingComponent,
|
|
219
|
-
InfoMainComponent,
|
|
220
|
-
InfoModalComponent,
|
|
221
|
-
InfoPagebarComponent,
|
|
222
|
-
InfoSidebarComponent,
|
|
223
|
-
InfoTopbarComponent,
|
|
224
|
-
InfoTopMenuComponent,
|
|
225
|
-
AtalhoModalComponent,
|
|
226
|
-
RefreshSessionTimeModalComponent], imports: [CommonModule,
|
|
227
|
-
HttpClientModule,
|
|
228
|
-
FormsModule,
|
|
229
|
-
ReactiveFormsModule,
|
|
230
|
-
MatCardModule,
|
|
231
|
-
MatIconModule,
|
|
232
|
-
MatInputModule,
|
|
233
|
-
MatFormFieldModule,
|
|
234
|
-
MatListModule,
|
|
235
|
-
MatSelectModule,
|
|
236
|
-
MatCheckboxModule,
|
|
237
|
-
MatRadioModule,
|
|
238
|
-
MatButtonModule,
|
|
239
|
-
MatDatepickerModule,
|
|
240
|
-
MatMomentDateModule,
|
|
241
|
-
MatDialogModule,
|
|
242
|
-
MatProgressBarModule,
|
|
243
|
-
MatAutocompleteModule,
|
|
244
|
-
MatTooltipModule,
|
|
245
|
-
RouterModule,
|
|
246
|
-
CurrencyMaskModule,
|
|
247
|
-
AngularEditorModule,
|
|
248
|
-
MatChipsModule], exports: [InfoTranslatePipe,
|
|
249
|
-
InfoMaskPipe,
|
|
250
|
-
InfoAlertComponent,
|
|
251
|
-
InfoAutoCompleteComponent,
|
|
252
|
-
InfoBigCheckboxComponent,
|
|
253
|
-
InfoCardComponent,
|
|
254
|
-
InfoMenuCardComponent,
|
|
255
|
-
InfoCheckboxComponent,
|
|
256
|
-
InfoDateComponent,
|
|
257
|
-
InfoDateMonthComponent,
|
|
258
|
-
InfoGridComponent,
|
|
259
|
-
InfoGridModalComponent,
|
|
260
|
-
InfoInputComponent,
|
|
261
|
-
InfoInputListComponent,
|
|
262
|
-
InfoListCheckboxComponent,
|
|
263
|
-
InfoMessageComponent,
|
|
264
|
-
InfoPaginatorComponent,
|
|
265
|
-
InfoSelectComponent,
|
|
266
|
-
InfoTimelineComponent,
|
|
267
|
-
InfoEditorComponent,
|
|
268
|
-
InfoMultiSelectComponent,
|
|
269
|
-
InfoChipsComponent,
|
|
270
|
-
InfoDialogComponent,
|
|
271
|
-
InfoLoadingComponent,
|
|
272
|
-
InfoMainComponent,
|
|
273
|
-
InfoModalComponent,
|
|
274
|
-
InfoPagebarComponent,
|
|
275
|
-
InfoSidebarComponent,
|
|
276
|
-
InfoTopbarComponent,
|
|
277
|
-
InfoTopMenuComponent] }); })();
|
|
278
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1saWJyYXJ5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvaW5mby1saWJyYXJ5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVB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bEIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsbUJBQW1CO1FBQ25CLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEN1cnJlbmN5TWFza01vZHVsZSB9IGZyb20gJ25nMi1jdXJyZW5jeS1tYXNrJztcclxuaW1wb3J0IHsgTWF0TW9tZW50RGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQW5ndWxhckVkaXRvck1vZHVsZSB9IGZyb20gJ0Brb2xrb3YvYW5ndWxhci1lZGl0b3InO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuXHJcbmltcG9ydCB7IEluZm9UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi9waXBlL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgSW5mb01hc2tQaXBlIH0gZnJvbSAnLi9waXBlL21hc2sucGlwZSc7XHJcbmltcG9ydCB7IEluZm9NYXNrRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hc2suZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5mb1VubWFza0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy91bm1hc2suZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVXRpbGl0aWVzIH0gZnJvbSAnLi91dGlscy91dGlsaXRpZXMnO1xyXG5cclxuLy8gQ29udHJvbHNcclxuaW1wb3J0IHsgSW5mb0FsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvQXV0b0NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9CaWdDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYmlnLWNoZWNrYm94L2JpZy1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9NZW51Q2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY2FyZC1tZW51L2NhcmQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9EYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kYXRlL2RhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0RhdGVNb250aENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZGF0ZS1tb250aC9kYXRlLW1vbnRoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9HcmlkQ29tcG9uZW50LCBJbmZvR3JpZE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9ncmlkL2dyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvSW5wdXRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9pbnB1dC1saXN0L2lucHV0LWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0xpc3RDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC1jaGVja2JveC9saXN0LWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb1BhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9UaW1lbGluZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0NoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xyXG5cclxuLy8gTGF5b3V0c1xyXG5pbXBvcnQgeyBJbmZvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0xvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9NYWluQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL21haW4vbWFpbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb1BhZ2ViYXJDb21wb25lbnQsIEF0YWxob01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3BhZ2ViYXIvcGFnZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb1RvcGJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy90b3BiYXIvdG9wYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlZnJlc2hTZXNzaW9uVGltZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmZvVG9wTWVudUNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy90b3BtZW51L3RvcG1lbnUuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBNYXRDYXJkTW9kdWxlLFxyXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgICAgIE1hdFJhZGlvTW9kdWxlLFxyXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgICAgIE1hdE1vbWVudERhdGVNb2R1bGUsXHJcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gICAgICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgICAgIFJvdXRlck1vZHVsZSxcclxuICAgICAgICBDdXJyZW5jeU1hc2tNb2R1bGUsXHJcbiAgICAgICAgQW5ndWxhckVkaXRvck1vZHVsZSxcclxuICAgICAgICBNYXRDaGlwc01vZHVsZSxcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBJbmZvVHJhbnNsYXRlUGlwZSxcclxuICAgICAgICBJbmZvTWFza1BpcGUsXHJcbiAgICAgICAgSW5mb01hc2tEaXJlY3RpdmUsXHJcbiAgICAgICAgSW5mb1VubWFza0RpcmVjdGl2ZSxcclxuICAgICAgICBJbmZvQWxlcnRDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0F1dG9Db21wbGV0ZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvQmlnQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0NhcmRDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb01lbnVDYXJkQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9DaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBJbmZvRGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvRGF0ZU1vbnRoQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9HcmlkQ29tcG9uZW50LFxyXG5cdFx0SW5mb0dyaWRNb2RhbENvbXBvbmVudCxcclxuXHRcdEluZm9JbnB1dENvbXBvbmVudCxcclxuICAgICAgICBJbmZvSW5wdXRMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9MaXN0Q2hlY2tib3hDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb01lc3NhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1BhZ2luYXRvckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9UaW1lbGluZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9NdWx0aVNlbGVjdENvbXBvbmVudCxcclxuICAgICAgICBJbmZvQ2hpcHNDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0RpYWxvZ0NvbXBvbmVudCxcclxuICAgICAgICBJbmZvTG9hZGluZ0NvbXBvbmVudCxcclxuICAgICAgICBJbmZvTWFpbkNvbXBvbmVudCxcclxuICAgICAgICBJbmZvTW9kYWxDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1BhZ2ViYXJDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1NpZGViYXJDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1RvcGJhckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvVG9wTWVudUNvbXBvbmVudCxcclxuICAgICAgICBBdGFsaG9Nb2RhbENvbXBvbmVudCxcclxuICAgICAgICBSZWZyZXNoU2Vzc2lvblRpbWVNb2RhbENvbXBvbmVudCxcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgSW5mb1RyYW5zbGF0ZVBpcGUsXHJcbiAgICAgICAgSW5mb01hc2tQaXBlLFxyXG4gICAgICAgIEluZm9BbGVydENvbXBvbmVudCxcclxuICAgICAgICBJbmZvQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9CaWdDaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBJbmZvQ2FyZENvbXBvbmVudCxcclxuICAgICAgICBJbmZvTWVudUNhcmRDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0NoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9EYXRlQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9EYXRlTW9udGhDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0dyaWRDb21wb25lbnQsXHJcblx0XHRJbmZvR3JpZE1vZGFsQ29tcG9uZW50LFxyXG5cdFx0SW5mb0lucHV0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9JbnB1dExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0xpc3RDaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBJbmZvTWVzc2FnZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvUGFnaW5hdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9TZWxlY3RDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1RpbWVsaW5lQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9FZGl0b3JDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb011bHRpU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9DaGlwc0NvbXBvbmVudCxcclxuICAgICAgICBJbmZvRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9Mb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9NYWluQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9Nb2RhbENvbXBvbmVudCxcclxuICAgICAgICBJbmZvUGFnZWJhckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvU2lkZWJhckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvVG9wYmFyQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9Ub3BNZW51Q29tcG9uZW50LFxyXG4gICAgXSxcclxuICAgIHNjaGVtYXM6IFtcclxuICAgICAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BXHJcblx0XSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIFV0aWxpdGllc1xyXG5cdF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9MaWJyYXJ5TW9kdWxlIHsgfSJdfQ==
|