@datarailsshared/datarailsshared 1.4.560 → 1.4.564

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.
@@ -1 +1 @@
1
- {"version":3,"file":"datarailsshared-datarailsshared.umd.js","sources":["../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.service.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/models/serverTags.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-group.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/services/dr-avatar.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/toggle-button-mode.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/models/spinnerOptions.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover-ref.ts","../../../projects/datarailsshared/src/lib/models/popover.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.service.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.service.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-position.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item-show.pipe.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-body.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.ts","../../../projects/datarailsshared/src/lib/models/chat.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.ts","../../../projects/datarailsshared/src/lib/dr-alert/enums/dr-alert-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-i18n.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-helper.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-item.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-config.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-event-parser.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/pipes/treeview.pipe.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-scenario/interfaces/scenario.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/models/badgeStatus.ts","../../../projects/datarailsshared/src/lib/models/feedback.ts","../../../projects/datarailsshared/src/lib/dr-scenario/consts/scenario-tags-config.ts","../../../projects/datarailsshared/src/lib/dr-scenario/services/scenario.service.ts","../../../projects/datarailsshared/src/lib/utils/dr-shared-utils.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/services/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.module.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.module.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.module.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.module.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.module.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.module.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.module.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/dr-scenario.module.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.module.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/dr-tree-view.module.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.module.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\nimport { ITagAdditionalSettings } from '../dr-tags/dr-tag.types';\n\n@Component({\n templateUrl: 'date-tag.component.html',\n selector: 'date-tag',\n styleUrls: ['date-tag.component.css', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DateTagComponent {\n @Input() name: string | undefined = undefined;\n @Input() lockedDate: any[] = [];\n @Input() defaultValue: number | undefined = undefined;\n @Input() dateTypeChosen: any = {};\n @Input() disabled: boolean;\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() tagAdditionalSettings: ITagAdditionalSettings = {};\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log('change date', date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\n\n@Component({\n template: ``,\n selector: 'any-tag'\n})\nexport class AnyTagComponent implements OnInit {\n @Output() dateChange: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n @Input() name: string | undefined = undefined;\n @Input() defaultValue: number | undefined = undefined;\n @Input() disabled: boolean;\n dateObj = { date: undefined };\n\n constructor() {\n }\n\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\n\n initDate() {\n }\n\n initName() {\n }\n\n changeInputHandler(event: Event) {\n const input: HTMLInputElement = <HTMLInputElement>event.target;\n this.chosenTagHandler(input.value);\n }\n\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\n","/*! *****************************************************************************\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) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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","export enum DateFromats {\n MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy',\n DATE_INPUT_FORMAT = 'YYYY/MM/DD',\n YEAR_FORMAT = 'yyyy',\n MONTH_YEAR_FORMAT = 'MM/yyyy',\n QUARTER_FORMAT = 'Q/yyyy',\n WEEK_FORMAT = 'w/yyyy'\n}\n\nexport interface DateParse {\n dateInput: string;\n}\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string;\n dateA11yLabel?: string;\n monthYearA11yLabel?: string;\n quarterYearA11yLabel?: string;\n yearLabel?: string;\n quarterYearLabel?: string;\n};\n\nexport class CustomDateFormat {\n private _parse: DateParse = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n };\n private _display: DateDisplay = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM YYYY',\n quarterYearLabel: 'Q/YYYY',\n yearLabel: 'YYYY'\n };\n\n set parse(parse: DateParse) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateParse {\n return this._parse;\n }\n\n set display(display: DateDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateDisplay {\n return this._display;\n }\n\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\n this.parse = parse;\n if (!display) {\n display = parse;\n }\n this.display = display;\n }\n}\n\nexport interface IDatePickerFormatConfig {\n day?: string;\n month?: string;\n year?: string;\n quarter?: string;\n week?: string;\n}\n\nexport enum DatePickerPeriodPosition {\n END_OF_PERIOD,\n MIDDLE_OF_PERIOD,\n START_OF_PERIOD,\n DEFAULT\n}\n\nexport enum TimeframeOption {\n DAY = 'day',\n MONTH = 'month',\n QUARTER = 'quarter',\n WEEK = 'week',\n YEAR = 'year',\n}\n\nexport enum CalendarView {\n FOR_DAYS = 'month',\n FOR_MONTHS = 'year',\n FOR_QUARTERS = 'none',\n FOR_YEARS = 'multi-year',\n}\n\nexport enum DateTags {\n TODAY = 'today',\n YESTERDAY = 'yesterday',\n THIS_MONTH = 'this_month',\n PREV_MONTH = 'prev_month',\n}\n\nexport type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { cloneDeep as _cloneDeep, find as _find } from 'lodash';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { ITagAdditionalSettings } from '../../dr-tags/dr-tag.types';\nimport { DatePickerPeriodPosition } from '../../models/datePicker';\n\n/* BEFORE MERGE INTO MASTER YOU MUST CONSULT WITH ARTEM LAZIUK !!!*/\n\n// @ts-ignore\nconst moment = require('moment');\n\nconst FORECAST_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy';\n\n@Component({\n templateUrl: 'forecast-tag.component.html',\n selector: 'forecast-tag',\n styleUrls: ['./forecast-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n }\n ]\n})\n\nexport class ForecastTagComponent extends AnyTagComponent implements OnChanges {\n readonly datePickerPeriodPosition = DatePickerPeriodPosition;\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n @Input() tagAdditionalSettings: ITagAdditionalSettings = {};\n\n forecastValue: number | undefined = undefined;\n forecastYear: number;\n isDateEventHappened = false;\n\n forecastTags: any[] = [\n { value: 0, label: '0+12', disabled: false },\n { value: 1, label: '1+11', disabled: false },\n { value: 2, label: '2+10', disabled: false },\n { value: 3, label: '3+9', disabled: false },\n { value: 4, label: '4+8', disabled: false },\n { value: 5, label: '5+7', disabled: false },\n { value: 6, label: '6+6', disabled: false },\n { value: 7, label: '7+5', disabled: false },\n { value: 8, label: '8+4', disabled: false },\n { value: 9, label: '9+3', disabled: false },\n { value: 10, label: '10+2', disabled: false },\n { value: 11, label: '11+1', disabled: false }\n ];\n\n private initDateValue = null;\n private firstDayMonthOfYear = '01';\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.updateLockedDate();\n }\n }\n\n initDate() {\n const dateVal = this.defaultValue ? moment.unix(this.defaultValue) : moment();\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n\n this.forecastYear = moment\n .utc(\n `${this.firstDayMonthOfYear}/${this.firstDayMonthOfYear}/${this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, this.fiscalYearBack)}`,\n FORECAST_DEFAULT_DATE_FORMAT,\n )\n .set('hours', 12)\n .unix();\n\n this.updateLockedDate();\n\n if (!this.initDateValue) {\n this.initDateValue = _cloneDeep(this.dateObj.date);\n }\n }\n\n updateLockedDate() {\n const year = moment.unix(this.forecastYear).year();\n\n this.forecastTags = this.forecastTags.map(forecastTag => {\n forecastTag.disabled = this.lockedDate.some((timestamp) => {\n const locked = moment.unix(timestamp);\n return locked.month() === forecastTag.value && +locked.year() === +year;\n });\n\n return forecastTag;\n });\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Forecast (New)';\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n const all_months = [];\n\n for (let i = fiscal_year_starts_from; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscal_year_starts_from; i++) {\n all_months.push(i);\n }\n\n return all_months.indexOf(dateObj.month() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.year();\n if (!fiscal_year_back) {\n if (dateObj.month() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (dateObj.month() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year -= 1;\n }\n }\n return fiscal_year;\n }\n\n changeTagInputHandler() {\n this.chosenTagHandler();\n }\n\n changeYearInputHandler() {\n this.updateLockedDate();\n this.initDateValue = _cloneDeep(this.dateObj.date);\n this.chosenTagHandler();\n }\n\n chosenTagHandler() {\n if (this.isDateEventHappened) return;\n\n const month = this.forecastValue;\n const year = moment.unix(this.forecastYear);\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n const date = new Date(year.year(), month, 1, 12, 0, 0, 0);\n\n if (fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back) {\n date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);\n } else {\n date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);\n }\n }\n\n this.dateObj.date = moment(date).unix();\n\n this.isDateEventHappened = true;\n setTimeout(() => {\n this.isDateEventHappened = false;\n });\n }\n\n const resultTag: IDateTag = {\n name: this.name,\n value: this.dateObj.date,\n label: `${ _find(this.forecastTags, { value: this.forecastValue })?.label } (${ year.year() })`,\n locked: !this.dateFilter(moment.unix(this.dateObj.date)),\n };\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const month = this.forecastValue;\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.month() === month && lockDate.year() === year;\n });\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Moment } from 'moment';\nimport { indexOf as _indexOf } from 'lodash';\n\n@Injectable()\nexport class ForecastTagService {\n private static readonly MONTH_DIFF = 1;\n private static forecastByMonth = {\n '0': '0+12',\n '1': '1+11',\n '2': '2+10',\n '3': '3+9',\n '4': '4+8',\n '5': '5+7',\n '6': '6+6',\n '7': '7+5',\n '8': '8+4',\n '9': '9+3',\n '10': '10+2',\n '11': '11+1',\n };\n\n constructor() {\n }\n\n public static getFiscalMonthFromDate(date: Moment, fiscalYearStartsFrom: number): number {\n const all_months = [];\n\n for (let i = fiscalYearStartsFrom; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscalYearStartsFrom; i++) {\n all_months.push(i);\n }\n\n return _indexOf(all_months, date.month() + ForecastTagService.MONTH_DIFF) + ForecastTagService.MONTH_DIFF;\n }\n\n public static getFiscalYearFromDate(date: Moment, fiscalYearStartsFrom: number, fiscalYearBack: boolean): number {\n const month = date.month();\n let fiscal_year = date.year();\n\n if (!fiscalYearBack) {\n if (month + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (month + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n public static getForecastLabel(month: number): string {\n return ForecastTagService.forecastByMonth[month - ForecastTagService.MONTH_DIFF];\n }\n\n public static getCalendarDateFromMonthAndFiscalYear(\n chosenMoment: Moment,\n monthLabel: string,\n fiscalYearStartsFrom: number,\n fiscalYearBack: boolean,\n ): number {\n const yearWithMonth = ForecastTagService.addMonthsWithoutYearChange(chosenMoment, monthLabel, fiscalYearStartsFrom);\n return ForecastTagService.transformYearFromFiscal(yearWithMonth, fiscalYearStartsFrom, fiscalYearBack);\n }\n\n public static addMonthsWithoutYearChange(\n date: Moment,\n monthLabel: string,\n fiscalYearStartsFrom: number,\n ): Moment {\n if (!monthLabel || !date) return;\n\n const dateToTransform = date.clone();\n\n const labelsIndex: number = +Object.keys(ForecastTagService.forecastByMonth).find(\n (key: string) => ForecastTagService.forecastByMonth[key] === monthLabel,\n );\n const monthsWithFiscalDifference = labelsIndex + fiscalYearStartsFrom - 1;\n const monthsToAdd = monthsWithFiscalDifference >= 12 ? monthsWithFiscalDifference - 12 : monthsWithFiscalDifference;\n\n return dateToTransform.utc().startOf('year').add(monthsToAdd, 'M');\n }\n\n public static transformYearFromFiscal(\n fiscalYearWithMonth: Moment,\n fiscalYearStartsFrom: number,\n fiscalYearBack: boolean,\n ): number {\n if (!fiscalYearWithMonth) return;\n\n let fiscalYearStartMoment = fiscalYearWithMonth.clone();\n if (fiscalYearBack) {\n if (fiscalYearStartMoment.month() + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscalYearStartMoment.add(1, 'year');\n }\n } else {\n if (fiscalYearStartMoment.month() + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscalYearStartMoment.subtract(1, 'year');\n }\n }\n return fiscalYearStartMoment.unix();\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst MONTH_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'MMMM YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'month-tag.component.html',\n styleUrls: ['./month-tag.component.scss'],\n selector: 'month-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },\n ],\n})\n\nexport class MonthTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Month';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('MMMM YYYY'),\n locked: !this.dateFilter(resultDate)\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n // Should be as arrow function to avoid lose scope\n dateFilter(date): boolean {\n const month = date.month();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === year && lockDate.month() === month;\n });\n };\n}\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\n// @ts-ignore\nconst moment = require('moment');\n\n@Component({\n templateUrl: 'quarter-tag.component.html',\n styleUrls: ['./quarter-tag.component.scss'],\n selector: 'quarter-tag',\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit, OnChanges {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.quarters\n ? this.quarters.some((quarter) => !this.dateFilter(moment.unix(quarter.value)))\n : false;\n }\n\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.initName();\n this.initTags();\n }\n }\n\n ngOnInit() {\n this.initName();\n this.initTags();\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Quarter';\n }\n }\n\n initTags() {\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n if (quarter.isSelected) {\n this.selectedValue = quarter;\n this.chosenTagHandler(quarter);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n chosenTagHandler(quarter) {\n const resultDate = moment.unix(quarter.value);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(quarter)\n };\n this.dateChange.emit(resultTag);\n }\n\n getQuarterOptions() {\n const quartersBeforeToday = 8;\n const quartersAfterToday = 8;\n const dateNow = new Date();\n const dateNowUnix = this.getUTCTimestamp(dateNow);\n let defaultValue = dateNowUnix;\n let tempDate = new Date();\n if (this.defaultValue) {\n defaultValue = this.defaultValue * 1000;\n }\n\n let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;\n afterDefault = Math.min(afterDefault, 100);\n let i; let tempValue;\n const to_return: any[] = [];\n for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {\n tempDate = new Date(defaultValue);\n tempDate.setDate(15);\n tempDate.setMonth(tempDate.getMonth() + 3 * i);\n tempValue = this.getUTCTimestamp(tempDate);\n to_return.push({\n value: tempValue / 1000,\n label: this.getQuarterLabel(tempValue),\n isSelected: (i === 0),\n disabled: false,\n });\n }\n return to_return;\n }\n\n private getQuarterLabel(timeValue) {\n const date = new Date(timeValue);\n return 'Q' + Math.floor((date.getMonth() / 3) + 1) + ' ' + date.getFullYear();\n }\n\n private getUTCTimestamp(date) {\n const month = Math.floor(date.getMonth() / 3) * 3;\n return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);\n }\n\n dateFilter(quarter): boolean {\n const quarterDate = moment.unix(quarter.value);\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n if (lockDate.year() === quarterDate.year() && lockDate.quarter() === quarterDate.quarter()) {\n quarter.disabled = true;\n return true;\n }\n\n return false;\n });\n };\n}\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst WEEK_FORMATS = {\n parse: {\n dateInput: 'WW-YYYY',\n },\n display: {\n dateInput: '[Week] WW, YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'week-tag.component.html',\n selector: 'week-tag',\n styleUrls: ['./week-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },\n ],\n})\nexport class WeekTagComponent extends AnyTagComponent implements OnInit {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n const timestamp = this.defaultValue || moment().unix() ;\n this.date = timestamp;\n this.dateObj.date = timestamp;\n this.chosenTagHandler(timestamp);\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Week';\n }\n }\n\n dateFilter(date): boolean {\n const week = date.week();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.week() === week && lockDate.year() === year;\n });\n };\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value).utc().weekday(1);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getWeekLabel(resultDate),\n locked: !this.dateFilter(resultDate)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(moment) {\n return `W${ moment.week() } ${ moment.year() }`;\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst YEAR_FORMATS = {\n parse: {\n dateInput: 'YYYY',\n },\n display: {\n dateInput: 'YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'year-tag.component.html',\n selector: 'year-tag',\n styleUrls: ['./year-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },\n ],\n})\n\nexport class YearTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Year';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('YYYY'),\n locked: !this.dateFilter(resultDate)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const calendarDateYear = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === calendarDateYear;\n });\n };\n}\n","// instead of getting this from the server each time\n// this is not going to change much\nexport enum TagTypes {\n LIST = 'LIST',\n DATE = 'DATE'\n}\n\nexport enum TagsConfigSubType {\n YEAR = 'year',\n PLAN = 'plan',\n BUDGET_CYCLE = 'budget cycle',\n FORECAST_CYCLE = 'forecast cycle',\n MONTH = 'month',\n WEEK = 'week',\n DAY = 'day',\n FORECAST_NEW = 'forecast_new',\n QUARTER = 'quarter',\n FILE_STATUS = 'file_status'\n}\n\nexport interface ITag {\n id: number;\n name: string;\n type: TAG_TYPES;\n options: any;\n values: string[] | null;\n description: string;\n locked?: boolean;\n}\n\nexport interface ITagForServer {\n id: number;\n name: string;\n value?: number | string;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IDateTag {\n name: string;\n value?: number;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IListTag {\n name: string;\n value?: number;\n label?: string;\n}\n\nexport interface IDynamicTag {\n value: string;\n is_favorite?: boolean;\n}\n\nexport type TDynamicTagValue = IDynamicTag | string | number;\nexport type TDynamicTag = { [parentValue: string]: TDynamicTagValue[] };\nexport type TConnectedTags = { [tagId: number]: ITagForServer[] };\nexport type TAG_TYPES = TagTypes;\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport {\n IDateTag,\n IListTag,\n ITag,\n ITagForServer,\n TagsConfigSubType,\n TagTypes,\n TDynamicTag,\n TDynamicTagValue\n} from '../models/serverTags';\nimport { find as _find, forEach as _forEach, map as _map, merge as _merge, some as _some } from 'lodash';\nimport { ITagAdditionalSettings } from './dr-tag.types';\n\n@Component({\n templateUrl: 'dr-tag.component.html',\n selector: 'dr-tag',\n styleUrls: ['dr-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DrTagComponent implements OnInit, OnChanges {\n @Input() tagConfig: ITag;\n // selectedTagValue\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[] = [];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n\n @Input() tagsConfig: ITag[];\n @Input() dynamicTagValues: TDynamicTag = {};\n\n @Input()\n public set connectedTags(tags: ITagForServer[]) {\n this._connectedTags = tags || [];\n }\n\n @Input() isDynamicTagAddEnabled: boolean;\n\n @Input() disabled: boolean;\n\n // An object containing additional props for tags configuration\n @Input() tagAdditionalSettings: ITagAdditionalSettings = {};\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>(); // Not emit value for dynamic tag\n @Output() dynamicTagChange: EventEmitter<ITagForServer[]> = new EventEmitter<ITagForServer[]>();\n @Output() dynamicTagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public defaultValue: string | undefined;\n public currentTagDynamic: boolean;\n public currentTagConnectedToDynamic = false;\n public tagTypes = TagTypes;\n\n public dateTag: any;\n public listTag: any;\n\n private readonly connectableTags = [TagsConfigSubType.FORECAST_NEW, TagsConfigSubType.YEAR];\n\n private connectedTagsValues: ITagForServer[] = [];\n private dynamicTagValue: ITagForServer;\n private _connectedTags: ITagForServer[] = [];\n\n public get connectedTags(): ITagForServer[] {\n return this._connectedTags;\n }\n\n public get isDynamicTagMultipleLine(): boolean {\n return this.currentTagDynamic && this.tagConfig.options.sub_type === TagsConfigSubType.FORECAST_CYCLE;\n }\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: ''\n };\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (simpleChanges.tagsConfig) {\n this.calculateDynamicTag();\n }\n }\n\n ngOnInit() {\n this.dateTag = {\n type: this.tagConfig.type,\n sub_type: this.tagConfig.options.sub_type,\n value: this.selectedTag?.value,\n };\n\n this.listTag = {\n name: this.tagConfig.name,\n type: this.tagConfig.type,\n values: this.tagConfig.values,\n value: this.selectedTag?.value,\n };\n\n if (this.tagsConfig && this.currentTagDynamic) {\n this.configureTagItems();\n }\n\n if (this.tagConfig && this.tagConfig.options && this.tagConfig.options.default_value) {\n this.defaultValue = this.tagConfig.options.default_value;\n }\n }\n\n onDateHandler(event: IDateTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: event.name,\n value: event.value,\n label: event.label,\n locked: event.locked\n };\n\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onDynamicTagChange(tag?: ITagForServer) {\n if (tag) {\n this.dynamicTagValue = tag;\n }\n\n this.dynamicTagChange.emit([...this.connectedTagsValues, this.dynamicTagValue]);\n }\n\n private onDynamicHandler(event) {\n const connectedDateTagConfig = _find(this.tagsConfig, (tagConfig) => tagConfig.name === event.name);\n this.connectedTags = _map(this.connectedTags, tag => {\n if (tag.id === connectedDateTagConfig.id) {\n tag.value = event.value;\n tag.locked = event.locked;\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n tag.label = event.label;\n }\n }\n\n return tag;\n });\n\n const resultEvent: ITagForServer = {\n id: connectedDateTagConfig.id,\n name: connectedDateTagConfig.name,\n value: event.value\n };\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n resultEvent.label = event.label;\n resultEvent.locked = event.locked;\n }\n\n\n const savedTag = _find(this.connectedTagsValues, { id: resultEvent.id });\n\n if (savedTag) {\n _merge(savedTag, resultEvent);\n } else {\n this.connectedTagsValues.push(resultEvent);\n }\n\n this.onDynamicTagChange();\n }\n\n private configureTagItems() {\n _forEach(this.tagsConfig, (tagConfig) => {\n if (!this.connectableTags.includes(tagConfig.options.sub_type)) return;\n if (tagConfig.type === TagTypes.DATE) {\n this.dateTag = {\n type: tagConfig.type,\n sub_type: tagConfig.options.sub_type,\n value: (_find(this.connectedTags, { id: tagConfig.id }) || {}).value,\n };\n }\n\n if (tagConfig.type === TagTypes.LIST) {\n this.listTag = {\n name: tagConfig.name,\n type: tagConfig.type,\n values: tagConfig.values,\n value: tagConfig?.options?.default_value,\n };\n }\n\n if (!_find(this.connectedTags, { id: tagConfig.id })) {\n this.connectedTags.push({\n id: tagConfig.id,\n name: tagConfig.name,\n value: undefined,\n });\n }\n });\n }\n\n private calculateDynamicTag(): void {\n this.currentTagDynamic = this.tagConfig.options.is_custom;\n\n this.currentTagConnectedToDynamic = _some(\n this.tagsConfig,\n (tagConfig) => tagConfig.options.is_custom && this.connectableTags.includes(this.tagConfig.options.sub_type),\n );\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IListTag } from '../models/serverTags';\n\n\n@Component({\n templateUrl: 'list-tag.component.html',\n selector: 'list-tag',\n styleUrls: ['list-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ListTagComponent implements OnInit {\n @Input() values: string[];\n @Input() defaultValue = '';\n @Input() name: string;\n @Input() disabled: boolean;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {\n }\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== '') {\n const resultTag: IListTag = {\n name: this.name,\n value\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\n\n// @ts-ignore\nconst moment = require('moment');\n\nconst DAY_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'DD.MM.YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'day-tag.component.html',\n selector: 'day-tag',\n styleUrls: ['./day-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },\n ],\n})\n\nexport class DayTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Day';\n }\n }\n\n chosenTagHandler(value: number) {\n const date = moment.unix(value);\n const resultTag: IDateTag = {\n name: this.name,\n value: date.unix(),\n label: date.format('MM/DD/YYYY'),\n locked: !this.dateFilter(date)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(momentData): boolean {\n const date = momentData.date();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.date() === date;\n });\n };\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() name: string;\n @Input('value') _value: any;\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n private _disabled = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges => {\n });\n onTouched: any = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\n }\n }\n\n valueChanged(event) {\n this.onChange(this.modelValue);\n this.valueChange.emit(this.value);\n }\n\n _setName(name: string) {\n this.name = name;\n this.cdr.markForCheck();\n }\n\n _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { from, fromEvent, merge, Subject } from 'rxjs';\nimport { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { RadioButtonComponent } from './radio-button.component';\n\n@Component({\n selector: 'dr-radio-group',\n template: `\n <ng-content select=\"dr-radio-button\"></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, OnDestroy, ControlValueAccessor {\n\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this.updateValues();\n }\n\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(name: string) {\n this._name = name;\n this.updateNames();\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = !!disabled;\n this.updateDisabled();\n }\n\n constructor(\n protected hostElement: ElementRef<HTMLElement>,\n @Inject(PLATFORM_ID) protected platformId,\n @Inject(DOCUMENT) protected document,\n ) {\n }\n\n protected destroy$ = new Subject<void>();\n protected _value: any;\n protected _name: string;\n protected _disabled: boolean;\n\n @ContentChildren(RadioButtonComponent, { descendants: true }) radios: QueryList<RadioButtonComponent>;\n\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n protected onChange = (value: any) => {\n };\n protected onTouched = () => {\n };\n\n ngAfterContentInit() {\n // In case option 'name' isn't set on dr-radio component,\n // we need to set it's name right away, so it won't overlap with options\n // without names from other radio groups. Otherwise they all would have\n // same name and will be considered as options from one group so only the\n // last option will stay selected.\n this.updateNames();\n\n this.radios.changes.pipe(\n startWith(this.radios),\n // 'changes' emit during change detection run and we can't update\n // option properties right of since they already was initialized.\n // Instead we schedule microtask to update radios after change detection\n // run is finished and trigger one more change detection run.\n switchMap((radios: QueryList<RadioButtonComponent>) => from(Promise.resolve(radios))),\n takeUntil(this.destroy$),\n ).subscribe(() => this.updateAndSubscribeToRadios());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n protected updateAndSubscribeToRadios() {\n this.updateValueFromCheckedOption();\n this.updateNames();\n this.updateValues();\n this.updateDisabled();\n this.subscribeOnRadiosValueChange();\n this.subscribeOnRadiosBlur();\n }\n\n protected updateNames() {\n if (this.radios) {\n this.radios.forEach((radio: RadioButtonComponent) => radio._setName(this.name));\n }\n }\n\n protected updateValues() {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => {\n radio.modelValue = this.value;\n });\n }\n\n protected updateDisabled() {\n if (typeof this.disabled !== 'undefined') {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => radio.disabled = this.disabled);\n }\n }\n\n protected subscribeOnRadiosValueChange() {\n if (!this.radios || !this.radios.length) {\n return;\n }\n\n merge(...this.radios.map((radio: RadioButtonComponent) => radio.valueChange)).pipe(\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe((value: any) => {\n this.writeValue(value);\n this.propagateValue(value);\n });\n }\n\n protected propagateValue(value: any) {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected subscribeOnRadiosBlur() {\n const hasNoRadios = !this.radios || !this.radios.length;\n if (!isPlatformBrowser(this.platformId) || hasNoRadios) {\n return;\n }\n\n const hostElement = this.hostElement.nativeElement;\n fromEvent<Event>(hostElement, 'focusin').pipe(\n filter(event => hostElement.contains(event.target as Node)),\n switchMap(() => merge(\n fromEvent<Event>(this.document, 'focusin'),\n fromEvent<Event>(this.document, 'click'),\n )),\n filter(event => !hostElement.contains(event.target as Node)),\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe(() => this.onTouched());\n }\n\n protected updateAndMarkForCheckRadios(updateFn: (RadioButtonComponent) => void) {\n if (this.radios) {\n this.radios.forEach((radio) => {\n updateFn(radio);\n radio._markForCheck();\n });\n }\n }\n\n protected updateValueFromCheckedOption() {\n const checkedRadio = this.radios.find((radio) => radio.modelValue);\n const isValueMissing = this.value === undefined || this.value === null;\n if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {\n this.value = checkedRadio.value;\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() checkedStatus: boolean;\n @Input() disabled = false;\n @Input() icon: 'cross' | '' = '';\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n\n private _indeterminate = false;\n @Output() checkedChange = new EventEmitter();\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n setValue(event) {\n const input = (event.target as HTMLInputElement);\n this.checkedStatus = input.checked;\n this.checkedChange.emit(this.checkedStatus);\n this.onChange(this.checkedStatus);\n this.indeterminate = input.indeterminate;\n this.onTouched();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2, ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { noop } from 'rxjs';\n\n@Component({\n selector: 'dr-input',\n templateUrl: './dr-input.component.html',\n styleUrls: ['./dr-input.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrInputComponent),\n multi: true\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrInputComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {\n _clearable = false;\n\n @Input() set disabled(value) {\n this.setDisabledState(value);\n }\n\n @Input() set buttonOptions(value) {\n if (value) {\n this._buttonOptions = { ...this._buttonOptions, ...value };\n if (this._buttonOptions?.show || this._buttonOptions?.showOnFocus) {\n this._elementClass.push('with-button');\n }\n }\n if (this._buttonOptions.showOnFocus) {\n this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {\n this._buttonOptions.focusSet = true;\n this.cdr.markForCheck();\n });\n this.globalListenFunc = this.renderer.listen('document', 'click', event => {\n if (event.target.parentNode !== this.elementRef.nativeElement) {\n if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {\n this.onButtonClicked(event);\n }\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n @Input() type = 'string';\n @Input() name: string;\n @Input() placeholder = '';\n @Input() readonly = false;\n\n @Input() set clearable(val) {\n this._clearable = !!val;\n if (this._clearable) {\n this._elementClass.push('clearable');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'clearable');\n }\n this.cdr.markForCheck();\n }\n\n @Input() min: number | string;\n @Input() max: number | string;\n @Input() minLength: number;\n @Input() maxlength: number;\n @Input() step;\n @Output() blur = new EventEmitter();\n @Output() ngModelDebounceChange = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n innerValue = null;\n _disabled = null;\n _elementClass: string[] = [];\n _buttonOptions = {\n show: false,\n showOnFocus: false,\n focusSet: false,\n checkFocusOut: (target: any, element: any) => true,\n text: 'Save'\n };\n listenFunc: (...params) => any;\n globalListenFunc: (...params) => any;\n\n\n @Output() searchHandler = new EventEmitter<any>();\n @Output() clearHandler = new EventEmitter<any>();\n @Output() buttonHandler = new EventEmitter<any>();\n\n @ViewChild('inputRef') private readonly inputElement: ElementRef<HTMLInputElement>;\n @ContentChild('prefix', { static: false }) prefixIcon: ElementRef;\n @ContentChild('suffix', { static: false }) suffixIcon: ElementRef;\n\n @HostBinding('tabindex') tabindex = -1;\n onChangeCallback: (_: any) => void = noop;\n onTouchedCallback: () => void = noop;\n onChange: (value: any) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\n }\n\n public set value(v: string | number) {\n if (v !== this.innerValue) {\n this.innerValue = this.type === 'number' ? +v : v;\n this.onChangeCallback(this.innerValue);\n }\n this.cdr.markForCheck();\n }\n\n\n constructor(private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.clearable) {\n this._elementClass.push('clearable');\n }\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n if (this.type === 'search') {\n this._elementClass.push('search-type');\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n writeValue(value: number | string) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.updateChanges();\n this.cdr.markForCheck();\n }\n }\n\n updateChanges() {\n this.onChange(this.value);\n }\n\n setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onSearchClicked($event: any) {\n this.searchHandler.emit($event);\n }\n\n onButtonClicked($event: any) {\n this.buttonHandler.emit($event);\n this._buttonOptions.focusSet = false;\n this.cdr.markForCheck();\n }\n\n ngOnDestroy(): void {\n if (this.listenFunc) {\n this.listenFunc();\n this.globalListenFunc();\n }\n }\n\n onClear($event) {\n this.clearHandler.emit($event);\n $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n\n focus() {\n this.inputElement.nativeElement.focus();\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef, ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\nconst SELECT_HOST_ATTRIBUTES = [\n 'no-left-border',\n 'no-left-border-radius',\n 'no-right-border',\n 'no-right-border-radius',\n];\n\ninterface INgSelectComponentAccessor {\n close: () => void;\n}\n\n@Component({\n selector: 'dr-select',\n templateUrl: './dr-select.component.html',\n styleUrls: ['./dr-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: DrSelectComponent,\n multi: true\n }]\n})\nexport class DrSelectComponent implements ControlValueAccessor {\n @Input() className: string;\n @Input() items: Array<any> = [];\n @Input() addTag: boolean | ((term: string) => any | Promise<any>);\n @Input() appendTo = 'body';\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() clearable: boolean;\n @Input() searchable: boolean;\n @Input() searchFn: (term: string, item: any) => boolean;\n @Input() multiple: boolean;\n @Input() hideSelected: boolean;\n @Input() placeholder: string;\n @Input() loading: boolean;\n @Input() loadingText: string = 'Loading...';\n @Input() readonly: boolean;\n @Input() disabled = false;\n @Input() groupBy = null;\n @Input() optionWithDescription = false;\n @Input() id: string;\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\n @Input() selectedItem: any;\n @Input() dropdownClass: string;\n @Input() closeOnSelect = true;\n\n @Input() set textView(val: boolean) {\n this.asTextView = val;\n }\n\n @Input() autofocus: boolean;\n @Input() isOpen: boolean;\n @Output() change: EventEmitter<any> = new EventEmitter<any>();\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\n @Output() closeUp: EventEmitter<any> = new EventEmitter<any>();\n @ViewChild(NgSelectComponent, { read: NgSelectComponent }) private readonly ngSelect: INgSelectComponentAccessor;\n @ContentChild('labelTemplate') labelTemplate: TemplateRef<any>;\n @ContentChild('optionTemplate') optionTemplate: TemplateRef<any>;\n @ContentChild('optionHeaderTemplate') optionHeaderTemplate: TemplateRef<any>;\n @ContentChild('optionFooterTemplate') optionFooterTemplate: TemplateRef<any>;\n @HostBinding('class.textView') asTextView = false;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n for (const attr of SELECT_HOST_ATTRIBUTES) {\n if (this.hasHostAttributes(attr)) {\n (this.getHostElement()).classList.add(attr);\n }\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any): void {\n this.selectedItem = value;\n this.onChange(this.selectedItem);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n\n if (fn && this.selectedItem) {\n this.onChange(this.selectedItem);\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n close(): void {\n this.ngSelect.close();\n }\n\n onDropdownOpen(): void {\n if (typeof this.dropdownClass === 'string') {\n setTimeout(() => {\n document.querySelector('.ng-dropdown-panel').classList.add(...this.dropdownClass.split(' '));\n }, 0);\n }\n }\n\n private getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hasHostAttributes(...attributes: string[]): boolean {\n return attributes.some(attribute => this.getHostElement().hasAttribute(attribute));\n }\n}\n","export class DrAvatarService {\n public static avatarColors = [\n '#0061FF',\n '#20A452',\n '#19194C',\n '#FF4E00',\n '#B14EF2',\n '#578AFF',\n '#F13FA4',\n '#8693A2',\n '#00867E',\n ];\n\n public static getAvatarColorNumber(index: number): number {\n return index % this.avatarColors.length;\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DrAvatarService } from './services/dr-avatar.service';\n\n@Component({\n selector: 'dr-avatar',\n templateUrl: 'dr-avatar.component.html',\n styleUrls: ['dr-avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrAvatarComponent {\n\n @Input() set users(users: any[] | any) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = DrAvatarService.getAvatarColorNumber(index);\n }\n });\n }\n }\n\n @Input() warning = false;\n @Input() showUnassigned = false;\n @Input() drAvatarTooltipPosition = 'bottom';\n @Input() drAvatarTooltipClass: string;\n @Input() drAvatarSize: string;\n @Input() drAvatarIsClickable = true;\n\n @Output() userClicked: EventEmitter<any> = new EventEmitter<any>();\n parsedUsers: any[] = [];\n\n constructor() {\n }\n\n getFirstUsers(): any[] {\n return this.parsedUsers.slice(0, 2);\n }\n\n getLastUsers(): any[] {\n if (this.parsedUsers.length > 2) {\n return this.parsedUsers.slice(2, this.parsedUsers.length - 1);\n }\n return [];\n }\n\n public getAvatarColor(user: { [field: string]: any, colorNumber?: number }): string {\n return DrAvatarService.avatarColors[user.colorNumber] || DrAvatarService.avatarColors[0];\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'drAvatar'\n})\nexport class DrAvatarPipe implements PipeTransform {\n\n transform(item: any, type: string = 'full'): string {\n if (type === 'initials') {\n const email = item.email ? item.email[0] : '';\n return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : email).toUpperCase();\n }\n\n return item.first_name && item.last_name ? (item.first_name + ' ' + item.last_name) : item.email;\n }\n}\n","import { animate, style, transition } from '@angular/animations';\nimport { DateTags } from './datePicker';\n\nexport const POPUP_POSITIONS = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 7\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8\n }\n};\n\nexport const POPUP_ANIMATION = [\n transition(':enter', [\n style({ opacity: 0 }),\n animate(150, style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate(150, style({ opacity: 0 })),\n ]),\n];\n\nexport const PRESET_TAGS_LIST: Array<{ key: string, label: string }> = [ \n {key: DateTags.TODAY, label: 'Today'},\n {key: DateTags.YESTERDAY, label: 'Yesterday'},\n {key: DateTags.THIS_MONTH, label: 'This month'},\n {key: DateTags.PREV_MONTH, label: 'Prev month'}\n];","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\ntype TooltipOptions = {\n withoutContainerStyles?: boolean;\n withoutArrow?: boolean;\n};\n\n@Component({\n selector: 'dr-tooltip',\n templateUrl: './dr-tooltip.component.html',\n styleUrls: ['./dr-tooltip.component.scss'],\n animations: [\n trigger('tooltip', POPUP_ANIMATION),\n ],\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() content;\n @Input() contentContext;\n @Input() position;\n @Input() options: TooltipOptions;\n @Input() class: string;\n @Input() theme: TooltipTheme;\n isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n }\n\n @HostListener('mouseenter')\n setMouseOn() {\n this.isMouseOn$.next(true);\n }\n\n @HostListener('mouseleave')\n unsetMouseOn() {\n this.isMouseOn$.next(false);\n }\n\n}\n","export enum TooltipTheme {\n LIGHT = 'light',\n DARK = 'dark',\n}\n","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\nconst getOverlayPosition = (position) => ({ ...POPUP_POSITIONS[position] });\n\n@Directive({\n selector: '[drTooltip]'\n})\nexport class DrTooltipDirective implements OnDestroy {\n\n @Input('drTooltip')\n content: any;\n @Input('drTooltipContext')\n contentContext = {};\n private _position = 'top';\n @Input('drTooltipPosition')\n public get position() {\n return this._position;\n }\n public set position(value) {\n this._position = value;\n this.overlayPosition = getOverlayPosition(value);\n }\n @Input('drTooltipClass')\n class = '';\n\n @Input('drTooltipTheme')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = getOverlayPosition(this.position);\n if (position?.offsetY) {\n position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;\n }\n if (position?.offsetX) {\n position.offsetX = position.offsetX < 0 ? -options.indent : options.indent;\n }\n this.overlayPosition = position;\n }\n this.options = options;\n }\n\n @Input('drTooltipShow')\n set showTooltip(value: boolean) {\n this.manualHandling = true;\n if (value) {\n this.renderTooltip();\n } else {\n this.destroyTooltip();\n }\n }\n\n private overlayRef: OverlayRef;\n private tooltipRef: ComponentRef<TooltipComponent>;\n\n private options;\n private manualHandling: boolean;\n private tooltipMouseOnSubscription: Subscription;\n private mouseleaveTimer: ReturnType<typeof setTimeout>;\n private overlayPosition = getOverlayPosition(this.position);\n\n constructor(private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef) {\n }\n\n ngOnDestroy(): void {\n if (!this.overlayRef) return null;\n\n if (this.overlayRef.hasAttached()) {\n this.hide();\n }\n // TODO: Temporary solution. line 162 doesn't stop function execution\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this.manualHandling || this.overlayRef) return;\n\n this.renderTooltip();\n }\n\n @HostListener('mouseleave')\n hide() {\n if (this.manualHandling || !this.tooltipRef || this.tooltipRef?.instance.isMouseOn$.getValue()) return;\n\n // if this timeout value is set - then preserve\n // tooltip from being hidden N milliseconds and not hiding it\n // in case mouse is pointed on tooltip\n if (this.drTooltipMousleaveTimeout) {\n\n if (this.mouseleaveTimer) {\n clearTimeout(this.mouseleaveTimer);\n }\n\n this.mouseleaveTimer = setTimeout(() => {\n if (this.tooltipRef && !this.tooltipRef?.instance.isMouseOn$.getValue()) {\n this.destroyTooltip();\n }\n }, this.drTooltipMousleaveTimeout);\n } else {\n this.destroyTooltip();\n }\n }\n\n private createOverlay(): void {\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([this.overlayPosition]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n if (!this.content) return;\n\n this.createOverlay();\n if (!this.overlayRef?.hasAttached()) {\n this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n this.tooltipRef.instance.content = this.content;\n this.tooltipRef.instance.contentContext = this.contentContext;\n this.tooltipRef.instance.position = this.position;\n this.tooltipRef.instance.options = this.options;\n this.tooltipRef.instance.class = this.class + ' ' + this.position;\n this.tooltipRef.instance.theme = this.theme;\n\n this.tooltipMouseOnSubscription = this.tooltipRef.instance.isMouseOn$.pipe(skip(1)).subscribe((isMouseOn: boolean) => {\n if (!isMouseOn) {\n this.destroyTooltip();\n }\n });\n }\n }\n\n private destroyTooltip(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n this.tooltipRef = null;\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle',\n templateUrl: './dr-toggle.component.html',\n styleUrls: ['./dr-toggle.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrToggleComponent implements ControlValueAccessor, AfterViewInit {\n _disabled = false;\n _elementClass: string[] = [];\n\n @Input()\n toggleTitle: any;\n @Input()\n toggleTitleRight: boolean;\n @Input()\n successType: boolean;\n @Input()\n checkedStatus: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue() {\n this.checkedStatus = !this.checkedStatus;\n this.onChange(this.checkedStatus);\n this.checkedChange.emit(this.checkedStatus);\n this.onTouched();\n }\n}\n","export enum ToggleButtonMode {\n DEFAULT = 'default',\n DOTTED = 'dotted',\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ToggleButtonMode } from './toggle-button-mode';\n\n@Component({\n selector: 'dr-toggle-button',\n templateUrl: './dr-toggle-button.component.html',\n styleUrls: ['./dr-toggle-button.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\n\nexport class DrToggleButtonComponent implements ControlValueAccessor {\n _disabled = false;\n\n @Input() items: string[] | any[];\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() bindHidden: string | null = null;\n @Input() mode: ToggleButtonMode = ToggleButtonMode.DEFAULT;\n @Input() selectedValue: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any) {\n this.selectedValue = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n const nextValue = item[this.bindValue] || item;\n if (this.selectedValue === nextValue) {\n return;\n }\n\n this.selectedValue = nextValue;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ISpinnerOptions } from '../models/spinnerOptions';\n\n@Component({\n selector: 'dr-spinner',\n templateUrl: './dr-spinner.component.html',\n styleUrls: ['./dr-spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrSpinnerComponent {\n\n private _options: ISpinnerOptions;\n\n public set options(data: ISpinnerOptions) {\n this._options ||= data;\n }\n\n public get options(): ISpinnerOptions {\n return this._options;\n }\n}\n","export enum SpinnerType {\n LOGO = 'logo',\n CIRCLE = 'circle',\n}\n\nexport enum SpinnerSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n BIG = 'big',\n GIANT = 'giant',\n}\n\nexport interface ISpinnerOptions extends DOMRect {\n spinnerType?: SpinnerType;\n spinnerSize?: SpinnerSize;\n noOverlay?: boolean;\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { SpinnerSize, SpinnerType } from '../models/spinnerOptions';\n\n@Directive({\n selector: '[drSpinner]'\n})\nexport class DrSpinnerDirective implements OnChanges, OnDestroy {\n\n @ViewChild(DrSpinnerComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n @Input() drSpinner;\n @Input() drSpinnerSize: SpinnerSize = SpinnerSize.MEDIUM;\n @Input() drSpinnerType: SpinnerType = SpinnerType.LOGO;\n @Input() drSpinnerNoOverlay = false;\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const show = changes.drSpinner.currentValue;\n const options = this.el.nativeElement.getBoundingClientRect();\n if (this.contentCmpRef && !show) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else if (this.drSpinner) {\n this.showSpinner({ ...options, spinnerSize: this.drSpinnerSize, spinnerType: this.drSpinnerType, noOverlay: this.drSpinnerNoOverlay });\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n const componentFactory: ComponentFactory<DrSpinnerComponent> = this.componentFactoryResolver.resolveComponentFactory(DrSpinnerComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.rdr.appendChild(this.el.nativeElement, this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n}\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\ntype ButtonType =\n 'primary' |\n 'split-primary-first' |\n 'split-primary-last' |\n 'secondary' |\n 'split-secondary-first' |\n 'split-secondary-last' |\n 'icon' |\n 'icon-primary' |\n 'icon-secondary' |\n 'ghost' |\n 'selection' |\n 'link' |\n 'danger' |\n 'help';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class DrButtonComponent {\n\n @Input()\n @HostBinding('class')\n theme: ButtonType = 'primary';\n\n @Input()\n @HostBinding('class.with-icon')\n icon: string;\n @Input() iconColor: string;\n @Input() iconSize = '24px';\n\n @Input()\n @HostBinding('class.with-icon-after')\n iconAfter: string;\n @Input() iconAfterColor: string;\n @Input() iconAfterSize = '24px';\n\n\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n\n @Input()\n @HostBinding('class.loading')\n isLoading = false;\n\n @Input()\n @HostBinding('class.active')\n isActive = false;\n\n @Output() click = new EventEmitter();\n\n constructor() {\n }\n\n public onClick($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.click.emit($event);\n }\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { DrPopoverComponent } from './dr-popover.component';\n\nexport class DrPopoverRef<T = any> {\n\n componentRef: ComponentRef<DrPopoverComponent<T>>;\n\n protected onClose$: Subject<any> = new Subject();\n // FIXME: this decision was made because of the incompatible rxjs version\n /**\n * Correct type is @type {Observable<any>}\n */\n readonly onClose: any = this.onClose$.asObservable();\n\n readonly onBackdropClick: Observable<MouseEvent>;\n\n constructor(private overlayRef: OverlayRef) {\n this.onBackdropClick = this.overlayRef.backdropClick();\n }\n\n close(res?: any): void {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.onClose$.next(res);\n this.onClose$.complete();\n }\n}\n","import { POPUP_POSITIONS } from './constants';\nimport { ElPosition } from './dropdown';\nimport { ElementRef } from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\n\nexport { DrPopoverRef } from '../dr-popover/dr-popover-ref';\n\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface IPopoverManualClosing {\n enabled: boolean;\n}\n\nexport interface IDrPopoverComponentModel {\n hostRef: ElementRef | HTMLElement | Point;\n position?: ElPosition;\n contentContext?: any;\n class?: string;\n overlayConfig?: DrPopoverConfig;\n manualClosing?: IPopoverManualClosing;\n targetElement?: HTMLElement;\n alignment?: DrPopoverAlignment;\n freezeToContainerSelector?: string;\n}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: boolean;\n noPadding?: boolean;\n}\n\nexport type DrPopoverAlignment = 'host';\n\nexport enum DrPopoverAlignmentDimension {\n Width = 'width',\n Height = 'height',\n}\n\nexport const DEFAULT_CONFIG: DrPopoverConfig = {\n hasBackdrop: false,\n closeOnBackdropClick: false,\n backdropClass: 'dr-popover-transparent-backdrop',\n};\n\nexport const DEFAULT_MODEL: Partial<IDrPopoverComponentModel> = {\n position: 'bottom',\n class: '',\n overlayConfig: {},\n manualClosing: { enabled: false },\n};\n\nexport const getAlignmentDimension = (position: string): DrPopoverAlignmentDimension => {\n if (!POPUP_POSITIONS[position]) return DrPopoverAlignmentDimension.Width;\n if (position?.includes('left') || position?.includes('right')) {\n return DrPopoverAlignmentDimension.Height;\n }\n return DrPopoverAlignmentDimension.Width;\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverAlignment, getAlignmentDimension, IPopoverManualClosing, Point } from '../models/popover';\n\n@Component({\n selector: 'dr-popover',\n templateUrl: './dr-popover.component.html',\n styleUrls: ['./dr-popover.component.scss'],\n animations: [\n trigger('popover', POPUP_ANIMATION),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrPopoverComponent<T> implements OnInit {\n\n @Output() popoverOpened: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() content: TemplateRef<any> | Type<T>;\n @Input() contentContext: any;\n @Input() class = '';\n @Input() hostRef: ElementRef<unknown> | HTMLElement | Point;\n @Input() manualClosing: IPopoverManualClosing;\n @Input() alignment: DrPopoverAlignment;\n @Input() position: string;\n @Input() freezeToContainerSelector: string;\n\n @ViewChild('popoverContainer', { read: ElementRef, static: true }) popoverContainer: ElementRef<HTMLElement>;\n isContentTemplate = false;\n componentRef: ComponentRef<T>;\n\n @HostBinding('style.width') width: string;\n @HostBinding('style.height') height: string;\n\n @HostBinding('@popover') public popover = true;\n\n @HostListener('document:mouseup', ['$event'])\n clickOutside(e): void {\n const isTargetHost = this.hostRef instanceof ElementRef && (this.hostRef.nativeElement === e.target || (this.hostRef.nativeElement as HTMLElement).contains(e.target));\n const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);\n const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');\n const isTargetInSelect = e.target.closest('ng-dropdown-panel');\n const isTargetInDatepickerContent = e.target.closest('mat-datepicker-content');\n\n if (!isTargetHost\n && !isTargetInPopover\n && !isTargetInDatepicker\n && !isTargetInSelect\n && !isTargetInDatepickerContent\n && !this.manualClosing.enabled\n ) {\n this.popoverRef.close();\n }\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.content as Type<T>));\n Object.assign(this.componentRef.instance, this.contentContext);\n this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);\n }\n if (this.alignment === 'host') {\n this[getAlignmentDimension(this.position)] = '100%';\n }\n\n this.popoverOpened.emit();\n this.repositionToNewContainerAndFreeze();\n this.cdr.detectChanges();\n }\n\n /**\n * Removing popover element from cdk-overlay and attach to provided container after element is positioned\n * is required for specific case of preserving popover at same position on document while scroll (not fixed)\n *\n * TODO: implement more neat, transparent and Angular way solution: i.e. create another service (or extend existiong one)\n * without attaching component to cdk Overlay and instead positioning it to element passed in directive input parameter\n */\n private repositionToNewContainerAndFreeze(): void {\n const newContainer = !!this.freezeToContainerSelector && document.querySelector(this.freezeToContainerSelector);\n if (newContainer) {\n\n // waiting until element is positioned on overlay\n setTimeout(() => {\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (!element.closest('.cdk-overlay-container')) return;\n\n const position = element.getBoundingClientRect();\n const newContainerPosition = newContainer.getBoundingClientRect();\n\n element.style.position = 'absolute';\n element.style.top = `${ newContainer.scrollTop + position.top - newContainerPosition.top }px`;\n element.style.left = `${ newContainerPosition.left + position.left }px`;\n\n newContainer.appendChild(element);\n });\n }\n }\n\n}\n","import { first } from 'rxjs/operators';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverComponent } from './dr-popover.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, StaticProvider, TemplateRef, Type } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport {\n DEFAULT_CONFIG,\n DEFAULT_MODEL,\n getAlignmentDimension,\n IDrPopoverComponentModel,\n Point\n} from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrPopoverService {\n\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private injector: Injector,\n ) {\n }\n\n open<T>(content: Type<T> | TemplateRef<HTMLElement>, popoverModel: IDrPopoverComponentModel): DrPopoverRef<T> {\n if (!content) return;\n\n const model = { ...DEFAULT_MODEL, ...popoverModel };\n\n const overlayRef = this.createOverlay(model);\n\n const popoverRef = new DrPopoverRef<T>(overlayRef);\n\n this.attachOverlayContainer(content, model, overlayRef, popoverRef);\n\n this.registerListeners(model, overlayRef, popoverRef);\n\n return popoverRef;\n }\n\n private attachOverlayContainer<T>(\n content: Type<T> | TemplateRef<HTMLElement>,\n { contentContext, position, class: elementClass, manualClosing, hostRef, alignment, freezeToContainerSelector}: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>\n ): void {\n const componentPortal = new ComponentPortal<DrPopoverComponent<T>>(DrPopoverComponent, null, this.createInjector(popoverRef));\n const contentRef = overlayRef.attach<DrPopoverComponent<T>>(componentPortal);\n\n popoverRef.componentRef = contentRef;\n\n contentRef.instance.content = content;\n contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };\n contentRef.instance.class = elementClass + ' ' + position;\n contentRef.instance.manualClosing = manualClosing;\n contentRef.instance.hostRef = hostRef;\n contentRef.instance.alignment = alignment;\n contentRef.instance.position = position;\n contentRef.instance.freezeToContainerSelector = freezeToContainerSelector;\n }\n\n private createOverlay(popoverModel: IDrPopoverComponentModel): OverlayRef {\n const overlayConfig = this.getOverlayConfig(popoverModel);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(popoverModel: IDrPopoverComponentModel): OverlayConfig {\n if (!POPUP_POSITIONS[popoverModel.position]) throw new Error(`DrPopover does not support the '${ popoverModel?.position }' position!`);\n\n const position = { ... POPUP_POSITIONS[popoverModel.position] };\n if (popoverModel.overlayConfig.noPadding) {\n position.offsetY = 0;\n position.offsetX = 0;\n }\n const config = { ...DEFAULT_CONFIG, ...popoverModel.overlayConfig || {} };\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([position]);\n\n const overlayConfig = new OverlayConfig({\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy,\n ...config,\n });\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];\n }\n\n return overlayConfig;\n }\n\n private createInjector<T>(popoverRef: DrPopoverRef<T>): Injector {\n const injectionTokens: StaticProvider[] = [\n { provide: DrPopoverRef, useValue: popoverRef },\n ];\n\n return Injector.create({ providers: injectionTokens, parent: this.injector });\n }\n\n private registerListeners<T>(popoverModel: IDrPopoverComponentModel, overlayRef: OverlayRef, popoverRef: DrPopoverRef<T>): void {\n const config = popoverModel.overlayConfig || {};\n const targetElement = popoverModel.targetElement;\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n if (config?.closeOnBackdropClick && config?.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => popoverRef.close());\n }\n\n if (targetElement) {\n targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });\n }\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(host => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));\n });\n resizeObserver.observe(hostElement);\n popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));\n }\n }\n\n private getHostElement<T>(hostRef: Point | HTMLElement | ElementRef<T>): HTMLElement {\n if (!hostRef || (<Point>hostRef).x) return null;\n if ((<ElementRef>hostRef).nativeElement) return (<ElementRef>hostRef).nativeElement;\n return <HTMLElement>hostRef;\n }\n\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { DrPopoverAlignment, IPopoverManualClosing } from '../models/popover';\n\n@Directive({\n selector: '[drPopover]'\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n\n @Input('drPopover') content: TemplateRef<any> | Type<T>;\n\n @Input('drPopoverContext') contentContext: any = {};\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: OverlayConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n @Input('drPopoverFreezeToContainerSelector') freezeToContainerSelector: string;\n\n // eslint-disable-next-line\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n @Output('drPopoverOpened') popoverOpened = new EventEmitter<void>();\n\n // eslint-disable-next-line\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n\n constructor(private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\n ) {\n }\n\n @HostListener('click')\n togglePopover(): void {\n if (this.disabled) return;\n\n if (this.popoverRef) {\n this.closePopover();\n } else {\n this.renderPopover();\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n }\n }\n\n closePopover(res?: any): void {\n if (this.popoverRef) {\n this.popoverRef.close(res);\n this.popoverRef = null;\n }\n }\n\n private renderPopover(): void {\n const popoverRef = this.popoverRef = this.drPopoverService.open(this.content, {\n hostRef: this.elementRef,\n overlayConfig: this.overlayConfig,\n class: this.class,\n manualClosing: this.manualClosing,\n position: this.position,\n contentContext: this.contentContext,\n alignment: this.alignment,\n freezeToContainerSelector: this.freezeToContainerSelector\n });\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n });\n\n popoverRef.componentRef.instance.popoverOpened.pipe(first()).subscribe(() => {\n this.popoverOpened.emit();\n });\n }\n\n ngOnDestroy(): void {\n this.closePopover();\n }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { IDropdownAction } from '../models/dropdown';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DrDropdownService {\n\n actionItem = new Subject<IDropdownAction<unknown>>();\n protected menuInView: ComponentRef<DrDropdownComponent>;\n\n constructor() {\n }\n\n set addMenu(item: ComponentRef<DrDropdownComponent>) {\n this.menuInView = item;\n }\n\n destroy() {\n if (this.menuInView) {\n this.menuInView.destroy();\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\nimport { ElPosition, IDropdown, IDropdownActionIcon, IDropdownCoordinate, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Component({\n selector: 'dr-dropdown',\n templateUrl: './dr-dropdown.component.html',\n styleUrls: ['./dr-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrDropdownComponent {\n\n @ViewChild('listMenu') viewMenu: HTMLElement;\n @ViewChild('menuContainer') menuContainer: HTMLElement;\n option: any;\n position: ElPosition | IDropdownCoordinate = 'left';\n drDropdownInHover: boolean;\n list: IDropdownItem<unknown>[];\n containerClass: string;\n public wasHovered = false;\n private firstInit: boolean;\n\n constructor(protected menuService: DrDropdownService, private cdr: ChangeDetectorRef) {\n }\n\n @Input() set options(data: IDropdown<IDropdownItem<any>>) {\n if (data) {\n this.option = data.option;\n this.position = data.position;\n this.drDropdownInHover = data.drDropdownInHover;\n this.containerClass = data.class;\n this.list = data.list || [];\n this.list.forEach(item => {\n if (item.children?.length) {\n item.childOptions = {\n list: item.children,\n class: item?.childOptions?.class || '',\n position: 'child'\n };\n }\n });\n this.cdr.markForCheck();\n }\n }\n\n onMouseEnter(): void {\n this.wasHovered = true;\n }\n\n onMouseLeave(): void {\n if (this.drDropdownInHover) this.menuService.destroy();\n }\n\n onClickedOutside(): void {\n if (this.firstInit) {\n this.menuService.destroy();\n } else {\n this.firstInit = true;\n }\n }\n\n hide(): void {\n this.menuService.destroy();\n }\n\n disabled(act: IDropdownItem<unknown> | IDropdownActionIcon<any>): boolean {\n if (!act.disabled) {\n return false;\n }\n if (typeof act.disabled === 'boolean') {\n return act.disabled;\n } else {\n return act.disabled(act.data);\n }\n }\n\n selected(act: IDropdownItem<unknown>): boolean {\n if (!act.selected) {\n return false;\n }\n if (typeof act.selected === 'boolean') {\n return act.selected;\n } else {\n return act.selected(act.data);\n }\n }\n\n tooltipToShow(act: IDropdownItem<unknown>): string {\n if (act.toolTipIfDisabled && !this.disabled(act)) return '';\n return act.customTooltip ? act.customTooltip(act.data) : act.toolTip;\n }\n\n tooltipPosition(widthMoreRight: boolean) {\n return widthMoreRight ? 'right' : 'left';\n }\n\n action(act: IDropdownItem<any>) {\n if (!this.disabled(act)) {\n if (act.action) {\n act.action(act.data);\n } else {\n this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });\n }\n this.hide();\n }\n }\n\n onActionIconClick($event, actionIcon: IDropdownActionIcon<any>, data: any) {\n $event.stopPropagation();\n if (!this.disabled(actionIcon)) {\n actionIcon.action(data);\n this.hide();\n }\n }\n}\n\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ElPosition, IDropdown, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Directive({\n selector: '[drDropdown]'\n})\nexport class DrDropdownDirective<T> implements OnDestroy {\n\n @Input() position: ElPosition = 'left';\n @Input() drDropdown: IDropdownItem<T>[];\n @Input() drDropdownClass: string;\n @Input() drDropdownInHover: boolean;\n @ViewChild(DrDropdownComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n\n private readonly mouseleaveTimeout = 200;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private service: DrDropdownService,\n private el: ElementRef,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n @HostListener('mouseenter') elementHover() {\n if (!this.drDropdownInHover) return;\n this.openDropdown();\n }\n\n @HostListener('click') elementClick() {\n this.openDropdown();\n }\n\n @HostListener('mouseleave') leaveDropdownTriggerElement() {\n if (this.drDropdownInHover) {\n setTimeout(_ => {\n if (this.contentCmpRef && !this.contentCmpRef.instance.wasHovered) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n }\n }, this.mouseleaveTimeout);\n }\n }\n\n @HostListener('document:mouseup', ['$event']) documentClick(e) {\n this.closeDropdown(e);\n }\n\n private openDropdown(): void {\n const option = this.el.nativeElement.getBoundingClientRect();\n this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());\n if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else {\n this.service.destroy();\n this.showMenu({\n option,\n drDropdownInHover: this.drDropdownInHover,\n position: this.position,\n list: this.drDropdown,\n class: this.drDropdownClass\n });\n }\n }\n\n private closeDropdown(e): void {\n\n if (!this.contentCmpRef) {\n return;\n }\n\n const clickTarget = e.target;\n const triggerElement = this.el.nativeElement;\n const dropdownElement = this.contentCmpRef.location.nativeElement;\n const isClickTriggerElement = triggerElement.contains(clickTarget) || triggerElement === clickTarget;\n const isClickDropdownContents = dropdownElement.contains(clickTarget);\n\n if (!isClickTriggerElement && !isClickDropdownContents) {\n const elems = this._document.querySelectorAll('dr-dropdown');\n setTimeout(() => elems.forEach(item => item.remove()), 100);\n }\n }\n\n private showMenu(options: IDropdown<T>) {\n const componentFactory: ComponentFactory<DrDropdownComponent> = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.service.addMenu = this.contentCmpRef;\n this._document.querySelector('dr-layout').appendChild(this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ElPosition, IDropdownCoordinate } from '../models/dropdown';\n\n@Directive({\n selector: '[drDropdownPosition]',\n exportAs: 'dropdownPosition'\n})\nexport class DrDropdownPositionDirective implements OnInit {\n\n @Input() drDropdownPosition;\n @Input() position: ElPosition | IDropdownCoordinate = 'left';\n\n widthMoreRight: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n setTimeout(this.calculatePosition.bind(this), 1);\n }\n\n calculatePosition() {\n let xDifference = 0;\n let defaultDelta = 10;\n let defaultPadding = 0;\n const originalPosition = this.position;\n\n if (this.position === 'child') {\n defaultDelta = 0;\n defaultPadding = 10;\n xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;\n const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();\n\n this.position = {\n x: this.el.nativeElement.offsetWidth,\n y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,\n clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,\n clientY: parentRect.y\n };\n }\n\n if (typeof this.position === 'string') {\n this.renderer.setStyle(this.el.nativeElement, 'top',\n this.position === 'bottom' ?\n this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :\n this.drDropdownPosition.y + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left',\n this.position === 'right' ?\n this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :\n this.drDropdownPosition.x + 'px');\n const menuHeight = this.el.nativeElement.offsetHeight;\n const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;\n const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;\n const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;\n\n const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);\n this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;\n\n if (heightMoreWindowBottom) {\n this.position = 'top';\n }\n if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {\n this.position = 'top-left';\n const translateX = `calc(-100% + ${ this.drDropdownPosition.width }px)`;\n const translateY = 'calc(-100% - 8px)';\n this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(${ translateX }, ${ translateY })`);\n }\n if (heightMoreWindowTop && heightMoreWindowBottom) {\n this.position = 'left-center';\n }\n if (this.position === 'bottom-left') {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'transform',\n `translate(calc(-100% + ${ this.drDropdownPosition.width }px), ${ this.drDropdownPosition.height + 8 }px)`\n );\n }\n const className = this.position === 'top' ? 'content-top'\n : this.position === 'top-left' ? 'content-top-left'\n : this.position === 'bottom' ? 'content-bottom'\n : this.position === 'bottom-left' ? 'content-bottom-left'\n : this.position === 'left' ? 'content-left'\n : this.position === 'left-center' ? 'content-left-center'\n : this.position === 'right' ? 'content-right'\n : this.position === 'bottom-right' ? 'content-bottom-right' : '';\n this.renderer.addClass(this.el.nativeElement, className);\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n } else {\n const defaultChildPadding = 3;\n const widthMoreWindowRight = originalPosition !== 'child'\n ? window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding)\n : window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;\n\n const widthMoreWindowBottom = originalPosition !== 'child'\n ? window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding)\n : window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;\n\n const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);\n this.widthMoreRight = !(widthMoreWindowRight < 0);\n\n let calculatedHorizantallyPos = widthMoreWindowRight < 0\n ? -this.position.x + -defaultChildPadding\n : this.position.x + defaultChildPadding + xDifference;\n\n if (spaceRightAmount <= 0 && originalPosition !== 'child') {\n calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;\n }\n\n const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;\n\n this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IDropdownItem } from '../models/dropdown';\n\n@Pipe({\n name: 'drDropdownItemShowPipe'\n})\nexport class DrDropdownItemShowPipe<T> implements PipeTransform {\n transform(arr: IDropdownItem<T>[]): IDropdownItem<T>[] {\n return arr.filter(item => item.show ? item.show(item.data) : true);\n }\n}\n","import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'dr-tab',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class DrTabComponent implements OnInit {\n @Input() label: string;\n @Input() icon: string;\n @Input() disabled: boolean;\n @Input() tooltip: string;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, ContentChildren, EventEmitter, Input, Output, QueryList, } from '@angular/core';\nimport { DrTabComponent } from './dr-tab.component';\n\n@Component({\n selector: 'dr-tabs',\n templateUrl: './dr-tabs.component.html',\n styleUrls: ['./dr-tabs.component.scss'],\n})\nexport class DrTabsComponent {\n @Input() theme: string = 'primary';\n @Input() selectedTab = 0;\n @Input() withRadio: boolean;\n @Input() withIcon: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Input() noTabLabelsPadding = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor() {\n }\n\n selectedIndexChange($event) {\n this.selectedTab = $event;\n this.selectedTabChange.emit($event);\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'dr-accordion',\n template: '<ng-content select=\"dr-accordion-item\"></ng-content>',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionComponent {\n static ngAcceptInputType_multi: any;\n openCloseItems = new Subject<boolean>();\n\n /**\n * Allow multiple items to be expanded at the same time.\n */\n @Input('multi')\n get multi(): boolean {\n return this.multiValue;\n }\n\n set multi(val: boolean) {\n this.multiValue = !!val;\n }\n\n private multiValue = false;\n\n /**\n * Opens all enabled accordion items.\n */\n openAll() {\n if (this.multi) {\n this.openCloseItems.next(false);\n }\n }\n\n /**\n * Closes all enabled accordion items.\n */\n closeAll() {\n this.openCloseItems.next(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrAccordionComponent } from './accordion.component';\n\n@Component({\n selector: 'dr-accordion-item',\n styleUrls: ['./accordion-item.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-header\"></ng-content>\n <ng-content select=\"dr-accordion-item-body\"></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {\n\n /**\n * Item is collapse (`true` by default)\n *\n * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\n }\n\n static ngAcceptInputType_collapsed: any;\n\n /**\n * Item is expanded (`false` by default)\n */\n @Input('expanded')\n @HostBinding('class.expanded')\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n *\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\n }\n\n static ngAcceptInputType_disabled: any;\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n */\n @Output() collapsedChange = new EventEmitter<boolean>();\n\n accordionItemInvalidate = new Subject<boolean>();\n\n private collapsedValue = true;\n private disabledValue = false;\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordion: DrAccordionComponent, private cd: ChangeDetectorRef) {\n }\n\n /**\n * Open/close the item\n */\n toggle() {\n if (!this.disabled) {\n // we need this temporary variable as `openCloseItems.next` will change current value we need to save\n const willSet = !this.collapsed;\n\n if (!this.accordion.multi) {\n this.accordion.openCloseItems.next(true);\n }\n this.collapsed = willSet;\n }\n }\n\n /**\n * Open the item.\n */\n open() {\n if (!this.disabled) {\n this.collapsed = false;\n }\n }\n\n /**\n * Collapse the item.\n */\n close() {\n if (!this.disabled) {\n this.collapsed = true;\n }\n }\n\n ngOnInit() {\n this.accordion.openCloseItems.pipe(takeUntil(this.destroy$)).subscribe(collapsed => {\n if (!this.disabled) {\n this.collapsed = collapsed;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.accordionItemInvalidate.next(true);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.accordionItemInvalidate.complete();\n }\n\n private invalidate() {\n this.accordionItemInvalidate.next(true);\n this.cd.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Host,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\n@Component({\n selector: 'dr-accordion-item-header',\n styleUrls: ['./accordion-item-header.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-title\"></ng-content>\n <ng-content select=\"dr-accordion-item-description\"></ng-content>\n <ng-content></ng-content>\n <i class=\"dr-icon-arrow-down expansion-indicator\"\n [@expansionIndicator]=\"state\"\n *ngIf=\"!disabled\">\n </i>\n `,\n animations: [\n trigger('expansionIndicator', [\n state(\n 'expanded',\n style({\n transform: 'rotate(180deg)',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @HostBinding('class.accordion-item-header-collapsed')\n get isCollapsed(): boolean {\n return this.accordionItem.collapsed;\n }\n\n @HostBinding('class.accordion-item-header-expanded')\n @HostBinding('attr.aria-expanded')\n get expanded(): boolean {\n return !this.accordionItem.collapsed;\n }\n\n @HostBinding('attr.tabindex')\n get tabbable(): string {\n return this.accordionItem.disabled ? '-1' : '0';\n }\n\n @HostBinding('attr.aria-disabled')\n get disabled(): boolean {\n return this.accordionItem.disabled;\n }\n\n @HostListener('click')\n @HostListener('keydown.space')\n @HostListener('keydown.enter')\n toggle() {\n this.accordionItem.toggle();\n }\n\n get state(): string {\n if (this.isCollapsed) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, OnDestroy, OnInit, } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\nconst accordionItemBodyTrigger = trigger('accordionItemBody', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n]);\n\n@Component({\n selector: 'dr-accordion-item-body',\n template: `\n <div [@accordionItemBody]=\"{ value: state }\">\n <div class=\"item-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./accordion-item-body.component.scss'],\n animations: [accordionItemBodyTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemBodyComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout',\n styleUrls: ['./dr-layout.component.scss'],\n templateUrl: './dr-layout.component.html',\n})\nexport class DrLayoutComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-header',\n template: `\n <nav>\n <ng-content></ng-content>\n </nav>\n `,\n})\nexport class DrLayoutHeaderComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-body',\n template: '<ng-content></ng-content>',\n})\nexport class DrLayoutBodyComponent {\n constructor() {\n }\n}\n","import { ChangeDetectorRef, Component, HostBinding, Input, Optional } from '@angular/core';\nimport { FormControl, FormGroupDirective } from '@angular/forms';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n})\nexport class DrErrorComponent {\n constructor(private cdr: ChangeDetectorRef, @Optional() private formGroupDirective: FormGroupDirective) {}\n\n public _control: FormControl;\n @Input() set control(value: FormControl) {\n if (value) {\n this._control = value;\n }\n }\n\n @Input() set controlName(value: string) {\n if (!value || typeof value !== 'string') return;\n\n if (!this.formGroupDirective) {\n throw new Error('You must provide a formGroupDirective to use this input');\n }\n\n this.control = this.formGroupDirective.control.get(value) as FormControl;\n }\n\n @Input() label = 'Field error';\n @Input() errorTooltipPosition = 'top';\n @Input() displayAsLabel = false;\n\n @Input() @HostBinding('class.no-icon') noIcon = false;\n\n get errorString() {\n if (this._control.hasError('required')) {\n return 'Field is required!';\n }\n\n return this._control.errors?.errorString || null;\n }\n\n get isWarning() {\n return this._control.errors?.isWarning;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n HostBinding,\n Inject,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp, SizeModal } from '../../interfaces/dialog-data';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-wrapper',\n templateUrl: './dialog-wrapper.component.html',\n styleUrls: ['./dialog-wrapper.component.scss'],\n})\nexport class DialogWrapperComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('content', { read: ViewContainerRef }) content: ViewContainerRef;\n\n @HostBinding('class') class: SizeModal = this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\n childComponent: any;\n isLoading: boolean;\n saving$ = new BehaviorSubject(false);\n destroy$: Subject<any> = new Subject();\n\n constructor(public dialogRef: MatDialogRef<DialogWrapperComponent>,\n private dialogService: DialogService,\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp) {\n }\n\n ngAfterViewInit(): Error {\n if (!this.dialogData.child) {\n return new Error('Expected componentTypeChild');\n }\n const componentFactory: ComponentFactory<any> = this.componentFactoryResolver.resolveComponentFactory(this.dialogData.child);\n this.childComponent = this.content.createComponent(componentFactory).instance;\n this.childComponent.closeDialog = this.closeDialog.bind(this);\n this.childComponent.onAcceptDialog = this.onAcceptDialog.bind(this);\n\n // pass data to component child\n if (this.dialogData.childData) {\n _.assign(this.childComponent, this.dialogData.childData);\n }\n // call component child init func - looks like double init\n // if (this.childComponent.ngOnInit) {\n // this.childComponent.ngOnInit();\n // }\n this.cdr.detectChanges();\n }\n\n closeDialog(data?: any) {\n this.dialogRef.close(data || false);\n }\n\n enableAcceptButton() {\n this.dialogData.acceptButton.isDisabled = false;\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n onAcceptDialog(data?: any) {\n if (!this.childComponent) {\n this.dialogRef.close(data || true);\n return;\n }\n const funcName = this.dialogData.acceptButton.functions;\n if (this.childComponent[funcName]) this.childComponent[funcName]();\n const loadFuncName = this.dialogData.acceptButton.loading;\n if (this.childComponent[loadFuncName]) this.isLoading = this.childComponent[loadFuncName]();\n\n if (this.dialogData.confirmFn) {\n this.saving$.next(true);\n this.dialogData.confirmFn().pipe(takeUntil(this.destroy$), catchError(error => this.dialogService.throwErr(error, this.saving$))).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(data || true);\n });\n }\n\n if (this.childComponent && !this.childComponent[funcName]) {\n this.dialogRef.close(data || true);\n return;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { MatDialogConfig } from '@angular/material/dialog';\n\ntype DialogConfig = Omit<MatDialogConfig, 'data'>;\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> extends DialogConfig {\n data: {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n subtitle?: string;\n content?: any;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n child?: ComponentType<T>;\n childData?: Partial<T>;\n theme?: {\n themeSize?: SizeModal;\n type?: 'successful';\n contentNoPadding?: boolean;\n isConfirmation?: boolean;\n noThemeSizeClass?: boolean;\n };\n confirmFn?: any;\n fields?: ModalFormField[];\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n };\n}\n\n// Data Obj for openConfirmDialog()\nexport interface ConfirmDialogData {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n content?: string;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n hideCloseBtn?: boolean;\n confirmFn?: (response?: any) => Observable<any>;\n fields?: ModalFormField[];\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n theme?: {\n themeSize?: SizeModal;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\nexport interface FooterTemplateData {\n label: string;\n icon?: string;\n action: (objToSave?: any) => any;\n}\n\nexport interface ModalFormField {\n name: string;\n type: TDialogFieldType;\n label?: string;\n isLabelFullWidth?: boolean;\n items?: any[];\n items$?: Observable<any[]> | Observable<any>;\n default?: any;\n placeholder?: string;\n bindLabel?: string;\n bindValue?: string;\n validators?: any[];\n datePickerFormat?: TimeframeOption;\n formGroupClass?: string;\n}\n\nexport type SizeModal =\n | 'small-modal'\n | 'medium-small-modal'\n | 'medium-modal'\n | 'medium-modal-max-height'\n | 'medium-large-modal'\n | 'large-modal'\n | 'xl-modal'\n | 'xl-custom-modal';\n\nexport type DataProp<T = any> = DialogData<T>['data'];\n\nexport type DialogTheme = DataProp['theme'];\n\nexport type DialogFooterButton = {\n label?: string;\n loadingLabel?: string;\n functions?: any;\n isDisabled?: boolean;\n loading?: any;\n theme?: any;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n MEDIUM = 'medium-modal',\n MEDIUM_SMALL = 'medium-small-modal',\n MEDIUM_MAX_HEIGHT = 'medium-modal-max-height',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-modal',\n}\n\nexport enum DIALOG_BUTTON_LABEL {\n SAVE = 'Save',\n CANCEL = 'Cancel',\n CLOSE = 'Close',\n}\n\nexport enum DIALOG_FIELD_TYPE {\n INPUT = 'input',\n SELECT = 'select',\n DATE_PICKER = 'date_picker',\n CHECKBOX = 'checkbox',\n}\n\nexport type TDialogFieldType = DIALOG_FIELD_TYPE;\n","import { Component, HostBinding, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp, DIALOG_FIELD_TYPE } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject, throwError } from 'rxjs';\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-modal-wrapper',\n templateUrl: './dialog-modal-wrapper.component.html',\n styleUrls: ['./dialog-modal-wrapper.component.scss'],\n\n})\nexport class DialogModalWrapperComponent implements OnInit, OnDestroy {\n readonly dialogFieldType = DIALOG_FIELD_TYPE;\n\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n destroy$: Subject<any> = new Subject();\n fieldsItemsLoading: Record<string, BehaviorSubject<boolean>> = {};\n\n @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n\n constructor(\n public dialogRef: MatDialogRef<DialogModalWrapperComponent>,\n private dialogService: DialogService,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {\n }\n\n ngOnInit(): void {\n if (!this.dialogData.fields) this.dialogData.fields = [];\n\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\n if (currentValue.items$) {\n this.fieldsItemsLoading[currentValue.name] = new BehaviorSubject<boolean>(true);\n currentValue.items$ = (currentValue.items$ as any).pipe(\n catchError((err) => {\n this.fieldsItemsLoading[currentValue.name].next(false);\n return throwError(() => err);\n }),\n tap(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n finalize(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n );\n }\n\n const currentFormControl = {};\n currentFormControl[currentValue.name] = new FormControl(currentValue.default || null, currentValue.validators || []);\n return Object.assign(accumulator, currentFormControl);\n }, {})\n );\n }\n\n onAccept() {\n if (!this.dialogData.confirmFn) return this.dialogRef.close(this.form.value || true);\n\n this.isLoading = true;\n this.saving$.next(true);\n this.dialogData.confirmFn(this.form.value).pipe(\n finalize(() => {\n this.isLoading = false\n this.saving$.next(false);\n }),\n takeUntil(this.destroy$),\n catchError((err) => {\n this.showServerErrorMessage = true;\n this.isLoading = false;\n return this.dialogService.throwErr(err, this.saving$);\n })\n ).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n footerAction(): void {\n this.dialogData.footerTemplateData.action(this.form.value);\n }\n\n closeDialog() {\n this.dialogRef.close(false);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ConfirmDialogData, DataProp, DialogData, DialogTheme } from '../interfaces/dialog-data';\nimport { DialogWrapperComponent } from '../components/dialog-wrapper/dialog-wrapper.component';\nimport { DialogModalWrapperComponent } from '../components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst DEFAULT_PANE_CLASS_NAME = 'wrapper-dialog';\n\nconst DEFAULT_CONFIRM_THEME: DialogTheme = { themeSize: 'small-modal' };\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n private wrapperComponent: MatDialogRef<any>;\n\n constructor(\n private dialog: MatDialog,\n ) {\n }\n\n /**\n * Function to open modal with custom form\n */\n openDialogWrapper<T, D = any, R = any>(\n componentTypeChild: ComponentType<T>,\n dialogData: DialogData<T>,\n componentTypeWrapper?: ComponentType<D>,\n ) {\n if (!componentTypeWrapper) componentTypeWrapper = (DialogWrapperComponent as any);\n\n dialogData.data.child = componentTypeChild;\n\n if (dialogData.panelClass instanceof Array) {\n dialogData.panelClass.push(DEFAULT_PANE_CLASS_NAME);\n } else {\n dialogData.panelClass = [dialogData.panelClass || '', DEFAULT_PANE_CLASS_NAME];\n }\n\n this.wrapperComponent = this.openDialog<D, R, T>(componentTypeWrapper, dialogData);\n return this.wrapperComponent;\n }\n\n /**\n * Function to open confirmation modal\n */\n openConfirmDialog<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n dialogData.data.theme.isConfirmation = true;\n return this.openDialog<DialogWrapperComponent, R, ConfirmDialogData>(DialogWrapperComponent, dialogData);\n }\n\n /**\n * Function to open confirmation modal with inputs\n */\n openConfirmDialogModal<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogModalWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n return this.openDialog<DialogModalWrapperComponent, R, ConfirmDialogData>(DialogModalWrapperComponent, dialogData);\n }\n\n close(params?: any): void {\n this.wrapperComponent.close(params);\n }\n\n enableAcceptButton(): void {\n this.wrapperComponent.componentInstance.enableAcceptButton();\n }\n\n changeDialogThemeSize(theme: string): void {\n this.wrapperComponent.componentInstance.class = theme;\n }\n\n private openDialog<WrapperType, ReturnType = any, D = any>(componentType: ComponentType<WrapperType>, dialogData: DialogData<D>): MatDialogRef<WrapperType, ReturnType> {\n return this.dialog.open<WrapperType, DataProp<D>, ReturnType>(componentType, dialogData);\n }\n\n throwErr(err: Error, load?: Subject<any> | BehaviorSubject<any>): Observable<any> {\n if (load) {\n load.next(false);\n }\n throw err;\n }\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-details-list',\n templateUrl: './dr-details-list.component.html',\n styleUrls: ['./dr-details-list.component.scss'],\n animations: [\n trigger('expansionIndicatorList', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ]\n})\n\nexport class DrDetailsListComponent implements OnDestroy {\n\n private destroy$ = new Subject<void>();\n public list: string[] = [];\n\n @Input() title = 'Show details';\n @Input() set items(val: string[] | Observable<string[]>) {\n if (!val) {\n return;\n }\n\n if (Array.isArray(val)) {\n this.list = val;\n } else {\n val.pipe(takeUntil(this.destroy$)).subscribe((res: string[]) => {\n this.list = res;\n });\n }\n };\n @Input() collapse = true;\n\n get state(): string {\n if (this.collapse) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor() {}\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { IFeedback } from \"./feedback\";\n\nexport const IMAGE_TYPES = ['image/png', 'image/jpeg', 'image/gif'];\n\nexport enum CHAT_MESSAGE_TYPE {\n TEXT = 'text',\n RICH_TEXT = 'rich-text',\n IMAGE = 'image',\n DOWNLOAD_FILE = 'download-file',\n MAILTO = 'mailto',\n EMBED = 'embed',\n INPUT = 'input',\n CODE = 'code',\n}\n\nexport enum ChatRole {\n USER = 'user',\n ASSISTANT = 'assistant',\n}\n\nexport interface IChatMessageRef {\n id: string\n seq: number\n}\n\ninterface IChatNewMessage {\n kind: CHAT_MESSAGE_TYPE\n role: ChatRole\n body: string\n}\n\nexport interface IChatMessageBase extends IChatMessageRef {\n kind: string | CHAT_MESSAGE_TYPE;\n reply: boolean;\n role: ChatRole;\n avatarUrl?: string;\n user?: any;\n subjectId?: string;\n}\n\nexport interface IChatTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.TEXT;\n text?: string;\n}\n\nexport interface IChatImageMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.IMAGE;\n url?: string;\n label?: string;\n}\nexport interface IChatDownloadFileMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.DOWNLOAD_FILE;\n url?: string;\n label?: string;\n}\n\nexport type IChatMessage = IChatMessageBase & IChatTextMessage & IChatImageMessage & IChatDownloadFileMessage;\n\n\nexport interface IChatMessageFileIconPreview {\n url: string;\n icon: string;\n}\n\nexport interface IChatMessageFileImagePreview {\n url: string;\n type: string;\n}\n\nexport type IChatMessageFile = IChatMessageFileIconPreview | IChatMessageFileImagePreview;\n\nexport class ChatMessage implements IChatMessageBase, IChatTextMessage, IChatImageMessage,\n IChatDownloadFileMessage {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n role: ChatRole;\n reply: boolean;\n text?: string;\n body?: any;\n url?: string;\n label?: string;\n parameters?: any;\n data?: any;\n avatarUrl?: string;\n user?: any;\n feedback?: IFeedback;\n subjectId?: string;\n\n constructor(obj: any) {\n this.id = obj?.id;\n this.subjectId = obj?.subjectId;\n this.feedback = obj?.feedback;\n this.kind = obj?.kind;\n this.seq = obj?.seq;\n this.role = obj?.role;\n this.reply = obj?.role !== ChatRole.USER;\n this.text = obj?.text || obj.body;\n this.url = obj?.url;\n this.label = obj?.label;\n this.body = obj?.body;\n this.parameters = obj?.parameters;\n this.avatarUrl = obj?.avatarUrl ?\n obj.avatarUrl :\n !obj?.role || obj?.role === ChatRole.ASSISTANT ? (document as any).staticFunc('/genius-ai.svg') : '';\n\n this.user = obj?.user;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IMAGE_TYPES } from '../../models/chat';\n\n@Component({\n selector: 'dr-chat-form',\n templateUrl: 'chat-form.component.html',\n styleUrls: ['./chat-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatFormComponent {\n\n _textareaInitialHeight = true;\n inputFocus = false;\n inputHover = false;\n\n droppedFiles: any[] = [];\n\n /**\n * Predefined message text\n *\n * @type {string}\n */\n @Input() message = '';\n\n /**\n * Message placeholder text\n *\n * @type {string}\n */\n @Input() messagePlaceholder = 'Type a message';\n\n /**\n * Show send button\n *\n * @type {boolean}\n */\n @Input() dropFiles = false;\n\n /**\n * File drop placeholder text\n *\n * @type {string}\n */\n @Input() dropFilePlaceholder = 'Drop file to send';\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n /**\n *\n * @type {EventEmitter<{ message: string, files: File[] }>}\n */\n @Output() send = new EventEmitter<{ message: string; files: File[] }>();\n @Output() abort = new EventEmitter<any>();\n\n /**\n * Emits when message input value has been changed\n *\n * @type {EventEmitter<string>}\n */\n\n @Output() inputChange = new EventEmitter<string>();\n\n @HostBinding('class.file-over') fileOver = false;\n\n constructor(protected cdr: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.dropFiles) {\n event.preventDefault();\n event.stopPropagation();\n\n this.fileOver = false;\n if (event.dataTransfer?.files) {\n for (const file of event.dataTransfer.files) {\n const res = file;\n\n if (IMAGE_TYPES.includes(file.type)) {\n const fr = new FileReader();\n fr.onload = (e: any) => {\n res.src = e.target.result;\n res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${ res.src })`);\n this.cdr.detectChanges();\n };\n\n fr.readAsDataURL(file);\n }\n this.droppedFiles.push(res);\n }\n }\n }\n }\n\n removeFile(file) {\n const index = this.droppedFiles.indexOf(file);\n if (index >= 0) {\n this.droppedFiles.splice(index, 1);\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = true;\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = false;\n }\n }\n\n sendMessage() {\n if (this.waitForReply) {\n return;\n }\n\n if (this.droppedFiles.length || String(this.message).trim().length) {\n this._textareaInitialHeight = true;\n this.send.emit({ message: this.message, files: this.droppedFiles });\n this.message = '';\n this.droppedFiles = [];\n this.cdr.markForCheck();\n }\n }\n\n abortMessage() {\n this.abort.emit();\n }\n\n onModelChange(value: string): void {\n this._textareaInitialHeight = false;\n this.inputChange.emit(value);\n }\n\n getTextAreaHeight(textAreaElement: HTMLTextAreaElement) {\n let height;\n if (this._textareaInitialHeight) {\n height = 50;\n } else {\n height = textAreaElement.scrollHeight + 2;\n }\n return `height: ${ height }px;`;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DrChatCustomMessageDirective } from './chat-custom-message.directive';\n\n/**\n * `DrCustomMessageService` is used to store instances of `DrChatCustomMessageDirective`s which\n * were provided in the chat component.\n */\n@Injectable()\nexport class DrChatCustomMessageService {\n protected readonly customMessages = new Map<string, DrChatCustomMessageDirective>();\n\n register(type: string, instance: DrChatCustomMessageDirective): void {\n this.customMessages.set(type, instance);\n }\n\n unregister(type: string): boolean {\n return this.customMessages.delete(type);\n }\n\n getInstance(type: string): DrChatCustomMessageDirective | undefined {\n return this.customMessages.get(type);\n }\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, HostBinding, Input, TemplateRef } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CHAT_MESSAGE_TYPE, IChatMessage } from '../../models/chat';\nimport { DrChatCustomMessageDirective } from './dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatCustomMessageService } from './dr-chat-message-custom/chat-custom-message.service';\n\n@Component({\n selector: 'dr-chat-message',\n templateUrl: 'chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n animations: [\n trigger('flyInOut', [\n state('in', style({ transform: 'translateX(0)' })),\n transition('void => *', [style({ transform: 'translateX(-100%)' }), animate(80)]),\n transition('* => void', [animate(80, style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageComponent {\n\n MESSAGE_TYPE = CHAT_MESSAGE_TYPE;\n\n @HostBinding('@flyInOut')\n get flyInOut() {\n return true;\n }\n\n @HostBinding('class.not-reply')\n get notReply() {\n return !this.reply;\n }\n\n /**\n * Determines if a message is a reply\n */\n @Input()\n @HostBinding('class.reply')\n get reply(): boolean {\n return this._reply;\n }\n\n set reply(value: boolean) {\n this._reply = !!value;\n }\n\n protected _reply = false;\n\n @Input() type: string;\n\n /**\n * Message\n *\n * @type {IChatMessage}\n */\n @Input() message: IChatMessage;\n\n /**\n * Data which will be set as custom message template context\n *\n * @type {any}\n */\n @Input() customMessageData: any;\n\n /**\n * User info for avatar\n */\n @Input() user: any;\n\n @ContentChild('drChatMessageActions') drChatMessageActions: TemplateRef<any>;\n\n public customMessage: boolean;\n\n constructor(private customMessageService: DrChatCustomMessageService) {\n }\n\n public getTemplate(): TemplateRef<any> {\n this.customMessage = true;\n const customMessage = this.getCustomMessage(this.type);\n return customMessage.templateRef;\n }\n\n public getTemplateContext(): { $implicit: any; isReply: boolean } {\n return { $implicit: this.customMessageData, isReply: this.reply };\n }\n\n protected getCustomMessage(type: string): DrChatCustomMessageDirective {\n const customMessageDirective = this.customMessageService.getInstance(type);\n\n if (!customMessageDirective) {\n throw new Error(\n `dr-chat: Can't find template for custom type '${ type }'. ` +\n `Make sure you provide it in the chat component with *drCustomMessage='${ type }'.`,\n );\n }\n\n return customMessageDirective;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnInit, Output,\n} from '@angular/core';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'dr-chat-suggestions',\n templateUrl: 'chat-suggestions.component.html',\n styleUrls: ['./chat-suggestions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatSuggestionsComponent implements OnInit {\n\n _nonHiddenValues: string[] = [];\n visibleValues: string[] = [];\n isSuggestedMenuOpen = false;\n @Input() values: string [] = [];\n @Input() fullScreen: boolean = false;\n @Input() buttonMode: boolean = false;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n\n get hiddenValues(): string[] {\n return JSON.parse(localStorage.getItem('aiChatSuggestions')) || [];\n }\n set hiddenValues(values) {\n localStorage.setItem('aiChatSuggestions', JSON.stringify(values));\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.filterValues();\n }\n\n onItemClick(item: string) {\n if (this.waitForReply) {\n return;\n }\n this.isSuggestedMenuOpen = false;\n this.suggestionSelect.emit(item);\n this.hiddenValues = [...this.hiddenValues, item];\n this.filterValues();\n }\n\n filterValues() {\n const hiddenValues = this.hiddenValues;\n this._nonHiddenValues = _.filter(this.values, val => !hiddenValues.includes(val));\n this.fillVisibleValues();\n }\n\n fillVisibleValues() {\n const maxItemsCount = this.fullScreen ? 6 : 4;\n const nonHiddenValues = _.clone(this._nonHiddenValues);\n this.visibleValues.length = 0;\n for (let i = 0; i < maxItemsCount; i++) {\n if (!nonHiddenValues.length) {\n break;\n }\n const randomIndex = Math.floor(Math.random() * nonHiddenValues.length);\n const item = nonHiddenValues.splice(randomIndex, 1)[0];\n this.visibleValues.push(item);\n }\n this.cdr.markForCheck();\n }\n\n clearHidden() {\n localStorage.setItem('aiChatSuggestions', null);\n this.filterValues();\n }\n\n toggleSuggestedMenu(): void {\n this.isSuggestedMenuOpen = !this.isSuggestedMenuOpen;\n if (this.isSuggestedMenuOpen) {\n this.fillVisibleValues();\n }\n this.cdr.markForCheck();\n }\n}\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ContentChild,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n OnDestroy,\n} from '@angular/core';\n\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatCustomMessageService } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\n\n@Component({\n selector: 'dr-chat',\n styleUrls: ['./chat.component.scss'],\n templateUrl: 'chat.component.html',\n providers: [DrChatCustomMessageService]\n})\nexport class DrChatComponent implements AfterViewInit, OnDestroy {\n\n private destroy$ = new Subject<void>();\n\n @Input() fullScreen: boolean;\n @Input() title: string;\n @Input() subtitle: string;\n @Input() showClearButton = true;\n @Input() noMessagesPlaceholder = 'No messages yet.';\n\n @Input() set contentUpdateSubject(value: Subject<any>) {\n if (value) {\n value.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateView();\n });\n }\n };\n\n /**\n * Scroll chat to the bottom of the list when a new message arrives\n */\n @Input()\n get scrollBottom(): boolean {\n return this._scrollBottom;\n }\n\n set scrollBottom(value: boolean) {\n this._scrollBottom = !!value;\n }\n\n protected _scrollBottom = true;\n\n @Input() suggestions: string[] = [];\n @Input() reopen: boolean;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @ViewChild('messagesContainer') messagesContainer: ElementRef;\n @ContentChildren(DrChatMessageComponent) messages: QueryList<DrChatMessageComponent>;\n @ContentChild(DrChatFormComponent) chatForm: DrChatFormComponent;\n @Output() clear: EventEmitter<any> = new EventEmitter<any>();\n @Output() close: EventEmitter<any> = new EventEmitter<any>();\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n @ViewChild(DrChatSuggestionsComponent) _chatSuggestions: DrChatSuggestionsComponent;\n\n public get messagesContainerWithScroll(): boolean {\n return this.messagesContainer && this.messagesContainer.nativeElement.scrollHeight > this.messagesContainer.nativeElement.offsetHeight;\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit() {\n this.messages.changes.subscribe(messages => {\n this.messages = messages;\n this.updateView();\n });\n\n this.updateView();\n }\n\n updateView() {\n if (this.scrollBottom) {\n this.scrollListBottom();\n }\n }\n\n scrollListBottom() {\n setTimeout(() => {\n if (this.messagesContainer) {\n const scrollToOptions: any = {\n top: this.messagesContainer.nativeElement.scrollHeight,\n };\n\n if (!this.reopen) {\n scrollToOptions.behavior = 'smooth';\n }\n\n this.messagesContainer.nativeElement.scrollTo(scrollToOptions);\n this.cdr.markForCheck();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onClearClick($event: any) {\n this.clear.emit($event);\n if (this._chatSuggestions) {\n this._chatSuggestions.clearHidden();\n }\n }\n\n hideSuggestions(): void {\n if (this._chatSuggestions.isSuggestedMenuOpen) {\n this._chatSuggestions.toggleSuggestedMenu();\n }\n }\n}\n","export enum DrAlertTheme {\n SUCCESS = 'success',\n ERROR = 'error',\n BOLD_ERROR = 'bold-error',\n WARNING = 'warning',\n INFO = 'info',\n};\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { DrAlertTheme } from './enums/dr-alert-theme.enum';\n\nconst ALERT_THEME_ICONS = {\n [DrAlertTheme.SUCCESS]: 'dr-icon-uploaded-success',\n [DrAlertTheme.BOLD_ERROR]: 'dr-icon-error',\n [DrAlertTheme.ERROR]: 'dr-icon-error',\n [DrAlertTheme.WARNING]: 'dr-icon-warning',\n [DrAlertTheme.INFO]: 'dr-icon-info',\n};\n\n@Component({\n selector: 'dr-alert',\n templateUrl: './dr-alert.component.html',\n styleUrls: ['./dr-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAlertComponent {\n @Input() theme: DrAlertTheme = DrAlertTheme.INFO;\n @Input() customIconClass: string;\n @Input() text: string;\n\n @HostBinding('class')\n get elementClass(): string {\n return `dr-alert dr-alert--${ this.theme }`;\n }\n\n public get themeIconClass(): string {\n return this.customIconClass || ALERT_THEME_ICONS[this.theme];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TreeviewSelection } from './treeview-item';\n\n@Injectable()\nexport abstract class TreeviewI18n {\n abstract getText(selection: TreeviewSelection): string;\n abstract getAllCheckboxText(): string;\n abstract getFilterPlaceholder(): string;\n abstract getFilterNoItemsFoundText(): string;\n abstract getTooltipCollapseExpandText(isCollapse: boolean): string;\n}\n\n@Injectable()\nexport class DefaultTreeviewI18n extends TreeviewI18n {\n getText(selection: TreeviewSelection): string {\n if (selection.uncheckedItems.length === 0) {\n if (selection.checkedItems.length > 0) {\n return this.getAllCheckboxText();\n } else {\n return '';\n }\n }\n\n switch (selection.checkedItems.length) {\n case 0:\n return 'Select options';\n case 1:\n return selection.checkedItems[0].text;\n default:\n return `${selection.checkedItems.length} options selected`;\n }\n }\n\n getAllCheckboxText(): string {\n return 'All';\n }\n\n getFilterPlaceholder(): string {\n return 'Filter';\n }\n\n getFilterNoItemsFoundText(): string {\n return 'No items found';\n }\n\n getTooltipCollapseExpandText(isCollapse: boolean): string {\n return isCollapse ? 'Expand' : 'Collapse';\n }\n}\n","import { concat, isNil, pull } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\nexport const TreeviewHelper = {\n findItem,\n findItemInList,\n findParent,\n removeItem,\n concatSelection\n};\n\nfunction findItem(root: TreeviewItem, value: any): TreeviewItem {\n if (isNil(root)) {\n return undefined;\n }\n\n if (root.value === value) {\n return root;\n }\n\n if (root.children) {\n for (const child of root.children) {\n const foundItem = findItem(child, value);\n if (foundItem) {\n return foundItem;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findItemInList(list: TreeviewItem[], value: any): TreeviewItem {\n if (isNil(list)) {\n return undefined;\n }\n\n for (const item of list) {\n const foundItem = findItem(item, value);\n if (foundItem) {\n return foundItem;\n }\n }\n\n return undefined;\n}\n\nfunction findParent(root: TreeviewItem, item: TreeviewItem): TreeviewItem {\n if (isNil(root) || isNil(root.children)) {\n return undefined;\n }\n\n for (const child of root.children) {\n if (child === item) {\n return root;\n } else {\n const parent = findParent(child, item);\n if (parent) {\n return parent;\n }\n }\n }\n\n return undefined;\n}\n\nfunction removeItem(root: TreeviewItem, item: TreeviewItem): boolean {\n const parent = findParent(root, item);\n if (parent) {\n pull(parent.children, item);\n if (parent.children.length === 0) {\n parent.children = undefined;\n } else {\n parent.correctChecked();\n }\n return true;\n }\n\n return false;\n}\n\nfunction concatSelection(items: TreeviewItem[], checked: TreeviewItem[], unchecked: TreeviewItem[]): { [k: string]: TreeviewItem[] } {\n let checkedItems = [...checked];\n let uncheckedItems = [...unchecked];\n for (const item of items) {\n const selection = item.getSelection();\n checkedItems = concat(checkedItems, selection.checkedItems);\n uncheckedItems = concat(uncheckedItems, selection.uncheckedItems);\n }\n return {\n checked: checkedItems,\n unchecked: uncheckedItems\n };\n}\n","import { isBoolean, isNil, isString } from 'lodash';\nimport { TreeviewHelper } from '../helpers/treeview-helper';\n\nexport interface TreeviewSelection {\n checkedItems: TreeviewItem[];\n uncheckedItems: TreeviewItem[];\n}\n\nexport interface TreeItem {\n text: string;\n value: any;\n disabled?: boolean;\n checked?: boolean;\n collapsed?: boolean;\n children?: TreeItem[];\n}\n\nexport class TreeviewItem {\n private internalDisabled = false;\n private internalChecked = true;\n private internalCollapsed = false;\n private internalChildren: TreeviewItem[];\n text: string;\n value: any;\n\n constructor(item: TreeItem, autoCorrectChecked = false) {\n if (isNil(item)) {\n throw new Error('Item must be defined');\n }\n if (isString(item.text)) {\n this.text = item.text;\n } else {\n throw new Error('A text of item must be string object');\n }\n this.value = item.value;\n if (isBoolean(item.checked)) {\n this.checked = item.checked;\n }\n if (isBoolean(item.collapsed)) {\n this.collapsed = item.collapsed;\n }\n if (isBoolean(item.disabled)) {\n this.disabled = item.disabled;\n }\n if (!isNil(item.children) && item.children.length > 0) {\n this.children = item.children.map(child => {\n if (this.disabled === true) {\n child.disabled = true;\n }\n\n return new TreeviewItem(child);\n });\n }\n\n if (autoCorrectChecked) {\n this.correctChecked();\n }\n }\n\n get checked(): boolean {\n return this.internalChecked;\n }\n\n set checked(value: boolean) {\n if (!this.internalDisabled) {\n if (this.internalChecked !== value) {\n this.internalChecked = value;\n }\n }\n }\n\n get indeterminate(): boolean {\n return this.checked === undefined;\n }\n\n setCheckedRecursive(value: boolean): void {\n if (!this.internalDisabled) {\n this.internalChecked = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.setCheckedRecursive(value));\n }\n }\n }\n\n get disabled(): boolean {\n return this.internalDisabled;\n }\n\n set disabled(value: boolean) {\n if (this.internalDisabled !== value) {\n this.internalDisabled = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.disabled = value);\n }\n }\n }\n\n get collapsed(): boolean {\n return this.internalCollapsed;\n }\n\n set collapsed(value: boolean) {\n if (this.internalCollapsed !== value) {\n this.internalCollapsed = value;\n }\n }\n\n setCollapsedRecursive(value: boolean): void {\n this.internalCollapsed = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.setCollapsedRecursive(value));\n }\n }\n\n get children(): TreeviewItem[] {\n return this.internalChildren;\n }\n\n set children(value: TreeviewItem[]) {\n if (this.internalChildren !== value) {\n if (!isNil(value) && value.length === 0) {\n throw new Error('Children must be not an empty array');\n }\n this.internalChildren = value;\n if (!isNil(this.internalChildren)) {\n let checked = null;\n this.internalChildren.forEach(child => {\n if (checked === null) {\n checked = child.checked;\n } else {\n if (child.checked !== checked) {\n checked = undefined;\n return;\n }\n }\n });\n this.internalChecked = checked;\n }\n }\n }\n\n getSelection(): TreeviewSelection {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (isNil(this.internalChildren)) {\n if (this.internalChecked) {\n checkedItems.push(this);\n } else {\n uncheckedItems.push(this);\n }\n } else {\n const selection = TreeviewHelper.concatSelection(this.internalChildren, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n return {\n checkedItems,\n uncheckedItems\n };\n }\n\n correctChecked(): void {\n this.internalChecked = this.getCorrectChecked();\n }\n\n private getCorrectChecked(): boolean {\n let checked: boolean = null;\n if (!isNil(this.internalChildren)) {\n for (const child of this.internalChildren) {\n child.internalChecked = child.getCorrectChecked();\n if (checked === null) {\n checked = child.internalChecked;\n } else if (checked !== child.internalChecked) {\n checked = undefined;\n break;\n }\n }\n } else {\n checked = this.checked;\n }\n\n return checked;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TreeviewConfig {\n hasAllCheckBox = true;\n hasFilter = false;\n hasCollapseExpand = false;\n decoupleChildFromParent = false;\n maxHeight = 500;\n\n get hasDivider(): boolean {\n return this.hasFilter || this.hasAllCheckBox || this.hasCollapseExpand;\n }\n\n public static create(fields?: {\n hasAllCheckBox?: boolean,\n hasFilter?: boolean,\n hasCollapseExpand?: boolean,\n decoupleChildFromParent?: boolean\n maxHeight?: number,\n }): TreeviewConfig {\n const config = new TreeviewConfig();\n Object.assign(config, fields);\n return config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\nimport { TreeviewComponent } from '../components/treeview/treeview.component';\n\n@Injectable()\nexport abstract class TreeviewEventParser {\n abstract getSelectedChange(component: TreeviewComponent): any[];\n}\n\n@Injectable()\nexport class DefaultTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const checkedItems = component.selection.checkedItems;\n if (!isNil(checkedItems)) {\n return checkedItems.map(item => item.value);\n }\n\n return [];\n }\n}\n\nexport interface DownlineTreeviewItem {\n item: TreeviewItem;\n parent: DownlineTreeviewItem;\n}\n\n@Injectable()\nexport class DownlineTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const items = component.items;\n if (!isNil(items)) {\n let result: DownlineTreeviewItem[] = [];\n items.forEach(item => {\n const links = this.getLinks(item, null);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n return [];\n }\n\n private getLinks(item: TreeviewItem, parent: DownlineTreeviewItem): DownlineTreeviewItem[] {\n if (!isNil(item.children)) {\n const link = {\n item,\n parent\n };\n let result: DownlineTreeviewItem[] = [];\n item.children.forEach(child => {\n const links = this.getLinks(child, link);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n if (item.checked) {\n return [{\n item,\n parent\n }];\n }\n\n return null;\n }\n}\n\n@Injectable()\nexport class OrderDownlineTreeviewEventParser extends TreeviewEventParser {\n private currentDownlines: DownlineTreeviewItem[] = [];\n private parser = new DownlineTreeviewEventParser();\n\n getSelectedChange(component: TreeviewComponent): any[] {\n const newDownlines: DownlineTreeviewItem[] = this.parser.getSelectedChange(component);\n if (this.currentDownlines.length === 0) {\n this.currentDownlines = newDownlines;\n } else {\n const intersectDownlines: DownlineTreeviewItem[] = [];\n this.currentDownlines.forEach(downline => {\n let foundIndex = -1;\n const length = newDownlines.length;\n for (let i = 0; i < length; i++) {\n if (downline.item.value === newDownlines[i].item.value) {\n foundIndex = i;\n break;\n }\n }\n\n if (foundIndex !== -1) {\n intersectDownlines.push(newDownlines[foundIndex]);\n newDownlines.splice(foundIndex, 1);\n }\n });\n\n this.currentDownlines = intersectDownlines.concat(newDownlines);\n }\n\n return this.currentDownlines;\n }\n}\n","import { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges, TemplateRef, OnInit } from '@angular/core';\nimport { isNil, includes } from 'lodash';\nimport { TreeviewI18n } from '../../models/treeview-i18n';\nimport { TreeviewItem, TreeviewSelection } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewHeaderTemplateContext } from '../../models/treeview-header-template-context';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\nimport { TreeviewHelper } from '../../helpers/treeview-helper';\nimport { TreeviewEventParser } from '../../helpers/treeview-event-parser';\n\nclass FilterTreeviewItem extends TreeviewItem {\n private readonly refItem: TreeviewItem;\n constructor(item: TreeviewItem) {\n super({\n text: item.text,\n value: item.value,\n disabled: item.disabled,\n checked: item.checked,\n collapsed: item.collapsed,\n children: item.children\n });\n this.refItem = item;\n }\n\n updateRefChecked(): void {\n this.children.forEach(child => {\n if (child instanceof FilterTreeviewItem) {\n child.updateRefChecked();\n }\n });\n\n let refChecked = this.checked;\n if (refChecked) {\n for (const refChild of this.refItem.children) {\n if (!refChild.checked) {\n refChecked = false;\n break;\n }\n }\n }\n this.refItem.checked = refChecked;\n }\n}\n\n@Component({\n selector: 'ngx-treeview',\n templateUrl: './treeview.component.html',\n styleUrls: ['./treeview.component.scss']\n})\nexport class TreeviewComponent implements OnChanges, OnInit {\n @Input() headerTemplate: TemplateRef<TreeviewHeaderTemplateContext>;\n @Input() itemTemplate: TemplateRef<TreeviewItemTemplateContext>;\n @Input() items: TreeviewItem[];\n @Input() config: TreeviewConfig;\n @Output() selectedChange = new EventEmitter<any[]>();\n @Output() filterChange = new EventEmitter<string>();\n headerTemplateContext: TreeviewHeaderTemplateContext;\n allItem: TreeviewItem;\n filterText = '';\n filterItems: TreeviewItem[];\n selection: TreeviewSelection;\n\n constructor(\n public i18n: TreeviewI18n,\n private defaultConfig: TreeviewConfig,\n private eventParser: TreeviewEventParser\n ) {\n this.config = this.defaultConfig;\n this.allItem = new TreeviewItem({ text: 'All', value: undefined });\n }\n\n get hasFilterItems(): boolean {\n return !isNil(this.filterItems) && this.filterItems.length > 0;\n }\n\n get maxHeight(): string {\n return `${this.config.maxHeight}`;\n }\n\n ngOnInit(): void {\n this.createHeaderTemplateContext();\n this.generateSelection();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const itemsSimpleChange = changes.items;\n if (!isNil(itemsSimpleChange) && !isNil(this.items)) {\n this.updateFilterItems();\n this.updateCollapsedOfAll();\n this.raiseSelectedChange();\n }\n }\n\n onAllCollapseExpand(): void {\n this.allItem.collapsed = !this.allItem.collapsed;\n this.filterItems.forEach(item => item.setCollapsedRecursive(this.allItem.collapsed));\n }\n\n onFilterTextChange(text: string): void {\n this.filterText = text;\n this.filterChange.emit(text);\n this.updateFilterItems();\n }\n\n onAllCheckedChange(): void {\n const checked = this.allItem.checked;\n this.filterItems.forEach(item => {\n item.setCheckedRecursive(checked);\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n });\n\n this.raiseSelectedChange();\n }\n\n onItemCheckedChange(item: TreeviewItem, checked: boolean): void {\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n\n this.updateCheckedOfAll();\n this.raiseSelectedChange();\n }\n\n raiseSelectedChange(): void {\n this.generateSelection();\n const values = this.eventParser.getSelectedChange(this);\n setTimeout(() => {\n this.selectedChange.emit(values);\n });\n }\n\n private createHeaderTemplateContext(): void {\n this.headerTemplateContext = {\n config: this.config,\n item: this.allItem,\n onCheckedChange: () => this.onAllCheckedChange(),\n onCollapseExpand: () => this.onAllCollapseExpand(),\n onFilterTextChange: (text) => this.onFilterTextChange(text)\n };\n }\n\n private generateSelection(): void {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (!isNil(this.items)) {\n const selection = TreeviewHelper.concatSelection(this.items, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n this.selection = {\n checkedItems,\n uncheckedItems\n };\n }\n\n private updateFilterItems(): void {\n if (this.filterText !== '') {\n const filterItems: TreeviewItem[] = [];\n const filterText = this.filterText.toLowerCase();\n this.items.forEach(item => {\n const newItem = this.filterItem(item, filterText);\n if (!isNil(newItem)) {\n filterItems.push(newItem);\n }\n });\n this.filterItems = filterItems;\n } else {\n this.filterItems = this.items;\n }\n\n this.updateCheckedOfAll();\n }\n\n private filterItem(item: TreeviewItem, filterText: string): TreeviewItem {\n const isMatch = includes(item.text.toLowerCase(), filterText);\n if (isMatch) {\n return item;\n } else {\n if (!isNil(item.children)) {\n const children: TreeviewItem[] = [];\n item.children.forEach(child => {\n const newChild = this.filterItem(child, filterText);\n if (!isNil(newChild)) {\n children.push(newChild);\n }\n });\n if (children.length > 0) {\n const newItem = new FilterTreeviewItem(item);\n newItem.collapsed = false;\n newItem.children = children;\n return newItem;\n }\n }\n }\n\n return undefined;\n }\n\n private updateCheckedOfAll(): void {\n let itemChecked: boolean = null;\n for (const filterItem of this.filterItems) {\n if (itemChecked === null) {\n itemChecked = filterItem.checked;\n } else if (itemChecked !== filterItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n this.allItem.checked = itemChecked;\n }\n\n private updateCollapsedOfAll(): void {\n let hasItemExpanded = false;\n for (const filterItem of this.filterItems) {\n if (!filterItem.collapsed) {\n hasItemExpanded = true;\n break;\n }\n }\n\n this.allItem.collapsed = !hasItemExpanded;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\n@Pipe({\n name: 'ngxTreeview'\n})\nexport class TreeviewPipe implements PipeTransform {\n transform(objects: any[], textField: string): TreeviewItem[] {\n if (isNil(objects)) {\n return undefined;\n }\n\n return objects.map(object => new TreeviewItem({ text: object[textField], value: object }));\n }\n}\n","export enum TooltipPosition {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n}\n","import { ITag, ITagForServer, TagsConfigSubType, TagTypes } from '../../models/serverTags';\n\nexport enum Scenario {\n ACTUALS = 'Actuals',\n FORECAST = 'Forecast',\n BUDGET = 'Budget',\n NONE = 'None',\n}\n\nexport interface IScenarioTag extends ITag {\n scenarioData: IScenario;\n}\n\nexport interface IScenarioCommon {\n toggle: boolean;\n name: string;\n description: string;\n acceptableSubTags?: TagsConfigSubType[];\n turnOffDateTags?: boolean;\n}\n\nexport interface IScenario extends Omit<IScenarioCommon, 'name' | 'description'> {\n name?: string;\n description?: string;\n hidden?: boolean;\n}\n\nexport interface IScenarioTagUi extends IScenarioCommon {\n selectedTagSubType: TagsConfigSubType;\n type: TagTypes;\n subTags?: IScenarioSubTag[];\n}\n\nexport interface IScenarioSubTag {\n name: string;\n subType: TagsConfigSubType;\n hidden?: boolean;\n}\n\nexport type TScenarioTagConfigData = { [key in TagsConfigSubType]?: IScenario };\nexport type TScenarioTagData<T> = { [key in Scenario]?: T };\nexport type TScenarioDataChanged = { scenario: Scenario; tags?: ITagForServer[]; tagsConfig?: ITag[] };\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[ngModelDebounceChange]'\n})\nexport class DrModelDebounceChangeDirective implements OnDestroy, OnInit {\n private subscription: Subscription;\n\n @Input() debounce = 200;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {\n }\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges.pipe(\n skip(1),\n debounceTime(this.debounce),\n distinctUntilChanged()\n ).subscribe(value => this.ngModelDebounceChange.emit(value));\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","export enum BadgeStatus {\n INFO = 'info',\n ERROR = 'error',\n WARNING = 'warning',\n SUCCESS = 'success',\n REGULAR = 'regular',\n PROGRESS = 'progress',\n DOTTED = 'dotted',\n}\n","export enum FeedbackSentiment {\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n};\n\nexport interface IFeedback {\n\tsubjectId: string;\n sentiment: FeedbackSentiment;\n\ttext?: string;\n tags?: Array<string>;\n}\n","import { TagsConfigSubType } from '../../models/serverTags';\nimport { Scenario, TScenarioTagConfigData, TScenarioTagData } from '../interfaces/scenario';\n\nexport const allDateTags = {\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.DAY]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.WEEK]: {\n name: 'Date',\n toggle: false,\n }\n};\n\nexport function getScenarioTagDataConfig(isMultipleDimension: boolean, isForecastMultipleDimension: boolean): TScenarioTagData<TScenarioTagConfigData> {\n return {\n [Scenario.ACTUALS]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.BUDGET]: {\n [TagsConfigSubType.BUDGET_CYCLE]: {\n toggle: true,\n acceptableSubTags: [TagsConfigSubType.YEAR],\n hidden: !isMultipleDimension,\n },\n [TagsConfigSubType.PLAN]: {\n toggle: false,\n turnOffDateTags: true,\n hidden: isMultipleDimension,\n },\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.FORECAST]: {\n [TagsConfigSubType.FORECAST_NEW]: {\n toggle: true,\n name: 'Date',\n },\n [TagsConfigSubType.FORECAST_CYCLE]: {\n toggle: true,\n acceptableSubTags: [TagsConfigSubType.FORECAST_NEW],\n hidden: !isForecastMultipleDimension,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.NONE]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: true,\n },\n },\n };\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../../models/serverTags';\nimport { IScenario, IScenarioSubTag, IScenarioTag, IScenarioTagUi, Scenario } from '../interfaces/scenario';\nimport {\n cloneDeep as _cloneDeep,\n filter as _filter,\n find as _find,\n forEach as _forEach,\n orderBy as _orderBy,\n indexOf as _indexOf,\n reduce as _reduce,\n some as _some,\n map as _map,\n includes as _includes,\n} from 'lodash';\nimport { getScenarioTagDataConfig } from '../consts/scenario-tags-config';\n\n@Injectable()\nexport class ScenarioService {\n private DEFAULT_FORECAST_DATE_TAG = 'Month';\n\n private wholeTagsConfig: ITag[];\n private currentTagsConfig: ITag[];\n private isMultipleDimension: boolean;\n private isForecastMultipleDimension: boolean;\n\n public get scenarios(): Scenario[] {\n return _orderBy(Object.values(Scenario), (scenario) => scenario === Scenario.NONE ? 1 : 0);\n }\n\n private get areExistingTagsConfig(): boolean {\n return !!this.currentTagsConfig;\n }\n\n public initScenarioTags(wholeTagsConfig: ITag[], currentTagsConfig: ITag[], isMultipleDimension: boolean, isForecastMultipleDimension: boolean): void {\n if (!wholeTagsConfig?.length) return;\n\n this.wholeTagsConfig = _cloneDeep(wholeTagsConfig);\n this.currentTagsConfig = currentTagsConfig;\n this.isMultipleDimension = isMultipleDimension;\n this.isForecastMultipleDimension = isForecastMultipleDimension;\n }\n\n public getTagsConfigByScenarioTags(scenarioTags: IScenarioTagUi[], tagsConfig: ITag[]): ITag[] {\n const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) =>\n _some(scenarioTags, (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type));\n\n return this.sortScenarioTags(scenarioTagsConfig);\n }\n\n public getScenarioTagsByScenario(scenario: Scenario) {\n const scenarioTagsConfig: IScenarioTag[] = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);\n const scenarioTagsUi: IScenarioTagUi[] = [];\n\n _forEach(scenarioTagsConfig, (scenarioTag: IScenarioTag) => {\n const isTagWithSubTags = scenarioTag.type === TagTypes.DATE;\n const tagWithSubTags = isTagWithSubTags && _find(scenarioTagsUi, { type: scenarioTag.type });\n\n const tag: IScenarioTagUi = tagWithSubTags || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateScenarioSubTags(tag, scenarioTag);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return;\n scenarioTagsUi.push(tag);\n });\n\n if (this.areExistingTagsConfig) {\n this.initExistingTagsConfig(scenario, scenarioTagsUi);\n }\n\n const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });\n if (isTagNotSupportingDates) {\n this.turnOffDateTag(scenarioTagsUi);\n }\n\n const tagWithSpecificDateTags: IScenarioTagUi = _find(\n scenarioTagsUi,\n (tag) => tag.toggle && !!tag.acceptableSubTags?.length,\n );\n if (tagWithSpecificDateTags) {\n this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);\n }\n\n return this.sortScenarioTags(scenarioTagsUi);\n }\n\n public tagNotSupportingDatesHandler<T extends IScenarioTagUi>(tag: T, tagNotSupportingDates: T, dateTag: T): void {\n if (!tagNotSupportingDates || !tag.toggle) return;\n\n if (tag.type === TagTypes.DATE) {\n tagNotSupportingDates.toggle = false;\n }\n\n if (tag === tagNotSupportingDates) {\n if (dateTag) {\n dateTag.toggle = false;\n }\n }\n }\n\n public tagAcceptableSubTagsHandler<T extends IScenarioTagUi>(tag: T, dateTag: T): void {\n if (!tag.acceptableSubTags?.length) return;\n\n if (!dateTag) return;\n\n dateTag.subTags = _map(dateTag.subTags, (subTag) => {\n subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);\n return subTag;\n });\n\n dateTag.selectedTagSubType = tag.acceptableSubTags[0];\n }\n\n public sortScenarioTags(scenarioTagsUi: any[]): any[] {\n return _orderBy(scenarioTagsUi, [(tag) => (tag.type === TagTypes.DATE ? 0 : 1), (tag) => tag.name === 'File Status']);\n }\n\n public static sortedSubTags(tag: IScenarioTagUi): IScenarioSubTag[] {\n const SUB_TAGS_ORDER = [\n TagsConfigSubType.DAY,\n TagsConfigSubType.WEEK,\n TagsConfigSubType.MONTH,\n TagsConfigSubType.QUARTER,\n TagsConfigSubType.YEAR,\n ];\n return _orderBy(tag.subTags, (subTag) => _indexOf(SUB_TAGS_ORDER, subTag.subType));\n }\n\n private initExistingTagsConfig(scenario: Scenario, scenarioTagsUi: IScenarioTagUi[]) {\n _forEach(this.currentTagsConfig, (tagConfig) => {\n const tagSubType = tagConfig?.options?.sub_type;\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);\n if (!scenarioTagDataConfig || !scenarioTagDataConfig[scenario] || !scenarioTagDataConfig[scenario][tagSubType]) {\n return;\n }\n\n const scenarioTagUi = tagConfig.type === TagTypes.DATE\n ? _find(scenarioTagsUi, { type: tagConfig.type })\n : _find(scenarioTagsUi, { selectedTagSubType: tagSubType });\n\n if (scenarioTagUi) {\n scenarioTagUi.toggle = true;\n scenarioTagUi.selectedTagSubType = tagSubType;\n }\n });\n }\n\n private prepareScenarioTag(\n scenarioTagsConfig: IScenarioTag[],\n scenarioTag: IScenarioTag,\n scenario: Scenario,\n isDateTag: boolean,\n ): IScenarioTagUi {\n const toggleStatus = isDateTag\n ? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)\n : scenarioTag.scenarioData.toggle;\n\n const selectedTagSubType = isDateTag\n ? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)\n : scenarioTag.options.sub_type;\n\n const tag: IScenarioTagUi = {\n toggle: this.areExistingTagsConfig ? false : toggleStatus,\n name: scenarioTag.scenarioData.name || scenarioTag.name,\n description: scenarioTag.scenarioData.description || scenarioTag.description,\n type: scenarioTag.type,\n selectedTagSubType,\n };\n\n if (scenarioTag.scenarioData.turnOffDateTags) {\n tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;\n }\n\n if (scenarioTag.scenarioData.acceptableSubTags) {\n tag.acceptableSubTags = scenarioTag.scenarioData.acceptableSubTags;\n }\n\n return tag;\n }\n\n private updateScenarioSubTags(tag: IScenarioTagUi, scenarioTag: IScenarioTag): void {\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n const tagSubType = scenarioTag.options.sub_type;\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,\n });\n }\n\n private turnOffDateTag(scenarioTags: IScenarioTagUi[]): void {\n const dateTag = _find(scenarioTags, { type: TagTypes.DATE });\n\n if (!dateTag) return;\n dateTag.toggle = false;\n }\n\n private hideNotAvailableTags(tagWithSpecificDateTags: IScenarioTagUi, scenarioTags: IScenarioTagUi[]): void {\n const subTags = _find(scenarioTags, { type: TagTypes.DATE })?.subTags;\n if (!subTags.length) return;\n\n _forEach(scenarioTags, (tag) => {\n if (!tag.acceptableSubTags?.length) return;\n if (tag !== tagWithSpecificDateTags) {\n tag.toggle = false;\n }\n });\n\n _forEach(subTags, (subTag) => {\n subTag.hidden = !tagWithSpecificDateTags.acceptableSubTags.includes(subTag.subType);\n });\n }\n\n private getScenarioSelectedDateTag(scenario: Scenario, dateTags: IScenarioTag[]): TagsConfigSubType {\n const monthSubType = _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.MONTH)?.options?.sub_type;\n\n const scenarioSelectedDateTag = {\n [Scenario.ACTUALS]: () => monthSubType,\n [Scenario.BUDGET]: () => _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.YEAR)?.options?.sub_type,\n [Scenario.FORECAST]: () => _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)?.options?.sub_type,\n [Scenario.NONE]: () => monthSubType,\n }\n\n if (!scenarioSelectedDateTag[scenario]) return;\n return scenarioSelectedDateTag[scenario]();\n }\n\n private getScenarioTagsConfig(scenario: Scenario, tagsConfig: ITag[]): IScenarioTag[] {\n return _reduce(\n tagsConfig,\n (acc: IScenarioTag[], tagConfig: ITag) => {\n const tagSubType = tagConfig?.options?.sub_type;\n\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);\n const scenarioTagConfig: IScenario =\n scenarioTagDataConfig && scenarioTagDataConfig[scenario] ? scenarioTagDataConfig[scenario][tagSubType] : null;\n if (!scenarioTagConfig || scenarioTagConfig.hidden) return acc;\n\n const clonedTagConfig = _cloneDeep(tagConfig);\n const scenarioTag: IScenarioTag = { ...clonedTagConfig, scenarioData: scenarioTagConfig };\n\n acc.push(scenarioTag);\n return acc;\n },\n [],\n );\n }\n}\n","import * as moment from 'moment';\nimport { DateTags, TimeframeOption } from '../models/datePicker';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\n *\n * @param format - date format string. Examples: MM/DD/YYYY, Q/YYYY\n */\n public static getTimeframeByDateFormat(format: string): TimeframeOption {\n const defaultFrame = TimeframeOption.DAY;\n\n if (!format) {\n return defaultFrame;\n }\n\n const lowerCaseFormat = format.toLowerCase();\n switch (true) {\n case lowerCaseFormat.includes('q'):\n return TimeframeOption.QUARTER;\n case lowerCaseFormat.includes('d'):\n return TimeframeOption.DAY;\n case lowerCaseFormat.includes('w'):\n return TimeframeOption.WEEK;\n case lowerCaseFormat.includes('m'):\n return TimeframeOption.MONTH;\n case lowerCaseFormat.includes('y'):\n return TimeframeOption.YEAR;\n default:\n return defaultFrame;\n }\n }\n\n public static getDateByTag(tag: string) :any {\n const todayDate = moment().utc().endOf('day');\n switch (tag) {\n case DateTags.TODAY:\n return todayDate;\n case DateTags.YESTERDAY:\n todayDate.subtract(1, 'days');\n return todayDate;\n case DateTags.THIS_MONTH:\n todayDate.endOf('month');\n return todayDate;\n case DateTags.PREV_MONTH:\n todayDate.subtract(1, 'months').endOf('month');\n return todayDate;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DateFromats, DateTags, IDatePickerFormatConfig, TimeframeOption, TTimeframeOption } from '../../../models/datePicker';\nimport { DrSharedUtils } from '../../../utils/dr-shared-utils';\nimport * as _ from 'lodash';\n\n// @ts-ignore\nconst moment = require('moment');\n\n@Injectable()\nexport class DrDatePickerService {\n isTimeframeSelectionEnabled = false;\n timeframe: TTimeframeOption = TimeframeOption.DAY;\n format$ = new BehaviorSubject<string>(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n updatedQuarter$ = new Subject<Moment>();\n updatedDateAndClose$ = new Subject<Moment>();\n datePickerInstance: MatDatepicker<any>;\n isUsingDateTagPresets: boolean;\n presetTag$ = new BehaviorSubject<string>('');\n onSameDaySelectedInCalendar$ = new Subject<Moment>();\n keepPresetTag = false;\n isValueUpdating = false;\n availableTimeframes = [\n TimeframeOption.DAY,\n TimeframeOption.WEEK,\n TimeframeOption.MONTH,\n TimeframeOption.QUARTER,\n TimeframeOption.YEAR\n ];\n\n public formatConfig: IDatePickerFormatConfig = {\n day: DateFromats.MAT_DEFAULT_DATE_FORMAT,\n month: DateFromats.MONTH_YEAR_FORMAT,\n year: DateFromats.YEAR_FORMAT,\n quarter: DateFromats.QUARTER_FORMAT,\n week: DateFromats.WEEK_FORMAT\n };\n public calendarInstance: MatCalendar<any>;\n\n public fiscalYearMonthsModifier = 0;\n\n getDisplayPrefix() {\n const formatCached = this.format$.getValue();\n switch (true) {\n case formatCached?.includes('Q'):\n return 'Q';\n case formatCached?.includes('W'):\n return 'W';\n default:\n return '';\n }\n }\n\n getTimeframe(format: string) {\n return DrSharedUtils.getTimeframeByDateFormat(format);\n }\n\n getConfiguredFormat(timeframe: TTimeframeOption) {\n return this.formatConfig[timeframe];\n }\n\n updateTimeframeAndFormat(format: string): void {\n const normalizedFormat = this.normalizeValue(format || this.format$.getValue());\n this.timeframe = this.getTimeframe(normalizedFormat);\n this.format$.next(this.getConfiguredFormat(this.timeframe));\n }\n\n normalizeValue(value) {\n return value.replace(/d/g, 'D');\n }\n\n /**\n * Get quarter number for date according to fiscal year\n *\n * @param date\n */\n public getQuarterAccordingToFiscalYear(date: Moment): number {\n let fiscalMonth = this.fiscalYearMonthsModifier;\n const dateMonth = date.month();\n if (dateMonth < fiscalMonth) {\n fiscalMonth -= 12;\n }\n return Math.trunc((date.month() - fiscalMonth) / 3) + 1;\n }\n\n /**\n * Sets date to end of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setEndOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + quarterNumber * 3 - 1, 'M')\n .endOf('month');\n }\n\n /**\n * Sets date to start of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setStartOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + (quarterNumber - 1) * 3, 'M');\n }\n\n /**\n * Sets date to end of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setEndOfCurrentQuarter(date: Moment): void {\n this.setEndOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * Sets date to start of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setStartOfCurrentQuarter(date: Moment): void {\n this.setStartOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * If date selection on this timeframe depends on Fiscal Year\n *\n * @param timeframe\n */\n public isTimeframeDependingOnFY(timeframe: TimeframeOption) {\n return _.includes([TimeframeOption.QUARTER, TimeframeOption.YEAR], timeframe);\n }\n\n /**\n * Subtract from date fiscal year shift months count\n *\n * @param date\n */\n public subtractFiscalYearMonthsFromDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date, true);\n }\n\n /**\n * Add to date fiscal year shift months count\n *\n * @param date\n */\n public addFiscalYearMonthsToDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date);\n }\n\n /**\n * Add or subtract depending on isRevert paremeter Fiscal year month shift\n *\n * @param date\n * @param isSubtract\n */\n private getDateModifiedByFiscalMonths(date: Moment, isSubtract = false): Moment {\n return date ? _.cloneDeep(date)[isSubtract ? 'subtract' : 'add'](this.fiscalYearMonthsModifier, 'month') : date;\n }\n\n public updateDatePickerByPreset(tag: string, calender: any) {\n this.keepPresetTag = true;\n let date = null;\n if (tag) {\n date = DrSharedUtils.getDateByTag(tag);\n switch (tag) {\n case DateTags.TODAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.YESTERDAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.THIS_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n case DateTags.PREV_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n }\n }\n this.presetTag$.next(tag);\n this.updatedDateAndClose$.next(date);\n }\n\n public selectDateInCalendarMonthView(date: Moment, calender: any): void {\n setTimeout(() => {\n const monthView = calender.monthView as any;\n if (monthView) {\n monthView._activeDate = date;\n monthView._selected = date;\n monthView._init();\n }\n });\n }\n\n public resetPresetTag() {\n if (!this.keepPresetTag) {\n this.presetTag$.next(null);\n } else {\n this.keepPresetTag = false;\n }\n }\n}\n","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject, OnInit } from \"@angular/core\";\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, DateFromats, TCalendarView, TimeframeOption } from '../../../models/datePicker';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport * as _ from 'lodash';\nimport { PRESET_TAGS_LIST } from \"../../../models/constants\";\n\n// @ts-ignore\nconst moment = require('moment');\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption;\n title: string;\n value: TCalendarView;\n format: string;\n periodLabel: () => string;\n}\n\n@Component({\n selector: 'dr-date-picker_custom-header.component',\n templateUrl: 'dr-date-picker_custom-header.component.html',\n styleUrls: ['./dr-date-picker_custom-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class DrDatePickerCustomHeaderComponent<Moment> implements OnDestroy, OnInit {\n private _destroyed = new Subject<void>();\n quarters = [1, 2, 3, 4];\n selectedQuarter = 1;\n timeframeOptions: ITimeframeOption[] = [{\n timeframe: TimeframeOption.DAY,\n title: 'Day',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.day,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.MONTH,\n title: 'Month',\n value: CalendarView.FOR_MONTHS,\n format: this.datePickerService.formatConfig.month,\n periodLabel: () => String(moment(this._calendar.activeDate).utc().year())\n }, {\n timeframe: TimeframeOption.QUARTER,\n title: 'Quarter',\n value: CalendarView.FOR_QUARTERS,\n format: this.datePickerService.formatConfig.quarter,\n periodLabel: () => String(moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year())\n }, {\n timeframe: TimeframeOption.YEAR,\n title: 'Year',\n value: CalendarView.FOR_YEARS,\n format: this.datePickerService.formatConfig.year,\n periodLabel: () => {\n const currentYear = moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year();\n const startPeriod = Math.floor(currentYear / 24) * 24;\n return startPeriod + '-' + (startPeriod + 23);\n }\n }];\n\n pagingSetup = {\n [CalendarView.FOR_MONTHS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_QUARTERS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_DAYS]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [CalendarView.FOR_YEARS]: (forward) => this.pagingDateChange('addCalendarYears', 24, forward)\n };\n\n selectedTimeframe: TCalendarView = CalendarView.FOR_DAYS;\n timeframeSelection = false;\n periodMonthLabel = '';\n periodYearLabel = '';\n presetTagList = PRESET_TAGS_LIST;\n get selectedPresetTag() {\n return this.datePickerService.presetTag$.getValue();\n };\n\n public readonly calendarView = CalendarView;\n\n constructor(private _calendar: MatCalendar<any>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService) {\n\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$.pipe(takeUntil(this._destroyed)).subscribe(value => {\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.format === value)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n });\n\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.setPeriodLabels();\n if (_calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n\n _calendar._userSelection.subscribe(date => {\n if (!this.datePickerService.isValueUpdating) {\n this.datePickerService.onSameDaySelectedInCalendar$.next(date.value);\n }\n });\n\n this.datePickerService.calendarInstance = _calendar;\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this._calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n setPeriodLabels() {\n const currentTimeframeOption = this.timeframeOptions.filter(option => option.value === this._calendar.currentView)[0];\n const fullPeriodLabel = currentTimeframeOption.periodLabel();\n if (this._calendar.currentView === CalendarView.FOR_DAYS) {\n this.periodMonthLabel = fullPeriodLabel.match(/[a-zA-Z]+/g).toString();\n this.periodYearLabel= fullPeriodLabel.match(/[0-9]+/g).toString();\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe(value) {\n if (value !== this.selectedTimeframe) {\n this.datePickerService.resetPresetTag();\n }\n this.selectedTimeframe = value;\n this.timeframeSelection = false;\n this._calendar.currentView = this.selectedTimeframe as MatCalendarView;\n const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];\n this.datePickerService.updateTimeframeAndFormat(chosenTimeframeOption.format);\n\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n }\n\n get currentViewIsQuarter() {\n return ![CalendarView.FOR_DAYS, CalendarView.FOR_MONTHS, CalendarView.FOR_YEARS].includes(this._calendar.currentView as CalendarView);\n }\n\n switchViewOnClickOnPeriodLabel(view: CalendarView.FOR_MONTHS | CalendarView.FOR_YEARS) {\n this._calendar.currentView = view;\n }\n\n onSelectQuarter(quarterNumber: number) {\n this.selectedQuarter = quarterNumber;\n this.datePickerService.setEndOfQuarter(this._calendar.activeDate, quarterNumber);\n this.datePickerService.updatedQuarter$.next(this._calendar.activeDate);\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n if (this.pagingSetup[this._calendar.currentView]) {\n this.pagingSetup[this._calendar.currentView](forward);\n }\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);\n this.setPeriodLabels();\n }\n\n transformDateInMultiyearViewAccordingToFY() {\n const multuYearView = this._calendar.multiYearView as any;\n multuYearView._activeDate = this.datePickerService.subtractFiscalYearMonthsFromDate(multuYearView._activeDate);\n multuYearView._selectedYear = multuYearView._activeDate.year();\n multuYearView._init();\n }\n\n onSelectPresetTag(tag: any) {\n if (tag.key === this.selectedPresetTag) {\n this.datePickerService.presetTag$.next(null);\n } else {\n this.datePickerService.presetTag$.next(tag.key);\n }\n this.datePickerService.updateDatePickerByPreset(this.selectedPresetTag, this._calendar);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarView, DatePickerPeriodPosition, TimeframeOption } from '../../../models/datePicker';\nimport { Moment } from 'moment';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { MatCalendarView } from '@angular/material/datepicker';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\n\n// @ts-ignore\nconst moment = require('moment');\nconst noop = () => {\n};\n\nexport class CustomDateAdapter extends MomentDateAdapter {\n getFirstDayOfWeek(): number {\n return 1;\n }\n}\n\n@Component({\n selector: 'dr-date-picker',\n templateUrl: './dr-date-picker.component.html',\n styleUrls: ['./dr-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n DrDatePickerService\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges {\n\n @Input() format: string;\n\n @Input() set min(minDate: number) {\n this._min = moment.unix(minDate).utc();\n }\n\n @Input() set max(maxDate: number) {\n this._max = moment.unix(maxDate).utc();\n }\n\n // Whether to transform date, taking end, start, middle of preiod (i.e. set middle of month if timeframe='month')\n @Input() periodPosition: DatePickerPeriodPosition = DatePickerPeriodPosition.DEFAULT;\n\n @Input() placeholder = 'Select...';\n\n @Input() @HostBinding('class.disabled') disabled: boolean;\n\n @Input() fiscalYearMonthsModifier = 0;\n\n @Input() datepickerFilter: (moment: Moment) => boolean;\n\n @ViewChild('datePicker') public datePicker: any;\n\n public calendarViewsTimeframeMapping: any = {\n year: 'multi-year',\n month: 'year',\n quarter: 'none',\n day: 'month',\n };\n\n public customHeader = DrDatePickerCustomHeaderComponent;\n public readonly = true;\n public _min: Moment;\n public _max: Moment;\n public readonly timeframeOption = TimeframeOption;\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n if (v !== this.innerValue) {\n this.setValueFromMoment(v);\n }\n this.cdr.markForCheck();\n }\n\n protected innerValue: Moment = null;\n protected destroyed$ = new Subject<void>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService\n ) {\n datePickerService.updatedQuarter$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n }\n\n ngAfterViewInit(): void {\n this.datePickerService.fiscalYearMonthsModifier = this.fiscalYearMonthsModifier;\n this.datePickerService.datePickerInstance = this.datePicker;\n this.datePicker.startView = this.calendarViewsTimeframeMapping[this.datePickerService.timeframe];\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n this.datePickerService.updateTimeframeAndFormat(changes.format.currentValue);\n }\n }\n\n /**\n * Updating component inner value according to datepicker timeframe (day, month etc.)\n * and date position in period (start, end, middle)\n */\n tryToNormalaizeTimeframe(): void {\n const timeframe = this.datePickerService.timeframe;\n switch (this.periodPosition) {\n case DatePickerPeriodPosition.START_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n } else {\n this.innerValue.startOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setEndOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setEndOfQuarter(this.innerValue, 4);\n } else {\n this.innerValue.endOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n let endOfPeriod: Moment;\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n this.datePickerService.setEndOfCurrentQuarter(endOfPeriod);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n this.datePickerService.setEndOfQuarter(endOfPeriod, 4);\n } else {\n this.innerValue.startOf(timeframe);\n endOfPeriod = this.innerValue.clone().endOf(timeframe);\n }\n const diff = endOfPeriod.diff(this.innerValue, 'seconds');\n this.innerValue.add(diff / 2 + 1, 'seconds');\n break;\n default:\n this.innerValue.startOf(timeframe).set('hours', 12);\n break;\n }\n }\n\n public chosenPeriodHandler(chosenDate: Moment, timeframe: TimeframeOption) {\n\n if (timeframe === TimeframeOption.YEAR) {\n chosenDate = this.datePickerService.addFiscalYearMonthsToDate(chosenDate);\n }\n\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER && timeframe === TimeframeOption.YEAR) {\n this.datePickerService.calendarInstance.currentView = CalendarView.FOR_QUARTERS as MatCalendarView;\n this.datePickerService.calendarInstance.activeDate = chosenDate;\n this.cdr.detectChanges();\n } else if (this.datePickerService.timeframe === timeframe) {\n this.setValueFromMoment(chosenDate);\n this.datePicker.close();\n }\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: number): void {\n /*\n * We need keep local timestamp for Electron Application\n * Issue in electron: when we select date, date select with -1 (if we're choosing 2023, output will be 2022)\n */\n const convertedValue = (document as any).is_electron ? moment.unix(value) : moment.unix(value).utc();\n this.innerValue = value ? convertedValue : value;\n if (this.innerValue) {\n this.tryToNormalaizeTimeframe();\n }\n this.cdr.markForCheck();\n }\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n // Should be as arrow function to avoid lose scope\n public dateFilter = (moment: Moment) => {\n if (this.datepickerFilter && moment) {\n return this.datepickerFilter(moment);\n }\n\n return true;\n }\n\n /**\n * Set inner value from Moment and propagate\n *\n * @param momentDate\n */\n protected setValueFromMoment(momentDate: Moment) {\n this.setValue(momentDate.unix());\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n\n // isValueUpdating is required for manage clicks on same dates: if isValueUpdating - true then\n // days are different and subscription on calendar day click action won't trigger Accessor ngModel update\n // one more time\n this.datePickerService.isValueUpdating = true;\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n setTimeout(() => {\n this.datePickerService.isValueUpdating = false;\n });\n }\n\n @HostBinding('class.active')\n public active = false;\n onOpen() {\n this.active = true;\n }\n\n onCLose() {\n this.active = false;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\nimport { CustomDateAdapter, DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { Moment } from 'moment';\nimport { PRESET_TAGS_LIST } from '../../../models/constants';\n\n@Component({\n selector: 'dr-date-picker-with-timeframe',\n templateUrl: './dr-date-picker-with-timeframe.component.html',\n styleUrls: ['./dr-date-picker-with-timeframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n { provide: DrDatePickerService }\n ],\n})\nexport class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit {\n presetTagSelected: string;\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n };\n\n @Input() isDashboardDatepicker = false;\n\n @Input() set dateFormatConfig(value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.datePickerService.updateTimeframeAndFormat(this.datePickerService.format$.getValue());\n this.cdr.markForCheck();\n }\n }\n\n @Input() canSelectTimeframe = true;\n\n @Input() set availableTimeframes(value: TimeframeOption[]) {\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n }\n @Input() paginationDebounce;\n\n @Input() set isUsingDateTagPresets(flag: boolean) {\n this.datePickerService.isUsingDateTagPresets = flag;\n }\n\n @Input() set presetTag(tag: string) {\n this.datePickerService.presetTag$.next(tag);\n }\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n this.setValueFromMoment(v);\n this.cdr.markForCheck();\n }\n\n // eslint-disable-next-line\n @Output() onChangeFormat = new EventEmitter<string>();\n @Output() onChangePresetTag = new EventEmitter<string>();\n\n private readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.getNextDate('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.getNextDate('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.getNextDate('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.getNextDate('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.getNextDate('addCalendarDays', 7, forward)\n };\n\n public get displayedFormattedValue(): string {\n if (!this.value) {\n return this.placeholder;\n }\n\n let displayValue = _.cloneDeep(this.value);\n if (this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n displayValue = this.datePickerService.subtractFiscalYearMonthsFromDate(displayValue);\n }\n\n const formatCached = this.datePickerService.format$.getValue();\n return this.datePickerService.getDisplayPrefix() + displayValue.format(formatCached);\n }\n\n public isNextDateDisabled = false;\n public isPrevDateDisabled = false;\n\n private onChangeDebounced$: Subject<number> = new Subject<number>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService,\n ) {\n super(cdr, dateAdapter, datePickerService);\n datePickerService.isTimeframeSelectionEnabled = true;\n\n datePickerService.format$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n\n datePickerService.presetTag$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n let tagObj = PRESET_TAGS_LIST.find((val) => val?.key === value);\n this.presetTagSelected = tagObj?.label;\n this.onChangePresetTag.emit(value);\n });\n\n this.datePickerService.onSameDaySelectedInCalendar$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n\n datePickerService.updatedDateAndClose$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n if (value) {\n this.setValueFromMoment(value);\n } else {\n this.onChangeCallback(this.innerValue.unix());\n }\n this.datePicker.close();\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n\n if (this.paginationDebounce) {\n this.onChangeDebounced$.pipe(takeUntil(this.destroyed$), debounceTime(this.paginationDebounce)).subscribe((value) => {\n this.onChangeCallback(value);\n });\n }\n }\n\n pagingClicked(forward: boolean): void {\n if (this.pagingSetup[this.datePickerService.timeframe]) {\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](forward);\n this.pagingDateChange(nextValue);\n }\n this.datePicker.close();\n }\n\n pagingDateChange(newValue: Moment): void {\n if (this.paginationDebounce) {\n // this is required for not sending extra requests when user quickly clicking on pagination\n // here we do the same as in setValueFromMoment(newValue) with difference\n // that updating of ngModel/formControl is debounced\n this.datePickerService.resetPresetTag();\n const timestamp = newValue.unix();\n this.writeValue(timestamp);\n this.onChangeDebounced$.next(this.innerValue.unix());\n } else {\n this.setValueFromMoment(newValue);\n }\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.datePickerService.resetPresetTag();\n super.setValue(timestamp);\n }\n public writeValue(value: number): void {\n super.writeValue(value);\n if (!value) return;\n this.restrictPagination();\n }\n\n private getNextDate(actionCall: string, amount: number, forward: boolean): Moment {\n return this.dateAdapter[actionCall]?.(this.innerValue, forward ? amount : -amount);\n }\n\n private restrictPagination(): void {\n if (!this._min && !this._max) return;\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](true);\n const prevValue = this.pagingSetup[this.datePickerService.timeframe](false);\n this.isNextDateDisabled = this._max && nextValue && nextValue.unix() > this._max.unix();\n this.isPrevDateDisabled = this._min && prevValue && prevValue.unix() < this._min.unix();\n }\n}\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { CustomDateFormat, DateDisplay, DateParse } from '../../../models/datePicker';\n\n@Directive({\n selector: '[drDatePickerFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter\n },\n {\n provide: MAT_DATE_FORMATS,\n useClass: CustomDateFormat\n }\n ]\n})\nexport class DrDatePickerFormatDirective {\n @Input() public configDateParse: DateParse;\n @Input() public configDateDisplay: DateDisplay;\n\n @Input('drDatePickerFormat')\n set datePickerFormat(format: string) {\n if (this.configDateParse) {\n this.matDateFormat.updateDateFormat(\n this.configDateParse,\n this.configDateDisplay\n );\n } else {\n this.matDateFormat.updateDateFormat({ dateInput: format });\n }\n const value = this.ngControl.value;\n this.ngControl.valueAccessor?.writeValue(value);\n }\n\n constructor(\n @Inject(MAT_DATE_FORMATS) public matDateFormat: CustomDateFormat,\n @Optional() private ngControl: NgControl\n ) {\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { ITimeframeOption } from './dr-date-picker_custom-header/dr-date-picker_custom-header.component';\n\n@Pipe({\n name: 'drShowTimeframePipe'\n})\nexport class DrShowTimeframePipe implements PipeTransform {\n transform(arr: ITimeframeOption[], showOptions: TimeframeOption[]): ITimeframeOption[] {\n return arr.filter(item => showOptions.includes(item.timeframe));\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { DrSelectComponent } from '../dr-select/dr-select.component';\nimport { reduce as _reduce } from 'lodash';\nimport { DrInputComponent } from '../dr-input/dr-input.component';\n\n@Component({\n selector: 'dr-select-add-item',\n templateUrl: './dr-select-add-item.component.html',\n styleUrls: ['./dr-select-add-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrSelectAddItemComponent implements OnInit, OnChanges {\n public isDynamicAdding: boolean;\n public dynamicValue: string;\n public currentValues: any[] = [];\n public isDirty: boolean;\n\n @Input() public dynamicAddLabel = 'Add new';\n @Input() public bindValue: string;\n @Input() private values: any[] = [];\n @Output() private dynamicValueAdded: EventEmitter<any> = new EventEmitter<any>();\n\n @ViewChild('dynamicInputRef') set inputRef(input: DrInputComponent) {\n if (!input) return;\n input.focus();\n }\n\n constructor(private drSelect: DrSelectComponent) {\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.calculateCurrentValues();\n }\n\n public ngOnInit(): void {\n this.calculateCurrentValues();\n }\n\n public onDynamicAdding(): void {\n this.isDynamicAdding = true;\n }\n\n public onDynamicAddingClose(): void {\n this.isDynamicAdding = false;\n this.dynamicValue = '';\n }\n\n public isDynamicValueValid(): boolean {\n const trimmedValue = this.dynamicValue?.trim();\n if (!trimmedValue) return false;\n return !this.currentValues.includes(trimmedValue);\n }\n\n public onDynamicAdd(value: string, keydownEvent?: KeyboardEvent): void {\n this.isDirty = true;\n if (!this.isDynamicValueValid()) return;\n if (keydownEvent && keydownEvent.key !== 'Enter') return;\n\n this.onDynamicAddingClose();\n this.drSelect.close();\n this.dynamicValueAdded.emit(value?.trim());\n }\n\n private calculateCurrentValues(): void {\n this.currentValues = this.bindValue\n ? _reduce(this.values, (acc, curr) => {\n acc.push(curr[this.bindValue]);\n return acc;\n }, [])\n : this.values;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info',\n templateUrl: './tooltip-info.component.html',\n styleUrls: ['./tooltip-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoComponent {\n\n @Input() data: TooltipInfoContext;\n @Input() useDescriptionAsHTML: boolean;\n\n constructor() {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info-simple',\n templateUrl: './tooltip-info-simple.component.html',\n styleUrls: ['./tooltip-info-simple.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoSimpleComponent {\n\n @Input() context: TooltipInfoContext;\n\n constructor() {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-no-body',\n templateUrl: './tooltip-no-body.component.html',\n styleUrls: ['./tooltip-no-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipNoBodyComponent implements OnInit {\n\n @Input() context: any;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-process-default',\n template: `\n <div class=\"container\" [innerHTML]=\"text\"></div>\n `,\n styles: [`\n .container {\n width: auto;\n max-width: 388px;\n text-align: start;\n font-size: 14px;\n line-height: 22px;\n padding: 10px 12px;\n color: #151B3F;\n background-color: #FFF;\n border-radius: 8px;\n box-shadow: 0px 4px 8px 1px rgba(0, 0, 0, 0.25);\n border: 1px solid #C3C4CE;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipProcessDefaultComponent {\n\n @Input() text: string;\n\n constructor() {\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrTooltipDirective } from './dr-tooltip.directive';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { CommonModule } from '@angular/common';\nimport { TooltipInfoComponent } from './components/tooltip-info/tooltip-info.component';\nimport { TooltipInfoSimpleComponent } from './components/tooltip-info-simple/tooltip-info-simple.component';\nimport { TooltipNoBodyComponent } from './components/tooltip-no-body/tooltip-no-body.component';\nimport { TooltipProcessDefaultComponent } from './components/tooltip-process-default/tooltip-process-default.component';\n\nconst TOOLTIP_COMPONENTS = [\n TooltipInfoComponent,\n TooltipInfoSimpleComponent,\n TooltipNoBodyComponent,\n TooltipProcessDefaultComponent\n];\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n exports: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n providers: [],\n entryComponents: [\n TooltipComponent\n ]\n})\n\nexport class DrTooltipModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { DrSpinnerDirective } from './dr-spinner.directive';\n\nconst components = [DrSpinnerComponent];\nconst directives = [DrSpinnerDirective];\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [...components, ...directives],\n declarations: [...components, ...directives]\n})\n\nexport class DrSpinnerModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { DrInputComponent } from './dr-input/dr-input.component';\nimport { DrSelectComponent } from './dr-select/dr-select.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-button/radio-group.component';\nimport { DrToggleComponent } from './dr-toggle/dr-toggle.component';\nimport { DrButtonComponent } from './button/button.component';\n\nimport { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DrDatePickerComponent } from './date-pickers/dr-date-picker/dr-date-picker.component';\nimport { DrDatePickerWithTimeframeComponent } from './date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nimport { DrDatePickerFormatDirective } from './date-pickers/directives/dr-date-picker-format.directive';\nimport { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';\nimport { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';\nimport { DrDatePickerCustomHeaderComponent } from './date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\nimport { DrSelectAddItemComponent } from './dr-select-add-item/dr-select-add-item.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { DrSpinnerModule } from '../dr-spinner/dr-spinner.module';\n\n// !!! Please do not use such approach in other places\n// Hard fix for 'none' calendar view selection\nMatCalendar.prototype.focusActiveCell = function() {\n this._getCurrentViewComponent()?._focusActiveCell(false);\n};\n\nconst components = [\n DrButtonComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n CheckboxComponent,\n DrInputComponent,\n DrSelectComponent,\n DrToggleComponent,\n DrToggleButtonComponent,\n DrDatePickerComponent,\n DrDatePickerWithTimeframeComponent,\n DrDatePickerFormatDirective,\n DrDatePickerCustomHeaderComponent,\n DrModelDebounceChangeDirective,\n DrShowTimeframePipe,\n DrSelectAddItemComponent\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatNativeDateModule,\n MatDatepickerModule,\n MatTooltipModule,\n DrTooltipModule,\n DrSpinnerModule,\n ],\n entryComponents: [DrDatePickerCustomHeaderComponent]\n})\n\nexport class DrInputsModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { AnyTagComponent, DateTagComponent } from './date-tag.component';\nimport { DayTagComponent } from './day-tag/day-tag.component';\nimport { WeekTagComponent } from './week-tag/week-tag.component';\nimport { MonthTagComponent } from './month-tag/month-tag.component';\nimport { QuarterTagComponent } from './quarter-tag/quarter-tag.component';\nimport { YearTagComponent } from './year-tag/year-tag.component';\nimport { ForecastTagComponent } from './forecast-tag/forecast-tag.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nexport const components = [DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n NgSelectModule\n ],\n exports: components,\n declarations: components,\n})\n\nexport class DateTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ListTagComponent } from './list-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n ],\n exports: [ListTagComponent],\n providers: [],\n declarations: [\n ListTagComponent\n ],\n})\n\nexport class ListTagModule {\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { find as _find, isNumber as _isNumber, isObject as _isObject, isNil as _isNil, map as _map } from 'lodash';\nimport {\n IDynamicTag,\n ITag,\n ITagForServer,\n TagsConfigSubType,\n TDynamicTag,\n TDynamicTagValue\n} from '../models/serverTags';\nimport { ForecastTagService } from '../date-tags/forecast-tag/forecast-tag.service';\n\n// @ts-ignore\nconst moment = require('moment');\n\n@Component({\n selector: 'dr-dynamic-tag',\n templateUrl: './dr-dynamic-tag.component.html',\n styleUrls: ['./dr-dynamic-tag.component.scss']\n})\nexport class DrDynamicTagComponent implements OnChanges {\n @Input() public values: TDynamicTag;\n @Input() public tagConfig: ITag;\n @Input() public selectedTag: ITagForServer;\n\n @Input() public lockedTags: any[] = [];\n @Input() public connectedTags: ITagForServer[];\n @Input() public isDynamicTagAddEnabled: boolean;\n @Input() public disabled: boolean;\n\n @Input() fiscalYearStartsFrom: number;\n @Input() fiscalYearBack: boolean;\n\n @Input() hideFavoriteStar: boolean;\n @Input() showSplitInputs: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n @Output() tagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public selectedDynamicTag: TDynamicTagValue;\n public currentValues: TDynamicTagValue[];\n public isLockedTagSelected: boolean;\n\n public get isPrimitiveDataSource(): boolean {\n const values = Object.values(this.values) || [];\n return !_isObject(values[0]);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.updateDynamicTagValues();\n }\n\n public onTagChanged($event: string): void {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: $event,\n locked: this.lockedTags.includes($event)\n };\n\n if (!_isNil(this.selectedTag?.locked)) {\n resultEvent.locked = this.selectedTag.locked;\n }\n\n if (!_isNil(this.selectedTag?.label)) {\n resultEvent.label = this.selectedTag.label;\n }\n\n this.isLockedTagSelected = resultEvent.locked;\n this.tagChange.emit(resultEvent);\n }\n\n public onOptionClick($event: Event, tagValue: string | number): void {\n if (this.lockedTags.includes(tagValue)) {\n $event.stopImmediatePropagation();\n }\n }\n\n public onDynamicValueAdd($event: string) {\n const parentValueKey = this.getParentValueKey();\n const parentValues = this.values[parentValueKey] || [];\n\n if (this.isPrimitiveDataSource) {\n this.values[parentValueKey] = [$event, ...parentValues];\n } else {\n this.values[parentValueKey] = [{ value: $event }, ...parentValues];\n }\n\n this.selectedDynamicTag = $event;\n\n this.currentValues = this.values[parentValueKey];\n this.onTagChanged($event);\n this.tagAdd.emit($event);\n }\n\n private updateDynamicTagValues(): void {\n const parentValueKey = this.getParentValueKey();\n this.currentValues = this.values[parentValueKey];\n this.selectedDynamicTag = this.getSelectedDynamicTag(this.currentValues, this.selectedTag?.value);\n this.onTagChanged(this.selectedDynamicTag);\n }\n\n private getSelectedDynamicTag(currentValues: TDynamicTagValue[], selectedValue: string | number): string {\n if (!currentValues?.length) return null;\n\n if (_isObject(currentValues[0])) {\n const valueFromConfig = _find(currentValues, { value: selectedValue }) as IDynamicTag;\n const favoriteValue = _find(currentValues, { is_favorite: true }) as IDynamicTag;\n return (valueFromConfig || favoriteValue || currentValues[0]).value;\n }\n\n const valueFromConfig = _find(currentValues, (value) => value === selectedValue);\n return (valueFromConfig || currentValues[0]) as string;\n }\n\n private getParentValueKey(): string {\n return _map(this.connectedTags, (connectedTag) => {\n if (_isNumber(connectedTag.value)) {\n const momentData = moment.unix(connectedTag.value);\n // TODO: add input prop (selectedTimeDimension) or Format\n const convertedParentValue = momentData.get('year')\n if (momentData.isValid() && convertedParentValue) {\n return convertedParentValue;\n }\n }\n\n return connectedTag.value;\n }).join('__');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrDynamicTagComponent } from './dr-dynamic-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [DrDynamicTagComponent],\n imports: [\n CommonModule,\n DrInputsModule,\n FormsModule,\n ],\n exports: [DrDynamicTagComponent]\n})\nexport class DrDynamicTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTagComponent } from './dr-tag.component';\nimport { ListTagModule } from '../list-tags/list-tag.module';\nimport { DateTagModule } from '../date-tags/date-tag.module';\nimport { DrDynamicTagModule } from '../dr-dynamic-tag/dr-dynamic-tag.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DateTagModule,\n ListTagModule,\n DrDynamicTagModule\n ],\n exports: [DrTagComponent],\n providers: [],\n declarations: [\n DrTagComponent\n ],\n})\n\nexport class DrTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { CommonModule } from '@angular/common';\nimport { DrAvatarPipe } from './dr-avatar.pipe';\n\n@NgModule({\n declarations: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n exports: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n imports: [\n MatTooltipModule,\n DrTooltipModule,\n CommonModule\n ]\n})\n\nexport class DrAvatarModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { DrPopoverDirective } from './dr-popover.directive';\nimport { CommonModule } from '@angular/common';\nimport { DrPopoverComponent } from './dr-popover.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n providers: [],\n declarations: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n})\n\nexport class DrPopoverModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrDropdownPositionDirective } from './dr-dropdown-position.directive';\nimport { DrDropdownDirective } from './dr-dropdown.directive';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { CommonModule } from '@angular/common';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule,\n ],\n declarations: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n exports: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n providers: [\n DrDropdownService,\n ],\n})\n\nexport class DrDropdownModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTabsComponent } from './dr-tabs.component';\nimport { DrTabComponent } from './dr-tab.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTabsModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n DrTooltipModule\n ],\n exports: [\n DrTabsComponent,\n DrTabComponent\n ],\n providers: [],\n declarations: [\n DrTabsComponent,\n DrTabComponent\n ],\n})\n\nexport class DrTabsModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAccordionComponent } from './accordion.component';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { DrAccordionItemHeaderComponent } from './accordion-item-header.component';\nimport { DrAccordionItemBodyComponent } from './accordion-item-body.component';\n\nconst DR_ACCORDION_COMPONENTS = [\n DrAccordionComponent,\n DrAccordionItemComponent,\n DrAccordionItemHeaderComponent,\n DrAccordionItemBodyComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...DR_ACCORDION_COMPONENTS],\n declarations: [...DR_ACCORDION_COMPONENTS],\n providers: [],\n})\nexport class DrAccordionModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrLayoutComponent } from './dr-layout.component';\nimport { CommonModule } from '@angular/common';\nimport { DrLayoutHeaderComponent } from './dr-layout-header.component';\nimport { DrLayoutBodyComponent } from './dr-layout-body.component';\n\nconst components = [\n DrLayoutComponent,\n DrLayoutHeaderComponent,\n DrLayoutBodyComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components],\n declarations: [...components],\n})\n\nexport class DrLayoutModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DrErrorComponent } from './dr-error.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DrTooltipModule\n ],\n exports: [DrErrorComponent],\n providers: [],\n declarations: [\n DrErrorComponent\n ],\n})\n\nexport class DrErrorModule {\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Step } from './interfaces/stepper';\n\n@Component({\n selector: 'dr-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class StepperComponent {\n\n @Input() steps: Step[];\n @Input() currentStep: Step;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Output() stepChange: EventEmitter<Step> = new EventEmitter<Step>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<any>;\n\n constructor() {\n }\n\n selectStep(step: Step): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: Step): string {\n if (this.withoutConnectors) return '0%';\n if (step.completed) return '100%';\n if (step.index === 0 || this.steps[step.index - 1].completed) return `${ (step?.completedTasks / step?.requiredTasks * 100) || 0 }%`;\n return '0%';\n }\n\n public scrollLeft(): void {\n this.stepper.nativeElement.scrollLeft -= 80;\n }\n\n public scrollRight(): void {\n this.stepper.nativeElement.scrollLeft += 80;\n }\n\n public roundWidth(width: number): number {\n return Math.round(width);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [StepperComponent],\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [StepperComponent]\n})\nexport class DrStepperModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrDetailsListComponent } from './dr-details-list.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [DrDetailsListComponent],\n providers: [],\n declarations: [DrDetailsListComponent],\n})\n\nexport class DrDetailsListModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { DialogModalWrapperComponent } from './components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { DialogService } from './services/dialog.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDetailsListModule } from '../dr-details-list/dr-details-list.module';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n DrInputsModule,\n ReactiveFormsModule,\n DrTooltipModule,\n DrDetailsListModule\n ],\n exports: [DialogWrapperComponent, DialogModalWrapperComponent],\n providers: [\n { provide: MatDialogRef, useValue: {} },\n { provide: MAT_DIALOG_DATA, useValue: {} },\n DialogService\n ]\n})\nexport class DrDialogModule {\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatTextMessage } from '../../../models/chat';\n\n/**\n * Chat text message component.\n */\n@Component({\n selector: 'dr-chat-message-text',\n templateUrl: 'chat-message-text.component.html',\n styleUrls: ['./chat-message-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageTextComponent {\n /**\n * Message sender\n *\n * @type {IChatTextMessage}\n */\n @Input() message: IChatTextMessage;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n IChatDownloadFileMessage,\n IChatImageMessage,\n IChatMessageFile,\n IChatMessageFileImagePreview,\n IMAGE_TYPES\n} from '../../../models/chat';\n\n/**\n * Chat message component.\n */\n@Component({\n selector: 'dr-chat-message-file',\n templateUrl: 'chat-message-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageFileComponent {\n\n readyFiles: any[];\n\n /**\n * Message with file\n *\n * @type {IChatDownloadFileMessage | IChatImageMessage}\n */\n @Input() message: IChatDownloadFileMessage | IChatImageMessage;\n\n /**\n * Message file path\n *\n * @type {Date}\n */\n @Input()\n set files(files: IChatMessageFile[]) {\n this.readyFiles = (files || []).map((file: any) => {\n const isImage = this.isImage(file);\n return {\n ...file,\n urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${ file.url })`),\n isImage,\n };\n });\n this.cd.detectChanges();\n }\n\n constructor(protected cd: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n\n isImage(file: IChatMessageFile): boolean {\n const type = (file as IChatMessageFileImagePreview).type;\n if (type) {\n return IMAGE_TYPES.includes(type);\n }\n return false;\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { DrChatCustomMessageService } from './chat-custom-message.service';\n\nconst throwCustomMessageTypeIsRequired = () => {\n throw new Error('[drCustomMessage]: custom message type is required.');\n};\n\n@Directive({\n selector: `[drCustomMessage]`,\n})\nexport class DrChatCustomMessageDirective implements OnInit, OnDestroy {\n /**\n * Defines a message type which should rendered with the custom message template.\n *\n * @type {string}\n */\n @Input()\n get drCustomMessage(): string {\n return this._type;\n }\n set drCustomMessage(value: string) {\n this._type = value;\n }\n protected _type: string;\n\n get type(): string {\n return this._type;\n }\n\n constructor(public templateRef: TemplateRef<any>,\n protected customMessageService: DrChatCustomMessageService) {}\n\n ngOnInit() {\n if (!this._type) {\n throwCustomMessageTypeIsRequired();\n }\n this.customMessageService.register(this.type, this);\n }\n\n ngOnDestroy() {\n this.customMessageService.unregister(this.type);\n }\n}\n","import { ChangeDetectionStrategy, Component, } from '@angular/core';\n\n@Component({\n selector: 'dr-dot-flashing',\n templateUrl: 'dr-dot-flashing.component.html',\n styleUrls: ['./dr-dot-flashing.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDotFlashingComponent {\n\n constructor() {\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrAvatarModule } from '../dr-avatar/dr-avatar.module';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { DrChatComponent } from './chat.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageTextComponent } from './dr-chat-message/dr-chat-message-text/chat-message-text.component';\nimport { DrChatMessageFileComponent } from './dr-chat-message/dr-chat-message-file/chat-message-file.component';\nimport { DrChatCustomMessageDirective } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\nimport { DrDotFlashingComponent } from './dr-dot-flashing/dr-dot-flashing.component';\n\n\nconst DR_CHAT_COMPONENTS = [\n DrChatComponent,\n DrChatMessageComponent,\n DrChatFormComponent,\n DrChatMessageTextComponent,\n DrChatMessageFileComponent,\n DrChatSuggestionsComponent,\n DrDotFlashingComponent,\n];\n\nconst DR_CHAT_DIRECTIVES = [DrChatCustomMessageDirective];\n\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n DrAvatarModule,\n DrInputsModule,\n DrTooltipModule,\n ],\n declarations: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n exports: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n})\nexport class DrChatModule {\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi, Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\nimport { ScenarioService } from '../../services/scenario.service';\nimport { ITag, TagTypes } from '../../../models/serverTags';\nimport { find as _find, includes as _includes, map as _map } from 'lodash';\nimport { ToggleButtonMode } from '../../../dr-inputs/dr-toggle-button/toggle-button-mode';\n\n@Component({\n selector: 'dr-scenario-configuration',\n templateUrl: './dr-scenario-configuration.component.html',\n styleUrls: ['./dr-scenario-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScenarioService]\n})\nexport class DrScenarioConfigurationComponent implements OnInit {\n public toggleButtonMode = ToggleButtonMode;\n public scenarios: Scenario[];\n\n private _scenarioTags: IScenarioTagUi[] = [];\n private _selectedScenario: Scenario;\n private tagNotSupportingDates: IScenarioTagUi;\n\n @Input() public currentTagsConfig: ITag[];\n @Input() public wholeTagsConfig: ITag[] = [];\n @Input() public set selectedScenario(scenario: Scenario) {\n if (!Object.values(Scenario).includes(scenario)) {\n this._selectedScenario = Scenario.ACTUALS;\n return;\n }\n\n this._selectedScenario = scenario;\n }\n @Input() public isMultipleDimension: boolean = false;\n @Input() public isForecastMultipleDimension: boolean = false;\n\n @Output() public scenarioDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public get selectedScenario(): Scenario {\n return this._selectedScenario || Scenario.ACTUALS;\n }\n\n public get scenarioTags(): IScenarioTagUi[] {\n return this._scenarioTags;\n }\n\n public set scenarioTags(tags: IScenarioTagUi[]) {\n this._scenarioTags = tags;\n this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });\n }\n\n public get dateTag(): IScenarioTagUi {\n return _find(this.scenarioTags, { type: TagTypes.DATE });\n }\n\n constructor(private scenarioService: ScenarioService) {\n }\n\n public ngOnInit(): void {\n this.scenarios = this.scenarioService.scenarios;\n this.scenarioService.initScenarioTags(this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension, this.isForecastMultipleDimension);\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);\n }\n\n public onScenarioChange(scenario: Scenario): void {\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);\n this.onScenarioDataChange();\n }\n\n public onScenarioTagToggle(tag: IScenarioTagUi): void {\n this.tagNotSupportingDatesHandler(tag);\n this.tagAcceptableDateHandler(tag);\n this.onScenarioDataChange();\n }\n\n public onScenarioDataChange(): void {\n this.scenarioDataChanged.emit({\n scenario: this.selectedScenario,\n tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),\n });\n }\n\n private tagNotSupportingDatesHandler(tag: IScenarioTagUi): void {\n if (!this.tagNotSupportingDates || !tag.toggle) return;\n\n if (tag.type === TagTypes.DATE) {\n this.tagNotSupportingDates.toggle = false;\n }\n\n if (tag === this.tagNotSupportingDates) {\n const dateTag = this.dateTag;\n\n if (dateTag) {\n dateTag.toggle = false;\n }\n }\n }\n\n private tagAcceptableDateHandler(tag: IScenarioTagUi) {\n if (!tag.acceptableSubTags?.length) return;\n const dateTag = this.dateTag;\n\n if (!dateTag) return;\n\n dateTag.subTags = _map(dateTag.subTags, (subTag) => {\n subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);\n return subTag;\n });\n\n dateTag.selectedTagSubType = tag.acceptableSubTags[0];\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ITag, ITagForServer, TConnectedTags, TDynamicTag } from '../../../models/serverTags';\nimport { reduce as _reduce, find as _find, merge as _merge } from 'lodash';\nimport { Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\n\n@Component({\n selector: 'dr-scenario-tag-configuration',\n templateUrl: './dr-scenario-tag-configuration.component.html',\n styleUrls: ['./dr-scenario-tag-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrScenarioTagConfigurationComponent implements OnChanges {\n @Input() public tagsConfig: ITag[];\n @Input() public set currentTags(tags: ITagForServer[]) {\n this._currentTags = tags;\n this.currentTagsMap = _reduce(tags, (acc, curr) => {\n const tagId = _find(this.tagsConfig, { name: curr.name })?.id;\n if (isNaN(tagId)) return acc;\n\n acc[tagId] = curr;\n return acc;\n }, {});\n }\n\n @Input() public scenario: Scenario;\n @Input() public connectedTags: TConnectedTags = {};\n @Input() public dynamicTagValues: TDynamicTag = {};\n\n @Input() public lockedDates: string[] | number[] = [];\n @Input() public fiscalYearStartsFrom: number;\n @Input() public fiscalYearBack: boolean;\n @Input() public isDynamicAddEnabled: boolean;\n\n @Output() public scenarioTagDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public currentTagsMap: { [tagId: number]: ITagForServer } = {};\n\n private _currentTags: ITagForServer[] = [];\n private dynamicTagsToSave: ITagForServer[] = [];\n private tagsToSave: ITagForServer[] = [];\n\n public get currentTags(): ITagForServer[] {\n return this._currentTags;\n }\n\n public ngOnChanges(simpleChanges: SimpleChanges): void {\n this.currentTags = this.currentTags;\n }\n\n public onTagChange($event: ITagForServer): void {\n const savedTag = _find(this.tagsToSave, { id: $event.id });\n\n if (savedTag) {\n _merge(savedTag, $event);\n } else {\n this.tagsToSave.push($event);\n }\n\n this.onScenarioTagDataChanged();\n }\n\n public onDynamicTagsChange($event: ITagForServer[]): void {\n this.dynamicTagsToSave = $event;\n this.onScenarioTagDataChanged();\n }\n\n public onScenarioTagDataChanged(): void {\n const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];\n this.scenarioTagDataChanged.emit({\n scenario: this.scenario,\n tagsConfig: this.tagsConfig,\n tags,\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScenarioService } from './services/scenario.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\nimport { DrScenarioConfigurationComponent } from './components/dr-scenario-configuration/dr-scenario-configuration.component';\nimport { DrScenarioTagConfigurationComponent } from './components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nimport { DrTagModule } from '../dr-tags/dr-tag.module';\n\n\nconst COMPONENTS = [\n DrScenarioConfigurationComponent,\n DrScenarioTagConfigurationComponent,\n]\n\n@NgModule({\n declarations: [...COMPONENTS],\n providers: [ScenarioService],\n imports: [\n CommonModule,\n DrInputsModule,\n FormsModule,\n DrTagModule\n ],\n exports: [...COMPONENTS],\n})\nexport class DrScenarioModule {\n}\n","import {\n Component,\n Input,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { BadgeStatus } from '../models/badgeStatus';\n\n@Component({\n templateUrl: 'dr-badge-status.component.html',\n selector: 'dr-badge-status',\n styleUrls: ['dr-badge-status.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class DrBadgeStatusComponent implements OnInit {\n\n @Input() theme: BadgeStatus = BadgeStatus.REGULAR;\n @Input() icon: string;\n @Input() label: string;\n @Input() tooltip: string;\n\n\n constructor() {\n\n }\n\n ngOnInit() {\n\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrBadgeStatusComponent } from './dr-badge-status.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [DrBadgeStatusComponent],\n providers: [],\n declarations: [\n DrBadgeStatusComponent\n ],\n})\n\nexport class DrBadgeStatusModule {\n}\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\n\n@Component({\n selector: 'ngx-treeview-item',\n templateUrl: './treeview-item.component.html',\n styleUrls: ['./treeview-item.component.scss']\n})\nexport class TreeviewItemComponent {\n @Input() config: TreeviewConfig;\n @Input() template: TemplateRef<TreeviewItemTemplateContext>;\n @Input() item: TreeviewItem;\n @Output() checkedChange = new EventEmitter<boolean>();\n\n constructor(\n private defaultConfig: TreeviewConfig\n ) {\n this.config = this.defaultConfig;\n }\n\n onCollapseExpand = () => {\n this.item.collapsed = !this.item.collapsed;\n }\n\n onCheckedChange = () => {\n const checked = this.item.checked;\n if (!isNil(this.item.children) && !this.config.decoupleChildFromParent) {\n this.item.children.forEach(child => child.setCheckedRecursive(checked));\n }\n this.checkedChange.emit(checked);\n }\n\n onChildCheckedChange(child: TreeviewItem, checked: boolean): void {\n if (!this.config.decoupleChildFromParent) {\n let itemChecked: boolean = null;\n for (const childItem of this.item.children) {\n if (itemChecked === null) {\n itemChecked = childItem.checked;\n } else if (itemChecked !== childItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n if (this.item.checked !== itemChecked) {\n this.item.checked = itemChecked;\n }\n\n }\n\n this.checkedChange.emit(checked);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TreeviewComponent } from './components/treeview/treeview.component';\nimport { TreeviewItemComponent } from './components/treeview-item/treeview-item.component';\nimport { TreeviewPipe } from './pipes/treeview.pipe';\nimport { TreeviewConfig } from './models/treeview-config';\nimport { DefaultTreeviewEventParser, TreeviewEventParser } from './helpers/treeview-event-parser';\n\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule\n ],\n declarations: [\n TreeviewComponent,\n TreeviewItemComponent,\n TreeviewPipe\n ],\n exports: [\n TreeviewComponent,\n TreeviewPipe,\n ],\n providers: [],\n})\n\nexport class TreeviewModule {\n static forRoot(): ModuleWithProviders<TreeviewModule> {\n return {\n ngModule: TreeviewModule,\n providers: [\n TreeviewConfig,\n { provide: TreeviewEventParser, useClass: DefaultTreeviewEventParser }\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAlertComponent } from './dr-alert.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [DrAlertComponent],\n providers: [],\n declarations: [\n DrAlertComponent\n ],\n})\n\nexport class DrAlertModule {\n}\n","/* components */\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.service';\nexport * from './lib/date-tags/month-tag/month-tag.component';\nexport * from './lib/date-tags/quarter-tag/quarter-tag.component';\nexport * from './lib/date-tags/week-tag/week-tag.component';\nexport * from './lib/date-tags/year-tag/year-tag.component';\nexport * from './lib/dr-tags/dr-tag.component';\nexport * from './lib/list-tags/list-tag.component';\nexport * from './lib/date-tags/day-tag/day-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/dr-inputs/radio-button/radio-button.component';\nexport * from './lib/dr-inputs/radio-button/radio-group.component';\nexport * from './lib/dr-inputs/checkbox/checkbox.component';\nexport * from './lib/dr-inputs/dr-input/dr-input.component';\nexport * from './lib/dr-inputs/dr-select/dr-select.component';\nexport * from './lib/dr-avatar/dr-avatar.component';\nexport * from './lib/dr-avatar/dr-avatar.pipe';\nexport * from './lib/dr-tooltip/dr-tooltip.component';\nexport * from './lib/dr-tooltip/dr-tooltip.directive';\nexport * from './lib/dr-inputs/dr-toggle/dr-toggle.component';\nexport * from './lib/dr-inputs/dr-toggle-button/dr-toggle-button.component';\nexport * from './lib/dr-spinner/dr-spinner.component';\nexport * from './lib/dr-spinner/dr-spinner.directive';\nexport * from './lib/dr-inputs/button/button.component';\n\nexport * from './lib/dr-popover/dr-popover.directive';\nexport * from './lib/dr-popover/dr-popover.component';\nexport * from './lib/dr-popover/dr-popover.service';\n\nexport * from './lib/dr-dropdown/dr-dropdown.directive';\nexport * from './lib/dr-dropdown/dr-dropdown-position.directive';\nexport * from './lib/dr-dropdown/dr-dropdown.component';\nexport * from './lib/dr-dropdown/dr-dropdown.service';\nexport * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';\nexport * from './lib/dr-tabs/dr-tabs.component';\nexport * from './lib/dr-tabs/dr-tab.component';\n\nexport * from './lib/dr-accordion/accordion.component';\nexport * from './lib/dr-accordion/accordion-item.component';\nexport * from './lib/dr-accordion/accordion-item-header.component';\nexport * from './lib/dr-accordion/accordion-item-body.component';\n\nexport * from './lib/dr-layout/dr-layout.component';\nexport * from './lib/dr-layout/dr-layout-header.component';\nexport * from './lib/dr-layout/dr-layout-body.component';\n\nexport * from './lib/dr-error/dr-error.component';\n\nexport * from './lib/dr-dialog/services/dialog.service';\n\nexport * from './lib/dr-details-list/dr-details-list.component';\n\nexport * from './lib/dr-chat/chat.component';\nexport * from './lib/dr-alert/dr-alert.component';\nexport * from './lib/dr-treeview/components/treeview/treeview.component';\nexport * from './lib/dr-treeview/pipes/treeview.pipe';\nexport * from './lib/dr-treeview/models/treeview-item';\nexport * from './lib/dr-treeview/models/treeview-config';\nexport * from './lib/dr-treeview/models/treeview-i18n';\nexport * from './lib/dr-treeview/models/treeview-item-template-context';\nexport * from './lib/dr-treeview/helpers/treeview-event-parser';\nexport * from './lib/dr-treeview/helpers/treeview-helper';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.enum';\nexport { TooltipTheme } from './lib/dr-tooltip/enums/tooltip-theme.enum';\nexport { Scenario, TScenarioDataChanged } from './lib/dr-scenario/interfaces/scenario';\nexport { ToggleButtonMode } from './lib/dr-inputs/dr-toggle-button/toggle-button-mode';\nexport { DrAlertTheme } from './lib/dr-alert/enums/dr-alert-theme.enum';\n\n/* interfaces & types */\nexport { TooltipInfoContext } from './lib/dr-tooltip/interfaces/tooltip-component-context';\nexport { Step } from './lib/stepper/interfaces/stepper';\nexport * from './lib/dr-dialog/interfaces/dialog-data';\n\n/* directives */\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer, IDynamicTag, TDynamicTagValue, TDynamicTag, TagTypes, TConnectedTags } from './lib/models/serverTags';\nexport { ISpinnerOptions, SpinnerType, SpinnerSize } from './lib/models/spinnerOptions';\nexport {\n ElPosition,\n IDropdown,\n IDropdownItem,\n IDropdownActionIcon,\n IDropdownCoordinate,\n IDropdownCallEvent,\n IDropdownAction\n} from './lib/models/dropdown';\nexport {\n DrPopoverRef,\n IDrPopoverComponentModel,\n Point,\n DrPopoverConfig,\n IPopoverManualClosing,\n DrPopoverAlignment,\n DrPopoverAlignmentDimension,\n} from './lib/models/popover';\nexport { IValidationError } from './lib/models/validationError';\nexport * from './lib/models/chat';\nexport * from './lib/models/badgeStatus';\nexport * from './lib/models/feedback';\n\n/* services */\nexport { ScenarioService } from './lib/dr-scenario/services/scenario.service';\nexport { DrAvatarService } from './lib/dr-avatar/services/dr-avatar.service';\n\n/* modules */\nexport { DateTagModule } from './lib/date-tags/date-tag.module';\nexport { ListTagModule } from './lib/list-tags/list-tag.module';\nexport { DrTagModule } from './lib/dr-tags/dr-tag.module';\nexport { DrInputsModule } from './lib/dr-inputs/dr-inputs.module';\nexport { DrTooltipModule } from './lib/dr-tooltip/dr-tooltip.module';\nexport { DrAvatarModule } from './lib/dr-avatar/dr-avatar.module';\nexport { DrSpinnerModule } from './lib/dr-spinner/dr-spinner.module';\nexport { DrPopoverModule } from './lib/dr-popover/dr-popover.module';\nexport { DrDropdownModule } from './lib/dr-dropdown/dr-dropdown.module';\nexport { DrTabsModule } from './lib/dr-tabs/dr-tabs.module';\nexport { DrAccordionModule } from './lib/dr-accordion/accordion.module';\nexport { DrSharedUtils } from './lib/utils/dr-shared-utils';\nexport { DrLayoutModule } from './lib/dr-layout/dr-layout.module';\nexport { DrErrorModule } from './lib/dr-error/dr-error.module';\nexport { DrStepperModule } from './lib/stepper/stepper.module';\nexport { DrDialogModule } from './lib/dr-dialog/dialog.module';\nexport { DrChatModule } from './lib/dr-chat/chat.module';\nexport { DrDetailsListModule } from './lib/dr-details-list/dr-details-list.module';\nexport { DrScenarioModule } from './lib/dr-scenario/dr-scenario.module';\nexport { DrBadgeStatusModule } from './lib/dr-badge-status/dr-badge-status.module';\nexport { TreeviewModule } from './lib/dr-treeview/dr-tree-view.module';\nexport { DrAlertModule } from './lib/dr-alert/dr-alert.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {components as ɵa} from './lib/date-tags/date-tag.module';\nexport {DrBadgeStatusComponent as ɵbd} from './lib/dr-badge-status/dr-badge-status.component';\nexport {DrChatFormComponent as ɵe} from './lib/dr-chat/dr-chat-form/chat-form.component';\nexport {DrChatMessageComponent as ɵd} from './lib/dr-chat/dr-chat-message/chat-message.component';\nexport {DrChatCustomMessageDirective as ɵba} from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nexport {DrChatCustomMessageService as ɵc} from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nexport {DrChatMessageFileComponent as ɵy} from './lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component';\nexport {DrChatMessageTextComponent as ɵx} from './lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component';\nexport {DrChatSuggestionsComponent as ɵf} from './lib/dr-chat/dr-chat-suggestions/chat-suggestions.component';\nexport {DrDotFlashingComponent as ɵz} from './lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component';\nexport {DialogModalWrapperComponent as ɵw} from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nexport {DialogWrapperComponent as ɵv} from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport {DrDynamicTagComponent as ɵt} from './lib/dr-dynamic-tag/dr-dynamic-tag.component';\nexport {DrDynamicTagModule as ɵs} from './lib/dr-dynamic-tag/dr-dynamic-tag.module';\nexport {DrDatePickerFormatDirective as ɵk} from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport {DrDatePickerWithTimeframeComponent as ɵj} from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport {CustomDateAdapter as ɵg,DrDatePickerComponent as ɵh} from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport {DrDatePickerCustomHeaderComponent as ɵl} from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport {DrShowTimeframePipe as ɵm} from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport {DrDatePickerService as ɵi} from './lib/dr-inputs/date-pickers/services/dr-date-picker.service';\nexport {DrSelectAddItemComponent as ɵn} from './lib/dr-inputs/dr-select-add-item/dr-select-add-item.component';\nexport {DrScenarioConfigurationComponent as ɵbb} from './lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component';\nexport {DrScenarioTagConfigurationComponent as ɵbc} from './lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nexport {TooltipInfoSimpleComponent as ɵp} from './lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component';\nexport {TooltipInfoComponent as ɵo} from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport {TooltipNoBodyComponent as ɵq} from './lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component';\nexport {TooltipProcessDefaultComponent as ɵr} from './lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component';\nexport {TreeviewItemComponent as ɵbe} from './lib/dr-treeview/components/treeview-item/treeview-item.component';\nexport {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {StepperComponent as ɵu} from './lib/stepper/stepper.component';"],"names":["EventEmitter","Component","ViewEncapsulation","Input","Output","DateFromats","DatePickerPeriodPosition","TimeframeOption","CalendarView","DateTags","moment","_cloneDeep","_find","DateAdapter","MomentDateAdapter","MAT_DATE_LOCALE","MAT_MOMENT_DATE_ADAPTER_OPTIONS","_indexOf","Injectable","MAT_DATE_FORMATS","HostBinding","TagTypes","_map","_merge","_forEach","_some","NG_VALUE_ACCESSOR","ChangeDetectionStrategy","ChangeDetectorRef","Subject","startWith","switchMap","from","takeUntil","merge","isPlatformBrowser","fromEvent","filter","forwardRef","ElementRef","Inject","PLATFORM_ID","DOCUMENT","ContentChildren","noop","Renderer2","ViewChild","ContentChild","NgSelectComponent","Pipe","transition","style","animate","BehaviorSubject","TemplateRef","trigger","HostListener","TooltipTheme","ComponentPortal","skip","Directive","Overlay","OverlayPositionBuilder","ToggleButtonMode","SpinnerType","SpinnerSize","ComponentFactoryResolver","ViewContainerRef","DrPopoverAlignmentDimension","OverlayConfig","Injector","first","Host","state","FormGroupDirective","Optional","_","catchError","MatDialogRef","MAT_DIALOG_DATA","DIALOG_SIZE","DIALOG_BUTTON_LABEL","DIALOG_FIELD_TYPE","FormGroup","throwError","tap","finalize","FormControl","MatDialog","CHAT_MESSAGE_TYPE","ChatRole","DomSanitizer","DrAlertTheme","_a","isNil","pull","concat","isString","isBoolean","includes","TooltipPosition","Scenario","debounceTime","distinctUntilChanged","NgModel","BadgeStatus","FeedbackSentiment","_orderBy","_filter","_includes","_reduce","MatCalendar","NgControl","NgModule","CommonModule","components","FormsModule","ReactiveFormsModule","NgSelectModule","MatNativeDateModule","MatDatepickerModule","MatTooltipModule","_isObject","_isNil","_isNumber","MatTabsModule","ɵ0","MatDialogModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,QAAA,gBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,gBAAA,GAAA;IAOa,QAAA,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;IACrC,QAAA,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IACvB,QAAA,IAAY,CAAA,YAAA,GAAuB,SAAS,CAAC;IAC7C,QAAA,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;IAIzB,QAAA,IAAqB,CAAA,qBAAA,GAA2B,EAAE,CAAC;IAClD,QAAA,IAAA,CAAA,YAAY,GAA2B,IAAIA,eAAY,EAAY,CAAC;SAQjF;QANG,gBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,IAAI,EAAA;YAAvB,IAKC,KAAA,GAAA,IAAA,CAAA;IAJG,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACjC,YAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC,EAAE,GAAG,CAAC,CAAC;SACX,CAAA;;;;IAtBJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,yuDAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;oBAEpB,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;uBAEIC,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;+BACLC,SAAM,EAAA,CAAA;;AAcX,QAAA,eAAA,kBAAA,YAAA;IAOI,IAAA,SAAA,eAAA,GAAA;IANU,QAAA,IAAA,CAAA,UAAU,GAA2B,IAAIJ,eAAY,EAAY,CAAC;IACnE,QAAA,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;IACrC,QAAA,IAAY,CAAA,YAAA,GAAuB,SAAS,CAAC;YAEtD,IAAA,CAAA,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAG7B;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5C,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;QAED,eAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,KAAY,EAAA;IAC3B,QAAA,IAAM,KAAK,GAAuC,KAAK,CAAC,MAAM,CAAC;IAC/D,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtC,CAAA;QAED,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;;SAErB,CAAA;;;;IAjCJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,EAAE;IACZ,gBAAA,QAAQ,EAAE,SAAS;IACtB,aAAA,EAAA,EAAA;;;;6BAEIG,SAAM,EAAA,CAAA;uBACND,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;;;ICrCV;;;;;;;;;;;;;IAagF;IAChF;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,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;IACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;IAC1B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;IACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IACvC,IAAA,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,YAAA;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;IAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACjD,YAAA,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;IAChF,SAAA;IACD,QAAA,OAAO,CAAC,CAAC;IACb,KAAC,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;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;IAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,SAAA;IACL,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEK,SAAU,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAA;IACpD,IAAA,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;IAAE,QAAA,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;IAC1H,QAAA,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAAE,YAAA,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAAE,gBAAA,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;IAClJ,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAEe,SAAA,OAAO,CAAC,UAAU,EAAE,SAAS,EAAA;IACzC,IAAA,OAAO,UAAU,MAAM,EAAE,GAAG,EAAA,EAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;IAEe,SAAA,UAAU,CAAC,WAAW,EAAE,aAAa,EAAA;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;IAEK,SAAU,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;IACvD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;IACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,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;IAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,KAAC,CAAC,CAAC;IACP,CAAC;IAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;IACrC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,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,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE,EAAA;IACZ,QAAA,IAAI,CAAC;IAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC9D,QAAA,OAAO,CAAC;gBAAE,IAAI;IACV,gBAAA,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;IAAE,oBAAA,OAAO,CAAC,CAAC;IAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;IACT,oBAAA,KAAK,CAAC,CAAC;IAAC,oBAAA,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;IAC9B,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;IACjD,oBAAA,KAAK,CAAC;IAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IACjD,oBAAA;IACI,wBAAA,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;IAAE,yBAAA;IAC5G,wBAAA,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;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;IACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;IAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IAC9B,iBAAA;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9B,aAAA;IAAC,YAAA,OAAO,CAAC,EAAE;IAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAAS,oBAAA;IAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,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,EAAA;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,YAAA,EAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;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;IAEa,SAAA,YAAY,CAAC,CAAC,EAAE,CAAC,EAAA;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;IAAE,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAAE,YAAA,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAEK,SAAU,QAAQ,CAAC,CAAC,EAAA;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;IAC9E,IAAA,IAAI,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAA,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;IAC1C,YAAA,IAAI,EAAE,YAAA;IACF,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IACnC,gBAAA,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;IACF,IAAA,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;IACvB,IAAA,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAA,IAAI,CAAC,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC;IACjB,IAAA,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;IAAE,YAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAA;IACD,IAAA,OAAO,KAAK,EAAE;IAAE,QAAA,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAE,KAAA;IAC/B,YAAA;YACJ,IAAI;IACA,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAE,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,SAAA;IACO,gBAAA;IAAE,YAAA,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAAE,SAAA;IACpC,KAAA;IACD,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ,GAAA;IACpB,IAAA,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IAC9C,QAAA,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc,GAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IAAE,QAAA,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;IACpB,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEe,SAAA,aAAa,CAAC,EAAE,EAAE,IAAI,EAAA;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;YAC7D,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAEK,SAAU,OAAO,CAAC,CAAC,EAAA;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,EAAA;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACvF,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC9D,IAAA,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,YAAc,EAAA,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAI,EAAA,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;IAC1I,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAE,KAAA;IAAC,IAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE,KAAA,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,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;IACxH,IAAA,SAAS,OAAO,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;IAAE,QAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;IAEK,SAAU,gBAAgB,CAAC,CAAC,EAAA;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAA,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,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5I,IAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAI,EAAA,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;IAEK,SAAU,aAAa,CAAC,CAAC,EAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,IAAA,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,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAI,EAAA,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;IAChK,IAAA,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAI,EAAA,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;IAEe,SAAA,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAA;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;IAAE,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAAE,KAAA;IAAM,SAAA;IAAE,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAAE,KAAA;IAC/G,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACnD,IAAA,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,EAAA;IACd,IAAA,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;IAEI,SAAU,YAAY,CAAC,GAAG,EAAA;IAC5B,IAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;IAAE,QAAA,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;IAAE,YAAA,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAAE,gBAAA,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACzI,IAAA,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAEK,SAAU,eAAe,CAAC,GAAG,EAAA;IAC/B,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;IAC3D,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,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;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;IACnL,IAAA,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;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;QAClE,IAAI,IAAI,KAAK,GAAG;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxE,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,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;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IAClL,IAAA,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;;AC1OYE,iCAOX;IAPD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,yBAAA,CAAA,GAAA,YAAsC,CAAA;IACtC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,YAAgC,CAAA;IAChC,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,MAAoB,CAAA;IACpB,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,SAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,QAAyB,CAAA;IACzB,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,QAAsB,CAAA;IAC1B,CAAC,EAPWA,mBAAW,KAAXA,mBAAW,GAOtB,EAAA,CAAA,CAAA,CAAA;AAeD,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;YACY,IAAA,CAAA,MAAM,GAAc;gBACxB,SAAS,EAAEA,mBAAW,CAAC,iBAAiB;aAC3C,CAAC;YACM,IAAA,CAAA,QAAQ,GAAgB;gBAC5B,SAAS,EAAEA,mBAAW,CAAC,iBAAiB;IACxC,YAAA,cAAc,EAAE,UAAU;IAC1B,YAAA,aAAa,EAAE,IAAI;IACnB,YAAA,kBAAkB,EAAE,UAAU;IAC9B,YAAA,gBAAgB,EAAE,QAAQ;IAC1B,YAAA,SAAS,EAAE,MAAM;aACpB,CAAC;SAyBL;IAvBG,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAIT,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;IAND,QAAA,GAAA,EAAA,UAAU,KAAgB,EAAA;IACtB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACvD;;;IAAA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAIX,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,QAAQ,CAAC;aACxB;IAND,QAAA,GAAA,EAAA,UAAY,OAAoB,EAAA;IAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;aAC7D;;;IAAA,KAAA,CAAA,CAAA;IAMD,IAAA,gBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,KAAgB,EAAE,OAAqB,EAAA;IACpD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO,GAAG,KAAK,CAAC;IACnB,SAAA;IACD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAC1B,CAAA;QACJ,OAAA,gBAAA,CAAA;IAAA,CAAA,EAAA,EAAA;AAUWC,8CAKX;IALD,CAAA,UAAY,wBAAwB,EAAA;QAChC,wBAAA,CAAA,wBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;QACb,wBAAA,CAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;QAChB,wBAAA,CAAA,wBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;QACf,wBAAA,CAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACX,CAAC,EALWA,gCAAwB,KAAxBA,gCAAwB,GAKnC,EAAA,CAAA,CAAA,CAAA;AAEWC,qCAMX;IAND,CAAA,UAAY,eAAe,EAAA;IACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EANWA,uBAAe,KAAfA,uBAAe,GAM1B,EAAA,CAAA,CAAA,CAAA;AAEWC,kCAKX;IALD,CAAA,UAAY,YAAY,EAAA;IACpB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,OAAkB,CAAA;IAClB,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,MAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,MAAqB,CAAA;IACrB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;IAC5B,CAAC,EALWA,oBAAY,KAAZA,oBAAY,GAKvB,EAAA,CAAA,CAAA,CAAA;AAEWC,8BAKX;IALD,CAAA,UAAY,QAAQ,EAAA;IAChB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IAC7B,CAAC,EALWA,gBAAQ,KAARA,gBAAQ,GAKnB,EAAA,CAAA,CAAA;;ICtFD;IAEA;IACA,IAAMC,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,4BAA4B,GAAG,YAAY,CAAC;AAelD,QAAA,oBAAA,kBAAA,UAAA,MAAA,EAAA;QAA0C,SAAe,CAAA,oBAAA,EAAA,MAAA,CAAA,CAAA;IA6BrD,IAAA,SAAA,oBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IA9BQ,QAAA,KAAwB,CAAA,wBAAA,GAAGJ,gCAAwB,CAAC;IAGpD,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IACvB,QAAA,KAAqB,CAAA,qBAAA,GAA2B,EAAE,CAAC;IAE5D,QAAA,KAAa,CAAA,aAAA,GAAuB,SAAS,CAAC;IAE9C,QAAA,KAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;YAE5B,KAAA,CAAA,YAAY,GAAU;gBAClB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC7C,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;aAChD,CAAC;IAEM,QAAA,KAAa,CAAA,aAAA,GAAG,IAAI,CAAC;IACrB,QAAA,KAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;;SAIlC;QAED,oBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,GAAGI,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAGA,QAAM,EAAE,CAAC;IAC9E,QAAA,IAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;IAC/D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAEvF,IAAI,CAAC,YAAY,GAAGA,QAAM;iBACrB,GAAG,CACG,IAAI,CAAC,mBAAmB,SAAI,IAAI,CAAC,mBAAmB,GAAA,GAAA,GAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAG,EAC9I,4BAA4B,CAC/B;IACA,aAAA,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IAChB,aAAA,IAAI,EAAE,CAAC;YAEZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAExB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrB,IAAI,CAAC,aAAa,GAAGC,WAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,SAAA;SACJ,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YAAA,IAWC,KAAA,GAAA,IAAA,CAAA;IAVG,QAAA,IAAM,IAAI,GAAGD,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,WAAW,EAAA;gBACjD,WAAW,CAAC,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;oBAClD,IAAM,MAAM,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,gBAAA,OAAO,MAAM,CAAC,KAAK,EAAE,KAAK,WAAW,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;IAC5E,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,WAAW,CAAC;IACvB,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAChC,SAAA;SACJ,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,UAAuB,OAAO,EAAE,uBAAuB,EAAA;YACnD,IAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,uBAAuB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAC/C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;IAED,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SACtD,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAA;IACpE,QAAA,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,EAAE;IACnB,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,uBAAuB,IAAI,uBAAuB,KAAK,CAAC,EAAE;oBACjF,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,uBAAuB,IAAI,uBAAuB,KAAK,CAAC,EAAE;oBAChF,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IACD,QAAA,OAAO,WAAW,CAAC;SACtB,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YACI,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;YACI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAGC,WAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YAAA,IAkCC,KAAA,GAAA,IAAA,CAAA;;YAjCG,IAAI,IAAI,CAAC,mBAAmB;gBAAE,OAAO;IAErC,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;YACjC,IAAM,IAAI,GAAGD,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,QAAA,IAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;IAC/D,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;IAEtD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC7C,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE1D,IAAI,uBAAuB,KAAK,CAAC,EAAE;oBAC/B,IAAI,CAAC,gBAAgB,EAAE;IACnB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,uBAAuB,CAAC,CAAC;IACjE,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC;IAChE,iBAAA;IACJ,aAAA;IAED,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAExC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAChC,YAAA,UAAU,CAAC,YAAA;IACP,gBAAA,KAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACrC,aAAC,CAAC,CAAC;IACN,SAAA;IAED,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;IACxB,YAAA,KAAK,EAAE,CAAI,CAAA,EAAA,GAAAE,MAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAM,IAAA,IAAA,GAAM,IAAI,CAAC,IAAI,EAAG,GAAG,GAAA;IAC/F,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAACF,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC3D,CAAC;IACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,oBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;IACX,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;IACjC,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;IAClE,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KAhKN,CAA0C,eAAe;;IAbxD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAA0C,EAAA,6gEAAA;IAC1C,gBAAA,QAAQ,EAAE,cAAc;IAExB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACJ,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;uCAIIb,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;;;AC7BV,QAAA,kBAAA,kBAAA,YAAA;IAiBI,IAAA,SAAA,kBAAA,GAAA;SACC;IAEa,IAAA,kBAAA,CAAA,sBAAsB,GAA7B,UAA8B,IAAY,EAAE,oBAA4B,EAAA;YAC3E,IAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAC5C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,EAAE;IAC3C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;IAED,QAAA,OAAOc,SAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC;SAC7G,CAAA;IAEa,IAAA,kBAAA,CAAA,qBAAqB,GAA5B,UAA6B,IAAY,EAAE,oBAA4B,EAAE,cAAuB,EAAA;IACnG,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE9B,IAAI,CAAC,cAAc,EAAE;gBACjB,IAAI,KAAK,GAAG,CAAC,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;oBACjE,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IAAM,aAAA;gBACH,IAAI,KAAK,GAAG,CAAC,GAAG,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;oBAChE,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IAED,QAAA,OAAO,WAAW,CAAC;SACtB,CAAA;QAEa,kBAAgB,CAAA,gBAAA,GAAvB,UAAwB,KAAa,EAAA;YACxC,OAAO,kBAAkB,CAAC,eAAe,CAAC,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;SACpF,CAAA;QAEa,kBAAqC,CAAA,qCAAA,GAA5C,UACH,YAAoB,EACpB,UAAkB,EAClB,oBAA4B,EAC5B,cAAuB,EAAA;IAEvB,QAAA,IAAM,aAAa,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,YAAY,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;YACpH,OAAO,kBAAkB,CAAC,uBAAuB,CAAC,aAAa,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;SAC1G,CAAA;IAEa,IAAA,kBAAA,CAAA,0BAA0B,GAAjC,UACH,IAAY,EACZ,UAAkB,EAClB,oBAA4B,EAAA;IAE5B,QAAA,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI;gBAAE,OAAO;IAEjC,QAAA,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAErC,QAAA,IAAM,WAAW,GAAW,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,IAAI,CAC7E,UAAC,GAAW,EAAK,EAAA,OAAA,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,UAAU,CAAtD,EAAsD,CAC1E,CAAC;IACF,QAAA,IAAM,0BAA0B,GAAG,WAAW,GAAG,oBAAoB,GAAG,CAAC,CAAC;IAC1E,QAAA,IAAM,WAAW,GAAG,0BAA0B,IAAI,EAAE,GAAG,0BAA0B,GAAG,EAAE,GAAG,0BAA0B,CAAC;IAEpH,QAAA,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SACtE,CAAA;IAEa,IAAA,kBAAA,CAAA,uBAAuB,GAA9B,UACH,mBAA2B,EAC3B,oBAA4B,EAC5B,cAAuB,EAAA;IAEvB,QAAA,IAAI,CAAC,mBAAmB;gBAAE,OAAO;IAEjC,QAAA,IAAI,qBAAqB,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACxD,QAAA,IAAI,cAAc,EAAE;IAChB,YAAA,IAAI,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;IACxF,gBAAA,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACxC,aAAA;IACJ,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;IACzF,gBAAA,qBAAqB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,aAAA;IACJ,SAAA;IACD,QAAA,OAAO,qBAAqB,CAAC,IAAI,EAAE,CAAC;SACvC,CAAA;;;IApGuB,kBAAU,CAAA,UAAA,GAAG,CAAC,CAAC;IACxB,kBAAA,CAAA,eAAe,GAAG;IAC7B,IAAA,GAAG,EAAE,MAAM;IACX,IAAA,GAAG,EAAE,MAAM;IACX,IAAA,GAAG,EAAE,MAAM;IACX,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,IAAI,EAAE,MAAM;IACZ,IAAA,IAAI,EAAE,MAAM;KACf,CAAC;;gBAhBLC,aAAU,EAAA;;;;ICCX;IACA,IAAMR,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,aAAa,GAAG;IAClB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,YAAY;IAC1B,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,WAAW;IACtB,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAY6C,aAAa,CAAA;AAI5D,QAAA,iBAAA,kBAAA,UAAA,MAAA,EAAA;QAAuC,SAAe,CAAA,iBAAA,EAAA,MAAA,CAAA,CAAA;IAUlD,IAAA,SAAA,iBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;;SAM/B;IAXD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;aACvE;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,IAAIA,QAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACjC,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACvB,SAAA;SACJ,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAa,EAAA;YAC1B,IAAM,UAAU,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;IACxB,YAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;IACrC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;aACvC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;;QAGD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;IACX,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC;IAClE,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KA/CN,CAAuC,eAAe;;IAdrD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAuC,EAAA,sWAAA;IAEvC,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEG,qBAAgB,EAAE,QAAQ,MAAe,EAAE;IACzD,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;IAGI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAK1BjB,QAAK,EAAA,CAAA;;;ICrCV;IACA,IAAMO,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAOjC,QAAA,mBAAA,kBAAA,UAAA,MAAA,EAAA;QAAyC,SAAe,CAAA,mBAAA,EAAA,MAAA,CAAA,CAAA;IAYpD,IAAA,SAAA,mBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IAChC,QAAA,KAAa,CAAA,aAAA,GAAG,CAAC,CAAC;IAClB,QAAA,KAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;;SAIpB;IAbD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAAA,IAKC,KAAA,GAAA,IAAA,CAAA;gBAHG,OAAO,IAAI,CAAC,QAAQ;sBACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,OAAO,EAAK,EAAA,OAAA,CAAC,KAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAA5C,EAA4C,CAAC;sBAC7E,KAAK,CAAC;aACf;;;IAAA,KAAA,CAAA,CAAA;QAUD,mBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;IACnB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;;IACI,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;;gBAEzC,KAAsB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,QAAQ,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAhC,gBAAA,IAAM,OAAO,GAAA,EAAA,CAAA,KAAA,CAAA;oBACd,IAAI,OAAO,CAAC,UAAU,EAAE;IACpB,oBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC7B,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClC,iBAAA;IAED,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAA;;;;;;;;;SACJ,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,OAAO,EAAA;YACpB,IAAM,UAAU,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;gBACxB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAClD,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;aACpC,CAAC;IACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACI,IAAM,mBAAmB,GAAG,CAAC,CAAC;YAC9B,IAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,QAAA,IAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,YAAY,GAAG,WAAW,CAAC;IAC/B,QAAA,IAAI,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;IACnB,YAAA,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3C,SAAA;IAED,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,UAAU,CAAC,GAAG,kBAAkB,CAAC;YACtG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,CAAC;IAAC,QAAA,IAAI,SAAS,CAAC;YACrB,IAAM,SAAS,GAAU,EAAE,CAAC;IAC5B,QAAA,KAAK,CAAC,GAAG,CAAC,GAAG,mBAAmB,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,EAAE;IACtD,YAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,YAAA,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,YAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,YAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,SAAS,GAAG,IAAI;IACvB,gBAAA,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IACtC,gBAAA,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,gBAAA,QAAQ,EAAE,KAAK;IAClB,aAAA,CAAC,CAAC;IACN,SAAA;IACD,QAAA,OAAO,SAAS,CAAC;SACpB,CAAA;QAEO,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,SAAS,EAAA;IAC7B,QAAA,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;SACjF,CAAA;QAEO,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,IAAI,EAAA;IACxB,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC9D,CAAA;QAED,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,OAAO,EAAA;YACd,IAAM,WAAW,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,OAAO,EAAE,EAAE;IACxF,gBAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,gBAAA,OAAO,IAAI,CAAC;IACf,aAAA;IAED,YAAA,OAAO,KAAK,CAAC;IACjB,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KA7GN,CAAyC,eAAe;;IALvD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAyC,EAAA,geAAA;IAEzC,gBAAA,QAAQ,EAAE,aAAa;;IAC1B,aAAA,EAAA,EAAA;;;;IAEI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAO1BjB,QAAK,EAAA,CAAA;;;ICdV;IACA,IAAMO,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,YAAY,GAAG;IACjB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,SAAS;IACvB,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,iBAAiB;IAC5B,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAY6C,YAAY,CAAA;AAG3D,QAAA,gBAAA,kBAAA,UAAA,MAAA,EAAA;QAAsC,SAAe,CAAA,gBAAA,EAAA,MAAA,CAAA,CAAA;IAUjD,IAAA,SAAA,gBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;;SAM/B;IAXD,IAAA,MAAA,CAAA,cAAA,CACI,gBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;aACvE;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,IAAIA,QAAM,EAAE,CAAC,IAAI,EAAE,CAAE;IACxD,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAC9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;SACpC,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACtB,SAAA;SACJ,CAAA;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;IACX,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACzB,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;IAChE,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;QAEF,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAa,EAAA;IAC1B,QAAA,IAAM,UAAU,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvD,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;IACxB,YAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACpC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;aACvC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAEO,gBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAM,EAAA;YACvB,OAAQ,GAAA,GAAK,MAAM,CAAC,IAAI,EAAG,SAAK,MAAM,CAAC,IAAI,EAAK,CAAC;SACpD,CAAA;;KApDL,CAAsC,eAAe;;IAbpD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,wTAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;IAEpB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEG,qBAAgB,EAAE,QAAQ,MAAc,EAAE;IACxD,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;IAEI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAK1BjB,QAAK,EAAA,CAAA;;;IClCV;IACA,IAAMO,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,YAAY,GAAG;IACjB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,MAAM;IACpB,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,MAAM;IACjB,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAY6C,YAAY,CAAA;AAI3D,QAAA,gBAAA,kBAAA,UAAA,MAAA,EAAA;QAAsC,SAAe,CAAA,gBAAA,EAAA,MAAA,CAAA,CAAA;IAUjD,IAAA,SAAA,gBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;;SAM/B;IAXD,IAAA,MAAA,CAAA,cAAA,CACI,gBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;aACvE;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,IAAIA,QAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACjC,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACtB,SAAA;SACJ,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAa,EAAA;YAC1B,IAAM,UAAU,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEpB,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;IACxB,YAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IAChC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;aACvC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;IACX,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAErC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,gBAAgB,CAAC;IAChD,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KA9CN,CAAsC,eAAe;;IAdpD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,qWAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;IAEpB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEG,qBAAgB,EAAE,QAAQ,MAAc,EAAE;IACxD,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;IAGI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAK1BjB,QAAK,EAAA,CAAA;;;ICxCV;IACA;AACYkB,8BAGX;IAHD,CAAA,UAAY,QAAQ,EAAA;IAChB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EAHWA,gBAAQ,KAARA,gBAAQ,GAGnB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,iBAWX,CAAA;IAXD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;IACjC,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC/B,CAAC,EAXW,iBAAiB,KAAjB,iBAAiB,GAW5B,EAAA,CAAA,CAAA;;ACED,QAAA,cAAA,kBAAA,YAAA;IAiDI,IAAA,SAAA,cAAA,GAAA;IA7CS,QAAA,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IAKvB,QAAA,IAAgB,CAAA,gBAAA,GAAgB,EAAE,CAAC;;IAYnC,QAAA,IAAqB,CAAA,qBAAA,GAA2B,EAAE,CAAC;YAElD,IAAA,CAAA,SAAS,GAAgC,IAAIrB,eAAY,EAAiB,CAAC;IAC3E,QAAA,IAAA,CAAA,gBAAgB,GAAkC,IAAIA,eAAY,EAAmB,CAAC;IACtF,QAAA,IAAA,CAAA,aAAa,GAAmC,IAAIA,eAAY,EAAoB,CAAC;IAIxF,QAAA,IAA4B,CAAA,4BAAA,GAAG,KAAK,CAAC;IACrC,QAAA,IAAQ,CAAA,QAAA,GAAGqB,gBAAQ,CAAC;IAKV,QAAA,IAAe,CAAA,eAAA,GAAG,CAAC,iBAAiB,CAAC,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEpF,QAAA,IAAmB,CAAA,mBAAA,GAAoB,EAAE,CAAC;IAE1C,QAAA,IAAc,CAAA,cAAA,GAAoB,EAAE,CAAC;YAWzC,IAAI,CAAC,WAAW,GAAG;IACf,YAAA,EAAE,EAAE,CAAC;IACL,YAAA,KAAK,EAAE,SAAS;IAChB,YAAA,IAAI,EAAE,EAAE;aACX,CAAC;SACL;IA5CD,IAAA,MAAA,CAAA,cAAA,CACW,cAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IA6BxB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,cAAc,CAAC;aAC9B;IAhCD,QAAA,GAAA,EAAA,UACyB,IAAqB,EAAA;IAC1C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;aACpC;;;IAAA,KAAA,CAAA,CAAA;IA+BD,IAAA,MAAA,CAAA,cAAA,CAAW,cAAwB,CAAA,SAAA,EAAA,0BAAA,EAAA;IAAnC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,cAAc,CAAC;aACzG;;;IAAA,KAAA,CAAA,CAAA;QAUD,cAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,aAA4B,EAAA;YACpC,IAAI,aAAa,CAAC,UAAU,EAAE;gBAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC9B,SAAA;SACJ,CAAA;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;;YACI,IAAI,CAAC,OAAO,GAAG;IACX,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;IACzB,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ;gBACzC,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,0CAAE,KAAK;aACjC,CAAC;YAEF,IAAI,CAAC,OAAO,GAAG;IACX,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;IACzB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;IACzB,YAAA,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;gBAC7B,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,0CAAE,KAAK;aACjC,CAAC;IAEF,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC5B,SAAA;IAED,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE;gBAClF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;IAC5D,SAAA;SACJ,CAAA;QAED,cAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAe,EAAA;YACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE;IACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAkB;IAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;gBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;aACvB,CAAC;IAEF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,CAAA;QAED,cAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAe,EAAA;YACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE;IACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAkB;IAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;IACrB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;gBACzB,KAAK,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,CAAA;QAED,cAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,GAAmB,EAAA;IAClC,QAAA,IAAI,GAAG,EAAE;IACL,YAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC9B,SAAA;IAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAK,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,IAAI,CAAC,mBAAmB,CAAE,CAAA,EAAA,CAAA,IAAI,CAAC,eAAe,GAAE,CAAC;SACnF,CAAA;QAEO,cAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;YAC1B,IAAM,sBAAsB,GAAGT,MAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,SAAS,EAAA,EAAK,OAAA,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAA,EAAA,CAAC,CAAC;YACpG,IAAI,CAAC,aAAa,GAAGU,KAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAA,GAAG,EAAA;IAC7C,YAAA,IAAI,GAAG,CAAC,EAAE,KAAK,sBAAsB,CAAC,EAAE,EAAE;IACtC,gBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACxB,gBAAA,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE1B,gBAAA,IAAI,sBAAsB,CAAC,IAAI,KAAKD,gBAAQ,CAAC,IAAI,EAAE;IAC/C,oBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,iBAAA;IACJ,aAAA;IAED,YAAA,OAAO,GAAG,CAAC;IACf,SAAC,CAAC,CAAC;IAEH,QAAA,IAAM,WAAW,GAAkB;gBAC/B,EAAE,EAAE,sBAAsB,CAAC,EAAE;gBAC7B,IAAI,EAAE,sBAAsB,CAAC,IAAI;gBACjC,KAAK,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC;IAEF,QAAA,IAAI,sBAAsB,CAAC,IAAI,KAAKA,gBAAQ,CAAC,IAAI,EAAE;IAC/C,YAAA,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,YAAA,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACrC,SAAA;IAGD,QAAA,IAAM,QAAQ,GAAGT,MAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzE,QAAA,IAAI,QAAQ,EAAE;IACV,YAAAW,OAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjC,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,SAAA;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IA4BP,KAAA,GAAA,IAAA,CAAA;IA3BG,QAAAC,SAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,SAAS,EAAA;;IAChC,YAAA,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,OAAO;IACvE,YAAA,IAAI,SAAS,CAAC,IAAI,KAAKH,gBAAQ,CAAC,IAAI,EAAE;oBAClC,KAAI,CAAC,OAAO,GAAG;wBACX,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,oBAAA,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ;wBACpC,KAAK,EAAE,CAACT,MAAK,CAAC,KAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK;qBACvE,CAAC;IACL,aAAA;IAED,YAAA,IAAI,SAAS,CAAC,IAAI,KAAKS,gBAAQ,CAAC,IAAI,EAAE;oBAClC,KAAI,CAAC,OAAO,GAAG;wBACX,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,MAAM,EAAE,SAAS,CAAC,MAAM;IACxB,oBAAA,KAAK,EAAE,CAAA,EAAA,GAAA,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa;qBAC3C,CAAC;IACL,aAAA;IAED,YAAA,IAAI,CAACT,MAAK,CAAC,KAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE;IAClD,gBAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC;wBACpB,EAAE,EAAE,SAAS,CAAC,EAAE;wBAChB,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,oBAAA,KAAK,EAAE,SAAS;IACnB,iBAAA,CAAC,CAAC;IACN,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;YAAA,IAOP,KAAA,GAAA,IAAA,CAAA;YANG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;IAE1D,QAAA,IAAI,CAAC,4BAA4B,GAAGa,MAAK,CACrC,IAAI,CAAC,UAAU,EACf,UAAC,SAAS,EAAK,EAAA,OAAA,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAA7F,EAA6F,CAC/G,CAAC;SACL,CAAA;;;;IAhNJ,IAAA,EAAA,IAAA,EAAAxB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAoC,EAAA,ulDAAA;IACpC,gBAAA,QAAQ,EAAE,QAAQ;oBAElB,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;;4BAEIC,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;6BAELA,QAAK,EAAA,CAAA;mCACLA,QAAK,EAAA,CAAA;gCAELA,QAAK,EAAA,CAAA;yCAKLA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,CAAA;wCAGLA,QAAK,EAAA,CAAA;4BAELC,SAAM,EAAA,CAAA;mCACNA,SAAM,EAAA,CAAA;gCACNA,SAAM,EAAA,CAAA;;;AClCX,QAAA,gBAAA,kBAAA,YAAA;IAOI,IAAA,SAAA,gBAAA,GAAA;IALS,QAAA,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;IAGjB,QAAA,IAAA,CAAA,SAAS,GAA2B,IAAIJ,eAAY,EAAY,CAAC;SAG1E;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC5C,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;IAClB,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,QAAA,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;IACvB,YAAA,IAAM,SAAS,GAAa;oBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,gBAAA,KAAK,EAAA,KAAA;iBACR,CAAC;IACF,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,SAAA;SACJ,CAAA;;;;IA9BJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,wwBAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;oBAEpB,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;;yBAGIC,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BACLC,SAAM,EAAA,CAAA;;;ICVX;IACA,IAAMM,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,WAAW,GAAG;IAChB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,YAAY;IAC1B,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,YAAY;IACvB,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAY6C,WAAW,CAAA;AAI1D,QAAA,eAAA,kBAAA,UAAA,MAAA,EAAA;QAAqC,SAAe,CAAA,eAAA,EAAA,MAAA,CAAA,CAAA;IAUhD,IAAA,SAAA,eAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;;SAM/B;IAXD,IAAA,MAAA,CAAA,cAAA,CACI,eAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;aACvE;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,IAAIA,QAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACjC,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACrB,SAAA;SACJ,CAAA;QAED,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAa,EAAA;YAC1B,IAAM,IAAI,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;IAClB,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAChC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;aACjC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,eAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,UAAU,EAAA;IACjB,QAAA,IAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;YAE/B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;IACpC,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KA5CN,CAAqC,eAAe;;IAdnD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAqC,EAAA,sWAAA;IACrC,gBAAA,QAAQ,EAAE,SAAS;IAEnB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEG,qBAAgB,EAAE,QAAQ,MAAa,EAAE;IACvD,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;IAGI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAK1BjB,QAAK,EAAA,CAAA;;;ACzBV,QAAA,oBAAA,kBAAA,YAAA;IA2BI,IAAA,SAAA,oBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAxBhC,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAIH,eAAY,EAAE,CAAC;IAWtD,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAQ1B,QAAA,IAAA,CAAA,QAAQ,IAAS,UAAA,SAAS,EAAA;IAC1B,SAAC,CAAC,CAAC;YACH,IAAS,CAAA,SAAA,GAAQ,YAAA;IACjB,SAAC,CAAC;SAGD;IAvBD,IAAA,MAAA,CAAA,cAAA,CACI,oBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB;IAED,QAAA,GAAA,EAAA,UAAa,QAAiB,EAAA;IAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;aAC7B;;;IAJA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;;;IAAA,KAAA,CAAA,CAAA;QAUD,oBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAE,EAAA;IACf,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,oBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAE,EAAA;IAChB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,oBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IACxB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,oBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAK,EAAA;IACd,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;IACtB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,SAAA;SACJ,CAAA;QAED,oBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAK,EAAA;IACd,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC,CAAA;QAED,oBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAY,EAAA;IACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;IACI,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;;;;IA1EJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA4C,EAAA,2VAAA;IAE5C,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEyB,uBAAiB;IAC1B,wBAAA,WAAW,EAAE,oBAAoB;IACjC,wBAAA,KAAK,EAAE,IAAI;IACd,qBAAA;IACJ,iBAAA;oBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAfiCC,oBAAiB,EAAA;;;uBAiB9CzB,QAAK,EAAA,CAAA;IACL,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,OAAO,EAAA,EAAA,CAAA;8BACbC,SAAM,EAAA,CAAA;2BAEND,QAAK,EAAA,CAAA;;;ACaV,QAAA,mBAAA,kBAAA,YAAA;IAgCI,IAAA,SAAA,mBAAA,CACc,WAAoC,EACf,UAAU,EACb,QAAQ,EAAA;IAF1B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;IACf,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAA;IACb,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAA;IAI9B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI0B,YAAO,EAAQ,CAAC;IAO/B,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI7B,eAAY,EAAE,CAAC;IACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,UAAC,KAAU,EAAA;IAChC,SAAC,CAAC;YACQ,IAAS,CAAA,SAAA,GAAG,YAAA;IACtB,SAAC,CAAC;SAbD;IAnCD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IADT,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;IAED,QAAA,GAAA,EAAA,UAAU,KAAU,EAAA;IAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;;;IALA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IADR,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;IAED,QAAA,GAAA,EAAA,UAAS,IAAY,EAAA;IACjB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;;;IALA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB;IAED,QAAA,GAAA,EAAA,UAAa,QAAiB,EAAA;IAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;;;IALA,KAAA,CAAA,CAAA;IA2BD,IAAA,mBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YAAA,IAiBC,KAAA,GAAA,IAAA,CAAA;;;;;;YAXG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEnB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CACpB8B,mBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;IAKtB,QAAAC,mBAAS,CAAC,UAAC,MAAuC,EAAK,EAAA,OAAAC,SAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA,EAAA,CAAC,EACrFC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,0BAA0B,EAAE,CAAjC,EAAiC,CAAC,CAAC;SACxD,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,mBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC9B,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,YAAA;YACN,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAChC,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YAAA,IAIT,KAAA,GAAA,IAAA,CAAA;YAHG,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAA2B,IAAK,OAAA,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,CAAzB,EAAyB,CAAC,CAAC;IACnF,SAAA;SACJ,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YAAA,IAIT,KAAA,GAAA,IAAA,CAAA;IAHG,QAAA,IAAI,CAAC,2BAA2B,CAAC,UAAC,KAA2B,EAAA;IACzD,YAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC;IAClC,SAAC,CAAC,CAAC;SACN,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YAAA,IAIT,KAAA,GAAA,IAAA,CAAA;IAHG,QAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;IACtC,YAAA,IAAI,CAAC,2BAA2B,CAAC,UAAC,KAA2B,IAAK,OAAA,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAA9B,EAA8B,CAAC,CAAC;IACrG,SAAA;SACJ,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,YAAA;YAAA,IAgBT,KAAA,GAAA,IAAA,CAAA;YAfG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACrC,OAAO;IACV,SAAA;IAED,QAAAC,UAAK,wCAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAA2B,EAAK,EAAA,OAAA,KAAK,CAAC,WAAW,GAAA,CAAC,IAAE,IAAI,CAC9ED,mBAAS,CACLC,UAAK,CACD,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,QAAQ,CAChB,CACJ,CACJ,CAAC,SAAS,CAAC,UAAC,KAAU,EAAA;IACnB,YAAA,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,YAAA,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,SAAC,CAAC,CAAC;SACN,CAAA;QAES,mBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,KAAU,EAAA;IAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACxB,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YAAA,IAqBT,KAAA,GAAA,IAAA,CAAA;IApBG,QAAA,IAAM,WAAW,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACxD,IAAI,CAACC,wBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,WAAW,EAAE;gBACpD,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;YACnDC,cAAS,CAAQ,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CACzCC,gBAAM,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAA1C,EAA0C,CAAC,EAC3DN,mBAAS,CAAC,YAAM,EAAA,OAAAG,UAAK,CACjBE,cAAS,CAAQ,KAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAC1CA,cAAS,CAAQ,KAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC3C,GAAA,CAAC,EACFC,gBAAM,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,GAAA,CAAC,EAC5DJ,mBAAS,CACLC,UAAK,CACD,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,QAAQ,CAChB,CACJ,CACJ,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,SAAS,EAAE,CAAA,EAAA,CAAC,CAAC;SACvC,CAAA;QAES,mBAA2B,CAAA,SAAA,CAAA,2BAAA,GAA3B,UAA4B,QAAwC,EAAA;YAC1E,IAAI,IAAI,CAAC,MAAM,EAAE;IACb,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAA;oBACtB,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC,aAAa,EAAE,CAAC;IAC1B,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,YAAA;IACN,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK,EAAA,EAAK,OAAA,KAAK,CAAC,UAAU,CAAhB,EAAgB,CAAC,CAAC;IACnE,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;YACvE,IAAI,YAAY,IAAI,cAAc,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;IACrE,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IACnC,SAAA;SACJ,CAAA;;;;IAjMJ,IAAA,EAAA,IAAA,EAAAjC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAAQ,EAAE,gEAC6C;IACvD,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEyB,uBAAiB;4BAC1B,WAAW,EAAEY,aAAU,CAAC,YAAA,EAAM,OAAA,mBAAmB,CAAA,EAAA,CAAC;IAClD,wBAAA,KAAK,EAAE,IAAI;IACd,qBAAA;IACJ,iBAAA;oBACD,eAAe,EAAEX,0BAAuB,CAAC,MAAM;IAClD,aAAA,EAAA,EAAA;;;gBA5BGY,aAAU,EAAA;IA+DL,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,SAAM,SAACC,cAAW,EAAA,EAAA,CAAA,EAAA;IAClB,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,SAAM,SAACE,eAAQ,EAAA,EAAA,CAAA,EAAA;;;wBAjCnBvC,QAAK,EAAA,CAAA;uBAULA,QAAK,EAAA,CAAA;2BAULA,QAAK,EAAA,CAAA;IAsBL,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAwC,kBAAe,SAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,EAAA,CAAA;8BAE3DvC,SAAM,EAAA,CAAA;;;ACpEX,QAAA,iBAAA,kBAAA,YAAA;IAuBI,IAAA,SAAA,iBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IArBjC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IACjB,QAAA,IAAI,CAAA,IAAA,GAAiB,EAAE,CAAC;IAYzB,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IACrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIJ,eAAY,EAAE,CAAC;YAE7C,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SAGD;IAnBD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IADjB,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,cAAc,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAkB,KAAc,EAAA;IAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC;IAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IALA,KAAA,CAAA,CAAA;QAkBD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAc,EAAA;IACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAK,EAAA;IACV,QAAA,IAAM,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC;IACjD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB,CAAA;;;;IA5DJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IACvB,gBAAA,QAAwC,EAAA,qZAAA;IAExC,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAEyB,uBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9E,iBAAA;oBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAXiCC,oBAAiB,EAAA;;;gCAa9CzB,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;gCAELA,QAAK,EAAA,CAAA;gCAWLC,SAAM,EAAA,CAAA;;;ACCX,QAAA,gBAAA,kBAAA,YAAA;IAyGI,IAAA,SAAA,gBAAA,CAAoB,UAAsB,EACtB,QAAmB,EACnB,GAAsB,EAAA;IAFtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IACnB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IA1G1C,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IA6BV,QAAA,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC;IAEhB,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;IACjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAiBhB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAIJ,eAAY,EAAE,CAAC;IAC1B,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAIA,eAAY,EAAE,CAAC;IAOrD,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;IAClB,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;IACjB,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;YAC7B,IAAA,CAAA,cAAc,GAAG;IACb,YAAA,IAAI,EAAE,KAAK;IACX,YAAA,WAAW,EAAE,KAAK;IAClB,YAAA,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,UAAC,MAAW,EAAE,OAAY,EAAK,EAAA,OAAA,IAAI,CAAA,EAAA;IAClD,YAAA,IAAI,EAAE,MAAM;aACf,CAAC;IAKQ,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIA,eAAY,EAAO,CAAC;IACxC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAIA,eAAY,EAAO,CAAC;IACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIA,eAAY,EAAO,CAAC;IAMzB,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC,CAAC;IACvC,QAAA,IAAgB,CAAA,gBAAA,GAAqB4C,SAAI,CAAC;IAC1C,QAAA,IAAiB,CAAA,iBAAA,GAAeA,SAAI,CAAC;YACrC,IAAQ,CAAA,QAAA,GAAyB,YAAA;IACjC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SAsBD;IAzGD,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAK,EAAA;IACvB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAA1B,QAAA,GAAA,EAAA,UAA2B,KAAK,EAAA;gBAAhC,IAqBC,KAAA,GAAA,IAAA,CAAA;;IApBG,YAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,cAAc,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,cAAc,CAAA,EAAK,KAAK,CAAE,CAAC;oBAC3D,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,MAAI,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,CAAA,EAAE;IAC/D,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,iBAAA;IACJ,aAAA;IACD,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;IACjC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,UAAC,KAAK,EAAA;IACjF,oBAAA,KAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,oBAAA,KAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,iBAAC,CAAC,CAAC;IACH,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,UAAA,KAAK,EAAA;wBACnE,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,KAAI,CAAC,UAAU,CAAC,aAAa,EAAE;IAC3D,wBAAA,IAAI,KAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;IAChF,4BAAA,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,yBAAA;IACJ,qBAAA;IACL,iBAAC,CAAC,CAAC;IACN,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAtB,QAAA,GAAA,EAAA,UAAuB,GAAG,EAAA;IACtB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;gBACxB,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,aAAA;IAAM,iBAAA;IACH,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,KAAK,WAAW,CAApB,EAAoB,CAAC,CAAC;IAChF,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CACI,gBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IADhB,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;QAgCD,gBAAG,CAAA,SAAA,CAAA,GAAA,GAAH,UAAI,GAAW,EAAA;YACX,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,gBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAiB,CAAkB,EAAA;IAC/B,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;IACvB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAClD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IARA,KAAA,CAAA,CAAA;IAgBD,IAAA,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACI,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,SAAA;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAA;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAA;IACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;IACxB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAA;SACJ,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC9B,CAAA;QAED,gBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC/B,CAAA;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAsB,EAAA;IAC7B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAChC,QAAA,IAAI,UAAU,EAAE;IACZ,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,KAAK,UAAU,CAAnB,EAAmB,CAAC,CAAC;IAC/E,SAAA;IACD,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;IAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,gBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,MAAW,EAAA;IACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC,CAAA;QAED,gBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,MAAW,EAAA;IACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;QAED,gBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,MAAM,EAAA;IACV,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACI,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC3C,CAAA;;;;IAhMJ,IAAA,EAAA,IAAA,EAAA3C,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,UAAU;IACpB,gBAAA,QAAwC,EAAA,28BAAA;IAExC,gBAAA,SAAS,EAAE,CAAC;IACR,wBAAA,OAAO,EAAEyB,uBAAiB;4BAC1B,WAAW,EAAEY,aAAU,CAAC,YAAA,EAAM,OAAA,gBAAgB,CAAA,EAAA,CAAC;IAC/C,wBAAA,KAAK,EAAE,IAAI;yBACd,CAAC;oBACF,eAAe,EAAEX,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAtBGY,aAAU,EAAA;gBAOVM,YAAS,EAAA;gBAVTjB,oBAAiB,EAAA;;;2BA6BhBzB,QAAK,EAAA,CAAA;gCAILA,QAAK,EAAA,CAAA;uBAuBLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BAELA,QAAK,EAAA,CAAA;sBAULA,QAAK,EAAA,CAAA;sBACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;uBACLC,SAAM,EAAA,CAAA;wCACNA,SAAM,EAAA,CAAA;IAEN,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAgB,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;gCAmBnBhB,SAAM,EAAA,CAAA;+BACNA,SAAM,EAAA,CAAA;gCACNA,SAAM,EAAA,CAAA;IAEN,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAAC,UAAU,EAAA,EAAA,CAAA;IACpB,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,eAAY,SAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAA,EAAA,CAAA;IACxC,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAA,EAAA,CAAA;IAExC,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA3B,cAAW,SAAC,UAAU,EAAA,EAAA,CAAA;;;IChG3B,IAAM,sBAAsB,GAAG;QAC3B,gBAAgB;QAChB,uBAAuB;QACvB,iBAAiB;QACjB,wBAAwB;KAC3B,CAAC;AAgBF,QAAA,iBAAA,kBAAA,YAAA;IAyCI,IAAA,SAAA,iBAAA,CAAoB,UAAmC,EAAA;;IAAnC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IAvC9C,QAAA,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;IAEvB,QAAA,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;IAUlB,QAAA,IAAW,CAAA,WAAA,GAAW,YAAY,CAAC;IAEnC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IACjB,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;IACf,QAAA,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;YAE9B,IAAA,CAAA,SAAS,GAAuC,YAAA,EAAM,OAAA,IAAI,CAAA,EAAA,CAAC;IAG3D,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;IAQpB,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAIpB,eAAY,EAAO,CAAC;IACpD,QAAA,IAAA,CAAA,IAAI,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAClD,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAMhC,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;YAUlD,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;;IAVE,YAAA,KAAmB,IAAA,wBAAA,GAAA,QAAA,CAAA,sBAAsB,CAAA,8DAAA,EAAE,CAAA,0BAAA,CAAA,IAAA,EAAA,0BAAA,GAAA,wBAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,gBAAA,IAAM,IAAI,GAAA,0BAAA,CAAA,KAAA,CAAA;IACX,gBAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;IAC9B,oBAAA,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,iBAAA;IACJ,aAAA;;;;;;;;;SACJ;IAtBD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,GAAY,EAAA;IAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;aACzB;;;IAAA,KAAA,CAAA,CAAA;QA2BD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpC,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IAEnB,QAAA,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;IACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,SAAA;SACJ,CAAA;QAED,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC9B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACzB,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,QAAA,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;IACxC,YAAA,UAAU,CAAC,YAAA;;oBACP,CAAA,EAAA,GAAA,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAC,GAAG,CAAA,KAAA,CAAA,EAAA,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAI,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAE,CAAA,CAAA,CAAA;iBAChG,EAAE,CAAC,CAAC,CAAC;IACT,SAAA;SACJ,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;IACJ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;SACxC,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IAEP,KAAA,GAAA,IAAA,CAAA;YAFyB,IAAuB,UAAA,GAAA,EAAA,CAAA;iBAAvB,IAAuB,EAAA,GAAA,CAAA,EAAvB,EAAuB,GAAA,SAAA,CAAA,MAAA,EAAvB,EAAuB,EAAA,EAAA;gBAAvB,UAAuB,CAAA,EAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA,CAAA;;YAC7C,OAAO,UAAU,CAAC,IAAI,CAAC,UAAA,SAAS,EAAA,EAAI,OAAA,KAAI,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAA7C,EAA6C,CAAC,CAAC;SACtF,CAAA;;;;IAvGJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAyC,EAAA,muFAAA;IAEzC,gBAAA,SAAS,EAAE,CAAC;IACR,wBAAA,OAAO,EAAEyB,uBAAiB;IAC1B,wBAAA,WAAW,EAAE,iBAAiB;IAC9B,wBAAA,KAAK,EAAE,IAAI;yBACd,CAAC;;IACL,aAAA,EAAA,EAAA;;;gBA9BGa,aAAU,EAAA;;;4BAgCTpC,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;qBACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,CAAA;4BAILA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;yBACLC,SAAM,EAAA,CAAA;uBACNA,SAAM,EAAA,CAAA;0BACNA,SAAM,EAAA,CAAA;IACN,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAACE,0BAAiB,EAAE,EAAE,IAAI,EAAEA,0BAAiB,EAAE,EAAA,EAAA,CAAA;IACxD,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,eAAY,SAAC,eAAe,EAAA,EAAA,CAAA;IAC5B,IAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAC7B,IAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,sBAAsB,EAAA,EAAA,CAAA;IACnC,IAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,sBAAsB,EAAA,EAAA,CAAA;IACnC,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA3B,cAAW,SAAC,gBAAgB,EAAA,EAAA,CAAA;;;ACzEjC,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;QAakB,eAAoB,CAAA,oBAAA,GAA3B,UAA4B,KAAa,EAAA;IAC5C,QAAA,OAAO,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;SAC3C,CAAA;;;IAda,eAAA,CAAA,YAAY,GAAG;QACzB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACZ;;ACFL,QAAA,iBAAA,kBAAA,YAAA;IAuBI,IAAA,SAAA,iBAAA,GAAA;IAVS,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;IAChB,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IACvB,QAAA,IAAuB,CAAA,uBAAA,GAAG,QAAQ,CAAC;IAGnC,QAAA,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;IAE1B,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAIpB,eAAY,EAAO,CAAC;IACnE,QAAA,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;SAGvB;IAtBD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,UAAmB,KAAkB,EAAA;IACjC,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC1D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;IACjC,oBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;4BACnB,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAClE,qBAAA;IACL,iBAAC,CAAC,CAAC;IACN,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAeD,IAAA,iBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;IAC7B,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjE,SAAA;IACD,QAAA,OAAO,EAAE,CAAC;SACb,CAAA;QAEM,iBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,IAAoD,EAAA;IACtE,QAAA,OAAO,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC5F,CAAA;;;;IA7CJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAuC,EAAA,+9CAAA;oBAEvC,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;wBAGIxB,QAAK,EAAA,CAAA;0BAWLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;0CACLA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;sCACLA,QAAK,EAAA,CAAA;8BAELC,SAAM,EAAA,CAAA;;;ACxBX,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;IAEI,IAAA,YAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,IAAS,EAAE,IAAqB,EAAA;IAArB,QAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAqB,GAAA,MAAA,CAAA,EAAA;YACtC,IAAI,IAAI,KAAK,UAAU,EAAE;IACrB,YAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9C,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/G,SAAA;YAED,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;SACpG,CAAA;;;;IAZJ,IAAA,EAAA,IAAA,EAAA6C,OAAI,EAAC,IAAA,EAAA,CAAA;IACF,gBAAA,IAAI,EAAE,UAAU;IACnB,aAAA,EAAA,EAAA;;;ICDM,IAAM,eAAe,GAAG;IAC3B,IAAA,GAAG,EAAE;IACD,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,UAAU,EAAE;IACR,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,WAAW,EAAE;IACT,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,MAAM,EAAE;IACJ,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,aAAa,EAAE;IACX,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,cAAc,EAAE;IACZ,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,IAAI,EAAE;IACF,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,UAAU,EAAE;IACR,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,aAAa,EAAE;IACX,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,KAAK,EAAE;IACH,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,WAAW,EAAE;IACT,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,cAAc,EAAE;IACZ,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;KACJ,CAAC;AAEW,QAAA,eAAe,GAAG;QAC3BC,qBAAU,CAAC,QAAQ,EAAE;IACjB,QAAAC,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACrBC,kBAAO,CAAC,GAAG,EAAED,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACtC,CAAC;QACFD,qBAAU,CAAC,QAAQ,EAAE;YACjBE,kBAAO,CAAC,GAAG,EAAED,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACtC,CAAC;MACJ;IAEK,IAAM,gBAAgB,GAA0C;QACnE,EAAC,GAAG,EAAE1C,gBAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAC;QACrC,EAAC,GAAG,EAAEA,gBAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAC;QAC7C,EAAC,GAAG,EAAEA,gBAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,EAAC;QAC/C,EAAC,GAAG,EAAEA,gBAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,EAAC;KAClD;;ACtFD,QAAA,gBAAA,kBAAA,YAAA;IAYI,IAAA,SAAA,gBAAA,GAAA;IAJA,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;YAEnB,IAAA,CAAA,UAAU,GAA6B,IAAI4C,oBAAe,CAAU,KAAK,CAAC,CAAC;SAGjF;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,YAAYC,cAAW,CAAC;SAChE,CAAA;IAGD,IAAA,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B,CAAA;IAGD,IAAA,gBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B,CAAA;;;;IAnCJ,IAAA,EAAA,IAAA,EAAArD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAA0C,EAAA,yfAAA;IAE1C,gBAAA,UAAU,EAAE;IACR,oBAAAsD,kBAAO,CAAC,SAAS,EAAE,eAAe,CAAC;IACtC,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;0BAGIpD,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;IAYL,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAqD,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAKzB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;;;AC3ClBC,kCAGX;IAHD,CAAA,UAAY,YAAY,EAAA;IACpB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EAHWA,oBAAY,KAAZA,oBAAY,GAGvB,EAAA,CAAA,CAAA;;ICMD,IAAM,kBAAkB,GAAG,UAAC,QAAQ,IAAK,QAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,eAAe,CAAC,QAAQ,CAAC,GAA/B,EAAkC,CAAC;;AAK5E,QAAA,kBAAA,kBAAA,YAAA;IA0DI,IAAA,SAAA,kBAAA,CAAoB,OAAgB,EAChB,sBAA8C,EAC9C,UAAsB,EAAA;IAFtB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;IAChB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;IAC9C,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IAvD1C,QAAA,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;IACZ,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAU1B,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;IAGX,QAAA,IAAA,CAAA,KAAK,GAAiBA,oBAAY,CAAC,KAAK,CAAC;;IAGhC,QAAA,IAAyB,CAAA,yBAAA,GAAG,CAAC,CAAC;YAkC/B,IAAA,CAAA,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAK3D;IAtDD,IAAA,MAAA,CAAA,cAAA,CACW,kBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADnB,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB;IACD,QAAA,GAAA,EAAA,UAAoB,KAAK,EAAA;IACrB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACvB,YAAA,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;aACpD;;;IAJA,KAAA,CAAA,CAAA;IAcD,IAAA,MAAA,CAAA,cAAA,CACI,kBAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IADpB,QAAA,GAAA,EAAA,UACqB,OAAY,EAAA;IAC7B,YAAA,IAAI,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;oBACjB,IAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,gBAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE;wBACnB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9E,iBAAA;IACD,gBAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE;wBACnB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9E,iBAAA;IACD,gBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IACnC,aAAA;IACD,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,kBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,UACgB,KAAc,EAAA;IAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC3B,YAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,aAAa,EAAE,CAAC;IACxB,aAAA;IAAM,iBAAA;oBACH,IAAI,CAAC,cAAc,EAAE,CAAC;IACzB,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAgBD,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,CAAC,IAAI,CAAC,UAAU;IAAE,YAAA,OAAO,IAAI,CAAC;IAElC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;gBAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;IACf,SAAA;;YAED,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,SAAA;YAED,IAAI,IAAI,CAAC,0BAA0B,EAAE;IACjC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;IACjD,SAAA;SACJ,CAAA;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO;YAEnD,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB,CAAA;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;YAAA,IAoBC,KAAA,GAAA,IAAA,CAAA;;IAnBG,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,KAAI,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,0CAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;gBAAE,OAAO;;;;YAKvG,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAEhC,IAAI,IAAI,CAAC,eAAe,EAAE;IACtB,gBAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,aAAA;IAED,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,YAAA;;IAC9B,gBAAA,IAAI,KAAI,CAAC,UAAU,IAAI,EAAC,MAAA,KAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA,EAAE;wBACrE,KAAI,CAAC,cAAc,EAAE,CAAC;IACzB,iBAAA;IACL,aAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,SAAA;IAAM,aAAA;gBACH,IAAI,CAAC,cAAc,EAAE,CAAC;IACzB,SAAA;SACJ,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACJ,IAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAEhI,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAA,gBAAA,EAAE,CAAC,CAAC;SAC/D,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YAAA,IAmBP,KAAA,GAAA,IAAA,CAAA;;YAlBG,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAE1B,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAA,EAAE;IACjC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAIC,sBAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAChF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChD,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAE5C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAACC,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,SAAkB,EAAA;oBAC7G,IAAI,CAAC,SAAS,EAAE;wBACZ,KAAI,CAAC,cAAc,EAAE,CAAC;IACzB,iBAAA;IACL,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YACJ,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,IAAI,CAAC,0BAA0B,EAAE;IACjC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;IACjD,SAAA;SACJ,CAAA;;;;IArJJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;gBAZQC,UAAO,EAAA;gBAAEC,yBAAsB,EAAA;gBADNvB,aAAU,EAAA;;;IAgBvC,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAApC,QAAK,SAAC,WAAW,EAAA,EAAA,CAAA;IAEjB,IAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,kBAAkB,EAAA,EAAA,CAAA;IAGxB,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAQzB,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAGtB,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,gBAAgB,EAAA,EAAA,CAAA;4CAItBA,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;IAeL,IAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,eAAe,EAAA,EAAA,CAAA;IAwCrB,IAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAAqD,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAOzB,IAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;;;AC/E9B,QAAA,iBAAA,kBAAA,YAAA;IAuBI,IAAA,SAAA,iBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAtB1C,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAClB,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;IAenB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIxD,eAAY,EAAE,CAAC;YAe7C,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SAXD;IAXD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAc,EAAA;IAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,MAAA,CAAA,cAAA,CAA0B,iBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAtC,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACI,IAAI,IAAI,CAAC,gBAAgB,EAAE;IACvB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrD,SAAA;SACJ,CAAA;QAOD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAc,EAAA;IACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;SAC/B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;IACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB,CAAA;;;;IApEJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAyC,EAAA,knBAAA;IAEzC,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAEyB,uBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9E,iBAAA;oBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAjBGC,oBAAiB,EAAA;;;8BAsBhBzB,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;gCAELA,QAAK,EAAA,CAAA;2BAGLA,QAAK,EAAA,CAAA;gCAILC,SAAM,EAAA,CAAA;IAEN,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAgB,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;ACxCZ2C,sCAGX;IAHD,CAAA,UAAY,gBAAgB,EAAA;IACxB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EAHWA,wBAAgB,KAAhBA,wBAAgB,GAG3B,EAAA,CAAA,CAAA;;ACYD,QAAA,uBAAA,kBAAA,YAAA;IAcI,IAAA,SAAA,uBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAb1C,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAGT,QAAA,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;IAChC,QAAA,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;IAChC,QAAA,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;IACjC,QAAA,IAAA,CAAA,IAAI,GAAqBA,wBAAgB,CAAC,OAAO,CAAC;YAU3D,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SALD;IALD,IAAA,MAAA,CAAA,cAAA,CAAa,uBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAc,EAAA;IAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;QAUD,uBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,uBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,uBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,uBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;SAC/B,CAAA;QAED,uBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAI,EAAA;YACT,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IAC/C,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;gBAClC,OAAO;IACV,SAAA;IAED,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;;;;IA5DJ,IAAA,EAAA,IAAA,EAAA9D,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,kBAAkB;IAC5B,gBAAA,QAAgD,EAAA,6fAAA;IAEhD,gBAAA,SAAS,EAAE;IACP,oBAAA,EAAE,OAAO,EAAEyB,uBAAiB,EAAE,WAAW,EAAEY,aAAU,CAAC,YAAA,EAAM,OAAA,uBAAuB,GAAA,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IACtG,iBAAA;oBACD,eAAe,EAAEX,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAZiCC,oBAAiB,EAAA;;;wBAkB9CzB,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,CAAA;;;AChBV,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;IAII,IAAA,MAAA,CAAA,cAAA,CAAW,kBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAIlB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,QAAQ,CAAC;aACxB;IAND,QAAA,GAAA,EAAA,UAAmB,IAAqB,EAAA;gBACpC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,CAAC,CAAA;aAC1B;;;IAAA,KAAA,CAAA,CAAA;;;;IAZJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAA0C,EAAA,uQAAA;oBAE1C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;ACRWqC,iCAGX;IAHD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EAHWA,mBAAW,KAAXA,mBAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEWC,iCAKX;IALD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACnB,CAAC,EALWA,mBAAW,KAAXA,mBAAW,GAKtB,EAAA,CAAA,CAAA;;ACWD,QAAA,kBAAA,kBAAA,YAAA;QAOI,SAAoB,kBAAA,CAAA,wBAAkD,EAClD,gBAAkC,EAClC,EAAc,EACd,GAAc,EACI,SAAc,EAAA;IAJhC,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;IACd,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAW;IACI,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;IAP3C,QAAA,IAAA,CAAA,aAAa,GAAgBA,mBAAW,CAAC,MAAM,CAAC;IAChD,QAAA,IAAA,CAAA,aAAa,GAAgBD,mBAAW,CAAC,IAAI,CAAC;IAC9C,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;SAMnC;QAED,kBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;IAC9B,QAAA,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;YAC5C,IAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;IAC9D,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,EAAE;IAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,SAAA;iBAAM,IAAI,IAAI,CAAC,SAAS,EAAE;IACvB,YAAA,IAAI,CAAC,WAAW,CAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,KAAE,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAA,CAAA,CAAG,CAAC;IAC1I,SAAA;SACJ,CAAA;IAEM,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACH,IAAI,IAAI,CAAC,aAAa,EAAE;IACpB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAChC,SAAA;SACJ,CAAA;QAEO,kBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAO,EAAA;YACvB,IAAM,gBAAgB,GAAyC,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;YACzI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC7E,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACvF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;SACjD,CAAA;;;;IAvCJ,IAAA,EAAA,IAAA,EAAAJ,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;gBAlBGM,2BAAwB,EAAA;gBAUxBC,mBAAgB,EAAA;gBARhB5B,aAAU,EAAA;gBAKVM,YAAS,EAAA;IAuBI,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAL,SAAM,SAACE,eAAQ,EAAA,EAAA,CAAA,EAAA;;;gCAT3BI,YAAS,EAAA,IAAA,EAAA,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEqB,mBAAgB,EAAE,EAAA,EAAA,CAAA;4BACtEhE,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;qCACLA,QAAK,EAAA,CAAA;;;ACJV,QAAA,iBAAA,kBAAA,YAAA;IAiCI,IAAA,SAAA,iBAAA,GAAA;IA7BA,QAAA,IAAK,CAAA,KAAA,GAAe,SAAS,CAAC;IAMrB,QAAA,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;IAMlB,QAAA,IAAa,CAAA,aAAA,GAAG,MAAM,CAAC;IAKhC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAIjB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAIlB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAEP,QAAA,IAAA,CAAA,KAAK,GAAG,IAAIH,eAAY,EAAE,CAAC;SAGpC;QAEM,iBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,MAAM,EAAA;YACjB,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B,CAAA;;;;IA7CJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAsC,EAAA,iqBAAA;;IAEzC,aAAA,EAAA,EAAA;;;;wBAGIE,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,OAAO,EAAA,EAAA,CAAA;uBAGnBjB,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,iBAAiB,EAAA,EAAA,CAAA;4BAE7BjB,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BAELA,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,uBAAuB,EAAA,EAAA,CAAA;iCAEnCjB,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;2BAGLA,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,gBAAgB,EAAA,EAAA,CAAA;4BAG5BjB,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,eAAe,EAAA,EAAA,CAAA;2BAG3BjB,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,cAAc,EAAA,EAAA,CAAA;wBAG1BhB,SAAM,EAAA,CAAA;;;ACjDX,QAAA,YAAA,kBAAA,YAAA;IAaI,IAAA,SAAA,YAAA,CAAoB,UAAsB,EAAA;IAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IAThC,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAIyB,YAAO,EAAE,CAAC;;IAEjD;;IAEG;YACM,IAAA,CAAA,OAAO,GAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAKjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;SAC1D;QAED,YAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,GAAS,EAAA;IACX,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;QACJ,OAAA,YAAA,CAAA;IAAA,CAAA,EAAA;;ACOWuC,iDAGX;IAHD,CAAA,UAAY,2BAA2B,EAAA;IACnC,IAAA,2BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,2BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EAHWA,mCAA2B,KAA3BA,mCAA2B,GAGtC,EAAA,CAAA,CAAA,CAAA;IAEM,IAAM,cAAc,GAAoB;IAC3C,IAAA,WAAW,EAAE,KAAK;IAClB,IAAA,oBAAoB,EAAE,KAAK;IAC3B,IAAA,aAAa,EAAE,iCAAiC;KACnD,CAAC;IAEK,IAAM,aAAa,GAAsC;IAC5D,IAAA,QAAQ,EAAE,QAAQ;IAClB,IAAA,KAAK,EAAE,EAAE;IACT,IAAA,aAAa,EAAE,EAAE;IACjB,IAAA,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;KACpC,CAAC;IAEK,IAAM,qBAAqB,GAAG,UAAC,QAAgB,EAAA;IAClD,IAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YAAE,OAAOA,mCAA2B,CAAC,KAAK,CAAC;QACzE,IAAI,CAAA,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,MAAM,CAAC,MAAI,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,QAAQ,CAAC,OAAO,CAAC,CAAA,EAAE;YAC3D,OAAOA,mCAA2B,CAAC,MAAM,CAAC;IAC7C,KAAA;QACD,OAAOA,mCAA2B,CAAC,KAAK,CAAC;IAC7C,CAAC;;AC3BD,QAAA,kBAAA,kBAAA,YAAA;QAyCI,SACY,kBAAA,CAAA,GAAsB,EACtB,wBAAkD,EAClD,gBAAkC,EAClC,UAAsB,EACtB,UAA2B,EAAA;IAJ3B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;IA5C7B,QAAA,IAAA,CAAA,aAAa,GAAuB,IAAIpE,eAAY,EAAQ,CAAC;IAI9D,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;IAQpB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAMM,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;SA4B9C;QAzBD,kBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,CAAC,EAAA;IACV,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,YAAYuC,aAAU,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,IAAK,IAAI,CAAC,OAAO,CAAC,aAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACvK,QAAA,IAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3E,IAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACtE,IAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC/D,IAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE/E,QAAA,IAAI,CAAC,YAAY;IACV,eAAA,CAAC,iBAAiB;IAClB,eAAA,CAAC,oBAAoB;IACrB,eAAA,CAAC,gBAAgB;IACjB,eAAA,CAAC,2BAA2B;IAC5B,eAAA,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAChC;IACE,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAWD,IAAA,kBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,YAAYe,cAAW,CAAC;IAE7D,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAkB,CAAC,CAAC,CAAC;IAC1I,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/D,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC7F,SAAA;IACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;IACvD,SAAA;IAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,iCAAiC,EAAE,CAAC;IACzC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC5B,CAAA;IAED;;;;;;IAMG;IACK,IAAA,kBAAA,CAAA,SAAA,CAAA,iCAAiC,GAAjC,YAAA;YAAA,IAoBP,KAAA,GAAA,IAAA,CAAA;IAnBG,QAAA,IAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAChH,QAAA,IAAI,YAAY,EAAE;;IAGd,YAAA,UAAU,CAAC,YAAA;IACP,gBAAA,IAAM,OAAO,GAAgB,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IAE3D,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC;wBAAE,OAAO;IAEvD,gBAAA,IAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IACjD,gBAAA,IAAM,oBAAoB,GAAG,YAAY,CAAC,qBAAqB,EAAE,CAAC;IAElE,gBAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IACpC,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,GAAO,YAAY,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,GAAG,oBAAoB,CAAC,GAAI,OAAI,CAAC;IAC9F,gBAAA,OAAO,CAAC,KAAK,CAAC,IAAI,GAAO,oBAAoB,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAK,OAAI,CAAC;IAExE,gBAAA,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;;;;IAvGJ,IAAA,EAAA,IAAA,EAAArD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAA0C,EAAA,6OAAA;IAE1C,gBAAA,UAAU,EAAE;IACR,oBAAAsD,kBAAO,CAAC,SAAS,EAAE,eAAe,CAAC;IACtC,iBAAA;oBACD,eAAe,EAAE5B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBA7BGC,oBAAiB,EAAA;gBAEjBsC,2BAAwB,EAAA;gBAYxBC,mBAAgB,EAAA;gBAVhB5B,aAAU,EAAA;gBAcL,YAAY,EAAA;;;gCAchBnC,SAAM,EAAA,CAAA;0BAEND,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4CACLA,QAAK,EAAA,CAAA;mCAEL2C,YAAS,EAAA,IAAA,EAAA,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAEP,aAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAA,EAAA,CAAA;IAIhE,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAnB,cAAW,SAAC,aAAa,EAAA,EAAA,CAAA;IACzB,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;IAE1B,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,UAAU,EAAA,EAAA,CAAA;IAEtB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAoC,eAAY,EAAC,IAAA,EAAA,CAAA,kBAAkB,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;;;ACpChD,QAAA,gBAAA,kBAAA,YAAA;IAEI,IAAA,SAAA,gBAAA,CACY,OAAgB,EAChB,sBAA8C,EAC9C,QAAkB,EAAA;IAFlB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;IAChB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;IAC9C,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;SAE7B;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAQ,OAA2C,EAAE,YAAsC,EAAA;IACvF,QAAA,IAAI,CAAC,OAAO;gBAAE,OAAO;IAErB,QAAA,IAAM,KAAK,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAa,CAAK,EAAA,YAAY,CAAE,CAAC;YAEpD,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE7C,QAAA,IAAM,UAAU,GAAG,IAAI,YAAY,CAAI,UAAU,CAAC,CAAC;YAEnD,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAEpE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtD,QAAA,OAAO,UAAU,CAAC;SACrB,CAAA;QAEO,gBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UACJ,OAA2C,EAC3C,EAAwI,EACxI,UAAsB,EACtB,UAA2B,EAAA;IAFzB,QAAA,IAAA,cAAc,oBAAA,EAAE,QAAQ,cAAA,EAAS,YAAY,WAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,yBAAyB,GAAA,EAAA,CAAA,yBAAA,CAAA;IAI7G,QAAA,IAAM,eAAe,GAAG,IAAIE,sBAAe,CAAwB,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;YAC9H,IAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAwB,eAAe,CAAC,CAAC;IAE7E,QAAA,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC;IAErC,QAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,QAAA,UAAU,CAAC,QAAQ,CAAC,cAAc,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,KAAE,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAE,CAAC;YAC5G,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,QAAQ,CAAC;IAC1D,QAAA,UAAU,CAAC,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;IAClD,QAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,QAAA,UAAU,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C,QAAA,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxC,QAAA,UAAU,CAAC,QAAQ,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;SAC7E,CAAA;QAEO,gBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,YAAsC,EAAA;YACxD,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC7C,CAAA;QAEO,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,YAAsC,EAAA;IAC3D,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAoC,IAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAS,CAAa,GAAA,aAAA,CAAC,CAAC;IAEvI,QAAA,IAAM,QAAQ,qBAAS,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAE,CAAC;IAChE,QAAA,IAAI,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE;IACtC,YAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,YAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IACxB,SAAA;YACD,IAAM,MAAM,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,CAAK,EAAA,YAAY,CAAC,aAAa,IAAI,EAAE,CAAE,CAAC;YAC1E,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE9D,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzH,QAAA,IAAM,aAAa,GAAG,IAAIW,gBAAa,iBACnC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,EACpD,gBAAgB,EAAA,gBAAA,EACb,EAAA,MAAM,EACX,CAAC;IAEH,QAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,IAAI,WAAW,EAAE;gBAClD,IAAM,kBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACxE,aAAa,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC/F,SAAA;IAED,QAAA,OAAO,aAAa,CAAC;SACxB,CAAA;QAEO,gBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAkB,UAA2B,EAAA;IACjD,QAAA,IAAM,eAAe,GAAqB;IACtC,YAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE;aAClD,CAAC;IAEF,QAAA,OAAOC,WAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SACjF,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAqB,YAAsC,EAAE,UAAsB,EAAE,UAA2B,EAAA;IACpH,QAAA,IAAM,MAAM,GAAG,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC;IAChD,QAAA,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;YACjD,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE9D,QAAA,IAAI,CAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,oBAAoB,MAAI,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,WAAW,CAAA,EAAE;IACrD,YAAA,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,YAAA,EAAM,OAAA,UAAU,CAAC,KAAK,EAAE,CAAlB,EAAkB,CAAC,CAAC;IAClE,SAAA;IAED,QAAA,IAAI,aAAa,EAAE;gBACf,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAM,EAAA,OAAA,UAAU,CAAC,KAAK,EAAE,CAAlB,EAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,SAAA;IAED,QAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,IAAI,WAAW,EAAE;gBAClD,IAAM,oBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxE,YAAA,IAAM,gBAAc,GAAG,IAAI,cAAc,CAAC,UAAA,OAAO,EAAA;IAC7C,gBAAA,OAAO,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;;IAAI,oBAAA,OAAA,UAAU,CAAC,UAAU,EAAG,EAAA,GAAA,EAAA,EAAA,EAAA,CAAC,oBAAkB,CAAG,GAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,oBAAkB,CAAC,EAAG,EAAA,EAAA,CAAA;IAAxG,iBAAwG,CAAC,CAAC;IACtI,aAAC,CAAC,CAAC;IACH,YAAA,gBAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACpC,UAAU,CAAC,OAAO,CAAC,IAAI,CAACC,eAAK,EAAE,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,gBAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA,EAAA,CAAC,CAAC;IAC3F,SAAA;SACJ,CAAA;QAEO,gBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAkB,OAA4C,EAAA;IAClE,QAAA,IAAI,CAAC,OAAO,IAAY,OAAQ,CAAC,CAAC;IAAE,YAAA,OAAO,IAAI,CAAC;YAChD,IAAiB,OAAQ,CAAC,aAAa;gBAAE,OAAoB,OAAQ,CAAC,aAAa,CAAC;IACpF,QAAA,OAAoB,OAAO,CAAC;SAC/B,CAAA;;;;;IApHJ,IAAA,EAAA,IAAA,EAAArD,aAAU,EAAC,IAAA,EAAA,CAAA;IACR,gBAAA,UAAU,EAAE,MAAM;IACrB,aAAA,EAAA,EAAA;;;gBAZQ2C,UAAO,EAAA;gBAAiBC,yBAAsB,EAAA;gBADtBQ,WAAQ,EAAA;;;ACiBzC,QAAA,kBAAA,kBAAA,YAAA;QA8BI,SAAoB,kBAAA,CAAA,UAAsB,EACtB,gBAAkC,EAAA;IADlC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IA3B3B,QAAA,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;IAExB,QAAA,IAAQ,CAAA,QAAA,GAAe,QAAQ,CAAC;IAEnC,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;IAEH,QAAA,IAAa,CAAA,aAAA,GAAkB,EAAE,CAAC;YAElC,IAAA,CAAA,aAAa,GAA0B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;IASjE,QAAA,IAAA,CAAA,YAAY,GAAG,IAAItE,eAAY,EAAO,CAAC;IAEtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIA,eAAY,EAAQ,CAAC;;IAGhC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIA,eAAY,EAAwB,CAAC;SAO9F;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACI,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE1B,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,SAAA;IAAM,aAAA;gBACH,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,SAAA;SACJ,CAAA;QAED,kBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,GAAS,EAAA;YAClB,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC1B,SAAA;SACJ,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YAAA,IAqBP,KAAA,GAAA,IAAA,CAAA;IApBG,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC1E,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;IAC5D,SAAA,CAAC,CAAC;IAEH,QAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAACuE,eAAK,EAAE,CAAC,CAAC,SAAS,CAAC,UAAC,GAAG,EAAA;gBAC3C,KAAI,CAAC,YAAY,EAAE,CAAC;IACpB,YAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,YAAA,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9D,SAAC,CAAC,CAAC;IAEH,QAAA,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAACA,eAAK,EAAE,CAAC,CAAC,SAAS,CAAC,YAAA;IACnE,YAAA,KAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;;;;IAlFJ,IAAA,EAAA,IAAA,EAAAX,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;gBAlBGrB,aAAU,EAAA;gBAaL,gBAAgB,EAAA;;;IAQpB,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAApC,QAAK,SAAC,WAAW,EAAA,EAAA,CAAA;IAEjB,IAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,kBAAkB,EAAA,EAAA,CAAA;IAExB,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAEzB,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAEtB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,wBAAwB,EAAA,EAAA,CAAA;IAE9B,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,wBAAwB,EAAA,EAAA,CAAA;IAE9B,IAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,oBAAoB,EAAA,EAAA,CAAA;IAE1B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAEzB,IAAA,yBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,oCAAoC,EAAA,EAAA,CAAA;IAG1C,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,SAAM,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAEvB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,SAAM,SAAC,iBAAiB,EAAA,EAAA,CAAA;IAGxB,IAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,SAAM,SAAC,0BAA0B,EAAA,EAAA,CAAA;IASjC,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAoD,eAAY,SAAC,OAAO,EAAA,EAAA,CAAA;;;AChDzB,QAAA,iBAAA,kBAAA,YAAA;IAKI,IAAA,SAAA,iBAAA,GAAA;IAHA,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI3B,YAAO,EAA4B,CAAC;SAIpD;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,UAAY,IAAuC,EAAA;IAC/C,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACI,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,SAAA;SACJ,CAAA;;;;;IAnBJ,IAAA,EAAA,IAAA,EAAAX,aAAU,EAAC,IAAA,EAAA,CAAA;IACR,gBAAA,UAAU,EAAE,MAAM;IACrB,aAAA,EAAA,EAAA;;;;ACGD,QAAA,mBAAA,kBAAA,YAAA;QAYI,SAAsB,mBAAA,CAAA,WAA8B,EAAU,GAAsB,EAAA;IAA9D,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;IAAU,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAPpF,QAAA,IAAQ,CAAA,QAAA,GAAqC,MAAM,CAAC;IAI7C,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;SAIzB;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,mBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAApB,QAAA,GAAA,EAAA,UAAqB,IAAmC,EAAA;IACpD,YAAA,IAAI,IAAI,EAAE;IACN,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAChD,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;oBACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;;wBAClB,IAAI,MAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,EAAE;4BACvB,IAAI,CAAC,YAAY,GAAG;gCAChB,IAAI,EAAE,IAAI,CAAC,QAAQ;gCACnB,KAAK,EAAE,CAAA,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE;IACtC,4BAAA,QAAQ,EAAE,OAAO;6BACpB,CAAC;IACL,qBAAA;IACL,iBAAC,CAAC,CAAC;IACH,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACI,IAAI,IAAI,CAAC,iBAAiB;IAAE,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC1D,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YACI,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC9B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACI,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC9B,CAAA;QAED,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,GAAsD,EAAA;IAC3D,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;IACf,YAAA,OAAO,KAAK,CAAC;IAChB,SAAA;IACD,QAAA,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACnC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACvB,SAAA;IAAM,aAAA;gBACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,SAAA;SACJ,CAAA;QAED,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,GAA2B,EAAA;IAChC,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;IACf,YAAA,OAAO,KAAK,CAAC;IAChB,SAAA;IACD,QAAA,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACnC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACvB,SAAA;IAAM,aAAA;gBACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,SAAA;SACJ,CAAA;QAED,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,GAA2B,EAAA;YACrC,IAAI,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAAE,YAAA,OAAO,EAAE,CAAC;YAC5D,OAAO,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;SACxE,CAAA;QAED,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,cAAuB,EAAA;YACnC,OAAO,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;SAC5C,CAAA;QAED,mBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,GAAuB,EAAA;IAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,IAAI,GAAG,CAAC,MAAM,EAAE;IACZ,gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,aAAA;IAAM,iBAAA;oBACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpG,aAAA;gBACD,IAAI,CAAC,IAAI,EAAE,CAAC;IACf,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,MAAM,EAAE,UAAoC,EAAE,IAAS,EAAA;YACrE,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;IAC5B,YAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,EAAE,CAAC;IACf,SAAA;SACJ,CAAA;;;;IA7GJ,IAAA,EAAA,IAAA,EAAAjB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IACvB,gBAAA,QAA2C,EAAA,mhDAAA;oBAE3C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAPQ,iBAAiB,EAAA;gBAFQC,oBAAiB,EAAA;;;IAY9C,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAkB,YAAS,SAAC,UAAU,EAAA,EAAA,CAAA;IACpB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,YAAS,SAAC,eAAe,EAAA,EAAA,CAAA;0BAYzB3C,QAAK,EAAA,CAAA;;;ACLV,QAAA,mBAAA,kBAAA,YAAA;QAUI,SAAoB,mBAAA,CAAA,wBAAkD,EAClD,gBAAkC,EAClC,OAA0B,EAC1B,EAAc,EACI,SAAc,EAAA;IAJhC,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;IAC1B,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;IACI,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;IAZ3C,QAAA,IAAQ,CAAA,QAAA,GAAe,MAAM,CAAC;IAMtB,QAAA,IAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;SAOxC;IAE2B,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,OAAO;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAEsB,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAE2B,IAAA,mBAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;YAAA,IAS3B,KAAA,GAAA,IAAA,CAAA;YARG,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,UAAU,CAAC,UAAA,CAAC,EAAA;IACR,gBAAA,IAAI,KAAI,CAAC,aAAa,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE;IAC/D,oBAAA,KAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7B,oBAAA,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,iBAAA;IACL,aAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,SAAA;SACJ,CAAA;QAE6C,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,CAAC,EAAA;IACzD,QAAA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACzB,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACJ,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,CAAC,MAAM,EAAE,CAAA,EAAA,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;IACrD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC;IACV,gBAAA,MAAM,EAAA,MAAA;oBACN,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;oBACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,IAAI,CAAC,UAAU;oBACrB,KAAK,EAAE,IAAI,CAAC,eAAe;IAC9B,aAAA,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;QAEO,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,CAAC,EAAA;IAEnB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrB,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YAC7C,IAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC;IAClE,QAAA,IAAM,qBAAqB,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,cAAc,KAAK,WAAW,CAAC;YACrG,IAAM,uBAAuB,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEtE,QAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,uBAAuB,EAAE;gBACpD,IAAM,OAAK,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAC7D,UAAU,CAAC,cAAM,OAAA,OAAK,CAAC,OAAO,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,MAAM,EAAE,CAAA,EAAA,CAAC,GAAA,EAAE,GAAG,CAAC,CAAC;IAC/D,SAAA;SACJ,CAAA;QAEO,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,OAAqB,EAAA;YAClC,IAAM,gBAAgB,GAA0C,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;YAC3I,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACjG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;SACjD,CAAA;IAEM,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACH,IAAI,IAAI,CAAC,aAAa,EAAE;IACpB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAChC,SAAA;SACJ,CAAA;;;;IA5FJ,IAAA,EAAA,IAAA,EAAAyD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,cAAc;IAC3B,aAAA,EAAA,EAAA;;;gBAjBGM,2BAAwB,EAAA;gBAQxBC,mBAAgB,EAAA;gBAKX,iBAAiB,EAAA;gBAXtB5B,aAAU,EAAA;IA8BG,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,SAAM,SAACE,eAAQ,EAAA,EAAA,CAAA,EAAA;;;2BAZ3BvC,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;oCACLA,QAAK,EAAA,CAAA;gCACL2C,YAAS,EAAA,IAAA,EAAA,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEqB,mBAAgB,EAAE,EAAA,EAAA,CAAA;IAWvE,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAX,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAKzB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,OAAO,EAAA,EAAA,CAAA;IAIpB,IAAA,2BAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAWzB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,EAAC,IAAA,EAAA,CAAA,kBAAkB,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;;;AClDhD,QAAA,2BAAA,kBAAA,YAAA;QAOI,SAAoB,2BAAA,CAAA,EAAc,EAAU,QAAmB,EAAA;IAA3C,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;IAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IAJtD,QAAA,IAAQ,CAAA,QAAA,GAAqC,MAAM,CAAC;SAK5D;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACpD,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACI,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC3B,YAAY,GAAG,CAAC,CAAC;gBACjB,cAAc,GAAG,EAAE,CAAC;gBACpB,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;IAChH,YAAA,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;gBAE7F,IAAI,CAAC,QAAQ,GAAG;IACZ,gBAAA,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;IACpC,gBAAA,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC;IAClE,gBAAA,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW;oBACrF,OAAO,EAAE,UAAU,CAAC,CAAC;iBACxB,CAAC;IACL,SAAA;IAED,QAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;IACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAC/C,IAAI,CAAC,QAAQ,KAAK,QAAQ;IACtB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI;IACjE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAChD,IAAI,CAAC,QAAQ,KAAK,OAAO;IACrB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI;IAChE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC1C,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;IACtD,YAAA,IAAM,sBAAsB,GAAG,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC3F,IAAM,mBAAmB,GAAG,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IAC7G,YAAA,IAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;gBAEjF,IAAM,4BAA4B,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACzH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,4BAA4B,CAAC;IAE/E,YAAA,IAAI,sBAAsB,EAAE;IACxB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,aAAA;IACD,YAAA,IAAI,sBAAsB,IAAI,oBAAoB,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;IACxG,gBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;oBAC3B,IAAM,UAAU,GAAG,eAAiB,GAAA,IAAI,CAAC,kBAAkB,CAAC,KAAM,GAAA,KAAK,CAAC;oBACxE,IAAM,UAAU,GAAG,mBAAmB,CAAC;IACvC,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,YAAc,GAAA,UAAW,UAAM,UAAW,GAAA,GAAG,CAAC,CAAC;IAC7G,aAAA;gBACD,IAAI,mBAAmB,IAAI,sBAAsB,EAAE;IAC/C,gBAAA,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;IACjC,aAAA;IACD,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;IACjC,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB,WAAW,EACX,yBAAA,GAA2B,IAAI,CAAC,kBAAkB,CAAC,KAAM,GAAA,OAAA,IAAS,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAE,CAAA,GAAA,KAAK,CAC7G,CAAC;IACL,aAAA;gBACD,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,GAAG,aAAa;sBACnD,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,kBAAkB;0BAC7C,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,gBAAgB;8BACzC,IAAI,CAAC,QAAQ,KAAK,aAAa,GAAG,qBAAqB;kCACnD,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,cAAc;sCACrC,IAAI,CAAC,QAAQ,KAAK,aAAa,GAAG,qBAAqB;0CACnD,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,eAAe;IACzC,0CAAE,IAAI,CAAC,QAAQ,KAAK,cAAc,GAAG,sBAAsB,GAAG,EAAE,CAAC;IAC7F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrE,SAAA;IAAM,aAAA;gBACH,IAAM,mBAAmB,GAAG,CAAC,CAAC;IAC9B,YAAA,IAAM,oBAAoB,GAAG,gBAAgB,KAAK,OAAO;sBACnD,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC;sBAChG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC;IAErG,YAAA,IAAM,qBAAqB,GAAG,gBAAgB,KAAK,OAAO;sBACpD,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,cAAc,CAAC;sBAClG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,cAAc,CAAC;gBAEvG,IAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC,CAAC;gBAC1H,IAAI,CAAC,cAAc,GAAG,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC;IAElD,YAAA,IAAI,yBAAyB,GAAG,oBAAoB,GAAG,CAAC;sBAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,mBAAmB;sBACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,mBAAmB,GAAG,WAAW,CAAC;IAE1D,YAAA,IAAI,gBAAgB,IAAI,CAAC,IAAI,gBAAgB,KAAK,OAAO,EAAE;oBACvD,yBAAyB,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;IAClE,aAAA;IAED,YAAA,IAAM,WAAW,GAAG,qBAAqB,GAAG,CAAC,GAAG,qBAAqB,GAAG,YAAY,CAAC;gBAErF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC;IAC7F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,yBAAyB,IAAI,IAAI,CAAC,CAAC;IAC1F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrE,SAAA;SACJ,CAAA;;;;IA/GJ,IAAA,EAAA,IAAA,EAAAI,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,QAAQ,EAAE,kBAAkB;IAC/B,aAAA,EAAA,EAAA;;;gBANmBrB,aAAU,EAAA;gBAAiBM,YAAS,EAAA;;;qCASnD1C,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;;;ACJV,QAAA,sBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,sBAAA,GAAA;;QACI,sBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,GAAuB,EAAA;IAC7B,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAvC,EAAuC,CAAC,CAAC;SACtE,CAAA;;;;IANJ,IAAA,EAAA,IAAA,EAAA8C,OAAI,EAAC,IAAA,EAAA,CAAA;IACF,gBAAA,IAAI,EAAE,wBAAwB;IACjC,aAAA,EAAA,EAAA;;;ACKD,QAAA,cAAA,kBAAA,YAAA;IAOI,IAAA,SAAA,cAAA,GAAA;SACC;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;;;;IAnBJ,IAAA,EAAA,IAAA,EAAAhD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,QAAQ;IAClB,gBAAA,QAAQ,EAAE,8FAIT;IACJ,aAAA,EAAA,EAAA;;;;wBAEIE,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;IACL,IAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA2C,YAAS,SAACQ,cAAW,EAAA,EAAA,CAAA;;;ACP1B,QAAA,eAAA,kBAAA,YAAA;IAWI,IAAA,SAAA,eAAA,GAAA;IAVS,QAAA,IAAK,CAAA,KAAA,GAAW,SAAS,CAAC;IAC1B,QAAA,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;IAIhB,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;IACtB,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAItD,eAAY,EAAO,CAAC;SAIxE;QAED,eAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,MAAM,EAAA;IACtB,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvC,CAAA;;;;IAtBJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,SAAS;IACnB,gBAAA,QAAuC,EAAA,+jDAAA;;IAE1C,aAAA,EAAA,EAAA;;;;wBAEIE,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;qCACLA,QAAK,EAAA,CAAA;oCACLC,SAAM,EAAA,CAAA;IACN,IAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAAuC,kBAAe,SAAC,cAAc,EAAA,EAAA,CAAA;;;ACRnC,QAAA,oBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,oBAAA,GAAA;IAQI,QAAA,IAAA,CAAA,cAAc,GAAG,IAAId,YAAO,EAAW,CAAC;IAchC,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;SAiB9B;IA1BG,IAAA,MAAA,CAAA,cAAA,CACI,oBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAJT;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAU,GAAY,EAAA;IAClB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;aAC3B;;;IAJA,KAAA,CAAA,CAAA;IAQD;;IAEG;IACH,IAAA,oBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACI,IAAI,IAAI,CAAC,KAAK,EAAE;IACZ,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,SAAA;SACJ,CAAA;IAED;;IAEG;IACH,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC,CAAA;;;;IAtCJ,IAAA,EAAA,IAAA,EAAA5B,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,cAAc;IACxB,gBAAA,QAAQ,EAAE,sDAAsD;oBAEhE,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IAQI,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAxB,QAAK,SAAC,OAAO,EAAA,EAAA,CAAA;;;ACWlB,QAAA,wBAAA,kBAAA,YAAA;QAkEI,SAA4B,wBAAA,CAAA,SAA+B,EAAU,EAAqB,EAAA;IAA9D,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsB;IAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IAZ1F;;;IAGG;IACO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIH,eAAY,EAAW,CAAC;IAExD,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI6B,YAAO,EAAW,CAAC;IAEzC,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;IACtB,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;IACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIA,YAAO,EAAQ,CAAC;SAGtC;IA5DD,IAAA,MAAA,CAAA,cAAA,CAEI,wBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAPb;;;;IAIG;IACH,QAAA,GAAA,EAAA,YAAA;gBAGI,OAAO,IAAI,CAAC,cAAc,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAc,GAAY,EAAA;IACtB,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;;;IANA,KAAA,CAAA,CAAA;IAaD,IAAA,MAAA,CAAA,cAAA,CAEI,wBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IALZ;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;IAGI,YAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAa,GAAY,EAAA;IACrB,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC;aAC9B;;;IAJA,KAAA,CAAA,CAAA;IAaD,IAAA,MAAA,CAAA,cAAA,CAEI,wBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAPZ;;;;IAIG;IACH,QAAA,GAAA,EAAA,YAAA;gBAGI,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAa,GAAY,EAAA;IACrB,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;;;IALA,KAAA,CAAA,CAAA;IAwBD;;IAEG;IACH,IAAA,wBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;IAEhB,YAAA,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IAEhC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;oBACvB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,aAAA;IACD,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC5B,SAAA;SACJ,CAAA;IAED;;IAEG;IACH,IAAA,wBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,SAAA;SACJ,CAAA;IAED;;IAEG;IACH,IAAA,wBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,SAAS,EAAA;IAC5E,YAAA,IAAI,CAAC,KAAI,CAAC,QAAQ,EAAE;IAChB,gBAAA,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;QAED,wBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;IAC9B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;SAC3C,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;IACJ,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;SAC1B,CAAA;;;;IApIJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,mBAAmB;IAE7B,gBAAA,QAAQ,EAAE,oJAGT;oBACD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IAVQ,IAAA,EAAA,IAAA,EAAA,oBAAoB,uBA6EZ6C,OAAI,EAAA,CAAA,EAAA;gBA3FjB5C,oBAAiB,EAAA;;;QAgChB,SAAA,EAAA,CAAA,EAAA,IAAA,EAAAzB,QAAK,EAAC,IAAA,EAAA,CAAA,WAAW,EACjB,EAAA,EAAA,EAAA,IAAA,EAAAiB,cAAW,SAAC,iBAAiB,EAAA,EAAA,CAAA;QAgB7B,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAjB,QAAK,EAAC,IAAA,EAAA,CAAA,UAAU,EAChB,EAAA,EAAA,EAAA,IAAA,EAAAiB,cAAW,SAAC,gBAAgB,EAAA,EAAA,CAAA;QAgB5B,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAjB,QAAK,EAAC,IAAA,EAAA,CAAA,UAAU,EAChB,EAAA,EAAA,EAAA,IAAA,EAAAiB,cAAW,SAAC,gBAAgB,EAAA,EAAA,CAAA;kCAgB5BhB,SAAM,EAAA,CAAA;;;AC5CX,QAAA,8BAAA,kBAAA,YAAA;QAsCI,SAA4B,8BAAA,CAAA,aAAuC,EAAU,EAAqB,EAAA;IAAtE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;IAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IArC1F,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIyB,YAAO,EAAQ,CAAC;SAsCtC;IApCD,IAAA,MAAA,CAAA,cAAA,CACI,8BAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAEI,8BAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAFZ,QAAA,GAAA,EAAA,YAAA;IAGI,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;aACxC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,8BAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;aACnD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,8BAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;aACtC;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,8BAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;IACI,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;SAC/B,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,8BAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACI,IAAI,IAAI,CAAC,WAAW,EAAE;IAClB,gBAAA,OAAO,WAAW,CAAC;IACtB,aAAA;IACD,YAAA,OAAO,UAAU,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,8BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAEC,KAAA,GAAA,IAAA,CAAA;IADG,QAAA,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAA,EAAA,CAAC,CAAC;SACrH,CAAA;IAED,IAAA,8BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA1EJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,0BAA0B;IAEpC,gBAAA,QAAQ,EAAE,qVAQT;IACD,gBAAA,UAAU,EAAE;wBACRsD,kBAAO,CAAC,oBAAoB,EAAE;IAC1B,wBAAAkB,gBAAK,CACD,UAAU,EACVtB,gBAAK,CAAC;IACF,4BAAA,SAAS,EAAE,gBAAgB;IAC9B,yBAAA,CAAC,CACL;IACD,wBAAAD,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,wBAAAF,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,gBAAgB,CAAC,CAAC;yBACjE,CAAC;IACL,iBAAA;oBACD,eAAe,EAAEzB,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IA3BQ,IAAA,EAAA,IAAA,EAAA,wBAAwB,uBAkEhB6C,OAAI,EAAA,CAAA,EAAA;gBA7EjB5C,oBAAiB,EAAA;;;IA0ChB,IAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAAR,cAAW,SAAC,uCAAuC,EAAA,EAAA,CAAA;QAKnD,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,EAAC,IAAA,EAAA,CAAA,sCAAsC,EAClD,EAAA,EAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,oBAAoB,EAAA,EAAA,CAAA;IAKhC,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,eAAe,EAAA,EAAA,CAAA;IAK3B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,oBAAoB,EAAA,EAAA,CAAA;yBAKhCoC,eAAY,EAAA,IAAA,EAAA,CAAC,OAAO,EACpB,EAAA,EAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,eAAe,EAAA,EAAA,EAAA,EAAA,IAAA,EAC5BA,eAAY,EAAA,IAAA,EAAA,CAAC,eAAe,EAAA,EAAA,CAAA;;;IC7DjC,IAAM,wBAAwB,GAAGD,kBAAO,CAAC,mBAAmB,EAAE;IAC1D,IAAAkB,gBAAK,CACD,WAAW,EACXtB,gBAAK,CAAC;IACF,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,UAAU,EAAE,QAAQ;IACpB,QAAA,MAAM,EAAE,CAAC;IACZ,KAAA,CAAC,CACL;IACD,IAAAsB,gBAAK,CACD,UAAU,EACVtB,gBAAK,CAAC;IACF,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,UAAU,EAAE,SAAS;IACxB,KAAA,CAAC,CACL;IACD,IAAAD,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAAF,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,gBAAgB,CAAC,CAAC;IACjE,CAAA,CAAC,CAAC;AAeH,QAAA,4BAAA,kBAAA,YAAA;QAGI,SAA4B,4BAAA,CAAA,aAAuC,EAAU,EAAqB,EAAA;IAAtE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;IAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IAF1F,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIvB,YAAO,EAAQ,CAAC;SAGtC;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,4BAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;aAClE;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,4BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAEC,KAAA,GAAA,IAAA,CAAA;IADG,QAAA,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAA,EAAA,CAAC,CAAC;SACrH,CAAA;IAED,IAAA,4BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA9BJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,wBAAwB;IAClC,gBAAA,QAAQ,EAAE,uLAMT;oBAED,UAAU,EAAE,CAAC,wBAAwB,CAAC;oBACtC,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IAlCQ,IAAA,EAAA,IAAA,EAAA,wBAAwB,uBAsChB6C,OAAI,EAAA,CAAA,EAAA;gBA1Ca5C,oBAAiB,EAAA;;;ACOnD,QAAA,iBAAA,kBAAA,YAAA;IACI,IAAA,SAAA,iBAAA,GAAA;SACC;;;;IAPJ,IAAA,EAAA,IAAA,EAAA3B,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IAErB,gBAAA,QAAyC,EAAA,qUAAA;;IAC5C,aAAA,EAAA,EAAA;;;;ACID,QAAA,uBAAA,kBAAA,YAAA;IACI,IAAA,SAAA,uBAAA,GAAA;SACC;;;;IAVJ,IAAA,EAAA,IAAA,EAAAA,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,kBAAkB;IAC5B,gBAAA,QAAQ,EAAE,8EAIT;IACJ,aAAA,EAAA,EAAA;;;;ACHD,QAAA,qBAAA,kBAAA,YAAA;IACI,IAAA,SAAA,qBAAA,GAAA;SACC;;;;IANJ,IAAA,EAAA,IAAA,EAAAA,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAAQ,EAAE,2BAA2B;IACxC,aAAA,EAAA,EAAA;;;;ACGD,QAAA,gBAAA,kBAAA,YAAA;QACI,SAAoB,gBAAA,CAAA,GAAsB,EAAsB,kBAAsC,EAAA;IAAlF,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAAsB,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;IAmB7F,QAAA,IAAK,CAAA,KAAA,GAAG,aAAa,CAAC;IACtB,QAAA,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IAEO,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;SAvBoD;IAG1G,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAApB,QAAA,GAAA,EAAA,UAAqB,KAAkB,EAAA;IACnC,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IAAxB,QAAA,GAAA,EAAA,UAAyB,KAAa,EAAA;IAClC,YAAA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,OAAO;IAEhD,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;IAC1B,gBAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC9E,aAAA;IAED,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAgB,CAAC;aAC5E;;;IAAA,KAAA,CAAA,CAAA;IAQD,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IAAf,QAAA,GAAA,EAAA,YAAA;;gBACI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;IACpC,gBAAA,OAAO,oBAAoB,CAAC;IAC/B,aAAA;IAED,YAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,KAAI,IAAI,CAAC;aACpD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAb,QAAA,GAAA,EAAA,YAAA;;gBACI,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;;;;IAzCJ,IAAA,EAAA,IAAA,EAAAA,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,6bAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;;IAEvB,aAAA,EAAA,EAAA;;;gBAPQ2B,oBAAiB,EAAA;IACJ,IAAA,EAAA,IAAA,EAAA8C,wBAAkB,uBAQSC,WAAQ,EAAA,CAAA,EAAA;;;0BAGpDxE,QAAK,EAAA,CAAA;8BAMLA,QAAK,EAAA,CAAA;wBAULA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;yBAELA,QAAK,EAAA,EAAA,EAAA,IAAA,EAAIiB,cAAW,EAAA,IAAA,EAAA,CAAC,eAAe,EAAA,EAAA,CAAA;;;ACRzC,QAAA,sBAAA,kBAAA,YAAA;QAUI,SAAmB,sBAAA,CAAA,SAA+C,EAC9C,aAA4B,EAC5B,GAAsB,EACtB,wBAAkD,EAC1B,UAAoB,EAAA;;IAJ7C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsC;IAC9C,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;IAC5B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAC1B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAU;YAV1C,IAAA,CAAA,KAAK,GAAc,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,gBAAgB,IAAG,IAAI,GAAG,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,KAAI,cAAc,CAAC;YAG/I,IAAA,CAAA,OAAO,GAAG,IAAIiC,oBAAe,CAAC,KAAK,CAAC,CAAC;IACrC,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAIxB,YAAO,EAAE,CAAC;SAOtC;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IACxB,YAAA,OAAO,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnD,SAAA;IACD,QAAA,IAAM,gBAAgB,GAA0B,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7H,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;IAC9E,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAGpE,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;IAC3B,YAAA+C,YAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC5D,SAAA;;;;;IAKD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC5B,CAAA;QAED,sBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAU,EAAA;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YACI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;SACnD,CAAA;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;IACI,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,sBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,IAAU,EAAA;YAAzB,IAsBC,KAAA,GAAA,IAAA,CAAA;IArBG,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;gBACnC,OAAO;IACV,SAAA;YACD,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;IACxD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IAAE,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,IAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC;IAC1D,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;IAE5F,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;IAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC3C,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE4C,oBAAU,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,CAAhD,EAAgD,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA;IACxI,gBAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IACvC,aAAC,CAAC,CAAC;IACN,SAAA;YAED,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;gBACnC,OAAO;IACV,SAAA;SACJ,CAAA;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IAjFJ,IAAA,EAAA,IAAA,EAAA5E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,mBAAmB;IAC7B,gBAAA,QAA8C,EAAA,+wHAAA;;IAEjD,aAAA,EAAA,EAAA;;;gBAXyB6E,iBAAY,EAAA;gBAK7B,aAAa,EAAA;gBAflBlD,oBAAiB,EAAA;gBAGjBsC,2BAAwB,EAAA;IAiCX,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA1B,SAAM,SAACuC,oBAAe,EAAA,EAAA,CAAA,EAAA;;;IAZlC,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAAjC,YAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAEqB,mBAAgB,EAAE,EAAA,EAAA,CAAA;IAE/C,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA/C,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;ACyGZ4D,iCASX;IATD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,aAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,cAAuB,CAAA;IACvB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC,CAAA;IACnC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,yBAA6C,CAAA;IAC7C,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC,CAAA;IACnC,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,aAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;IACpB,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;IACtC,CAAC,EATWA,mBAAW,KAAXA,mBAAW,GAStB,EAAA,CAAA,CAAA,CAAA;AAEWC,yCAIX;IAJD,CAAA,UAAY,mBAAmB,EAAA;IAC3B,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACnB,CAAC,EAJWA,2BAAmB,KAAnBA,2BAAmB,GAI9B,EAAA,CAAA,CAAA,CAAA;AAEWC,uCAKX;IALD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACzB,CAAC,EALWA,yBAAiB,KAAjBA,yBAAiB,GAK5B,EAAA,CAAA,CAAA;;AC7ID,QAAA,2BAAA,kBAAA,YAAA;IAYI,IAAA,SAAA,2BAAA,CACW,SAAoD,EACnD,aAA4B,EACJ,UAAoB,EAAA;;IAF7C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAA2C;IACnD,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;IACJ,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAU;IAd/C,QAAA,IAAe,CAAA,eAAA,GAAGA,yBAAiB,CAAC;YAG7C,IAAA,CAAA,OAAO,GAAG,IAAI7B,oBAAe,CAAC,KAAK,CAAC,CAAC;IACrC,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAClB,QAAA,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;IAC/B,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAIxB,YAAO,EAAE,CAAC;IACvC,QAAA,IAAkB,CAAA,kBAAA,GAA6C,EAAE,CAAC;IAE5C,QAAA,IAAA,CAAA,KAAK,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;SAOhE;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAsBC,KAAA,GAAA,IAAA,CAAA;IArBG,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;IAAE,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;IAEzD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAIsD,eAAS,CACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,UAAC,WAAW,EAAE,YAAY,EAAA;gBACpD,IAAI,YAAY,CAAC,MAAM,EAAE;IACrB,gBAAA,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI9B,oBAAe,CAAU,IAAI,CAAC,CAAC;IAChF,gBAAA,YAAY,CAAC,MAAM,GAAI,YAAY,CAAC,MAAc,CAAC,IAAI,CACnDwB,oBAAU,CAAC,UAAC,GAAG,EAAA;IACX,oBAAA,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACvD,OAAOO,eAAU,CAAC,YAAM,EAAA,OAAA,GAAG,CAAH,EAAG,CAAC,CAAC;qBAChC,CAAC,EACFC,aAAG,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAA,CAAC,EACjEC,kBAAQ,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAA,CAAC,CACzE,CAAC;IACL,aAAA;gBAED,IAAM,kBAAkB,GAAG,EAAE,CAAC;gBAC9B,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAIC,iBAAW,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,EAAE,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;gBACrH,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC1D,SAAC,EAAE,EAAE,CAAC,CACT,CAAC;SACL,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAoBC,KAAA,GAAA,IAAA,CAAA;IAnBG,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS;IAAE,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IAErF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3CD,kBAAQ,CAAC,YAAA;IACL,YAAA,KAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACtB,YAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,SAAC,CAAC,EACFrD,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB4C,oBAAU,CAAC,UAAC,GAAG,EAAA;IACX,YAAA,KAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACnC,YAAA,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACvB,YAAA,OAAO,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,SAAC,CAAC,CACL,CAAC,SAAS,CAAC,YAAA;IACR,YAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,YAAA,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IAClD,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;IACI,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9D,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC/B,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IAtFJ,IAAA,EAAA,IAAA,EAAA5E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,yBAAyB;IACnC,gBAAA,QAAoD,EAAA,+pKAAA;;IAGvD,aAAA,EAAA,EAAA;;;gBAXyB6E,iBAAY,EAAA;gBAI7B,aAAa,EAAA;IAuBb,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAtC,SAAM,SAACuC,oBAAe,EAAA,EAAA,CAAA,EAAA;;;IAL1B,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA3D,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;IChBxB,IAAM,uBAAuB,GAAG,gBAAgB,CAAC;IAEjD,IAAM,qBAAqB,GAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAKxE,QAAA,aAAA,kBAAA,YAAA;IAII,IAAA,SAAA,aAAA,CACY,MAAiB,EAAA;IAAjB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;SAE5B;IAED;;IAEG;IACH,IAAA,aAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UACI,kBAAoC,EACpC,UAAyB,EACzB,oBAAuC,EAAA;IAEvC,QAAA,IAAI,CAAC,oBAAoB;gBAAE,oBAAoB,GAAI,sBAA8B,CAAC;IAElF,QAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;IAE3C,QAAA,IAAI,UAAU,CAAC,UAAU,YAAY,KAAK,EAAE;IACxC,YAAA,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvD,SAAA;IAAM,aAAA;IACH,YAAA,UAAU,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAClF,SAAA;YAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAU,oBAAoB,EAAE,UAAU,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC,CAAA;IAED;;IAEG;QACH,aAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAA2B,iBAAoC,EAAA;YAC3D,IAAM,UAAU,GAAe,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;IAAE,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;YAC1E,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5C,OAAO,IAAI,CAAC,UAAU,CAA+C,sBAAsB,EAAE,UAAU,CAAC,CAAC;SAC5G,CAAA;IAED;;IAEG;QACH,aAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAgC,iBAAoC,EAAA;YAChE,IAAM,UAAU,GAAe,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;IAAE,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;YAC1E,OAAO,IAAI,CAAC,UAAU,CAAoD,2BAA2B,EAAE,UAAU,CAAC,CAAC;SACtH,CAAA;QAED,aAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,MAAY,EAAA;IACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACI,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;SAChE,CAAA;QAED,aAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,KAAa,EAAA;YAC/B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;SACzD,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAmD,aAAyC,EAAE,UAAyB,EAAA;YAC3H,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAuC,aAAa,EAAE,UAAU,CAAC,CAAC;SAC5F,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,GAAU,EAAE,IAA0C,EAAA;IAC3D,QAAA,IAAI,IAAI,EAAE;IACN,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,SAAA;IACD,QAAA,MAAM,GAAG,CAAC;SACb,CAAA;;;;;IA5EJ,IAAA,EAAA,IAAA,EAAAF,aAAU,EAAC,IAAA,EAAA,CAAA;IACR,gBAAA,UAAU,EAAE,MAAM;IACrB,aAAA,EAAA,EAAA;;;gBAZQsE,cAAS,EAAA;;;AC8BlB,QAAA,sBAAA,kBAAA,YAAA;IA4BI,IAAA,SAAA,sBAAA,GAAA;IA1BQ,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI3D,YAAO,EAAQ,CAAC;IAChC,QAAA,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;IAElB,QAAA,IAAK,CAAA,KAAA,GAAG,cAAc,CAAC;IAcvB,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;SAST;IAtBhB,IAAA,MAAA,CAAA,cAAA,CAAa,sBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,UAAmB,GAAoC,EAAA;gBAAvD,IAYC,KAAA,GAAA,IAAA,CAAA;gBAXG,IAAI,CAAC,GAAG,EAAE;oBACN,OAAO;IACV,aAAA;IAED,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IACpB,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACnB,aAAA;IAAM,iBAAA;IACH,gBAAA,GAAG,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,GAAa,EAAA;IACvD,oBAAA,KAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACpB,iBAAC,CAAC,CAAC;IACN,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAGF,IAAA,MAAA,CAAA,cAAA,CAAI,sBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACI,IAAI,IAAI,CAAC,QAAQ,EAAE;IACf,gBAAA,OAAO,WAAW,CAAC;IACtB,aAAA;IACD,YAAA,OAAO,UAAU,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,sBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA5DJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA+C,EAAA,wZAAA;IAE/C,gBAAA,UAAU,EAAE;wBACRsD,kBAAO,CAAC,wBAAwB,EAAE;IAC9B,wBAAAkB,gBAAK,CACD,WAAW,EACXtB,gBAAK,CAAC;IACF,4BAAA,QAAQ,EAAE,QAAQ;IAClB,4BAAA,UAAU,EAAE,QAAQ;IACpB,4BAAA,MAAM,EAAE,CAAC;IACZ,yBAAA,CAAC,CACL;IACD,wBAAAsB,gBAAK,CACD,UAAU,EACVtB,gBAAK,CAAC;IACF,4BAAA,QAAQ,EAAE,QAAQ;IAClB,4BAAA,UAAU,EAAE,SAAS;IACxB,yBAAA,CAAC,CACL;IACD,wBAAAD,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,wBAAAF,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,gBAAgB,CAAC,CAAC;yBACjE,CAAC;IACL,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;wBAOIjD,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;2BAaLA,QAAK,EAAA,CAAA;;;ACjDG,QAAA,WAAW,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE;AAExDsF,uCASX;IATD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;IAC/B,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EATWA,yBAAiB,KAAjBA,yBAAiB,GAS5B,EAAA,CAAA,CAAA,CAAA;AAEWC,8BAGX;IAHD,CAAA,UAAY,QAAQ,EAAA;IAChB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IAC3B,CAAC,EAHWA,gBAAQ,KAARA,gBAAQ,GAGnB,EAAA,CAAA,CAAA,CAAA;AAqDD,QAAA,WAAA,kBAAA,YAAA;IAkBI,IAAA,SAAA,WAAA,CAAY,GAAQ,EAAA;YAChB,IAAI,CAAC,EAAE,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,SAAS,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,QAAQ,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;YACtB,IAAI,CAAC,GAAG,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,GAAG,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;IACtB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,MAAKA,gBAAQ,CAAC,IAAI,CAAC;IACzC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,KAAI,GAAG,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,GAAG,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,GAAG,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,KAAK,CAAC;YACxB,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,UAAU,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,SAAS;gBAC3B,GAAG,CAAC,SAAS;IACb,YAAA,EAAC,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAA,IAAI,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAKA,gBAAQ,CAAC,SAAS,GAAI,QAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;YAEzG,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;SACzB;QACJ,OAAA,WAAA,CAAA;IAAA,CAAA,EAAA;;ACzFD,QAAA,mBAAA,kBAAA,YAAA;QA4DI,SAAsB,mBAAA,CAAA,GAAsB,EAAY,YAA0B,EAAA;IAA5D,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAAY,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;IA1DlF,QAAA,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC;IAC9B,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IACnB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IAEnB,QAAA,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;IAEzB;;;;IAIG;IACM,QAAA,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;IAEtB;;;;IAIG;IACM,QAAA,IAAkB,CAAA,kBAAA,GAAG,gBAAgB,CAAC;IAE/C;;;;IAIG;IACM,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAE3B;;;;IAIG;IACM,QAAA,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;IAEnD;;;;IAIG;IACM,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IAE9B;;;IAGG;IACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI1F,eAAY,EAAsC,CAAC;IAC9D,QAAA,IAAA,CAAA,KAAK,GAAG,IAAIA,eAAY,EAAO,CAAC;IAE1C;;;;IAIG;IAEO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIA,eAAY,EAAU,CAAC;IAEnB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;SAGhD;QAGD,mBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAU,EAAA;;YAAjB,IAwBC,KAAA,GAAA,IAAA,CAAA;;YAvBG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IAExB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,MAAA,KAAK,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE;4CAChB,IAAI,EAAA;wBACX,IAAM,GAAG,GAAG,IAAI,CAAC;wBAEjB,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACjC,wBAAA,IAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;IAC5B,wBAAA,EAAE,CAAC,MAAM,GAAG,UAAC,CAAM,EAAA;gCACf,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1B,4BAAA,GAAG,CAAC,QAAQ,GAAG,KAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAQ,GAAG,CAAC,GAAI,GAAA,GAAG,CAAC,CAAC;IAC/E,4BAAA,KAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC7B,yBAAC,CAAC;IAEF,wBAAA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1B,qBAAA;IACD,oBAAA,MAAA,CAAK,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;;;wBAbhC,KAAmB,IAAA,KAAA,QAAA,CAAA,KAAK,CAAC,YAAY,CAAC,KAAK,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,wBAAA,IAAM,IAAI,GAAA,EAAA,CAAA,KAAA,CAAA;oCAAJ,IAAI,CAAA,CAAA;IAcd,qBAAA;;;;;;;;;IACJ,aAAA;IACJ,SAAA;SACJ,CAAA;QAED,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;YACX,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,SAAA;SACJ,CAAA;QAGD,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAgB,EAAA;YACvB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,SAAA;SACJ,CAAA;QAGD,mBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,KAAgB,EAAA;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,OAAO;IACV,SAAA;IAED,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;IAChE,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACnC,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACpE,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAClB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACvB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACrB,CAAA;QAED,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAa,EAAA;IACvB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;IACpC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC,CAAA;QAED,mBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,eAAoC,EAAA;IAClD,QAAA,IAAI,MAAM,CAAC;YACX,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC7B,MAAM,GAAG,EAAE,CAAC;IACf,SAAA;IAAM,aAAA;IACH,YAAA,MAAM,GAAG,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC;IAC7C,SAAA;YACD,OAAO,UAAA,GAAY,MAAO,GAAA,KAAK,CAAC;SACnC,CAAA;;;;IAxJJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,cAAc;IACxB,gBAAA,QAAuC,EAAA,knDAAA;oBAEvC,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAhBGC,oBAAiB,EAAA;gBAQZ+D,4BAAY,EAAA;;;0BAsBhBxF,QAAK,EAAA,CAAA;qCAOLA,QAAK,EAAA,CAAA;4BAOLA,QAAK,EAAA,CAAA;sCAOLA,QAAK,EAAA,CAAA;+BAOLA,QAAK,EAAA,CAAA;uBAMLC,SAAM,EAAA,CAAA;wBACNA,SAAM,EAAA,CAAA;8BAQNA,SAAM,EAAA,CAAA;IAEN,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAgB,cAAW,SAAC,iBAAiB,EAAA,EAAA,CAAA;IAK7B,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAoC,eAAY,EAAC,IAAA,EAAA,CAAA,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;IAkC/B,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,EAAC,IAAA,EAAA,CAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;IASnC,IAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,EAAC,IAAA,EAAA,CAAA,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;;;ICzHzC;;;IAGG;AAEH,QAAA,0BAAA,kBAAA,YAAA;IADA,IAAA,SAAA,0BAAA,GAAA;IAEqB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,GAAG,EAAwC,CAAC;SAarF;IAXC,IAAA,0BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,IAAY,EAAE,QAAsC,EAAA;YAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACzC,CAAA;QAED,0BAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAY,EAAA;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzC,CAAA;QAED,0BAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAY,EAAA;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACtC,CAAA;;;;gBAdFtC,aAAU,EAAA;;;ACWX,QAAA,sBAAA,kBAAA,YAAA;IAsDI,IAAA,SAAA,sBAAA,CAAoB,oBAAgD,EAAA;IAAhD,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA4B;IApDpE,QAAA,IAAY,CAAA,YAAA,GAAGuE,yBAAiB,CAAC;IAyBvB,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;SA4BxB;IAnDD,IAAA,MAAA,CAAA,cAAA,CACI,sBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC;aACf;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,sBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aACtB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,MAAA,CAAA,cAAA,CAEI,sBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IALT;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;gBAGI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;IAED,QAAA,GAAA,EAAA,UAAU,KAAc,EAAA;IACpB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;aACzB;;;IAJA,KAAA,CAAA,CAAA;IAoCM,IAAA,sBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACH,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO,aAAa,CAAC,WAAW,CAAC;SACpC,CAAA;IAEM,IAAA,sBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACH,QAAA,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACrE,CAAA;QAES,sBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,IAAY,EAAA;YACnC,IAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAE3E,IAAI,CAAC,sBAAsB,EAAE;IACzB,YAAA,MAAM,IAAI,KAAK,CACX,gDAAA,GAAkD,IAAK,GAAK,KAAA;IAC5D,iBAAA,wEAAA,GAA0E,IAAK,GAAA,IAAI,CAAA,CACtF,CAAC;IACL,SAAA;IAED,QAAA,OAAO,sBAAsB,CAAC;SACjC,CAAA;;;;IA3FJ,IAAA,EAAA,IAAA,EAAAxF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA0C,EAAA,6gCAAA;IAE1C,gBAAA,UAAU,EAAE;wBACRsD,kBAAO,CAAC,UAAU,EAAE;4BAChBkB,gBAAK,CAAC,IAAI,EAAEtB,gBAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IAClD,wBAAAD,qBAAU,CAAC,WAAW,EAAE,CAACC,gBAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,EAAEC,kBAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,wBAAAF,qBAAU,CAAC,WAAW,EAAE,CAACE,kBAAO,CAAC,EAAE,EAAED,gBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;yBACnF,CAAC;IACL,iBAAA;oBACD,eAAe,EAAExB,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAdQ,0BAA0B,EAAA;;;IAmB9B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAP,cAAW,SAAC,WAAW,EAAA,EAAA,CAAA;IAKvB,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,iBAAiB,EAAA,EAAA,CAAA;wBAQ7BjB,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,aAAa,EAAA,EAAA,CAAA;uBAWzBjB,QAAK,EAAA,CAAA;0BAOLA,QAAK,EAAA,CAAA;oCAOLA,QAAK,EAAA,CAAA;uBAKLA,QAAK,EAAA,CAAA;IAEL,IAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA4C,eAAY,SAAC,sBAAsB,EAAA,EAAA,CAAA;;;ACxDxC,QAAA,0BAAA,kBAAA,YAAA;IAyBI,IAAA,SAAA,0BAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAvB1C,QAAA,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;IAChC,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;IAC7B,QAAA,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;IACnB,QAAA,IAAM,CAAA,MAAA,GAAc,EAAE,CAAC;IACvB,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAC5B,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAErC;;;;IAIG;IACM,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IAEpB,QAAA,IAAA,CAAA,gBAAgB,GAAyB,IAAI/C,eAAY,EAAU,CAAC;SAU7E;IARD,IAAA,MAAA,CAAA,cAAA,CAAI,0BAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;aACtE;IACD,QAAA,GAAA,EAAA,UAAiB,MAAM,EAAA;IACnB,YAAA,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;aACrE;;;IAHA,KAAA,CAAA,CAAA;IAQD,IAAA,0BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;QAED,0BAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAY,EAAA;YACpB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,OAAO;IACV,SAAA;IACD,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAO,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,IAAI,CAAC,YAAY,CAAA,CAAA,EAAA,CAAE,IAAI,CAAA,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAED,IAAA,0BAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG4E,YAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,GAAG,EAAI,EAAA,OAAA,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA,EAAA,CAAC,CAAC;YAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B,CAAA;IAED,IAAA,0BAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;IACI,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAM,eAAe,GAAGA,YAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;IACpC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;oBACzB,MAAM;IACT,aAAA;IACD,YAAA,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACvE,YAAA,IAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,0BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAED,IAAA,0BAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;IACI,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACrD,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC5B,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;;;;IAhFJ,IAAA,EAAA,IAAA,EAAA3E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,qBAAqB;IAC/B,gBAAA,QAA8C,EAAA,u6BAAA;oBAE9C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAVGC,oBAAiB,EAAA;;;yBAgBhBzB,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;+BAOLA,QAAK,EAAA,CAAA;mCAELC,SAAM,EAAA,CAAA;;;ACDX,QAAA,eAAA,kBAAA,YAAA;IAsDI,IAAA,SAAA,eAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IApDlC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIyB,YAAO,EAAQ,CAAC;IAK9B,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;IACvB,QAAA,IAAqB,CAAA,qBAAA,GAAG,kBAAkB,CAAC;IAsB1C,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;IAEtB,QAAA,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;IAGpC;;;;IAIG;IACM,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IAKpB,QAAA,IAAA,CAAA,KAAK,GAAsB,IAAI7B,eAAY,EAAO,CAAC;IACnD,QAAA,IAAA,CAAA,KAAK,GAAsB,IAAIA,eAAY,EAAO,CAAC;IACnD,QAAA,IAAA,CAAA,gBAAgB,GAAyB,IAAIA,eAAY,EAAU,CAAC;SAQ7E;IA7CD,IAAA,MAAA,CAAA,cAAA,CAAa,eAAoB,CAAA,SAAA,EAAA,sBAAA,EAAA;IAAjC,QAAA,GAAA,EAAA,UAAkC,KAAmB,EAAA;gBAArD,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,KAAK,CAAC,IAAI,CAACiC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA;wBAC3C,KAAI,CAAC,UAAU,EAAE,CAAC;IACtB,iBAAC,CAAC,CAAC;IACN,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAKF,IAAA,MAAA,CAAA,cAAA,CACI,eAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAJhB;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAiB,KAAc,EAAA;IAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;aAChC;;;IAJA,KAAA,CAAA,CAAA;IA0BD,IAAA,MAAA,CAAA,cAAA,CAAW,eAA2B,CAAA,SAAA,EAAA,6BAAA,EAAA;IAAtC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC;aAC1I;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAKF,IAAA,eAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAOC,KAAA,GAAA,IAAA,CAAA;YANG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,UAAA,QAAQ,EAAA;IACpC,YAAA,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,KAAI,CAAC,UAAU,EAAE,CAAC;IACtB,SAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YAAA,IAeC,KAAA,GAAA,IAAA,CAAA;IAdO,QAAA,UAAU,CAAC,YAAA;gBACP,IAAI,KAAI,CAAC,iBAAiB,EAAE;IACxB,gBAAA,IAAM,eAAe,GAAQ;IACzB,oBAAA,GAAG,EAAE,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY;qBACzD,CAAC;IAEF,gBAAA,IAAI,CAAC,KAAI,CAAC,MAAM,EAAE;IACd,oBAAA,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,iBAAA;oBAED,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC/D,gBAAA,KAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,aAAA;IACL,SAAC,CAAC,CAAC;SACV,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;QAED,eAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAW,EAAA;IACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE;IACvB,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACvC,SAAA;SACJ,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE;IAC3C,YAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;IAC/C,SAAA;SACJ,CAAA;;;;IA/GJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,SAAS;IAEnB,gBAAA,QAAkC,EAAA,qiEAAA;oBAClC,SAAS,EAAE,CAAC,0BAA0B,CAAC;;IAC1C,aAAA,EAAA,EAAA;;;gBAlBG2B,oBAAiB,EAAA;;;6BAuBhBzB,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;uCAELA,QAAK,EAAA,CAAA;+BAWLA,QAAK,EAAA,CAAA;8BAWLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;+BAOLA,QAAK,EAAA,CAAA;IAEL,IAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA2C,YAAS,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAC7B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAH,kBAAe,SAAC,sBAAsB,EAAA,EAAA,CAAA;IACtC,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAI,eAAY,SAAC,mBAAmB,EAAA,EAAA,CAAA;wBAChC3C,SAAM,EAAA,CAAA;wBACNA,SAAM,EAAA,CAAA;mCACNA,SAAM,EAAA,CAAA;IACN,IAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAAC,0BAA0B,EAAA,EAAA,CAAA;;;AC5E7B8C,kCAMX;IAND,CAAA,UAAY,YAAY,EAAA;IACpB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EANWA,oBAAY,KAAZA,oBAAY,GAMvB,EAAA,CAAA,CAAA,CAAA;IAAA;;;ICHD,IAAM,iBAAiB,IAAAC,IAAA,GAAA,EAAA;IACnB,IAAAA,IAAA,CAACD,oBAAY,CAAC,OAAO,CAAA,GAAG,0BAA0B;IAClD,IAAAC,IAAA,CAACD,oBAAY,CAAC,UAAU,CAAA,GAAG,eAAe;IAC1C,IAAAC,IAAA,CAACD,oBAAY,CAAC,KAAK,CAAA,GAAG,eAAe;IACrC,IAAAC,IAAA,CAACD,oBAAY,CAAC,OAAO,CAAA,GAAG,iBAAiB;IACzC,IAAAC,IAAA,CAACD,oBAAY,CAAC,IAAI,CAAA,GAAG,cAAc;aACtC,CAAC;AAQF,QAAA,gBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,gBAAA,GAAA;IAOa,QAAA,IAAA,CAAA,KAAK,GAAiBA,oBAAY,CAAC,IAAI,CAAC;SAYpD;IARG,IAAA,MAAA,CAAA,cAAA,CACI,gBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IADhB,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,qBAAuB,GAAA,IAAI,CAAC,KAAQ,CAAC;aAC/C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,gBAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IAAzB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,eAAe,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChE;;;IAAA,KAAA,CAAA,CAAA;;;;IAlBJ,IAAA,EAAA,IAAA,EAAA3F,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,UAAU;IACpB,gBAAA,QAAwC,EAAA,wWAAA;oBAExC,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;wBAEIxB,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;IAEL,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAiB,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;AClBxB,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;;;;gBADCF,aAAU,EAAA;;AAUX,QAAA,mBAAA,kBAAA,UAAA,MAAA,EAAA;QAAyC,SAAY,CAAA,mBAAA,EAAA,MAAA,CAAA,CAAA;IAArD,IAAA,SAAA,mBAAA,GAAA;;;QACE,mBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,SAA4B,EAAA;IAClC,QAAA,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;IACzC,YAAA,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;IACrC,gBAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClC,aAAA;IAAM,iBAAA;IACL,gBAAA,OAAO,EAAE,CAAC;IACX,aAAA;IACF,SAAA;IAED,QAAA,QAAQ,SAAS,CAAC,YAAY,CAAC,MAAM;IACnC,YAAA,KAAK,CAAC;IACJ,gBAAA,OAAO,gBAAgB,CAAC;IAC1B,YAAA,KAAK,CAAC;oBACJ,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,YAAA;IACE,gBAAA,OAAU,SAAS,CAAC,YAAY,CAAC,MAAM,sBAAmB,CAAC;IAC9D,SAAA;SACF,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACE,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;IACE,QAAA,OAAO,QAAQ,CAAC;SACjB,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,yBAAyB,GAAzB,YAAA;IACE,QAAA,OAAO,gBAAgB,CAAC;SACzB,CAAA;QAED,mBAA4B,CAAA,SAAA,CAAA,4BAAA,GAA5B,UAA6B,UAAmB,EAAA;YAC9C,OAAO,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;SAC3C,CAAA;;KAlCH,CAAyC,YAAY;;gBADpDA,aAAU,EAAA;;;ACTE,QAAA,cAAc,GAAG;IAC5B,IAAA,QAAQ,EAAA,QAAA;IACR,IAAA,cAAc,EAAA,cAAA;IACd,IAAA,UAAU,EAAA,UAAA;IACV,IAAA,UAAU,EAAA,UAAA;IACV,IAAA,eAAe,EAAA,eAAA;MACf;IAEF,SAAS,QAAQ,CAAC,IAAkB,EAAE,KAAU,EAAA;;IAC9C,IAAA,IAAI4E,OAAK,CAAC,IAAI,CAAC,EAAE;IACf,QAAA,OAAO,SAAS,CAAC;IAClB,KAAA;IAED,IAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;IACxB,QAAA,OAAO,IAAI,CAAC;IACb,KAAA;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;;gBACjB,KAAoB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,QAAQ,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA9B,gBAAA,IAAM,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;oBACd,IAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,gBAAA,IAAI,SAAS,EAAE;IACb,oBAAA,OAAO,SAAS,CAAC;IAClB,iBAAA;IACF,aAAA;;;;;;;;;IACF,KAAA;IAED,IAAA,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,cAAc,CAAC,IAAoB,EAAE,KAAU,EAAA;;IACtD,IAAA,IAAIA,OAAK,CAAC,IAAI,CAAC,EAAE;IACf,QAAA,OAAO,SAAS,CAAC;IAClB,KAAA;;IAED,QAAA,KAAmB,IAAA,MAAA,GAAA,QAAA,CAAA,IAAI,CAAA,0BAAA,EAAE,CAAA,QAAA,CAAA,IAAA,EAAA,QAAA,GAAA,MAAA,CAAA,IAAA,EAAA,EAAA;IAApB,YAAA,IAAM,IAAI,GAAA,QAAA,CAAA,KAAA,CAAA;gBACb,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,YAAA,IAAI,SAAS,EAAE;IACb,gBAAA,OAAO,SAAS,CAAC;IAClB,aAAA;IACF,SAAA;;;;;;;;;IAED,IAAA,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,UAAU,CAAC,IAAkB,EAAE,IAAkB,EAAA;;QACxD,IAAIA,OAAK,CAAC,IAAI,CAAC,IAAIA,OAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;IACvC,QAAA,OAAO,SAAS,CAAC;IAClB,KAAA;;YAED,KAAoB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,QAAQ,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA9B,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;gBACd,IAAI,KAAK,KAAK,IAAI,EAAE;IAClB,gBAAA,OAAO,IAAI,CAAC;IACb,aAAA;IAAM,iBAAA;oBACL,IAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvC,gBAAA,IAAI,MAAM,EAAE;IACV,oBAAA,OAAO,MAAM,CAAC;IACf,iBAAA;IACF,aAAA;IACF,SAAA;;;;;;;;;IAED,IAAA,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,UAAU,CAAC,IAAkB,EAAE,IAAkB,EAAA;QACxD,IAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,IAAA,IAAI,MAAM,EAAE;IACV,QAAAC,MAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5B,QAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;IAChC,YAAA,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC7B,SAAA;IAAM,aAAA;gBACL,MAAM,CAAC,cAAc,EAAE,CAAC;IACzB,SAAA;IACD,QAAA,OAAO,IAAI,CAAC;IACb,KAAA;IAED,IAAA,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,eAAe,CAAC,KAAqB,EAAE,OAAuB,EAAE,SAAyB,EAAA;;IAChG,IAAA,IAAI,YAAY,GAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAO,OAAO,CAAA,CAAC,CAAC;IAChC,IAAA,IAAI,cAAc,GAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAO,SAAS,CAAA,CAAC,CAAC;;IACpC,QAAA,KAAmB,IAAA,OAAA,GAAA,QAAA,CAAA,KAAK,CAAA,4BAAA,EAAE,CAAA,SAAA,CAAA,IAAA,EAAA,SAAA,GAAA,OAAA,CAAA,IAAA,EAAA,EAAA;IAArB,YAAA,IAAM,IAAI,GAAA,SAAA,CAAA,KAAA,CAAA;IACb,YAAA,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,YAAY,GAAGC,QAAM,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;gBAC5D,cAAc,GAAGA,QAAM,CAAC,cAAc,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACnE,SAAA;;;;;;;;;QACD,OAAO;IACL,QAAA,OAAO,EAAE,YAAY;IACrB,QAAA,SAAS,EAAE,cAAc;SAC1B,CAAC;IACJ;;AC5EA,QAAA,YAAA,kBAAA,YAAA;QAQE,SAAY,YAAA,CAAA,IAAc,EAAE,kBAA0B,EAAA;YAAtD,IAgCC,KAAA,GAAA,IAAA,CAAA;IAhC2B,QAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,kBAA0B,GAAA,KAAA,CAAA,EAAA;IAP9C,QAAA,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;IACzB,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;IACvB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAMhC,QAAA,IAAIF,OAAK,CAAC,IAAI,CAAC,EAAE;IACf,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzC,SAAA;IACD,QAAA,IAAIG,UAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACvB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,SAAA;IAAM,aAAA;IACL,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACzD,SAAA;IACD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACxB,QAAA,IAAIC,WAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;IAC3B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,SAAA;IACD,QAAA,IAAIA,WAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,SAAA;IACD,QAAA,IAAIA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;IAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,SAAA;IACD,QAAA,IAAI,CAACJ,OAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA;IACrC,gBAAA,IAAI,KAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC1B,oBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,iBAAA;IAED,gBAAA,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,aAAC,CAAC,CAAC;IACJ,SAAA;IAED,QAAA,IAAI,kBAAkB,EAAE;gBACtB,IAAI,CAAC,cAAc,EAAE,CAAC;IACvB,SAAA;SACF;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,YAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAY,KAAc,EAAA;IACxB,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;IAC1B,gBAAA,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;IAClC,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC9B,iBAAA;IACF,aAAA;aACF;;;IARA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CAAI,YAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;aACnC;;;IAAA,KAAA,CAAA,CAAA;QAED,YAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,KAAc,EAAA;IAChC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;IAC1B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,YAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;IACjC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAhC,EAAgC,CAAC,CAAC;IAC1E,aAAA;IACF,SAAA;SACF,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,YAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAAZ,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAa,KAAc,EAAA;IACzB,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;IACnC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC9B,gBAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;IACjC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAtB,EAAsB,CAAC,CAAC;IAChE,iBAAA;IACF,aAAA;aACF;;;IATA,KAAA,CAAA,CAAA;IAWD,IAAA,MAAA,CAAA,cAAA,CAAI,YAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAb,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;IAED,QAAA,GAAA,EAAA,UAAc,KAAc,EAAA;IAC1B,YAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;IACpC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAChC,aAAA;aACF;;;IANA,KAAA,CAAA,CAAA;QAQD,YAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,KAAc,EAAA;IAClC,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAC/B,QAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;IACjC,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAlC,EAAkC,CAAC,CAAC;IAC5E,SAAA;SACF,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,YAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAAZ,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAa,KAAqB,EAAA;IAChC,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;oBACnC,IAAI,CAACA,OAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IACvC,oBAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACxD,iBAAA;IACD,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC9B,gBAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;wBACjC,IAAI,SAAO,GAAG,IAAI,CAAC;IACnB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;4BACjC,IAAI,SAAO,KAAK,IAAI,EAAE;IACpB,4BAAA,SAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IACzB,yBAAA;IAAM,6BAAA;IACL,4BAAA,IAAI,KAAK,CAAC,OAAO,KAAK,SAAO,EAAE;oCAC7B,SAAO,GAAG,SAAS,CAAC;oCACpB,OAAO;IACR,6BAAA;IACF,yBAAA;IACH,qBAAC,CAAC,CAAC;IACH,oBAAA,IAAI,CAAC,eAAe,GAAG,SAAO,CAAC;IAChC,iBAAA;IACF,aAAA;aACF;;;IAvBA,KAAA,CAAA,CAAA;IAyBD,IAAA,YAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACE,IAAI,YAAY,GAAmB,EAAE,CAAC;YACtC,IAAI,cAAc,GAAmB,EAAE,CAAC;IACxC,QAAA,IAAIA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBAChC,IAAI,IAAI,CAAC,eAAe,EAAE;IACxB,gBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,aAAA;IAAM,iBAAA;IACL,gBAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,aAAA;IACF,SAAA;IAAM,aAAA;IACL,YAAA,IAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IACtG,YAAA,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;IACjC,YAAA,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC;IACtC,SAAA;YAED,OAAO;IACL,YAAA,YAAY,EAAA,YAAA;IACZ,YAAA,cAAc,EAAA,cAAA;aACf,CAAC;SACH,CAAA;IAED,IAAA,YAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;IACE,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACjD,CAAA;IAEO,IAAA,YAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;;YACN,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,QAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;;oBACjC,KAAoB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,gBAAgB,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,oBAAA,IAAM,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;IACd,oBAAA,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;wBAClD,IAAI,OAAO,KAAK,IAAI,EAAE;IACpB,wBAAA,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC;IACjC,qBAAA;IAAM,yBAAA,IAAI,OAAO,KAAK,KAAK,CAAC,eAAe,EAAE;4BAC5C,OAAO,GAAG,SAAS,CAAC;4BACpB,MAAM;IACP,qBAAA;IACF,iBAAA;;;;;;;;;IACF,SAAA;IAAM,aAAA;IACL,YAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACxB,SAAA;IAED,QAAA,OAAO,OAAO,CAAC;SAChB,CAAA;QACF,OAAA,YAAA,CAAA;IAAA,CAAA,EAAA;;ACrLD,QAAA,cAAA,kBAAA,YAAA;IADA,IAAA,SAAA,cAAA,GAAA;IAEE,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;IACtB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAClB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAuB,CAAA,uBAAA,GAAG,KAAK,CAAC;IAChC,QAAA,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;SAiBjB;IAfC,IAAA,MAAA,CAAA,cAAA,CAAI,cAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IAAd,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC;aACxE;;;IAAA,KAAA,CAAA,CAAA;QAEa,cAAM,CAAA,MAAA,GAAb,UAAc,MAMpB,EAAA;IACC,QAAA,IAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;IACpC,QAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAA,OAAO,MAAM,CAAC;SACf,CAAA;;;;gBAtBF5E,aAAU,EAAA;;;ACIX,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;;;;gBADCA,aAAU,EAAA;;AAMX,QAAA,0BAAA,kBAAA,UAAA,MAAA,EAAA;QAAgD,SAAmB,CAAA,0BAAA,EAAA,MAAA,CAAA,CAAA;IAAnE,IAAA,SAAA,0BAAA,GAAA;;;QACE,0BAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,SAA4B,EAAA;IAC5C,QAAA,IAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;IACtD,QAAA,IAAI,CAAC4E,OAAK,CAAC,YAAY,CAAC,EAAE;IACxB,YAAA,OAAO,YAAY,CAAC,GAAG,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,CAAC,KAAK,CAAV,EAAU,CAAC,CAAC;IAC7C,SAAA;IAED,QAAA,OAAO,EAAE,CAAC;SACX,CAAA;;KARH,CAAgD,mBAAmB;;gBADlE5E,aAAU,EAAA;;AAkBX,QAAA,2BAAA,kBAAA,UAAA,MAAA,EAAA;QAAiD,SAAmB,CAAA,2BAAA,EAAA,MAAA,CAAA,CAAA;IAApE,IAAA,SAAA,2BAAA,GAAA;;;QACE,2BAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,SAA4B,EAAA;YAA9C,IAeC,KAAA,GAAA,IAAA,CAAA;IAdC,QAAA,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,QAAA,IAAI,CAAC4E,OAAK,CAAC,KAAK,CAAC,EAAE;gBACjB,IAAI,QAAM,GAA2B,EAAE,CAAC;IACxC,YAAA,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;oBAChB,IAAM,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,gBAAA,IAAI,CAACA,OAAK,CAAC,KAAK,CAAC,EAAE;IACjB,oBAAA,QAAM,GAAG,QAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,iBAAA;IACH,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,QAAM,CAAC;IACf,SAAA;IAED,QAAA,OAAO,EAAE,CAAC;SACX,CAAA;IAEO,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,IAAkB,EAAE,MAA4B,EAAA;YAAzD,IAyBP,KAAA,GAAA,IAAA,CAAA;IAxBC,QAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;IACzB,YAAA,IAAM,MAAI,GAAG;IACX,gBAAA,IAAI,EAAA,IAAA;IACJ,gBAAA,MAAM,EAAA,MAAA;iBACP,CAAC;gBACF,IAAI,QAAM,GAA2B,EAAE,CAAC;IACxC,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;oBACzB,IAAM,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAI,CAAC,CAAC;IACzC,gBAAA,IAAI,CAACA,OAAK,CAAC,KAAK,CAAC,EAAE;IACjB,oBAAA,QAAM,GAAG,QAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,iBAAA;IACH,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,QAAM,CAAC;IACf,SAAA;YAED,IAAI,IAAI,CAAC,OAAO,EAAE;IAChB,YAAA,OAAO,CAAC;IACN,oBAAA,IAAI,EAAA,IAAA;IACJ,oBAAA,MAAM,EAAA,MAAA;IACP,iBAAA,CAAC,CAAC;IACJ,SAAA;IAED,QAAA,OAAO,IAAI,CAAC;SACb,CAAA;;KA3CH,CAAiD,mBAAmB;;gBADnE5E,aAAU,EAAA;;AAgDX,QAAA,gCAAA,kBAAA,UAAA,MAAA,EAAA;QAAsD,SAAmB,CAAA,gCAAA,EAAA,MAAA,CAAA,CAAA;IADzE,IAAA,SAAA,gCAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GAAA,MAAA,CAAA,KAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,WAgCC,CAAA,CAAA,IAAA,IAAA,CAAA;IA9BS,QAAA,KAAgB,CAAA,gBAAA,GAA2B,EAAE,CAAC;IAC9C,QAAA,KAAA,CAAA,MAAM,GAAG,IAAI,2BAA2B,EAAE,CAAC;;SA6BpD;QA3BC,gCAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,SAA4B,EAAA;YAC5C,IAAM,YAAY,GAA2B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtF,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;IACtC,YAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;IACtC,SAAA;IAAM,aAAA;gBACL,IAAM,oBAAkB,GAA2B,EAAE,CAAC;IACtD,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,QAAQ,EAAA;IACpC,gBAAA,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IACpB,gBAAA,IAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;oBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;IAC/B,oBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;4BACtD,UAAU,GAAG,CAAC,CAAC;4BACf,MAAM;IACP,qBAAA;IACF,iBAAA;IAED,gBAAA,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;wBACrB,oBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,oBAAA,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACpC,iBAAA;IACH,aAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,gBAAgB,GAAG,oBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACjE,SAAA;YAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAC9B,CAAA;;KA9BH,CAAsD,mBAAmB;;gBADxEA,aAAU,EAAA;;;IChEX,IAAA,kBAAA,kBAAA,UAAA,MAAA,EAAA;QAAiC,SAAY,CAAA,kBAAA,EAAA,MAAA,CAAA,CAAA;IAE3C,IAAA,SAAA,kBAAA,CAAY,IAAkB,EAAA;IAA9B,QAAA,IAAA,KAAA,GACE,MAAM,CAAA,IAAA,CAAA,IAAA,EAAA;gBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACxB,SAAA,CAAC,IAEH,IAAA,CAAA;IADC,QAAA,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;;SACrB;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;;IACE,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;gBACzB,IAAI,KAAK,YAAY,kBAAkB,EAAE;oBACvC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC1B,aAAA;IACH,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,QAAA,IAAI,UAAU,EAAE;;oBACd,KAAuB,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAzC,oBAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,KAAA,CAAA;IACjB,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;4BACrB,UAAU,GAAG,KAAK,CAAC;4BACnB,MAAM;IACP,qBAAA;IACF,iBAAA;;;;;;;;;IACF,SAAA;IACD,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC;SACnC,CAAA;QACF,OAAA,kBAAA,CAAA;IAAA,CAhCD,CAAiC,YAAY,CAgC5C,CAAA,CAAA;AAOD,QAAA,iBAAA,kBAAA,YAAA;IAaE,IAAA,SAAA,iBAAA,CACS,IAAkB,EACjB,aAA6B,EAC7B,WAAgC,EAAA;IAFjC,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAc;IACjB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;IAC7B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAqB;IAXhC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAIlB,eAAY,EAAS,CAAC;IAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAIA,eAAY,EAAU,CAAC;IAGpD,QAAA,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;IASd,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;IACjC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SACpE;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,CAAC8F,OAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;aAChE;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAb,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,KAAG,IAAI,CAAC,MAAM,CAAC,SAAW,CAAC;aACnC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,CAAA;QAED,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;IAChC,QAAA,IAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IACxC,QAAA,IAAI,CAACA,OAAK,CAAC,iBAAiB,CAAC,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,SAAA;SACF,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;YAAA,IAGC,KAAA,GAAA,IAAA,CAAA;YAFC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,qBAAqB,CAAC,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA,EAAA,CAAC,CAAC;SACtF,CAAA;QAED,iBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,IAAY,EAAA;IAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACE,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACrC,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;IAC3B,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,IAAI,YAAY,kBAAkB,EAAE;oBACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,aAAA;IACH,SAAC,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,IAAkB,EAAE,OAAgB,EAAA;YACtD,IAAI,IAAI,YAAY,kBAAkB,EAAE;gBACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,SAAA;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;YALC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxD,QAAA,UAAU,CAAC,YAAA;IACT,YAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;YAAA,IAQP,KAAA,GAAA,IAAA,CAAA;YAPC,IAAI,CAAC,qBAAqB,GAAG;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,eAAe,EAAE,cAAM,OAAA,KAAI,CAAC,kBAAkB,EAAE,GAAA;gBAChD,gBAAgB,EAAE,cAAM,OAAA,KAAI,CAAC,mBAAmB,EAAE,GAAA;IAClD,YAAA,kBAAkB,EAAE,UAAC,IAAI,EAAA,EAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA,EAAA;aAC5D,CAAC;SACH,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACN,IAAI,YAAY,GAAmB,EAAE,CAAC;YACtC,IAAI,cAAc,GAAmB,EAAE,CAAC;IACxC,QAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IACtB,YAAA,IAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC3F,YAAA,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;IACjC,YAAA,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC;IACtC,SAAA;YAED,IAAI,CAAC,SAAS,GAAG;IACf,YAAA,YAAY,EAAA,YAAA;IACZ,YAAA,cAAc,EAAA,cAAA;aACf,CAAC;SACH,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IAgBP,KAAA,GAAA,IAAA,CAAA;IAfC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;gBAC1B,IAAM,aAAW,GAAmB,EAAE,CAAC;gBACvC,IAAM,YAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACjD,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;oBACrB,IAAM,OAAO,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAU,CAAC,CAAC;IAClD,gBAAA,IAAI,CAACA,OAAK,CAAC,OAAO,CAAC,EAAE;IACnB,oBAAA,aAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,iBAAA;IACH,aAAC,CAAC,CAAC;IACH,YAAA,IAAI,CAAC,WAAW,GAAG,aAAW,CAAC;IAChC,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;IAC/B,SAAA;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,IAAkB,EAAE,UAAkB,EAAA;YAAjD,IAuBP,KAAA,GAAA,IAAA,CAAA;IAtBC,QAAA,IAAM,OAAO,GAAGK,UAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;IAC9D,QAAA,IAAI,OAAO,EAAE;IACX,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAACL,OAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBACzB,IAAM,UAAQ,GAAmB,EAAE,CAAC;IACpC,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;wBACzB,IAAM,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACpD,oBAAA,IAAI,CAACA,OAAK,CAAC,QAAQ,CAAC,EAAE;IACpB,wBAAA,UAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,qBAAA;IACH,iBAAC,CAAC,CAAC;IACH,gBAAA,IAAI,UAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;IACvB,oBAAA,IAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7C,oBAAA,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,oBAAA,OAAO,CAAC,QAAQ,GAAG,UAAQ,CAAC;IAC5B,oBAAA,OAAO,OAAO,CAAC;IAChB,iBAAA;IACF,aAAA;IACF,SAAA;IAED,QAAA,OAAO,SAAS,CAAC;SAClB,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;;YACN,IAAI,WAAW,GAAY,IAAI,CAAC;;gBAChC,KAAyB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,WAAW,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,gBAAA,IAAM,UAAU,GAAA,EAAA,CAAA,KAAA,CAAA;oBACnB,IAAI,WAAW,KAAK,IAAI,EAAE;IACxB,oBAAA,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;IAClC,iBAAA;IAAM,qBAAA,IAAI,WAAW,KAAK,UAAU,CAAC,OAAO,EAAE;wBAC7C,WAAW,GAAG,SAAS,CAAC;wBACxB,MAAM;IACP,iBAAA;IACF,aAAA;;;;;;;;;YAED,IAAI,WAAW,KAAK,IAAI,EAAE;gBACxB,WAAW,GAAG,KAAK,CAAC;IACrB,SAAA;IAED,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;SACpC,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;;YACN,IAAI,eAAe,GAAG,KAAK,CAAC;;gBAC5B,KAAyB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,WAAW,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,gBAAA,IAAM,UAAU,GAAA,EAAA,CAAA,KAAA,CAAA;IACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;wBACzB,eAAe,GAAG,IAAI,CAAC;wBACvB,MAAM;IACP,iBAAA;IACF,aAAA;;;;;;;;;IAED,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,eAAe,CAAC;SAC3C,CAAA;;;;IAzLF,IAAA,EAAA,IAAA,EAAA7F,YAAS,EAAC,IAAA,EAAA,CAAA;IACT,gBAAA,QAAQ,EAAE,cAAc;IACxB,gBAAA,QAAwC,EAAA,imKAAA;;IAEzC,aAAA,EAAA,EAAA;;;gBA9CQ,YAAY,EAAA;gBAEZ,cAAc,EAAA;gBAId,mBAAmB,EAAA;;;iCA0CzBE,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;iCACLC,SAAM,EAAA,CAAA;+BACNA,SAAM,EAAA,CAAA;;;AChDT,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;IACE,IAAA,YAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,OAAc,EAAE,SAAiB,EAAA;IACzC,QAAA,IAAI0F,OAAK,CAAC,OAAO,CAAC,EAAE;IAClB,YAAA,OAAO,SAAS,CAAC;IAClB,SAAA;YAED,OAAO,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;SAC5F,CAAA;;;;IAVF,IAAA,EAAA,IAAA,EAAA7C,OAAI,EAAC,IAAA,EAAA,CAAA;IACJ,gBAAA,IAAI,EAAE,aAAa;IACpB,aAAA,EAAA,EAAA;;;ACNWmD,qCAaX;IAbD,CAAA,UAAY,eAAe,EAAA;IACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC/B,CAAC,EAbWA,uBAAe,KAAfA,uBAAe,GAa1B,EAAA,CAAA,CAAA;;ACXWC,8BAKX;IALD,CAAA,UAAY,QAAQ,EAAA;IAChB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EALWA,gBAAQ,KAARA,gBAAQ,GAKnB,EAAA,CAAA,CAAA;;ACCD,QAAA,8BAAA,kBAAA,YAAA;IAMI,IAAA,SAAA,8BAAA,CAAoB,OAAgB,EAAA;IAAhB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;IAH3B,QAAA,IAAQ,CAAA,QAAA,GAAG,GAAG,CAAC;IACd,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAIrG,eAAY,EAAO,CAAC;SAGzD;IAED,IAAA,8BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;YALG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CACtD2D,cAAI,CAAC,CAAC,CAAC,EACP2C,sBAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3BC,8BAAoB,EAAE,CACzB,CAAC,SAAS,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;SAChE,CAAA;IAED,IAAA,8BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC,CAAA;;;;IAtBJ,IAAA,EAAA,IAAA,EAAA3C,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,yBAAyB;IACtC,aAAA,EAAA,EAAA;;;gBAJQ4C,aAAO,EAAA;;;2BAQXrG,QAAK,EAAA,CAAA;wCACLC,SAAM,EAAA,CAAA;;;ACZCqG,iCAQX;IARD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EARWA,mBAAW,KAAXA,mBAAW,GAQtB,EAAA,CAAA,CAAA;;ACRWC,uCAGX;IAHD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACzB,CAAC,EAHWA,yBAAiB,KAAjBA,yBAAiB,GAG5B,EAAA,CAAA,CAAA,CAAA;IAAA;;;ICAM,IAAM,WAAW,IAAA,EAAA,GAAA,EAAA;QACpB,EAAC,CAAA,iBAAiB,CAAC,IAAI,CAAG,GAAA;IACtB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;QACD,EAAC,CAAA,iBAAiB,CAAC,OAAO,CAAG,GAAA;IACzB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;QACD,EAAC,CAAA,iBAAiB,CAAC,KAAK,CAAG,GAAA;IACvB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;QACD,EAAC,CAAA,iBAAiB,CAAC,GAAG,CAAG,GAAA;IACrB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;QACD,EAAC,CAAA,iBAAiB,CAAC,IAAI,CAAG,GAAA;IACtB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;WACJ,CAAC;IAEc,SAAA,wBAAwB,CAAC,mBAA4B,EAAE,2BAAoC,EAAA;;IACvG,IAAA,OAAA,EAAA,GAAA,EAAA;YACI,EAAC,CAAAL,gBAAQ,CAAC,OAAO,CAAA,GACV,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,WAAW,CACd,YAAA,EAAC,CAAA,iBAAiB,CAAC,KAAK,CAAG,GAAA;IACvB,YAAA,IAAI,EAAE,MAAM;IACZ,YAAA,MAAM,EAAE,IAAI;IACf,SAAA,EACD,EAAC,CAAA,iBAAiB,CAAC,WAAW,CAAG,GAAA;IAC7B,YAAA,MAAM,EAAE,KAAK;aAChB,EACJ,EAAA,EAAA;YACD,EAAC,CAAAA,gBAAQ,CAAC,MAAM,CAAA,IAAA,EAAA,GAAA,EAAA;gBACZ,EAAC,CAAA,iBAAiB,CAAC,YAAY,CAAG,GAAA;IAC9B,gBAAA,MAAM,EAAE,IAAI;IACZ,gBAAA,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC3C,MAAM,EAAE,CAAC,mBAAmB;IAC/B,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,IAAI,CAAG,GAAA;IACtB,gBAAA,MAAM,EAAE,KAAK;IACb,gBAAA,eAAe,EAAE,IAAI;IACrB,gBAAA,MAAM,EAAE,mBAAmB;IAC9B,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,IAAI,CAAG,GAAA;IACtB,gBAAA,IAAI,EAAE,MAAM;IACZ,gBAAA,MAAM,EAAE,IAAI;IACf,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,OAAO,CAAG,GAAA;IACzB,gBAAA,IAAI,EAAE,MAAM;IACZ,gBAAA,MAAM,EAAE,KAAK;IAChB,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,WAAW,CAAG,GAAA;IAC7B,gBAAA,MAAM,EAAE,KAAK;IAChB,aAAA;IACJ,YAAA,EAAA,CAAA;YACD,EAAC,CAAAA,gBAAQ,CAAC,QAAQ,CAAA,IAAA,EAAA,GAAA,EAAA;gBACd,EAAC,CAAA,iBAAiB,CAAC,YAAY,CAAG,GAAA;IAC9B,gBAAA,MAAM,EAAE,IAAI;IACZ,gBAAA,IAAI,EAAE,MAAM;IACf,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,cAAc,CAAG,GAAA;IAChC,gBAAA,MAAM,EAAE,IAAI;IACZ,gBAAA,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC;oBACnD,MAAM,EAAE,CAAC,2BAA2B;IACvC,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,WAAW,CAAG,GAAA;IAC7B,gBAAA,MAAM,EAAE,KAAK;IAChB,aAAA;IACJ,YAAA,EAAA,CAAA;YACD,EAAC,CAAAA,gBAAQ,CAAC,IAAI,CAAA,GACP,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,WAAW,CACd,YAAA,EAAC,CAAA,iBAAiB,CAAC,KAAK,CAAG,GAAA;IACvB,YAAA,IAAI,EAAE,MAAM;IACZ,YAAA,MAAM,EAAE,IAAI;IACf,SAAA,EACD,EAAC,CAAA,iBAAiB,CAAC,WAAW,CAAG,GAAA;IAC7B,YAAA,MAAM,EAAE,IAAI;aACf,EACJ,EAAA,EAAA;IACH,QAAA,EAAA,CAAA;IACN;;ACpEA,QAAA,eAAA,kBAAA,YAAA;IADA,IAAA,SAAA,eAAA,GAAA;IAEY,QAAA,IAAyB,CAAA,yBAAA,GAAG,OAAO,CAAC;SA0O/C;IAnOG,IAAA,MAAA,CAAA,cAAA,CAAW,eAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAOM,SAAQ,CAAC,MAAM,CAAC,MAAM,CAACN,gBAAQ,CAAC,EAAE,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,KAAKA,gBAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAlC,EAAkC,CAAC,CAAC;aAC9F;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAY,eAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;IAAjC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;aACnC;;;IAAA,KAAA,CAAA,CAAA;QAEM,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,eAAuB,EAAE,iBAAyB,EAAE,mBAA4B,EAAE,2BAAoC,EAAA;YAC1I,IAAI,EAAC,eAAe,KAAA,IAAA,IAAf,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,eAAe,CAAE,MAAM,CAAA;gBAAE,OAAO;IAErC,QAAA,IAAI,CAAC,eAAe,GAAG1F,WAAU,CAAC,eAAe,CAAC,CAAC;IACnD,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC3C,QAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IAC/C,QAAA,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;SAClE,CAAA;IAEM,IAAA,eAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,UAA4B,YAA8B,EAAE,UAAkB,EAAA;IACjF,QAAA,IAAM,kBAAkB,GAAGiG,QAAO,CAAC,UAAU,EAAE,UAAC,SAAS,EACrD,EAAA,OAAAnF,MAAK,CAAC,YAAY,EAAE,UAAC,WAAW,EAAK,EAAA,OAAA,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,kBAAkB,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAnF,EAAmF,CAAC,CAAzH,EAAyH,CAAC,CAAC;IAE/H,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;SACpD,CAAA;QAEM,eAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,QAAkB,EAAA;YAA5C,IAqCN,KAAA,GAAA,IAAA,CAAA;IApCG,QAAA,IAAM,kBAAkB,GAAmB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACtG,IAAM,cAAc,GAAqB,EAAE,CAAC;IAE5C,QAAAD,SAAQ,CAAC,kBAAkB,EAAE,UAAC,WAAyB,EAAA;gBACnD,IAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,KAAKH,gBAAQ,CAAC,IAAI,CAAC;IAC5D,YAAA,IAAM,cAAc,GAAG,gBAAgB,IAAIT,MAAK,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7F,YAAA,IAAM,GAAG,GAAmB,cAAc,IAAI,KAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEnI,YAAA,IAAI,gBAAgB,EAAE;IAClB,gBAAA,KAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;oBAC7C,GAAG,CAAC,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpD,aAAA;IAED,YAAA,IAAI,cAAc;oBAAE,OAAO;IAC3B,YAAA,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,SAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,qBAAqB,EAAE;IAC5B,YAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACzD,SAAA;IAED,QAAA,IAAM,uBAAuB,GAAGa,MAAK,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/F,QAAA,IAAI,uBAAuB,EAAE;IACzB,YAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACvC,SAAA;YAED,IAAM,uBAAuB,GAAmBb,MAAK,CACjD,cAAc,EACd,UAAC,GAAG,EAAA,EAAK,IAAA,EAAA,CAAA,CAAA,OAAA,GAAG,CAAC,MAAM,IAAI,CAAC,EAAC,CAAA,EAAA,GAAA,GAAG,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA,CAAA,EAAA,CACzD,CAAC;IACF,QAAA,IAAI,uBAAuB,EAAE;IACzB,YAAA,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IACtE,SAAA;IAED,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;SAChD,CAAA;IAEM,IAAA,eAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,UAAuD,GAAM,EAAE,qBAAwB,EAAE,OAAU,EAAA;IACtG,QAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,OAAO;IAElD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAKS,gBAAQ,CAAC,IAAI,EAAE;IAC5B,YAAA,qBAAqB,CAAC,MAAM,GAAG,KAAK,CAAC;IACxC,SAAA;YAED,IAAI,GAAG,KAAK,qBAAqB,EAAE;IAC/B,YAAA,IAAI,OAAO,EAAE;IACT,gBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IAC1B,aAAA;IACJ,SAAA;SACJ,CAAA;IAEM,IAAA,eAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,UAAsD,GAAM,EAAE,OAAU,EAAA;;YAC3E,IAAI,EAAC,CAAA,EAAA,GAAA,GAAG,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA;gBAAE,OAAO;IAE3C,QAAA,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,OAAO,CAAC,OAAO,GAAGC,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAC,MAAM,EAAA;IAC3C,YAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAACuF,UAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChF,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC,CAAC;YAEH,OAAO,CAAC,kBAAkB,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACzD,CAAA;QAEM,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,cAAqB,EAAA;IACzC,QAAA,OAAOF,SAAQ,CAAC,cAAc,EAAE,CAAC,UAAC,GAAG,EAAK,EAAA,QAAC,GAAG,CAAC,IAAI,KAAKtF,gBAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAC,EAAE,UAAC,GAAG,EAAA,EAAK,OAAA,GAAG,CAAC,IAAI,KAAK,aAAa,GAAA,CAAC,CAAC,CAAC;SACzH,CAAA;QAEa,eAAa,CAAA,aAAA,GAApB,UAAqB,GAAmB,EAAA;IAC3C,QAAA,IAAM,cAAc,GAAG;IACnB,YAAA,iBAAiB,CAAC,GAAG;IACrB,YAAA,iBAAiB,CAAC,IAAI;IACtB,YAAA,iBAAiB,CAAC,KAAK;IACvB,YAAA,iBAAiB,CAAC,OAAO;IACzB,YAAA,iBAAiB,CAAC,IAAI;aACzB,CAAC;YACF,OAAOsF,SAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,UAAC,MAAM,EAAK,EAAA,OAAA1F,SAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA,EAAA,CAAC,CAAC;SACtF,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,UAAuB,QAAkB,EAAE,cAAgC,EAAA;YAA3E,IAiBP,KAAA,GAAA,IAAA,CAAA;IAhBG,QAAAO,SAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAC,SAAS,EAAA;;IACvC,YAAA,IAAM,UAAU,GAAG,CAAA,EAAA,GAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;IAChD,YAAA,IAAM,qBAAqB,GAAG,wBAAwB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,2BAA2B,CAAC,CAAC;IACnH,YAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;oBAC5G,OAAO;IACV,aAAA;gBAED,IAAM,aAAa,GAAG,SAAS,CAAC,IAAI,KAAKH,gBAAQ,CAAC,IAAI;IAClD,kBAAET,MAAK,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;sBAC/CA,MAAK,CAAC,cAAc,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC;IAEhE,YAAA,IAAI,aAAa,EAAE;IACf,gBAAA,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAA,aAAa,CAAC,kBAAkB,GAAG,UAAU,CAAC;IACjD,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;QAEO,eAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UACJ,kBAAkC,EAClC,WAAyB,EACzB,QAAkB,EAClB,SAAkB,EAAA;YAElB,IAAM,YAAY,GAAG,SAAS;kBACxBa,MAAK,CAAC,kBAAkB,EAAE,UAAC,GAAG,EAAA,EAAK,OAAA,GAAG,CAAC,IAAI,KAAKJ,gBAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAArD,EAAqD,CAAC;IAC3F,cAAE,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC;YAEtC,IAAM,kBAAkB,GAAG,SAAS;kBAC9B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IAC/D,cAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEnC,QAAA,IAAM,GAAG,GAAmB;gBACxB,MAAM,EAAE,IAAI,CAAC,qBAAqB,GAAG,KAAK,GAAG,YAAY;gBACzD,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI;gBACvD,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW;gBAC5E,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,YAAA,kBAAkB,EAAA,kBAAA;aACrB,CAAC;IAEF,QAAA,IAAI,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE;gBAC1C,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC;IAClE,SAAA;IAED,QAAA,IAAI,WAAW,CAAC,YAAY,CAAC,iBAAiB,EAAE;gBAC5C,GAAG,CAAC,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC;IACtE,SAAA;IAED,QAAA,OAAO,GAAG,CAAC;SACd,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,GAAmB,EAAE,WAAyB,EAAA;IACxE,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;IACd,YAAA,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,SAAA;IAED,QAAA,IAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEhD,QAAA,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IACb,YAAA,OAAO,EAAE,UAAU;IACnB,YAAA,IAAI,EAAE,UAAU,KAAK,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,yBAAyB,GAAG,WAAW,CAAC,IAAI;IAC1G,SAAA,CAAC,CAAC;SACN,CAAA;QAEO,eAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,YAA8B,EAAA;IACjD,QAAA,IAAM,OAAO,GAAGT,MAAK,CAAC,YAAY,EAAE,EAAE,IAAI,EAAES,gBAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7D,QAAA,IAAI,CAAC,OAAO;gBAAE,OAAO;IACrB,QAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;SAC1B,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,uBAAuC,EAAE,YAA8B,EAAA;;IAChG,QAAA,IAAM,OAAO,GAAG,CAAA,EAAA,GAAAT,MAAK,CAAC,YAAY,EAAE,EAAE,IAAI,EAAES,gBAAQ,CAAC,IAAI,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC;YACtE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAO;IAE5B,QAAAG,SAAQ,CAAC,YAAY,EAAE,UAAC,GAAG,EAAA;;gBACvB,IAAI,EAAC,CAAA,EAAA,GAAA,GAAG,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA;oBAAE,OAAO;gBAC3C,IAAI,GAAG,KAAK,uBAAuB,EAAE;IACjC,gBAAA,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAAA,SAAQ,CAAC,OAAO,EAAE,UAAC,MAAM,EAAA;IACrB,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxF,SAAC,CAAC,CAAC;SACN,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,UAA2B,QAAkB,EAAE,QAAwB,EAAA;;;IAC3E,QAAA,IAAM,YAAY,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAAZ,MAAK,CAAC,QAAQ,EAAE,UAAC,GAAiB,EAAA,EAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,KAAK,CAAA,EAAA,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;IAEjI,QAAA,IAAM,uBAAuB,IAAA,EAAA,GAAA,EAAA;gBACzB,EAAC,CAAAyF,gBAAQ,CAAC,OAAO,CAAA,GAAG,cAAM,OAAA,YAAY,GAAA;IACtC,YAAA,EAAA,CAACA,gBAAQ,CAAC,MAAM,CAAG,GAAA,YAAA,EAAM,IAAA,EAAA,EAAA,EAAA,CAAA,CAAA,OAAA,MAAA,CAAA,EAAA,GAAAzF,MAAK,CAAC,QAAQ,EAAE,UAAC,GAAiB,EAAA,EAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,IAAI,CAAA,EAAA,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EAAA;IACnI,YAAA,EAAA,CAACyF,gBAAQ,CAAC,QAAQ,CAAG,GAAA,YAAA,EAAM,IAAA,EAAA,EAAA,EAAA,CAAA,CAAA,OAAA,MAAA,CAAA,EAAA,GAAAzF,MAAK,CAAC,QAAQ,EAAE,UAAC,GAAiB,EAAA,EAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,YAAY,CAAA,EAAA,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EAAA;gBAC7I,EAAC,CAAAyF,gBAAQ,CAAC,IAAI,CAAA,GAAG,cAAM,OAAA,YAAY,GAAA;mBACtC,CAAA;IAED,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;gBAAE,OAAO;IAC/C,QAAA,OAAO,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC9C,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,QAAkB,EAAE,UAAkB,EAAA;YAA5D,IAmBP,KAAA,GAAA,IAAA,CAAA;IAlBG,QAAA,OAAOS,QAAO,CACV,UAAU,EACV,UAAC,GAAmB,EAAE,SAAe,EAAA;;IACjC,YAAA,IAAM,UAAU,GAAG,CAAA,EAAA,GAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;IAEhD,YAAA,IAAM,qBAAqB,GAAG,wBAAwB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,2BAA2B,CAAC,CAAC;gBACnH,IAAM,iBAAiB,GACnB,qBAAqB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAClH,YAAA,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM;IAAE,gBAAA,OAAO,GAAG,CAAC;IAE/D,YAAA,IAAM,eAAe,GAAGnG,WAAU,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAM,WAAW,mCAAsB,eAAe,CAAA,EAAA,EAAE,YAAY,EAAE,iBAAiB,GAAE,CAAC;IAE1F,YAAA,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtB,YAAA,OAAO,GAAG,CAAC;aACd,EACD,EAAE,CACL,CAAC;SACL,CAAA;;;;gBA3OJO,aAAU,EAAA;;;ACdX,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;SA8CC;IA7CG;;;;IAIG;QACW,aAAwB,CAAA,wBAAA,GAA/B,UAAgC,MAAc,EAAA;IACjD,QAAA,IAAM,YAAY,GAAGX,uBAAe,CAAC,GAAG,CAAC;YAEzC,IAAI,CAAC,MAAM,EAAE;IACT,YAAA,OAAO,YAAY,CAAC;IACvB,SAAA;IAED,QAAA,IAAM,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC7C,QAAA,QAAQ,IAAI;IACR,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,OAAO,CAAC;IACnC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,GAAG,CAAC;IAC/B,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,IAAI,CAAC;IAChC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,KAAK,CAAC;IACjC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,IAAI,CAAC;IAChC,YAAA;IACI,gBAAA,OAAO,YAAY,CAAC;IAC3B,SAAA;SACJ,CAAA;QAEa,aAAY,CAAA,YAAA,GAAnB,UAAoB,GAAW,EAAA;IAClC,QAAA,IAAM,SAAS,GAAGG,iBAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,QAAA,QAAQ,GAAG;gBACP,KAAKD,gBAAQ,CAAC,KAAK;IACf,gBAAA,OAAO,SAAS,CAAC;gBACrB,KAAKA,gBAAQ,CAAC,SAAS;IACnB,gBAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9B,gBAAA,OAAO,SAAS,CAAC;gBACrB,KAAKA,gBAAQ,CAAC,UAAU;IACpB,gBAAA,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,gBAAA,OAAO,SAAS,CAAC;gBACrB,KAAKA,gBAAQ,CAAC,UAAU;IACpB,gBAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,gBAAA,OAAO,SAAS,CAAC;IACxB,SAAA;SACJ,CAAA;QACJ,OAAA,aAAA,CAAA;IAAA,CAAA,EAAA;;ICzCD;IACA,IAAMC,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAGjC,QAAA,mBAAA,kBAAA,YAAA;IADA,IAAA,SAAA,mBAAA,GAAA;IAEI,QAAA,IAA2B,CAAA,2BAAA,GAAG,KAAK,CAAC;IACpC,QAAA,IAAA,CAAA,SAAS,GAAqBH,uBAAe,CAAC,GAAG,CAAC;YAClD,IAAO,CAAA,OAAA,GAAG,IAAI8C,oBAAe,CAAShD,mBAAW,CAAC,uBAAuB,CAAC,CAAC;IAC3E,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIwB,YAAO,EAAU,CAAC;IACxC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAIA,YAAO,EAAU,CAAC;YAG7C,IAAA,CAAA,UAAU,GAAG,IAAIwB,oBAAe,CAAS,EAAE,CAAC,CAAC;IAC7C,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAIxB,YAAO,EAAU,CAAC;IACrD,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;IACtB,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;YACxB,IAAA,CAAA,mBAAmB,GAAG;IAClB,YAAAtB,uBAAe,CAAC,GAAG;IACnB,YAAAA,uBAAe,CAAC,IAAI;IACpB,YAAAA,uBAAe,CAAC,KAAK;IACrB,YAAAA,uBAAe,CAAC,OAAO;IACvB,YAAAA,uBAAe,CAAC,IAAI;aACvB,CAAC;YAEK,IAAA,CAAA,YAAY,GAA4B;gBAC3C,GAAG,EAAEF,mBAAW,CAAC,uBAAuB;gBACxC,KAAK,EAAEA,mBAAW,CAAC,iBAAiB;gBACpC,IAAI,EAAEA,mBAAW,CAAC,WAAW;gBAC7B,OAAO,EAAEA,mBAAW,CAAC,cAAc;gBACnC,IAAI,EAAEA,mBAAW,CAAC,WAAW;aAChC,CAAC;IAGK,QAAA,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;SA4KvC;IA1KG,IAAA,mBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YACI,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7C,QAAA,QAAQ,IAAI;gBACR,KAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAQ,CAAC,GAAG,CAAC;IAC5B,gBAAA,OAAO,GAAG,CAAC;gBACf,KAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAQ,CAAC,GAAG,CAAC;IAC5B,gBAAA,OAAO,GAAG,CAAC;IACf,YAAA;IACI,gBAAA,OAAO,EAAE,CAAC;IACjB,SAAA;SACJ,CAAA;QAED,mBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAc,EAAA;IACvB,QAAA,OAAO,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;SACzD,CAAA;QAED,mBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,SAA2B,EAAA;IAC3C,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SACvC,CAAA;QAED,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,MAAc,EAAA;IACnC,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/D,CAAA;QAED,mBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,KAAK,EAAA;YAChB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACnC,CAAA;IAED;;;;IAIG;QACI,mBAA+B,CAAA,SAAA,CAAA,+BAAA,GAA/B,UAAgC,IAAY,EAAA;IAC/C,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC;IAChD,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,SAAS,GAAG,WAAW,EAAE;gBACzB,WAAW,IAAI,EAAE,CAAC;IACrB,SAAA;IACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SAC3D,CAAA;IAED;;;;;IAKG;IACI,IAAA,mBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAY,EAAE,aAAqB,EAAA;YACtD,IAAI;IACC,aAAA,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;iBAC5C,OAAO,CAAC,MAAM,CAAC;IACf,aAAA,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,aAAa,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;iBAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;SACvB,CAAA;IAED;;;;;IAKG;IACI,IAAA,mBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,IAAY,EAAE,aAAqB,EAAA;YACxD,IAAI;IACC,aAAA,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;iBAC5C,OAAO,CAAC,MAAM,CAAC;IACf,aAAA,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;SAC1E,CAAA;IAED;;;;IAIG;QACI,mBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,IAAY,EAAA;IACtC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1E,CAAA;IAED;;;;IAIG;QACI,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,IAAY,EAAA;IACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5E,CAAA;IAED;;;;IAIG;QACI,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,SAA0B,EAAA;IACtD,QAAA,OAAOuE,YAAC,CAAC,QAAQ,CAAC,CAACrE,uBAAe,CAAC,OAAO,EAAEA,uBAAe,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;SACjF,CAAA;IAED;;;;IAIG;QACI,mBAAgC,CAAA,SAAA,CAAA,gCAAA,GAAhC,UAAiC,IAAY,EAAA;YAChD,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD,CAAA;IAED;;;;IAIG;QACI,mBAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,IAAY,EAAA;IACzC,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;SACnD,CAAA;IAED;;;;;IAKG;IACK,IAAA,mBAAA,CAAA,SAAA,CAAA,6BAA6B,GAA7B,UAA8B,IAAY,EAAE,UAAkB,EAAA;IAAlB,QAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAkB,GAAA,KAAA,CAAA,EAAA;IAClE,QAAA,OAAO,IAAI,GAAGqE,YAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;SACnH,CAAA;IAEM,IAAA,mBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,UAAyB,GAAW,EAAE,QAAa,EAAA;IACtD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,QAAA,IAAI,GAAG,EAAE;IACT,YAAA,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACvC,YAAA,QAAQ,GAAG;oBACP,KAAKnE,gBAAQ,CAAC,KAAK;IACf,oBAAA,IAAI,CAAC,wBAAwB,CAACJ,mBAAW,CAAC,uBAAuB,CAAC,CAAC;wBACnE,MAAM;oBACV,KAAKI,gBAAQ,CAAC,SAAS;IACnB,oBAAA,IAAI,CAAC,wBAAwB,CAACJ,mBAAW,CAAC,uBAAuB,CAAC,CAAC;wBACnE,MAAM;oBACV,KAAKI,gBAAQ,CAAC,UAAU;IACpB,oBAAA,IAAI,CAAC,wBAAwB,CAACJ,mBAAW,CAAC,iBAAiB,CAAC,CAAC;IAC7D,oBAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;wBACnD,MAAM;oBACV,KAAKI,gBAAQ,CAAC,UAAU;IACpB,oBAAA,IAAI,CAAC,wBAAwB,CAACJ,mBAAW,CAAC,iBAAiB,CAAC,CAAC;IAC7D,oBAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;wBACnD,MAAM;IACT,aAAA;IACJ,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxC,CAAA;IAEM,IAAA,mBAAA,CAAA,SAAA,CAAA,6BAA6B,GAA7B,UAA8B,IAAY,EAAE,QAAa,EAAA;IAC5D,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,IAAM,SAAS,GAAG,QAAQ,CAAC,SAAgB,CAAC;IAC5C,YAAA,IAAI,SAAS,EAAE;IACX,gBAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;IAC7B,gBAAA,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC3B,SAAS,CAAC,KAAK,EAAE,CAAC;IACrB,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;IAEM,IAAA,mBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;IACH,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACrB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC9B,SAAA;SACJ,CAAA;;;;gBAzMJa,aAAU,EAAA;;;ICDX;IACA,IAAMR,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAiBjC,QAAA,iCAAA,kBAAA,YAAA;QA0DI,SAAoB,iCAAA,CAAA,SAA2B,EAC3B,YAAiC,EACP,YAA8B,EACxD,GAAsB,EACvB,iBAAsC,EAAA;;YAJzD,IA8BC,KAAA,GAAA,IAAA,CAAA;IA9BmB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;IAC3B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;IACP,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkB;IACxD,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACvB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;IA7DjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAImB,YAAO,EAAQ,CAAC;IACzC,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,QAAA,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;YACpB,IAAA,CAAA,gBAAgB,GAAuB,CAAC;oBACpC,SAAS,EAAEtB,uBAAe,CAAC,GAAG;IAC9B,gBAAA,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAEC,oBAAY,CAAC,QAAQ;IAC5B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG;oBAC/C,WAAW,EAAE,YAAM,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE,CAAA,EAAA;iBACvI,EAAE;oBACC,SAAS,EAAED,uBAAe,CAAC,IAAI;IAC/B,gBAAA,KAAK,EAAE,MAAM;oBACb,KAAK,EAAEC,oBAAY,CAAC,QAAQ;IAC5B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI;oBAChD,WAAW,EAAE,YAAM,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE,CAAA,EAAA;iBACvI,EAAE;oBACC,SAAS,EAAED,uBAAe,CAAC,KAAK;IAChC,gBAAA,KAAK,EAAE,OAAO;oBACd,KAAK,EAAEC,oBAAY,CAAC,UAAU;IAC9B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK;oBACjD,WAAW,EAAE,cAAM,OAAA,MAAM,CAACE,QAAM,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA,EAAA;iBAC5E,EAAE;oBACC,SAAS,EAAEH,uBAAe,CAAC,OAAO;IAClC,gBAAA,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAEC,oBAAY,CAAC,YAAY;IAChC,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO;IACnD,gBAAA,WAAW,EAAE,YAAA,EAAM,OAAA,MAAM,CAACE,QAAM,CAAC,KAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA,EAAA;iBACrI,EAAE;oBACC,SAAS,EAAEH,uBAAe,CAAC,IAAI;IAC/B,gBAAA,KAAK,EAAE,MAAM;oBACb,KAAK,EAAEC,oBAAY,CAAC,SAAS;IAC7B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI;IAChD,gBAAA,WAAW,EAAE,YAAA;wBACT,IAAM,WAAW,GAAGE,QAAM,CAAC,KAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5H,oBAAA,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;wBACtD,OAAO,WAAW,GAAG,GAAG,IAAI,WAAW,GAAG,EAAE,CAAC,CAAC;qBACjD;IACJ,aAAA,CAAC,CAAC;IAEH,QAAA,IAAA,CAAA,WAAW,IAAA,EAAA,GAAA,EAAA;IACP,YAAA,EAAA,CAACF,oBAAY,CAAC,UAAU,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC7F,YAAA,EAAA,CAACA,oBAAY,CAAC,YAAY,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC/F,YAAA,EAAA,CAACA,oBAAY,CAAC,QAAQ,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC5F,YAAA,EAAA,CAACA,oBAAY,CAAC,SAAS,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,EAAE,OAAO,CAAC,GAAA;mBAChG,CAAC;IAEF,QAAA,IAAA,CAAA,iBAAiB,GAAkBA,oBAAY,CAAC,QAAQ,CAAC;IACzD,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;IACtB,QAAA,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;IACrB,QAAA,IAAa,CAAA,aAAA,GAAG,gBAAgB,CAAC;IAKjB,QAAA,IAAY,CAAA,YAAA,GAAGA,oBAAY,CAAC;YAQxC,SAAS,CAAC,YAAY,CAAC,IAAI,CAACyB,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,eAAe,EAAE,CAAA,EAAA,CAAC,CAAC;IAChG,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAACA,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK,EAAA;gBAC3E,KAAI,CAAC,iBAAiB,GAAG,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAA,MAAM,EAAI,EAAA,OAAA,MAAM,CAAC,MAAM,KAAK,KAAK,CAAvB,EAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClG,YAAA,SAAS,CAAC,WAAW,GAAG,KAAI,CAAC,iBAAoC,CAAC;gBAClE,KAAI,CAAC,eAAe,EAAE,CAAC;IACvB,YAAA,IAAI,KAAI,CAAC,iBAAiB,KAAKzB,oBAAY,CAAC,YAAY,EAAE;IACtD,gBAAA,KAAI,CAAC,eAAe,GAAG,KAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5G,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAACyB,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA;gBAC7D,KAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,SAAS,CAAC,aAAa,EAAE;oBACzB,KAAI,CAAC,yCAAyC,EAAE,CAAC;IACpD,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAA,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,UAAA,IAAI,EAAA;IACnC,YAAA,IAAI,CAAC,KAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;oBACzC,KAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,SAAS,CAAC;SACvD;IApCD,IAAA,MAAA,CAAA,cAAA,CAAI,iCAAiB,CAAA,SAAA,EAAA,mBAAA,EAAA;IAArB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;aACvD;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAoCF,IAAA,iCAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,IAAI,KAAI,CAAC,SAAS,CAAC,aAAa,EAAE;oBAC9B,KAAI,CAAC,yCAAyC,EAAE,CAAC;IACpD,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC9B,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAWC,KAAA,GAAA,IAAA,CAAA;YAVG,IAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,KAAK,KAAK,KAAI,CAAC,SAAS,CAAC,WAAW,CAA3C,EAA2C,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,QAAA,IAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAKzB,oBAAY,CAAC,QAAQ,EAAE;IACtD,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvE,YAAA,IAAI,CAAC,eAAe,GAAE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC1C,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iCAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAK,EAAA;YAAlB,IAaC,KAAA,GAAA,IAAA,CAAA;IAZG,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,EAAE;IAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IAC3C,SAAA;IACD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAC/B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAoC,CAAC;YACvE,IAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAA,MAAM,EAAI,EAAA,OAAA,MAAM,CAAC,KAAK,KAAK,KAAI,CAAC,iBAAiB,CAAvC,EAAuC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjH,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9E,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAKA,oBAAY,CAAC,YAAY,EAAE;IACtD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5G,SAAA;SACJ,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iCAAoB,CAAA,SAAA,EAAA,sBAAA,EAAA;IAAxB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,CAAC,CAACA,oBAAY,CAAC,QAAQ,EAAEA,oBAAY,CAAC,UAAU,EAAEA,oBAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAA2B,CAAC,CAAC;aACzI;;;IAAA,KAAA,CAAA,CAAA;QAED,iCAA8B,CAAA,SAAA,CAAA,8BAAA,GAA9B,UAA+B,IAAsD,EAAA;IACjF,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;SACrC,CAAA;QAED,iCAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,aAAqB,EAAA;IACjC,QAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;IACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACjF,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;SACrD,CAAA;QAED,iCAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,OAAO,EAAA;YACjB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;IAC9C,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;IACzD,SAAA;SACJ,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,UAAkB,EAAE,MAAc,EAAE,OAAgB,EAAA;IACjE,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;YACjH,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,yCAAyC,GAAzC,YAAA;IACI,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAoB,CAAC;IAC1D,QAAA,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC/G,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC/D,aAAa,CAAC,KAAK,EAAE,CAAC;SACzB,CAAA;QAED,iCAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,GAAQ,EAAA;IACtB,QAAA,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,SAAA;IAAM,aAAA;gBACH,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnD,SAAA;IACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3F,CAAA;;;;IAlLJ,IAAA,EAAA,IAAA,EAAAP,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,wCAAwC;IAClD,gBAAA,QAA0D,EAAA,upEAAA;oBAE1D,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAvBQoF,sBAAW,EAAA;gBACXlG,gBAAW,EAAA;gBACG,gBAAgB,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAmFtB2B,SAAM,EAAA,IAAA,EAAA,CAACrB,qBAAgB,EAAA,EAAA,CAAA,EAAA;gBAxFKS,oBAAiB,EAAA;gBAMrD,mBAAmB,EAAA;;;ICiB5B;IACA,IAAMlB,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAM,IAAI,GAAG,YAAA;IACb,CAAC,CAAC;;AAEF,QAAA,iBAAA,kBAAA,UAAA,MAAA,EAAA;QAAuC,SAAiB,CAAA,iBAAA,EAAA,MAAA,CAAA,CAAA;IAAxD,IAAA,SAAA,iBAAA,GAAA;;SAIC;IAHG,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;IACI,QAAA,OAAO,CAAC,CAAC;SACZ,CAAA;QACJ,OAAA,iBAAA,CAAA;IAAA,CAJD,CAAuCI,uCAAiB,CAIvD,EAAA;AAaD,QAAA,qBAAA,kBAAA,YAAA;IAoDI,IAAA,SAAA,qBAAA,CACc,GAAsB,EACtB,WAA6B,EAChC,iBAAsC,EAAA;YAHjD,IAQC,KAAA,GAAA,IAAA,CAAA;IAPa,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAChC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;;IA1CxC,QAAA,IAAA,CAAA,cAAc,GAA6BR,gCAAwB,CAAC,OAAO,CAAC;IAE5E,QAAA,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;IAI1B,QAAA,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;YAM/B,IAAA,CAAA,6BAA6B,GAAQ;IACxC,YAAA,IAAI,EAAE,YAAY;IAClB,YAAA,KAAK,EAAE,MAAM;IACb,YAAA,OAAO,EAAE,MAAM;IACf,YAAA,GAAG,EAAE,OAAO;aACf,CAAC;IAEK,QAAA,IAAY,CAAA,YAAA,GAAG,iCAAiC,CAAC;IACjD,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;IAGP,QAAA,IAAe,CAAA,eAAA,GAAGC,uBAAe,CAAC;IAaxC,QAAA,IAAU,CAAA,UAAA,GAAW,IAAI,CAAC;IAC1B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIsB,YAAO,EAAQ,CAAC;IA6GpC,QAAA,IAAiB,CAAA,iBAAA,GAAe,IAAI,CAAC;IACrC,QAAA,IAAgB,CAAA,gBAAA,GAAqB,IAAI,CAAC;;IAW1C,QAAA,IAAA,CAAA,UAAU,GAAG,UAAC,MAAc,EAAA;IAC/B,YAAA,IAAI,KAAI,CAAC,gBAAgB,IAAI,MAAM,EAAE;IACjC,gBAAA,OAAO,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,aAAA;IAED,YAAA,OAAO,IAAI,CAAC;IAChB,SAAC,CAAA;IA8BM,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;IAtJlB,QAAA,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IAC/E,YAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,SAAC,CAAC,CAAC;SACN;IAxDD,IAAA,MAAA,CAAA,cAAA,CAAa,qBAAG,CAAA,SAAA,EAAA,KAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,UAAiB,OAAe,EAAA;IAC5B,YAAA,IAAI,CAAC,IAAI,GAAGvB,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,qBAAG,CAAA,SAAA,EAAA,KAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,UAAiB,OAAe,EAAA;IAC5B,YAAA,IAAI,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IA4BD,IAAA,MAAA,CAAA,cAAA,CAAW,qBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAiB,CAAS,EAAA;IACtB,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;IACvB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC9B,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IAPA,KAAA,CAAA,CAAA;IAsBD,IAAA,qBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAChF,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5D,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;SACpG,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC9B,CAAA;QAED,qBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;;IAC9B,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,KAAI,OAAO,CAAC,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE;gBAC9F,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChF,SAAA;SACJ,CAAA;IAED;;;IAGG;IACH,IAAA,qBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;IACI,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACnD,QAAQ,IAAI,CAAC,cAAc;gBACvB,KAAKJ,gCAAwB,CAAC,eAAe;oBACzC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKC,uBAAe,CAAC,OAAO,EAAE;wBAC9D,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpE,iBAAA;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;wBAClE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChE,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,iBAAA;oBACD,MAAM;gBACV,KAAKD,gCAAwB,CAAC,aAAa;oBACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKC,uBAAe,CAAC,OAAO,EAAE;wBAC9D,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,iBAAA;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;wBAClE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9D,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpC,iBAAA;oBACD,MAAM;gBACV,KAAKD,gCAAwB,CAAC,gBAAgB;oBAC1C,IAAI,WAAmB,SAAA,CAAC;oBACxB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKC,uBAAe,CAAC,OAAO,EAAE;IAC9D,oBAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtC,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,oBAAA,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAA;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;IAClE,oBAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;wBAC7D,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1D,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,oBAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1D,iBAAA;IACD,gBAAA,IAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1D,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC7C,MAAM;IACV,YAAA;IACI,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACpD,MAAM;IACb,SAAA;SACJ,CAAA;IAEM,IAAA,qBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,UAAkB,EAAE,SAA0B,EAAA;IAErE,QAAA,IAAI,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;gBACpC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC7E,SAAA;IAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,OAAO,IAAI,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;gBACpG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,WAAW,GAAGC,oBAAY,CAAC,YAA+B,CAAC;gBACnG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;IAChE,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC5B,SAAA;IAAM,aAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,SAAS,EAAE;IACvD,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACpC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED;;IAEG;QACI,qBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;IAC3B;;;IAGE;YACF,IAAM,cAAc,GAAI,QAAgB,CAAC,WAAW,GAAGE,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IACrG,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,cAAc,GAAG,KAAK,CAAC;YACjD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACnC,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAKM,qBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC9B,CAAA;QAEM,qBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC/B,CAAA;IAWD;;;;IAIG;QACO,qBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,UAAkB,EAAA;YAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;SACpC,CAAA;IAED;;;;IAIG;QACO,qBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,SAAiB,EAAA;YAA1B,IAWT,KAAA,GAAA,IAAA,CAAA;;;;IANG,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,KAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,KAAK,CAAC;IACnD,SAAC,CAAC,CAAC;SACN,CAAA;IAID,IAAA,qBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;IACI,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;IACI,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB,CAAA;;;;IAjOJ,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAA8C,EAAA,6vBAAA;oBAE9C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;IAC/C,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAED,uBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE;IAC/E,oBAAA,EAAE,OAAO,EAAEb,gBAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE;wBACrD,mBAAmB;IACtB,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;gBAzCGe,oBAAiB,EAAA;gBAYZf,gBAAW,EAAA;gBACX,mBAAmB,EAAA;;;yBA+BvBV,QAAK,EAAA,CAAA;sBAELA,QAAK,EAAA,CAAA;sBAILA,QAAK,EAAA,CAAA;iCAKLA,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,EAAA,EAAA,IAAA,EAAIiB,cAAW,EAAA,IAAA,EAAA,CAAC,gBAAgB,EAAA,EAAA,CAAA;2CAErCjB,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;IAEL,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA2C,YAAS,SAAC,YAAY,EAAA,EAAA,CAAA;IAuLtB,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA1B,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;;;ACzN/B,QAAA,kCAAA,kBAAA,UAAA,MAAA,EAAA;QAAwD,SAAqB,CAAA,kCAAA,EAAA,MAAA,CAAA,CAAA;IA0EzE,IAAA,SAAA,kCAAA,CACc,GAAsB,EACtB,WAA6B,EAChC,iBAAsC,EAAA;;IAHjD,QAAA,IAAA,KAAA,GAKI,kBAAM,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAyB7C,IAAA,CAAA;IA7Ba,QAAA,KAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,KAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAChC,QAAA,KAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;IAtExC,QAAA,KAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;IAU9B,QAAA,KAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;;IA2BzB,QAAA,KAAA,CAAA,cAAc,GAAG,IAAIpB,eAAY,EAAU,CAAC;IAC5C,QAAA,KAAA,CAAA,iBAAiB,GAAG,IAAIA,eAAY,EAAU,CAAC;IAExC,QAAA,KAAA,CAAA,WAAW,IAAA,EAAA,GAAA,EAAA;IACxB,YAAA,EAAA,CAACO,uBAAe,CAAC,IAAI,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IACrF,YAAA,EAAA,CAACA,uBAAe,CAAC,OAAO,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IACzF,YAAA,EAAA,CAACA,uBAAe,CAAC,KAAK,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IACvF,YAAA,EAAA,CAACA,uBAAe,CAAC,GAAG,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IACnF,YAAA,EAAA,CAACA,uBAAe,CAAC,IAAI,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;mBACvF,CAAC;IAgBK,QAAA,KAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAC3B,QAAA,KAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAE1B,QAAA,KAAA,CAAA,kBAAkB,GAAoB,IAAIsB,YAAO,EAAU,CAAC;IAQhE,QAAA,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC;IAErD,QAAA,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAACI,mBAAS,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IACvE,YAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,SAAC,CAAC,CAAC;IAEH,QAAA,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAACA,mBAAS,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IAC1E,YAAA,IAAI,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAC,GAAG,EAAK,EAAA,OAAA,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,GAAG,MAAK,KAAK,CAAlB,EAAkB,CAAC,CAAC;gBAChE,KAAI,CAAC,iBAAiB,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,KAAK,CAAC;IACvC,YAAA,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,SAAC,CAAC,CAAC;IAEH,QAAA,KAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAACA,mBAAS,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IACjG,YAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,SAAC,CAAC,CAAC;IAEH,QAAA,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAACA,mBAAS,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IACpF,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAClC,aAAA;IAAM,iBAAA;oBACH,KAAI,CAAC,gBAAgB,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,aAAA;IACD,YAAA,KAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,SAAC,CAAC,CAAC;;SACN;IArGD,IAAA,MAAA,CAAA,cAAA,CAAsD,kCAAyB,CAAA,SAAA,EAAA,2BAAA,EAAA;IAA/E,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,qBAAqB,CAAC;aACrC;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAIF,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAA7B,QAAA,GAAA,EAAA,UAA8B,KAA8B,EAAA;IACxD,YAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAK,EAAA,KAAK,CAAE,CAAC;IAC3F,gBAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3F,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAmB,CAAA,SAAA,EAAA,qBAAA,EAAA;IAAhC,QAAA,GAAA,EAAA,UAAiC,KAAwB,EAAA;IACrD,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;IACvB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACtD,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;IAAlC,QAAA,GAAA,EAAA,UAAmC,IAAa,EAAA;IAC5C,YAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,IAAI,CAAC;aACvD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAtB,QAAA,GAAA,EAAA,UAAuB,GAAW,EAAA;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,kCAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAiB,CAAS,EAAA;IACtB,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IALA,KAAA,CAAA,CAAA;IAmBD,IAAA,MAAA,CAAA,cAAA,CAAW,kCAAuB,CAAA,SAAA,EAAA,yBAAA,EAAA;IAAlC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC3B,aAAA;gBAED,IAAI,YAAY,GAAG2C,YAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;oBACnF,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC;IACxF,aAAA;gBAED,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC/D,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACxF;;;IAAA,KAAA,CAAA,CAAA;IAuCD,IAAA,kCAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IASC,KAAA,GAAA,IAAA,CAAA;YARG,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAC7E,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAExB,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC3C,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAEqE,sBAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IAC5G,gBAAA,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;QAED,kCAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,OAAgB,EAAA;YAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;IACpD,YAAA,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9E,YAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpC,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAC3B,CAAA;QAED,kCAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,QAAgB,EAAA;YAC7B,IAAI,IAAI,CAAC,kBAAkB,EAAE;;;;IAIzB,YAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACxC,YAAA,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrC,SAAA;SACJ,CAAA;IAEA;;;;IAIE;QACO,kCAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,SAAiB,EAAA;IAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACxC,QAAA,MAAA,CAAA,SAAA,CAAM,QAAQ,CAAA,IAAA,CAAA,IAAA,EAAC,SAAS,CAAC,CAAC;SAC7B,CAAA;QACM,kCAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;IAC3B,QAAA,MAAA,CAAA,SAAA,CAAM,UAAU,CAAA,IAAA,CAAA,IAAA,EAAC,KAAK,CAAC,CAAC;IACxB,QAAA,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B,CAAA;IAEO,IAAA,kCAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,UAAkB,EAAE,MAAc,EAAE,OAAgB,EAAA;;YACpE,OAAO,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,EAAC,UAAU,CAAC,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;SACtF,CAAA;IAEO,IAAA,kCAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YACJ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO;IACrC,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3E,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC3F,CAAA;;KApKL,CAAwD,qBAAqB;;IAX5E,IAAA,EAAA,IAAA,EAAArG,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,+BAA+B;IACzC,gBAAA,QAA6D,EAAA,2iDAAA;oBAE7D,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;IAC/C,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAED,uBAAiB,EAAE,WAAW,EAAE,kCAAkC,EAAE,KAAK,EAAE,IAAI,EAAE;IAC5F,oBAAA,EAAE,OAAO,EAAEb,gBAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE;wBACrD,EAAE,OAAO,EAAE,mBAAmB,EAAE;IACnC,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;gBA9BGe,oBAAiB,EAAA;gBAUZf,gBAAW,EAAA;gBACX,mBAAmB,EAAA;;;IAuBvB,IAAA,yBAAA,EAAA,CAAA,EAAA,IAAA,EAAAO,cAAW,SAAC,mCAAmC,EAAA,EAAA,CAAA;wCAI/CjB,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;qCAQLA,QAAK,EAAA,CAAA;sCAELA,QAAK,EAAA,CAAA;qCAKLA,QAAK,EAAA,CAAA;wCAELA,QAAK,EAAA,CAAA;4BAILA,QAAK,EAAA,CAAA;iCAcLC,SAAM,EAAA,CAAA;oCACNA,SAAM,EAAA,CAAA;;;AC5DX,QAAA,2BAAA,kBAAA,YAAA;QAkBI,SACqC,2BAAA,CAAA,aAA+B,EAC5C,SAAoB,EAAA;IADP,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;IAC5C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;SAE3C;IAlBD,IAAA,MAAA,CAAA,cAAA,CACI,2BAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IADpB,QAAA,GAAA,EAAA,UACqB,MAAc,EAAA;;gBAC/B,IAAI,IAAI,CAAC,eAAe,EAAE;IACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAC/B,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,iBAAiB,CACzB,CAAC;IACL,aAAA;IAAM,iBAAA;oBACH,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,aAAA;IACD,YAAA,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACnC,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,aAAa,0CAAE,UAAU,CAAC,KAAK,CAAC,CAAC;aACnD;;;IAAA,KAAA,CAAA,CAAA;;;;IA7BJ,IAAA,EAAA,IAAA,EAAAwD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAE/C,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC9B,qBAAA;IACD,oBAAA;IACI,wBAAA,OAAO,EAAEK,qBAAgB;IACzB,wBAAA,QAAQ,EAAE,gBAAgB;IAC7B,qBAAA;IACJ,iBAAA;IACJ,aAAA,EAAA,EAAA;;;gBAdQ,gBAAgB,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAkChBqB,SAAM,EAAA,IAAA,EAAA,CAACrB,qBAAgB,EAAA,EAAA,CAAA,EAAA;IArCvB,IAAA,EAAA,IAAA,EAAA6F,eAAS,uBAsCTrC,WAAQ,EAAA,CAAA,EAAA;;;kCAnBZxE,QAAK,EAAA,CAAA;oCACLA,QAAK,EAAA,CAAA;IAEL,IAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,oBAAoB,EAAA,EAAA,CAAA;;;AChB/B,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;IACI,IAAA,mBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,GAAuB,EAAE,WAA8B,EAAA;IAC7D,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAApC,EAAoC,CAAC,CAAC;SACnE,CAAA;;;;IANJ,IAAA,EAAA,IAAA,EAAA8C,OAAI,EAAC,IAAA,EAAA,CAAA;IACF,gBAAA,IAAI,EAAE,qBAAqB;IAC9B,aAAA,EAAA,EAAA;;;ACKD,QAAA,wBAAA,kBAAA,YAAA;IAgBI,IAAA,SAAA,wBAAA,CAAoB,QAA2B,EAAA;IAA3B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;IAbxC,QAAA,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;IAGjB,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS,CAAC;IAE3B,QAAA,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;IAClB,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAIjD,eAAY,EAAO,CAAC;SAQhF;IAND,IAAA,MAAA,CAAA,cAAA,CAAkC,wBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAA1C,QAAA,GAAA,EAAA,UAA2C,KAAuB,EAAA;IAC9D,YAAA,IAAI,CAAC,KAAK;oBAAE,OAAO;gBACnB,KAAK,CAAC,KAAK,EAAE,CAAC;aACjB;;;IAAA,KAAA,CAAA,CAAA;QAKM,wBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YACrC,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACH,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/B,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;IACH,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SAC1B,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;;IACH,QAAA,IAAM,YAAY,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,EAAE,CAAC;IAC/C,QAAA,IAAI,CAAC,YAAY;IAAE,YAAA,OAAO,KAAK,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SACrD,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,KAAa,EAAE,YAA4B,EAAA;IAC3D,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACpB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAAE,OAAO;IACxC,QAAA,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,OAAO;gBAAE,OAAO;YAEzD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,IAAI,EAAE,CAAC,CAAC;SAC9C,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;YAAA,IAOP,KAAA,GAAA,IAAA,CAAA;IANG,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS;kBAC7B8G,QAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,GAAG,EAAE,IAAI,EAAA;oBAC7B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/B,gBAAA,OAAO,GAAG,CAAC;iBACd,EAAE,EAAE,CAAC;IACN,cAAE,IAAI,CAAC,MAAM,CAAC;SACrB,CAAA;;;;IAjEJ,IAAA,EAAA,IAAA,EAAA7G,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,oBAAoB;IAC9B,gBAAA,QAAkD,EAAA,8tCAAA;oBAElD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBATQ,iBAAiB,EAAA;;;kCAgBrBxB,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;oCACLC,SAAM,EAAA,CAAA;IAEN,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAAC,iBAAiB,EAAA,EAAA,CAAA;;;ACbhC,QAAA,oBAAA,kBAAA,YAAA;IAKI,IAAA,SAAA,oBAAA,GAAA;SACC;;;;IAZJ,IAAA,EAAA,IAAA,EAAA7C,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA4C,EAAA,28BAAA;oBAE5C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;uBAGIxB,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;;;ACHV,QAAA,0BAAA,kBAAA,YAAA;IAII,IAAA,SAAA,0BAAA,GAAA;SACC;;;;IAXJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,wBAAwB;IAClC,gBAAA,QAAmD,EAAA,mQAAA;oBAEnD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;0BAGIxB,QAAK,EAAA,CAAA;;;ACHV,QAAA,sBAAA,kBAAA,YAAA;IAII,IAAA,SAAA,sBAAA,GAAA;SACC;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;;;;IAdJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,oBAAoB;IAC9B,gBAAA,QAA+C,EAAA,8WAAA;oBAE/C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;0BAGIxB,QAAK,EAAA,CAAA;;;ACcV,QAAA,8BAAA,kBAAA,YAAA;IAII,IAAA,SAAA,8BAAA,GAAA;SACC;;;;IA3BJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,4BAA4B;IACtC,gBAAA,QAAQ,EAAE,sEAET;oBAgBD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;oBAftC,MAAA,EAAA,CAAA,0aAcR,CAAA;IAEJ,aAAA,EAAA,EAAA;;;;uBAGIxB,QAAK,EAAA,CAAA;;;ICjBV,IAAM,kBAAkB,GAAG;QACvB,oBAAoB;QACpB,0BAA0B;QAC1B,sBAAsB;QACtB,8BAA8B;KACjC,CAAC;AAsBF,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IApBC,IAAA,EAAA,IAAA,EAAA8G,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;oBACD,YAAY,EAAA,aAAA,CAAA;wBACR,gBAAgB;wBAChB,kBAAkB;IACf,iBAAA,EAAA,MAAA,CAAA,kBAAkB,CACxB,CAAA;oBACD,OAAO,EAAA,aAAA,CAAA;wBACH,gBAAgB;wBAChB,kBAAkB;IACf,iBAAA,EAAA,MAAA,CAAA,kBAAkB,CACxB,CAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,eAAe,EAAE;wBACb,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;IC7BD,IAAMC,YAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxC,IAAM,UAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAUxC,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IARC,IAAA,EAAA,IAAA,EAAAF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAAC,YAAU,CAAK,CAAA,EAAA,MAAA,CAAA,UAAU,CAAC,CAAA;IACvC,gBAAA,YAAY,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAAA,YAAU,CAAK,CAAA,EAAA,MAAA,CAAA,UAAU,CAAC,CAAA;IAC/C,aAAA,EAAA,EAAA;;;ICcD;IACA;AACAJ,0BAAW,CAAC,SAAS,CAAC,eAAe,GAAG,YAAA;;IACpC,IAAA,CAAA,EAAA,GAAA,IAAI,CAAC,wBAAwB,EAAE,0CAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAMI,YAAU,GAAG;QACf,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,kCAAkC;QAClC,2BAA2B;QAC3B,iCAAiC;QACjC,8BAA8B;QAC9B,mBAAmB;QACnB,wBAAwB;KAC3B,CAAC;AAmBF,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IAjBC,IAAA,EAAA,IAAA,EAAAF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,YAAY,EAAEE,YAAU;IACxB,gBAAA,OAAO,EAAEA,YAAU;IACnB,gBAAA,OAAO,EAAE;wBACLC,iBAAW;wBACXC,yBAAmB;wBACnBH,mBAAY;wBACZI,uBAAc;wBACdC,wBAAmB;wBACnBC,8BAAmB;wBACnBC,wBAAgB;wBAChB,eAAe;wBACf,eAAe;IAClB,iBAAA;oBACD,eAAe,EAAE,CAAC,iCAAiC,CAAC;IACvD,aAAA,EAAA,EAAA;;;ACtDM,QAAMN,YAAU,GAAG,CAAC,gBAAgB;QACvC,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;IAChB,IAAA,oBAAoB,EAAE;AAc1B,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAZC,IAAA,EAAA,IAAA,EAAAF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZE,iBAAW;wBACXC,yBAAmB;wBACnB,cAAc;wBACdC,uBAAc;IACjB,iBAAA;IACD,gBAAA,OAAO,EAAEH,YAAU;IACnB,gBAAA,YAAY,EAAEA,YAAU;IAC3B,aAAA,EAAA,EAAA;;;ACXD,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAdC,IAAA,EAAA,IAAA,EAAAF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZE,iBAAW;wBACXC,yBAAmB;wBACnB,cAAc;IACjB,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ICAD;IACA,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAOjC,QAAA,qBAAA,kBAAA,YAAA;IALA,IAAA,SAAA,qBAAA,GAAA;IAUoB,QAAA,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IAW7B,QAAA,IAAA,CAAA,SAAS,GAAgC,IAAIrH,eAAY,EAAiB,CAAC;IAC3E,QAAA,IAAA,CAAA,MAAM,GAAmC,IAAIA,eAAY,EAAoB,CAAC;SA4F3F;IAtFG,IAAA,MAAA,CAAA,cAAA,CAAW,qBAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;IAAhC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,CAAC0H,UAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;QAEM,qBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YACrC,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC,CAAA;QAEM,qBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAc,EAAA;;IAC9B,QAAA,IAAM,WAAW,GAAkB;IAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;IACrB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;IACzB,YAAA,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;aAC3C,CAAC;IAEF,QAAA,IAAI,CAACC,OAAM,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAC,EAAE;gBACnC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IAChD,SAAA;IAED,QAAA,IAAI,CAACA,OAAM,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC,EAAE;gBAClC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAC9C,SAAA;IAED,QAAA,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC;IAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,CAAA;IAEM,IAAA,qBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,MAAa,EAAE,QAAyB,EAAA;YACzD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpC,MAAM,CAAC,wBAAwB,EAAE,CAAC;IACrC,SAAA;SACJ,CAAA;QAEM,qBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,MAAc,EAAA;IACnC,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChD,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAEvD,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAI,MAAM,CAAA,EAAA,MAAA,CAAK,YAAY,CAAA,CAAC,CAAC;IAC3D,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAI,aAAA,CAAA,CAAA,EAAE,KAAK,EAAE,MAAM,EAAE,CAAK,EAAA,MAAA,CAAA,YAAY,EAAC,CAAC;IACtE,SAAA;IAED,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;YAEjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5B,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;;IACJ,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC,CAAC;IAClG,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC9C,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,aAAiC,EAAE,aAA8B,EAAA;YAC3F,IAAI,EAAC,aAAa,KAAA,IAAA,IAAb,aAAa,KAAb,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAa,CAAE,MAAM,CAAA;IAAE,YAAA,OAAO,IAAI,CAAC;IAExC,QAAA,IAAID,UAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;IAC7B,YAAA,IAAM,iBAAe,GAAG9G,MAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAgB,CAAC;IACtF,YAAA,IAAM,aAAa,GAAGA,MAAK,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAgB,CAAC;IACjF,YAAA,OAAO,CAAC,iBAAe,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IACvE,SAAA;IAED,QAAA,IAAM,eAAe,GAAGA,MAAK,CAAC,aAAa,EAAE,UAAC,KAAK,EAAK,EAAA,OAAA,KAAK,KAAK,aAAa,CAAvB,EAAuB,CAAC,CAAC;YACjF,QAAQ,eAAe,IAAI,aAAa,CAAC,CAAC,CAAC,EAAY;SAC1D,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;IACJ,QAAA,OAAOU,KAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAC,YAAY,EAAA;IACzC,YAAA,IAAIsG,UAAS,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;oBAC/B,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;oBAEnD,IAAM,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnD,gBAAA,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,oBAAoB,EAAE;IAC9C,oBAAA,OAAO,oBAAoB,CAAC;IAC/B,iBAAA;IACJ,aAAA;gBAED,OAAO,YAAY,CAAC,KAAK,CAAC;IAC9B,SAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjB,CAAA;;;;IAjHJ,IAAA,EAAA,IAAA,EAAA3H,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAA8C,EAAA,kmDAAA;;IAEjD,aAAA,EAAA,EAAA;;;yBAEIE,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;6BAELA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;yCACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;uCAELA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;4BAELC,SAAM,EAAA,CAAA;yBACNA,SAAM,EAAA,CAAA;;;AC7BX,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;;;;IATC,IAAA,EAAA,IAAA,EAAA6G,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;IACrC,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,cAAc;wBACdE,iBAAW;IACd,iBAAA;oBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;IACnC,aAAA,EAAA,EAAA;;;ACQD,QAAA,WAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,WAAA,GAAA;;;;;IAdC,IAAA,EAAA,IAAA,EAAAH,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,kBAAkB;IACrB,iBAAA;oBACD,OAAO,EAAE,CAAC,cAAc,CAAC;IACzB,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,cAAc;IACjB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACGD,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IAhBC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,YAAY,EAAE;wBACV,iBAAiB;wBACjB,YAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,iBAAiB;wBACjB,YAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACLQ,wBAAgB;wBAChB,eAAe;wBACfP,mBAAY;IACf,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACDD,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IAfC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,kBAAkB;wBAClB,kBAAkB;IACrB,iBAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,kBAAkB;wBAClB,kBAAkB;IACrB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACaD,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;;;;;IAtBC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,eAAe;IAClB,iBAAA;IACD,gBAAA,YAAY,EAAE;wBACV,mBAAmB;wBACnB,2BAA2B;wBAC3B,mBAAmB;wBACnB,sBAAsB;IACzB,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,mBAAmB;wBACnB,2BAA2B;wBAC3B,mBAAmB;wBACnB,sBAAsB;IACzB,iBAAA;IACD,gBAAA,SAAS,EAAE;wBACP,iBAAiB;IACpB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACAD,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;;;;IApBC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZW,kBAAa;wBACbT,iBAAW;wBACXC,yBAAmB;wBACnB,cAAc;wBACd,eAAe;IAClB,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,eAAe;wBACf,cAAc;IACjB,iBAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,eAAe;wBACf,cAAc;IACjB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ICpBD,IAAM,uBAAuB,GAAG;QAC5B,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,4BAA4B;KAC/B,CAAC;AAQF,QAAA,iBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,iBAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAAJ,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,uBAAuB,CAAC,CAAA;oBACrC,YAAY,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,uBAAuB,CAAC,CAAA;IAC1C,gBAAA,SAAS,EAAE,EAAE;IAChB,aAAA,EAAA,EAAA;;;ICbD,IAAM,UAAU,GAAG;QACf,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;KACxB,CAAC;AAQF,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;oBACxB,YAAY,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;IAChC,aAAA,EAAA,EAAA;;;ACGD,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAbC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZE,iBAAW;wBACX,eAAe;IAClB,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACRD,QAAA,gBAAA,kBAAA,YAAA;IAYI,IAAA,SAAA,gBAAA,GAAA;IARS,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IACpB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IACrB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IACjB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IACnB,QAAA,IAAA,CAAA,UAAU,GAAuB,IAAIpH,eAAY,EAAQ,CAAC;SAInE;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAU,EAAA;YACjB,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC7C,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAA;SACJ,CAAA;QAED,gBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAU,EAAA;YACf,IAAI,IAAI,CAAC,iBAAiB;IAAE,YAAA,OAAO,IAAI,CAAC;YACxC,IAAI,IAAI,CAAC,SAAS;IAAE,YAAA,OAAO,MAAM,CAAC;IAClC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS;gBAAE,OAAO,CAAI,CAAC,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,cAAc,KAAG,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,aAAa,CAAA,GAAG,GAAG,KAAK,CAAE,IAAA,GAAG,CAAC;IACrI,QAAA,OAAO,IAAI,CAAC;SACf,CAAA;IAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;YACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;SAC/C,CAAA;IAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;SAC/C,CAAA;QAEM,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;IAC3B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B,CAAA;;;;IA5CJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAAuC,EAAA,wxHAAA;oBAEvC,eAAe,EAAE0B,0BAAuB,CAAC,OAAO;;IACnD,aAAA,EAAA,EAAA;;;;wBAGIxB,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;oCACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;6BACLC,SAAM,EAAA,CAAA;IACN,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAEP,aAAU,EAAE,EAAA,EAAA,CAAA;;;ACN9C,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IARC,IAAA,EAAA,IAAA,EAAA0E,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;IAChC,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,eAAe;IAClB,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC9B,aAAA,EAAA,EAAA;;;ACCD,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;;;;IATC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;IACjC,gBAAA,SAAS,EAAE,EAAE;oBACb,YAAY,EAAE,CAAC,sBAAsB,CAAC;IACzC,aAAA,EAAA,EAAA;;;ICY0C,IAAAY,IAAA,GAAA,EAAE,OACC,EAAE,CAAA;AAIhD,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IAjBC,IAAA,EAAA,IAAA,EAAAb,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IACnE,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZa,oBAAe;wBACf,cAAc;wBACdV,yBAAmB;wBACnB,eAAe;wBACf,mBAAmB;IACtB,iBAAA;IACD,gBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IAC9D,gBAAA,SAAS,EAAE;IACP,oBAAA,EAAE,OAAO,EAAEvC,iBAAY,EAAE,QAAQ,MAAI,EAAE;IACvC,oBAAA,EAAE,OAAO,EAAEC,oBAAe,EAAE,QAAQ,IAAI,EAAE;wBAC1C,aAAa;IAChB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ICxBD;;IAEG;AAOH,QAAA,0BAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,0BAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAA9E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,QAA+C,EAAA,kEAAA;oBAE/C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;0BAOIxB,QAAK,EAAA,CAAA;;;ICRV;;IAEG;AAMH,QAAA,0BAAA,kBAAA,YAAA;QA6BI,SAAsB,0BAAA,CAAA,EAAqB,EAAY,YAA0B,EAAA;IAA3D,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IAAY,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;SAChF;IAdD,IAAA,MAAA,CAAA,cAAA,CACI,0BAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IANT;;;;IAIG;IACH,QAAA,GAAA,EAAA,UACU,KAAyB,EAAA;gBADnC,IAWC,KAAA,GAAA,IAAA,CAAA;IATG,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,UAAC,IAAS,EAAA;oBAC1C,IAAM,OAAO,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,gBAAA,OACO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,KACP,QAAQ,EAAE,OAAO,IAAI,KAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAQ,IAAI,CAAC,GAAI,GAAA,GAAG,CAAC,EACrF,OAAO,EAAA,OAAA,EACT,CAAA,CAAA;IACN,aAAC,CAAC,CAAC;IACH,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;QAMD,0BAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,IAAsB,EAAA;IAC1B,QAAA,IAAM,IAAI,GAAI,IAAqC,CAAC,IAAI,CAAC;IACzD,QAAA,IAAI,IAAI,EAAE;IACN,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SAChB,CAAA;;;;IA5CJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,QAA+C,EAAA,kTAAA;oBAC/C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;IAClD,aAAA,EAAA,EAAA;;;gBAjBiCC,oBAAiB,EAAA;gBAC1C+D,4BAAY,EAAA;;;0BA0BhBxF,QAAK,EAAA,CAAA;wBAOLA,QAAK,EAAA,CAAA;;;IC9BV,IAAM,gCAAgC,GAAG,YAAA;IACrC,IAAA,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC,CAAC;;AAKF,QAAA,4BAAA,kBAAA,YAAA;QAmBI,SAAmB,4BAAA,CAAA,WAA6B,EAC1B,oBAAgD,EAAA;IADnD,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAC1B,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA4B;SAAI;IAd1E,IAAA,MAAA,CAAA,cAAA,CACI,4BAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;IANnB;;;;IAIG;IACH,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;IACD,QAAA,GAAA,EAAA,UAAoB,KAAa,EAAA;IAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACtB;;;IAHA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,4BAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAAR,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,4BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACb,YAAA,gCAAgC,EAAE,CAAC;IACtC,SAAA;YACD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACvD,CAAA;IAED,IAAA,4BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnD,CAAA;;;;IAlCJ,IAAA,EAAA,IAAA,EAAAyD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,mBAAmB;IAChC,aAAA,EAAA,EAAA;;;gBAV6CN,cAAW,EAAA;gBAEhD,0BAA0B,EAAA;;;kCAe9BnD,QAAK,EAAA,CAAA;;;ACTV,QAAA,sBAAA,kBAAA,YAAA;IAEI,IAAA,SAAA,sBAAA,GAAA;SACC;;;;IATJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA6C,EAAA,sCAAA;oBAE7C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;ICUD,IAAM,kBAAkB,GAAG;QACvB,eAAe;QACf,sBAAsB;QACtB,mBAAmB;QACnB,0BAA0B;QAC1B,0BAA0B;QAC1B,0BAA0B;QAC1B,sBAAsB;KACzB,CAAC;IAEF,IAAM,kBAAkB,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAe1D,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;;;;IAZC,IAAA,EAAA,IAAA,EAAAsF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLG,iBAAW;wBACXC,yBAAmB;wBACnBH,mBAAY;wBACZ,cAAc;wBACd,cAAc;wBACd,eAAe;IAClB,iBAAA;IACD,gBAAA,YAAY,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,kBAAkB,CAAK,CAAA,EAAA,MAAA,CAAA,kBAAkB,CAAC,CAAA;IAC5D,gBAAA,OAAO,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,kBAAkB,CAAK,CAAA,EAAA,MAAA,CAAA,kBAAkB,CAAC,CAAA;IAC1D,aAAA,EAAA,EAAA;;;AC3BD,QAAA,gCAAA,kBAAA,YAAA;IAwCI,IAAA,SAAA,gCAAA,CAAoB,eAAgC,EAAA;IAAhC,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;IAvC7C,QAAA,IAAgB,CAAA,gBAAA,GAAGnD,wBAAgB,CAAC;IAGnC,QAAA,IAAa,CAAA,aAAA,GAAqB,EAAE,CAAC;IAK7B,QAAA,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;IAS7B,QAAA,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;IACrC,QAAA,IAA2B,CAAA,2BAAA,GAAY,KAAK,CAAC;IAE5C,QAAA,IAAA,CAAA,mBAAmB,GAAuC,IAAI/D,eAAY,EAAwB,CAAC;SAoBnH;IA/BD,IAAA,MAAA,CAAA,cAAA,CAAoB,gCAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAapC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,iBAAiB,IAAIqG,gBAAQ,CAAC,OAAO,CAAC;aACrD;IAfD,QAAA,GAAA,EAAA,UAAqC,QAAkB,EAAA;IACnD,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAACA,gBAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAC7C,gBAAA,IAAI,CAAC,iBAAiB,GAAGA,gBAAQ,CAAC,OAAO,CAAC;oBAC1C,OAAO;IACV,aAAA;IAED,YAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;aACrC;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CAAW,gCAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAvB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAwB,IAAsB,EAAA;IAC1C,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC1B,YAAA,IAAI,CAAC,qBAAqB,GAAGzF,MAAK,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;aACvE;;;IALA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CAAW,gCAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAOA,MAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAES,gBAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;aAC5D;;;IAAA,KAAA,CAAA,CAAA;IAKM,IAAA,gCAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAChJ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC7F,CAAA;QAEM,gCAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,QAAkB,EAAA;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B,CAAA;QAEM,gCAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,GAAmB,EAAA;IAC1C,QAAA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;IACvC,QAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B,CAAA;IAEM,IAAA,gCAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;IACH,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;IAC/B,YAAA,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;IACxG,SAAA,CAAC,CAAC;SACN,CAAA;QAEO,gCAA4B,CAAA,SAAA,CAAA,4BAAA,GAA5B,UAA6B,GAAmB,EAAA;YACpD,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,OAAO;IAEvD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAKA,gBAAQ,CAAC,IAAI,EAAE;IAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7C,SAAA;IAED,QAAA,IAAI,GAAG,KAAK,IAAI,CAAC,qBAAqB,EAAE;IACpC,YAAA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,YAAA,IAAI,OAAO,EAAE;IACT,gBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IAC1B,aAAA;IACJ,SAAA;SACJ,CAAA;QAEO,gCAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,GAAmB,EAAA;;YAChD,IAAI,EAAC,CAAA,EAAA,GAAA,GAAG,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA;gBAAE,OAAO;IAC3C,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,QAAA,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,OAAO,CAAC,OAAO,GAAGC,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAC,MAAM,EAAA;IAC3C,YAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAACuF,UAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChF,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC,CAAC;YAEH,OAAO,CAAC,kBAAkB,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACzD,CAAA;;;;IAtGJ,IAAA,EAAA,IAAA,EAAA5G,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,2BAA2B;IACrC,gBAAA,QAAyD,EAAA,sqDAAA;oBAEzD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;oBAC/C,SAAS,EAAE,CAAC,eAAe,CAAC;;IAC/B,aAAA,EAAA,EAAA;;;gBAXQ,eAAe,EAAA;;;oCAoBnBxB,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;mCACLA,QAAK,EAAA,CAAA;sCAQLA,QAAK,EAAA,CAAA;8CACLA,QAAK,EAAA,CAAA;sCAELC,SAAM,EAAA,CAAA;;;AChBX,QAAA,mCAAA,kBAAA,YAAA;IANA,IAAA,SAAA,mCAAA,GAAA;IAoBoB,QAAA,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;IACnC,QAAA,IAAgB,CAAA,gBAAA,GAAgB,EAAE,CAAC;IAEnC,QAAA,IAAW,CAAA,WAAA,GAAwB,EAAE,CAAC;IAKrC,QAAA,IAAA,CAAA,sBAAsB,GAAuC,IAAIJ,eAAY,EAAwB,CAAC;IAEhH,QAAA,IAAc,CAAA,cAAA,GAAuC,EAAE,CAAC;IAEvD,QAAA,IAAY,CAAA,YAAA,GAAoB,EAAE,CAAC;IACnC,QAAA,IAAiB,CAAA,iBAAA,GAAoB,EAAE,CAAC;IACxC,QAAA,IAAU,CAAA,UAAA,GAAoB,EAAE,CAAC;SAmC5C;IA7DG,IAAA,MAAA,CAAA,cAAA,CAAoB,mCAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IA4B/B,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,YAAY,CAAC;aAC5B;IA9BD,QAAA,GAAA,EAAA,UAAgC,IAAqB,EAAA;gBAArD,IASC,KAAA,GAAA,IAAA,CAAA;IARG,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,cAAc,GAAG8G,QAAO,CAAC,IAAI,EAAE,UAAC,GAAG,EAAE,IAAI,EAAA;;IAC1C,gBAAA,IAAM,KAAK,GAAG,CAAA,EAAA,GAAAlG,MAAK,CAAC,KAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,EAAE,CAAC;oBAC9D,IAAI,KAAK,CAAC,KAAK,CAAC;IAAE,oBAAA,OAAO,GAAG,CAAC;IAE7B,gBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClB,gBAAA,OAAO,GAAG,CAAC;iBACd,EAAE,EAAE,CAAC,CAAC;aACV;;;IAAA,KAAA,CAAA,CAAA;QAuBM,mCAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,aAA4B,EAAA;IAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;SACvC,CAAA;QAEM,mCAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,MAAqB,EAAA;IACpC,QAAA,IAAM,QAAQ,GAAGA,MAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3D,QAAA,IAAI,QAAQ,EAAE;IACV,YAAAW,OAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,SAAA;YAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACnC,CAAA;QAEM,mCAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,MAAuB,EAAA;IAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;YAChC,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACnC,CAAA;IAEM,IAAA,mCAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;YACH,IAAM,IAAI,GAAO,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,IAAI,CAAC,iBAAiB,WAAK,IAAI,CAAC,UAAU,CAAA,CAAC,CAAC;IAC7D,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,YAAA,IAAI,EAAA,IAAA;IACP,SAAA,CAAC,CAAC;SACN,CAAA;;;;IApEJ,IAAA,EAAA,IAAA,EAAAtB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,+BAA+B;IACzC,gBAAA,QAA6D,EAAA,krBAAA;oBAE7D,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;6BAEIxB,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;2BAWLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;mCACLA,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;sCACLA,QAAK,EAAA,CAAA;yCAELC,SAAM,EAAA,CAAA;;;IC/BX,IAAM,UAAU,GAAG;QACf,gCAAgC;QAChC,mCAAmC;KACtC,CAAA;AAaD,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;;;;;IAXC,IAAA,EAAA,IAAA,EAAA6G,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,YAAY,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;oBAC7B,SAAS,EAAE,CAAC,eAAe,CAAC;IAC5B,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,cAAc;wBACdE,iBAAW;wBACX,WAAW;IACd,iBAAA;oBACD,OAAO,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;IAC3B,aAAA,EAAA,EAAA;;;ACVD,QAAA,sBAAA,kBAAA,YAAA;IAQI,IAAA,SAAA,sBAAA,GAAA;IANS,QAAA,IAAA,CAAA,KAAK,GAAgBX,mBAAW,CAAC,OAAO,CAAC;SAQjD;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SAEC,CAAA;;;;IArBJ,IAAA,EAAA,IAAA,EAAAxG,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAA6C,EAAA,4MAAA;IAC7C,gBAAA,QAAQ,EAAE,iBAAiB;oBAE3B,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;;wBAIIC,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;;;ACFV,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;;;;IAZC,IAAA,EAAA,IAAA,EAAA8G,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,eAAe;IAClB,iBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;IACjC,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,sBAAsB;IACzB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACLD,QAAA,qBAAA,kBAAA,YAAA;IAME,IAAA,SAAA,qBAAA,CACU,aAA6B,EAAA;YADvC,IAIC,KAAA,GAAA,IAAA,CAAA;IAHS,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;IAH7B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIlH,eAAY,EAAW,CAAC;YAQtD,IAAgB,CAAA,gBAAA,GAAG,YAAA;gBACjB,KAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7C,SAAC,CAAA;YAED,IAAe,CAAA,eAAA,GAAG,YAAA;IAChB,YAAA,IAAM,OAAO,GAAG,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,YAAA,IAAI,CAAC8F,OAAK,CAAC,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE;oBACtE,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAlC,EAAkC,CAAC,CAAC;IACzE,aAAA;IACD,YAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,SAAC,CAAA;IAbC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;SAClC;IAcD,IAAA,qBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,KAAmB,EAAE,OAAgB,EAAA;;IACxD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE;gBACxC,IAAI,WAAW,GAAY,IAAI,CAAC;;oBAChC,KAAwB,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAvC,oBAAA,IAAM,SAAS,GAAA,EAAA,CAAA,KAAA,CAAA;wBAClB,IAAI,WAAW,KAAK,IAAI,EAAE;IACxB,wBAAA,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;IACjC,qBAAA;IAAM,yBAAA,IAAI,WAAW,KAAK,SAAS,CAAC,OAAO,EAAE;4BAC5C,WAAW,GAAG,SAAS,CAAC;4BACxB,MAAM;IACP,qBAAA;IACF,iBAAA;;;;;;;;;gBAED,IAAI,WAAW,KAAK,IAAI,EAAE;oBACxB,WAAW,GAAG,KAAK,CAAC;IACrB,aAAA;IAED,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;IACrC,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;IACjC,aAAA;IAEF,SAAA;IAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC,CAAA;;;;IApDF,IAAA,EAAA,IAAA,EAAA7F,YAAS,EAAC,IAAA,EAAA,CAAA;IACT,gBAAA,QAAQ,EAAE,mBAAmB;IAC7B,gBAAA,QAA6C,EAAA,mfAAA;;IAE9C,aAAA,EAAA,EAAA;;;gBAPQ,cAAc,EAAA;;;yBASpBE,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;gCACLC,SAAM,EAAA,CAAA;;;ACYT,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;IACW,IAAA,cAAA,CAAA,OAAO,GAAd,YAAA;YACI,OAAO;IACH,YAAA,QAAQ,EAAE,cAAc;IACxB,YAAA,SAAS,EAAE;oBACP,cAAc;IACd,gBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,0BAA0B,EAAE;IACzE,aAAA;aACJ,CAAC;SACL,CAAA;;;;IA1BJ,IAAA,EAAA,IAAA,EAAA6G,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLG,iBAAW;wBACXF,mBAAY;IACf,iBAAA;IACD,gBAAA,YAAY,EAAE;wBACV,iBAAiB;wBACjB,qBAAqB;wBACrB,YAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,iBAAiB;wBACjB,YAAY;IACf,iBAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IAChB,aAAA,EAAA,EAAA;;;ACTD,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAXC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ICdD;;ICAA;;IAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"datarailsshared-datarailsshared.umd.js","sources":["../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.service.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/models/serverTags.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-group.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/services/dr-avatar.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/toggle-button-mode.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/models/spinnerOptions.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover-ref.ts","../../../projects/datarailsshared/src/lib/models/popover.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.service.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.service.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-position.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item-show.pipe.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-body.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.ts","../../../projects/datarailsshared/src/lib/models/chat.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.ts","../../../projects/datarailsshared/src/lib/dr-alert/enums/dr-alert-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-i18n.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-helper.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-item.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-config.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-event-parser.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/pipes/treeview.pipe.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-scenario/interfaces/scenario.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/models/badgeStatus.ts","../../../projects/datarailsshared/src/lib/models/feedback.ts","../../../projects/datarailsshared/src/lib/dr-scenario/consts/scenario-tags-config.ts","../../../projects/datarailsshared/src/lib/dr-scenario/services/scenario.service.ts","../../../projects/datarailsshared/src/lib/utils/dr-shared-utils.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/services/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.module.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.module.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.module.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.module.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.module.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.module.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.module.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/dr-scenario.module.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.module.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/dr-tree-view.module.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.module.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\nimport { ITagAdditionalSettings } from '../dr-tags/dr-tag.types';\n\n@Component({\n templateUrl: 'date-tag.component.html',\n selector: 'date-tag',\n styleUrls: ['date-tag.component.css', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DateTagComponent {\n @Input() name: string | undefined = undefined;\n @Input() lockedDate: any[] = [];\n @Input() defaultValue: number | undefined = undefined;\n @Input() dateTypeChosen: any = {};\n @Input() disabled: boolean;\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() tagAdditionalSettings: ITagAdditionalSettings = {};\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log('change date', date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\n\n@Component({\n template: ``,\n selector: 'any-tag'\n})\nexport class AnyTagComponent implements OnInit {\n @Output() dateChange: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n @Input() name: string | undefined = undefined;\n @Input() defaultValue: number | undefined = undefined;\n @Input() disabled: boolean;\n dateObj = { date: undefined };\n\n constructor() {\n }\n\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\n\n initDate() {\n }\n\n initName() {\n }\n\n changeInputHandler(event: Event) {\n const input: HTMLInputElement = <HTMLInputElement>event.target;\n this.chosenTagHandler(input.value);\n }\n\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\n","/*! *****************************************************************************\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) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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","export enum DateFromats {\n MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy',\n DATE_INPUT_FORMAT = 'YYYY/MM/DD',\n YEAR_FORMAT = 'yyyy',\n MONTH_YEAR_FORMAT = 'MM/yyyy',\n QUARTER_FORMAT = 'Q/yyyy',\n WEEK_FORMAT = 'w/yyyy'\n}\n\nexport interface DateParse {\n dateInput: string;\n}\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string;\n dateA11yLabel?: string;\n monthYearA11yLabel?: string;\n quarterYearA11yLabel?: string;\n yearLabel?: string;\n quarterYearLabel?: string;\n};\n\nexport class CustomDateFormat {\n private _parse: DateParse = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n };\n private _display: DateDisplay = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM YYYY',\n quarterYearLabel: 'Q/YYYY',\n yearLabel: 'YYYY'\n };\n\n set parse(parse: DateParse) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateParse {\n return this._parse;\n }\n\n set display(display: DateDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateDisplay {\n return this._display;\n }\n\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\n this.parse = parse;\n if (!display) {\n display = parse;\n }\n this.display = display;\n }\n}\n\nexport interface IDatePickerFormatConfig {\n day?: string;\n month?: string;\n year?: string;\n quarter?: string;\n week?: string;\n}\n\nexport enum DatePickerPeriodPosition {\n END_OF_PERIOD,\n MIDDLE_OF_PERIOD,\n START_OF_PERIOD,\n DEFAULT\n}\n\nexport enum TimeframeOption {\n DAY = 'day',\n MONTH = 'month',\n QUARTER = 'quarter',\n WEEK = 'week',\n YEAR = 'year',\n}\n\nexport enum CalendarView {\n FOR_DAYS = 'month',\n FOR_MONTHS = 'year',\n FOR_QUARTERS = 'none',\n FOR_YEARS = 'multi-year',\n}\n\nexport enum DateTags {\n TODAY = 'today',\n YESTERDAY = 'yesterday',\n THIS_MONTH = 'this_month',\n PREV_MONTH = 'prev_month',\n}\n\nexport type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { cloneDeep as _cloneDeep, find as _find } from 'lodash';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { ITagAdditionalSettings } from '../../dr-tags/dr-tag.types';\nimport { DatePickerPeriodPosition } from '../../models/datePicker';\n\n/* BEFORE MERGE INTO MASTER YOU MUST CONSULT WITH ARTEM LAZIUK !!!*/\n\n// @ts-ignore\nconst moment = require('moment');\n\nconst FORECAST_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy';\n\n@Component({\n templateUrl: 'forecast-tag.component.html',\n selector: 'forecast-tag',\n styleUrls: ['./forecast-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n }\n ]\n})\n\nexport class ForecastTagComponent extends AnyTagComponent implements OnChanges {\n readonly datePickerPeriodPosition = DatePickerPeriodPosition;\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n @Input() tagAdditionalSettings: ITagAdditionalSettings = {};\n\n forecastValue: number | undefined = undefined;\n forecastYear: number;\n isDateEventHappened = false;\n\n forecastTags: any[] = [\n { value: 0, label: '0+12', disabled: false },\n { value: 1, label: '1+11', disabled: false },\n { value: 2, label: '2+10', disabled: false },\n { value: 3, label: '3+9', disabled: false },\n { value: 4, label: '4+8', disabled: false },\n { value: 5, label: '5+7', disabled: false },\n { value: 6, label: '6+6', disabled: false },\n { value: 7, label: '7+5', disabled: false },\n { value: 8, label: '8+4', disabled: false },\n { value: 9, label: '9+3', disabled: false },\n { value: 10, label: '10+2', disabled: false },\n { value: 11, label: '11+1', disabled: false }\n ];\n\n private initDateValue = null;\n private firstDayMonthOfYear = '01';\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.updateLockedDate();\n }\n }\n\n initDate() {\n const dateVal = this.defaultValue ? moment.unix(this.defaultValue) : moment();\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n\n this.forecastYear = moment\n .utc(\n `${this.firstDayMonthOfYear}/${this.firstDayMonthOfYear}/${this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, this.fiscalYearBack)}`,\n FORECAST_DEFAULT_DATE_FORMAT,\n )\n .set('hours', 12)\n .unix();\n\n this.updateLockedDate();\n\n if (!this.initDateValue) {\n this.initDateValue = _cloneDeep(this.dateObj.date);\n }\n }\n\n updateLockedDate() {\n const year = moment.unix(this.forecastYear).year();\n\n this.forecastTags = this.forecastTags.map(forecastTag => {\n forecastTag.disabled = this.lockedDate.some((timestamp) => {\n const locked = moment.unix(timestamp);\n return locked.month() === forecastTag.value && +locked.year() === +year;\n });\n\n return forecastTag;\n });\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Forecast (New)';\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n const all_months = [];\n\n for (let i = fiscal_year_starts_from; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscal_year_starts_from; i++) {\n all_months.push(i);\n }\n\n return all_months.indexOf(dateObj.month() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.year();\n if (!fiscal_year_back) {\n if (dateObj.month() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (dateObj.month() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year -= 1;\n }\n }\n return fiscal_year;\n }\n\n changeTagInputHandler() {\n this.chosenTagHandler();\n }\n\n changeYearInputHandler() {\n this.updateLockedDate();\n this.initDateValue = _cloneDeep(this.dateObj.date);\n this.chosenTagHandler();\n }\n\n chosenTagHandler() {\n if (this.isDateEventHappened) return;\n\n const month = this.forecastValue;\n const year = moment.unix(this.forecastYear);\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n const date = new Date(year.year(), month, 1, 12, 0, 0, 0);\n\n if (fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back) {\n date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);\n } else {\n date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);\n }\n }\n\n this.dateObj.date = moment(date).unix();\n\n this.isDateEventHappened = true;\n setTimeout(() => {\n this.isDateEventHappened = false;\n });\n }\n\n const resultTag: IDateTag = {\n name: this.name,\n value: this.dateObj.date,\n label: `${ _find(this.forecastTags, { value: this.forecastValue })?.label } (${ year.year() })`,\n locked: !this.dateFilter(moment.unix(this.dateObj.date)),\n };\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const month = this.forecastValue;\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.month() === month && lockDate.year() === year;\n });\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Moment } from 'moment';\nimport { indexOf as _indexOf } from 'lodash';\n\n@Injectable()\nexport class ForecastTagService {\n private static readonly MONTH_DIFF = 1;\n private static forecastByMonth = {\n '0': '0+12',\n '1': '1+11',\n '2': '2+10',\n '3': '3+9',\n '4': '4+8',\n '5': '5+7',\n '6': '6+6',\n '7': '7+5',\n '8': '8+4',\n '9': '9+3',\n '10': '10+2',\n '11': '11+1',\n };\n\n constructor() {\n }\n\n public static getFiscalMonthFromDate(date: Moment, fiscalYearStartsFrom: number): number {\n const all_months = [];\n\n for (let i = fiscalYearStartsFrom; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscalYearStartsFrom; i++) {\n all_months.push(i);\n }\n\n return _indexOf(all_months, date.month() + ForecastTagService.MONTH_DIFF) + ForecastTagService.MONTH_DIFF;\n }\n\n public static getFiscalYearFromDate(date: Moment, fiscalYearStartsFrom: number, fiscalYearBack: boolean): number {\n const month = date.month();\n let fiscal_year = date.year();\n\n if (!fiscalYearBack) {\n if (month + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (month + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n public static getForecastLabel(month: number): string {\n return ForecastTagService.forecastByMonth[month - ForecastTagService.MONTH_DIFF];\n }\n\n public static getCalendarDateFromMonthAndFiscalYear(\n chosenMoment: Moment,\n monthLabel: string,\n fiscalYearStartsFrom: number,\n fiscalYearBack: boolean,\n ): number {\n const yearWithMonth = ForecastTagService.addMonthsWithoutYearChange(chosenMoment, monthLabel, fiscalYearStartsFrom);\n return ForecastTagService.transformYearFromFiscal(yearWithMonth, fiscalYearStartsFrom, fiscalYearBack);\n }\n\n public static addMonthsWithoutYearChange(\n date: Moment,\n monthLabel: string,\n fiscalYearStartsFrom: number,\n ): Moment {\n if (!monthLabel || !date) return;\n\n const dateToTransform = date.clone();\n\n const labelsIndex: number = +Object.keys(ForecastTagService.forecastByMonth).find(\n (key: string) => ForecastTagService.forecastByMonth[key] === monthLabel,\n );\n const monthsWithFiscalDifference = labelsIndex + fiscalYearStartsFrom - 1;\n const monthsToAdd = monthsWithFiscalDifference >= 12 ? monthsWithFiscalDifference - 12 : monthsWithFiscalDifference;\n\n return dateToTransform.utc().startOf('year').add(monthsToAdd, 'M');\n }\n\n public static transformYearFromFiscal(\n fiscalYearWithMonth: Moment,\n fiscalYearStartsFrom: number,\n fiscalYearBack: boolean,\n ): number {\n if (!fiscalYearWithMonth) return;\n\n let fiscalYearStartMoment = fiscalYearWithMonth.clone();\n if (fiscalYearBack) {\n if (fiscalYearStartMoment.month() + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscalYearStartMoment.add(1, 'year');\n }\n } else {\n if (fiscalYearStartMoment.month() + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscalYearStartMoment.subtract(1, 'year');\n }\n }\n return fiscalYearStartMoment.unix();\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst MONTH_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'MMMM YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'month-tag.component.html',\n styleUrls: ['./month-tag.component.scss'],\n selector: 'month-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },\n ],\n})\n\nexport class MonthTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Month';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('MMMM YYYY'),\n locked: !this.dateFilter(resultDate)\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n // Should be as arrow function to avoid lose scope\n dateFilter(date): boolean {\n const month = date.month();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === year && lockDate.month() === month;\n });\n };\n}\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\n// @ts-ignore\nconst moment = require('moment');\n\n@Component({\n templateUrl: 'quarter-tag.component.html',\n styleUrls: ['./quarter-tag.component.scss'],\n selector: 'quarter-tag',\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit, OnChanges {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.quarters\n ? this.quarters.some((quarter) => !this.dateFilter(moment.unix(quarter.value)))\n : false;\n }\n\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.initName();\n this.initTags();\n }\n }\n\n ngOnInit() {\n this.initName();\n this.initTags();\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Quarter';\n }\n }\n\n initTags() {\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n if (quarter.isSelected) {\n this.selectedValue = quarter;\n this.chosenTagHandler(quarter);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n chosenTagHandler(quarter) {\n const resultDate = moment.unix(quarter.value);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(quarter)\n };\n this.dateChange.emit(resultTag);\n }\n\n getQuarterOptions() {\n const quartersBeforeToday = 8;\n const quartersAfterToday = 8;\n const dateNow = new Date();\n const dateNowUnix = this.getUTCTimestamp(dateNow);\n let defaultValue = dateNowUnix;\n let tempDate = new Date();\n if (this.defaultValue) {\n defaultValue = this.defaultValue * 1000;\n }\n\n let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;\n afterDefault = Math.min(afterDefault, 100);\n let i; let tempValue;\n const to_return: any[] = [];\n for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {\n tempDate = new Date(defaultValue);\n tempDate.setDate(15);\n tempDate.setMonth(tempDate.getMonth() + 3 * i);\n tempValue = this.getUTCTimestamp(tempDate);\n to_return.push({\n value: tempValue / 1000,\n label: this.getQuarterLabel(tempValue),\n isSelected: (i === 0),\n disabled: false,\n });\n }\n return to_return;\n }\n\n private getQuarterLabel(timeValue) {\n const date = new Date(timeValue);\n return 'Q' + Math.floor((date.getMonth() / 3) + 1) + ' ' + date.getFullYear();\n }\n\n private getUTCTimestamp(date) {\n const month = Math.floor(date.getMonth() / 3) * 3;\n return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);\n }\n\n dateFilter(quarter): boolean {\n const quarterDate = moment.unix(quarter.value);\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n if (lockDate.year() === quarterDate.year() && lockDate.quarter() === quarterDate.quarter()) {\n quarter.disabled = true;\n return true;\n }\n\n return false;\n });\n };\n}\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst WEEK_FORMATS = {\n parse: {\n dateInput: 'WW-YYYY',\n },\n display: {\n dateInput: '[Week] WW, YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'week-tag.component.html',\n selector: 'week-tag',\n styleUrls: ['./week-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },\n ],\n})\nexport class WeekTagComponent extends AnyTagComponent implements OnInit {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n const timestamp = this.defaultValue || moment().unix() ;\n this.date = timestamp;\n this.dateObj.date = timestamp;\n this.chosenTagHandler(timestamp);\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Week';\n }\n }\n\n dateFilter(date): boolean {\n const week = date.week();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.week() === week && lockDate.year() === year;\n });\n };\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value).utc().weekday(1);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getWeekLabel(resultDate),\n locked: !this.dateFilter(resultDate)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(moment) {\n return `W${ moment.week() } ${ moment.year() }`;\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst YEAR_FORMATS = {\n parse: {\n dateInput: 'YYYY',\n },\n display: {\n dateInput: 'YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'year-tag.component.html',\n selector: 'year-tag',\n styleUrls: ['./year-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },\n ],\n})\n\nexport class YearTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Year';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('YYYY'),\n locked: !this.dateFilter(resultDate)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const calendarDateYear = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === calendarDateYear;\n });\n };\n}\n","// instead of getting this from the server each time\n// this is not going to change much\nexport enum TagTypes {\n LIST = 'LIST',\n DATE = 'DATE'\n}\n\nexport enum TagsConfigSubType {\n YEAR = 'year',\n PLAN = 'plan',\n BUDGET_CYCLE = 'budget cycle',\n FORECAST_CYCLE = 'forecast cycle',\n MONTH = 'month',\n WEEK = 'week',\n DAY = 'day',\n FORECAST_NEW = 'forecast_new',\n QUARTER = 'quarter',\n FILE_STATUS = 'file_status'\n}\n\nexport interface ITag {\n id: number;\n name: string;\n type: TAG_TYPES;\n options: any;\n values: string[] | null;\n description: string;\n locked?: boolean;\n}\n\nexport interface ITagForServer {\n id: number;\n name: string;\n value?: number | string;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IDateTag {\n name: string;\n value?: number;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IListTag {\n name: string;\n value?: number;\n label?: string;\n}\n\nexport interface IDynamicTag {\n value: string;\n is_favorite?: boolean;\n}\n\nexport type TDynamicTagValue = IDynamicTag | string | number;\nexport type TDynamicTag = { [parentValue: string]: TDynamicTagValue[] };\nexport type TConnectedTags = { [tagId: number]: ITagForServer[] };\nexport type TAG_TYPES = TagTypes;\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport {\n IDateTag,\n IListTag,\n ITag,\n ITagForServer,\n TagsConfigSubType,\n TagTypes,\n TDynamicTag,\n TDynamicTagValue\n} from '../models/serverTags';\nimport { find as _find, forEach as _forEach, map as _map, merge as _merge, some as _some } from 'lodash';\nimport { ITagAdditionalSettings } from './dr-tag.types';\n\n@Component({\n templateUrl: 'dr-tag.component.html',\n selector: 'dr-tag',\n styleUrls: ['dr-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DrTagComponent implements OnInit, OnChanges {\n @Input() tagConfig: ITag;\n // selectedTagValue\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[] = [];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n\n @Input() tagsConfig: ITag[];\n @Input() dynamicTagValues: TDynamicTag = {};\n\n @Input()\n public set connectedTags(tags: ITagForServer[]) {\n this._connectedTags = tags || [];\n }\n\n @Input() isDynamicTagAddEnabled: boolean;\n\n @Input() disabled: boolean;\n\n // An object containing additional props for tags configuration\n @Input() tagAdditionalSettings: Record<string, ITagAdditionalSettings>;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>(); // Not emit value for dynamic tag\n @Output() dynamicTagChange: EventEmitter<ITagForServer[]> = new EventEmitter<ITagForServer[]>();\n @Output() dynamicTagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public defaultValue: string | undefined;\n public currentTagDynamic: boolean;\n public currentTagConnectedToDynamic = false;\n public tagTypes = TagTypes;\n\n public dateTag: any;\n public listTag: any;\n\n private readonly connectableTags = [TagsConfigSubType.FORECAST_NEW, TagsConfigSubType.YEAR];\n\n private connectedTagsValues: ITagForServer[] = [];\n private dynamicTagValue: ITagForServer;\n private _connectedTags: ITagForServer[] = [];\n\n public get connectedTags(): ITagForServer[] {\n return this._connectedTags;\n }\n\n public get tagSettings(): ITagAdditionalSettings {\n return this.tagAdditionalSettings?.[this.tagConfig?.options?.sub_type];\n }\n\n public get isDynamicTagMultipleLine(): boolean {\n return this.currentTagDynamic && this.tagConfig.options.sub_type === TagsConfigSubType.FORECAST_CYCLE;\n }\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: ''\n };\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (simpleChanges.tagsConfig) {\n this.calculateDynamicTag();\n }\n }\n\n ngOnInit() {\n this.dateTag = {\n type: this.tagConfig.type,\n sub_type: this.tagConfig.options.sub_type,\n value: this.selectedTag?.value,\n };\n\n this.listTag = {\n name: this.tagConfig.name,\n type: this.tagConfig.type,\n values: this.tagConfig.values,\n value: this.selectedTag?.value,\n };\n\n if (this.tagsConfig && this.currentTagDynamic) {\n this.configureTagItems();\n }\n\n if (this.tagConfig && this.tagConfig.options && this.tagConfig.options.default_value) {\n this.defaultValue = this.tagConfig.options.default_value;\n }\n }\n\n onDateHandler(event: IDateTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: event.name,\n value: event.value,\n label: event.label,\n locked: event.locked\n };\n\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onDynamicTagChange(tag?: ITagForServer) {\n if (tag) {\n this.dynamicTagValue = tag;\n }\n\n this.dynamicTagChange.emit([...this.connectedTagsValues, this.dynamicTagValue]);\n }\n\n private onDynamicHandler(event) {\n const connectedDateTagConfig = _find(this.tagsConfig, (tagConfig) => tagConfig.name === event.name);\n this.connectedTags = _map(this.connectedTags, tag => {\n if (tag.id === connectedDateTagConfig.id) {\n tag.value = event.value;\n tag.locked = event.locked;\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n tag.label = event.label;\n }\n }\n\n return tag;\n });\n\n const resultEvent: ITagForServer = {\n id: connectedDateTagConfig.id,\n name: connectedDateTagConfig.name,\n value: event.value\n };\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n resultEvent.label = event.label;\n resultEvent.locked = event.locked;\n }\n\n\n const savedTag = _find(this.connectedTagsValues, { id: resultEvent.id });\n\n if (savedTag) {\n _merge(savedTag, resultEvent);\n } else {\n this.connectedTagsValues.push(resultEvent);\n }\n\n this.onDynamicTagChange();\n }\n\n private configureTagItems() {\n _forEach(this.tagsConfig, (tagConfig) => {\n if (!this.connectableTags.includes(tagConfig.options.sub_type)) return;\n if (tagConfig.type === TagTypes.DATE) {\n this.dateTag = {\n type: tagConfig.type,\n sub_type: tagConfig.options.sub_type,\n value: (_find(this.connectedTags, { id: tagConfig.id }) || {}).value,\n };\n }\n\n if (tagConfig.type === TagTypes.LIST) {\n this.listTag = {\n name: tagConfig.name,\n type: tagConfig.type,\n values: tagConfig.values,\n value: tagConfig?.options?.default_value,\n };\n }\n\n if (!_find(this.connectedTags, { id: tagConfig.id })) {\n this.connectedTags.push({\n id: tagConfig.id,\n name: tagConfig.name,\n value: undefined,\n });\n }\n });\n }\n\n private calculateDynamicTag(): void {\n this.currentTagDynamic = this.tagConfig.options.is_custom;\n\n this.currentTagConnectedToDynamic = _some(\n this.tagsConfig,\n (tagConfig) => tagConfig.options.is_custom && this.connectableTags.includes(this.tagConfig.options.sub_type),\n );\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IListTag } from '../models/serverTags';\n\n\n@Component({\n templateUrl: 'list-tag.component.html',\n selector: 'list-tag',\n styleUrls: ['list-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ListTagComponent implements OnInit {\n @Input() values: string[];\n @Input() defaultValue = '';\n @Input() name: string;\n @Input() disabled: boolean;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {\n }\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== '') {\n const resultTag: IListTag = {\n name: this.name,\n value\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\n\n// @ts-ignore\nconst moment = require('moment');\n\nconst DAY_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'DD.MM.YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'day-tag.component.html',\n selector: 'day-tag',\n styleUrls: ['./day-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },\n ],\n})\n\nexport class DayTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Day';\n }\n }\n\n chosenTagHandler(value: number) {\n const date = moment.unix(value);\n const resultTag: IDateTag = {\n name: this.name,\n value: date.unix(),\n label: date.format('MM/DD/YYYY'),\n locked: !this.dateFilter(date)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(momentData): boolean {\n const date = momentData.date();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.date() === date;\n });\n };\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() name: string;\n @Input('value') _value: any;\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n private _disabled = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges => {\n });\n onTouched: any = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\n }\n }\n\n valueChanged(event) {\n this.onChange(this.modelValue);\n this.valueChange.emit(this.value);\n }\n\n _setName(name: string) {\n this.name = name;\n this.cdr.markForCheck();\n }\n\n _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { from, fromEvent, merge, Subject } from 'rxjs';\nimport { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { RadioButtonComponent } from './radio-button.component';\n\n@Component({\n selector: 'dr-radio-group',\n template: `\n <ng-content select=\"dr-radio-button\"></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, OnDestroy, ControlValueAccessor {\n\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this.updateValues();\n }\n\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(name: string) {\n this._name = name;\n this.updateNames();\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = !!disabled;\n this.updateDisabled();\n }\n\n constructor(\n protected hostElement: ElementRef<HTMLElement>,\n @Inject(PLATFORM_ID) protected platformId,\n @Inject(DOCUMENT) protected document,\n ) {\n }\n\n protected destroy$ = new Subject<void>();\n protected _value: any;\n protected _name: string;\n protected _disabled: boolean;\n\n @ContentChildren(RadioButtonComponent, { descendants: true }) radios: QueryList<RadioButtonComponent>;\n\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n protected onChange = (value: any) => {\n };\n protected onTouched = () => {\n };\n\n ngAfterContentInit() {\n // In case option 'name' isn't set on dr-radio component,\n // we need to set it's name right away, so it won't overlap with options\n // without names from other radio groups. Otherwise they all would have\n // same name and will be considered as options from one group so only the\n // last option will stay selected.\n this.updateNames();\n\n this.radios.changes.pipe(\n startWith(this.radios),\n // 'changes' emit during change detection run and we can't update\n // option properties right of since they already was initialized.\n // Instead we schedule microtask to update radios after change detection\n // run is finished and trigger one more change detection run.\n switchMap((radios: QueryList<RadioButtonComponent>) => from(Promise.resolve(radios))),\n takeUntil(this.destroy$),\n ).subscribe(() => this.updateAndSubscribeToRadios());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n protected updateAndSubscribeToRadios() {\n this.updateValueFromCheckedOption();\n this.updateNames();\n this.updateValues();\n this.updateDisabled();\n this.subscribeOnRadiosValueChange();\n this.subscribeOnRadiosBlur();\n }\n\n protected updateNames() {\n if (this.radios) {\n this.radios.forEach((radio: RadioButtonComponent) => radio._setName(this.name));\n }\n }\n\n protected updateValues() {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => {\n radio.modelValue = this.value;\n });\n }\n\n protected updateDisabled() {\n if (typeof this.disabled !== 'undefined') {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => radio.disabled = this.disabled);\n }\n }\n\n protected subscribeOnRadiosValueChange() {\n if (!this.radios || !this.radios.length) {\n return;\n }\n\n merge(...this.radios.map((radio: RadioButtonComponent) => radio.valueChange)).pipe(\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe((value: any) => {\n this.writeValue(value);\n this.propagateValue(value);\n });\n }\n\n protected propagateValue(value: any) {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected subscribeOnRadiosBlur() {\n const hasNoRadios = !this.radios || !this.radios.length;\n if (!isPlatformBrowser(this.platformId) || hasNoRadios) {\n return;\n }\n\n const hostElement = this.hostElement.nativeElement;\n fromEvent<Event>(hostElement, 'focusin').pipe(\n filter(event => hostElement.contains(event.target as Node)),\n switchMap(() => merge(\n fromEvent<Event>(this.document, 'focusin'),\n fromEvent<Event>(this.document, 'click'),\n )),\n filter(event => !hostElement.contains(event.target as Node)),\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe(() => this.onTouched());\n }\n\n protected updateAndMarkForCheckRadios(updateFn: (RadioButtonComponent) => void) {\n if (this.radios) {\n this.radios.forEach((radio) => {\n updateFn(radio);\n radio._markForCheck();\n });\n }\n }\n\n protected updateValueFromCheckedOption() {\n const checkedRadio = this.radios.find((radio) => radio.modelValue);\n const isValueMissing = this.value === undefined || this.value === null;\n if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {\n this.value = checkedRadio.value;\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() checkedStatus: boolean;\n @Input() disabled = false;\n @Input() icon: 'cross' | '' = '';\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n\n private _indeterminate = false;\n @Output() checkedChange = new EventEmitter();\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n setValue(event) {\n const input = (event.target as HTMLInputElement);\n this.checkedStatus = input.checked;\n this.checkedChange.emit(this.checkedStatus);\n this.onChange(this.checkedStatus);\n this.indeterminate = input.indeterminate;\n this.onTouched();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2, ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { noop } from 'rxjs';\n\n@Component({\n selector: 'dr-input',\n templateUrl: './dr-input.component.html',\n styleUrls: ['./dr-input.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrInputComponent),\n multi: true\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrInputComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {\n _clearable = false;\n\n @Input() set disabled(value) {\n this.setDisabledState(value);\n }\n\n @Input() set buttonOptions(value) {\n if (value) {\n this._buttonOptions = { ...this._buttonOptions, ...value };\n if (this._buttonOptions?.show || this._buttonOptions?.showOnFocus) {\n this._elementClass.push('with-button');\n }\n }\n if (this._buttonOptions.showOnFocus) {\n this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {\n this._buttonOptions.focusSet = true;\n this.cdr.markForCheck();\n });\n this.globalListenFunc = this.renderer.listen('document', 'click', event => {\n if (event.target.parentNode !== this.elementRef.nativeElement) {\n if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {\n this.onButtonClicked(event);\n }\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n @Input() type = 'string';\n @Input() name: string;\n @Input() placeholder = '';\n @Input() readonly = false;\n\n @Input() set clearable(val) {\n this._clearable = !!val;\n if (this._clearable) {\n this._elementClass.push('clearable');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'clearable');\n }\n this.cdr.markForCheck();\n }\n\n @Input() min: number | string;\n @Input() max: number | string;\n @Input() minLength: number;\n @Input() maxlength: number;\n @Input() step;\n @Output() blur = new EventEmitter();\n @Output() ngModelDebounceChange = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n innerValue = null;\n _disabled = null;\n _elementClass: string[] = [];\n _buttonOptions = {\n show: false,\n showOnFocus: false,\n focusSet: false,\n checkFocusOut: (target: any, element: any) => true,\n text: 'Save'\n };\n listenFunc: (...params) => any;\n globalListenFunc: (...params) => any;\n\n\n @Output() searchHandler = new EventEmitter<any>();\n @Output() clearHandler = new EventEmitter<any>();\n @Output() buttonHandler = new EventEmitter<any>();\n\n @ViewChild('inputRef') private readonly inputElement: ElementRef<HTMLInputElement>;\n @ContentChild('prefix', { static: false }) prefixIcon: ElementRef;\n @ContentChild('suffix', { static: false }) suffixIcon: ElementRef;\n\n @HostBinding('tabindex') tabindex = -1;\n onChangeCallback: (_: any) => void = noop;\n onTouchedCallback: () => void = noop;\n onChange: (value: any) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\n }\n\n public set value(v: string | number) {\n if (v !== this.innerValue) {\n this.innerValue = this.type === 'number' ? +v : v;\n this.onChangeCallback(this.innerValue);\n }\n this.cdr.markForCheck();\n }\n\n\n constructor(private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.clearable) {\n this._elementClass.push('clearable');\n }\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n if (this.type === 'search') {\n this._elementClass.push('search-type');\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n writeValue(value: number | string) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.updateChanges();\n this.cdr.markForCheck();\n }\n }\n\n updateChanges() {\n this.onChange(this.value);\n }\n\n setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onSearchClicked($event: any) {\n this.searchHandler.emit($event);\n }\n\n onButtonClicked($event: any) {\n this.buttonHandler.emit($event);\n this._buttonOptions.focusSet = false;\n this.cdr.markForCheck();\n }\n\n ngOnDestroy(): void {\n if (this.listenFunc) {\n this.listenFunc();\n this.globalListenFunc();\n }\n }\n\n onClear($event) {\n this.clearHandler.emit($event);\n $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n\n focus() {\n this.inputElement.nativeElement.focus();\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef, ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\nconst SELECT_HOST_ATTRIBUTES = [\n 'no-left-border',\n 'no-left-border-radius',\n 'no-right-border',\n 'no-right-border-radius',\n];\n\ninterface INgSelectComponentAccessor {\n close: () => void;\n}\n\n@Component({\n selector: 'dr-select',\n templateUrl: './dr-select.component.html',\n styleUrls: ['./dr-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: DrSelectComponent,\n multi: true\n }]\n})\nexport class DrSelectComponent implements ControlValueAccessor {\n @Input() className: string;\n @Input() items: Array<any> = [];\n @Input() addTag: boolean | ((term: string) => any | Promise<any>);\n @Input() appendTo = 'body';\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() clearable: boolean;\n @Input() searchable: boolean;\n @Input() searchFn: (term: string, item: any) => boolean;\n @Input() multiple: boolean;\n @Input() hideSelected: boolean;\n @Input() placeholder: string;\n @Input() loading: boolean;\n @Input() loadingText: string = 'Loading...';\n @Input() readonly: boolean;\n @Input() disabled = false;\n @Input() groupBy = null;\n @Input() optionWithDescription = false;\n @Input() id: string;\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\n @Input() selectedItem: any;\n @Input() dropdownClass: string;\n @Input() closeOnSelect = true;\n\n @Input() set textView(val: boolean) {\n this.asTextView = val;\n }\n\n @Input() autofocus: boolean;\n @Input() isOpen: boolean;\n @Output() change: EventEmitter<any> = new EventEmitter<any>();\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\n @Output() closeUp: EventEmitter<any> = new EventEmitter<any>();\n @ViewChild(NgSelectComponent, { read: NgSelectComponent }) private readonly ngSelect: INgSelectComponentAccessor;\n @ContentChild('labelTemplate') labelTemplate: TemplateRef<any>;\n @ContentChild('optionTemplate') optionTemplate: TemplateRef<any>;\n @ContentChild('optionHeaderTemplate') optionHeaderTemplate: TemplateRef<any>;\n @ContentChild('optionFooterTemplate') optionFooterTemplate: TemplateRef<any>;\n @HostBinding('class.textView') asTextView = false;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n for (const attr of SELECT_HOST_ATTRIBUTES) {\n if (this.hasHostAttributes(attr)) {\n (this.getHostElement()).classList.add(attr);\n }\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any): void {\n this.selectedItem = value;\n this.onChange(this.selectedItem);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n\n if (fn && this.selectedItem) {\n this.onChange(this.selectedItem);\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n close(): void {\n this.ngSelect.close();\n }\n\n onDropdownOpen(): void {\n if (typeof this.dropdownClass === 'string') {\n setTimeout(() => {\n document.querySelector('.ng-dropdown-panel').classList.add(...this.dropdownClass.split(' '));\n }, 0);\n }\n }\n\n private getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hasHostAttributes(...attributes: string[]): boolean {\n return attributes.some(attribute => this.getHostElement().hasAttribute(attribute));\n }\n}\n","export class DrAvatarService {\n public static avatarColors = [\n '#0061FF',\n '#20A452',\n '#19194C',\n '#FF4E00',\n '#B14EF2',\n '#578AFF',\n '#F13FA4',\n '#8693A2',\n '#00867E',\n ];\n\n public static getAvatarColorNumber(index: number): number {\n return index % this.avatarColors.length;\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DrAvatarService } from './services/dr-avatar.service';\n\n@Component({\n selector: 'dr-avatar',\n templateUrl: 'dr-avatar.component.html',\n styleUrls: ['dr-avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrAvatarComponent {\n\n @Input() set users(users: any[] | any) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = DrAvatarService.getAvatarColorNumber(index);\n }\n });\n }\n }\n\n @Input() warning = false;\n @Input() showUnassigned = false;\n @Input() drAvatarTooltipPosition = 'bottom';\n @Input() drAvatarTooltipClass: string;\n @Input() drAvatarSize: string;\n @Input() drAvatarIsClickable = true;\n\n @Output() userClicked: EventEmitter<any> = new EventEmitter<any>();\n parsedUsers: any[] = [];\n\n constructor() {\n }\n\n getFirstUsers(): any[] {\n return this.parsedUsers.slice(0, 2);\n }\n\n getLastUsers(): any[] {\n if (this.parsedUsers.length > 2) {\n return this.parsedUsers.slice(2, this.parsedUsers.length - 1);\n }\n return [];\n }\n\n public getAvatarColor(user: { [field: string]: any, colorNumber?: number }): string {\n return DrAvatarService.avatarColors[user.colorNumber] || DrAvatarService.avatarColors[0];\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'drAvatar'\n})\nexport class DrAvatarPipe implements PipeTransform {\n\n transform(item: any, type: string = 'full'): string {\n if (type === 'initials') {\n const email = item.email ? item.email[0] : '';\n return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : email).toUpperCase();\n }\n\n return item.first_name && item.last_name ? (item.first_name + ' ' + item.last_name) : item.email;\n }\n}\n","import { animate, style, transition } from '@angular/animations';\nimport { DateTags } from './datePicker';\n\nexport const POPUP_POSITIONS = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 7\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8\n }\n};\n\nexport const POPUP_ANIMATION = [\n transition(':enter', [\n style({ opacity: 0 }),\n animate(150, style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate(150, style({ opacity: 0 })),\n ]),\n];\n\nexport const PRESET_TAGS_LIST: Array<{ key: string, label: string }> = [ \n {key: DateTags.TODAY, label: 'Today'},\n {key: DateTags.YESTERDAY, label: 'Yesterday'},\n {key: DateTags.THIS_MONTH, label: 'This month'},\n {key: DateTags.PREV_MONTH, label: 'Prev month'}\n];","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\ntype TooltipOptions = {\n withoutContainerStyles?: boolean;\n withoutArrow?: boolean;\n};\n\n@Component({\n selector: 'dr-tooltip',\n templateUrl: './dr-tooltip.component.html',\n styleUrls: ['./dr-tooltip.component.scss'],\n animations: [\n trigger('tooltip', POPUP_ANIMATION),\n ],\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() content;\n @Input() contentContext;\n @Input() position;\n @Input() options: TooltipOptions;\n @Input() class: string;\n @Input() theme: TooltipTheme;\n isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n }\n\n @HostListener('mouseenter')\n setMouseOn() {\n this.isMouseOn$.next(true);\n }\n\n @HostListener('mouseleave')\n unsetMouseOn() {\n this.isMouseOn$.next(false);\n }\n\n}\n","export enum TooltipTheme {\n LIGHT = 'light',\n DARK = 'dark',\n}\n","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\nconst getOverlayPosition = (position) => ({ ...POPUP_POSITIONS[position] });\n\n@Directive({\n selector: '[drTooltip]'\n})\nexport class DrTooltipDirective implements OnDestroy {\n\n @Input('drTooltip')\n content: any;\n @Input('drTooltipContext')\n contentContext = {};\n private _position = 'top';\n @Input('drTooltipPosition')\n public get position() {\n return this._position;\n }\n public set position(value) {\n this._position = value;\n this.overlayPosition = getOverlayPosition(value);\n }\n @Input('drTooltipClass')\n class = '';\n\n @Input('drTooltipTheme')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = getOverlayPosition(this.position);\n if (position?.offsetY) {\n position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;\n }\n if (position?.offsetX) {\n position.offsetX = position.offsetX < 0 ? -options.indent : options.indent;\n }\n this.overlayPosition = position;\n }\n this.options = options;\n }\n\n @Input('drTooltipShow')\n set showTooltip(value: boolean) {\n this.manualHandling = true;\n if (value) {\n this.renderTooltip();\n } else {\n this.destroyTooltip();\n }\n }\n\n private overlayRef: OverlayRef;\n private tooltipRef: ComponentRef<TooltipComponent>;\n\n private options;\n private manualHandling: boolean;\n private tooltipMouseOnSubscription: Subscription;\n private mouseleaveTimer: ReturnType<typeof setTimeout>;\n private overlayPosition = getOverlayPosition(this.position);\n\n constructor(private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef) {\n }\n\n ngOnDestroy(): void {\n if (!this.overlayRef) return null;\n\n if (this.overlayRef.hasAttached()) {\n this.hide();\n }\n // TODO: Temporary solution. line 162 doesn't stop function execution\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this.manualHandling || this.overlayRef) return;\n\n this.renderTooltip();\n }\n\n @HostListener('mouseleave')\n hide() {\n if (this.manualHandling || !this.tooltipRef || this.tooltipRef?.instance.isMouseOn$.getValue()) return;\n\n // if this timeout value is set - then preserve\n // tooltip from being hidden N milliseconds and not hiding it\n // in case mouse is pointed on tooltip\n if (this.drTooltipMousleaveTimeout) {\n\n if (this.mouseleaveTimer) {\n clearTimeout(this.mouseleaveTimer);\n }\n\n this.mouseleaveTimer = setTimeout(() => {\n if (this.tooltipRef && !this.tooltipRef?.instance.isMouseOn$.getValue()) {\n this.destroyTooltip();\n }\n }, this.drTooltipMousleaveTimeout);\n } else {\n this.destroyTooltip();\n }\n }\n\n private createOverlay(): void {\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([this.overlayPosition]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n if (!this.content) return;\n\n this.createOverlay();\n if (!this.overlayRef?.hasAttached()) {\n this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n this.tooltipRef.instance.content = this.content;\n this.tooltipRef.instance.contentContext = this.contentContext;\n this.tooltipRef.instance.position = this.position;\n this.tooltipRef.instance.options = this.options;\n this.tooltipRef.instance.class = this.class + ' ' + this.position;\n this.tooltipRef.instance.theme = this.theme;\n\n this.tooltipMouseOnSubscription = this.tooltipRef.instance.isMouseOn$.pipe(skip(1)).subscribe((isMouseOn: boolean) => {\n if (!isMouseOn) {\n this.destroyTooltip();\n }\n });\n }\n }\n\n private destroyTooltip(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n this.tooltipRef = null;\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle',\n templateUrl: './dr-toggle.component.html',\n styleUrls: ['./dr-toggle.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrToggleComponent implements ControlValueAccessor, AfterViewInit {\n _disabled = false;\n _elementClass: string[] = [];\n\n @Input()\n toggleTitle: any;\n @Input()\n toggleTitleRight: boolean;\n @Input()\n successType: boolean;\n @Input()\n checkedStatus: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue() {\n this.checkedStatus = !this.checkedStatus;\n this.onChange(this.checkedStatus);\n this.checkedChange.emit(this.checkedStatus);\n this.onTouched();\n }\n}\n","export enum ToggleButtonMode {\n DEFAULT = 'default',\n DOTTED = 'dotted',\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ToggleButtonMode } from './toggle-button-mode';\n\n@Component({\n selector: 'dr-toggle-button',\n templateUrl: './dr-toggle-button.component.html',\n styleUrls: ['./dr-toggle-button.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\n\nexport class DrToggleButtonComponent implements ControlValueAccessor {\n _disabled = false;\n\n @Input() items: string[] | any[];\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() bindHidden: string | null = null;\n @Input() mode: ToggleButtonMode = ToggleButtonMode.DEFAULT;\n @Input() selectedValue: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any) {\n this.selectedValue = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n const nextValue = item[this.bindValue] || item;\n if (this.selectedValue === nextValue) {\n return;\n }\n\n this.selectedValue = nextValue;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ISpinnerOptions } from '../models/spinnerOptions';\n\n@Component({\n selector: 'dr-spinner',\n templateUrl: './dr-spinner.component.html',\n styleUrls: ['./dr-spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrSpinnerComponent {\n\n private _options: ISpinnerOptions;\n\n public set options(data: ISpinnerOptions) {\n this._options ||= data;\n }\n\n public get options(): ISpinnerOptions {\n return this._options;\n }\n}\n","export enum SpinnerType {\n LOGO = 'logo',\n CIRCLE = 'circle',\n}\n\nexport enum SpinnerSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n BIG = 'big',\n GIANT = 'giant',\n}\n\nexport interface ISpinnerOptions extends DOMRect {\n spinnerType?: SpinnerType;\n spinnerSize?: SpinnerSize;\n noOverlay?: boolean;\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { SpinnerSize, SpinnerType } from '../models/spinnerOptions';\n\n@Directive({\n selector: '[drSpinner]'\n})\nexport class DrSpinnerDirective implements OnChanges, OnDestroy {\n\n @ViewChild(DrSpinnerComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n @Input() drSpinner;\n @Input() drSpinnerSize: SpinnerSize = SpinnerSize.MEDIUM;\n @Input() drSpinnerType: SpinnerType = SpinnerType.LOGO;\n @Input() drSpinnerNoOverlay = false;\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const show = changes.drSpinner.currentValue;\n const options = this.el.nativeElement.getBoundingClientRect();\n if (this.contentCmpRef && !show) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else if (this.drSpinner) {\n this.showSpinner({ ...options, spinnerSize: this.drSpinnerSize, spinnerType: this.drSpinnerType, noOverlay: this.drSpinnerNoOverlay });\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n const componentFactory: ComponentFactory<DrSpinnerComponent> = this.componentFactoryResolver.resolveComponentFactory(DrSpinnerComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.rdr.appendChild(this.el.nativeElement, this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n}\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\ntype ButtonType =\n 'primary' |\n 'split-primary-first' |\n 'split-primary-last' |\n 'secondary' |\n 'split-secondary-first' |\n 'split-secondary-last' |\n 'icon' |\n 'icon-primary' |\n 'icon-secondary' |\n 'ghost' |\n 'selection' |\n 'link' |\n 'danger' |\n 'help';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class DrButtonComponent {\n\n @Input()\n @HostBinding('class')\n theme: ButtonType = 'primary';\n\n @Input()\n @HostBinding('class.with-icon')\n icon: string;\n @Input() iconColor: string;\n @Input() iconSize = '24px';\n\n @Input()\n @HostBinding('class.with-icon-after')\n iconAfter: string;\n @Input() iconAfterColor: string;\n @Input() iconAfterSize = '24px';\n\n\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n\n @Input()\n @HostBinding('class.loading')\n isLoading = false;\n\n @Input()\n @HostBinding('class.active')\n isActive = false;\n\n @Output() click = new EventEmitter();\n\n constructor() {\n }\n\n public onClick($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.click.emit($event);\n }\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { DrPopoverComponent } from './dr-popover.component';\n\nexport class DrPopoverRef<T = any> {\n\n componentRef: ComponentRef<DrPopoverComponent<T>>;\n\n protected onClose$: Subject<any> = new Subject();\n // FIXME: this decision was made because of the incompatible rxjs version\n /**\n * Correct type is @type {Observable<any>}\n */\n readonly onClose: any = this.onClose$.asObservable();\n\n readonly onBackdropClick: Observable<MouseEvent>;\n\n constructor(private overlayRef: OverlayRef) {\n this.onBackdropClick = this.overlayRef.backdropClick();\n }\n\n close(res?: any): void {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.onClose$.next(res);\n this.onClose$.complete();\n }\n}\n","import { POPUP_POSITIONS } from './constants';\nimport { ElPosition } from './dropdown';\nimport { ElementRef } from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\n\nexport { DrPopoverRef } from '../dr-popover/dr-popover-ref';\n\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface IPopoverManualClosing {\n enabled: boolean;\n}\n\nexport interface IDrPopoverComponentModel {\n hostRef: ElementRef | HTMLElement | Point;\n position?: ElPosition;\n contentContext?: any;\n class?: string;\n overlayConfig?: DrPopoverConfig;\n manualClosing?: IPopoverManualClosing;\n targetElement?: HTMLElement;\n alignment?: DrPopoverAlignment;\n freezeToContainerSelector?: string;\n}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: boolean;\n noPadding?: boolean;\n}\n\nexport type DrPopoverAlignment = 'host';\n\nexport enum DrPopoverAlignmentDimension {\n Width = 'width',\n Height = 'height',\n}\n\nexport const DEFAULT_CONFIG: DrPopoverConfig = {\n hasBackdrop: false,\n closeOnBackdropClick: false,\n backdropClass: 'dr-popover-transparent-backdrop',\n};\n\nexport const DEFAULT_MODEL: Partial<IDrPopoverComponentModel> = {\n position: 'bottom',\n class: '',\n overlayConfig: {},\n manualClosing: { enabled: false },\n};\n\nexport const getAlignmentDimension = (position: string): DrPopoverAlignmentDimension => {\n if (!POPUP_POSITIONS[position]) return DrPopoverAlignmentDimension.Width;\n if (position?.includes('left') || position?.includes('right')) {\n return DrPopoverAlignmentDimension.Height;\n }\n return DrPopoverAlignmentDimension.Width;\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverAlignment, getAlignmentDimension, IPopoverManualClosing, Point } from '../models/popover';\n\n@Component({\n selector: 'dr-popover',\n templateUrl: './dr-popover.component.html',\n styleUrls: ['./dr-popover.component.scss'],\n animations: [\n trigger('popover', POPUP_ANIMATION),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrPopoverComponent<T> implements OnInit {\n\n @Output() popoverOpened: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() content: TemplateRef<any> | Type<T>;\n @Input() contentContext: any;\n @Input() class = '';\n @Input() hostRef: ElementRef<unknown> | HTMLElement | Point;\n @Input() manualClosing: IPopoverManualClosing;\n @Input() alignment: DrPopoverAlignment;\n @Input() position: string;\n @Input() freezeToContainerSelector: string;\n\n @ViewChild('popoverContainer', { read: ElementRef, static: true }) popoverContainer: ElementRef<HTMLElement>;\n isContentTemplate = false;\n componentRef: ComponentRef<T>;\n\n @HostBinding('style.width') width: string;\n @HostBinding('style.height') height: string;\n\n @HostBinding('@popover') public popover = true;\n\n @HostListener('document:mouseup', ['$event'])\n clickOutside(e): void {\n const isTargetHost = this.hostRef instanceof ElementRef && (this.hostRef.nativeElement === e.target || (this.hostRef.nativeElement as HTMLElement).contains(e.target));\n const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);\n const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');\n const isTargetInSelect = e.target.closest('ng-dropdown-panel');\n const isTargetInDatepickerContent = e.target.closest('mat-datepicker-content');\n\n if (!isTargetHost\n && !isTargetInPopover\n && !isTargetInDatepicker\n && !isTargetInSelect\n && !isTargetInDatepickerContent\n && !this.manualClosing.enabled\n ) {\n this.popoverRef.close();\n }\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.content as Type<T>));\n Object.assign(this.componentRef.instance, this.contentContext);\n this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);\n }\n if (this.alignment === 'host') {\n this[getAlignmentDimension(this.position)] = '100%';\n }\n\n this.popoverOpened.emit();\n this.repositionToNewContainerAndFreeze();\n this.cdr.detectChanges();\n }\n\n /**\n * Removing popover element from cdk-overlay and attach to provided container after element is positioned\n * is required for specific case of preserving popover at same position on document while scroll (not fixed)\n *\n * TODO: implement more neat, transparent and Angular way solution: i.e. create another service (or extend existiong one)\n * without attaching component to cdk Overlay and instead positioning it to element passed in directive input parameter\n */\n private repositionToNewContainerAndFreeze(): void {\n const newContainer = !!this.freezeToContainerSelector && document.querySelector(this.freezeToContainerSelector);\n if (newContainer) {\n\n // waiting until element is positioned on overlay\n setTimeout(() => {\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (!element.closest('.cdk-overlay-container')) return;\n\n const position = element.getBoundingClientRect();\n const newContainerPosition = newContainer.getBoundingClientRect();\n\n element.style.position = 'absolute';\n element.style.top = `${ newContainer.scrollTop + position.top - newContainerPosition.top }px`;\n element.style.left = `${ newContainerPosition.left + position.left }px`;\n\n newContainer.appendChild(element);\n });\n }\n }\n\n}\n","import { first } from 'rxjs/operators';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverComponent } from './dr-popover.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, StaticProvider, TemplateRef, Type } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport {\n DEFAULT_CONFIG,\n DEFAULT_MODEL,\n getAlignmentDimension,\n IDrPopoverComponentModel,\n Point\n} from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrPopoverService {\n\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private injector: Injector,\n ) {\n }\n\n open<T>(content: Type<T> | TemplateRef<HTMLElement>, popoverModel: IDrPopoverComponentModel): DrPopoverRef<T> {\n if (!content) return;\n\n const model = { ...DEFAULT_MODEL, ...popoverModel };\n\n const overlayRef = this.createOverlay(model);\n\n const popoverRef = new DrPopoverRef<T>(overlayRef);\n\n this.attachOverlayContainer(content, model, overlayRef, popoverRef);\n\n this.registerListeners(model, overlayRef, popoverRef);\n\n return popoverRef;\n }\n\n private attachOverlayContainer<T>(\n content: Type<T> | TemplateRef<HTMLElement>,\n { contentContext, position, class: elementClass, manualClosing, hostRef, alignment, freezeToContainerSelector}: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>\n ): void {\n const componentPortal = new ComponentPortal<DrPopoverComponent<T>>(DrPopoverComponent, null, this.createInjector(popoverRef));\n const contentRef = overlayRef.attach<DrPopoverComponent<T>>(componentPortal);\n\n popoverRef.componentRef = contentRef;\n\n contentRef.instance.content = content;\n contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };\n contentRef.instance.class = elementClass + ' ' + position;\n contentRef.instance.manualClosing = manualClosing;\n contentRef.instance.hostRef = hostRef;\n contentRef.instance.alignment = alignment;\n contentRef.instance.position = position;\n contentRef.instance.freezeToContainerSelector = freezeToContainerSelector;\n }\n\n private createOverlay(popoverModel: IDrPopoverComponentModel): OverlayRef {\n const overlayConfig = this.getOverlayConfig(popoverModel);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(popoverModel: IDrPopoverComponentModel): OverlayConfig {\n if (!POPUP_POSITIONS[popoverModel.position]) throw new Error(`DrPopover does not support the '${ popoverModel?.position }' position!`);\n\n const position = { ... POPUP_POSITIONS[popoverModel.position] };\n if (popoverModel.overlayConfig.noPadding) {\n position.offsetY = 0;\n position.offsetX = 0;\n }\n const config = { ...DEFAULT_CONFIG, ...popoverModel.overlayConfig || {} };\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([position]);\n\n const overlayConfig = new OverlayConfig({\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy,\n ...config,\n });\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];\n }\n\n return overlayConfig;\n }\n\n private createInjector<T>(popoverRef: DrPopoverRef<T>): Injector {\n const injectionTokens: StaticProvider[] = [\n { provide: DrPopoverRef, useValue: popoverRef },\n ];\n\n return Injector.create({ providers: injectionTokens, parent: this.injector });\n }\n\n private registerListeners<T>(popoverModel: IDrPopoverComponentModel, overlayRef: OverlayRef, popoverRef: DrPopoverRef<T>): void {\n const config = popoverModel.overlayConfig || {};\n const targetElement = popoverModel.targetElement;\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n if (config?.closeOnBackdropClick && config?.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => popoverRef.close());\n }\n\n if (targetElement) {\n targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });\n }\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(host => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));\n });\n resizeObserver.observe(hostElement);\n popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));\n }\n }\n\n private getHostElement<T>(hostRef: Point | HTMLElement | ElementRef<T>): HTMLElement {\n if (!hostRef || (<Point>hostRef).x) return null;\n if ((<ElementRef>hostRef).nativeElement) return (<ElementRef>hostRef).nativeElement;\n return <HTMLElement>hostRef;\n }\n\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { DrPopoverAlignment, IPopoverManualClosing } from '../models/popover';\n\n@Directive({\n selector: '[drPopover]'\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n\n @Input('drPopover') content: TemplateRef<any> | Type<T>;\n\n @Input('drPopoverContext') contentContext: any = {};\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: OverlayConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n @Input('drPopoverFreezeToContainerSelector') freezeToContainerSelector: string;\n\n // eslint-disable-next-line\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n @Output('drPopoverOpened') popoverOpened = new EventEmitter<void>();\n\n // eslint-disable-next-line\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n\n constructor(private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\n ) {\n }\n\n @HostListener('click')\n togglePopover(): void {\n if (this.disabled) return;\n\n if (this.popoverRef) {\n this.closePopover();\n } else {\n this.renderPopover();\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n }\n }\n\n closePopover(res?: any): void {\n if (this.popoverRef) {\n this.popoverRef.close(res);\n this.popoverRef = null;\n }\n }\n\n private renderPopover(): void {\n const popoverRef = this.popoverRef = this.drPopoverService.open(this.content, {\n hostRef: this.elementRef,\n overlayConfig: this.overlayConfig,\n class: this.class,\n manualClosing: this.manualClosing,\n position: this.position,\n contentContext: this.contentContext,\n alignment: this.alignment,\n freezeToContainerSelector: this.freezeToContainerSelector\n });\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n });\n\n popoverRef.componentRef.instance.popoverOpened.pipe(first()).subscribe(() => {\n this.popoverOpened.emit();\n });\n }\n\n ngOnDestroy(): void {\n this.closePopover();\n }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { IDropdownAction } from '../models/dropdown';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DrDropdownService {\n\n actionItem = new Subject<IDropdownAction<unknown>>();\n protected menuInView: ComponentRef<DrDropdownComponent>;\n\n constructor() {\n }\n\n set addMenu(item: ComponentRef<DrDropdownComponent>) {\n this.menuInView = item;\n }\n\n destroy() {\n if (this.menuInView) {\n this.menuInView.destroy();\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\nimport { ElPosition, IDropdown, IDropdownActionIcon, IDropdownCoordinate, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Component({\n selector: 'dr-dropdown',\n templateUrl: './dr-dropdown.component.html',\n styleUrls: ['./dr-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrDropdownComponent {\n\n @ViewChild('listMenu') viewMenu: HTMLElement;\n @ViewChild('menuContainer') menuContainer: HTMLElement;\n option: any;\n position: ElPosition | IDropdownCoordinate = 'left';\n drDropdownInHover: boolean;\n list: IDropdownItem<unknown>[];\n containerClass: string;\n public wasHovered = false;\n private firstInit: boolean;\n\n constructor(protected menuService: DrDropdownService, private cdr: ChangeDetectorRef) {\n }\n\n @Input() set options(data: IDropdown<IDropdownItem<any>>) {\n if (data) {\n this.option = data.option;\n this.position = data.position;\n this.drDropdownInHover = data.drDropdownInHover;\n this.containerClass = data.class;\n this.list = data.list || [];\n this.list.forEach(item => {\n if (item.children?.length) {\n item.childOptions = {\n list: item.children,\n class: item?.childOptions?.class || '',\n position: 'child'\n };\n }\n });\n this.cdr.markForCheck();\n }\n }\n\n onMouseEnter(): void {\n this.wasHovered = true;\n }\n\n onMouseLeave(): void {\n if (this.drDropdownInHover) this.menuService.destroy();\n }\n\n onClickedOutside(): void {\n if (this.firstInit) {\n this.menuService.destroy();\n } else {\n this.firstInit = true;\n }\n }\n\n hide(): void {\n this.menuService.destroy();\n }\n\n disabled(act: IDropdownItem<unknown> | IDropdownActionIcon<any>): boolean {\n if (!act.disabled) {\n return false;\n }\n if (typeof act.disabled === 'boolean') {\n return act.disabled;\n } else {\n return act.disabled(act.data);\n }\n }\n\n selected(act: IDropdownItem<unknown>): boolean {\n if (!act.selected) {\n return false;\n }\n if (typeof act.selected === 'boolean') {\n return act.selected;\n } else {\n return act.selected(act.data);\n }\n }\n\n tooltipToShow(act: IDropdownItem<unknown>): string {\n if (act.toolTipIfDisabled && !this.disabled(act)) return '';\n return act.customTooltip ? act.customTooltip(act.data) : act.toolTip;\n }\n\n tooltipPosition(widthMoreRight: boolean) {\n return widthMoreRight ? 'right' : 'left';\n }\n\n action(act: IDropdownItem<any>) {\n if (!this.disabled(act)) {\n if (act.action) {\n act.action(act.data);\n } else {\n this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });\n }\n this.hide();\n }\n }\n\n onActionIconClick($event, actionIcon: IDropdownActionIcon<any>, data: any) {\n $event.stopPropagation();\n if (!this.disabled(actionIcon)) {\n actionIcon.action(data);\n this.hide();\n }\n }\n}\n\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ElPosition, IDropdown, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Directive({\n selector: '[drDropdown]'\n})\nexport class DrDropdownDirective<T> implements OnDestroy {\n\n @Input() position: ElPosition = 'left';\n @Input() drDropdown: IDropdownItem<T>[];\n @Input() drDropdownClass: string;\n @Input() drDropdownInHover: boolean;\n @ViewChild(DrDropdownComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n\n private readonly mouseleaveTimeout = 200;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private service: DrDropdownService,\n private el: ElementRef,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n @HostListener('mouseenter') elementHover() {\n if (!this.drDropdownInHover) return;\n this.openDropdown();\n }\n\n @HostListener('click') elementClick() {\n this.openDropdown();\n }\n\n @HostListener('mouseleave') leaveDropdownTriggerElement() {\n if (this.drDropdownInHover) {\n setTimeout(_ => {\n if (this.contentCmpRef && !this.contentCmpRef.instance.wasHovered) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n }\n }, this.mouseleaveTimeout);\n }\n }\n\n @HostListener('document:mouseup', ['$event']) documentClick(e) {\n this.closeDropdown(e);\n }\n\n private openDropdown(): void {\n const option = this.el.nativeElement.getBoundingClientRect();\n this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());\n if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else {\n this.service.destroy();\n this.showMenu({\n option,\n drDropdownInHover: this.drDropdownInHover,\n position: this.position,\n list: this.drDropdown,\n class: this.drDropdownClass\n });\n }\n }\n\n private closeDropdown(e): void {\n\n if (!this.contentCmpRef) {\n return;\n }\n\n const clickTarget = e.target;\n const triggerElement = this.el.nativeElement;\n const dropdownElement = this.contentCmpRef.location.nativeElement;\n const isClickTriggerElement = triggerElement.contains(clickTarget) || triggerElement === clickTarget;\n const isClickDropdownContents = dropdownElement.contains(clickTarget);\n\n if (!isClickTriggerElement && !isClickDropdownContents) {\n const elems = this._document.querySelectorAll('dr-dropdown');\n setTimeout(() => elems.forEach(item => item.remove()), 100);\n }\n }\n\n private showMenu(options: IDropdown<T>) {\n const componentFactory: ComponentFactory<DrDropdownComponent> = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.service.addMenu = this.contentCmpRef;\n this._document.querySelector('dr-layout').appendChild(this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ElPosition, IDropdownCoordinate } from '../models/dropdown';\n\n@Directive({\n selector: '[drDropdownPosition]',\n exportAs: 'dropdownPosition'\n})\nexport class DrDropdownPositionDirective implements OnInit {\n\n @Input() drDropdownPosition;\n @Input() position: ElPosition | IDropdownCoordinate = 'left';\n\n widthMoreRight: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n setTimeout(this.calculatePosition.bind(this), 1);\n }\n\n calculatePosition() {\n let xDifference = 0;\n let defaultDelta = 10;\n let defaultPadding = 0;\n const originalPosition = this.position;\n\n if (this.position === 'child') {\n defaultDelta = 0;\n defaultPadding = 10;\n xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;\n const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();\n\n this.position = {\n x: this.el.nativeElement.offsetWidth,\n y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,\n clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,\n clientY: parentRect.y\n };\n }\n\n if (typeof this.position === 'string') {\n this.renderer.setStyle(this.el.nativeElement, 'top',\n this.position === 'bottom' ?\n this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :\n this.drDropdownPosition.y + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left',\n this.position === 'right' ?\n this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :\n this.drDropdownPosition.x + 'px');\n const menuHeight = this.el.nativeElement.offsetHeight;\n const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;\n const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;\n const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;\n\n const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);\n this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;\n\n if (heightMoreWindowBottom) {\n this.position = 'top';\n }\n if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {\n this.position = 'top-left';\n const translateX = `calc(-100% + ${ this.drDropdownPosition.width }px)`;\n const translateY = 'calc(-100% - 8px)';\n this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(${ translateX }, ${ translateY })`);\n }\n if (heightMoreWindowTop && heightMoreWindowBottom) {\n this.position = 'left-center';\n }\n if (this.position === 'bottom-left') {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'transform',\n `translate(calc(-100% + ${ this.drDropdownPosition.width }px), ${ this.drDropdownPosition.height + 8 }px)`\n );\n }\n const className = this.position === 'top' ? 'content-top'\n : this.position === 'top-left' ? 'content-top-left'\n : this.position === 'bottom' ? 'content-bottom'\n : this.position === 'bottom-left' ? 'content-bottom-left'\n : this.position === 'left' ? 'content-left'\n : this.position === 'left-center' ? 'content-left-center'\n : this.position === 'right' ? 'content-right'\n : this.position === 'bottom-right' ? 'content-bottom-right' : '';\n this.renderer.addClass(this.el.nativeElement, className);\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n } else {\n const defaultChildPadding = 3;\n const widthMoreWindowRight = originalPosition !== 'child'\n ? window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding)\n : window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;\n\n const widthMoreWindowBottom = originalPosition !== 'child'\n ? window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding)\n : window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;\n\n const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);\n this.widthMoreRight = !(widthMoreWindowRight < 0);\n\n let calculatedHorizantallyPos = widthMoreWindowRight < 0\n ? -this.position.x + -defaultChildPadding\n : this.position.x + defaultChildPadding + xDifference;\n\n if (spaceRightAmount <= 0 && originalPosition !== 'child') {\n calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;\n }\n\n const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;\n\n this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IDropdownItem } from '../models/dropdown';\n\n@Pipe({\n name: 'drDropdownItemShowPipe'\n})\nexport class DrDropdownItemShowPipe<T> implements PipeTransform {\n transform(arr: IDropdownItem<T>[]): IDropdownItem<T>[] {\n return arr.filter(item => item.show ? item.show(item.data) : true);\n }\n}\n","import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'dr-tab',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class DrTabComponent implements OnInit {\n @Input() label: string;\n @Input() icon: string;\n @Input() disabled: boolean;\n @Input() tooltip: string;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, ContentChildren, EventEmitter, Input, Output, QueryList, } from '@angular/core';\nimport { DrTabComponent } from './dr-tab.component';\n\n@Component({\n selector: 'dr-tabs',\n templateUrl: './dr-tabs.component.html',\n styleUrls: ['./dr-tabs.component.scss'],\n})\nexport class DrTabsComponent {\n @Input() theme: string = 'primary';\n @Input() selectedTab = 0;\n @Input() withRadio: boolean;\n @Input() withIcon: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Input() noTabLabelsPadding = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor() {\n }\n\n selectedIndexChange($event) {\n this.selectedTab = $event;\n this.selectedTabChange.emit($event);\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'dr-accordion',\n template: '<ng-content select=\"dr-accordion-item\"></ng-content>',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionComponent {\n static ngAcceptInputType_multi: any;\n openCloseItems = new Subject<boolean>();\n\n /**\n * Allow multiple items to be expanded at the same time.\n */\n @Input('multi')\n get multi(): boolean {\n return this.multiValue;\n }\n\n set multi(val: boolean) {\n this.multiValue = !!val;\n }\n\n private multiValue = false;\n\n /**\n * Opens all enabled accordion items.\n */\n openAll() {\n if (this.multi) {\n this.openCloseItems.next(false);\n }\n }\n\n /**\n * Closes all enabled accordion items.\n */\n closeAll() {\n this.openCloseItems.next(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrAccordionComponent } from './accordion.component';\n\n@Component({\n selector: 'dr-accordion-item',\n styleUrls: ['./accordion-item.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-header\"></ng-content>\n <ng-content select=\"dr-accordion-item-body\"></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {\n\n /**\n * Item is collapse (`true` by default)\n *\n * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\n }\n\n static ngAcceptInputType_collapsed: any;\n\n /**\n * Item is expanded (`false` by default)\n */\n @Input('expanded')\n @HostBinding('class.expanded')\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n *\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\n }\n\n static ngAcceptInputType_disabled: any;\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n */\n @Output() collapsedChange = new EventEmitter<boolean>();\n\n accordionItemInvalidate = new Subject<boolean>();\n\n private collapsedValue = true;\n private disabledValue = false;\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordion: DrAccordionComponent, private cd: ChangeDetectorRef) {\n }\n\n /**\n * Open/close the item\n */\n toggle() {\n if (!this.disabled) {\n // we need this temporary variable as `openCloseItems.next` will change current value we need to save\n const willSet = !this.collapsed;\n\n if (!this.accordion.multi) {\n this.accordion.openCloseItems.next(true);\n }\n this.collapsed = willSet;\n }\n }\n\n /**\n * Open the item.\n */\n open() {\n if (!this.disabled) {\n this.collapsed = false;\n }\n }\n\n /**\n * Collapse the item.\n */\n close() {\n if (!this.disabled) {\n this.collapsed = true;\n }\n }\n\n ngOnInit() {\n this.accordion.openCloseItems.pipe(takeUntil(this.destroy$)).subscribe(collapsed => {\n if (!this.disabled) {\n this.collapsed = collapsed;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.accordionItemInvalidate.next(true);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.accordionItemInvalidate.complete();\n }\n\n private invalidate() {\n this.accordionItemInvalidate.next(true);\n this.cd.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Host,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\n@Component({\n selector: 'dr-accordion-item-header',\n styleUrls: ['./accordion-item-header.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-title\"></ng-content>\n <ng-content select=\"dr-accordion-item-description\"></ng-content>\n <ng-content></ng-content>\n <i class=\"dr-icon-arrow-down expansion-indicator\"\n [@expansionIndicator]=\"state\"\n *ngIf=\"!disabled\">\n </i>\n `,\n animations: [\n trigger('expansionIndicator', [\n state(\n 'expanded',\n style({\n transform: 'rotate(180deg)',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @HostBinding('class.accordion-item-header-collapsed')\n get isCollapsed(): boolean {\n return this.accordionItem.collapsed;\n }\n\n @HostBinding('class.accordion-item-header-expanded')\n @HostBinding('attr.aria-expanded')\n get expanded(): boolean {\n return !this.accordionItem.collapsed;\n }\n\n @HostBinding('attr.tabindex')\n get tabbable(): string {\n return this.accordionItem.disabled ? '-1' : '0';\n }\n\n @HostBinding('attr.aria-disabled')\n get disabled(): boolean {\n return this.accordionItem.disabled;\n }\n\n @HostListener('click')\n @HostListener('keydown.space')\n @HostListener('keydown.enter')\n toggle() {\n this.accordionItem.toggle();\n }\n\n get state(): string {\n if (this.isCollapsed) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, OnDestroy, OnInit, } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\nconst accordionItemBodyTrigger = trigger('accordionItemBody', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n]);\n\n@Component({\n selector: 'dr-accordion-item-body',\n template: `\n <div [@accordionItemBody]=\"{ value: state }\">\n <div class=\"item-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./accordion-item-body.component.scss'],\n animations: [accordionItemBodyTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemBodyComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout',\n styleUrls: ['./dr-layout.component.scss'],\n templateUrl: './dr-layout.component.html',\n})\nexport class DrLayoutComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-header',\n template: `\n <nav>\n <ng-content></ng-content>\n </nav>\n `,\n})\nexport class DrLayoutHeaderComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-body',\n template: '<ng-content></ng-content>',\n})\nexport class DrLayoutBodyComponent {\n constructor() {\n }\n}\n","import { ChangeDetectorRef, Component, HostBinding, Input, Optional } from '@angular/core';\nimport { FormControl, FormGroupDirective } from '@angular/forms';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n})\nexport class DrErrorComponent {\n constructor(private cdr: ChangeDetectorRef, @Optional() private formGroupDirective: FormGroupDirective) {}\n\n public _control: FormControl;\n @Input() set control(value: FormControl) {\n if (value) {\n this._control = value;\n }\n }\n\n @Input() set controlName(value: string) {\n if (!value || typeof value !== 'string') return;\n\n if (!this.formGroupDirective) {\n throw new Error('You must provide a formGroupDirective to use this input');\n }\n\n this.control = this.formGroupDirective.control.get(value) as FormControl;\n }\n\n @Input() label = 'Field error';\n @Input() errorTooltipPosition = 'top';\n @Input() displayAsLabel = false;\n\n @Input() @HostBinding('class.no-icon') noIcon = false;\n\n get errorString() {\n if (this._control.hasError('required')) {\n return 'Field is required!';\n }\n\n return this._control.errors?.errorString || null;\n }\n\n get isWarning() {\n return this._control.errors?.isWarning;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n HostBinding,\n Inject,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp, SizeModal } from '../../interfaces/dialog-data';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-wrapper',\n templateUrl: './dialog-wrapper.component.html',\n styleUrls: ['./dialog-wrapper.component.scss'],\n})\nexport class DialogWrapperComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('content', { read: ViewContainerRef }) content: ViewContainerRef;\n\n @HostBinding('class') class: SizeModal = this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\n childComponent: any;\n isLoading: boolean;\n saving$ = new BehaviorSubject(false);\n destroy$: Subject<any> = new Subject();\n\n constructor(public dialogRef: MatDialogRef<DialogWrapperComponent>,\n private dialogService: DialogService,\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp) {\n }\n\n ngAfterViewInit(): Error {\n if (!this.dialogData.child) {\n return new Error('Expected componentTypeChild');\n }\n const componentFactory: ComponentFactory<any> = this.componentFactoryResolver.resolveComponentFactory(this.dialogData.child);\n this.childComponent = this.content.createComponent(componentFactory).instance;\n this.childComponent.closeDialog = this.closeDialog.bind(this);\n this.childComponent.onAcceptDialog = this.onAcceptDialog.bind(this);\n\n // pass data to component child\n if (this.dialogData.childData) {\n _.assign(this.childComponent, this.dialogData.childData);\n }\n // call component child init func - looks like double init\n // if (this.childComponent.ngOnInit) {\n // this.childComponent.ngOnInit();\n // }\n this.cdr.detectChanges();\n }\n\n closeDialog(data?: any) {\n this.dialogRef.close(data || false);\n }\n\n enableAcceptButton() {\n this.dialogData.acceptButton.isDisabled = false;\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n onAcceptDialog(data?: any) {\n if (!this.childComponent) {\n this.dialogRef.close(data || true);\n return;\n }\n const funcName = this.dialogData.acceptButton.functions;\n if (this.childComponent[funcName]) this.childComponent[funcName]();\n const loadFuncName = this.dialogData.acceptButton.loading;\n if (this.childComponent[loadFuncName]) this.isLoading = this.childComponent[loadFuncName]();\n\n if (this.dialogData.confirmFn) {\n this.saving$.next(true);\n this.dialogData.confirmFn().pipe(takeUntil(this.destroy$), catchError(error => this.dialogService.throwErr(error, this.saving$))).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(data || true);\n });\n }\n\n if (this.childComponent && !this.childComponent[funcName]) {\n this.dialogRef.close(data || true);\n return;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { MatDialogConfig } from '@angular/material/dialog';\n\ntype DialogConfig = Omit<MatDialogConfig, 'data'>;\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> extends DialogConfig {\n data: {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n subtitle?: string;\n content?: any;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n child?: ComponentType<T>;\n childData?: Partial<T>;\n theme?: {\n themeSize?: SizeModal;\n type?: 'successful';\n contentNoPadding?: boolean;\n isConfirmation?: boolean;\n noThemeSizeClass?: boolean;\n };\n confirmFn?: any;\n fields?: ModalFormField[];\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n };\n}\n\n// Data Obj for openConfirmDialog()\nexport interface ConfirmDialogData {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n content?: string;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n hideCloseBtn?: boolean;\n confirmFn?: (response?: any) => Observable<any>;\n fields?: ModalFormField[];\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n theme?: {\n themeSize?: SizeModal;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\nexport interface FooterTemplateData {\n label: string;\n icon?: string;\n action: (objToSave?: any) => any;\n}\n\nexport interface ModalFormField {\n name: string;\n type: TDialogFieldType;\n label?: string;\n isLabelFullWidth?: boolean;\n items?: any[];\n items$?: Observable<any[]> | Observable<any>;\n default?: any;\n placeholder?: string;\n bindLabel?: string;\n bindValue?: string;\n validators?: any[];\n datePickerFormat?: TimeframeOption;\n formGroupClass?: string;\n}\n\nexport type SizeModal =\n | 'small-modal'\n | 'medium-small-modal'\n | 'medium-modal'\n | 'medium-modal-max-height'\n | 'medium-large-modal'\n | 'large-modal'\n | 'xl-modal'\n | 'xl-custom-modal';\n\nexport type DataProp<T = any> = DialogData<T>['data'];\n\nexport type DialogTheme = DataProp['theme'];\n\nexport type DialogFooterButton = {\n label?: string;\n loadingLabel?: string;\n functions?: any;\n isDisabled?: boolean;\n loading?: any;\n theme?: any;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n MEDIUM = 'medium-modal',\n MEDIUM_SMALL = 'medium-small-modal',\n MEDIUM_MAX_HEIGHT = 'medium-modal-max-height',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-modal',\n}\n\nexport enum DIALOG_BUTTON_LABEL {\n SAVE = 'Save',\n CANCEL = 'Cancel',\n CLOSE = 'Close',\n}\n\nexport enum DIALOG_FIELD_TYPE {\n INPUT = 'input',\n SELECT = 'select',\n DATE_PICKER = 'date_picker',\n CHECKBOX = 'checkbox',\n}\n\nexport type TDialogFieldType = DIALOG_FIELD_TYPE;\n","import { Component, HostBinding, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp, DIALOG_FIELD_TYPE } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject, throwError } from 'rxjs';\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-modal-wrapper',\n templateUrl: './dialog-modal-wrapper.component.html',\n styleUrls: ['./dialog-modal-wrapper.component.scss'],\n\n})\nexport class DialogModalWrapperComponent implements OnInit, OnDestroy {\n readonly dialogFieldType = DIALOG_FIELD_TYPE;\n\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n destroy$: Subject<any> = new Subject();\n fieldsItemsLoading: Record<string, BehaviorSubject<boolean>> = {};\n\n @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n\n constructor(\n public dialogRef: MatDialogRef<DialogModalWrapperComponent>,\n private dialogService: DialogService,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {\n }\n\n ngOnInit(): void {\n if (!this.dialogData.fields) this.dialogData.fields = [];\n\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\n if (currentValue.items$) {\n this.fieldsItemsLoading[currentValue.name] = new BehaviorSubject<boolean>(true);\n currentValue.items$ = (currentValue.items$ as any).pipe(\n catchError((err) => {\n this.fieldsItemsLoading[currentValue.name].next(false);\n return throwError(() => err);\n }),\n tap(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n finalize(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n );\n }\n\n const currentFormControl = {};\n currentFormControl[currentValue.name] = new FormControl(currentValue.default || null, currentValue.validators || []);\n return Object.assign(accumulator, currentFormControl);\n }, {})\n );\n }\n\n onAccept() {\n if (!this.dialogData.confirmFn) return this.dialogRef.close(this.form.value || true);\n\n this.isLoading = true;\n this.saving$.next(true);\n this.dialogData.confirmFn(this.form.value).pipe(\n finalize(() => {\n this.isLoading = false\n this.saving$.next(false);\n }),\n takeUntil(this.destroy$),\n catchError((err) => {\n this.showServerErrorMessage = true;\n this.isLoading = false;\n return this.dialogService.throwErr(err, this.saving$);\n })\n ).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n footerAction(): void {\n this.dialogData.footerTemplateData.action(this.form.value);\n }\n\n closeDialog() {\n this.dialogRef.close(false);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ConfirmDialogData, DataProp, DialogData, DialogTheme } from '../interfaces/dialog-data';\nimport { DialogWrapperComponent } from '../components/dialog-wrapper/dialog-wrapper.component';\nimport { DialogModalWrapperComponent } from '../components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst DEFAULT_PANE_CLASS_NAME = 'wrapper-dialog';\n\nconst DEFAULT_CONFIRM_THEME: DialogTheme = { themeSize: 'small-modal' };\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n private wrapperComponent: MatDialogRef<any>;\n\n constructor(\n private dialog: MatDialog,\n ) {\n }\n\n /**\n * Function to open modal with custom form\n */\n openDialogWrapper<T, D = any, R = any>(\n componentTypeChild: ComponentType<T>,\n dialogData: DialogData<T>,\n componentTypeWrapper?: ComponentType<D>,\n ) {\n if (!componentTypeWrapper) componentTypeWrapper = (DialogWrapperComponent as any);\n\n dialogData.data.child = componentTypeChild;\n\n if (dialogData.panelClass instanceof Array) {\n dialogData.panelClass.push(DEFAULT_PANE_CLASS_NAME);\n } else {\n dialogData.panelClass = [dialogData.panelClass || '', DEFAULT_PANE_CLASS_NAME];\n }\n\n this.wrapperComponent = this.openDialog<D, R, T>(componentTypeWrapper, dialogData);\n return this.wrapperComponent;\n }\n\n /**\n * Function to open confirmation modal\n */\n openConfirmDialog<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n dialogData.data.theme.isConfirmation = true;\n return this.openDialog<DialogWrapperComponent, R, ConfirmDialogData>(DialogWrapperComponent, dialogData);\n }\n\n /**\n * Function to open confirmation modal with inputs\n */\n openConfirmDialogModal<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogModalWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n return this.openDialog<DialogModalWrapperComponent, R, ConfirmDialogData>(DialogModalWrapperComponent, dialogData);\n }\n\n close(params?: any): void {\n this.wrapperComponent.close(params);\n }\n\n enableAcceptButton(): void {\n this.wrapperComponent.componentInstance.enableAcceptButton();\n }\n\n changeDialogThemeSize(theme: string): void {\n this.wrapperComponent.componentInstance.class = theme;\n }\n\n private openDialog<WrapperType, ReturnType = any, D = any>(componentType: ComponentType<WrapperType>, dialogData: DialogData<D>): MatDialogRef<WrapperType, ReturnType> {\n return this.dialog.open<WrapperType, DataProp<D>, ReturnType>(componentType, dialogData);\n }\n\n throwErr(err: Error, load?: Subject<any> | BehaviorSubject<any>): Observable<any> {\n if (load) {\n load.next(false);\n }\n throw err;\n }\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-details-list',\n templateUrl: './dr-details-list.component.html',\n styleUrls: ['./dr-details-list.component.scss'],\n animations: [\n trigger('expansionIndicatorList', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ]\n})\n\nexport class DrDetailsListComponent implements OnDestroy {\n\n private destroy$ = new Subject<void>();\n public list: string[] = [];\n\n @Input() title = 'Show details';\n @Input() set items(val: string[] | Observable<string[]>) {\n if (!val) {\n return;\n }\n\n if (Array.isArray(val)) {\n this.list = val;\n } else {\n val.pipe(takeUntil(this.destroy$)).subscribe((res: string[]) => {\n this.list = res;\n });\n }\n };\n @Input() collapse = true;\n\n get state(): string {\n if (this.collapse) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor() {}\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { IFeedback } from \"./feedback\";\n\nexport const IMAGE_TYPES = ['image/png', 'image/jpeg', 'image/gif'];\n\nexport enum CHAT_MESSAGE_TYPE {\n TEXT = 'text',\n RICH_TEXT = 'rich-text',\n IMAGE = 'image',\n DOWNLOAD_FILE = 'download-file',\n MAILTO = 'mailto',\n EMBED = 'embed',\n INPUT = 'input',\n CODE = 'code',\n}\n\nexport enum ChatRole {\n USER = 'user',\n ASSISTANT = 'assistant',\n}\n\nexport interface IChatMessageRef {\n id: string\n seq: number\n}\n\ninterface IChatNewMessage {\n kind: CHAT_MESSAGE_TYPE\n role: ChatRole\n body: string\n}\n\nexport interface IChatMessageBase extends IChatMessageRef {\n kind: string | CHAT_MESSAGE_TYPE;\n reply: boolean;\n role: ChatRole;\n avatarUrl?: string;\n user?: any;\n subjectId?: string;\n}\n\nexport interface IChatTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.TEXT;\n text?: string;\n}\n\nexport interface IChatImageMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.IMAGE;\n url?: string;\n label?: string;\n}\nexport interface IChatDownloadFileMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.DOWNLOAD_FILE;\n url?: string;\n label?: string;\n}\n\nexport type IChatMessage = IChatMessageBase & IChatTextMessage & IChatImageMessage & IChatDownloadFileMessage;\n\n\nexport interface IChatMessageFileIconPreview {\n url: string;\n icon: string;\n}\n\nexport interface IChatMessageFileImagePreview {\n url: string;\n type: string;\n}\n\nexport type IChatMessageFile = IChatMessageFileIconPreview | IChatMessageFileImagePreview;\n\nexport class ChatMessage implements IChatMessageBase, IChatTextMessage, IChatImageMessage,\n IChatDownloadFileMessage {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n role: ChatRole;\n reply: boolean;\n text?: string;\n body?: any;\n url?: string;\n label?: string;\n parameters?: any;\n data?: any;\n avatarUrl?: string;\n user?: any;\n feedback?: IFeedback;\n subjectId?: string;\n\n constructor(obj: any) {\n this.id = obj?.id;\n this.subjectId = obj?.subjectId;\n this.feedback = obj?.feedback;\n this.kind = obj?.kind;\n this.seq = obj?.seq;\n this.role = obj?.role;\n this.reply = obj?.role !== ChatRole.USER;\n this.text = obj?.text || obj.body;\n this.url = obj?.url;\n this.label = obj?.label;\n this.body = obj?.body;\n this.parameters = obj?.parameters;\n this.avatarUrl = obj?.avatarUrl ?\n obj.avatarUrl :\n !obj?.role || obj?.role === ChatRole.ASSISTANT ? (document as any).staticFunc('/genius-ai.svg') : '';\n\n this.user = obj?.user;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IMAGE_TYPES } from '../../models/chat';\n\n@Component({\n selector: 'dr-chat-form',\n templateUrl: 'chat-form.component.html',\n styleUrls: ['./chat-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatFormComponent {\n\n _textareaInitialHeight = true;\n inputFocus = false;\n inputHover = false;\n\n droppedFiles: any[] = [];\n\n /**\n * Predefined message text\n *\n * @type {string}\n */\n @Input() message = '';\n\n /**\n * Message placeholder text\n *\n * @type {string}\n */\n @Input() messagePlaceholder = 'Type a message';\n\n /**\n * Show send button\n *\n * @type {boolean}\n */\n @Input() dropFiles = false;\n\n /**\n * File drop placeholder text\n *\n * @type {string}\n */\n @Input() dropFilePlaceholder = 'Drop file to send';\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n /**\n *\n * @type {EventEmitter<{ message: string, files: File[] }>}\n */\n @Output() send = new EventEmitter<{ message: string; files: File[] }>();\n @Output() abort = new EventEmitter<any>();\n\n /**\n * Emits when message input value has been changed\n *\n * @type {EventEmitter<string>}\n */\n\n @Output() inputChange = new EventEmitter<string>();\n\n @HostBinding('class.file-over') fileOver = false;\n\n constructor(protected cdr: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.dropFiles) {\n event.preventDefault();\n event.stopPropagation();\n\n this.fileOver = false;\n if (event.dataTransfer?.files) {\n for (const file of event.dataTransfer.files) {\n const res = file;\n\n if (IMAGE_TYPES.includes(file.type)) {\n const fr = new FileReader();\n fr.onload = (e: any) => {\n res.src = e.target.result;\n res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${ res.src })`);\n this.cdr.detectChanges();\n };\n\n fr.readAsDataURL(file);\n }\n this.droppedFiles.push(res);\n }\n }\n }\n }\n\n removeFile(file) {\n const index = this.droppedFiles.indexOf(file);\n if (index >= 0) {\n this.droppedFiles.splice(index, 1);\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = true;\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = false;\n }\n }\n\n sendMessage() {\n if (this.waitForReply) {\n return;\n }\n\n if (this.droppedFiles.length || String(this.message).trim().length) {\n this._textareaInitialHeight = true;\n this.send.emit({ message: this.message, files: this.droppedFiles });\n this.message = '';\n this.droppedFiles = [];\n this.cdr.markForCheck();\n }\n }\n\n abortMessage() {\n this.abort.emit();\n }\n\n onModelChange(value: string): void {\n this._textareaInitialHeight = false;\n this.inputChange.emit(value);\n }\n\n getTextAreaHeight(textAreaElement: HTMLTextAreaElement) {\n let height;\n if (this._textareaInitialHeight) {\n height = 50;\n } else {\n height = textAreaElement.scrollHeight + 2;\n }\n return `height: ${ height }px;`;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DrChatCustomMessageDirective } from './chat-custom-message.directive';\n\n/**\n * `DrCustomMessageService` is used to store instances of `DrChatCustomMessageDirective`s which\n * were provided in the chat component.\n */\n@Injectable()\nexport class DrChatCustomMessageService {\n protected readonly customMessages = new Map<string, DrChatCustomMessageDirective>();\n\n register(type: string, instance: DrChatCustomMessageDirective): void {\n this.customMessages.set(type, instance);\n }\n\n unregister(type: string): boolean {\n return this.customMessages.delete(type);\n }\n\n getInstance(type: string): DrChatCustomMessageDirective | undefined {\n return this.customMessages.get(type);\n }\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, HostBinding, Input, TemplateRef } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CHAT_MESSAGE_TYPE, IChatMessage } from '../../models/chat';\nimport { DrChatCustomMessageDirective } from './dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatCustomMessageService } from './dr-chat-message-custom/chat-custom-message.service';\n\n@Component({\n selector: 'dr-chat-message',\n templateUrl: 'chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n animations: [\n trigger('flyInOut', [\n state('in', style({ transform: 'translateX(0)' })),\n transition('void => *', [style({ transform: 'translateX(-100%)' }), animate(80)]),\n transition('* => void', [animate(80, style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageComponent {\n\n MESSAGE_TYPE = CHAT_MESSAGE_TYPE;\n\n @HostBinding('@flyInOut')\n get flyInOut() {\n return true;\n }\n\n @HostBinding('class.not-reply')\n get notReply() {\n return !this.reply;\n }\n\n /**\n * Determines if a message is a reply\n */\n @Input()\n @HostBinding('class.reply')\n get reply(): boolean {\n return this._reply;\n }\n\n set reply(value: boolean) {\n this._reply = !!value;\n }\n\n protected _reply = false;\n\n @Input() type: string;\n\n /**\n * Message\n *\n * @type {IChatMessage}\n */\n @Input() message: IChatMessage;\n\n /**\n * Data which will be set as custom message template context\n *\n * @type {any}\n */\n @Input() customMessageData: any;\n\n /**\n * User info for avatar\n */\n @Input() user: any;\n\n @ContentChild('drChatMessageActions') drChatMessageActions: TemplateRef<any>;\n\n public customMessage: boolean;\n\n constructor(private customMessageService: DrChatCustomMessageService) {\n }\n\n public getTemplate(): TemplateRef<any> {\n this.customMessage = true;\n const customMessage = this.getCustomMessage(this.type);\n return customMessage.templateRef;\n }\n\n public getTemplateContext(): { $implicit: any; isReply: boolean } {\n return { $implicit: this.customMessageData, isReply: this.reply };\n }\n\n protected getCustomMessage(type: string): DrChatCustomMessageDirective {\n const customMessageDirective = this.customMessageService.getInstance(type);\n\n if (!customMessageDirective) {\n throw new Error(\n `dr-chat: Can't find template for custom type '${ type }'. ` +\n `Make sure you provide it in the chat component with *drCustomMessage='${ type }'.`,\n );\n }\n\n return customMessageDirective;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnInit, Output,\n} from '@angular/core';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'dr-chat-suggestions',\n templateUrl: 'chat-suggestions.component.html',\n styleUrls: ['./chat-suggestions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatSuggestionsComponent implements OnInit {\n\n _nonHiddenValues: string[] = [];\n visibleValues: string[] = [];\n isSuggestedMenuOpen = false;\n @Input() values: string [] = [];\n @Input() fullScreen: boolean = false;\n @Input() buttonMode: boolean = false;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n\n get hiddenValues(): string[] {\n return JSON.parse(localStorage.getItem('aiChatSuggestions')) || [];\n }\n set hiddenValues(values) {\n localStorage.setItem('aiChatSuggestions', JSON.stringify(values));\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.filterValues();\n }\n\n onItemClick(item: string) {\n if (this.waitForReply) {\n return;\n }\n this.isSuggestedMenuOpen = false;\n this.suggestionSelect.emit(item);\n this.hiddenValues = [...this.hiddenValues, item];\n this.filterValues();\n }\n\n filterValues() {\n const hiddenValues = this.hiddenValues;\n this._nonHiddenValues = _.filter(this.values, val => !hiddenValues.includes(val));\n this.fillVisibleValues();\n }\n\n fillVisibleValues() {\n const maxItemsCount = this.fullScreen ? 6 : 4;\n const nonHiddenValues = _.clone(this._nonHiddenValues);\n this.visibleValues.length = 0;\n for (let i = 0; i < maxItemsCount; i++) {\n if (!nonHiddenValues.length) {\n break;\n }\n const randomIndex = Math.floor(Math.random() * nonHiddenValues.length);\n const item = nonHiddenValues.splice(randomIndex, 1)[0];\n this.visibleValues.push(item);\n }\n this.cdr.markForCheck();\n }\n\n clearHidden() {\n localStorage.setItem('aiChatSuggestions', null);\n this.filterValues();\n }\n\n toggleSuggestedMenu(): void {\n this.isSuggestedMenuOpen = !this.isSuggestedMenuOpen;\n if (this.isSuggestedMenuOpen) {\n this.fillVisibleValues();\n }\n this.cdr.markForCheck();\n }\n}\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ContentChild,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n OnDestroy,\n} from '@angular/core';\n\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatCustomMessageService } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\n\n@Component({\n selector: 'dr-chat',\n styleUrls: ['./chat.component.scss'],\n templateUrl: 'chat.component.html',\n providers: [DrChatCustomMessageService]\n})\nexport class DrChatComponent implements AfterViewInit, OnDestroy {\n\n private destroy$ = new Subject<void>();\n\n @Input() fullScreen: boolean;\n @Input() title: string;\n @Input() subtitle: string;\n @Input() showClearButton = true;\n @Input() noMessagesPlaceholder = 'No messages yet.';\n\n @Input() set contentUpdateSubject(value: Subject<any>) {\n if (value) {\n value.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateView();\n });\n }\n };\n\n /**\n * Scroll chat to the bottom of the list when a new message arrives\n */\n @Input()\n get scrollBottom(): boolean {\n return this._scrollBottom;\n }\n\n set scrollBottom(value: boolean) {\n this._scrollBottom = !!value;\n }\n\n protected _scrollBottom = true;\n\n @Input() suggestions: string[] = [];\n @Input() reopen: boolean;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @ViewChild('messagesContainer') messagesContainer: ElementRef;\n @ContentChildren(DrChatMessageComponent) messages: QueryList<DrChatMessageComponent>;\n @ContentChild(DrChatFormComponent) chatForm: DrChatFormComponent;\n @Output() clear: EventEmitter<any> = new EventEmitter<any>();\n @Output() close: EventEmitter<any> = new EventEmitter<any>();\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n @ViewChild(DrChatSuggestionsComponent) _chatSuggestions: DrChatSuggestionsComponent;\n\n public get messagesContainerWithScroll(): boolean {\n return this.messagesContainer && this.messagesContainer.nativeElement.scrollHeight > this.messagesContainer.nativeElement.offsetHeight;\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit() {\n this.messages.changes.subscribe(messages => {\n this.messages = messages;\n this.updateView();\n });\n\n this.updateView();\n }\n\n updateView() {\n if (this.scrollBottom) {\n this.scrollListBottom();\n }\n }\n\n scrollListBottom() {\n setTimeout(() => {\n if (this.messagesContainer) {\n const scrollToOptions: any = {\n top: this.messagesContainer.nativeElement.scrollHeight,\n };\n\n if (!this.reopen) {\n scrollToOptions.behavior = 'smooth';\n }\n\n this.messagesContainer.nativeElement.scrollTo(scrollToOptions);\n this.cdr.markForCheck();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onClearClick($event: any) {\n this.clear.emit($event);\n if (this._chatSuggestions) {\n this._chatSuggestions.clearHidden();\n }\n }\n\n hideSuggestions(): void {\n if (this._chatSuggestions.isSuggestedMenuOpen) {\n this._chatSuggestions.toggleSuggestedMenu();\n }\n }\n}\n","export enum DrAlertTheme {\n SUCCESS = 'success',\n ERROR = 'error',\n BOLD_ERROR = 'bold-error',\n WARNING = 'warning',\n INFO = 'info',\n};\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { DrAlertTheme } from './enums/dr-alert-theme.enum';\n\nconst ALERT_THEME_ICONS = {\n [DrAlertTheme.SUCCESS]: 'dr-icon-uploaded-success',\n [DrAlertTheme.BOLD_ERROR]: 'dr-icon-error',\n [DrAlertTheme.ERROR]: 'dr-icon-error',\n [DrAlertTheme.WARNING]: 'dr-icon-warning',\n [DrAlertTheme.INFO]: 'dr-icon-info',\n};\n\n@Component({\n selector: 'dr-alert',\n templateUrl: './dr-alert.component.html',\n styleUrls: ['./dr-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAlertComponent {\n @Input() theme: DrAlertTheme = DrAlertTheme.INFO;\n @Input() customIconClass: string;\n @Input() text: string;\n\n @HostBinding('class')\n get elementClass(): string {\n return `dr-alert dr-alert--${ this.theme }`;\n }\n\n public get themeIconClass(): string {\n return this.customIconClass || ALERT_THEME_ICONS[this.theme];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TreeviewSelection } from './treeview-item';\n\n@Injectable()\nexport abstract class TreeviewI18n {\n abstract getText(selection: TreeviewSelection): string;\n abstract getAllCheckboxText(): string;\n abstract getFilterPlaceholder(): string;\n abstract getFilterNoItemsFoundText(): string;\n abstract getTooltipCollapseExpandText(isCollapse: boolean): string;\n}\n\n@Injectable()\nexport class DefaultTreeviewI18n extends TreeviewI18n {\n getText(selection: TreeviewSelection): string {\n if (selection.uncheckedItems.length === 0) {\n if (selection.checkedItems.length > 0) {\n return this.getAllCheckboxText();\n } else {\n return '';\n }\n }\n\n switch (selection.checkedItems.length) {\n case 0:\n return 'Select options';\n case 1:\n return selection.checkedItems[0].text;\n default:\n return `${selection.checkedItems.length} options selected`;\n }\n }\n\n getAllCheckboxText(): string {\n return 'All';\n }\n\n getFilterPlaceholder(): string {\n return 'Filter';\n }\n\n getFilterNoItemsFoundText(): string {\n return 'No items found';\n }\n\n getTooltipCollapseExpandText(isCollapse: boolean): string {\n return isCollapse ? 'Expand' : 'Collapse';\n }\n}\n","import { concat, isNil, pull } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\nexport const TreeviewHelper = {\n findItem,\n findItemInList,\n findParent,\n removeItem,\n concatSelection\n};\n\nfunction findItem(root: TreeviewItem, value: any): TreeviewItem {\n if (isNil(root)) {\n return undefined;\n }\n\n if (root.value === value) {\n return root;\n }\n\n if (root.children) {\n for (const child of root.children) {\n const foundItem = findItem(child, value);\n if (foundItem) {\n return foundItem;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findItemInList(list: TreeviewItem[], value: any): TreeviewItem {\n if (isNil(list)) {\n return undefined;\n }\n\n for (const item of list) {\n const foundItem = findItem(item, value);\n if (foundItem) {\n return foundItem;\n }\n }\n\n return undefined;\n}\n\nfunction findParent(root: TreeviewItem, item: TreeviewItem): TreeviewItem {\n if (isNil(root) || isNil(root.children)) {\n return undefined;\n }\n\n for (const child of root.children) {\n if (child === item) {\n return root;\n } else {\n const parent = findParent(child, item);\n if (parent) {\n return parent;\n }\n }\n }\n\n return undefined;\n}\n\nfunction removeItem(root: TreeviewItem, item: TreeviewItem): boolean {\n const parent = findParent(root, item);\n if (parent) {\n pull(parent.children, item);\n if (parent.children.length === 0) {\n parent.children = undefined;\n } else {\n parent.correctChecked();\n }\n return true;\n }\n\n return false;\n}\n\nfunction concatSelection(items: TreeviewItem[], checked: TreeviewItem[], unchecked: TreeviewItem[]): { [k: string]: TreeviewItem[] } {\n let checkedItems = [...checked];\n let uncheckedItems = [...unchecked];\n for (const item of items) {\n const selection = item.getSelection();\n checkedItems = concat(checkedItems, selection.checkedItems);\n uncheckedItems = concat(uncheckedItems, selection.uncheckedItems);\n }\n return {\n checked: checkedItems,\n unchecked: uncheckedItems\n };\n}\n","import { isBoolean, isNil, isString } from 'lodash';\nimport { TreeviewHelper } from '../helpers/treeview-helper';\n\nexport interface TreeviewSelection {\n checkedItems: TreeviewItem[];\n uncheckedItems: TreeviewItem[];\n}\n\nexport interface TreeItem {\n text: string;\n value: any;\n disabled?: boolean;\n checked?: boolean;\n collapsed?: boolean;\n children?: TreeItem[];\n}\n\nexport class TreeviewItem {\n private internalDisabled = false;\n private internalChecked = true;\n private internalCollapsed = false;\n private internalChildren: TreeviewItem[];\n text: string;\n value: any;\n\n constructor(item: TreeItem, autoCorrectChecked = false) {\n if (isNil(item)) {\n throw new Error('Item must be defined');\n }\n if (isString(item.text)) {\n this.text = item.text;\n } else {\n throw new Error('A text of item must be string object');\n }\n this.value = item.value;\n if (isBoolean(item.checked)) {\n this.checked = item.checked;\n }\n if (isBoolean(item.collapsed)) {\n this.collapsed = item.collapsed;\n }\n if (isBoolean(item.disabled)) {\n this.disabled = item.disabled;\n }\n if (!isNil(item.children) && item.children.length > 0) {\n this.children = item.children.map(child => {\n if (this.disabled === true) {\n child.disabled = true;\n }\n\n return new TreeviewItem(child);\n });\n }\n\n if (autoCorrectChecked) {\n this.correctChecked();\n }\n }\n\n get checked(): boolean {\n return this.internalChecked;\n }\n\n set checked(value: boolean) {\n if (!this.internalDisabled) {\n if (this.internalChecked !== value) {\n this.internalChecked = value;\n }\n }\n }\n\n get indeterminate(): boolean {\n return this.checked === undefined;\n }\n\n setCheckedRecursive(value: boolean): void {\n if (!this.internalDisabled) {\n this.internalChecked = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.setCheckedRecursive(value));\n }\n }\n }\n\n get disabled(): boolean {\n return this.internalDisabled;\n }\n\n set disabled(value: boolean) {\n if (this.internalDisabled !== value) {\n this.internalDisabled = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.disabled = value);\n }\n }\n }\n\n get collapsed(): boolean {\n return this.internalCollapsed;\n }\n\n set collapsed(value: boolean) {\n if (this.internalCollapsed !== value) {\n this.internalCollapsed = value;\n }\n }\n\n setCollapsedRecursive(value: boolean): void {\n this.internalCollapsed = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.setCollapsedRecursive(value));\n }\n }\n\n get children(): TreeviewItem[] {\n return this.internalChildren;\n }\n\n set children(value: TreeviewItem[]) {\n if (this.internalChildren !== value) {\n if (!isNil(value) && value.length === 0) {\n throw new Error('Children must be not an empty array');\n }\n this.internalChildren = value;\n if (!isNil(this.internalChildren)) {\n let checked = null;\n this.internalChildren.forEach(child => {\n if (checked === null) {\n checked = child.checked;\n } else {\n if (child.checked !== checked) {\n checked = undefined;\n return;\n }\n }\n });\n this.internalChecked = checked;\n }\n }\n }\n\n getSelection(): TreeviewSelection {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (isNil(this.internalChildren)) {\n if (this.internalChecked) {\n checkedItems.push(this);\n } else {\n uncheckedItems.push(this);\n }\n } else {\n const selection = TreeviewHelper.concatSelection(this.internalChildren, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n return {\n checkedItems,\n uncheckedItems\n };\n }\n\n correctChecked(): void {\n this.internalChecked = this.getCorrectChecked();\n }\n\n private getCorrectChecked(): boolean {\n let checked: boolean = null;\n if (!isNil(this.internalChildren)) {\n for (const child of this.internalChildren) {\n child.internalChecked = child.getCorrectChecked();\n if (checked === null) {\n checked = child.internalChecked;\n } else if (checked !== child.internalChecked) {\n checked = undefined;\n break;\n }\n }\n } else {\n checked = this.checked;\n }\n\n return checked;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TreeviewConfig {\n hasAllCheckBox = true;\n hasFilter = false;\n hasCollapseExpand = false;\n decoupleChildFromParent = false;\n maxHeight = 500;\n\n get hasDivider(): boolean {\n return this.hasFilter || this.hasAllCheckBox || this.hasCollapseExpand;\n }\n\n public static create(fields?: {\n hasAllCheckBox?: boolean,\n hasFilter?: boolean,\n hasCollapseExpand?: boolean,\n decoupleChildFromParent?: boolean\n maxHeight?: number,\n }): TreeviewConfig {\n const config = new TreeviewConfig();\n Object.assign(config, fields);\n return config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\nimport { TreeviewComponent } from '../components/treeview/treeview.component';\n\n@Injectable()\nexport abstract class TreeviewEventParser {\n abstract getSelectedChange(component: TreeviewComponent): any[];\n}\n\n@Injectable()\nexport class DefaultTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const checkedItems = component.selection.checkedItems;\n if (!isNil(checkedItems)) {\n return checkedItems.map(item => item.value);\n }\n\n return [];\n }\n}\n\nexport interface DownlineTreeviewItem {\n item: TreeviewItem;\n parent: DownlineTreeviewItem;\n}\n\n@Injectable()\nexport class DownlineTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const items = component.items;\n if (!isNil(items)) {\n let result: DownlineTreeviewItem[] = [];\n items.forEach(item => {\n const links = this.getLinks(item, null);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n return [];\n }\n\n private getLinks(item: TreeviewItem, parent: DownlineTreeviewItem): DownlineTreeviewItem[] {\n if (!isNil(item.children)) {\n const link = {\n item,\n parent\n };\n let result: DownlineTreeviewItem[] = [];\n item.children.forEach(child => {\n const links = this.getLinks(child, link);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n if (item.checked) {\n return [{\n item,\n parent\n }];\n }\n\n return null;\n }\n}\n\n@Injectable()\nexport class OrderDownlineTreeviewEventParser extends TreeviewEventParser {\n private currentDownlines: DownlineTreeviewItem[] = [];\n private parser = new DownlineTreeviewEventParser();\n\n getSelectedChange(component: TreeviewComponent): any[] {\n const newDownlines: DownlineTreeviewItem[] = this.parser.getSelectedChange(component);\n if (this.currentDownlines.length === 0) {\n this.currentDownlines = newDownlines;\n } else {\n const intersectDownlines: DownlineTreeviewItem[] = [];\n this.currentDownlines.forEach(downline => {\n let foundIndex = -1;\n const length = newDownlines.length;\n for (let i = 0; i < length; i++) {\n if (downline.item.value === newDownlines[i].item.value) {\n foundIndex = i;\n break;\n }\n }\n\n if (foundIndex !== -1) {\n intersectDownlines.push(newDownlines[foundIndex]);\n newDownlines.splice(foundIndex, 1);\n }\n });\n\n this.currentDownlines = intersectDownlines.concat(newDownlines);\n }\n\n return this.currentDownlines;\n }\n}\n","import { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges, TemplateRef, OnInit } from '@angular/core';\nimport { isNil, includes } from 'lodash';\nimport { TreeviewI18n } from '../../models/treeview-i18n';\nimport { TreeviewItem, TreeviewSelection } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewHeaderTemplateContext } from '../../models/treeview-header-template-context';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\nimport { TreeviewHelper } from '../../helpers/treeview-helper';\nimport { TreeviewEventParser } from '../../helpers/treeview-event-parser';\n\nclass FilterTreeviewItem extends TreeviewItem {\n private readonly refItem: TreeviewItem;\n constructor(item: TreeviewItem) {\n super({\n text: item.text,\n value: item.value,\n disabled: item.disabled,\n checked: item.checked,\n collapsed: item.collapsed,\n children: item.children\n });\n this.refItem = item;\n }\n\n updateRefChecked(): void {\n this.children.forEach(child => {\n if (child instanceof FilterTreeviewItem) {\n child.updateRefChecked();\n }\n });\n\n let refChecked = this.checked;\n if (refChecked) {\n for (const refChild of this.refItem.children) {\n if (!refChild.checked) {\n refChecked = false;\n break;\n }\n }\n }\n this.refItem.checked = refChecked;\n }\n}\n\n@Component({\n selector: 'ngx-treeview',\n templateUrl: './treeview.component.html',\n styleUrls: ['./treeview.component.scss']\n})\nexport class TreeviewComponent implements OnChanges, OnInit {\n @Input() headerTemplate: TemplateRef<TreeviewHeaderTemplateContext>;\n @Input() itemTemplate: TemplateRef<TreeviewItemTemplateContext>;\n @Input() items: TreeviewItem[];\n @Input() config: TreeviewConfig;\n @Output() selectedChange = new EventEmitter<any[]>();\n @Output() filterChange = new EventEmitter<string>();\n headerTemplateContext: TreeviewHeaderTemplateContext;\n allItem: TreeviewItem;\n filterText = '';\n filterItems: TreeviewItem[];\n selection: TreeviewSelection;\n\n constructor(\n public i18n: TreeviewI18n,\n private defaultConfig: TreeviewConfig,\n private eventParser: TreeviewEventParser\n ) {\n this.config = this.defaultConfig;\n this.allItem = new TreeviewItem({ text: 'All', value: undefined });\n }\n\n get hasFilterItems(): boolean {\n return !isNil(this.filterItems) && this.filterItems.length > 0;\n }\n\n get maxHeight(): string {\n return `${this.config.maxHeight}`;\n }\n\n ngOnInit(): void {\n this.createHeaderTemplateContext();\n this.generateSelection();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const itemsSimpleChange = changes.items;\n if (!isNil(itemsSimpleChange) && !isNil(this.items)) {\n this.updateFilterItems();\n this.updateCollapsedOfAll();\n this.raiseSelectedChange();\n }\n }\n\n onAllCollapseExpand(): void {\n this.allItem.collapsed = !this.allItem.collapsed;\n this.filterItems.forEach(item => item.setCollapsedRecursive(this.allItem.collapsed));\n }\n\n onFilterTextChange(text: string): void {\n this.filterText = text;\n this.filterChange.emit(text);\n this.updateFilterItems();\n }\n\n onAllCheckedChange(): void {\n const checked = this.allItem.checked;\n this.filterItems.forEach(item => {\n item.setCheckedRecursive(checked);\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n });\n\n this.raiseSelectedChange();\n }\n\n onItemCheckedChange(item: TreeviewItem, checked: boolean): void {\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n\n this.updateCheckedOfAll();\n this.raiseSelectedChange();\n }\n\n raiseSelectedChange(): void {\n this.generateSelection();\n const values = this.eventParser.getSelectedChange(this);\n setTimeout(() => {\n this.selectedChange.emit(values);\n });\n }\n\n private createHeaderTemplateContext(): void {\n this.headerTemplateContext = {\n config: this.config,\n item: this.allItem,\n onCheckedChange: () => this.onAllCheckedChange(),\n onCollapseExpand: () => this.onAllCollapseExpand(),\n onFilterTextChange: (text) => this.onFilterTextChange(text)\n };\n }\n\n private generateSelection(): void {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (!isNil(this.items)) {\n const selection = TreeviewHelper.concatSelection(this.items, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n this.selection = {\n checkedItems,\n uncheckedItems\n };\n }\n\n private updateFilterItems(): void {\n if (this.filterText !== '') {\n const filterItems: TreeviewItem[] = [];\n const filterText = this.filterText.toLowerCase();\n this.items.forEach(item => {\n const newItem = this.filterItem(item, filterText);\n if (!isNil(newItem)) {\n filterItems.push(newItem);\n }\n });\n this.filterItems = filterItems;\n } else {\n this.filterItems = this.items;\n }\n\n this.updateCheckedOfAll();\n }\n\n private filterItem(item: TreeviewItem, filterText: string): TreeviewItem {\n const isMatch = includes(item.text.toLowerCase(), filterText);\n if (isMatch) {\n return item;\n } else {\n if (!isNil(item.children)) {\n const children: TreeviewItem[] = [];\n item.children.forEach(child => {\n const newChild = this.filterItem(child, filterText);\n if (!isNil(newChild)) {\n children.push(newChild);\n }\n });\n if (children.length > 0) {\n const newItem = new FilterTreeviewItem(item);\n newItem.collapsed = false;\n newItem.children = children;\n return newItem;\n }\n }\n }\n\n return undefined;\n }\n\n private updateCheckedOfAll(): void {\n let itemChecked: boolean = null;\n for (const filterItem of this.filterItems) {\n if (itemChecked === null) {\n itemChecked = filterItem.checked;\n } else if (itemChecked !== filterItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n this.allItem.checked = itemChecked;\n }\n\n private updateCollapsedOfAll(): void {\n let hasItemExpanded = false;\n for (const filterItem of this.filterItems) {\n if (!filterItem.collapsed) {\n hasItemExpanded = true;\n break;\n }\n }\n\n this.allItem.collapsed = !hasItemExpanded;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\n@Pipe({\n name: 'ngxTreeview'\n})\nexport class TreeviewPipe implements PipeTransform {\n transform(objects: any[], textField: string): TreeviewItem[] {\n if (isNil(objects)) {\n return undefined;\n }\n\n return objects.map(object => new TreeviewItem({ text: object[textField], value: object }));\n }\n}\n","export enum TooltipPosition {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n}\n","import { ITag, ITagForServer, TagsConfigSubType, TagTypes } from '../../models/serverTags';\n\nexport enum Scenario {\n ACTUALS = 'Actuals',\n FORECAST = 'Forecast',\n BUDGET = 'Budget',\n NONE = 'None',\n}\n\nexport interface IScenarioTag extends ITag {\n scenarioData: IScenario;\n}\n\nexport interface IScenarioCommon {\n toggle: boolean;\n name: string;\n description: string;\n acceptableSubTags?: TagsConfigSubType[];\n turnOffDateTags?: boolean;\n}\n\nexport interface IScenario extends Omit<IScenarioCommon, 'name' | 'description'> {\n name?: string;\n description?: string;\n hidden?: boolean;\n}\n\nexport interface IScenarioTagUi extends IScenarioCommon {\n selectedTagSubType: TagsConfigSubType;\n type: TagTypes;\n subTags?: IScenarioSubTag[];\n}\n\nexport interface IScenarioSubTag {\n name: string;\n subType: TagsConfigSubType;\n hidden?: boolean;\n}\n\nexport type TScenarioTagConfigData = { [key in TagsConfigSubType]?: IScenario };\nexport type TScenarioTagData<T> = { [key in Scenario]?: T };\nexport type TScenarioDataChanged = { scenario: Scenario; tags?: ITagForServer[]; tagsConfig?: ITag[] };\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[ngModelDebounceChange]'\n})\nexport class DrModelDebounceChangeDirective implements OnDestroy, OnInit {\n private subscription: Subscription;\n\n @Input() debounce = 200;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {\n }\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges.pipe(\n skip(1),\n debounceTime(this.debounce),\n distinctUntilChanged()\n ).subscribe(value => this.ngModelDebounceChange.emit(value));\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","export enum BadgeStatus {\n INFO = 'info',\n ERROR = 'error',\n WARNING = 'warning',\n SUCCESS = 'success',\n REGULAR = 'regular',\n PROGRESS = 'progress',\n DOTTED = 'dotted',\n}\n","export enum FeedbackSentiment {\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n};\n\nexport interface IFeedback {\n\tsubjectId: string;\n sentiment: FeedbackSentiment;\n\ttext?: string;\n tags?: Array<string>;\n}\n","import { TagsConfigSubType } from '../../models/serverTags';\nimport { Scenario, TScenarioTagConfigData, TScenarioTagData } from '../interfaces/scenario';\n\nexport const allDateTags = {\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.DAY]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.WEEK]: {\n name: 'Date',\n toggle: false,\n }\n};\n\nexport function getScenarioTagDataConfig(isMultipleDimension: boolean, isForecastMultipleDimension: boolean): TScenarioTagData<TScenarioTagConfigData> {\n return {\n [Scenario.ACTUALS]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.BUDGET]: {\n [TagsConfigSubType.BUDGET_CYCLE]: {\n toggle: true,\n acceptableSubTags: [TagsConfigSubType.YEAR],\n hidden: !isMultipleDimension,\n },\n [TagsConfigSubType.PLAN]: {\n toggle: false,\n turnOffDateTags: true,\n hidden: isMultipleDimension,\n },\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.FORECAST]: {\n [TagsConfigSubType.FORECAST_NEW]: {\n toggle: true,\n name: isForecastMultipleDimension ? 'Scenario cycle' : 'Date',\n },\n [TagsConfigSubType.FORECAST_CYCLE]: {\n toggle: true,\n name: 'Planning scenario',\n acceptableSubTags: [TagsConfigSubType.FORECAST_NEW],\n hidden: !isForecastMultipleDimension,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.NONE]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: true,\n },\n },\n };\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../../models/serverTags';\nimport { IScenario, IScenarioSubTag, IScenarioTag, IScenarioTagUi, Scenario } from '../interfaces/scenario';\nimport {\n cloneDeep as _cloneDeep,\n filter as _filter,\n find as _find,\n forEach as _forEach,\n orderBy as _orderBy,\n indexOf as _indexOf,\n reduce as _reduce,\n some as _some,\n map as _map,\n includes as _includes,\n} from 'lodash';\nimport { getScenarioTagDataConfig } from '../consts/scenario-tags-config';\n\n@Injectable()\nexport class ScenarioService {\n private DEFAULT_FORECAST_DATE_TAG = 'Month';\n\n private wholeTagsConfig: ITag[];\n private currentTagsConfig: ITag[];\n private isMultipleDimension: boolean;\n private isForecastMultipleDimension: boolean;\n\n public get scenarios(): Scenario[] {\n return _orderBy(Object.values(Scenario), (scenario) => scenario === Scenario.NONE ? 1 : 0);\n }\n\n private get areExistingTagsConfig(): boolean {\n return !!this.currentTagsConfig;\n }\n\n public initScenarioTags(wholeTagsConfig: ITag[], currentTagsConfig: ITag[], isMultipleDimension: boolean, isForecastMultipleDimension: boolean): void {\n if (!wholeTagsConfig?.length) return;\n\n this.wholeTagsConfig = _cloneDeep(wholeTagsConfig);\n this.currentTagsConfig = currentTagsConfig;\n this.isMultipleDimension = isMultipleDimension;\n this.isForecastMultipleDimension = isForecastMultipleDimension;\n }\n\n public getTagsConfigByScenarioTags(scenarioTags: IScenarioTagUi[], tagsConfig: ITag[]): ITag[] {\n const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) =>\n _some(scenarioTags, (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type));\n\n return this.sortScenarioTags(scenarioTagsConfig);\n }\n\n public getScenarioTagsByScenario(scenario: Scenario) {\n const scenarioTagsConfig: IScenarioTag[] = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);\n const scenarioTagsUi: IScenarioTagUi[] = [];\n\n _forEach(scenarioTagsConfig, (scenarioTag: IScenarioTag) => {\n const isTagWithSubTags = scenarioTag.type === TagTypes.DATE;\n const tagWithSubTags = isTagWithSubTags && _find(scenarioTagsUi, { type: scenarioTag.type });\n\n const tag: IScenarioTagUi = tagWithSubTags || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateScenarioSubTags(tag, scenarioTag);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return;\n scenarioTagsUi.push(tag);\n });\n\n if (this.areExistingTagsConfig) {\n this.initExistingTagsConfig(scenario, scenarioTagsUi);\n }\n\n const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });\n if (isTagNotSupportingDates) {\n this.turnOffDateTag(scenarioTagsUi);\n }\n\n const tagWithSpecificDateTags: IScenarioTagUi = _find(\n scenarioTagsUi,\n (tag) => tag.toggle && !!tag.acceptableSubTags?.length,\n );\n if (tagWithSpecificDateTags) {\n this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);\n }\n\n return this.sortScenarioTags(scenarioTagsUi);\n }\n\n public tagNotSupportingDatesHandler<T extends IScenarioTagUi>(tag: T, tagNotSupportingDates: T, dateTag: T): void {\n if (!tagNotSupportingDates || !tag.toggle) return;\n\n if (tag.type === TagTypes.DATE) {\n tagNotSupportingDates.toggle = false;\n }\n\n if (tag === tagNotSupportingDates) {\n if (dateTag) {\n dateTag.toggle = false;\n }\n }\n }\n\n public tagAcceptableSubTagsHandler<T extends IScenarioTagUi>(tag: T, dateTag: T): void {\n if (!tag.acceptableSubTags?.length) return;\n\n if (!dateTag) return;\n\n dateTag.subTags = _map(dateTag.subTags, (subTag) => {\n subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);\n return subTag;\n });\n\n dateTag.selectedTagSubType = tag.acceptableSubTags[0];\n }\n\n public sortScenarioTags(scenarioTagsUi: any[]): any[] {\n return _orderBy(scenarioTagsUi, [(tag) => (tag.type === TagTypes.DATE ? 0 : 1), (tag) => tag.name === 'File Status']);\n }\n\n public static sortedSubTags(tag: IScenarioTagUi): IScenarioSubTag[] {\n const SUB_TAGS_ORDER = [\n TagsConfigSubType.DAY,\n TagsConfigSubType.WEEK,\n TagsConfigSubType.MONTH,\n TagsConfigSubType.QUARTER,\n TagsConfigSubType.YEAR,\n ];\n return _orderBy(tag.subTags, (subTag) => _indexOf(SUB_TAGS_ORDER, subTag.subType));\n }\n\n private initExistingTagsConfig(scenario: Scenario, scenarioTagsUi: IScenarioTagUi[]) {\n _forEach(this.currentTagsConfig, (tagConfig) => {\n const tagSubType = tagConfig?.options?.sub_type;\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);\n if (!scenarioTagDataConfig || !scenarioTagDataConfig[scenario] || !scenarioTagDataConfig[scenario][tagSubType]) {\n return;\n }\n\n const scenarioTagUi = tagConfig.type === TagTypes.DATE\n ? _find(scenarioTagsUi, { type: tagConfig.type })\n : _find(scenarioTagsUi, { selectedTagSubType: tagSubType });\n\n if (scenarioTagUi) {\n scenarioTagUi.toggle = true;\n scenarioTagUi.selectedTagSubType = tagSubType;\n }\n });\n }\n\n private prepareScenarioTag(\n scenarioTagsConfig: IScenarioTag[],\n scenarioTag: IScenarioTag,\n scenario: Scenario,\n isDateTag: boolean,\n ): IScenarioTagUi {\n const toggleStatus = isDateTag\n ? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)\n : scenarioTag.scenarioData.toggle;\n\n const selectedTagSubType = isDateTag\n ? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)\n : scenarioTag.options.sub_type;\n\n const tag: IScenarioTagUi = {\n toggle: this.areExistingTagsConfig ? false : toggleStatus,\n name: scenarioTag.scenarioData.name || scenarioTag.name,\n description: scenarioTag.scenarioData.description || scenarioTag.description,\n type: scenarioTag.type,\n selectedTagSubType,\n };\n\n if (scenarioTag.scenarioData.turnOffDateTags) {\n tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;\n }\n\n if (scenarioTag.scenarioData.acceptableSubTags) {\n tag.acceptableSubTags = scenarioTag.scenarioData.acceptableSubTags;\n }\n\n return tag;\n }\n\n private updateScenarioSubTags(tag: IScenarioTagUi, scenarioTag: IScenarioTag): void {\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n const tagSubType = scenarioTag.options.sub_type;\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,\n });\n }\n\n private turnOffDateTag(scenarioTags: IScenarioTagUi[]): void {\n const dateTag = _find(scenarioTags, { type: TagTypes.DATE });\n\n if (!dateTag) return;\n dateTag.toggle = false;\n }\n\n private hideNotAvailableTags(tagWithSpecificDateTags: IScenarioTagUi, scenarioTags: IScenarioTagUi[]): void {\n const subTags = _find(scenarioTags, { type: TagTypes.DATE })?.subTags;\n if (!subTags.length) return;\n\n _forEach(scenarioTags, (tag) => {\n if (!tag.acceptableSubTags?.length) return;\n if (tag !== tagWithSpecificDateTags) {\n tag.toggle = false;\n }\n });\n\n _forEach(subTags, (subTag) => {\n subTag.hidden = !tagWithSpecificDateTags.acceptableSubTags.includes(subTag.subType);\n });\n }\n\n private getScenarioSelectedDateTag(scenario: Scenario, dateTags: IScenarioTag[]): TagsConfigSubType {\n const monthSubType = _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.MONTH)?.options?.sub_type;\n\n const scenarioSelectedDateTag = {\n [Scenario.ACTUALS]: () => monthSubType,\n [Scenario.BUDGET]: () => _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.YEAR)?.options?.sub_type,\n [Scenario.FORECAST]: () => _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)?.options?.sub_type,\n [Scenario.NONE]: () => monthSubType,\n }\n\n if (!scenarioSelectedDateTag[scenario]) return;\n return scenarioSelectedDateTag[scenario]();\n }\n\n private getScenarioTagsConfig(scenario: Scenario, tagsConfig: ITag[]): IScenarioTag[] {\n return _reduce(\n tagsConfig,\n (acc: IScenarioTag[], tagConfig: ITag) => {\n const tagSubType = tagConfig?.options?.sub_type;\n\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);\n const scenarioTagConfig: IScenario =\n scenarioTagDataConfig && scenarioTagDataConfig[scenario] ? scenarioTagDataConfig[scenario][tagSubType] : null;\n if (!scenarioTagConfig || scenarioTagConfig.hidden) return acc;\n\n const clonedTagConfig = _cloneDeep(tagConfig);\n const scenarioTag: IScenarioTag = { ...clonedTagConfig, scenarioData: scenarioTagConfig };\n\n acc.push(scenarioTag);\n return acc;\n },\n [],\n );\n }\n}\n","import * as moment from 'moment';\nimport { DateTags, TimeframeOption } from '../models/datePicker';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\n *\n * @param format - date format string. Examples: MM/DD/YYYY, Q/YYYY\n */\n public static getTimeframeByDateFormat(format: string): TimeframeOption {\n const defaultFrame = TimeframeOption.DAY;\n\n if (!format) {\n return defaultFrame;\n }\n\n const lowerCaseFormat = format.toLowerCase();\n switch (true) {\n case lowerCaseFormat.includes('q'):\n return TimeframeOption.QUARTER;\n case lowerCaseFormat.includes('d'):\n return TimeframeOption.DAY;\n case lowerCaseFormat.includes('w'):\n return TimeframeOption.WEEK;\n case lowerCaseFormat.includes('m'):\n return TimeframeOption.MONTH;\n case lowerCaseFormat.includes('y'):\n return TimeframeOption.YEAR;\n default:\n return defaultFrame;\n }\n }\n\n public static getDateByTag(tag: string) :any {\n const todayDate = moment().utc().endOf('day');\n switch (tag) {\n case DateTags.TODAY:\n return todayDate;\n case DateTags.YESTERDAY:\n todayDate.subtract(1, 'days');\n return todayDate;\n case DateTags.THIS_MONTH:\n todayDate.endOf('month');\n return todayDate;\n case DateTags.PREV_MONTH:\n todayDate.subtract(1, 'months').endOf('month');\n return todayDate;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DateFromats, DateTags, IDatePickerFormatConfig, TimeframeOption, TTimeframeOption } from '../../../models/datePicker';\nimport { DrSharedUtils } from '../../../utils/dr-shared-utils';\nimport * as _ from 'lodash';\n\n// @ts-ignore\nconst moment = require('moment');\n\n@Injectable()\nexport class DrDatePickerService {\n isTimeframeSelectionEnabled = false;\n timeframe: TTimeframeOption = TimeframeOption.DAY;\n format$ = new BehaviorSubject<string>(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n updatedQuarter$ = new Subject<Moment>();\n updatedDateAndClose$ = new Subject<Moment>();\n datePickerInstance: MatDatepicker<any>;\n isUsingDateTagPresets: boolean;\n presetTag$ = new BehaviorSubject<string>('');\n onSameDaySelectedInCalendar$ = new Subject<Moment>();\n keepPresetTag = false;\n isValueUpdating = false;\n availableTimeframes = [\n TimeframeOption.DAY,\n TimeframeOption.WEEK,\n TimeframeOption.MONTH,\n TimeframeOption.QUARTER,\n TimeframeOption.YEAR\n ];\n\n public formatConfig: IDatePickerFormatConfig = {\n day: DateFromats.MAT_DEFAULT_DATE_FORMAT,\n month: DateFromats.MONTH_YEAR_FORMAT,\n year: DateFromats.YEAR_FORMAT,\n quarter: DateFromats.QUARTER_FORMAT,\n week: DateFromats.WEEK_FORMAT\n };\n public calendarInstance: MatCalendar<any>;\n\n public fiscalYearMonthsModifier = 0;\n\n getDisplayPrefix() {\n const formatCached = this.format$.getValue();\n switch (true) {\n case formatCached?.includes('Q'):\n return 'Q';\n case formatCached?.includes('W'):\n return 'W';\n default:\n return '';\n }\n }\n\n getTimeframe(format: string) {\n return DrSharedUtils.getTimeframeByDateFormat(format);\n }\n\n getConfiguredFormat(timeframe: TTimeframeOption) {\n return this.formatConfig[timeframe];\n }\n\n updateTimeframeAndFormat(format: string): void {\n const normalizedFormat = this.normalizeValue(format || this.format$.getValue());\n this.timeframe = this.getTimeframe(normalizedFormat);\n this.format$.next(this.getConfiguredFormat(this.timeframe));\n }\n\n normalizeValue(value) {\n return value.replace(/d/g, 'D');\n }\n\n /**\n * Get quarter number for date according to fiscal year\n *\n * @param date\n */\n public getQuarterAccordingToFiscalYear(date: Moment): number {\n let fiscalMonth = this.fiscalYearMonthsModifier;\n const dateMonth = date.month();\n if (dateMonth < fiscalMonth) {\n fiscalMonth -= 12;\n }\n return Math.trunc((date.month() - fiscalMonth) / 3) + 1;\n }\n\n /**\n * Sets date to end of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setEndOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + quarterNumber * 3 - 1, 'M')\n .endOf('month');\n }\n\n /**\n * Sets date to start of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setStartOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + (quarterNumber - 1) * 3, 'M');\n }\n\n /**\n * Sets date to end of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setEndOfCurrentQuarter(date: Moment): void {\n this.setEndOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * Sets date to start of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setStartOfCurrentQuarter(date: Moment): void {\n this.setStartOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * If date selection on this timeframe depends on Fiscal Year\n *\n * @param timeframe\n */\n public isTimeframeDependingOnFY(timeframe: TimeframeOption) {\n return _.includes([TimeframeOption.QUARTER, TimeframeOption.YEAR], timeframe);\n }\n\n /**\n * Subtract from date fiscal year shift months count\n *\n * @param date\n */\n public subtractFiscalYearMonthsFromDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date, true);\n }\n\n /**\n * Add to date fiscal year shift months count\n *\n * @param date\n */\n public addFiscalYearMonthsToDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date);\n }\n\n /**\n * Add or subtract depending on isRevert paremeter Fiscal year month shift\n *\n * @param date\n * @param isSubtract\n */\n private getDateModifiedByFiscalMonths(date: Moment, isSubtract = false): Moment {\n return date ? _.cloneDeep(date)[isSubtract ? 'subtract' : 'add'](this.fiscalYearMonthsModifier, 'month') : date;\n }\n\n public updateDatePickerByPreset(tag: string, calender: any) {\n this.keepPresetTag = true;\n let date = null;\n if (tag) {\n date = DrSharedUtils.getDateByTag(tag);\n switch (tag) {\n case DateTags.TODAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.YESTERDAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.THIS_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n case DateTags.PREV_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n }\n }\n this.presetTag$.next(tag);\n this.updatedDateAndClose$.next(date);\n }\n\n public selectDateInCalendarMonthView(date: Moment, calender: any): void {\n setTimeout(() => {\n const monthView = calender.monthView as any;\n if (monthView) {\n monthView._activeDate = date;\n monthView._selected = date;\n monthView._init();\n }\n });\n }\n\n public resetPresetTag() {\n if (!this.keepPresetTag) {\n this.presetTag$.next(null);\n } else {\n this.keepPresetTag = false;\n }\n }\n}\n","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject, OnInit } from \"@angular/core\";\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, DateFromats, TCalendarView, TimeframeOption } from '../../../models/datePicker';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport * as _ from 'lodash';\nimport { PRESET_TAGS_LIST } from \"../../../models/constants\";\n\n// @ts-ignore\nconst moment = require('moment');\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption;\n title: string;\n value: TCalendarView;\n format: string;\n periodLabel: () => string;\n}\n\n@Component({\n selector: 'dr-date-picker_custom-header.component',\n templateUrl: 'dr-date-picker_custom-header.component.html',\n styleUrls: ['./dr-date-picker_custom-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class DrDatePickerCustomHeaderComponent<Moment> implements OnDestroy, OnInit {\n private _destroyed = new Subject<void>();\n quarters = [1, 2, 3, 4];\n selectedQuarter = 1;\n timeframeOptions: ITimeframeOption[] = [{\n timeframe: TimeframeOption.DAY,\n title: 'Day',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.day,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.MONTH,\n title: 'Month',\n value: CalendarView.FOR_MONTHS,\n format: this.datePickerService.formatConfig.month,\n periodLabel: () => String(moment(this._calendar.activeDate).utc().year())\n }, {\n timeframe: TimeframeOption.QUARTER,\n title: 'Quarter',\n value: CalendarView.FOR_QUARTERS,\n format: this.datePickerService.formatConfig.quarter,\n periodLabel: () => String(moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year())\n }, {\n timeframe: TimeframeOption.YEAR,\n title: 'Year',\n value: CalendarView.FOR_YEARS,\n format: this.datePickerService.formatConfig.year,\n periodLabel: () => {\n const currentYear = moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year();\n const startPeriod = Math.floor(currentYear / 24) * 24;\n return startPeriod + '-' + (startPeriod + 23);\n }\n }];\n\n pagingSetup = {\n [CalendarView.FOR_MONTHS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_QUARTERS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_DAYS]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [CalendarView.FOR_YEARS]: (forward) => this.pagingDateChange('addCalendarYears', 24, forward)\n };\n\n selectedTimeframe: TCalendarView = CalendarView.FOR_DAYS;\n timeframeSelection = false;\n periodMonthLabel = '';\n periodYearLabel = '';\n presetTagList = PRESET_TAGS_LIST;\n get selectedPresetTag() {\n return this.datePickerService.presetTag$.getValue();\n };\n\n public readonly calendarView = CalendarView;\n\n constructor(private _calendar: MatCalendar<any>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService) {\n\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$.pipe(takeUntil(this._destroyed)).subscribe(value => {\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.format === value)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n });\n\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.setPeriodLabels();\n if (_calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n\n _calendar._userSelection.subscribe(date => {\n if (!this.datePickerService.isValueUpdating) {\n this.datePickerService.onSameDaySelectedInCalendar$.next(date.value);\n }\n });\n\n this.datePickerService.calendarInstance = _calendar;\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this._calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n setPeriodLabels() {\n const currentTimeframeOption = this.timeframeOptions.filter(option => option.value === this._calendar.currentView)[0];\n const fullPeriodLabel = currentTimeframeOption.periodLabel();\n if (this._calendar.currentView === CalendarView.FOR_DAYS) {\n this.periodMonthLabel = fullPeriodLabel.match(/[a-zA-Z]+/g).toString();\n this.periodYearLabel= fullPeriodLabel.match(/[0-9]+/g).toString();\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe(value) {\n if (value !== this.selectedTimeframe) {\n this.datePickerService.resetPresetTag();\n }\n this.selectedTimeframe = value;\n this.timeframeSelection = false;\n this._calendar.currentView = this.selectedTimeframe as MatCalendarView;\n const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];\n this.datePickerService.updateTimeframeAndFormat(chosenTimeframeOption.format);\n\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n }\n\n get currentViewIsQuarter() {\n return ![CalendarView.FOR_DAYS, CalendarView.FOR_MONTHS, CalendarView.FOR_YEARS].includes(this._calendar.currentView as CalendarView);\n }\n\n switchViewOnClickOnPeriodLabel(view: CalendarView.FOR_MONTHS | CalendarView.FOR_YEARS) {\n this._calendar.currentView = view;\n }\n\n onSelectQuarter(quarterNumber: number) {\n this.selectedQuarter = quarterNumber;\n this.datePickerService.setEndOfQuarter(this._calendar.activeDate, quarterNumber);\n this.datePickerService.updatedQuarter$.next(this._calendar.activeDate);\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n if (this.pagingSetup[this._calendar.currentView]) {\n this.pagingSetup[this._calendar.currentView](forward);\n }\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);\n this.setPeriodLabels();\n }\n\n transformDateInMultiyearViewAccordingToFY() {\n const multuYearView = this._calendar.multiYearView as any;\n multuYearView._activeDate = this.datePickerService.subtractFiscalYearMonthsFromDate(multuYearView._activeDate);\n multuYearView._selectedYear = multuYearView._activeDate.year();\n multuYearView._init();\n }\n\n onSelectPresetTag(tag: any) {\n if (tag.key === this.selectedPresetTag) {\n this.datePickerService.presetTag$.next(null);\n } else {\n this.datePickerService.presetTag$.next(tag.key);\n }\n this.datePickerService.updateDatePickerByPreset(this.selectedPresetTag, this._calendar);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarView, DatePickerPeriodPosition, TimeframeOption } from '../../../models/datePicker';\nimport { Moment } from 'moment';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { MatCalendarView } from '@angular/material/datepicker';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\n\n// @ts-ignore\nconst moment = require('moment');\nconst noop = () => {\n};\n\nexport class CustomDateAdapter extends MomentDateAdapter {\n getFirstDayOfWeek(): number {\n return 1;\n }\n}\n\n@Component({\n selector: 'dr-date-picker',\n templateUrl: './dr-date-picker.component.html',\n styleUrls: ['./dr-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n DrDatePickerService\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges {\n\n @Input() format: string;\n\n @Input() set min(minDate: number) {\n this._min = moment.unix(minDate).utc();\n }\n\n @Input() set max(maxDate: number) {\n this._max = moment.unix(maxDate).utc();\n }\n\n // Whether to transform date, taking end, start, middle of preiod (i.e. set middle of month if timeframe='month')\n @Input() periodPosition: DatePickerPeriodPosition = DatePickerPeriodPosition.DEFAULT;\n\n @Input() placeholder = 'Select...';\n\n @Input() @HostBinding('class.disabled') disabled: boolean;\n\n @Input() fiscalYearMonthsModifier = 0;\n\n @Input() datepickerFilter: (moment: Moment) => boolean;\n\n @ViewChild('datePicker') public datePicker: any;\n\n public calendarViewsTimeframeMapping: any = {\n year: 'multi-year',\n month: 'year',\n quarter: 'none',\n day: 'month',\n };\n\n public customHeader = DrDatePickerCustomHeaderComponent;\n public readonly = true;\n public _min: Moment;\n public _max: Moment;\n public readonly timeframeOption = TimeframeOption;\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n if (v !== this.innerValue) {\n this.setValueFromMoment(v);\n }\n this.cdr.markForCheck();\n }\n\n protected innerValue: Moment = null;\n protected destroyed$ = new Subject<void>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService\n ) {\n datePickerService.updatedQuarter$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n }\n\n ngAfterViewInit(): void {\n this.datePickerService.fiscalYearMonthsModifier = this.fiscalYearMonthsModifier;\n this.datePickerService.datePickerInstance = this.datePicker;\n this.datePicker.startView = this.calendarViewsTimeframeMapping[this.datePickerService.timeframe];\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n this.datePickerService.updateTimeframeAndFormat(changes.format.currentValue);\n }\n }\n\n /**\n * Updating component inner value according to datepicker timeframe (day, month etc.)\n * and date position in period (start, end, middle)\n */\n tryToNormalaizeTimeframe(): void {\n const timeframe = this.datePickerService.timeframe;\n switch (this.periodPosition) {\n case DatePickerPeriodPosition.START_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n } else {\n this.innerValue.startOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setEndOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setEndOfQuarter(this.innerValue, 4);\n } else {\n this.innerValue.endOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n let endOfPeriod: Moment;\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n this.datePickerService.setEndOfCurrentQuarter(endOfPeriod);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n this.datePickerService.setEndOfQuarter(endOfPeriod, 4);\n } else {\n this.innerValue.startOf(timeframe);\n endOfPeriod = this.innerValue.clone().endOf(timeframe);\n }\n const diff = endOfPeriod.diff(this.innerValue, 'seconds');\n this.innerValue.add(diff / 2 + 1, 'seconds');\n break;\n default:\n this.innerValue.startOf(timeframe).set('hours', 12);\n break;\n }\n }\n\n public chosenPeriodHandler(chosenDate: Moment, timeframe: TimeframeOption) {\n\n if (timeframe === TimeframeOption.YEAR) {\n chosenDate = this.datePickerService.addFiscalYearMonthsToDate(chosenDate);\n }\n\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER && timeframe === TimeframeOption.YEAR) {\n this.datePickerService.calendarInstance.currentView = CalendarView.FOR_QUARTERS as MatCalendarView;\n this.datePickerService.calendarInstance.activeDate = chosenDate;\n this.cdr.detectChanges();\n } else if (this.datePickerService.timeframe === timeframe) {\n this.setValueFromMoment(chosenDate);\n this.datePicker.close();\n }\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: number): void {\n /*\n * We need keep local timestamp for Electron Application\n * Issue in electron: when we select date, date select with -1 (if we're choosing 2023, output will be 2022)\n */\n const convertedValue = (document as any).is_electron ? moment.unix(value) : moment.unix(value).utc();\n this.innerValue = value ? convertedValue : value;\n if (this.innerValue) {\n this.tryToNormalaizeTimeframe();\n }\n this.cdr.markForCheck();\n }\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n // Should be as arrow function to avoid lose scope\n public dateFilter = (moment: Moment) => {\n if (this.datepickerFilter && moment) {\n return this.datepickerFilter(moment);\n }\n\n return true;\n }\n\n /**\n * Set inner value from Moment and propagate\n *\n * @param momentDate\n */\n protected setValueFromMoment(momentDate: Moment) {\n this.setValue(momentDate.unix());\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n\n // isValueUpdating is required for manage clicks on same dates: if isValueUpdating - true then\n // days are different and subscription on calendar day click action won't trigger Accessor ngModel update\n // one more time\n this.datePickerService.isValueUpdating = true;\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n setTimeout(() => {\n this.datePickerService.isValueUpdating = false;\n });\n }\n\n @HostBinding('class.active')\n public active = false;\n onOpen() {\n this.active = true;\n }\n\n onCLose() {\n this.active = false;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\nimport { CustomDateAdapter, DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { Moment } from 'moment';\nimport { PRESET_TAGS_LIST } from '../../../models/constants';\n\n@Component({\n selector: 'dr-date-picker-with-timeframe',\n templateUrl: './dr-date-picker-with-timeframe.component.html',\n styleUrls: ['./dr-date-picker-with-timeframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n { provide: DrDatePickerService }\n ],\n})\nexport class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit {\n presetTagSelected: string;\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n };\n\n @Input() isDashboardDatepicker = false;\n\n @Input() set dateFormatConfig(value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.datePickerService.updateTimeframeAndFormat(this.datePickerService.format$.getValue());\n this.cdr.markForCheck();\n }\n }\n\n @Input() canSelectTimeframe = true;\n\n @Input() set availableTimeframes(value: TimeframeOption[]) {\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n }\n @Input() paginationDebounce;\n\n @Input() set isUsingDateTagPresets(flag: boolean) {\n this.datePickerService.isUsingDateTagPresets = flag;\n }\n\n @Input() set presetTag(tag: string) {\n this.datePickerService.presetTag$.next(tag);\n }\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n this.setValueFromMoment(v);\n this.cdr.markForCheck();\n }\n\n // eslint-disable-next-line\n @Output() onChangeFormat = new EventEmitter<string>();\n @Output() onChangePresetTag = new EventEmitter<string>();\n\n private readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.getNextDate('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.getNextDate('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.getNextDate('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.getNextDate('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.getNextDate('addCalendarDays', 7, forward)\n };\n\n public get displayedFormattedValue(): string {\n if (!this.value) {\n return this.placeholder;\n }\n\n let displayValue = _.cloneDeep(this.value);\n if (this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n displayValue = this.datePickerService.subtractFiscalYearMonthsFromDate(displayValue);\n }\n\n const formatCached = this.datePickerService.format$.getValue();\n return this.datePickerService.getDisplayPrefix() + displayValue.format(formatCached);\n }\n\n public isNextDateDisabled = false;\n public isPrevDateDisabled = false;\n\n private onChangeDebounced$: Subject<number> = new Subject<number>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService,\n ) {\n super(cdr, dateAdapter, datePickerService);\n datePickerService.isTimeframeSelectionEnabled = true;\n\n datePickerService.format$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n\n datePickerService.presetTag$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n let tagObj = PRESET_TAGS_LIST.find((val) => val?.key === value);\n this.presetTagSelected = tagObj?.label;\n this.onChangePresetTag.emit(value);\n });\n\n this.datePickerService.onSameDaySelectedInCalendar$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n\n datePickerService.updatedDateAndClose$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n if (value) {\n this.setValueFromMoment(value);\n } else {\n this.onChangeCallback(this.innerValue.unix());\n }\n this.datePicker.close();\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n\n if (this.paginationDebounce) {\n this.onChangeDebounced$.pipe(takeUntil(this.destroyed$), debounceTime(this.paginationDebounce)).subscribe((value) => {\n this.onChangeCallback(value);\n });\n }\n }\n\n pagingClicked(forward: boolean): void {\n if (this.pagingSetup[this.datePickerService.timeframe]) {\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](forward);\n this.pagingDateChange(nextValue);\n }\n this.datePicker.close();\n }\n\n pagingDateChange(newValue: Moment): void {\n if (this.paginationDebounce) {\n // this is required for not sending extra requests when user quickly clicking on pagination\n // here we do the same as in setValueFromMoment(newValue) with difference\n // that updating of ngModel/formControl is debounced\n this.datePickerService.resetPresetTag();\n const timestamp = newValue.unix();\n this.writeValue(timestamp);\n this.onChangeDebounced$.next(this.innerValue.unix());\n } else {\n this.setValueFromMoment(newValue);\n }\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.datePickerService.resetPresetTag();\n super.setValue(timestamp);\n }\n public writeValue(value: number): void {\n super.writeValue(value);\n if (!value) return;\n this.restrictPagination();\n }\n\n private getNextDate(actionCall: string, amount: number, forward: boolean): Moment {\n return this.dateAdapter[actionCall]?.(this.innerValue, forward ? amount : -amount);\n }\n\n private restrictPagination(): void {\n if (!this._min && !this._max) return;\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](true);\n const prevValue = this.pagingSetup[this.datePickerService.timeframe](false);\n this.isNextDateDisabled = this._max && nextValue && nextValue.unix() > this._max.unix();\n this.isPrevDateDisabled = this._min && prevValue && prevValue.unix() < this._min.unix();\n }\n}\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { CustomDateFormat, DateDisplay, DateParse } from '../../../models/datePicker';\n\n@Directive({\n selector: '[drDatePickerFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter\n },\n {\n provide: MAT_DATE_FORMATS,\n useClass: CustomDateFormat\n }\n ]\n})\nexport class DrDatePickerFormatDirective {\n @Input() public configDateParse: DateParse;\n @Input() public configDateDisplay: DateDisplay;\n\n @Input('drDatePickerFormat')\n set datePickerFormat(format: string) {\n if (this.configDateParse) {\n this.matDateFormat.updateDateFormat(\n this.configDateParse,\n this.configDateDisplay\n );\n } else {\n this.matDateFormat.updateDateFormat({ dateInput: format });\n }\n const value = this.ngControl.value;\n this.ngControl.valueAccessor?.writeValue(value);\n }\n\n constructor(\n @Inject(MAT_DATE_FORMATS) public matDateFormat: CustomDateFormat,\n @Optional() private ngControl: NgControl\n ) {\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { ITimeframeOption } from './dr-date-picker_custom-header/dr-date-picker_custom-header.component';\n\n@Pipe({\n name: 'drShowTimeframePipe'\n})\nexport class DrShowTimeframePipe implements PipeTransform {\n transform(arr: ITimeframeOption[], showOptions: TimeframeOption[]): ITimeframeOption[] {\n return arr.filter(item => showOptions.includes(item.timeframe));\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { DrSelectComponent } from '../dr-select/dr-select.component';\nimport { reduce as _reduce } from 'lodash';\nimport { DrInputComponent } from '../dr-input/dr-input.component';\n\n@Component({\n selector: 'dr-select-add-item',\n templateUrl: './dr-select-add-item.component.html',\n styleUrls: ['./dr-select-add-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrSelectAddItemComponent implements OnInit, OnChanges {\n public isDynamicAdding: boolean;\n public dynamicValue: string;\n public currentValues: any[] = [];\n public isDirty: boolean;\n\n @Input() public dynamicAddLabel = 'Add new';\n @Input() public bindValue: string;\n @Input() private values: any[] = [];\n @Output() private dynamicValueAdded: EventEmitter<any> = new EventEmitter<any>();\n\n @ViewChild('dynamicInputRef') set inputRef(input: DrInputComponent) {\n if (!input) return;\n input.focus();\n }\n\n constructor(private drSelect: DrSelectComponent) {\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.calculateCurrentValues();\n }\n\n public ngOnInit(): void {\n this.calculateCurrentValues();\n }\n\n public onDynamicAdding(): void {\n this.isDynamicAdding = true;\n }\n\n public onDynamicAddingClose(): void {\n this.isDynamicAdding = false;\n this.dynamicValue = '';\n }\n\n public isDynamicValueValid(): boolean {\n const trimmedValue = this.dynamicValue?.trim();\n if (!trimmedValue) return false;\n return !this.currentValues.includes(trimmedValue);\n }\n\n public onDynamicAdd(value: string, keydownEvent?: KeyboardEvent): void {\n this.isDirty = true;\n if (!this.isDynamicValueValid()) return;\n if (keydownEvent && keydownEvent.key !== 'Enter') return;\n\n this.onDynamicAddingClose();\n this.drSelect.close();\n this.dynamicValueAdded.emit(value?.trim());\n }\n\n private calculateCurrentValues(): void {\n this.currentValues = this.bindValue\n ? _reduce(this.values, (acc, curr) => {\n acc.push(curr[this.bindValue]);\n return acc;\n }, [])\n : this.values;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info',\n templateUrl: './tooltip-info.component.html',\n styleUrls: ['./tooltip-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoComponent {\n\n @Input() data: TooltipInfoContext;\n @Input() useDescriptionAsHTML: boolean;\n\n constructor() {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info-simple',\n templateUrl: './tooltip-info-simple.component.html',\n styleUrls: ['./tooltip-info-simple.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoSimpleComponent {\n\n @Input() context: TooltipInfoContext;\n\n constructor() {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-no-body',\n templateUrl: './tooltip-no-body.component.html',\n styleUrls: ['./tooltip-no-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipNoBodyComponent implements OnInit {\n\n @Input() context: any;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-process-default',\n template: `\n <div class=\"container\" [innerHTML]=\"text\"></div>\n `,\n styles: [`\n .container {\n width: auto;\n max-width: 388px;\n text-align: start;\n font-size: 14px;\n line-height: 22px;\n padding: 10px 12px;\n color: #151B3F;\n background-color: #FFF;\n border-radius: 8px;\n box-shadow: 0px 4px 8px 1px rgba(0, 0, 0, 0.25);\n border: 1px solid #C3C4CE;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipProcessDefaultComponent {\n\n @Input() text: string;\n\n constructor() {\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrTooltipDirective } from './dr-tooltip.directive';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { CommonModule } from '@angular/common';\nimport { TooltipInfoComponent } from './components/tooltip-info/tooltip-info.component';\nimport { TooltipInfoSimpleComponent } from './components/tooltip-info-simple/tooltip-info-simple.component';\nimport { TooltipNoBodyComponent } from './components/tooltip-no-body/tooltip-no-body.component';\nimport { TooltipProcessDefaultComponent } from './components/tooltip-process-default/tooltip-process-default.component';\n\nconst TOOLTIP_COMPONENTS = [\n TooltipInfoComponent,\n TooltipInfoSimpleComponent,\n TooltipNoBodyComponent,\n TooltipProcessDefaultComponent\n];\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n exports: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n providers: [],\n entryComponents: [\n TooltipComponent\n ]\n})\n\nexport class DrTooltipModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { DrSpinnerDirective } from './dr-spinner.directive';\n\nconst components = [DrSpinnerComponent];\nconst directives = [DrSpinnerDirective];\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [...components, ...directives],\n declarations: [...components, ...directives]\n})\n\nexport class DrSpinnerModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { DrInputComponent } from './dr-input/dr-input.component';\nimport { DrSelectComponent } from './dr-select/dr-select.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-button/radio-group.component';\nimport { DrToggleComponent } from './dr-toggle/dr-toggle.component';\nimport { DrButtonComponent } from './button/button.component';\n\nimport { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DrDatePickerComponent } from './date-pickers/dr-date-picker/dr-date-picker.component';\nimport { DrDatePickerWithTimeframeComponent } from './date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nimport { DrDatePickerFormatDirective } from './date-pickers/directives/dr-date-picker-format.directive';\nimport { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';\nimport { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';\nimport { DrDatePickerCustomHeaderComponent } from './date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\nimport { DrSelectAddItemComponent } from './dr-select-add-item/dr-select-add-item.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { DrSpinnerModule } from '../dr-spinner/dr-spinner.module';\n\n// !!! Please do not use such approach in other places\n// Hard fix for 'none' calendar view selection\nMatCalendar.prototype.focusActiveCell = function() {\n this._getCurrentViewComponent()?._focusActiveCell(false);\n};\n\nconst components = [\n DrButtonComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n CheckboxComponent,\n DrInputComponent,\n DrSelectComponent,\n DrToggleComponent,\n DrToggleButtonComponent,\n DrDatePickerComponent,\n DrDatePickerWithTimeframeComponent,\n DrDatePickerFormatDirective,\n DrDatePickerCustomHeaderComponent,\n DrModelDebounceChangeDirective,\n DrShowTimeframePipe,\n DrSelectAddItemComponent\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatNativeDateModule,\n MatDatepickerModule,\n MatTooltipModule,\n DrTooltipModule,\n DrSpinnerModule,\n ],\n entryComponents: [DrDatePickerCustomHeaderComponent]\n})\n\nexport class DrInputsModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { AnyTagComponent, DateTagComponent } from './date-tag.component';\nimport { DayTagComponent } from './day-tag/day-tag.component';\nimport { WeekTagComponent } from './week-tag/week-tag.component';\nimport { MonthTagComponent } from './month-tag/month-tag.component';\nimport { QuarterTagComponent } from './quarter-tag/quarter-tag.component';\nimport { YearTagComponent } from './year-tag/year-tag.component';\nimport { ForecastTagComponent } from './forecast-tag/forecast-tag.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nexport const components = [DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n NgSelectModule\n ],\n exports: components,\n declarations: components,\n})\n\nexport class DateTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ListTagComponent } from './list-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n ],\n exports: [ListTagComponent],\n providers: [],\n declarations: [\n ListTagComponent\n ],\n})\n\nexport class ListTagModule {\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { find as _find, isNumber as _isNumber, isObject as _isObject, isNil as _isNil, map as _map } from 'lodash';\nimport {\n IDynamicTag,\n ITag,\n ITagForServer,\n TagsConfigSubType,\n TDynamicTag,\n TDynamicTagValue\n} from '../models/serverTags';\nimport { ForecastTagService } from '../date-tags/forecast-tag/forecast-tag.service';\n\n// @ts-ignore\nconst moment = require('moment');\n\n@Component({\n selector: 'dr-dynamic-tag',\n templateUrl: './dr-dynamic-tag.component.html',\n styleUrls: ['./dr-dynamic-tag.component.scss']\n})\nexport class DrDynamicTagComponent implements OnChanges {\n @Input() public values: TDynamicTag;\n @Input() public tagConfig: ITag;\n @Input() public selectedTag: ITagForServer;\n\n @Input() public lockedTags: any[] = [];\n @Input() public connectedTags: ITagForServer[];\n @Input() public isDynamicTagAddEnabled: boolean;\n @Input() public disabled: boolean;\n\n @Input() fiscalYearStartsFrom: number;\n @Input() fiscalYearBack: boolean;\n\n @Input() public set parentKeyFormat(format: string) {\n this._parentKeyFormat = format || this.DEFAULT_PARENT_KEY_FORMAT;\n }\n\n @Input() parentKeyFormatterFn: (momentData) => string;\n\n @Input() label: string;\n @Input() hideFavoriteStar: boolean;\n @Input() showSplitInputs: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n @Output() tagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public selectedDynamicTag: TDynamicTagValue;\n public currentValues: TDynamicTagValue[];\n public isLockedTagSelected: boolean;\n\n private readonly DEFAULT_PARENT_KEY_FORMAT = 'yyyy';\n private _parentKeyFormat: string = this.DEFAULT_PARENT_KEY_FORMAT;\n\n public get parentKeyFormat(): string {\n return this._parentKeyFormat;\n }\n\n public get isPrimitiveDataSource(): boolean {\n const values = Object.values(this.values) || [];\n return !_isObject(values[0]);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.updateDynamicTagValues();\n }\n\n public onTagChanged($event: string): void {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: $event,\n locked: this.lockedTags.includes($event)\n };\n\n if (!_isNil(this.selectedTag?.locked)) {\n resultEvent.locked = this.selectedTag.locked;\n }\n\n if (!_isNil(this.selectedTag?.label)) {\n resultEvent.label = this.selectedTag.label;\n }\n\n this.isLockedTagSelected = resultEvent.locked;\n this.tagChange.emit(resultEvent);\n }\n\n public onOptionClick($event: Event, tagValue: string | number): void {\n if (this.lockedTags.includes(tagValue)) {\n $event.stopImmediatePropagation();\n }\n }\n\n public onDynamicValueAdd($event: string) {\n const parentValueKey = this.getParentValueKey();\n const parentValues = this.values[parentValueKey] || [];\n\n if (this.isPrimitiveDataSource) {\n this.values[parentValueKey] = [$event, ...parentValues];\n } else {\n this.values[parentValueKey] = [{ value: $event }, ...parentValues];\n }\n\n this.selectedDynamicTag = $event;\n\n this.currentValues = this.values[parentValueKey];\n this.onTagChanged($event);\n this.tagAdd.emit($event);\n }\n\n private updateDynamicTagValues(): void {\n const parentValueKey = this.getParentValueKey();\n this.currentValues = this.values?.[parentValueKey];\n this.selectedDynamicTag = this.getSelectedDynamicTag(this.currentValues, this.selectedTag?.value);\n this.onTagChanged(this.selectedDynamicTag);\n }\n\n private getSelectedDynamicTag(currentValues: TDynamicTagValue[], selectedValue: string | number): string {\n if (!currentValues?.length) return null;\n\n if (_isObject(currentValues[0])) {\n const valueFromConfig = _find(currentValues, { value: selectedValue }) as IDynamicTag;\n const favoriteValue = _find(currentValues, { is_favorite: true }) as IDynamicTag;\n return (valueFromConfig || favoriteValue || currentValues[0]).value;\n }\n\n const valueFromConfig = _find(currentValues, (value) => value === selectedValue);\n return (valueFromConfig || currentValues[0]) as string;\n }\n\n private getParentValueKey(): string {\n return _map(this.connectedTags, (connectedTag) => {\n if (_isNumber(connectedTag.value)) {\n const momentData = moment.unix(connectedTag.value);\n\n const convertedParentKey = this.parentKeyFormatterFn\n ? this.parentKeyFormatterFn(momentData)\n : momentData.format(this.parentKeyFormat);\n\n if (momentData.isValid() && convertedParentKey) {\n return convertedParentKey;\n }\n }\n\n return connectedTag.value;\n }).join('__');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrDynamicTagComponent } from './dr-dynamic-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [DrDynamicTagComponent],\n imports: [\n CommonModule,\n DrInputsModule,\n FormsModule,\n ],\n exports: [DrDynamicTagComponent]\n})\nexport class DrDynamicTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTagComponent } from './dr-tag.component';\nimport { ListTagModule } from '../list-tags/list-tag.module';\nimport { DateTagModule } from '../date-tags/date-tag.module';\nimport { DrDynamicTagModule } from '../dr-dynamic-tag/dr-dynamic-tag.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DateTagModule,\n ListTagModule,\n DrDynamicTagModule\n ],\n exports: [DrTagComponent],\n providers: [],\n declarations: [\n DrTagComponent\n ],\n})\n\nexport class DrTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { CommonModule } from '@angular/common';\nimport { DrAvatarPipe } from './dr-avatar.pipe';\n\n@NgModule({\n declarations: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n exports: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n imports: [\n MatTooltipModule,\n DrTooltipModule,\n CommonModule\n ]\n})\n\nexport class DrAvatarModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { DrPopoverDirective } from './dr-popover.directive';\nimport { CommonModule } from '@angular/common';\nimport { DrPopoverComponent } from './dr-popover.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n providers: [],\n declarations: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n})\n\nexport class DrPopoverModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrDropdownPositionDirective } from './dr-dropdown-position.directive';\nimport { DrDropdownDirective } from './dr-dropdown.directive';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { CommonModule } from '@angular/common';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule,\n ],\n declarations: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n exports: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n providers: [\n DrDropdownService,\n ],\n})\n\nexport class DrDropdownModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTabsComponent } from './dr-tabs.component';\nimport { DrTabComponent } from './dr-tab.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTabsModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n DrTooltipModule\n ],\n exports: [\n DrTabsComponent,\n DrTabComponent\n ],\n providers: [],\n declarations: [\n DrTabsComponent,\n DrTabComponent\n ],\n})\n\nexport class DrTabsModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAccordionComponent } from './accordion.component';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { DrAccordionItemHeaderComponent } from './accordion-item-header.component';\nimport { DrAccordionItemBodyComponent } from './accordion-item-body.component';\n\nconst DR_ACCORDION_COMPONENTS = [\n DrAccordionComponent,\n DrAccordionItemComponent,\n DrAccordionItemHeaderComponent,\n DrAccordionItemBodyComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...DR_ACCORDION_COMPONENTS],\n declarations: [...DR_ACCORDION_COMPONENTS],\n providers: [],\n})\nexport class DrAccordionModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrLayoutComponent } from './dr-layout.component';\nimport { CommonModule } from '@angular/common';\nimport { DrLayoutHeaderComponent } from './dr-layout-header.component';\nimport { DrLayoutBodyComponent } from './dr-layout-body.component';\n\nconst components = [\n DrLayoutComponent,\n DrLayoutHeaderComponent,\n DrLayoutBodyComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components],\n declarations: [...components],\n})\n\nexport class DrLayoutModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DrErrorComponent } from './dr-error.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DrTooltipModule\n ],\n exports: [DrErrorComponent],\n providers: [],\n declarations: [\n DrErrorComponent\n ],\n})\n\nexport class DrErrorModule {\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Step } from './interfaces/stepper';\n\n@Component({\n selector: 'dr-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class StepperComponent {\n\n @Input() steps: Step[];\n @Input() currentStep: Step;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Output() stepChange: EventEmitter<Step> = new EventEmitter<Step>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<any>;\n\n constructor() {\n }\n\n selectStep(step: Step): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: Step): string {\n if (this.withoutConnectors) return '0%';\n if (step.completed) return '100%';\n if (step.index === 0 || this.steps[step.index - 1].completed) return `${ (step?.completedTasks / step?.requiredTasks * 100) || 0 }%`;\n return '0%';\n }\n\n public scrollLeft(): void {\n this.stepper.nativeElement.scrollLeft -= 80;\n }\n\n public scrollRight(): void {\n this.stepper.nativeElement.scrollLeft += 80;\n }\n\n public roundWidth(width: number): number {\n return Math.round(width);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [StepperComponent],\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [StepperComponent]\n})\nexport class DrStepperModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrDetailsListComponent } from './dr-details-list.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [DrDetailsListComponent],\n providers: [],\n declarations: [DrDetailsListComponent],\n})\n\nexport class DrDetailsListModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { DialogModalWrapperComponent } from './components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { DialogService } from './services/dialog.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDetailsListModule } from '../dr-details-list/dr-details-list.module';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n DrInputsModule,\n ReactiveFormsModule,\n DrTooltipModule,\n DrDetailsListModule\n ],\n exports: [DialogWrapperComponent, DialogModalWrapperComponent],\n providers: [\n { provide: MatDialogRef, useValue: {} },\n { provide: MAT_DIALOG_DATA, useValue: {} },\n DialogService\n ]\n})\nexport class DrDialogModule {\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatTextMessage } from '../../../models/chat';\n\n/**\n * Chat text message component.\n */\n@Component({\n selector: 'dr-chat-message-text',\n templateUrl: 'chat-message-text.component.html',\n styleUrls: ['./chat-message-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageTextComponent {\n /**\n * Message sender\n *\n * @type {IChatTextMessage}\n */\n @Input() message: IChatTextMessage;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n IChatDownloadFileMessage,\n IChatImageMessage,\n IChatMessageFile,\n IChatMessageFileImagePreview,\n IMAGE_TYPES\n} from '../../../models/chat';\n\n/**\n * Chat message component.\n */\n@Component({\n selector: 'dr-chat-message-file',\n templateUrl: 'chat-message-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageFileComponent {\n\n readyFiles: any[];\n\n /**\n * Message with file\n *\n * @type {IChatDownloadFileMessage | IChatImageMessage}\n */\n @Input() message: IChatDownloadFileMessage | IChatImageMessage;\n\n /**\n * Message file path\n *\n * @type {Date}\n */\n @Input()\n set files(files: IChatMessageFile[]) {\n this.readyFiles = (files || []).map((file: any) => {\n const isImage = this.isImage(file);\n return {\n ...file,\n urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${ file.url })`),\n isImage,\n };\n });\n this.cd.detectChanges();\n }\n\n constructor(protected cd: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n\n isImage(file: IChatMessageFile): boolean {\n const type = (file as IChatMessageFileImagePreview).type;\n if (type) {\n return IMAGE_TYPES.includes(type);\n }\n return false;\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { DrChatCustomMessageService } from './chat-custom-message.service';\n\nconst throwCustomMessageTypeIsRequired = () => {\n throw new Error('[drCustomMessage]: custom message type is required.');\n};\n\n@Directive({\n selector: `[drCustomMessage]`,\n})\nexport class DrChatCustomMessageDirective implements OnInit, OnDestroy {\n /**\n * Defines a message type which should rendered with the custom message template.\n *\n * @type {string}\n */\n @Input()\n get drCustomMessage(): string {\n return this._type;\n }\n set drCustomMessage(value: string) {\n this._type = value;\n }\n protected _type: string;\n\n get type(): string {\n return this._type;\n }\n\n constructor(public templateRef: TemplateRef<any>,\n protected customMessageService: DrChatCustomMessageService) {}\n\n ngOnInit() {\n if (!this._type) {\n throwCustomMessageTypeIsRequired();\n }\n this.customMessageService.register(this.type, this);\n }\n\n ngOnDestroy() {\n this.customMessageService.unregister(this.type);\n }\n}\n","import { ChangeDetectionStrategy, Component, } from '@angular/core';\n\n@Component({\n selector: 'dr-dot-flashing',\n templateUrl: 'dr-dot-flashing.component.html',\n styleUrls: ['./dr-dot-flashing.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDotFlashingComponent {\n\n constructor() {\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrAvatarModule } from '../dr-avatar/dr-avatar.module';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { DrChatComponent } from './chat.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageTextComponent } from './dr-chat-message/dr-chat-message-text/chat-message-text.component';\nimport { DrChatMessageFileComponent } from './dr-chat-message/dr-chat-message-file/chat-message-file.component';\nimport { DrChatCustomMessageDirective } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\nimport { DrDotFlashingComponent } from './dr-dot-flashing/dr-dot-flashing.component';\n\n\nconst DR_CHAT_COMPONENTS = [\n DrChatComponent,\n DrChatMessageComponent,\n DrChatFormComponent,\n DrChatMessageTextComponent,\n DrChatMessageFileComponent,\n DrChatSuggestionsComponent,\n DrDotFlashingComponent,\n];\n\nconst DR_CHAT_DIRECTIVES = [DrChatCustomMessageDirective];\n\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n DrAvatarModule,\n DrInputsModule,\n DrTooltipModule,\n ],\n declarations: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n exports: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n})\nexport class DrChatModule {\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi, Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\nimport { ScenarioService } from '../../services/scenario.service';\nimport { ITag, TagTypes } from '../../../models/serverTags';\nimport { find as _find, includes as _includes, map as _map } from 'lodash';\nimport { ToggleButtonMode } from '../../../dr-inputs/dr-toggle-button/toggle-button-mode';\n\n@Component({\n selector: 'dr-scenario-configuration',\n templateUrl: './dr-scenario-configuration.component.html',\n styleUrls: ['./dr-scenario-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScenarioService]\n})\nexport class DrScenarioConfigurationComponent implements OnInit {\n public toggleButtonMode = ToggleButtonMode;\n public scenarios: Scenario[];\n\n private _scenarioTags: IScenarioTagUi[] = [];\n private _selectedScenario: Scenario;\n private tagNotSupportingDates: IScenarioTagUi;\n\n @Input() public currentTagsConfig: ITag[];\n @Input() public wholeTagsConfig: ITag[] = [];\n @Input() public set selectedScenario(scenario: Scenario) {\n if (!Object.values(Scenario).includes(scenario)) {\n this._selectedScenario = Scenario.ACTUALS;\n return;\n }\n\n this._selectedScenario = scenario;\n }\n @Input() public isMultipleDimension: boolean = false;\n @Input() public isForecastMultipleDimension: boolean = false;\n\n @Output() public scenarioDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public get selectedScenario(): Scenario {\n return this._selectedScenario || Scenario.ACTUALS;\n }\n\n public get scenarioTags(): IScenarioTagUi[] {\n return this._scenarioTags;\n }\n\n public set scenarioTags(tags: IScenarioTagUi[]) {\n this._scenarioTags = tags;\n this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });\n }\n\n public get dateTag(): IScenarioTagUi {\n return _find(this.scenarioTags, { type: TagTypes.DATE });\n }\n\n constructor(private scenarioService: ScenarioService) {\n }\n\n public ngOnInit(): void {\n this.scenarios = this.scenarioService.scenarios;\n this.scenarioService.initScenarioTags(this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension, this.isForecastMultipleDimension);\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);\n }\n\n public onScenarioChange(scenario: Scenario): void {\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);\n this.onScenarioDataChange();\n }\n\n public onScenarioTagToggle(tag: IScenarioTagUi): void {\n this.tagNotSupportingDatesHandler(tag);\n this.tagAcceptableDateHandler(tag);\n this.onScenarioDataChange();\n }\n\n public onScenarioDataChange(): void {\n this.scenarioDataChanged.emit({\n scenario: this.selectedScenario,\n tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),\n });\n }\n\n private tagNotSupportingDatesHandler(tag: IScenarioTagUi): void {\n if (!this.tagNotSupportingDates || !tag.toggle) return;\n\n if (tag.type === TagTypes.DATE) {\n this.tagNotSupportingDates.toggle = false;\n }\n\n if (tag === this.tagNotSupportingDates) {\n const dateTag = this.dateTag;\n\n if (dateTag) {\n dateTag.toggle = false;\n }\n }\n }\n\n private tagAcceptableDateHandler(tag: IScenarioTagUi) {\n if (!tag.acceptableSubTags?.length) return;\n const dateTag = this.dateTag;\n\n if (!dateTag) return;\n\n dateTag.subTags = _map(dateTag.subTags, (subTag) => {\n subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);\n return subTag;\n });\n\n dateTag.selectedTagSubType = tag.acceptableSubTags[0];\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ITag, ITagForServer, TConnectedTags, TDynamicTag } from '../../../models/serverTags';\nimport { reduce as _reduce, find as _find, merge as _merge } from 'lodash';\nimport { Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\nimport { ITagAdditionalSettings } from '../../../dr-tags/dr-tag.types';\n\n@Component({\n selector: 'dr-scenario-tag-configuration',\n templateUrl: './dr-scenario-tag-configuration.component.html',\n styleUrls: ['./dr-scenario-tag-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrScenarioTagConfigurationComponent implements OnChanges {\n @Input() public tagsConfig: ITag[];\n @Input() public set currentTags(tags: ITagForServer[]) {\n this._currentTags = tags;\n this.currentTagsMap = _reduce(tags, (acc, curr) => {\n const tagId = _find(this.tagsConfig, { name: curr.name })?.id;\n if (isNaN(tagId)) return acc;\n\n acc[tagId] = curr;\n return acc;\n }, {});\n }\n\n @Input() public scenario: Scenario;\n @Input() public connectedTags: TConnectedTags = {};\n @Input() public dynamicTagValues: TDynamicTag = {};\n @Input() public tagAdditionalSettings: Record<string, ITagAdditionalSettings>;\n\n @Input() public lockedDates: string[] | number[] = [];\n @Input() public fiscalYearStartsFrom: number;\n @Input() public fiscalYearBack: boolean;\n @Input() public isDynamicAddEnabled: boolean;\n\n @Output() public scenarioTagDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public currentTagsMap: { [tagId: number]: ITagForServer } = {};\n\n private _currentTags: ITagForServer[] = [];\n private dynamicTagsToSave: ITagForServer[] = [];\n private tagsToSave: ITagForServer[] = [];\n\n public get currentTags(): ITagForServer[] {\n return this._currentTags;\n }\n\n public ngOnChanges(simpleChanges: SimpleChanges): void {\n this.currentTags = this.currentTags;\n }\n\n public onTagChange($event: ITagForServer): void {\n const savedTag = _find(this.tagsToSave, { id: $event.id });\n\n if (savedTag) {\n _merge(savedTag, $event);\n } else {\n this.tagsToSave.push($event);\n }\n\n this.onScenarioTagDataChanged();\n }\n\n public onDynamicTagsChange($event: ITagForServer[]): void {\n this.dynamicTagsToSave = $event;\n this.onScenarioTagDataChanged();\n }\n\n public onScenarioTagDataChanged(): void {\n const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];\n this.scenarioTagDataChanged.emit({\n scenario: this.scenario,\n tagsConfig: this.tagsConfig,\n tags,\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScenarioService } from './services/scenario.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\nimport { DrScenarioConfigurationComponent } from './components/dr-scenario-configuration/dr-scenario-configuration.component';\nimport { DrScenarioTagConfigurationComponent } from './components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nimport { DrTagModule } from '../dr-tags/dr-tag.module';\n\n\nconst COMPONENTS = [\n DrScenarioConfigurationComponent,\n DrScenarioTagConfigurationComponent,\n]\n\n@NgModule({\n declarations: [...COMPONENTS],\n providers: [ScenarioService],\n imports: [\n CommonModule,\n DrInputsModule,\n FormsModule,\n DrTagModule\n ],\n exports: [...COMPONENTS],\n})\nexport class DrScenarioModule {\n}\n","import {\n Component,\n Input,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { BadgeStatus } from '../models/badgeStatus';\n\n@Component({\n templateUrl: 'dr-badge-status.component.html',\n selector: 'dr-badge-status',\n styleUrls: ['dr-badge-status.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class DrBadgeStatusComponent implements OnInit {\n\n @Input() theme: BadgeStatus = BadgeStatus.REGULAR;\n @Input() icon: string;\n @Input() label: string;\n @Input() tooltip: string;\n\n\n constructor() {\n\n }\n\n ngOnInit() {\n\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrBadgeStatusComponent } from './dr-badge-status.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [DrBadgeStatusComponent],\n providers: [],\n declarations: [\n DrBadgeStatusComponent\n ],\n})\n\nexport class DrBadgeStatusModule {\n}\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\n\n@Component({\n selector: 'ngx-treeview-item',\n templateUrl: './treeview-item.component.html',\n styleUrls: ['./treeview-item.component.scss']\n})\nexport class TreeviewItemComponent {\n @Input() config: TreeviewConfig;\n @Input() template: TemplateRef<TreeviewItemTemplateContext>;\n @Input() item: TreeviewItem;\n @Output() checkedChange = new EventEmitter<boolean>();\n\n constructor(\n private defaultConfig: TreeviewConfig\n ) {\n this.config = this.defaultConfig;\n }\n\n onCollapseExpand = () => {\n this.item.collapsed = !this.item.collapsed;\n }\n\n onCheckedChange = () => {\n const checked = this.item.checked;\n if (!isNil(this.item.children) && !this.config.decoupleChildFromParent) {\n this.item.children.forEach(child => child.setCheckedRecursive(checked));\n }\n this.checkedChange.emit(checked);\n }\n\n onChildCheckedChange(child: TreeviewItem, checked: boolean): void {\n if (!this.config.decoupleChildFromParent) {\n let itemChecked: boolean = null;\n for (const childItem of this.item.children) {\n if (itemChecked === null) {\n itemChecked = childItem.checked;\n } else if (itemChecked !== childItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n if (this.item.checked !== itemChecked) {\n this.item.checked = itemChecked;\n }\n\n }\n\n this.checkedChange.emit(checked);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TreeviewComponent } from './components/treeview/treeview.component';\nimport { TreeviewItemComponent } from './components/treeview-item/treeview-item.component';\nimport { TreeviewPipe } from './pipes/treeview.pipe';\nimport { TreeviewConfig } from './models/treeview-config';\nimport { DefaultTreeviewEventParser, TreeviewEventParser } from './helpers/treeview-event-parser';\n\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule\n ],\n declarations: [\n TreeviewComponent,\n TreeviewItemComponent,\n TreeviewPipe\n ],\n exports: [\n TreeviewComponent,\n TreeviewPipe,\n ],\n providers: [],\n})\n\nexport class TreeviewModule {\n static forRoot(): ModuleWithProviders<TreeviewModule> {\n return {\n ngModule: TreeviewModule,\n providers: [\n TreeviewConfig,\n { provide: TreeviewEventParser, useClass: DefaultTreeviewEventParser }\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAlertComponent } from './dr-alert.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [DrAlertComponent],\n providers: [],\n declarations: [\n DrAlertComponent\n ],\n})\n\nexport class DrAlertModule {\n}\n","/* components */\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.service';\nexport * from './lib/date-tags/month-tag/month-tag.component';\nexport * from './lib/date-tags/quarter-tag/quarter-tag.component';\nexport * from './lib/date-tags/week-tag/week-tag.component';\nexport * from './lib/date-tags/year-tag/year-tag.component';\nexport * from './lib/dr-tags/dr-tag.component';\nexport * from './lib/list-tags/list-tag.component';\nexport * from './lib/date-tags/day-tag/day-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/dr-inputs/radio-button/radio-button.component';\nexport * from './lib/dr-inputs/radio-button/radio-group.component';\nexport * from './lib/dr-inputs/checkbox/checkbox.component';\nexport * from './lib/dr-inputs/dr-input/dr-input.component';\nexport * from './lib/dr-inputs/dr-select/dr-select.component';\nexport * from './lib/dr-avatar/dr-avatar.component';\nexport * from './lib/dr-avatar/dr-avatar.pipe';\nexport * from './lib/dr-tooltip/dr-tooltip.component';\nexport * from './lib/dr-tooltip/dr-tooltip.directive';\nexport * from './lib/dr-inputs/dr-toggle/dr-toggle.component';\nexport * from './lib/dr-inputs/dr-toggle-button/dr-toggle-button.component';\nexport * from './lib/dr-spinner/dr-spinner.component';\nexport * from './lib/dr-spinner/dr-spinner.directive';\nexport * from './lib/dr-inputs/button/button.component';\n\nexport * from './lib/dr-popover/dr-popover.directive';\nexport * from './lib/dr-popover/dr-popover.component';\nexport * from './lib/dr-popover/dr-popover.service';\n\nexport * from './lib/dr-dropdown/dr-dropdown.directive';\nexport * from './lib/dr-dropdown/dr-dropdown-position.directive';\nexport * from './lib/dr-dropdown/dr-dropdown.component';\nexport * from './lib/dr-dropdown/dr-dropdown.service';\nexport * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';\nexport * from './lib/dr-tabs/dr-tabs.component';\nexport * from './lib/dr-tabs/dr-tab.component';\n\nexport * from './lib/dr-accordion/accordion.component';\nexport * from './lib/dr-accordion/accordion-item.component';\nexport * from './lib/dr-accordion/accordion-item-header.component';\nexport * from './lib/dr-accordion/accordion-item-body.component';\n\nexport * from './lib/dr-layout/dr-layout.component';\nexport * from './lib/dr-layout/dr-layout-header.component';\nexport * from './lib/dr-layout/dr-layout-body.component';\n\nexport * from './lib/dr-error/dr-error.component';\n\nexport * from './lib/dr-dialog/services/dialog.service';\n\nexport * from './lib/dr-details-list/dr-details-list.component';\n\nexport * from './lib/dr-chat/chat.component';\nexport * from './lib/dr-alert/dr-alert.component';\nexport * from './lib/dr-treeview/components/treeview/treeview.component';\nexport * from './lib/dr-treeview/pipes/treeview.pipe';\nexport * from './lib/dr-treeview/models/treeview-item';\nexport * from './lib/dr-treeview/models/treeview-config';\nexport * from './lib/dr-treeview/models/treeview-i18n';\nexport * from './lib/dr-treeview/models/treeview-item-template-context';\nexport * from './lib/dr-treeview/helpers/treeview-event-parser';\nexport * from './lib/dr-treeview/helpers/treeview-helper';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.enum';\nexport { TooltipTheme } from './lib/dr-tooltip/enums/tooltip-theme.enum';\nexport { Scenario, TScenarioDataChanged } from './lib/dr-scenario/interfaces/scenario';\nexport { ToggleButtonMode } from './lib/dr-inputs/dr-toggle-button/toggle-button-mode';\nexport { DrAlertTheme } from './lib/dr-alert/enums/dr-alert-theme.enum';\n\n/* interfaces & types */\nexport { TooltipInfoContext } from './lib/dr-tooltip/interfaces/tooltip-component-context';\nexport { Step } from './lib/stepper/interfaces/stepper';\nexport * from './lib/dr-dialog/interfaces/dialog-data';\n\n/* directives */\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer, IDynamicTag, TDynamicTagValue, TDynamicTag, TagTypes, TConnectedTags } from './lib/models/serverTags';\nexport { ISpinnerOptions, SpinnerType, SpinnerSize } from './lib/models/spinnerOptions';\nexport {\n ElPosition,\n IDropdown,\n IDropdownItem,\n IDropdownActionIcon,\n IDropdownCoordinate,\n IDropdownCallEvent,\n IDropdownAction\n} from './lib/models/dropdown';\nexport {\n DrPopoverRef,\n IDrPopoverComponentModel,\n Point,\n DrPopoverConfig,\n IPopoverManualClosing,\n DrPopoverAlignment,\n DrPopoverAlignmentDimension,\n} from './lib/models/popover';\nexport { IValidationError } from './lib/models/validationError';\nexport * from './lib/models/chat';\nexport * from './lib/models/badgeStatus';\nexport * from './lib/models/feedback';\n\n/* services */\nexport { ScenarioService } from './lib/dr-scenario/services/scenario.service';\nexport { DrAvatarService } from './lib/dr-avatar/services/dr-avatar.service';\n\n/* modules */\nexport { DateTagModule } from './lib/date-tags/date-tag.module';\nexport { ListTagModule } from './lib/list-tags/list-tag.module';\nexport { DrTagModule } from './lib/dr-tags/dr-tag.module';\nexport { DrInputsModule } from './lib/dr-inputs/dr-inputs.module';\nexport { DrTooltipModule } from './lib/dr-tooltip/dr-tooltip.module';\nexport { DrAvatarModule } from './lib/dr-avatar/dr-avatar.module';\nexport { DrSpinnerModule } from './lib/dr-spinner/dr-spinner.module';\nexport { DrPopoverModule } from './lib/dr-popover/dr-popover.module';\nexport { DrDropdownModule } from './lib/dr-dropdown/dr-dropdown.module';\nexport { DrTabsModule } from './lib/dr-tabs/dr-tabs.module';\nexport { DrAccordionModule } from './lib/dr-accordion/accordion.module';\nexport { DrSharedUtils } from './lib/utils/dr-shared-utils';\nexport { DrLayoutModule } from './lib/dr-layout/dr-layout.module';\nexport { DrErrorModule } from './lib/dr-error/dr-error.module';\nexport { DrStepperModule } from './lib/stepper/stepper.module';\nexport { DrDialogModule } from './lib/dr-dialog/dialog.module';\nexport { DrChatModule } from './lib/dr-chat/chat.module';\nexport { DrDetailsListModule } from './lib/dr-details-list/dr-details-list.module';\nexport { DrScenarioModule } from './lib/dr-scenario/dr-scenario.module';\nexport { DrBadgeStatusModule } from './lib/dr-badge-status/dr-badge-status.module';\nexport { TreeviewModule } from './lib/dr-treeview/dr-tree-view.module';\nexport { DrAlertModule } from './lib/dr-alert/dr-alert.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {components as ɵa} from './lib/date-tags/date-tag.module';\nexport {DrBadgeStatusComponent as ɵbd} from './lib/dr-badge-status/dr-badge-status.component';\nexport {DrChatFormComponent as ɵe} from './lib/dr-chat/dr-chat-form/chat-form.component';\nexport {DrChatMessageComponent as ɵd} from './lib/dr-chat/dr-chat-message/chat-message.component';\nexport {DrChatCustomMessageDirective as ɵba} from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nexport {DrChatCustomMessageService as ɵc} from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nexport {DrChatMessageFileComponent as ɵy} from './lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component';\nexport {DrChatMessageTextComponent as ɵx} from './lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component';\nexport {DrChatSuggestionsComponent as ɵf} from './lib/dr-chat/dr-chat-suggestions/chat-suggestions.component';\nexport {DrDotFlashingComponent as ɵz} from './lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component';\nexport {DialogModalWrapperComponent as ɵw} from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nexport {DialogWrapperComponent as ɵv} from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport {DrDynamicTagComponent as ɵt} from './lib/dr-dynamic-tag/dr-dynamic-tag.component';\nexport {DrDynamicTagModule as ɵs} from './lib/dr-dynamic-tag/dr-dynamic-tag.module';\nexport {DrDatePickerFormatDirective as ɵk} from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport {DrDatePickerWithTimeframeComponent as ɵj} from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport {CustomDateAdapter as ɵg,DrDatePickerComponent as ɵh} from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport {DrDatePickerCustomHeaderComponent as ɵl} from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport {DrShowTimeframePipe as ɵm} from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport {DrDatePickerService as ɵi} from './lib/dr-inputs/date-pickers/services/dr-date-picker.service';\nexport {DrSelectAddItemComponent as ɵn} from './lib/dr-inputs/dr-select-add-item/dr-select-add-item.component';\nexport {DrScenarioConfigurationComponent as ɵbb} from './lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component';\nexport {DrScenarioTagConfigurationComponent as ɵbc} from './lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nexport {TooltipInfoSimpleComponent as ɵp} from './lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component';\nexport {TooltipInfoComponent as ɵo} from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport {TooltipNoBodyComponent as ɵq} from './lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component';\nexport {TooltipProcessDefaultComponent as ɵr} from './lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component';\nexport {TreeviewItemComponent as ɵbe} from './lib/dr-treeview/components/treeview-item/treeview-item.component';\nexport {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {StepperComponent as ɵu} from './lib/stepper/stepper.component';"],"names":["EventEmitter","Component","ViewEncapsulation","Input","Output","DateFromats","DatePickerPeriodPosition","TimeframeOption","CalendarView","DateTags","moment","_cloneDeep","_find","DateAdapter","MomentDateAdapter","MAT_DATE_LOCALE","MAT_MOMENT_DATE_ADAPTER_OPTIONS","_indexOf","Injectable","MAT_DATE_FORMATS","HostBinding","TagTypes","_map","_merge","_forEach","_some","NG_VALUE_ACCESSOR","ChangeDetectionStrategy","ChangeDetectorRef","Subject","startWith","switchMap","from","takeUntil","merge","isPlatformBrowser","fromEvent","filter","forwardRef","ElementRef","Inject","PLATFORM_ID","DOCUMENT","ContentChildren","noop","Renderer2","ViewChild","ContentChild","NgSelectComponent","Pipe","transition","style","animate","BehaviorSubject","TemplateRef","trigger","HostListener","TooltipTheme","ComponentPortal","skip","Directive","Overlay","OverlayPositionBuilder","ToggleButtonMode","SpinnerType","SpinnerSize","ComponentFactoryResolver","ViewContainerRef","DrPopoverAlignmentDimension","OverlayConfig","Injector","first","Host","state","FormGroupDirective","Optional","_","catchError","MatDialogRef","MAT_DIALOG_DATA","DIALOG_SIZE","DIALOG_BUTTON_LABEL","DIALOG_FIELD_TYPE","FormGroup","throwError","tap","finalize","FormControl","MatDialog","CHAT_MESSAGE_TYPE","ChatRole","DomSanitizer","DrAlertTheme","_a","isNil","pull","concat","isString","isBoolean","includes","TooltipPosition","Scenario","debounceTime","distinctUntilChanged","NgModel","BadgeStatus","FeedbackSentiment","_orderBy","_filter","_includes","_reduce","MatCalendar","NgControl","NgModule","CommonModule","components","FormsModule","ReactiveFormsModule","NgSelectModule","MatNativeDateModule","MatDatepickerModule","MatTooltipModule","_isObject","_isNil","_isNumber","MatTabsModule","ɵ0","MatDialogModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,QAAA,gBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,gBAAA,GAAA;IAOa,QAAA,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;IACrC,QAAA,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IACvB,QAAA,IAAY,CAAA,YAAA,GAAuB,SAAS,CAAC;IAC7C,QAAA,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;IAIzB,QAAA,IAAqB,CAAA,qBAAA,GAA2B,EAAE,CAAC;IAClD,QAAA,IAAA,CAAA,YAAY,GAA2B,IAAIA,eAAY,EAAY,CAAC;SAQjF;QANG,gBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,IAAI,EAAA;YAAvB,IAKC,KAAA,GAAA,IAAA,CAAA;IAJG,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACjC,YAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC,EAAE,GAAG,CAAC,CAAC;SACX,CAAA;;;;IAtBJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,yuDAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;oBAEpB,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;uBAEIC,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;+BACLC,SAAM,EAAA,CAAA;;AAcX,QAAA,eAAA,kBAAA,YAAA;IAOI,IAAA,SAAA,eAAA,GAAA;IANU,QAAA,IAAA,CAAA,UAAU,GAA2B,IAAIJ,eAAY,EAAY,CAAC;IACnE,QAAA,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;IACrC,QAAA,IAAY,CAAA,YAAA,GAAuB,SAAS,CAAC;YAEtD,IAAA,CAAA,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAG7B;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5C,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;QAED,eAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,KAAY,EAAA;IAC3B,QAAA,IAAM,KAAK,GAAuC,KAAK,CAAC,MAAM,CAAC;IAC/D,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtC,CAAA;QAED,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;;SAErB,CAAA;;;;IAjCJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,EAAE;IACZ,gBAAA,QAAQ,EAAE,SAAS;IACtB,aAAA,EAAA,EAAA;;;;6BAEIG,SAAM,EAAA,CAAA;uBACND,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;;;ICrCV;;;;;;;;;;;;;IAagF;IAChF;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,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;IACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;IAC1B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;IACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IACvC,IAAA,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,YAAA;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;IAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACjD,YAAA,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;IAChF,SAAA;IACD,QAAA,OAAO,CAAC,CAAC;IACb,KAAC,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;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;IAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,SAAA;IACL,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEK,SAAU,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAA;IACpD,IAAA,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;IAAE,QAAA,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;IAC1H,QAAA,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAAE,YAAA,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAAE,gBAAA,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;IAClJ,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAEe,SAAA,OAAO,CAAC,UAAU,EAAE,SAAS,EAAA;IACzC,IAAA,OAAO,UAAU,MAAM,EAAE,GAAG,EAAA,EAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;IAEe,SAAA,UAAU,CAAC,WAAW,EAAE,aAAa,EAAA;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;IAEK,SAAU,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;IACvD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;IACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,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;IAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,KAAC,CAAC,CAAC;IACP,CAAC;IAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;IACrC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,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,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE,EAAA;IACZ,QAAA,IAAI,CAAC;IAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC9D,QAAA,OAAO,CAAC;gBAAE,IAAI;IACV,gBAAA,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;IAAE,oBAAA,OAAO,CAAC,CAAC;IAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;IACT,oBAAA,KAAK,CAAC,CAAC;IAAC,oBAAA,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;IAC9B,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;IACjD,oBAAA,KAAK,CAAC;IAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IACjD,oBAAA;IACI,wBAAA,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;IAAE,yBAAA;IAC5G,wBAAA,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;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;IACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;IAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IAC9B,iBAAA;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9B,aAAA;IAAC,YAAA,OAAO,CAAC,EAAE;IAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAAS,oBAAA;IAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,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,EAAA;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,YAAA,EAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;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;IAEa,SAAA,YAAY,CAAC,CAAC,EAAE,CAAC,EAAA;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;IAAE,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAAE,YAAA,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAEK,SAAU,QAAQ,CAAC,CAAC,EAAA;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;IAC9E,IAAA,IAAI,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAA,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;IAC1C,YAAA,IAAI,EAAE,YAAA;IACF,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IACnC,gBAAA,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;IACF,IAAA,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;IACvB,IAAA,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAA,IAAI,CAAC,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC;IACjB,IAAA,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;IAAE,YAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAA;IACD,IAAA,OAAO,KAAK,EAAE;IAAE,QAAA,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAE,KAAA;IAC/B,YAAA;YACJ,IAAI;IACA,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAE,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,SAAA;IACO,gBAAA;IAAE,YAAA,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAAE,SAAA;IACpC,KAAA;IACD,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ,GAAA;IACpB,IAAA,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IAC9C,QAAA,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc,GAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IAAE,QAAA,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;IACpB,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEe,SAAA,aAAa,CAAC,EAAE,EAAE,IAAI,EAAA;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;YAC7D,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAEK,SAAU,OAAO,CAAC,CAAC,EAAA;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,EAAA;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACvF,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC9D,IAAA,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,YAAc,EAAA,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAI,EAAA,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;IAC1I,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAE,KAAA;IAAC,IAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE,KAAA,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,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;IACxH,IAAA,SAAS,OAAO,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;IAAE,QAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;IAEK,SAAU,gBAAgB,CAAC,CAAC,EAAA;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAA,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,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5I,IAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAI,EAAA,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;IAEK,SAAU,aAAa,CAAC,CAAC,EAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,IAAA,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,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAI,EAAA,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;IAChK,IAAA,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAI,EAAA,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;IAEe,SAAA,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAA;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;IAAE,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAAE,KAAA;IAAM,SAAA;IAAE,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAAE,KAAA;IAC/G,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACnD,IAAA,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,EAAA;IACd,IAAA,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;IAEI,SAAU,YAAY,CAAC,GAAG,EAAA;IAC5B,IAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;IAAE,QAAA,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;IAAE,YAAA,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAAE,gBAAA,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACzI,IAAA,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAEK,SAAU,eAAe,CAAC,GAAG,EAAA;IAC/B,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;IAC3D,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,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;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;IACnL,IAAA,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;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;QAClE,IAAI,IAAI,KAAK,GAAG;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxE,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,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;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IAClL,IAAA,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;;AC1OYE,iCAOX;IAPD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,yBAAA,CAAA,GAAA,YAAsC,CAAA;IACtC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,YAAgC,CAAA;IAChC,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,MAAoB,CAAA;IACpB,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,SAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,QAAyB,CAAA;IACzB,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,QAAsB,CAAA;IAC1B,CAAC,EAPWA,mBAAW,KAAXA,mBAAW,GAOtB,EAAA,CAAA,CAAA,CAAA;AAeD,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;YACY,IAAA,CAAA,MAAM,GAAc;gBACxB,SAAS,EAAEA,mBAAW,CAAC,iBAAiB;aAC3C,CAAC;YACM,IAAA,CAAA,QAAQ,GAAgB;gBAC5B,SAAS,EAAEA,mBAAW,CAAC,iBAAiB;IACxC,YAAA,cAAc,EAAE,UAAU;IAC1B,YAAA,aAAa,EAAE,IAAI;IACnB,YAAA,kBAAkB,EAAE,UAAU;IAC9B,YAAA,gBAAgB,EAAE,QAAQ;IAC1B,YAAA,SAAS,EAAE,MAAM;aACpB,CAAC;SAyBL;IAvBG,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAIT,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;IAND,QAAA,GAAA,EAAA,UAAU,KAAgB,EAAA;IACtB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACvD;;;IAAA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAIX,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,QAAQ,CAAC;aACxB;IAND,QAAA,GAAA,EAAA,UAAY,OAAoB,EAAA;IAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;aAC7D;;;IAAA,KAAA,CAAA,CAAA;IAMD,IAAA,gBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,KAAgB,EAAE,OAAqB,EAAA;IACpD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO,GAAG,KAAK,CAAC;IACnB,SAAA;IACD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAC1B,CAAA;QACJ,OAAA,gBAAA,CAAA;IAAA,CAAA,EAAA,EAAA;AAUWC,8CAKX;IALD,CAAA,UAAY,wBAAwB,EAAA;QAChC,wBAAA,CAAA,wBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;QACb,wBAAA,CAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;QAChB,wBAAA,CAAA,wBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;QACf,wBAAA,CAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACX,CAAC,EALWA,gCAAwB,KAAxBA,gCAAwB,GAKnC,EAAA,CAAA,CAAA,CAAA;AAEWC,qCAMX;IAND,CAAA,UAAY,eAAe,EAAA;IACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EANWA,uBAAe,KAAfA,uBAAe,GAM1B,EAAA,CAAA,CAAA,CAAA;AAEWC,kCAKX;IALD,CAAA,UAAY,YAAY,EAAA;IACpB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,OAAkB,CAAA;IAClB,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,MAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,MAAqB,CAAA;IACrB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;IAC5B,CAAC,EALWA,oBAAY,KAAZA,oBAAY,GAKvB,EAAA,CAAA,CAAA,CAAA;AAEWC,8BAKX;IALD,CAAA,UAAY,QAAQ,EAAA;IAChB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IAC7B,CAAC,EALWA,gBAAQ,KAARA,gBAAQ,GAKnB,EAAA,CAAA,CAAA;;ICtFD;IAEA;IACA,IAAMC,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,4BAA4B,GAAG,YAAY,CAAC;AAelD,QAAA,oBAAA,kBAAA,UAAA,MAAA,EAAA;QAA0C,SAAe,CAAA,oBAAA,EAAA,MAAA,CAAA,CAAA;IA6BrD,IAAA,SAAA,oBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IA9BQ,QAAA,KAAwB,CAAA,wBAAA,GAAGJ,gCAAwB,CAAC;IAGpD,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IACvB,QAAA,KAAqB,CAAA,qBAAA,GAA2B,EAAE,CAAC;IAE5D,QAAA,KAAa,CAAA,aAAA,GAAuB,SAAS,CAAC;IAE9C,QAAA,KAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;YAE5B,KAAA,CAAA,YAAY,GAAU;gBAClB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC7C,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;aAChD,CAAC;IAEM,QAAA,KAAa,CAAA,aAAA,GAAG,IAAI,CAAC;IACrB,QAAA,KAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;;SAIlC;QAED,oBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,GAAGI,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAGA,QAAM,EAAE,CAAC;IAC9E,QAAA,IAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;IAC/D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAEvF,IAAI,CAAC,YAAY,GAAGA,QAAM;iBACrB,GAAG,CACG,IAAI,CAAC,mBAAmB,SAAI,IAAI,CAAC,mBAAmB,GAAA,GAAA,GAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAG,EAC9I,4BAA4B,CAC/B;IACA,aAAA,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IAChB,aAAA,IAAI,EAAE,CAAC;YAEZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAExB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrB,IAAI,CAAC,aAAa,GAAGC,WAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,SAAA;SACJ,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YAAA,IAWC,KAAA,GAAA,IAAA,CAAA;IAVG,QAAA,IAAM,IAAI,GAAGD,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,WAAW,EAAA;gBACjD,WAAW,CAAC,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;oBAClD,IAAM,MAAM,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,gBAAA,OAAO,MAAM,CAAC,KAAK,EAAE,KAAK,WAAW,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;IAC5E,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,WAAW,CAAC;IACvB,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAChC,SAAA;SACJ,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,UAAuB,OAAO,EAAE,uBAAuB,EAAA;YACnD,IAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,uBAAuB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAC/C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;IAED,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SACtD,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAA;IACpE,QAAA,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,EAAE;IACnB,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,uBAAuB,IAAI,uBAAuB,KAAK,CAAC,EAAE;oBACjF,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,uBAAuB,IAAI,uBAAuB,KAAK,CAAC,EAAE;oBAChF,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IACD,QAAA,OAAO,WAAW,CAAC;SACtB,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YACI,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;YACI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAGC,WAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YAAA,IAkCC,KAAA,GAAA,IAAA,CAAA;;YAjCG,IAAI,IAAI,CAAC,mBAAmB;gBAAE,OAAO;IAErC,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;YACjC,IAAM,IAAI,GAAGD,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,QAAA,IAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;IAC/D,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;IAEtD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC7C,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE1D,IAAI,uBAAuB,KAAK,CAAC,EAAE;oBAC/B,IAAI,CAAC,gBAAgB,EAAE;IACnB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,uBAAuB,CAAC,CAAC;IACjE,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC;IAChE,iBAAA;IACJ,aAAA;IAED,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAExC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAChC,YAAA,UAAU,CAAC,YAAA;IACP,gBAAA,KAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACrC,aAAC,CAAC,CAAC;IACN,SAAA;IAED,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;IACxB,YAAA,KAAK,EAAE,CAAI,CAAA,EAAA,GAAAE,MAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAM,IAAA,IAAA,GAAM,IAAI,CAAC,IAAI,EAAG,GAAG,GAAA;IAC/F,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAACF,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC3D,CAAC;IACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,oBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;IACX,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;IACjC,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;IAClE,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KAhKN,CAA0C,eAAe;;IAbxD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAA0C,EAAA,4hEAAA;IAC1C,gBAAA,QAAQ,EAAE,cAAc;IAExB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACJ,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;uCAIIb,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;;;AC7BV,QAAA,kBAAA,kBAAA,YAAA;IAiBI,IAAA,SAAA,kBAAA,GAAA;SACC;IAEa,IAAA,kBAAA,CAAA,sBAAsB,GAA7B,UAA8B,IAAY,EAAE,oBAA4B,EAAA;YAC3E,IAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAC5C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,EAAE;IAC3C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;IAED,QAAA,OAAOc,SAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC;SAC7G,CAAA;IAEa,IAAA,kBAAA,CAAA,qBAAqB,GAA5B,UAA6B,IAAY,EAAE,oBAA4B,EAAE,cAAuB,EAAA;IACnG,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE9B,IAAI,CAAC,cAAc,EAAE;gBACjB,IAAI,KAAK,GAAG,CAAC,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;oBACjE,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IAAM,aAAA;gBACH,IAAI,KAAK,GAAG,CAAC,GAAG,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;oBAChE,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IAED,QAAA,OAAO,WAAW,CAAC;SACtB,CAAA;QAEa,kBAAgB,CAAA,gBAAA,GAAvB,UAAwB,KAAa,EAAA;YACxC,OAAO,kBAAkB,CAAC,eAAe,CAAC,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;SACpF,CAAA;QAEa,kBAAqC,CAAA,qCAAA,GAA5C,UACH,YAAoB,EACpB,UAAkB,EAClB,oBAA4B,EAC5B,cAAuB,EAAA;IAEvB,QAAA,IAAM,aAAa,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,YAAY,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;YACpH,OAAO,kBAAkB,CAAC,uBAAuB,CAAC,aAAa,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;SAC1G,CAAA;IAEa,IAAA,kBAAA,CAAA,0BAA0B,GAAjC,UACH,IAAY,EACZ,UAAkB,EAClB,oBAA4B,EAAA;IAE5B,QAAA,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI;gBAAE,OAAO;IAEjC,QAAA,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAErC,QAAA,IAAM,WAAW,GAAW,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,IAAI,CAC7E,UAAC,GAAW,EAAK,EAAA,OAAA,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,UAAU,CAAtD,EAAsD,CAC1E,CAAC;IACF,QAAA,IAAM,0BAA0B,GAAG,WAAW,GAAG,oBAAoB,GAAG,CAAC,CAAC;IAC1E,QAAA,IAAM,WAAW,GAAG,0BAA0B,IAAI,EAAE,GAAG,0BAA0B,GAAG,EAAE,GAAG,0BAA0B,CAAC;IAEpH,QAAA,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SACtE,CAAA;IAEa,IAAA,kBAAA,CAAA,uBAAuB,GAA9B,UACH,mBAA2B,EAC3B,oBAA4B,EAC5B,cAAuB,EAAA;IAEvB,QAAA,IAAI,CAAC,mBAAmB;gBAAE,OAAO;IAEjC,QAAA,IAAI,qBAAqB,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACxD,QAAA,IAAI,cAAc,EAAE;IAChB,YAAA,IAAI,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;IACxF,gBAAA,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACxC,aAAA;IACJ,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;IACzF,gBAAA,qBAAqB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,aAAA;IACJ,SAAA;IACD,QAAA,OAAO,qBAAqB,CAAC,IAAI,EAAE,CAAC;SACvC,CAAA;;;IApGuB,kBAAU,CAAA,UAAA,GAAG,CAAC,CAAC;IACxB,kBAAA,CAAA,eAAe,GAAG;IAC7B,IAAA,GAAG,EAAE,MAAM;IACX,IAAA,GAAG,EAAE,MAAM;IACX,IAAA,GAAG,EAAE,MAAM;IACX,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,GAAG,EAAE,KAAK;IACV,IAAA,IAAI,EAAE,MAAM;IACZ,IAAA,IAAI,EAAE,MAAM;KACf,CAAC;;gBAhBLC,aAAU,EAAA;;;;ICCX;IACA,IAAMR,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,aAAa,GAAG;IAClB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,YAAY;IAC1B,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,WAAW;IACtB,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAY6C,aAAa,CAAA;AAI5D,QAAA,iBAAA,kBAAA,UAAA,MAAA,EAAA;QAAuC,SAAe,CAAA,iBAAA,EAAA,MAAA,CAAA,CAAA;IAUlD,IAAA,SAAA,iBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;;SAM/B;IAXD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;aACvE;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,IAAIA,QAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACjC,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACvB,SAAA;SACJ,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAa,EAAA;YAC1B,IAAM,UAAU,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;IACxB,YAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;IACrC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;aACvC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;;QAGD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;IACX,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC;IAClE,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KA/CN,CAAuC,eAAe;;IAdrD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAuC,EAAA,sWAAA;IAEvC,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEG,qBAAgB,EAAE,QAAQ,MAAe,EAAE;IACzD,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;IAGI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAK1BjB,QAAK,EAAA,CAAA;;;ICrCV;IACA,IAAMO,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAOjC,QAAA,mBAAA,kBAAA,UAAA,MAAA,EAAA;QAAyC,SAAe,CAAA,mBAAA,EAAA,MAAA,CAAA,CAAA;IAYpD,IAAA,SAAA,mBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IAChC,QAAA,KAAa,CAAA,aAAA,GAAG,CAAC,CAAC;IAClB,QAAA,KAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;;SAIpB;IAbD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAAA,IAKC,KAAA,GAAA,IAAA,CAAA;gBAHG,OAAO,IAAI,CAAC,QAAQ;sBACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,OAAO,EAAK,EAAA,OAAA,CAAC,KAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAA5C,EAA4C,CAAC;sBAC7E,KAAK,CAAC;aACf;;;IAAA,KAAA,CAAA,CAAA;QAUD,mBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;IACnB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;;IACI,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;;gBAEzC,KAAsB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,QAAQ,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAhC,gBAAA,IAAM,OAAO,GAAA,EAAA,CAAA,KAAA,CAAA;oBACd,IAAI,OAAO,CAAC,UAAU,EAAE;IACpB,oBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC7B,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClC,iBAAA;IAED,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAA;;;;;;;;;SACJ,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,OAAO,EAAA;YACpB,IAAM,UAAU,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;gBACxB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAClD,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;aACpC,CAAC;IACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACI,IAAM,mBAAmB,GAAG,CAAC,CAAC;YAC9B,IAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,QAAA,IAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,YAAY,GAAG,WAAW,CAAC;IAC/B,QAAA,IAAI,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;IACnB,YAAA,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3C,SAAA;IAED,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,UAAU,CAAC,GAAG,kBAAkB,CAAC;YACtG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,CAAC;IAAC,QAAA,IAAI,SAAS,CAAC;YACrB,IAAM,SAAS,GAAU,EAAE,CAAC;IAC5B,QAAA,KAAK,CAAC,GAAG,CAAC,GAAG,mBAAmB,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,EAAE;IACtD,YAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,YAAA,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,YAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,YAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,SAAS,GAAG,IAAI;IACvB,gBAAA,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IACtC,gBAAA,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,gBAAA,QAAQ,EAAE,KAAK;IAClB,aAAA,CAAC,CAAC;IACN,SAAA;IACD,QAAA,OAAO,SAAS,CAAC;SACpB,CAAA;QAEO,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,SAAS,EAAA;IAC7B,QAAA,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;SACjF,CAAA;QAEO,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,IAAI,EAAA;IACxB,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC9D,CAAA;QAED,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,OAAO,EAAA;YACd,IAAM,WAAW,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,OAAO,EAAE,EAAE;IACxF,gBAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,gBAAA,OAAO,IAAI,CAAC;IACf,aAAA;IAED,YAAA,OAAO,KAAK,CAAC;IACjB,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KA7GN,CAAyC,eAAe;;IALvD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAyC,EAAA,geAAA;IAEzC,gBAAA,QAAQ,EAAE,aAAa;;IAC1B,aAAA,EAAA,EAAA;;;;IAEI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAO1BjB,QAAK,EAAA,CAAA;;;ICdV;IACA,IAAMO,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,YAAY,GAAG;IACjB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,SAAS;IACvB,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,iBAAiB;IAC5B,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAY6C,YAAY,CAAA;AAG3D,QAAA,gBAAA,kBAAA,UAAA,MAAA,EAAA;QAAsC,SAAe,CAAA,gBAAA,EAAA,MAAA,CAAA,CAAA;IAUjD,IAAA,SAAA,gBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;;SAM/B;IAXD,IAAA,MAAA,CAAA,cAAA,CACI,gBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;aACvE;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,IAAIA,QAAM,EAAE,CAAC,IAAI,EAAE,CAAE;IACxD,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAC9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;SACpC,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACtB,SAAA;SACJ,CAAA;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;IACX,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACzB,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;IAChE,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;QAEF,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAa,EAAA;IAC1B,QAAA,IAAM,UAAU,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvD,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;IACxB,YAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACpC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;aACvC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAEO,gBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAM,EAAA;YACvB,OAAQ,GAAA,GAAK,MAAM,CAAC,IAAI,EAAG,SAAK,MAAM,CAAC,IAAI,EAAK,CAAC;SACpD,CAAA;;KApDL,CAAsC,eAAe;;IAbpD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,wTAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;IAEpB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEG,qBAAgB,EAAE,QAAQ,MAAc,EAAE;IACxD,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;IAEI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAK1BjB,QAAK,EAAA,CAAA;;;IClCV;IACA,IAAMO,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,YAAY,GAAG;IACjB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,MAAM;IACpB,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,MAAM;IACjB,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAY6C,YAAY,CAAA;AAI3D,QAAA,gBAAA,kBAAA,UAAA,MAAA,EAAA;QAAsC,SAAe,CAAA,gBAAA,EAAA,MAAA,CAAA,CAAA;IAUjD,IAAA,SAAA,gBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;;SAM/B;IAXD,IAAA,MAAA,CAAA,cAAA,CACI,gBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;aACvE;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,IAAIA,QAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACjC,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACtB,SAAA;SACJ,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAa,EAAA;YAC1B,IAAM,UAAU,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEpB,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;IACxB,YAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IAChC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;aACvC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;IACX,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAErC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,gBAAgB,CAAC;IAChD,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KA9CN,CAAsC,eAAe;;IAdpD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,qWAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;IAEpB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEG,qBAAgB,EAAE,QAAQ,MAAc,EAAE;IACxD,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;IAGI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAK1BjB,QAAK,EAAA,CAAA;;;ICxCV;IACA;AACYkB,8BAGX;IAHD,CAAA,UAAY,QAAQ,EAAA;IAChB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EAHWA,gBAAQ,KAARA,gBAAQ,GAGnB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,iBAWX,CAAA;IAXD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;IACjC,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC/B,CAAC,EAXW,iBAAiB,KAAjB,iBAAiB,GAW5B,EAAA,CAAA,CAAA;;ACED,QAAA,cAAA,kBAAA,YAAA;IAqDI,IAAA,SAAA,cAAA,GAAA;IAjDS,QAAA,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IAKvB,QAAA,IAAgB,CAAA,gBAAA,GAAgB,EAAE,CAAC;YAclC,IAAA,CAAA,SAAS,GAAgC,IAAIrB,eAAY,EAAiB,CAAC;IAC3E,QAAA,IAAA,CAAA,gBAAgB,GAAkC,IAAIA,eAAY,EAAmB,CAAC;IACtF,QAAA,IAAA,CAAA,aAAa,GAAmC,IAAIA,eAAY,EAAoB,CAAC;IAIxF,QAAA,IAA4B,CAAA,4BAAA,GAAG,KAAK,CAAC;IACrC,QAAA,IAAQ,CAAA,QAAA,GAAGqB,gBAAQ,CAAC;IAKV,QAAA,IAAe,CAAA,eAAA,GAAG,CAAC,iBAAiB,CAAC,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEpF,QAAA,IAAmB,CAAA,mBAAA,GAAoB,EAAE,CAAC;IAE1C,QAAA,IAAc,CAAA,cAAA,GAAoB,EAAE,CAAC;YAezC,IAAI,CAAC,WAAW,GAAG;IACf,YAAA,EAAE,EAAE,CAAC;IACL,YAAA,KAAK,EAAE,SAAS;IAChB,YAAA,IAAI,EAAE,EAAE;aACX,CAAC;SACL;IAhDD,IAAA,MAAA,CAAA,cAAA,CACW,cAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IA6BxB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,cAAc,CAAC;aAC9B;IAhCD,QAAA,GAAA,EAAA,UACyB,IAAqB,EAAA;IAC1C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;aACpC;;;IAAA,KAAA,CAAA,CAAA;IA+BD,IAAA,MAAA,CAAA,cAAA,CAAW,cAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IAAtB,QAAA,GAAA,EAAA,YAAA;;IACI,YAAA,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,0CAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,CAAC;aAC1E;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,cAAwB,CAAA,SAAA,EAAA,0BAAA,EAAA;IAAnC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,cAAc,CAAC;aACzG;;;IAAA,KAAA,CAAA,CAAA;QAUD,cAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,aAA4B,EAAA;YACpC,IAAI,aAAa,CAAC,UAAU,EAAE;gBAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC9B,SAAA;SACJ,CAAA;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;;YACI,IAAI,CAAC,OAAO,GAAG;IACX,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;IACzB,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ;gBACzC,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,0CAAE,KAAK;aACjC,CAAC;YAEF,IAAI,CAAC,OAAO,GAAG;IACX,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;IACzB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;IACzB,YAAA,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;gBAC7B,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,0CAAE,KAAK;aACjC,CAAC;IAEF,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC5B,SAAA;IAED,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE;gBAClF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;IAC5D,SAAA;SACJ,CAAA;QAED,cAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAe,EAAA;YACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE;IACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAkB;IAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;gBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;aACvB,CAAC;IAEF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,CAAA;QAED,cAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAe,EAAA;YACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE;IACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAkB;IAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;IACrB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;gBACzB,KAAK,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,CAAA;QAED,cAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,GAAmB,EAAA;IAClC,QAAA,IAAI,GAAG,EAAE;IACL,YAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC9B,SAAA;IAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAK,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,IAAI,CAAC,mBAAmB,CAAE,CAAA,EAAA,CAAA,IAAI,CAAC,eAAe,GAAE,CAAC;SACnF,CAAA;QAEO,cAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;YAC1B,IAAM,sBAAsB,GAAGT,MAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,SAAS,EAAA,EAAK,OAAA,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAA,EAAA,CAAC,CAAC;YACpG,IAAI,CAAC,aAAa,GAAGU,KAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAA,GAAG,EAAA;IAC7C,YAAA,IAAI,GAAG,CAAC,EAAE,KAAK,sBAAsB,CAAC,EAAE,EAAE;IACtC,gBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACxB,gBAAA,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE1B,gBAAA,IAAI,sBAAsB,CAAC,IAAI,KAAKD,gBAAQ,CAAC,IAAI,EAAE;IAC/C,oBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,iBAAA;IACJ,aAAA;IAED,YAAA,OAAO,GAAG,CAAC;IACf,SAAC,CAAC,CAAC;IAEH,QAAA,IAAM,WAAW,GAAkB;gBAC/B,EAAE,EAAE,sBAAsB,CAAC,EAAE;gBAC7B,IAAI,EAAE,sBAAsB,CAAC,IAAI;gBACjC,KAAK,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC;IAEF,QAAA,IAAI,sBAAsB,CAAC,IAAI,KAAKA,gBAAQ,CAAC,IAAI,EAAE;IAC/C,YAAA,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,YAAA,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACrC,SAAA;IAGD,QAAA,IAAM,QAAQ,GAAGT,MAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzE,QAAA,IAAI,QAAQ,EAAE;IACV,YAAAW,OAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjC,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,SAAA;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IA4BP,KAAA,GAAA,IAAA,CAAA;IA3BG,QAAAC,SAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,SAAS,EAAA;;IAChC,YAAA,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,OAAO;IACvE,YAAA,IAAI,SAAS,CAAC,IAAI,KAAKH,gBAAQ,CAAC,IAAI,EAAE;oBAClC,KAAI,CAAC,OAAO,GAAG;wBACX,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,oBAAA,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ;wBACpC,KAAK,EAAE,CAACT,MAAK,CAAC,KAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK;qBACvE,CAAC;IACL,aAAA;IAED,YAAA,IAAI,SAAS,CAAC,IAAI,KAAKS,gBAAQ,CAAC,IAAI,EAAE;oBAClC,KAAI,CAAC,OAAO,GAAG;wBACX,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,MAAM,EAAE,SAAS,CAAC,MAAM;IACxB,oBAAA,KAAK,EAAE,CAAA,EAAA,GAAA,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa;qBAC3C,CAAC;IACL,aAAA;IAED,YAAA,IAAI,CAACT,MAAK,CAAC,KAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE;IAClD,gBAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC;wBACpB,EAAE,EAAE,SAAS,CAAC,EAAE;wBAChB,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,oBAAA,KAAK,EAAE,SAAS;IACnB,iBAAA,CAAC,CAAC;IACN,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;YAAA,IAOP,KAAA,GAAA,IAAA,CAAA;YANG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;IAE1D,QAAA,IAAI,CAAC,4BAA4B,GAAGa,MAAK,CACrC,IAAI,CAAC,UAAU,EACf,UAAC,SAAS,EAAK,EAAA,OAAA,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAA7F,EAA6F,CAC/G,CAAC;SACL,CAAA;;;;IApNJ,IAAA,EAAA,IAAA,EAAAxB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAoC,EAAA,ozDAAA;IACpC,gBAAA,QAAQ,EAAE,QAAQ;oBAElB,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;;4BAEIC,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;6BAELA,QAAK,EAAA,CAAA;mCACLA,QAAK,EAAA,CAAA;gCAELA,QAAK,EAAA,CAAA;yCAKLA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,CAAA;wCAGLA,QAAK,EAAA,CAAA;4BAELC,SAAM,EAAA,CAAA;mCACNA,SAAM,EAAA,CAAA;gCACNA,SAAM,EAAA,CAAA;;;AClCX,QAAA,gBAAA,kBAAA,YAAA;IAOI,IAAA,SAAA,gBAAA,GAAA;IALS,QAAA,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;IAGjB,QAAA,IAAA,CAAA,SAAS,GAA2B,IAAIJ,eAAY,EAAY,CAAC;SAG1E;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC5C,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;IAClB,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,QAAA,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;IACvB,YAAA,IAAM,SAAS,GAAa;oBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,gBAAA,KAAK,EAAA,KAAA;iBACR,CAAC;IACF,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,SAAA;SACJ,CAAA;;;;IA9BJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,wwBAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;oBAEpB,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;;yBAGIC,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BACLC,SAAM,EAAA,CAAA;;;ICVX;IACA,IAAMM,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,WAAW,GAAG;IAChB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,YAAY;IAC1B,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,YAAY;IACvB,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAY6C,WAAW,CAAA;AAI1D,QAAA,eAAA,kBAAA,UAAA,MAAA,EAAA;QAAqC,SAAe,CAAA,eAAA,EAAA,MAAA,CAAA,CAAA;IAUhD,IAAA,SAAA,eAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;;SAM/B;IAXD,IAAA,MAAA,CAAA,cAAA,CACI,eAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAACA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;aACvE;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,IAAIA,QAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACjC,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACrB,SAAA;SACJ,CAAA;QAED,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAa,EAAA;YAC1B,IAAM,IAAI,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;IAClB,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAChC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;aACjC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,eAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,UAAU,EAAA;IACjB,QAAA,IAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;YAE/B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,SAAS,EAAA;gBACnC,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;IACpC,SAAC,CAAC,CAAC;SACN,CAAA;QAAA,CAAC;;KA5CN,CAAqC,eAAe;;IAdnD,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAqC,EAAA,sWAAA;IACrC,gBAAA,QAAQ,EAAE,SAAS;IAEnB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEG,qBAAgB,EAAE,QAAQ,MAAa,EAAE;IACvD,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;IAGI,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;6BAK1BjB,QAAK,EAAA,CAAA;;;ACzBV,QAAA,oBAAA,kBAAA,YAAA;IA2BI,IAAA,SAAA,oBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAxBhC,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAIH,eAAY,EAAE,CAAC;IAWtD,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAQ1B,QAAA,IAAA,CAAA,QAAQ,IAAS,UAAA,SAAS,EAAA;IAC1B,SAAC,CAAC,CAAC;YACH,IAAS,CAAA,SAAA,GAAQ,YAAA;IACjB,SAAC,CAAC;SAGD;IAvBD,IAAA,MAAA,CAAA,cAAA,CACI,oBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB;IAED,QAAA,GAAA,EAAA,UAAa,QAAiB,EAAA;IAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;aAC7B;;;IAJA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;;;IAAA,KAAA,CAAA,CAAA;QAUD,oBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAE,EAAA;IACf,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,oBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAE,EAAA;IAChB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,oBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IACxB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,oBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAK,EAAA;IACd,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;IACtB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,SAAA;SACJ,CAAA;QAED,oBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAK,EAAA;IACd,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC,CAAA;QAED,oBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAY,EAAA;IACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;IACI,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;;;;IA1EJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA4C,EAAA,2VAAA;IAE5C,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEyB,uBAAiB;IAC1B,wBAAA,WAAW,EAAE,oBAAoB;IACjC,wBAAA,KAAK,EAAE,IAAI;IACd,qBAAA;IACJ,iBAAA;oBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAfiCC,oBAAiB,EAAA;;;uBAiB9CzB,QAAK,EAAA,CAAA;IACL,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,OAAO,EAAA,EAAA,CAAA;8BACbC,SAAM,EAAA,CAAA;2BAEND,QAAK,EAAA,CAAA;;;ACaV,QAAA,mBAAA,kBAAA,YAAA;IAgCI,IAAA,SAAA,mBAAA,CACc,WAAoC,EACf,UAAU,EACb,QAAQ,EAAA;IAF1B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;IACf,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAA;IACb,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAA;IAI9B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI0B,YAAO,EAAQ,CAAC;IAO/B,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI7B,eAAY,EAAE,CAAC;IACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,UAAC,KAAU,EAAA;IAChC,SAAC,CAAC;YACQ,IAAS,CAAA,SAAA,GAAG,YAAA;IACtB,SAAC,CAAC;SAbD;IAnCD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IADT,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;IAED,QAAA,GAAA,EAAA,UAAU,KAAU,EAAA;IAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;;;IALA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IADR,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;IAED,QAAA,GAAA,EAAA,UAAS,IAAY,EAAA;IACjB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;;;IALA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB;IAED,QAAA,GAAA,EAAA,UAAa,QAAiB,EAAA;IAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;;;IALA,KAAA,CAAA,CAAA;IA2BD,IAAA,mBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YAAA,IAiBC,KAAA,GAAA,IAAA,CAAA;;;;;;YAXG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEnB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CACpB8B,mBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;IAKtB,QAAAC,mBAAS,CAAC,UAAC,MAAuC,EAAK,EAAA,OAAAC,SAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA,EAAA,CAAC,EACrFC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,0BAA0B,EAAE,CAAjC,EAAiC,CAAC,CAAC;SACxD,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,mBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC9B,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,YAAA;YACN,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAChC,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YAAA,IAIT,KAAA,GAAA,IAAA,CAAA;YAHG,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAA2B,IAAK,OAAA,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,CAAzB,EAAyB,CAAC,CAAC;IACnF,SAAA;SACJ,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YAAA,IAIT,KAAA,GAAA,IAAA,CAAA;IAHG,QAAA,IAAI,CAAC,2BAA2B,CAAC,UAAC,KAA2B,EAAA;IACzD,YAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC;IAClC,SAAC,CAAC,CAAC;SACN,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YAAA,IAIT,KAAA,GAAA,IAAA,CAAA;IAHG,QAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;IACtC,YAAA,IAAI,CAAC,2BAA2B,CAAC,UAAC,KAA2B,IAAK,OAAA,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAA9B,EAA8B,CAAC,CAAC;IACrG,SAAA;SACJ,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,YAAA;YAAA,IAgBT,KAAA,GAAA,IAAA,CAAA;YAfG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACrC,OAAO;IACV,SAAA;IAED,QAAAC,UAAK,wCAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAA2B,EAAK,EAAA,OAAA,KAAK,CAAC,WAAW,GAAA,CAAC,IAAE,IAAI,CAC9ED,mBAAS,CACLC,UAAK,CACD,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,QAAQ,CAChB,CACJ,CACJ,CAAC,SAAS,CAAC,UAAC,KAAU,EAAA;IACnB,YAAA,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,YAAA,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,SAAC,CAAC,CAAC;SACN,CAAA;QAES,mBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,KAAU,EAAA;IAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACxB,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YAAA,IAqBT,KAAA,GAAA,IAAA,CAAA;IApBG,QAAA,IAAM,WAAW,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACxD,IAAI,CAACC,wBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,WAAW,EAAE;gBACpD,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;YACnDC,cAAS,CAAQ,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CACzCC,gBAAM,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAA1C,EAA0C,CAAC,EAC3DN,mBAAS,CAAC,YAAM,EAAA,OAAAG,UAAK,CACjBE,cAAS,CAAQ,KAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAC1CA,cAAS,CAAQ,KAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC3C,GAAA,CAAC,EACFC,gBAAM,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,GAAA,CAAC,EAC5DJ,mBAAS,CACLC,UAAK,CACD,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,QAAQ,CAChB,CACJ,CACJ,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,SAAS,EAAE,CAAA,EAAA,CAAC,CAAC;SACvC,CAAA;QAES,mBAA2B,CAAA,SAAA,CAAA,2BAAA,GAA3B,UAA4B,QAAwC,EAAA;YAC1E,IAAI,IAAI,CAAC,MAAM,EAAE;IACb,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAA;oBACtB,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC,aAAa,EAAE,CAAC;IAC1B,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,YAAA;IACN,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK,EAAA,EAAK,OAAA,KAAK,CAAC,UAAU,CAAhB,EAAgB,CAAC,CAAC;IACnE,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;YACvE,IAAI,YAAY,IAAI,cAAc,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;IACrE,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IACnC,SAAA;SACJ,CAAA;;;;IAjMJ,IAAA,EAAA,IAAA,EAAAjC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAAQ,EAAE,gEAC6C;IACvD,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEyB,uBAAiB;4BAC1B,WAAW,EAAEY,aAAU,CAAC,YAAA,EAAM,OAAA,mBAAmB,CAAA,EAAA,CAAC;IAClD,wBAAA,KAAK,EAAE,IAAI;IACd,qBAAA;IACJ,iBAAA;oBACD,eAAe,EAAEX,0BAAuB,CAAC,MAAM;IAClD,aAAA,EAAA,EAAA;;;gBA5BGY,aAAU,EAAA;IA+DL,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,SAAM,SAACC,cAAW,EAAA,EAAA,CAAA,EAAA;IAClB,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,SAAM,SAACE,eAAQ,EAAA,EAAA,CAAA,EAAA;;;wBAjCnBvC,QAAK,EAAA,CAAA;uBAULA,QAAK,EAAA,CAAA;2BAULA,QAAK,EAAA,CAAA;IAsBL,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAwC,kBAAe,SAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,EAAA,CAAA;8BAE3DvC,SAAM,EAAA,CAAA;;;ACpEX,QAAA,iBAAA,kBAAA,YAAA;IAuBI,IAAA,SAAA,iBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IArBjC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IACjB,QAAA,IAAI,CAAA,IAAA,GAAiB,EAAE,CAAC;IAYzB,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IACrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIJ,eAAY,EAAE,CAAC;YAE7C,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SAGD;IAnBD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IADjB,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,cAAc,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAkB,KAAc,EAAA;IAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC;IAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IALA,KAAA,CAAA,CAAA;QAkBD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAc,EAAA;IACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAK,EAAA;IACV,QAAA,IAAM,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC;IACjD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB,CAAA;;;;IA5DJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IACvB,gBAAA,QAAwC,EAAA,qZAAA;IAExC,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAEyB,uBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9E,iBAAA;oBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAXiCC,oBAAiB,EAAA;;;gCAa9CzB,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;gCAELA,QAAK,EAAA,CAAA;gCAWLC,SAAM,EAAA,CAAA;;;ACCX,QAAA,gBAAA,kBAAA,YAAA;IAyGI,IAAA,SAAA,gBAAA,CAAoB,UAAsB,EACtB,QAAmB,EACnB,GAAsB,EAAA;IAFtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IACnB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IA1G1C,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IA6BV,QAAA,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC;IAEhB,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;IACjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAiBhB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAIJ,eAAY,EAAE,CAAC;IAC1B,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAIA,eAAY,EAAE,CAAC;IAOrD,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;IAClB,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;IACjB,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;YAC7B,IAAA,CAAA,cAAc,GAAG;IACb,YAAA,IAAI,EAAE,KAAK;IACX,YAAA,WAAW,EAAE,KAAK;IAClB,YAAA,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,UAAC,MAAW,EAAE,OAAY,EAAK,EAAA,OAAA,IAAI,CAAA,EAAA;IAClD,YAAA,IAAI,EAAE,MAAM;aACf,CAAC;IAKQ,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIA,eAAY,EAAO,CAAC;IACxC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAIA,eAAY,EAAO,CAAC;IACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIA,eAAY,EAAO,CAAC;IAMzB,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC,CAAC;IACvC,QAAA,IAAgB,CAAA,gBAAA,GAAqB4C,SAAI,CAAC;IAC1C,QAAA,IAAiB,CAAA,iBAAA,GAAeA,SAAI,CAAC;YACrC,IAAQ,CAAA,QAAA,GAAyB,YAAA;IACjC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SAsBD;IAzGD,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAK,EAAA;IACvB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAA1B,QAAA,GAAA,EAAA,UAA2B,KAAK,EAAA;gBAAhC,IAqBC,KAAA,GAAA,IAAA,CAAA;;IApBG,YAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,cAAc,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,cAAc,CAAA,EAAK,KAAK,CAAE,CAAC;oBAC3D,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,MAAI,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,CAAA,EAAE;IAC/D,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,iBAAA;IACJ,aAAA;IACD,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;IACjC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,UAAC,KAAK,EAAA;IACjF,oBAAA,KAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,oBAAA,KAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,iBAAC,CAAC,CAAC;IACH,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,UAAA,KAAK,EAAA;wBACnE,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,KAAI,CAAC,UAAU,CAAC,aAAa,EAAE;IAC3D,wBAAA,IAAI,KAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;IAChF,4BAAA,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,yBAAA;IACJ,qBAAA;IACL,iBAAC,CAAC,CAAC;IACN,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAtB,QAAA,GAAA,EAAA,UAAuB,GAAG,EAAA;IACtB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;gBACxB,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,aAAA;IAAM,iBAAA;IACH,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,KAAK,WAAW,CAApB,EAAoB,CAAC,CAAC;IAChF,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CACI,gBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IADhB,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;QAgCD,gBAAG,CAAA,SAAA,CAAA,GAAA,GAAH,UAAI,GAAW,EAAA;YACX,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,gBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAiB,CAAkB,EAAA;IAC/B,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;IACvB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAClD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IARA,KAAA,CAAA,CAAA;IAgBD,IAAA,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACI,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,SAAA;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAA;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAA;IACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;IACxB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAA;SACJ,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC9B,CAAA;QAED,gBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC/B,CAAA;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAsB,EAAA;IAC7B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAChC,QAAA,IAAI,UAAU,EAAE;IACZ,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,KAAK,UAAU,CAAnB,EAAmB,CAAC,CAAC;IAC/E,SAAA;IACD,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;IAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,gBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,MAAW,EAAA;IACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC,CAAA;QAED,gBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,MAAW,EAAA;IACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;QAED,gBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,MAAM,EAAA;IACV,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACI,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC3C,CAAA;;;;IAhMJ,IAAA,EAAA,IAAA,EAAA3C,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,UAAU;IACpB,gBAAA,QAAwC,EAAA,28BAAA;IAExC,gBAAA,SAAS,EAAE,CAAC;IACR,wBAAA,OAAO,EAAEyB,uBAAiB;4BAC1B,WAAW,EAAEY,aAAU,CAAC,YAAA,EAAM,OAAA,gBAAgB,CAAA,EAAA,CAAC;IAC/C,wBAAA,KAAK,EAAE,IAAI;yBACd,CAAC;oBACF,eAAe,EAAEX,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAtBGY,aAAU,EAAA;gBAOVM,YAAS,EAAA;gBAVTjB,oBAAiB,EAAA;;;2BA6BhBzB,QAAK,EAAA,CAAA;gCAILA,QAAK,EAAA,CAAA;uBAuBLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BAELA,QAAK,EAAA,CAAA;sBAULA,QAAK,EAAA,CAAA;sBACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;uBACLC,SAAM,EAAA,CAAA;wCACNA,SAAM,EAAA,CAAA;IAEN,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAgB,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;gCAmBnBhB,SAAM,EAAA,CAAA;+BACNA,SAAM,EAAA,CAAA;gCACNA,SAAM,EAAA,CAAA;IAEN,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAAC,UAAU,EAAA,EAAA,CAAA;IACpB,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,eAAY,SAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAA,EAAA,CAAA;IACxC,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAA,EAAA,CAAA;IAExC,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA3B,cAAW,SAAC,UAAU,EAAA,EAAA,CAAA;;;IChG3B,IAAM,sBAAsB,GAAG;QAC3B,gBAAgB;QAChB,uBAAuB;QACvB,iBAAiB;QACjB,wBAAwB;KAC3B,CAAC;AAgBF,QAAA,iBAAA,kBAAA,YAAA;IAyCI,IAAA,SAAA,iBAAA,CAAoB,UAAmC,EAAA;;IAAnC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IAvC9C,QAAA,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;IAEvB,QAAA,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;IAUlB,QAAA,IAAW,CAAA,WAAA,GAAW,YAAY,CAAC;IAEnC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IACjB,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;IACf,QAAA,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;YAE9B,IAAA,CAAA,SAAS,GAAuC,YAAA,EAAM,OAAA,IAAI,CAAA,EAAA,CAAC;IAG3D,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;IAQpB,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAIpB,eAAY,EAAO,CAAC;IACpD,QAAA,IAAA,CAAA,IAAI,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAClD,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAMhC,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;YAUlD,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;;IAVE,YAAA,KAAmB,IAAA,wBAAA,GAAA,QAAA,CAAA,sBAAsB,CAAA,8DAAA,EAAE,CAAA,0BAAA,CAAA,IAAA,EAAA,0BAAA,GAAA,wBAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,gBAAA,IAAM,IAAI,GAAA,0BAAA,CAAA,KAAA,CAAA;IACX,gBAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;IAC9B,oBAAA,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,iBAAA;IACJ,aAAA;;;;;;;;;SACJ;IAtBD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,GAAY,EAAA;IAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;aACzB;;;IAAA,KAAA,CAAA,CAAA;QA2BD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpC,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IAEnB,QAAA,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;IACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,SAAA;SACJ,CAAA;QAED,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC9B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACzB,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,QAAA,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;IACxC,YAAA,UAAU,CAAC,YAAA;;oBACP,CAAA,EAAA,GAAA,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAC,GAAG,CAAA,KAAA,CAAA,EAAA,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAI,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAE,CAAA,CAAA,CAAA;iBAChG,EAAE,CAAC,CAAC,CAAC;IACT,SAAA;SACJ,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;IACJ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;SACxC,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IAEP,KAAA,GAAA,IAAA,CAAA;YAFyB,IAAuB,UAAA,GAAA,EAAA,CAAA;iBAAvB,IAAuB,EAAA,GAAA,CAAA,EAAvB,EAAuB,GAAA,SAAA,CAAA,MAAA,EAAvB,EAAuB,EAAA,EAAA;gBAAvB,UAAuB,CAAA,EAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA,CAAA;;YAC7C,OAAO,UAAU,CAAC,IAAI,CAAC,UAAA,SAAS,EAAA,EAAI,OAAA,KAAI,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAA7C,EAA6C,CAAC,CAAC;SACtF,CAAA;;;;IAvGJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAyC,EAAA,muFAAA;IAEzC,gBAAA,SAAS,EAAE,CAAC;IACR,wBAAA,OAAO,EAAEyB,uBAAiB;IAC1B,wBAAA,WAAW,EAAE,iBAAiB;IAC9B,wBAAA,KAAK,EAAE,IAAI;yBACd,CAAC;;IACL,aAAA,EAAA,EAAA;;;gBA9BGa,aAAU,EAAA;;;4BAgCTpC,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;qBACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,CAAA;4BAILA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;yBACLC,SAAM,EAAA,CAAA;uBACNA,SAAM,EAAA,CAAA;0BACNA,SAAM,EAAA,CAAA;IACN,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAACE,0BAAiB,EAAE,EAAE,IAAI,EAAEA,0BAAiB,EAAE,EAAA,EAAA,CAAA;IACxD,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,eAAY,SAAC,eAAe,EAAA,EAAA,CAAA;IAC5B,IAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAC7B,IAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,sBAAsB,EAAA,EAAA,CAAA;IACnC,IAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,sBAAsB,EAAA,EAAA,CAAA;IACnC,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA3B,cAAW,SAAC,gBAAgB,EAAA,EAAA,CAAA;;;ACzEjC,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;QAakB,eAAoB,CAAA,oBAAA,GAA3B,UAA4B,KAAa,EAAA;IAC5C,QAAA,OAAO,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;SAC3C,CAAA;;;IAda,eAAA,CAAA,YAAY,GAAG;QACzB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACZ;;ACFL,QAAA,iBAAA,kBAAA,YAAA;IAuBI,IAAA,SAAA,iBAAA,GAAA;IAVS,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;IAChB,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IACvB,QAAA,IAAuB,CAAA,uBAAA,GAAG,QAAQ,CAAC;IAGnC,QAAA,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;IAE1B,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAIpB,eAAY,EAAO,CAAC;IACnE,QAAA,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;SAGvB;IAtBD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,UAAmB,KAAkB,EAAA;IACjC,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC1D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;IACjC,oBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;4BACnB,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAClE,qBAAA;IACL,iBAAC,CAAC,CAAC;IACN,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAeD,IAAA,iBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;IAC7B,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjE,SAAA;IACD,QAAA,OAAO,EAAE,CAAC;SACb,CAAA;QAEM,iBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,IAAoD,EAAA;IACtE,QAAA,OAAO,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC5F,CAAA;;;;IA7CJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAuC,EAAA,+9CAAA;oBAEvC,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;wBAGIxB,QAAK,EAAA,CAAA;0BAWLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;0CACLA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;sCACLA,QAAK,EAAA,CAAA;8BAELC,SAAM,EAAA,CAAA;;;ACxBX,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;IAEI,IAAA,YAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,IAAS,EAAE,IAAqB,EAAA;IAArB,QAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAqB,GAAA,MAAA,CAAA,EAAA;YACtC,IAAI,IAAI,KAAK,UAAU,EAAE;IACrB,YAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9C,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/G,SAAA;YAED,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;SACpG,CAAA;;;;IAZJ,IAAA,EAAA,IAAA,EAAA6C,OAAI,EAAC,IAAA,EAAA,CAAA;IACF,gBAAA,IAAI,EAAE,UAAU;IACnB,aAAA,EAAA,EAAA;;;ICDM,IAAM,eAAe,GAAG;IAC3B,IAAA,GAAG,EAAE;IACD,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,UAAU,EAAE;IACR,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,WAAW,EAAE;IACT,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,MAAM,EAAE;IACJ,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,aAAa,EAAE;IACX,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,cAAc,EAAE;IACZ,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,IAAI,EAAE;IACF,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,UAAU,EAAE;IACR,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,aAAa,EAAE;IACX,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,KAAK,EAAE;IACH,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,WAAW,EAAE;IACT,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,cAAc,EAAE;IACZ,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;KACJ,CAAC;AAEW,QAAA,eAAe,GAAG;QAC3BC,qBAAU,CAAC,QAAQ,EAAE;IACjB,QAAAC,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACrBC,kBAAO,CAAC,GAAG,EAAED,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACtC,CAAC;QACFD,qBAAU,CAAC,QAAQ,EAAE;YACjBE,kBAAO,CAAC,GAAG,EAAED,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACtC,CAAC;MACJ;IAEK,IAAM,gBAAgB,GAA0C;QACnE,EAAC,GAAG,EAAE1C,gBAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAC;QACrC,EAAC,GAAG,EAAEA,gBAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAC;QAC7C,EAAC,GAAG,EAAEA,gBAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,EAAC;QAC/C,EAAC,GAAG,EAAEA,gBAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,EAAC;KAClD;;ACtFD,QAAA,gBAAA,kBAAA,YAAA;IAYI,IAAA,SAAA,gBAAA,GAAA;IAJA,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;YAEnB,IAAA,CAAA,UAAU,GAA6B,IAAI4C,oBAAe,CAAU,KAAK,CAAC,CAAC;SAGjF;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,YAAYC,cAAW,CAAC;SAChE,CAAA;IAGD,IAAA,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B,CAAA;IAGD,IAAA,gBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B,CAAA;;;;IAnCJ,IAAA,EAAA,IAAA,EAAArD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAA0C,EAAA,yfAAA;IAE1C,gBAAA,UAAU,EAAE;IACR,oBAAAsD,kBAAO,CAAC,SAAS,EAAE,eAAe,CAAC;IACtC,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;0BAGIpD,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;IAYL,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAqD,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAKzB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;;;AC3ClBC,kCAGX;IAHD,CAAA,UAAY,YAAY,EAAA;IACpB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EAHWA,oBAAY,KAAZA,oBAAY,GAGvB,EAAA,CAAA,CAAA;;ICMD,IAAM,kBAAkB,GAAG,UAAC,QAAQ,IAAK,QAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,eAAe,CAAC,QAAQ,CAAC,GAA/B,EAAkC,CAAC;;AAK5E,QAAA,kBAAA,kBAAA,YAAA;IA0DI,IAAA,SAAA,kBAAA,CAAoB,OAAgB,EAChB,sBAA8C,EAC9C,UAAsB,EAAA;IAFtB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;IAChB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;IAC9C,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IAvD1C,QAAA,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;IACZ,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAU1B,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;IAGX,QAAA,IAAA,CAAA,KAAK,GAAiBA,oBAAY,CAAC,KAAK,CAAC;;IAGhC,QAAA,IAAyB,CAAA,yBAAA,GAAG,CAAC,CAAC;YAkC/B,IAAA,CAAA,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAK3D;IAtDD,IAAA,MAAA,CAAA,cAAA,CACW,kBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADnB,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB;IACD,QAAA,GAAA,EAAA,UAAoB,KAAK,EAAA;IACrB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACvB,YAAA,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;aACpD;;;IAJA,KAAA,CAAA,CAAA;IAcD,IAAA,MAAA,CAAA,cAAA,CACI,kBAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IADpB,QAAA,GAAA,EAAA,UACqB,OAAY,EAAA;IAC7B,YAAA,IAAI,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;oBACjB,IAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,gBAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE;wBACnB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9E,iBAAA;IACD,gBAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE;wBACnB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9E,iBAAA;IACD,gBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IACnC,aAAA;IACD,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,kBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,UACgB,KAAc,EAAA;IAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC3B,YAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,aAAa,EAAE,CAAC;IACxB,aAAA;IAAM,iBAAA;oBACH,IAAI,CAAC,cAAc,EAAE,CAAC;IACzB,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAgBD,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,CAAC,IAAI,CAAC,UAAU;IAAE,YAAA,OAAO,IAAI,CAAC;IAElC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;gBAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;IACf,SAAA;;YAED,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,SAAA;YAED,IAAI,IAAI,CAAC,0BAA0B,EAAE;IACjC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;IACjD,SAAA;SACJ,CAAA;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO;YAEnD,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB,CAAA;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;YAAA,IAoBC,KAAA,GAAA,IAAA,CAAA;;IAnBG,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,KAAI,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,0CAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;gBAAE,OAAO;;;;YAKvG,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAEhC,IAAI,IAAI,CAAC,eAAe,EAAE;IACtB,gBAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,aAAA;IAED,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,YAAA;;IAC9B,gBAAA,IAAI,KAAI,CAAC,UAAU,IAAI,EAAC,MAAA,KAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA,EAAE;wBACrE,KAAI,CAAC,cAAc,EAAE,CAAC;IACzB,iBAAA;IACL,aAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,SAAA;IAAM,aAAA;gBACH,IAAI,CAAC,cAAc,EAAE,CAAC;IACzB,SAAA;SACJ,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACJ,IAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAEhI,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAA,gBAAA,EAAE,CAAC,CAAC;SAC/D,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YAAA,IAmBP,KAAA,GAAA,IAAA,CAAA;;YAlBG,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAE1B,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAA,EAAE;IACjC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAIC,sBAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAChF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChD,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAE5C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAACC,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,SAAkB,EAAA;oBAC7G,IAAI,CAAC,SAAS,EAAE;wBACZ,KAAI,CAAC,cAAc,EAAE,CAAC;IACzB,iBAAA;IACL,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YACJ,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,IAAI,CAAC,0BAA0B,EAAE;IACjC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;IACjD,SAAA;SACJ,CAAA;;;;IArJJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;gBAZQC,UAAO,EAAA;gBAAEC,yBAAsB,EAAA;gBADNvB,aAAU,EAAA;;;IAgBvC,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAApC,QAAK,SAAC,WAAW,EAAA,EAAA,CAAA;IAEjB,IAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,kBAAkB,EAAA,EAAA,CAAA;IAGxB,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAQzB,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAGtB,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,gBAAgB,EAAA,EAAA,CAAA;4CAItBA,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;IAeL,IAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,eAAe,EAAA,EAAA,CAAA;IAwCrB,IAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAAqD,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAOzB,IAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;;;AC/E9B,QAAA,iBAAA,kBAAA,YAAA;IAuBI,IAAA,SAAA,iBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAtB1C,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAClB,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;IAenB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIxD,eAAY,EAAE,CAAC;YAe7C,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SAXD;IAXD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAc,EAAA;IAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,MAAA,CAAA,cAAA,CAA0B,iBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAtC,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACI,IAAI,IAAI,CAAC,gBAAgB,EAAE;IACvB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrD,SAAA;SACJ,CAAA;QAOD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAc,EAAA;IACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;SAC/B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;IACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB,CAAA;;;;IApEJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAyC,EAAA,knBAAA;IAEzC,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAEyB,uBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9E,iBAAA;oBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAjBGC,oBAAiB,EAAA;;;8BAsBhBzB,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;gCAELA,QAAK,EAAA,CAAA;2BAGLA,QAAK,EAAA,CAAA;gCAILC,SAAM,EAAA,CAAA;IAEN,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAgB,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;ACxCZ2C,sCAGX;IAHD,CAAA,UAAY,gBAAgB,EAAA;IACxB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EAHWA,wBAAgB,KAAhBA,wBAAgB,GAG3B,EAAA,CAAA,CAAA;;ACYD,QAAA,uBAAA,kBAAA,YAAA;IAcI,IAAA,SAAA,uBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAb1C,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAGT,QAAA,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;IAChC,QAAA,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;IAChC,QAAA,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;IACjC,QAAA,IAAA,CAAA,IAAI,GAAqBA,wBAAgB,CAAC,OAAO,CAAC;YAU3D,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SALD;IALD,IAAA,MAAA,CAAA,cAAA,CAAa,uBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAc,EAAA;IAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;QAUD,uBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,uBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,uBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,uBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;SAC/B,CAAA;QAED,uBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAI,EAAA;YACT,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IAC/C,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;gBAClC,OAAO;IACV,SAAA;IAED,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;;;;IA5DJ,IAAA,EAAA,IAAA,EAAA9D,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,kBAAkB;IAC5B,gBAAA,QAAgD,EAAA,6fAAA;IAEhD,gBAAA,SAAS,EAAE;IACP,oBAAA,EAAE,OAAO,EAAEyB,uBAAiB,EAAE,WAAW,EAAEY,aAAU,CAAC,YAAA,EAAM,OAAA,uBAAuB,GAAA,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IACtG,iBAAA;oBACD,eAAe,EAAEX,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAZiCC,oBAAiB,EAAA;;;wBAkB9CzB,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,CAAA;;;AChBV,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;IAII,IAAA,MAAA,CAAA,cAAA,CAAW,kBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAIlB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,QAAQ,CAAC;aACxB;IAND,QAAA,GAAA,EAAA,UAAmB,IAAqB,EAAA;gBACpC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,CAAC,CAAA;aAC1B;;;IAAA,KAAA,CAAA,CAAA;;;;IAZJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAA0C,EAAA,uQAAA;oBAE1C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;ACRWqC,iCAGX;IAHD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EAHWA,mBAAW,KAAXA,mBAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEWC,iCAKX;IALD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACnB,CAAC,EALWA,mBAAW,KAAXA,mBAAW,GAKtB,EAAA,CAAA,CAAA;;ACWD,QAAA,kBAAA,kBAAA,YAAA;QAOI,SAAoB,kBAAA,CAAA,wBAAkD,EAClD,gBAAkC,EAClC,EAAc,EACd,GAAc,EACI,SAAc,EAAA;IAJhC,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;IACd,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAW;IACI,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;IAP3C,QAAA,IAAA,CAAA,aAAa,GAAgBA,mBAAW,CAAC,MAAM,CAAC;IAChD,QAAA,IAAA,CAAA,aAAa,GAAgBD,mBAAW,CAAC,IAAI,CAAC;IAC9C,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;SAMnC;QAED,kBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;IAC9B,QAAA,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;YAC5C,IAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;IAC9D,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,EAAE;IAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,SAAA;iBAAM,IAAI,IAAI,CAAC,SAAS,EAAE;IACvB,YAAA,IAAI,CAAC,WAAW,CAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,KAAE,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAA,CAAA,CAAG,CAAC;IAC1I,SAAA;SACJ,CAAA;IAEM,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACH,IAAI,IAAI,CAAC,aAAa,EAAE;IACpB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAChC,SAAA;SACJ,CAAA;QAEO,kBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAO,EAAA;YACvB,IAAM,gBAAgB,GAAyC,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;YACzI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC7E,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACvF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;SACjD,CAAA;;;;IAvCJ,IAAA,EAAA,IAAA,EAAAJ,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;gBAlBGM,2BAAwB,EAAA;gBAUxBC,mBAAgB,EAAA;gBARhB5B,aAAU,EAAA;gBAKVM,YAAS,EAAA;IAuBI,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAL,SAAM,SAACE,eAAQ,EAAA,EAAA,CAAA,EAAA;;;gCAT3BI,YAAS,EAAA,IAAA,EAAA,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEqB,mBAAgB,EAAE,EAAA,EAAA,CAAA;4BACtEhE,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;qCACLA,QAAK,EAAA,CAAA;;;ACJV,QAAA,iBAAA,kBAAA,YAAA;IAiCI,IAAA,SAAA,iBAAA,GAAA;IA7BA,QAAA,IAAK,CAAA,KAAA,GAAe,SAAS,CAAC;IAMrB,QAAA,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;IAMlB,QAAA,IAAa,CAAA,aAAA,GAAG,MAAM,CAAC;IAKhC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAIjB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAIlB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAEP,QAAA,IAAA,CAAA,KAAK,GAAG,IAAIH,eAAY,EAAE,CAAC;SAGpC;QAEM,iBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,MAAM,EAAA;YACjB,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B,CAAA;;;;IA7CJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAsC,EAAA,iqBAAA;;IAEzC,aAAA,EAAA,EAAA;;;;wBAGIE,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,OAAO,EAAA,EAAA,CAAA;uBAGnBjB,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,iBAAiB,EAAA,EAAA,CAAA;4BAE7BjB,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BAELA,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,uBAAuB,EAAA,EAAA,CAAA;iCAEnCjB,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;2BAGLA,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,gBAAgB,EAAA,EAAA,CAAA;4BAG5BjB,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,eAAe,EAAA,EAAA,CAAA;2BAG3BjB,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,cAAc,EAAA,EAAA,CAAA;wBAG1BhB,SAAM,EAAA,CAAA;;;ACjDX,QAAA,YAAA,kBAAA,YAAA;IAaI,IAAA,SAAA,YAAA,CAAoB,UAAsB,EAAA;IAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IAThC,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAIyB,YAAO,EAAE,CAAC;;IAEjD;;IAEG;YACM,IAAA,CAAA,OAAO,GAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAKjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;SAC1D;QAED,YAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,GAAS,EAAA;IACX,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;QACJ,OAAA,YAAA,CAAA;IAAA,CAAA,EAAA;;ACOWuC,iDAGX;IAHD,CAAA,UAAY,2BAA2B,EAAA;IACnC,IAAA,2BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,2BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EAHWA,mCAA2B,KAA3BA,mCAA2B,GAGtC,EAAA,CAAA,CAAA,CAAA;IAEM,IAAM,cAAc,GAAoB;IAC3C,IAAA,WAAW,EAAE,KAAK;IAClB,IAAA,oBAAoB,EAAE,KAAK;IAC3B,IAAA,aAAa,EAAE,iCAAiC;KACnD,CAAC;IAEK,IAAM,aAAa,GAAsC;IAC5D,IAAA,QAAQ,EAAE,QAAQ;IAClB,IAAA,KAAK,EAAE,EAAE;IACT,IAAA,aAAa,EAAE,EAAE;IACjB,IAAA,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;KACpC,CAAC;IAEK,IAAM,qBAAqB,GAAG,UAAC,QAAgB,EAAA;IAClD,IAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YAAE,OAAOA,mCAA2B,CAAC,KAAK,CAAC;QACzE,IAAI,CAAA,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,MAAM,CAAC,MAAI,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,QAAQ,CAAC,OAAO,CAAC,CAAA,EAAE;YAC3D,OAAOA,mCAA2B,CAAC,MAAM,CAAC;IAC7C,KAAA;QACD,OAAOA,mCAA2B,CAAC,KAAK,CAAC;IAC7C,CAAC;;AC3BD,QAAA,kBAAA,kBAAA,YAAA;QAyCI,SACY,kBAAA,CAAA,GAAsB,EACtB,wBAAkD,EAClD,gBAAkC,EAClC,UAAsB,EACtB,UAA2B,EAAA;IAJ3B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;IA5C7B,QAAA,IAAA,CAAA,aAAa,GAAuB,IAAIpE,eAAY,EAAQ,CAAC;IAI9D,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;IAQpB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAMM,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;SA4B9C;QAzBD,kBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,CAAC,EAAA;IACV,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,YAAYuC,aAAU,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,IAAK,IAAI,CAAC,OAAO,CAAC,aAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACvK,QAAA,IAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3E,IAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACtE,IAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC/D,IAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE/E,QAAA,IAAI,CAAC,YAAY;IACV,eAAA,CAAC,iBAAiB;IAClB,eAAA,CAAC,oBAAoB;IACrB,eAAA,CAAC,gBAAgB;IACjB,eAAA,CAAC,2BAA2B;IAC5B,eAAA,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAChC;IACE,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAWD,IAAA,kBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,YAAYe,cAAW,CAAC;IAE7D,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAkB,CAAC,CAAC,CAAC;IAC1I,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/D,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC7F,SAAA;IACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;IACvD,SAAA;IAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,iCAAiC,EAAE,CAAC;IACzC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC5B,CAAA;IAED;;;;;;IAMG;IACK,IAAA,kBAAA,CAAA,SAAA,CAAA,iCAAiC,GAAjC,YAAA;YAAA,IAoBP,KAAA,GAAA,IAAA,CAAA;IAnBG,QAAA,IAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAChH,QAAA,IAAI,YAAY,EAAE;;IAGd,YAAA,UAAU,CAAC,YAAA;IACP,gBAAA,IAAM,OAAO,GAAgB,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IAE3D,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC;wBAAE,OAAO;IAEvD,gBAAA,IAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IACjD,gBAAA,IAAM,oBAAoB,GAAG,YAAY,CAAC,qBAAqB,EAAE,CAAC;IAElE,gBAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IACpC,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,GAAO,YAAY,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,GAAG,oBAAoB,CAAC,GAAI,OAAI,CAAC;IAC9F,gBAAA,OAAO,CAAC,KAAK,CAAC,IAAI,GAAO,oBAAoB,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAK,OAAI,CAAC;IAExE,gBAAA,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;;;;IAvGJ,IAAA,EAAA,IAAA,EAAArD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAA0C,EAAA,6OAAA;IAE1C,gBAAA,UAAU,EAAE;IACR,oBAAAsD,kBAAO,CAAC,SAAS,EAAE,eAAe,CAAC;IACtC,iBAAA;oBACD,eAAe,EAAE5B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBA7BGC,oBAAiB,EAAA;gBAEjBsC,2BAAwB,EAAA;gBAYxBC,mBAAgB,EAAA;gBAVhB5B,aAAU,EAAA;gBAcL,YAAY,EAAA;;;gCAchBnC,SAAM,EAAA,CAAA;0BAEND,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4CACLA,QAAK,EAAA,CAAA;mCAEL2C,YAAS,EAAA,IAAA,EAAA,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAEP,aAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAA,EAAA,CAAA;IAIhE,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAnB,cAAW,SAAC,aAAa,EAAA,EAAA,CAAA;IACzB,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;IAE1B,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,UAAU,EAAA,EAAA,CAAA;IAEtB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAoC,eAAY,EAAC,IAAA,EAAA,CAAA,kBAAkB,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;;;ACpChD,QAAA,gBAAA,kBAAA,YAAA;IAEI,IAAA,SAAA,gBAAA,CACY,OAAgB,EAChB,sBAA8C,EAC9C,QAAkB,EAAA;IAFlB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;IAChB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;IAC9C,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;SAE7B;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAQ,OAA2C,EAAE,YAAsC,EAAA;IACvF,QAAA,IAAI,CAAC,OAAO;gBAAE,OAAO;IAErB,QAAA,IAAM,KAAK,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAa,CAAK,EAAA,YAAY,CAAE,CAAC;YAEpD,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE7C,QAAA,IAAM,UAAU,GAAG,IAAI,YAAY,CAAI,UAAU,CAAC,CAAC;YAEnD,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAEpE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtD,QAAA,OAAO,UAAU,CAAC;SACrB,CAAA;QAEO,gBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UACJ,OAA2C,EAC3C,EAAwI,EACxI,UAAsB,EACtB,UAA2B,EAAA;IAFzB,QAAA,IAAA,cAAc,oBAAA,EAAE,QAAQ,cAAA,EAAS,YAAY,WAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,yBAAyB,GAAA,EAAA,CAAA,yBAAA,CAAA;IAI7G,QAAA,IAAM,eAAe,GAAG,IAAIE,sBAAe,CAAwB,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;YAC9H,IAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAwB,eAAe,CAAC,CAAC;IAE7E,QAAA,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC;IAErC,QAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,QAAA,UAAU,CAAC,QAAQ,CAAC,cAAc,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,KAAE,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAE,CAAC;YAC5G,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,QAAQ,CAAC;IAC1D,QAAA,UAAU,CAAC,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;IAClD,QAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,QAAA,UAAU,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C,QAAA,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxC,QAAA,UAAU,CAAC,QAAQ,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;SAC7E,CAAA;QAEO,gBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,YAAsC,EAAA;YACxD,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC7C,CAAA;QAEO,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,YAAsC,EAAA;IAC3D,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAoC,IAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAS,CAAa,GAAA,aAAA,CAAC,CAAC;IAEvI,QAAA,IAAM,QAAQ,qBAAS,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAE,CAAC;IAChE,QAAA,IAAI,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE;IACtC,YAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,YAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IACxB,SAAA;YACD,IAAM,MAAM,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,CAAK,EAAA,YAAY,CAAC,aAAa,IAAI,EAAE,CAAE,CAAC;YAC1E,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE9D,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzH,QAAA,IAAM,aAAa,GAAG,IAAIW,gBAAa,iBACnC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,EACpD,gBAAgB,EAAA,gBAAA,EACb,EAAA,MAAM,EACX,CAAC;IAEH,QAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,IAAI,WAAW,EAAE;gBAClD,IAAM,kBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACxE,aAAa,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC/F,SAAA;IAED,QAAA,OAAO,aAAa,CAAC;SACxB,CAAA;QAEO,gBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAkB,UAA2B,EAAA;IACjD,QAAA,IAAM,eAAe,GAAqB;IACtC,YAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE;aAClD,CAAC;IAEF,QAAA,OAAOC,WAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SACjF,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAqB,YAAsC,EAAE,UAAsB,EAAE,UAA2B,EAAA;IACpH,QAAA,IAAM,MAAM,GAAG,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC;IAChD,QAAA,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;YACjD,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE9D,QAAA,IAAI,CAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,oBAAoB,MAAI,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,WAAW,CAAA,EAAE;IACrD,YAAA,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,YAAA,EAAM,OAAA,UAAU,CAAC,KAAK,EAAE,CAAlB,EAAkB,CAAC,CAAC;IAClE,SAAA;IAED,QAAA,IAAI,aAAa,EAAE;gBACf,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAM,EAAA,OAAA,UAAU,CAAC,KAAK,EAAE,CAAlB,EAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,SAAA;IAED,QAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,IAAI,WAAW,EAAE;gBAClD,IAAM,oBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxE,YAAA,IAAM,gBAAc,GAAG,IAAI,cAAc,CAAC,UAAA,OAAO,EAAA;IAC7C,gBAAA,OAAO,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;;IAAI,oBAAA,OAAA,UAAU,CAAC,UAAU,EAAG,EAAA,GAAA,EAAA,EAAA,EAAA,CAAC,oBAAkB,CAAG,GAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,oBAAkB,CAAC,EAAG,EAAA,EAAA,CAAA;IAAxG,iBAAwG,CAAC,CAAC;IACtI,aAAC,CAAC,CAAC;IACH,YAAA,gBAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACpC,UAAU,CAAC,OAAO,CAAC,IAAI,CAACC,eAAK,EAAE,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,gBAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA,EAAA,CAAC,CAAC;IAC3F,SAAA;SACJ,CAAA;QAEO,gBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAkB,OAA4C,EAAA;IAClE,QAAA,IAAI,CAAC,OAAO,IAAY,OAAQ,CAAC,CAAC;IAAE,YAAA,OAAO,IAAI,CAAC;YAChD,IAAiB,OAAQ,CAAC,aAAa;gBAAE,OAAoB,OAAQ,CAAC,aAAa,CAAC;IACpF,QAAA,OAAoB,OAAO,CAAC;SAC/B,CAAA;;;;;IApHJ,IAAA,EAAA,IAAA,EAAArD,aAAU,EAAC,IAAA,EAAA,CAAA;IACR,gBAAA,UAAU,EAAE,MAAM;IACrB,aAAA,EAAA,EAAA;;;gBAZQ2C,UAAO,EAAA;gBAAiBC,yBAAsB,EAAA;gBADtBQ,WAAQ,EAAA;;;ACiBzC,QAAA,kBAAA,kBAAA,YAAA;QA8BI,SAAoB,kBAAA,CAAA,UAAsB,EACtB,gBAAkC,EAAA;IADlC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IA3B3B,QAAA,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;IAExB,QAAA,IAAQ,CAAA,QAAA,GAAe,QAAQ,CAAC;IAEnC,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;IAEH,QAAA,IAAa,CAAA,aAAA,GAAkB,EAAE,CAAC;YAElC,IAAA,CAAA,aAAa,GAA0B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;IASjE,QAAA,IAAA,CAAA,YAAY,GAAG,IAAItE,eAAY,EAAO,CAAC;IAEtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIA,eAAY,EAAQ,CAAC;;IAGhC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIA,eAAY,EAAwB,CAAC;SAO9F;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACI,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE1B,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,SAAA;IAAM,aAAA;gBACH,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,SAAA;SACJ,CAAA;QAED,kBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,GAAS,EAAA;YAClB,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC1B,SAAA;SACJ,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YAAA,IAqBP,KAAA,GAAA,IAAA,CAAA;IApBG,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC1E,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;IAC5D,SAAA,CAAC,CAAC;IAEH,QAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAACuE,eAAK,EAAE,CAAC,CAAC,SAAS,CAAC,UAAC,GAAG,EAAA;gBAC3C,KAAI,CAAC,YAAY,EAAE,CAAC;IACpB,YAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,YAAA,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9D,SAAC,CAAC,CAAC;IAEH,QAAA,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAACA,eAAK,EAAE,CAAC,CAAC,SAAS,CAAC,YAAA;IACnE,YAAA,KAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;;;;IAlFJ,IAAA,EAAA,IAAA,EAAAX,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;gBAlBGrB,aAAU,EAAA;gBAaL,gBAAgB,EAAA;;;IAQpB,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAApC,QAAK,SAAC,WAAW,EAAA,EAAA,CAAA;IAEjB,IAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,kBAAkB,EAAA,EAAA,CAAA;IAExB,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAEzB,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAEtB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,wBAAwB,EAAA,EAAA,CAAA;IAE9B,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,wBAAwB,EAAA,EAAA,CAAA;IAE9B,IAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,oBAAoB,EAAA,EAAA,CAAA;IAE1B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAEzB,IAAA,yBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,oCAAoC,EAAA,EAAA,CAAA;IAG1C,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,SAAM,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAEvB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,SAAM,SAAC,iBAAiB,EAAA,EAAA,CAAA;IAGxB,IAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,SAAM,SAAC,0BAA0B,EAAA,EAAA,CAAA;IASjC,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAoD,eAAY,SAAC,OAAO,EAAA,EAAA,CAAA;;;AChDzB,QAAA,iBAAA,kBAAA,YAAA;IAKI,IAAA,SAAA,iBAAA,GAAA;IAHA,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI3B,YAAO,EAA4B,CAAC;SAIpD;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,UAAY,IAAuC,EAAA;IAC/C,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACI,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,SAAA;SACJ,CAAA;;;;;IAnBJ,IAAA,EAAA,IAAA,EAAAX,aAAU,EAAC,IAAA,EAAA,CAAA;IACR,gBAAA,UAAU,EAAE,MAAM;IACrB,aAAA,EAAA,EAAA;;;;ACGD,QAAA,mBAAA,kBAAA,YAAA;QAYI,SAAsB,mBAAA,CAAA,WAA8B,EAAU,GAAsB,EAAA;IAA9D,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;IAAU,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAPpF,QAAA,IAAQ,CAAA,QAAA,GAAqC,MAAM,CAAC;IAI7C,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;SAIzB;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,mBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAApB,QAAA,GAAA,EAAA,UAAqB,IAAmC,EAAA;IACpD,YAAA,IAAI,IAAI,EAAE;IACN,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAChD,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;oBACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;;wBAClB,IAAI,MAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,EAAE;4BACvB,IAAI,CAAC,YAAY,GAAG;gCAChB,IAAI,EAAE,IAAI,CAAC,QAAQ;gCACnB,KAAK,EAAE,CAAA,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE;IACtC,4BAAA,QAAQ,EAAE,OAAO;6BACpB,CAAC;IACL,qBAAA;IACL,iBAAC,CAAC,CAAC;IACH,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACI,IAAI,IAAI,CAAC,iBAAiB;IAAE,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC1D,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YACI,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC9B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACI,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC9B,CAAA;QAED,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,GAAsD,EAAA;IAC3D,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;IACf,YAAA,OAAO,KAAK,CAAC;IAChB,SAAA;IACD,QAAA,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACnC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACvB,SAAA;IAAM,aAAA;gBACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,SAAA;SACJ,CAAA;QAED,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,GAA2B,EAAA;IAChC,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;IACf,YAAA,OAAO,KAAK,CAAC;IAChB,SAAA;IACD,QAAA,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACnC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACvB,SAAA;IAAM,aAAA;gBACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,SAAA;SACJ,CAAA;QAED,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,GAA2B,EAAA;YACrC,IAAI,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAAE,YAAA,OAAO,EAAE,CAAC;YAC5D,OAAO,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;SACxE,CAAA;QAED,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,cAAuB,EAAA;YACnC,OAAO,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;SAC5C,CAAA;QAED,mBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,GAAuB,EAAA;IAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,IAAI,GAAG,CAAC,MAAM,EAAE;IACZ,gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,aAAA;IAAM,iBAAA;oBACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpG,aAAA;gBACD,IAAI,CAAC,IAAI,EAAE,CAAC;IACf,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,MAAM,EAAE,UAAoC,EAAE,IAAS,EAAA;YACrE,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;IAC5B,YAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,EAAE,CAAC;IACf,SAAA;SACJ,CAAA;;;;IA7GJ,IAAA,EAAA,IAAA,EAAAjB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IACvB,gBAAA,QAA2C,EAAA,mhDAAA;oBAE3C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAPQ,iBAAiB,EAAA;gBAFQC,oBAAiB,EAAA;;;IAY9C,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAkB,YAAS,SAAC,UAAU,EAAA,EAAA,CAAA;IACpB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,YAAS,SAAC,eAAe,EAAA,EAAA,CAAA;0BAYzB3C,QAAK,EAAA,CAAA;;;ACLV,QAAA,mBAAA,kBAAA,YAAA;QAUI,SAAoB,mBAAA,CAAA,wBAAkD,EAClD,gBAAkC,EAClC,OAA0B,EAC1B,EAAc,EACI,SAAc,EAAA;IAJhC,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;IAC1B,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;IACI,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;IAZ3C,QAAA,IAAQ,CAAA,QAAA,GAAe,MAAM,CAAC;IAMtB,QAAA,IAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;SAOxC;IAE2B,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,OAAO;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAEsB,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAE2B,IAAA,mBAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;YAAA,IAS3B,KAAA,GAAA,IAAA,CAAA;YARG,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,UAAU,CAAC,UAAA,CAAC,EAAA;IACR,gBAAA,IAAI,KAAI,CAAC,aAAa,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE;IAC/D,oBAAA,KAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7B,oBAAA,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,iBAAA;IACL,aAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,SAAA;SACJ,CAAA;QAE6C,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,CAAC,EAAA;IACzD,QAAA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACzB,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACJ,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,CAAC,MAAM,EAAE,CAAA,EAAA,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;IACrD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC;IACV,gBAAA,MAAM,EAAA,MAAA;oBACN,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;oBACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,IAAI,CAAC,UAAU;oBACrB,KAAK,EAAE,IAAI,CAAC,eAAe;IAC9B,aAAA,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;QAEO,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,CAAC,EAAA;IAEnB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrB,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YAC7C,IAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC;IAClE,QAAA,IAAM,qBAAqB,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,cAAc,KAAK,WAAW,CAAC;YACrG,IAAM,uBAAuB,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEtE,QAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,uBAAuB,EAAE;gBACpD,IAAM,OAAK,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAC7D,UAAU,CAAC,cAAM,OAAA,OAAK,CAAC,OAAO,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,MAAM,EAAE,CAAA,EAAA,CAAC,GAAA,EAAE,GAAG,CAAC,CAAC;IAC/D,SAAA;SACJ,CAAA;QAEO,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,OAAqB,EAAA;YAClC,IAAM,gBAAgB,GAA0C,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;YAC3I,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACjG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;SACjD,CAAA;IAEM,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACH,IAAI,IAAI,CAAC,aAAa,EAAE;IACpB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAChC,SAAA;SACJ,CAAA;;;;IA5FJ,IAAA,EAAA,IAAA,EAAAyD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,cAAc;IAC3B,aAAA,EAAA,EAAA;;;gBAjBGM,2BAAwB,EAAA;gBAQxBC,mBAAgB,EAAA;gBAKX,iBAAiB,EAAA;gBAXtB5B,aAAU,EAAA;IA8BG,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,SAAM,SAACE,eAAQ,EAAA,EAAA,CAAA,EAAA;;;2BAZ3BvC,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;oCACLA,QAAK,EAAA,CAAA;gCACL2C,YAAS,EAAA,IAAA,EAAA,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEqB,mBAAgB,EAAE,EAAA,EAAA,CAAA;IAWvE,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAX,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAKzB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,OAAO,EAAA,EAAA,CAAA;IAIpB,IAAA,2BAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAWzB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,EAAC,IAAA,EAAA,CAAA,kBAAkB,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;;;AClDhD,QAAA,2BAAA,kBAAA,YAAA;QAOI,SAAoB,2BAAA,CAAA,EAAc,EAAU,QAAmB,EAAA;IAA3C,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;IAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IAJtD,QAAA,IAAQ,CAAA,QAAA,GAAqC,MAAM,CAAC;SAK5D;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACpD,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACI,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC3B,YAAY,GAAG,CAAC,CAAC;gBACjB,cAAc,GAAG,EAAE,CAAC;gBACpB,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;IAChH,YAAA,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;gBAE7F,IAAI,CAAC,QAAQ,GAAG;IACZ,gBAAA,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;IACpC,gBAAA,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC;IAClE,gBAAA,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW;oBACrF,OAAO,EAAE,UAAU,CAAC,CAAC;iBACxB,CAAC;IACL,SAAA;IAED,QAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;IACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAC/C,IAAI,CAAC,QAAQ,KAAK,QAAQ;IACtB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI;IACjE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAChD,IAAI,CAAC,QAAQ,KAAK,OAAO;IACrB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI;IAChE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC1C,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;IACtD,YAAA,IAAM,sBAAsB,GAAG,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC3F,IAAM,mBAAmB,GAAG,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IAC7G,YAAA,IAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;gBAEjF,IAAM,4BAA4B,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACzH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,4BAA4B,CAAC;IAE/E,YAAA,IAAI,sBAAsB,EAAE;IACxB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,aAAA;IACD,YAAA,IAAI,sBAAsB,IAAI,oBAAoB,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;IACxG,gBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;oBAC3B,IAAM,UAAU,GAAG,eAAiB,GAAA,IAAI,CAAC,kBAAkB,CAAC,KAAM,GAAA,KAAK,CAAC;oBACxE,IAAM,UAAU,GAAG,mBAAmB,CAAC;IACvC,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,YAAc,GAAA,UAAW,UAAM,UAAW,GAAA,GAAG,CAAC,CAAC;IAC7G,aAAA;gBACD,IAAI,mBAAmB,IAAI,sBAAsB,EAAE;IAC/C,gBAAA,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;IACjC,aAAA;IACD,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;IACjC,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB,WAAW,EACX,yBAAA,GAA2B,IAAI,CAAC,kBAAkB,CAAC,KAAM,GAAA,OAAA,IAAS,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAE,CAAA,GAAA,KAAK,CAC7G,CAAC;IACL,aAAA;gBACD,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,GAAG,aAAa;sBACnD,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,kBAAkB;0BAC7C,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,gBAAgB;8BACzC,IAAI,CAAC,QAAQ,KAAK,aAAa,GAAG,qBAAqB;kCACnD,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,cAAc;sCACrC,IAAI,CAAC,QAAQ,KAAK,aAAa,GAAG,qBAAqB;0CACnD,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,eAAe;IACzC,0CAAE,IAAI,CAAC,QAAQ,KAAK,cAAc,GAAG,sBAAsB,GAAG,EAAE,CAAC;IAC7F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrE,SAAA;IAAM,aAAA;gBACH,IAAM,mBAAmB,GAAG,CAAC,CAAC;IAC9B,YAAA,IAAM,oBAAoB,GAAG,gBAAgB,KAAK,OAAO;sBACnD,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC;sBAChG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC;IAErG,YAAA,IAAM,qBAAqB,GAAG,gBAAgB,KAAK,OAAO;sBACpD,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,cAAc,CAAC;sBAClG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,cAAc,CAAC;gBAEvG,IAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC,CAAC;gBAC1H,IAAI,CAAC,cAAc,GAAG,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC;IAElD,YAAA,IAAI,yBAAyB,GAAG,oBAAoB,GAAG,CAAC;sBAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,mBAAmB;sBACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,mBAAmB,GAAG,WAAW,CAAC;IAE1D,YAAA,IAAI,gBAAgB,IAAI,CAAC,IAAI,gBAAgB,KAAK,OAAO,EAAE;oBACvD,yBAAyB,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;IAClE,aAAA;IAED,YAAA,IAAM,WAAW,GAAG,qBAAqB,GAAG,CAAC,GAAG,qBAAqB,GAAG,YAAY,CAAC;gBAErF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC;IAC7F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,yBAAyB,IAAI,IAAI,CAAC,CAAC;IAC1F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrE,SAAA;SACJ,CAAA;;;;IA/GJ,IAAA,EAAA,IAAA,EAAAI,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,QAAQ,EAAE,kBAAkB;IAC/B,aAAA,EAAA,EAAA;;;gBANmBrB,aAAU,EAAA;gBAAiBM,YAAS,EAAA;;;qCASnD1C,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;;;ACJV,QAAA,sBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,sBAAA,GAAA;;QACI,sBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,GAAuB,EAAA;IAC7B,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAvC,EAAuC,CAAC,CAAC;SACtE,CAAA;;;;IANJ,IAAA,EAAA,IAAA,EAAA8C,OAAI,EAAC,IAAA,EAAA,CAAA;IACF,gBAAA,IAAI,EAAE,wBAAwB;IACjC,aAAA,EAAA,EAAA;;;ACKD,QAAA,cAAA,kBAAA,YAAA;IAOI,IAAA,SAAA,cAAA,GAAA;SACC;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;;;;IAnBJ,IAAA,EAAA,IAAA,EAAAhD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,QAAQ;IAClB,gBAAA,QAAQ,EAAE,8FAIT;IACJ,aAAA,EAAA,EAAA;;;;wBAEIE,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;IACL,IAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA2C,YAAS,SAACQ,cAAW,EAAA,EAAA,CAAA;;;ACP1B,QAAA,eAAA,kBAAA,YAAA;IAWI,IAAA,SAAA,eAAA,GAAA;IAVS,QAAA,IAAK,CAAA,KAAA,GAAW,SAAS,CAAC;IAC1B,QAAA,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;IAIhB,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;IACtB,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAItD,eAAY,EAAO,CAAC;SAIxE;QAED,eAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,MAAM,EAAA;IACtB,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvC,CAAA;;;;IAtBJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,SAAS;IACnB,gBAAA,QAAuC,EAAA,+jDAAA;;IAE1C,aAAA,EAAA,EAAA;;;;wBAEIE,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;qCACLA,QAAK,EAAA,CAAA;oCACLC,SAAM,EAAA,CAAA;IACN,IAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAAuC,kBAAe,SAAC,cAAc,EAAA,EAAA,CAAA;;;ACRnC,QAAA,oBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,oBAAA,GAAA;IAQI,QAAA,IAAA,CAAA,cAAc,GAAG,IAAId,YAAO,EAAW,CAAC;IAchC,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;SAiB9B;IA1BG,IAAA,MAAA,CAAA,cAAA,CACI,oBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAJT;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAU,GAAY,EAAA;IAClB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;aAC3B;;;IAJA,KAAA,CAAA,CAAA;IAQD;;IAEG;IACH,IAAA,oBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACI,IAAI,IAAI,CAAC,KAAK,EAAE;IACZ,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,SAAA;SACJ,CAAA;IAED;;IAEG;IACH,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC,CAAA;;;;IAtCJ,IAAA,EAAA,IAAA,EAAA5B,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,cAAc;IACxB,gBAAA,QAAQ,EAAE,sDAAsD;oBAEhE,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IAQI,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAxB,QAAK,SAAC,OAAO,EAAA,EAAA,CAAA;;;ACWlB,QAAA,wBAAA,kBAAA,YAAA;QAkEI,SAA4B,wBAAA,CAAA,SAA+B,EAAU,EAAqB,EAAA;IAA9D,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsB;IAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IAZ1F;;;IAGG;IACO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIH,eAAY,EAAW,CAAC;IAExD,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI6B,YAAO,EAAW,CAAC;IAEzC,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;IACtB,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;IACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIA,YAAO,EAAQ,CAAC;SAGtC;IA5DD,IAAA,MAAA,CAAA,cAAA,CAEI,wBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAPb;;;;IAIG;IACH,QAAA,GAAA,EAAA,YAAA;gBAGI,OAAO,IAAI,CAAC,cAAc,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAc,GAAY,EAAA;IACtB,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;;;IANA,KAAA,CAAA,CAAA;IAaD,IAAA,MAAA,CAAA,cAAA,CAEI,wBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IALZ;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;IAGI,YAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAa,GAAY,EAAA;IACrB,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC;aAC9B;;;IAJA,KAAA,CAAA,CAAA;IAaD,IAAA,MAAA,CAAA,cAAA,CAEI,wBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAPZ;;;;IAIG;IACH,QAAA,GAAA,EAAA,YAAA;gBAGI,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAa,GAAY,EAAA;IACrB,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;;;IALA,KAAA,CAAA,CAAA;IAwBD;;IAEG;IACH,IAAA,wBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;IAEhB,YAAA,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IAEhC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;oBACvB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,aAAA;IACD,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC5B,SAAA;SACJ,CAAA;IAED;;IAEG;IACH,IAAA,wBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,SAAA;SACJ,CAAA;IAED;;IAEG;IACH,IAAA,wBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,SAAS,EAAA;IAC5E,YAAA,IAAI,CAAC,KAAI,CAAC,QAAQ,EAAE;IAChB,gBAAA,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;QAED,wBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;IAC9B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;SAC3C,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;IACJ,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;SAC1B,CAAA;;;;IApIJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,mBAAmB;IAE7B,gBAAA,QAAQ,EAAE,oJAGT;oBACD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IAVQ,IAAA,EAAA,IAAA,EAAA,oBAAoB,uBA6EZ6C,OAAI,EAAA,CAAA,EAAA;gBA3FjB5C,oBAAiB,EAAA;;;QAgChB,SAAA,EAAA,CAAA,EAAA,IAAA,EAAAzB,QAAK,EAAC,IAAA,EAAA,CAAA,WAAW,EACjB,EAAA,EAAA,EAAA,IAAA,EAAAiB,cAAW,SAAC,iBAAiB,EAAA,EAAA,CAAA;QAgB7B,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAjB,QAAK,EAAC,IAAA,EAAA,CAAA,UAAU,EAChB,EAAA,EAAA,EAAA,IAAA,EAAAiB,cAAW,SAAC,gBAAgB,EAAA,EAAA,CAAA;QAgB5B,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAjB,QAAK,EAAC,IAAA,EAAA,CAAA,UAAU,EAChB,EAAA,EAAA,EAAA,IAAA,EAAAiB,cAAW,SAAC,gBAAgB,EAAA,EAAA,CAAA;kCAgB5BhB,SAAM,EAAA,CAAA;;;AC5CX,QAAA,8BAAA,kBAAA,YAAA;QAsCI,SAA4B,8BAAA,CAAA,aAAuC,EAAU,EAAqB,EAAA;IAAtE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;IAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IArC1F,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIyB,YAAO,EAAQ,CAAC;SAsCtC;IApCD,IAAA,MAAA,CAAA,cAAA,CACI,8BAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAEI,8BAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAFZ,QAAA,GAAA,EAAA,YAAA;IAGI,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;aACxC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,8BAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;aACnD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,8BAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;aACtC;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,8BAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;IACI,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;SAC/B,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,8BAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACI,IAAI,IAAI,CAAC,WAAW,EAAE;IAClB,gBAAA,OAAO,WAAW,CAAC;IACtB,aAAA;IACD,YAAA,OAAO,UAAU,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,8BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAEC,KAAA,GAAA,IAAA,CAAA;IADG,QAAA,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAA,EAAA,CAAC,CAAC;SACrH,CAAA;IAED,IAAA,8BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA1EJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,0BAA0B;IAEpC,gBAAA,QAAQ,EAAE,qVAQT;IACD,gBAAA,UAAU,EAAE;wBACRsD,kBAAO,CAAC,oBAAoB,EAAE;IAC1B,wBAAAkB,gBAAK,CACD,UAAU,EACVtB,gBAAK,CAAC;IACF,4BAAA,SAAS,EAAE,gBAAgB;IAC9B,yBAAA,CAAC,CACL;IACD,wBAAAD,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,wBAAAF,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,gBAAgB,CAAC,CAAC;yBACjE,CAAC;IACL,iBAAA;oBACD,eAAe,EAAEzB,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IA3BQ,IAAA,EAAA,IAAA,EAAA,wBAAwB,uBAkEhB6C,OAAI,EAAA,CAAA,EAAA;gBA7EjB5C,oBAAiB,EAAA;;;IA0ChB,IAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAAR,cAAW,SAAC,uCAAuC,EAAA,EAAA,CAAA;QAKnD,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,EAAC,IAAA,EAAA,CAAA,sCAAsC,EAClD,EAAA,EAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,oBAAoB,EAAA,EAAA,CAAA;IAKhC,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,eAAe,EAAA,EAAA,CAAA;IAK3B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,oBAAoB,EAAA,EAAA,CAAA;yBAKhCoC,eAAY,EAAA,IAAA,EAAA,CAAC,OAAO,EACpB,EAAA,EAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,eAAe,EAAA,EAAA,EAAA,EAAA,IAAA,EAC5BA,eAAY,EAAA,IAAA,EAAA,CAAC,eAAe,EAAA,EAAA,CAAA;;;IC7DjC,IAAM,wBAAwB,GAAGD,kBAAO,CAAC,mBAAmB,EAAE;IAC1D,IAAAkB,gBAAK,CACD,WAAW,EACXtB,gBAAK,CAAC;IACF,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,UAAU,EAAE,QAAQ;IACpB,QAAA,MAAM,EAAE,CAAC;IACZ,KAAA,CAAC,CACL;IACD,IAAAsB,gBAAK,CACD,UAAU,EACVtB,gBAAK,CAAC;IACF,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,UAAU,EAAE,SAAS;IACxB,KAAA,CAAC,CACL;IACD,IAAAD,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAAF,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,gBAAgB,CAAC,CAAC;IACjE,CAAA,CAAC,CAAC;AAeH,QAAA,4BAAA,kBAAA,YAAA;QAGI,SAA4B,4BAAA,CAAA,aAAuC,EAAU,EAAqB,EAAA;IAAtE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;IAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IAF1F,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIvB,YAAO,EAAQ,CAAC;SAGtC;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,4BAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;aAClE;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,4BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAEC,KAAA,GAAA,IAAA,CAAA;IADG,QAAA,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAA,EAAA,CAAC,CAAC;SACrH,CAAA;IAED,IAAA,4BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA9BJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,wBAAwB;IAClC,gBAAA,QAAQ,EAAE,uLAMT;oBAED,UAAU,EAAE,CAAC,wBAAwB,CAAC;oBACtC,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IAlCQ,IAAA,EAAA,IAAA,EAAA,wBAAwB,uBAsChB6C,OAAI,EAAA,CAAA,EAAA;gBA1Ca5C,oBAAiB,EAAA;;;ACOnD,QAAA,iBAAA,kBAAA,YAAA;IACI,IAAA,SAAA,iBAAA,GAAA;SACC;;;;IAPJ,IAAA,EAAA,IAAA,EAAA3B,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IAErB,gBAAA,QAAyC,EAAA,qUAAA;;IAC5C,aAAA,EAAA,EAAA;;;;ACID,QAAA,uBAAA,kBAAA,YAAA;IACI,IAAA,SAAA,uBAAA,GAAA;SACC;;;;IAVJ,IAAA,EAAA,IAAA,EAAAA,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,kBAAkB;IAC5B,gBAAA,QAAQ,EAAE,8EAIT;IACJ,aAAA,EAAA,EAAA;;;;ACHD,QAAA,qBAAA,kBAAA,YAAA;IACI,IAAA,SAAA,qBAAA,GAAA;SACC;;;;IANJ,IAAA,EAAA,IAAA,EAAAA,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAAQ,EAAE,2BAA2B;IACxC,aAAA,EAAA,EAAA;;;;ACGD,QAAA,gBAAA,kBAAA,YAAA;QACI,SAAoB,gBAAA,CAAA,GAAsB,EAAsB,kBAAsC,EAAA;IAAlF,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAAsB,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;IAmB7F,QAAA,IAAK,CAAA,KAAA,GAAG,aAAa,CAAC;IACtB,QAAA,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IAEO,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;SAvBoD;IAG1G,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAApB,QAAA,GAAA,EAAA,UAAqB,KAAkB,EAAA;IACnC,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IAAxB,QAAA,GAAA,EAAA,UAAyB,KAAa,EAAA;IAClC,YAAA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,OAAO;IAEhD,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;IAC1B,gBAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC9E,aAAA;IAED,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAgB,CAAC;aAC5E;;;IAAA,KAAA,CAAA,CAAA;IAQD,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IAAf,QAAA,GAAA,EAAA,YAAA;;gBACI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;IACpC,gBAAA,OAAO,oBAAoB,CAAC;IAC/B,aAAA;IAED,YAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,KAAI,IAAI,CAAC;aACpD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAb,QAAA,GAAA,EAAA,YAAA;;gBACI,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;;;;IAzCJ,IAAA,EAAA,IAAA,EAAAA,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,6bAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;;IAEvB,aAAA,EAAA,EAAA;;;gBAPQ2B,oBAAiB,EAAA;IACJ,IAAA,EAAA,IAAA,EAAA8C,wBAAkB,uBAQSC,WAAQ,EAAA,CAAA,EAAA;;;0BAGpDxE,QAAK,EAAA,CAAA;8BAMLA,QAAK,EAAA,CAAA;wBAULA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;yBAELA,QAAK,EAAA,EAAA,EAAA,IAAA,EAAIiB,cAAW,EAAA,IAAA,EAAA,CAAC,eAAe,EAAA,EAAA,CAAA;;;ACRzC,QAAA,sBAAA,kBAAA,YAAA;QAUI,SAAmB,sBAAA,CAAA,SAA+C,EAC9C,aAA4B,EAC5B,GAAsB,EACtB,wBAAkD,EAC1B,UAAoB,EAAA;;IAJ7C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsC;IAC9C,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;IAC5B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAC1B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAU;YAV1C,IAAA,CAAA,KAAK,GAAc,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,gBAAgB,IAAG,IAAI,GAAG,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,KAAI,cAAc,CAAC;YAG/I,IAAA,CAAA,OAAO,GAAG,IAAIiC,oBAAe,CAAC,KAAK,CAAC,CAAC;IACrC,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAIxB,YAAO,EAAE,CAAC;SAOtC;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IACxB,YAAA,OAAO,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnD,SAAA;IACD,QAAA,IAAM,gBAAgB,GAA0B,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7H,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;IAC9E,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAGpE,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;IAC3B,YAAA+C,YAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC5D,SAAA;;;;;IAKD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC5B,CAAA;QAED,sBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAU,EAAA;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YACI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;SACnD,CAAA;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;IACI,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,sBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,IAAU,EAAA;YAAzB,IAsBC,KAAA,GAAA,IAAA,CAAA;IArBG,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;gBACnC,OAAO;IACV,SAAA;YACD,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;IACxD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IAAE,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,IAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC;IAC1D,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;IAE5F,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;IAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC3C,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE4C,oBAAU,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,CAAhD,EAAgD,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA;IACxI,gBAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IACvC,aAAC,CAAC,CAAC;IACN,SAAA;YAED,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;gBACnC,OAAO;IACV,SAAA;SACJ,CAAA;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IAjFJ,IAAA,EAAA,IAAA,EAAA5E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,mBAAmB;IAC7B,gBAAA,QAA8C,EAAA,+wHAAA;;IAEjD,aAAA,EAAA,EAAA;;;gBAXyB6E,iBAAY,EAAA;gBAK7B,aAAa,EAAA;gBAflBlD,oBAAiB,EAAA;gBAGjBsC,2BAAwB,EAAA;IAiCX,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA1B,SAAM,SAACuC,oBAAe,EAAA,EAAA,CAAA,EAAA;;;IAZlC,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAAjC,YAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAEqB,mBAAgB,EAAE,EAAA,EAAA,CAAA;IAE/C,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA/C,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;ACyGZ4D,iCASX;IATD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,aAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,cAAuB,CAAA;IACvB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC,CAAA;IACnC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,yBAA6C,CAAA;IAC7C,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC,CAAA;IACnC,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,aAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;IACpB,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;IACtC,CAAC,EATWA,mBAAW,KAAXA,mBAAW,GAStB,EAAA,CAAA,CAAA,CAAA;AAEWC,yCAIX;IAJD,CAAA,UAAY,mBAAmB,EAAA;IAC3B,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACnB,CAAC,EAJWA,2BAAmB,KAAnBA,2BAAmB,GAI9B,EAAA,CAAA,CAAA,CAAA;AAEWC,uCAKX;IALD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACzB,CAAC,EALWA,yBAAiB,KAAjBA,yBAAiB,GAK5B,EAAA,CAAA,CAAA;;AC7ID,QAAA,2BAAA,kBAAA,YAAA;IAYI,IAAA,SAAA,2BAAA,CACW,SAAoD,EACnD,aAA4B,EACJ,UAAoB,EAAA;;IAF7C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAA2C;IACnD,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;IACJ,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAU;IAd/C,QAAA,IAAe,CAAA,eAAA,GAAGA,yBAAiB,CAAC;YAG7C,IAAA,CAAA,OAAO,GAAG,IAAI7B,oBAAe,CAAC,KAAK,CAAC,CAAC;IACrC,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAClB,QAAA,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;IAC/B,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAIxB,YAAO,EAAE,CAAC;IACvC,QAAA,IAAkB,CAAA,kBAAA,GAA6C,EAAE,CAAC;IAE5C,QAAA,IAAA,CAAA,KAAK,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;SAOhE;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAsBC,KAAA,GAAA,IAAA,CAAA;IArBG,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;IAAE,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;IAEzD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAIsD,eAAS,CACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,UAAC,WAAW,EAAE,YAAY,EAAA;gBACpD,IAAI,YAAY,CAAC,MAAM,EAAE;IACrB,gBAAA,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI9B,oBAAe,CAAU,IAAI,CAAC,CAAC;IAChF,gBAAA,YAAY,CAAC,MAAM,GAAI,YAAY,CAAC,MAAc,CAAC,IAAI,CACnDwB,oBAAU,CAAC,UAAC,GAAG,EAAA;IACX,oBAAA,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACvD,OAAOO,eAAU,CAAC,YAAM,EAAA,OAAA,GAAG,CAAH,EAAG,CAAC,CAAC;qBAChC,CAAC,EACFC,aAAG,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAA,CAAC,EACjEC,kBAAQ,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAA,CAAC,CACzE,CAAC;IACL,aAAA;gBAED,IAAM,kBAAkB,GAAG,EAAE,CAAC;gBAC9B,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAIC,iBAAW,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,EAAE,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;gBACrH,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC1D,SAAC,EAAE,EAAE,CAAC,CACT,CAAC;SACL,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAoBC,KAAA,GAAA,IAAA,CAAA;IAnBG,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS;IAAE,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IAErF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3CD,kBAAQ,CAAC,YAAA;IACL,YAAA,KAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACtB,YAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,SAAC,CAAC,EACFrD,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB4C,oBAAU,CAAC,UAAC,GAAG,EAAA;IACX,YAAA,KAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACnC,YAAA,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACvB,YAAA,OAAO,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,SAAC,CAAC,CACL,CAAC,SAAS,CAAC,YAAA;IACR,YAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,YAAA,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IAClD,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;IACI,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9D,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC/B,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IAtFJ,IAAA,EAAA,IAAA,EAAA5E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,yBAAyB;IACnC,gBAAA,QAAoD,EAAA,+pKAAA;;IAGvD,aAAA,EAAA,EAAA;;;gBAXyB6E,iBAAY,EAAA;gBAI7B,aAAa,EAAA;IAuBb,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAtC,SAAM,SAACuC,oBAAe,EAAA,EAAA,CAAA,EAAA;;;IAL1B,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA3D,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;IChBxB,IAAM,uBAAuB,GAAG,gBAAgB,CAAC;IAEjD,IAAM,qBAAqB,GAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAKxE,QAAA,aAAA,kBAAA,YAAA;IAII,IAAA,SAAA,aAAA,CACY,MAAiB,EAAA;IAAjB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;SAE5B;IAED;;IAEG;IACH,IAAA,aAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UACI,kBAAoC,EACpC,UAAyB,EACzB,oBAAuC,EAAA;IAEvC,QAAA,IAAI,CAAC,oBAAoB;gBAAE,oBAAoB,GAAI,sBAA8B,CAAC;IAElF,QAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;IAE3C,QAAA,IAAI,UAAU,CAAC,UAAU,YAAY,KAAK,EAAE;IACxC,YAAA,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvD,SAAA;IAAM,aAAA;IACH,YAAA,UAAU,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAClF,SAAA;YAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAU,oBAAoB,EAAE,UAAU,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC,CAAA;IAED;;IAEG;QACH,aAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAA2B,iBAAoC,EAAA;YAC3D,IAAM,UAAU,GAAe,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;IAAE,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;YAC1E,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5C,OAAO,IAAI,CAAC,UAAU,CAA+C,sBAAsB,EAAE,UAAU,CAAC,CAAC;SAC5G,CAAA;IAED;;IAEG;QACH,aAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAgC,iBAAoC,EAAA;YAChE,IAAM,UAAU,GAAe,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;IAAE,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;YAC1E,OAAO,IAAI,CAAC,UAAU,CAAoD,2BAA2B,EAAE,UAAU,CAAC,CAAC;SACtH,CAAA;QAED,aAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,MAAY,EAAA;IACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACI,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;SAChE,CAAA;QAED,aAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,KAAa,EAAA;YAC/B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;SACzD,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAmD,aAAyC,EAAE,UAAyB,EAAA;YAC3H,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAuC,aAAa,EAAE,UAAU,CAAC,CAAC;SAC5F,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,GAAU,EAAE,IAA0C,EAAA;IAC3D,QAAA,IAAI,IAAI,EAAE;IACN,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,SAAA;IACD,QAAA,MAAM,GAAG,CAAC;SACb,CAAA;;;;;IA5EJ,IAAA,EAAA,IAAA,EAAAF,aAAU,EAAC,IAAA,EAAA,CAAA;IACR,gBAAA,UAAU,EAAE,MAAM;IACrB,aAAA,EAAA,EAAA;;;gBAZQsE,cAAS,EAAA;;;AC8BlB,QAAA,sBAAA,kBAAA,YAAA;IA4BI,IAAA,SAAA,sBAAA,GAAA;IA1BQ,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI3D,YAAO,EAAQ,CAAC;IAChC,QAAA,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;IAElB,QAAA,IAAK,CAAA,KAAA,GAAG,cAAc,CAAC;IAcvB,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;SAST;IAtBhB,IAAA,MAAA,CAAA,cAAA,CAAa,sBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,UAAmB,GAAoC,EAAA;gBAAvD,IAYC,KAAA,GAAA,IAAA,CAAA;gBAXG,IAAI,CAAC,GAAG,EAAE;oBACN,OAAO;IACV,aAAA;IAED,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IACpB,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACnB,aAAA;IAAM,iBAAA;IACH,gBAAA,GAAG,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,GAAa,EAAA;IACvD,oBAAA,KAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACpB,iBAAC,CAAC,CAAC;IACN,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAGF,IAAA,MAAA,CAAA,cAAA,CAAI,sBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACI,IAAI,IAAI,CAAC,QAAQ,EAAE;IACf,gBAAA,OAAO,WAAW,CAAC;IACtB,aAAA;IACD,YAAA,OAAO,UAAU,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,sBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA5DJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA+C,EAAA,wZAAA;IAE/C,gBAAA,UAAU,EAAE;wBACRsD,kBAAO,CAAC,wBAAwB,EAAE;IAC9B,wBAAAkB,gBAAK,CACD,WAAW,EACXtB,gBAAK,CAAC;IACF,4BAAA,QAAQ,EAAE,QAAQ;IAClB,4BAAA,UAAU,EAAE,QAAQ;IACpB,4BAAA,MAAM,EAAE,CAAC;IACZ,yBAAA,CAAC,CACL;IACD,wBAAAsB,gBAAK,CACD,UAAU,EACVtB,gBAAK,CAAC;IACF,4BAAA,QAAQ,EAAE,QAAQ;IAClB,4BAAA,UAAU,EAAE,SAAS;IACxB,yBAAA,CAAC,CACL;IACD,wBAAAD,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,wBAAAF,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,gBAAgB,CAAC,CAAC;yBACjE,CAAC;IACL,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;wBAOIjD,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;2BAaLA,QAAK,EAAA,CAAA;;;ACjDG,QAAA,WAAW,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE;AAExDsF,uCASX;IATD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;IAC/B,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EATWA,yBAAiB,KAAjBA,yBAAiB,GAS5B,EAAA,CAAA,CAAA,CAAA;AAEWC,8BAGX;IAHD,CAAA,UAAY,QAAQ,EAAA;IAChB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IAC3B,CAAC,EAHWA,gBAAQ,KAARA,gBAAQ,GAGnB,EAAA,CAAA,CAAA,CAAA;AAqDD,QAAA,WAAA,kBAAA,YAAA;IAkBI,IAAA,SAAA,WAAA,CAAY,GAAQ,EAAA;YAChB,IAAI,CAAC,EAAE,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,SAAS,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,QAAQ,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;YACtB,IAAI,CAAC,GAAG,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,GAAG,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;IACtB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,MAAKA,gBAAQ,CAAC,IAAI,CAAC;IACzC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,KAAI,GAAG,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,GAAG,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,GAAG,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,KAAK,CAAC;YACxB,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,UAAU,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,SAAS;gBAC3B,GAAG,CAAC,SAAS;IACb,YAAA,EAAC,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAA,IAAI,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAKA,gBAAQ,CAAC,SAAS,GAAI,QAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;YAEzG,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;SACzB;QACJ,OAAA,WAAA,CAAA;IAAA,CAAA,EAAA;;ACzFD,QAAA,mBAAA,kBAAA,YAAA;QA4DI,SAAsB,mBAAA,CAAA,GAAsB,EAAY,YAA0B,EAAA;IAA5D,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAAY,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;IA1DlF,QAAA,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC;IAC9B,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IACnB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IAEnB,QAAA,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;IAEzB;;;;IAIG;IACM,QAAA,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;IAEtB;;;;IAIG;IACM,QAAA,IAAkB,CAAA,kBAAA,GAAG,gBAAgB,CAAC;IAE/C;;;;IAIG;IACM,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAE3B;;;;IAIG;IACM,QAAA,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;IAEnD;;;;IAIG;IACM,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IAE9B;;;IAGG;IACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI1F,eAAY,EAAsC,CAAC;IAC9D,QAAA,IAAA,CAAA,KAAK,GAAG,IAAIA,eAAY,EAAO,CAAC;IAE1C;;;;IAIG;IAEO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIA,eAAY,EAAU,CAAC;IAEnB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;SAGhD;QAGD,mBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAU,EAAA;;YAAjB,IAwBC,KAAA,GAAA,IAAA,CAAA;;YAvBG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IAExB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,MAAA,KAAK,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE;4CAChB,IAAI,EAAA;wBACX,IAAM,GAAG,GAAG,IAAI,CAAC;wBAEjB,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACjC,wBAAA,IAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;IAC5B,wBAAA,EAAE,CAAC,MAAM,GAAG,UAAC,CAAM,EAAA;gCACf,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1B,4BAAA,GAAG,CAAC,QAAQ,GAAG,KAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAQ,GAAG,CAAC,GAAI,GAAA,GAAG,CAAC,CAAC;IAC/E,4BAAA,KAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC7B,yBAAC,CAAC;IAEF,wBAAA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1B,qBAAA;IACD,oBAAA,MAAA,CAAK,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;;;wBAbhC,KAAmB,IAAA,KAAA,QAAA,CAAA,KAAK,CAAC,YAAY,CAAC,KAAK,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,wBAAA,IAAM,IAAI,GAAA,EAAA,CAAA,KAAA,CAAA;oCAAJ,IAAI,CAAA,CAAA;IAcd,qBAAA;;;;;;;;;IACJ,aAAA;IACJ,SAAA;SACJ,CAAA;QAED,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;YACX,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,SAAA;SACJ,CAAA;QAGD,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAgB,EAAA;YACvB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,SAAA;SACJ,CAAA;QAGD,mBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,KAAgB,EAAA;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,OAAO;IACV,SAAA;IAED,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;IAChE,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACnC,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACpE,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAClB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACvB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACrB,CAAA;QAED,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAa,EAAA;IACvB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;IACpC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC,CAAA;QAED,mBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,eAAoC,EAAA;IAClD,QAAA,IAAI,MAAM,CAAC;YACX,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC7B,MAAM,GAAG,EAAE,CAAC;IACf,SAAA;IAAM,aAAA;IACH,YAAA,MAAM,GAAG,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC;IAC7C,SAAA;YACD,OAAO,UAAA,GAAY,MAAO,GAAA,KAAK,CAAC;SACnC,CAAA;;;;IAxJJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,cAAc;IACxB,gBAAA,QAAuC,EAAA,knDAAA;oBAEvC,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAhBGC,oBAAiB,EAAA;gBAQZ+D,4BAAY,EAAA;;;0BAsBhBxF,QAAK,EAAA,CAAA;qCAOLA,QAAK,EAAA,CAAA;4BAOLA,QAAK,EAAA,CAAA;sCAOLA,QAAK,EAAA,CAAA;+BAOLA,QAAK,EAAA,CAAA;uBAMLC,SAAM,EAAA,CAAA;wBACNA,SAAM,EAAA,CAAA;8BAQNA,SAAM,EAAA,CAAA;IAEN,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAgB,cAAW,SAAC,iBAAiB,EAAA,EAAA,CAAA;IAK7B,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAoC,eAAY,EAAC,IAAA,EAAA,CAAA,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;IAkC/B,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,EAAC,IAAA,EAAA,CAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;IASnC,IAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,EAAC,IAAA,EAAA,CAAA,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;;;ICzHzC;;;IAGG;AAEH,QAAA,0BAAA,kBAAA,YAAA;IADA,IAAA,SAAA,0BAAA,GAAA;IAEqB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,GAAG,EAAwC,CAAC;SAarF;IAXC,IAAA,0BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,IAAY,EAAE,QAAsC,EAAA;YAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACzC,CAAA;QAED,0BAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAY,EAAA;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzC,CAAA;QAED,0BAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAY,EAAA;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACtC,CAAA;;;;gBAdFtC,aAAU,EAAA;;;ACWX,QAAA,sBAAA,kBAAA,YAAA;IAsDI,IAAA,SAAA,sBAAA,CAAoB,oBAAgD,EAAA;IAAhD,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA4B;IApDpE,QAAA,IAAY,CAAA,YAAA,GAAGuE,yBAAiB,CAAC;IAyBvB,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;SA4BxB;IAnDD,IAAA,MAAA,CAAA,cAAA,CACI,sBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC;aACf;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,sBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aACtB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,MAAA,CAAA,cAAA,CAEI,sBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IALT;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;gBAGI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;IAED,QAAA,GAAA,EAAA,UAAU,KAAc,EAAA;IACpB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;aACzB;;;IAJA,KAAA,CAAA,CAAA;IAoCM,IAAA,sBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACH,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO,aAAa,CAAC,WAAW,CAAC;SACpC,CAAA;IAEM,IAAA,sBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACH,QAAA,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACrE,CAAA;QAES,sBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,IAAY,EAAA;YACnC,IAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAE3E,IAAI,CAAC,sBAAsB,EAAE;IACzB,YAAA,MAAM,IAAI,KAAK,CACX,gDAAA,GAAkD,IAAK,GAAK,KAAA;IAC5D,iBAAA,wEAAA,GAA0E,IAAK,GAAA,IAAI,CAAA,CACtF,CAAC;IACL,SAAA;IAED,QAAA,OAAO,sBAAsB,CAAC;SACjC,CAAA;;;;IA3FJ,IAAA,EAAA,IAAA,EAAAxF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA0C,EAAA,6gCAAA;IAE1C,gBAAA,UAAU,EAAE;wBACRsD,kBAAO,CAAC,UAAU,EAAE;4BAChBkB,gBAAK,CAAC,IAAI,EAAEtB,gBAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IAClD,wBAAAD,qBAAU,CAAC,WAAW,EAAE,CAACC,gBAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,EAAEC,kBAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,wBAAAF,qBAAU,CAAC,WAAW,EAAE,CAACE,kBAAO,CAAC,EAAE,EAAED,gBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;yBACnF,CAAC;IACL,iBAAA;oBACD,eAAe,EAAExB,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAdQ,0BAA0B,EAAA;;;IAmB9B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAP,cAAW,SAAC,WAAW,EAAA,EAAA,CAAA;IAKvB,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,iBAAiB,EAAA,EAAA,CAAA;wBAQ7BjB,QAAK,EAAA,EAAA,EAAA,IAAA,EACLiB,cAAW,EAAA,IAAA,EAAA,CAAC,aAAa,EAAA,EAAA,CAAA;uBAWzBjB,QAAK,EAAA,CAAA;0BAOLA,QAAK,EAAA,CAAA;oCAOLA,QAAK,EAAA,CAAA;uBAKLA,QAAK,EAAA,CAAA;IAEL,IAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA4C,eAAY,SAAC,sBAAsB,EAAA,EAAA,CAAA;;;ACxDxC,QAAA,0BAAA,kBAAA,YAAA;IAyBI,IAAA,SAAA,0BAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAvB1C,QAAA,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;IAChC,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;IAC7B,QAAA,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;IACnB,QAAA,IAAM,CAAA,MAAA,GAAc,EAAE,CAAC;IACvB,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAC5B,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAErC;;;;IAIG;IACM,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IAEpB,QAAA,IAAA,CAAA,gBAAgB,GAAyB,IAAI/C,eAAY,EAAU,CAAC;SAU7E;IARD,IAAA,MAAA,CAAA,cAAA,CAAI,0BAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;aACtE;IACD,QAAA,GAAA,EAAA,UAAiB,MAAM,EAAA;IACnB,YAAA,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;aACrE;;;IAHA,KAAA,CAAA,CAAA;IAQD,IAAA,0BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;QAED,0BAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAY,EAAA;YACpB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,OAAO;IACV,SAAA;IACD,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAO,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,IAAI,CAAC,YAAY,CAAA,CAAA,EAAA,CAAE,IAAI,CAAA,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAED,IAAA,0BAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG4E,YAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,GAAG,EAAI,EAAA,OAAA,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA,EAAA,CAAC,CAAC;YAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B,CAAA;IAED,IAAA,0BAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;IACI,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAM,eAAe,GAAGA,YAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;IACpC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;oBACzB,MAAM;IACT,aAAA;IACD,YAAA,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACvE,YAAA,IAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,0BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAED,IAAA,0BAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;IACI,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACrD,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC5B,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;;;;IAhFJ,IAAA,EAAA,IAAA,EAAA3E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,qBAAqB;IAC/B,gBAAA,QAA8C,EAAA,u6BAAA;oBAE9C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAVGC,oBAAiB,EAAA;;;yBAgBhBzB,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;+BAOLA,QAAK,EAAA,CAAA;mCAELC,SAAM,EAAA,CAAA;;;ACDX,QAAA,eAAA,kBAAA,YAAA;IAsDI,IAAA,SAAA,eAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IApDlC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIyB,YAAO,EAAQ,CAAC;IAK9B,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;IACvB,QAAA,IAAqB,CAAA,qBAAA,GAAG,kBAAkB,CAAC;IAsB1C,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;IAEtB,QAAA,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;IAGpC;;;;IAIG;IACM,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IAKpB,QAAA,IAAA,CAAA,KAAK,GAAsB,IAAI7B,eAAY,EAAO,CAAC;IACnD,QAAA,IAAA,CAAA,KAAK,GAAsB,IAAIA,eAAY,EAAO,CAAC;IACnD,QAAA,IAAA,CAAA,gBAAgB,GAAyB,IAAIA,eAAY,EAAU,CAAC;SAQ7E;IA7CD,IAAA,MAAA,CAAA,cAAA,CAAa,eAAoB,CAAA,SAAA,EAAA,sBAAA,EAAA;IAAjC,QAAA,GAAA,EAAA,UAAkC,KAAmB,EAAA;gBAArD,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,KAAK,CAAC,IAAI,CAACiC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA;wBAC3C,KAAI,CAAC,UAAU,EAAE,CAAC;IACtB,iBAAC,CAAC,CAAC;IACN,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAKF,IAAA,MAAA,CAAA,cAAA,CACI,eAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAJhB;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAiB,KAAc,EAAA;IAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;aAChC;;;IAJA,KAAA,CAAA,CAAA;IA0BD,IAAA,MAAA,CAAA,cAAA,CAAW,eAA2B,CAAA,SAAA,EAAA,6BAAA,EAAA;IAAtC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC;aAC1I;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAKF,IAAA,eAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAOC,KAAA,GAAA,IAAA,CAAA;YANG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,UAAA,QAAQ,EAAA;IACpC,YAAA,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,KAAI,CAAC,UAAU,EAAE,CAAC;IACtB,SAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YAAA,IAeC,KAAA,GAAA,IAAA,CAAA;IAdO,QAAA,UAAU,CAAC,YAAA;gBACP,IAAI,KAAI,CAAC,iBAAiB,EAAE;IACxB,gBAAA,IAAM,eAAe,GAAQ;IACzB,oBAAA,GAAG,EAAE,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY;qBACzD,CAAC;IAEF,gBAAA,IAAI,CAAC,KAAI,CAAC,MAAM,EAAE;IACd,oBAAA,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,iBAAA;oBAED,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC/D,gBAAA,KAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,aAAA;IACL,SAAC,CAAC,CAAC;SACV,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;QAED,eAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAW,EAAA;IACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE;IACvB,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACvC,SAAA;SACJ,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE;IAC3C,YAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;IAC/C,SAAA;SACJ,CAAA;;;;IA/GJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,SAAS;IAEnB,gBAAA,QAAkC,EAAA,qiEAAA;oBAClC,SAAS,EAAE,CAAC,0BAA0B,CAAC;;IAC1C,aAAA,EAAA,EAAA;;;gBAlBG2B,oBAAiB,EAAA;;;6BAuBhBzB,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;uCAELA,QAAK,EAAA,CAAA;+BAWLA,QAAK,EAAA,CAAA;8BAWLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;+BAOLA,QAAK,EAAA,CAAA;IAEL,IAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA2C,YAAS,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAC7B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAH,kBAAe,SAAC,sBAAsB,EAAA,EAAA,CAAA;IACtC,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAI,eAAY,SAAC,mBAAmB,EAAA,EAAA,CAAA;wBAChC3C,SAAM,EAAA,CAAA;wBACNA,SAAM,EAAA,CAAA;mCACNA,SAAM,EAAA,CAAA;IACN,IAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAAC,0BAA0B,EAAA,EAAA,CAAA;;;AC5E7B8C,kCAMX;IAND,CAAA,UAAY,YAAY,EAAA;IACpB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EANWA,oBAAY,KAAZA,oBAAY,GAMvB,EAAA,CAAA,CAAA,CAAA;IAAA;;;ICHD,IAAM,iBAAiB,IAAAC,IAAA,GAAA,EAAA;IACnB,IAAAA,IAAA,CAACD,oBAAY,CAAC,OAAO,CAAA,GAAG,0BAA0B;IAClD,IAAAC,IAAA,CAACD,oBAAY,CAAC,UAAU,CAAA,GAAG,eAAe;IAC1C,IAAAC,IAAA,CAACD,oBAAY,CAAC,KAAK,CAAA,GAAG,eAAe;IACrC,IAAAC,IAAA,CAACD,oBAAY,CAAC,OAAO,CAAA,GAAG,iBAAiB;IACzC,IAAAC,IAAA,CAACD,oBAAY,CAAC,IAAI,CAAA,GAAG,cAAc;aACtC,CAAC;AAQF,QAAA,gBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,gBAAA,GAAA;IAOa,QAAA,IAAA,CAAA,KAAK,GAAiBA,oBAAY,CAAC,IAAI,CAAC;SAYpD;IARG,IAAA,MAAA,CAAA,cAAA,CACI,gBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IADhB,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,qBAAuB,GAAA,IAAI,CAAC,KAAQ,CAAC;aAC/C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,gBAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IAAzB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,eAAe,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChE;;;IAAA,KAAA,CAAA,CAAA;;;;IAlBJ,IAAA,EAAA,IAAA,EAAA3F,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,UAAU;IACpB,gBAAA,QAAwC,EAAA,wWAAA;oBAExC,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;wBAEIxB,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;IAEL,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAiB,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;AClBxB,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;;;;gBADCF,aAAU,EAAA;;AAUX,QAAA,mBAAA,kBAAA,UAAA,MAAA,EAAA;QAAyC,SAAY,CAAA,mBAAA,EAAA,MAAA,CAAA,CAAA;IAArD,IAAA,SAAA,mBAAA,GAAA;;;QACE,mBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,SAA4B,EAAA;IAClC,QAAA,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;IACzC,YAAA,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;IACrC,gBAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClC,aAAA;IAAM,iBAAA;IACL,gBAAA,OAAO,EAAE,CAAC;IACX,aAAA;IACF,SAAA;IAED,QAAA,QAAQ,SAAS,CAAC,YAAY,CAAC,MAAM;IACnC,YAAA,KAAK,CAAC;IACJ,gBAAA,OAAO,gBAAgB,CAAC;IAC1B,YAAA,KAAK,CAAC;oBACJ,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,YAAA;IACE,gBAAA,OAAU,SAAS,CAAC,YAAY,CAAC,MAAM,sBAAmB,CAAC;IAC9D,SAAA;SACF,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACE,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;IACE,QAAA,OAAO,QAAQ,CAAC;SACjB,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,yBAAyB,GAAzB,YAAA;IACE,QAAA,OAAO,gBAAgB,CAAC;SACzB,CAAA;QAED,mBAA4B,CAAA,SAAA,CAAA,4BAAA,GAA5B,UAA6B,UAAmB,EAAA;YAC9C,OAAO,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;SAC3C,CAAA;;KAlCH,CAAyC,YAAY;;gBADpDA,aAAU,EAAA;;;ACTE,QAAA,cAAc,GAAG;IAC5B,IAAA,QAAQ,EAAA,QAAA;IACR,IAAA,cAAc,EAAA,cAAA;IACd,IAAA,UAAU,EAAA,UAAA;IACV,IAAA,UAAU,EAAA,UAAA;IACV,IAAA,eAAe,EAAA,eAAA;MACf;IAEF,SAAS,QAAQ,CAAC,IAAkB,EAAE,KAAU,EAAA;;IAC9C,IAAA,IAAI4E,OAAK,CAAC,IAAI,CAAC,EAAE;IACf,QAAA,OAAO,SAAS,CAAC;IAClB,KAAA;IAED,IAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;IACxB,QAAA,OAAO,IAAI,CAAC;IACb,KAAA;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;;gBACjB,KAAoB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,QAAQ,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA9B,gBAAA,IAAM,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;oBACd,IAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,gBAAA,IAAI,SAAS,EAAE;IACb,oBAAA,OAAO,SAAS,CAAC;IAClB,iBAAA;IACF,aAAA;;;;;;;;;IACF,KAAA;IAED,IAAA,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,cAAc,CAAC,IAAoB,EAAE,KAAU,EAAA;;IACtD,IAAA,IAAIA,OAAK,CAAC,IAAI,CAAC,EAAE;IACf,QAAA,OAAO,SAAS,CAAC;IAClB,KAAA;;IAED,QAAA,KAAmB,IAAA,MAAA,GAAA,QAAA,CAAA,IAAI,CAAA,0BAAA,EAAE,CAAA,QAAA,CAAA,IAAA,EAAA,QAAA,GAAA,MAAA,CAAA,IAAA,EAAA,EAAA;IAApB,YAAA,IAAM,IAAI,GAAA,QAAA,CAAA,KAAA,CAAA;gBACb,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,YAAA,IAAI,SAAS,EAAE;IACb,gBAAA,OAAO,SAAS,CAAC;IAClB,aAAA;IACF,SAAA;;;;;;;;;IAED,IAAA,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,UAAU,CAAC,IAAkB,EAAE,IAAkB,EAAA;;QACxD,IAAIA,OAAK,CAAC,IAAI,CAAC,IAAIA,OAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;IACvC,QAAA,OAAO,SAAS,CAAC;IAClB,KAAA;;YAED,KAAoB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,QAAQ,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA9B,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;gBACd,IAAI,KAAK,KAAK,IAAI,EAAE;IAClB,gBAAA,OAAO,IAAI,CAAC;IACb,aAAA;IAAM,iBAAA;oBACL,IAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvC,gBAAA,IAAI,MAAM,EAAE;IACV,oBAAA,OAAO,MAAM,CAAC;IACf,iBAAA;IACF,aAAA;IACF,SAAA;;;;;;;;;IAED,IAAA,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,UAAU,CAAC,IAAkB,EAAE,IAAkB,EAAA;QACxD,IAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,IAAA,IAAI,MAAM,EAAE;IACV,QAAAC,MAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5B,QAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;IAChC,YAAA,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC7B,SAAA;IAAM,aAAA;gBACL,MAAM,CAAC,cAAc,EAAE,CAAC;IACzB,SAAA;IACD,QAAA,OAAO,IAAI,CAAC;IACb,KAAA;IAED,IAAA,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,eAAe,CAAC,KAAqB,EAAE,OAAuB,EAAE,SAAyB,EAAA;;IAChG,IAAA,IAAI,YAAY,GAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAO,OAAO,CAAA,CAAC,CAAC;IAChC,IAAA,IAAI,cAAc,GAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAO,SAAS,CAAA,CAAC,CAAC;;IACpC,QAAA,KAAmB,IAAA,OAAA,GAAA,QAAA,CAAA,KAAK,CAAA,4BAAA,EAAE,CAAA,SAAA,CAAA,IAAA,EAAA,SAAA,GAAA,OAAA,CAAA,IAAA,EAAA,EAAA;IAArB,YAAA,IAAM,IAAI,GAAA,SAAA,CAAA,KAAA,CAAA;IACb,YAAA,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,YAAY,GAAGC,QAAM,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;gBAC5D,cAAc,GAAGA,QAAM,CAAC,cAAc,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACnE,SAAA;;;;;;;;;QACD,OAAO;IACL,QAAA,OAAO,EAAE,YAAY;IACrB,QAAA,SAAS,EAAE,cAAc;SAC1B,CAAC;IACJ;;AC5EA,QAAA,YAAA,kBAAA,YAAA;QAQE,SAAY,YAAA,CAAA,IAAc,EAAE,kBAA0B,EAAA;YAAtD,IAgCC,KAAA,GAAA,IAAA,CAAA;IAhC2B,QAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,kBAA0B,GAAA,KAAA,CAAA,EAAA;IAP9C,QAAA,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;IACzB,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;IACvB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAMhC,QAAA,IAAIF,OAAK,CAAC,IAAI,CAAC,EAAE;IACf,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzC,SAAA;IACD,QAAA,IAAIG,UAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACvB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,SAAA;IAAM,aAAA;IACL,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACzD,SAAA;IACD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACxB,QAAA,IAAIC,WAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;IAC3B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,SAAA;IACD,QAAA,IAAIA,WAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,SAAA;IACD,QAAA,IAAIA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;IAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,SAAA;IACD,QAAA,IAAI,CAACJ,OAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA;IACrC,gBAAA,IAAI,KAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC1B,oBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,iBAAA;IAED,gBAAA,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,aAAC,CAAC,CAAC;IACJ,SAAA;IAED,QAAA,IAAI,kBAAkB,EAAE;gBACtB,IAAI,CAAC,cAAc,EAAE,CAAC;IACvB,SAAA;SACF;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,YAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAY,KAAc,EAAA;IACxB,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;IAC1B,gBAAA,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;IAClC,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC9B,iBAAA;IACF,aAAA;aACF;;;IARA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CAAI,YAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;aACnC;;;IAAA,KAAA,CAAA,CAAA;QAED,YAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,KAAc,EAAA;IAChC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;IAC1B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,YAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;IACjC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAhC,EAAgC,CAAC,CAAC;IAC1E,aAAA;IACF,SAAA;SACF,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,YAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAAZ,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAa,KAAc,EAAA;IACzB,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;IACnC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC9B,gBAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;IACjC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAtB,EAAsB,CAAC,CAAC;IAChE,iBAAA;IACF,aAAA;aACF;;;IATA,KAAA,CAAA,CAAA;IAWD,IAAA,MAAA,CAAA,cAAA,CAAI,YAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAb,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;IAED,QAAA,GAAA,EAAA,UAAc,KAAc,EAAA;IAC1B,YAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;IACpC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAChC,aAAA;aACF;;;IANA,KAAA,CAAA,CAAA;QAQD,YAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,KAAc,EAAA;IAClC,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAC/B,QAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;IACjC,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAlC,EAAkC,CAAC,CAAC;IAC5E,SAAA;SACF,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,YAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAAZ,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAa,KAAqB,EAAA;IAChC,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;oBACnC,IAAI,CAACA,OAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IACvC,oBAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACxD,iBAAA;IACD,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC9B,gBAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;wBACjC,IAAI,SAAO,GAAG,IAAI,CAAC;IACnB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;4BACjC,IAAI,SAAO,KAAK,IAAI,EAAE;IACpB,4BAAA,SAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IACzB,yBAAA;IAAM,6BAAA;IACL,4BAAA,IAAI,KAAK,CAAC,OAAO,KAAK,SAAO,EAAE;oCAC7B,SAAO,GAAG,SAAS,CAAC;oCACpB,OAAO;IACR,6BAAA;IACF,yBAAA;IACH,qBAAC,CAAC,CAAC;IACH,oBAAA,IAAI,CAAC,eAAe,GAAG,SAAO,CAAC;IAChC,iBAAA;IACF,aAAA;aACF;;;IAvBA,KAAA,CAAA,CAAA;IAyBD,IAAA,YAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACE,IAAI,YAAY,GAAmB,EAAE,CAAC;YACtC,IAAI,cAAc,GAAmB,EAAE,CAAC;IACxC,QAAA,IAAIA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBAChC,IAAI,IAAI,CAAC,eAAe,EAAE;IACxB,gBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,aAAA;IAAM,iBAAA;IACL,gBAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,aAAA;IACF,SAAA;IAAM,aAAA;IACL,YAAA,IAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IACtG,YAAA,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;IACjC,YAAA,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC;IACtC,SAAA;YAED,OAAO;IACL,YAAA,YAAY,EAAA,YAAA;IACZ,YAAA,cAAc,EAAA,cAAA;aACf,CAAC;SACH,CAAA;IAED,IAAA,YAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;IACE,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACjD,CAAA;IAEO,IAAA,YAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;;YACN,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,QAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;;oBACjC,KAAoB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,gBAAgB,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,oBAAA,IAAM,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;IACd,oBAAA,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;wBAClD,IAAI,OAAO,KAAK,IAAI,EAAE;IACpB,wBAAA,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC;IACjC,qBAAA;IAAM,yBAAA,IAAI,OAAO,KAAK,KAAK,CAAC,eAAe,EAAE;4BAC5C,OAAO,GAAG,SAAS,CAAC;4BACpB,MAAM;IACP,qBAAA;IACF,iBAAA;;;;;;;;;IACF,SAAA;IAAM,aAAA;IACL,YAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACxB,SAAA;IAED,QAAA,OAAO,OAAO,CAAC;SAChB,CAAA;QACF,OAAA,YAAA,CAAA;IAAA,CAAA,EAAA;;ACrLD,QAAA,cAAA,kBAAA,YAAA;IADA,IAAA,SAAA,cAAA,GAAA;IAEE,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;IACtB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAClB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAuB,CAAA,uBAAA,GAAG,KAAK,CAAC;IAChC,QAAA,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;SAiBjB;IAfC,IAAA,MAAA,CAAA,cAAA,CAAI,cAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IAAd,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC;aACxE;;;IAAA,KAAA,CAAA,CAAA;QAEa,cAAM,CAAA,MAAA,GAAb,UAAc,MAMpB,EAAA;IACC,QAAA,IAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;IACpC,QAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAA,OAAO,MAAM,CAAC;SACf,CAAA;;;;gBAtBF5E,aAAU,EAAA;;;ACIX,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;;;;gBADCA,aAAU,EAAA;;AAMX,QAAA,0BAAA,kBAAA,UAAA,MAAA,EAAA;QAAgD,SAAmB,CAAA,0BAAA,EAAA,MAAA,CAAA,CAAA;IAAnE,IAAA,SAAA,0BAAA,GAAA;;;QACE,0BAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,SAA4B,EAAA;IAC5C,QAAA,IAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;IACtD,QAAA,IAAI,CAAC4E,OAAK,CAAC,YAAY,CAAC,EAAE;IACxB,YAAA,OAAO,YAAY,CAAC,GAAG,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,CAAC,KAAK,CAAV,EAAU,CAAC,CAAC;IAC7C,SAAA;IAED,QAAA,OAAO,EAAE,CAAC;SACX,CAAA;;KARH,CAAgD,mBAAmB;;gBADlE5E,aAAU,EAAA;;AAkBX,QAAA,2BAAA,kBAAA,UAAA,MAAA,EAAA;QAAiD,SAAmB,CAAA,2BAAA,EAAA,MAAA,CAAA,CAAA;IAApE,IAAA,SAAA,2BAAA,GAAA;;;QACE,2BAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,SAA4B,EAAA;YAA9C,IAeC,KAAA,GAAA,IAAA,CAAA;IAdC,QAAA,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,QAAA,IAAI,CAAC4E,OAAK,CAAC,KAAK,CAAC,EAAE;gBACjB,IAAI,QAAM,GAA2B,EAAE,CAAC;IACxC,YAAA,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;oBAChB,IAAM,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,gBAAA,IAAI,CAACA,OAAK,CAAC,KAAK,CAAC,EAAE;IACjB,oBAAA,QAAM,GAAG,QAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,iBAAA;IACH,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,QAAM,CAAC;IACf,SAAA;IAED,QAAA,OAAO,EAAE,CAAC;SACX,CAAA;IAEO,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,IAAkB,EAAE,MAA4B,EAAA;YAAzD,IAyBP,KAAA,GAAA,IAAA,CAAA;IAxBC,QAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;IACzB,YAAA,IAAM,MAAI,GAAG;IACX,gBAAA,IAAI,EAAA,IAAA;IACJ,gBAAA,MAAM,EAAA,MAAA;iBACP,CAAC;gBACF,IAAI,QAAM,GAA2B,EAAE,CAAC;IACxC,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;oBACzB,IAAM,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAI,CAAC,CAAC;IACzC,gBAAA,IAAI,CAACA,OAAK,CAAC,KAAK,CAAC,EAAE;IACjB,oBAAA,QAAM,GAAG,QAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,iBAAA;IACH,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,QAAM,CAAC;IACf,SAAA;YAED,IAAI,IAAI,CAAC,OAAO,EAAE;IAChB,YAAA,OAAO,CAAC;IACN,oBAAA,IAAI,EAAA,IAAA;IACJ,oBAAA,MAAM,EAAA,MAAA;IACP,iBAAA,CAAC,CAAC;IACJ,SAAA;IAED,QAAA,OAAO,IAAI,CAAC;SACb,CAAA;;KA3CH,CAAiD,mBAAmB;;gBADnE5E,aAAU,EAAA;;AAgDX,QAAA,gCAAA,kBAAA,UAAA,MAAA,EAAA;QAAsD,SAAmB,CAAA,gCAAA,EAAA,MAAA,CAAA,CAAA;IADzE,IAAA,SAAA,gCAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GAAA,MAAA,CAAA,KAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,WAgCC,CAAA,CAAA,IAAA,IAAA,CAAA;IA9BS,QAAA,KAAgB,CAAA,gBAAA,GAA2B,EAAE,CAAC;IAC9C,QAAA,KAAA,CAAA,MAAM,GAAG,IAAI,2BAA2B,EAAE,CAAC;;SA6BpD;QA3BC,gCAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,SAA4B,EAAA;YAC5C,IAAM,YAAY,GAA2B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtF,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;IACtC,YAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;IACtC,SAAA;IAAM,aAAA;gBACL,IAAM,oBAAkB,GAA2B,EAAE,CAAC;IACtD,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,QAAQ,EAAA;IACpC,gBAAA,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IACpB,gBAAA,IAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;oBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;IAC/B,oBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;4BACtD,UAAU,GAAG,CAAC,CAAC;4BACf,MAAM;IACP,qBAAA;IACF,iBAAA;IAED,gBAAA,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;wBACrB,oBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,oBAAA,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACpC,iBAAA;IACH,aAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,gBAAgB,GAAG,oBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACjE,SAAA;YAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAC9B,CAAA;;KA9BH,CAAsD,mBAAmB;;gBADxEA,aAAU,EAAA;;;IChEX,IAAA,kBAAA,kBAAA,UAAA,MAAA,EAAA;QAAiC,SAAY,CAAA,kBAAA,EAAA,MAAA,CAAA,CAAA;IAE3C,IAAA,SAAA,kBAAA,CAAY,IAAkB,EAAA;IAA9B,QAAA,IAAA,KAAA,GACE,MAAM,CAAA,IAAA,CAAA,IAAA,EAAA;gBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACxB,SAAA,CAAC,IAEH,IAAA,CAAA;IADC,QAAA,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;;SACrB;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;;IACE,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;gBACzB,IAAI,KAAK,YAAY,kBAAkB,EAAE;oBACvC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC1B,aAAA;IACH,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,QAAA,IAAI,UAAU,EAAE;;oBACd,KAAuB,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAzC,oBAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,KAAA,CAAA;IACjB,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;4BACrB,UAAU,GAAG,KAAK,CAAC;4BACnB,MAAM;IACP,qBAAA;IACF,iBAAA;;;;;;;;;IACF,SAAA;IACD,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC;SACnC,CAAA;QACF,OAAA,kBAAA,CAAA;IAAA,CAhCD,CAAiC,YAAY,CAgC5C,CAAA,CAAA;AAOD,QAAA,iBAAA,kBAAA,YAAA;IAaE,IAAA,SAAA,iBAAA,CACS,IAAkB,EACjB,aAA6B,EAC7B,WAAgC,EAAA;IAFjC,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAc;IACjB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;IAC7B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAqB;IAXhC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAIlB,eAAY,EAAS,CAAC;IAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAIA,eAAY,EAAU,CAAC;IAGpD,QAAA,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;IASd,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;IACjC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SACpE;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,CAAC8F,OAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;aAChE;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAb,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,KAAG,IAAI,CAAC,MAAM,CAAC,SAAW,CAAC;aACnC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,CAAA;QAED,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;IAChC,QAAA,IAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IACxC,QAAA,IAAI,CAACA,OAAK,CAAC,iBAAiB,CAAC,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,SAAA;SACF,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;YAAA,IAGC,KAAA,GAAA,IAAA,CAAA;YAFC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,qBAAqB,CAAC,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA,EAAA,CAAC,CAAC;SACtF,CAAA;QAED,iBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,IAAY,EAAA;IAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACE,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACrC,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;IAC3B,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,IAAI,YAAY,kBAAkB,EAAE;oBACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,aAAA;IACH,SAAC,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,IAAkB,EAAE,OAAgB,EAAA;YACtD,IAAI,IAAI,YAAY,kBAAkB,EAAE;gBACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,SAAA;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;YALC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxD,QAAA,UAAU,CAAC,YAAA;IACT,YAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;YAAA,IAQP,KAAA,GAAA,IAAA,CAAA;YAPC,IAAI,CAAC,qBAAqB,GAAG;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,eAAe,EAAE,cAAM,OAAA,KAAI,CAAC,kBAAkB,EAAE,GAAA;gBAChD,gBAAgB,EAAE,cAAM,OAAA,KAAI,CAAC,mBAAmB,EAAE,GAAA;IAClD,YAAA,kBAAkB,EAAE,UAAC,IAAI,EAAA,EAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA,EAAA;aAC5D,CAAC;SACH,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACN,IAAI,YAAY,GAAmB,EAAE,CAAC;YACtC,IAAI,cAAc,GAAmB,EAAE,CAAC;IACxC,QAAA,IAAI,CAACA,OAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IACtB,YAAA,IAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC3F,YAAA,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;IACjC,YAAA,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC;IACtC,SAAA;YAED,IAAI,CAAC,SAAS,GAAG;IACf,YAAA,YAAY,EAAA,YAAA;IACZ,YAAA,cAAc,EAAA,cAAA;aACf,CAAC;SACH,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IAgBP,KAAA,GAAA,IAAA,CAAA;IAfC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;gBAC1B,IAAM,aAAW,GAAmB,EAAE,CAAC;gBACvC,IAAM,YAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACjD,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;oBACrB,IAAM,OAAO,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAU,CAAC,CAAC;IAClD,gBAAA,IAAI,CAACA,OAAK,CAAC,OAAO,CAAC,EAAE;IACnB,oBAAA,aAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,iBAAA;IACH,aAAC,CAAC,CAAC;IACH,YAAA,IAAI,CAAC,WAAW,GAAG,aAAW,CAAC;IAChC,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;IAC/B,SAAA;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,IAAkB,EAAE,UAAkB,EAAA;YAAjD,IAuBP,KAAA,GAAA,IAAA,CAAA;IAtBC,QAAA,IAAM,OAAO,GAAGK,UAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;IAC9D,QAAA,IAAI,OAAO,EAAE;IACX,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAACL,OAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBACzB,IAAM,UAAQ,GAAmB,EAAE,CAAC;IACpC,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;wBACzB,IAAM,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACpD,oBAAA,IAAI,CAACA,OAAK,CAAC,QAAQ,CAAC,EAAE;IACpB,wBAAA,UAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,qBAAA;IACH,iBAAC,CAAC,CAAC;IACH,gBAAA,IAAI,UAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;IACvB,oBAAA,IAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7C,oBAAA,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,oBAAA,OAAO,CAAC,QAAQ,GAAG,UAAQ,CAAC;IAC5B,oBAAA,OAAO,OAAO,CAAC;IAChB,iBAAA;IACF,aAAA;IACF,SAAA;IAED,QAAA,OAAO,SAAS,CAAC;SAClB,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;;YACN,IAAI,WAAW,GAAY,IAAI,CAAC;;gBAChC,KAAyB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,WAAW,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,gBAAA,IAAM,UAAU,GAAA,EAAA,CAAA,KAAA,CAAA;oBACnB,IAAI,WAAW,KAAK,IAAI,EAAE;IACxB,oBAAA,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;IAClC,iBAAA;IAAM,qBAAA,IAAI,WAAW,KAAK,UAAU,CAAC,OAAO,EAAE;wBAC7C,WAAW,GAAG,SAAS,CAAC;wBACxB,MAAM;IACP,iBAAA;IACF,aAAA;;;;;;;;;YAED,IAAI,WAAW,KAAK,IAAI,EAAE;gBACxB,WAAW,GAAG,KAAK,CAAC;IACrB,SAAA;IAED,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;SACpC,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;;YACN,IAAI,eAAe,GAAG,KAAK,CAAC;;gBAC5B,KAAyB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,WAAW,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,gBAAA,IAAM,UAAU,GAAA,EAAA,CAAA,KAAA,CAAA;IACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;wBACzB,eAAe,GAAG,IAAI,CAAC;wBACvB,MAAM;IACP,iBAAA;IACF,aAAA;;;;;;;;;IAED,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,eAAe,CAAC;SAC3C,CAAA;;;;IAzLF,IAAA,EAAA,IAAA,EAAA7F,YAAS,EAAC,IAAA,EAAA,CAAA;IACT,gBAAA,QAAQ,EAAE,cAAc;IACxB,gBAAA,QAAwC,EAAA,imKAAA;;IAEzC,aAAA,EAAA,EAAA;;;gBA9CQ,YAAY,EAAA;gBAEZ,cAAc,EAAA;gBAId,mBAAmB,EAAA;;;iCA0CzBE,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;iCACLC,SAAM,EAAA,CAAA;+BACNA,SAAM,EAAA,CAAA;;;AChDT,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;IACE,IAAA,YAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,OAAc,EAAE,SAAiB,EAAA;IACzC,QAAA,IAAI0F,OAAK,CAAC,OAAO,CAAC,EAAE;IAClB,YAAA,OAAO,SAAS,CAAC;IAClB,SAAA;YAED,OAAO,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;SAC5F,CAAA;;;;IAVF,IAAA,EAAA,IAAA,EAAA7C,OAAI,EAAC,IAAA,EAAA,CAAA;IACJ,gBAAA,IAAI,EAAE,aAAa;IACpB,aAAA,EAAA,EAAA;;;ACNWmD,qCAaX;IAbD,CAAA,UAAY,eAAe,EAAA;IACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC/B,CAAC,EAbWA,uBAAe,KAAfA,uBAAe,GAa1B,EAAA,CAAA,CAAA;;ACXWC,8BAKX;IALD,CAAA,UAAY,QAAQ,EAAA;IAChB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EALWA,gBAAQ,KAARA,gBAAQ,GAKnB,EAAA,CAAA,CAAA;;ACCD,QAAA,8BAAA,kBAAA,YAAA;IAMI,IAAA,SAAA,8BAAA,CAAoB,OAAgB,EAAA;IAAhB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;IAH3B,QAAA,IAAQ,CAAA,QAAA,GAAG,GAAG,CAAC;IACd,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAIrG,eAAY,EAAO,CAAC;SAGzD;IAED,IAAA,8BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;YALG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CACtD2D,cAAI,CAAC,CAAC,CAAC,EACP2C,sBAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3BC,8BAAoB,EAAE,CACzB,CAAC,SAAS,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;SAChE,CAAA;IAED,IAAA,8BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC,CAAA;;;;IAtBJ,IAAA,EAAA,IAAA,EAAA3C,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,yBAAyB;IACtC,aAAA,EAAA,EAAA;;;gBAJQ4C,aAAO,EAAA;;;2BAQXrG,QAAK,EAAA,CAAA;wCACLC,SAAM,EAAA,CAAA;;;ACZCqG,iCAQX;IARD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EARWA,mBAAW,KAAXA,mBAAW,GAQtB,EAAA,CAAA,CAAA;;ACRWC,uCAGX;IAHD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACzB,CAAC,EAHWA,yBAAiB,KAAjBA,yBAAiB,GAG5B,EAAA,CAAA,CAAA,CAAA;IAAA;;;ICAM,IAAM,WAAW,IAAA,EAAA,GAAA,EAAA;QACpB,EAAC,CAAA,iBAAiB,CAAC,IAAI,CAAG,GAAA;IACtB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;QACD,EAAC,CAAA,iBAAiB,CAAC,OAAO,CAAG,GAAA;IACzB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;QACD,EAAC,CAAA,iBAAiB,CAAC,KAAK,CAAG,GAAA;IACvB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;QACD,EAAC,CAAA,iBAAiB,CAAC,GAAG,CAAG,GAAA;IACrB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;QACD,EAAC,CAAA,iBAAiB,CAAC,IAAI,CAAG,GAAA;IACtB,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,MAAM,EAAE,KAAK;IAChB,KAAA;WACJ,CAAC;IAEc,SAAA,wBAAwB,CAAC,mBAA4B,EAAE,2BAAoC,EAAA;;IACvG,IAAA,OAAA,EAAA,GAAA,EAAA;YACI,EAAC,CAAAL,gBAAQ,CAAC,OAAO,CAAA,GACV,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,WAAW,CACd,YAAA,EAAC,CAAA,iBAAiB,CAAC,KAAK,CAAG,GAAA;IACvB,YAAA,IAAI,EAAE,MAAM;IACZ,YAAA,MAAM,EAAE,IAAI;IACf,SAAA,EACD,EAAC,CAAA,iBAAiB,CAAC,WAAW,CAAG,GAAA;IAC7B,YAAA,MAAM,EAAE,KAAK;aAChB,EACJ,EAAA,EAAA;YACD,EAAC,CAAAA,gBAAQ,CAAC,MAAM,CAAA,IAAA,EAAA,GAAA,EAAA;gBACZ,EAAC,CAAA,iBAAiB,CAAC,YAAY,CAAG,GAAA;IAC9B,gBAAA,MAAM,EAAE,IAAI;IACZ,gBAAA,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC3C,MAAM,EAAE,CAAC,mBAAmB;IAC/B,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,IAAI,CAAG,GAAA;IACtB,gBAAA,MAAM,EAAE,KAAK;IACb,gBAAA,eAAe,EAAE,IAAI;IACrB,gBAAA,MAAM,EAAE,mBAAmB;IAC9B,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,IAAI,CAAG,GAAA;IACtB,gBAAA,IAAI,EAAE,MAAM;IACZ,gBAAA,MAAM,EAAE,IAAI;IACf,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,OAAO,CAAG,GAAA;IACzB,gBAAA,IAAI,EAAE,MAAM;IACZ,gBAAA,MAAM,EAAE,KAAK;IAChB,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,WAAW,CAAG,GAAA;IAC7B,gBAAA,MAAM,EAAE,KAAK;IAChB,aAAA;IACJ,YAAA,EAAA,CAAA;YACD,EAAC,CAAAA,gBAAQ,CAAC,QAAQ,CAAA,IAAA,EAAA,GAAA,EAAA;gBACd,EAAC,CAAA,iBAAiB,CAAC,YAAY,CAAG,GAAA;IAC9B,gBAAA,MAAM,EAAE,IAAI;oBACZ,IAAI,EAAE,2BAA2B,GAAG,gBAAgB,GAAG,MAAM;IAChE,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,cAAc,CAAG,GAAA;IAChC,gBAAA,MAAM,EAAE,IAAI;IACZ,gBAAA,IAAI,EAAE,mBAAmB;IACzB,gBAAA,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC;oBACnD,MAAM,EAAE,CAAC,2BAA2B;IACvC,aAAA;gBACD,EAAC,CAAA,iBAAiB,CAAC,WAAW,CAAG,GAAA;IAC7B,gBAAA,MAAM,EAAE,KAAK;IAChB,aAAA;IACJ,YAAA,EAAA,CAAA;YACD,EAAC,CAAAA,gBAAQ,CAAC,IAAI,CAAA,GACP,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,WAAW,CACd,YAAA,EAAC,CAAA,iBAAiB,CAAC,KAAK,CAAG,GAAA;IACvB,YAAA,IAAI,EAAE,MAAM;IACZ,YAAA,MAAM,EAAE,IAAI;IACf,SAAA,EACD,EAAC,CAAA,iBAAiB,CAAC,WAAW,CAAG,GAAA;IAC7B,YAAA,MAAM,EAAE,IAAI;aACf,EACJ,EAAA,EAAA;IACH,QAAA,EAAA,CAAA;IACN;;ACrEA,QAAA,eAAA,kBAAA,YAAA;IADA,IAAA,SAAA,eAAA,GAAA;IAEY,QAAA,IAAyB,CAAA,yBAAA,GAAG,OAAO,CAAC;SA0O/C;IAnOG,IAAA,MAAA,CAAA,cAAA,CAAW,eAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAOM,SAAQ,CAAC,MAAM,CAAC,MAAM,CAACN,gBAAQ,CAAC,EAAE,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,KAAKA,gBAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAlC,EAAkC,CAAC,CAAC;aAC9F;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAY,eAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;IAAjC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;aACnC;;;IAAA,KAAA,CAAA,CAAA;QAEM,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,eAAuB,EAAE,iBAAyB,EAAE,mBAA4B,EAAE,2BAAoC,EAAA;YAC1I,IAAI,EAAC,eAAe,KAAA,IAAA,IAAf,eAAe,KAAf,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,eAAe,CAAE,MAAM,CAAA;gBAAE,OAAO;IAErC,QAAA,IAAI,CAAC,eAAe,GAAG1F,WAAU,CAAC,eAAe,CAAC,CAAC;IACnD,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC3C,QAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IAC/C,QAAA,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;SAClE,CAAA;IAEM,IAAA,eAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,UAA4B,YAA8B,EAAE,UAAkB,EAAA;IACjF,QAAA,IAAM,kBAAkB,GAAGiG,QAAO,CAAC,UAAU,EAAE,UAAC,SAAS,EACrD,EAAA,OAAAnF,MAAK,CAAC,YAAY,EAAE,UAAC,WAAW,EAAK,EAAA,OAAA,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,kBAAkB,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAnF,EAAmF,CAAC,CAAzH,EAAyH,CAAC,CAAC;IAE/H,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;SACpD,CAAA;QAEM,eAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,QAAkB,EAAA;YAA5C,IAqCN,KAAA,GAAA,IAAA,CAAA;IApCG,QAAA,IAAM,kBAAkB,GAAmB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACtG,IAAM,cAAc,GAAqB,EAAE,CAAC;IAE5C,QAAAD,SAAQ,CAAC,kBAAkB,EAAE,UAAC,WAAyB,EAAA;gBACnD,IAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,KAAKH,gBAAQ,CAAC,IAAI,CAAC;IAC5D,YAAA,IAAM,cAAc,GAAG,gBAAgB,IAAIT,MAAK,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7F,YAAA,IAAM,GAAG,GAAmB,cAAc,IAAI,KAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEnI,YAAA,IAAI,gBAAgB,EAAE;IAClB,gBAAA,KAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;oBAC7C,GAAG,CAAC,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpD,aAAA;IAED,YAAA,IAAI,cAAc;oBAAE,OAAO;IAC3B,YAAA,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,SAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,qBAAqB,EAAE;IAC5B,YAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACzD,SAAA;IAED,QAAA,IAAM,uBAAuB,GAAGa,MAAK,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/F,QAAA,IAAI,uBAAuB,EAAE;IACzB,YAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACvC,SAAA;YAED,IAAM,uBAAuB,GAAmBb,MAAK,CACjD,cAAc,EACd,UAAC,GAAG,EAAA,EAAK,IAAA,EAAA,CAAA,CAAA,OAAA,GAAG,CAAC,MAAM,IAAI,CAAC,EAAC,CAAA,EAAA,GAAA,GAAG,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA,CAAA,EAAA,CACzD,CAAC;IACF,QAAA,IAAI,uBAAuB,EAAE;IACzB,YAAA,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IACtE,SAAA;IAED,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;SAChD,CAAA;IAEM,IAAA,eAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,UAAuD,GAAM,EAAE,qBAAwB,EAAE,OAAU,EAAA;IACtG,QAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,OAAO;IAElD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAKS,gBAAQ,CAAC,IAAI,EAAE;IAC5B,YAAA,qBAAqB,CAAC,MAAM,GAAG,KAAK,CAAC;IACxC,SAAA;YAED,IAAI,GAAG,KAAK,qBAAqB,EAAE;IAC/B,YAAA,IAAI,OAAO,EAAE;IACT,gBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IAC1B,aAAA;IACJ,SAAA;SACJ,CAAA;IAEM,IAAA,eAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,UAAsD,GAAM,EAAE,OAAU,EAAA;;YAC3E,IAAI,EAAC,CAAA,EAAA,GAAA,GAAG,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA;gBAAE,OAAO;IAE3C,QAAA,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,OAAO,CAAC,OAAO,GAAGC,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAC,MAAM,EAAA;IAC3C,YAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAACuF,UAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChF,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC,CAAC;YAEH,OAAO,CAAC,kBAAkB,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACzD,CAAA;QAEM,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,cAAqB,EAAA;IACzC,QAAA,OAAOF,SAAQ,CAAC,cAAc,EAAE,CAAC,UAAC,GAAG,EAAK,EAAA,QAAC,GAAG,CAAC,IAAI,KAAKtF,gBAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAC,EAAE,UAAC,GAAG,EAAA,EAAK,OAAA,GAAG,CAAC,IAAI,KAAK,aAAa,GAAA,CAAC,CAAC,CAAC;SACzH,CAAA;QAEa,eAAa,CAAA,aAAA,GAApB,UAAqB,GAAmB,EAAA;IAC3C,QAAA,IAAM,cAAc,GAAG;IACnB,YAAA,iBAAiB,CAAC,GAAG;IACrB,YAAA,iBAAiB,CAAC,IAAI;IACtB,YAAA,iBAAiB,CAAC,KAAK;IACvB,YAAA,iBAAiB,CAAC,OAAO;IACzB,YAAA,iBAAiB,CAAC,IAAI;aACzB,CAAC;YACF,OAAOsF,SAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,UAAC,MAAM,EAAK,EAAA,OAAA1F,SAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA,EAAA,CAAC,CAAC;SACtF,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,UAAuB,QAAkB,EAAE,cAAgC,EAAA;YAA3E,IAiBP,KAAA,GAAA,IAAA,CAAA;IAhBG,QAAAO,SAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAC,SAAS,EAAA;;IACvC,YAAA,IAAM,UAAU,GAAG,CAAA,EAAA,GAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;IAChD,YAAA,IAAM,qBAAqB,GAAG,wBAAwB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,2BAA2B,CAAC,CAAC;IACnH,YAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;oBAC5G,OAAO;IACV,aAAA;gBAED,IAAM,aAAa,GAAG,SAAS,CAAC,IAAI,KAAKH,gBAAQ,CAAC,IAAI;IAClD,kBAAET,MAAK,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;sBAC/CA,MAAK,CAAC,cAAc,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC;IAEhE,YAAA,IAAI,aAAa,EAAE;IACf,gBAAA,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAA,aAAa,CAAC,kBAAkB,GAAG,UAAU,CAAC;IACjD,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;QAEO,eAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UACJ,kBAAkC,EAClC,WAAyB,EACzB,QAAkB,EAClB,SAAkB,EAAA;YAElB,IAAM,YAAY,GAAG,SAAS;kBACxBa,MAAK,CAAC,kBAAkB,EAAE,UAAC,GAAG,EAAA,EAAK,OAAA,GAAG,CAAC,IAAI,KAAKJ,gBAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAArD,EAAqD,CAAC;IAC3F,cAAE,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC;YAEtC,IAAM,kBAAkB,GAAG,SAAS;kBAC9B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IAC/D,cAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEnC,QAAA,IAAM,GAAG,GAAmB;gBACxB,MAAM,EAAE,IAAI,CAAC,qBAAqB,GAAG,KAAK,GAAG,YAAY;gBACzD,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI;gBACvD,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW;gBAC5E,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,YAAA,kBAAkB,EAAA,kBAAA;aACrB,CAAC;IAEF,QAAA,IAAI,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE;gBAC1C,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC;IAClE,SAAA;IAED,QAAA,IAAI,WAAW,CAAC,YAAY,CAAC,iBAAiB,EAAE;gBAC5C,GAAG,CAAC,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC;IACtE,SAAA;IAED,QAAA,OAAO,GAAG,CAAC;SACd,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,GAAmB,EAAE,WAAyB,EAAA;IACxE,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;IACd,YAAA,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,SAAA;IAED,QAAA,IAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEhD,QAAA,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IACb,YAAA,OAAO,EAAE,UAAU;IACnB,YAAA,IAAI,EAAE,UAAU,KAAK,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,yBAAyB,GAAG,WAAW,CAAC,IAAI;IAC1G,SAAA,CAAC,CAAC;SACN,CAAA;QAEO,eAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,YAA8B,EAAA;IACjD,QAAA,IAAM,OAAO,GAAGT,MAAK,CAAC,YAAY,EAAE,EAAE,IAAI,EAAES,gBAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7D,QAAA,IAAI,CAAC,OAAO;gBAAE,OAAO;IACrB,QAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;SAC1B,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,uBAAuC,EAAE,YAA8B,EAAA;;IAChG,QAAA,IAAM,OAAO,GAAG,CAAA,EAAA,GAAAT,MAAK,CAAC,YAAY,EAAE,EAAE,IAAI,EAAES,gBAAQ,CAAC,IAAI,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC;YACtE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAO;IAE5B,QAAAG,SAAQ,CAAC,YAAY,EAAE,UAAC,GAAG,EAAA;;gBACvB,IAAI,EAAC,CAAA,EAAA,GAAA,GAAG,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA;oBAAE,OAAO;gBAC3C,IAAI,GAAG,KAAK,uBAAuB,EAAE;IACjC,gBAAA,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAAA,SAAQ,CAAC,OAAO,EAAE,UAAC,MAAM,EAAA;IACrB,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxF,SAAC,CAAC,CAAC;SACN,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,UAA2B,QAAkB,EAAE,QAAwB,EAAA;;;IAC3E,QAAA,IAAM,YAAY,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAAZ,MAAK,CAAC,QAAQ,EAAE,UAAC,GAAiB,EAAA,EAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,KAAK,CAAA,EAAA,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;IAEjI,QAAA,IAAM,uBAAuB,IAAA,EAAA,GAAA,EAAA;gBACzB,EAAC,CAAAyF,gBAAQ,CAAC,OAAO,CAAA,GAAG,cAAM,OAAA,YAAY,GAAA;IACtC,YAAA,EAAA,CAACA,gBAAQ,CAAC,MAAM,CAAG,GAAA,YAAA,EAAM,IAAA,EAAA,EAAA,EAAA,CAAA,CAAA,OAAA,MAAA,CAAA,EAAA,GAAAzF,MAAK,CAAC,QAAQ,EAAE,UAAC,GAAiB,EAAA,EAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,IAAI,CAAA,EAAA,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EAAA;IACnI,YAAA,EAAA,CAACyF,gBAAQ,CAAC,QAAQ,CAAG,GAAA,YAAA,EAAM,IAAA,EAAA,EAAA,EAAA,CAAA,CAAA,OAAA,MAAA,CAAA,EAAA,GAAAzF,MAAK,CAAC,QAAQ,EAAE,UAAC,GAAiB,EAAA,EAAK,OAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,YAAY,CAAA,EAAA,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EAAA;gBAC7I,EAAC,CAAAyF,gBAAQ,CAAC,IAAI,CAAA,GAAG,cAAM,OAAA,YAAY,GAAA;mBACtC,CAAA;IAED,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;gBAAE,OAAO;IAC/C,QAAA,OAAO,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC9C,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,QAAkB,EAAE,UAAkB,EAAA;YAA5D,IAmBP,KAAA,GAAA,IAAA,CAAA;IAlBG,QAAA,OAAOS,QAAO,CACV,UAAU,EACV,UAAC,GAAmB,EAAE,SAAe,EAAA;;IACjC,YAAA,IAAM,UAAU,GAAG,CAAA,EAAA,GAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;IAEhD,YAAA,IAAM,qBAAqB,GAAG,wBAAwB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,2BAA2B,CAAC,CAAC;gBACnH,IAAM,iBAAiB,GACnB,qBAAqB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAClH,YAAA,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM;IAAE,gBAAA,OAAO,GAAG,CAAC;IAE/D,YAAA,IAAM,eAAe,GAAGnG,WAAU,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAM,WAAW,mCAAsB,eAAe,CAAA,EAAA,EAAE,YAAY,EAAE,iBAAiB,GAAE,CAAC;IAE1F,YAAA,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtB,YAAA,OAAO,GAAG,CAAC;aACd,EACD,EAAE,CACL,CAAC;SACL,CAAA;;;;gBA3OJO,aAAU,EAAA;;;ACdX,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;SA8CC;IA7CG;;;;IAIG;QACW,aAAwB,CAAA,wBAAA,GAA/B,UAAgC,MAAc,EAAA;IACjD,QAAA,IAAM,YAAY,GAAGX,uBAAe,CAAC,GAAG,CAAC;YAEzC,IAAI,CAAC,MAAM,EAAE;IACT,YAAA,OAAO,YAAY,CAAC;IACvB,SAAA;IAED,QAAA,IAAM,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC7C,QAAA,QAAQ,IAAI;IACR,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,OAAO,CAAC;IACnC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,GAAG,CAAC;IAC/B,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,IAAI,CAAC;IAChC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,KAAK,CAAC;IACjC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,IAAI,CAAC;IAChC,YAAA;IACI,gBAAA,OAAO,YAAY,CAAC;IAC3B,SAAA;SACJ,CAAA;QAEa,aAAY,CAAA,YAAA,GAAnB,UAAoB,GAAW,EAAA;IAClC,QAAA,IAAM,SAAS,GAAGG,iBAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,QAAA,QAAQ,GAAG;gBACP,KAAKD,gBAAQ,CAAC,KAAK;IACf,gBAAA,OAAO,SAAS,CAAC;gBACrB,KAAKA,gBAAQ,CAAC,SAAS;IACnB,gBAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9B,gBAAA,OAAO,SAAS,CAAC;gBACrB,KAAKA,gBAAQ,CAAC,UAAU;IACpB,gBAAA,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,gBAAA,OAAO,SAAS,CAAC;gBACrB,KAAKA,gBAAQ,CAAC,UAAU;IACpB,gBAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,gBAAA,OAAO,SAAS,CAAC;IACxB,SAAA;SACJ,CAAA;QACJ,OAAA,aAAA,CAAA;IAAA,CAAA,EAAA;;ICzCD;IACA,IAAMC,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAGjC,QAAA,mBAAA,kBAAA,YAAA;IADA,IAAA,SAAA,mBAAA,GAAA;IAEI,QAAA,IAA2B,CAAA,2BAAA,GAAG,KAAK,CAAC;IACpC,QAAA,IAAA,CAAA,SAAS,GAAqBH,uBAAe,CAAC,GAAG,CAAC;YAClD,IAAO,CAAA,OAAA,GAAG,IAAI8C,oBAAe,CAAShD,mBAAW,CAAC,uBAAuB,CAAC,CAAC;IAC3E,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIwB,YAAO,EAAU,CAAC;IACxC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAIA,YAAO,EAAU,CAAC;YAG7C,IAAA,CAAA,UAAU,GAAG,IAAIwB,oBAAe,CAAS,EAAE,CAAC,CAAC;IAC7C,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAIxB,YAAO,EAAU,CAAC;IACrD,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;IACtB,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;YACxB,IAAA,CAAA,mBAAmB,GAAG;IAClB,YAAAtB,uBAAe,CAAC,GAAG;IACnB,YAAAA,uBAAe,CAAC,IAAI;IACpB,YAAAA,uBAAe,CAAC,KAAK;IACrB,YAAAA,uBAAe,CAAC,OAAO;IACvB,YAAAA,uBAAe,CAAC,IAAI;aACvB,CAAC;YAEK,IAAA,CAAA,YAAY,GAA4B;gBAC3C,GAAG,EAAEF,mBAAW,CAAC,uBAAuB;gBACxC,KAAK,EAAEA,mBAAW,CAAC,iBAAiB;gBACpC,IAAI,EAAEA,mBAAW,CAAC,WAAW;gBAC7B,OAAO,EAAEA,mBAAW,CAAC,cAAc;gBACnC,IAAI,EAAEA,mBAAW,CAAC,WAAW;aAChC,CAAC;IAGK,QAAA,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;SA4KvC;IA1KG,IAAA,mBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YACI,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7C,QAAA,QAAQ,IAAI;gBACR,KAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAQ,CAAC,GAAG,CAAC;IAC5B,gBAAA,OAAO,GAAG,CAAC;gBACf,KAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAQ,CAAC,GAAG,CAAC;IAC5B,gBAAA,OAAO,GAAG,CAAC;IACf,YAAA;IACI,gBAAA,OAAO,EAAE,CAAC;IACjB,SAAA;SACJ,CAAA;QAED,mBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAc,EAAA;IACvB,QAAA,OAAO,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;SACzD,CAAA;QAED,mBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,SAA2B,EAAA;IAC3C,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SACvC,CAAA;QAED,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,MAAc,EAAA;IACnC,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/D,CAAA;QAED,mBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,KAAK,EAAA;YAChB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACnC,CAAA;IAED;;;;IAIG;QACI,mBAA+B,CAAA,SAAA,CAAA,+BAAA,GAA/B,UAAgC,IAAY,EAAA;IAC/C,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC;IAChD,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,SAAS,GAAG,WAAW,EAAE;gBACzB,WAAW,IAAI,EAAE,CAAC;IACrB,SAAA;IACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SAC3D,CAAA;IAED;;;;;IAKG;IACI,IAAA,mBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAY,EAAE,aAAqB,EAAA;YACtD,IAAI;IACC,aAAA,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;iBAC5C,OAAO,CAAC,MAAM,CAAC;IACf,aAAA,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,aAAa,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;iBAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;SACvB,CAAA;IAED;;;;;IAKG;IACI,IAAA,mBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,IAAY,EAAE,aAAqB,EAAA;YACxD,IAAI;IACC,aAAA,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;iBAC5C,OAAO,CAAC,MAAM,CAAC;IACf,aAAA,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;SAC1E,CAAA;IAED;;;;IAIG;QACI,mBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,IAAY,EAAA;IACtC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1E,CAAA;IAED;;;;IAIG;QACI,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,IAAY,EAAA;IACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5E,CAAA;IAED;;;;IAIG;QACI,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,SAA0B,EAAA;IACtD,QAAA,OAAOuE,YAAC,CAAC,QAAQ,CAAC,CAACrE,uBAAe,CAAC,OAAO,EAAEA,uBAAe,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;SACjF,CAAA;IAED;;;;IAIG;QACI,mBAAgC,CAAA,SAAA,CAAA,gCAAA,GAAhC,UAAiC,IAAY,EAAA;YAChD,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD,CAAA;IAED;;;;IAIG;QACI,mBAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,IAAY,EAAA;IACzC,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;SACnD,CAAA;IAED;;;;;IAKG;IACK,IAAA,mBAAA,CAAA,SAAA,CAAA,6BAA6B,GAA7B,UAA8B,IAAY,EAAE,UAAkB,EAAA;IAAlB,QAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAkB,GAAA,KAAA,CAAA,EAAA;IAClE,QAAA,OAAO,IAAI,GAAGqE,YAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;SACnH,CAAA;IAEM,IAAA,mBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,UAAyB,GAAW,EAAE,QAAa,EAAA;IACtD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,QAAA,IAAI,GAAG,EAAE;IACT,YAAA,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACvC,YAAA,QAAQ,GAAG;oBACP,KAAKnE,gBAAQ,CAAC,KAAK;IACf,oBAAA,IAAI,CAAC,wBAAwB,CAACJ,mBAAW,CAAC,uBAAuB,CAAC,CAAC;wBACnE,MAAM;oBACV,KAAKI,gBAAQ,CAAC,SAAS;IACnB,oBAAA,IAAI,CAAC,wBAAwB,CAACJ,mBAAW,CAAC,uBAAuB,CAAC,CAAC;wBACnE,MAAM;oBACV,KAAKI,gBAAQ,CAAC,UAAU;IACpB,oBAAA,IAAI,CAAC,wBAAwB,CAACJ,mBAAW,CAAC,iBAAiB,CAAC,CAAC;IAC7D,oBAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;wBACnD,MAAM;oBACV,KAAKI,gBAAQ,CAAC,UAAU;IACpB,oBAAA,IAAI,CAAC,wBAAwB,CAACJ,mBAAW,CAAC,iBAAiB,CAAC,CAAC;IAC7D,oBAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;wBACnD,MAAM;IACT,aAAA;IACJ,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxC,CAAA;IAEM,IAAA,mBAAA,CAAA,SAAA,CAAA,6BAA6B,GAA7B,UAA8B,IAAY,EAAE,QAAa,EAAA;IAC5D,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,IAAM,SAAS,GAAG,QAAQ,CAAC,SAAgB,CAAC;IAC5C,YAAA,IAAI,SAAS,EAAE;IACX,gBAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;IAC7B,gBAAA,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC3B,SAAS,CAAC,KAAK,EAAE,CAAC;IACrB,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;IAEM,IAAA,mBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;IACH,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACrB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC9B,SAAA;SACJ,CAAA;;;;gBAzMJa,aAAU,EAAA;;;ICDX;IACA,IAAMR,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAiBjC,QAAA,iCAAA,kBAAA,YAAA;QA0DI,SAAoB,iCAAA,CAAA,SAA2B,EAC3B,YAAiC,EACP,YAA8B,EACxD,GAAsB,EACvB,iBAAsC,EAAA;;YAJzD,IA8BC,KAAA,GAAA,IAAA,CAAA;IA9BmB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;IAC3B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;IACP,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkB;IACxD,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACvB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;IA7DjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAImB,YAAO,EAAQ,CAAC;IACzC,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,QAAA,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;YACpB,IAAA,CAAA,gBAAgB,GAAuB,CAAC;oBACpC,SAAS,EAAEtB,uBAAe,CAAC,GAAG;IAC9B,gBAAA,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAEC,oBAAY,CAAC,QAAQ;IAC5B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG;oBAC/C,WAAW,EAAE,YAAM,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE,CAAA,EAAA;iBACvI,EAAE;oBACC,SAAS,EAAED,uBAAe,CAAC,IAAI;IAC/B,gBAAA,KAAK,EAAE,MAAM;oBACb,KAAK,EAAEC,oBAAY,CAAC,QAAQ;IAC5B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI;oBAChD,WAAW,EAAE,YAAM,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE,CAAA,EAAA;iBACvI,EAAE;oBACC,SAAS,EAAED,uBAAe,CAAC,KAAK;IAChC,gBAAA,KAAK,EAAE,OAAO;oBACd,KAAK,EAAEC,oBAAY,CAAC,UAAU;IAC9B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK;oBACjD,WAAW,EAAE,cAAM,OAAA,MAAM,CAACE,QAAM,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA,EAAA;iBAC5E,EAAE;oBACC,SAAS,EAAEH,uBAAe,CAAC,OAAO;IAClC,gBAAA,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAEC,oBAAY,CAAC,YAAY;IAChC,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO;IACnD,gBAAA,WAAW,EAAE,YAAA,EAAM,OAAA,MAAM,CAACE,QAAM,CAAC,KAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA,EAAA;iBACrI,EAAE;oBACC,SAAS,EAAEH,uBAAe,CAAC,IAAI;IAC/B,gBAAA,KAAK,EAAE,MAAM;oBACb,KAAK,EAAEC,oBAAY,CAAC,SAAS;IAC7B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI;IAChD,gBAAA,WAAW,EAAE,YAAA;wBACT,IAAM,WAAW,GAAGE,QAAM,CAAC,KAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5H,oBAAA,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;wBACtD,OAAO,WAAW,GAAG,GAAG,IAAI,WAAW,GAAG,EAAE,CAAC,CAAC;qBACjD;IACJ,aAAA,CAAC,CAAC;IAEH,QAAA,IAAA,CAAA,WAAW,IAAA,EAAA,GAAA,EAAA;IACP,YAAA,EAAA,CAACF,oBAAY,CAAC,UAAU,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC7F,YAAA,EAAA,CAACA,oBAAY,CAAC,YAAY,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC/F,YAAA,EAAA,CAACA,oBAAY,CAAC,QAAQ,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC5F,YAAA,EAAA,CAACA,oBAAY,CAAC,SAAS,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,EAAE,OAAO,CAAC,GAAA;mBAChG,CAAC;IAEF,QAAA,IAAA,CAAA,iBAAiB,GAAkBA,oBAAY,CAAC,QAAQ,CAAC;IACzD,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;IACtB,QAAA,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;IACrB,QAAA,IAAa,CAAA,aAAA,GAAG,gBAAgB,CAAC;IAKjB,QAAA,IAAY,CAAA,YAAA,GAAGA,oBAAY,CAAC;YAQxC,SAAS,CAAC,YAAY,CAAC,IAAI,CAACyB,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,eAAe,EAAE,CAAA,EAAA,CAAC,CAAC;IAChG,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAACA,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK,EAAA;gBAC3E,KAAI,CAAC,iBAAiB,GAAG,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAA,MAAM,EAAI,EAAA,OAAA,MAAM,CAAC,MAAM,KAAK,KAAK,CAAvB,EAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClG,YAAA,SAAS,CAAC,WAAW,GAAG,KAAI,CAAC,iBAAoC,CAAC;gBAClE,KAAI,CAAC,eAAe,EAAE,CAAC;IACvB,YAAA,IAAI,KAAI,CAAC,iBAAiB,KAAKzB,oBAAY,CAAC,YAAY,EAAE;IACtD,gBAAA,KAAI,CAAC,eAAe,GAAG,KAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5G,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAACyB,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA;gBAC7D,KAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,SAAS,CAAC,aAAa,EAAE;oBACzB,KAAI,CAAC,yCAAyC,EAAE,CAAC;IACpD,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAA,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,UAAA,IAAI,EAAA;IACnC,YAAA,IAAI,CAAC,KAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;oBACzC,KAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,SAAS,CAAC;SACvD;IApCD,IAAA,MAAA,CAAA,cAAA,CAAI,iCAAiB,CAAA,SAAA,EAAA,mBAAA,EAAA;IAArB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;aACvD;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAoCF,IAAA,iCAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,IAAI,KAAI,CAAC,SAAS,CAAC,aAAa,EAAE;oBAC9B,KAAI,CAAC,yCAAyC,EAAE,CAAC;IACpD,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC9B,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAWC,KAAA,GAAA,IAAA,CAAA;YAVG,IAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,KAAK,KAAK,KAAI,CAAC,SAAS,CAAC,WAAW,CAA3C,EAA2C,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,QAAA,IAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAKzB,oBAAY,CAAC,QAAQ,EAAE;IACtD,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvE,YAAA,IAAI,CAAC,eAAe,GAAE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC1C,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iCAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAK,EAAA;YAAlB,IAaC,KAAA,GAAA,IAAA,CAAA;IAZG,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,EAAE;IAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IAC3C,SAAA;IACD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAC/B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAoC,CAAC;YACvE,IAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAA,MAAM,EAAI,EAAA,OAAA,MAAM,CAAC,KAAK,KAAK,KAAI,CAAC,iBAAiB,CAAvC,EAAuC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjH,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9E,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAKA,oBAAY,CAAC,YAAY,EAAE;IACtD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5G,SAAA;SACJ,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iCAAoB,CAAA,SAAA,EAAA,sBAAA,EAAA;IAAxB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,CAAC,CAACA,oBAAY,CAAC,QAAQ,EAAEA,oBAAY,CAAC,UAAU,EAAEA,oBAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAA2B,CAAC,CAAC;aACzI;;;IAAA,KAAA,CAAA,CAAA;QAED,iCAA8B,CAAA,SAAA,CAAA,8BAAA,GAA9B,UAA+B,IAAsD,EAAA;IACjF,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;SACrC,CAAA;QAED,iCAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,aAAqB,EAAA;IACjC,QAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;IACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACjF,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;SACrD,CAAA;QAED,iCAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,OAAO,EAAA;YACjB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;IAC9C,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;IACzD,SAAA;SACJ,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,UAAkB,EAAE,MAAc,EAAE,OAAgB,EAAA;IACjE,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;YACjH,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,yCAAyC,GAAzC,YAAA;IACI,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAoB,CAAC;IAC1D,QAAA,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC/G,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC/D,aAAa,CAAC,KAAK,EAAE,CAAC;SACzB,CAAA;QAED,iCAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,GAAQ,EAAA;IACtB,QAAA,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,SAAA;IAAM,aAAA;gBACH,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnD,SAAA;IACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3F,CAAA;;;;IAlLJ,IAAA,EAAA,IAAA,EAAAP,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,wCAAwC;IAClD,gBAAA,QAA0D,EAAA,upEAAA;oBAE1D,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAvBQoF,sBAAW,EAAA;gBACXlG,gBAAW,EAAA;gBACG,gBAAgB,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAmFtB2B,SAAM,EAAA,IAAA,EAAA,CAACrB,qBAAgB,EAAA,EAAA,CAAA,EAAA;gBAxFKS,oBAAiB,EAAA;gBAMrD,mBAAmB,EAAA;;;ICiB5B;IACA,IAAMlB,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAM,IAAI,GAAG,YAAA;IACb,CAAC,CAAC;;AAEF,QAAA,iBAAA,kBAAA,UAAA,MAAA,EAAA;QAAuC,SAAiB,CAAA,iBAAA,EAAA,MAAA,CAAA,CAAA;IAAxD,IAAA,SAAA,iBAAA,GAAA;;SAIC;IAHG,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;IACI,QAAA,OAAO,CAAC,CAAC;SACZ,CAAA;QACJ,OAAA,iBAAA,CAAA;IAAA,CAJD,CAAuCI,uCAAiB,CAIvD,EAAA;AAaD,QAAA,qBAAA,kBAAA,YAAA;IAoDI,IAAA,SAAA,qBAAA,CACc,GAAsB,EACtB,WAA6B,EAChC,iBAAsC,EAAA;YAHjD,IAQC,KAAA,GAAA,IAAA,CAAA;IAPa,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAChC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;;IA1CxC,QAAA,IAAA,CAAA,cAAc,GAA6BR,gCAAwB,CAAC,OAAO,CAAC;IAE5E,QAAA,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;IAI1B,QAAA,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;YAM/B,IAAA,CAAA,6BAA6B,GAAQ;IACxC,YAAA,IAAI,EAAE,YAAY;IAClB,YAAA,KAAK,EAAE,MAAM;IACb,YAAA,OAAO,EAAE,MAAM;IACf,YAAA,GAAG,EAAE,OAAO;aACf,CAAC;IAEK,QAAA,IAAY,CAAA,YAAA,GAAG,iCAAiC,CAAC;IACjD,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;IAGP,QAAA,IAAe,CAAA,eAAA,GAAGC,uBAAe,CAAC;IAaxC,QAAA,IAAU,CAAA,UAAA,GAAW,IAAI,CAAC;IAC1B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIsB,YAAO,EAAQ,CAAC;IA6GpC,QAAA,IAAiB,CAAA,iBAAA,GAAe,IAAI,CAAC;IACrC,QAAA,IAAgB,CAAA,gBAAA,GAAqB,IAAI,CAAC;;IAW1C,QAAA,IAAA,CAAA,UAAU,GAAG,UAAC,MAAc,EAAA;IAC/B,YAAA,IAAI,KAAI,CAAC,gBAAgB,IAAI,MAAM,EAAE;IACjC,gBAAA,OAAO,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,aAAA;IAED,YAAA,OAAO,IAAI,CAAC;IAChB,SAAC,CAAA;IA8BM,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;IAtJlB,QAAA,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IAC/E,YAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,SAAC,CAAC,CAAC;SACN;IAxDD,IAAA,MAAA,CAAA,cAAA,CAAa,qBAAG,CAAA,SAAA,EAAA,KAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,UAAiB,OAAe,EAAA;IAC5B,YAAA,IAAI,CAAC,IAAI,GAAGvB,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,qBAAG,CAAA,SAAA,EAAA,KAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,UAAiB,OAAe,EAAA;IAC5B,YAAA,IAAI,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IA4BD,IAAA,MAAA,CAAA,cAAA,CAAW,qBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAiB,CAAS,EAAA;IACtB,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;IACvB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC9B,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IAPA,KAAA,CAAA,CAAA;IAsBD,IAAA,qBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAChF,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5D,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;SACpG,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC9B,CAAA;QAED,qBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;;IAC9B,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,KAAI,OAAO,CAAC,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE;gBAC9F,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChF,SAAA;SACJ,CAAA;IAED;;;IAGG;IACH,IAAA,qBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;IACI,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACnD,QAAQ,IAAI,CAAC,cAAc;gBACvB,KAAKJ,gCAAwB,CAAC,eAAe;oBACzC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKC,uBAAe,CAAC,OAAO,EAAE;wBAC9D,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpE,iBAAA;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;wBAClE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChE,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,iBAAA;oBACD,MAAM;gBACV,KAAKD,gCAAwB,CAAC,aAAa;oBACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKC,uBAAe,CAAC,OAAO,EAAE;wBAC9D,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,iBAAA;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;wBAClE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9D,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpC,iBAAA;oBACD,MAAM;gBACV,KAAKD,gCAAwB,CAAC,gBAAgB;oBAC1C,IAAI,WAAmB,SAAA,CAAC;oBACxB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKC,uBAAe,CAAC,OAAO,EAAE;IAC9D,oBAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtC,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,oBAAA,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAA;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;IAClE,oBAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;wBAC7D,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1D,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,oBAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1D,iBAAA;IACD,gBAAA,IAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1D,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC7C,MAAM;IACV,YAAA;IACI,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACpD,MAAM;IACb,SAAA;SACJ,CAAA;IAEM,IAAA,qBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,UAAkB,EAAE,SAA0B,EAAA;IAErE,QAAA,IAAI,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;gBACpC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC7E,SAAA;IAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,OAAO,IAAI,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;gBACpG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,WAAW,GAAGC,oBAAY,CAAC,YAA+B,CAAC;gBACnG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;IAChE,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC5B,SAAA;IAAM,aAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,SAAS,EAAE;IACvD,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACpC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED;;IAEG;QACI,qBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;IAC3B;;;IAGE;YACF,IAAM,cAAc,GAAI,QAAgB,CAAC,WAAW,GAAGE,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAGA,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IACrG,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,cAAc,GAAG,KAAK,CAAC;YACjD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACnC,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAKM,qBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC9B,CAAA;QAEM,qBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC/B,CAAA;IAWD;;;;IAIG;QACO,qBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,UAAkB,EAAA;YAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;SACpC,CAAA;IAED;;;;IAIG;QACO,qBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,SAAiB,EAAA;YAA1B,IAWT,KAAA,GAAA,IAAA,CAAA;;;;IANG,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,KAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,KAAK,CAAC;IACnD,SAAC,CAAC,CAAC;SACN,CAAA;IAID,IAAA,qBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;IACI,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;IACI,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB,CAAA;;;;IAjOJ,IAAA,EAAA,IAAA,EAAAT,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAA8C,EAAA,6vBAAA;oBAE9C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;IAC/C,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAED,uBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE;IAC/E,oBAAA,EAAE,OAAO,EAAEb,gBAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE;wBACrD,mBAAmB;IACtB,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;gBAzCGe,oBAAiB,EAAA;gBAYZf,gBAAW,EAAA;gBACX,mBAAmB,EAAA;;;yBA+BvBV,QAAK,EAAA,CAAA;sBAELA,QAAK,EAAA,CAAA;sBAILA,QAAK,EAAA,CAAA;iCAKLA,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,EAAA,EAAA,IAAA,EAAIiB,cAAW,EAAA,IAAA,EAAA,CAAC,gBAAgB,EAAA,EAAA,CAAA;2CAErCjB,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;IAEL,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA2C,YAAS,SAAC,YAAY,EAAA,EAAA,CAAA;IAuLtB,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA1B,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;;;ACzN/B,QAAA,kCAAA,kBAAA,UAAA,MAAA,EAAA;QAAwD,SAAqB,CAAA,kCAAA,EAAA,MAAA,CAAA,CAAA;IA0EzE,IAAA,SAAA,kCAAA,CACc,GAAsB,EACtB,WAA6B,EAChC,iBAAsC,EAAA;;IAHjD,QAAA,IAAA,KAAA,GAKI,kBAAM,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAyB7C,IAAA,CAAA;IA7Ba,QAAA,KAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,KAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAChC,QAAA,KAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;IAtExC,QAAA,KAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;IAU9B,QAAA,KAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;;IA2BzB,QAAA,KAAA,CAAA,cAAc,GAAG,IAAIpB,eAAY,EAAU,CAAC;IAC5C,QAAA,KAAA,CAAA,iBAAiB,GAAG,IAAIA,eAAY,EAAU,CAAC;IAExC,QAAA,KAAA,CAAA,WAAW,IAAA,EAAA,GAAA,EAAA;IACxB,YAAA,EAAA,CAACO,uBAAe,CAAC,IAAI,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IACrF,YAAA,EAAA,CAACA,uBAAe,CAAC,OAAO,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IACzF,YAAA,EAAA,CAACA,uBAAe,CAAC,KAAK,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IACvF,YAAA,EAAA,CAACA,uBAAe,CAAC,GAAG,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IACnF,YAAA,EAAA,CAACA,uBAAe,CAAC,IAAI,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;mBACvF,CAAC;IAgBK,QAAA,KAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAC3B,QAAA,KAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAE1B,QAAA,KAAA,CAAA,kBAAkB,GAAoB,IAAIsB,YAAO,EAAU,CAAC;IAQhE,QAAA,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC;IAErD,QAAA,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAACI,mBAAS,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IACvE,YAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,SAAC,CAAC,CAAC;IAEH,QAAA,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAACA,mBAAS,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IAC1E,YAAA,IAAI,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAC,GAAG,EAAK,EAAA,OAAA,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,GAAG,MAAK,KAAK,CAAlB,EAAkB,CAAC,CAAC;gBAChE,KAAI,CAAC,iBAAiB,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,KAAK,CAAC;IACvC,YAAA,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,SAAC,CAAC,CAAC;IAEH,QAAA,KAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAACA,mBAAS,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IACjG,YAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,SAAC,CAAC,CAAC;IAEH,QAAA,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAACA,mBAAS,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IACpF,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAClC,aAAA;IAAM,iBAAA;oBACH,KAAI,CAAC,gBAAgB,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,aAAA;IACD,YAAA,KAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,SAAC,CAAC,CAAC;;SACN;IArGD,IAAA,MAAA,CAAA,cAAA,CAAsD,kCAAyB,CAAA,SAAA,EAAA,2BAAA,EAAA;IAA/E,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,qBAAqB,CAAC;aACrC;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAIF,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAA7B,QAAA,GAAA,EAAA,UAA8B,KAA8B,EAAA;IACxD,YAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAK,EAAA,KAAK,CAAE,CAAC;IAC3F,gBAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3F,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAmB,CAAA,SAAA,EAAA,qBAAA,EAAA;IAAhC,QAAA,GAAA,EAAA,UAAiC,KAAwB,EAAA;IACrD,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;IACvB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACtD,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;IAAlC,QAAA,GAAA,EAAA,UAAmC,IAAa,EAAA;IAC5C,YAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,IAAI,CAAC;aACvD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAtB,QAAA,GAAA,EAAA,UAAuB,GAAW,EAAA;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,kCAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAiB,CAAS,EAAA;IACtB,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IALA,KAAA,CAAA,CAAA;IAmBD,IAAA,MAAA,CAAA,cAAA,CAAW,kCAAuB,CAAA,SAAA,EAAA,yBAAA,EAAA;IAAlC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC3B,aAAA;gBAED,IAAI,YAAY,GAAG2C,YAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;oBACnF,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC;IACxF,aAAA;gBAED,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC/D,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACxF;;;IAAA,KAAA,CAAA,CAAA;IAuCD,IAAA,kCAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IASC,KAAA,GAAA,IAAA,CAAA;YARG,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAC7E,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAExB,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC3C,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAEqE,sBAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IAC5G,gBAAA,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;QAED,kCAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,OAAgB,EAAA;YAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;IACpD,YAAA,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9E,YAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpC,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAC3B,CAAA;QAED,kCAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,QAAgB,EAAA;YAC7B,IAAI,IAAI,CAAC,kBAAkB,EAAE;;;;IAIzB,YAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACxC,YAAA,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrC,SAAA;SACJ,CAAA;IAEA;;;;IAIE;QACO,kCAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,SAAiB,EAAA;IAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACxC,QAAA,MAAA,CAAA,SAAA,CAAM,QAAQ,CAAA,IAAA,CAAA,IAAA,EAAC,SAAS,CAAC,CAAC;SAC7B,CAAA;QACM,kCAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;IAC3B,QAAA,MAAA,CAAA,SAAA,CAAM,UAAU,CAAA,IAAA,CAAA,IAAA,EAAC,KAAK,CAAC,CAAC;IACxB,QAAA,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B,CAAA;IAEO,IAAA,kCAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,UAAkB,EAAE,MAAc,EAAE,OAAgB,EAAA;;YACpE,OAAO,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,EAAC,UAAU,CAAC,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;SACtF,CAAA;IAEO,IAAA,kCAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YACJ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO;IACrC,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3E,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC3F,CAAA;;KApKL,CAAwD,qBAAqB;;IAX5E,IAAA,EAAA,IAAA,EAAArG,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,+BAA+B;IACzC,gBAAA,QAA6D,EAAA,2iDAAA;oBAE7D,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;IAC/C,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAED,uBAAiB,EAAE,WAAW,EAAE,kCAAkC,EAAE,KAAK,EAAE,IAAI,EAAE;IAC5F,oBAAA,EAAE,OAAO,EAAEb,gBAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE;wBACrD,EAAE,OAAO,EAAE,mBAAmB,EAAE;IACnC,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;gBA9BGe,oBAAiB,EAAA;gBAUZf,gBAAW,EAAA;gBACX,mBAAmB,EAAA;;;IAuBvB,IAAA,yBAAA,EAAA,CAAA,EAAA,IAAA,EAAAO,cAAW,SAAC,mCAAmC,EAAA,EAAA,CAAA;wCAI/CjB,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;qCAQLA,QAAK,EAAA,CAAA;sCAELA,QAAK,EAAA,CAAA;qCAKLA,QAAK,EAAA,CAAA;wCAELA,QAAK,EAAA,CAAA;4BAILA,QAAK,EAAA,CAAA;iCAcLC,SAAM,EAAA,CAAA;oCACNA,SAAM,EAAA,CAAA;;;AC5DX,QAAA,2BAAA,kBAAA,YAAA;QAkBI,SACqC,2BAAA,CAAA,aAA+B,EAC5C,SAAoB,EAAA;IADP,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;IAC5C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;SAE3C;IAlBD,IAAA,MAAA,CAAA,cAAA,CACI,2BAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IADpB,QAAA,GAAA,EAAA,UACqB,MAAc,EAAA;;gBAC/B,IAAI,IAAI,CAAC,eAAe,EAAE;IACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAC/B,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,iBAAiB,CACzB,CAAC;IACL,aAAA;IAAM,iBAAA;oBACH,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,aAAA;IACD,YAAA,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACnC,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,aAAa,0CAAE,UAAU,CAAC,KAAK,CAAC,CAAC;aACnD;;;IAAA,KAAA,CAAA,CAAA;;;;IA7BJ,IAAA,EAAA,IAAA,EAAAwD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAE/C,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC9B,qBAAA;IACD,oBAAA;IACI,wBAAA,OAAO,EAAEK,qBAAgB;IACzB,wBAAA,QAAQ,EAAE,gBAAgB;IAC7B,qBAAA;IACJ,iBAAA;IACJ,aAAA,EAAA,EAAA;;;gBAdQ,gBAAgB,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAkChBqB,SAAM,EAAA,IAAA,EAAA,CAACrB,qBAAgB,EAAA,EAAA,CAAA,EAAA;IArCvB,IAAA,EAAA,IAAA,EAAA6F,eAAS,uBAsCTrC,WAAQ,EAAA,CAAA,EAAA;;;kCAnBZxE,QAAK,EAAA,CAAA;oCACLA,QAAK,EAAA,CAAA;IAEL,IAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,oBAAoB,EAAA,EAAA,CAAA;;;AChB/B,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;IACI,IAAA,mBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,GAAuB,EAAE,WAA8B,EAAA;IAC7D,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAApC,EAAoC,CAAC,CAAC;SACnE,CAAA;;;;IANJ,IAAA,EAAA,IAAA,EAAA8C,OAAI,EAAC,IAAA,EAAA,CAAA;IACF,gBAAA,IAAI,EAAE,qBAAqB;IAC9B,aAAA,EAAA,EAAA;;;ACKD,QAAA,wBAAA,kBAAA,YAAA;IAgBI,IAAA,SAAA,wBAAA,CAAoB,QAA2B,EAAA;IAA3B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;IAbxC,QAAA,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;IAGjB,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS,CAAC;IAE3B,QAAA,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;IAClB,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAIjD,eAAY,EAAO,CAAC;SAQhF;IAND,IAAA,MAAA,CAAA,cAAA,CAAkC,wBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAA1C,QAAA,GAAA,EAAA,UAA2C,KAAuB,EAAA;IAC9D,YAAA,IAAI,CAAC,KAAK;oBAAE,OAAO;gBACnB,KAAK,CAAC,KAAK,EAAE,CAAC;aACjB;;;IAAA,KAAA,CAAA,CAAA;QAKM,wBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YACrC,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACH,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/B,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;IACH,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SAC1B,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;;IACH,QAAA,IAAM,YAAY,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,EAAE,CAAC;IAC/C,QAAA,IAAI,CAAC,YAAY;IAAE,YAAA,OAAO,KAAK,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SACrD,CAAA;IAEM,IAAA,wBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,KAAa,EAAE,YAA4B,EAAA;IAC3D,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACpB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAAE,OAAO;IACxC,QAAA,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,OAAO;gBAAE,OAAO;YAEzD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,IAAI,EAAE,CAAC,CAAC;SAC9C,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;YAAA,IAOP,KAAA,GAAA,IAAA,CAAA;IANG,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS;kBAC7B8G,QAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,GAAG,EAAE,IAAI,EAAA;oBAC7B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/B,gBAAA,OAAO,GAAG,CAAC;iBACd,EAAE,EAAE,CAAC;IACN,cAAE,IAAI,CAAC,MAAM,CAAC;SACrB,CAAA;;;;IAjEJ,IAAA,EAAA,IAAA,EAAA7G,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,oBAAoB;IAC9B,gBAAA,QAAkD,EAAA,8tCAAA;oBAElD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBATQ,iBAAiB,EAAA;;;kCAgBrBxB,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;oCACLC,SAAM,EAAA,CAAA;IAEN,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAAC,iBAAiB,EAAA,EAAA,CAAA;;;ACbhC,QAAA,oBAAA,kBAAA,YAAA;IAKI,IAAA,SAAA,oBAAA,GAAA;SACC;;;;IAZJ,IAAA,EAAA,IAAA,EAAA7C,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA4C,EAAA,28BAAA;oBAE5C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;uBAGIxB,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;;;ACHV,QAAA,0BAAA,kBAAA,YAAA;IAII,IAAA,SAAA,0BAAA,GAAA;SACC;;;;IAXJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,wBAAwB;IAClC,gBAAA,QAAmD,EAAA,mQAAA;oBAEnD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;0BAGIxB,QAAK,EAAA,CAAA;;;ACHV,QAAA,sBAAA,kBAAA,YAAA;IAII,IAAA,SAAA,sBAAA,GAAA;SACC;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;;;;IAdJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,oBAAoB;IAC9B,gBAAA,QAA+C,EAAA,8WAAA;oBAE/C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;0BAGIxB,QAAK,EAAA,CAAA;;;ACcV,QAAA,8BAAA,kBAAA,YAAA;IAII,IAAA,SAAA,8BAAA,GAAA;SACC;;;;IA3BJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,4BAA4B;IACtC,gBAAA,QAAQ,EAAE,sEAET;oBAgBD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;oBAftC,MAAA,EAAA,CAAA,0aAcR,CAAA;IAEJ,aAAA,EAAA,EAAA;;;;uBAGIxB,QAAK,EAAA,CAAA;;;ICjBV,IAAM,kBAAkB,GAAG;QACvB,oBAAoB;QACpB,0BAA0B;QAC1B,sBAAsB;QACtB,8BAA8B;KACjC,CAAC;AAsBF,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IApBC,IAAA,EAAA,IAAA,EAAA8G,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;oBACD,YAAY,EAAA,aAAA,CAAA;wBACR,gBAAgB;wBAChB,kBAAkB;IACf,iBAAA,EAAA,MAAA,CAAA,kBAAkB,CACxB,CAAA;oBACD,OAAO,EAAA,aAAA,CAAA;wBACH,gBAAgB;wBAChB,kBAAkB;IACf,iBAAA,EAAA,MAAA,CAAA,kBAAkB,CACxB,CAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,eAAe,EAAE;wBACb,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;IC7BD,IAAMC,YAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxC,IAAM,UAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAUxC,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IARC,IAAA,EAAA,IAAA,EAAAF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAAC,YAAU,CAAK,CAAA,EAAA,MAAA,CAAA,UAAU,CAAC,CAAA;IACvC,gBAAA,YAAY,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAAA,YAAU,CAAK,CAAA,EAAA,MAAA,CAAA,UAAU,CAAC,CAAA;IAC/C,aAAA,EAAA,EAAA;;;ICcD;IACA;AACAJ,0BAAW,CAAC,SAAS,CAAC,eAAe,GAAG,YAAA;;IACpC,IAAA,CAAA,EAAA,GAAA,IAAI,CAAC,wBAAwB,EAAE,0CAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAMI,YAAU,GAAG;QACf,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,kCAAkC;QAClC,2BAA2B;QAC3B,iCAAiC;QACjC,8BAA8B;QAC9B,mBAAmB;QACnB,wBAAwB;KAC3B,CAAC;AAmBF,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IAjBC,IAAA,EAAA,IAAA,EAAAF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,YAAY,EAAEE,YAAU;IACxB,gBAAA,OAAO,EAAEA,YAAU;IACnB,gBAAA,OAAO,EAAE;wBACLC,iBAAW;wBACXC,yBAAmB;wBACnBH,mBAAY;wBACZI,uBAAc;wBACdC,wBAAmB;wBACnBC,8BAAmB;wBACnBC,wBAAgB;wBAChB,eAAe;wBACf,eAAe;IAClB,iBAAA;oBACD,eAAe,EAAE,CAAC,iCAAiC,CAAC;IACvD,aAAA,EAAA,EAAA;;;ACtDM,QAAMN,YAAU,GAAG,CAAC,gBAAgB;QACvC,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;IAChB,IAAA,oBAAoB,EAAE;AAc1B,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAZC,IAAA,EAAA,IAAA,EAAAF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZE,iBAAW;wBACXC,yBAAmB;wBACnB,cAAc;wBACdC,uBAAc;IACjB,iBAAA;IACD,gBAAA,OAAO,EAAEH,YAAU;IACnB,gBAAA,YAAY,EAAEA,YAAU;IAC3B,aAAA,EAAA,EAAA;;;ACXD,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAdC,IAAA,EAAA,IAAA,EAAAF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZE,iBAAW;wBACXC,yBAAmB;wBACnB,cAAc;IACjB,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ICAD;IACA,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAOjC,QAAA,qBAAA,kBAAA,YAAA;IALA,IAAA,SAAA,qBAAA,GAAA;IAUoB,QAAA,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IAkB7B,QAAA,IAAA,CAAA,SAAS,GAAgC,IAAIrH,eAAY,EAAiB,CAAC;IAC3E,QAAA,IAAA,CAAA,MAAM,GAAmC,IAAIA,eAAY,EAAoB,CAAC;IAMvE,QAAA,IAAyB,CAAA,yBAAA,GAAG,MAAM,CAAC;IAC5C,QAAA,IAAA,CAAA,gBAAgB,GAAW,IAAI,CAAC,yBAAyB,CAAC;SA+FrE;IAjHG,IAAA,MAAA,CAAA,cAAA,CAAoB,qBAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;IAoBnC,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,gBAAgB,CAAC;aAChC;IAtBD,QAAA,GAAA,EAAA,UAAoC,MAAc,EAAA;gBAC9C,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC;aACpE;;;IAAA,KAAA,CAAA,CAAA;IAsBD,IAAA,MAAA,CAAA,cAAA,CAAW,qBAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;IAAhC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,CAAC0H,UAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;QAEM,qBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YACrC,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC,CAAA;QAEM,qBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAc,EAAA;;IAC9B,QAAA,IAAM,WAAW,GAAkB;IAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;IACrB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;IACzB,YAAA,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;aAC3C,CAAC;IAEF,QAAA,IAAI,CAACC,OAAM,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAC,EAAE;gBACnC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IAChD,SAAA;IAED,QAAA,IAAI,CAACA,OAAM,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC,EAAE;gBAClC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAC9C,SAAA;IAED,QAAA,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC;IAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,CAAA;IAEM,IAAA,qBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,MAAa,EAAE,QAAyB,EAAA;YACzD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACpC,MAAM,CAAC,wBAAwB,EAAE,CAAC;IACrC,SAAA;SACJ,CAAA;QAEM,qBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,MAAc,EAAA;IACnC,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChD,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAEvD,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAI,MAAM,CAAA,EAAA,MAAA,CAAK,YAAY,CAAA,CAAC,CAAC;IAC3D,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAI,aAAA,CAAA,CAAA,EAAE,KAAK,EAAE,MAAM,EAAE,CAAK,EAAA,MAAA,CAAA,YAAY,EAAC,CAAC;IACtE,SAAA;IAED,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;YAEjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5B,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;;IACJ,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAChD,QAAA,IAAI,CAAC,aAAa,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,cAAc,CAAC,CAAC;IACnD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC,CAAC;IAClG,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC9C,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,aAAiC,EAAE,aAA8B,EAAA;YAC3F,IAAI,EAAC,aAAa,KAAA,IAAA,IAAb,aAAa,KAAb,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAa,CAAE,MAAM,CAAA;IAAE,YAAA,OAAO,IAAI,CAAC;IAExC,QAAA,IAAID,UAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;IAC7B,YAAA,IAAM,iBAAe,GAAG9G,MAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAgB,CAAC;IACtF,YAAA,IAAM,aAAa,GAAGA,MAAK,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAgB,CAAC;IACjF,YAAA,OAAO,CAAC,iBAAe,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IACvE,SAAA;IAED,QAAA,IAAM,eAAe,GAAGA,MAAK,CAAC,aAAa,EAAE,UAAC,KAAK,EAAK,EAAA,OAAA,KAAK,KAAK,aAAa,CAAvB,EAAuB,CAAC,CAAC;YACjF,QAAQ,eAAe,IAAI,aAAa,CAAC,CAAC,CAAC,EAAY;SAC1D,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IAgBP,KAAA,GAAA,IAAA,CAAA;IAfG,QAAA,OAAOU,KAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAC,YAAY,EAAA;IACzC,YAAA,IAAIsG,UAAS,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;oBAC/B,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAEnD,gBAAA,IAAM,kBAAkB,GAAG,KAAI,CAAC,oBAAoB;IAChD,sBAAE,KAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;0BACrC,UAAU,CAAC,MAAM,CAAC,KAAI,CAAC,eAAe,CAAC,CAAC;IAE9C,gBAAA,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,kBAAkB,EAAE;IAC5C,oBAAA,OAAO,kBAAkB,CAAC;IAC7B,iBAAA;IACJ,aAAA;gBAED,OAAO,YAAY,CAAC,KAAK,CAAC;IAC9B,SAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjB,CAAA;;;;IAlIJ,IAAA,EAAA,IAAA,EAAA3H,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAA8C,EAAA,uiDAAA;;IAEjD,aAAA,EAAA,EAAA;;;yBAEIE,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;6BAELA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;yCACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;uCAELA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;kCAELA,QAAK,EAAA,CAAA;uCAILA,QAAK,EAAA,CAAA;wBAELA,QAAK,EAAA,CAAA;mCACLA,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;4BAELC,SAAM,EAAA,CAAA;yBACNA,SAAM,EAAA,CAAA;;;ACpCX,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;;;;IATC,IAAA,EAAA,IAAA,EAAA6G,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;IACrC,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,cAAc;wBACdE,iBAAW;IACd,iBAAA;oBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;IACnC,aAAA,EAAA,EAAA;;;ACQD,QAAA,WAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,WAAA,GAAA;;;;;IAdC,IAAA,EAAA,IAAA,EAAAH,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,kBAAkB;IACrB,iBAAA;oBACD,OAAO,EAAE,CAAC,cAAc,CAAC;IACzB,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,cAAc;IACjB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACGD,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IAhBC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,YAAY,EAAE;wBACV,iBAAiB;wBACjB,YAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,iBAAiB;wBACjB,YAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACLQ,wBAAgB;wBAChB,eAAe;wBACfP,mBAAY;IACf,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACDD,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IAfC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,kBAAkB;wBAClB,kBAAkB;IACrB,iBAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,kBAAkB;wBAClB,kBAAkB;IACrB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACaD,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;;;;;IAtBC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,eAAe;IAClB,iBAAA;IACD,gBAAA,YAAY,EAAE;wBACV,mBAAmB;wBACnB,2BAA2B;wBAC3B,mBAAmB;wBACnB,sBAAsB;IACzB,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,mBAAmB;wBACnB,2BAA2B;wBAC3B,mBAAmB;wBACnB,sBAAsB;IACzB,iBAAA;IACD,gBAAA,SAAS,EAAE;wBACP,iBAAiB;IACpB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACAD,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;;;;IApBC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZW,kBAAa;wBACbT,iBAAW;wBACXC,yBAAmB;wBACnB,cAAc;wBACd,eAAe;IAClB,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,eAAe;wBACf,cAAc;IACjB,iBAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,eAAe;wBACf,cAAc;IACjB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ICpBD,IAAM,uBAAuB,GAAG;QAC5B,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,4BAA4B;KAC/B,CAAC;AAQF,QAAA,iBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,iBAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAAJ,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,uBAAuB,CAAC,CAAA;oBACrC,YAAY,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,uBAAuB,CAAC,CAAA;IAC1C,gBAAA,SAAS,EAAE,EAAE;IAChB,aAAA,EAAA,EAAA;;;ICbD,IAAM,UAAU,GAAG;QACf,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;KACxB,CAAC;AAQF,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;oBACxB,YAAY,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;IAChC,aAAA,EAAA,EAAA;;;ACGD,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAbC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZE,iBAAW;wBACX,eAAe;IAClB,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACRD,QAAA,gBAAA,kBAAA,YAAA;IAYI,IAAA,SAAA,gBAAA,GAAA;IARS,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IACpB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IACrB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IACjB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IACnB,QAAA,IAAA,CAAA,UAAU,GAAuB,IAAIpH,eAAY,EAAQ,CAAC;SAInE;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAU,EAAA;YACjB,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC7C,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAA;SACJ,CAAA;QAED,gBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAU,EAAA;YACf,IAAI,IAAI,CAAC,iBAAiB;IAAE,YAAA,OAAO,IAAI,CAAC;YACxC,IAAI,IAAI,CAAC,SAAS;IAAE,YAAA,OAAO,MAAM,CAAC;IAClC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS;gBAAE,OAAO,CAAI,CAAC,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,cAAc,KAAG,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,aAAa,CAAA,GAAG,GAAG,KAAK,CAAE,IAAA,GAAG,CAAC;IACrI,QAAA,OAAO,IAAI,CAAC;SACf,CAAA;IAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;YACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;SAC/C,CAAA;IAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;SAC/C,CAAA;QAEM,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;IAC3B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B,CAAA;;;;IA5CJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAAuC,EAAA,wxHAAA;oBAEvC,eAAe,EAAE0B,0BAAuB,CAAC,OAAO;;IACnD,aAAA,EAAA,EAAA;;;;wBAGIxB,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;oCACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;6BACLC,SAAM,EAAA,CAAA;IACN,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,YAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAEP,aAAU,EAAE,EAAA,EAAA,CAAA;;;ACN9C,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IARC,IAAA,EAAA,IAAA,EAAA0E,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;IAChC,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,eAAe;IAClB,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC9B,aAAA,EAAA,EAAA;;;ACCD,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;;;;IATC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;IACjC,gBAAA,SAAS,EAAE,EAAE;oBACb,YAAY,EAAE,CAAC,sBAAsB,CAAC;IACzC,aAAA,EAAA,EAAA;;;ICY0C,IAAAY,IAAA,GAAA,EAAE,OACC,EAAE,CAAA;AAIhD,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IAjBC,IAAA,EAAA,IAAA,EAAAb,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IACnE,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZa,oBAAe;wBACf,cAAc;wBACdV,yBAAmB;wBACnB,eAAe;wBACf,mBAAmB;IACtB,iBAAA;IACD,gBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IAC9D,gBAAA,SAAS,EAAE;IACP,oBAAA,EAAE,OAAO,EAAEvC,iBAAY,EAAE,QAAQ,MAAI,EAAE;IACvC,oBAAA,EAAE,OAAO,EAAEC,oBAAe,EAAE,QAAQ,IAAI,EAAE;wBAC1C,aAAa;IAChB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ICxBD;;IAEG;AAOH,QAAA,0BAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,0BAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAA9E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,QAA+C,EAAA,kEAAA;oBAE/C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;0BAOIxB,QAAK,EAAA,CAAA;;;ICRV;;IAEG;AAMH,QAAA,0BAAA,kBAAA,YAAA;QA6BI,SAAsB,0BAAA,CAAA,EAAqB,EAAY,YAA0B,EAAA;IAA3D,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IAAY,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;SAChF;IAdD,IAAA,MAAA,CAAA,cAAA,CACI,0BAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IANT;;;;IAIG;IACH,QAAA,GAAA,EAAA,UACU,KAAyB,EAAA;gBADnC,IAWC,KAAA,GAAA,IAAA,CAAA;IATG,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,UAAC,IAAS,EAAA;oBAC1C,IAAM,OAAO,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,gBAAA,OACO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,KACP,QAAQ,EAAE,OAAO,IAAI,KAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAQ,IAAI,CAAC,GAAI,GAAA,GAAG,CAAC,EACrF,OAAO,EAAA,OAAA,EACT,CAAA,CAAA;IACN,aAAC,CAAC,CAAC;IACH,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;QAMD,0BAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,IAAsB,EAAA;IAC1B,QAAA,IAAM,IAAI,GAAI,IAAqC,CAAC,IAAI,CAAC;IACzD,QAAA,IAAI,IAAI,EAAE;IACN,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SAChB,CAAA;;;;IA5CJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,QAA+C,EAAA,kTAAA;oBAC/C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;IAClD,aAAA,EAAA,EAAA;;;gBAjBiCC,oBAAiB,EAAA;gBAC1C+D,4BAAY,EAAA;;;0BA0BhBxF,QAAK,EAAA,CAAA;wBAOLA,QAAK,EAAA,CAAA;;;IC9BV,IAAM,gCAAgC,GAAG,YAAA;IACrC,IAAA,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC,CAAC;;AAKF,QAAA,4BAAA,kBAAA,YAAA;QAmBI,SAAmB,4BAAA,CAAA,WAA6B,EAC1B,oBAAgD,EAAA;IADnD,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAC1B,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA4B;SAAI;IAd1E,IAAA,MAAA,CAAA,cAAA,CACI,4BAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;IANnB;;;;IAIG;IACH,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;IACD,QAAA,GAAA,EAAA,UAAoB,KAAa,EAAA;IAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACtB;;;IAHA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,4BAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAAR,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,4BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACb,YAAA,gCAAgC,EAAE,CAAC;IACtC,SAAA;YACD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACvD,CAAA;IAED,IAAA,4BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnD,CAAA;;;;IAlCJ,IAAA,EAAA,IAAA,EAAAyD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,mBAAmB;IAChC,aAAA,EAAA,EAAA;;;gBAV6CN,cAAW,EAAA;gBAEhD,0BAA0B,EAAA;;;kCAe9BnD,QAAK,EAAA,CAAA;;;ACTV,QAAA,sBAAA,kBAAA,YAAA;IAEI,IAAA,SAAA,sBAAA,GAAA;SACC;;;;IATJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA6C,EAAA,sCAAA;oBAE7C,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;ICUD,IAAM,kBAAkB,GAAG;QACvB,eAAe;QACf,sBAAsB;QACtB,mBAAmB;QACnB,0BAA0B;QAC1B,0BAA0B;QAC1B,0BAA0B;QAC1B,sBAAsB;KACzB,CAAC;IAEF,IAAM,kBAAkB,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAe1D,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;;;;IAZC,IAAA,EAAA,IAAA,EAAAsF,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLG,iBAAW;wBACXC,yBAAmB;wBACnBH,mBAAY;wBACZ,cAAc;wBACd,cAAc;wBACd,eAAe;IAClB,iBAAA;IACD,gBAAA,YAAY,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,kBAAkB,CAAK,CAAA,EAAA,MAAA,CAAA,kBAAkB,CAAC,CAAA;IAC5D,gBAAA,OAAO,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,kBAAkB,CAAK,CAAA,EAAA,MAAA,CAAA,kBAAkB,CAAC,CAAA;IAC1D,aAAA,EAAA,EAAA;;;AC3BD,QAAA,gCAAA,kBAAA,YAAA;IAwCI,IAAA,SAAA,gCAAA,CAAoB,eAAgC,EAAA;IAAhC,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;IAvC7C,QAAA,IAAgB,CAAA,gBAAA,GAAGnD,wBAAgB,CAAC;IAGnC,QAAA,IAAa,CAAA,aAAA,GAAqB,EAAE,CAAC;IAK7B,QAAA,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;IAS7B,QAAA,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;IACrC,QAAA,IAA2B,CAAA,2BAAA,GAAY,KAAK,CAAC;IAE5C,QAAA,IAAA,CAAA,mBAAmB,GAAuC,IAAI/D,eAAY,EAAwB,CAAC;SAoBnH;IA/BD,IAAA,MAAA,CAAA,cAAA,CAAoB,gCAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAapC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,iBAAiB,IAAIqG,gBAAQ,CAAC,OAAO,CAAC;aACrD;IAfD,QAAA,GAAA,EAAA,UAAqC,QAAkB,EAAA;IACnD,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAACA,gBAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAC7C,gBAAA,IAAI,CAAC,iBAAiB,GAAGA,gBAAQ,CAAC,OAAO,CAAC;oBAC1C,OAAO;IACV,aAAA;IAED,YAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;aACrC;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CAAW,gCAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAvB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAwB,IAAsB,EAAA;IAC1C,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC1B,YAAA,IAAI,CAAC,qBAAqB,GAAGzF,MAAK,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;aACvE;;;IALA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CAAW,gCAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAOA,MAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAES,gBAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;aAC5D;;;IAAA,KAAA,CAAA,CAAA;IAKM,IAAA,gCAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAChJ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC7F,CAAA;QAEM,gCAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,QAAkB,EAAA;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B,CAAA;QAEM,gCAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,GAAmB,EAAA;IAC1C,QAAA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;IACvC,QAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B,CAAA;IAEM,IAAA,gCAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;IACH,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;IAC/B,YAAA,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;IACxG,SAAA,CAAC,CAAC;SACN,CAAA;QAEO,gCAA4B,CAAA,SAAA,CAAA,4BAAA,GAA5B,UAA6B,GAAmB,EAAA;YACpD,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,OAAO;IAEvD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAKA,gBAAQ,CAAC,IAAI,EAAE;IAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7C,SAAA;IAED,QAAA,IAAI,GAAG,KAAK,IAAI,CAAC,qBAAqB,EAAE;IACpC,YAAA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,YAAA,IAAI,OAAO,EAAE;IACT,gBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IAC1B,aAAA;IACJ,SAAA;SACJ,CAAA;QAEO,gCAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,GAAmB,EAAA;;YAChD,IAAI,EAAC,CAAA,EAAA,GAAA,GAAG,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA;gBAAE,OAAO;IAC3C,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,QAAA,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,OAAO,CAAC,OAAO,GAAGC,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAC,MAAM,EAAA;IAC3C,YAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAACuF,UAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChF,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC,CAAC;YAEH,OAAO,CAAC,kBAAkB,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACzD,CAAA;;;;IAtGJ,IAAA,EAAA,IAAA,EAAA5G,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,2BAA2B;IACrC,gBAAA,QAAyD,EAAA,sqDAAA;oBAEzD,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;oBAC/C,SAAS,EAAE,CAAC,eAAe,CAAC;;IAC/B,aAAA,EAAA,EAAA;;;gBAXQ,eAAe,EAAA;;;oCAoBnBxB,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;mCACLA,QAAK,EAAA,CAAA;sCAQLA,QAAK,EAAA,CAAA;8CACLA,QAAK,EAAA,CAAA;sCAELC,SAAM,EAAA,CAAA;;;ACfX,QAAA,mCAAA,kBAAA,YAAA;IANA,IAAA,SAAA,mCAAA,GAAA;IAoBoB,QAAA,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;IACnC,QAAA,IAAgB,CAAA,gBAAA,GAAgB,EAAE,CAAC;IAGnC,QAAA,IAAW,CAAA,WAAA,GAAwB,EAAE,CAAC;IAKrC,QAAA,IAAA,CAAA,sBAAsB,GAAuC,IAAIJ,eAAY,EAAwB,CAAC;IAEhH,QAAA,IAAc,CAAA,cAAA,GAAuC,EAAE,CAAC;IAEvD,QAAA,IAAY,CAAA,YAAA,GAAoB,EAAE,CAAC;IACnC,QAAA,IAAiB,CAAA,iBAAA,GAAoB,EAAE,CAAC;IACxC,QAAA,IAAU,CAAA,UAAA,GAAoB,EAAE,CAAC;SAmC5C;IA9DG,IAAA,MAAA,CAAA,cAAA,CAAoB,mCAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IA6B/B,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,YAAY,CAAC;aAC5B;IA/BD,QAAA,GAAA,EAAA,UAAgC,IAAqB,EAAA;gBAArD,IASC,KAAA,GAAA,IAAA,CAAA;IARG,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,cAAc,GAAG8G,QAAO,CAAC,IAAI,EAAE,UAAC,GAAG,EAAE,IAAI,EAAA;;IAC1C,gBAAA,IAAM,KAAK,GAAG,CAAA,EAAA,GAAAlG,MAAK,CAAC,KAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,EAAE,CAAC;oBAC9D,IAAI,KAAK,CAAC,KAAK,CAAC;IAAE,oBAAA,OAAO,GAAG,CAAC;IAE7B,gBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClB,gBAAA,OAAO,GAAG,CAAC;iBACd,EAAE,EAAE,CAAC,CAAC;aACV;;;IAAA,KAAA,CAAA,CAAA;QAwBM,mCAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,aAA4B,EAAA;IAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;SACvC,CAAA;QAEM,mCAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,MAAqB,EAAA;IACpC,QAAA,IAAM,QAAQ,GAAGA,MAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3D,QAAA,IAAI,QAAQ,EAAE;IACV,YAAAW,OAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,SAAA;YAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACnC,CAAA;QAEM,mCAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,MAAuB,EAAA;IAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;YAChC,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACnC,CAAA;IAEM,IAAA,mCAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;YACH,IAAM,IAAI,GAAO,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,IAAI,CAAC,iBAAiB,WAAK,IAAI,CAAC,UAAU,CAAA,CAAC,CAAC;IAC7D,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,YAAA,IAAI,EAAA,IAAA;IACP,SAAA,CAAC,CAAC;SACN,CAAA;;;;IArEJ,IAAA,EAAA,IAAA,EAAAtB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,+BAA+B;IACzC,gBAAA,QAA6D,EAAA,wsBAAA;oBAE7D,eAAe,EAAE0B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;6BAEIxB,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;2BAWLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;mCACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;sCACLA,QAAK,EAAA,CAAA;yCAELC,SAAM,EAAA,CAAA;;;ICjCX,IAAM,UAAU,GAAG;QACf,gCAAgC;QAChC,mCAAmC;KACtC,CAAA;AAaD,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;;;;;IAXC,IAAA,EAAA,IAAA,EAAA6G,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,YAAY,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;oBAC7B,SAAS,EAAE,CAAC,eAAe,CAAC;IAC5B,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,cAAc;wBACdE,iBAAW;wBACX,WAAW;IACd,iBAAA;oBACD,OAAO,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;IAC3B,aAAA,EAAA,EAAA;;;ACVD,QAAA,sBAAA,kBAAA,YAAA;IAQI,IAAA,SAAA,sBAAA,GAAA;IANS,QAAA,IAAA,CAAA,KAAK,GAAgBX,mBAAW,CAAC,OAAO,CAAC;SAQjD;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SAEC,CAAA;;;;IArBJ,IAAA,EAAA,IAAA,EAAAxG,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAA6C,EAAA,4MAAA;IAC7C,gBAAA,QAAQ,EAAE,iBAAiB;oBAE3B,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;;wBAIIC,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;;;ACFV,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;;;;IAZC,IAAA,EAAA,IAAA,EAAA8G,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,eAAe;IAClB,iBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;IACjC,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,sBAAsB;IACzB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACLD,QAAA,qBAAA,kBAAA,YAAA;IAME,IAAA,SAAA,qBAAA,CACU,aAA6B,EAAA;YADvC,IAIC,KAAA,GAAA,IAAA,CAAA;IAHS,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;IAH7B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIlH,eAAY,EAAW,CAAC;YAQtD,IAAgB,CAAA,gBAAA,GAAG,YAAA;gBACjB,KAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7C,SAAC,CAAA;YAED,IAAe,CAAA,eAAA,GAAG,YAAA;IAChB,YAAA,IAAM,OAAO,GAAG,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,YAAA,IAAI,CAAC8F,OAAK,CAAC,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE;oBACtE,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAlC,EAAkC,CAAC,CAAC;IACzE,aAAA;IACD,YAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,SAAC,CAAA;IAbC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;SAClC;IAcD,IAAA,qBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,KAAmB,EAAE,OAAgB,EAAA;;IACxD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE;gBACxC,IAAI,WAAW,GAAY,IAAI,CAAC;;oBAChC,KAAwB,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAvC,oBAAA,IAAM,SAAS,GAAA,EAAA,CAAA,KAAA,CAAA;wBAClB,IAAI,WAAW,KAAK,IAAI,EAAE;IACxB,wBAAA,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;IACjC,qBAAA;IAAM,yBAAA,IAAI,WAAW,KAAK,SAAS,CAAC,OAAO,EAAE;4BAC5C,WAAW,GAAG,SAAS,CAAC;4BACxB,MAAM;IACP,qBAAA;IACF,iBAAA;;;;;;;;;gBAED,IAAI,WAAW,KAAK,IAAI,EAAE;oBACxB,WAAW,GAAG,KAAK,CAAC;IACrB,aAAA;IAED,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;IACrC,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;IACjC,aAAA;IAEF,SAAA;IAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC,CAAA;;;;IApDF,IAAA,EAAA,IAAA,EAAA7F,YAAS,EAAC,IAAA,EAAA,CAAA;IACT,gBAAA,QAAQ,EAAE,mBAAmB;IAC7B,gBAAA,QAA6C,EAAA,mfAAA;;IAE9C,aAAA,EAAA,EAAA;;;gBAPQ,cAAc,EAAA;;;yBASpBE,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;gCACLC,SAAM,EAAA,CAAA;;;ACYT,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;IACW,IAAA,cAAA,CAAA,OAAO,GAAd,YAAA;YACI,OAAO;IACH,YAAA,QAAQ,EAAE,cAAc;IACxB,YAAA,SAAS,EAAE;oBACP,cAAc;IACd,gBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,0BAA0B,EAAE;IACzE,aAAA;aACJ,CAAC;SACL,CAAA;;;;IA1BJ,IAAA,EAAA,IAAA,EAAA6G,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLG,iBAAW;wBACXF,mBAAY;IACf,iBAAA;IACD,gBAAA,YAAY,EAAE;wBACV,iBAAiB;wBACjB,qBAAqB;wBACrB,YAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,iBAAiB;wBACjB,YAAY;IACf,iBAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IAChB,aAAA,EAAA,EAAA;;;ACTD,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAXC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ICdD;;ICAA;;IAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}