@ionic/angular 7.3.4-dev.11694102380.128deb56 → 7.3.4-dev.11694112678.19eab0c5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -20
- package/app-initialize.d.ts +1 -1
- package/css/core.css +100 -0
- package/css/core.css.map +1 -1
- package/css/display.css +33 -0
- package/css/display.css.map +1 -1
- package/css/float-elements.css +33 -0
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css +85 -6
- package/css/global.bundle.css.map +1 -1
- package/css/ionic-swiper.css +33 -0
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/padding.css +33 -0
- package/css/padding.css.map +1 -1
- package/css/structure.css +33 -0
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css +33 -0
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css +33 -0
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css +52 -6
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +165 -0
- package/css/utils.bundle.css.map +1 -1
- package/directives/navigation/ion-back-button.d.ts +16 -6
- package/directives/navigation/ion-router-outlet.d.ts +122 -4
- package/directives/navigation/ion-tabs.d.ts +64 -4
- package/directives/navigation/nav-delegate.d.ts +9 -0
- package/directives/navigation/router-link-delegate.d.ts +41 -7
- package/{common/directives → directives}/navigation/stack-utils.d.ts +1 -1
- package/directives/overlays/modal.d.ts +47 -3
- package/directives/overlays/popover.d.ts +43 -3
- package/directives/proxies-list.d.ts +1 -1
- package/directives/proxies.d.ts +26 -0
- package/esm2020/app-initialize.mjs +1 -1
- package/esm2020/directives/navigation/ion-back-button.mjs +36 -15
- package/esm2020/directives/navigation/ion-router-outlet.mjs +435 -6
- package/esm2020/directives/navigation/ion-tabs.mjs +166 -9
- package/esm2020/directives/navigation/nav-delegate.mjs +42 -0
- package/esm2020/directives/navigation/nav-params.mjs +45 -0
- package/esm2020/directives/navigation/router-link-delegate.mjs +92 -11
- package/esm2020/directives/navigation/stack-controller.mjs +275 -0
- package/esm2020/directives/navigation/stack-utils.mjs +73 -0
- package/esm2020/directives/overlays/modal.mjs +88 -8
- package/esm2020/directives/overlays/popover.mjs +87 -8
- package/esm2020/directives/proxies-list.mjs +3 -1
- package/esm2020/directives/proxies.mjs +53 -1
- package/esm2020/index.mjs +21 -4
- package/esm2020/ionic-core.mjs +6 -0
- package/esm2020/ionic-module.mjs +32 -14
- package/esm2020/providers/action-sheet-controller.mjs +18 -0
- package/esm2020/providers/alert-controller.mjs +18 -0
- package/esm2020/providers/angular-delegate.mjs +152 -0
- package/esm2020/providers/animation-controller.mjs +37 -0
- package/esm2020/providers/config.mjs +44 -0
- package/esm2020/providers/dom-controller.mjs +44 -0
- package/esm2020/providers/gesture-controller.mjs +31 -0
- package/esm2020/providers/loading-controller.mjs +18 -0
- package/esm2020/providers/menu-controller.mjs +100 -0
- package/esm2020/providers/modal-controller.mjs +25 -0
- package/esm2020/providers/nav-controller.mjs +221 -0
- package/esm2020/providers/picker-controller.mjs +18 -0
- package/esm2020/providers/platform.mjs +246 -0
- package/esm2020/providers/popover-controller.mjs +25 -0
- package/esm2020/providers/toast-controller.mjs +18 -0
- package/esm2020/types/interfaces.mjs +2 -0
- package/esm2020/util/ionic-router-reuse-strategy.mjs +55 -0
- package/esm2020/util/overlay.mjs +25 -0
- package/fesm2015/ionic-angular.mjs +2474 -124
- package/fesm2015/ionic-angular.mjs.map +1 -1
- package/fesm2020/ionic-angular.mjs +2466 -125
- package/fesm2020/ionic-angular.mjs.map +1 -1
- package/index.d.ts +19 -3
- package/ionic-core.d.ts +2 -0
- package/ionic-module.d.ts +2 -2
- package/package.json +2 -18
- package/{common/providers → providers}/action-sheet-controller.d.ts +2 -2
- package/{common/providers → providers}/alert-controller.d.ts +2 -2
- package/{common/providers → providers}/angular-delegate.d.ts +1 -1
- package/{common/providers → providers}/animation-controller.d.ts +1 -1
- package/{common/providers → providers}/config.d.ts +1 -1
- package/{common/providers → providers}/gesture-controller.d.ts +1 -1
- package/{common/providers → providers}/loading-controller.d.ts +2 -2
- package/{common/providers → providers}/modal-controller.d.ts +2 -2
- package/{common/providers → providers}/nav-controller.d.ts +2 -2
- package/{common/providers → providers}/picker-controller.d.ts +2 -2
- package/{common/providers → providers}/platform.d.ts +1 -1
- package/{common/providers → providers}/popover-controller.d.ts +2 -2
- package/{common/providers → providers}/toast-controller.d.ts +2 -2
- package/test/README.md +0 -8
- package/{common/types → types}/interfaces.d.ts +4 -0
- package/common/directives/navigation/back-button.d.ts +0 -26
- package/common/directives/navigation/nav.d.ts +0 -13
- package/common/directives/navigation/router-link-delegate.d.ts +0 -50
- package/common/directives/navigation/router-outlet.d.ts +0 -103
- package/common/directives/navigation/tabs.d.ts +0 -74
- package/common/index.d.ts +0 -26
- package/common/overlays/modal.d.ts +0 -50
- package/common/overlays/popover.d.ts +0 -46
- package/common/utils/proxy.d.ts +0 -8
- package/directives/navigation/ion-nav.d.ts +0 -8
- package/esm2020/common/directives/navigation/back-button.mjs +0 -59
- package/esm2020/common/directives/navigation/nav-params.mjs +0 -45
- package/esm2020/common/directives/navigation/nav.mjs +0 -47
- package/esm2020/common/directives/navigation/router-link-delegate.mjs +0 -111
- package/esm2020/common/directives/navigation/router-outlet.mjs +0 -461
- package/esm2020/common/directives/navigation/stack-controller.mjs +0 -275
- package/esm2020/common/directives/navigation/stack-utils.mjs +0 -73
- package/esm2020/common/directives/navigation/tabs.mjs +0 -172
- package/esm2020/common/index.mjs +0 -26
- package/esm2020/common/ionic-angular-common.mjs +0 -5
- package/esm2020/common/overlays/modal.mjs +0 -87
- package/esm2020/common/overlays/popover.mjs +0 -79
- package/esm2020/common/providers/action-sheet-controller.mjs +0 -18
- package/esm2020/common/providers/alert-controller.mjs +0 -18
- package/esm2020/common/providers/angular-delegate.mjs +0 -152
- package/esm2020/common/providers/animation-controller.mjs +0 -37
- package/esm2020/common/providers/config.mjs +0 -44
- package/esm2020/common/providers/dom-controller.mjs +0 -44
- package/esm2020/common/providers/gesture-controller.mjs +0 -31
- package/esm2020/common/providers/loading-controller.mjs +0 -18
- package/esm2020/common/providers/menu-controller.mjs +0 -100
- package/esm2020/common/providers/modal-controller.mjs +0 -25
- package/esm2020/common/providers/nav-controller.mjs +0 -221
- package/esm2020/common/providers/picker-controller.mjs +0 -18
- package/esm2020/common/providers/platform.mjs +0 -246
- package/esm2020/common/providers/popover-controller.mjs +0 -25
- package/esm2020/common/providers/toast-controller.mjs +0 -18
- package/esm2020/common/types/interfaces.mjs +0 -2
- package/esm2020/common/utils/overlay.mjs +0 -25
- package/esm2020/common/utils/proxy.mjs +0 -47
- package/esm2020/common/utils/routing.mjs +0 -55
- package/esm2020/directives/navigation/ion-nav.mjs +0 -21
- package/esm2020/standalone/directives/angular-component-lib/utils.mjs +0 -51
- package/esm2020/standalone/directives/icon.mjs +0 -33
- package/esm2020/standalone/directives/proxies.mjs +0 -2960
- package/esm2020/standalone/index.mjs +0 -12
- package/esm2020/standalone/ionic-angular-standalone.mjs +0 -5
- package/esm2020/standalone/navigation/back-button.mjs +0 -32
- package/esm2020/standalone/navigation/nav.mjs +0 -28
- package/esm2020/standalone/navigation/router-link-delegate.mjs +0 -30
- package/esm2020/standalone/navigation/router-outlet.mjs +0 -23
- package/esm2020/standalone/navigation/tabs.mjs +0 -46
- package/esm2020/standalone/overlays/modal.mjs +0 -32
- package/esm2020/standalone/overlays/popover.mjs +0 -28
- package/esm2020/standalone/providers/ionic-angular.mjs +0 -41
- package/fesm2015/ionic-angular-common.mjs +0 -2472
- package/fesm2015/ionic-angular-common.mjs.map +0 -1
- package/fesm2015/ionic-angular-standalone.mjs +0 -3190
- package/fesm2015/ionic-angular-standalone.mjs.map +0 -1
- package/fesm2020/ionic-angular-common.mjs +0 -2461
- package/fesm2020/ionic-angular-common.mjs.map +0 -1
- package/fesm2020/ionic-angular-standalone.mjs +0 -3188
- package/fesm2020/ionic-angular-standalone.mjs.map +0 -1
- package/standalone/directives/angular-component-lib/utils.d.ts +0 -9
- package/standalone/directives/icon.d.ts +0 -9
- package/standalone/directives/proxies.d.ts +0 -1217
- package/standalone/index.d.ts +0 -11
- package/standalone/navigation/back-button.d.ts +0 -9
- package/standalone/navigation/nav.d.ts +0 -8
- package/standalone/navigation/router-link-delegate.d.ts +0 -10
- package/standalone/navigation/router-outlet.d.ts +0 -6
- package/standalone/navigation/tabs.d.ts +0 -12
- package/standalone/overlays/modal.d.ts +0 -6
- package/standalone/overlays/popover.d.ts +0 -6
- package/standalone/providers/ionic-angular.d.ts +0 -3
- /package/{common/directives → directives}/navigation/nav-params.d.ts +0 -0
- /package/{common/directives → directives}/navigation/stack-controller.d.ts +0 -0
- /package/{common/providers → providers}/dom-controller.d.ts +0 -0
- /package/{common/providers → providers}/menu-controller.d.ts +0 -0
- /package/{common/utils/routing.d.ts → util/ionic-router-reuse-strategy.d.ts} +0 -0
- /package/{common/utils → util}/overlay.d.ts +0 -0
|
@@ -1,2960 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
/* tslint:disable */
|
|
3
|
-
/* auto-generated angular directive proxies */
|
|
4
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
|
-
import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
|
|
6
|
-
import { defineCustomElement as defineIonAccordion } from '@ionic/core/components/ion-accordion.js';
|
|
7
|
-
import { defineCustomElement as defineIonAccordionGroup } from '@ionic/core/components/ion-accordion-group.js';
|
|
8
|
-
import { defineCustomElement as defineIonActionSheet } from '@ionic/core/components/ion-action-sheet.js';
|
|
9
|
-
import { defineCustomElement as defineIonAlert } from '@ionic/core/components/ion-alert.js';
|
|
10
|
-
import { defineCustomElement as defineIonApp } from '@ionic/core/components/ion-app.js';
|
|
11
|
-
import { defineCustomElement as defineIonAvatar } from '@ionic/core/components/ion-avatar.js';
|
|
12
|
-
import { defineCustomElement as defineIonBackdrop } from '@ionic/core/components/ion-backdrop.js';
|
|
13
|
-
import { defineCustomElement as defineIonBadge } from '@ionic/core/components/ion-badge.js';
|
|
14
|
-
import { defineCustomElement as defineIonBreadcrumb } from '@ionic/core/components/ion-breadcrumb.js';
|
|
15
|
-
import { defineCustomElement as defineIonBreadcrumbs } from '@ionic/core/components/ion-breadcrumbs.js';
|
|
16
|
-
import { defineCustomElement as defineIonButton } from '@ionic/core/components/ion-button.js';
|
|
17
|
-
import { defineCustomElement as defineIonButtons } from '@ionic/core/components/ion-buttons.js';
|
|
18
|
-
import { defineCustomElement as defineIonCard } from '@ionic/core/components/ion-card.js';
|
|
19
|
-
import { defineCustomElement as defineIonCardContent } from '@ionic/core/components/ion-card-content.js';
|
|
20
|
-
import { defineCustomElement as defineIonCardHeader } from '@ionic/core/components/ion-card-header.js';
|
|
21
|
-
import { defineCustomElement as defineIonCardSubtitle } from '@ionic/core/components/ion-card-subtitle.js';
|
|
22
|
-
import { defineCustomElement as defineIonCardTitle } from '@ionic/core/components/ion-card-title.js';
|
|
23
|
-
import { defineCustomElement as defineIonCheckbox } from '@ionic/core/components/ion-checkbox.js';
|
|
24
|
-
import { defineCustomElement as defineIonChip } from '@ionic/core/components/ion-chip.js';
|
|
25
|
-
import { defineCustomElement as defineIonCol } from '@ionic/core/components/ion-col.js';
|
|
26
|
-
import { defineCustomElement as defineIonContent } from '@ionic/core/components/ion-content.js';
|
|
27
|
-
import { defineCustomElement as defineIonDatetime } from '@ionic/core/components/ion-datetime.js';
|
|
28
|
-
import { defineCustomElement as defineIonDatetimeButton } from '@ionic/core/components/ion-datetime-button.js';
|
|
29
|
-
import { defineCustomElement as defineIonFab } from '@ionic/core/components/ion-fab.js';
|
|
30
|
-
import { defineCustomElement as defineIonFabButton } from '@ionic/core/components/ion-fab-button.js';
|
|
31
|
-
import { defineCustomElement as defineIonFabList } from '@ionic/core/components/ion-fab-list.js';
|
|
32
|
-
import { defineCustomElement as defineIonFooter } from '@ionic/core/components/ion-footer.js';
|
|
33
|
-
import { defineCustomElement as defineIonGrid } from '@ionic/core/components/ion-grid.js';
|
|
34
|
-
import { defineCustomElement as defineIonHeader } from '@ionic/core/components/ion-header.js';
|
|
35
|
-
import { defineCustomElement as defineIonImg } from '@ionic/core/components/ion-img.js';
|
|
36
|
-
import { defineCustomElement as defineIonInfiniteScroll } from '@ionic/core/components/ion-infinite-scroll.js';
|
|
37
|
-
import { defineCustomElement as defineIonInfiniteScrollContent } from '@ionic/core/components/ion-infinite-scroll-content.js';
|
|
38
|
-
import { defineCustomElement as defineIonInput } from '@ionic/core/components/ion-input.js';
|
|
39
|
-
import { defineCustomElement as defineIonItem } from '@ionic/core/components/ion-item.js';
|
|
40
|
-
import { defineCustomElement as defineIonItemDivider } from '@ionic/core/components/ion-item-divider.js';
|
|
41
|
-
import { defineCustomElement as defineIonItemGroup } from '@ionic/core/components/ion-item-group.js';
|
|
42
|
-
import { defineCustomElement as defineIonItemOption } from '@ionic/core/components/ion-item-option.js';
|
|
43
|
-
import { defineCustomElement as defineIonItemOptions } from '@ionic/core/components/ion-item-options.js';
|
|
44
|
-
import { defineCustomElement as defineIonItemSliding } from '@ionic/core/components/ion-item-sliding.js';
|
|
45
|
-
import { defineCustomElement as defineIonLabel } from '@ionic/core/components/ion-label.js';
|
|
46
|
-
import { defineCustomElement as defineIonList } from '@ionic/core/components/ion-list.js';
|
|
47
|
-
import { defineCustomElement as defineIonListHeader } from '@ionic/core/components/ion-list-header.js';
|
|
48
|
-
import { defineCustomElement as defineIonLoading } from '@ionic/core/components/ion-loading.js';
|
|
49
|
-
import { defineCustomElement as defineIonMenu } from '@ionic/core/components/ion-menu.js';
|
|
50
|
-
import { defineCustomElement as defineIonMenuButton } from '@ionic/core/components/ion-menu-button.js';
|
|
51
|
-
import { defineCustomElement as defineIonMenuToggle } from '@ionic/core/components/ion-menu-toggle.js';
|
|
52
|
-
import { defineCustomElement as defineIonNavLink } from '@ionic/core/components/ion-nav-link.js';
|
|
53
|
-
import { defineCustomElement as defineIonNote } from '@ionic/core/components/ion-note.js';
|
|
54
|
-
import { defineCustomElement as defineIonPicker } from '@ionic/core/components/ion-picker.js';
|
|
55
|
-
import { defineCustomElement as defineIonProgressBar } from '@ionic/core/components/ion-progress-bar.js';
|
|
56
|
-
import { defineCustomElement as defineIonRadio } from '@ionic/core/components/ion-radio.js';
|
|
57
|
-
import { defineCustomElement as defineIonRadioGroup } from '@ionic/core/components/ion-radio-group.js';
|
|
58
|
-
import { defineCustomElement as defineIonRange } from '@ionic/core/components/ion-range.js';
|
|
59
|
-
import { defineCustomElement as defineIonRefresher } from '@ionic/core/components/ion-refresher.js';
|
|
60
|
-
import { defineCustomElement as defineIonRefresherContent } from '@ionic/core/components/ion-refresher-content.js';
|
|
61
|
-
import { defineCustomElement as defineIonReorder } from '@ionic/core/components/ion-reorder.js';
|
|
62
|
-
import { defineCustomElement as defineIonReorderGroup } from '@ionic/core/components/ion-reorder-group.js';
|
|
63
|
-
import { defineCustomElement as defineIonRippleEffect } from '@ionic/core/components/ion-ripple-effect.js';
|
|
64
|
-
import { defineCustomElement as defineIonRow } from '@ionic/core/components/ion-row.js';
|
|
65
|
-
import { defineCustomElement as defineIonSearchbar } from '@ionic/core/components/ion-searchbar.js';
|
|
66
|
-
import { defineCustomElement as defineIonSegment } from '@ionic/core/components/ion-segment.js';
|
|
67
|
-
import { defineCustomElement as defineIonSegmentButton } from '@ionic/core/components/ion-segment-button.js';
|
|
68
|
-
import { defineCustomElement as defineIonSelect } from '@ionic/core/components/ion-select.js';
|
|
69
|
-
import { defineCustomElement as defineIonSelectOption } from '@ionic/core/components/ion-select-option.js';
|
|
70
|
-
import { defineCustomElement as defineIonSkeletonText } from '@ionic/core/components/ion-skeleton-text.js';
|
|
71
|
-
import { defineCustomElement as defineIonSpinner } from '@ionic/core/components/ion-spinner.js';
|
|
72
|
-
import { defineCustomElement as defineIonSplitPane } from '@ionic/core/components/ion-split-pane.js';
|
|
73
|
-
import { defineCustomElement as defineIonTabBar } from '@ionic/core/components/ion-tab-bar.js';
|
|
74
|
-
import { defineCustomElement as defineIonTabButton } from '@ionic/core/components/ion-tab-button.js';
|
|
75
|
-
import { defineCustomElement as defineIonText } from '@ionic/core/components/ion-text.js';
|
|
76
|
-
import { defineCustomElement as defineIonTextarea } from '@ionic/core/components/ion-textarea.js';
|
|
77
|
-
import { defineCustomElement as defineIonThumbnail } from '@ionic/core/components/ion-thumbnail.js';
|
|
78
|
-
import { defineCustomElement as defineIonTitle } from '@ionic/core/components/ion-title.js';
|
|
79
|
-
import { defineCustomElement as defineIonToast } from '@ionic/core/components/ion-toast.js';
|
|
80
|
-
import { defineCustomElement as defineIonToggle } from '@ionic/core/components/ion-toggle.js';
|
|
81
|
-
import { defineCustomElement as defineIonToolbar } from '@ionic/core/components/ion-toolbar.js';
|
|
82
|
-
import * as i0 from "@angular/core";
|
|
83
|
-
let IonAccordion = class IonAccordion {
|
|
84
|
-
constructor(c, r, z) {
|
|
85
|
-
this.z = z;
|
|
86
|
-
c.detach();
|
|
87
|
-
this.el = r.nativeElement;
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
/** @nocollapse */ IonAccordion.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
91
|
-
/** @nocollapse */ IonAccordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonAccordion, isStandalone: true, selector: "ion-accordion", inputs: { disabled: "disabled", mode: "mode", readonly: "readonly", toggleIcon: "toggleIcon", toggleIconSlot: "toggleIconSlot", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
92
|
-
IonAccordion = __decorate([
|
|
93
|
-
ProxyCmp({
|
|
94
|
-
defineCustomElementFn: defineIonAccordion,
|
|
95
|
-
inputs: ['disabled', 'mode', 'readonly', 'toggleIcon', 'toggleIconSlot', 'value'],
|
|
96
|
-
})
|
|
97
|
-
], IonAccordion);
|
|
98
|
-
export { IonAccordion };
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonAccordion, decorators: [{
|
|
100
|
-
type: Component,
|
|
101
|
-
args: [{
|
|
102
|
-
selector: 'ion-accordion',
|
|
103
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
104
|
-
template: '<ng-content></ng-content>',
|
|
105
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
106
|
-
inputs: ['disabled', 'mode', 'readonly', 'toggleIcon', 'toggleIconSlot', 'value'],
|
|
107
|
-
standalone: true,
|
|
108
|
-
}]
|
|
109
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
110
|
-
let IonAccordionGroup = class IonAccordionGroup {
|
|
111
|
-
constructor(c, r, z) {
|
|
112
|
-
this.z = z;
|
|
113
|
-
c.detach();
|
|
114
|
-
this.el = r.nativeElement;
|
|
115
|
-
proxyOutputs(this, this.el, ['ionChange']);
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
/** @nocollapse */ IonAccordionGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonAccordionGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
119
|
-
/** @nocollapse */ IonAccordionGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonAccordionGroup, isStandalone: true, selector: "ion-accordion-group", inputs: { animated: "animated", disabled: "disabled", expand: "expand", mode: "mode", multiple: "multiple", readonly: "readonly", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
120
|
-
IonAccordionGroup = __decorate([
|
|
121
|
-
ProxyCmp({
|
|
122
|
-
defineCustomElementFn: defineIonAccordionGroup,
|
|
123
|
-
inputs: ['animated', 'disabled', 'expand', 'mode', 'multiple', 'readonly', 'value'],
|
|
124
|
-
})
|
|
125
|
-
], IonAccordionGroup);
|
|
126
|
-
export { IonAccordionGroup };
|
|
127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonAccordionGroup, decorators: [{
|
|
128
|
-
type: Component,
|
|
129
|
-
args: [{
|
|
130
|
-
selector: 'ion-accordion-group',
|
|
131
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
132
|
-
template: '<ng-content></ng-content>',
|
|
133
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
134
|
-
inputs: ['animated', 'disabled', 'expand', 'mode', 'multiple', 'readonly', 'value'],
|
|
135
|
-
standalone: true,
|
|
136
|
-
}]
|
|
137
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
138
|
-
let IonActionSheet = class IonActionSheet {
|
|
139
|
-
constructor(c, r, z) {
|
|
140
|
-
this.z = z;
|
|
141
|
-
c.detach();
|
|
142
|
-
this.el = r.nativeElement;
|
|
143
|
-
proxyOutputs(this, this.el, [
|
|
144
|
-
'ionActionSheetDidPresent',
|
|
145
|
-
'ionActionSheetWillPresent',
|
|
146
|
-
'ionActionSheetWillDismiss',
|
|
147
|
-
'ionActionSheetDidDismiss',
|
|
148
|
-
'didPresent',
|
|
149
|
-
'willPresent',
|
|
150
|
-
'willDismiss',
|
|
151
|
-
'didDismiss',
|
|
152
|
-
]);
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
/** @nocollapse */ IonActionSheet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonActionSheet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
156
|
-
/** @nocollapse */ IonActionSheet.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonActionSheet, isStandalone: true, selector: "ion-action-sheet", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", buttons: "buttons", cssClass: "cssClass", enterAnimation: "enterAnimation", header: "header", htmlAttributes: "htmlAttributes", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", subHeader: "subHeader", translucent: "translucent", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
157
|
-
IonActionSheet = __decorate([
|
|
158
|
-
ProxyCmp({
|
|
159
|
-
defineCustomElementFn: defineIonActionSheet,
|
|
160
|
-
inputs: [
|
|
161
|
-
'animated',
|
|
162
|
-
'backdropDismiss',
|
|
163
|
-
'buttons',
|
|
164
|
-
'cssClass',
|
|
165
|
-
'enterAnimation',
|
|
166
|
-
'header',
|
|
167
|
-
'htmlAttributes',
|
|
168
|
-
'isOpen',
|
|
169
|
-
'keyboardClose',
|
|
170
|
-
'leaveAnimation',
|
|
171
|
-
'mode',
|
|
172
|
-
'subHeader',
|
|
173
|
-
'translucent',
|
|
174
|
-
'trigger',
|
|
175
|
-
],
|
|
176
|
-
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss'],
|
|
177
|
-
})
|
|
178
|
-
], IonActionSheet);
|
|
179
|
-
export { IonActionSheet };
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonActionSheet, decorators: [{
|
|
181
|
-
type: Component,
|
|
182
|
-
args: [{
|
|
183
|
-
selector: 'ion-action-sheet',
|
|
184
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
185
|
-
template: '<ng-content></ng-content>',
|
|
186
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
187
|
-
inputs: [
|
|
188
|
-
'animated',
|
|
189
|
-
'backdropDismiss',
|
|
190
|
-
'buttons',
|
|
191
|
-
'cssClass',
|
|
192
|
-
'enterAnimation',
|
|
193
|
-
'header',
|
|
194
|
-
'htmlAttributes',
|
|
195
|
-
'isOpen',
|
|
196
|
-
'keyboardClose',
|
|
197
|
-
'leaveAnimation',
|
|
198
|
-
'mode',
|
|
199
|
-
'subHeader',
|
|
200
|
-
'translucent',
|
|
201
|
-
'trigger',
|
|
202
|
-
],
|
|
203
|
-
standalone: true,
|
|
204
|
-
}]
|
|
205
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
206
|
-
let IonAlert = class IonAlert {
|
|
207
|
-
constructor(c, r, z) {
|
|
208
|
-
this.z = z;
|
|
209
|
-
c.detach();
|
|
210
|
-
this.el = r.nativeElement;
|
|
211
|
-
proxyOutputs(this, this.el, [
|
|
212
|
-
'ionAlertDidPresent',
|
|
213
|
-
'ionAlertWillPresent',
|
|
214
|
-
'ionAlertWillDismiss',
|
|
215
|
-
'ionAlertDidDismiss',
|
|
216
|
-
'didPresent',
|
|
217
|
-
'willPresent',
|
|
218
|
-
'willDismiss',
|
|
219
|
-
'didDismiss',
|
|
220
|
-
]);
|
|
221
|
-
}
|
|
222
|
-
};
|
|
223
|
-
/** @nocollapse */ IonAlert.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonAlert, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
-
/** @nocollapse */ IonAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonAlert, isStandalone: true, selector: "ion-alert", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", buttons: "buttons", cssClass: "cssClass", enterAnimation: "enterAnimation", header: "header", htmlAttributes: "htmlAttributes", inputs: "inputs", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", message: "message", mode: "mode", subHeader: "subHeader", translucent: "translucent", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
225
|
-
IonAlert = __decorate([
|
|
226
|
-
ProxyCmp({
|
|
227
|
-
defineCustomElementFn: defineIonAlert,
|
|
228
|
-
inputs: [
|
|
229
|
-
'animated',
|
|
230
|
-
'backdropDismiss',
|
|
231
|
-
'buttons',
|
|
232
|
-
'cssClass',
|
|
233
|
-
'enterAnimation',
|
|
234
|
-
'header',
|
|
235
|
-
'htmlAttributes',
|
|
236
|
-
'inputs',
|
|
237
|
-
'isOpen',
|
|
238
|
-
'keyboardClose',
|
|
239
|
-
'leaveAnimation',
|
|
240
|
-
'message',
|
|
241
|
-
'mode',
|
|
242
|
-
'subHeader',
|
|
243
|
-
'translucent',
|
|
244
|
-
'trigger',
|
|
245
|
-
],
|
|
246
|
-
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss'],
|
|
247
|
-
})
|
|
248
|
-
], IonAlert);
|
|
249
|
-
export { IonAlert };
|
|
250
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonAlert, decorators: [{
|
|
251
|
-
type: Component,
|
|
252
|
-
args: [{
|
|
253
|
-
selector: 'ion-alert',
|
|
254
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
255
|
-
template: '<ng-content></ng-content>',
|
|
256
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
257
|
-
inputs: [
|
|
258
|
-
'animated',
|
|
259
|
-
'backdropDismiss',
|
|
260
|
-
'buttons',
|
|
261
|
-
'cssClass',
|
|
262
|
-
'enterAnimation',
|
|
263
|
-
'header',
|
|
264
|
-
'htmlAttributes',
|
|
265
|
-
'inputs',
|
|
266
|
-
'isOpen',
|
|
267
|
-
'keyboardClose',
|
|
268
|
-
'leaveAnimation',
|
|
269
|
-
'message',
|
|
270
|
-
'mode',
|
|
271
|
-
'subHeader',
|
|
272
|
-
'translucent',
|
|
273
|
-
'trigger',
|
|
274
|
-
],
|
|
275
|
-
standalone: true,
|
|
276
|
-
}]
|
|
277
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
278
|
-
let IonApp = class IonApp {
|
|
279
|
-
constructor(c, r, z) {
|
|
280
|
-
this.z = z;
|
|
281
|
-
c.detach();
|
|
282
|
-
this.el = r.nativeElement;
|
|
283
|
-
}
|
|
284
|
-
};
|
|
285
|
-
/** @nocollapse */ IonApp.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonApp, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
286
|
-
/** @nocollapse */ IonApp.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonApp, isStandalone: true, selector: "ion-app", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
287
|
-
IonApp = __decorate([
|
|
288
|
-
ProxyCmp({
|
|
289
|
-
defineCustomElementFn: defineIonApp,
|
|
290
|
-
})
|
|
291
|
-
], IonApp);
|
|
292
|
-
export { IonApp };
|
|
293
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonApp, decorators: [{
|
|
294
|
-
type: Component,
|
|
295
|
-
args: [{
|
|
296
|
-
selector: 'ion-app',
|
|
297
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
298
|
-
template: '<ng-content></ng-content>',
|
|
299
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
300
|
-
inputs: [],
|
|
301
|
-
standalone: true,
|
|
302
|
-
}]
|
|
303
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
304
|
-
let IonAvatar = class IonAvatar {
|
|
305
|
-
constructor(c, r, z) {
|
|
306
|
-
this.z = z;
|
|
307
|
-
c.detach();
|
|
308
|
-
this.el = r.nativeElement;
|
|
309
|
-
}
|
|
310
|
-
};
|
|
311
|
-
/** @nocollapse */ IonAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
312
|
-
/** @nocollapse */ IonAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonAvatar, isStandalone: true, selector: "ion-avatar", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
313
|
-
IonAvatar = __decorate([
|
|
314
|
-
ProxyCmp({
|
|
315
|
-
defineCustomElementFn: defineIonAvatar,
|
|
316
|
-
})
|
|
317
|
-
], IonAvatar);
|
|
318
|
-
export { IonAvatar };
|
|
319
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonAvatar, decorators: [{
|
|
320
|
-
type: Component,
|
|
321
|
-
args: [{
|
|
322
|
-
selector: 'ion-avatar',
|
|
323
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
324
|
-
template: '<ng-content></ng-content>',
|
|
325
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
326
|
-
inputs: [],
|
|
327
|
-
standalone: true,
|
|
328
|
-
}]
|
|
329
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
330
|
-
let IonBackdrop = class IonBackdrop {
|
|
331
|
-
constructor(c, r, z) {
|
|
332
|
-
this.z = z;
|
|
333
|
-
c.detach();
|
|
334
|
-
this.el = r.nativeElement;
|
|
335
|
-
proxyOutputs(this, this.el, ['ionBackdropTap']);
|
|
336
|
-
}
|
|
337
|
-
};
|
|
338
|
-
/** @nocollapse */ IonBackdrop.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonBackdrop, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
339
|
-
/** @nocollapse */ IonBackdrop.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonBackdrop, isStandalone: true, selector: "ion-backdrop", inputs: { stopPropagation: "stopPropagation", tappable: "tappable", visible: "visible" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
340
|
-
IonBackdrop = __decorate([
|
|
341
|
-
ProxyCmp({
|
|
342
|
-
defineCustomElementFn: defineIonBackdrop,
|
|
343
|
-
inputs: ['stopPropagation', 'tappable', 'visible'],
|
|
344
|
-
})
|
|
345
|
-
], IonBackdrop);
|
|
346
|
-
export { IonBackdrop };
|
|
347
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonBackdrop, decorators: [{
|
|
348
|
-
type: Component,
|
|
349
|
-
args: [{
|
|
350
|
-
selector: 'ion-backdrop',
|
|
351
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
352
|
-
template: '<ng-content></ng-content>',
|
|
353
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
354
|
-
inputs: ['stopPropagation', 'tappable', 'visible'],
|
|
355
|
-
standalone: true,
|
|
356
|
-
}]
|
|
357
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
358
|
-
let IonBadge = class IonBadge {
|
|
359
|
-
constructor(c, r, z) {
|
|
360
|
-
this.z = z;
|
|
361
|
-
c.detach();
|
|
362
|
-
this.el = r.nativeElement;
|
|
363
|
-
}
|
|
364
|
-
};
|
|
365
|
-
/** @nocollapse */ IonBadge.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
366
|
-
/** @nocollapse */ IonBadge.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonBadge, isStandalone: true, selector: "ion-badge", inputs: { color: "color", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
367
|
-
IonBadge = __decorate([
|
|
368
|
-
ProxyCmp({
|
|
369
|
-
defineCustomElementFn: defineIonBadge,
|
|
370
|
-
inputs: ['color', 'mode'],
|
|
371
|
-
})
|
|
372
|
-
], IonBadge);
|
|
373
|
-
export { IonBadge };
|
|
374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonBadge, decorators: [{
|
|
375
|
-
type: Component,
|
|
376
|
-
args: [{
|
|
377
|
-
selector: 'ion-badge',
|
|
378
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
379
|
-
template: '<ng-content></ng-content>',
|
|
380
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
381
|
-
inputs: ['color', 'mode'],
|
|
382
|
-
standalone: true,
|
|
383
|
-
}]
|
|
384
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
385
|
-
let IonBreadcrumb = class IonBreadcrumb {
|
|
386
|
-
constructor(c, r, z) {
|
|
387
|
-
this.z = z;
|
|
388
|
-
c.detach();
|
|
389
|
-
this.el = r.nativeElement;
|
|
390
|
-
proxyOutputs(this, this.el, ['ionFocus', 'ionBlur']);
|
|
391
|
-
}
|
|
392
|
-
};
|
|
393
|
-
/** @nocollapse */ IonBreadcrumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonBreadcrumb, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
394
|
-
/** @nocollapse */ IonBreadcrumb.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonBreadcrumb, isStandalone: true, selector: "ion-breadcrumb", inputs: { active: "active", color: "color", disabled: "disabled", download: "download", href: "href", mode: "mode", rel: "rel", routerAnimation: "routerAnimation", routerDirection: "routerDirection", separator: "separator", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
395
|
-
IonBreadcrumb = __decorate([
|
|
396
|
-
ProxyCmp({
|
|
397
|
-
defineCustomElementFn: defineIonBreadcrumb,
|
|
398
|
-
inputs: [
|
|
399
|
-
'active',
|
|
400
|
-
'color',
|
|
401
|
-
'disabled',
|
|
402
|
-
'download',
|
|
403
|
-
'href',
|
|
404
|
-
'mode',
|
|
405
|
-
'rel',
|
|
406
|
-
'routerAnimation',
|
|
407
|
-
'routerDirection',
|
|
408
|
-
'separator',
|
|
409
|
-
'target',
|
|
410
|
-
],
|
|
411
|
-
})
|
|
412
|
-
], IonBreadcrumb);
|
|
413
|
-
export { IonBreadcrumb };
|
|
414
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonBreadcrumb, decorators: [{
|
|
415
|
-
type: Component,
|
|
416
|
-
args: [{
|
|
417
|
-
selector: 'ion-breadcrumb',
|
|
418
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
419
|
-
template: '<ng-content></ng-content>',
|
|
420
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
421
|
-
inputs: [
|
|
422
|
-
'active',
|
|
423
|
-
'color',
|
|
424
|
-
'disabled',
|
|
425
|
-
'download',
|
|
426
|
-
'href',
|
|
427
|
-
'mode',
|
|
428
|
-
'rel',
|
|
429
|
-
'routerAnimation',
|
|
430
|
-
'routerDirection',
|
|
431
|
-
'separator',
|
|
432
|
-
'target',
|
|
433
|
-
],
|
|
434
|
-
standalone: true,
|
|
435
|
-
}]
|
|
436
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
437
|
-
let IonBreadcrumbs = class IonBreadcrumbs {
|
|
438
|
-
constructor(c, r, z) {
|
|
439
|
-
this.z = z;
|
|
440
|
-
c.detach();
|
|
441
|
-
this.el = r.nativeElement;
|
|
442
|
-
proxyOutputs(this, this.el, ['ionCollapsedClick']);
|
|
443
|
-
}
|
|
444
|
-
};
|
|
445
|
-
/** @nocollapse */ IonBreadcrumbs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonBreadcrumbs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
446
|
-
/** @nocollapse */ IonBreadcrumbs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonBreadcrumbs, isStandalone: true, selector: "ion-breadcrumbs", inputs: { color: "color", itemsAfterCollapse: "itemsAfterCollapse", itemsBeforeCollapse: "itemsBeforeCollapse", maxItems: "maxItems", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
447
|
-
IonBreadcrumbs = __decorate([
|
|
448
|
-
ProxyCmp({
|
|
449
|
-
defineCustomElementFn: defineIonBreadcrumbs,
|
|
450
|
-
inputs: ['color', 'itemsAfterCollapse', 'itemsBeforeCollapse', 'maxItems', 'mode'],
|
|
451
|
-
})
|
|
452
|
-
], IonBreadcrumbs);
|
|
453
|
-
export { IonBreadcrumbs };
|
|
454
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonBreadcrumbs, decorators: [{
|
|
455
|
-
type: Component,
|
|
456
|
-
args: [{
|
|
457
|
-
selector: 'ion-breadcrumbs',
|
|
458
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
459
|
-
template: '<ng-content></ng-content>',
|
|
460
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
461
|
-
inputs: ['color', 'itemsAfterCollapse', 'itemsBeforeCollapse', 'maxItems', 'mode'],
|
|
462
|
-
standalone: true,
|
|
463
|
-
}]
|
|
464
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
465
|
-
let IonButton = class IonButton {
|
|
466
|
-
constructor(c, r, z) {
|
|
467
|
-
this.z = z;
|
|
468
|
-
c.detach();
|
|
469
|
-
this.el = r.nativeElement;
|
|
470
|
-
proxyOutputs(this, this.el, ['ionFocus', 'ionBlur']);
|
|
471
|
-
}
|
|
472
|
-
};
|
|
473
|
-
/** @nocollapse */ IonButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
474
|
-
/** @nocollapse */ IonButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonButton, isStandalone: true, selector: "ion-button", inputs: { buttonType: "buttonType", color: "color", disabled: "disabled", download: "download", expand: "expand", fill: "fill", form: "form", href: "href", mode: "mode", rel: "rel", routerAnimation: "routerAnimation", routerDirection: "routerDirection", shape: "shape", size: "size", strong: "strong", target: "target", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
475
|
-
IonButton = __decorate([
|
|
476
|
-
ProxyCmp({
|
|
477
|
-
defineCustomElementFn: defineIonButton,
|
|
478
|
-
inputs: [
|
|
479
|
-
'buttonType',
|
|
480
|
-
'color',
|
|
481
|
-
'disabled',
|
|
482
|
-
'download',
|
|
483
|
-
'expand',
|
|
484
|
-
'fill',
|
|
485
|
-
'form',
|
|
486
|
-
'href',
|
|
487
|
-
'mode',
|
|
488
|
-
'rel',
|
|
489
|
-
'routerAnimation',
|
|
490
|
-
'routerDirection',
|
|
491
|
-
'shape',
|
|
492
|
-
'size',
|
|
493
|
-
'strong',
|
|
494
|
-
'target',
|
|
495
|
-
'type',
|
|
496
|
-
],
|
|
497
|
-
})
|
|
498
|
-
], IonButton);
|
|
499
|
-
export { IonButton };
|
|
500
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonButton, decorators: [{
|
|
501
|
-
type: Component,
|
|
502
|
-
args: [{
|
|
503
|
-
selector: 'ion-button',
|
|
504
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
505
|
-
template: '<ng-content></ng-content>',
|
|
506
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
507
|
-
inputs: [
|
|
508
|
-
'buttonType',
|
|
509
|
-
'color',
|
|
510
|
-
'disabled',
|
|
511
|
-
'download',
|
|
512
|
-
'expand',
|
|
513
|
-
'fill',
|
|
514
|
-
'form',
|
|
515
|
-
'href',
|
|
516
|
-
'mode',
|
|
517
|
-
'rel',
|
|
518
|
-
'routerAnimation',
|
|
519
|
-
'routerDirection',
|
|
520
|
-
'shape',
|
|
521
|
-
'size',
|
|
522
|
-
'strong',
|
|
523
|
-
'target',
|
|
524
|
-
'type',
|
|
525
|
-
],
|
|
526
|
-
standalone: true,
|
|
527
|
-
}]
|
|
528
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
529
|
-
let IonButtons = class IonButtons {
|
|
530
|
-
constructor(c, r, z) {
|
|
531
|
-
this.z = z;
|
|
532
|
-
c.detach();
|
|
533
|
-
this.el = r.nativeElement;
|
|
534
|
-
}
|
|
535
|
-
};
|
|
536
|
-
/** @nocollapse */ IonButtons.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonButtons, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
537
|
-
/** @nocollapse */ IonButtons.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonButtons, isStandalone: true, selector: "ion-buttons", inputs: { collapse: "collapse" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
538
|
-
IonButtons = __decorate([
|
|
539
|
-
ProxyCmp({
|
|
540
|
-
defineCustomElementFn: defineIonButtons,
|
|
541
|
-
inputs: ['collapse'],
|
|
542
|
-
})
|
|
543
|
-
], IonButtons);
|
|
544
|
-
export { IonButtons };
|
|
545
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonButtons, decorators: [{
|
|
546
|
-
type: Component,
|
|
547
|
-
args: [{
|
|
548
|
-
selector: 'ion-buttons',
|
|
549
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
550
|
-
template: '<ng-content></ng-content>',
|
|
551
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
552
|
-
inputs: ['collapse'],
|
|
553
|
-
standalone: true,
|
|
554
|
-
}]
|
|
555
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
556
|
-
let IonCard = class IonCard {
|
|
557
|
-
constructor(c, r, z) {
|
|
558
|
-
this.z = z;
|
|
559
|
-
c.detach();
|
|
560
|
-
this.el = r.nativeElement;
|
|
561
|
-
}
|
|
562
|
-
};
|
|
563
|
-
/** @nocollapse */ IonCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
564
|
-
/** @nocollapse */ IonCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonCard, isStandalone: true, selector: "ion-card", inputs: { button: "button", color: "color", disabled: "disabled", download: "download", href: "href", mode: "mode", rel: "rel", routerAnimation: "routerAnimation", routerDirection: "routerDirection", target: "target", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
565
|
-
IonCard = __decorate([
|
|
566
|
-
ProxyCmp({
|
|
567
|
-
defineCustomElementFn: defineIonCard,
|
|
568
|
-
inputs: [
|
|
569
|
-
'button',
|
|
570
|
-
'color',
|
|
571
|
-
'disabled',
|
|
572
|
-
'download',
|
|
573
|
-
'href',
|
|
574
|
-
'mode',
|
|
575
|
-
'rel',
|
|
576
|
-
'routerAnimation',
|
|
577
|
-
'routerDirection',
|
|
578
|
-
'target',
|
|
579
|
-
'type',
|
|
580
|
-
],
|
|
581
|
-
})
|
|
582
|
-
], IonCard);
|
|
583
|
-
export { IonCard };
|
|
584
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCard, decorators: [{
|
|
585
|
-
type: Component,
|
|
586
|
-
args: [{
|
|
587
|
-
selector: 'ion-card',
|
|
588
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
589
|
-
template: '<ng-content></ng-content>',
|
|
590
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
591
|
-
inputs: [
|
|
592
|
-
'button',
|
|
593
|
-
'color',
|
|
594
|
-
'disabled',
|
|
595
|
-
'download',
|
|
596
|
-
'href',
|
|
597
|
-
'mode',
|
|
598
|
-
'rel',
|
|
599
|
-
'routerAnimation',
|
|
600
|
-
'routerDirection',
|
|
601
|
-
'target',
|
|
602
|
-
'type',
|
|
603
|
-
],
|
|
604
|
-
standalone: true,
|
|
605
|
-
}]
|
|
606
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
607
|
-
let IonCardContent = class IonCardContent {
|
|
608
|
-
constructor(c, r, z) {
|
|
609
|
-
this.z = z;
|
|
610
|
-
c.detach();
|
|
611
|
-
this.el = r.nativeElement;
|
|
612
|
-
}
|
|
613
|
-
};
|
|
614
|
-
/** @nocollapse */ IonCardContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCardContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
615
|
-
/** @nocollapse */ IonCardContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonCardContent, isStandalone: true, selector: "ion-card-content", inputs: { mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
616
|
-
IonCardContent = __decorate([
|
|
617
|
-
ProxyCmp({
|
|
618
|
-
defineCustomElementFn: defineIonCardContent,
|
|
619
|
-
inputs: ['mode'],
|
|
620
|
-
})
|
|
621
|
-
], IonCardContent);
|
|
622
|
-
export { IonCardContent };
|
|
623
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCardContent, decorators: [{
|
|
624
|
-
type: Component,
|
|
625
|
-
args: [{
|
|
626
|
-
selector: 'ion-card-content',
|
|
627
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
628
|
-
template: '<ng-content></ng-content>',
|
|
629
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
630
|
-
inputs: ['mode'],
|
|
631
|
-
standalone: true,
|
|
632
|
-
}]
|
|
633
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
634
|
-
let IonCardHeader = class IonCardHeader {
|
|
635
|
-
constructor(c, r, z) {
|
|
636
|
-
this.z = z;
|
|
637
|
-
c.detach();
|
|
638
|
-
this.el = r.nativeElement;
|
|
639
|
-
}
|
|
640
|
-
};
|
|
641
|
-
/** @nocollapse */ IonCardHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCardHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
642
|
-
/** @nocollapse */ IonCardHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonCardHeader, isStandalone: true, selector: "ion-card-header", inputs: { color: "color", mode: "mode", translucent: "translucent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
643
|
-
IonCardHeader = __decorate([
|
|
644
|
-
ProxyCmp({
|
|
645
|
-
defineCustomElementFn: defineIonCardHeader,
|
|
646
|
-
inputs: ['color', 'mode', 'translucent'],
|
|
647
|
-
})
|
|
648
|
-
], IonCardHeader);
|
|
649
|
-
export { IonCardHeader };
|
|
650
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCardHeader, decorators: [{
|
|
651
|
-
type: Component,
|
|
652
|
-
args: [{
|
|
653
|
-
selector: 'ion-card-header',
|
|
654
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
655
|
-
template: '<ng-content></ng-content>',
|
|
656
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
657
|
-
inputs: ['color', 'mode', 'translucent'],
|
|
658
|
-
standalone: true,
|
|
659
|
-
}]
|
|
660
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
661
|
-
let IonCardSubtitle = class IonCardSubtitle {
|
|
662
|
-
constructor(c, r, z) {
|
|
663
|
-
this.z = z;
|
|
664
|
-
c.detach();
|
|
665
|
-
this.el = r.nativeElement;
|
|
666
|
-
}
|
|
667
|
-
};
|
|
668
|
-
/** @nocollapse */ IonCardSubtitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCardSubtitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
669
|
-
/** @nocollapse */ IonCardSubtitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonCardSubtitle, isStandalone: true, selector: "ion-card-subtitle", inputs: { color: "color", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
670
|
-
IonCardSubtitle = __decorate([
|
|
671
|
-
ProxyCmp({
|
|
672
|
-
defineCustomElementFn: defineIonCardSubtitle,
|
|
673
|
-
inputs: ['color', 'mode'],
|
|
674
|
-
})
|
|
675
|
-
], IonCardSubtitle);
|
|
676
|
-
export { IonCardSubtitle };
|
|
677
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCardSubtitle, decorators: [{
|
|
678
|
-
type: Component,
|
|
679
|
-
args: [{
|
|
680
|
-
selector: 'ion-card-subtitle',
|
|
681
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
682
|
-
template: '<ng-content></ng-content>',
|
|
683
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
684
|
-
inputs: ['color', 'mode'],
|
|
685
|
-
standalone: true,
|
|
686
|
-
}]
|
|
687
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
688
|
-
let IonCardTitle = class IonCardTitle {
|
|
689
|
-
constructor(c, r, z) {
|
|
690
|
-
this.z = z;
|
|
691
|
-
c.detach();
|
|
692
|
-
this.el = r.nativeElement;
|
|
693
|
-
}
|
|
694
|
-
};
|
|
695
|
-
/** @nocollapse */ IonCardTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCardTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
696
|
-
/** @nocollapse */ IonCardTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonCardTitle, isStandalone: true, selector: "ion-card-title", inputs: { color: "color", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
697
|
-
IonCardTitle = __decorate([
|
|
698
|
-
ProxyCmp({
|
|
699
|
-
defineCustomElementFn: defineIonCardTitle,
|
|
700
|
-
inputs: ['color', 'mode'],
|
|
701
|
-
})
|
|
702
|
-
], IonCardTitle);
|
|
703
|
-
export { IonCardTitle };
|
|
704
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCardTitle, decorators: [{
|
|
705
|
-
type: Component,
|
|
706
|
-
args: [{
|
|
707
|
-
selector: 'ion-card-title',
|
|
708
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
709
|
-
template: '<ng-content></ng-content>',
|
|
710
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
711
|
-
inputs: ['color', 'mode'],
|
|
712
|
-
standalone: true,
|
|
713
|
-
}]
|
|
714
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
715
|
-
let IonCheckbox = class IonCheckbox {
|
|
716
|
-
constructor(c, r, z) {
|
|
717
|
-
this.z = z;
|
|
718
|
-
c.detach();
|
|
719
|
-
this.el = r.nativeElement;
|
|
720
|
-
proxyOutputs(this, this.el, ['ionChange', 'ionFocus', 'ionBlur']);
|
|
721
|
-
}
|
|
722
|
-
};
|
|
723
|
-
/** @nocollapse */ IonCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
724
|
-
/** @nocollapse */ IonCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonCheckbox, isStandalone: true, selector: "ion-checkbox", inputs: { checked: "checked", color: "color", disabled: "disabled", indeterminate: "indeterminate", justify: "justify", labelPlacement: "labelPlacement", legacy: "legacy", mode: "mode", name: "name", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
725
|
-
IonCheckbox = __decorate([
|
|
726
|
-
ProxyCmp({
|
|
727
|
-
defineCustomElementFn: defineIonCheckbox,
|
|
728
|
-
inputs: [
|
|
729
|
-
'checked',
|
|
730
|
-
'color',
|
|
731
|
-
'disabled',
|
|
732
|
-
'indeterminate',
|
|
733
|
-
'justify',
|
|
734
|
-
'labelPlacement',
|
|
735
|
-
'legacy',
|
|
736
|
-
'mode',
|
|
737
|
-
'name',
|
|
738
|
-
'value',
|
|
739
|
-
],
|
|
740
|
-
})
|
|
741
|
-
], IonCheckbox);
|
|
742
|
-
export { IonCheckbox };
|
|
743
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCheckbox, decorators: [{
|
|
744
|
-
type: Component,
|
|
745
|
-
args: [{
|
|
746
|
-
selector: 'ion-checkbox',
|
|
747
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
748
|
-
template: '<ng-content></ng-content>',
|
|
749
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
750
|
-
inputs: [
|
|
751
|
-
'checked',
|
|
752
|
-
'color',
|
|
753
|
-
'disabled',
|
|
754
|
-
'indeterminate',
|
|
755
|
-
'justify',
|
|
756
|
-
'labelPlacement',
|
|
757
|
-
'legacy',
|
|
758
|
-
'mode',
|
|
759
|
-
'name',
|
|
760
|
-
'value',
|
|
761
|
-
],
|
|
762
|
-
standalone: true,
|
|
763
|
-
}]
|
|
764
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
765
|
-
let IonChip = class IonChip {
|
|
766
|
-
constructor(c, r, z) {
|
|
767
|
-
this.z = z;
|
|
768
|
-
c.detach();
|
|
769
|
-
this.el = r.nativeElement;
|
|
770
|
-
}
|
|
771
|
-
};
|
|
772
|
-
/** @nocollapse */ IonChip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
773
|
-
/** @nocollapse */ IonChip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonChip, isStandalone: true, selector: "ion-chip", inputs: { color: "color", disabled: "disabled", mode: "mode", outline: "outline" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
774
|
-
IonChip = __decorate([
|
|
775
|
-
ProxyCmp({
|
|
776
|
-
defineCustomElementFn: defineIonChip,
|
|
777
|
-
inputs: ['color', 'disabled', 'mode', 'outline'],
|
|
778
|
-
})
|
|
779
|
-
], IonChip);
|
|
780
|
-
export { IonChip };
|
|
781
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonChip, decorators: [{
|
|
782
|
-
type: Component,
|
|
783
|
-
args: [{
|
|
784
|
-
selector: 'ion-chip',
|
|
785
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
786
|
-
template: '<ng-content></ng-content>',
|
|
787
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
788
|
-
inputs: ['color', 'disabled', 'mode', 'outline'],
|
|
789
|
-
standalone: true,
|
|
790
|
-
}]
|
|
791
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
792
|
-
let IonCol = class IonCol {
|
|
793
|
-
constructor(c, r, z) {
|
|
794
|
-
this.z = z;
|
|
795
|
-
c.detach();
|
|
796
|
-
this.el = r.nativeElement;
|
|
797
|
-
}
|
|
798
|
-
};
|
|
799
|
-
/** @nocollapse */ IonCol.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCol, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
800
|
-
/** @nocollapse */ IonCol.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonCol, isStandalone: true, selector: "ion-col", inputs: { offset: "offset", offsetLg: "offsetLg", offsetMd: "offsetMd", offsetSm: "offsetSm", offsetXl: "offsetXl", offsetXs: "offsetXs", pull: "pull", pullLg: "pullLg", pullMd: "pullMd", pullSm: "pullSm", pullXl: "pullXl", pullXs: "pullXs", push: "push", pushLg: "pushLg", pushMd: "pushMd", pushSm: "pushSm", pushXl: "pushXl", pushXs: "pushXs", size: "size", sizeLg: "sizeLg", sizeMd: "sizeMd", sizeSm: "sizeSm", sizeXl: "sizeXl", sizeXs: "sizeXs" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
801
|
-
IonCol = __decorate([
|
|
802
|
-
ProxyCmp({
|
|
803
|
-
defineCustomElementFn: defineIonCol,
|
|
804
|
-
inputs: [
|
|
805
|
-
'offset',
|
|
806
|
-
'offsetLg',
|
|
807
|
-
'offsetMd',
|
|
808
|
-
'offsetSm',
|
|
809
|
-
'offsetXl',
|
|
810
|
-
'offsetXs',
|
|
811
|
-
'pull',
|
|
812
|
-
'pullLg',
|
|
813
|
-
'pullMd',
|
|
814
|
-
'pullSm',
|
|
815
|
-
'pullXl',
|
|
816
|
-
'pullXs',
|
|
817
|
-
'push',
|
|
818
|
-
'pushLg',
|
|
819
|
-
'pushMd',
|
|
820
|
-
'pushSm',
|
|
821
|
-
'pushXl',
|
|
822
|
-
'pushXs',
|
|
823
|
-
'size',
|
|
824
|
-
'sizeLg',
|
|
825
|
-
'sizeMd',
|
|
826
|
-
'sizeSm',
|
|
827
|
-
'sizeXl',
|
|
828
|
-
'sizeXs',
|
|
829
|
-
],
|
|
830
|
-
})
|
|
831
|
-
], IonCol);
|
|
832
|
-
export { IonCol };
|
|
833
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonCol, decorators: [{
|
|
834
|
-
type: Component,
|
|
835
|
-
args: [{
|
|
836
|
-
selector: 'ion-col',
|
|
837
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
838
|
-
template: '<ng-content></ng-content>',
|
|
839
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
840
|
-
inputs: [
|
|
841
|
-
'offset',
|
|
842
|
-
'offsetLg',
|
|
843
|
-
'offsetMd',
|
|
844
|
-
'offsetSm',
|
|
845
|
-
'offsetXl',
|
|
846
|
-
'offsetXs',
|
|
847
|
-
'pull',
|
|
848
|
-
'pullLg',
|
|
849
|
-
'pullMd',
|
|
850
|
-
'pullSm',
|
|
851
|
-
'pullXl',
|
|
852
|
-
'pullXs',
|
|
853
|
-
'push',
|
|
854
|
-
'pushLg',
|
|
855
|
-
'pushMd',
|
|
856
|
-
'pushSm',
|
|
857
|
-
'pushXl',
|
|
858
|
-
'pushXs',
|
|
859
|
-
'size',
|
|
860
|
-
'sizeLg',
|
|
861
|
-
'sizeMd',
|
|
862
|
-
'sizeSm',
|
|
863
|
-
'sizeXl',
|
|
864
|
-
'sizeXs',
|
|
865
|
-
],
|
|
866
|
-
standalone: true,
|
|
867
|
-
}]
|
|
868
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
869
|
-
let IonContent = class IonContent {
|
|
870
|
-
constructor(c, r, z) {
|
|
871
|
-
this.z = z;
|
|
872
|
-
c.detach();
|
|
873
|
-
this.el = r.nativeElement;
|
|
874
|
-
proxyOutputs(this, this.el, ['ionScrollStart', 'ionScroll', 'ionScrollEnd']);
|
|
875
|
-
}
|
|
876
|
-
};
|
|
877
|
-
/** @nocollapse */ IonContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
878
|
-
/** @nocollapse */ IonContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonContent, isStandalone: true, selector: "ion-content", inputs: { color: "color", forceOverscroll: "forceOverscroll", fullscreen: "fullscreen", scrollEvents: "scrollEvents", scrollX: "scrollX", scrollY: "scrollY" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
879
|
-
IonContent = __decorate([
|
|
880
|
-
ProxyCmp({
|
|
881
|
-
defineCustomElementFn: defineIonContent,
|
|
882
|
-
inputs: ['color', 'forceOverscroll', 'fullscreen', 'scrollEvents', 'scrollX', 'scrollY'],
|
|
883
|
-
methods: ['getScrollElement', 'scrollToTop', 'scrollToBottom', 'scrollByPoint', 'scrollToPoint'],
|
|
884
|
-
})
|
|
885
|
-
], IonContent);
|
|
886
|
-
export { IonContent };
|
|
887
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonContent, decorators: [{
|
|
888
|
-
type: Component,
|
|
889
|
-
args: [{
|
|
890
|
-
selector: 'ion-content',
|
|
891
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
892
|
-
template: '<ng-content></ng-content>',
|
|
893
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
894
|
-
inputs: ['color', 'forceOverscroll', 'fullscreen', 'scrollEvents', 'scrollX', 'scrollY'],
|
|
895
|
-
standalone: true,
|
|
896
|
-
}]
|
|
897
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
898
|
-
let IonDatetime = class IonDatetime {
|
|
899
|
-
constructor(c, r, z) {
|
|
900
|
-
this.z = z;
|
|
901
|
-
c.detach();
|
|
902
|
-
this.el = r.nativeElement;
|
|
903
|
-
proxyOutputs(this, this.el, ['ionCancel', 'ionChange', 'ionFocus', 'ionBlur']);
|
|
904
|
-
}
|
|
905
|
-
};
|
|
906
|
-
/** @nocollapse */ IonDatetime.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonDatetime, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
907
|
-
/** @nocollapse */ IonDatetime.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonDatetime, isStandalone: true, selector: "ion-datetime", inputs: { cancelText: "cancelText", clearText: "clearText", color: "color", dayValues: "dayValues", disabled: "disabled", doneText: "doneText", firstDayOfWeek: "firstDayOfWeek", highlightedDates: "highlightedDates", hourCycle: "hourCycle", hourValues: "hourValues", isDateEnabled: "isDateEnabled", locale: "locale", max: "max", min: "min", minuteValues: "minuteValues", mode: "mode", monthValues: "monthValues", multiple: "multiple", name: "name", preferWheel: "preferWheel", presentation: "presentation", readonly: "readonly", showClearButton: "showClearButton", showDefaultButtons: "showDefaultButtons", showDefaultTimeLabel: "showDefaultTimeLabel", showDefaultTitle: "showDefaultTitle", size: "size", titleSelectedDatesFormatter: "titleSelectedDatesFormatter", value: "value", yearValues: "yearValues" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
908
|
-
IonDatetime = __decorate([
|
|
909
|
-
ProxyCmp({
|
|
910
|
-
defineCustomElementFn: defineIonDatetime,
|
|
911
|
-
inputs: [
|
|
912
|
-
'cancelText',
|
|
913
|
-
'clearText',
|
|
914
|
-
'color',
|
|
915
|
-
'dayValues',
|
|
916
|
-
'disabled',
|
|
917
|
-
'doneText',
|
|
918
|
-
'firstDayOfWeek',
|
|
919
|
-
'highlightedDates',
|
|
920
|
-
'hourCycle',
|
|
921
|
-
'hourValues',
|
|
922
|
-
'isDateEnabled',
|
|
923
|
-
'locale',
|
|
924
|
-
'max',
|
|
925
|
-
'min',
|
|
926
|
-
'minuteValues',
|
|
927
|
-
'mode',
|
|
928
|
-
'monthValues',
|
|
929
|
-
'multiple',
|
|
930
|
-
'name',
|
|
931
|
-
'preferWheel',
|
|
932
|
-
'presentation',
|
|
933
|
-
'readonly',
|
|
934
|
-
'showClearButton',
|
|
935
|
-
'showDefaultButtons',
|
|
936
|
-
'showDefaultTimeLabel',
|
|
937
|
-
'showDefaultTitle',
|
|
938
|
-
'size',
|
|
939
|
-
'titleSelectedDatesFormatter',
|
|
940
|
-
'value',
|
|
941
|
-
'yearValues',
|
|
942
|
-
],
|
|
943
|
-
methods: ['confirm', 'reset', 'cancel'],
|
|
944
|
-
})
|
|
945
|
-
], IonDatetime);
|
|
946
|
-
export { IonDatetime };
|
|
947
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonDatetime, decorators: [{
|
|
948
|
-
type: Component,
|
|
949
|
-
args: [{
|
|
950
|
-
selector: 'ion-datetime',
|
|
951
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
952
|
-
template: '<ng-content></ng-content>',
|
|
953
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
954
|
-
inputs: [
|
|
955
|
-
'cancelText',
|
|
956
|
-
'clearText',
|
|
957
|
-
'color',
|
|
958
|
-
'dayValues',
|
|
959
|
-
'disabled',
|
|
960
|
-
'doneText',
|
|
961
|
-
'firstDayOfWeek',
|
|
962
|
-
'highlightedDates',
|
|
963
|
-
'hourCycle',
|
|
964
|
-
'hourValues',
|
|
965
|
-
'isDateEnabled',
|
|
966
|
-
'locale',
|
|
967
|
-
'max',
|
|
968
|
-
'min',
|
|
969
|
-
'minuteValues',
|
|
970
|
-
'mode',
|
|
971
|
-
'monthValues',
|
|
972
|
-
'multiple',
|
|
973
|
-
'name',
|
|
974
|
-
'preferWheel',
|
|
975
|
-
'presentation',
|
|
976
|
-
'readonly',
|
|
977
|
-
'showClearButton',
|
|
978
|
-
'showDefaultButtons',
|
|
979
|
-
'showDefaultTimeLabel',
|
|
980
|
-
'showDefaultTitle',
|
|
981
|
-
'size',
|
|
982
|
-
'titleSelectedDatesFormatter',
|
|
983
|
-
'value',
|
|
984
|
-
'yearValues',
|
|
985
|
-
],
|
|
986
|
-
standalone: true,
|
|
987
|
-
}]
|
|
988
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
989
|
-
let IonDatetimeButton = class IonDatetimeButton {
|
|
990
|
-
constructor(c, r, z) {
|
|
991
|
-
this.z = z;
|
|
992
|
-
c.detach();
|
|
993
|
-
this.el = r.nativeElement;
|
|
994
|
-
}
|
|
995
|
-
};
|
|
996
|
-
/** @nocollapse */ IonDatetimeButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonDatetimeButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
997
|
-
/** @nocollapse */ IonDatetimeButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonDatetimeButton, isStandalone: true, selector: "ion-datetime-button", inputs: { color: "color", datetime: "datetime", disabled: "disabled", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
998
|
-
IonDatetimeButton = __decorate([
|
|
999
|
-
ProxyCmp({
|
|
1000
|
-
defineCustomElementFn: defineIonDatetimeButton,
|
|
1001
|
-
inputs: ['color', 'datetime', 'disabled', 'mode'],
|
|
1002
|
-
})
|
|
1003
|
-
], IonDatetimeButton);
|
|
1004
|
-
export { IonDatetimeButton };
|
|
1005
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonDatetimeButton, decorators: [{
|
|
1006
|
-
type: Component,
|
|
1007
|
-
args: [{
|
|
1008
|
-
selector: 'ion-datetime-button',
|
|
1009
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1010
|
-
template: '<ng-content></ng-content>',
|
|
1011
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1012
|
-
inputs: ['color', 'datetime', 'disabled', 'mode'],
|
|
1013
|
-
standalone: true,
|
|
1014
|
-
}]
|
|
1015
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1016
|
-
let IonFab = class IonFab {
|
|
1017
|
-
constructor(c, r, z) {
|
|
1018
|
-
this.z = z;
|
|
1019
|
-
c.detach();
|
|
1020
|
-
this.el = r.nativeElement;
|
|
1021
|
-
}
|
|
1022
|
-
};
|
|
1023
|
-
/** @nocollapse */ IonFab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonFab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1024
|
-
/** @nocollapse */ IonFab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonFab, isStandalone: true, selector: "ion-fab", inputs: { activated: "activated", edge: "edge", horizontal: "horizontal", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1025
|
-
IonFab = __decorate([
|
|
1026
|
-
ProxyCmp({
|
|
1027
|
-
defineCustomElementFn: defineIonFab,
|
|
1028
|
-
inputs: ['activated', 'edge', 'horizontal', 'vertical'],
|
|
1029
|
-
methods: ['close'],
|
|
1030
|
-
})
|
|
1031
|
-
], IonFab);
|
|
1032
|
-
export { IonFab };
|
|
1033
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonFab, decorators: [{
|
|
1034
|
-
type: Component,
|
|
1035
|
-
args: [{
|
|
1036
|
-
selector: 'ion-fab',
|
|
1037
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1038
|
-
template: '<ng-content></ng-content>',
|
|
1039
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1040
|
-
inputs: ['activated', 'edge', 'horizontal', 'vertical'],
|
|
1041
|
-
standalone: true,
|
|
1042
|
-
}]
|
|
1043
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1044
|
-
let IonFabButton = class IonFabButton {
|
|
1045
|
-
constructor(c, r, z) {
|
|
1046
|
-
this.z = z;
|
|
1047
|
-
c.detach();
|
|
1048
|
-
this.el = r.nativeElement;
|
|
1049
|
-
proxyOutputs(this, this.el, ['ionFocus', 'ionBlur']);
|
|
1050
|
-
}
|
|
1051
|
-
};
|
|
1052
|
-
/** @nocollapse */ IonFabButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonFabButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1053
|
-
/** @nocollapse */ IonFabButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonFabButton, isStandalone: true, selector: "ion-fab-button", inputs: { activated: "activated", closeIcon: "closeIcon", color: "color", disabled: "disabled", download: "download", href: "href", mode: "mode", rel: "rel", routerAnimation: "routerAnimation", routerDirection: "routerDirection", show: "show", size: "size", target: "target", translucent: "translucent", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1054
|
-
IonFabButton = __decorate([
|
|
1055
|
-
ProxyCmp({
|
|
1056
|
-
defineCustomElementFn: defineIonFabButton,
|
|
1057
|
-
inputs: [
|
|
1058
|
-
'activated',
|
|
1059
|
-
'closeIcon',
|
|
1060
|
-
'color',
|
|
1061
|
-
'disabled',
|
|
1062
|
-
'download',
|
|
1063
|
-
'href',
|
|
1064
|
-
'mode',
|
|
1065
|
-
'rel',
|
|
1066
|
-
'routerAnimation',
|
|
1067
|
-
'routerDirection',
|
|
1068
|
-
'show',
|
|
1069
|
-
'size',
|
|
1070
|
-
'target',
|
|
1071
|
-
'translucent',
|
|
1072
|
-
'type',
|
|
1073
|
-
],
|
|
1074
|
-
})
|
|
1075
|
-
], IonFabButton);
|
|
1076
|
-
export { IonFabButton };
|
|
1077
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonFabButton, decorators: [{
|
|
1078
|
-
type: Component,
|
|
1079
|
-
args: [{
|
|
1080
|
-
selector: 'ion-fab-button',
|
|
1081
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1082
|
-
template: '<ng-content></ng-content>',
|
|
1083
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1084
|
-
inputs: [
|
|
1085
|
-
'activated',
|
|
1086
|
-
'closeIcon',
|
|
1087
|
-
'color',
|
|
1088
|
-
'disabled',
|
|
1089
|
-
'download',
|
|
1090
|
-
'href',
|
|
1091
|
-
'mode',
|
|
1092
|
-
'rel',
|
|
1093
|
-
'routerAnimation',
|
|
1094
|
-
'routerDirection',
|
|
1095
|
-
'show',
|
|
1096
|
-
'size',
|
|
1097
|
-
'target',
|
|
1098
|
-
'translucent',
|
|
1099
|
-
'type',
|
|
1100
|
-
],
|
|
1101
|
-
standalone: true,
|
|
1102
|
-
}]
|
|
1103
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1104
|
-
let IonFabList = class IonFabList {
|
|
1105
|
-
constructor(c, r, z) {
|
|
1106
|
-
this.z = z;
|
|
1107
|
-
c.detach();
|
|
1108
|
-
this.el = r.nativeElement;
|
|
1109
|
-
}
|
|
1110
|
-
};
|
|
1111
|
-
/** @nocollapse */ IonFabList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonFabList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1112
|
-
/** @nocollapse */ IonFabList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonFabList, isStandalone: true, selector: "ion-fab-list", inputs: { activated: "activated", side: "side" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1113
|
-
IonFabList = __decorate([
|
|
1114
|
-
ProxyCmp({
|
|
1115
|
-
defineCustomElementFn: defineIonFabList,
|
|
1116
|
-
inputs: ['activated', 'side'],
|
|
1117
|
-
})
|
|
1118
|
-
], IonFabList);
|
|
1119
|
-
export { IonFabList };
|
|
1120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonFabList, decorators: [{
|
|
1121
|
-
type: Component,
|
|
1122
|
-
args: [{
|
|
1123
|
-
selector: 'ion-fab-list',
|
|
1124
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1125
|
-
template: '<ng-content></ng-content>',
|
|
1126
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1127
|
-
inputs: ['activated', 'side'],
|
|
1128
|
-
standalone: true,
|
|
1129
|
-
}]
|
|
1130
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1131
|
-
let IonFooter = class IonFooter {
|
|
1132
|
-
constructor(c, r, z) {
|
|
1133
|
-
this.z = z;
|
|
1134
|
-
c.detach();
|
|
1135
|
-
this.el = r.nativeElement;
|
|
1136
|
-
}
|
|
1137
|
-
};
|
|
1138
|
-
/** @nocollapse */ IonFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1139
|
-
/** @nocollapse */ IonFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonFooter, isStandalone: true, selector: "ion-footer", inputs: { collapse: "collapse", mode: "mode", translucent: "translucent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1140
|
-
IonFooter = __decorate([
|
|
1141
|
-
ProxyCmp({
|
|
1142
|
-
defineCustomElementFn: defineIonFooter,
|
|
1143
|
-
inputs: ['collapse', 'mode', 'translucent'],
|
|
1144
|
-
})
|
|
1145
|
-
], IonFooter);
|
|
1146
|
-
export { IonFooter };
|
|
1147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonFooter, decorators: [{
|
|
1148
|
-
type: Component,
|
|
1149
|
-
args: [{
|
|
1150
|
-
selector: 'ion-footer',
|
|
1151
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1152
|
-
template: '<ng-content></ng-content>',
|
|
1153
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1154
|
-
inputs: ['collapse', 'mode', 'translucent'],
|
|
1155
|
-
standalone: true,
|
|
1156
|
-
}]
|
|
1157
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1158
|
-
let IonGrid = class IonGrid {
|
|
1159
|
-
constructor(c, r, z) {
|
|
1160
|
-
this.z = z;
|
|
1161
|
-
c.detach();
|
|
1162
|
-
this.el = r.nativeElement;
|
|
1163
|
-
}
|
|
1164
|
-
};
|
|
1165
|
-
/** @nocollapse */ IonGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1166
|
-
/** @nocollapse */ IonGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonGrid, isStandalone: true, selector: "ion-grid", inputs: { fixed: "fixed" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1167
|
-
IonGrid = __decorate([
|
|
1168
|
-
ProxyCmp({
|
|
1169
|
-
defineCustomElementFn: defineIonGrid,
|
|
1170
|
-
inputs: ['fixed'],
|
|
1171
|
-
})
|
|
1172
|
-
], IonGrid);
|
|
1173
|
-
export { IonGrid };
|
|
1174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonGrid, decorators: [{
|
|
1175
|
-
type: Component,
|
|
1176
|
-
args: [{
|
|
1177
|
-
selector: 'ion-grid',
|
|
1178
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1179
|
-
template: '<ng-content></ng-content>',
|
|
1180
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1181
|
-
inputs: ['fixed'],
|
|
1182
|
-
standalone: true,
|
|
1183
|
-
}]
|
|
1184
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1185
|
-
let IonHeader = class IonHeader {
|
|
1186
|
-
constructor(c, r, z) {
|
|
1187
|
-
this.z = z;
|
|
1188
|
-
c.detach();
|
|
1189
|
-
this.el = r.nativeElement;
|
|
1190
|
-
}
|
|
1191
|
-
};
|
|
1192
|
-
/** @nocollapse */ IonHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1193
|
-
/** @nocollapse */ IonHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonHeader, isStandalone: true, selector: "ion-header", inputs: { collapse: "collapse", mode: "mode", translucent: "translucent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1194
|
-
IonHeader = __decorate([
|
|
1195
|
-
ProxyCmp({
|
|
1196
|
-
defineCustomElementFn: defineIonHeader,
|
|
1197
|
-
inputs: ['collapse', 'mode', 'translucent'],
|
|
1198
|
-
})
|
|
1199
|
-
], IonHeader);
|
|
1200
|
-
export { IonHeader };
|
|
1201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonHeader, decorators: [{
|
|
1202
|
-
type: Component,
|
|
1203
|
-
args: [{
|
|
1204
|
-
selector: 'ion-header',
|
|
1205
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1206
|
-
template: '<ng-content></ng-content>',
|
|
1207
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1208
|
-
inputs: ['collapse', 'mode', 'translucent'],
|
|
1209
|
-
standalone: true,
|
|
1210
|
-
}]
|
|
1211
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1212
|
-
let IonImg = class IonImg {
|
|
1213
|
-
constructor(c, r, z) {
|
|
1214
|
-
this.z = z;
|
|
1215
|
-
c.detach();
|
|
1216
|
-
this.el = r.nativeElement;
|
|
1217
|
-
proxyOutputs(this, this.el, ['ionImgWillLoad', 'ionImgDidLoad', 'ionError']);
|
|
1218
|
-
}
|
|
1219
|
-
};
|
|
1220
|
-
/** @nocollapse */ IonImg.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonImg, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1221
|
-
/** @nocollapse */ IonImg.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonImg, isStandalone: true, selector: "ion-img", inputs: { alt: "alt", src: "src" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1222
|
-
IonImg = __decorate([
|
|
1223
|
-
ProxyCmp({
|
|
1224
|
-
defineCustomElementFn: defineIonImg,
|
|
1225
|
-
inputs: ['alt', 'src'],
|
|
1226
|
-
})
|
|
1227
|
-
], IonImg);
|
|
1228
|
-
export { IonImg };
|
|
1229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonImg, decorators: [{
|
|
1230
|
-
type: Component,
|
|
1231
|
-
args: [{
|
|
1232
|
-
selector: 'ion-img',
|
|
1233
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1234
|
-
template: '<ng-content></ng-content>',
|
|
1235
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1236
|
-
inputs: ['alt', 'src'],
|
|
1237
|
-
standalone: true,
|
|
1238
|
-
}]
|
|
1239
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1240
|
-
let IonInfiniteScroll = class IonInfiniteScroll {
|
|
1241
|
-
constructor(c, r, z) {
|
|
1242
|
-
this.z = z;
|
|
1243
|
-
c.detach();
|
|
1244
|
-
this.el = r.nativeElement;
|
|
1245
|
-
proxyOutputs(this, this.el, ['ionInfinite']);
|
|
1246
|
-
}
|
|
1247
|
-
};
|
|
1248
|
-
/** @nocollapse */ IonInfiniteScroll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonInfiniteScroll, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1249
|
-
/** @nocollapse */ IonInfiniteScroll.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonInfiniteScroll, isStandalone: true, selector: "ion-infinite-scroll", inputs: { disabled: "disabled", position: "position", threshold: "threshold" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1250
|
-
IonInfiniteScroll = __decorate([
|
|
1251
|
-
ProxyCmp({
|
|
1252
|
-
defineCustomElementFn: defineIonInfiniteScroll,
|
|
1253
|
-
inputs: ['disabled', 'position', 'threshold'],
|
|
1254
|
-
methods: ['complete'],
|
|
1255
|
-
})
|
|
1256
|
-
], IonInfiniteScroll);
|
|
1257
|
-
export { IonInfiniteScroll };
|
|
1258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonInfiniteScroll, decorators: [{
|
|
1259
|
-
type: Component,
|
|
1260
|
-
args: [{
|
|
1261
|
-
selector: 'ion-infinite-scroll',
|
|
1262
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1263
|
-
template: '<ng-content></ng-content>',
|
|
1264
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1265
|
-
inputs: ['disabled', 'position', 'threshold'],
|
|
1266
|
-
standalone: true,
|
|
1267
|
-
}]
|
|
1268
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1269
|
-
let IonInfiniteScrollContent = class IonInfiniteScrollContent {
|
|
1270
|
-
constructor(c, r, z) {
|
|
1271
|
-
this.z = z;
|
|
1272
|
-
c.detach();
|
|
1273
|
-
this.el = r.nativeElement;
|
|
1274
|
-
}
|
|
1275
|
-
};
|
|
1276
|
-
/** @nocollapse */ IonInfiniteScrollContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonInfiniteScrollContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1277
|
-
/** @nocollapse */ IonInfiniteScrollContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonInfiniteScrollContent, isStandalone: true, selector: "ion-infinite-scroll-content", inputs: { loadingSpinner: "loadingSpinner", loadingText: "loadingText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1278
|
-
IonInfiniteScrollContent = __decorate([
|
|
1279
|
-
ProxyCmp({
|
|
1280
|
-
defineCustomElementFn: defineIonInfiniteScrollContent,
|
|
1281
|
-
inputs: ['loadingSpinner', 'loadingText'],
|
|
1282
|
-
})
|
|
1283
|
-
], IonInfiniteScrollContent);
|
|
1284
|
-
export { IonInfiniteScrollContent };
|
|
1285
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonInfiniteScrollContent, decorators: [{
|
|
1286
|
-
type: Component,
|
|
1287
|
-
args: [{
|
|
1288
|
-
selector: 'ion-infinite-scroll-content',
|
|
1289
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1290
|
-
template: '<ng-content></ng-content>',
|
|
1291
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1292
|
-
inputs: ['loadingSpinner', 'loadingText'],
|
|
1293
|
-
standalone: true,
|
|
1294
|
-
}]
|
|
1295
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1296
|
-
let IonInput = class IonInput {
|
|
1297
|
-
constructor(c, r, z) {
|
|
1298
|
-
this.z = z;
|
|
1299
|
-
c.detach();
|
|
1300
|
-
this.el = r.nativeElement;
|
|
1301
|
-
proxyOutputs(this, this.el, ['ionInput', 'ionChange', 'ionBlur', 'ionFocus']);
|
|
1302
|
-
}
|
|
1303
|
-
};
|
|
1304
|
-
/** @nocollapse */ IonInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1305
|
-
/** @nocollapse */ IonInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonInput, isStandalone: true, selector: "ion-input", inputs: { accept: "accept", autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", clearInput: "clearInput", clearOnEdit: "clearOnEdit", color: "color", counter: "counter", counterFormatter: "counterFormatter", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", errorText: "errorText", fill: "fill", helperText: "helperText", inputmode: "inputmode", label: "label", labelPlacement: "labelPlacement", legacy: "legacy", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", mode: "mode", multiple: "multiple", name: "name", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", shape: "shape", size: "size", spellcheck: "spellcheck", step: "step", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1306
|
-
IonInput = __decorate([
|
|
1307
|
-
ProxyCmp({
|
|
1308
|
-
defineCustomElementFn: defineIonInput,
|
|
1309
|
-
inputs: [
|
|
1310
|
-
'accept',
|
|
1311
|
-
'autocapitalize',
|
|
1312
|
-
'autocomplete',
|
|
1313
|
-
'autocorrect',
|
|
1314
|
-
'autofocus',
|
|
1315
|
-
'clearInput',
|
|
1316
|
-
'clearOnEdit',
|
|
1317
|
-
'color',
|
|
1318
|
-
'counter',
|
|
1319
|
-
'counterFormatter',
|
|
1320
|
-
'debounce',
|
|
1321
|
-
'disabled',
|
|
1322
|
-
'enterkeyhint',
|
|
1323
|
-
'errorText',
|
|
1324
|
-
'fill',
|
|
1325
|
-
'helperText',
|
|
1326
|
-
'inputmode',
|
|
1327
|
-
'label',
|
|
1328
|
-
'labelPlacement',
|
|
1329
|
-
'legacy',
|
|
1330
|
-
'max',
|
|
1331
|
-
'maxlength',
|
|
1332
|
-
'min',
|
|
1333
|
-
'minlength',
|
|
1334
|
-
'mode',
|
|
1335
|
-
'multiple',
|
|
1336
|
-
'name',
|
|
1337
|
-
'pattern',
|
|
1338
|
-
'placeholder',
|
|
1339
|
-
'readonly',
|
|
1340
|
-
'required',
|
|
1341
|
-
'shape',
|
|
1342
|
-
'size',
|
|
1343
|
-
'spellcheck',
|
|
1344
|
-
'step',
|
|
1345
|
-
'type',
|
|
1346
|
-
'value',
|
|
1347
|
-
],
|
|
1348
|
-
methods: ['setFocus', 'getInputElement'],
|
|
1349
|
-
})
|
|
1350
|
-
], IonInput);
|
|
1351
|
-
export { IonInput };
|
|
1352
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonInput, decorators: [{
|
|
1353
|
-
type: Component,
|
|
1354
|
-
args: [{
|
|
1355
|
-
selector: 'ion-input',
|
|
1356
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1357
|
-
template: '<ng-content></ng-content>',
|
|
1358
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1359
|
-
inputs: [
|
|
1360
|
-
'accept',
|
|
1361
|
-
'autocapitalize',
|
|
1362
|
-
'autocomplete',
|
|
1363
|
-
'autocorrect',
|
|
1364
|
-
'autofocus',
|
|
1365
|
-
'clearInput',
|
|
1366
|
-
'clearOnEdit',
|
|
1367
|
-
'color',
|
|
1368
|
-
'counter',
|
|
1369
|
-
'counterFormatter',
|
|
1370
|
-
'debounce',
|
|
1371
|
-
'disabled',
|
|
1372
|
-
'enterkeyhint',
|
|
1373
|
-
'errorText',
|
|
1374
|
-
'fill',
|
|
1375
|
-
'helperText',
|
|
1376
|
-
'inputmode',
|
|
1377
|
-
'label',
|
|
1378
|
-
'labelPlacement',
|
|
1379
|
-
'legacy',
|
|
1380
|
-
'max',
|
|
1381
|
-
'maxlength',
|
|
1382
|
-
'min',
|
|
1383
|
-
'minlength',
|
|
1384
|
-
'mode',
|
|
1385
|
-
'multiple',
|
|
1386
|
-
'name',
|
|
1387
|
-
'pattern',
|
|
1388
|
-
'placeholder',
|
|
1389
|
-
'readonly',
|
|
1390
|
-
'required',
|
|
1391
|
-
'shape',
|
|
1392
|
-
'size',
|
|
1393
|
-
'spellcheck',
|
|
1394
|
-
'step',
|
|
1395
|
-
'type',
|
|
1396
|
-
'value',
|
|
1397
|
-
],
|
|
1398
|
-
standalone: true,
|
|
1399
|
-
}]
|
|
1400
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1401
|
-
let IonItem = class IonItem {
|
|
1402
|
-
constructor(c, r, z) {
|
|
1403
|
-
this.z = z;
|
|
1404
|
-
c.detach();
|
|
1405
|
-
this.el = r.nativeElement;
|
|
1406
|
-
}
|
|
1407
|
-
};
|
|
1408
|
-
/** @nocollapse */ IonItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1409
|
-
/** @nocollapse */ IonItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonItem, isStandalone: true, selector: "ion-item", inputs: { button: "button", color: "color", counter: "counter", counterFormatter: "counterFormatter", detail: "detail", detailIcon: "detailIcon", disabled: "disabled", download: "download", fill: "fill", href: "href", lines: "lines", mode: "mode", rel: "rel", routerAnimation: "routerAnimation", routerDirection: "routerDirection", shape: "shape", target: "target", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1410
|
-
IonItem = __decorate([
|
|
1411
|
-
ProxyCmp({
|
|
1412
|
-
defineCustomElementFn: defineIonItem,
|
|
1413
|
-
inputs: [
|
|
1414
|
-
'button',
|
|
1415
|
-
'color',
|
|
1416
|
-
'counter',
|
|
1417
|
-
'counterFormatter',
|
|
1418
|
-
'detail',
|
|
1419
|
-
'detailIcon',
|
|
1420
|
-
'disabled',
|
|
1421
|
-
'download',
|
|
1422
|
-
'fill',
|
|
1423
|
-
'href',
|
|
1424
|
-
'lines',
|
|
1425
|
-
'mode',
|
|
1426
|
-
'rel',
|
|
1427
|
-
'routerAnimation',
|
|
1428
|
-
'routerDirection',
|
|
1429
|
-
'shape',
|
|
1430
|
-
'target',
|
|
1431
|
-
'type',
|
|
1432
|
-
],
|
|
1433
|
-
})
|
|
1434
|
-
], IonItem);
|
|
1435
|
-
export { IonItem };
|
|
1436
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItem, decorators: [{
|
|
1437
|
-
type: Component,
|
|
1438
|
-
args: [{
|
|
1439
|
-
selector: 'ion-item',
|
|
1440
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1441
|
-
template: '<ng-content></ng-content>',
|
|
1442
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1443
|
-
inputs: [
|
|
1444
|
-
'button',
|
|
1445
|
-
'color',
|
|
1446
|
-
'counter',
|
|
1447
|
-
'counterFormatter',
|
|
1448
|
-
'detail',
|
|
1449
|
-
'detailIcon',
|
|
1450
|
-
'disabled',
|
|
1451
|
-
'download',
|
|
1452
|
-
'fill',
|
|
1453
|
-
'href',
|
|
1454
|
-
'lines',
|
|
1455
|
-
'mode',
|
|
1456
|
-
'rel',
|
|
1457
|
-
'routerAnimation',
|
|
1458
|
-
'routerDirection',
|
|
1459
|
-
'shape',
|
|
1460
|
-
'target',
|
|
1461
|
-
'type',
|
|
1462
|
-
],
|
|
1463
|
-
standalone: true,
|
|
1464
|
-
}]
|
|
1465
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1466
|
-
let IonItemDivider = class IonItemDivider {
|
|
1467
|
-
constructor(c, r, z) {
|
|
1468
|
-
this.z = z;
|
|
1469
|
-
c.detach();
|
|
1470
|
-
this.el = r.nativeElement;
|
|
1471
|
-
}
|
|
1472
|
-
};
|
|
1473
|
-
/** @nocollapse */ IonItemDivider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1474
|
-
/** @nocollapse */ IonItemDivider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonItemDivider, isStandalone: true, selector: "ion-item-divider", inputs: { color: "color", mode: "mode", sticky: "sticky" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1475
|
-
IonItemDivider = __decorate([
|
|
1476
|
-
ProxyCmp({
|
|
1477
|
-
defineCustomElementFn: defineIonItemDivider,
|
|
1478
|
-
inputs: ['color', 'mode', 'sticky'],
|
|
1479
|
-
})
|
|
1480
|
-
], IonItemDivider);
|
|
1481
|
-
export { IonItemDivider };
|
|
1482
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemDivider, decorators: [{
|
|
1483
|
-
type: Component,
|
|
1484
|
-
args: [{
|
|
1485
|
-
selector: 'ion-item-divider',
|
|
1486
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1487
|
-
template: '<ng-content></ng-content>',
|
|
1488
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1489
|
-
inputs: ['color', 'mode', 'sticky'],
|
|
1490
|
-
standalone: true,
|
|
1491
|
-
}]
|
|
1492
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1493
|
-
let IonItemGroup = class IonItemGroup {
|
|
1494
|
-
constructor(c, r, z) {
|
|
1495
|
-
this.z = z;
|
|
1496
|
-
c.detach();
|
|
1497
|
-
this.el = r.nativeElement;
|
|
1498
|
-
}
|
|
1499
|
-
};
|
|
1500
|
-
/** @nocollapse */ IonItemGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1501
|
-
/** @nocollapse */ IonItemGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonItemGroup, isStandalone: true, selector: "ion-item-group", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1502
|
-
IonItemGroup = __decorate([
|
|
1503
|
-
ProxyCmp({
|
|
1504
|
-
defineCustomElementFn: defineIonItemGroup,
|
|
1505
|
-
})
|
|
1506
|
-
], IonItemGroup);
|
|
1507
|
-
export { IonItemGroup };
|
|
1508
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemGroup, decorators: [{
|
|
1509
|
-
type: Component,
|
|
1510
|
-
args: [{
|
|
1511
|
-
selector: 'ion-item-group',
|
|
1512
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1513
|
-
template: '<ng-content></ng-content>',
|
|
1514
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1515
|
-
inputs: [],
|
|
1516
|
-
standalone: true,
|
|
1517
|
-
}]
|
|
1518
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1519
|
-
let IonItemOption = class IonItemOption {
|
|
1520
|
-
constructor(c, r, z) {
|
|
1521
|
-
this.z = z;
|
|
1522
|
-
c.detach();
|
|
1523
|
-
this.el = r.nativeElement;
|
|
1524
|
-
}
|
|
1525
|
-
};
|
|
1526
|
-
/** @nocollapse */ IonItemOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1527
|
-
/** @nocollapse */ IonItemOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonItemOption, isStandalone: true, selector: "ion-item-option", inputs: { color: "color", disabled: "disabled", download: "download", expandable: "expandable", href: "href", mode: "mode", rel: "rel", target: "target", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1528
|
-
IonItemOption = __decorate([
|
|
1529
|
-
ProxyCmp({
|
|
1530
|
-
defineCustomElementFn: defineIonItemOption,
|
|
1531
|
-
inputs: ['color', 'disabled', 'download', 'expandable', 'href', 'mode', 'rel', 'target', 'type'],
|
|
1532
|
-
})
|
|
1533
|
-
], IonItemOption);
|
|
1534
|
-
export { IonItemOption };
|
|
1535
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemOption, decorators: [{
|
|
1536
|
-
type: Component,
|
|
1537
|
-
args: [{
|
|
1538
|
-
selector: 'ion-item-option',
|
|
1539
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1540
|
-
template: '<ng-content></ng-content>',
|
|
1541
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1542
|
-
inputs: ['color', 'disabled', 'download', 'expandable', 'href', 'mode', 'rel', 'target', 'type'],
|
|
1543
|
-
standalone: true,
|
|
1544
|
-
}]
|
|
1545
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1546
|
-
let IonItemOptions = class IonItemOptions {
|
|
1547
|
-
constructor(c, r, z) {
|
|
1548
|
-
this.z = z;
|
|
1549
|
-
c.detach();
|
|
1550
|
-
this.el = r.nativeElement;
|
|
1551
|
-
proxyOutputs(this, this.el, ['ionSwipe']);
|
|
1552
|
-
}
|
|
1553
|
-
};
|
|
1554
|
-
/** @nocollapse */ IonItemOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemOptions, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1555
|
-
/** @nocollapse */ IonItemOptions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonItemOptions, isStandalone: true, selector: "ion-item-options", inputs: { side: "side" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1556
|
-
IonItemOptions = __decorate([
|
|
1557
|
-
ProxyCmp({
|
|
1558
|
-
defineCustomElementFn: defineIonItemOptions,
|
|
1559
|
-
inputs: ['side'],
|
|
1560
|
-
})
|
|
1561
|
-
], IonItemOptions);
|
|
1562
|
-
export { IonItemOptions };
|
|
1563
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemOptions, decorators: [{
|
|
1564
|
-
type: Component,
|
|
1565
|
-
args: [{
|
|
1566
|
-
selector: 'ion-item-options',
|
|
1567
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1568
|
-
template: '<ng-content></ng-content>',
|
|
1569
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1570
|
-
inputs: ['side'],
|
|
1571
|
-
standalone: true,
|
|
1572
|
-
}]
|
|
1573
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1574
|
-
let IonItemSliding = class IonItemSliding {
|
|
1575
|
-
constructor(c, r, z) {
|
|
1576
|
-
this.z = z;
|
|
1577
|
-
c.detach();
|
|
1578
|
-
this.el = r.nativeElement;
|
|
1579
|
-
proxyOutputs(this, this.el, ['ionDrag']);
|
|
1580
|
-
}
|
|
1581
|
-
};
|
|
1582
|
-
/** @nocollapse */ IonItemSliding.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemSliding, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1583
|
-
/** @nocollapse */ IonItemSliding.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonItemSliding, isStandalone: true, selector: "ion-item-sliding", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1584
|
-
IonItemSliding = __decorate([
|
|
1585
|
-
ProxyCmp({
|
|
1586
|
-
defineCustomElementFn: defineIonItemSliding,
|
|
1587
|
-
inputs: ['disabled'],
|
|
1588
|
-
methods: ['getOpenAmount', 'getSlidingRatio', 'open', 'close', 'closeOpened'],
|
|
1589
|
-
})
|
|
1590
|
-
], IonItemSliding);
|
|
1591
|
-
export { IonItemSliding };
|
|
1592
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonItemSliding, decorators: [{
|
|
1593
|
-
type: Component,
|
|
1594
|
-
args: [{
|
|
1595
|
-
selector: 'ion-item-sliding',
|
|
1596
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1597
|
-
template: '<ng-content></ng-content>',
|
|
1598
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1599
|
-
inputs: ['disabled'],
|
|
1600
|
-
standalone: true,
|
|
1601
|
-
}]
|
|
1602
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1603
|
-
let IonLabel = class IonLabel {
|
|
1604
|
-
constructor(c, r, z) {
|
|
1605
|
-
this.z = z;
|
|
1606
|
-
c.detach();
|
|
1607
|
-
this.el = r.nativeElement;
|
|
1608
|
-
}
|
|
1609
|
-
};
|
|
1610
|
-
/** @nocollapse */ IonLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1611
|
-
/** @nocollapse */ IonLabel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonLabel, isStandalone: true, selector: "ion-label", inputs: { color: "color", mode: "mode", position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1612
|
-
IonLabel = __decorate([
|
|
1613
|
-
ProxyCmp({
|
|
1614
|
-
defineCustomElementFn: defineIonLabel,
|
|
1615
|
-
inputs: ['color', 'mode', 'position'],
|
|
1616
|
-
})
|
|
1617
|
-
], IonLabel);
|
|
1618
|
-
export { IonLabel };
|
|
1619
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonLabel, decorators: [{
|
|
1620
|
-
type: Component,
|
|
1621
|
-
args: [{
|
|
1622
|
-
selector: 'ion-label',
|
|
1623
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1624
|
-
template: '<ng-content></ng-content>',
|
|
1625
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1626
|
-
inputs: ['color', 'mode', 'position'],
|
|
1627
|
-
standalone: true,
|
|
1628
|
-
}]
|
|
1629
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1630
|
-
let IonList = class IonList {
|
|
1631
|
-
constructor(c, r, z) {
|
|
1632
|
-
this.z = z;
|
|
1633
|
-
c.detach();
|
|
1634
|
-
this.el = r.nativeElement;
|
|
1635
|
-
}
|
|
1636
|
-
};
|
|
1637
|
-
/** @nocollapse */ IonList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1638
|
-
/** @nocollapse */ IonList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonList, isStandalone: true, selector: "ion-list", inputs: { inset: "inset", lines: "lines", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1639
|
-
IonList = __decorate([
|
|
1640
|
-
ProxyCmp({
|
|
1641
|
-
defineCustomElementFn: defineIonList,
|
|
1642
|
-
inputs: ['inset', 'lines', 'mode'],
|
|
1643
|
-
methods: ['closeSlidingItems'],
|
|
1644
|
-
})
|
|
1645
|
-
], IonList);
|
|
1646
|
-
export { IonList };
|
|
1647
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonList, decorators: [{
|
|
1648
|
-
type: Component,
|
|
1649
|
-
args: [{
|
|
1650
|
-
selector: 'ion-list',
|
|
1651
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1652
|
-
template: '<ng-content></ng-content>',
|
|
1653
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1654
|
-
inputs: ['inset', 'lines', 'mode'],
|
|
1655
|
-
standalone: true,
|
|
1656
|
-
}]
|
|
1657
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1658
|
-
let IonListHeader = class IonListHeader {
|
|
1659
|
-
constructor(c, r, z) {
|
|
1660
|
-
this.z = z;
|
|
1661
|
-
c.detach();
|
|
1662
|
-
this.el = r.nativeElement;
|
|
1663
|
-
}
|
|
1664
|
-
};
|
|
1665
|
-
/** @nocollapse */ IonListHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonListHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1666
|
-
/** @nocollapse */ IonListHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonListHeader, isStandalone: true, selector: "ion-list-header", inputs: { color: "color", lines: "lines", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1667
|
-
IonListHeader = __decorate([
|
|
1668
|
-
ProxyCmp({
|
|
1669
|
-
defineCustomElementFn: defineIonListHeader,
|
|
1670
|
-
inputs: ['color', 'lines', 'mode'],
|
|
1671
|
-
})
|
|
1672
|
-
], IonListHeader);
|
|
1673
|
-
export { IonListHeader };
|
|
1674
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonListHeader, decorators: [{
|
|
1675
|
-
type: Component,
|
|
1676
|
-
args: [{
|
|
1677
|
-
selector: 'ion-list-header',
|
|
1678
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1679
|
-
template: '<ng-content></ng-content>',
|
|
1680
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1681
|
-
inputs: ['color', 'lines', 'mode'],
|
|
1682
|
-
standalone: true,
|
|
1683
|
-
}]
|
|
1684
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1685
|
-
let IonLoading = class IonLoading {
|
|
1686
|
-
constructor(c, r, z) {
|
|
1687
|
-
this.z = z;
|
|
1688
|
-
c.detach();
|
|
1689
|
-
this.el = r.nativeElement;
|
|
1690
|
-
proxyOutputs(this, this.el, [
|
|
1691
|
-
'ionLoadingDidPresent',
|
|
1692
|
-
'ionLoadingWillPresent',
|
|
1693
|
-
'ionLoadingWillDismiss',
|
|
1694
|
-
'ionLoadingDidDismiss',
|
|
1695
|
-
'didPresent',
|
|
1696
|
-
'willPresent',
|
|
1697
|
-
'willDismiss',
|
|
1698
|
-
'didDismiss',
|
|
1699
|
-
]);
|
|
1700
|
-
}
|
|
1701
|
-
};
|
|
1702
|
-
/** @nocollapse */ IonLoading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonLoading, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1703
|
-
/** @nocollapse */ IonLoading.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonLoading, isStandalone: true, selector: "ion-loading", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", cssClass: "cssClass", duration: "duration", enterAnimation: "enterAnimation", htmlAttributes: "htmlAttributes", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", message: "message", mode: "mode", showBackdrop: "showBackdrop", spinner: "spinner", translucent: "translucent", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1704
|
-
IonLoading = __decorate([
|
|
1705
|
-
ProxyCmp({
|
|
1706
|
-
defineCustomElementFn: defineIonLoading,
|
|
1707
|
-
inputs: [
|
|
1708
|
-
'animated',
|
|
1709
|
-
'backdropDismiss',
|
|
1710
|
-
'cssClass',
|
|
1711
|
-
'duration',
|
|
1712
|
-
'enterAnimation',
|
|
1713
|
-
'htmlAttributes',
|
|
1714
|
-
'isOpen',
|
|
1715
|
-
'keyboardClose',
|
|
1716
|
-
'leaveAnimation',
|
|
1717
|
-
'message',
|
|
1718
|
-
'mode',
|
|
1719
|
-
'showBackdrop',
|
|
1720
|
-
'spinner',
|
|
1721
|
-
'translucent',
|
|
1722
|
-
'trigger',
|
|
1723
|
-
],
|
|
1724
|
-
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss'],
|
|
1725
|
-
})
|
|
1726
|
-
], IonLoading);
|
|
1727
|
-
export { IonLoading };
|
|
1728
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonLoading, decorators: [{
|
|
1729
|
-
type: Component,
|
|
1730
|
-
args: [{
|
|
1731
|
-
selector: 'ion-loading',
|
|
1732
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1733
|
-
template: '<ng-content></ng-content>',
|
|
1734
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1735
|
-
inputs: [
|
|
1736
|
-
'animated',
|
|
1737
|
-
'backdropDismiss',
|
|
1738
|
-
'cssClass',
|
|
1739
|
-
'duration',
|
|
1740
|
-
'enterAnimation',
|
|
1741
|
-
'htmlAttributes',
|
|
1742
|
-
'isOpen',
|
|
1743
|
-
'keyboardClose',
|
|
1744
|
-
'leaveAnimation',
|
|
1745
|
-
'message',
|
|
1746
|
-
'mode',
|
|
1747
|
-
'showBackdrop',
|
|
1748
|
-
'spinner',
|
|
1749
|
-
'translucent',
|
|
1750
|
-
'trigger',
|
|
1751
|
-
],
|
|
1752
|
-
standalone: true,
|
|
1753
|
-
}]
|
|
1754
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1755
|
-
let IonMenu = class IonMenu {
|
|
1756
|
-
constructor(c, r, z) {
|
|
1757
|
-
this.z = z;
|
|
1758
|
-
c.detach();
|
|
1759
|
-
this.el = r.nativeElement;
|
|
1760
|
-
proxyOutputs(this, this.el, ['ionWillOpen', 'ionWillClose', 'ionDidOpen', 'ionDidClose']);
|
|
1761
|
-
}
|
|
1762
|
-
};
|
|
1763
|
-
/** @nocollapse */ IonMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1764
|
-
/** @nocollapse */ IonMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonMenu, isStandalone: true, selector: "ion-menu", inputs: { contentId: "contentId", disabled: "disabled", maxEdgeStart: "maxEdgeStart", menuId: "menuId", side: "side", swipeGesture: "swipeGesture", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1765
|
-
IonMenu = __decorate([
|
|
1766
|
-
ProxyCmp({
|
|
1767
|
-
defineCustomElementFn: defineIonMenu,
|
|
1768
|
-
inputs: ['contentId', 'disabled', 'maxEdgeStart', 'menuId', 'side', 'swipeGesture', 'type'],
|
|
1769
|
-
methods: ['isOpen', 'isActive', 'open', 'close', 'toggle', 'setOpen'],
|
|
1770
|
-
})
|
|
1771
|
-
], IonMenu);
|
|
1772
|
-
export { IonMenu };
|
|
1773
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonMenu, decorators: [{
|
|
1774
|
-
type: Component,
|
|
1775
|
-
args: [{
|
|
1776
|
-
selector: 'ion-menu',
|
|
1777
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1778
|
-
template: '<ng-content></ng-content>',
|
|
1779
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1780
|
-
inputs: ['contentId', 'disabled', 'maxEdgeStart', 'menuId', 'side', 'swipeGesture', 'type'],
|
|
1781
|
-
standalone: true,
|
|
1782
|
-
}]
|
|
1783
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1784
|
-
let IonMenuButton = class IonMenuButton {
|
|
1785
|
-
constructor(c, r, z) {
|
|
1786
|
-
this.z = z;
|
|
1787
|
-
c.detach();
|
|
1788
|
-
this.el = r.nativeElement;
|
|
1789
|
-
}
|
|
1790
|
-
};
|
|
1791
|
-
/** @nocollapse */ IonMenuButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonMenuButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1792
|
-
/** @nocollapse */ IonMenuButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonMenuButton, isStandalone: true, selector: "ion-menu-button", inputs: { autoHide: "autoHide", color: "color", disabled: "disabled", menu: "menu", mode: "mode", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1793
|
-
IonMenuButton = __decorate([
|
|
1794
|
-
ProxyCmp({
|
|
1795
|
-
defineCustomElementFn: defineIonMenuButton,
|
|
1796
|
-
inputs: ['autoHide', 'color', 'disabled', 'menu', 'mode', 'type'],
|
|
1797
|
-
})
|
|
1798
|
-
], IonMenuButton);
|
|
1799
|
-
export { IonMenuButton };
|
|
1800
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonMenuButton, decorators: [{
|
|
1801
|
-
type: Component,
|
|
1802
|
-
args: [{
|
|
1803
|
-
selector: 'ion-menu-button',
|
|
1804
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1805
|
-
template: '<ng-content></ng-content>',
|
|
1806
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1807
|
-
inputs: ['autoHide', 'color', 'disabled', 'menu', 'mode', 'type'],
|
|
1808
|
-
standalone: true,
|
|
1809
|
-
}]
|
|
1810
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1811
|
-
let IonMenuToggle = class IonMenuToggle {
|
|
1812
|
-
constructor(c, r, z) {
|
|
1813
|
-
this.z = z;
|
|
1814
|
-
c.detach();
|
|
1815
|
-
this.el = r.nativeElement;
|
|
1816
|
-
}
|
|
1817
|
-
};
|
|
1818
|
-
/** @nocollapse */ IonMenuToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonMenuToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1819
|
-
/** @nocollapse */ IonMenuToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonMenuToggle, isStandalone: true, selector: "ion-menu-toggle", inputs: { autoHide: "autoHide", menu: "menu" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1820
|
-
IonMenuToggle = __decorate([
|
|
1821
|
-
ProxyCmp({
|
|
1822
|
-
defineCustomElementFn: defineIonMenuToggle,
|
|
1823
|
-
inputs: ['autoHide', 'menu'],
|
|
1824
|
-
})
|
|
1825
|
-
], IonMenuToggle);
|
|
1826
|
-
export { IonMenuToggle };
|
|
1827
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonMenuToggle, decorators: [{
|
|
1828
|
-
type: Component,
|
|
1829
|
-
args: [{
|
|
1830
|
-
selector: 'ion-menu-toggle',
|
|
1831
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1832
|
-
template: '<ng-content></ng-content>',
|
|
1833
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1834
|
-
inputs: ['autoHide', 'menu'],
|
|
1835
|
-
standalone: true,
|
|
1836
|
-
}]
|
|
1837
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1838
|
-
let IonNavLink = class IonNavLink {
|
|
1839
|
-
constructor(c, r, z) {
|
|
1840
|
-
this.z = z;
|
|
1841
|
-
c.detach();
|
|
1842
|
-
this.el = r.nativeElement;
|
|
1843
|
-
}
|
|
1844
|
-
};
|
|
1845
|
-
/** @nocollapse */ IonNavLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonNavLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1846
|
-
/** @nocollapse */ IonNavLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonNavLink, isStandalone: true, selector: "ion-nav-link", inputs: { component: "component", componentProps: "componentProps", routerAnimation: "routerAnimation", routerDirection: "routerDirection" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1847
|
-
IonNavLink = __decorate([
|
|
1848
|
-
ProxyCmp({
|
|
1849
|
-
defineCustomElementFn: defineIonNavLink,
|
|
1850
|
-
inputs: ['component', 'componentProps', 'routerAnimation', 'routerDirection'],
|
|
1851
|
-
})
|
|
1852
|
-
], IonNavLink);
|
|
1853
|
-
export { IonNavLink };
|
|
1854
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonNavLink, decorators: [{
|
|
1855
|
-
type: Component,
|
|
1856
|
-
args: [{
|
|
1857
|
-
selector: 'ion-nav-link',
|
|
1858
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1859
|
-
template: '<ng-content></ng-content>',
|
|
1860
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1861
|
-
inputs: ['component', 'componentProps', 'routerAnimation', 'routerDirection'],
|
|
1862
|
-
standalone: true,
|
|
1863
|
-
}]
|
|
1864
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1865
|
-
let IonNote = class IonNote {
|
|
1866
|
-
constructor(c, r, z) {
|
|
1867
|
-
this.z = z;
|
|
1868
|
-
c.detach();
|
|
1869
|
-
this.el = r.nativeElement;
|
|
1870
|
-
}
|
|
1871
|
-
};
|
|
1872
|
-
/** @nocollapse */ IonNote.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonNote, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1873
|
-
/** @nocollapse */ IonNote.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonNote, isStandalone: true, selector: "ion-note", inputs: { color: "color", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1874
|
-
IonNote = __decorate([
|
|
1875
|
-
ProxyCmp({
|
|
1876
|
-
defineCustomElementFn: defineIonNote,
|
|
1877
|
-
inputs: ['color', 'mode'],
|
|
1878
|
-
})
|
|
1879
|
-
], IonNote);
|
|
1880
|
-
export { IonNote };
|
|
1881
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonNote, decorators: [{
|
|
1882
|
-
type: Component,
|
|
1883
|
-
args: [{
|
|
1884
|
-
selector: 'ion-note',
|
|
1885
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1886
|
-
template: '<ng-content></ng-content>',
|
|
1887
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1888
|
-
inputs: ['color', 'mode'],
|
|
1889
|
-
standalone: true,
|
|
1890
|
-
}]
|
|
1891
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1892
|
-
let IonPicker = class IonPicker {
|
|
1893
|
-
constructor(c, r, z) {
|
|
1894
|
-
this.z = z;
|
|
1895
|
-
c.detach();
|
|
1896
|
-
this.el = r.nativeElement;
|
|
1897
|
-
proxyOutputs(this, this.el, [
|
|
1898
|
-
'ionPickerDidPresent',
|
|
1899
|
-
'ionPickerWillPresent',
|
|
1900
|
-
'ionPickerWillDismiss',
|
|
1901
|
-
'ionPickerDidDismiss',
|
|
1902
|
-
'didPresent',
|
|
1903
|
-
'willPresent',
|
|
1904
|
-
'willDismiss',
|
|
1905
|
-
'didDismiss',
|
|
1906
|
-
]);
|
|
1907
|
-
}
|
|
1908
|
-
};
|
|
1909
|
-
/** @nocollapse */ IonPicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonPicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1910
|
-
/** @nocollapse */ IonPicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonPicker, isStandalone: true, selector: "ion-picker", inputs: { animated: "animated", backdropDismiss: "backdropDismiss", buttons: "buttons", columns: "columns", cssClass: "cssClass", duration: "duration", enterAnimation: "enterAnimation", htmlAttributes: "htmlAttributes", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", showBackdrop: "showBackdrop", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1911
|
-
IonPicker = __decorate([
|
|
1912
|
-
ProxyCmp({
|
|
1913
|
-
defineCustomElementFn: defineIonPicker,
|
|
1914
|
-
inputs: [
|
|
1915
|
-
'animated',
|
|
1916
|
-
'backdropDismiss',
|
|
1917
|
-
'buttons',
|
|
1918
|
-
'columns',
|
|
1919
|
-
'cssClass',
|
|
1920
|
-
'duration',
|
|
1921
|
-
'enterAnimation',
|
|
1922
|
-
'htmlAttributes',
|
|
1923
|
-
'isOpen',
|
|
1924
|
-
'keyboardClose',
|
|
1925
|
-
'leaveAnimation',
|
|
1926
|
-
'mode',
|
|
1927
|
-
'showBackdrop',
|
|
1928
|
-
'trigger',
|
|
1929
|
-
],
|
|
1930
|
-
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss', 'getColumn'],
|
|
1931
|
-
})
|
|
1932
|
-
], IonPicker);
|
|
1933
|
-
export { IonPicker };
|
|
1934
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonPicker, decorators: [{
|
|
1935
|
-
type: Component,
|
|
1936
|
-
args: [{
|
|
1937
|
-
selector: 'ion-picker',
|
|
1938
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1939
|
-
template: '<ng-content></ng-content>',
|
|
1940
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1941
|
-
inputs: [
|
|
1942
|
-
'animated',
|
|
1943
|
-
'backdropDismiss',
|
|
1944
|
-
'buttons',
|
|
1945
|
-
'columns',
|
|
1946
|
-
'cssClass',
|
|
1947
|
-
'duration',
|
|
1948
|
-
'enterAnimation',
|
|
1949
|
-
'htmlAttributes',
|
|
1950
|
-
'isOpen',
|
|
1951
|
-
'keyboardClose',
|
|
1952
|
-
'leaveAnimation',
|
|
1953
|
-
'mode',
|
|
1954
|
-
'showBackdrop',
|
|
1955
|
-
'trigger',
|
|
1956
|
-
],
|
|
1957
|
-
standalone: true,
|
|
1958
|
-
}]
|
|
1959
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1960
|
-
let IonProgressBar = class IonProgressBar {
|
|
1961
|
-
constructor(c, r, z) {
|
|
1962
|
-
this.z = z;
|
|
1963
|
-
c.detach();
|
|
1964
|
-
this.el = r.nativeElement;
|
|
1965
|
-
}
|
|
1966
|
-
};
|
|
1967
|
-
/** @nocollapse */ IonProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonProgressBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1968
|
-
/** @nocollapse */ IonProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonProgressBar, isStandalone: true, selector: "ion-progress-bar", inputs: { buffer: "buffer", color: "color", mode: "mode", reversed: "reversed", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1969
|
-
IonProgressBar = __decorate([
|
|
1970
|
-
ProxyCmp({
|
|
1971
|
-
defineCustomElementFn: defineIonProgressBar,
|
|
1972
|
-
inputs: ['buffer', 'color', 'mode', 'reversed', 'type', 'value'],
|
|
1973
|
-
})
|
|
1974
|
-
], IonProgressBar);
|
|
1975
|
-
export { IonProgressBar };
|
|
1976
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonProgressBar, decorators: [{
|
|
1977
|
-
type: Component,
|
|
1978
|
-
args: [{
|
|
1979
|
-
selector: 'ion-progress-bar',
|
|
1980
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1981
|
-
template: '<ng-content></ng-content>',
|
|
1982
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1983
|
-
inputs: ['buffer', 'color', 'mode', 'reversed', 'type', 'value'],
|
|
1984
|
-
standalone: true,
|
|
1985
|
-
}]
|
|
1986
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1987
|
-
let IonRadio = class IonRadio {
|
|
1988
|
-
constructor(c, r, z) {
|
|
1989
|
-
this.z = z;
|
|
1990
|
-
c.detach();
|
|
1991
|
-
this.el = r.nativeElement;
|
|
1992
|
-
proxyOutputs(this, this.el, ['ionFocus', 'ionBlur']);
|
|
1993
|
-
}
|
|
1994
|
-
};
|
|
1995
|
-
/** @nocollapse */ IonRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1996
|
-
/** @nocollapse */ IonRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonRadio, isStandalone: true, selector: "ion-radio", inputs: { color: "color", disabled: "disabled", justify: "justify", labelPlacement: "labelPlacement", legacy: "legacy", mode: "mode", name: "name", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1997
|
-
IonRadio = __decorate([
|
|
1998
|
-
ProxyCmp({
|
|
1999
|
-
defineCustomElementFn: defineIonRadio,
|
|
2000
|
-
inputs: ['color', 'disabled', 'justify', 'labelPlacement', 'legacy', 'mode', 'name', 'value'],
|
|
2001
|
-
})
|
|
2002
|
-
], IonRadio);
|
|
2003
|
-
export { IonRadio };
|
|
2004
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRadio, decorators: [{
|
|
2005
|
-
type: Component,
|
|
2006
|
-
args: [{
|
|
2007
|
-
selector: 'ion-radio',
|
|
2008
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2009
|
-
template: '<ng-content></ng-content>',
|
|
2010
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2011
|
-
inputs: ['color', 'disabled', 'justify', 'labelPlacement', 'legacy', 'mode', 'name', 'value'],
|
|
2012
|
-
standalone: true,
|
|
2013
|
-
}]
|
|
2014
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2015
|
-
let IonRadioGroup = class IonRadioGroup {
|
|
2016
|
-
constructor(c, r, z) {
|
|
2017
|
-
this.z = z;
|
|
2018
|
-
c.detach();
|
|
2019
|
-
this.el = r.nativeElement;
|
|
2020
|
-
proxyOutputs(this, this.el, ['ionChange']);
|
|
2021
|
-
}
|
|
2022
|
-
};
|
|
2023
|
-
/** @nocollapse */ IonRadioGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRadioGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2024
|
-
/** @nocollapse */ IonRadioGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonRadioGroup, isStandalone: true, selector: "ion-radio-group", inputs: { allowEmptySelection: "allowEmptySelection", name: "name", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2025
|
-
IonRadioGroup = __decorate([
|
|
2026
|
-
ProxyCmp({
|
|
2027
|
-
defineCustomElementFn: defineIonRadioGroup,
|
|
2028
|
-
inputs: ['allowEmptySelection', 'name', 'value'],
|
|
2029
|
-
})
|
|
2030
|
-
], IonRadioGroup);
|
|
2031
|
-
export { IonRadioGroup };
|
|
2032
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRadioGroup, decorators: [{
|
|
2033
|
-
type: Component,
|
|
2034
|
-
args: [{
|
|
2035
|
-
selector: 'ion-radio-group',
|
|
2036
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2037
|
-
template: '<ng-content></ng-content>',
|
|
2038
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2039
|
-
inputs: ['allowEmptySelection', 'name', 'value'],
|
|
2040
|
-
standalone: true,
|
|
2041
|
-
}]
|
|
2042
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2043
|
-
let IonRange = class IonRange {
|
|
2044
|
-
constructor(c, r, z) {
|
|
2045
|
-
this.z = z;
|
|
2046
|
-
c.detach();
|
|
2047
|
-
this.el = r.nativeElement;
|
|
2048
|
-
proxyOutputs(this, this.el, ['ionChange', 'ionInput', 'ionFocus', 'ionBlur', 'ionKnobMoveStart', 'ionKnobMoveEnd']);
|
|
2049
|
-
}
|
|
2050
|
-
};
|
|
2051
|
-
/** @nocollapse */ IonRange.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRange, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2052
|
-
/** @nocollapse */ IonRange.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonRange, isStandalone: true, selector: "ion-range", inputs: { activeBarStart: "activeBarStart", color: "color", debounce: "debounce", disabled: "disabled", dualKnobs: "dualKnobs", label: "label", labelPlacement: "labelPlacement", legacy: "legacy", max: "max", min: "min", mode: "mode", name: "name", pin: "pin", pinFormatter: "pinFormatter", snaps: "snaps", step: "step", ticks: "ticks", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2053
|
-
IonRange = __decorate([
|
|
2054
|
-
ProxyCmp({
|
|
2055
|
-
defineCustomElementFn: defineIonRange,
|
|
2056
|
-
inputs: [
|
|
2057
|
-
'activeBarStart',
|
|
2058
|
-
'color',
|
|
2059
|
-
'debounce',
|
|
2060
|
-
'disabled',
|
|
2061
|
-
'dualKnobs',
|
|
2062
|
-
'label',
|
|
2063
|
-
'labelPlacement',
|
|
2064
|
-
'legacy',
|
|
2065
|
-
'max',
|
|
2066
|
-
'min',
|
|
2067
|
-
'mode',
|
|
2068
|
-
'name',
|
|
2069
|
-
'pin',
|
|
2070
|
-
'pinFormatter',
|
|
2071
|
-
'snaps',
|
|
2072
|
-
'step',
|
|
2073
|
-
'ticks',
|
|
2074
|
-
'value',
|
|
2075
|
-
],
|
|
2076
|
-
})
|
|
2077
|
-
], IonRange);
|
|
2078
|
-
export { IonRange };
|
|
2079
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRange, decorators: [{
|
|
2080
|
-
type: Component,
|
|
2081
|
-
args: [{
|
|
2082
|
-
selector: 'ion-range',
|
|
2083
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2084
|
-
template: '<ng-content></ng-content>',
|
|
2085
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2086
|
-
inputs: [
|
|
2087
|
-
'activeBarStart',
|
|
2088
|
-
'color',
|
|
2089
|
-
'debounce',
|
|
2090
|
-
'disabled',
|
|
2091
|
-
'dualKnobs',
|
|
2092
|
-
'label',
|
|
2093
|
-
'labelPlacement',
|
|
2094
|
-
'legacy',
|
|
2095
|
-
'max',
|
|
2096
|
-
'min',
|
|
2097
|
-
'mode',
|
|
2098
|
-
'name',
|
|
2099
|
-
'pin',
|
|
2100
|
-
'pinFormatter',
|
|
2101
|
-
'snaps',
|
|
2102
|
-
'step',
|
|
2103
|
-
'ticks',
|
|
2104
|
-
'value',
|
|
2105
|
-
],
|
|
2106
|
-
standalone: true,
|
|
2107
|
-
}]
|
|
2108
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2109
|
-
let IonRefresher = class IonRefresher {
|
|
2110
|
-
constructor(c, r, z) {
|
|
2111
|
-
this.z = z;
|
|
2112
|
-
c.detach();
|
|
2113
|
-
this.el = r.nativeElement;
|
|
2114
|
-
proxyOutputs(this, this.el, ['ionRefresh', 'ionPull', 'ionStart']);
|
|
2115
|
-
}
|
|
2116
|
-
};
|
|
2117
|
-
/** @nocollapse */ IonRefresher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRefresher, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2118
|
-
/** @nocollapse */ IonRefresher.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonRefresher, isStandalone: true, selector: "ion-refresher", inputs: { closeDuration: "closeDuration", disabled: "disabled", pullFactor: "pullFactor", pullMax: "pullMax", pullMin: "pullMin", snapbackDuration: "snapbackDuration" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2119
|
-
IonRefresher = __decorate([
|
|
2120
|
-
ProxyCmp({
|
|
2121
|
-
defineCustomElementFn: defineIonRefresher,
|
|
2122
|
-
inputs: ['closeDuration', 'disabled', 'pullFactor', 'pullMax', 'pullMin', 'snapbackDuration'],
|
|
2123
|
-
methods: ['complete', 'cancel', 'getProgress'],
|
|
2124
|
-
})
|
|
2125
|
-
], IonRefresher);
|
|
2126
|
-
export { IonRefresher };
|
|
2127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRefresher, decorators: [{
|
|
2128
|
-
type: Component,
|
|
2129
|
-
args: [{
|
|
2130
|
-
selector: 'ion-refresher',
|
|
2131
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2132
|
-
template: '<ng-content></ng-content>',
|
|
2133
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2134
|
-
inputs: ['closeDuration', 'disabled', 'pullFactor', 'pullMax', 'pullMin', 'snapbackDuration'],
|
|
2135
|
-
standalone: true,
|
|
2136
|
-
}]
|
|
2137
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2138
|
-
let IonRefresherContent = class IonRefresherContent {
|
|
2139
|
-
constructor(c, r, z) {
|
|
2140
|
-
this.z = z;
|
|
2141
|
-
c.detach();
|
|
2142
|
-
this.el = r.nativeElement;
|
|
2143
|
-
}
|
|
2144
|
-
};
|
|
2145
|
-
/** @nocollapse */ IonRefresherContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRefresherContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2146
|
-
/** @nocollapse */ IonRefresherContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonRefresherContent, isStandalone: true, selector: "ion-refresher-content", inputs: { pullingIcon: "pullingIcon", pullingText: "pullingText", refreshingSpinner: "refreshingSpinner", refreshingText: "refreshingText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2147
|
-
IonRefresherContent = __decorate([
|
|
2148
|
-
ProxyCmp({
|
|
2149
|
-
defineCustomElementFn: defineIonRefresherContent,
|
|
2150
|
-
inputs: ['pullingIcon', 'pullingText', 'refreshingSpinner', 'refreshingText'],
|
|
2151
|
-
})
|
|
2152
|
-
], IonRefresherContent);
|
|
2153
|
-
export { IonRefresherContent };
|
|
2154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRefresherContent, decorators: [{
|
|
2155
|
-
type: Component,
|
|
2156
|
-
args: [{
|
|
2157
|
-
selector: 'ion-refresher-content',
|
|
2158
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2159
|
-
template: '<ng-content></ng-content>',
|
|
2160
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2161
|
-
inputs: ['pullingIcon', 'pullingText', 'refreshingSpinner', 'refreshingText'],
|
|
2162
|
-
standalone: true,
|
|
2163
|
-
}]
|
|
2164
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2165
|
-
let IonReorder = class IonReorder {
|
|
2166
|
-
constructor(c, r, z) {
|
|
2167
|
-
this.z = z;
|
|
2168
|
-
c.detach();
|
|
2169
|
-
this.el = r.nativeElement;
|
|
2170
|
-
}
|
|
2171
|
-
};
|
|
2172
|
-
/** @nocollapse */ IonReorder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonReorder, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2173
|
-
/** @nocollapse */ IonReorder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonReorder, isStandalone: true, selector: "ion-reorder", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2174
|
-
IonReorder = __decorate([
|
|
2175
|
-
ProxyCmp({
|
|
2176
|
-
defineCustomElementFn: defineIonReorder,
|
|
2177
|
-
})
|
|
2178
|
-
], IonReorder);
|
|
2179
|
-
export { IonReorder };
|
|
2180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonReorder, decorators: [{
|
|
2181
|
-
type: Component,
|
|
2182
|
-
args: [{
|
|
2183
|
-
selector: 'ion-reorder',
|
|
2184
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2185
|
-
template: '<ng-content></ng-content>',
|
|
2186
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2187
|
-
inputs: [],
|
|
2188
|
-
standalone: true,
|
|
2189
|
-
}]
|
|
2190
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2191
|
-
let IonReorderGroup = class IonReorderGroup {
|
|
2192
|
-
constructor(c, r, z) {
|
|
2193
|
-
this.z = z;
|
|
2194
|
-
c.detach();
|
|
2195
|
-
this.el = r.nativeElement;
|
|
2196
|
-
proxyOutputs(this, this.el, ['ionItemReorder']);
|
|
2197
|
-
}
|
|
2198
|
-
};
|
|
2199
|
-
/** @nocollapse */ IonReorderGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonReorderGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2200
|
-
/** @nocollapse */ IonReorderGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonReorderGroup, isStandalone: true, selector: "ion-reorder-group", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2201
|
-
IonReorderGroup = __decorate([
|
|
2202
|
-
ProxyCmp({
|
|
2203
|
-
defineCustomElementFn: defineIonReorderGroup,
|
|
2204
|
-
inputs: ['disabled'],
|
|
2205
|
-
methods: ['complete'],
|
|
2206
|
-
})
|
|
2207
|
-
], IonReorderGroup);
|
|
2208
|
-
export { IonReorderGroup };
|
|
2209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonReorderGroup, decorators: [{
|
|
2210
|
-
type: Component,
|
|
2211
|
-
args: [{
|
|
2212
|
-
selector: 'ion-reorder-group',
|
|
2213
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2214
|
-
template: '<ng-content></ng-content>',
|
|
2215
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2216
|
-
inputs: ['disabled'],
|
|
2217
|
-
standalone: true,
|
|
2218
|
-
}]
|
|
2219
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2220
|
-
let IonRippleEffect = class IonRippleEffect {
|
|
2221
|
-
constructor(c, r, z) {
|
|
2222
|
-
this.z = z;
|
|
2223
|
-
c.detach();
|
|
2224
|
-
this.el = r.nativeElement;
|
|
2225
|
-
}
|
|
2226
|
-
};
|
|
2227
|
-
/** @nocollapse */ IonRippleEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRippleEffect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2228
|
-
/** @nocollapse */ IonRippleEffect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonRippleEffect, isStandalone: true, selector: "ion-ripple-effect", inputs: { type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2229
|
-
IonRippleEffect = __decorate([
|
|
2230
|
-
ProxyCmp({
|
|
2231
|
-
defineCustomElementFn: defineIonRippleEffect,
|
|
2232
|
-
inputs: ['type'],
|
|
2233
|
-
methods: ['addRipple'],
|
|
2234
|
-
})
|
|
2235
|
-
], IonRippleEffect);
|
|
2236
|
-
export { IonRippleEffect };
|
|
2237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRippleEffect, decorators: [{
|
|
2238
|
-
type: Component,
|
|
2239
|
-
args: [{
|
|
2240
|
-
selector: 'ion-ripple-effect',
|
|
2241
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2242
|
-
template: '<ng-content></ng-content>',
|
|
2243
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2244
|
-
inputs: ['type'],
|
|
2245
|
-
standalone: true,
|
|
2246
|
-
}]
|
|
2247
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2248
|
-
let IonRow = class IonRow {
|
|
2249
|
-
constructor(c, r, z) {
|
|
2250
|
-
this.z = z;
|
|
2251
|
-
c.detach();
|
|
2252
|
-
this.el = r.nativeElement;
|
|
2253
|
-
}
|
|
2254
|
-
};
|
|
2255
|
-
/** @nocollapse */ IonRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2256
|
-
/** @nocollapse */ IonRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonRow, isStandalone: true, selector: "ion-row", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2257
|
-
IonRow = __decorate([
|
|
2258
|
-
ProxyCmp({
|
|
2259
|
-
defineCustomElementFn: defineIonRow,
|
|
2260
|
-
})
|
|
2261
|
-
], IonRow);
|
|
2262
|
-
export { IonRow };
|
|
2263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonRow, decorators: [{
|
|
2264
|
-
type: Component,
|
|
2265
|
-
args: [{
|
|
2266
|
-
selector: 'ion-row',
|
|
2267
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2268
|
-
template: '<ng-content></ng-content>',
|
|
2269
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2270
|
-
inputs: [],
|
|
2271
|
-
standalone: true,
|
|
2272
|
-
}]
|
|
2273
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2274
|
-
let IonSearchbar = class IonSearchbar {
|
|
2275
|
-
constructor(c, r, z) {
|
|
2276
|
-
this.z = z;
|
|
2277
|
-
c.detach();
|
|
2278
|
-
this.el = r.nativeElement;
|
|
2279
|
-
proxyOutputs(this, this.el, ['ionInput', 'ionChange', 'ionCancel', 'ionClear', 'ionBlur', 'ionFocus']);
|
|
2280
|
-
}
|
|
2281
|
-
};
|
|
2282
|
-
/** @nocollapse */ IonSearchbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSearchbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2283
|
-
/** @nocollapse */ IonSearchbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonSearchbar, isStandalone: true, selector: "ion-searchbar", inputs: { animated: "animated", autocomplete: "autocomplete", autocorrect: "autocorrect", cancelButtonIcon: "cancelButtonIcon", cancelButtonText: "cancelButtonText", clearIcon: "clearIcon", color: "color", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", inputmode: "inputmode", mode: "mode", name: "name", placeholder: "placeholder", searchIcon: "searchIcon", showCancelButton: "showCancelButton", showClearButton: "showClearButton", spellcheck: "spellcheck", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2284
|
-
IonSearchbar = __decorate([
|
|
2285
|
-
ProxyCmp({
|
|
2286
|
-
defineCustomElementFn: defineIonSearchbar,
|
|
2287
|
-
inputs: [
|
|
2288
|
-
'animated',
|
|
2289
|
-
'autocomplete',
|
|
2290
|
-
'autocorrect',
|
|
2291
|
-
'cancelButtonIcon',
|
|
2292
|
-
'cancelButtonText',
|
|
2293
|
-
'clearIcon',
|
|
2294
|
-
'color',
|
|
2295
|
-
'debounce',
|
|
2296
|
-
'disabled',
|
|
2297
|
-
'enterkeyhint',
|
|
2298
|
-
'inputmode',
|
|
2299
|
-
'mode',
|
|
2300
|
-
'name',
|
|
2301
|
-
'placeholder',
|
|
2302
|
-
'searchIcon',
|
|
2303
|
-
'showCancelButton',
|
|
2304
|
-
'showClearButton',
|
|
2305
|
-
'spellcheck',
|
|
2306
|
-
'type',
|
|
2307
|
-
'value',
|
|
2308
|
-
],
|
|
2309
|
-
methods: ['setFocus', 'getInputElement'],
|
|
2310
|
-
})
|
|
2311
|
-
], IonSearchbar);
|
|
2312
|
-
export { IonSearchbar };
|
|
2313
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSearchbar, decorators: [{
|
|
2314
|
-
type: Component,
|
|
2315
|
-
args: [{
|
|
2316
|
-
selector: 'ion-searchbar',
|
|
2317
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2318
|
-
template: '<ng-content></ng-content>',
|
|
2319
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2320
|
-
inputs: [
|
|
2321
|
-
'animated',
|
|
2322
|
-
'autocomplete',
|
|
2323
|
-
'autocorrect',
|
|
2324
|
-
'cancelButtonIcon',
|
|
2325
|
-
'cancelButtonText',
|
|
2326
|
-
'clearIcon',
|
|
2327
|
-
'color',
|
|
2328
|
-
'debounce',
|
|
2329
|
-
'disabled',
|
|
2330
|
-
'enterkeyhint',
|
|
2331
|
-
'inputmode',
|
|
2332
|
-
'mode',
|
|
2333
|
-
'name',
|
|
2334
|
-
'placeholder',
|
|
2335
|
-
'searchIcon',
|
|
2336
|
-
'showCancelButton',
|
|
2337
|
-
'showClearButton',
|
|
2338
|
-
'spellcheck',
|
|
2339
|
-
'type',
|
|
2340
|
-
'value',
|
|
2341
|
-
],
|
|
2342
|
-
standalone: true,
|
|
2343
|
-
}]
|
|
2344
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2345
|
-
let IonSegment = class IonSegment {
|
|
2346
|
-
constructor(c, r, z) {
|
|
2347
|
-
this.z = z;
|
|
2348
|
-
c.detach();
|
|
2349
|
-
this.el = r.nativeElement;
|
|
2350
|
-
proxyOutputs(this, this.el, ['ionChange']);
|
|
2351
|
-
}
|
|
2352
|
-
};
|
|
2353
|
-
/** @nocollapse */ IonSegment.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSegment, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2354
|
-
/** @nocollapse */ IonSegment.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonSegment, isStandalone: true, selector: "ion-segment", inputs: { color: "color", disabled: "disabled", mode: "mode", scrollable: "scrollable", selectOnFocus: "selectOnFocus", swipeGesture: "swipeGesture", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2355
|
-
IonSegment = __decorate([
|
|
2356
|
-
ProxyCmp({
|
|
2357
|
-
defineCustomElementFn: defineIonSegment,
|
|
2358
|
-
inputs: ['color', 'disabled', 'mode', 'scrollable', 'selectOnFocus', 'swipeGesture', 'value'],
|
|
2359
|
-
})
|
|
2360
|
-
], IonSegment);
|
|
2361
|
-
export { IonSegment };
|
|
2362
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSegment, decorators: [{
|
|
2363
|
-
type: Component,
|
|
2364
|
-
args: [{
|
|
2365
|
-
selector: 'ion-segment',
|
|
2366
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2367
|
-
template: '<ng-content></ng-content>',
|
|
2368
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2369
|
-
inputs: ['color', 'disabled', 'mode', 'scrollable', 'selectOnFocus', 'swipeGesture', 'value'],
|
|
2370
|
-
standalone: true,
|
|
2371
|
-
}]
|
|
2372
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2373
|
-
let IonSegmentButton = class IonSegmentButton {
|
|
2374
|
-
constructor(c, r, z) {
|
|
2375
|
-
this.z = z;
|
|
2376
|
-
c.detach();
|
|
2377
|
-
this.el = r.nativeElement;
|
|
2378
|
-
}
|
|
2379
|
-
};
|
|
2380
|
-
/** @nocollapse */ IonSegmentButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSegmentButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2381
|
-
/** @nocollapse */ IonSegmentButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonSegmentButton, isStandalone: true, selector: "ion-segment-button", inputs: { disabled: "disabled", layout: "layout", mode: "mode", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2382
|
-
IonSegmentButton = __decorate([
|
|
2383
|
-
ProxyCmp({
|
|
2384
|
-
defineCustomElementFn: defineIonSegmentButton,
|
|
2385
|
-
inputs: ['disabled', 'layout', 'mode', 'type', 'value'],
|
|
2386
|
-
})
|
|
2387
|
-
], IonSegmentButton);
|
|
2388
|
-
export { IonSegmentButton };
|
|
2389
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSegmentButton, decorators: [{
|
|
2390
|
-
type: Component,
|
|
2391
|
-
args: [{
|
|
2392
|
-
selector: 'ion-segment-button',
|
|
2393
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2394
|
-
template: '<ng-content></ng-content>',
|
|
2395
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2396
|
-
inputs: ['disabled', 'layout', 'mode', 'type', 'value'],
|
|
2397
|
-
standalone: true,
|
|
2398
|
-
}]
|
|
2399
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2400
|
-
let IonSelect = class IonSelect {
|
|
2401
|
-
constructor(c, r, z) {
|
|
2402
|
-
this.z = z;
|
|
2403
|
-
c.detach();
|
|
2404
|
-
this.el = r.nativeElement;
|
|
2405
|
-
proxyOutputs(this, this.el, ['ionChange', 'ionCancel', 'ionDismiss', 'ionFocus', 'ionBlur']);
|
|
2406
|
-
}
|
|
2407
|
-
};
|
|
2408
|
-
/** @nocollapse */ IonSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2409
|
-
/** @nocollapse */ IonSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonSelect, isStandalone: true, selector: "ion-select", inputs: { cancelText: "cancelText", color: "color", compareWith: "compareWith", disabled: "disabled", expandedIcon: "expandedIcon", fill: "fill", interface: "interface", interfaceOptions: "interfaceOptions", justify: "justify", label: "label", labelPlacement: "labelPlacement", legacy: "legacy", mode: "mode", multiple: "multiple", name: "name", okText: "okText", placeholder: "placeholder", selectedText: "selectedText", shape: "shape", toggleIcon: "toggleIcon", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2410
|
-
IonSelect = __decorate([
|
|
2411
|
-
ProxyCmp({
|
|
2412
|
-
defineCustomElementFn: defineIonSelect,
|
|
2413
|
-
inputs: [
|
|
2414
|
-
'cancelText',
|
|
2415
|
-
'color',
|
|
2416
|
-
'compareWith',
|
|
2417
|
-
'disabled',
|
|
2418
|
-
'expandedIcon',
|
|
2419
|
-
'fill',
|
|
2420
|
-
'interface',
|
|
2421
|
-
'interfaceOptions',
|
|
2422
|
-
'justify',
|
|
2423
|
-
'label',
|
|
2424
|
-
'labelPlacement',
|
|
2425
|
-
'legacy',
|
|
2426
|
-
'mode',
|
|
2427
|
-
'multiple',
|
|
2428
|
-
'name',
|
|
2429
|
-
'okText',
|
|
2430
|
-
'placeholder',
|
|
2431
|
-
'selectedText',
|
|
2432
|
-
'shape',
|
|
2433
|
-
'toggleIcon',
|
|
2434
|
-
'value',
|
|
2435
|
-
],
|
|
2436
|
-
methods: ['open'],
|
|
2437
|
-
})
|
|
2438
|
-
], IonSelect);
|
|
2439
|
-
export { IonSelect };
|
|
2440
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSelect, decorators: [{
|
|
2441
|
-
type: Component,
|
|
2442
|
-
args: [{
|
|
2443
|
-
selector: 'ion-select',
|
|
2444
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2445
|
-
template: '<ng-content></ng-content>',
|
|
2446
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2447
|
-
inputs: [
|
|
2448
|
-
'cancelText',
|
|
2449
|
-
'color',
|
|
2450
|
-
'compareWith',
|
|
2451
|
-
'disabled',
|
|
2452
|
-
'expandedIcon',
|
|
2453
|
-
'fill',
|
|
2454
|
-
'interface',
|
|
2455
|
-
'interfaceOptions',
|
|
2456
|
-
'justify',
|
|
2457
|
-
'label',
|
|
2458
|
-
'labelPlacement',
|
|
2459
|
-
'legacy',
|
|
2460
|
-
'mode',
|
|
2461
|
-
'multiple',
|
|
2462
|
-
'name',
|
|
2463
|
-
'okText',
|
|
2464
|
-
'placeholder',
|
|
2465
|
-
'selectedText',
|
|
2466
|
-
'shape',
|
|
2467
|
-
'toggleIcon',
|
|
2468
|
-
'value',
|
|
2469
|
-
],
|
|
2470
|
-
standalone: true,
|
|
2471
|
-
}]
|
|
2472
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2473
|
-
let IonSelectOption = class IonSelectOption {
|
|
2474
|
-
constructor(c, r, z) {
|
|
2475
|
-
this.z = z;
|
|
2476
|
-
c.detach();
|
|
2477
|
-
this.el = r.nativeElement;
|
|
2478
|
-
}
|
|
2479
|
-
};
|
|
2480
|
-
/** @nocollapse */ IonSelectOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSelectOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2481
|
-
/** @nocollapse */ IonSelectOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonSelectOption, isStandalone: true, selector: "ion-select-option", inputs: { disabled: "disabled", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2482
|
-
IonSelectOption = __decorate([
|
|
2483
|
-
ProxyCmp({
|
|
2484
|
-
defineCustomElementFn: defineIonSelectOption,
|
|
2485
|
-
inputs: ['disabled', 'value'],
|
|
2486
|
-
})
|
|
2487
|
-
], IonSelectOption);
|
|
2488
|
-
export { IonSelectOption };
|
|
2489
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSelectOption, decorators: [{
|
|
2490
|
-
type: Component,
|
|
2491
|
-
args: [{
|
|
2492
|
-
selector: 'ion-select-option',
|
|
2493
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2494
|
-
template: '<ng-content></ng-content>',
|
|
2495
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2496
|
-
inputs: ['disabled', 'value'],
|
|
2497
|
-
standalone: true,
|
|
2498
|
-
}]
|
|
2499
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2500
|
-
let IonSkeletonText = class IonSkeletonText {
|
|
2501
|
-
constructor(c, r, z) {
|
|
2502
|
-
this.z = z;
|
|
2503
|
-
c.detach();
|
|
2504
|
-
this.el = r.nativeElement;
|
|
2505
|
-
}
|
|
2506
|
-
};
|
|
2507
|
-
/** @nocollapse */ IonSkeletonText.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSkeletonText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2508
|
-
/** @nocollapse */ IonSkeletonText.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonSkeletonText, isStandalone: true, selector: "ion-skeleton-text", inputs: { animated: "animated" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2509
|
-
IonSkeletonText = __decorate([
|
|
2510
|
-
ProxyCmp({
|
|
2511
|
-
defineCustomElementFn: defineIonSkeletonText,
|
|
2512
|
-
inputs: ['animated'],
|
|
2513
|
-
})
|
|
2514
|
-
], IonSkeletonText);
|
|
2515
|
-
export { IonSkeletonText };
|
|
2516
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSkeletonText, decorators: [{
|
|
2517
|
-
type: Component,
|
|
2518
|
-
args: [{
|
|
2519
|
-
selector: 'ion-skeleton-text',
|
|
2520
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2521
|
-
template: '<ng-content></ng-content>',
|
|
2522
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2523
|
-
inputs: ['animated'],
|
|
2524
|
-
standalone: true,
|
|
2525
|
-
}]
|
|
2526
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2527
|
-
let IonSpinner = class IonSpinner {
|
|
2528
|
-
constructor(c, r, z) {
|
|
2529
|
-
this.z = z;
|
|
2530
|
-
c.detach();
|
|
2531
|
-
this.el = r.nativeElement;
|
|
2532
|
-
}
|
|
2533
|
-
};
|
|
2534
|
-
/** @nocollapse */ IonSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2535
|
-
/** @nocollapse */ IonSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonSpinner, isStandalone: true, selector: "ion-spinner", inputs: { color: "color", duration: "duration", name: "name", paused: "paused" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2536
|
-
IonSpinner = __decorate([
|
|
2537
|
-
ProxyCmp({
|
|
2538
|
-
defineCustomElementFn: defineIonSpinner,
|
|
2539
|
-
inputs: ['color', 'duration', 'name', 'paused'],
|
|
2540
|
-
})
|
|
2541
|
-
], IonSpinner);
|
|
2542
|
-
export { IonSpinner };
|
|
2543
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSpinner, decorators: [{
|
|
2544
|
-
type: Component,
|
|
2545
|
-
args: [{
|
|
2546
|
-
selector: 'ion-spinner',
|
|
2547
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2548
|
-
template: '<ng-content></ng-content>',
|
|
2549
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2550
|
-
inputs: ['color', 'duration', 'name', 'paused'],
|
|
2551
|
-
standalone: true,
|
|
2552
|
-
}]
|
|
2553
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2554
|
-
let IonSplitPane = class IonSplitPane {
|
|
2555
|
-
constructor(c, r, z) {
|
|
2556
|
-
this.z = z;
|
|
2557
|
-
c.detach();
|
|
2558
|
-
this.el = r.nativeElement;
|
|
2559
|
-
proxyOutputs(this, this.el, ['ionSplitPaneVisible']);
|
|
2560
|
-
}
|
|
2561
|
-
};
|
|
2562
|
-
/** @nocollapse */ IonSplitPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSplitPane, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2563
|
-
/** @nocollapse */ IonSplitPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonSplitPane, isStandalone: true, selector: "ion-split-pane", inputs: { contentId: "contentId", disabled: "disabled", when: "when" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2564
|
-
IonSplitPane = __decorate([
|
|
2565
|
-
ProxyCmp({
|
|
2566
|
-
defineCustomElementFn: defineIonSplitPane,
|
|
2567
|
-
inputs: ['contentId', 'disabled', 'when'],
|
|
2568
|
-
})
|
|
2569
|
-
], IonSplitPane);
|
|
2570
|
-
export { IonSplitPane };
|
|
2571
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonSplitPane, decorators: [{
|
|
2572
|
-
type: Component,
|
|
2573
|
-
args: [{
|
|
2574
|
-
selector: 'ion-split-pane',
|
|
2575
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2576
|
-
template: '<ng-content></ng-content>',
|
|
2577
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2578
|
-
inputs: ['contentId', 'disabled', 'when'],
|
|
2579
|
-
standalone: true,
|
|
2580
|
-
}]
|
|
2581
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2582
|
-
let IonTabBar = class IonTabBar {
|
|
2583
|
-
constructor(c, r, z) {
|
|
2584
|
-
this.z = z;
|
|
2585
|
-
c.detach();
|
|
2586
|
-
this.el = r.nativeElement;
|
|
2587
|
-
}
|
|
2588
|
-
};
|
|
2589
|
-
/** @nocollapse */ IonTabBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTabBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2590
|
-
/** @nocollapse */ IonTabBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonTabBar, isStandalone: true, selector: "ion-tab-bar", inputs: { color: "color", mode: "mode", selectedTab: "selectedTab", translucent: "translucent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2591
|
-
IonTabBar = __decorate([
|
|
2592
|
-
ProxyCmp({
|
|
2593
|
-
defineCustomElementFn: defineIonTabBar,
|
|
2594
|
-
inputs: ['color', 'mode', 'selectedTab', 'translucent'],
|
|
2595
|
-
})
|
|
2596
|
-
], IonTabBar);
|
|
2597
|
-
export { IonTabBar };
|
|
2598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTabBar, decorators: [{
|
|
2599
|
-
type: Component,
|
|
2600
|
-
args: [{
|
|
2601
|
-
selector: 'ion-tab-bar',
|
|
2602
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2603
|
-
template: '<ng-content></ng-content>',
|
|
2604
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2605
|
-
inputs: ['color', 'mode', 'selectedTab', 'translucent'],
|
|
2606
|
-
standalone: true,
|
|
2607
|
-
}]
|
|
2608
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2609
|
-
let IonTabButton = class IonTabButton {
|
|
2610
|
-
constructor(c, r, z) {
|
|
2611
|
-
this.z = z;
|
|
2612
|
-
c.detach();
|
|
2613
|
-
this.el = r.nativeElement;
|
|
2614
|
-
}
|
|
2615
|
-
};
|
|
2616
|
-
/** @nocollapse */ IonTabButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTabButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2617
|
-
/** @nocollapse */ IonTabButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonTabButton, isStandalone: true, selector: "ion-tab-button", inputs: { disabled: "disabled", download: "download", href: "href", layout: "layout", mode: "mode", rel: "rel", selected: "selected", tab: "tab", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2618
|
-
IonTabButton = __decorate([
|
|
2619
|
-
ProxyCmp({
|
|
2620
|
-
defineCustomElementFn: defineIonTabButton,
|
|
2621
|
-
inputs: ['disabled', 'download', 'href', 'layout', 'mode', 'rel', 'selected', 'tab', 'target'],
|
|
2622
|
-
})
|
|
2623
|
-
], IonTabButton);
|
|
2624
|
-
export { IonTabButton };
|
|
2625
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTabButton, decorators: [{
|
|
2626
|
-
type: Component,
|
|
2627
|
-
args: [{
|
|
2628
|
-
selector: 'ion-tab-button',
|
|
2629
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2630
|
-
template: '<ng-content></ng-content>',
|
|
2631
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2632
|
-
inputs: ['disabled', 'download', 'href', 'layout', 'mode', 'rel', 'selected', 'tab', 'target'],
|
|
2633
|
-
standalone: true,
|
|
2634
|
-
}]
|
|
2635
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2636
|
-
let IonText = class IonText {
|
|
2637
|
-
constructor(c, r, z) {
|
|
2638
|
-
this.z = z;
|
|
2639
|
-
c.detach();
|
|
2640
|
-
this.el = r.nativeElement;
|
|
2641
|
-
}
|
|
2642
|
-
};
|
|
2643
|
-
/** @nocollapse */ IonText.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2644
|
-
/** @nocollapse */ IonText.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonText, isStandalone: true, selector: "ion-text", inputs: { color: "color", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2645
|
-
IonText = __decorate([
|
|
2646
|
-
ProxyCmp({
|
|
2647
|
-
defineCustomElementFn: defineIonText,
|
|
2648
|
-
inputs: ['color', 'mode'],
|
|
2649
|
-
})
|
|
2650
|
-
], IonText);
|
|
2651
|
-
export { IonText };
|
|
2652
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonText, decorators: [{
|
|
2653
|
-
type: Component,
|
|
2654
|
-
args: [{
|
|
2655
|
-
selector: 'ion-text',
|
|
2656
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2657
|
-
template: '<ng-content></ng-content>',
|
|
2658
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2659
|
-
inputs: ['color', 'mode'],
|
|
2660
|
-
standalone: true,
|
|
2661
|
-
}]
|
|
2662
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2663
|
-
let IonTextarea = class IonTextarea {
|
|
2664
|
-
constructor(c, r, z) {
|
|
2665
|
-
this.z = z;
|
|
2666
|
-
c.detach();
|
|
2667
|
-
this.el = r.nativeElement;
|
|
2668
|
-
proxyOutputs(this, this.el, ['ionChange', 'ionInput', 'ionBlur', 'ionFocus']);
|
|
2669
|
-
}
|
|
2670
|
-
};
|
|
2671
|
-
/** @nocollapse */ IonTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2672
|
-
/** @nocollapse */ IonTextarea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonTextarea, isStandalone: true, selector: "ion-textarea", inputs: { autoGrow: "autoGrow", autocapitalize: "autocapitalize", autofocus: "autofocus", clearOnEdit: "clearOnEdit", color: "color", cols: "cols", counter: "counter", counterFormatter: "counterFormatter", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", errorText: "errorText", fill: "fill", helperText: "helperText", inputmode: "inputmode", label: "label", labelPlacement: "labelPlacement", legacy: "legacy", maxlength: "maxlength", minlength: "minlength", mode: "mode", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", rows: "rows", shape: "shape", spellcheck: "spellcheck", value: "value", wrap: "wrap" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2673
|
-
IonTextarea = __decorate([
|
|
2674
|
-
ProxyCmp({
|
|
2675
|
-
defineCustomElementFn: defineIonTextarea,
|
|
2676
|
-
inputs: [
|
|
2677
|
-
'autoGrow',
|
|
2678
|
-
'autocapitalize',
|
|
2679
|
-
'autofocus',
|
|
2680
|
-
'clearOnEdit',
|
|
2681
|
-
'color',
|
|
2682
|
-
'cols',
|
|
2683
|
-
'counter',
|
|
2684
|
-
'counterFormatter',
|
|
2685
|
-
'debounce',
|
|
2686
|
-
'disabled',
|
|
2687
|
-
'enterkeyhint',
|
|
2688
|
-
'errorText',
|
|
2689
|
-
'fill',
|
|
2690
|
-
'helperText',
|
|
2691
|
-
'inputmode',
|
|
2692
|
-
'label',
|
|
2693
|
-
'labelPlacement',
|
|
2694
|
-
'legacy',
|
|
2695
|
-
'maxlength',
|
|
2696
|
-
'minlength',
|
|
2697
|
-
'mode',
|
|
2698
|
-
'name',
|
|
2699
|
-
'placeholder',
|
|
2700
|
-
'readonly',
|
|
2701
|
-
'required',
|
|
2702
|
-
'rows',
|
|
2703
|
-
'shape',
|
|
2704
|
-
'spellcheck',
|
|
2705
|
-
'value',
|
|
2706
|
-
'wrap',
|
|
2707
|
-
],
|
|
2708
|
-
methods: ['setFocus', 'getInputElement'],
|
|
2709
|
-
})
|
|
2710
|
-
], IonTextarea);
|
|
2711
|
-
export { IonTextarea };
|
|
2712
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTextarea, decorators: [{
|
|
2713
|
-
type: Component,
|
|
2714
|
-
args: [{
|
|
2715
|
-
selector: 'ion-textarea',
|
|
2716
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2717
|
-
template: '<ng-content></ng-content>',
|
|
2718
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2719
|
-
inputs: [
|
|
2720
|
-
'autoGrow',
|
|
2721
|
-
'autocapitalize',
|
|
2722
|
-
'autofocus',
|
|
2723
|
-
'clearOnEdit',
|
|
2724
|
-
'color',
|
|
2725
|
-
'cols',
|
|
2726
|
-
'counter',
|
|
2727
|
-
'counterFormatter',
|
|
2728
|
-
'debounce',
|
|
2729
|
-
'disabled',
|
|
2730
|
-
'enterkeyhint',
|
|
2731
|
-
'errorText',
|
|
2732
|
-
'fill',
|
|
2733
|
-
'helperText',
|
|
2734
|
-
'inputmode',
|
|
2735
|
-
'label',
|
|
2736
|
-
'labelPlacement',
|
|
2737
|
-
'legacy',
|
|
2738
|
-
'maxlength',
|
|
2739
|
-
'minlength',
|
|
2740
|
-
'mode',
|
|
2741
|
-
'name',
|
|
2742
|
-
'placeholder',
|
|
2743
|
-
'readonly',
|
|
2744
|
-
'required',
|
|
2745
|
-
'rows',
|
|
2746
|
-
'shape',
|
|
2747
|
-
'spellcheck',
|
|
2748
|
-
'value',
|
|
2749
|
-
'wrap',
|
|
2750
|
-
],
|
|
2751
|
-
standalone: true,
|
|
2752
|
-
}]
|
|
2753
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2754
|
-
let IonThumbnail = class IonThumbnail {
|
|
2755
|
-
constructor(c, r, z) {
|
|
2756
|
-
this.z = z;
|
|
2757
|
-
c.detach();
|
|
2758
|
-
this.el = r.nativeElement;
|
|
2759
|
-
}
|
|
2760
|
-
};
|
|
2761
|
-
/** @nocollapse */ IonThumbnail.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonThumbnail, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2762
|
-
/** @nocollapse */ IonThumbnail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonThumbnail, isStandalone: true, selector: "ion-thumbnail", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2763
|
-
IonThumbnail = __decorate([
|
|
2764
|
-
ProxyCmp({
|
|
2765
|
-
defineCustomElementFn: defineIonThumbnail,
|
|
2766
|
-
})
|
|
2767
|
-
], IonThumbnail);
|
|
2768
|
-
export { IonThumbnail };
|
|
2769
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonThumbnail, decorators: [{
|
|
2770
|
-
type: Component,
|
|
2771
|
-
args: [{
|
|
2772
|
-
selector: 'ion-thumbnail',
|
|
2773
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2774
|
-
template: '<ng-content></ng-content>',
|
|
2775
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2776
|
-
inputs: [],
|
|
2777
|
-
standalone: true,
|
|
2778
|
-
}]
|
|
2779
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2780
|
-
let IonTitle = class IonTitle {
|
|
2781
|
-
constructor(c, r, z) {
|
|
2782
|
-
this.z = z;
|
|
2783
|
-
c.detach();
|
|
2784
|
-
this.el = r.nativeElement;
|
|
2785
|
-
}
|
|
2786
|
-
};
|
|
2787
|
-
/** @nocollapse */ IonTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2788
|
-
/** @nocollapse */ IonTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonTitle, isStandalone: true, selector: "ion-title", inputs: { color: "color", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2789
|
-
IonTitle = __decorate([
|
|
2790
|
-
ProxyCmp({
|
|
2791
|
-
defineCustomElementFn: defineIonTitle,
|
|
2792
|
-
inputs: ['color', 'size'],
|
|
2793
|
-
})
|
|
2794
|
-
], IonTitle);
|
|
2795
|
-
export { IonTitle };
|
|
2796
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTitle, decorators: [{
|
|
2797
|
-
type: Component,
|
|
2798
|
-
args: [{
|
|
2799
|
-
selector: 'ion-title',
|
|
2800
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2801
|
-
template: '<ng-content></ng-content>',
|
|
2802
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2803
|
-
inputs: ['color', 'size'],
|
|
2804
|
-
standalone: true,
|
|
2805
|
-
}]
|
|
2806
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2807
|
-
let IonToast = class IonToast {
|
|
2808
|
-
constructor(c, r, z) {
|
|
2809
|
-
this.z = z;
|
|
2810
|
-
c.detach();
|
|
2811
|
-
this.el = r.nativeElement;
|
|
2812
|
-
proxyOutputs(this, this.el, [
|
|
2813
|
-
'ionToastDidPresent',
|
|
2814
|
-
'ionToastWillPresent',
|
|
2815
|
-
'ionToastWillDismiss',
|
|
2816
|
-
'ionToastDidDismiss',
|
|
2817
|
-
'didPresent',
|
|
2818
|
-
'willPresent',
|
|
2819
|
-
'willDismiss',
|
|
2820
|
-
'didDismiss',
|
|
2821
|
-
]);
|
|
2822
|
-
}
|
|
2823
|
-
};
|
|
2824
|
-
/** @nocollapse */ IonToast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2825
|
-
/** @nocollapse */ IonToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonToast, isStandalone: true, selector: "ion-toast", inputs: { animated: "animated", buttons: "buttons", color: "color", cssClass: "cssClass", duration: "duration", enterAnimation: "enterAnimation", header: "header", htmlAttributes: "htmlAttributes", icon: "icon", isOpen: "isOpen", keyboardClose: "keyboardClose", layout: "layout", leaveAnimation: "leaveAnimation", message: "message", mode: "mode", position: "position", translucent: "translucent", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2826
|
-
IonToast = __decorate([
|
|
2827
|
-
ProxyCmp({
|
|
2828
|
-
defineCustomElementFn: defineIonToast,
|
|
2829
|
-
inputs: [
|
|
2830
|
-
'animated',
|
|
2831
|
-
'buttons',
|
|
2832
|
-
'color',
|
|
2833
|
-
'cssClass',
|
|
2834
|
-
'duration',
|
|
2835
|
-
'enterAnimation',
|
|
2836
|
-
'header',
|
|
2837
|
-
'htmlAttributes',
|
|
2838
|
-
'icon',
|
|
2839
|
-
'isOpen',
|
|
2840
|
-
'keyboardClose',
|
|
2841
|
-
'layout',
|
|
2842
|
-
'leaveAnimation',
|
|
2843
|
-
'message',
|
|
2844
|
-
'mode',
|
|
2845
|
-
'position',
|
|
2846
|
-
'translucent',
|
|
2847
|
-
'trigger',
|
|
2848
|
-
],
|
|
2849
|
-
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss'],
|
|
2850
|
-
})
|
|
2851
|
-
], IonToast);
|
|
2852
|
-
export { IonToast };
|
|
2853
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonToast, decorators: [{
|
|
2854
|
-
type: Component,
|
|
2855
|
-
args: [{
|
|
2856
|
-
selector: 'ion-toast',
|
|
2857
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2858
|
-
template: '<ng-content></ng-content>',
|
|
2859
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2860
|
-
inputs: [
|
|
2861
|
-
'animated',
|
|
2862
|
-
'buttons',
|
|
2863
|
-
'color',
|
|
2864
|
-
'cssClass',
|
|
2865
|
-
'duration',
|
|
2866
|
-
'enterAnimation',
|
|
2867
|
-
'header',
|
|
2868
|
-
'htmlAttributes',
|
|
2869
|
-
'icon',
|
|
2870
|
-
'isOpen',
|
|
2871
|
-
'keyboardClose',
|
|
2872
|
-
'layout',
|
|
2873
|
-
'leaveAnimation',
|
|
2874
|
-
'message',
|
|
2875
|
-
'mode',
|
|
2876
|
-
'position',
|
|
2877
|
-
'translucent',
|
|
2878
|
-
'trigger',
|
|
2879
|
-
],
|
|
2880
|
-
standalone: true,
|
|
2881
|
-
}]
|
|
2882
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2883
|
-
let IonToggle = class IonToggle {
|
|
2884
|
-
constructor(c, r, z) {
|
|
2885
|
-
this.z = z;
|
|
2886
|
-
c.detach();
|
|
2887
|
-
this.el = r.nativeElement;
|
|
2888
|
-
proxyOutputs(this, this.el, ['ionChange', 'ionFocus', 'ionBlur']);
|
|
2889
|
-
}
|
|
2890
|
-
};
|
|
2891
|
-
/** @nocollapse */ IonToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2892
|
-
/** @nocollapse */ IonToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonToggle, isStandalone: true, selector: "ion-toggle", inputs: { checked: "checked", color: "color", disabled: "disabled", enableOnOffLabels: "enableOnOffLabels", justify: "justify", labelPlacement: "labelPlacement", legacy: "legacy", mode: "mode", name: "name", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2893
|
-
IonToggle = __decorate([
|
|
2894
|
-
ProxyCmp({
|
|
2895
|
-
defineCustomElementFn: defineIonToggle,
|
|
2896
|
-
inputs: [
|
|
2897
|
-
'checked',
|
|
2898
|
-
'color',
|
|
2899
|
-
'disabled',
|
|
2900
|
-
'enableOnOffLabels',
|
|
2901
|
-
'justify',
|
|
2902
|
-
'labelPlacement',
|
|
2903
|
-
'legacy',
|
|
2904
|
-
'mode',
|
|
2905
|
-
'name',
|
|
2906
|
-
'value',
|
|
2907
|
-
],
|
|
2908
|
-
})
|
|
2909
|
-
], IonToggle);
|
|
2910
|
-
export { IonToggle };
|
|
2911
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonToggle, decorators: [{
|
|
2912
|
-
type: Component,
|
|
2913
|
-
args: [{
|
|
2914
|
-
selector: 'ion-toggle',
|
|
2915
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2916
|
-
template: '<ng-content></ng-content>',
|
|
2917
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2918
|
-
inputs: [
|
|
2919
|
-
'checked',
|
|
2920
|
-
'color',
|
|
2921
|
-
'disabled',
|
|
2922
|
-
'enableOnOffLabels',
|
|
2923
|
-
'justify',
|
|
2924
|
-
'labelPlacement',
|
|
2925
|
-
'legacy',
|
|
2926
|
-
'mode',
|
|
2927
|
-
'name',
|
|
2928
|
-
'value',
|
|
2929
|
-
],
|
|
2930
|
-
standalone: true,
|
|
2931
|
-
}]
|
|
2932
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2933
|
-
let IonToolbar = class IonToolbar {
|
|
2934
|
-
constructor(c, r, z) {
|
|
2935
|
-
this.z = z;
|
|
2936
|
-
c.detach();
|
|
2937
|
-
this.el = r.nativeElement;
|
|
2938
|
-
}
|
|
2939
|
-
};
|
|
2940
|
-
/** @nocollapse */ IonToolbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonToolbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2941
|
-
/** @nocollapse */ IonToolbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonToolbar, isStandalone: true, selector: "ion-toolbar", inputs: { color: "color", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2942
|
-
IonToolbar = __decorate([
|
|
2943
|
-
ProxyCmp({
|
|
2944
|
-
defineCustomElementFn: defineIonToolbar,
|
|
2945
|
-
inputs: ['color', 'mode'],
|
|
2946
|
-
})
|
|
2947
|
-
], IonToolbar);
|
|
2948
|
-
export { IonToolbar };
|
|
2949
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonToolbar, decorators: [{
|
|
2950
|
-
type: Component,
|
|
2951
|
-
args: [{
|
|
2952
|
-
selector: 'ion-toolbar',
|
|
2953
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2954
|
-
template: '<ng-content></ng-content>',
|
|
2955
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2956
|
-
inputs: ['color', 'mode'],
|
|
2957
|
-
standalone: true,
|
|
2958
|
-
}]
|
|
2959
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2960
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3N0YW5kYWxvbmUvc3JjL2RpcmVjdGl2ZXMvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUl2RSxPQUFPLEVBQUUsbUJBQW1CLElBQUksa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMvRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsbUJBQW1CLElBQUksY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixJQUFJLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLElBQUksaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlGLE9BQU8sRUFB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a0JBUnRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRzIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uQWNjb3JkaW9uIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tYWNjb3JkaW9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uQWNjb3JkaW9uR3JvdXAgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1hY2NvcmRpb24tZ3JvdXAuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25BY3Rpb25TaGVldCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWFjdGlvbi1zaGVldC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkFsZXJ0IH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tYWxlcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25BcHAgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1hcHAuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25BdmF0YXIgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1hdmF0YXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25CYWNrZHJvcCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWJhY2tkcm9wLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uQmFkZ2UgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1iYWRnZS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkJyZWFkY3J1bWIgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1icmVhZGNydW1iLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uQnJlYWRjcnVtYnMgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1icmVhZGNydW1icy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkJ1dHRvbiB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWJ1dHRvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkJ1dHRvbnMgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1idXR0b25zLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uQ2FyZCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWNhcmQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25DYXJkQ29udGVudCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWNhcmQtY29udGVudC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkNhcmRIZWFkZXIgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1jYXJkLWhlYWRlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkNhcmRTdWJ0aXRsZSB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWNhcmQtc3VidGl0bGUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25DYXJkVGl0bGUgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1jYXJkLXRpdGxlLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uQ2hlY2tib3ggfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkNoaXAgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1jaGlwLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uQ29sIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tY29sLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uQ29udGVudCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWNvbnRlbnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25EYXRldGltZSB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWRhdGV0aW1lLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uRGF0ZXRpbWVCdXR0b24gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1kYXRldGltZS1idXR0b24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25GYWIgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1mYWIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25GYWJCdXR0b24gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1mYWItYnV0dG9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uRmFiTGlzdCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWZhYi1saXN0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uRm9vdGVyIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tZm9vdGVyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uR3JpZCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWdyaWQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25IZWFkZXIgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1oZWFkZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25JbWcgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1pbWcuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25JbmZpbml0ZVNjcm9sbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWluZmluaXRlLXNjcm9sbC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkluZmluaXRlU2Nyb2xsQ29udGVudCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWluZmluaXRlLXNjcm9sbC1jb250ZW50LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1pbnB1dC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkl0ZW0gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uSXRlbURpdmlkZXIgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1pdGVtLWRpdmlkZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25JdGVtR3JvdXAgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1pdGVtLWdyb3VwLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uSXRlbU9wdGlvbiB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWl0ZW0tb3B0aW9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uSXRlbU9wdGlvbnMgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1pdGVtLW9wdGlvbnMuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25JdGVtU2xpZGluZyB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLWl0ZW0tc2xpZGluZy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkxhYmVsIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tbGFiZWwuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25MaXN0IH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tbGlzdC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkxpc3RIZWFkZXIgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1saXN0LWhlYWRlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvbkxvYWRpbmcgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1sb2FkaW5nLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uTWVudSB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLW1lbnUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25NZW51QnV0dG9uIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tbWVudS1idXR0b24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25NZW51VG9nZ2xlIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tbWVudS10b2dnbGUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25OYXZMaW5rIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tbmF2LWxpbmsuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25Ob3RlIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tbm90ZS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvblBpY2tlciB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvblByb2dyZXNzQmFyIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tcHJvZ3Jlc3MtYmFyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uUmFkaW8gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1yYWRpby5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvblJhZGlvR3JvdXAgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1yYWRpby1ncm91cC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvblJhbmdlIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tcmFuZ2UuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25SZWZyZXNoZXIgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1yZWZyZXNoZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25SZWZyZXNoZXJDb250ZW50IH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tcmVmcmVzaGVyLWNvbnRlbnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25SZW9yZGVyIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tcmVvcmRlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvblJlb3JkZXJHcm91cCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLXJlb3JkZXItZ3JvdXAuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25SaXBwbGVFZmZlY3QgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1yaXBwbGUtZWZmZWN0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uUm93IH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tcm93LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uU2VhcmNoYmFyIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tc2VhcmNoYmFyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uU2VnbWVudCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLXNlZ21lbnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25TZWdtZW50QnV0dG9uIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tc2VnbWVudC1idXR0b24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25TZWxlY3QgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1zZWxlY3QuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25TZWxlY3RPcHRpb24gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1zZWxlY3Qtb3B0aW9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uU2tlbGV0b25UZXh0IH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tc2tlbGV0b24tdGV4dC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi1zcGlubmVyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uU3BsaXRQYW5lIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tc3BsaXQtcGFuZS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvblRhYkJhciB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLXRhYi1iYXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25UYWJCdXR0b24gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi10YWItYnV0dG9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uVGV4dCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLXRleHQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25UZXh0YXJlYSB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLXRleHRhcmVhLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uVGh1bWJuYWlsIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tdGh1bWJuYWlsLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lSW9uVGl0bGUgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi10aXRsZS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUlvblRvYXN0IH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tdG9hc3QuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25Ub2dnbGUgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzL2lvbi10b2dnbGUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVJb25Ub29sYmFyIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cy9pb24tdG9vbGJhci5qcyc7XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkFjY29yZGlvbixcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ21vZGUnLCAncmVhZG9ubHknLCAndG9nZ2xlSWNvbicsICd0b2dnbGVJY29uU2xvdCcsICd2YWx1ZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ21vZGUnLCAncmVhZG9ubHknLCAndG9nZ2xlSWNvbicsICd0b2dnbGVJY29uU2xvdCcsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25BY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uQWNjb3JkaW9uIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25BY2NvcmRpb24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25BY2NvcmRpb25Hcm91cCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2Rpc2FibGVkJywgJ2V4cGFuZCcsICdtb2RlJywgJ211bHRpcGxlJywgJ3JlYWRvbmx5JywgJ3ZhbHVlJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWFjY29yZGlvbi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnZGlzYWJsZWQnLCAnZXhwYW5kJywgJ21vZGUnLCAnbXVsdGlwbGUnLCAncmVhZG9ubHknLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uQWNjb3JkaW9uR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBBY2NvcmRpb25Hcm91cENoYW5nZUV2ZW50RGV0YWlsIGFzIElJb25BY2NvcmRpb25Hcm91cEFjY29yZGlvbkdyb3VwQ2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkFjY29yZGlvbkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25BY2NvcmRpb25Hcm91cCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHZhbHVlIHByb3BlcnR5IGhhcyBjaGFuZ2VkXG5hcyBhIHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uIHN1Y2ggYXMgYSBjbGljay5cblRoaXMgZXZlbnQgd2lsbCBub3QgZW1pdCB3aGVuIHByb2dyYW1tYXRpY2FsbHkgc2V0dGluZ1xudGhlIHZhbHVlIHByb3BlcnR5LlxuICAgKi9cbiAgaW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvbkFjY29yZGlvbkdyb3VwQWNjb3JkaW9uR3JvdXBDaGFuZ2VFdmVudERldGFpbD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkFjdGlvblNoZWV0LFxuICBpbnB1dHM6IFtcbiAgICAnYW5pbWF0ZWQnLFxuICAgICdiYWNrZHJvcERpc21pc3MnLFxuICAgICdidXR0b25zJyxcbiAgICAnY3NzQ2xhc3MnLFxuICAgICdlbnRlckFuaW1hdGlvbicsXG4gICAgJ2hlYWRlcicsXG4gICAgJ2h0bWxBdHRyaWJ1dGVzJyxcbiAgICAnaXNPcGVuJyxcbiAgICAna2V5Ym9hcmRDbG9zZScsXG4gICAgJ2xlYXZlQW5pbWF0aW9uJyxcbiAgICAnbW9kZScsXG4gICAgJ3N1YkhlYWRlcicsXG4gICAgJ3RyYW5zbHVjZW50JyxcbiAgICAndHJpZ2dlcicsXG4gIF0sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWFjdGlvbi1zaGVldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtcbiAgICAnYW5pbWF0ZWQnLFxuICAgICdiYWNrZHJvcERpc21pc3MnLFxuICAgICdidXR0b25zJyxcbiAgICAnY3NzQ2xhc3MnLFxuICAgICdlbnRlckFuaW1hdGlvbicsXG4gICAgJ2hlYWRlcicsXG4gICAgJ2h0bWxBdHRyaWJ1dGVzJyxcbiAgICAnaXNPcGVuJyxcbiAgICAna2V5Ym9hcmRDbG9zZScsXG4gICAgJ2xlYXZlQW5pbWF0aW9uJyxcbiAgICAnbW9kZScsXG4gICAgJ3N1YkhlYWRlcicsXG4gICAgJ3RyYW5zbHVjZW50JyxcbiAgICAndHJpZ2dlcicsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbkFjdGlvblNoZWV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFtcbiAgICAgICdpb25BY3Rpb25TaGVldERpZFByZXNlbnQnLFxuICAgICAgJ2lvbkFjdGlvblNoZWV0V2lsbFByZXNlbnQnLFxuICAgICAgJ2lvbkFjdGlvblNoZWV0V2lsbERpc21pc3MnLFxuICAgICAgJ2lvbkFjdGlvblNoZWV0RGlkRGlzbWlzcycsXG4gICAgICAnZGlkUHJlc2VudCcsXG4gICAgICAnd2lsbFByZXNlbnQnLFxuICAgICAgJ3dpbGxEaXNtaXNzJyxcbiAgICAgICdkaWREaXNtaXNzJyxcbiAgICBdKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IE92ZXJsYXlFdmVudERldGFpbCBhcyBJSW9uQWN0aW9uU2hlZXRPdmVybGF5RXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkFjdGlvblNoZWV0IGV4dGVuZHMgQ29tcG9uZW50cy5Jb25BY3Rpb25TaGVldCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBhY3Rpb24gc2hlZXQgaGFzIHByZXNlbnRlZC5cbiAgICovXG4gIGlvbkFjdGlvblNoZWV0RGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhY3Rpb24gc2hlZXQgaGFzIHByZXNlbnRlZC5cbiAgICovXG4gIGlvbkFjdGlvblNoZWV0V2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgYWN0aW9uIHNoZWV0IGhhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBpb25BY3Rpb25TaGVldFdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvbkFjdGlvblNoZWV0T3ZlcmxheUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBhY3Rpb24gc2hlZXQgaGFzIGRpc21pc3NlZC5cbiAgICovXG4gIGlvbkFjdGlvblNoZWV0RGlkRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25BY3Rpb25TaGVldE92ZXJsYXlFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgYWN0aW9uIHNoZWV0IGhhcyBwcmVzZW50ZWQuXG5TaG9ydGhhbmQgZm9yIGlvbkFjdGlvblNoZWV0V2lsbERpc21pc3MuXG4gICAqL1xuICBkaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIGFjdGlvbiBzaGVldCBoYXMgcHJlc2VudGVkLlxuU2hvcnRoYW5kIGZvciBpb25BY3Rpb25TaGVldFdpbGxQcmVzZW50LlxuICAgKi9cbiAgd2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgYWN0aW9uIHNoZWV0IGhhcyBkaXNtaXNzZWQuXG5TaG9ydGhhbmQgZm9yIGlvbkFjdGlvblNoZWV0V2lsbERpc21pc3MuXG4gICAqL1xuICB3aWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25BY3Rpb25TaGVldE92ZXJsYXlFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgYWN0aW9uIHNoZWV0IGhhcyBkaXNtaXNzZWQuXG5TaG9ydGhhbmQgZm9yIGlvbkFjdGlvblNoZWV0RGlkRGlzbWlzcy5cbiAgICovXG4gIGRpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uQWN0aW9uU2hlZXRPdmVybGF5RXZlbnREZXRhaWw+Pjtcbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25BbGVydCxcbiAgaW5wdXRzOiBbXG4gICAgJ2FuaW1hdGVkJyxcbiAgICAnYmFja2Ryb3BEaXNtaXNzJyxcbiAgICAnYnV0dG9ucycsXG4gICAgJ2Nzc0NsYXNzJyxcbiAgICAnZW50ZXJBbmltYXRpb24nLFxuICAgICdoZWFkZXInLFxuICAgICdodG1sQXR0cmlidXRlcycsXG4gICAgJ2lucHV0cycsXG4gICAgJ2lzT3BlbicsXG4gICAgJ2tleWJvYXJkQ2xvc2UnLFxuICAgICdsZWF2ZUFuaW1hdGlvbicsXG4gICAgJ21lc3NhZ2UnLFxuICAgICdtb2RlJyxcbiAgICAnc3ViSGVhZGVyJyxcbiAgICAndHJhbnNsdWNlbnQnLFxuICAgICd0cmlnZ2VyJyxcbiAgXSxcbiAgbWV0aG9kczogWydwcmVzZW50JywgJ2Rpc21pc3MnLCAnb25EaWREaXNtaXNzJywgJ29uV2lsbERpc21pc3MnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tYWxlcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXG4gICAgJ2FuaW1hdGVkJyxcbiAgICAnYmFja2Ryb3BEaXNtaXNzJyxcbiAgICAnYnV0dG9ucycsXG4gICAgJ2Nzc0NsYXNzJyxcbiAgICAnZW50ZXJBbmltYXRpb24nLFxuICAgICdoZWFkZXInLFxuICAgICdodG1sQXR0cmlidXRlcycsXG4gICAgJ2lucHV0cycsXG4gICAgJ2lzT3BlbicsXG4gICAgJ2tleWJvYXJkQ2xvc2UnLFxuICAgICdsZWF2ZUFuaW1hdGlvbicsXG4gICAgJ21lc3NhZ2UnLFxuICAgICdtb2RlJyxcbiAgICAnc3ViSGVhZGVyJyxcbiAgICAndHJhbnNsdWNlbnQnLFxuICAgICd0cmlnZ2VyJyxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uQWxlcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgW1xuICAgICAgJ2lvbkFsZXJ0RGlkUHJlc2VudCcsXG4gICAgICAnaW9uQWxlcnRXaWxsUHJlc2VudCcsXG4gICAgICAnaW9uQWxlcnRXaWxsRGlzbWlzcycsXG4gICAgICAnaW9uQWxlcnREaWREaXNtaXNzJyxcbiAgICAgICdkaWRQcmVzZW50JyxcbiAgICAgICd3aWxsUHJlc2VudCcsXG4gICAgICAnd2lsbERpc21pc3MnLFxuICAgICAgJ2RpZERpc21pc3MnLFxuICAgIF0pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgT3ZlcmxheUV2ZW50RGV0YWlsIGFzIElJb25BbGVydE92ZXJsYXlFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uQWxlcnQgZXh0ZW5kcyBDb21wb25lbnRzLklvbkFsZXJ0IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFsZXJ0IGhhcyBwcmVzZW50ZWQuXG4gICAqL1xuICBpb25BbGVydERpZFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgYWxlcnQgaGFzIHByZXNlbnRlZC5cbiAgICovXG4gIGlvbkFsZXJ0V2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgYWxlcnQgaGFzIGRpc21pc3NlZC5cbiAgICovXG4gIGlvbkFsZXJ0V2lsbERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uQWxlcnRPdmVybGF5RXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFsZXJ0IGhhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBpb25BbGVydERpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uQWxlcnRPdmVybGF5RXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFsZXJ0IGhhcyBwcmVzZW50ZWQuXG5TaG9ydGhhbmQgZm9yIGlvbkFsZXJ0V2lsbERpc21pc3MuXG4gICAqL1xuICBkaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIGFsZXJ0IGhhcyBwcmVzZW50ZWQuXG5TaG9ydGhhbmQgZm9yIGlvbkFsZXJ0V2lsbFByZXNlbnQuXG4gICAqL1xuICB3aWxsUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhbGVydCBoYXMgZGlzbWlzc2VkLlxuU2hvcnRoYW5kIGZvciBpb25BbGVydFdpbGxEaXNtaXNzLlxuICAgKi9cbiAgd2lsbERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uQWxlcnRPdmVybGF5RXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFsZXJ0IGhhcyBkaXNtaXNzZWQuXG5TaG9ydGhhbmQgZm9yIGlvbkFsZXJ0RGlkRGlzbWlzcy5cbiAgICovXG4gIGRpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uQWxlcnRPdmVybGF5RXZlbnREZXRhaWw+Pjtcbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25BcHAsXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWFwcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25BcHAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uQXBwIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25BcHAge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25BdmF0YXIsXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWF2YXRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25BdmF0YXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uQXZhdGFyIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25BdmF0YXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25CYWNrZHJvcCxcbiAgaW5wdXRzOiBbJ3N0b3BQcm9wYWdhdGlvbicsICd0YXBwYWJsZScsICd2aXNpYmxlJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWJhY2tkcm9wJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzdG9wUHJvcGFnYXRpb24nLCAndGFwcGFibGUnLCAndmlzaWJsZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25CYWNrZHJvcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvbkJhY2tkcm9wVGFwJ10pO1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25CYWNrZHJvcCBleHRlbmRzIENvbXBvbmVudHMuSW9uQmFja2Ryb3Age1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBiYWNrZHJvcCBpcyB0YXBwZWQuXG4gICAqL1xuICBpb25CYWNrZHJvcFRhcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25CYWRnZSxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ21vZGUnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ21vZGUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uQmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uQmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLklvbkJhZGdlIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uQnJlYWRjcnVtYixcbiAgaW5wdXRzOiBbXG4gICAgJ2FjdGl2ZScsXG4gICAgJ2NvbG9yJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdkb3dubG9hZCcsXG4gICAgJ2hyZWYnLFxuICAgICdtb2RlJyxcbiAgICAncmVsJyxcbiAgICAncm91dGVyQW5pbWF0aW9uJyxcbiAgICAncm91dGVyRGlyZWN0aW9uJyxcbiAgICAnc2VwYXJhdG9yJyxcbiAgICAndGFyZ2V0JyxcbiAgXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tYnJlYWRjcnVtYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtcbiAgICAnYWN0aXZlJyxcbiAgICAnY29sb3InLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2Rvd25sb2FkJyxcbiAgICAnaHJlZicsXG4gICAgJ21vZGUnLFxuICAgICdyZWwnLFxuICAgICdyb3V0ZXJBbmltYXRpb24nLFxuICAgICdyb3V0ZXJEaXJlY3Rpb24nLFxuICAgICdzZXBhcmF0b3InLFxuICAgICd0YXJnZXQnLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25CcmVhZGNydW1iIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uRm9jdXMnLCAnaW9uQmx1ciddKTtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uQnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuSW9uQnJlYWRjcnVtYiB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGJyZWFkY3J1bWIgaGFzIGZvY3VzLlxuICAgKi9cbiAgaW9uRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGJyZWFkY3J1bWIgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpb25CbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkJyZWFkY3J1bWJzLFxuICBpbnB1dHM6IFsnY29sb3InLCAnaXRlbXNBZnRlckNvbGxhcHNlJywgJ2l0ZW1zQmVmb3JlQ29sbGFwc2UnLCAnbWF4SXRlbXMnLCAnbW9kZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1icmVhZGNydW1icycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnaXRlbXNBZnRlckNvbGxhcHNlJywgJ2l0ZW1zQmVmb3JlQ29sbGFwc2UnLCAnbWF4SXRlbXMnLCAnbW9kZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25CcmVhZGNydW1icyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvbkNvbGxhcHNlZENsaWNrJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgQnJlYWRjcnVtYkNvbGxhcHNlZENsaWNrRXZlbnREZXRhaWwgYXMgSUlvbkJyZWFkY3J1bWJzQnJlYWRjcnVtYkNvbGxhcHNlZENsaWNrRXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkJyZWFkY3J1bWJzIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25CcmVhZGNydW1icyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbGxhcHNlZCBpbmRpY2F0b3IgaXMgY2xpY2tlZCBvbi5cbiAgICovXG4gIGlvbkNvbGxhcHNlZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvbkJyZWFkY3J1bWJzQnJlYWRjcnVtYkNvbGxhcHNlZENsaWNrRXZlbnREZXRhaWw+Pjtcbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25CdXR0b24sXG4gIGlucHV0czogW1xuICAgICdidXR0b25UeXBlJyxcbiAgICAnY29sb3InLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2Rvd25sb2FkJyxcbiAgICAnZXhwYW5kJyxcbiAgICAnZmlsbCcsXG4gICAgJ2Zvcm0nLFxuICAgICdocmVmJyxcbiAgICAnbW9kZScsXG4gICAgJ3JlbCcsXG4gICAgJ3JvdXRlckFuaW1hdGlvbicsXG4gICAgJ3JvdXRlckRpcmVjdGlvbicsXG4gICAgJ3NoYXBlJyxcbiAgICAnc2l6ZScsXG4gICAgJ3N0cm9uZycsXG4gICAgJ3RhcmdldCcsXG4gICAgJ3R5cGUnLFxuICBdLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXG4gICAgJ2J1dHRvblR5cGUnLFxuICAgICdjb2xvcicsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAnZG93bmxvYWQnLFxuICAgICdleHBhbmQnLFxuICAgICdmaWxsJyxcbiAgICAnZm9ybScsXG4gICAgJ2hyZWYnLFxuICAgICdtb2RlJyxcbiAgICAncmVsJyxcbiAgICAncm91dGVyQW5pbWF0aW9uJyxcbiAgICAncm91dGVyRGlyZWN0aW9uJyxcbiAgICAnc2hhcGUnLFxuICAgICdzaXplJyxcbiAgICAnc3Ryb25nJyxcbiAgICAndGFyZ2V0JyxcbiAgICAndHlwZScsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbkJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvbkZvY3VzJywgJ2lvbkJsdXInXSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuSW9uQnV0dG9uIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGhhcyBmb2N1cy5cbiAgICovXG4gIGlvbkZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpb25CbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkJ1dHRvbnMsXG4gIGlucHV0czogWydjb2xsYXBzZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1idXR0b25zJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25CdXR0b25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkJ1dHRvbnMgZXh0ZW5kcyBDb21wb25lbnRzLklvbkJ1dHRvbnMge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25DYXJkLFxuICBpbnB1dHM6IFtcbiAgICAnYnV0dG9uJyxcbiAgICAnY29sb3InLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2Rvd25sb2FkJyxcbiAgICAnaHJlZicsXG4gICAgJ21vZGUnLFxuICAgICdyZWwnLFxuICAgICdyb3V0ZXJBbmltYXRpb24nLFxuICAgICdyb3V0ZXJEaXJlY3Rpb24nLFxuICAgICd0YXJnZXQnLFxuICAgICd0eXBlJyxcbiAgXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtcbiAgICAnYnV0dG9uJyxcbiAgICAnY29sb3InLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2Rvd25sb2FkJyxcbiAgICAnaHJlZicsXG4gICAgJ21vZGUnLFxuICAgICdyZWwnLFxuICAgICdyb3V0ZXJBbmltYXRpb24nLFxuICAgICdyb3V0ZXJEaXJlY3Rpb24nLFxuICAgICd0YXJnZXQnLFxuICAgICd0eXBlJyxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25DYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25DYXJkIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uQ2FyZENvbnRlbnQsXG4gIGlucHV0czogWydtb2RlJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWNhcmQtY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW9kZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25DYXJkQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25DYXJkQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuSW9uQ2FyZENvbnRlbnQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25DYXJkSGVhZGVyLFxuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kZScsICd0cmFuc2x1Y2VudCddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1jYXJkLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kZScsICd0cmFuc2x1Y2VudCddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25DYXJkSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkNhcmRIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLklvbkNhcmRIZWFkZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25DYXJkU3VidGl0bGUsXG4gIGlucHV0czogWydjb2xvcicsICdtb2RlJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWNhcmQtc3VidGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ21vZGUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uQ2FyZFN1YnRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkNhcmRTdWJ0aXRsZSBleHRlbmRzIENvbXBvbmVudHMuSW9uQ2FyZFN1YnRpdGxlIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uQ2FyZFRpdGxlLFxuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1jYXJkLXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdtb2RlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbkNhcmRUaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25DYXJkVGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLklvbkNhcmRUaXRsZSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkNoZWNrYm94LFxuICBpbnB1dHM6IFtcbiAgICAnY2hlY2tlZCcsXG4gICAgJ2NvbG9yJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdpbmRldGVybWluYXRlJyxcbiAgICAnanVzdGlmeScsXG4gICAgJ2xhYmVsUGxhY2VtZW50JyxcbiAgICAnbGVnYWN5JyxcbiAgICAnbW9kZScsXG4gICAgJ25hbWUnLFxuICAgICd2YWx1ZScsXG4gIF0sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW1xuICAgICdjaGVja2VkJyxcbiAgICAnY29sb3InLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2luZGV0ZXJtaW5hdGUnLFxuICAgICdqdXN0aWZ5JyxcbiAgICAnbGFiZWxQbGFjZW1lbnQnLFxuICAgICdsZWdhY3knLFxuICAgICdtb2RlJyxcbiAgICAnbmFtZScsXG4gICAgJ3ZhbHVlJyxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpb25DaGFuZ2UnLCAnaW9uRm9jdXMnLCAnaW9uQmx1ciddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IENoZWNrYm94Q2hhbmdlRXZlbnREZXRhaWwgYXMgSUlvbkNoZWNrYm94Q2hlY2tib3hDaGFuZ2VFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLklvbkNoZWNrYm94IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2hlY2tlZCBwcm9wZXJ0eSBoYXMgY2hhbmdlZFxuYXMgYSByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbiBzdWNoIGFzIGEgY2xpY2suXG5UaGlzIGV2ZW50IHdpbGwgbm90IGVtaXQgd2hlbiBwcm9ncmFtbWF0aWNhbGx5XG5zZXR0aW5nIHRoZSBjaGVja2VkIHByb3BlcnR5LlxuICAgKi9cbiAgaW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvbkNoZWNrYm94Q2hlY2tib3hDaGFuZ2VFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjaGVja2JveCBoYXMgZm9jdXMuXG4gICAqL1xuICBpb25Gb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2hlY2tib3ggbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpb25CbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkNoaXAsXG4gIGlucHV0czogWydjb2xvcicsICdkaXNhYmxlZCcsICdtb2RlJywgJ291dGxpbmUnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzYWJsZWQnLCAnbW9kZScsICdvdXRsaW5lJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbkNoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uQ2hpcCBleHRlbmRzIENvbXBvbmVudHMuSW9uQ2hpcCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkNvbCxcbiAgaW5wdXRzOiBbXG4gICAgJ29mZnNldCcsXG4gICAgJ29mZnNldExnJyxcbiAgICAnb2Zmc2V0TWQnLFxuICAgICdvZmZzZXRTbScsXG4gICAgJ29mZnNldFhsJyxcbiAgICAnb2Zmc2V0WHMnLFxuICAgICdwdWxsJyxcbiAgICAncHVsbExnJyxcbiAgICAncHVsbE1kJyxcbiAgICAncHVsbFNtJyxcbiAgICAncHVsbFhsJyxcbiAgICAncHVsbFhzJyxcbiAgICAncHVzaCcsXG4gICAgJ3B1c2hMZycsXG4gICAgJ3B1c2hNZCcsXG4gICAgJ3B1c2hTbScsXG4gICAgJ3B1c2hYbCcsXG4gICAgJ3B1c2hYcycsXG4gICAgJ3NpemUnLFxuICAgICdzaXplTGcnLFxuICAgICdzaXplTWQnLFxuICAgICdzaXplU20nLFxuICAgICdzaXplWGwnLFxuICAgICdzaXplWHMnLFxuICBdLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1jb2wnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXG4gICAgJ29mZnNldCcsXG4gICAgJ29mZnNldExnJyxcbiAgICAnb2Zmc2V0TWQnLFxuICAgICdvZmZzZXRTbScsXG4gICAgJ29mZnNldFhsJyxcbiAgICAnb2Zmc2V0WHMnLFxuICAgICdwdWxsJyxcbiAgICAncHVsbExnJyxcbiAgICAncHVsbE1kJyxcbiAgICAncHVsbFNtJyxcbiAgICAncHVsbFhsJyxcbiAgICAncHVsbFhzJyxcbiAgICAncHVzaCcsXG4gICAgJ3B1c2hMZycsXG4gICAgJ3B1c2hNZCcsXG4gICAgJ3B1c2hTbScsXG4gICAgJ3B1c2hYbCcsXG4gICAgJ3B1c2hYcycsXG4gICAgJ3NpemUnLFxuICAgICdzaXplTGcnLFxuICAgICdzaXplTWQnLFxuICAgICdzaXplU20nLFxuICAgICdzaXplWGwnLFxuICAgICdzaXplWHMnLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25Db2wge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uQ29sIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25Db2wge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25Db250ZW50LFxuICBpbnB1dHM6IFsnY29sb3InLCAnZm9yY2VPdmVyc2Nyb2xsJywgJ2Z1bGxzY3JlZW4nLCAnc2Nyb2xsRXZlbnRzJywgJ3Njcm9sbFgnLCAnc2Nyb2xsWSddLFxuICBtZXRob2RzOiBbJ2dldFNjcm9sbEVsZW1lbnQnLCAnc2Nyb2xsVG9Ub3AnLCAnc2Nyb2xsVG9Cb3R0b20nLCAnc2Nyb2xsQnlQb2ludCcsICdzY3JvbGxUb1BvaW50J10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2ZvcmNlT3ZlcnNjcm9sbCcsICdmdWxsc2NyZWVuJywgJ3Njcm9sbEV2ZW50cycsICdzY3JvbGxYJywgJ3Njcm9sbFknXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvblNjcm9sbFN0YXJ0JywgJ2lvblNjcm9sbCcsICdpb25TY3JvbGxFbmQnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBTY3JvbGxCYXNlRGV0YWlsIGFzIElJb25Db250ZW50U2Nyb2xsQmFzZURldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTY3JvbGxEZXRhaWwgYXMgSUlvbkNvbnRlbnRTY3JvbGxEZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkNvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLklvbkNvbnRlbnQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzY3JvbGwgaGFzIHN0YXJ0ZWQuIFRoaXMgZXZlbnQgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC5cblNldCBgc2Nyb2xsRXZlbnRzYCB0byBgdHJ1ZWAgdG8gZW5hYmxlLlxuICAgKi9cbiAgaW9uU2Nyb2xsU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uQ29udGVudFNjcm9sbEJhc2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hpbGUgc2Nyb2xsaW5nLiBUaGlzIGV2ZW50IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuXG5TZXQgYHNjcm9sbEV2ZW50c2AgdG8gYHRydWVgIHRvIGVuYWJsZS5cbiAgICovXG4gIGlvblNjcm9sbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25Db250ZW50U2Nyb2xsRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNjcm9sbCBoYXMgZW5kZWQuIFRoaXMgZXZlbnQgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC5cblNldCBgc2Nyb2xsRXZlbnRzYCB0byBgdHJ1ZWAgdG8gZW5hYmxlLlxuICAgKi9cbiAgaW9uU2Nyb2xsRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvbkNvbnRlbnRTY3JvbGxCYXNlRGV0YWlsPj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uRGF0ZXRpbWUsXG4gIGlucHV0czogW1xuICAgICdjYW5jZWxUZXh0JyxcbiAgICAnY2xlYXJUZXh0JyxcbiAgICAnY29sb3InLFxuICAgICdkYXlWYWx1ZXMnLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2RvbmVUZXh0JyxcbiAgICAnZmlyc3REYXlPZldlZWsnLFxuICAgICdoaWdobGlnaHRlZERhdGVzJyxcbiAgICAnaG91ckN5Y2xlJyxcbiAgICAnaG91clZhbHVlcycsXG4gICAgJ2lzRGF0ZUVuYWJsZWQnLFxuICAgICdsb2NhbGUnLFxuICAgICdtYXgnLFxuICAgICdtaW4nLFxuICAgICdtaW51dGVWYWx1ZXMnLFxuICAgICdtb2RlJyxcbiAgICAnbW9udGhWYWx1ZXMnLFxuICAgICdtdWx0aXBsZScsXG4gICAgJ25hbWUnLFxuICAgICdwcmVmZXJXaGVlbCcsXG4gICAgJ3ByZXNlbnRhdGlvbicsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAnc2hvd0NsZWFyQnV0dG9uJyxcbiAgICAnc2hvd0RlZmF1bHRCdXR0b25zJyxcbiAgICAnc2hvd0RlZmF1bHRUaW1lTGFiZWwnLFxuICAgICdzaG93RGVmYXVsdFRpdGxlJyxcbiAgICAnc2l6ZScsXG4gICAgJ3RpdGxlU2VsZWN0ZWREYXRlc0Zvcm1hdHRlcicsXG4gICAgJ3ZhbHVlJyxcbiAgICAneWVhclZhbHVlcycsXG4gIF0sXG4gIG1ldGhvZHM6IFsnY29uZmlybScsICdyZXNldCcsICdjYW5jZWwnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tZGF0ZXRpbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXG4gICAgJ2NhbmNlbFRleHQnLFxuICAgICdjbGVhclRleHQnLFxuICAgICdjb2xvcicsXG4gICAgJ2RheVZhbHVlcycsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAnZG9uZVRleHQnLFxuICAgICdmaXJzdERheU9mV2VlaycsXG4gICAgJ2hpZ2hsaWdodGVkRGF0ZXMnLFxuICAgICdob3VyQ3ljbGUnLFxuICAgICdob3VyVmFsdWVzJyxcbiAgICAnaXNEYXRlRW5hYmxlZCcsXG4gICAgJ2xvY2FsZScsXG4gICAgJ21heCcsXG4gICAgJ21pbicsXG4gICAgJ21pbnV0ZVZhbHVlcycsXG4gICAgJ21vZGUnLFxuICAgICdtb250aFZhbHVlcycsXG4gICAgJ211bHRpcGxlJyxcbiAgICAnbmFtZScsXG4gICAgJ3ByZWZlcldoZWVsJyxcbiAgICAncHJlc2VudGF0aW9uJyxcbiAgICAncmVhZG9ubHknLFxuICAgICdzaG93Q2xlYXJCdXR0b24nLFxuICAgICdzaG93RGVmYXVsdEJ1dHRvbnMnLFxuICAgICdzaG93RGVmYXVsdFRpbWVMYWJlbCcsXG4gICAgJ3Nob3dEZWZhdWx0VGl0bGUnLFxuICAgICdzaXplJyxcbiAgICAndGl0bGVTZWxlY3RlZERhdGVzRm9ybWF0dGVyJyxcbiAgICAndmFsdWUnLFxuICAgICd5ZWFyVmFsdWVzJyxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uRGF0ZXRpbWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpb25DYW5jZWwnLCAnaW9uQ2hhbmdlJywgJ2lvbkZvY3VzJywgJ2lvbkJsdXInXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBEYXRldGltZUNoYW5nZUV2ZW50RGV0YWlsIGFzIElJb25EYXRldGltZURhdGV0aW1lQ2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkRhdGV0aW1lIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25EYXRldGltZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRhdGV0aW1lIHNlbGVjdGlvbiB3YXMgY2FuY2VsbGVkLlxuICAgKi9cbiAgaW9uQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSAoc2VsZWN0ZWQgZGF0ZSkgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uRGF0ZXRpbWVEYXRldGltZUNoYW5nZUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRhdGV0aW1lIGhhcyBmb2N1cy5cbiAgICovXG4gIGlvbkZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkYXRldGltZSBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGlvbkJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uRGF0ZXRpbWVCdXR0b24sXG4gIGlucHV0czogWydjb2xvcicsICdkYXRldGltZScsICdkaXNhYmxlZCcsICdtb2RlJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWRhdGV0aW1lLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnZGF0ZXRpbWUnLCAnZGlzYWJsZWQnLCAnbW9kZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25EYXRldGltZUJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25EYXRldGltZUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuSW9uRGF0ZXRpbWVCdXR0b24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25GYWIsXG4gIGlucHV0czogWydhY3RpdmF0ZWQnLCAnZWRnZScsICdob3Jpem9udGFsJywgJ3ZlcnRpY2FsJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tZmFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmF0ZWQnLCAnZWRnZScsICdob3Jpem9udGFsJywgJ3ZlcnRpY2FsJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbkZhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25GYWIgZXh0ZW5kcyBDb21wb25lbnRzLklvbkZhYiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkZhYkJ1dHRvbixcbiAgaW5wdXRzOiBbXG4gICAgJ2FjdGl2YXRlZCcsXG4gICAgJ2Nsb3NlSWNvbicsXG4gICAgJ2NvbG9yJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdkb3dubG9hZCcsXG4gICAgJ2hyZWYnLFxuICAgICdtb2RlJyxcbiAgICAncmVsJyxcbiAgICAncm91dGVyQW5pbWF0aW9uJyxcbiAgICAncm91dGVyRGlyZWN0aW9uJyxcbiAgICAnc2hvdycsXG4gICAgJ3NpemUnLFxuICAgICd0YXJnZXQnLFxuICAgICd0cmFuc2x1Y2VudCcsXG4gICAgJ3R5cGUnLFxuICBdLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1mYWItYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW1xuICAgICdhY3RpdmF0ZWQnLFxuICAgICdjbG9zZUljb24nLFxuICAgICdjb2xvcicsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAnZG93bmxvYWQnLFxuICAgICdocmVmJyxcbiAgICAnbW9kZScsXG4gICAgJ3JlbCcsXG4gICAgJ3JvdXRlckFuaW1hdGlvbicsXG4gICAgJ3JvdXRlckRpcmVjdGlvbicsXG4gICAgJ3Nob3cnLFxuICAgICdzaXplJyxcbiAgICAndGFyZ2V0JyxcbiAgICAndHJhbnNsdWNlbnQnLFxuICAgICd0eXBlJyxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uRmFiQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uRm9jdXMnLCAnaW9uQmx1ciddKTtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uRmFiQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25GYWJCdXR0b24ge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaGFzIGZvY3VzLlxuICAgKi9cbiAgaW9uRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGlvbkJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uRmFiTGlzdCxcbiAgaW5wdXRzOiBbJ2FjdGl2YXRlZCcsICdzaWRlJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWZhYi1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmF0ZWQnLCAnc2lkZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25GYWJMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkZhYkxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLklvbkZhYkxpc3Qge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25Gb290ZXIsXG4gIGlucHV0czogWydjb2xsYXBzZScsICdtb2RlJywgJ3RyYW5zbHVjZW50J10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2UnLCAnbW9kZScsICd0cmFuc2x1Y2VudCddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25Gb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25Gb290ZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25HcmlkLFxuICBpbnB1dHM6IFsnZml4ZWQnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZml4ZWQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uR3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25HcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25HcmlkIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uSGVhZGVyLFxuICBpbnB1dHM6IFsnY29sbGFwc2UnLCAnbW9kZScsICd0cmFuc2x1Y2VudCddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlJywgJ21vZGUnLCAndHJhbnNsdWNlbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuSW9uSGVhZGVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uSW1nLFxuICBpbnB1dHM6IFsnYWx0JywgJ3NyYyddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1pbWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsdCcsICdzcmMnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uSW1nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uSW1nV2lsbExvYWQnLCAnaW9uSW1nRGlkTG9hZCcsICdpb25FcnJvciddKTtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uSW1nIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25JbWcge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbWcgc3JjIGhhcyBiZWVuIHNldFxuICAgKi9cbiAgaW9uSW1nV2lsbExvYWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGltYWdlIGhhcyBmaW5pc2hlZCBsb2FkaW5nXG4gICAqL1xuICBpb25JbWdEaWRMb2FkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbWcgZmFpbHMgdG8gbG9hZFxuICAgKi9cbiAgaW9uRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uSW5maW5pdGVTY3JvbGwsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdwb3NpdGlvbicsICd0aHJlc2hvbGQnXSxcbiAgbWV0aG9kczogWydjb21wbGV0ZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1pbmZpbml0ZS1zY3JvbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3Bvc2l0aW9uJywgJ3RocmVzaG9sZCddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25JbmZpbml0ZVNjcm9sbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvbkluZmluaXRlJ10pO1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25JbmZpbml0ZVNjcm9sbCBleHRlbmRzIENvbXBvbmVudHMuSW9uSW5maW5pdGVTY3JvbGwge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzY3JvbGwgcmVhY2hlc1xudGhlIHRocmVzaG9sZCBkaXN0YW5jZS4gRnJvbSB3aXRoaW4geW91ciBpbmZpbml0ZSBoYW5kbGVyLFxueW91IG11c3QgY2FsbCB0aGUgaW5maW5pdGUgc2Nyb2xsJ3MgYGNvbXBsZXRlKClgIG1ldGhvZCB3aGVuXG55b3VyIGFzeW5jIG9wZXJhdGlvbiBoYXMgY29tcGxldGVkLlxuICAgKi9cbiAgaW9uSW5maW5pdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uSW5maW5pdGVTY3JvbGxDb250ZW50LFxuICBpbnB1dHM6IFsnbG9hZGluZ1NwaW5uZXInLCAnbG9hZGluZ1RleHQnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24taW5maW5pdGUtc2Nyb2xsLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvYWRpbmdTcGlubmVyJywgJ2xvYWRpbmdUZXh0J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbkluZmluaXRlU2Nyb2xsQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25JbmZpbml0ZVNjcm9sbENvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLklvbkluZmluaXRlU2Nyb2xsQ29udGVudCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbklucHV0LFxuICBpbnB1dHM6IFtcbiAgICAnYWNjZXB0JyxcbiAgICAnYXV0b2NhcGl0YWxpemUnLFxuICAgICdhdXRvY29tcGxldGUnLFxuICAgICdhdXRvY29ycmVjdCcsXG4gICAgJ2F1dG9mb2N1cycsXG4gICAgJ2NsZWFySW5wdXQnLFxuICAgICdjbGVhck9uRWRpdCcsXG4gICAgJ2NvbG9yJyxcbiAgICAnY291bnRlcicsXG4gICAgJ2NvdW50ZXJGb3JtYXR0ZXInLFxuICAgICdkZWJvdW5jZScsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAnZW50ZXJrZXloaW50JyxcbiAgICAnZXJyb3JUZXh0JyxcbiAgICAnZmlsbCcsXG4gICAgJ2hlbHBlclRleHQnLFxuICAgICdpbnB1dG1vZGUnLFxuICAgICdsYWJlbCcsXG4gICAgJ2xhYmVsUGxhY2VtZW50JyxcbiAgICAnbGVnYWN5JyxcbiAgICAnbWF4JyxcbiAgICAnbWF4bGVuZ3RoJyxcbiAgICAnbWluJyxcbiAgICAnbWlubGVuZ3RoJyxcbiAgICAnbW9kZScsXG4gICAgJ211bHRpcGxlJyxcbiAgICAnbmFtZScsXG4gICAgJ3BhdHRlcm4nLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAncmVxdWlyZWQnLFxuICAgICdzaGFwZScsXG4gICAgJ3NpemUnLFxuICAgICdzcGVsbGNoZWNrJyxcbiAgICAnc3RlcCcsXG4gICAgJ3R5cGUnLFxuICAgICd2YWx1ZScsXG4gIF0sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZ2V0SW5wdXRFbGVtZW50J10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW1xuICAgICdhY2NlcHQnLFxuICAgICdhdXRvY2FwaXRhbGl6ZScsXG4gICAgJ2F1dG9jb21wbGV0ZScsXG4gICAgJ2F1dG9jb3JyZWN0JyxcbiAgICAnYXV0b2ZvY3VzJyxcbiAgICAnY2xlYXJJbnB1dCcsXG4gICAgJ2NsZWFyT25FZGl0JyxcbiAgICAnY29sb3InLFxuICAgICdjb3VudGVyJyxcbiAgICAnY291bnRlckZvcm1hdHRlcicsXG4gICAgJ2RlYm91bmNlJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdlbnRlcmtleWhpbnQnLFxuICAgICdlcnJvclRleHQnLFxuICAgICdmaWxsJyxcbiAgICAnaGVscGVyVGV4dCcsXG4gICAgJ2lucHV0bW9kZScsXG4gICAgJ2xhYmVsJyxcbiAgICAnbGFiZWxQbGFjZW1lbnQnLFxuICAgICdsZWdhY3knLFxuICAgICdtYXgnLFxuICAgICdtYXhsZW5ndGgnLFxuICAgICdtaW4nLFxuICAgICdtaW5sZW5ndGgnLFxuICAgICdtb2RlJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICduYW1lJyxcbiAgICAncGF0dGVybicsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAncmVhZG9ubHknLFxuICAgICdyZXF1aXJlZCcsXG4gICAgJ3NoYXBlJyxcbiAgICAnc2l6ZScsXG4gICAgJ3NwZWxsY2hlY2snLFxuICAgICdzdGVwJyxcbiAgICAndHlwZScsXG4gICAgJ3ZhbHVlJyxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uSW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpb25JbnB1dCcsICdpb25DaGFuZ2UnLCAnaW9uQmx1cicsICdpb25Gb2N1cyddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IElucHV0SW5wdXRFdmVudERldGFpbCBhcyBJSW9uSW5wdXRJbnB1dElucHV0RXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgSW5wdXRDaGFuZ2VFdmVudERldGFpbCBhcyBJSW9uSW5wdXRJbnB1dENoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25JbnB1dCBleHRlbmRzIENvbXBvbmVudHMuSW9uSW5wdXQge1xuICAvKipcbiAgICogVGhlIGBpb25JbnB1dGAgZXZlbnQgaXMgZmlyZWQgZWFjaCB0aW1lIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBpbnB1dCdzIHZhbHVlLlxuVW5saWtlIHRoZSBgaW9uQ2hhbmdlYCBldmVudCwgdGhlIGBpb25JbnB1dGAgZXZlbnQgaXMgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvblxudG8gdGhlIGlucHV0J3MgdmFsdWUuIFRoaXMgdHlwaWNhbGx5IGhhcHBlbnMgZm9yIGVhY2gga2V5c3Ryb2tlIGFzIHRoZSB1c2VyIHR5cGVzLlxuXG5Gb3IgZWxlbWVudHMgdGhhdCBhY2NlcHQgdGV4dCBpbnB1dCAoYHR5cGU9dGV4dGAsIGB0eXBlPXRlbGAsIGV0Yy4pLCB0aGUgaW50ZXJmYWNlXG5pcyBbYElucHV0RXZlbnRgXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvSW5wdXRFdmVudCk7IGZvciBvdGhlcnMsXG50aGUgaW50ZXJmYWNlIGlzIFtgRXZlbnRgXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnQpLiBJZlxudGhlIGlucHV0IGlzIGNsZWFyZWQgb24gZWRpdCwgdGhlIHR5cGUgaXMgYG51bGxgLlxuICAgKi9cbiAgaW9uSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uSW5wdXRJbnB1dElucHV0RXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIFRoZSBgaW9uQ2hhbmdlYCBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBpbnB1dCdzIHZhbHVlLlxuVW5saWtlIHRoZSBgaW9uSW5wdXRgIGV2ZW50LCB0aGUgYGlvbkNoYW5nZWAgZXZlbnQgaXMgb25seSBmaXJlZCB3aGVuIGNoYW5nZXNcbmFyZSBjb21taXR0ZWQsIG5vdCBhcyB0aGUgdXNlciB0eXBlcy5cblxuRGVwZW5kaW5nIG9uIHRoZSB3YXkgdGhlIHVzZXJzIGludGVyYWN0cyB3aXRoIHRoZSBlbGVtZW50LCB0aGUgYGlvbkNoYW5nZWBcbmV2ZW50IGZpcmVzIGF0IGEgZGlmZmVyZW50IG1vbWVudDpcbi0gV2hlbiB0aGUgdXNlciBjb21taXRzIHRoZSBjaGFuZ2UgZXhwbGljaXRseSAoZS5nLiBieSBzZWxlY3RpbmcgYSBkYXRlXG5mcm9tIGEgZGF0ZSBwaWNrZXIgZm9yIGA8aW9uLWlucHV0IHR5cGU9XCJkYXRlXCI+YCwgcHJlc3NpbmcgdGhlIFwiRW50ZXJcIiBrZXksIGV0Yy4pLlxuLSBXaGVuIHRoZSBlbGVtZW50IGxvc2VzIGZvY3VzIGFmdGVyIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZDogZm9yIGVsZW1lbnRzXG53aGVyZSB0aGUgdXNlcidzIGludGVyYWN0aW9uIGlzIHR5cGluZy5cbiAgICovXG4gIGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25JbnB1dElucHV0Q2hhbmdlRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpb25CbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgZm9jdXMuXG4gICAqL1xuICBpb25Gb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25JdGVtLFxuICBpbnB1dHM6IFtcbiAgICAnYnV0dG9uJyxcbiAgICAnY29sb3InLFxuICAgICdjb3VudGVyJyxcbiAgICAnY291bnRlckZvcm1hdHRlcicsXG4gICAgJ2RldGFpbCcsXG4gICAgJ2RldGFpbEljb24nLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2Rvd25sb2FkJyxcbiAgICAnZmlsbCcsXG4gICAgJ2hyZWYnLFxuICAgICdsaW5lcycsXG4gICAgJ21vZGUnLFxuICAgICdyZWwnLFxuICAgICdyb3V0ZXJBbmltYXRpb24nLFxuICAgICdyb3V0ZXJEaXJlY3Rpb24nLFxuICAgICdzaGFwZScsXG4gICAgJ3RhcmdldCcsXG4gICAgJ3R5cGUnLFxuICBdLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW1xuICAgICdidXR0b24nLFxuICAgICdjb2xvcicsXG4gICAgJ2NvdW50ZXInLFxuICAgICdjb3VudGVyRm9ybWF0dGVyJyxcbiAgICAnZGV0YWlsJyxcbiAgICAnZGV0YWlsSWNvbicsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAnZG93bmxvYWQnLFxuICAgICdmaWxsJyxcbiAgICAnaHJlZicsXG4gICAgJ2xpbmVzJyxcbiAgICAnbW9kZScsXG4gICAgJ3JlbCcsXG4gICAgJ3JvdXRlckFuaW1hdGlvbicsXG4gICAgJ3JvdXRlckRpcmVjdGlvbicsXG4gICAgJ3NoYXBlJyxcbiAgICAndGFyZ2V0JyxcbiAgICAndHlwZScsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uSXRlbSBleHRlbmRzIENvbXBvbmVudHMuSW9uSXRlbSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkl0ZW1EaXZpZGVyLFxuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kZScsICdzdGlja3knXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24taXRlbS1kaXZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdtb2RlJywgJ3N0aWNreSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25JdGVtRGl2aWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25JdGVtRGl2aWRlciBleHRlbmRzIENvbXBvbmVudHMuSW9uSXRlbURpdmlkZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25JdGVtR3JvdXAsXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWl0ZW0tZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uSXRlbUdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkl0ZW1Hcm91cCBleHRlbmRzIENvbXBvbmVudHMuSW9uSXRlbUdyb3VwIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uSXRlbU9wdGlvbixcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2V4cGFuZGFibGUnLCAnaHJlZicsICdtb2RlJywgJ3JlbCcsICd0YXJnZXQnLCAndHlwZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1pdGVtLW9wdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZXhwYW5kYWJsZScsICdocmVmJywgJ21vZGUnLCAncmVsJywgJ3RhcmdldCcsICd0eXBlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbkl0ZW1PcHRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uSXRlbU9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuSW9uSXRlbU9wdGlvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkl0ZW1PcHRpb25zLFxuICBpbnB1dHM6IFsnc2lkZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1pdGVtLW9wdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NpZGUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uSXRlbU9wdGlvbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpb25Td2lwZSddKTtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uSXRlbU9wdGlvbnMgZXh0ZW5kcyBDb21wb25lbnRzLklvbkl0ZW1PcHRpb25zIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaXRlbSBoYXMgYmVlbiBmdWxseSBzd2lwZWQuXG4gICAqL1xuICBpb25Td2lwZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkl0ZW1TbGlkaW5nLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgbWV0aG9kczogWydnZXRPcGVuQW1vdW50JywgJ2dldFNsaWRpbmdSYXRpbycsICdvcGVuJywgJ2Nsb3NlJywgJ2Nsb3NlT3BlbmVkJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWl0ZW0tc2xpZGluZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uSXRlbVNsaWRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpb25EcmFnJ10pO1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25JdGVtU2xpZGluZyBleHRlbmRzIENvbXBvbmVudHMuSW9uSXRlbVNsaWRpbmcge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzbGlkaW5nIHBvc2l0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBpb25EcmFnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uTGFiZWwsXG4gIGlucHV0czogWydjb2xvcicsICdtb2RlJywgJ3Bvc2l0aW9uJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdtb2RlJywgJ3Bvc2l0aW9uJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbkxhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkxhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25MYWJlbCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbkxpc3QsXG4gIGlucHV0czogWydpbnNldCcsICdsaW5lcycsICdtb2RlJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2VTbGlkaW5nSXRlbXMnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaW5zZXQnLCAnbGluZXMnLCAnbW9kZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25MaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLklvbkxpc3Qge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25MaXN0SGVhZGVyLFxuICBpbnB1dHM6IFsnY29sb3InLCAnbGluZXMnLCAnbW9kZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1saXN0LWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnbGluZXMnLCAnbW9kZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25MaXN0SGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbkxpc3RIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLklvbkxpc3RIZWFkZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25Mb2FkaW5nLFxuICBpbnB1dHM6IFtcbiAgICAnYW5pbWF0ZWQnLFxuICAgICdiYWNrZHJvcERpc21pc3MnLFxuICAgICdjc3NDbGFzcycsXG4gICAgJ2R1cmF0aW9uJyxcbiAgICAnZW50ZXJBbmltYXRpb24nLFxuICAgICdodG1sQXR0cmlidXRlcycsXG4gICAgJ2lzT3BlbicsXG4gICAgJ2tleWJvYXJkQ2xvc2UnLFxuICAgICdsZWF2ZUFuaW1hdGlvbicsXG4gICAgJ21lc3NhZ2UnLFxuICAgICdtb2RlJyxcbiAgICAnc2hvd0JhY2tkcm9wJyxcbiAgICAnc3Bpbm5lcicsXG4gICAgJ3RyYW5zbHVjZW50JyxcbiAgICAndHJpZ2dlcicsXG4gIF0sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLWxvYWRpbmcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXG4gICAgJ2FuaW1hdGVkJyxcbiAgICAnYmFja2Ryb3BEaXNtaXNzJyxcbiAgICAnY3NzQ2xhc3MnLFxuICAgICdkdXJhdGlvbicsXG4gICAgJ2VudGVyQW5pbWF0aW9uJyxcbiAgICAnaHRtbEF0dHJpYnV0ZXMnLFxuICAgICdpc09wZW4nLFxuICAgICdrZXlib2FyZENsb3NlJyxcbiAgICAnbGVhdmVBbmltYXRpb24nLFxuICAgICdtZXNzYWdlJyxcbiAgICAnbW9kZScsXG4gICAgJ3Nob3dCYWNrZHJvcCcsXG4gICAgJ3NwaW5uZXInLFxuICAgICd0cmFuc2x1Y2VudCcsXG4gICAgJ3RyaWdnZXInLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25Mb2FkaW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFtcbiAgICAgICdpb25Mb2FkaW5nRGlkUHJlc2VudCcsXG4gICAgICAnaW9uTG9hZGluZ1dpbGxQcmVzZW50JyxcbiAgICAgICdpb25Mb2FkaW5nV2lsbERpc21pc3MnLFxuICAgICAgJ2lvbkxvYWRpbmdEaWREaXNtaXNzJyxcbiAgICAgICdkaWRQcmVzZW50JyxcbiAgICAgICd3aWxsUHJlc2VudCcsXG4gICAgICAnd2lsbERpc21pc3MnLFxuICAgICAgJ2RpZERpc21pc3MnLFxuICAgIF0pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgT3ZlcmxheUV2ZW50RGV0YWlsIGFzIElJb25Mb2FkaW5nT3ZlcmxheUV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25Mb2FkaW5nIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25Mb2FkaW5nIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGxvYWRpbmcgaGFzIHByZXNlbnRlZC5cbiAgICovXG4gIGlvbkxvYWRpbmdEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIGxvYWRpbmcgaGFzIHByZXNlbnRlZC5cbiAgICovXG4gIGlvbkxvYWRpbmdXaWxsUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBsb2FkaW5nIGhhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBpb25Mb2FkaW5nV2lsbERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uTG9hZGluZ092ZXJsYXlFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgbG9hZGluZyBoYXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgaW9uTG9hZGluZ0RpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uTG9hZGluZ092ZXJsYXlFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgbG9hZGluZyBpbmRpY2F0b3IgaGFzIHByZXNlbnRlZC5cblNob3J0aGFuZCBmb3IgaW9uTG9hZGluZ1dpbGxEaXNtaXNzLlxuICAgKi9cbiAgZGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBsb2FkaW5nIGluZGljYXRvciBoYXMgcHJlc2VudGVkLlxuU2hvcnRoYW5kIGZvciBpb25Mb2FkaW5nV2lsbFByZXNlbnQuXG4gICAqL1xuICB3aWxsUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBsb2FkaW5nIGluZGljYXRvciBoYXMgZGlzbWlzc2VkLlxuU2hvcnRoYW5kIGZvciBpb25Mb2FkaW5nV2lsbERpc21pc3MuXG4gICAqL1xuICB3aWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25Mb2FkaW5nT3ZlcmxheUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBsb2FkaW5nIGluZGljYXRvciBoYXMgZGlzbWlzc2VkLlxuU2hvcnRoYW5kIGZvciBpb25Mb2FkaW5nRGlkRGlzbWlzcy5cbiAgICovXG4gIGRpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uTG9hZGluZ092ZXJsYXlFdmVudERldGFpbD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbk1lbnUsXG4gIGlucHV0czogWydjb250ZW50SWQnLCAnZGlzYWJsZWQnLCAnbWF4RWRnZVN0YXJ0JywgJ21lbnVJZCcsICdzaWRlJywgJ3N3aXBlR2VzdHVyZScsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnaXNPcGVuJywgJ2lzQWN0aXZlJywgJ29wZW4nLCAnY2xvc2UnLCAndG9nZ2xlJywgJ3NldE9wZW4nXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudElkJywgJ2Rpc2FibGVkJywgJ21heEVkZ2VTdGFydCcsICdtZW51SWQnLCAnc2lkZScsICdzd2lwZUdlc3R1cmUnLCAndHlwZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25NZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uV2lsbE9wZW4nLCAnaW9uV2lsbENsb3NlJywgJ2lvbkRpZE9wZW4nLCAnaW9uRGlkQ2xvc2UnXSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbk1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLklvbk1lbnUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBtZW51IGlzIGFib3V0IHRvIGJlIG9wZW5lZC5cbiAgICovXG4gIGlvbldpbGxPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBtZW51IGlzIGFib3V0IHRvIGJlIGNsb3NlZC5cbiAgICovXG4gIGlvbldpbGxDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgbWVudSBpcyBvcGVuLlxuICAgKi9cbiAgaW9uRGlkT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgbWVudSBpcyBjbG9zZWQuXG4gICAqL1xuICBpb25EaWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25NZW51QnV0dG9uLFxuICBpbnB1dHM6IFsnYXV0b0hpZGUnLCAnY29sb3InLCAnZGlzYWJsZWQnLCAnbWVudScsICdtb2RlJywgJ3R5cGUnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tbWVudS1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9IaWRlJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ21lbnUnLCAnbW9kZScsICd0eXBlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbk1lbnVCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uTWVudUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuSW9uTWVudUJ1dHRvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbk1lbnVUb2dnbGUsXG4gIGlucHV0czogWydhdXRvSGlkZScsICdtZW51J10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLW1lbnUtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvSGlkZScsICdtZW51J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvbk1lbnVUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uTWVudVRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuSW9uTWVudVRvZ2dsZSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvbk5hdkxpbmssXG4gIGlucHV0czogWydjb21wb25lbnQnLCAnY29tcG9uZW50UHJvcHMnLCAncm91dGVyQW5pbWF0aW9uJywgJ3JvdXRlckRpcmVjdGlvbiddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1uYXYtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29tcG9uZW50JywgJ2NvbXBvbmVudFByb3BzJywgJ3JvdXRlckFuaW1hdGlvbicsICdyb3V0ZXJEaXJlY3Rpb24nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uTmF2TGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25OYXZMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25OYXZMaW5rIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uTm90ZSxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ21vZGUnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tbm90ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25Ob3RlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvbk5vdGUgZXh0ZW5kcyBDb21wb25lbnRzLklvbk5vdGUge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25QaWNrZXIsXG4gIGlucHV0czogW1xuICAgICdhbmltYXRlZCcsXG4gICAgJ2JhY2tkcm9wRGlzbWlzcycsXG4gICAgJ2J1dHRvbnMnLFxuICAgICdjb2x1bW5zJyxcbiAgICAnY3NzQ2xhc3MnLFxuICAgICdkdXJhdGlvbicsXG4gICAgJ2VudGVyQW5pbWF0aW9uJyxcbiAgICAnaHRtbEF0dHJpYnV0ZXMnLFxuICAgICdpc09wZW4nLFxuICAgICdrZXlib2FyZENsb3NlJyxcbiAgICAnbGVhdmVBbmltYXRpb24nLFxuICAgICdtb2RlJyxcbiAgICAnc2hvd0JhY2tkcm9wJyxcbiAgICAndHJpZ2dlcicsXG4gIF0sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJywgJ2dldENvbHVtbiddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXG4gICAgJ2FuaW1hdGVkJyxcbiAgICAnYmFja2Ryb3BEaXNtaXNzJyxcbiAgICAnYnV0dG9ucycsXG4gICAgJ2NvbHVtbnMnLFxuICAgICdjc3NDbGFzcycsXG4gICAgJ2R1cmF0aW9uJyxcbiAgICAnZW50ZXJBbmltYXRpb24nLFxuICAgICdodG1sQXR0cmlidXRlcycsXG4gICAgJ2lzT3BlbicsXG4gICAgJ2tleWJvYXJkQ2xvc2UnLFxuICAgICdsZWF2ZUFuaW1hdGlvbicsXG4gICAgJ21vZGUnLFxuICAgICdzaG93QmFja2Ryb3AnLFxuICAgICd0cmlnZ2VyJyxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFtcbiAgICAgICdpb25QaWNrZXJEaWRQcmVzZW50JyxcbiAgICAgICdpb25QaWNrZXJXaWxsUHJlc2VudCcsXG4gICAgICAnaW9uUGlja2VyV2lsbERpc21pc3MnLFxuICAgICAgJ2lvblBpY2tlckRpZERpc21pc3MnLFxuICAgICAgJ2RpZFByZXNlbnQnLFxuICAgICAgJ3dpbGxQcmVzZW50JyxcbiAgICAgICd3aWxsRGlzbWlzcycsXG4gICAgICAnZGlkRGlzbWlzcycsXG4gICAgXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBPdmVybGF5RXZlbnREZXRhaWwgYXMgSUlvblBpY2tlck92ZXJsYXlFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25QaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgcGlja2VyIGhhcyBwcmVzZW50ZWQuXG4gICAqL1xuICBpb25QaWNrZXJEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIHBpY2tlciBoYXMgcHJlc2VudGVkLlxuICAgKi9cbiAgaW9uUGlja2VyV2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgcGlja2VyIGhhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBpb25QaWNrZXJXaWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25QaWNrZXJPdmVybGF5RXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHBpY2tlciBoYXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgaW9uUGlja2VyRGlkRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25QaWNrZXJPdmVybGF5RXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHBpY2tlciBoYXMgcHJlc2VudGVkLlxuU2hvcnRoYW5kIGZvciBpb25QaWNrZXJXaWxsRGlzbWlzcy5cbiAgICovXG4gIGRpZFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgcGlja2VyIGhhcyBwcmVzZW50ZWQuXG5TaG9ydGhhbmQgZm9yIGlvblBpY2tlcldpbGxQcmVzZW50LlxuICAgKi9cbiAgd2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgcGlja2VyIGhhcyBkaXNtaXNzZWQuXG5TaG9ydGhhbmQgZm9yIGlvblBpY2tlcldpbGxEaXNtaXNzLlxuICAgKi9cbiAgd2lsbERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uUGlja2VyT3ZlcmxheUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBwaWNrZXIgaGFzIGRpc21pc3NlZC5cblNob3J0aGFuZCBmb3IgaW9uUGlja2VyRGlkRGlzbWlzcy5cbiAgICovXG4gIGRpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uUGlja2VyT3ZlcmxheUV2ZW50RGV0YWlsPj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uUHJvZ3Jlc3NCYXIsXG4gIGlucHV0czogWydidWZmZXInLCAnY29sb3InLCAnbW9kZScsICdyZXZlcnNlZCcsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLXByb2dyZXNzLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnVmZmVyJywgJ2NvbG9yJywgJ21vZGUnLCAncmV2ZXJzZWQnLCAndHlwZScsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25Qcm9ncmVzc0JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25Qcm9ncmVzc0JhciBleHRlbmRzIENvbXBvbmVudHMuSW9uUHJvZ3Jlc3NCYXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25SYWRpbyxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2p1c3RpZnknLCAnbGFiZWxQbGFjZW1lbnQnLCAnbGVnYWN5JywgJ21vZGUnLCAnbmFtZScsICd2YWx1ZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzYWJsZWQnLCAnanVzdGlmeScsICdsYWJlbFBsYWNlbWVudCcsICdsZWdhY3knLCAnbW9kZScsICduYW1lJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvblJhZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uRm9jdXMnLCAnaW9uQmx1ciddKTtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uUmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLklvblJhZGlvIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcmFkaW8gYnV0dG9uIGhhcyBmb2N1cy5cbiAgICovXG4gIGlvbkZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSByYWRpbyBidXR0b24gbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpb25CbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvblJhZGlvR3JvdXAsXG4gIGlucHV0czogWydhbGxvd0VtcHR5U2VsZWN0aW9uJywgJ25hbWUnLCAndmFsdWUnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tcmFkaW8tZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93RW1wdHlTZWxlY3Rpb24nLCAnbmFtZScsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25SYWRpb0dyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uQ2hhbmdlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgUmFkaW9Hcm91cENoYW5nZUV2ZW50RGV0YWlsIGFzIElJb25SYWRpb0dyb3VwUmFkaW9Hcm91cENoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25SYWRpb0dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25SYWRpb0dyb3VwIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uUmFkaW9Hcm91cFJhZGlvR3JvdXBDaGFuZ2VFdmVudERldGFpbD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvblJhbmdlLFxuICBpbnB1dHM6IFtcbiAgICAnYWN0aXZlQmFyU3RhcnQnLFxuICAgICdjb2xvcicsXG4gICAgJ2RlYm91bmNlJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdkdWFsS25vYnMnLFxuICAgICdsYWJlbCcsXG4gICAgJ2xhYmVsUGxhY2VtZW50JyxcbiAgICAnbGVnYWN5JyxcbiAgICAnbWF4JyxcbiAgICAnbWluJyxcbiAgICAnbW9kZScsXG4gICAgJ25hbWUnLFxuICAgICdwaW4nLFxuICAgICdwaW5Gb3JtYXR0ZXInLFxuICAgICdzbmFwcycsXG4gICAgJ3N0ZXAnLFxuICAgICd0aWNrcycsXG4gICAgJ3ZhbHVlJyxcbiAgXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tcmFuZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXG4gICAgJ2FjdGl2ZUJhclN0YXJ0JyxcbiAgICAnY29sb3InLFxuICAgICdkZWJvdW5jZScsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAnZHVhbEtub2JzJyxcbiAgICAnbGFiZWwnLFxuICAgICdsYWJlbFBsYWNlbWVudCcsXG4gICAgJ2xlZ2FjeScsXG4gICAgJ21heCcsXG4gICAgJ21pbicsXG4gICAgJ21vZGUnLFxuICAgICduYW1lJyxcbiAgICAncGluJyxcbiAgICAncGluRm9ybWF0dGVyJyxcbiAgICAnc25hcHMnLFxuICAgICdzdGVwJyxcbiAgICAndGlja3MnLFxuICAgICd2YWx1ZScsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvblJhbmdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uQ2hhbmdlJywgJ2lvbklucHV0JywgJ2lvbkZvY3VzJywgJ2lvbkJsdXInLCAnaW9uS25vYk1vdmVTdGFydCcsICdpb25Lbm9iTW92ZUVuZCddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFJhbmdlQ2hhbmdlRXZlbnREZXRhaWwgYXMgSUlvblJhbmdlUmFuZ2VDaGFuZ2VFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBSYW5nZUtub2JNb3ZlU3RhcnRFdmVudERldGFpbCBhcyBJSW9uUmFuZ2VSYW5nZUtub2JNb3ZlU3RhcnRFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBSYW5nZUtub2JNb3ZlRW5kRXZlbnREZXRhaWwgYXMgSUlvblJhbmdlUmFuZ2VLbm9iTW92ZUVuZEV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25SYW5nZSBleHRlbmRzIENvbXBvbmVudHMuSW9uUmFuZ2Uge1xuICAvKipcbiAgICogVGhlIGBpb25DaGFuZ2VgIGV2ZW50IGlzIGZpcmVkIGZvciBgPGlvbi1yYW5nZT5gIGVsZW1lbnRzIHdoZW4gdGhlIHVzZXJcbm1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWU6XG4tIFdoZW4gdGhlIHVzZXIgcmVsZWFzZXMgdGhlIGtub2IgYWZ0ZXIgZHJhZ2dpbmc7XG4tIFdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIGtub2Igd2l0aCBrZXlib2FyZCBhcnJvd3NcblxuYGlvbkNoYW5nZWAgaXMgbm90IGZpcmVkIHdoZW4gdGhlIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseS5cbiAgICovXG4gIGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25SYW5nZVJhbmdlQ2hhbmdlRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIFRoZSBgaW9uSW5wdXRgIGV2ZW50IGlzIGZpcmVkIGZvciBgPGlvbi1yYW5nZT5gIGVsZW1lbnRzIHdoZW4gdGhlIHZhbHVlXG5pcyBtb2RpZmllZC4gVW5saWtlIGBpb25DaGFuZ2VgLCBgaW9uSW5wdXRgIGlzIGZpcmVkIGNvbnRpbnVvdXNseVxud2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcgdGhlIGtub2IuXG4gICAqL1xuICBpb25JbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25SYW5nZVJhbmdlQ2hhbmdlRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcmFuZ2UgaGFzIGZvY3VzLlxuICAgKi9cbiAgaW9uRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHJhbmdlIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW9uQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdGFydHMgbW92aW5nIHRoZSByYW5nZSBrbm9iLCB3aGV0aGVyIHRocm91Z2hcbm1vdXNlIGRyYWcsIHRvdWNoIGdlc3R1cmUsIG9yIGtleWJvYXJkIGludGVyYWN0aW9uLlxuICAgKi9cbiAgaW9uS25vYk1vdmVTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25SYW5nZVJhbmdlS25vYk1vdmVTdGFydEV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgZmluaXNoZXMgbW92aW5nIHRoZSByYW5nZSBrbm9iLCB3aGV0aGVyIHRocm91Z2hcbm1vdXNlIGRyYWcsIHRvdWNoIGdlc3R1cmUsIG9yIGtleWJvYXJkIGludGVyYWN0aW9uLlxuICAgKi9cbiAgaW9uS25vYk1vdmVFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uUmFuZ2VSYW5nZUtub2JNb3ZlRW5kRXZlbnREZXRhaWw+Pjtcbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25SZWZyZXNoZXIsXG4gIGlucHV0czogWydjbG9zZUR1cmF0aW9uJywgJ2Rpc2FibGVkJywgJ3B1bGxGYWN0b3InLCAncHVsbE1heCcsICdwdWxsTWluJywgJ3NuYXBiYWNrRHVyYXRpb24nXSxcbiAgbWV0aG9kczogWydjb21wbGV0ZScsICdjYW5jZWwnLCAnZ2V0UHJvZ3Jlc3MnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tcmVmcmVzaGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZUR1cmF0aW9uJywgJ2Rpc2FibGVkJywgJ3B1bGxGYWN0b3InLCAncHVsbE1heCcsICdwdWxsTWluJywgJ3NuYXBiYWNrRHVyYXRpb24nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uUmVmcmVzaGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uUmVmcmVzaCcsICdpb25QdWxsJywgJ2lvblN0YXJ0J10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgUmVmcmVzaGVyRXZlbnREZXRhaWwgYXMgSUlvblJlZnJlc2hlclJlZnJlc2hlckV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25SZWZyZXNoZXIgZXh0ZW5kcyBDb21wb25lbnRzLklvblJlZnJlc2hlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgbGV0cyBnbyBvZiB0aGUgY29udGVudCBhbmQgaGFzIHB1bGxlZCBkb3duXG5mdXJ0aGVyIHRoYW4gdGhlIGBwdWxsTWluYCBvciBwdWxscyB0aGUgY29udGVudCBkb3duIGFuZCBleGNlZWRzIHRoZSBwdWxsTWF4LlxuVXBkYXRlcyB0aGUgcmVmcmVzaGVyIHN0YXRlIHRvIGByZWZyZXNoaW5nYC4gVGhlIGBjb21wbGV0ZSgpYCBtZXRob2Qgc2hvdWxkIGJlXG5jYWxsZWQgd2hlbiB0aGUgYXN5bmMgb3BlcmF0aW9uIGhhcyBjb21wbGV0ZWQuXG4gICAqL1xuICBpb25SZWZyZXNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvblJlZnJlc2hlclJlZnJlc2hlckV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoaWxlIHRoZSB1c2VyIGlzIHB1bGxpbmcgZG93biB0aGUgY29udGVudCBhbmQgZXhwb3NpbmcgdGhlIHJlZnJlc2hlci5cbiAgICovXG4gIGlvblB1bGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgYmVnaW5zIHRvIHN0YXJ0IHB1bGxpbmcgZG93bi5cbiAgICovXG4gIGlvblN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvblJlZnJlc2hlckNvbnRlbnQsXG4gIGlucHV0czogWydwdWxsaW5nSWNvbicsICdwdWxsaW5nVGV4dCcsICdyZWZyZXNoaW5nU3Bpbm5lcicsICdyZWZyZXNoaW5nVGV4dCddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1yZWZyZXNoZXItY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncHVsbGluZ0ljb24nLCAncHVsbGluZ1RleHQnLCAncmVmcmVzaGluZ1NwaW5uZXInLCAncmVmcmVzaGluZ1RleHQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uUmVmcmVzaGVyQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25SZWZyZXNoZXJDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5Jb25SZWZyZXNoZXJDb250ZW50IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uUmVvcmRlcixcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tcmVvcmRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25SZW9yZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblJlb3JkZXIgZXh0ZW5kcyBDb21wb25lbnRzLklvblJlb3JkZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25SZW9yZGVyR3JvdXAsXG4gIGlucHV0czogWydkaXNhYmxlZCddLFxuICBtZXRob2RzOiBbJ2NvbXBsZXRlJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLXJlb3JkZXItZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvblJlb3JkZXJHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvbkl0ZW1SZW9yZGVyJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgSXRlbVJlb3JkZXJFdmVudERldGFpbCBhcyBJSW9uUmVvcmRlckdyb3VwSXRlbVJlb3JkZXJFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uUmVvcmRlckdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25SZW9yZGVyR3JvdXAge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBuZWVkcyB0byBiZSBsaXN0ZW5lZCB0byBpbiBvcmRlciB0byBjb21wbGV0ZSB0aGUgcmVvcmRlciBhY3Rpb24uXG5PbmNlIHRoZSBldmVudCBoYXMgYmVlbiBlbWl0dGVkLCB0aGUgYGNvbXBsZXRlKClgIG1ldGhvZCB0aGVuIG5lZWRzXG50byBiZSBjYWxsZWQgaW4gb3JkZXIgdG8gZmluYWxpemUgdGhlIHJlb3JkZXIgYWN0aW9uLlxuICAgKi9cbiAgaW9uSXRlbVJlb3JkZXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSW9uUmVvcmRlckdyb3VwSXRlbVJlb3JkZXJFdmVudERldGFpbD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvblJpcHBsZUVmZmVjdCxcbiAgaW5wdXRzOiBbJ3R5cGUnXSxcbiAgbWV0aG9kczogWydhZGRSaXBwbGUnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tcmlwcGxlLWVmZmVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndHlwZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25SaXBwbGVFZmZlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uUmlwcGxlRWZmZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5Jb25SaXBwbGVFZmZlY3Qge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25Sb3csXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLXJvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25Sb3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uUm93IGV4dGVuZHMgQ29tcG9uZW50cy5Jb25Sb3cge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25TZWFyY2hiYXIsXG4gIGlucHV0czogW1xuICAgICdhbmltYXRlZCcsXG4gICAgJ2F1dG9jb21wbGV0ZScsXG4gICAgJ2F1dG9jb3JyZWN0JyxcbiAgICAnY2FuY2VsQnV0dG9uSWNvbicsXG4gICAgJ2NhbmNlbEJ1dHRvblRleHQnLFxuICAgICdjbGVhckljb24nLFxuICAgICdjb2xvcicsXG4gICAgJ2RlYm91bmNlJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdlbnRlcmtleWhpbnQnLFxuICAgICdpbnB1dG1vZGUnLFxuICAgICdtb2RlJyxcbiAgICAnbmFtZScsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAnc2VhcmNoSWNvbicsXG4gICAgJ3Nob3dDYW5jZWxCdXR0b24nLFxuICAgICdzaG93Q2xlYXJCdXR0b24nLFxuICAgICdzcGVsbGNoZWNrJyxcbiAgICAndHlwZScsXG4gICAgJ3ZhbHVlJyxcbiAgXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdnZXRJbnB1dEVsZW1lbnQnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tc2VhcmNoYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW1xuICAgICdhbmltYXRlZCcsXG4gICAgJ2F1dG9jb21wbGV0ZScsXG4gICAgJ2F1dG9jb3JyZWN0JyxcbiAgICAnY2FuY2VsQnV0dG9uSWNvbicsXG4gICAgJ2NhbmNlbEJ1dHRvblRleHQnLFxuICAgICdjbGVhckljb24nLFxuICAgICdjb2xvcicsXG4gICAgJ2RlYm91bmNlJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdlbnRlcmtleWhpbnQnLFxuICAgICdpbnB1dG1vZGUnLFxuICAgICdtb2RlJyxcbiAgICAnbmFtZScsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAnc2VhcmNoSWNvbicsXG4gICAgJ3Nob3dDYW5jZWxCdXR0b24nLFxuICAgICdzaG93Q2xlYXJCdXR0b24nLFxuICAgICdzcGVsbGNoZWNrJyxcbiAgICAndHlwZScsXG4gICAgJ3ZhbHVlJyxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uU2VhcmNoYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uSW5wdXQnLCAnaW9uQ2hhbmdlJywgJ2lvbkNhbmNlbCcsICdpb25DbGVhcicsICdpb25CbHVyJywgJ2lvbkZvY3VzJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU2VhcmNoYmFySW5wdXRFdmVudERldGFpbCBhcyBJSW9uU2VhcmNoYmFyU2VhcmNoYmFySW5wdXRFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTZWFyY2hiYXJDaGFuZ2VFdmVudERldGFpbCBhcyBJSW9uU2VhcmNoYmFyU2VhcmNoYmFyQ2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblNlYXJjaGJhciBleHRlbmRzIENvbXBvbmVudHMuSW9uU2VhcmNoYmFyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYHZhbHVlYCBvZiB0aGUgYGlvbi1zZWFyY2hiYXJgIGVsZW1lbnQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBpb25JbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25TZWFyY2hiYXJTZWFyY2hiYXJJbnB1dEV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBUaGUgYGlvbkNoYW5nZWAgZXZlbnQgaXMgZmlyZWQgZm9yIGA8aW9uLXNlYXJjaGJhcj5gIGVsZW1lbnRzIHdoZW4gdGhlIHVzZXJcbm1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuIFVubGlrZSB0aGUgYGlvbklucHV0YCBldmVudCwgdGhlIGBpb25DaGFuZ2VgXG5ldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuXG5cblRoZSBgaW9uQ2hhbmdlYCBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjb21taXR0ZWRcbmJ5IHRoZSB1c2VyLiBUaGlzIGNhbiBoYXBwZW4gd2hlbiB0aGUgZWxlbWVudCBsb3NlcyBmb2N1cyBvclxud2hlbiB0aGUgXCJFbnRlclwiIGtleSBpcyBwcmVzc2VkLiBgaW9uQ2hhbmdlYCBjYW4gYWxzbyBmaXJlXG53aGVuIGNsaWNraW5nIHRoZSBjbGVhciBvciBjYW5jZWwgYnV0dG9ucy5cbiAgICovXG4gIGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25TZWFyY2hiYXJTZWFyY2hiYXJDaGFuZ2VFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjYW5jZWwgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBpb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNsZWFyIGlucHV0IGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgaW9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW9uQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGZvY3VzLlxuICAgKi9cbiAgaW9uRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uU2VnbWVudCxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ21vZGUnLCAnc2Nyb2xsYWJsZScsICdzZWxlY3RPbkZvY3VzJywgJ3N3aXBlR2VzdHVyZScsICd2YWx1ZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1zZWdtZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdkaXNhYmxlZCcsICdtb2RlJywgJ3Njcm9sbGFibGUnLCAnc2VsZWN0T25Gb2N1cycsICdzd2lwZUdlc3R1cmUnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uU2VnbWVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvbkNoYW5nZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFNlZ21lbnRDaGFuZ2VFdmVudERldGFpbCBhcyBJSW9uU2VnbWVudFNlZ21lbnRDaGFuZ2VFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uU2VnbWVudCBleHRlbmRzIENvbXBvbmVudHMuSW9uU2VnbWVudCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHZhbHVlIHByb3BlcnR5IGhhcyBjaGFuZ2VkIGFuZCBhbnlcbmRyYWdnaW5nIHBvaW50ZXIgaGFzIGJlZW4gcmVsZWFzZWQgZnJvbSBgaW9uLXNlZ21lbnRgLlxuICAgKi9cbiAgaW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvblNlZ21lbnRTZWdtZW50Q2hhbmdlRXZlbnREZXRhaWw+Pjtcbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25TZWdtZW50QnV0dG9uLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnbGF5b3V0JywgJ21vZGUnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1zZWdtZW50LWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnbGF5b3V0JywgJ21vZGUnLCAndHlwZScsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25TZWdtZW50QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblNlZ21lbnRCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLklvblNlZ21lbnRCdXR0b24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25TZWxlY3QsXG4gIGlucHV0czogW1xuICAgICdjYW5jZWxUZXh0JyxcbiAgICAnY29sb3InLFxuICAgICdjb21wYXJlV2l0aCcsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAnZXhwYW5kZWRJY29uJyxcbiAgICAnZmlsbCcsXG4gICAgJ2ludGVyZmFjZScsXG4gICAgJ2ludGVyZmFjZU9wdGlvbnMnLFxuICAgICdqdXN0aWZ5JyxcbiAgICAnbGFiZWwnLFxuICAgICdsYWJlbFBsYWNlbWVudCcsXG4gICAgJ2xlZ2FjeScsXG4gICAgJ21vZGUnLFxuICAgICdtdWx0aXBsZScsXG4gICAgJ25hbWUnLFxuICAgICdva1RleHQnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ3NlbGVjdGVkVGV4dCcsXG4gICAgJ3NoYXBlJyxcbiAgICAndG9nZ2xlSWNvbicsXG4gICAgJ3ZhbHVlJyxcbiAgXSxcbiAgbWV0aG9kczogWydvcGVuJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtcbiAgICAnY2FuY2VsVGV4dCcsXG4gICAgJ2NvbG9yJyxcbiAgICAnY29tcGFyZVdpdGgnLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2V4cGFuZGVkSWNvbicsXG4gICAgJ2ZpbGwnLFxuICAgICdpbnRlcmZhY2UnLFxuICAgICdpbnRlcmZhY2VPcHRpb25zJyxcbiAgICAnanVzdGlmeScsXG4gICAgJ2xhYmVsJyxcbiAgICAnbGFiZWxQbGFjZW1lbnQnLFxuICAgICdsZWdhY3knLFxuICAgICdtb2RlJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICduYW1lJyxcbiAgICAnb2tUZXh0JyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICdzZWxlY3RlZFRleHQnLFxuICAgICdzaGFwZScsXG4gICAgJ3RvZ2dsZUljb24nLFxuICAgICd2YWx1ZScsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvblNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvbkNoYW5nZScsICdpb25DYW5jZWwnLCAnaW9uRGlzbWlzcycsICdpb25Gb2N1cycsICdpb25CbHVyJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU2VsZWN0Q2hhbmdlRXZlbnREZXRhaWwgYXMgSUlvblNlbGVjdFNlbGVjdENoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25TZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLklvblNlbGVjdCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgaW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvblNlbGVjdFNlbGVjdENoYW5nZUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGlvbiBpcyBjYW5jZWxsZWQuXG4gICAqL1xuICBpb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgaW9uRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0IGhhcyBmb2N1cy5cbiAgICovXG4gIGlvbkZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzZWxlY3QgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpb25CbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvblNlbGVjdE9wdGlvbixcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3ZhbHVlJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLXNlbGVjdC1vcHRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvblNlbGVjdE9wdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25TZWxlY3RPcHRpb24gZXh0ZW5kcyBDb21wb25lbnRzLklvblNlbGVjdE9wdGlvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvblNrZWxldG9uVGV4dCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLXNrZWxldG9uLXRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvblNrZWxldG9uVGV4dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25Ta2VsZXRvblRleHQgZXh0ZW5kcyBDb21wb25lbnRzLklvblNrZWxldG9uVGV4dCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvblNwaW5uZXIsXG4gIGlucHV0czogWydjb2xvcicsICdkdXJhdGlvbicsICduYW1lJywgJ3BhdXNlZCddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1zcGlubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdkdXJhdGlvbicsICduYW1lJywgJ3BhdXNlZCddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25TcGlubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblNwaW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLklvblNwaW5uZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25TcGxpdFBhbmUsXG4gIGlucHV0czogWydjb250ZW50SWQnLCAnZGlzYWJsZWQnLCAnd2hlbiddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi1zcGxpdC1wYW5lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50SWQnLCAnZGlzYWJsZWQnLCAnd2hlbiddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25TcGxpdFBhbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpb25TcGxpdFBhbmVWaXNpYmxlJ10pO1xuICB9XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25TcGxpdFBhbmUgZXh0ZW5kcyBDb21wb25lbnRzLklvblNwbGl0UGFuZSB7XG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzcGxpdC1wYW5lIHZpc2liaWxpdHkgaGFzIGNoYW5nZWRcbiAgICovXG4gIGlvblNwbGl0UGFuZVZpc2libGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZpc2libGU6IGJvb2xlYW4gfT4+O1xufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvblRhYkJhcixcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ21vZGUnLCAnc2VsZWN0ZWRUYWInLCAndHJhbnNsdWNlbnQnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tdGFiLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kZScsICdzZWxlY3RlZFRhYicsICd0cmFuc2x1Y2VudCddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25UYWJCYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uVGFiQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25UYWJCYXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25UYWJCdXR0b24sXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ2xheW91dCcsICdtb2RlJywgJ3JlbCcsICdzZWxlY3RlZCcsICd0YWInLCAndGFyZ2V0J10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLXRhYi1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAnbGF5b3V0JywgJ21vZGUnLCAncmVsJywgJ3NlbGVjdGVkJywgJ3RhYicsICd0YXJnZXQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uVGFiQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblRhYkJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuSW9uVGFiQnV0dG9uIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uVGV4dCxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ21vZGUnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tdGV4dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kZSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25UZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblRleHQgZXh0ZW5kcyBDb21wb25lbnRzLklvblRleHQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25UZXh0YXJlYSxcbiAgaW5wdXRzOiBbXG4gICAgJ2F1dG9Hcm93JyxcbiAgICAnYXV0b2NhcGl0YWxpemUnLFxuICAgICdhdXRvZm9jdXMnLFxuICAgICdjbGVhck9uRWRpdCcsXG4gICAgJ2NvbG9yJyxcbiAgICAnY29scycsXG4gICAgJ2NvdW50ZXInLFxuICAgICdjb3VudGVyRm9ybWF0dGVyJyxcbiAgICAnZGVib3VuY2UnLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2VudGVya2V5aGludCcsXG4gICAgJ2Vycm9yVGV4dCcsXG4gICAgJ2ZpbGwnLFxuICAgICdoZWxwZXJUZXh0JyxcbiAgICAnaW5wdXRtb2RlJyxcbiAgICAnbGFiZWwnLFxuICAgICdsYWJlbFBsYWNlbWVudCcsXG4gICAgJ2xlZ2FjeScsXG4gICAgJ21heGxlbmd0aCcsXG4gICAgJ21pbmxlbmd0aCcsXG4gICAgJ21vZGUnLFxuICAgICduYW1lJyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICdyZWFkb25seScsXG4gICAgJ3JlcXVpcmVkJyxcbiAgICAncm93cycsXG4gICAgJ3NoYXBlJyxcbiAgICAnc3BlbGxjaGVjaycsXG4gICAgJ3ZhbHVlJyxcbiAgICAnd3JhcCcsXG4gIF0sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZ2V0SW5wdXRFbGVtZW50J10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLXRleHRhcmVhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW1xuICAgICdhdXRvR3JvdycsXG4gICAgJ2F1dG9jYXBpdGFsaXplJyxcbiAgICAnYXV0b2ZvY3VzJyxcbiAgICAnY2xlYXJPbkVkaXQnLFxuICAgICdjb2xvcicsXG4gICAgJ2NvbHMnLFxuICAgICdjb3VudGVyJyxcbiAgICAnY291bnRlckZvcm1hdHRlcicsXG4gICAgJ2RlYm91bmNlJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdlbnRlcmtleWhpbnQnLFxuICAgICdlcnJvclRleHQnLFxuICAgICdmaWxsJyxcbiAgICAnaGVscGVyVGV4dCcsXG4gICAgJ2lucHV0bW9kZScsXG4gICAgJ2xhYmVsJyxcbiAgICAnbGFiZWxQbGFjZW1lbnQnLFxuICAgICdsZWdhY3knLFxuICAgICdtYXhsZW5ndGgnLFxuICAgICdtaW5sZW5ndGgnLFxuICAgICdtb2RlJyxcbiAgICAnbmFtZScsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAncmVhZG9ubHknLFxuICAgICdyZXF1aXJlZCcsXG4gICAgJ3Jvd3MnLFxuICAgICdzaGFwZScsXG4gICAgJ3NwZWxsY2hlY2snLFxuICAgICd2YWx1ZScsXG4gICAgJ3dyYXAnLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJb25UZXh0YXJlYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvbkNoYW5nZScsICdpb25JbnB1dCcsICdpb25CbHVyJywgJ2lvbkZvY3VzJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVGV4dGFyZWFDaGFuZ2VFdmVudERldGFpbCBhcyBJSW9uVGV4dGFyZWFUZXh0YXJlYUNoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFRleHRhcmVhSW5wdXRFdmVudERldGFpbCBhcyBJSW9uVGV4dGFyZWFUZXh0YXJlYUlucHV0RXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblRleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25UZXh0YXJlYSB7XG4gIC8qKlxuICAgKiBUaGUgYGlvbkNoYW5nZWAgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgdGV4dGFyZWEncyB2YWx1ZS5cblVubGlrZSB0aGUgYGlvbklucHV0YCBldmVudCwgdGhlIGBpb25DaGFuZ2VgIGV2ZW50IGlzIGZpcmVkIHdoZW5cbnRoZSBlbGVtZW50IGxvc2VzIGZvY3VzIGFmdGVyIGl0cyB2YWx1ZSBoYXMgYmVlbiBtb2RpZmllZC5cbiAgICovXG4gIGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJb25UZXh0YXJlYVRleHRhcmVhQ2hhbmdlRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIFRoZSBgaW9uSW5wdXRgIGV2ZW50IGlzIGZpcmVkIGVhY2ggdGltZSB0aGUgdXNlciBtb2RpZmllcyB0aGUgdGV4dGFyZWEncyB2YWx1ZS5cblVubGlrZSB0aGUgYGlvbkNoYW5nZWAgZXZlbnQsIHRoZSBgaW9uSW5wdXRgIGV2ZW50IGlzIGZpcmVkIGZvciBlYWNoIGFsdGVyYXRpb25cbnRvIHRoZSB0ZXh0YXJlYSdzIHZhbHVlLiBUaGlzIHR5cGljYWxseSBoYXBwZW5zIGZvciBlYWNoIGtleXN0cm9rZSBhcyB0aGUgdXNlciB0eXBlcy5cblxuV2hlbiBgY2xlYXJPbkVkaXRgIGlzIGVuYWJsZWQsIHRoZSBgaW9uSW5wdXRgIGV2ZW50IHdpbGwgYmUgZmlyZWQgd2hlblxudGhlIHVzZXIgY2xlYXJzIHRoZSB0ZXh0YXJlYSBieSBwZXJmb3JtaW5nIGEga2V5ZG93biBldmVudC5cbiAgICovXG4gIGlvbklucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvblRleHRhcmVhVGV4dGFyZWFJbnB1dEV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW9uQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGZvY3VzLlxuICAgKi9cbiAgaW9uRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uVGh1bWJuYWlsLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi10aHVtYm5haWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uVGh1bWJuYWlsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblRodW1ibmFpbCBleHRlbmRzIENvbXBvbmVudHMuSW9uVGh1bWJuYWlsIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uVGl0bGUsXG4gIGlucHV0czogWydjb2xvcicsICdzaXplJ10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdzaXplJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvblRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25UaXRsZSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUlvblRvYXN0LFxuICBpbnB1dHM6IFtcbiAgICAnYW5pbWF0ZWQnLFxuICAgICdidXR0b25zJyxcbiAgICAnY29sb3InLFxuICAgICdjc3NDbGFzcycsXG4gICAgJ2R1cmF0aW9uJyxcbiAgICAnZW50ZXJBbmltYXRpb24nLFxuICAgICdoZWFkZXInLFxuICAgICdodG1sQXR0cmlidXRlcycsXG4gICAgJ2ljb24nLFxuICAgICdpc09wZW4nLFxuICAgICdrZXlib2FyZENsb3NlJyxcbiAgICAnbGF5b3V0JyxcbiAgICAnbGVhdmVBbmltYXRpb24nLFxuICAgICdtZXNzYWdlJyxcbiAgICAnbW9kZScsXG4gICAgJ3Bvc2l0aW9uJyxcbiAgICAndHJhbnNsdWNlbnQnLFxuICAgICd0cmlnZ2VyJyxcbiAgXSxcbiAgbWV0aG9kczogWydwcmVzZW50JywgJ2Rpc21pc3MnLCAnb25EaWREaXNtaXNzJywgJ29uV2lsbERpc21pc3MnXSxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tdG9hc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXG4gICAgJ2FuaW1hdGVkJyxcbiAgICAnYnV0dG9ucycsXG4gICAgJ2NvbG9yJyxcbiAgICAnY3NzQ2xhc3MnLFxuICAgICdkdXJhdGlvbicsXG4gICAgJ2VudGVyQW5pbWF0aW9uJyxcbiAgICAnaGVhZGVyJyxcbiAgICAnaHRtbEF0dHJpYnV0ZXMnLFxuICAgICdpY29uJyxcbiAgICAnaXNPcGVuJyxcbiAgICAna2V5Ym9hcmRDbG9zZScsXG4gICAgJ2xheW91dCcsXG4gICAgJ2xlYXZlQW5pbWF0aW9uJyxcbiAgICAnbWVzc2FnZScsXG4gICAgJ21vZGUnLFxuICAgICdwb3NpdGlvbicsXG4gICAgJ3RyYW5zbHVjZW50JyxcbiAgICAndHJpZ2dlcicsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvblRvYXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFtcbiAgICAgICdpb25Ub2FzdERpZFByZXNlbnQnLFxuICAgICAgJ2lvblRvYXN0V2lsbFByZXNlbnQnLFxuICAgICAgJ2lvblRvYXN0V2lsbERpc21pc3MnLFxuICAgICAgJ2lvblRvYXN0RGlkRGlzbWlzcycsXG4gICAgICAnZGlkUHJlc2VudCcsXG4gICAgICAnd2lsbFByZXNlbnQnLFxuICAgICAgJ3dpbGxEaXNtaXNzJyxcbiAgICAgICdkaWREaXNtaXNzJyxcbiAgICBdKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IE92ZXJsYXlFdmVudERldGFpbCBhcyBJSW9uVG9hc3RPdmVybGF5RXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblRvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5Jb25Ub2FzdCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSB0b2FzdCBoYXMgcHJlc2VudGVkLlxuICAgKi9cbiAgaW9uVG9hc3REaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIHRvYXN0IGhhcyBwcmVzZW50ZWQuXG4gICAqL1xuICBpb25Ub2FzdFdpbGxQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIHRvYXN0IGhhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBpb25Ub2FzdFdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvblRvYXN0T3ZlcmxheUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSB0b2FzdCBoYXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgaW9uVG9hc3REaWREaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvblRvYXN0T3ZlcmxheUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSB0b2FzdCBoYXMgcHJlc2VudGVkLlxuU2hvcnRoYW5kIGZvciBpb25Ub2FzdFdpbGxEaXNtaXNzLlxuICAgKi9cbiAgZGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSB0b2FzdCBoYXMgcHJlc2VudGVkLlxuU2hvcnRoYW5kIGZvciBpb25Ub2FzdFdpbGxQcmVzZW50LlxuICAgKi9cbiAgd2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgdG9hc3QgaGFzIGRpc21pc3NlZC5cblNob3J0aGFuZCBmb3IgaW9uVG9hc3RXaWxsRGlzbWlzcy5cbiAgICovXG4gIHdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvblRvYXN0T3ZlcmxheUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSB0b2FzdCBoYXMgZGlzbWlzc2VkLlxuU2hvcnRoYW5kIGZvciBpb25Ub2FzdERpZERpc21pc3MuXG4gICAqL1xuICBkaWREaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvblRvYXN0T3ZlcmxheUV2ZW50RGV0YWlsPj47XG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lSW9uVG9nZ2xlLFxuICBpbnB1dHM6IFtcbiAgICAnY2hlY2tlZCcsXG4gICAgJ2NvbG9yJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdlbmFibGVPbk9mZkxhYmVscycsXG4gICAgJ2p1c3RpZnknLFxuICAgICdsYWJlbFBsYWNlbWVudCcsXG4gICAgJ2xlZ2FjeScsXG4gICAgJ21vZGUnLFxuICAgICduYW1lJyxcbiAgICAndmFsdWUnLFxuICBdLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXG4gICAgJ2NoZWNrZWQnLFxuICAgICdjb2xvcicsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAnZW5hYmxlT25PZmZMYWJlbHMnLFxuICAgICdqdXN0aWZ5JyxcbiAgICAnbGFiZWxQbGFjZW1lbnQnLFxuICAgICdsZWdhY3knLFxuICAgICdtb2RlJyxcbiAgICAnbmFtZScsXG4gICAgJ3ZhbHVlJyxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW9uQ2hhbmdlJywgJ2lvbkZvY3VzJywgJ2lvbkJsdXInXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBUb2dnbGVDaGFuZ2VFdmVudERldGFpbCBhcyBJSW9uVG9nZ2xlVG9nZ2xlQ2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElvblRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuSW9uVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzd2l0Y2hlcyB0aGUgdG9nZ2xlIG9uIG9yIG9mZi4gRG9lcyBub3QgZW1pdFxud2hlbiBwcm9ncmFtbWF0aWNhbGx5IGNoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUgYGNoZWNrZWRgIHByb3BlcnR5LlxuICAgKi9cbiAgaW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUlvblRvZ2dsZVRvZ2dsZUNoYW5nZUV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRvZ2dsZSBoYXMgZm9jdXMuXG4gICAqL1xuICBpb25Gb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdG9nZ2xlIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW9uQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVJb25Ub29sYmFyLFxuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kZSddLFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi10b29sYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdtb2RlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElvblRvb2xiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uVG9vbGJhciBleHRlbmRzIENvbXBvbmVudHMuSW9uVG9vbGJhciB7fVxuIl19
|