@experteam-mx/ngx-services 0.1.1 → 15.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/apis/api-companies.service.mjs +255 -0
- package/esm2020/lib/apis/api-security.service.mjs +53 -53
- package/esm2020/lib/apis/models/api-catalog.interfaces.mjs +2 -0
- package/esm2020/lib/apis/models/api-companies.interfaces.mjs +2 -0
- package/esm2020/lib/apis/models/api-companies.types.mjs +2 -0
- package/esm2020/lib/apis/models/api-security.interfaces.mjs +2 -0
- package/esm2020/lib/apis/models/api-security.types.mjs +2 -0
- package/esm2020/lib/apis/models/api.models.mjs +2 -0
- package/esm2020/lib/helpers/http.mjs +27 -6
- package/esm2020/lib/interceptors/api-token.interceptor.mjs +10 -6
- package/esm2020/lib/interceptors/http-caching.interceptor.mjs +38 -0
- package/esm2020/lib/ngx-services.models.mjs +1 -1
- package/esm2020/public-api.mjs +10 -3
- package/fesm2015/experteam-mx-ngx-services.mjs +445 -129
- package/fesm2015/experteam-mx-ngx-services.mjs.map +1 -1
- package/fesm2020/experteam-mx-ngx-services.mjs +438 -129
- package/fesm2020/experteam-mx-ngx-services.mjs.map +1 -1
- package/lib/apis/api-companies.service.d.ts +163 -0
- package/lib/apis/api-security.service.d.ts +37 -37
- package/lib/apis/models/api-catalog.interfaces.d.ts +71 -0
- package/lib/apis/models/api-companies.interfaces.d.ts +380 -0
- package/lib/apis/models/api-companies.types.d.ts +75 -0
- package/lib/apis/{api-security.models.d.ts → models/api-security.interfaces.d.ts} +3 -38
- package/lib/apis/models/api-security.types.d.ts +30 -0
- package/lib/apis/{api.models.d.ts → models/api.models.d.ts} +3 -11
- package/lib/helpers/http.d.ts +11 -4
- package/lib/interceptors/api-token.interceptor.d.ts +3 -1
- package/lib/interceptors/http-caching.interceptor.d.ts +12 -0
- package/lib/ngx-services.models.d.ts +2 -0
- package/package.json +3 -2
- package/public-api.d.ts +8 -2
- package/esm2020/experteam-ngx-services.mjs +0 -5
- package/esm2020/lib/apis/api-catalog.models.mjs +0 -2
- package/esm2020/lib/apis/api-security.models.mjs +0 -2
- package/esm2020/lib/apis/api.models.mjs +0 -2
- package/fesm2015/experteam-ngx-services.mjs +0 -283
- package/fesm2015/experteam-ngx-services.mjs.map +0 -1
- package/fesm2020/experteam-ngx-services.mjs +0 -280
- package/fesm2020/experteam-ngx-services.mjs.map +0 -1
- package/lib/apis/api-catalog.models.d.ts +0 -5
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { forkJoin, map, mergeMap } from 'rxjs';
|
|
3
|
+
import { httpParams } from '../helpers/http';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class ApiCompaniesService {
|
|
7
|
+
constructor(environments, http) {
|
|
8
|
+
this.environments = environments;
|
|
9
|
+
this.http = http;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Retrieves the URL for the companies API from the environment configurations.
|
|
13
|
+
*
|
|
14
|
+
* @return {string} The URL of the companies API.
|
|
15
|
+
*/
|
|
16
|
+
get url() {
|
|
17
|
+
return this.environments.apiCompaniesUrl;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Fetches the installations based on the provided query parameters.
|
|
21
|
+
*
|
|
22
|
+
* @param {QueryParams} params - The parameters used to filter the installations query.
|
|
23
|
+
* @return {Observable<InstallationsData>} An observable that emits the installations data.
|
|
24
|
+
*/
|
|
25
|
+
getInstallations(params) {
|
|
26
|
+
return this.http.get(`${this.url}/installations`, {
|
|
27
|
+
params: httpParams(params),
|
|
28
|
+
}).pipe(map(({ data }) => data));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Retrieves the installation details based on the given installation ID.
|
|
32
|
+
*
|
|
33
|
+
* @param {number} id - The unique identifier of the installation to retrieve.
|
|
34
|
+
* @returns {Observable<InstallationData>} An observable of the installation details.
|
|
35
|
+
*/
|
|
36
|
+
getInstallation(id) {
|
|
37
|
+
return this.http.get(`${this.url}/installations/${id}`)
|
|
38
|
+
.pipe(map(({ data }) => data));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Retrieves a list of locations based on the provided query parameters.
|
|
42
|
+
*
|
|
43
|
+
* @param {QueryParams} params - The parameters to use for querying locations.
|
|
44
|
+
* @return {Observable<LocationsData>} An observable that emits the locations data.
|
|
45
|
+
*/
|
|
46
|
+
getLocations(params) {
|
|
47
|
+
return this.http.get(`${this.url}/locations`, {
|
|
48
|
+
params: httpParams(params),
|
|
49
|
+
}).pipe(map(({ data }) => data));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Fetches the location details for a given location ID.
|
|
53
|
+
*
|
|
54
|
+
* @param {number} id - The unique identifier of the location.
|
|
55
|
+
* @return {Observable<LocationData>} An Observable containing the location details.
|
|
56
|
+
*/
|
|
57
|
+
getLocation(id) {
|
|
58
|
+
return this.http.get(`${this.url}/locations/${id}`)
|
|
59
|
+
.pipe(map(({ data }) => data));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Retrieves a list of active supply entities.
|
|
63
|
+
*
|
|
64
|
+
* @param {QueryParams} params - The query parameters to filter supply entities.
|
|
65
|
+
* @return {Observable<SupplyEntitiesData>} Observable emitting supply entities data.
|
|
66
|
+
*/
|
|
67
|
+
getSupplyEntitiesActive(params) {
|
|
68
|
+
return this.http.get(`${this.url}/supply-entities/actives`, {
|
|
69
|
+
params: httpParams(params),
|
|
70
|
+
}).pipe(map(({ data }) => data));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Fetches a list of employees based on the specified query parameters.
|
|
74
|
+
*
|
|
75
|
+
* @param {QueryParams} params - The parameters to filter and sort the employees.
|
|
76
|
+
* @return {Observable<EmployeesData>} An observable that emits the list of employees.
|
|
77
|
+
*/
|
|
78
|
+
getEmployees(params) {
|
|
79
|
+
return this.http.get(`${this.url}/employees`, {
|
|
80
|
+
params: httpParams(params),
|
|
81
|
+
}).pipe(map(({ data }) => data));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Fetches an employee's details based on the provided employee ID.
|
|
85
|
+
*
|
|
86
|
+
* @param {number} id - The unique identifier of the employee.
|
|
87
|
+
* @return {Observable<EmployeeData>} An observable that emits the employee's details.
|
|
88
|
+
*/
|
|
89
|
+
getEmployee(id) {
|
|
90
|
+
return this.http.get(`${this.url}/employees/${id}`)
|
|
91
|
+
.pipe(map(({ data }) => data));
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Retrieves the list of employees for a specified location based on provided query parameters.
|
|
95
|
+
*
|
|
96
|
+
* @param {QueryParams} params - The query parameters used to filter and retrieve the location employees.
|
|
97
|
+
* @returns {Observable<LocationEmployeesData>} An observable that emits the list of employees for the specified location.
|
|
98
|
+
*/
|
|
99
|
+
getLocationEmployees(params) {
|
|
100
|
+
return this.http.get(`${this.url}/location-employees`, {
|
|
101
|
+
params: httpParams(params),
|
|
102
|
+
}).pipe(map(({ data }) => data));
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Retrieves a list of countries where the company operates.
|
|
106
|
+
*
|
|
107
|
+
* @param {QueryParams} params - The query parameters for the API request.
|
|
108
|
+
* @return {Observable<CompanyCountriesData>} An observable containing the list of company countries.
|
|
109
|
+
*/
|
|
110
|
+
getCompanyCountries(params) {
|
|
111
|
+
return this.http.get(`${this.url}/company-countries`, {
|
|
112
|
+
params: httpParams(params),
|
|
113
|
+
}).pipe(map(({ data }) => data));
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Retrieves the country information for a specified company by its ID.
|
|
117
|
+
*
|
|
118
|
+
* @param {number} id - The unique identifier of the company.
|
|
119
|
+
* @return {Observable<CompanyCountryData>} An observable containing the country information of the company.
|
|
120
|
+
*/
|
|
121
|
+
getCompanyCountry(id) {
|
|
122
|
+
return this.http.get(`${this.url}/company-countries/${id}`)
|
|
123
|
+
.pipe(map(({ data }) => data));
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Fetches the reference currencies for a given country.
|
|
127
|
+
*
|
|
128
|
+
* @param {QueryParams} params - The query parameters to include in the request.
|
|
129
|
+
* @return {Observable<CountryReferenceCurrenciesData>} The observable containing the country reference currencies data.
|
|
130
|
+
*/
|
|
131
|
+
getCountryReferenceCurrencies(params) {
|
|
132
|
+
return this.http.get(`${this.url}/country-reference-currencies`, { params }).pipe(map(({ data }) => data));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Retrieves a list of currencies for different countries along with their current exchange rates.
|
|
136
|
+
*
|
|
137
|
+
* @param {QueryParams} params - The query parameters used to fetch the country reference currencies.
|
|
138
|
+
* @return {Observable<CountryCurrencyRate[]>} An observable that emits an array of country currency rates.
|
|
139
|
+
*/
|
|
140
|
+
getCountryCurrenciesWithRate(params) {
|
|
141
|
+
return this.getCountryReferenceCurrencies(params)
|
|
142
|
+
.pipe(mergeMap((currenciesData) => {
|
|
143
|
+
const $observables = currenciesData.country_reference_currencies
|
|
144
|
+
.map((country_reference_currency) => this.getCurrentExchanges({
|
|
145
|
+
currency_id: country_reference_currency.currency.id,
|
|
146
|
+
}).pipe(map((exchangesData) => ({
|
|
147
|
+
...country_reference_currency,
|
|
148
|
+
rate: exchangesData.exchanges[0]?.value ?? 1.00,
|
|
149
|
+
}))));
|
|
150
|
+
return forkJoin($observables);
|
|
151
|
+
}));
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Retrieves the current exchanges based on the given query parameters.
|
|
155
|
+
*
|
|
156
|
+
* @param {QueryParams} params - The query parameters to filter the exchanges.
|
|
157
|
+
*
|
|
158
|
+
* @returns {Observable<ExchangesData>} - An observable that emits the API response data containing the current exchanges.
|
|
159
|
+
*/
|
|
160
|
+
getCurrentExchanges(params) {
|
|
161
|
+
return this.http.get(`${this.url}/exchanges/current`, {
|
|
162
|
+
params: httpParams(params),
|
|
163
|
+
}).pipe(map(({ data }) => data));
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Fetches the country-specific tax information for a company.
|
|
167
|
+
*
|
|
168
|
+
* @param {QueryParams} params - The parameters used to filter and query the taxes.
|
|
169
|
+
* @return {Observable<CompanyCountryTaxesData>} An observable that emits the tax information.
|
|
170
|
+
*/
|
|
171
|
+
getCompanyCountryTaxes(params) {
|
|
172
|
+
return this.http.get(`${this.url}/company-country-taxes`, {
|
|
173
|
+
params: httpParams(params),
|
|
174
|
+
}).pipe(map(({ data }) => data));
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Retrieves the list of active account entities based on the provided query parameters.
|
|
178
|
+
*
|
|
179
|
+
* @param {QueryParams} params - The parameters to filter and query active account entities.
|
|
180
|
+
* @return {Observable<AccountEntitiesData>} An observable that emits the list of active account entities.
|
|
181
|
+
*/
|
|
182
|
+
getActiveAccountEntities(params) {
|
|
183
|
+
return this.http.get(`${this.url}/account-entities/actives`, {
|
|
184
|
+
params: httpParams(params),
|
|
185
|
+
}).pipe(map(({ data }) => data));
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Retrieves the parameter values based on the provided parameter names.
|
|
189
|
+
*
|
|
190
|
+
* @param {Object} params - An object containing the required parameters.
|
|
191
|
+
* @param {string[]} params.paramNames - An array of parameter names for which the values need to be fetched.
|
|
192
|
+
* @return {Observable<ParametersData>} An observable that emits the fetched parameter values.
|
|
193
|
+
*/
|
|
194
|
+
getParameters({ paramNames, }) {
|
|
195
|
+
const parameters = paramNames.map((p) => ({ name: p }));
|
|
196
|
+
return this.http.post(`${this.url}/parameters-values`, {
|
|
197
|
+
parameters
|
|
198
|
+
}).pipe(map(({ data }) => data));
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Retrieves the value of a specified parameter.
|
|
202
|
+
*
|
|
203
|
+
* @param {Object} input - The input object containing the parameter details.
|
|
204
|
+
* @param {string} input.paramName - The name of the parameter whose value is to be retrieved.
|
|
205
|
+
* @return {Observable<ParameterValueData>} An observable emitting the value of the specified parameter.
|
|
206
|
+
*/
|
|
207
|
+
getParameterValue({ paramName, }) {
|
|
208
|
+
return this.http.get(`${this.url}/parameters-values/${paramName}`)
|
|
209
|
+
.pipe(map(({ data }) => data));
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Retrieves a list of country references based on the given query parameters.
|
|
213
|
+
*
|
|
214
|
+
* @param {QueryParams} params - The query parameters for retrieving country references.
|
|
215
|
+
* @return {Observable<CountryReferencesData>} An observable containing the country reference data.
|
|
216
|
+
*/
|
|
217
|
+
getCountryReferences(params) {
|
|
218
|
+
return this.http.get(`${this.url}/country-references`, {
|
|
219
|
+
params: httpParams(params),
|
|
220
|
+
}).pipe(map(({ data }) => data));
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Fetches the country reference data for a given country ID.
|
|
224
|
+
*
|
|
225
|
+
* @param {number} id - The unique identifier of the country for which the reference data is to be retrieved.
|
|
226
|
+
* @return {Observable<CountryReferenceData>} An observable containing the country reference data.
|
|
227
|
+
*/
|
|
228
|
+
getCountryReference(id) {
|
|
229
|
+
return this.http.get(`${this.url}/country-references/${id}`)
|
|
230
|
+
.pipe(map(({ data }) => data));
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Fetches the list of workflows based on the provided query parameters.
|
|
234
|
+
*
|
|
235
|
+
* @param {QueryParams} params - The query parameters used to filter workflows.
|
|
236
|
+
* @return {Observable<WorkflowsData>} An observable containing the workflow data.
|
|
237
|
+
*/
|
|
238
|
+
getWorkflows(params) {
|
|
239
|
+
return this.http.get(`${this.url}/workflows`, {
|
|
240
|
+
params: httpParams(params),
|
|
241
|
+
}).pipe(map(({ data }) => data));
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
ApiCompaniesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiCompaniesService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
245
|
+
ApiCompaniesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiCompaniesService, providedIn: 'root' });
|
|
246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiCompaniesService, decorators: [{
|
|
247
|
+
type: Injectable,
|
|
248
|
+
args: [{
|
|
249
|
+
providedIn: 'root'
|
|
250
|
+
}]
|
|
251
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
252
|
+
type: Inject,
|
|
253
|
+
args: ['env']
|
|
254
|
+
}] }, { type: i1.HttpClient }]; } });
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbXBhbmllcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtL25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWNvbXBhbmllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBMkJsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7QUFNNUMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFBO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFFLE1BQW1CO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUU7WUFDL0UsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUM7U0FDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBRSxFQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQStCLEdBQUcsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO2FBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBRSxNQUFtQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE0QixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRTtZQUN2RSxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFFLEVBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxjQUFjLEVBQUUsRUFBRSxDQUFDO2FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHVCQUF1QixDQUFFLE1BQW1CO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsMEJBQTBCLEVBQUU7WUFDMUYsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUM7U0FDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBRSxNQUFtQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE0QixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRTtZQUN2RSxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFFLEVBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxjQUFjLEVBQUUsRUFBRSxDQUFDO2FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFFLE1BQW1CO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcscUJBQXFCLEVBQUU7WUFDeEYsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUM7U0FDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixDQUFFLE1BQW1CO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW1DLEdBQUcsSUFBSSxDQUFDLEdBQUcsb0JBQW9CLEVBQUU7WUFDdEYsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUM7U0FDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFHRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFFLEVBQVU7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBaUMsR0FBRyxJQUFJLENBQUMsR0FBRyxzQkFBc0IsRUFBRSxFQUFFLENBQUM7YUFDeEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNkJBQTZCLENBQUUsTUFBbUI7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsR0FBRywrQkFBK0IsRUFDMUMsRUFBRSxNQUFNLEVBQUUsQ0FDWCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDRCQUE0QixDQUFFLE1BQW1CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQzthQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLDRCQUE0QjtpQkFDN0QsR0FBRyxDQUFDLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxDQUNsQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3ZCLFdBQVcsRUFBRSwwQkFBMEIsQ0FBQyxRQUFRLENBQUMsRUFBRTthQUNwRCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdEIsR0FBRywwQkFBMEI7Z0JBQzdCLElBQUksRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJO2FBQ2hELENBQUMsQ0FBQyxDQUNKLENBQ0YsQ0FBQTtZQUVILE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDUCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsbUJBQW1CLENBQUUsTUFBbUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNEIsR0FBRyxJQUFJLENBQUMsR0FBRyxvQkFBb0IsRUFBRTtZQUMvRSxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsc0JBQXNCLENBQUUsTUFBbUI7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBc0MsR0FBRyxJQUFJLENBQUMsR0FBRyx3QkFBd0IsRUFBRTtZQUM3RixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsd0JBQXdCLENBQUUsTUFBbUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0MsR0FBRyxJQUFJLENBQUMsR0FBRywyQkFBMkIsRUFBRTtZQUM1RixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGFBQWEsQ0FBRSxFQUNiLFVBQVUsR0FDTTtRQUNoQixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUV2RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLG9CQUFvQixFQUFFO1lBQ2pGLFVBQVU7U0FDWCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGlCQUFpQixDQUFFLEVBQ2pCLFNBQVMsR0FDVztRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQyxHQUFHLElBQUksQ0FBQyxHQUFHLHNCQUFzQixTQUFTLEVBQUUsQ0FBQzthQUMvRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxvQkFBb0IsQ0FBRSxNQUFtQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFvQyxHQUFHLElBQUksQ0FBQyxHQUFHLHFCQUFxQixFQUFFO1lBQ3hGLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxtQkFBbUIsQ0FBRSxFQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW1DLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUUsRUFBRSxDQUFDO2FBQzNGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBRSxNQUFtQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE0QixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRTtZQUN2RSxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzs7aUhBL1FVLG1CQUFtQixrQkFFcEIsS0FBSztxSEFGSixtQkFBbUIsY0FGbEIsTUFBTTs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHtcclxuICBBY2NvdW50RW50aXRpZXNEYXRhLFxyXG4gIENvbXBhbnlDb3VudHJpZXNEYXRhLFxyXG4gIENvbXBhbnlDb3VudHJ5RGF0YSxcclxuICBDb21wYW55Q291bnRyeVRheGVzRGF0YSxcclxuICBDb3VudHJ5UmVmZXJlbmNlQ3VycmVuY2llc0RhdGEsXHJcbiAgQ291bnRyeVJlZmVyZW5jZURhdGEsXHJcbiAgQ291bnRyeVJlZmVyZW5jZXNEYXRhLFxyXG4gIEVtcGxveWVlRGF0YSxcclxuICBFbXBsb3llZXNEYXRhLFxyXG4gIEV4Y2hhbmdlc0RhdGEsXHJcbiAgSW5zdGFsbGF0aW9uRGF0YSxcclxuICBJbnN0YWxsYXRpb25zRGF0YSxcclxuICBMb2NhdGlvbkRhdGEsXHJcbiAgTG9jYXRpb25FbXBsb3llZXNEYXRhLFxyXG4gIExvY2F0aW9uc0RhdGEsXHJcbiAgUGFyYW1ldGVyc0RhdGEsXHJcbiAgUGFyYW1ldGVyc1Byb3BzLFxyXG4gIFBhcmFtZXRlclZhbHVlRGF0YSxcclxuICBQYXJhbWV0ZXJWYWx1ZVByb3BzLFxyXG4gIFN1cHBseUVudGl0aWVzRGF0YSxcclxuICBXb3JrZmxvd3NEYXRhXHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWNvbXBhbmllcy50eXBlcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGh0dHBQYXJhbXMgfSBmcm9tICcuLi9oZWxwZXJzL2h0dHAnXHJcbmltcG9ydCB7IENvdW50cnlDdXJyZW5jeVJhdGUgfSBmcm9tICcuL21vZGVscy9hcGktY29tcGFuaWVzLmludGVyZmFjZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlDb21wYW5pZXNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSBjb21wYW5pZXMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIG9mIHRoZSBjb21wYW5pZXMgQVBJLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpQ29tcGFuaWVzVXJsXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBpbnN0YWxsYXRpb25zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIGluc3RhbGxhdGlvbnMgcXVlcnkuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnN0YWxsYXRpb25zRGF0YT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgaW5zdGFsbGF0aW9ucyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldEluc3RhbGxhdGlvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEluc3RhbGxhdGlvbnNEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEluc3RhbGxhdGlvbnNEYXRhPj4oYCR7dGhpcy51cmx9L2luc3RhbGxhdGlvbnNgLCB7XHJcbiAgICAgIHBhcmFtczogaHR0cFBhcmFtcyhwYXJhbXMpLFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgaW5zdGFsbGF0aW9uIGRldGFpbHMgYmFzZWQgb24gdGhlIGdpdmVuIGluc3RhbGxhdGlvbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgaW5zdGFsbGF0aW9uIHRvIHJldHJpZXZlLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluc3RhbGxhdGlvbkRhdGE+fSBBbiBvYnNlcnZhYmxlIG9mIHRoZSBpbnN0YWxsYXRpb24gZGV0YWlscy5cclxuICAgKi9cclxuICBnZXRJbnN0YWxsYXRpb24gKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEluc3RhbGxhdGlvbkRhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SW5zdGFsbGF0aW9uRGF0YT4+KGAke3RoaXMudXJsfS9pbnN0YWxsYXRpb25zLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGxvY2F0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIHRvIHVzZSBmb3IgcXVlcnlpbmcgbG9jYXRpb25zLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG9jYXRpb25zRGF0YT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbG9jYXRpb25zIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0TG9jYXRpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxMb2NhdGlvbnNEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPExvY2F0aW9uc0RhdGE+PihgJHt0aGlzLnVybH0vbG9jYXRpb25zYCwge1xyXG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMocGFyYW1zKSxcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBsb2NhdGlvbiBkZXRhaWxzIGZvciBhIGdpdmVuIGxvY2F0aW9uIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBsb2NhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExvY2F0aW9uRGF0YT59IEFuIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbG9jYXRpb24gZGV0YWlscy5cclxuICAgKi9cclxuICBnZXRMb2NhdGlvbiAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8TG9jYXRpb25EYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPExvY2F0aW9uRGF0YT4+KGAke3RoaXMudXJsfS9sb2NhdGlvbnMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWN0aXZlIHN1cHBseSBlbnRpdGllcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBzdXBwbHkgZW50aXRpZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTdXBwbHlFbnRpdGllc0RhdGE+fSBPYnNlcnZhYmxlIGVtaXR0aW5nIHN1cHBseSBlbnRpdGllcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFN1cHBseUVudGl0aWVzQWN0aXZlIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTdXBwbHlFbnRpdGllc0RhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U3VwcGx5RW50aXRpZXNEYXRhPj4oYCR7dGhpcy51cmx9L3N1cHBseS1lbnRpdGllcy9hY3RpdmVzYCwge1xyXG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMocGFyYW1zKSxcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBlbXBsb3llZXMgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gZmlsdGVyIGFuZCBzb3J0IHRoZSBlbXBsb3llZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFbXBsb3llZXNEYXRhPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsaXN0IG9mIGVtcGxveWVlcy5cclxuICAgKi9cclxuICBnZXRFbXBsb3llZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEVtcGxveWVlc0RhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RW1wbG95ZWVzRGF0YT4+KGAke3RoaXMudXJsfS9lbXBsb3llZXNgLCB7XHJcbiAgICAgIHBhcmFtczogaHR0cFBhcmFtcyhwYXJhbXMpLFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYW4gZW1wbG95ZWUncyBkZXRhaWxzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBlbXBsb3llZSBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZW1wbG95ZWUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFbXBsb3llZURhdGE+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGVtcGxveWVlJ3MgZGV0YWlscy5cclxuICAgKi9cclxuICBnZXRFbXBsb3llZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RW1wbG95ZWVEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEVtcGxveWVlRGF0YT4+KGAke3RoaXMudXJsfS9lbXBsb3llZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBlbXBsb3llZXMgZm9yIGEgc3BlY2lmaWVkIGxvY2F0aW9uIGJhc2VkIG9uIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciBhbmQgcmV0cmlldmUgdGhlIGxvY2F0aW9uIGVtcGxveWVlcy5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxMb2NhdGlvbkVtcGxveWVlc0RhdGE+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgZW1wbG95ZWVzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uLlxyXG4gICAqL1xyXG4gIGdldExvY2F0aW9uRW1wbG95ZWVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxMb2NhdGlvbkVtcGxveWVlc0RhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TG9jYXRpb25FbXBsb3llZXNEYXRhPj4oYCR7dGhpcy51cmx9L2xvY2F0aW9uLWVtcGxveWVlc2AsIHtcclxuICAgICAgcGFyYW1zOiBodHRwUGFyYW1zKHBhcmFtcyksXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBjb3VudHJpZXMgd2hlcmUgdGhlIGNvbXBhbnkgb3BlcmF0ZXMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIEFQSSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q29tcGFueUNvdW50cmllc0RhdGE+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2YgY29tcGFueSBjb3VudHJpZXMuXHJcbiAgICovXHJcbiAgZ2V0Q29tcGFueUNvdW50cmllcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q29tcGFueUNvdW50cmllc0RhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q29tcGFueUNvdW50cmllc0RhdGE+PihgJHt0aGlzLnVybH0vY29tcGFueS1jb3VudHJpZXNgLCB7XHJcbiAgICAgIHBhcmFtczogaHR0cFBhcmFtcyhwYXJhbXMpLFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGNvdW50cnkgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWVkIGNvbXBhbnkgYnkgaXRzIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb21wYW55LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q29tcGFueUNvdW50cnlEYXRhPn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBjb3VudHJ5IGluZm9ybWF0aW9uIG9mIHRoZSBjb21wYW55LlxyXG4gICAqL1xyXG4gIGdldENvbXBhbnlDb3VudHJ5IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb21wYW55Q291bnRyeURhdGE+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q29tcGFueUNvdW50cnlEYXRhPj4oYCR7dGhpcy51cmx9L2NvbXBhbnktY291bnRyaWVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSByZWZlcmVuY2UgY3VycmVuY2llcyBmb3IgYSBnaXZlbiBjb3VudHJ5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlSZWZlcmVuY2VDdXJyZW5jaWVzRGF0YT59IFRoZSBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGNvdW50cnkgcmVmZXJlbmNlIGN1cnJlbmNpZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UmVmZXJlbmNlQ3VycmVuY2llcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q291bnRyeVJlZmVyZW5jZUN1cnJlbmNpZXNEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlSZWZlcmVuY2VDdXJyZW5jaWVzRGF0YT4+KFxyXG4gICAgICBgJHt0aGlzLnVybH0vY291bnRyeS1yZWZlcmVuY2UtY3VycmVuY2llc2AsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgY3VycmVuY2llcyBmb3IgZGlmZmVyZW50IGNvdW50cmllcyBhbG9uZyB3aXRoIHRoZWlyIGN1cnJlbnQgZXhjaGFuZ2UgcmF0ZXMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBjb3VudHJ5IHJlZmVyZW5jZSBjdXJyZW5jaWVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeUN1cnJlbmN5UmF0ZVtdPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIGNvdW50cnkgY3VycmVuY3kgcmF0ZXMuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeUN1cnJlbmNpZXNXaXRoUmF0ZSAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q291bnRyeUN1cnJlbmN5UmF0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDb3VudHJ5UmVmZXJlbmNlQ3VycmVuY2llcyhwYXJhbXMpXHJcbiAgICAgIC5waXBlKG1lcmdlTWFwKChjdXJyZW5jaWVzRGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0ICRvYnNlcnZhYmxlcyA9IGN1cnJlbmNpZXNEYXRhLmNvdW50cnlfcmVmZXJlbmNlX2N1cnJlbmNpZXNcclxuICAgICAgICAgIC5tYXAoKGNvdW50cnlfcmVmZXJlbmNlX2N1cnJlbmN5KSA9PlxyXG4gICAgICAgICAgICB0aGlzLmdldEN1cnJlbnRFeGNoYW5nZXMoe1xyXG4gICAgICAgICAgICAgIGN1cnJlbmN5X2lkOiBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeS5jdXJyZW5jeS5pZCxcclxuICAgICAgICAgICAgfSkucGlwZShcclxuICAgICAgICAgICAgICBtYXAoKGV4Y2hhbmdlc0RhdGEpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAuLi5jb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeSxcclxuICAgICAgICAgICAgICAgIHJhdGU6IGV4Y2hhbmdlc0RhdGEuZXhjaGFuZ2VzWzBdPy52YWx1ZSA/PyAxLjAwLFxyXG4gICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApXHJcblxyXG4gICAgICAgIHJldHVybiBmb3JrSm9pbigkb2JzZXJ2YWJsZXMpXHJcbiAgICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGV4Y2hhbmdlcyBiYXNlZCBvbiB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgZXhjaGFuZ2VzLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8RXhjaGFuZ2VzRGF0YT59IC0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBBUEkgcmVzcG9uc2UgZGF0YSBjb250YWluaW5nIHRoZSBjdXJyZW50IGV4Y2hhbmdlcy5cclxuICAgKi9cclxuICBnZXRDdXJyZW50RXhjaGFuZ2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFeGNoYW5nZXNEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEV4Y2hhbmdlc0RhdGE+PihgJHt0aGlzLnVybH0vZXhjaGFuZ2VzL2N1cnJlbnRgLCB7XHJcbiAgICAgIHBhcmFtczogaHR0cFBhcmFtcyhwYXJhbXMpLFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGNvdW50cnktc3BlY2lmaWMgdGF4IGluZm9ybWF0aW9uIGZvciBhIGNvbXBhbnkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciBhbmQgcXVlcnkgdGhlIHRheGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q29tcGFueUNvdW50cnlUYXhlc0RhdGE+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHRheCBpbmZvcm1hdGlvbi5cclxuICAgKi9cclxuICBnZXRDb21wYW55Q291bnRyeVRheGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb21wYW55Q291bnRyeVRheGVzRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb21wYW55Q291bnRyeVRheGVzRGF0YT4+KGAke3RoaXMudXJsfS9jb21wYW55LWNvdW50cnktdGF4ZXNgLCB7XHJcbiAgICAgIHBhcmFtczogaHR0cFBhcmFtcyhwYXJhbXMpLFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBhY3RpdmUgYWNjb3VudCBlbnRpdGllcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBhbmQgcXVlcnkgYWN0aXZlIGFjY291bnQgZW50aXRpZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxBY2NvdW50RW50aXRpZXNEYXRhPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsaXN0IG9mIGFjdGl2ZSBhY2NvdW50IGVudGl0aWVzLlxyXG4gICAqL1xyXG4gIGdldEFjdGl2ZUFjY291bnRFbnRpdGllcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8QWNjb3VudEVudGl0aWVzRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxBY2NvdW50RW50aXRpZXNEYXRhPj4oYCR7dGhpcy51cmx9L2FjY291bnQtZW50aXRpZXMvYWN0aXZlc2AsIHtcclxuICAgICAgcGFyYW1zOiBodHRwUGFyYW1zKHBhcmFtcyksXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBwYXJhbWV0ZXIgdmFsdWVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXIgbmFtZXMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlcnMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGFyYW1zLnBhcmFtTmFtZXMgLSBBbiBhcnJheSBvZiBwYXJhbWV0ZXIgbmFtZXMgZm9yIHdoaWNoIHRoZSB2YWx1ZXMgbmVlZCB0byBiZSBmZXRjaGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGFyYW1ldGVyc0RhdGE+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgcGFyYW1ldGVyIHZhbHVlcy5cclxuICAgKi9cclxuICBnZXRQYXJhbWV0ZXJzICh7XHJcbiAgICBwYXJhbU5hbWVzLFxyXG4gIH06IFBhcmFtZXRlcnNQcm9wcyk6IE9ic2VydmFibGU8UGFyYW1ldGVyc0RhdGE+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSBwYXJhbU5hbWVzLm1hcCgocCkgPT4gKHsgbmFtZTogcCB9KSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxQYXJhbWV0ZXJzRGF0YT4+KGAke3RoaXMudXJsfS9wYXJhbWV0ZXJzLXZhbHVlc2AsIHtcclxuICAgICAgcGFyYW1ldGVyc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpZWQgcGFyYW1ldGVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGlucHV0IC0gVGhlIGlucHV0IG9iamVjdCBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXIgZGV0YWlscy5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gaW5wdXQucGFyYW1OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciB3aG9zZSB2YWx1ZSBpcyB0byBiZSByZXRyaWV2ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQYXJhbWV0ZXJWYWx1ZURhdGE+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlci5cclxuICAgKi9cclxuICBnZXRQYXJhbWV0ZXJWYWx1ZSAoe1xyXG4gICAgcGFyYW1OYW1lLFxyXG4gIH06IFBhcmFtZXRlclZhbHVlUHJvcHMpOiBPYnNlcnZhYmxlPFBhcmFtZXRlclZhbHVlRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXJhbWV0ZXJWYWx1ZURhdGE+PihgJHt0aGlzLnVybH0vcGFyYW1ldGVycy12YWx1ZXMvJHtwYXJhbU5hbWV9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGNvdW50cnkgcmVmZXJlbmNlcyBiYXNlZCBvbiB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciByZXRyaWV2aW5nIGNvdW50cnkgcmVmZXJlbmNlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlSZWZlcmVuY2VzRGF0YT59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgY291bnRyeSByZWZlcmVuY2UgZGF0YS5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UmVmZXJlbmNlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q291bnRyeVJlZmVyZW5jZXNEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlSZWZlcmVuY2VzRGF0YT4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXJlZmVyZW5jZXNgLCB7XHJcbiAgICAgIHBhcmFtczogaHR0cFBhcmFtcyhwYXJhbXMpLFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGNvdW50cnkgcmVmZXJlbmNlIGRhdGEgZm9yIGEgZ2l2ZW4gY291bnRyeSBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY291bnRyeSBmb3Igd2hpY2ggdGhlIHJlZmVyZW5jZSBkYXRhIGlzIHRvIGJlIHJldHJpZXZlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlSZWZlcmVuY2VEYXRhPn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBjb3VudHJ5IHJlZmVyZW5jZSBkYXRhLlxyXG4gICAqL1xyXG4gIGdldENvdW50cnlSZWZlcmVuY2UgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvdW50cnlSZWZlcmVuY2VEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlSZWZlcmVuY2VEYXRhPj4oYCR7dGhpcy51cmx9L2NvdW50cnktcmVmZXJlbmNlcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgbGlzdCBvZiB3b3JrZmxvd3MgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB3b3JrZmxvd3MuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxXb3JrZmxvd3NEYXRhPn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB3b3JrZmxvdyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFdvcmtmbG93cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8V29ya2Zsb3dzRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxXb3JrZmxvd3NEYXRhPj4oYCR7dGhpcy51cmx9L3dvcmtmbG93c2AsIHtcclxuICAgICAgcGFyYW1zOiBodHRwUGFyYW1zKHBhcmFtcyksXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -2,64 +2,65 @@ import { Inject, Injectable } from '@angular/core';
|
|
|
2
2
|
import { HttpHeaders } from '@angular/common/http';
|
|
3
3
|
import { map, tap } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "
|
|
5
|
+
import * as i1 from "ngx-cookie-service";
|
|
6
|
+
import * as i2 from "@angular/common/http";
|
|
7
7
|
export class ApiSecurityService {
|
|
8
|
-
constructor(environments,
|
|
8
|
+
constructor(environments, cookie, http) {
|
|
9
9
|
this.environments = environments;
|
|
10
|
-
this.httpClient = httpClient;
|
|
11
10
|
this.cookie = cookie;
|
|
11
|
+
this.http = http;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
* Retrieves the API security URL.
|
|
14
|
+
* Retrieves the API security URL from the environments configuration.
|
|
15
15
|
*
|
|
16
|
-
* @
|
|
16
|
+
* @return {string} The API security URL.
|
|
17
17
|
*/
|
|
18
18
|
get url() {
|
|
19
19
|
return this.environments.apiSecurityUrl;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* Authenticates a user with the provided credentials and role.
|
|
23
23
|
*
|
|
24
|
-
* @param {
|
|
25
|
-
* @param {string}
|
|
26
|
-
* @param {string}
|
|
27
|
-
* @param {string}
|
|
28
|
-
*
|
|
29
|
-
* @returns {Observable<LoginOut>} - An observable that emits the logged-in user's information.
|
|
24
|
+
* @param {Object} param0 - The login input object.
|
|
25
|
+
* @param {string} param0.username - The username of the user.
|
|
26
|
+
* @param {string} param0.password - The password of the user.
|
|
27
|
+
* @param {string} param0.role - The role of the user.
|
|
28
|
+
* @return {Observable<LoginOut>} An observable emitting the login output object.
|
|
30
29
|
*/
|
|
31
30
|
login({ username, password, role, }) {
|
|
32
|
-
return this.
|
|
31
|
+
return this.http.post(`${this.url}/auth/login`, {
|
|
33
32
|
system_name: 'CRA',
|
|
34
33
|
username,
|
|
35
34
|
password,
|
|
36
35
|
role,
|
|
37
|
-
}).pipe(map(({ data }) => data), tap(({ access_token }) => this.cookie.set(
|
|
36
|
+
}).pipe(map(({ data }) => data), tap(({ access_token }) => this.cookie.set(this.environments.tokenName, access_token, { path: '/' })));
|
|
38
37
|
}
|
|
39
38
|
/**
|
|
40
|
-
* Logs out the user
|
|
39
|
+
* Logs out the current user by making a POST request to the logout endpoint.
|
|
40
|
+
*
|
|
41
|
+
* This method deletes all cookies after a successful logout.
|
|
41
42
|
*
|
|
42
|
-
* @return {Observable<{}>} An observable that emits
|
|
43
|
+
* @return {Observable<{}>} An observable that emits the server's response to the logout request.
|
|
43
44
|
*/
|
|
44
45
|
logout() {
|
|
45
|
-
return this.
|
|
46
|
+
return this.http.post(`${this.url}/auth/logout`, null)
|
|
46
47
|
.pipe(map(({ data }) => data), tap(() => this.cookie.deleteAll('/')));
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
|
-
* Creates a session
|
|
50
|
+
* Creates a new session for a specified model.
|
|
50
51
|
*
|
|
51
|
-
* @param {
|
|
52
|
-
* @param {string}
|
|
53
|
-
* @param {string}
|
|
54
|
-
* @param {string}
|
|
52
|
+
* @param {Object} params - The parameters for creating the session.
|
|
53
|
+
* @param {string} params.modelType - The type of the model.
|
|
54
|
+
* @param {string} params.modelId - The ID of the model.
|
|
55
|
+
* @param {string} [params.token] - Optional authorization token.
|
|
55
56
|
*
|
|
56
|
-
* @return {Observable<CreateSessionOut>}
|
|
57
|
+
* @return {Observable<CreateSessionOut>} An observable containing the created session details.
|
|
57
58
|
*/
|
|
58
59
|
createSession({ modelType, modelId, token, }) {
|
|
59
60
|
let headers = new HttpHeaders({});
|
|
60
61
|
if (token)
|
|
61
62
|
headers = headers.set('Authorization', `Bearer ${token}`);
|
|
62
|
-
return this.
|
|
63
|
+
return this.http.post(`${this.url}/sessions`, {
|
|
63
64
|
model_type: modelType,
|
|
64
65
|
model_id: modelId,
|
|
65
66
|
}, {
|
|
@@ -67,54 +68,53 @@ export class ApiSecurityService {
|
|
|
67
68
|
}).pipe(map(({ data }) => data));
|
|
68
69
|
}
|
|
69
70
|
/**
|
|
70
|
-
*
|
|
71
|
+
* Fetches the authenticated user's information.
|
|
72
|
+
* Sends a GET request to the endpoint '/auth/me' to retrieve information
|
|
73
|
+
* about the currently authenticated user.
|
|
71
74
|
*
|
|
72
|
-
* @
|
|
75
|
+
* @return {Observable<MeOut>} An observable that emits the authenticated user's data.
|
|
73
76
|
*/
|
|
74
77
|
me() {
|
|
75
|
-
return this.
|
|
78
|
+
return this.http.get(`${this.url}/auth/me`)
|
|
76
79
|
.pipe(map(({ data }) => data));
|
|
77
80
|
}
|
|
78
81
|
/**
|
|
79
|
-
*
|
|
82
|
+
* Fetches the authenticated user's details from the server.
|
|
80
83
|
*
|
|
81
|
-
* @param
|
|
82
|
-
*
|
|
83
|
-
* @returns {Observable<GetUserOut>} - An observable that emits the retrieved user data.
|
|
84
|
+
* @param token The JWT token used for authorization.
|
|
85
|
+
* @return An Observable that emits the user's details encapsulated in a MeOut object.
|
|
84
86
|
*/
|
|
85
|
-
|
|
86
|
-
return this.
|
|
87
|
-
.pipe(map(({ data }) => data));
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Get user information
|
|
91
|
-
*
|
|
92
|
-
* @param {string} token - The user's authentication token
|
|
93
|
-
*
|
|
94
|
-
* @return {Observable<MeOut>} - An observable that emits the user's information
|
|
95
|
-
*/
|
|
96
|
-
userInfo({ token }) {
|
|
97
|
-
return this.httpClient.get(`${this.url}/auth/me`, {
|
|
87
|
+
otherMe(token) {
|
|
88
|
+
return this.http.get(`${this.url}/auth/me`, {
|
|
98
89
|
headers: {
|
|
99
90
|
Authorization: `Bearer ${token}`
|
|
100
91
|
}
|
|
101
92
|
}).pipe(map(({ data }) => data));
|
|
102
93
|
}
|
|
103
94
|
/**
|
|
104
|
-
*
|
|
95
|
+
* Fetches a user by their unique ID.
|
|
105
96
|
*
|
|
106
|
-
* @param {
|
|
107
|
-
* @
|
|
97
|
+
* @param {number} id - The unique identifier of the user to be fetched.
|
|
98
|
+
* @return {Observable<GetUserOut>} An observable containing the user information.
|
|
99
|
+
*/
|
|
100
|
+
user(id) {
|
|
101
|
+
return this.http.get(`${this.url}/users/${id}`)
|
|
102
|
+
.pipe(map(({ data }) => data));
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Changes the language for the authenticated user.
|
|
108
106
|
*
|
|
109
|
-
* @
|
|
107
|
+
* @param {Object} params - The input parameters for changing the language.
|
|
108
|
+
* @param {string} params.languageId - The ID of the new language to be set.
|
|
109
|
+
* @return {Observable<ApiSuccess<MeOut>>} An observable that emits the result of the language change request.
|
|
110
110
|
*/
|
|
111
111
|
changeLanguage({ languageId }) {
|
|
112
|
-
return this.
|
|
112
|
+
return this.http.put(`${this.url}/auth/me`, {
|
|
113
113
|
language_id: languageId
|
|
114
114
|
}).pipe(map(({ data }) => data));
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
ApiSecurityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, deps: [{ token: 'env' }, { token: i1.
|
|
117
|
+
ApiSecurityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, deps: [{ token: 'env' }, { token: i1.CookieService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
118
118
|
ApiSecurityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, providedIn: 'root' });
|
|
119
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, decorators: [{
|
|
120
120
|
type: Injectable,
|
|
@@ -124,5 +124,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
124
124
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
125
125
|
type: Inject,
|
|
126
126
|
args: ['env']
|
|
127
|
-
}] }, { type: i1.
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXNlY3VyaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0vbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktc2VjdXJpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQWFsRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFOUQsT0FBTyxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7Ozs7QUFNM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUN5QixZQUF5QixFQUN4QyxVQUFzQixFQUN0QixNQUFxQjtRQUZOLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUM1QixDQUFDO0lBRUo7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUE7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBRSxFQUNMLFFBQVEsRUFDUixRQUFRLEVBQ1IsSUFBSSxHQUNJO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBdUIsR0FBRyxJQUFJLENBQUMsR0FBRyxhQUFhLEVBQUU7WUFDMUUsV0FBVyxFQUFFLEtBQUs7WUFDbEIsUUFBUTtZQUNSLFFBQVE7WUFDUixJQUFJO1NBQ0wsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDdkIsR0FBRyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1B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QUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQXBpU3VjY2VzcyB9IGZyb20gJy4vYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VMYW5ndWFnZUluLFxyXG4gIENyZWF0ZVNlc3Npb25JbixcclxuICBDcmVhdGVTZXNzaW9uT3V0LFxyXG4gIEdldFVzZXJJbixcclxuICBHZXRVc2VySW5mb0luLFxyXG4gIEdldFVzZXJPdXQsXHJcbiAgTG9naW5JbixcclxuICBMb2dpbk91dCxcclxuICBNZU91dFxyXG59IGZyb20gJy4vYXBpLXNlY3VyaXR5Lm1vZGVscydcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHRhcCB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlTZWN1cml0eVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgY29va2llOiBDb29raWVTZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBBUEkgc2VjdXJpdHkgVVJMLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIEFQSSBzZWN1cml0eSBVUkwuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlTZWN1cml0eVVybFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9ncyBpbiB0aGUgdXNlciB1c2luZyB0aGUgcHJvdmlkZWQgbG9naW4gY3JlZGVudGlhbHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge29iamVjdH0gbG9naW5QYXJhbXMgLSBUaGUgbG9naW4gcGFyYW1ldGVycy5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbG9naW5QYXJhbXMudXNlcm5hbWUgLSBUaGUgdXNlcm5hbWUgb2YgdGhlIHVzZXIuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxvZ2luUGFyYW1zLnBhc3N3b3JkIC0gVGhlIHBhc3N3b3JkIG9mIHRoZSB1c2VyLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsb2dpblBhcmFtcy5yb2xlIC0gVGhlIHJvbGUgb2YgdGhlIHVzZXIuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxMb2dpbk91dD59IC0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsb2dnZWQtaW4gdXNlcidzIGluZm9ybWF0aW9uLlxyXG4gICAqL1xyXG4gIGxvZ2luICh7XHJcbiAgICB1c2VybmFtZSxcclxuICAgIHBhc3N3b3JkLFxyXG4gICAgcm9sZSxcclxuICB9OiBMb2dpbkluKTogT2JzZXJ2YWJsZTxMb2dpbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVN1Y2Nlc3M8TG9naW5PdXQ+PihgJHt0aGlzLnVybH0vYXV0aC9sb2dpbmAsIHtcclxuICAgICAgc3lzdGVtX25hbWU6ICdDUkEnLFxyXG4gICAgICB1c2VybmFtZSxcclxuICAgICAgcGFzc3dvcmQsXHJcbiAgICAgIHJvbGUsXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSxcclxuICAgICAgdGFwKCh7IGFjY2Vzc190b2tlbiB9KSA9PiB0aGlzLmNvb2tpZS5zZXQoJ3Rva2VuQ1JBJywgYWNjZXNzX3Rva2VuLCB7IHBhdGg6ICcvJyB9KSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvZ3Mgb3V0IHRoZSB1c2VyIGZyb20gdGhlIGFwcGxpY2F0aW9uLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTx7fT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBlbXB0eSBvYmplY3QgdXBvbiBzdWNjZXNzZnVsIGxvZ291dC5cclxuICAgKi9cclxuICBsb2dvdXQgKCk6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L2F1dGgvbG9nb3V0YCwgbnVsbClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuY29va2llLmRlbGV0ZUFsbCgnLycpKVxyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgc2Vzc2lvbiB3aXRoIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDcmVhdGVTZXNzaW9uSW59IG9wdGlvbnMgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyBmb3Igc2Vzc2lvbiBjcmVhdGlvbi5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5tb2RlbFR5cGUgLSBUaGUgc2Vzc2lvbiBtb2RlbCB0eXBlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm1vZGVsSWQgLSBUaGUgc2Vzc2lvbiBtb2RlbCBJRC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy50b2tlbiAtIFRoZSBhdXRob3JpemF0aW9uIHRva2VuLiBPcHRpb25hbC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3JlYXRlU2Vzc2lvbk91dD59IC0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHNlc3Npb24gY3JlYXRpb24uXHJcbiAgICovXHJcbiAgY3JlYXRlU2Vzc2lvbiAoe1xyXG4gICAgbW9kZWxUeXBlLFxyXG4gICAgbW9kZWxJZCxcclxuICAgIHRva2VuLFxyXG4gIH06IENyZWF0ZVNlc3Npb25Jbik6IE9ic2VydmFibGU8Q3JlYXRlU2Vzc2lvbk91dD4ge1xyXG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe30pXHJcblxyXG4gICAgaWYgKHRva2VuKVxyXG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCBgQmVhcmVyICR7dG9rZW59YClcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpU3VjY2VzczxDcmVhdGVTZXNzaW9uT3V0Pj4oXHJcbiAgICAgIGAke3RoaXMudXJsfS9zZXNzaW9uc2AsIHtcclxuICAgICAgICBtb2RlbF90eXBlOiBtb2RlbFR5cGUsXHJcbiAgICAgICAgbW9kZWxfaWQ6IG1vZGVsSWQsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBoZWFkZXJzXHJcbiAgICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdXNlciBpbmZvcm1hdGlvbi5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPE1lT3V0Pn0gT2JzZXJ2YWJsZSBvZiB1c2VyIGluZm9ybWF0aW9uLlxyXG4gICAqL1xyXG4gIG1lICgpOiBPYnNlcnZhYmxlPE1lT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcGlTdWNjZXNzPE1lT3V0Pj4oYCR7dGhpcy51cmx9L2F1dGgvbWVgKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB1c2VyIGluZm9ybWF0aW9uIGZyb20gdGhlIEFQSS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7R2V0VXNlcklufSB1c2VyIC0gVGhlIHVzZXIgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHVzZXIgSUQuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxHZXRVc2VyT3V0Pn0gLSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCB1c2VyIGRhdGEuXHJcbiAgICovXHJcbiAgdXNlciAoe1xyXG4gICAgdXNlcklkXHJcbiAgfTogR2V0VXNlckluKTogT2JzZXJ2YWJsZTxHZXRVc2VyT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcGlTdWNjZXNzPEdldFVzZXJPdXQ+PihgJHt0aGlzLnVybH0vdXNlcnMvJHt1c2VySWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdXNlciBpbmZvcm1hdGlvblxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRva2VuIC0gVGhlIHVzZXIncyBhdXRoZW50aWNhdGlvbiB0b2tlblxyXG4gICAqXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxNZU91dD59IC0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1c2VyJ3MgaW5mb3JtYXRpb25cclxuICAgKi9cclxuICB1c2VySW5mbyAoe1xyXG4gICAgdG9rZW5cclxuICB9OiBHZXRVc2VySW5mb0luKTogT2JzZXJ2YWJsZTxNZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpU3VjY2VzczxNZU91dD4+KGAke3RoaXMudXJsfS9hdXRoL21lYCwge1xyXG4gICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWBcclxuICAgICAgfVxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoYW5nZXMgdGhlIGxhbmd1YWdlIG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGNoYW5naW5nIHRoZSBsYW5ndWFnZS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmxhbmd1YWdlSWQgLSBUaGUgSUQgb2YgdGhlIGxhbmd1YWdlIHRvIGNoYW5nZSB0by5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPE9iamVjdD59IC0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIHVzZXIgZGF0YS5cclxuICAgKi9cclxuICBjaGFuZ2VMYW5ndWFnZSAoe1xyXG4gICAgbGFuZ3VhZ2VJZFxyXG4gIH06IENoYW5nZUxhbmd1YWdlSW4pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0PEFwaVN1Y2Nlc3M8TWVPdXQ+PihgJHt0aGlzLnVybH0vYXV0aC9tZWAsIHtcclxuICAgICAgbGFuZ3VhZ2VfaWQ6IGxhbmd1YWdlSWRcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
127
|
+
}] }, { type: i1.CookieService }, { type: i2.HttpClient }]; } });
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXNlY3VyaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0vbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktc2VjdXJpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQVdsRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFOUQsT0FBTyxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7Ozs7QUFNM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUN5QixZQUF5QixFQUN4QyxNQUFxQixFQUNyQixJQUFnQjtRQUZELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUo7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUE7SUFDekMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFFLEVBQ0wsUUFBUSxFQUNSLFFBQVEsRUFDUixJQUFJLEdBQ0k7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF1QixHQUFHLElBQUksQ0FBQyxHQUFHLGFBQWEsRUFBRTtZQUNwRSxXQUFXLEVBQUUsS0FBSztZQUNsQixRQUFRO1lBQ1IsUUFBUTtZQUNSLElBQUk7U0FDTCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUN2QixHQUFHLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFB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QkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZUxhbmd1YWdlSW4sXHJcbiAgQ3JlYXRlU2Vzc2lvbkluLFxyXG4gIENyZWF0ZVNlc3Npb25PdXQsXHJcbiAgR2V0VXNlck91dCxcclxuICBMb2dpbkluLFxyXG4gIExvZ2luT3V0LFxyXG4gIE1lT3V0XHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLXNlY3VyaXR5LnR5cGVzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSdcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaVNlY3VyaXR5U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBjb29raWU6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIEFQSSBzZWN1cml0eSBVUkwgZnJvbSB0aGUgZW52aXJvbm1lbnRzIGNvbmZpZ3VyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBBUEkgc2VjdXJpdHkgVVJMLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpU2VjdXJpdHlVcmxcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF1dGhlbnRpY2F0ZXMgYSB1c2VyIHdpdGggdGhlIHByb3ZpZGVkIGNyZWRlbnRpYWxzIGFuZCByb2xlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtMCAtIFRoZSBsb2dpbiBpbnB1dCBvYmplY3QuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtMC51c2VybmFtZSAtIFRoZSB1c2VybmFtZSBvZiB0aGUgdXNlci5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW0wLnBhc3N3b3JkIC0gVGhlIHBhc3N3b3JkIG9mIHRoZSB1c2VyLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbTAucm9sZSAtIFRoZSByb2xlIG9mIHRoZSB1c2VyLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG9naW5PdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBsb2dpbiBvdXRwdXQgb2JqZWN0LlxyXG4gICAqL1xyXG4gIGxvZ2luICh7XHJcbiAgICB1c2VybmFtZSxcclxuICAgIHBhc3N3b3JkLFxyXG4gICAgcm9sZSxcclxuICB9OiBMb2dpbkluKTogT2JzZXJ2YWJsZTxMb2dpbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8TG9naW5PdXQ+PihgJHt0aGlzLnVybH0vYXV0aC9sb2dpbmAsIHtcclxuICAgICAgc3lzdGVtX25hbWU6ICdDUkEnLFxyXG4gICAgICB1c2VybmFtZSxcclxuICAgICAgcGFzc3dvcmQsXHJcbiAgICAgIHJvbGUsXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSxcclxuICAgICAgdGFwKCh7IGFjY2Vzc190b2tlbiB9KSA9PiB0aGlzLmNvb2tpZS5zZXQodGhpcy5lbnZpcm9ubWVudHMudG9rZW5OYW1lLCBhY2Nlc3NfdG9rZW4sIHsgcGF0aDogJy8nIH0pKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9ncyBvdXQgdGhlIGN1cnJlbnQgdXNlciBieSBtYWtpbmcgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIGxvZ291dCBlbmRwb2ludC5cclxuICAgKlxyXG4gICAqIFRoaXMgbWV0aG9kIGRlbGV0ZXMgYWxsIGNvb2tpZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIGxvZ291dC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNlcnZlcidzIHJlc3BvbnNlIHRvIHRoZSBsb2dvdXQgcmVxdWVzdC5cclxuICAgKi9cclxuICBsb2dvdXQgKCk6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L2F1dGgvbG9nb3V0YCwgbnVsbClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuY29va2llLmRlbGV0ZUFsbCgnLycpKVxyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IHNlc3Npb24gZm9yIGEgc3BlY2lmaWVkIG1vZGVsLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBjcmVhdGluZyB0aGUgc2Vzc2lvbi5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLm1vZGVsVHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLm1vZGVsSWQgLSBUaGUgSUQgb2YgdGhlIG1vZGVsLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyYW1zLnRva2VuXSAtIE9wdGlvbmFsIGF1dGhvcml6YXRpb24gdG9rZW4uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENyZWF0ZVNlc3Npb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGNyZWF0ZWQgc2Vzc2lvbiBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIGNyZWF0ZVNlc3Npb24gKHtcclxuICAgIG1vZGVsVHlwZSxcclxuICAgIG1vZGVsSWQsXHJcbiAgICB0b2tlbixcclxuICB9OiBDcmVhdGVTZXNzaW9uSW4pOiBPYnNlcnZhYmxlPENyZWF0ZVNlc3Npb25PdXQ+IHtcclxuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHt9KVxyXG5cclxuICAgIGlmICh0b2tlbilcclxuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3Rva2VufWApXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q3JlYXRlU2Vzc2lvbk91dD4+KFxyXG4gICAgICBgJHt0aGlzLnVybH0vc2Vzc2lvbnNgLCB7XHJcbiAgICAgICAgbW9kZWxfdHlwZTogbW9kZWxUeXBlLFxyXG4gICAgICAgIG1vZGVsX2lkOiBtb2RlbElkLFxyXG4gICAgICB9LCB7XHJcbiAgICAgICAgaGVhZGVyc1xyXG4gICAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyJ3MgaW5mb3JtYXRpb24uXHJcbiAgICogU2VuZHMgYSBHRVQgcmVxdWVzdCB0byB0aGUgZW5kcG9pbnQgJy9hdXRoL21lJyB0byByZXRyaWV2ZSBpbmZvcm1hdGlvblxyXG4gICAqIGFib3V0IHRoZSBjdXJyZW50bHkgYXV0aGVudGljYXRlZCB1c2VyLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxNZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgYXV0aGVudGljYXRlZCB1c2VyJ3MgZGF0YS5cclxuICAgKi9cclxuICBtZSAoKTogT2JzZXJ2YWJsZTxNZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxNZU91dD4+KGAke3RoaXMudXJsfS9hdXRoL21lYClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIncyBkZXRhaWxzIGZyb20gdGhlIHNlcnZlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB0b2tlbiBUaGUgSldUIHRva2VuIHVzZWQgZm9yIGF1dGhvcml6YXRpb24uXHJcbiAgICogQHJldHVybiBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVzZXIncyBkZXRhaWxzIGVuY2Fwc3VsYXRlZCBpbiBhIE1lT3V0IG9iamVjdC5cclxuICAgKi9cclxuICBvdGhlck1lICh0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxNZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxNZU91dD4+KGAke3RoaXMudXJsfS9hdXRoL21lYCwge1xyXG4gICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWBcclxuICAgICAgfVxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSB1c2VyIGJ5IHRoZWlyIHVuaXF1ZSBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdXNlciB0byBiZSBmZXRjaGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0VXNlck91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXNlciBpbmZvcm1hdGlvbi5cclxuICAgKi9cclxuICB1c2VyIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxHZXRVc2VyT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEdldFVzZXJPdXQ+PihgJHt0aGlzLnVybH0vdXNlcnMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoYW5nZXMgdGhlIGxhbmd1YWdlIGZvciB0aGUgYXV0aGVudGljYXRlZCB1c2VyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIGZvciBjaGFuZ2luZyB0aGUgbGFuZ3VhZ2UuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5sYW5ndWFnZUlkIC0gVGhlIElEIG9mIHRoZSBuZXcgbGFuZ3VhZ2UgdG8gYmUgc2V0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QXBpU3VjY2VzczxNZU91dD4+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgbGFuZ3VhZ2UgY2hhbmdlIHJlcXVlc3QuXHJcbiAgICovXHJcbiAgY2hhbmdlTGFuZ3VhZ2UgKHtcclxuICAgIGxhbmd1YWdlSWRcclxuICB9OiBDaGFuZ2VMYW5ndWFnZUluKTogT2JzZXJ2YWJsZTxNZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxNZU91dD4+KGAke3RoaXMudXJsfS9hdXRoL21lYCwge1xyXG4gICAgICBsYW5ndWFnZV9pZDogbGFuZ3VhZ2VJZFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktY2F0YWxvZy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTeW1mb255TW9kZWwgfSBmcm9tICcuL2FwaS5tb2RlbHMnXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvdW50cnkgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIGNvZGVBbmROYW1lOiBzdHJpbmdcclxuICBpc29Db2RlOiBzdHJpbmdcclxuICBjb2RlUGhvbmU6IHN0cmluZ1xyXG4gIGxvY2FsZTogc3RyaW5nXHJcbiAgbG9jYXRpb25UeXBlOiBMb2NhdGlvblR5cGVcclxuICB1bml0OiBVbml0XHJcbiAgdGltZXpvbmU6IHN0cmluZ1xyXG4gIGhhc0ltcG9ydFNlcnZpY2U6IGJvb2xlYW5cclxuICBwaG9uZURpZ2l0czogbnVtYmVyXHJcbiAgbG9jYXRpb25UeXBlRmllbGRzOiBMb2NhdGlvblR5cGVGaWVsZHNcclxuICBwb3N0YWxDb2RlU3VmZml4UmVnZXg6IHN0cmluZ1xyXG4gIGRlY2ltYWxQb2ludDogbnVtYmVyXHJcbiAgbWF4X3F1YW50aXR5X2RvY3VtZW50X3BpZWNlOiBudW1iZXJcclxuICBtYXhfcXVhbnRpdHlfcGFja2FnZV9waWVjZTogbnVtYmVyXHJcbiAgd2VpZ2h0X3Jlc3RyaWN0aW9uX3BpZWNlOiBudW1iZXJcclxuICByZXN0cmljdGlvbl9zaGlwbWVudDogbnVtYmVyXHJcbiAgcmVzdHJpY3Rpb25fZGltZW5zaW9uOiBudW1iZXJcclxuICBtYXhfZGVjbGFyZWRfdmFsdWU6IG51bWJlclxyXG4gIGRlY2ltYWxfc2VwYXJhdG9yOiBzdHJpbmdcclxuICB0aG91c2FuZHNfc2VwYXJhdG9yOiBzdHJpbmdcclxuICBsYWJlbF9wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIHJlY2VpcHRfcHJpbnRlcl9uYW1lOiBzdHJpbmdcclxuICBvdGhlcnNfcHJpbnRlcl9uYW1lOiBzdHJpbmdcclxuICB0ZXJyaXRvcmllczogbnVtYmVyW11cclxuICB1c2VfYmlsbGluZz86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvblR5cGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHByaW9yaXR5OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVbml0IGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICB3ZWlnaHQ6IHN0cmluZ1xyXG4gIGRpbWVuc2lvbjogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25UeXBlRmllbGRzIHtcclxuICBjaXR5OiBDaXR5XHJcbiAgcG9zdGFsQ29kZTogUG9zdGFsQ29kZVxyXG4gIHN1YnVyYjogU3VidXJiXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2l0eSB7XHJcbiAgZW5hYmxlZDogYm9vbGVhblxyXG4gIHJlcXVpcmVkOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9zdGFsQ29kZSB7XHJcbiAgZW5hYmxlZDogYm9vbGVhblxyXG4gIHJlcXVpcmVkOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VidXJiIHtcclxuICBlbmFibGVkOiBib29sZWFuXHJcbiAgcmVxdWlyZWQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYW5ndWFnZSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvdW50cnk6IENvdW50cnlcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXJyZW5jeSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgc3ltYm9sOiBzdHJpbmdcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbXBhbmllcy5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtL25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvbW9kZWxzL2FwaS1jb21wYW5pZXMuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFyYXZlbE1vZGVsIH0gZnJvbSAnLi9hcGkubW9kZWxzJ1xyXG5pbXBvcnQgeyBDdXJyZW5jeSwgU3RhdGUgfSBmcm9tICcuL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjY291bnQgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIG51bWJlcjogc3RyaW5nXHJcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xyXG4gIGFjY291bnRfdHlwZV9pZDogbnVtYmVyXHJcbiAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgaXNfZGVmYXVsdDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhbnkgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGlkOiBudW1iZXJcclxuICBjcmVhdGVkX2F0OiBzdHJpbmdcclxuICB1cGRhdGVkX2F0OiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb250YWN0X25hbWU6IHN0cmluZ1xyXG4gIGNvbnRhY3RfZW1haWw6IHN0cmluZ1xyXG4gIGNvbnRhY3RfcGhvbmU6IHN0cmluZ1xyXG4gIHN0YXRlOiBzdHJpbmdcclxuICBjaXR5OiBzdHJpbmdcclxuICBjb3VudHlfbmFtZTogc3RyaW5nXHJcbiAgemlwX2NvZGU6IHN0cmluZ1xyXG4gIGFkZHJlc3MxOiBzdHJpbmdcclxuICBhZGRyZXNzMjogc3RyaW5nXHJcbiAgYWRkcmVzczM6IHN0cmluZ1xyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhbnlDb3VudHJ5IGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBjb21wYW55X2lkOiBudW1iZXJcclxuICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICBoZWFkcXVhcnRlcnNfY2l0eV9jb2RlOiBzdHJpbmdcclxuICBscF9jb2RlOiBzdHJpbmdcclxuICBjb21wYW55OiBDb21wYW55XHJcbiAgY29udGFjdF9uYW1lOiBzdHJpbmdcclxuICBjb250YWN0X2VtYWlsOiBzdHJpbmdcclxuICBjb250YWN0X3Bob25lX2NvZGU6IHN0cmluZ1xyXG4gIGNvbnRhY3RfcGhvbmVfbnVtYmVyOiBzdHJpbmdcclxuICBzdGF0ZTogc3RyaW5nXHJcbiAgY2l0eTogc3RyaW5nXHJcbiAgemlwX2NvZGU6IHN0cmluZ1xyXG4gIGNvdW50eV9uYW1lOiBzdHJpbmdcclxuICBhZGRyZXNzMTogc3RyaW5nXHJcbiAgYWRkcmVzczI6IHN0cmluZ1xyXG4gIGFkZHJlc3MzOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb21wYW55Q291bnRyeVRheCBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgcGVyY2VudGFnZTogbnVtYmVyXHJcbiAgY29tcGFueV9jb3VudHJ5X2lkOiBudW1iZXJcclxuICBzaGlwbWVudF9zY29wZXM6IG51bWJlcltdXHJcbiAgYmFzZV9wZXJjZW50YWdlOiBudW1iZXJcclxuICB0YXhfdHlwZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeUN1cnJlbmN5UmF0ZSBleHRlbmRzIENvdW50cnlSZWZlcmVuY2VDdXJyZW5jeSB7XHJcbiAgcmF0ZTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeVJlZmVyZW5jZSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgbGFuZ3VhZ2VfaWQ6IG51bWJlclxyXG4gIGRlY2ltYWxfcG9pbnQ6IG51bWJlclxyXG4gIGRlY2ltYWxfc2VwYXJhdG9yOiBzdHJpbmdcclxuICB0aG91c2FuZHNfc2VwYXJhdG9yOiBzdHJpbmdcclxuICB1c2VfYmlsbGluZzogYm9vbGVhblxyXG4gIHVzZV9wYXltZW50czogYm9vbGVhblxyXG4gIHJlc3RyaWN0ZWRfaW1wb3J0X2NvdW50cmllczogbnVtYmVyW11cclxuICBjdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgbWF4X3F1YW50aXR5X2RvY3VtZW50X3BpZWNlOiBudW1iZXJcclxuICBtYXhfcXVhbnRpdHlfcGFja2FnZV9waWVjZTogbnVtYmVyXHJcbiAgd2VpZ2h0X3Jlc3RyaWN0aW9uX3BpZWNlOiBudW1iZXJcclxuICByZXN0cmljdGlvbl9zaGlwbWVudDogbnVtYmVyXHJcbiAgcmVzdHJpY3Rpb25fZGltZW5zaW9uOiBudW1iZXJcclxuICBtYXhfZGVjbGFyZWRfdmFsdWU6IG51bWJlclxyXG4gIHRlcnJpdG9yaWVzOiBudW1iZXJbXVxyXG4gIHNvbWVfb3BlbmluZ3M6IGJvb2xlYW5cclxuICBsb2NhbGU6IHN0cmluZ1xyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGxhYmVsX3ByaW50ZXJfbmFtZTogc3RyaW5nXHJcbiAgcmVjZWlwdF9wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIG90aGVyc19wcmludGVyX25hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvdW50cnlSZWZlcmVuY2VDdXJyZW5jeSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIGlzX2xvY2FsOiBib29sZWFuXHJcbiAgY2FuX3RyYW5zYWN0OiBib29sZWFuXHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgaXNfZGVmYXVsdDogYm9vbGVhblxyXG4gIGlzX2RlY2xhcmVkX2luc3VyZWQ6IGJvb2xlYW5cclxuICBjdXJyZW5jeTogQ3VycmVuY3lcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFbXBsb3llZSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgbGFzdF9uYW1lOiBzdHJpbmdcclxuICBudW1iZXI6IHN0cmluZ1xyXG4gIGNvbXBhbnlfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGV4dGVybmFsOiBib29sZWFuXHJcbiAgcGhvbmVfY29kZTogc3RyaW5nXHJcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmdcclxuICBpc19hY3RpdmU6IGJvb2xlYW5cclxuICBwYXNzd29yZDogc3RyaW5nXHJcbiAgcm9sZXM6IHN0cmluZ1tdXHJcbiAgbG9jYXRpb25zOiBMb2NhdGlvbltdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhjaGFuZ2UgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGNvbXBhbnlfY291bnRyeV9jdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgdmFsaWRfc2luY2U6IHN0cmluZ1xyXG4gIHZhbGlkX3VudGlsOiBzdHJpbmcgfCBudWxsXHJcbiAgdmFsdWU6IG51bWJlclxyXG4gIHR5cGU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbGxhdGlvbiBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgc3lzdGVtX2lkOiBudW1iZXJcclxuICBtYWNfYWRkcmVzczogc3RyaW5nXHJcbiAgaXBfYWRkcmVzczogc3RyaW5nXHJcbiAgbG9jYXRpb25faWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uIGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb250YWN0X25hbWU6IHN0cmluZ1xyXG4gIGVtYWlsOiBzdHJpbmdcclxuICBmYWNpbGl0eV9jb2RlOiBzdHJpbmdcclxuICBsb2NhdGlvbl9jb2RlOiBzdHJpbmdcclxuICB0eXBlOiBzdHJpbmdcclxuICBzdGF0ZV9uYW1lOiBzdHJpbmdcclxuICBzdGF0ZV9pZDogbnVtYmVyXHJcbiAgc3RhdGVfY29kZTogc3RyaW5nXHJcbiAgY2l0eV9uYW1lOiBzdHJpbmdcclxuICB6aXBfY29kZTogc3RyaW5nXHJcbiAgY291bnR5X25hbWU6IHN0cmluZ1xyXG4gIGFkZHJlc3MxOiBzdHJpbmdcclxuICBhZGRyZXNzMjogc3RyaW5nXHJcbiAgYWRkcmVzczM6IHN0cmluZ1xyXG4gIHNlcnZpY2VfYXJlYV9jb2RlOiBzdHJpbmdcclxuICBpYXRhX2NvZGU6IHN0cmluZ1xyXG4gIHBob25lX2NvZGU6IHN0cmluZ1xyXG4gIHBob25lX251bWJlcjogc3RyaW5nXHJcbiAgZ210X29mZnNldDogc3RyaW5nXHJcbiAgY29tcGFueV9jb3VudHJ5X2lkOiBudW1iZXJcclxuICBjb3VudHJ5X3pvbmVfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfcmVnaW9uX2lkOiBudW1iZXJcclxuICBtYW5hZ2VtZW50X2FyZWFfaWQ6IG51bWJlclxyXG4gIGdvb2dsZV9tYXBzX2lkOiBzdHJpbmdcclxuICByb3V0ZV9udW1iZXI6IHN0cmluZ1xyXG4gIGxvY2tlcl9lbmFibGVkOiBib29sZWFuXHJcbiAgcXVldWVfbWFuYWdlcl9lbmFibGVkOiBib29sZWFuXHJcbiAgY29tbWlzc2lvbl9hY2NvdW50OiBzdHJpbmdcclxuICBzZXJ2aWNlX3BvaW50X2lkOiBzdHJpbmdcclxuICBpc19vY2N1cnM6IGJvb2xlYW5cclxuICBhY2NvdW50czogQWNjb3VudFtdXHJcbiAgY29tcGFueV9jb3VudHJ5OiBDb21wYW55Q291bnRyeVxyXG4gIHN0YXRlOiBTdGF0ZVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uRW1wbG95ZWUgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBlbXBsb3llZV9pZDogbnVtYmVyXHJcbiAgaXNfYWN0aXZlOiBib29sZWFuXHJcbiAgaXNfc3VwZXJ2aXNvcjogYm9vbGVhblxyXG4gIGVtcGxveWVlOiBFbXBsb3llZVxyXG4gIGxvY2F0aW9uOiBMb2NhdGlvblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlciB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgdmFsdWU6IGFueVxyXG4gIHN0YXR1cz86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBseUVudGl0eSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGVuYWJsZWRfZm9yX2Ryb3BvZmY6IGJvb2xlYW5cclxuICBzdXBwbHlfdHlwZTogU3VwcGx5VHlwZVxyXG4gIHN1cHBseV9wYWNraW5nOiBTdXBwbHlQYWNraW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VwcGx5UGFja2luZyBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgdmFsdWU6IG51bWJlclxyXG4gIHdlaWdodDogbnVtYmVyXHJcbiAgaGVpZ2h0OiBudW1iZXJcclxuICBkZXB0aDogbnVtYmVyXHJcbiAgd2lkdGg6IG51bWJlclxyXG4gIGVtb2JpbGVfY29kZTogc3RyaW5nIHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBseVR5cGUgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93IHtcclxuICBwYWdlOiBzdHJpbmdcclxuICBlbmFibGVkOiBib29sZWFuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbkVtcGxveWVlIGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBsb2NhdGlvbl9pZDogbnVtYmVyXHJcbiAgZW1wbG95ZWVfaWQ6IG51bWJlclxyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG4gIGlzX3N1cGVydmlzb3I6IGJvb2xlYW5cclxuICBlbXBsb3llZTogRW1wbG95ZWVcclxuICBsb2NhdGlvbjogTG9jYXRpb25cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFbXBsb3llZSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgbGFzdF9uYW1lOiBzdHJpbmdcclxuICBudW1iZXI6IHN0cmluZ1xyXG4gIGNvbXBhbnlfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGV4dGVybmFsOiBib29sZWFuXHJcbiAgcGhvbmVfY29kZTogc3RyaW5nXHJcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmdcclxuICBpc19hY3RpdmU6IGJvb2xlYW5cclxuICBwYXNzd29yZDogc3RyaW5nXHJcbiAgcm9sZXM6IHN0cmluZ1tdXHJcbiAgbG9jYXRpb25zOiBMb2NhdGlvbltdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb24gZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvbnRhY3RfbmFtZTogc3RyaW5nXHJcbiAgZW1haWw6IHN0cmluZ1xyXG4gIGZhY2lsaXR5X2NvZGU6IHN0cmluZ1xyXG4gIGxvY2F0aW9uX2NvZGU6IHN0cmluZ1xyXG4gIHR5cGU6IHN0cmluZ1xyXG4gIHN0YXRlX25hbWU6IHN0cmluZ1xyXG4gIHN0YXRlX2lkOiBudW1iZXJcclxuICBzdGF0ZV9jb2RlOiBzdHJpbmdcclxuICBjaXR5X25hbWU6IHN0cmluZ1xyXG4gIHppcF9jb2RlOiBzdHJpbmdcclxuICBjb3VudHlfbmFtZTogc3RyaW5nXHJcbiAgYWRkcmVzczE6IHN0cmluZ1xyXG4gIGFkZHJlc3MyOiBzdHJpbmdcclxuICBhZGRyZXNzMzogc3RyaW5nXHJcbiAgc2VydmljZV9hcmVhX2NvZGU6IHN0cmluZ1xyXG4gIGlhdGFfY29kZTogc3RyaW5nXHJcbiAgcGhvbmVfY29kZTogc3RyaW5nXHJcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmdcclxuICBnbXRfb2Zmc2V0OiBzdHJpbmdcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfem9uZV9pZDogbnVtYmVyXHJcbiAgY291bnRyeV9yZWdpb25faWQ6IG51bWJlclxyXG4gIG1hbmFnZW1lbnRfYXJlYV9pZDogbnVtYmVyXHJcbiAgZ29vZ2xlX21hcHNfaWQ6IHN0cmluZ1xyXG4gIHJvdXRlX251bWJlcjogc3RyaW5nXHJcbiAgbG9ja2VyX2VuYWJsZWQ6IGJvb2xlYW5cclxuICBxdWV1ZV9tYW5hZ2VyX2VuYWJsZWQ6IGJvb2xlYW5cclxuICBjb21taXNzaW9uX2FjY291bnQ6IHN0cmluZ1xyXG4gIHNlcnZpY2VfcG9pbnRfaWQ6IHN0cmluZ1xyXG4gIGlzX29jY3VyczogYm9vbGVhblxyXG4gIGFjY291bnRzOiBBY2NvdW50W11cclxuICBjb21wYW55X2NvdW50cnk6IENvbXBhbnlDb3VudHJ5XHJcbiAgc3RhdGU6IFN0YXRlXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFueSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgaWQ6IG51bWJlclxyXG4gIGNyZWF0ZWRfYXQ6IHN0cmluZ1xyXG4gIHVwZGF0ZWRfYXQ6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvbnRhY3RfbmFtZTogc3RyaW5nXHJcbiAgY29udGFjdF9lbWFpbDogc3RyaW5nXHJcbiAgY29udGFjdF9waG9uZTogc3RyaW5nXHJcbiAgc3RhdGU6IHN0cmluZ1xyXG4gIGNpdHk6IHN0cmluZ1xyXG4gIGNvdW50eV9uYW1lOiBzdHJpbmdcclxuICB6aXBfY29kZTogc3RyaW5nXHJcbiAgYWRkcmVzczE6IHN0cmluZ1xyXG4gIGFkZHJlc3MyOiBzdHJpbmdcclxuICBhZGRyZXNzMzogc3RyaW5nXHJcbiAgaXNfYWN0aXZlOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFueUNvdW50cnkgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGNvbXBhbnlfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGhlYWRxdWFydGVyc19jaXR5X2NvZGU6IHN0cmluZ1xyXG4gIGxwX2NvZGU6IHN0cmluZ1xyXG4gIGNvbXBhbnk6IENvbXBhbnlcclxuICBjb250YWN0X25hbWU6IHN0cmluZ1xyXG4gIGNvbnRhY3RfZW1haWw6IHN0cmluZ1xyXG4gIGNvbnRhY3RfcGhvbmVfY29kZTogc3RyaW5nXHJcbiAgY29udGFjdF9waG9uZV9udW1iZXI6IHN0cmluZ1xyXG4gIHN0YXRlOiBzdHJpbmdcclxuICBjaXR5OiBzdHJpbmdcclxuICB6aXBfY29kZTogc3RyaW5nXHJcbiAgY291bnR5X25hbWU6IHN0cmluZ1xyXG4gIGFkZHJlc3MxOiBzdHJpbmdcclxuICBhZGRyZXNzMjogc3RyaW5nXHJcbiAgYWRkcmVzczM6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbGxhdGlvbiBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgc3lzdGVtX2lkOiBudW1iZXJcclxuICBtYWNfYWRkcmVzczogc3RyaW5nXHJcbiAgaXBfYWRkcmVzczogc3RyaW5nXHJcbiAgbG9jYXRpb25faWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBseUVudGl0eSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGVuYWJsZWRfZm9yX2Ryb3BvZmY6IGJvb2xlYW5cclxuICBzdXBwbHlfdHlwZTogU3VwcGx5VHlwZVxyXG4gIHN1cHBseV9wYWNraW5nOiBTdXBwbHlQYWNraW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VwcGx5VHlwZSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VwcGx5UGFja2luZyBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgdmFsdWU6IG51bWJlclxyXG4gIHdlaWdodDogbnVtYmVyXHJcbiAgaGVpZ2h0OiBudW1iZXJcclxuICBkZXB0aDogbnVtYmVyXHJcbiAgd2lkdGg6IG51bWJlclxyXG4gIGVtb2JpbGVfY29kZTogc3RyaW5nIHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVtcGxveWVlIGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBsYXN0X25hbWU6IHN0cmluZ1xyXG4gIG51bWJlcjogc3RyaW5nXHJcbiAgY29tcGFueV9pZDogbnVtYmVyXHJcbiAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgZXh0ZXJuYWw6IGJvb2xlYW5cclxuICBwaG9uZV9jb2RlOiBzdHJpbmdcclxuICBwaG9uZV9udW1iZXI6IHN0cmluZ1xyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG4gIHBhc3N3b3JkOiBzdHJpbmdcclxuICByb2xlczogc3RyaW5nW11cclxuICBsb2NhdGlvbnM6IExvY2F0aW9uW11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb3VudHJ5UmVmZXJlbmNlQ3VycmVuY3kgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGN1cnJlbmN5X2lkOiBudW1iZXJcclxuICBpc19sb2NhbDogYm9vbGVhblxyXG4gIGNhbl90cmFuc2FjdDogYm9vbGVhblxyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGlzX2RlZmF1bHQ6IGJvb2xlYW5cclxuICBpc19kZWNsYXJlZF9pbnN1cmVkOiBib29sZWFuXHJcbiAgY3VycmVuY3k6IEN1cnJlbmN5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFueUNvdW50cnlUYXggZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHBlcmNlbnRhZ2U6IG51bWJlclxyXG4gIGNvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyXHJcbiAgc2hpcG1lbnRfc2NvcGVzOiBudW1iZXJbXVxyXG4gIGJhc2VfcGVyY2VudGFnZTogbnVtYmVyXHJcbiAgdGF4X3R5cGU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2hhbmdlIGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBjb21wYW55X2NvdW50cnlfY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIHZhbGlkX3NpbmNlOiBzdHJpbmdcclxuICB2YWxpZF91bnRpbDogc3RyaW5nIHwgbnVsbFxyXG4gIHZhbHVlOiBudW1iZXJcclxuICB0eXBlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXIge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHZhbHVlOiBhbnlcclxuICBzdGF0dXM/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb3VudHJ5UmVmZXJlbmNlIGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBsYW5ndWFnZV9pZDogbnVtYmVyXHJcbiAgZGVjaW1hbF9wb2ludDogbnVtYmVyXHJcbiAgZGVjaW1hbF9zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIHRob3VzYW5kc19zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIHVzZV9iaWxsaW5nOiBib29sZWFuXHJcbiAgdXNlX3BheW1lbnRzOiBib29sZWFuXHJcbiAgcmVzdHJpY3RlZF9pbXBvcnRfY291bnRyaWVzOiBudW1iZXJbXVxyXG4gIGN1cnJlbmN5X2lkOiBudW1iZXJcclxuICBtYXhfcXVhbnRpdHlfZG9jdW1lbnRfcGllY2U6IG51bWJlclxyXG4gIG1heF9xdWFudGl0eV9wYWNrYWdlX3BpZWNlOiBudW1iZXJcclxuICB3ZWlnaHRfcmVzdHJpY3Rpb25fcGllY2U6IG51bWJlclxyXG4gIHJlc3RyaWN0aW9uX3NoaXBtZW50OiBudW1iZXJcclxuICByZXN0cmljdGlvbl9kaW1lbnNpb246IG51bWJlclxyXG4gIG1heF9kZWNsYXJlZF92YWx1ZTogbnVtYmVyXHJcbiAgdGVycml0b3JpZXM6IG51bWJlcltdXHJcbiAgc29tZV9vcGVuaW5nczogYm9vbGVhblxyXG4gIGxvY2FsZTogc3RyaW5nXHJcbiAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgbGFiZWxfcHJpbnRlcl9uYW1lOiBzdHJpbmdcclxuICByZWNlaXB0X3ByaW50ZXJfbmFtZTogc3RyaW5nXHJcbiAgb3RoZXJzX3ByaW50ZXJfbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3cge1xyXG4gIHBhZ2U6IHN0cmluZ1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbXBhbmllcy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktY29tcGFuaWVzLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFjY291bnQsXHJcbiAgQ29tcGFueUNvdW50cnksXHJcbiAgQ29tcGFueUNvdW50cnlUYXgsXHJcbiAgQ291bnRyeVJlZmVyZW5jZSxcclxuICBDb3VudHJ5UmVmZXJlbmNlQ3VycmVuY3ksXHJcbiAgRW1wbG95ZWUsXHJcbiAgRXhjaGFuZ2UsXHJcbiAgSW5zdGFsbGF0aW9uLFxyXG4gIExvY2F0aW9uLFxyXG4gIExvY2F0aW9uRW1wbG95ZWUsXHJcbiAgUGFyYW1ldGVyLFxyXG4gIFN1cHBseUVudGl0eSxcclxuICBXb3JrZmxvd1xyXG59IGZyb20gJy4vYXBpLWNvbXBhbmllcy5pbnRlcmZhY2VzJ1xyXG5cclxuZXhwb3J0IHR5cGUgTG9jYXRpb25FbXBsb3llZXNEYXRhID0ge1xyXG4gIGxvY2F0aW9uX2VtcGxveWVlczogTG9jYXRpb25FbXBsb3llZVtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJbnN0YWxsYXRpb25zRGF0YSA9IHtcclxuICBpbnN0YWxsYXRpb25zOiBJbnN0YWxsYXRpb25bXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSW5zdGFsbGF0aW9uRGF0YSA9IHtcclxuICBpbnN0YWxsYXRpb246IEluc3RhbGxhdGlvblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBMb2NhdGlvbnNEYXRhID0ge1xyXG4gIGxvY2F0aW9uczogTG9jYXRpb25bXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTG9jYXRpb25EYXRhID0ge1xyXG4gIGxvY2F0aW9uOiBMb2NhdGlvblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTdXBwbHlFbnRpdGllc0RhdGEgPSB7XHJcbiAgc3VwcGx5X2VudGl0aWVzOiBTdXBwbHlFbnRpdHlbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRW1wbG95ZWVzRGF0YSA9IHtcclxuICBlbXBsb3llZXM6IEVtcGxveWVlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEVtcGxveWVlRGF0YSA9IHtcclxuICBlbXBsb3llZTogRW1wbG95ZWVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ29tcGFueUNvdW50cmllc0RhdGEgPSB7XHJcbiAgY29tcGFueV9jb3VudHJpZXM6IENvbXBhbnlDb3VudHJ5W11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbXBhbnlDb3VudHJ5RGF0YSA9IHtcclxuICBjb21wYW55X2NvdW50cnk6IENvbXBhbnlDb3VudHJ5XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlSZWZlcmVuY2VDdXJyZW5jaWVzRGF0YSA9IHtcclxuICBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jaWVzOiBDb3VudHJ5UmVmZXJlbmNlQ3VycmVuY3lbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ29tcGFueUNvdW50cnlUYXhlc0RhdGEgPSB7XHJcbiAgY29tcGFueV9jb3VudHJ5X3RheGVzOiBDb21wYW55Q291bnRyeVRheFtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeGNoYW5nZXNEYXRhID0ge1xyXG4gIGV4Y2hhbmdlczogRXhjaGFuZ2VbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQWNjb3VudEVudGl0aWVzRGF0YSA9IHtcclxuICBhY2NvdW50X2VudGl0aWVzOiBBY2NvdW50W11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBhcmFtZXRlcnNQcm9wcyA9IHtcclxuICBwYXJhbU5hbWVzOiBzdHJpbmdbXVxyXG59XHJcbmV4cG9ydCB0eXBlIFBhcmFtZXRlcnNEYXRhID0ge1xyXG4gIHBhcmFtZXRlcnM6IFBhcmFtZXRlcltdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXJWYWx1ZVByb3BzID0ge1xyXG4gIHBhcmFtTmFtZTogc3RyaW5nXHJcbn1cclxuZXhwb3J0IHR5cGUgUGFyYW1ldGVyVmFsdWVEYXRhID0ge1xyXG4gIHZhbHVlOiBhbnlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyeVJlZmVyZW5jZXNEYXRhID0ge1xyXG4gIGNvdW50cnlfcmVmZXJlbmNlczogQ291bnRyeVJlZmVyZW5jZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlSZWZlcmVuY2VEYXRhID0ge1xyXG4gIGNvdW50cnlfcmVmZXJlbmNlOiBDb3VudHJ5UmVmZXJlbmNlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFdvcmtmbG93c0RhdGEgPSB7XHJcbiAgd29ya2Zsb3c6IFdvcmtmbG93W11cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXNlY3VyaXR5LmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0vbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLXNlY3VyaXR5LmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhcmF2ZWxNb2RlbCB9IGZyb20gJy4vYXBpLm1vZGVscydcclxuaW1wb3J0IHsgTGFuZ3VhZ2UgfSBmcm9tICcuL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb24gZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHVzZXJuYW1lOiBzdHJpbmdcclxuICBlbWFpbDogc3RyaW5nXHJcbiAgbW9kZWxfdHlwZTogc3RyaW5nXHJcbiAgbW9kZWxfaWQ6IG51bWJlclxyXG4gIGF1dGhfdHlwZTogc3RyaW5nXHJcbiAgbGFuZ3VhZ2VfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBpbnN0YWxsYXRpb25faWQ6IG51bWJlclxyXG4gIGNvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyXHJcbiAgY291bnRyeV9yZWZlcmVuY2VfY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIG9wZW5pbmdfaWQ6IG51bWJlclxyXG4gIGxvY2FsZTogc3RyaW5nXHJcbiAgcGVybWlzc2lvbnM6IHN0cmluZ1tdXHJcbiAgcm9sZXM6IFJvbGVbXVxyXG4gIHNlc3Npb246IFNlc3Npb25cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlIGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBndWFyZF9uYW1lOiBzdHJpbmdcclxuICBwZXJtaXNzaW9uczogUGVybWlzc2lvbltdXHJcbiAgcm9sZV90eXBlX2lkOiBudW1iZXJcclxuICByb2xlX3R5cGU6IFJvbGVUeXBlXHJcbiAgY29tcGFueV9jb3VudHJ5X2lkOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlVHlwZSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgbGV2ZWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb24gZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGd1YXJkX25hbWU6IHN0cmluZ1xyXG4gIHBpdm90OiB7XHJcbiAgICByb2xlX2lkOiBudW1iZXJcclxuICAgIHBlcm1pc3Npb25faWQ6IG51bWJlclxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVc2VyIGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICB1c2VybmFtZTogc3RyaW5nXHJcbiAgZW1haWw6IHN0cmluZ1xyXG4gIG1vZGVsX3R5cGU6IHN0cmluZ1xyXG4gIG1vZGVsX2lkOiBudW1iZXJcclxuICBhdXRoX3R5cGU6IHN0cmluZ1xyXG4gIGxhbmd1YWdlX2lkOiBudW1iZXJcclxuICBwZXJtaXNzaW9uczogc3RyaW5nW11cclxuICByb2xlOiBSb2xlXHJcbiAgc2Vzc2lvbjogU2Vzc2lvblxyXG4gIGxhbmd1YWdlOiBMYW5ndWFnZVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXNlY3VyaXR5LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtL25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvbW9kZWxzL2FwaS1zZWN1cml0eS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vzc2lvbiwgVXNlciB9IGZyb20gJy4vYXBpLXNlY3VyaXR5LmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgdHlwZSBMb2dpbkluID0ge1xyXG4gIHVzZXJuYW1lOiBzdHJpbmdcclxuICBwYXNzd29yZDogc3RyaW5nXHJcbiAgcm9sZT86IHN0cmluZ1xyXG59XHJcbmV4cG9ydCB0eXBlIExvZ2luT3V0ID0ge1xyXG4gIGFjY2Vzc190b2tlbjogc3RyaW5nXHJcbiAgdG9rZW5fdHlwZTogc3RyaW5nXHJcbiAgZXhwaXJlc19pbjogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENyZWF0ZVNlc3Npb25JbiA9IHtcclxuICBtb2RlbFR5cGU6IHN0cmluZ1xyXG4gIG1vZGVsSWQ6IG51bWJlclxyXG4gIHRva2VuPzogc3RyaW5nXHJcbn1cclxuZXhwb3J0IHR5cGUgQ3JlYXRlU2Vzc2lvbk91dCA9IHtcclxuICBzZXNzaW9uOiBTZXNzaW9uXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdldFVzZXJPdXQgPSB7XHJcbiAgdXNlcjogVXNlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lT3V0IGV4dGVuZHMgR2V0VXNlck91dCB7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdldFVzZXJJbmZvSW4gPSB7XHJcbiAgdG9rZW46IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDaGFuZ2VMYW5ndWFnZUluID0ge1xyXG4gIGxhbmd1YWdlSWQ6IG51bWJlclxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGkubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlIHtcclxuICBzdGF0dXM6ICdzdWNjZXNzJyB8ICdmYWlsJyB8ICdlcnJvcidcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcGlTdWNjZXNzPFQ+IGV4dGVuZHMgQXBpUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogJ3N1Y2Nlc3MnXHJcbiAgZGF0YTogVFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFwaU1vZGVsIHtcclxuICBpZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFyYXZlbE1vZGVsIGV4dGVuZHMgQXBpTW9kZWwge1xyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG4gIGNyZWF0ZWRfYXQ6IERhdGUgfCBzdHJpbmdcclxuICB1cGRhdGVkX2F0OiBEYXRlIHwgc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3ltZm9ueU1vZGVsIGV4dGVuZHMgQXBpTW9kZWwge1xyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgY3JlYXRlZEF0OiBEYXRlIHwgc3RyaW5nXHJcbiAgdXBkYXRlZEF0OiBEYXRlIHwgc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlQYXJhbXMge1xyXG4gIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj5cclxufVxyXG4iXX0=
|