@bnsights/bbsf-utilities 1.0.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.
Files changed (36) hide show
  1. package/README.md +24 -0
  2. package/bnsights-bbsf-utilities-1.0.0.tgz +0 -0
  3. package/bnsights-bbsf-utilities.d.ts +4 -0
  4. package/bnsights-bbsf-utilities.metadata.json +1 -0
  5. package/bundles/bnsights-bbsf-utilities.umd.js +1127 -0
  6. package/bundles/bnsights-bbsf-utilities.umd.js.map +1 -0
  7. package/esm2015/bnsights-bbsf-utilities.js +5 -0
  8. package/esm2015/lib/bbsf-utilities.module.js +50 -0
  9. package/esm2015/lib/shared/authentication/auth.service.js +157 -0
  10. package/esm2015/lib/shared/config/environment.js +12 -0
  11. package/esm2015/lib/shared/models/ErrorModel.js +3 -0
  12. package/esm2015/lib/shared/models/RequestOptionsModel.js +9 -0
  13. package/esm2015/lib/shared/services/controlvalidation.service.js +151 -0
  14. package/esm2015/lib/shared/services/environment.service.js +31 -0
  15. package/esm2015/lib/shared/services/masterlayout.service.js +65 -0
  16. package/esm2015/lib/shared/services/requesthandler.service.js +85 -0
  17. package/esm2015/lib/shared/services/stylesbundle.service.js +46 -0
  18. package/esm2015/lib/shared/services/translate.service.js +13 -0
  19. package/esm2015/lib/shared/services/utility.service.js +96 -0
  20. package/esm2015/public-api.js +15 -0
  21. package/fesm2015/bnsights-bbsf-utilities.js +661 -0
  22. package/fesm2015/bnsights-bbsf-utilities.js.map +1 -0
  23. package/lib/bbsf-utilities.module.d.ts +6 -0
  24. package/lib/shared/authentication/auth.service.d.ts +32 -0
  25. package/lib/shared/config/environment.d.ts +1 -0
  26. package/lib/shared/models/ErrorModel.d.ts +5 -0
  27. package/lib/shared/models/RequestOptionsModel.d.ts +9 -0
  28. package/lib/shared/services/controlvalidation.service.d.ts +19 -0
  29. package/lib/shared/services/environment.service.d.ts +7 -0
  30. package/lib/shared/services/masterlayout.service.d.ts +18 -0
  31. package/lib/shared/services/requesthandler.service.d.ts +23 -0
  32. package/lib/shared/services/stylesbundle.service.d.ts +6 -0
  33. package/lib/shared/services/translate.service.d.ts +3 -0
  34. package/lib/shared/services/utility.service.d.ts +19 -0
  35. package/package.json +38 -0
  36. package/public-api.d.ts +11 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bnsights-bbsf-utilities.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/bbsf-utilities/src/lib/shared/config/environment.ts","../../../projects/bbsf-utilities/src/lib/shared/services/environment.service.ts","../../../projects/bbsf-utilities/src/lib/shared/authentication/auth.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translate.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/utility.service.ts","../../../projects/bbsf-utilities/src/lib/shared/models/RequestOptionsModel.ts","../../../projects/bbsf-utilities/src/lib/shared/services/controlvalidation.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/requesthandler.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/stylesbundle.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/masterlayout.service.ts","../../../projects/bbsf-utilities/src/lib/bbsf-utilities.module.ts","../../../projects/bbsf-utilities/src/public-api.ts","../../../projects/bbsf-utilities/src/bnsights-bbsf-utilities.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = Object.assign({\r\n},\r\n(window as any).Envirnment);\r\n\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../config/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n\r\n getEnvironmentObject() {\r\n return environment;\r\n }\r\n\r\n getBaseUrl() {\r\n let Url = environment[\"BBSF_BaseUrl\"]\r\n return Url;\r\n }\r\n getApiUrl() {\r\n let Url = environment[\"BBSF_ApiUrl\"]\r\n return Url;\r\n }\r\n\r\n\r\n getProductionMode() {\r\n let Mode = environment[\"BBSF_IsProduction\"] as boolean\r\n return Mode;\r\n }\r\n\r\n getIdentityServerUrl() {\r\n let Url = environment[\"BBSF_IdentityServerUrl\"]\r\n return Url;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { UserManager, UserManagerSettings, User, WebStorageStateStore } from 'oidc-client';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { EnvironmentService } from '../services/environment.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthService {\r\n\r\n // Observable navItem source\r\n private _authNavStatusSource = new BehaviorSubject<boolean>(false);\r\n // Observable navItem stream\r\n authNavStatus$ = this._authNavStatusSource.asObservable();\r\n // Observable navItem source\r\n private _userSource: Subject<User> = new Subject<User>();\r\n UserStatus$ = this._userSource.asObservable();\r\n private manager = new UserManager(\r\n {\r\n authority: this.environmentService.getIdentityServerUrl(),\r\n client_id: 'angular_spa',\r\n redirect_uri: this.environmentService.getIdentityServerUrl() +'/Admin/authentication/auth-callback',\r\n post_logout_redirect_uri: this.environmentService.getBaseUrl(),\r\n response_type: \"id_token token\",\r\n scope: \"openid profile email IdentityServerApi\",\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n automaticSilentRenew: true,\r\n silent_redirect_uri: this.environmentService.getIdentityServerUrl() + '/assets/silent-callback.html',\r\n userStore: new WebStorageStateStore({ store: window.localStorage })\r\n }\r\n );\r\n public redirectUrl: string = \"\"\r\n static user: User | null = null;\r\n user: User | null;\r\n\r\n constructor(private http: HttpClient, private environmentService: EnvironmentService) {\r\n this.manager.getUser().then(async user => {\r\n this.manager.storeUser(user);\r\n AuthService.user = user;\r\n this.user = user;\r\n this._authNavStatusSource.next(await this.isAuthenticated());\r\n });\r\n this.manager.events.addAccessTokenExpired(_ => {\r\n this._authNavStatusSource.next(false);\r\n })\r\n }\r\n\r\n login() {\r\n return this.manager.signinRedirect();\r\n }\r\n\r\n getUser() {\r\n this.manager.getUser().then(async user => {\r\n ;\r\n AuthService.user = user;\r\n this.user = user\r\n this._authNavStatusSource.next(await this.isAuthenticated());\r\n });\r\n }\r\n storUser(User: any) {\r\n this.manager.storeUser(User);\r\n }\r\n\r\n revokeAccessToken() {\r\n this.manager.revokeAccessToken();\r\n }\r\n\r\n signinSilent() {\r\n\r\n let x = this.manager.signinSilentCallback()\r\n x.then(s => {\r\n //console.log(s)\r\n })\r\n }\r\n\r\n async completeAuthentication() {\r\n this.user = await this.manager.signinRedirectCallback();\r\n AuthService.user = this.user\r\n this._userSource.next(AuthService.user)\r\n this._authNavStatusSource.next(await this.isAuthenticated());\r\n }\r\n\r\n \r\n\r\n\r\n async refreshToken(token) {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': token\r\n })\r\n };\r\n \r\n this.manager.revokeAccessToken()\r\n return await this.http.post<any>(`${this.environmentService.getIdentityServerUrl()}/users/refresh-token`, httpOptions, { withCredentials: true }).subscribe((user) => {\r\n this._userSource.next(user)\r\n AuthService.user = user\r\n this.user = user;\r\n })\r\n }\r\n\r\n getCurrentUser() {\r\n return this.manager.getUser()\r\n }\r\n\r\n async isAuthenticated(allowedPermission?: number[]): Promise<boolean> {\r\n let user = await this.manager.getUser().then(user => {\r\n return user;\r\n })\r\n if (allowedPermission != null && allowedPermission != undefined) {\r\n if (allowedPermission.length == 0) {\r\n return this.user != null && !this.user.expired;\r\n }\r\n else {\r\n let isUserInRole = this.isUserInRole(allowedPermission);\r\n return this.user != null && !this.user.expired && isUserInRole;\r\n }\r\n\r\n }\r\n else\r\n return this.user != null && !this.user.expired;\r\n\r\n\r\n }\r\n isUserInRole(allowedPermission: number[]) {\r\n ;\r\n let permissionSetSID = this.user.profile[\"permissionSetSID\"].split`,`.map(x => +x) as number[]\r\n return allowedPermission.every(i => permissionSetSID.includes(i));\r\n }\r\n\r\n authorizationHeaderValue(): string {\r\n return `${AuthService.user.token_type} ${AuthService.user.access_token}`;\r\n }\r\n\r\n name(): string {\r\n return AuthService.user != null ? AuthService.user.profile.given_name : '';\r\n }\r\n setUrl(url) {\r\n localStorage.setItem(\"redirectUrl\", url)\r\n\r\n }\r\n getUrl() {\r\n return localStorage.getItem(\"redirectUrl\");\r\n }\r\n async signinSilentCallback() {\r\n let user = await this.manager.signinSilentCallback()\r\n //await this.manager.storeUser(user);\r\n AuthService.user = user;\r\n console.log(\"Token from signinSilentCallback :\"+AuthService.user)\r\n this.user = user;\r\n }\r\n async signout() {\r\n localStorage.clear();\r\n await this.manager.signoutRedirect();\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BBSFTranslateService extends TranslateService {\r\n}","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { AppInjector } from '../../bbsf-utilities.module';\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { BBSFTranslateService } from './translate.service';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n isCreatedBefore = false;\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n constructor(private Translator: BBSFTranslateService, private authService: AuthService) {\r\n\r\n }\r\n\r\n\r\n getResourceValue(Key: string): string {\r\n let ResourceValue = \"\"\r\n this.Translator.get(Key).subscribe(data => { ResourceValue = data; return ResourceValue; });\r\n return ResourceValue;\r\n\r\n }\r\n\r\n \r\n \r\n async getCurrentLanguage() {\r\n let user = await this.authService.getCurrentUser().then((user) => {\r\n return user;\r\n })\r\n return user.profile.locale;\r\n }\r\n async isCurrentLanguageEnglish() {\r\n await this.getCurrentLanguage() == \"en\" ? true : false\r\n }\r\n async isCurrentLanguageArabic() {\r\n await this.getCurrentLanguage() == \"ar\" ? true : false\r\n }\r\n\r\n notifySuccessMessage(Message?: string, title?: string, time?: number) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"SuccessMessage\");\r\n let titleTemplate = this.getResourceValue(\"Success\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n let toaster = AppInjector.get(ToastrService);\r\n toaster.success(MessageTemplate, titleTemplate);\r\n }\r\n\r\n notifyErrorMessage(Message?: string, title?: string, time?: number) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"ErrorMessage\");\r\n let titleTemplate = this.getResourceValue(\"Error\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = AppInjector.get(ToastrService);\r\n toaster.error(MessageTemplate, titleTemplate);\r\n }\r\n\r\n notifyWarningMessage(Message?: string, title?: string, time?: number) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"WarningMessage\");\r\n let titleTemplate = this.getResourceValue(\"Warning\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = AppInjector.get(ToastrService);\r\n toaster.warning(MessageTemplate, titleTemplate);\r\n }\r\n\r\n startBlockUI() {\r\n this.blockUI.start();\r\n }\r\n stopBlockUI() {\r\n this.blockUI.stop();\r\n }\r\n}\r\n","import { FormGroup } from \"@angular/forms\";\r\n\r\nexport class RequestOptionsModel {\r\n disableSuccessNotification: boolean=false;\r\n disableBlockUI: boolean=false;\r\n customSuccessMessage: string;\r\n customErrorMessage: string;\r\n responseType:any=\"\"\r\n formGroup:FormGroup=null\r\n}\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl, FormsModule, FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { ErrorModel } from '../models/ErrorModel';\r\nimport { UtilityService } from './utility.service';\r\nimport { RequestOptionsModel } from '../models/RequestOptionsModel';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\nexport class ControlValidationService {\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n\r\n constructor\r\n (\r\n private utilityService: UtilityService\r\n ) \r\n { \r\n\r\n }\r\n\r\n isCreatedBefor = false;\r\n\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n showGlobalError(errorMessage?:string) {\r\n let globalErorrElement = document.getElementsByClassName('alert alert-danger alert-InvalidValidation')\r\n if (globalErorrElement.length > 0) {\r\n this.removeElementsByClass('alert alert-danger alert-InvalidValidation');\r\n }\r\n\r\n if (this.isCreatedBefor == true) {\r\n this.removeElementsByClass('alert alert-danger alert-InvalidValidation');\r\n }\r\n // tslint:disable-next-line: prefer-const\r\n var objects = document.querySelectorAll('form.ng-invalid.ng-touched');\r\n const tagName = 'div';\r\n // tslint:disable-next-line: prefer-const\r\n var elementToAppend = document.createElement(tagName); // Your tag name here\r\n let message = \"\";\r\n if (localStorage.getItem('language') == \"ar\")\r\n message =errorMessage?errorMessage: \"لديك بعص الأخطاء . من فضلك قم بالمراجعه \";\r\n else\r\n message =errorMessage?errorMessage: \"You have some validation errors. Please check below\"\r\n\r\n elementToAppend.innerHTML = \"<ul><li>\" + message + \"</li></ul>\";\r\n elementToAppend.className += 'alert alert-danger alert-InvalidValidation';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n for (let i = 0; i < objects.length; i++) {\r\n // const elementToAppen = elementToAppend.cloneNode(true);\r\n // objects[i].insertBefore(elementToAppen, objects[i].firstChild);\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n let targetElement = objects[i].getElementsByClassName(\"b-control\")[0];\r\n targetElement.parentNode.insertBefore(elementToAppen, targetElement);\r\n this.isCreatedBefor = true;\r\n break;\r\n }\r\n\r\n }\r\n\r\n RemoveGlobalError() {\r\n const removedList = document.getElementsByClassName('alert alert-danger alert-InvalidValidation');\r\n // tslint:disable-next-line: prefer-for-of\r\n for (let index = 0; index < removedList.length; index++) {\r\n const element = removedList[index];\r\n element.remove();\r\n }\r\n this.isCreatedBefor = false;\r\n }\r\n\r\n showInputErro(errors: any) {\r\n\r\n // show error on top of form \r\n this.showGlobalError();\r\n // remove old error from server\r\n this.removeElementsByClass('errortemplet');\r\n // Looping in error Object\r\n for (const key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n for (const iterator of errors[key]) {\r\n const input = document.querySelectorAll('[ng-reflect-name=' + key + ']')[0];\r\n if ((input.attributes['ng-reflect-name'].value as string) === key) {\r\n this.removeElementsByClass('erroclass-' + key);\r\n const tagName = 'p'\r\n const elementToAppend = document.createElement(tagName); // Your tag name here\r\n elementToAppend.innerHTML = iterator;\r\n elementToAppend.style.color = 'red'\r\n elementToAppend.className += 'errortemplet erroclass-' + key;\r\n const elementToappen = elementToAppend.cloneNode(true);\r\n input.parentNode.insertBefore(elementToappen, input.lastChild);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeElementsByClass(className) {\r\n const elements = document.getElementsByClassName(className);\r\n while (elements.length > 0) {\r\n elements[0].parentNode.removeChild(elements[0]);\r\n }\r\n }\r\n\r\n\r\n renderServerErrors(form: FormGroup, err: HttpErrorResponse,requestOptions:RequestOptionsModel) {\r\n if (err.error == null) {\r\n return;\r\n }\r\n this.requestOptions=requestOptions;\r\n err.error.validation_errors.forEach((element: ErrorModel) => {\r\n let fieldName = element.field;\r\n let controlName = element.control_name;\r\n let message = element.message;\r\n if (form == null ) {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${fieldName}: ${message}`)\r\n }\r\n else if(!this.hasControlName(form,controlName))\r\n {\r\n this.showGlobalError(`${fieldName}: ${message}`)\r\n }\r\n else {\r\n this.setFieldError(form,controlName,fieldName,message);\r\n }\r\n });\r\n }\r\n \r\n private hasControlName(form: FormGroup, controlName: string): boolean\r\n {\r\n let control = form.get(controlName);\r\n return control != null;\r\n }\r\n \r\n private setFieldError(form: FormGroup, controlName: string,fieldName:string,message: string) {\r\n let control =form.get(controlName);\r\n let errors = { [message]: true };\r\n let fieldNameArray = fieldName.split('.')\r\n \r\n if (fieldNameArray.length>=1)\r\n {\r\n switch (fieldNameArray[length-1].toLocaleLowerCase()) {\r\n case \"english\":\r\n let englishControl=control.get(\"EnglishValue\")\r\n englishControl.setErrors(errors);\r\n englishControl.markAsTouched();\r\n englishControl.updateValueAndValidity();\r\n break;\r\n case \"arabic\":\r\n let arabicControl=control.get(\"ArabicValue\")\r\n arabicControl.setErrors(errors);\r\n arabicControl.markAsTouched();\r\n arabicControl.updateValueAndValidity();\r\n break;\r\n \r\n default:\r\n control.setErrors(errors);\r\n control.markAsTouched();\r\n control.updateValueAndValidity();\r\n }\r\n \r\n }\r\n else\r\n { \r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${fieldName}: ${message}`)\r\n }\r\n \r\n \r\n }\r\n \r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { RequestOptionsModel } from '../models/RequestOptionsModel';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Subject, throwError } from 'rxjs';\r\nimport { UtilityService } from './utility.service';\r\nimport { catchError, takeUntil, tap } from 'rxjs/operators';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ErrorModel } from '../models/ErrorModel';\r\nimport { ControlValidationService } from './controlvalidation.service';\r\nimport { BBSFTranslateService } from './translate.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RequestHandlerService {\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n private currentLanguage = \"\";\r\n private onDestroy$: Subject<void> = new Subject<void>();\r\n constructor\r\n (\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private environmentService: EnvironmentService,\r\n private utilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private bbsfTranslateService: BBSFTranslateService\r\n ) {\r\n //using localStorage to avoid call getCurrentLanguage() because it is not all to use async in constructor\r\n this.currentLanguage = localStorage.getItem('language');\r\n\r\n this.bbsfTranslateService.onLangChange.subscribe((event) => {\r\n if (this.currentLanguage != event.lang) {\r\n this.currentLanguage = event.lang;\r\n }\r\n })\r\n }\r\n\r\n get(Url: string, params?: HttpParams, requestOptions?: RequestOptionsModel) {\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n });\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.get(this.environmentService.getApiUrl() + Url, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n })\r\n );\r\n }\r\n\r\n post(Url: string, model?: any, params?: HttpParams, requestOptions?: RequestOptionsModel) {\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n\r\n });\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.post(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n })\r\n );\r\n }\r\n \r\n public destroyHandler(): void {\r\n this.onDestroy$.next();\r\n }\r\n}\r\n\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StylesBundleService {\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document){}\r\n\r\n loadThemes(lang: string,bundleEnglishName:string,bundleArabicName:string) {\r\n if (lang == \"ar\") {\r\n this.loadStyleBundle(bundleArabicName.toString())\r\n document.querySelector('html').setAttribute(\"lang\", \"ar\");\r\n document.querySelector('html').setAttribute(\"dir\", \"rtl\");\r\n } else {\r\n this.loadStyleBundle(bundleEnglishName.toString())\r\n document.querySelector('html').setAttribute(\"lang\", \"en\");\r\n document.querySelector('html').setAttribute(\"dir\", \"ltr\");\r\n }\r\n\r\n }\r\n\r\n loadStyleBundle(styleName: string) {\r\n const head = this.document.getElementsByTagName('head')[0];\r\n\r\n let themeLink = this.document.getElementById('client-theme') as HTMLLinkElement;\r\n\r\n if (themeLink && themeLink.href.includes(styleName)) {\r\n return;\r\n }\r\n else if (themeLink && !themeLink.href.includes(styleName)) {\r\n themeLink.remove();\r\n }\r\n const style = this.document.createElement('link');\r\n style.id = 'client-theme';\r\n style.rel = 'stylesheet';\r\n style.href = `${styleName}`;\r\n head.appendChild(style);\r\n }\r\n\r\n}\r\n\r\n","import { HttpParams } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { AuthService } from \"../authentication/auth.service\";\r\nimport { RequestHandlerService } from \"./requesthandler.service\";\r\nimport { StylesBundleService } from \"./stylesbundle.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MasterLayoutService {\r\n ApiUrl=\"/api/admin/Users/\"\r\n constructor(private router: Router, private http: RequestHandlerService, private authService: AuthService,private stylesBundleService:StylesBundleService ,private translate:TranslateService) {\r\n }\r\n switchLang(lang: string, bundleEnglishName: string, bundleArabicName: string) {\r\n this.changeLanguage(lang).subscribe((result) => {\r\n this.updateUserInfo().subscribe((Value) => {\r\n let UserInfoObject =Value ;\r\n this.authService.getUser();\r\n this.authService.user.profile = Object.assign( this.authService.user.profile, UserInfoObject);\r\n this.authService.storUser(this.authService.user);\r\n this.stylesBundleService.loadThemes(lang,bundleEnglishName,bundleArabicName);\r\n localStorage.setItem('language', lang);\r\n this.translate.use(lang);\r\n });\r\n });\r\n }\r\n reloadComponent() {\r\n let currentUrl = this.router.url;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([currentUrl]);\r\n }\r\n\r\n private changeLanguage(key: string) {\r\n\r\n let params = new HttpParams();\r\n params = params.append(\"UserId\", this.authService.user.profile.id);\r\n params = params.append(\"LanguageKey\", key);\r\n return this.http.post(this.ApiUrl + 'updateLaguage', null, params)\r\n }\r\n\r\n private updateUserInfo() {\r\n return this.http.get('/connect/userinfo')\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injector, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { HttpModule } from '@angular/http';\r\nimport { UtilityService } from './shared/services/utility.service';\r\nimport { EnvironmentService } from './shared/services/environment.service';\r\nimport { AuthService } from './shared/authentication/auth.service';\r\nimport { RequestHandlerService } from './shared/services/requesthandler.service';\r\nimport { StylesBundleService } from './shared/services/stylesbundle.service';\r\nimport { BBSFTranslateService } from './shared/services/translate.service';\r\nimport { ControlValidationService } from './shared/services/controlvalidation.service';\r\nimport { MasterLayoutService } from './shared/services/masterlayout.service';\r\n\r\nexport let AppInjector: Injector;\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n CommonModule,\r\n BlockUIModule.forRoot(),\r\n HttpModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n\r\n ],\r\n exports: [\r\n \r\n ],\r\n providers:[\r\n UtilityService,\r\n EnvironmentService,\r\n AuthService,\r\n RequestHandlerService,\r\n StylesBundleService,\r\n TranslateService,\r\n BBSFTranslateService,\r\n ControlValidationService,\r\n MasterLayoutService\r\n ]\r\n})\r\nexport class BBSFUtilitiesModule { \r\n\r\n constructor(private injector: Injector) {\r\n AppInjector = this.injector;\r\n\r\n }\r\n}\r\n","/*\r\n * Public API Surface of bbsf-utilities\r\n */\r\n\r\nexport * from './lib/bbsf-utilities.module';\r\n\r\nexport * from './lib/shared/services/utility.service';\r\nexport * from './lib/shared/services/environment.service';\r\nexport * from './lib/shared/services/requesthandler.service'\r\nexport * from './lib/shared/services/stylesbundle.service'\r\nexport * from './lib/shared/services/translate.service'\r\nexport * from './lib/shared/services/controlvalidation.service'\r\nexport * from './lib/shared/services/masterlayout.service'\r\n\r\n\r\n\r\n\r\n\r\nexport * from './lib/shared/config/environment';\r\n\r\n\r\nexport * from './lib/shared/authentication/auth.service';\r\n\r\n\r\nexport * from './lib/shared/models/RequestOptionsModel';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Injectable","BehaviorSubject","Subject","UserManager","WebStorageStateStore","HttpHeaders","HttpClient","TranslateService","AppInjector","ToastrService","BlockUI","takeUntil","tap","Inject","DOCUMENT","HttpParams","Router","NgModule","CommonModule","BlockUIModule","HttpModule","RouterModule","ToastrModule","Injector"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,EAAE;wBAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;IC9OA;IACA;IACA;QAEa,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EACxC,EACA,MAAc,CAAC,UAAU,EAAE;IAG5B;;;;;;IAMA;;;QCTA;;QAEE,iDAAoB,GAApB;YACE,OAAO,WAAW,CAAC;SACpB;QAED,uCAAU,GAAV;YACE,IAAI,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA;YACrC,OAAO,GAAG,CAAC;SACZ;QACD,sCAAS,GAAT;YACE,IAAI,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,CAAA;YACpC,OAAO,GAAG,CAAC;SACZ;QAGD,8CAAiB,GAAjB;YACE,IAAI,IAAI,GAAG,WAAW,CAAC,mBAAmB,CAAY,CAAA;YACtD,OAAO,IAAI,CAAC;SACb;QAED,iDAAoB,GAApB;YACE,IAAI,GAAG,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAA;YAC/C,OAAO,GAAG,CAAC;SACZ;;;;;gBA3BFA,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;QCkCC,qBAAoB,IAAgB,EAAU,kBAAsC;YAApF,iBAUC;YAVmB,SAAI,GAAJ,IAAI,CAAY;YAAU,uBAAkB,GAAlB,kBAAkB,CAAoB;;YAzB5E,yBAAoB,GAAG,IAAIC,oBAAe,CAAU,KAAK,CAAC,CAAC;;YAEnE,mBAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;;YAElD,gBAAW,GAAkB,IAAIC,YAAO,EAAQ,CAAC;YACzD,gBAAW,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YACtC,YAAO,GAAG,IAAIC,sBAAW,CAC/B;gBACE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE;gBACzD,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,GAAE,qCAAqC;gBACnG,wBAAwB,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBAC9D,aAAa,EAAE,gBAAgB;gBAC/B,KAAK,EAAE,wCAAwC;gBAC/C,oBAAoB,EAAE,IAAI;gBAC1B,YAAY,EAAE,IAAI;gBAClB,oBAAoB,EAAE,IAAI;gBAC1B,mBAAmB,EAAE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,GAAG,8BAA8B;gBACpG,SAAS,EAAE,IAAIC,+BAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;aACtE,CACA,CAAC;YACK,gBAAW,GAAW,EAAE,CAAA;YAK7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAM,IAAI;;;;;4BACpC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;4BAC7B,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;4BACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;4BACjB,KAAA,CAAA,KAAA,IAAI,CAAC,oBAAoB,EAAC,IAAI,CAAA;4BAAC,qBAAM,IAAI,CAAC,eAAe,EAAE,EAAA;;4BAA3D,cAA+B,SAA4B,EAAC,CAAC;;;;aAC9D,CAAA,GAAA,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,UAAA,CAAC;gBACzC,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvC,CAAC,CAAA;SACH;QAED,2BAAK,GAAL;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;SACtC;QAED,6BAAO,GAAP;YAAA,iBAOC;YANC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAM,IAAI;;;;;4BACpC,CAAC;4BACD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;4BACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;4BAChB,KAAA,CAAA,KAAA,IAAI,CAAC,oBAAoB,EAAC,IAAI,CAAA;4BAAC,qBAAM,IAAI,CAAC,eAAe,EAAE,EAAA;;4BAA3D,cAA+B,SAA4B,EAAC,CAAC;;;;aAC9D,CAAA,GAAA,CAAC,CAAC;SACJ;QACD,8BAAQ,GAAR,UAAS,IAAS;YAChB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC9B;QAED,uCAAiB,GAAjB;YACE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;SAClC;QAED,kCAAY,GAAZ;YAEE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAA;YAC3C,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC;;aAEP,CAAC,CAAA;SACH;QAEK,4CAAsB,GAAtB;;;;;;4BACJ,KAAA,IAAI,CAAA;4BAAQ,qBAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAA;;4BAAvD,GAAK,IAAI,GAAG,SAA2C,CAAC;4BACxD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;4BAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;4BACvC,KAAA,CAAA,KAAA,IAAI,CAAC,oBAAoB,EAAC,IAAI,CAAA;4BAAC,qBAAM,IAAI,CAAC,eAAe,EAAE,EAAA;;4BAA3D,cAA+B,SAA4B,EAAC,CAAC;;;;aAC9D;SAAA;QAKK,kCAAY,GAAZ,UAAa,KAAK;;;iCAcvB;;;;4BAbO,WAAW,GAAG;gCAClB,OAAO,EAAE,IAAIC,cAAW,CAAC;oCACvB,cAAc,EAAE,kBAAkB;oCAClC,eAAe,EAAE,KAAK;iCACvB,CAAC;6BACH,CAAC;4BAEF,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAA;4BACzB,qBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,yBAAsB,EAAE,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,UAAC,IAAI;oCAC/J,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oCAC3B,WAAW,CAAC,IAAI,GAAG,IAAI,CAAA;oCACvB,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;iCAClB,CAAC,EAAA;gCAJF,sBAAO,SAIL,EAAA;;;aACH;SAAA;QAED,oCAAc,GAAd;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;SAC9B;QAEK,qCAAe,GAAf,UAAgB,iBAA4B;;;;;gCACrC,qBAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAA,IAAI;gCAC/C,OAAO,IAAI,CAAC;6BACb,CAAC,EAAA;;4BAFE,IAAI,GAAG,SAET;4BACF,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,IAAI,SAAS,EAAE;gCAC/D,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,EAAE;oCACjC,sBAAO,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAC;iCAChD;qCACI;oCACC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;oCACxD,sBAAO,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,YAAY,EAAC;iCAChE;6BAEF;;gCAEC,sBAAO,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAC;;;;aAGlD;SAAA;QACD,kCAAY,GAAZ,UAAa,iBAA2B;YACtC,CAAC;YACD,IAAI,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,KAAK,sEAAA,GAAG,KAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAA,CAAa,CAAA;YAC9F,OAAO,iBAAiB,CAAC,KAAK,CAAC,UAAA,CAAC,IAAI,OAAA,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC;SACnE;QAED,8CAAwB,GAAxB;YACE,OAAU,WAAW,CAAC,IAAI,CAAC,UAAU,SAAI,WAAW,CAAC,IAAI,CAAC,YAAc,CAAC;SAC1E;QAED,0BAAI,GAAJ;YACE,OAAO,WAAW,CAAC,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;SAC5E;QACD,4BAAM,GAAN,UAAO,GAAG;YACR,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;SAEzC;QACD,4BAAM,GAAN;YACE,OAAO,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC5C;QACK,0CAAoB,GAApB;;;;;gCACQ,qBAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAA;;4BAAjD,IAAI,GAAI,SAAyC;;4BAErD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;4BACxB,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAC,WAAW,CAAC,IAAI,CAAC,CAAA;4BAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;;;aAClB;SAAA;QACK,6BAAO,GAAP;;;;;4BACJ,YAAY,CAAC,KAAK,EAAE,CAAC;4BACrB,qBAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAA;;4BAApC,SAAoC,CAAC;;;;aAEtC;SAAA;;;IA3HM,gBAAI,GAAgB,IAAI,CAAC;;;gBA7BjCL,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;gBARQM,aAAU;gBAIV,kBAAkB;;;;;QCCe,wCAAgB;QAA1D;;;;KAAA,CAA0CC,qBAAgB;;;gBAHzDP,aAAU,SAAC;oBACR,UAAU,EAAE,MAAM;iBACrB;;;;QCYG,wBAAoB,UAAgC,EAAU,WAAwB;YAAlE,eAAU,GAAV,UAAU,CAAsB;YAAU,gBAAW,GAAX,WAAW,CAAa;YAHtF,oBAAe,GAAG,KAAK,CAAC;SAKvB;QAGD,yCAAgB,GAAhB,UAAiB,GAAW;YACxB,IAAI,aAAa,GAAG,EAAE,CAAA;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,UAAA,IAAI,IAAM,aAAa,GAAG,IAAI,CAAC,CAAC,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;YAC5F,OAAO,aAAa,CAAC;SAExB;QAIK,2CAAkB,GAAlB;;;;;gCACS,qBAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,UAAC,IAAI;gCACzD,OAAO,IAAI,CAAC;6BACf,CAAC,EAAA;;4BAFE,IAAI,GAAG,SAET;4BACF,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAC;;;aAC9B;SAAA;QACK,iDAAwB,GAAxB;;;;gCACF,qBAAM,IAAI,CAAC,kBAAkB,EAAE,EAAA;;4BAA/B,CAAA,SAA+B,KAAI,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;;;;aACzD;SAAA;QACK,gDAAuB,GAAvB;;;;gCACF,qBAAM,IAAI,CAAC,kBAAkB,EAAE,EAAA;;4BAA/B,CAAA,SAA+B,KAAI,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;;;;aACzD;SAAA;QAED,6CAAoB,GAApB,UAAqB,OAAgB,EAAE,KAAc,EAAE,IAAa;YAEhE,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YAC9D,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,OAAO,EAAE;gBACT,eAAe,GAAG,OAAO,CAAC;aAC7B;YACD,IAAI,KAAK,EAAE;gBACP,aAAa,GAAG,KAAK,CAAC;aACzB;YACD,IAAI,OAAO,GAAGQ,mBAAW,CAAC,GAAG,CAACC,uBAAa,CAAC,CAAC;YAC7C,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;SACnD;QAED,2CAAkB,GAAlB,UAAmB,OAAgB,EAAE,KAAc,EAAE,IAAa;YAE9D,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAC5D,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,OAAO,EAAE;gBACT,eAAe,GAAG,OAAO,CAAC;aAC7B;YACD,IAAI,KAAK,EAAE;gBACP,aAAa,GAAG,KAAK,CAAC;aACzB;YACD,IAAM,OAAO,GAAGD,mBAAW,CAAC,GAAG,CAACC,uBAAa,CAAC,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;SACjD;QAED,6CAAoB,GAApB,UAAqB,OAAgB,EAAE,KAAc,EAAE,IAAa;YAEhE,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YAC9D,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,OAAO,EAAE;gBACT,eAAe,GAAG,OAAO,CAAC;aAC7B;YACD,IAAI,KAAK,EAAE;gBACP,aAAa,GAAG,KAAK,CAAC;aACzB;YACD,IAAM,OAAO,GAAGD,mBAAW,CAAC,GAAG,CAACC,uBAAa,CAAC,CAAC;YAC/C,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;SACnD;QAED,qCAAY,GAAZ;YACI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SACxB;QACD,oCAAW,GAAX;YACI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACvB;;;;;gBAlFJT,aAAU,SAAC;oBACR,UAAU,EAAE,MAAM;iBACrB;;;gBANQ,oBAAoB;gBADpB,WAAW;;IAWL;QAAVU,iBAAO,EAAE;mDAAoB;;;QCblC;YACE,+BAA0B,GAAU,KAAK,CAAC;YAC1C,mBAAc,GAAU,KAAK,CAAC;YAG9B,iBAAY,GAAK,EAAE,CAAA;YACnB,cAAS,GAAW,IAAI,CAAA;SACzB;kCAAA;KAAA;;;QCSG,kCAEY,cAA8B;YAA9B,mBAAc,GAAd,cAAc,CAAgB;YAJlC,mBAAc,GAAwB,IAAI,mBAAmB,EAAE,CAAC;YAUxE,mBAAc,GAAG,KAAK,CAAC;SAFpB;QAMH,kDAAe,GAAf,UAAgB,YAAoB;YAChC,IAAI,kBAAkB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,4CAA4C,CAAC,CAAA;YACtG,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,qBAAqB,CAAC,4CAA4C,CAAC,CAAC;aAC5E;YAED,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC7B,IAAI,CAAC,qBAAqB,CAAC,4CAA4C,CAAC,CAAC;aAC5E;;YAED,IAAI,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;YACtE,IAAM,OAAO,GAAG,KAAK,CAAC;;YAEtB,IAAI,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI;gBACxC,OAAO,GAAE,YAAY,GAAC,YAAY,GAAE,0CAA0C,CAAC;;gBAE/E,OAAO,GAAE,YAAY,GAAC,YAAY,GAAE,qDAAqD,CAAA;YAE7F,eAAe,CAAC,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,CAAC;YAChE,eAAe,CAAC,SAAS,IAAI,4CAA4C,CAAC;YAC1E,eAAe,CAAC,EAAE,IAAI,SAAS,CAAC;;YAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;;gBAGrC,IAAM,cAAc,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;gBACrE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,MAAM;aACT;SAEJ;QAED,oDAAiB,GAAjB;YACI,IAAM,WAAW,GAAG,QAAQ,CAAC,sBAAsB,CAAC,4CAA4C,CAAC,CAAC;;YAElG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACrD,IAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,OAAO,CAAC,MAAM,EAAE,CAAC;aACpB;YACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/B;QAED,gDAAa,GAAb,UAAc,MAAW;;;YAGrB,IAAI,CAAC,eAAe,EAAE,CAAC;;YAEvB,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;;YAE3C,KAAK,IAAM,GAAG,IAAI,MAAM,EAAE;gBACtB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;;wBAC5B,KAAuB,IAAA,oBAAA,SAAA,MAAM,CAAC,GAAG,CAAC,CAAA,CAAA,gBAAA,4BAAE;4BAA/B,IAAM,QAAQ,WAAA;4BACf,IAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC5E,IAAK,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,KAAgB,KAAK,GAAG,EAAE;gCAC/D,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;gCAC/C,IAAM,OAAO,GAAG,GAAG,CAAA;gCACnB,IAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gCACxD,eAAe,CAAC,SAAS,GAAG,QAAQ,CAAC;gCACrC,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;gCACnC,eAAe,CAAC,SAAS,IAAI,yBAAyB,GAAG,GAAG,CAAC;gCAC7D,IAAM,cAAc,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gCACvD,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gCAC/D,MAAM;6BACT;yBACJ;;;;;;;;;iBACJ;aACJ;SACJ;QAED,wDAAqB,GAArB,UAAsB,SAAS;YAC3B,IAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC5D,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aACnD;SACJ;QAGA,qDAAkB,GAAlB,UAAmB,IAAe,EAAE,GAAsB,EAAC,cAAkC;YAA7F,iBAoBE;YAnBC,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE;gBACrB,OAAO;aACR;YACD,IAAI,CAAC,cAAc,GAAC,cAAc,CAAC;YACnC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAC,OAAmB;gBACpD,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC9B,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;gBACvC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBAC9B,IAAI,IAAI,IAAI,IAAI,EAAG;oBACf,KAAI,CAAC,cAAc,CAAC,kBAAkB,GAAG,KAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAI,CAAC,cAAc,CAAC,kBAAkB,CAAI,SAAS,UAAK,OAAS,CAAC,CAAA;iBAC/L;qBACI,IAAG,CAAC,KAAI,CAAC,cAAc,CAAC,IAAI,EAAC,WAAW,CAAC,EAC9C;oBACI,KAAI,CAAC,eAAe,CAAI,SAAS,UAAK,OAAS,CAAC,CAAA;iBACnD;qBACI;oBACH,KAAI,CAAC,aAAa,CAAC,IAAI,EAAC,WAAW,EAAC,SAAS,EAAC,OAAO,CAAC,CAAC;iBACxD;aACJ,CAAC,CAAC;SACJ;QAEO,iDAAc,GAAd,UAAe,IAAe,EAAE,WAAmB;YAEzD,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACpC,OAAO,OAAO,IAAI,IAAI,CAAC;SACxB;QAEO,gDAAa,GAAb,UAAc,IAAe,EAAE,WAAmB,EAAC,SAAgB,EAAC,OAAe;;YACzF,IAAI,OAAO,GAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACnC,IAAI,MAAM,aAAK,GAAC,OAAO,IAAG,IAAI,KAAE,CAAC;YACjC,IAAI,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAE1C,IAAI,cAAc,CAAC,MAAM,IAAE,CAAC,EAC3B;gBACE,QAAQ,cAAc,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE;oBAClD,KAAK,SAAS;wBACZ,IAAI,cAAc,GAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;wBAC9C,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBACjC,cAAc,CAAC,aAAa,EAAE,CAAC;wBAC/B,cAAc,CAAC,sBAAsB,EAAE,CAAC;wBACxC,MAAM;oBACR,KAAK,QAAQ;wBACX,IAAI,aAAa,GAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;wBAC5C,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBAChC,aAAa,CAAC,aAAa,EAAE,CAAC;wBAC9B,aAAa,CAAC,sBAAsB,EAAE,CAAC;wBACvC,MAAM;oBAER;wBACE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBAC1B,OAAO,CAAC,aAAa,EAAE,CAAC;wBACxB,OAAO,CAAC,sBAAsB,EAAE,CAAC;iBACpC;aAEF;iBAED;gBACE,IAAI,CAAC,cAAc,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAI,SAAS,UAAK,OAAS,CAAC,CAAA;aAC7L;SAGF;;;;;gBAjKNV,aAAU,SAAC;oBACR,UAAU,EAAE,MAAM;iBACnB;;;gBAPM,cAAc;;IAqBR;QAAVU,iBAAO,EAAE;6DAAoB;;;QCPhC,+BAEY,IAAgB,EAChB,WAAwB,EACxB,kBAAsC,EACtC,cAA8B,EAC9B,wBAAkD,EAClD,oBAA0C;YAPtD,iBAiBC;YAfW,SAAI,GAAJ,IAAI,CAAY;YAChB,gBAAW,GAAX,WAAW,CAAa;YACxB,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,mBAAc,GAAd,cAAc,CAAgB;YAC9B,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClD,yBAAoB,GAApB,oBAAoB,CAAsB;YAV9C,mBAAc,GAAwB,IAAI,mBAAmB,EAAE,CAAC;YAChE,oBAAe,GAAG,EAAE,CAAC;YACrB,eAAU,GAAkB,IAAIR,YAAO,EAAQ,CAAC;;YAWtD,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAExD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,KAAK;gBACrD,IAAI,KAAI,CAAC,eAAe,IAAI,KAAK,CAAC,IAAI,EAAE;oBACtC,KAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;iBACnC;aACF,CAAC,CAAA;SACH;QAED,mCAAG,GAAH,UAAI,GAAW,EAAE,MAAmB,EAAE,cAAoC;YAA1E,iBAiBC;YAhBC,IAAI,cAAc;gBAChB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACvC,IAAI,OAAO,GAAG,IAAIG,cAAW,CAAC;gBAC5B,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE;aAC7D,CAAC,CAAC;YACH,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc;gBACrC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CACxGM,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAC1BC,aAAG,CAAC,UAAC,MAAM;gBACT,IAAI,CAAC,KAAI,CAAC,cAAc,CAAC,cAAc;oBACrC,KAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;aACrC,CAAC,CACH,CAAC;SACH;QAED,oCAAI,GAAJ,UAAK,GAAW,EAAE,KAAW,EAAE,MAAmB,EAAE,cAAoC;YAAxF,iBAkBC;YAjBC,IAAI,cAAc;gBAChB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACvC,IAAI,OAAO,GAAG,IAAIP,cAAW,CAAC;gBAC5B,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE;aAE7D,CAAC,CAAC;YACH,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc;gBACrC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAChKM,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAC1BC,aAAG,CAAC,UAAC,MAAM;gBACT,IAAI,CAAC,KAAI,CAAC,cAAc,CAAC,cAAc;oBACpC,KAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;aACtC,CAAC,CACH,CAAC;SACH;QAEM,8CAAc,GAAd;YACL,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SACxB;;;;;gBAnEFZ,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;gBAfQM,aAAU;gBAGV,WAAW;gBACX,kBAAkB;gBAElB,cAAc;gBAId,wBAAwB;gBACxB,oBAAoB;;;;QCH3B,6BAAsC,QAAkB;YAAlB,aAAQ,GAAR,QAAQ,CAAU;SAAG;QAE3D,wCAAU,GAAV,UAAW,IAAY,EAAC,iBAAwB,EAAC,gBAAuB;YACtE,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACjD,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC1D,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC3D;iBAAM;gBACL,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAClD,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC1D,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC3D;SAEF;QAED,6CAAe,GAAf,UAAgB,SAAiB;YAC/B,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3D,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAoB,CAAC;YAEhF,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACnD,OAAO;aACR;iBACI,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACzD,SAAS,CAAC,MAAM,EAAE,CAAC;aACpB;YACD,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,KAAK,CAAC,EAAE,GAAG,cAAc,CAAC;YAC1B,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC;YACzB,KAAK,CAAC,IAAI,GAAG,KAAG,SAAW,CAAC;YAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACzB;;;;;gBApCFN,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;gBAGiD,QAAQ,uBAA3Ca,SAAM,SAACC,aAAQ;;;;QCI1B,6BAAoB,MAAc,EAAU,IAA2B,EAAU,WAAwB,EAAS,mBAAuC,EAAU,SAA0B;YAAzK,WAAM,GAAN,MAAM,CAAQ;YAAU,SAAI,GAAJ,IAAI,CAAuB;YAAU,gBAAW,GAAX,WAAW,CAAa;YAAS,wBAAmB,GAAnB,mBAAmB,CAAoB;YAAU,cAAS,GAAT,SAAS,CAAiB;YAD7L,WAAM,GAAC,mBAAmB,CAAA;SAEzB;QACD,wCAAU,GAAV,UAAW,IAAY,EAAE,iBAAyB,EAAE,gBAAwB;YAA5E,iBAYC;YAXG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,MAAM;gBACvC,KAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,UAAC,KAAK;oBACtC,IAAI,cAAc,GAAE,KAAK,CAAE;oBAC3B,KAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBAC3B,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;oBAC9F,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACjD,KAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAC,iBAAiB,EAAC,gBAAgB,CAAC,CAAC;oBAC7E,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACvC,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBAC1B,CAAC,CAAC;aACJ,CAAC,CAAC;SACN;QACD,6CAAe,GAAf;YACI,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,cAAM,OAAA,KAAK,GAAA,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,QAAQ,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SACtC;QAEM,4CAAc,GAAd,UAAe,GAAW;YAE7B,IAAI,MAAM,GAAG,IAAIC,aAAU,EAAE,CAAC;YAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SACrE;QAEK,4CAAc,GAAd;YACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;SAC5C;;;;;gBArCJf,aAAU,SAAC;oBACR,UAAU,EAAE,MAAM;iBACrB;;;gBARQgB,WAAM;gBAGN,qBAAqB;gBADrB,WAAW;gBAEX,mBAAmB;gBAHnBT,qBAAgB;;;ACcdC,iCAAsB;;QA8B/B,6BAAoB,QAAkB;YAAlB,aAAQ,GAAR,QAAQ,CAAU;YACpCA,mBAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;SAE7B;;;;gBA/BFS,WAAQ,SAAC;oBACR,YAAY,EAAE,EACb;oBACD,OAAO,EAAE;wBACPC,iBAAY;wBACZC,uBAAa,CAAC,OAAO,EAAE;wBACvBC,eAAU;wBACVC,iBAAY;wBACZC,sBAAY,CAAC,OAAO,EAAE;qBAEvB;oBACD,OAAO,EAAE,EAER;oBACD,SAAS,EAAC;wBACR,cAAc;wBACd,kBAAkB;wBAClB,WAAW;wBACX,qBAAqB;wBACrB,mBAAmB;wBACnBf,qBAAgB;wBAChB,oBAAoB;wBACpB,wBAAwB;wBACxB,mBAAmB;qBACpB;iBACF;;;gBA1CQgB,WAAQ;;;ICFjB;;;;ICAA;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm5zaWdodHMtYmJzZi11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvYm5zaWdodHMtYmJzZi11dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Injector, NgModule } from '@angular/core';
3
+ import { RouterModule } from '@angular/router';
4
+ import { TranslateService } from '@ngx-translate/core';
5
+ import { BlockUIModule } from 'ng-block-ui';
6
+ import { ToastrModule } from 'ngx-toastr';
7
+ import { HttpModule } from '@angular/http';
8
+ import { UtilityService } from './shared/services/utility.service';
9
+ import { EnvironmentService } from './shared/services/environment.service';
10
+ import { AuthService } from './shared/authentication/auth.service';
11
+ import { RequestHandlerService } from './shared/services/requesthandler.service';
12
+ import { StylesBundleService } from './shared/services/stylesbundle.service';
13
+ import { BBSFTranslateService } from './shared/services/translate.service';
14
+ import { ControlValidationService } from './shared/services/controlvalidation.service';
15
+ import { MasterLayoutService } from './shared/services/masterlayout.service';
16
+ export let AppInjector;
17
+ export class BBSFUtilitiesModule {
18
+ constructor(injector) {
19
+ this.injector = injector;
20
+ AppInjector = this.injector;
21
+ }
22
+ }
23
+ BBSFUtilitiesModule.decorators = [
24
+ { type: NgModule, args: [{
25
+ declarations: [],
26
+ imports: [
27
+ CommonModule,
28
+ BlockUIModule.forRoot(),
29
+ HttpModule,
30
+ RouterModule,
31
+ ToastrModule.forRoot(),
32
+ ],
33
+ exports: [],
34
+ providers: [
35
+ UtilityService,
36
+ EnvironmentService,
37
+ AuthService,
38
+ RequestHandlerService,
39
+ StylesBundleService,
40
+ TranslateService,
41
+ BBSFTranslateService,
42
+ ControlValidationService,
43
+ MasterLayoutService
44
+ ]
45
+ },] }
46
+ ];
47
+ BBSFUtilitiesModule.ctorParameters = () => [
48
+ { type: Injector }
49
+ ];
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi11dGlsaXRpZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9iYnNmLXV0aWxpdGllcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTdFLE1BQU0sQ0FBQyxJQUFJLFdBQXFCLENBQUM7QUE0QmpDLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUU5QixDQUFDOzs7WUEvQkYsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxFQUNiO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGFBQWEsQ0FBQyxPQUFPLEVBQUU7b0JBQ3ZCLFVBQVU7b0JBQ1YsWUFBWTtvQkFDWixZQUFZLENBQUMsT0FBTyxFQUFFO2lCQUV2QjtnQkFDRCxPQUFPLEVBQUUsRUFFUjtnQkFDRCxTQUFTLEVBQUM7b0JBQ1IsY0FBYztvQkFDZCxrQkFBa0I7b0JBQ2xCLFdBQVc7b0JBQ1gscUJBQXFCO29CQUNyQixtQkFBbUI7b0JBQ25CLGdCQUFnQjtvQkFDaEIsb0JBQW9CO29CQUNwQix3QkFBd0I7b0JBQ3hCLG1CQUFtQjtpQkFDcEI7YUFDRjs7O1lBMUNRLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RvciwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCbG9ja1VJTW9kdWxlIH0gZnJvbSAnbmctYmxvY2stdWknO1xyXG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgSHR0cE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2h0dHAnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2F1dGhlbnRpY2F0aW9uL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL3JlcXVlc3RoYW5kbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdHlsZXNCdW5kbGVTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvc3R5bGVzYnVuZGxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCQlNGVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvY29udHJvbHZhbGlkYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE1hc3RlckxheW91dFNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9tYXN0ZXJsYXlvdXQuc2VydmljZSc7XHJcblxyXG5leHBvcnQgbGV0IEFwcEluamVjdG9yOiBJbmplY3RvcjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCbG9ja1VJTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIEh0dHBNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBUb2FzdHJNb2R1bGUuZm9yUm9vdCgpLFxyXG5cclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOltcclxuICAgIFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgQXV0aFNlcnZpY2UsXHJcbiAgICBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsXHJcbiAgICBTdHlsZXNCdW5kbGVTZXJ2aWNlLFxyXG4gICAgVHJhbnNsYXRlU2VydmljZSxcclxuICAgIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgTWFzdGVyTGF5b3V0U2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJCU0ZVdGlsaXRpZXNNb2R1bGUgeyBcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIEFwcEluamVjdG9yID0gdGhpcy5pbmplY3RvcjtcclxuXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,157 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { HttpClient, HttpHeaders } from '@angular/common/http';
4
+ import { UserManager, WebStorageStateStore } from 'oidc-client';
5
+ import { BehaviorSubject, Subject } from 'rxjs';
6
+ import { EnvironmentService } from '../services/environment.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "../services/environment.service";
10
+ export class AuthService {
11
+ constructor(http, environmentService) {
12
+ this.http = http;
13
+ this.environmentService = environmentService;
14
+ // Observable navItem source
15
+ this._authNavStatusSource = new BehaviorSubject(false);
16
+ // Observable navItem stream
17
+ this.authNavStatus$ = this._authNavStatusSource.asObservable();
18
+ // Observable navItem source
19
+ this._userSource = new Subject();
20
+ this.UserStatus$ = this._userSource.asObservable();
21
+ this.manager = new UserManager({
22
+ authority: this.environmentService.getIdentityServerUrl(),
23
+ client_id: 'angular_spa',
24
+ redirect_uri: this.environmentService.getIdentityServerUrl() + '/Admin/authentication/auth-callback',
25
+ post_logout_redirect_uri: this.environmentService.getBaseUrl(),
26
+ response_type: "id_token token",
27
+ scope: "openid profile email IdentityServerApi",
28
+ filterProtocolClaims: true,
29
+ loadUserInfo: true,
30
+ automaticSilentRenew: true,
31
+ silent_redirect_uri: this.environmentService.getIdentityServerUrl() + '/assets/silent-callback.html',
32
+ userStore: new WebStorageStateStore({ store: window.localStorage })
33
+ });
34
+ this.redirectUrl = "";
35
+ this.manager.getUser().then((user) => __awaiter(this, void 0, void 0, function* () {
36
+ this.manager.storeUser(user);
37
+ AuthService.user = user;
38
+ this.user = user;
39
+ this._authNavStatusSource.next(yield this.isAuthenticated());
40
+ }));
41
+ this.manager.events.addAccessTokenExpired(_ => {
42
+ this._authNavStatusSource.next(false);
43
+ });
44
+ }
45
+ login() {
46
+ return this.manager.signinRedirect();
47
+ }
48
+ getUser() {
49
+ this.manager.getUser().then((user) => __awaiter(this, void 0, void 0, function* () {
50
+ ;
51
+ AuthService.user = user;
52
+ this.user = user;
53
+ this._authNavStatusSource.next(yield this.isAuthenticated());
54
+ }));
55
+ }
56
+ storUser(User) {
57
+ this.manager.storeUser(User);
58
+ }
59
+ revokeAccessToken() {
60
+ this.manager.revokeAccessToken();
61
+ }
62
+ signinSilent() {
63
+ let x = this.manager.signinSilentCallback();
64
+ x.then(s => {
65
+ //console.log(s)
66
+ });
67
+ }
68
+ completeAuthentication() {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ this.user = yield this.manager.signinRedirectCallback();
71
+ AuthService.user = this.user;
72
+ this._userSource.next(AuthService.user);
73
+ this._authNavStatusSource.next(yield this.isAuthenticated());
74
+ });
75
+ }
76
+ refreshToken(token) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ const httpOptions = {
79
+ headers: new HttpHeaders({
80
+ 'Content-Type': 'application/json',
81
+ 'Authorization': token
82
+ })
83
+ };
84
+ this.manager.revokeAccessToken();
85
+ return yield this.http.post(`${this.environmentService.getIdentityServerUrl()}/users/refresh-token`, httpOptions, { withCredentials: true }).subscribe((user) => {
86
+ this._userSource.next(user);
87
+ AuthService.user = user;
88
+ this.user = user;
89
+ });
90
+ });
91
+ }
92
+ getCurrentUser() {
93
+ return this.manager.getUser();
94
+ }
95
+ isAuthenticated(allowedPermission) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ let user = yield this.manager.getUser().then(user => {
98
+ return user;
99
+ });
100
+ if (allowedPermission != null && allowedPermission != undefined) {
101
+ if (allowedPermission.length == 0) {
102
+ return this.user != null && !this.user.expired;
103
+ }
104
+ else {
105
+ let isUserInRole = this.isUserInRole(allowedPermission);
106
+ return this.user != null && !this.user.expired && isUserInRole;
107
+ }
108
+ }
109
+ else
110
+ return this.user != null && !this.user.expired;
111
+ });
112
+ }
113
+ isUserInRole(allowedPermission) {
114
+ ;
115
+ let permissionSetSID = this.user.profile["permissionSetSID"].split `,`.map(x => +x);
116
+ return allowedPermission.every(i => permissionSetSID.includes(i));
117
+ }
118
+ authorizationHeaderValue() {
119
+ return `${AuthService.user.token_type} ${AuthService.user.access_token}`;
120
+ }
121
+ name() {
122
+ return AuthService.user != null ? AuthService.user.profile.given_name : '';
123
+ }
124
+ setUrl(url) {
125
+ localStorage.setItem("redirectUrl", url);
126
+ }
127
+ getUrl() {
128
+ return localStorage.getItem("redirectUrl");
129
+ }
130
+ signinSilentCallback() {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ let user = yield this.manager.signinSilentCallback();
133
+ //await this.manager.storeUser(user);
134
+ AuthService.user = user;
135
+ console.log("Token from signinSilentCallback :" + AuthService.user);
136
+ this.user = user;
137
+ });
138
+ }
139
+ signout() {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ localStorage.clear();
142
+ yield this.manager.signoutRedirect();
143
+ });
144
+ }
145
+ }
146
+ AuthService.user = null;
147
+ AuthService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthService_Factory() { return new AuthService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.EnvironmentService)); }, token: AuthService, providedIn: "root" });
148
+ AuthService.decorators = [
149
+ { type: Injectable, args: [{
150
+ providedIn: 'root'
151
+ },] }
152
+ ];
153
+ AuthService.ctorParameters = () => [
154
+ { type: HttpClient },
155
+ { type: EnvironmentService }
156
+ ];
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBNkIsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7QUFNckUsTUFBTSxPQUFPLFdBQVc7SUE0QnRCLFlBQW9CLElBQWdCLEVBQVUsa0JBQXNDO1FBQWhFLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBMUJwRiw0QkFBNEI7UUFDcEIseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkUsNEJBQTRCO1FBQzVCLG1CQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFELDRCQUE0QjtRQUNwQixnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3pELGdCQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxZQUFPLEdBQUcsSUFBSSxXQUFXLENBQy9CO1lBQ0UsU0FBUyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRTtZQUN6RCxTQUFTLEVBQUUsYUFBYTtZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLGtCQUFr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LENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUE7WUFDckQscUNBQXFDO1lBQ3JDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEdBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2xFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7S0FBQTtJQUNLLE9BQU87O1lBQ1gsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QyxDQUFDO0tBQUE7O0FBM0hNLGdCQUFJLEdBQWdCLElBQUksQ0FBQzs7O1lBN0JqQyxVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVJRLFVBQVU7WUFJVixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVc2VyTWFuYWdlciwgVXNlck1hbmFnZXJTZXR0aW5ncywgVXNlciwgV2ViU3RvcmFnZVN0YXRlU3RvcmUgfSBmcm9tICdvaWRjLWNsaWVudCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSAge1xyXG5cclxuICAvLyBPYnNlcnZhYmxlIG5hdkl0ZW0gc291cmNlXHJcbiAgcHJpdmF0ZSBfYXV0aE5hdlN0YXR1c1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIC8vIE9ic2VydmFibGUgbmF2SXRlbSBzdHJlYW1cclxuICBhdXRoTmF2U3RhdHVzJCA9IHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgLy8gT2JzZXJ2YWJsZSBuYXZJdGVtIHNvdXJjZVxyXG4gIHByaXZhdGUgX3VzZXJTb3VyY2U6IFN1YmplY3Q8VXNlcj4gPSBuZXcgU3ViamVjdDxVc2VyPigpO1xyXG4gIFVzZXJTdGF0dXMkID0gdGhpcy5fdXNlclNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIG1hbmFnZXIgPSBuZXcgVXNlck1hbmFnZXIoXHJcbiAgICB7XHJcbiAgICAgIGF1dGhvcml0eTogdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0SWRlbnRpdHlTZXJ2ZXJVcmwoKSxcclxuICAgICAgY2xpZW50X2lkOiAnYW5ndWxhcl9zcGEnLFxyXG4gICAgICByZWRpcmVjdF91cmk6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldElkZW50aXR5U2VydmVyVXJsKCkgKycvQWRtaW4vYXV0aGVudGljYXRpb24vYXV0aC1jYWxsYmFjaycsXHJcbiAgICAgIHBvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaTogdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QmFzZVVybCgpLFxyXG4gICAgICByZXNwb25zZV90eXBlOiBcImlkX3Rva2VuIHRva2VuXCIsXHJcbiAgICAgIHNjb3BlOiBcIm9wZW5pZCBwcm9maWxlIGVtYWlsIElkZW50aXR5U2VydmVyQXBpXCIsXHJcbiAgICAgIGZpbHRlclByb3RvY29sQ2xhaW1zOiB0cnVlLFxyXG4gICAgICBsb2FkVXNlckluZm86IHRydWUsXHJcbiAgICAgIGF1dG9tYXRpY1NpbGVudFJlbmV3OiB0cnVlLFxyXG4gICAgICBzaWxlbnRfcmVkaXJlY3RfdXJpOiB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRJZGVudGl0eVNlcnZlclVybCgpICsgJy9hc3NldHMvc2lsZW50LWNhbGxiYWNrLmh0bWwnLFxyXG4gICAgICB1c2VyU3RvcmU6IG5ldyBXZWJTdG9yYWdlU3RhdGVTdG9yZSh7IHN0b3JlOiB3aW5kb3cubG9jYWxTdG9yYWdlIH0pXHJcbiAgfVxyXG4gICk7XHJcbiAgcHVibGljIHJlZGlyZWN0VXJsOiBzdHJpbmcgPSBcIlwiXHJcbiAgc3RhdGljIHVzZXI6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuICB1c2VyOiBVc2VyIHwgbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLm1hbmFnZXIuZ2V0VXNlcigpLnRoZW4oYXN5bmMgdXNlciA9PiB7XHJcbiAgICAgIHRoaXMubWFuYWdlci5zdG9yZVVzZXIodXNlcik7XHJcbiAgICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSB1c2VyO1xyXG4gICAgICB0aGlzLnVzZXIgPSB1c2VyO1xyXG4gICAgICB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLm5leHQoYXdhaXQgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmVkKF8gPT4ge1xyXG4gICAgICB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLm5leHQoZmFsc2UpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGxvZ2luKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWFuYWdlci5zaWduaW5SZWRpcmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcigpIHtcclxuICAgIHRoaXMubWFuYWdlci5nZXRVc2VyKCkudGhlbihhc3luYyB1c2VyID0+IHtcclxuICAgICAgO1xyXG4gICAgICBBdXRoU2VydmljZS51c2VyID0gdXNlcjtcclxuICAgICAgdGhpcy51c2VyID0gdXNlclxyXG4gICAgICB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLm5leHQoYXdhaXQgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc3RvclVzZXIoVXNlcjogYW55KSB7XHJcbiAgICB0aGlzLm1hbmFnZXIuc3RvcmVVc2VyKFVzZXIpO1xyXG4gIH1cclxuXHJcbiAgcmV2b2tlQWNjZXNzVG9rZW4oKSB7XHJcbiAgICB0aGlzLm1hbmFnZXIucmV2b2tlQWNjZXNzVG9rZW4oKTtcclxuICB9XHJcblxyXG4gIHNpZ25pblNpbGVudCgpIHtcclxuXHJcbiAgICBsZXQgeCA9IHRoaXMubWFuYWdlci5zaWduaW5TaWxlbnRDYWxsYmFjaygpXHJcbiAgICB4LnRoZW4ocyA9PiB7XHJcbiAgICAgIC8vY29uc29sZS5sb2cocylcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBjb21wbGV0ZUF1dGhlbnRpY2F0aW9uKCkge1xyXG4gICAgdGhpcy51c2VyID0gYXdhaXQgdGhpcy5tYW5hZ2VyLnNpZ25pblJlZGlyZWN0Q2FsbGJhY2soKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSB0aGlzLnVzZXJcclxuICAgIHRoaXMuX3VzZXJTb3VyY2UubmV4dChBdXRoU2VydmljZS51c2VyKVxyXG4gICAgdGhpcy5fYXV0aE5hdlN0YXR1c1NvdXJjZS5uZXh0KGF3YWl0IHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpO1xyXG4gIH1cclxuXHJcbiBcclxuXHJcblxyXG4gIGFzeW5jIHJlZnJlc2hUb2tlbih0b2tlbikge1xyXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRva2VuXHJcbiAgICAgIH0pXHJcbiAgICB9O1xyXG4gICAgXHJcbiAgICB0aGlzLm1hbmFnZXIucmV2b2tlQWNjZXNzVG9rZW4oKVxyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0SWRlbnRpdHlTZXJ2ZXJVcmwoKX0vdXNlcnMvcmVmcmVzaC10b2tlbmAsIGh0dHBPcHRpb25zLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5zdWJzY3JpYmUoKHVzZXIpID0+IHtcclxuICAgICAgdGhpcy5fdXNlclNvdXJjZS5uZXh0KHVzZXIpXHJcbiAgICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSB1c2VyXHJcbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudFVzZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYW5hZ2VyLmdldFVzZXIoKVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgaXNBdXRoZW50aWNhdGVkKGFsbG93ZWRQZXJtaXNzaW9uPzogbnVtYmVyW10pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB1c2VyID0gYXdhaXQgdGhpcy5tYW5hZ2VyLmdldFVzZXIoKS50aGVuKHVzZXIgPT4ge1xyXG4gICAgICByZXR1cm4gdXNlcjtcclxuICAgIH0pXHJcbiAgICBpZiAoYWxsb3dlZFBlcm1pc3Npb24gIT0gbnVsbCAmJiBhbGxvd2VkUGVybWlzc2lvbiAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKGFsbG93ZWRQZXJtaXNzaW9uLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciAhPSBudWxsICYmICF0aGlzLnVzZXIuZXhwaXJlZDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBsZXQgaXNVc2VySW5Sb2xlID0gdGhpcy5pc1VzZXJJblJvbGUoYWxsb3dlZFBlcm1pc3Npb24pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQgJiYgaXNVc2VySW5Sb2xlO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gdGhpcy51c2VyICE9IG51bGwgJiYgIXRoaXMudXNlci5leHBpcmVkO1xyXG5cclxuXHJcbiAgfVxyXG4gIGlzVXNlckluUm9sZShhbGxvd2VkUGVybWlzc2lvbjogbnVtYmVyW10pIHtcclxuICAgIDtcclxuICAgIGxldCBwZXJtaXNzaW9uU2V0U0lEID0gdGhpcy51c2VyLnByb2ZpbGVbXCJwZXJtaXNzaW9uU2V0U0lEXCJdLnNwbGl0YCxgLm1hcCh4ID0+ICt4KSBhcyBudW1iZXJbXVxyXG4gICAgcmV0dXJuIGFsbG93ZWRQZXJtaXNzaW9uLmV2ZXJ5KGkgPT4gcGVybWlzc2lvblNldFNJRC5pbmNsdWRlcyhpKSk7XHJcbiAgfVxyXG5cclxuICBhdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtBdXRoU2VydmljZS51c2VyLnRva2VuX3R5cGV9ICR7QXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW59YDtcclxuICB9XHJcblxyXG4gIG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyICE9IG51bGwgPyBBdXRoU2VydmljZS51c2VyLnByb2ZpbGUuZ2l2ZW5fbmFtZSA6ICcnO1xyXG4gIH1cclxuICBzZXRVcmwodXJsKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcInJlZGlyZWN0VXJsXCIsIHVybClcclxuXHJcbiAgfVxyXG4gIGdldFVybCgpIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInJlZGlyZWN0VXJsXCIpO1xyXG4gIH1cclxuICBhc3luYyBzaWduaW5TaWxlbnRDYWxsYmFjaygpIHtcclxuICAgIGxldCB1c2VyID0gIGF3YWl0IHRoaXMubWFuYWdlci5zaWduaW5TaWxlbnRDYWxsYmFjaygpXHJcbiAgICAvL2F3YWl0IHRoaXMubWFuYWdlci5zdG9yZVVzZXIodXNlcik7XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gdXNlcjtcclxuICAgIGNvbnNvbGUubG9nKFwiVG9rZW4gZnJvbSAgc2lnbmluU2lsZW50Q2FsbGJhY2sgOlwiK0F1dGhTZXJ2aWNlLnVzZXIpXHJcbiAgICB0aGlzLnVzZXIgPSB1c2VyO1xyXG4gIH1cclxuICBhc3luYyBzaWdub3V0KCkge1xyXG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICBhd2FpdCB0aGlzLm1hbmFnZXIuc2lnbm91dFJlZGlyZWN0KCk7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,12 @@
1
+ // This file can be replaced during build by using the `fileReplacements` array.
2
+ // `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.
3
+ // The list of file replacements can be found in `angular.json`.
4
+ export const environment = Object.assign({}, window.Envirnment);
5
+ /*
6
+ * In development mode, to ignore zone related error stack frames such as
7
+ * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can
8
+ * import the following file, but please comment it out in production mode
9
+ * because it will have performance impact when throw error
10
+ */
11
+ // import 'zone.js/dist/zone-error'; // Included with Angular CLI.
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvbGliL3NoYXJlZC9jb25maWcvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0ZBQWdGO0FBQ2hGLDJFQUEyRTtBQUMzRSxnRUFBZ0U7QUFFaEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFDeEMsRUFDQSxNQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7QUFHNUI7Ozs7O0dBS0c7QUFDSCxtRUFBbUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgY2FuIGJlIHJlcGxhY2VkIGR1cmluZyBidWlsZCBieSB1c2luZyB0aGUgYGZpbGVSZXBsYWNlbWVudHNgIGFycmF5LlxyXG4vLyBgbmcgYnVpbGQgLS0tcHJvZGAgcmVwbGFjZXMgYGVudmlyb25tZW50LnRzYCB3aXRoIGBlbnZpcm9ubWVudC5wcm9kLnRzYC5cclxuLy8gVGhlIGxpc3Qgb2YgZmlsZSByZXBsYWNlbWVudHMgY2FuIGJlIGZvdW5kIGluIGBhbmd1bGFyLmpzb25gLlxyXG5cclxuZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0gT2JqZWN0LmFzc2lnbih7XHJcbn0sXHJcbih3aW5kb3cgYXMgYW55KS5FbnZpcm5tZW50KTtcclxuXHJcblxyXG4vKlxyXG4gKiBJbiBkZXZlbG9wbWVudCBtb2RlLCB0byBpZ25vcmUgem9uZSByZWxhdGVkIGVycm9yIHN0YWNrIGZyYW1lcyBzdWNoIGFzXHJcbiAqIGB6b25lLnJ1bmAsIGB6b25lRGVsZWdhdGUuaW52b2tlVGFza2AgZm9yIGVhc2llciBkZWJ1Z2dpbmcsIHlvdSBjYW5cclxuICogaW1wb3J0IHRoZSBmb2xsb3dpbmcgZmlsZSwgYnV0IHBsZWFzZSBjb21tZW50IGl0IG91dCBpbiBwcm9kdWN0aW9uIG1vZGVcclxuICogYmVjYXVzZSBpdCB3aWxsIGhhdmUgcGVyZm9ybWFuY2UgaW1wYWN0IHdoZW4gdGhyb3cgZXJyb3JcclxuICovXHJcbi8vIGltcG9ydCAnem9uZS5qcy9kaXN0L3pvbmUtZXJyb3InOyAgLy8gSW5jbHVkZWQgd2l0aCBBbmd1bGFyIENMSS5cclxuIl19
@@ -0,0 +1,3 @@
1
+ export class ErrorModel {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtdXRpbGl0aWVzL3NyYy9saWIvc2hhcmVkL21vZGVscy9FcnJvck1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0NBTXBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVycm9yTW9kZWwge1xyXG4gIFxyXG4gICAgZmllbGQ6IHN0cmluZztcclxuICAgIGNvbnRyb2xfbmFtZTogc3RyaW5nO1xyXG4gICAgbWVzc2FnZTogc3RyaW5nO1xyXG5cclxuICB9XHJcbiAgIl19
@@ -0,0 +1,9 @@
1
+ export class RequestOptionsModel {
2
+ constructor() {
3
+ this.disableSuccessNotification = false;
4
+ this.disableBlockUI = false;
5
+ this.responseType = "";
6
+ this.formGroup = null;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdE9wdGlvbnNNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtdXRpbGl0aWVzL3NyYy9saWIvc2hhcmVkL21vZGVscy9SZXF1ZXN0T3B0aW9uc01vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFDRSwrQkFBMEIsR0FBVSxLQUFLLENBQUM7UUFDMUMsbUJBQWMsR0FBVSxLQUFLLENBQUM7UUFHOUIsaUJBQVksR0FBSyxFQUFFLENBQUE7UUFDbkIsY0FBUyxHQUFXLElBQUksQ0FBQTtJQUMxQixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0T3B0aW9uc01vZGVsIHtcclxuICBkaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbjogYm9vbGVhbj1mYWxzZTtcclxuICBkaXNhYmxlQmxvY2tVSTogYm9vbGVhbj1mYWxzZTtcclxuICBjdXN0b21TdWNjZXNzTWVzc2FnZTogc3RyaW5nO1xyXG4gIGN1c3RvbUVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHJlc3BvbnNlVHlwZTphbnk9XCJcIlxyXG4gIGZvcm1Hcm91cDpGb3JtR3JvdXA9bnVsbFxyXG59XHJcbiJdfQ==