{"version":3,"file":"../../js/ClientInformation/qmc.client-information.min.js","sources":["qmc.client-information.min.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n(function () {\n angular.module('QMC.ClientInformation', []).config(routes);\n routes.$inject = ['$locationProvider', '$stateProvider', '$urlRouterProvider', 'qmcBase'];\n function routes($locationProvider, $stateProvider, $urlRouterProvider, qmcBase) {\n $locationProvider.html5Mode({\n enabled: false,\n requireBase: false\n });\n $stateProvider\n .state('clientInformation', {\n url: '/clientInformation',\n templateUrl: qmcBase + '/ClientInformation',\n controller: 'ClientInformationController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: ClientInformation');\n }]\n }\n });\n }\n})();\nvar QMC;\n(function (QMC) {\n var ClientInformation;\n (function (ClientInformation) {\n var HttpProvider = /** @class */ (function () {\n function HttpProvider() {\n }\n HttpProvider.configureHttpProvider = function ($httpProvider) {\n // initialize get if not there\n if (!$httpProvider.defaults.headers.get) {\n $httpProvider.defaults.headers.get = {};\n }\n // disable IE ajax request caching\n $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';\n // extra\n $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';\n $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';\n };\n return HttpProvider;\n }());\n ClientInformation.HttpProvider = HttpProvider;\n })(ClientInformation = QMC.ClientInformation || (QMC.ClientInformation = {}));\n})(QMC || (QMC = {}));\n(function () {\n angular.module('QMC.ClientInformation')\n .config(['$httpProvider', QMC.ClientInformation.HttpProvider.configureHttpProvider]);\n})();\nvar QMC;\n(function (QMC) {\n var ClientInformation;\n (function (ClientInformation) {\n var ClientInformationService = /** @class */ (function (_super) {\n __extends(ClientInformationService, _super);\n function ClientInformationService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n _this.modulePath = '/ClientInformation';\n return _this;\n }\n ClientInformationService.prototype.getClientInformationWv = function () {\n return _super.prototype.getItem.call(this, this.modulePath + '/WvModel', {}, function (data) {\n return data;\n });\n };\n ClientInformationService.prototype.getCategoryList = function () {\n return _super.prototype.getItem.call(this, this.modulePath + '/CategoryList', {}, function (data) {\n return data;\n });\n };\n ClientInformationService.prototype.getClientInformation = function (form, formatText) {\n if (formatText === void 0) { formatText = false; }\n return _super.prototype.post.call(this, this.modulePath + (\"?formatText=\" + formatText), form).then(function (data) {\n return data;\n });\n };\n ClientInformationService = __decorate([\n QMC.Service('QMC.ClientInformation', 'ClientInformationService'),\n QMC.Inject('$http', '$q')\n ], ClientInformationService);\n return ClientInformationService;\n }(QMC.Common.BaseService));\n ClientInformation.ClientInformationService = ClientInformationService;\n })(ClientInformation = QMC.ClientInformation || (QMC.ClientInformation = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var ClientInformation;\n (function (ClientInformation) {\n var QmClientInformationDirective = /** @class */ (function () {\n function QmClientInformationDirective($qui, lng, permissionService, clientInformationService, clientService, employeeService) {\n var _this = this;\n this.$qui = $qui;\n this.lng = lng;\n this.permissionService = permissionService;\n this.clientInformationService = clientInformationService;\n this.clientService = clientService;\n this.employeeService = employeeService;\n this.restrict = 'E';\n this.templateUrl = './clientinformation/ClientInformationDirective';\n this.replace = true;\n this.scope = {\n qmSelectedClients: '=',\n };\n this.groupTags = {\n client: this.lng.translate(0, 'Klient'),\n flsGroup: this.lng.translate(0, 'Fachleistungsgruppe'),\n personslist: this.lng.translate(0, 'Personenliste')\n };\n this.link = function (scope) {\n var storageName = 'ClientInfo_' + $('#session').data().userId;\n scope.form = {\n clients: scope.qmSelectedClients,\n employee: scope.qmSelectedEmployee,\n includeEmployeesThatModified: true,\n markings: [],\n livingAreas: [],\n dateFrom: new Date().setMonth(new Date().getMonth() - 1),\n dateTo: new Date(),\n categoryPreselection: \"a6ce4251-f69e-4f03-b7c0-00d80e53aeaf\",\n searchwords: \"\",\n privateContent: false,\n allCategories: true,\n allLivingAreas: true\n };\n scope.clientInfo = {\n clientInformation: [],\n clientInfoText: \"\",\n orderAsc: false\n };\n var cacheFilter = function () {\n var temp = angular.copy(scope.form);\n delete temp.clients;\n delete temp.employee;\n delete temp.dateFrom;\n delete temp.dateTo;\n temp.orderAsc = scope.clientInfo.orderAsc;\n };\n scope.$watch('qmSelectedEmployee', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n scope.form.clients = scope.qmSelectedEmployee;\n });\n scope.$watch('qmSelectedClients', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n scope.form.clients = scope.qmSelectedClients;\n });\n scope.$watch('form.clients', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n scope.qmSelectedClients = scope.form.clients;\n });\n _this.permissionService.getPermissionsByObjectType(143000).then(function (data) {\n scope.allowExport = data[0].print;\n });\n scope.init = function () {\n var restoreStorage = false;\n scope.$watch('clientInfo.orderAsc', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n cacheFilter();\n scope.clientInfo.clientInfoText = _this.createTextFromClientInfo(scope.clientInfo.clientInformation, scope.clientInfo.orderAsc);\n });\n scope.$watch('form.categoryPreselection', function (newVal, oldVal) {\n if (restoreStorage)\n return;\n if (newVal !== oldVal || !scope.form || !scope.form.categoryPreselection)\n // find selected preselection\n for (var _i = 0, _a = scope.categoryPreselectionList; _i < _a.length; _i++) {\n var category = _a[_i];\n if (category.id === scope.form.categoryPreselection) {\n scope.form.categories = category.category;\n scope.form.livingAreas = category.livingArea.filter(function (x) { return x != null; });\n break;\n }\n }\n //if no livingAreas where found for the selected category, fill the livingAreas with the formattedLivingAreas\n if (scope.form.livingAreas.length === 0) {\n scope.form.livingAreas = scope.formattedLivingAreas.map(function (a) { return a.value; });\n }\n });\n if (localStorage.getItem(storageName)) {\n restoreStorage = true;\n var storage = JSON.parse(localStorage.getItem(storageName));\n scope.clientInfo.orderAsc = storage.orderAsc;\n scope.form = __assign(__assign({}, scope.form), storage);\n setTimeout(function () { restoreStorage = false; }, 50);\n }\n scope.$watch('form', function () {\n cacheFilter();\n }, true);\n };\n scope.getData = function () {\n scope.loadingData = true;\n _this.clientInformationService.getCategoryList().then(function (dataCategoryList) {\n scope.categoryPreselectionList = dataCategoryList;\n scope.formattedCategoryPreselections = dataCategoryList.map(function (x) { return ({ value: x.id, text: x.name }); });\n _this.clientInformationService.getClientInformationWv().then(function (dataWv) {\n scope.loadingData = false;\n dataWv.livingAreaWvList.unshift({\n id: QMC.Common.Constants.GUID_EMPTY,\n objectId: QMC.Common.Constants.GUID_EMPTY,\n name: _this.lng.translate(20026009, \"Ohne Lebensbereich\"),\n isFix: true,\n value: 0\n });\n scope.formattedCategories = dataWv.categoryWvList.map(function (x) { return ({ value: x.objectId, text: x.name }); });\n scope.formattedLivingAreas = dataWv.livingAreaWvList.map(function (x) { return ({ value: x.objectId, text: x.name }); });\n scope.formattedMarkings = dataWv.markingWvList.map(function (x) { return ({ value: x.objectId, text: x.name }); });\n _this.clientInformationService.getCategoryList().then(function (dataCategoryList) {\n scope.categoryList = dataCategoryList;\n for (var _i = 0, _a = scope.categoryList; _i < _a.length; _i++) {\n var category = _a[_i];\n if (category.category.length === 0)\n category.category = scope.formattedCategories.map(function (a) { return a.value; });\n if (category.livingArea.length === 0)\n category.livingArea = scope.formattedLivingAreas.map(function (a) { return a.value; });\n }\n scope.init();\n });\n });\n });\n };\n scope.getReferences = function () {\n scope.formattedReferences = [];\n scope.loadingClients = true;\n _this.clientService.getClientPersonList().then(function (data) {\n scope.formattedReferences = scope.formattedReferences.concat(data.map(function (x) { return ({ value: x.objectId, text: _this.$qui.createPersonDisplay(x.lastName, x.firstName, x.shortCaption, x.personNumber) + (\", \" + x.institute), group: _this.groupTags.client }); }));\n scope.loadingClients = false;\n });\n _this.clientService.getFlsGroupList(0, -1).then(function (data) {\n scope.formattedReferences = scope.formattedReferences.concat(data.items.map(function (x) { return ({ value: x.objectId, text: x.name + (\", \" + x.institution), group: _this.groupTags.flsGroup }); }));\n });\n _this.clientService.getAllPersonLists().then(function (data) {\n scope.formattedReferences = scope.formattedReferences.concat(data.map(function (x) { return ({ value: x.objectId, text: x.name, group: _this.groupTags.personslist }); }));\n });\n };\n scope.getEmployee = function () {\n scope.loadingEmployee = true;\n _this.employeeService.getEmployeeList().then(function (data) {\n scope.formattedEmployee = data.map(function (x) { return ({ value: x.objectId, text: _this.$qui.createPersonDisplay(x.name, x.forename, x.shortCaption, x.employeeNr), group: x.institute }); });\n scope.loadingEmployee = false;\n });\n };\n scope.getData();\n scope.getReferences();\n scope.getEmployee();\n scope.print = function () {\n var winPrint = window.open('', '', 'left=0,top=0,width=800,height=600,toolbar=0,scrollbars=0,status=0');\n winPrint.document.write(scope.clientInfo.clientInfoText);\n winPrint.document.close();\n winPrint.focus();\n winPrint.print();\n winPrint.close();\n };\n scope.createClientInfo = function () {\n var _a, _b;\n scope.clientInfo.clientInformation = [];\n scope.clientInfo.clientInfoText = '';\n if (scope.form.clients.length === 0) {\n _this.$qui.notify({\n message: _this.lng.translate(20026007, \"Kein Klient angegeben\"),\n title: _this.lng.translate(20002017, \"Warnung\"),\n timer: 5000\n });\n return;\n }\n scope.form.dateFrom = _this.$qui.createDateFromString(scope.form.dateFrom);\n scope.form.dateTo = _this.$qui.createDateFromString(scope.form.dateTo);\n scope.loadingInfo = true;\n var getForm = {\n references: _this.createReferences((_a = scope.form.clients) !== null && _a !== void 0 ? _a : [], (_b = scope.form.employee) !== null && _b !== void 0 ? _b : [], scope.formattedReferences),\n //ReferenceClientIds: scope.form.clients,\n //ReferenceEmployeeIds: scope.form.employee,\n includeEmployeesThatModified: scope.form.includeEmployeesThatModified,\n categoryIds: scope.form.categories,\n livingAreaIds: scope.form.livingAreas,\n markingIds: scope.form.markings,\n searchterms: scope.form.searchwords.split(\";\"),\n dateFrom: scope.form.dateFrom,\n dateTo: scope.form.dateTo,\n privateContent: scope.form.privateContent\n };\n _this.clientInformationService.getClientInformation(getForm, scope.form.formatText).then(function (data) {\n scope.clientInfo.clientInformation = data.sort(function (a, b) { return a.reference.localeCompare(b.reference); });\n scope.clientInfo.clientInfoText = _this.createTextFromClientInfo(scope.clientInfo.clientInformation, scope.clientInfo.orderAsc);\n scope.loadingInfo = false;\n });\n };\n };\n }\n QmClientInformationDirective.prototype.createTextFromClientInfo = function (clientInfo, orderAsc) {\n var result = \"\";\n // items are arrangend for client so we create text for client\n for (var i = 0; i < clientInfo.length; i++) {\n var client = clientInfo[i];\n if (i !== 0)\n result += \"

\";\n // create Header\n result += this.createBoldText(this.lng.translate(20026008, \"Klienteninformation\") + \": \" + client.reference + \" \" + this.lng.translate(20000218, \"vom\") + \" \" + new Date().toLocaleDateString());\n result += \"
\";\n //Order list by datefrom according to setting\n client.items = this.orderByDate(client.items, orderAsc);\n for (var _i = 0, _a = client.items; _i < _a.length; _i++) {\n var item = _a[_i];\n result += \"

\";\n result += this.createBoldText(item.category + \" \" + client.reference + ', ' + item.title + \"
\");\n if (item.dateFrom)\n result += moment(item.dateFrom).format(\"DD.MM.YYYY HH:mm\") + \" \";\n if (item.dateTo)\n result += \"- \" + moment(item.dateTo).format(\"DD.MM.YYYY HH:mm\") + \" \";\n if (item.author && item.author.length > 0)\n result += this.lng.translate(20000062, \"Autor\") + \": \" + item.author;\n for (var k = 0; k < item.content.length; k++) {\n var content = item.content[k];\n result += \"
\";\n var header = item.content[k].title && item.content[k].title.length > 0 ? this.createBoldText(item.content[k].title) + ' ' : '';\n if (content.date && k > 0)\n header += moment(content.date).format(\"DD.MM.YYYY HH:mm\");\n if (content.author && content.author.trim() !== \"\" && k > 0)\n header += \" \" + this.lng.translate(20000062, \"Autor\") + \": \" + content.author + \" \";\n if (content.livingArea && content.livingArea.trim() !== \"\")\n header += this.createBoldText(this.lng.translate(20000074, \"Lebensbereich\") + \": \" + content.livingArea);\n result += header.trim().length > 0 ? header.trim() + '
' : '';\n result += content.comment.length > 0 ? content.comment + \"
\" : \"\";\n }\n result += \"

\";\n }\n result += \"
\";\n }\n return result;\n };\n QmClientInformationDirective.prototype.orderByDate = function (items, ascending) {\n var _this = this;\n return items.sort(function (a, b) {\n var aDateFrom = a.dateFrom ? _this.$qui.createDateFromString(a.dateFrom) : undefined;\n var bDateFrom = b.dateFrom ? _this.$qui.createDateFromString(b.dateFrom) : undefined;\n if ((!aDateFrom && bDateFrom) || (aDateFrom < bDateFrom))\n return ascending ? -1 : 1;\n if ((aDateFrom && !bDateFrom) || (aDateFrom > bDateFrom))\n return ascending ? 1 : -1;\n return 0;\n });\n };\n QmClientInformationDirective.prototype.createBoldText = function (text) {\n return \"\" + text + \"\";\n };\n QmClientInformationDirective.prototype.createReferences = function (selectedReferences, selectedEmployees, references) {\n var _this = this;\n return __spreadArrays(selectedReferences.map(function (x) {\n var _a;\n return ({\n id: x,\n type: _this.getReferenceTypeByGroupName((_a = references.filter(function (y) { return y.value === x; })[0]) === null || _a === void 0 ? void 0 : _a.group)\n });\n }), selectedEmployees.map(function (x) { return ({ id: x, type: 120000 }); }));\n };\n QmClientInformationDirective.prototype.getReferenceTypeByGroupName = function (group) {\n switch (group) {\n case this.groupTags.flsGroup:\n return 710000;\n case this.groupTags.personslist:\n return 190000;\n default:\n return 140000;\n }\n };\n QmClientInformationDirective = __decorate([\n QMC.Directive('QMC.ClientInformation', 'qmClientInformation', ['$qui', 'QmcLanguageService', 'QmcPermissionService', 'ClientInformationService', 'KlientService', 'EmployeeService'])\n ], QmClientInformationDirective);\n return QmClientInformationDirective;\n }());\n })(ClientInformation = QMC.ClientInformation || (QMC.ClientInformation = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var ClientInformation;\n (function (ClientInformation) {\n var ClientInformationController = /** @class */ (function () {\n /**\n * Creates an instance of ClientInformationController.\n * @param {ng.ILocationService} $location\n * @param {any} $qui\n * @param {any} $state\n *\n * @memberof ClientInfoController\n */\n function ClientInformationController($location, $qui, $state) {\n var _this = this;\n this.$location = $location;\n this.$qui = $qui;\n this.$state = $state;\n this.newView = true;\n this.selectedClients = [];\n this.$qui.init(this.$qui.getSectionColor(\"/clientInformation\"), function () {\n _this.$qui.anonAvatar();\n _this.$qui.bindEvents();\n _this.$qui.navToggle();\n });\n if (document.getElementById(\"permissions\").getAttribute(\"clientinformation\").toLocaleLowerCase() !== \"true\") {\n console.log(\"No rights to see module ClientInformation\");\n this.forbidden = true;\n return;\n }\n if (this.$state.current.name === \"clientInformationById\") {\n this.selectedClients.push(this.$state.params.id);\n }\n }\n ClientInformationController = __decorate([\n QMC.Controller('QMC.ClientInformation', 'ClientInformationController'),\n QMC.Inject('$location', '$qui', '$state')\n ], ClientInformationController);\n return ClientInformationController;\n }());\n })(ClientInformation = QMC.ClientInformation || (QMC.ClientInformation = {}));\n})(QMC || (QMC = {}));\n\n//# sourceMappingURL=../../maps/ClientInformation/qmc.client-information.js.map\n"],"names":["QMC","__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__assign","assign","t","s","n","call","apply","__spreadArrays","il","k","a","j","jl","routes","$locationProvider","$stateProvider","$urlRouterProvider","qmcBase","html5Mode","enabled","requireBase","state","url","templateUrl","controller","controllerAs","resolve","data","console","log","angular","module","config","$inject","HttpProvider","ClientInformation","configureHttpProvider","$httpProvider","defaults","headers","get","_super","ClientInformationService","$http","$q","_this","modulePath","Common","BaseService","getClientInformationWv","getItem","getCategoryList","getClientInformation","form","formatText","post","then","Service","Inject","QmClientInformationDirective","$qui","lng","permissionService","clientInformationService","clientService","employeeService","restrict","replace","scope","qmSelectedClients","groupTags","client","translate","flsGroup","personslist","link","cacheFilter","temp","copy","clients","employee","dateFrom","dateTo","orderAsc","clientInfo","storageName","$","userId","qmSelectedEmployee","includeEmployeesThatModified","markings","livingAreas","Date","setMonth","getMonth","categoryPreselection","searchwords","privateContent","allCategories","allLivingAreas","clientInformation","clientInfoText","$watch","newVal","oldVal","getPermissionsByObjectType","allowExport","print","init","storage","restoreStorage","createTextFromClientInfo","_i","_a","categoryPreselectionList","category","id","categories","livingArea","filter","x","formattedLivingAreas","map","value","localStorage","JSON","parse","setTimeout","getData","loadingData","dataCategoryList","formattedCategoryPreselections","text","name","dataWv","livingAreaWvList","unshift","Constants","GUID_EMPTY","objectId","isFix","formattedCategories","categoryWvList","formattedMarkings","markingWvList","categoryList","getReferences","formattedReferences","loadingClients","getClientPersonList","concat","createPersonDisplay","lastName","firstName","shortCaption","personNumber","institute","group","getFlsGroupList","items","institution","getAllPersonLists","getEmployee","loadingEmployee","getEmployeeList","formattedEmployee","forename","employeeNr","winPrint","window","open","document","write","close","focus","createClientInfo","getForm","notify","message","title","timer","createDateFromString","loadingInfo","references","createReferences","_b","categoryIds","livingAreaIds","markingIds","searchterms","split","sort","reference","localeCompare","result","createBoldText","toLocaleDateString","orderByDate","item","moment","format","author","content","header","date","trim","comment","ascending","aDateFrom","undefined","bDateFrom","selectedReferences","selectedEmployees","type","getReferenceTypeByGroupName","y","Directive","ClientInformationController","$location","$state","newView","selectedClients","getSectionColor","anonAvatar","bindEvents","navToggle","getElementById","getAttribute","toLocaleLowerCase","forbidden","current","push","params","Controller"],"mappings":"AAAA,IA8ZIA,IA9ZAC,UAAaC,MAAQA,KAAKD,WAAc,WACxC,IAAIE,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBG,OAAOC,iBAClB,CAAEC,UAAW,EAAG,YAAaC,MAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,CAAG,EAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,CAAC,IAAGN,EAAEM,GAAKL,EAAEK,GAAI,IACxDN,EAAGC,CAAC,CAC7B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASO,IAAOV,KAAKW,YAAcT,CAAG,CADtCD,EAAcC,EAAGC,CAAC,EAElBD,EAAEU,UAAkB,OAANT,EAAaC,OAAOS,OAAOV,CAAC,GAAKO,EAAGE,UAAYT,EAAES,UAAW,IAAIF,EACnF,CACH,EAAE,EACCI,WAAcd,MAAQA,KAAKc,YAAe,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HhB,EAAvHiB,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOd,OAAOmB,yBAAyBP,EAAQC,CAAG,EAAIC,EACrH,GAAuB,UAAnB,OAAOM,SAAoD,YAA5B,OAAOA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASV,EAAYC,EAAQC,EAAKC,CAAI,OACxH,IAAK,IAAIQ,EAAIX,EAAWM,OAAS,EAAQ,GAALK,EAAQA,CAAC,IAAQxB,EAAIa,EAAWW,MAAIJ,GAAKH,EAAI,EAAIjB,EAAEoB,CAAC,EAAQ,EAAJH,EAAQjB,EAAEc,EAAQC,EAAKK,CAAC,EAAIpB,EAAEc,EAAQC,CAAG,IAAMK,GAChJ,OAAW,EAAJH,GAASG,GAAKlB,OAAOuB,eAAeX,EAAQC,EAAKK,CAAC,EAAGA,CAChE,EACIM,SAAY5B,MAAQA,KAAK4B,UAAa,WAStC,OARAA,SAAWxB,OAAOyB,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGL,EAAI,EAAGM,EAAIZ,UAAUC,OAAQK,EAAIM,EAAGN,CAAC,GAE7C,IAAK,IAAIlB,KADTuB,EAAIX,UAAUM,GACOtB,OAAOQ,UAAUH,eAAewB,KAAKF,EAAGvB,CAAC,IAC1DsB,EAAEtB,GAAKuB,EAAEvB,IAEjB,OAAOsB,CACX,GACgBI,MAAMlC,KAAMoB,SAAS,CACzC,EACIe,eAAkBnC,MAAQA,KAAKmC,gBAAmB,WAClD,IAAK,IAAIJ,EAAI,EAAGL,EAAI,EAAGU,EAAKhB,UAAUC,OAAQK,EAAIU,EAAIV,CAAC,GAAIK,GAAKX,UAAUM,GAAGL,OAC7E,IAAK,IAAIC,EAAIf,MAAMwB,CAAC,EAAGM,EAAI,EAAGX,EAAI,EAAGA,EAAIU,EAAIV,CAAC,GAC1C,IAAK,IAAIY,EAAIlB,UAAUM,GAAIa,EAAI,EAAGC,EAAKF,EAAEjB,OAAQkB,EAAIC,EAAID,CAAC,GAAIF,CAAC,GAC3Df,EAAEe,GAAKC,EAAEC,GACjB,OAAOjB,CACX,EACA,CAAA,WAGI,SAASmB,EAAOC,EAAmBC,EAAgBC,EAAoBC,GACnEH,EAAkBI,UAAU,CACxBC,QAAS,CAAA,EACTC,YAAa,CAAA,CACjB,CAAC,EACDL,EACKM,MAAM,oBAAqB,CAC5BC,IAAK,qBACLC,YAAaN,EAAU,qBACvBO,WAAY,8BACZC,aAAc,KACdC,QAAS,CACLC,KAAM,CAAC,WACCC,QAAQC,IAAI,kCAAkC,CAClD,EACR,CACJ,CAAC,CACL,CAnBAC,QAAQC,OAAO,wBAAyB,EAAE,EAAEC,OAAOnB,CAAM,EACzDA,EAAOoB,QAAU,CAAC,oBAAqB,iBAAkB,qBAAsB,UAmBlF,EAAE,EAEH,SAAW/D,GAIC,SAASgE,KAFNC,EAkBYjE,EAAIiE,oBAAsBjE,EAAIiE,kBAAoB,IAdjED,EAAaE,sBAAwB,SAAUC,GAEtCA,EAAcC,SAASC,QAAQC,MAChCH,EAAcC,SAASC,QAAQC,IAAM,IAGzCH,EAAcC,SAASC,QAAQC,IAAI,qBAAuB,gCAE1DH,EAAcC,SAASC,QAAQC,IAAI,iBAAmB,WACtDH,EAAcC,SAASC,QAAQC,IAAY,OAAI,UACnD,EAGJL,EAAkBD,aAFPA,CAIlB,EAAEhE,IAAAA,KAAc,EAAG,EAEhB4D,QAAQC,OAAO,uBAAuB,EACjCC,OAAO,CAAC,gBAAiB9D,IAAIiE,kBAAkBD,aAAaE,sBAAsB,EAG3F,SAAWlE,GACP,IACWiE,EACiDM,EAEpD,SAASC,EAAyBC,EAAOC,GACrC,IAAIC,EAAQJ,EAAOpC,KAAKjC,KAAMuE,EAAOC,CAAE,GAAKxE,KAI5C,OAHAyE,EAAMF,MAAQA,EACdE,EAAMD,GAAKA,EACXC,EAAMC,WAAa,qBACZD,CACX,CATGV,EAiCYjE,EAAIiE,oBAAsBjE,EAAIiE,kBAAoB,IAhCbM,EA8BtDvE,EAAI6E,OAAOC,YA7BT7E,UAAUuE,EAA0BD,CAAM,EAQ1CC,EAAyB1D,UAAUiE,uBAAyB,WACxD,OAAOR,EAAOzD,UAAUkE,QAAQ7C,KAAKjC,KAAMA,KAAK0E,WAAa,WAAY,GAAI,SAAUnB,GACnF,OAAOA,CACX,CAAC,CACL,EACAe,EAAyB1D,UAAUmE,gBAAkB,WACjD,OAAOV,EAAOzD,UAAUkE,QAAQ7C,KAAKjC,KAAMA,KAAK0E,WAAa,gBAAiB,GAAI,SAAUnB,GACxF,OAAOA,CACX,CAAC,CACL,EACAe,EAAyB1D,UAAUoE,qBAAuB,SAAUC,EAAMC,GAEtE,OAAOb,EAAOzD,UAAUuE,KAAKlD,KAAKjC,KAAMA,KAAK0E,WAAc,gBAD9BQ,EAAV,KAAA,IAAfA,EAAsC,CAAA,EACkCA,GAAaD,CAAI,EAAEG,KAAK,SAAU7B,GAC1G,OAAOA,CACX,CAAC,CACL,EAxBAe,EAyB2BxD,WAAW,CAClChB,EAAIuF,QAAQ,wBAAyB,0BAA0B,EAC/DvF,EAAIwF,OAAO,QAAS,IAAI,GACzBhB,CAAwB,EAG/BP,EAAkBO,yBAA2BA,CAEpD,EAAExE,IAAAA,KAAc,EAAG,EAEpB,SAAWA,GAIC,SAASyF,EAA6BC,EAAMC,EAAKC,EAAmBC,EAA0BC,EAAeC,GACzG,IAAIpB,EAAQzE,KACZA,KAAKwF,KAAOA,EACZxF,KAAKyF,IAAMA,EACXzF,KAAK0F,kBAAoBA,EACzB1F,KAAK2F,yBAA2BA,EAChC3F,KAAK4F,cAAgBA,EACrB5F,KAAK6F,gBAAkBA,EACvB7F,KAAK8F,SAAW,IAChB9F,KAAKmD,YAAc,iDACnBnD,KAAK+F,QAAU,CAAA,EACf/F,KAAKgG,MAAQ,CACTC,kBAAmB,GACvB,EACAjG,KAAKkG,UAAY,CACbC,OAAQnG,KAAKyF,IAAIW,UAAU,EAAG,QAAQ,EACtCC,SAAUrG,KAAKyF,IAAIW,UAAU,EAAG,qBAAqB,EACrDE,YAAatG,KAAKyF,IAAIW,UAAU,EAAG,eAAe,CACtD,EACApG,KAAKuG,KAAO,SAAUP,GAqBA,SAAdQ,IACA,IAAIC,EAAO/C,QAAQgD,KAAKV,EAAMf,IAAI,EAClC,OAAOwB,EAAKE,QACZ,OAAOF,EAAKG,SACZ,OAAOH,EAAKI,SACZ,OAAOJ,EAAKK,OACZL,EAAKM,SAAWf,EAAMgB,WAAWD,QACrC,CA3BA,IAAIE,EAAc,cAAgBC,EAAE,UAAU,EAAE3D,KAAK,EAAE4D,OACvDnB,EAAMf,KAAO,CACT0B,QAASX,EAAMC,kBACfW,SAAUZ,EAAMoB,mBAChBC,6BAA8B,CAAA,EAC9BC,SAAU,GACVC,YAAa,GACbV,UAAU,IAAIW,MAAOC,UAAS,IAAID,MAAOE,SAAS,EAAI,CAAC,EACvDZ,OAAQ,IAAIU,KACZG,qBAAsB,uCACtBC,YAAa,GACbC,eAAgB,CAAA,EAChBC,cAAe,CAAA,EACfC,eAAgB,CAAA,CACpB,EACA/B,EAAMgB,WAAa,CACfgB,kBAAmB,GACnBC,eAAgB,GAChBlB,SAAU,CAAA,CACd,EASAf,EAAMkC,OAAO,qBAAsB,SAAUC,EAAQC,GAC7CD,IAAWC,IAEfpC,EAAMf,KAAK0B,QAAUX,EAAMoB,mBAC/B,CAAC,EACDpB,EAAMkC,OAAO,oBAAqB,SAAUC,EAAQC,GAC5CD,IAAWC,IAEfpC,EAAMf,KAAK0B,QAAUX,EAAMC,kBAC/B,CAAC,EACDD,EAAMkC,OAAO,eAAgB,SAAUC,EAAQC,GACvCD,IAAWC,IAEfpC,EAAMC,kBAAoBD,EAAMf,KAAK0B,QACzC,CAAC,EACDlC,EAAMiB,kBAAkB2C,2BAA2B,KAAM,EAAEjD,KAAK,SAAU7B,GACtEyC,EAAMsC,YAAc/E,EAAK,GAAGgF,KAChC,CAAC,EACDvC,EAAMwC,KAAO,WACT,IA2BQC,EA3BJC,EAAiB,CAAA,EACrB1C,EAAMkC,OAAO,sBAAuB,SAAUC,EAAQC,GAC9CD,IAAWC,IAEf5B,EAAY,EACZR,EAAMgB,WAAWiB,eAAiBxD,EAAMkE,yBAAyB3C,EAAMgB,WAAWgB,kBAAmBhC,EAAMgB,WAAWD,QAAQ,EAClI,CAAC,EACDf,EAAMkC,OAAO,4BAA6B,SAAUC,EAAQC,GACxD,GAAIM,CAAAA,EAAJ,CAEA,GAAIP,IAAWC,GAAU,CAACpC,EAAMf,MAAQ,CAACe,EAAMf,KAAK0C,qBAEhD,IAAK,IAAIiB,EAAK,EAAGC,EAAK7C,EAAM8C,yBAA0BF,EAAKC,EAAGxH,OAAQuH,CAAE,GAAI,CACxE,IAAIG,EAAWF,EAAGD,GAClB,GAAIG,EAASC,KAAOhD,EAAMf,KAAK0C,qBAAsB,CACjD3B,EAAMf,KAAKgE,WAAaF,EAASA,SACjC/C,EAAMf,KAAKsC,YAAcwB,EAASG,WAAWC,OAAO,SAAUC,GAAK,OAAY,MAALA,CAAW,CAAC,EACtF,KACJ,CACJ,CAEkC,IAAlCpD,EAAMf,KAAKsC,YAAYlG,SACvB2E,EAAMf,KAAKsC,YAAcvB,EAAMqD,qBAAqBC,IAAI,SAAUhH,GAAK,OAAOA,EAAEiH,KAAO,CAAC,EAblF,CAed,CAAC,EACGC,aAAa1E,QAAQmC,CAAW,IAChCyB,EAAiB,CAAA,EACbD,EAAUgB,KAAKC,MAAMF,aAAa1E,QAAQmC,CAAW,CAAC,EAC1DjB,EAAMgB,WAAWD,SAAW0B,EAAQ1B,SACpCf,EAAMf,KAAOrD,SAASA,SAAS,GAAIoE,EAAMf,IAAI,EAAGwD,CAAO,EACvDkB,WAAW,WAAcjB,EAAiB,CAAA,CAAO,EAAG,EAAE,GAE1D1C,EAAMkC,OAAO,OAAQ,WACjB1B,EAAY,CAChB,EAAG,CAAA,CAAI,CACX,EACAR,EAAM4D,QAAU,WACZ5D,EAAM6D,YAAc,CAAA,EACpBpF,EAAMkB,yBAAyBZ,gBAAgB,EAAEK,KAAK,SAAU0E,GAC5D9D,EAAM8C,yBAA2BgB,EACjC9D,EAAM+D,+BAAiCD,EAAiBR,IAAI,SAAUF,GAAK,MAAO,CAAGG,MAAOH,EAAEJ,GAAIgB,KAAMZ,EAAEa,IAAM,CAAG,CAAC,EACpHxF,EAAMkB,yBAAyBd,uBAAuB,EAAEO,KAAK,SAAU8E,GACnElE,EAAM6D,YAAc,CAAA,EACpBK,EAAOC,iBAAiBC,QAAQ,CAC5BpB,GAAIlJ,EAAI6E,OAAO0F,UAAUC,WACzBC,SAAUzK,EAAI6E,OAAO0F,UAAUC,WAC/BL,KAAMxF,EAAMgB,IAAIW,UAAU,SAAU,oBAAoB,EACxDoE,MAAO,CAAA,EACPjB,MAAO,CACX,CAAC,EACDvD,EAAMyE,oBAAsBP,EAAOQ,eAAepB,IAAI,SAAUF,GAAK,MAAO,CAAGG,MAAOH,EAAEmB,SAAUP,KAAMZ,EAAEa,IAAM,CAAG,CAAC,EACpHjE,EAAMqD,qBAAuBa,EAAOC,iBAAiBb,IAAI,SAAUF,GAAK,MAAO,CAAGG,MAAOH,EAAEmB,SAAUP,KAAMZ,EAAEa,IAAM,CAAG,CAAC,EACvHjE,EAAM2E,kBAAoBT,EAAOU,cAActB,IAAI,SAAUF,GAAK,MAAO,CAAGG,MAAOH,EAAEmB,SAAUP,KAAMZ,EAAEa,IAAM,CAAG,CAAC,EACjHxF,EAAMkB,yBAAyBZ,gBAAgB,EAAEK,KAAK,SAAU0E,GAC5D9D,EAAM6E,aAAef,EACrB,IAAK,IAAIlB,EAAK,EAAGC,EAAK7C,EAAM6E,aAAcjC,EAAKC,EAAGxH,OAAQuH,CAAE,GAAI,CAC5D,IAAIG,EAAWF,EAAGD,GACe,IAA7BG,EAASA,SAAS1H,SAClB0H,EAASA,SAAW/C,EAAMyE,oBAAoBnB,IAAI,SAAUhH,GAAK,OAAOA,EAAEiH,KAAO,CAAC,GACnD,IAA/BR,EAASG,WAAW7H,SACpB0H,EAASG,WAAalD,EAAMqD,qBAAqBC,IAAI,SAAUhH,GAAK,OAAOA,EAAEiH,KAAO,CAAC,EAC7F,CACAvD,EAAMwC,KAAK,CACf,CAAC,CACL,CAAC,CACL,CAAC,CACL,EACAxC,EAAM8E,cAAgB,WAClB9E,EAAM+E,oBAAsB,GAC5B/E,EAAMgF,eAAiB,CAAA,EACvBvG,EAAMmB,cAAcqF,oBAAoB,EAAE7F,KAAK,SAAU7B,GACrDyC,EAAM+E,oBAAsB/E,EAAM+E,oBAAoBG,OAAO3H,EAAK+F,IAAI,SAAUF,GAAK,MAAO,CAAGG,MAAOH,EAAEmB,SAAUP,KAAMvF,EAAMe,KAAK2F,oBAAoB/B,EAAEgC,SAAUhC,EAAEiC,UAAWjC,EAAEkC,aAAclC,EAAEmC,YAAY,GAAK,KAAOnC,EAAEoC,WAAYC,MAAOhH,EAAMyB,UAAUC,MAAQ,CAAG,CAAC,CAAC,EAC5QH,EAAMgF,eAAiB,CAAA,CAC3B,CAAC,EACDvG,EAAMmB,cAAc8F,gBAAgB,EAAG,CAAC,CAAC,EAAEtG,KAAK,SAAU7B,GACtDyC,EAAM+E,oBAAsB/E,EAAM+E,oBAAoBG,OAAO3H,EAAKoI,MAAMrC,IAAI,SAAUF,GAAK,MAAO,CAAGG,MAAOH,EAAEmB,SAAUP,KAAMZ,EAAEa,MAAQ,KAAOb,EAAEwC,aAAcH,MAAOhH,EAAMyB,UAAUG,QAAU,CAAG,CAAC,CAAC,CACzM,CAAC,EACD5B,EAAMmB,cAAciG,kBAAkB,EAAEzG,KAAK,SAAU7B,GACnDyC,EAAM+E,oBAAsB/E,EAAM+E,oBAAoBG,OAAO3H,EAAK+F,IAAI,SAAUF,GAAK,MAAO,CAAGG,MAAOH,EAAEmB,SAAUP,KAAMZ,EAAEa,KAAMwB,MAAOhH,EAAMyB,UAAUI,WAAa,CAAG,CAAC,CAAC,CAC7K,CAAC,CACL,EACAN,EAAM8F,YAAc,WAChB9F,EAAM+F,gBAAkB,CAAA,EACxBtH,EAAMoB,gBAAgBmG,gBAAgB,EAAE5G,KAAK,SAAU7B,GACnDyC,EAAMiG,kBAAoB1I,EAAK+F,IAAI,SAAUF,GAAK,MAAO,CAAGG,MAAOH,EAAEmB,SAAUP,KAAMvF,EAAMe,KAAK2F,oBAAoB/B,EAAEa,KAAMb,EAAE8C,SAAU9C,EAAEkC,aAAclC,EAAE+C,UAAU,EAAGV,MAAOrC,EAAEoC,SAAW,CAAG,CAAC,EAC/LxF,EAAM+F,gBAAkB,CAAA,CAC5B,CAAC,CACL,EACA/F,EAAM4D,QAAQ,EACd5D,EAAM8E,cAAc,EACpB9E,EAAM8F,YAAY,EAClB9F,EAAMuC,MAAQ,WACV,IAAI6D,EAAWC,OAAOC,KAAK,GAAI,GAAI,mEAAmE,EACtGF,EAASG,SAASC,MAAMxG,EAAMgB,WAAWiB,cAAc,EACvDmE,EAASG,SAASE,MAAM,EACxBL,EAASM,MAAM,EACfN,EAAS7D,MAAM,EACf6D,EAASK,MAAM,CACnB,EACAzG,EAAM2G,iBAAmB,WACrB,IAcIC,EAbJ5G,EAAMgB,WAAWgB,kBAAoB,GACrChC,EAAMgB,WAAWiB,eAAiB,GACA,IAA9BjC,EAAMf,KAAK0B,QAAQtF,OACnBoD,EAAMe,KAAKqH,OAAO,CACdC,QAASrI,EAAMgB,IAAIW,UAAU,SAAU,uBAAuB,EAC9D2G,MAAOtI,EAAMgB,IAAIW,UAAU,SAAU,SAAS,EAC9C4G,MAAO,GACX,CAAC,GAGLhH,EAAMf,KAAK4B,SAAWpC,EAAMe,KAAKyH,qBAAqBjH,EAAMf,KAAK4B,QAAQ,EACzEb,EAAMf,KAAK6B,OAASrC,EAAMe,KAAKyH,qBAAqBjH,EAAMf,KAAK6B,MAAM,EACrEd,EAAMkH,YAAc,CAAA,EAChBN,EAAU,CACVO,WAAY1I,EAAM2I,iBAAiB,OAACvE,EAAK7C,EAAMf,KAAK0B,SAAqCkC,EAAK,GAAI,OAACwE,EAAKrH,EAAMf,KAAK2B,UAAsCyG,EAAK,GAAIrH,EAAM+E,mBAAmB,EAG3L1D,6BAA8BrB,EAAMf,KAAKoC,6BACzCiG,YAAatH,EAAMf,KAAKgE,WACxBsE,cAAevH,EAAMf,KAAKsC,YAC1BiG,WAAYxH,EAAMf,KAAKqC,SACvBmG,YAAazH,EAAMf,KAAK2C,YAAY8F,MAAM,GAAG,EAC7C7G,SAAUb,EAAMf,KAAK4B,SACrBC,OAAQd,EAAMf,KAAK6B,OACnBe,eAAgB7B,EAAMf,KAAK4C,cAC/B,EACApD,EAAMkB,yBAAyBX,qBAAqB4H,EAAS5G,EAAMf,KAAKC,UAAU,EAAEE,KAAK,SAAU7B,GAC/FyC,EAAMgB,WAAWgB,kBAAoBzE,EAAKoK,KAAK,SAAUrL,EAAGnC,GAAK,OAAOmC,EAAEsL,UAAUC,cAAc1N,EAAEyN,SAAS,CAAG,CAAC,EACjH5H,EAAMgB,WAAWiB,eAAiBxD,EAAMkE,yBAAyB3C,EAAMgB,WAAWgB,kBAAmBhC,EAAMgB,WAAWD,QAAQ,EAC9Hf,EAAMkH,YAAc,CAAA,CACxB,CAAC,EACL,CACJ,CACJ,CAkFepN,EAAIiE,oBAAsBjE,EAAIiE,kBAAoB,IAjFjEwB,EAA6B3E,UAAU+H,yBAA2B,SAAU3B,EAAYD,GAGpF,IAFA,IAAI+G,EAAS,GAEJpM,EAAI,EAAGA,EAAIsF,EAAW3F,OAAQK,CAAC,GAAI,CACxC,IAAIyE,EAASa,EAAWtF,GACd,IAANA,IACAoM,GAAU,gBAGdA,EADAA,EAAU9N,KAAK+N,eAAe/N,KAAKyF,IAAIW,UAAU,SAAU,qBAAqB,EAAI,KAAOD,EAAOyH,UAAY,IAAM5N,KAAKyF,IAAIW,UAAU,SAAU,KAAK,EAAI,KAAM,IAAIoB,MAAOwG,mBAAmB,CAAC,EACrL,OAEV7H,EAAOwF,MAAQ3L,KAAKiO,YAAY9H,EAAOwF,MAAO5E,CAAQ,EACtD,IAAK,IAAI6B,EAAK,EAAGC,EAAK1C,EAAOwF,MAAO/C,EAAKC,EAAGxH,OAAQuH,CAAE,GAAI,CACtD,IAAIsF,EAAOrF,EAAGD,GAEdkF,GADAA,GAAU,aACA9N,KAAK+N,eAAeG,EAAKnF,SAAW,IAAM5C,EAAOyH,UAAY,KAAOM,EAAKnB,MAAQ,QAAQ,EAC/FmB,EAAKrH,WACLiH,GAAUK,OAAOD,EAAKrH,QAAQ,EAAEuH,OAAO,kBAAkB,EAAI,KAC7DF,EAAKpH,SACLgH,GAAU,KAAOK,OAAOD,EAAKpH,MAAM,EAAEsH,OAAO,kBAAkB,EAAI,KAClEF,EAAKG,QAA+B,EAArBH,EAAKG,OAAOhN,SAC3ByM,GAAU9N,KAAKyF,IAAIW,UAAU,SAAU,OAAO,EAAI,KAAO8H,EAAKG,QAClE,IAAK,IAAIhM,EAAI,EAAGA,EAAI6L,EAAKI,QAAQjN,OAAQgB,CAAC,GAAI,CAC1C,IAAIiM,EAAUJ,EAAKI,QAAQjM,GAEvBkM,GADJT,GAAU,SACGI,EAAKI,QAAQjM,GAAG0K,OAAwC,EAA/BmB,EAAKI,QAAQjM,GAAG0K,MAAM1L,OAAarB,KAAK+N,eAAeG,EAAKI,QAAQjM,GAAG0K,KAAK,EAAI,IAAM,IACxHuB,EAAQE,MAAY,EAAJnM,IAChBkM,GAAUJ,OAAOG,EAAQE,IAAI,EAAEJ,OAAO,kBAAkB,GACxDE,EAAQD,QAAoC,KAA1BC,EAAQD,OAAOI,KAAK,GAAgB,EAAJpM,IAClDkM,GAAU,IAAMvO,KAAKyF,IAAIW,UAAU,SAAU,OAAO,EAAI,KAAOkI,EAAQD,OAAS,KAChFC,EAAQpF,YAA4C,KAA9BoF,EAAQpF,WAAWuF,KAAK,IAC9CF,GAAUvO,KAAK+N,eAAe/N,KAAKyF,IAAIW,UAAU,SAAU,eAAe,EAAI,KAAOkI,EAAQpF,UAAU,GAE3G4E,GADAA,GAAiC,EAAvBS,EAAOE,KAAK,EAAEpN,OAAakN,EAAOE,KAAK,EAAI,SAAW,KAC7B,EAAzBH,EAAQI,QAAQrN,OAAaiN,EAAQI,QAAU,SAAW,GACxE,CACAZ,GAAU,MACd,CACAA,GAAU,QACd,CACA,OAAOA,CACX,EACAvI,EAA6B3E,UAAUqN,YAAc,SAAUtC,EAAOgD,GAClE,IAAIlK,EAAQzE,KACZ,OAAO2L,EAAMgC,KAAK,SAAUrL,EAAGnC,GACvByO,EAAYtM,EAAEuE,SAAWpC,EAAMe,KAAKyH,qBAAqB3K,EAAEuE,QAAQ,EAAIgI,KAAAA,EACvEC,EAAY3O,EAAE0G,SAAWpC,EAAMe,KAAKyH,qBAAqB9M,EAAE0G,QAAQ,EAAIgI,KAAAA,EAC3E,MAAK,CAACD,GAAaE,GAAeF,EAAYE,EACnCH,EAAY,CAAC,EAAI,EACvBC,GAAa,CAACE,GAA2BA,EAAZF,EACvBD,EAAY,EAAI,CAAC,EACrB,CACX,CAAC,CACL,EACApJ,EAA6B3E,UAAUmN,eAAiB,SAAU/D,GAC9D,MAAO,WAAaA,EAAO,WAC/B,EACAzE,EAA6B3E,UAAUwM,iBAAmB,SAAU2B,EAAoBC,EAAmB7B,GACvG,IAAI1I,EAAQzE,KACZ,OAAOmC,eAAe4M,EAAmBzF,IAAI,SAAUF,GACnD,IAAIP,EACJ,MAAO,CACHG,GAAII,EACJ6F,KAAMxK,EAAMyK,4BAA4B,OAACrG,EAAKsE,EAAWhE,OAAO,SAAUgG,GAAK,OAAOA,EAAE5F,QAAUH,CAAG,CAAC,EAAE,IAAgC,KAAA,EAASP,EAAG4C,KAAK,CAC5J,CACL,CAAC,EAAGuD,EAAkB1F,IAAI,SAAUF,GAAK,MAAO,CAAGJ,GAAII,EAAG6F,KAAM,IAAQ,CAAG,CAAC,CAAC,CACjF,EACA1J,EAA6B3E,UAAUsO,4BAA8B,SAAUzD,GAC3E,OAAQA,GACJ,KAAKzL,KAAKkG,UAAUG,SAChB,OAAO,KACX,KAAKrG,KAAKkG,UAAUI,YAChB,OAAO,KACX,QACI,OAAO,IACf,CACJ,EAC+BxF,WAAW,CACtChB,EAAIsP,UAAU,wBAAyB,sBAAuB,CAAC,OAAQ,qBAAsB,uBAAwB,2BAA4B,gBAAiB,kBAAkB,GACrL7J,CAA4B,CAI1C,EAAEzF,IAAAA,KAAc,EAAG,EAEpB,SAAWA,GAYC,SAASuP,EAA4BC,EAAW9J,EAAM+J,GAClD,IAAI9K,EAAQzE,KACZA,KAAKsP,UAAYA,EACjBtP,KAAKwF,KAAOA,EACZxF,KAAKuP,OAASA,EACdvP,KAAKwP,QAAU,CAAA,EACfxP,KAAKyP,gBAAkB,GACvBzP,KAAKwF,KAAKgD,KAAKxI,KAAKwF,KAAKkK,gBAAgB,oBAAoB,EAAG,WAC5DjL,EAAMe,KAAKmK,WAAW,EACtBlL,EAAMe,KAAKoK,WAAW,EACtBnL,EAAMe,KAAKqK,UAAU,CACzB,CAAC,EACoG,SAAjGtD,SAASuD,eAAe,aAAa,EAAEC,aAAa,mBAAmB,EAAEC,kBAAkB,GAC3FxM,QAAQC,IAAI,2CAA2C,EACvDzD,KAAKiQ,UAAY,CAAA,GAGY,0BAA7BjQ,KAAKuP,OAAOW,QAAQjG,MACpBjK,KAAKyP,gBAAgBU,KAAKnQ,KAAKuP,OAAOa,OAAOpH,EAAE,CAEvD,CAOelJ,EAAIiE,oBAAsBjE,EAAIiE,kBAAoB,IANnCjD,WAAW,CACrChB,EAAIuQ,WAAW,wBAAyB,6BAA6B,EACrEvQ,EAAIwF,OAAO,YAAa,OAAQ,QAAQ,GACzC+J,CAA2B,CAIzC,EAAEvP,IAAAA,KAAc,EAAG"}