{"version":3,"sources":["D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/$_lazy_route_resource lazy","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app-routing.module.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app.component.css","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app.module.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/AdminTabComponent.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/index.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/instruments-admin.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/instruments-admin.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/instruments-edit-admin.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/instruments-edit-admin.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/laboratories-admin.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/laboratories-admin.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/simulations-admin.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/simulations-admin.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/workcell-admin.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/workcell-admin.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example1.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example1.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example2.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example2.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example3.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example3.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example4.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example4.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratories.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratories.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratory-edit.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratory-edit.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratory-view-details.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratory-view-details.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/login.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/login.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/logout.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/logout.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/lostpassword.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/lostpassword.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/login-routing.module.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/login.module.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/navmenu/navmenu.component.css","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/navmenu/navmenu.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/navmenu/navmenu.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/settings/changelog.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/settings/changelog.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/settings/settings.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/settings/settings.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-annual-activity.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-annual-activity.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-batch-activity.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-batch-activity.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-instrument.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-instrument.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-export.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-export.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-import.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-import.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-view-details-activity.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-view-details-activity.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-view-details.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-view-details.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulations.component.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulations.component.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/app-translate-loader.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/auth-guard-token.service.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/auth-guard.service.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/auth.service.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/components/datagrid-header.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/components/pagination.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/dropDownLabel.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ExtendedFormModule.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ExtentedFormControl.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/FormMapper.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ModalDeleteConfirmComponent.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ProgressComponent.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ToggleComponent.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ToggleComponentSelect.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/UploadFileComponent.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/checkbox-editor.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/checkbox-editor.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/dropdown-editor.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/dropdown-editor.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/dropdown-multiselect-editor.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/dropdown-multiselect-editor.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/text-editor.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/text-editor.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/textarea-editor.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/textarea-editor.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/validation-message.html","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/validation-message.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/http-request-options.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/index.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/shared-module.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/user-preference-service.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/environments/environment.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/main.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/ActivityFlux.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/Constant.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/Instrument.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/InstrumentTestOccupations.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/Laboratory.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/PagedDataSource.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/Simulation.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationActivity.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationInstrument.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationInstrumentWorkcell.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationViewModel.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationWorkcell.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SynchronizableObject.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/WorkListItem.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/WorkListWorkcellItem.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/WorkcellGlobalSettings.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/WorkcellParams.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/date-pipe.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/index.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/order-worklist-pipe.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/orderby-pipe.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/search-pipe.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/search-simulation-pipe.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/AppSettingsService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/CacheableService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/CalculSimulationService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/CalculSimulationWorkcellService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/CountryService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/GraphService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/HelloService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/ImportedSimulationService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/InstrumentManagementService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/InstrumentService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/LaboratoryService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/RegexService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/ScreenShotService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/SimulationActivityManagementService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/SimulationActivityService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/SimulationService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/StateService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/TestService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/UserService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/WorkListService.ts","D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/node_modules/moment/locale ^\\.\\/.*$","fs (ignored)","util (ignored)","util (ignored)?3e22","./util.inspect (ignored)","crypto (ignored)","stream (ignored)"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,yF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVyD;AAChB;AACM;AAG0C;AAC9B;AACW;AACwB;AACe;AAED;AACf;AACqB;AACS;AACF;AACnC;AACW;AACA;AAErB;AACA;AACA;AACA;AACC;AACE;AAE/E,gBAAgB;AAQY;AAEyB;AAEa;AACM;AACF;AACJ;AACQ;AACgD;AAC3E;AACA;AACgC;AAC7B;AACF;AAC6E;AAC/C;AA6E9E;IAAA;IAA+B,CAAC;IAAnB,gBAAgB;QA3E5B,+DAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,6DAAY;gBACZ,+DAAc;gBACd,gEAAe;gBACf,4EAA2B;gBAC3B,iEAAgB;gBAChB,8GAAqB;gBACrB,mHAAuB;gBACvB,kHAAuB;gBACvB,wIAAiC;gBACjC,4GAAoB;gBACpB,kGAAiB;gBACjB,kGAAiB;gBACjB,kGAAiB;gBACjB,kGAAiB;gBACjB,mGAAiB;gBACjB,qGAAkB;gBAClB,2FAAiB;gBACjB,+FAAmB;gBACnB,gBAAgB;gBAChB,sFAA0B;gBAC1B,qFAAyB;gBACzB,kFAAsB;gBACtB,qFAAyB;gBACzB,yFAA6B;gBAC7B,uFAAe;gBACf,mGAAqB;gBACrB,6EAAiB;gBACjB,kIAA8B;gBAC9B,iJAAqC;gBACrC,+IAAoC;gBACpC,iIAA8B;gBAC9B,mJAAsC;gBACtC,uHAAyB;gBACzB,uHAAyB;aAC1B;YACD,OAAO,EAAE;gBACP,sEAAY;gBACZ,yEAAW,CAAC,OAAO,EAAE;gBACrB,oEAAW;gBACX,4EAAmB;gBACnB,6FAAkB;gBAClB,gBAAgB;gBAChB,uEAAU,CAAC,OAAO,EAAE;gBACpB,2EAAY;gBACZ,4EAAmB;gBACnB,8DAAW;gBACX,qEAAY,CAAC,OAAO,CAAC;oBACnB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE;oBACzD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,qGAAc,EAAE;oBAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,8GAAqB,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBACvF,qCAAqC;oBACrC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,mHAAuB,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBAClG,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,kIAA8B,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBACzG,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,kIAA8B,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBAC/G,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,mGAAiB,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBACjF,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,qGAAkB,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBACnF,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,kHAAuB,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBAClG,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,iIAA8B,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBACzG,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,iIAA8B,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBAC/G,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,4GAAoB,EAAE,WAAW,EAAE,CAAC,wFAAc,CAAC,EAAE;oBACtF,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kGAAiB,EAAE;oBAC9C,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,kGAAiB,EAAE;oBAClD,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,kGAAiB,EAAE;oBAClD,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,sFAA0B,EAAE,WAAW,EAAE,CAAC,6EAAS,CAAC,EAAE;oBACnG,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,qFAAyB,EAAE,WAAW,EAAE,CAAC,6EAAS,CAAC,EAAE;oBACjG,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,qFAAyB,EAAE,WAAW,EAAE,CAAC,6EAAS,CAAC,EAAE;oBACjG,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,kFAAsB,EAAE,WAAW,EAAE,CAAC,6EAAS,CAAC,EAAE;oBAC3F,EAAE,IAAI,EAAE,gCAAgC,EAAE,SAAS,EAAE,yFAA6B,EAAE,WAAW,EAAE,CAAC,6EAAS,CAAC,EAAE;iBAC/G,EAAE;oBACD,mBAAmB,EAAE,QAAQ;iBAC9B,CAAC;aACH;SACF,CAAC;OACW,gBAAgB,CAAG;IAAD,uBAAC;CAAA;AAAH;;;;;;;;AChI7B,2BAA2B,mBAAO,CAAC,wCAA+C;AAClF;;;AAGA;AACA,cAAc,QAAS,8BAA8B,yHAAyH,4BAA4B,OAAO,KAAK;;AAEtN;;;AAGA;AACA,2C;;;;;;;ACXA,mF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA0C;AACa;AACW;AACA;AACA;AACN;AACJ;AACA;AACF;AACc;AACd;AAQtD;IAEE,sBAAY,SAA2B,EAAU,iBAAoC,EACvE,iBAAoC,EACpC,iBAAoC,EACpC,cAA8B,EAC9B,YAA0B,EAC1B,YAA0B,EAC1B,WAAwB,EACxB,kBAAsC,EACtC,WAAwB;QAElC,gDAAgD;QAVpD,iBAyBC;QAzBgD,sBAAiB,GAAjB,iBAAiB,CAAmB;QACvE,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,gBAAW,GAAX,WAAW,CAAa;QACxB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,gBAAW,GAAX,WAAW,CAAa;QAIlC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,eAAe,EAAE,EAAtB,CAAsB,CAAC,CAAC;QAEzE,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QAEpC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YAEhC,IAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC;YAClC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;gBAC/C,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACnD;iBAAM;gBACH,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAClC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,+BAAQ,GAAR;QACE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,sCAAe,GAAf;QACI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC9B,0CAA0C;QAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAGD,+BAAQ,GAAR,UAAS,EAAQ,EAAE,EAAQ;QACvB,IAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAjDU,YAAY;QALxB,gEAAS,CAAC;YACT,QAAQ,EAAE,UAAU;;;SAGrB,CAAC;yCAGuB,6EAAgB,EAA6B,sFAAiB;YACpD,sFAAiB;YACjB,sFAAiB;YACpB,gFAAc;YAChB,4EAAY;YACZ,4EAAY;YACb,0EAAW;YACJ,wFAAkB;YACzB,2EAAW;OAV3B,YAAY,CAkDxB;IAAD,mBAAC;CAAA;AAlDwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBiC;AAC0B;AAClC;AACwB;AACpB;AACE;AACM;AACJ;AACjB;AACM;AAC2B;AAC3B;AACQ;AACC;AACU;AACgB;AAC5B;AACY;AACN;AACM;AACY;AACtB;AACF;AACQ;AACI;AACV;AAC8C;AAChB;AAC9B;AACY;AACS;AACnB;AACI;AACgC;AA4D9F;IAAA;IACA,CAAC;IADY,SAAS;QA1DrB,+DAAQ,CAAC;YAER,YAAY,EAAE;gBACZ,oEAAY;gBACZ,gGAAgB;aAEjB;YACD,OAAO,EAAE;gBACP,wBAAwB;gBACxB,gFAAa;gBACb,8EAAgB;gBAChB,sEAAY;gBAEZ,sFAAsF;gBACtF,gFAAgF;gBAChF,4EAAY;gBACZ,wEAAW,CAAC,OAAO,EAAE;gBAErB,eAAe;gBACf,mFAAW;gBACX,mGAAkB;gBAElB,aAAa;gBACb,8EAAgB;gBAChB,4FAAkB;gBAClB,+EAAW,CAAC,UAAU,CAAC,CAAC,CAAC,qFAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;aAC9E;YACD,OAAO,EAAE;gBACP,4EAAe;aAChB;YACD,SAAS,EAAE;gBACT,2BAA2B;gBAC3B,uFAAiB;gBACjB,uGAAyB;gBACzB,2EAAW;gBACX,uFAAiB;gBACjB,iFAAc;gBACd,uFAAiB;gBACjB,sGAAyB;gBACzB,mHAA+B;gBAC/B,mGAAuB;gBACvB,4EAAY;gBACZ,6EAAY;gBACZ,2EAAW;gBACX,mFAAe;gBACf,uFAAiB;gBACjB,6EAAY;gBACZ,2HAAmC;gBACnC,2GAA2B;gBAC3B,6EAAY;gBACZ,yFAAkB;aAInB;YACD,SAAS,EAAE,CAAC,oEAAY,CAAC;SAE1B,CAAC;OACW,SAAS,CACrB;IAAD,gBAAC;CAAA;AADqB;;;;;;;;;;;;;;;;;AC5FoB;AAE1C,IAAM,0BAA0B,GAAG,syBASlC,CAAC;AAEF;;;GAGG;AAKH;IAAA;IAIA,CAAC;IAJY,iBAAiB;QAJ7B,gEAAS,CAAC;YACP,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,0BAA0B;SACvC,CAAC;OACW,iBAAiB,CAI7B;IAAD,wBAAC;CAAA;AAJ6B;;;;;;;;;ACtB9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACe;AACL;AACC;AACD;AACH;;;;;;;;ACL3C,uEAAuE,mCAAmC,oVAAoV,gCAAgC,qfAAqf,gCAAgC,qCAAqC,mBAAmB,6OAA6O,gCAAgC,qCAAqC,mBAAmB,4OAA4O,uCAAuC,qCAAqC,0BAA0B,uoBAAuoB,mCAAmC,qLAAqL,6CAA6C,2RAA2R,gCAAgC,4KAA4K,iBAAiB,0SAA0S,+BAA+B,sRAAsR,+BAA+B,wH;;;;;;;;;;;;;;;;;;;;;;;;ACA1pH;AACD;AACJ;AACmB;AACgB;AAMxE;IAKI,mCACO,iBAAoC,EACnC,MAAc;QAFtB,iBAIC;QAHM,sBAAiB,GAAjB,iBAAiB,CAAmB;QACnC,WAAM,GAAN,MAAM,CAAQ;QALtB,sBAAiB,GAAW,EAAE,CAAC;QAC/B,kBAAa,GAAe,IAAI,CAAC;QAK7B,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAqB,EAA5C,CAA4C,CAAC,CAAC;IAC3F,CAAC;IAED,0CAAM,GAAN,UAAO,UAAsB;IAE7B,CAAC;IAGD,0CAAM,GAAN;QACI,IAAM,aAAa,GAAG,IAAI,sEAAU,EAAE,CAAC;QACvC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC5C,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAC3D,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAC7C,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QACnF,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAC/C,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,mDAAI,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEzD,8BAA8B;QAE9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC,CAAC;IAEjE,CAAC;IAjCQ,yBAAyB;QAJrC,gEAAS,CAAC;YACP,QAAQ,EAAE,mBAAmB;;SAEhC,CAAC;yCAO4B,sFAAiB;YAC3B,+DAAM;OAPb,yBAAyB,CAkCrC;IAAD,gCAAC;CAAA;AAlCqC;;;;;;;;ACVtC,uEAAuE,mCAAmC,2SAA2S,iCAAiC,4SAA4S,mCAAmC,8UAA8U,mCAAmC,mQAAmQ,uCAAuC,usBAAusB,mlBAAmlB,kCAAkC,sNAAsN,iBAAiB,0PAA0P,iBAAiB,6PAA6P,iBAAiB,4PAA4P,iBAAiB,8PAA8P,iBAAiB,0PAA0P,iBAAiB,4PAA4P,iBAAiB,8LAA8L,oCAAoC,8IAA8I,wkBAAwkB,kCAAkC,4MAA4M,iBAAiB,4OAA4O,iBAAiB,+OAA+O,iBAAiB,8OAA8O,iBAAiB,gPAAgP,iBAAiB,4OAA4O,iBAAiB,8OAA8O,iBAAiB,mOAAmO,0CAA0C,gEAAgE,gCAAgC,uLAAuL,mCAAmC,2CAA2C,qCAAqC,2CAA2C,yCAAyC,wMAAwM,eAAe,uVAAuV,iBAAiB,2X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACC16Q;AACI;AACc;AACpD;AACyB;AACM;AACJ;AAGL;AAEkC;AACd;AACZ;AAO5D;IAoBI,uCACS,iBAAoC,EACzC,gBAAkC,EAC1B,WAAwB,EACxB,KAAqB,EACrB,MAAc,EACtB,OAAoB;QANxB,iBA2BC;QA1BQ,sBAAiB,GAAjB,iBAAiB,CAAmB;QAEjC,gBAAW,GAAX,WAAW,CAAa;QACxB,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QAf1B,cAAS,GAAe,EAAE,CAAC;QAkBvB,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YAC3B,KAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAe,CAAC;YACjC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,IAAM,QAAQ,GAAW,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,KAAK,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChH,IAAI,CAAC,WAAW,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEtH,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAC;IAGP,CAAC;IAED,gDAAQ,GAAR;QAAA,iBAKC;QAJG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAM;YAC5D,KAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,KAAI,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,mDAAW,GAAX;QACI,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC;IAGD,4CAAI,GAAJ;QAAA,iBAOC;QANG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aAC/B,SAAS,CACV,UAAC,KAAK,IAAK,YAAI,CAAC,eAAe,CAAC,KAAmB,CAAC,EAAzC,CAAyC,EACpD,UAAC,KAAK,IAAK,YAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAxB,CAAwB,EACnC,cAAM,YAAI,CAAC,OAAO,GAAG,KAAK,EAApB,CAAoB,CACzB,CAAC;IACV,CAAC;IAED,uDAAe,GAAf,UAAgB,KAAiB;QAAjC,iBAeC;QAdG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,4EAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAClD,+BAA+B;QAC/B,KAAuB,UAAoB,EAApB,SAAI,CAAC,KAAK,CAAC,SAAS,EAApB,cAAoB,EAApB,IAAoB;YAAtC,IAAM,QAAQ;YACf,IAAI,CAAC,GAAa,IAAI,kEAAQ,EAAE,CAAC;YACjC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B;QACD,IAAM,QAAQ,GAAG,IAAI,4CAAI,CAAW,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAC,IAAI,YAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAApC,CAAoC,CAAC,CAAC,OAAO,EAAE,CAAC;QACvF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,CAAC;IAED,sDAAc,GAAd;QACI,KAAuB,UAAc,EAAd,SAAI,CAAC,SAAS,EAAd,cAAc,EAAd,IAAc;YAAhC,IAAM,QAAQ;YACf,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;YACrB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;YACvB,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;YACtB,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;YACxB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;YACtB,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;SAC3B;IACL,CAAC;IAED,uDAAe,GAAf,UAAgB,MAAc;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,MAAM,EAAf,CAAe,CAAC,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAGD,uDAAe,GAAf,UAAgB,MAAc;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,MAAM,EAAf,CAAe,CAAC,CAAC;IACjD,CAAC;IAGD,oDAAY,GAAZ,UAAa,KAAU;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAGD,6CAAK,GAAL,UAAM,MAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,4CAAI,GAAJ;QACI,4EAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,oBAAoB;QACpB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE5C,CAAC;IAED,8CAAM,GAAN;QACI,iCAAiC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACrD,CAAC;IAGD,gDAAQ,GAAR,UAAS,IAAU;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,EAApB,CAAoB,CAAC,CAAC;IAChE,CAAC;IAED,iDAAS,GAAT,UAAU,IAAU;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,EAApB,CAAoB,CAAC,CAAC;SACjF;aAAM;YACH,IAAM,MAAM,GAAG,IAAI,oGAAyB,EAAE,CAAC;YAC/C,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACrC;IACL,CAAC;IAED,iDAAS,GAAT,UAAU,IAAU;QAChB,IAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,EAApB,CAAoB,CAAC,CAAC;QAClE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,SAAS,EAAE;YACpC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC7B;IAEL,CAAC;IAED,mDAAW,GAAX,UAAY,IAAU,EAAE,GAAG;QACvB,IAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,EAApB,CAAoB,CAAC,CAAC;QACnF,qBAAqB,CAAC,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;IAC/D,CAAC;IApKQ,6BAA6B;QAJzC,gEAAS,CAAC;YACP,QAAQ,EAAE,wBAAwB;;SAErC,CAAC;yCAsB8B,sFAAiB;YACvB,6EAAgB;YACb,2EAAW;YACjB,uEAAc;YACb,+DAAM;YACb,mEAAW;OA1Bf,6BAA6B,CAqKzC;IAAD,oCAAC;CAAA;AArKyC;;;;;;;;ACrB1C,6EAA6E,wBAAwB,8jDAA8jD,mBAAmB,yCAAyC,2BAA2B,eAAe,mBAAmB,mUAAmU,kCAAkC,uEAAuE,+CAA+C,sd;;;;;;;;;;;;;;;;;;;;;;;;;;ACA7sE;AACM;AACP;AACyC;AAC3B;AACW;AAEM;AACA;AAMxE;IASI,oCACU,iBAAoC,EACpC,iBAAoC,EACpC,gBAAkC,EAClC,MAAc;QAJxB,iBA2BC;QA1BS,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,WAAM,GAAN,MAAM,CAAQ;QAXjB,mBAAc,GAAG,IAAI,gFAAe,EAAiB,CAAC;QAC7D,2BAAsB,GAA8B,EAAE,CAAC;QAanD,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAEnG,KAAuB,UAAyB,EAAzB,SAAI,CAAC,cAAc,CAAC,KAAK,EAAzB,cAAyB,EAAzB,IAAyB;YAA3C,IAAM,QAAQ;YACf,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACzC,MAAM;aACT;SACJ;QAED,iBAAiB,CAAC,UAAU,EAAE;aACzB,SAAS,CAAC,gBAAM;YACb,KAAI,CAAC,YAAY,GAAG,MAAqC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;IACrC,CAAC;IAED,oEAA+B,GAA/B,UAAgC,UAAsB;QAAtD,iBAWC;QAVG,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;YACpD,IAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpF,IAAI,QAAM,GAAG,CAAC,CAAC;YACf,WAAW,CAAC,SAAS,CAAC,aAAG;gBACrB,QAAM,GAAG,GAAG,CAAC,UAAU,CAAC;gBACxB,KAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,QAAM,CAAC;YACxD,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,yDAAoB,GAApB;QACI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,EAAE;YAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;SACzC;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;IAED,+DAA0B,GAA1B,UAA2B,UAAsB;QAC7C,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IA9DQ,0BAA0B;QAJtC,gEAAS,CAAC;YACP,QAAQ,EAAE,oBAAoB;;SAEjC,CAAC;yCAW+B,sFAAiB;YACjB,sFAAiB;YAClB,6EAAgB;YAC1B,+DAAM;OAbf,0BAA0B,CA+DtC;IAAD,iCAAC;CAAA;AA/DsC;;;;;;;;ACdvC,sCAAsC,mCAAmC,IAAI,wBAAwB,opDAAopD,mBAAmB,6BAA6B,8BAA8B,8QAA8Q,kCAAkC,gCAAgC,0CAA0C,+BAA+B,kCAAkC,wOAAwO,wCAAwC,oKAAoK,0CAA0C,2JAA2J,0CAA0C,0JAA0J,0CAA0C,oQAAoQ,kCAAkC,4CAA4C,gCAAgC,wgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAj7G;AACD;AAEyC;AAC3B;AACP;AACkB;AAIM;AACA;AACA;AACY;AAQpF;IASI,mCAAoB,OAA0B,EAClC,MAAc,EACd,gBAAkC,EAClC,iBAAoC,EACpC,iBAAoC,EACpC,uBAAgD;QAL5D,iBAwBC;QAxBmB,YAAO,GAAP,OAAO,CAAmB;QAClC,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,4BAAuB,GAAvB,uBAAuB,CAAyB;QAZrD,mBAAc,GAAG,IAAI,gFAAe,EAAiB,CAAC;QAI7D,2BAAsB,GAA8B,EAAE,CAAC;QASnD,OAAO,CAAC,UAAU,EAAE;aACf,SAAS,CAAC,gBAAM;YACb,KAAI,CAAC,WAAW,GAAG,MAAqC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAqB,EAA5C,CAA4C,CAAC,CAAC;QACnG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,YAAY,GAAG,GAAG,CAAC,KAAqB,EAA7C,CAA6C,CAAC,CAAC;QACpG,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE9G,KAAuB,UAAyB,EAAzB,SAAI,CAAC,cAAc,CAAC,KAAK,EAAzB,cAAyB,EAAzB,IAAyB;YAA3C,IAAM,QAAQ;YACf,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACzC,MAAM;aACT;SACJ;IACL,CAAC;IAGD,iDAAa,GAAb,UAAc,UAAsB;QAChC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,UAAU,CAAC,YAAY,EAAhC,CAAgC,CAAC,CAAC;SACxE;IACL,CAAC;IAED,6DAAyB,GAAzB,UAA0B,UAAsB,EAAE,IAAY;QAC1D,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAkB,UAAsB,EAAtB,eAAU,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;YAAnC,IAAM,GAAG;YACV,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,MAAM,EAAE,CAAC;aACZ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,kDAAc,GAAd,UAAe,YAAoB;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,EAAS;YAClD,uBAAuB;SAE1B;IACL,CAAC;IAED,sDAAkB,GAAlB,UAAmB,UAAsB;QACrC,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;YACpD,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;SACvH;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,sDAAkB,GAAlB;QACI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE;YAC5D,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;SACxC;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;IACD,qDAAiB,GAAjB,UAAkB,EAAU;QACxB,IAAI,EAAE,IAAI,IAAI,EAAE;YACZ,KAAuB,UAAgB,EAAhB,SAAI,CAAC,WAAW,EAAhB,cAAgB,EAAhB,IAAgB;gBAAlC,IAAI,UAAU;gBACf,UAAU,GAAI,UAAyB,CAAC;gBACxC,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;oBACtB,OAAO,UAAU,CAAC;iBACrB;aACJ;SACJ;IACL,CAAC;IAKD,8DAA0B,GAA1B,UAA2B,UAAsB;QAC7C,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IA3FQ,yBAAyB;QAJrC,gEAAS,CAAC;YACP,QAAQ,EAAE,mBAAmB;;SAEhC,CAAC;yCAU+B,sFAAiB;YAC1B,+DAAM;YACI,6EAAgB;YACf,sFAAiB;YACjB,sFAAiB;YACX,kGAAuB;OAdnD,yBAAyB,CA6FrC;IAAD,gCAAC;CAAA;AA7FqC;;;;;;;;ACrBtC,uEAAuE,gCAAgC,6SAA6S,iCAAiC,iRAAiR,4ZAA4Z,iBAAiB,gTAAgT,iBAAiB,6SAA6S,iBAAiB,6SAA6S,iBAAiB,iTAAiT,iBAAiB,+SAA+S,iBAAiB,uSAAuS,iBAAiB,2SAA2S,iBAAiB,ySAAyS,iBAAiB,kIAAkI,uCAAuC,0C;;;;;;;;;;;;;;;;;;;;;;ACA/tH;AACD;AAEuC;AACN;AAM1E;IAII,gCACY,kBAAsC,EAC1C,MAAc;QAFtB,iBAmBC;QAlBW,uBAAkB,GAAlB,kBAAkB,CAAoB;QAC1C,WAAM,GAAN,MAAM,CAAQ;QAElB,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YAClC,KAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAsB,CAAC;YAC9C,KAAI,CAAC,KAAK,GAAG,IAAI,8FAAsB,EAAE,CAAC;YAC1C,KAAI,CAAC,KAAK,CAAC,WAAW,GAAI,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,aAAa,EAAvB,CAAuB,CAAC,CAAC,QAAQ,CAAC;YACxF,KAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,cAAc,EAAxB,CAAwB,CAAC,CAAC,QAAQ,CAAC;YACzF,KAAI,CAAC,KAAK,CAAC,aAAa,GAAI,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,eAAe,EAAzB,CAAyB,CAAC,CAAC,QAAQ,CAAC;YAC5F,KAAI,CAAC,KAAK,CAAC,eAAe,GAAI,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,iBAAiB,EAA3B,CAA2B,CAAC,CAAC,QAAQ,CAAC;YAChG,KAAI,CAAC,KAAK,CAAC,aAAa,GAAI,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,eAAe,EAAzB,CAAyB,CAAC,CAAC,QAAQ,CAAC;YAC5F,KAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,gBAAgB,EAA1B,CAA0B,CAAC,CAAC,QAAQ,CAAC;YAC7F,KAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,YAAY,EAAtB,CAAsB,CAAC,CAAC,QAAQ,CAAC;YACrF,KAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,eAAe,EAAzB,CAAyB,CAAC,CAAC,QAAQ,CAAC;YAC3F,KAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,gBAAgB,EAA1B,CAA0B,CAAC,CAAC,QAAQ,CAAC;QACjG,CAAC,CAAC,CAAC;IAGP,CAAC;IAGH,6CAAY,GAAZ;QACE,IAAM,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC;QACrB,UAAU,CAAC;YACT,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAEK,qCAAI,GAAJ;QAAA,iBAIC;QAHG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,iBAAO;YACtD,KAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;IAtCI,sBAAsB;QAJlC,gEAAS,CAAC;YACP,QAAQ,EAAE,gBAAgB;;SAE7B,CAAC;yCAMkC,wFAAkB;YAClC,+DAAM;OANb,sBAAsB,CAwClC;IAAD,6BAAC;CAAA;AAxCkC;;;;;;;;ACVnC,4/CAA4/C,moEAAmoE,YAAY,2JAA2J,YAAY,4JAA4J,YAAY,uUAAuU,aAAa,8PAA8P,aAAa,6UAA6U,aAAa,4UAA4U,aAAa,6UAA6U,aAAa,idAAid,aAAa,6UAA6U,aAAa,m0QAAm0Q,0roBAA0roB,wFAAwF,c;;;;;;;;;;;;;;;;;;;;;;ACAz6lC;AACL;AACuB;AAM5D;IAEI;IAEA,CAAC;IAGD,sCAAU,GAAV;QACI,sEAAsE;IAC1E,CAAC;IAED,qCAAS,GAAT;QAEI,yCAAyC;IAC7C,CAAC;IAED,qCAAS,GAAT;QACI,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAM,IAAI,GAAG,IAAI,KAAK,EAAgB,CAAC;QACvC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE;YAC/B,IAAI,CAAC,SAAc,CAAC;YACpB,CAAC,GAAG,IAAI,0EAAY,EAAE,CAAC;YACvB,CAAC,CAAC,EAAE,GAAG,mDAAI,CAAC,IAAI,EAAE,CAAC;YACnB,CAAC,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAGD,wCAAY,GAAZ;QACI,0CAA0C;IAC9C,CAAC;IAED,oCAAQ,GAAR;QACM,8CAA8C;IACpD,CAAC;IApCQ,iBAAiB;QAJ7B,gEAAS,CAAC;YACP,QAAQ,EAAE,UAAU;;SAEvB,CAAC;;OACW,iBAAiB,CAsC7B;IAAD,wBAAC;CAAA;AAtC6B;;;;;;;;ACR9B,gykBAAgykB,wFAAwF,gB;;;;;;;;;;;;;;;;ACA90kB;AAQ1C;IAAA;IAIA,CAAC;IAJY,iBAAiB;QAJ7B,gEAAS,CAAC;YACP,QAAQ,EAAE,UAAU;;SAEvB,CAAC;OACW,iBAAiB,CAI7B;IAAD,wBAAC;CAAA;AAJ6B;;;;;;;;ACR9B,0+DAA0+D,QAAQ,iLAAiL,mCAAmC,iCAAiC,iBAAiB,2FAA2F,kEAAkE,cAAc,kHAAkH,sBAAsB,mHAAmH,eAAe,iJAAiJ,2MAA2M,uCAAuC,gCAAgC,sCAAsC,8IAA8I,mCAAmC,wDAAwD,oCAAoC,8IAA8I,2CAA2C,iCAAiC,0CAA0C,6IAA6I,kCAAkC,oBAAoB,oOAAoO,oBAAoB,0BAA0B,yBAAyB,8BAA8B,6BAA6B,sBAAsB,sBAAsB,wFAAwF,gB;;;;;;;;;;;;;;;;;;;;;;;ACA/vI;AACrD,yCAAyC;AACH;AAG8C;AACxB;AAO5D;IAOI,2BAAoB,OAAgC,EAAU,WAAwB;QAAtF,iBAGC;QAHmB,YAAO,GAAP,OAAO,CAAyB;QAAU,gBAAW,GAAX,WAAW,CAAa;QANtF,SAAI,GAAG,EAAE,CAAC;QAON,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAe,EAAhC,CAAgC,CAAC,CAAC;IAEzE,CAAC;IAOD,wCAAY,GAAZ;QACI,IAAI,IAAI,GAAe,IAAI,CAAC,KAAK,CAAC,g0zCAAg0zC,CAAC,CAAC;QACp2zC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAErC,CAAC;IACD,0CAAc,GAAd;QACI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,KAAK,CAAC,8DAA4B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3D,CAAC;IAdD;QADC,gEAAS,CAAC,eAAe,CAAC;;wDACZ;IAEf;QADC,gEAAS,CAAC,eAAe,CAAC;;wDACZ;IAdN,iBAAiB;QAJ7B,gEAAS,CAAC;YACP,QAAQ,EAAE,UAAU;;SAEvB,CAAC;yCAQ+B,kGAAuB,EAAuB,0EAAW;OAP7E,iBAAiB,CA4B7B;IAAD,wBAAC;CAAA;AA5B6B;;;;;;;;ACb9B,+oC;;;;;;;;;;;;;;;;;;ACAqD;AAGzB;AAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,oCAAC,CAAC;AAChB,MAAM,CAAC,QAAQ,CAAC,GAAG,oCAAC,CAAC;AAMrB;IAAA;IAaA,CAAC;IAXG,gCAAgC;IAChC,yBAAyB;IAEzB,iCAAK,GAAL;QACI,sBAAsB;IAC1B,CAAC;IAED,gCAAI,GAAJ;QACI,qBAAqB;IACzB,CAAC;IAXQ,iBAAiB;QAJ7B,gEAAS,CAAC;YACP,QAAQ,EAAE,UAAU;;SAEvB,CAAC;OACW,iBAAiB,CAa7B;IAAD,wBAAC;CAAA;AAb6B;;;;;;;;ACX9B,+DAA+D,mCAAmC,IAAI,wBAAwB,uYAAuY,gCAAgC,uSAAuS,sBAAsB,mTAAmT,uBAAuB,+9BAA+9B,mBAAmB,KAAK,mBAAmB,yCAAyC,2BAA2B,eAAe,mBAAmB,+TAA+T,kCAAkC,uEAAuE,+CAA+C,ud;;;;;;;;;;;;;;;;;;;;;;;;;;ACAjsF;AACF;AACP;AACyC;AAC3B;AACW;AAGM;AACA;AAMxE;IASI,+BACY,iBAAoC,EACpC,iBAAoC,EACpC,gBAAkC,EAClC,MAAc;QAHd,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,WAAM,GAAN,MAAM,CAAQ;QATnB,mBAAc,GAAG,IAAI,gFAAe,EAAiB,CAAC;QAC7D,2BAAsB,GAA8B,EAAE,CAAC;IAUvD,CAAC;IAED,wCAAQ,GAAR;QAAA,iBAqBC;QApBC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAM,IAAM,KAAI,CAAC,WAAW,GAAG,MAAqC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChH,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAM;YAC3C,KAAI,CAAC,YAAY,GAAG,MAAqC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxG,KAAuB,UAAyB,EAAzB,SAAI,CAAC,cAAc,CAAC,KAAK,EAAzB,cAAyB,EAAzB,IAAyB;YAA3C,IAAM,QAAQ;YACf,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACzC,MAAM;aACT;SACJ;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEM,iDAAiB,GAAxB;QACI,oBAAoB;QADxB,iBAMC;QAHG,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,sCAAsC;QACtC,UAAU,CAAC,cAAM,YAAI,CAAC,iBAAiB,EAAE,EAAxB,CAAwB,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,+DAA+B,GAA/B,UAAgC,UAAsB;QAAtD,iBAaC;QAXG,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE;YAEjH,IAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAI,QAAM,GAAG,CAAC,CAAC;YACf,WAAW,CAAC,SAAS,CAAC,aAAG;gBACrB,QAAM,GAAG,GAAG,CAAC,UAAU,CAAC;gBACxB,KAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,QAAM,CAAC;YACxD,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,oDAAoB,GAApB;QACI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,EAAE;YAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;SACzC;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;IAED,0DAA0B,GAA1B,UAA2B,UAAsB;QAC7C,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IA1EQ,qBAAqB;QAJjC,gEAAS,CAAC;YACP,QAAQ,EAAE,cAAc;;SAE3B,CAAC;yCAWiC,sFAAiB;YACjB,sFAAiB;YAClB,6EAAgB;YAC1B,+DAAM;OAbjB,qBAAqB,CA2EjC;IAAD,4BAAC;CAAA;AA3EiC;;;;;;;;ACflC,mmBAAmmB,iCAAiC,wuEAAwuE,+BAA+B,8QAA8Q,iCAAiC,4I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA/lG;AAC1C;AACmB;AAGJ;AACkB;AAE3B;AACC;AAKgB;AACZ;AACM;AACJ;AAM9D;IA2BI,iCAAoB,SAAqB,EAC7B,OAA0B,EAC1B,WAAwB,EACxB,gBAAkC,EAClC,cAA8B,EAC9B,YAA0B,EAC1B,KAAqB,EACrB,OAAoB;QAPZ,cAAS,GAAT,SAAS,CAAY;QAC7B,YAAO,GAAP,OAAO,CAAmB;QAC1B,gBAAW,GAAX,WAAW,CAAa;QACxB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAgB;QACrB,YAAO,GAAP,OAAO,CAAa;QAjCtB,aAAQ,GAAG,IAAI,2DAAY,EAAc,CAAC;QAGpD,YAAO,GAAG,IAAI,CAAC;QAqBf,YAAO,GAAG,IAAI,CAAC;IAWf,CAAC;IAED,0CAAQ,GAAR;QAAA,iBAyCC;QAxCC,IAAM,QAAQ,GAAW,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC7E,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,EAAE,kEAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzI,IAAI,CAAC,YAAY,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3I,IAAI,CAAC,SAAS,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnG,IAAI,CAAC,OAAO,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,EAAE,kEAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEnK,IAAI,CAAC,UAAU,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3I,IAAI,CAAC,KAAK,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YACnC,KAAI,CAAC,SAAS,GAAG,GAA+B,CAAC;YAEjD,KAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,WAAC;gBAC9B,KAAI,CAAC,WAAW,GAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,CAAC;gBAExC,KAAuB,UAAoB,EAApB,UAAI,CAAC,SAAS,CAAC,KAAK,EAApB,cAAoB,EAApB,IAAoB;oBAAtC,IAAM,QAAQ;oBACf,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE;wBACxD,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACrC,KAAI,CAAC,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;wBAC3C,MAAM;qBACT;iBACJ;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,MAAM,GAAG,GAA6B,EAA3C,CAA2C,CAAC,CAAC;QAEtF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;SAEpB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;IAED,uCAAK,GAAL;QACI,aAAa;QACb,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,kDAAgB,GAAhB;QACE,uBAAuB;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,sEAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,gDAAc,GAAd,UAAe,KAAK;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,4EAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,sCAAI,GAAJ;QACI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAE5B,KAAK,IAAM,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBAC5C,IAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAE7C,GAA2B,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aAClE;SAEJ;aAAM;YACH,4EAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,eAAe;YACf,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;IACL,CAAC;IAED,8CAAY,GAAZ,UAAa,KAAU;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IA3HS;QAAT,6DAAM,EAAE;;6DAA2C;IAK3C;QAAR,4DAAK,EAAE;kCAAQ,sEAAU;0DAAC;IAClB;QAAR,4DAAK,EAAE;;2DAAgB;IAPf,uBAAuB;QAJnC,gEAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;;SAE9B,CAAC;yCA4BiC,yDAAU;YACpB,sFAAiB;YACb,0EAAW;YACN,6EAAgB;YAClB,gFAAc;YAChB,6EAAY;YACnB,uEAAc;YACZ,mEAAW;OAlCvB,uBAAuB,CA6HnC;IAAD,8BAAC;CAAA;AA7HmC;;;;;;;;ACvBpC,8FAA8F,8BAA8B,4HAA4H,cAAc,mwBAAmwB,gCAAgC,+YAA+Y,sBAAsB,0UAA0U,wBAAwB,iVAAiV,4CAA4C,IAAI,qCAAqC,8gBAA8gB,gCAAgC,wEAAwE,cAAc,0HAA0H,yCAAyC,wCAAwC,sBAAsB,2FAA2F,sCAAsC,wCAAwC,mBAAmB,uCAAuC,oBAAoB,GAAG,cAAc,uCAAuC,iBAAiB,uCAAuC,eAAe,oOAAoO,kCAAkC,IAAI,qCAAqC,uiBAAuiB,mBAAmB,KAAK,mBAAmB,6CAA6C,6BAA6B,wQAAwQ,wCAAwC,yJAAyJ,0CAA0C,+JAA+J,0CAA0C,8JAA8J,0CAA0C,wJAAwJ,qCAAqC,IAAI,0CAA0C,gRAAgR,yCAAyC,gDAAgD,gCAAgC,mzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAl0L;AACO;AACW;AACJ;AACkB;AAC3B;AACC;AACU;AAIM;AACA;AACY;AACZ;AAOxE;IA4BI,wCACW,OAA0B,EACzB,gBAAkC,EAClC,iBAAoC,EACpC,MAAc,EACd,KAAqB,EAAE,OAAoB,EAC3C,uBAAgD,EAChD,iBAAoC;QAPhD,iBA6CC;QA5CU,YAAO,GAAP,OAAO,CAAmB;QACzB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;QACrB,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,sBAAiB,GAAjB,iBAAiB,CAAmB;QAjChD,YAAO,GAAG,IAAI,CAAC;QACf,sBAAiB,GAAG,IAAI,CAAC;QAMzB,gBAAW,GAAG,IAAI,gFAAe,EAAc,CAAC;QAEhD,2BAAsB,GAA8B,EAAE,CAAC;QA0BnD,IAAM,QAAQ,GAAW,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC7E,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvH,IAAI,CAAC,SAAS,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,SAAS,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,SAAS,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,OAAO,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,UAAU,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrH,IAAI,CAAC,QAAQ,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,MAAM,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjH,IAAI,CAAC,KAAK,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAGhH,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,EAArC,CAAqC,CAAC,CAAC;QAC5F,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAlC,CAAkC,CAAC,CAAC;QACtF,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,EAAtC,CAAsC,CAAC,CAAC;QAE3F,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAM;YAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;gBACxB,KAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,yDAAgB,GAAhB,UAAiB,MAAc,EAAE,EAAU;QAA3C,iBAoBC;QAnBG,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;YAC5C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,MAAM,KAAK,MAAM,EAAE;gBACnB,iCAAiC;gBACjC,UAAU,CAAC;oBACP,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;aACZ;SACJ;QAID,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE;YACzC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,iCAAiC;YACjC,UAAU,CAAC;gBACP,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;SACZ;IACL,CAAC;IAED,iDAAQ,GAAR;QAAA,iBAaC;QAXG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAM;YAC9B,KAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,KAAI,CAAC,EAAE,KAAK,GAAG,EAAE;gBACjB,KAAI,CAAC,IAAI,EAAE,CAAC;aACf;iBAAM;gBACH,KAAI,CAAC,KAAK,GAAG,IAAI,sEAAU,EAAE,CAAC;gBAC9B,KAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;aAEhC;QAEL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,6CAAI,GAAJ;QAAA,iBAmCC;QAlCG,IAAI,GAAQ,CAAC;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACvB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC3E;aAAM;YACH,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACpE;QAED,GAAG,CAAC,SAAS,CACT,UAAC,KAAK,IAAK,YAAI,CAAC,eAAe,CAAC,KAAmB,CAAC,EAAzC,CAAyC,EACpD,UAAC,KAAK,IAAK,YAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAxB,CAAwB,EACnC,cAAM,YAAI,CAAC,OAAO,GAAG,KAAK,EAApB,CAAoB,CAC7B,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,SAAS,CACjB,UAAC,KAAK,IAAK,YAAI,CAAC,0BAA0B,CAAC,KAAoC,CAAC,EAArE,CAAqE,EAChF,UAAC,KAAK,IAAK,YAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAxB,CAAwB,EACnC,cAAM,YAAI,CAAC,iBAAiB,GAAG,KAAK,EAA9B,CAA8B,CACvC,CAAC;QAIF,IAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,MAAM,CAAC,SAAS,CAAC,aAAG;gBAChB,KAAI,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC5B,KAAoB,UAAS,EAAT,QAAG,CAAC,KAAK,EAAT,cAAS,EAAT,IAAS;oBAAxB,IAAM,KAAK;oBACZ,IAAI,GAAG,IAAI,IAAI,EAAE;wBACb,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAE,KAAoB,CAAC,CAAC;qBACtD;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,wDAAe,GAAf,UAAgB,KAAiB;QAAjC,iBAQC;QAPG,UAAU,CAAC;YACP,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,KAAI,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAI,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;gBAClE,KAAI,CAAC,UAAU,GAAG,SAAS,CAAC;aAC/B;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,4EAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAGD,mEAA0B,GAA1B,UAA2B,KAAkC;QAA7D,iBAKC;QAJG,UAAU,CAAC;YAEP,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC7B,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC;IAED,+DAAsB,GAAtB,UAAuB,WAAwC;QAC3D,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE;YACpH,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;SACnC;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;IAED,kEAAyB,GAAzB,UAA0B,UAAsB,EAAE,IAAY;QAC1D,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAkB,UAAsB,EAAtB,eAAU,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;YAAnC,IAAM,GAAG;YACV,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,MAAM,EAAE,CAAC;aACZ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,oEAA2B,GAA3B,UAA4B,UAAsB;QAC9C,IAAI,MAAM,GAAC,CAAC,CAAC;QACb,IAAI,UAAU,CAAC,mBAAmB,EAAC;YAC/B,0BAA0B;YAC1B,IAAI,MAAM,GAAI,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAC,IAAE,QAAC,CAAC,aAAa,EAAf,CAAe,CAAC,CAAE;YACtE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBACjB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,EAAC,CAAC,IAAK,QAAC,GAAC,CAAC,EAAH,CAAG,CAAC,CAAC;SAC5C;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,gEAAuB,GAAvB,UAAwB,UAAsB;QAC1C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,UAAU,CAAC,mBAAmB;YAC9B,MAAM,GAAG,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC;QACnD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD,2DAAkB,GAAlB,UAAmB,UAAsB;QACrC,8BAA8B;QAC9B,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;YACpD,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;SACvH;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAID,0DAAiB,GAAjB,UAAkB,EAAU;QACxB,IAAI,EAAE,IAAI,IAAI,EAAE;YACZ,KAAuB,UAAsB,EAAtB,SAAI,CAAC,WAAW,CAAC,KAAK,EAAtB,cAAsB,EAAtB,IAAsB;gBAAxC,IAAI,UAAU;gBACf,UAAU,GAAI,UAAyB,CAAC;gBACxC,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;oBACtB,OAAO,UAAU,CAAC;iBACrB;aACJ;SACJ;IACL,CAAC;IAED,mEAA0B,GAA1B,UAA2B,UAAsB;QAC7C,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,6CAAI,GAAJ;QACI,4EAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,qDAAY,GAAZ,UAAa,KAAU;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,6DAAoB,GAApB;QAAA,iBAGC;QAFG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,WAAC,IAAI,YAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAhC,CAAgC,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;IAChC,CAAC;IApPQ,8BAA8B;QAH1C,gEAAS,CAAC;;SAEV,CAAC;yCA8BsB,sFAAiB;YACP,6EAAgB;YACf,sFAAiB;YAC5B,+DAAM;YACP,uEAAc,EAAW,mEAAW;YAClB,mGAAuB;YAC7B,uFAAiB;OAnCvC,8BAA8B,CAqP1C;IAAD,qCAAC;CAAA;AArP0C;;;;;;;;ACrB3C,wCAAwC,8BAA8B,4iBAA4iB,0BAA0B,qLAAqL,6BAA6B,uEAAuE,qBAAqB,uM;;;;;;;;;;;;;;;;;;;;;;;;;;ACAx4B;AACkB;AACe;AACpB;AACE;AACV;AACd;AACoC;AAO7E;IAQE,wBACS,WAAwB,EACvB,YAA0B,EAC1B,gBAAkC,EAClC,IAAY,EACZ,MAAc,EACd,SAAyB,EACjC,OAAoB;QANb,gBAAW,GAAX,WAAW,CAAa;QACvB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAgB;QAGjC,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,EAAE,kEAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE;YAC7F,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,EAAE,kEAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE;YACjG,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,8BAAK,GAAL;QAAA,iBA4BC;QA3BC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACxB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;SAC/E;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CACpE,UAAC,GAAQ;gBACP,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAM,IAAI,GAAG,GAAW,CAAC;gBACzB,IAAI,IAAI,EAAE;oBACR,KAAI,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;oBACjC,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;oBAClC,KAAI,CAAC,WAAW,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpE,KAAI,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;oBACpC,KAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;oBAC5B,UAAU,CAAC,cAAM,YAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,EAArC,CAAqC,EAAE,IAAI,CAAC,CAAC;iBAC/D;qBAAM;oBACL,KAAI,CAAC,mBAAmB,GAAG,KAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;iBACrF;YACH,CAAC,EAED,aAAG;gBACD,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,KAAI,CAAC,mBAAmB,GAAG,KAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBACpF,oCAAoC;YACtC,CAAC,CACF,CAAC;SACH;IACH,CAAC;IA7DU,cAAc;QAJ1B,gEAAS,CAAC;YACT,QAAQ,EAAE,OAAO;;SAElB,CAAC;yCAUsB,0EAAW;YACT,4EAAY;YACR,6EAAgB;YAC5B,qDAAM;YACJ,+DAAM;YACH,wFAAc;YACxB,mEAAW;OAfX,cAAc,CA8D1B;IAAD,qBAAC;CAAA;AA9D0B;;;;;;;;ACd3B,yB;;;;;;;;;;;;;;;;ACA0C;AAK1C;IAAA;IACA,CAAC;IADY,eAAe;QAH3B,gEAAS,CAAC;;SAEV,CAAC;OACW,eAAe,CAC3B;IAAD,sBAAC;CAAA;AAD2B;;;;;;;;ACL5B,uE;;;;;;;;;;;;;;;;;;;ACA0C;AAK1C;IAEI;IACA,CAAC;IAHQ,qBAAqB;QAHjC,gEAAS,CAAC;;SAEV,CAAC;;OACW,qBAAqB,CAIjC;IAAD,4BAAC;CAAA;AAJiC;;;;;;;;;;;;;;;;;;;;;ACLO;AACc;AAEO;AACc;AACZ;AAEhE,IAAM,WAAW,GAAW;IACxB;QACI,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,mFAAc,EAAE;YAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,qFAAe,EAAE;YAC9C,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,iGAAqB,EAAE,MAAM,EAAE,OAAO,EAAE;YAC3E,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,mFAAc,EAAE;SAC1C;KACJ;CACJ,CAAC;AAEF,uBAAuB;AASvB;IAAA;IACA,CAAC;IADY,kBAAkB;QAR9B,+DAAQ,CAAC;YACN,OAAO,EAAE;gBACL,qEAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;aACrC;YACD,OAAO,EAAE;gBACL,qEAAY;aACf;SACJ,CAAC;OACW,kBAAkB,CAC9B;IAAD,yBAAC;CAAA;AAD8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BiD;AACvC;AACM;AACM;AAEQ;AACe;AACZ;AAEJ;AACG;AACW;AACf;AACE;AACP;AA0BtD;IAAA;IACA,CAAC;IADY,WAAW;QAvBvB,+DAAQ,CAAC;YACN,YAAY,EAAE;gBACV,mFAAc;gBACd,qFAAe;gBACf,iGAAqB;aACxB;YACD,OAAO,EAAE;gBACL,qEAAY;gBACZ,2EAAmB;gBACnB,4FAAkB;gBAClB,4EAAY;gBACZ,oBAAoB;gBACpB,iFAAkB;aACrB;YACD,OAAO,EAAE;gBACP,6EAAe;aAChB;YACD,SAAS,EAAE;gBACP,6EAAS;gBACT,wFAAc;gBACd,0EAAW;aACd;SACJ,CAAC;OACW,WAAW,CACvB;IAAD,kBAAC;CAAA;AADuB;;;;;;;;ACxCxB,2BAA2B,mBAAO,CAAC,wCAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,kBAAkB,2BAA2B,KAAK,mIAAmI,kCAAkC,qBAAqB,KAAK,qGAAqG,wBAAwB,eAAe,gBAAgB,iBAAiB,mBAAmB,KAAK,mCAAmC,6FAA6F,yBAAyB,oCAAoC,SAAS,iBAAiB,+BAA+B,8BAA8B,yBAAyB,SAAS,wBAAwB,wBAAwB,SAAS,0BAA0B,uCAAuC,yBAAyB,SAAS,oBAAoB,wBAAwB,SAAS,oBAAoB,wBAAwB,4BAA4B,wBAAwB,SAAS,sBAAsB,+BAA+B,+BAA+B,SAAS,mBAAmB,wFAAwF,gCAAgC,6BAA6B,oCAAoC,SAAS,KAAK;;AAEp3C;;;AAGA;AACA,2C;;;;;;;ACXA,2TAA2T,uCAAuC,sMAAsM,UAAU,+BAA+B,oBAAoB,GAAG,6BAA6B,oHAAoH,UAAU,+BAA+B,oBAAoB,GAAG,6BAA6B,yJAAyJ,iEAAiE,4BAA4B,4RAA4R,mCAAmC,kLAAkL,mCAAmC,kSAAkS,iCAAiC,oPAAoP,uCAAuC,oNAAoN,6BAA6B,8D;;;;;;;;;;;;;;;;;;;;;ACAr4E;AAEkB;AACE;AAQ9D;IAeE,0BAAoB,WAAwB,EAAU,YAA0B;QAAhF,iBAGC;QAHmB,gBAAW,GAAX,WAAW,CAAa;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAC9E,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,gBAAgB,EAAE,EAAvB,CAAuB,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAbD,2CAAgB,GAAhB;QAAA,iBAQC;QAPC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YAClC,KAAI,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC;YACpC,IAAI,KAAI,CAAC,OAAO,IAAI,IAAI,IAAI,KAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,KAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;gBACvF,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACpF;QACH,CAAC,CACA,CAAC;IACJ,CAAC;IAOD,iCAAM,GAAN;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAvBU,gBAAgB;QAL5B,gEAAS,CAAC;YACT,QAAQ,EAAE,UAAU;;;SAGrB,CAAC;yCAgBiC,0EAAW,EAAwB,4EAAY;OAfrE,gBAAgB,CAyB5B;IAAD,uBAAC;CAAA;AAzB4B;;;;;;;;ACX7B,wCAAwC,kCAAkC,4QAA4Q,2BAA2B,+DAA+D,iCAAiC,wG;;;;;;;;;;;;;;;;;;;ACApZ;AAQ7D;IAqCE;QAnCA,aAAQ,GAAG;YACT;gBACE,KAAK,EAAE,yBAAyB;gBAChC,WAAW,EAAE,8BAA8B;aAC5C;YACD;gBACE,KAAK,EAAE,yBAAyB;gBAChC,WAAW,EAAE,8BAA8B;aAC5C;YACD;gBACE,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,4BAA4B;aAC1C;YACD;gBACE,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,4BAA4B;aAC1C;YACD;gBACE,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,4BAA4B;aAC1C;YACD;gBACE,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,4BAA4B;aAC1C;YACD;gBACE,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,4BAA4B;aAC1C;YACD;gBACE,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,4BAA4B;aAC1C;SACF,CAAC;IAIF,CAAC;IAvCU,kBAAkB;QAJ9B,gEAAS,CAAC;YACT,QAAQ,EAAE,WAAW;;SAEtB,CAAC;;OACW,kBAAkB,CAwC9B;IAAD,yBAAC;CAAA;AAxC8B;;;;;;;;ACR/B,wCAAwC,iCAAiC,sUAAsU,8BAA8B,qUAAqU,gCAAgC,qSAAqS,kCAAkC,o0BAAo0B,uCAAuC,2HAA2H,uCAAuC,kB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAliE;AACrC;AACiB;AAEkC;AAC3B;AACb;AAEgC;AACd;AACE;AAQ9D;IAYE,2BACU,kBAAsC,EACvC,WAAwB,EACxB,YAA0B,EACzB,SAA2B;QAJrC,iBAcC;QAbS,uBAAkB,GAAlB,kBAAkB,CAAoB;QACvC,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAc;QACzB,cAAS,GAAT,SAAS,CAAkB;QANrC,aAAQ,GAAG,KAAK,CAAC;QAQf,IAAI,CAAC,QAAQ,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEhE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YAClC,KAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAA7B,CAA6B,CAAC,CAAC;IAChF,CAAC;IAED,4CAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACpD,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SACnF;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAChE,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;SAClE;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,wCAAY,GAAZ;QACE,IAAM,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC;QACrB,UAAU,CAAC;YACT,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,8CAAkB,GAAlB;QACE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,4CAAgB,GAAhB;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAEO,8CAAkB,GAA1B,UACE,UAAkB,EAClB,QAAwC,EACxC,YAAyB,EACzB,OAA4B;QAD5B,gDAAyB;QAGzB,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,QAAQ,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,qDAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACrB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;oBAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACjC;gBAED,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;aACtF;iBAAM;gBACL,IAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAE5B,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;oBACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;iBACxC;gBAED,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;aAC9F;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,+CAAmB,GAA3B,UAA4B,GAA0C;QACpE,KAAqB,UAAS,EAAT,QAAG,CAAC,KAAK,EAAT,cAAS,EAAT,IAAS;YAAzB,IAAM,MAAM;YACf,IAAM,OAAO,GAAG,MAAqB,CAAC;YAEtC,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE;gBACjC,IAAI,CAAC,WAAW,GAAG,IAAI,gFAAe,EAAiB,CAAC;gBACxD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7H,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aACnF;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,gFAAe,EAAiB,CAAC;gBACtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7H,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;aAC7E;SACF;IACH,CAAC;IAjHU,iBAAiB;QAJ7B,gEAAS,CAAC;YACT,QAAQ,EAAE,UAAU;;SAErB,CAAC;yCAc8B,wFAAkB;YAC1B,0EAAW;YACV,4EAAY;YACd,6EAAgB;OAhB1B,iBAAiB,CAkH7B;IAAD,wBAAC;CAAA;AAlH6B;;;;;;;;AClB9B,+aAA+a,eAAe,mEAAmE,iBAAiB,0IAA0I,6CAA6C,GAAG,yBAAyB,6MAA6M,mDAAmD,+OAA+O,iBAAiB,gwH;;;;;;;;;;;;;;;;;;;;;;;;ACA5rC;AAC8B;AACe;AACxB;AAC8C;AAM5G;IAME,+CAAoB,YAA0B,EAAU,mCAAwE;QAA5G,iBAAY,GAAZ,YAAY,CAAc;QAAU,wCAAmC,GAAnC,mCAAmC,CAAqC;QAJtH,gBAAW,GAAG,IAAI,2DAAY,EAAE,CAAC;IAK3C,CAAC;IAED,kEAAkB,GAAlB;QACE,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,+DAAe,GAAf;QACE,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACjB,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;SACF;IACH,CAAC;IAED,6DAAa,GAAb;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,+DAAe,GAAf;QACE,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACjB,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACb,IAAI,CAAC,+DAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;oBAC/G,OAAO,KAAK,CAAC;iBACd;gBAED,IAAI,CAAC,+DAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE;oBACvH,OAAO,KAAK,CAAC;iBACd;gBAED,IAAI,CAAC,+DAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,+DAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;uBACvE,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE;oBACzE,OAAO,KAAK,CAAC;iBACd;gBAED,IAAI,CAAC,+DAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,+DAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;uBAC3E,CAAC,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE;oBACrF,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAO,GAAP,UAAQ,IAAa,EAAE,KAAc;QACnC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAC,sDAAsD;YAC/D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGD,+DAAe,GAAf,UAAgB,IAAa,EAAE,KAAc;QAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,EAAE,oDAAoD;YAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,mEAAmB,GAAnB;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,kEAAkB,GAAlB;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,yEAAyB,GAAzB;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,gEAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,yDAAS,GAAT,UAAU,IAAa;QACrB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,iEAAiB,GAAjB,UAAkB,IAAa;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B;IACH,CAAC;IAED,8DAAc,GAAd;QACE,IAAM,WAAW,GAAG,IAAI,KAAK,EAAW,CAAC;QACzC,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACjB,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACb,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;oBACzB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACxB;aACF;SACF;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,wEAAwB,GAAxB,UAAyB,QAAqB;QAC5C,IAAM,eAAe,GAAG,IAAI,KAAK,EAAW,CAAC;QAC7C,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACb,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBACzB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5B;SACF;QAED,IAAI,eAAe,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YACpD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;SACzB;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,iEAAiB,GAAjB,UAAkB,QAAqB;QACrC,OAAO,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IAClF,CAAC;IAED,iEAAiB,GAAjB,UAAkB,KAAU;QAC1B,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACjB,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACtC;IACH,CAAC;IAED,8DAAc,GAAd,UAAe,QAAqB,EAAE,KAAU;QAC9C,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;SACrC;IACH,CAAC;IAED,mEAAmB,GAAnB,UAAoB,YAAqB;QACvC,KAAmB,UAAgB,EAAhB,SAAI,CAAC,WAAW,EAAhB,cAAgB,EAAhB,IAAgB;YAA9B,IAAM,IAAI;YACb,IAAI,YAAY,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACjC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;aACvC;YAED,IAAI,YAAY,CAAC,SAAS,IAAI,IAAI,EAAE;gBAClC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;aACzC;YAED,IAAI,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,UAAU,IAAI,IAAI,EAAE;gBACpD,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,IAAI,IAAI,EAAE;gBACtD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC;aAC7C;YAED,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;YAElD,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;YAEtC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;YAClC,qBAAqB;YACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SAEtB;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,mEAAmB,GAAnB;QACE,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,4DAAY,GAAZ;QACE,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;IAGD,qEAAqB,GAArB;QACE,IAAM,WAAW,GAAG,IAAI,KAAK,EAAW,CAAC;QACzC,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACjB,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACjC,OAAO,IAAI,CAAC;iBACb;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mEAAmB,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,KAAK,EAAW,CAAC;QACzC,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACjB,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACb,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAChC,OAAO,IAAI,CAAC;iBACb;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IA3MS;QAAT,6DAAM,EAAE;;8EAAkC;IAClC;QAAR,4DAAK,EAAE;kCAAQ,8EAAS;wEAAC;IAHf,qCAAqC;QAJjD,gEAAS,CAAC;YACT,QAAQ,EAAE,iCAAiC;;SAE5C,CAAC;yCAOkC,4EAAY,EAA+C,0HAAmC;OANrH,qCAAqC,CA8MjD;IAAD,4CAAC;CAAA;AA9MiD;;;;;;;;ACVlD,ufAAuf,aAAa,2JAA2J,eAAe,8JAA8J,2CAA2C,GAAG,oCAAoC,mUAAmU,yDAAyD,wCAAwC,aAAa,gUAAgU,iBAAiB,ygC;;;;;;;;;;;;;;;;;;;;;;;;ACAzlD;AAC9B;AAC6C;AACsB;AAC9C;AAO9D;IAMI,8CAAoB,mCAAwE,EAChF,YAA0B;QADlB,wCAAmC,GAAnC,mCAAmC,CAAqC;QAChF,iBAAY,GAAZ,YAAY,CAAc;QAI5B,gBAAW,GAAG,IAAI,2DAAY,EAAE,CAAC;IAF3C,CAAC;IAGD,4DAAa,GAAb;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,iEAAkB,GAAlB;QACI,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,8DAAe,GAAf;QACI,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACf,IAAI,IAAI,CAAC,mCAAmC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE;gBAC1E,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA5B,IAAM,IAAI;oBACX,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,EAAE;wBACrC,IAAI,CAAC,+DAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;4BAClC,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE;4BACrE,OAAO,KAAK,CAAC;yBAChB;wBAED,IAAI,CAAC,+DAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;4BAClC,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE;4BAClE,OAAO,KAAK,CAAC;yBAChB;qBACJ;iBACJ;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gEAAiB,GAAjB;QACI,iBAAiB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,2DAAY,GAAZ;QACI,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,8DAAe,GAAf;QACI,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACX,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB;SACJ;IACL,CAAC;IAED,uEAAwB,GAAxB,UAAyB,QAAqB;QAC1C,OAAO,IAAI,CAAC,mCAAmC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC;IAED,8DAAe,GAAf,UAAgB,QAAqB;QACjC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrF,CAAC;IAGD,6DAAc,GAAd;QACI,IAAM,WAAW,GAAc,EAAE,CAAC;QAClC,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACX,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC1B;aACJ;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,uEAAwB,GAAxB,UAAyB,QAAqB;QAC1C,IAAM,eAAe,GAAG,IAAI,KAAK,EAAW,CAAC;QAC7C,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACX,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBACvB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B;SACJ;QAED,IAAI,eAAe,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YAClD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;SAC3B;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,gEAAiB,GAAjB,UAAkB,QAAqB;QACnC,IAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YAC1E,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,gEAAiB,GAAjB,UAAkB,KAAU;QACxB,KAAuB,UAAqB,EAArB,SAAI,CAAC,KAAK,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACf,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACxC;IACL,CAAC;IAED,6DAAc,GAAd,UAAe,QAAqB,EAAE,KAAU;QAC5C,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACX,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;aACvC;SACJ;IACL,CAAC;IAED,kEAAmB,GAAnB,UAAoB,YAAqB;QACrC,KAAmB,UAAqB,EAArB,SAAI,CAAC,cAAc,EAAE,EAArB,cAAqB,EAArB,IAAqB;YAAnC,IAAM,IAAI;YACX,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;SAC3C;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,kEAAmB,GAAnB;QACI,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,2DAAY,GAAZ;QACI,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,CAAC;IAlIM;QAAR,4DAAK,EAAE;kCAAQ,8EAAS;uEAAC;IASd;QAAT,6DAAM,EAAE;;6EAAkC;IAXlC,oCAAoC;QAJhD,gEAAS,CAAC;YACP,QAAQ,EAAE,gCAAgC;;SAE7C,CAAC;yCAO2D,0HAAmC;YAClE,4EAAY;OAP7B,oCAAoC,CAqIhD;IAAD,2CAAC;CAAA;AArIgD;;;;;;;;ACXjD,utBAAutB,mBAAmB,0EAA0E,sCAAsC,gBAAgB,yCAAyC,0RAA0R,oBAAoB,oTAAoT,iBAAiB,sEAAsE,oCAAoC,cAAc,yCAAyC,2hBAA2hB,2BAA2B,2GAA2G,8CAA8C,cAAc,yCAAyC,uVAAuV,gLAAgL,sKAAsK,yMAAyM,mIAAmI,6CAA6C,8DAA8D,uQAAuQ,oBAAoB,yEAAyE,4DAA4D,mIAAmI,wSAAwS,6JAA6J,8CAA8C,qDAAqD,iFAAiF,iBAAiB,0KAA0K,oBAAoB,iKAAiK,8CAA8C,oDAAoD,uNAAuN,oBAAoB,6NAA6N,oHAAoH,MAAM,0CAA0C,sEAAsE,kSAAkS,+CAA+C,iDAAiD,iFAAiF,iBAAiB,wSAAwS,kLAAkL,wNAAwN,gDAAgD,+DAA+D,wbAAwb,6CAA6C,kXAAkX,6CAA6C,6LAA6L,+CAA+C,mBAAmB,gDAAgD,2IAA2I,qUAAqU,iBAAiB,sDAAsD,kCAAkC,GAAG,iCAAiC,6cAA6c,iBAAiB,yUAAyU,oDAAoD,6BAA6B,iDAAiD,kF;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAjtT;AACyC;AAKS;AACyD;AACjE;AACoB;AAChC;AACY;AAEE;AAM1E;IAqBE,2CAAoB,iBAAoC,EAC9C,2BAAwD,EACxD,eAAmC,EACnC,WAAwB;QAHlC,iBAuCC;QAvCmB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAC9C,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,oBAAe,GAAf,eAAe,CAAoB;QACnC,gBAAW,GAAX,WAAW,CAAa;QAtBlC,eAAU,GAAG,CAAC,CAAC;QACf,0BAAqB,GAA2B,IAAI,KAAK,EAAwB,CAAC;QAClF,uBAAkB,GAAyB,IAAI,KAAK,EAAsB,CAAC;QAC3E,gBAAW,GAAiB,IAAI,KAAK,EAAc,CAAC;QACpD,UAAK,GAAW,IAAI,KAAK,EAAQ,CAAC;QAElC,mBAAc,GAA8B,EAAE,CAAC;QAOrC,gBAAW,GAAG,IAAI,2DAAY,EAAE,CAAC;QA+enC,cAAS,GAAG,EAAE,CAAE;QAretB,uBAAuB;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,IAAM,OAAO,GAAG,EAAE,CAAC;YAEnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,KAAK,EAAE,KAAK,EAAC,KAAK,EAAC,CAAC,CAAC;SACpD;QAGD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAC,CAAgB,CAAC,IAAI,GAAI,CAAgB,CAAC,IAAI,EAA/C,CAA+C,CAAC,CAAC,OAAO,EAAkB,EAAtH,CAAsH,CAAC,CAAC;QACtK,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAG,YAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAzB,CAAyB,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YAElC,KAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAe,CAAC;YACjC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAAC,CAAC;YAC1D,KAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,mBAAmB;YACnB,IAAM,UAAU,GAAG,IAAI,4CAAI,EAAY,CAAC;oCAE7B,IAAI;gBACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,EAAxB,CAAwB,CAAC,EAAE;oBAClD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC/B;gBAED,IAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,EAAxB,CAAwB,CAAC,CAAC;gBACvE,IAAI,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;oBACzC,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,EAAQ,CAAC;iBACnD;gBACD,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;YAVD,KAAmB,UAAU,EAAV,UAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU;gBAAxB,IAAM,IAAI;wBAAJ,IAAI;aAUd;YACD,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,WAAC,IAAI,QAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/D,CAAC;IA5CD,yDAAa,GAAb;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IA2CD,wEAA4B,GAA5B;QACE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAG,QAAC,CAAC,IAAI,IAAI,CAAC,EAAX,CAAW,CAAE,CAAC,CAAC,qCAAqC;IACvF,CAAC;IAED,6DAAiB,GAAjB;QACE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7F,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;YAC5F,KAAyB,UAAgB,EAAhB,SAAI,CAAC,WAAW,EAAhB,cAAgB,EAAhB,IAAgB;gBAApC,IAAM,UAAU;gBACnB,IAAI,UAAU,CAAC,EAAE,KAAK,YAAY,EAAE;oBAClC,OAAO,UAAU,CAAC;iBACnB;aACF;SACF;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,+DAAmB,GAAnB;QACE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAE,CAAC,CAAC;QAC3C,OAAO,WAAW,GAAE,KAAK,CAAC;IAC5B,CAAC;IACD,kEAAsB,GAAtB,UAAuB,QAAqB;QAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC3C,OAAO,YAAY,GAAG,KAAK,CAAC;IAE9B,CAAC;IAGD,uDAAW,GAAX,UAAY,eAA2B;QACrC,MAAM;QACN,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,EAAE;YAClC,KAAyB,UAAsB,EAAtB,SAAI,CAAC,KAAK,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;gBAA1C,IAAM,UAAU;gBACnB,IAAI,UAAU,CAAC,YAAY,KAAK,eAAe,CAAC,EAAE,EAAE;oBAClD,KAAK,EAAE,CAAC;iBACT;aACF;SACF;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE;YAChC,KAAuB,UAAoB,EAApB,SAAI,CAAC,KAAK,CAAC,SAAS,EAApB,cAAoB,EAApB,IAAoB;gBAAtC,IAAM,QAAQ;gBACjB,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE;oBAChC,KAAyB,UAAoB,EAApB,aAAQ,CAAC,WAAW,EAApB,cAAoB,EAApB,IAAoB;wBAAxC,IAAM,UAAU;wBACnB,IAAI,UAAU,CAAC,YAAY,IAAI,eAAe,CAAC,EAAE,EAAE;4BACjD,KAAK,EAAE,CAAC;yBACT;qBACF;iBACF;aACF;SACF;QACD,OAAO,eAAe,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED,6DAAiB,GAAjB;QAAA,iBAGC;QADC,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,YAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACvF,CAAC;IAED,4DAAgB,GAAhB,UAAiB,OAAO;QACtB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;YAEjC,IAAI,IAAI,CAAC,oBAAoB,YAAY,gFAAW,IAAI,IAAI,CAAC,oBAAoB,YAAY,0FAAqB,EAClH;gBACE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAxC,CAAwC,CAAC,CAAC,MAAM,GAAG,CAAC,EAA5F,CAA4F,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9I,OAAO,IAAI,CAAC;iBACb;aACF;iBACI;gBACL,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAzC,CAAyC,CAAC,CAAC,MAAM,GAAG,CAAC,EAA7F,CAA6F,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/I,OAAO,IAAI,CAAC;iBACb;aACF;SAIA;QACD,OAAO,KAAK,CAAC;IAEf,CAAC;IAED,wDAAY,GAAZ,UAAa,MAAM;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;YACjC,IAAI,IAAI,CAAC,oBAAoB,YAAY,gFAAW,IAAI,IAAI,CAAC,oBAAoB,YAAY,0FAAqB,EAClH;gBACA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,IAAK,CAAC,CAAC,QAAQ,EAA5D,CAA4D,CAAC,CAAC,MAAM,GAAG,CAAC,EAA5F,CAA4F,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9I,OAAO,IAAI,CAAC;iBACb;aACF;iBACI;gBACH,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,IAAK,CAAC,CAAC,CAAC,QAAQ,EAA7D,CAA6D,CAAC,CAAC,MAAM,GAAG,CAAC,EAA7F,CAA6F,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/I,OAAO,IAAI,CAAC;iBACb;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACb,CAAC;IACD,uDAAW,GAAX;QACE,2BAA2B;QAC3B,IAAM,4BAA4B,GAAG,IAAI,gFAAW,EAAE,CAAC;QACvD,qEAAqE;QACrE,yFAAyF;QACzF,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAG/D,4BAA4B,CAAC,UAAU,GAAG,IAAI,KAAK,EAAe,CAAC;QAGnE,KAAuB,UAAe,EAAf,SAAI,CAAC,UAAU,EAAf,cAAe,EAAf,IAAe;YAAjC,IAAM,QAAQ;YACjB,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;YAEvC,KAAmB,UAAgC,EAAhC,SAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAhC,cAAgC,EAAhC,IAAgC;gBAA9C,IAAM,IAAI;gBACb,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;YACD,4BAA4B,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACzD;QACD,4BAA4B,CAAC,QAAQ,GAAG,IAAI,sFAAkB,EAAE,CAAC;QACjE,4BAA4B,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC;QAC1D,IAAI,CAAC,oBAAoB,GAAG,4BAA4B,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGD,yDAAa,GAAb;QACE,IAAM,oBAAoB,GAAG,IAAI,kFAAa,EAAE,CAAC;QACjD,oBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3D,oBAAoB,CAAC,YAAY,GAAG,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC9E,oBAAoB,CAAC,UAAU,GAAG,IAAI,KAAK,EAAe,CAAC;QAE3D,KAAuB,UAAe,EAAf,SAAI,CAAC,UAAU,EAAf,cAAe,EAAf,IAAe;YAAjC,IAAM,QAAQ;YACjB,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;YAEvC,KAAmB,UAAgC,EAAhC,SAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAhC,cAAgC,EAAhC,IAAgC;gBAA9C,IAAM,IAAI;gBACb,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;YACD,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjD;QACD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,4DAAgB,GAAhB,UAAiB,UAAyB;QACxC,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC;QACvC,2BAA2B;QAC3B,mDAAmD;IACrD,CAAC;IAED,+DAAmB,GAAnB;QACE,KAAyB,UAAsB,EAAtB,SAAI,CAAC,KAAK,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;YAA1C,IAAM,UAAU;YACnB,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;aACzC;SACF;QAED,KAAuB,UAAoB,EAApB,SAAI,CAAC,KAAK,CAAC,SAAS,EAApB,cAAoB,EAApB,IAAoB;YAAtC,IAAM,QAAQ;YACjB,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACpB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAED,yDAAa,GAAb,UAAc,GAAG;QACf,OAAO,GAAG,YAAa,gFAAW,CAAE;IACtC,CAAC;IAED,2DAAe,GAAf,UAAgB,GAAG;QACjB,OAAO,CAAC,CAAC,GAAG,YAAY,gFAAW,CAAC,CAAC;IACvC,CAAC;IAED,mEAAuB,GAAvB,UAAwB,GAAG;QAEzB,mBAAmB;QAEnB,OAAO,GAAG,YAAY,0FAAqB,CAAC;IAC9C,CAAC;IAED,mEAAuB,GAAvB,UAAwB,QAAqB;QAC3C,IAAM,oBAAoB,GAAG,IAAI,0FAAqB,EAAE,CAAC;QAEzD,oBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACtE,oBAAoB,CAAC,YAAY,GAAG,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAClE,oBAAoB,CAAC,UAAU,GAAG,IAAI,KAAK,EAAe,CAAC;QAE3D,KAAuB,UAAe,EAAf,SAAI,CAAC,UAAU,EAAf,cAAe,EAAf,IAAe;YAAjC,IAAM,QAAQ;YACjB,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;YAEvC,KAAmB,UAAgC,EAAhC,SAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAhC,cAAgC,EAAhC,IAAgC;gBAA9C,IAAM,IAAI;gBACb,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;YACD,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjD;QACD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,QAAQ,CAAC,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,GAAC,CAAC,CAAC;QACpE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,EAAE,CAAC;IAEvB,CAAC;IAGD,4DAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,OAAO,EAAT,CAAS,CAAC,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,CAAC,OAAO,EAAV,CAAU,CAAC,CAAC;YACxE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAC,IAAG,QAAC,CAAC,OAAO,EAAT,CAAS,CAAC,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,WAAC,IAAG,QAAC,CAAC,CAAC,OAAO,EAAV,CAAU,CAAC,CAAC;YACnE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IAEH,CAAC;IAED,kEAAsB,GAAtB;QACE,OAAO,IAAI,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,2EAA+B,GAA/B,UAAgC,qBAA4C,EAAE,YAAyB;QACvG,IAAM,oBAAoB,GAAG,IAAI,0FAAqB,EAAE,CAAC;QACzD,oBAAoB,CAAC,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC;QACnE,oBAAoB,CAAC,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACxE,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACtE,oBAAoB,CAAC,UAAU,GAAG,IAAI,KAAK,EAAe,CAAC;QAC3D,oBAAoB,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC;gCAEhD,QAAQ;YACjB,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;oCAE5B,IAAI;gBACb,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAzB,CAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAhB,CAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7I,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YARD,KAAmB,UAAgC,EAAhC,YAAK,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAhC,cAAgC,EAAhC,IAAgC;gBAA9C,IAAM,IAAI;wBAAJ,IAAI;aAQd;YACD,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;;QAhBD,KAAuB,UAAe,EAAf,SAAI,CAAC,UAAU,EAAf,cAAe,EAAf,IAAe;YAAjC,IAAM,QAAQ;oBAAR,QAAQ;SAgBlB;QACD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGC,gEAAoB,GAApB,UAAqB,mBAAgC;QAArD,iBAqCC;QApCC,IAAM,kBAAkB,GAAG,IAAI,gFAAW,EAAE,CAAC;QAC7C,kBAAkB,CAAC,QAAQ,GAAG,IAAI,sFAAkB,EAAE,CAAC;QACvD,kBAAkB,CAAC,QAAQ,CAAC,aAAa,GAAG,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC;QACvF,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC/F,kBAAkB,CAAC,QAAQ,CAAC,IAAI,GAAE,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpE,kBAAkB,CAAC,QAAQ,CAAC,aAAa,GAAG,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC;QACvF,kBAAkB,CAAC,QAAQ,CAAC,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC;QACrF,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzE,kBAAkB,CAAC,QAAQ,CAAC,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC;QACrF,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAErD,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,WAAC,IAAG,YAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAA3D,CAA2D,CAAC,CAAC;QAErG,kBAAkB,CAAC,UAAU,GAAG,IAAI,KAAK,EAAe,CAAC;gCAE9C,QAAQ;YACjB,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;oCAE5B,IAAI;gBACb,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAzB,CAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAhB,CAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC3I,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YARD,KAAmB,UAAgC,EAAhC,YAAK,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAhC,cAAgC,EAAhC,IAAgC;gBAA9C,IAAM,IAAI;wBAAJ,IAAI;aAQd;YACD,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;;QAhBD,KAAuB,UAAe,EAAf,SAAI,CAAC,UAAU,EAAf,cAAe,EAAf,IAAe;YAAjC,IAAM,QAAQ;oBAAR,QAAQ;SAgBlB;QACD,IAAI,CAAC,oBAAoB,GAAG,kBAAkB,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;IAEvB,CAAC;IAGD,kEAAsB,GAAtB,UAAuB,qBAAoC;QACzD,IAAM,oBAAoB,GAAG,IAAI,kFAAa,EAAE,CAAC;QACjD,oBAAoB,CAAC,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC;QACnE,oBAAoB,CAAC,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACxE,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC/E,oBAAoB,CAAC,UAAU,GAAG,IAAI,KAAK,EAAe,CAAC;gCAEhD,QAAQ;YACjB,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;oCAE5B,IAAI;gBACb,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAzB,CAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAhB,CAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7I,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YARD,KAAmB,UAAgC,EAAhC,YAAK,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAhC,cAAgC,EAAhC,IAAgC;gBAA9C,IAAM,IAAI;wBAAJ,IAAI;aAQd;YACD,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;;QAhBD,KAAuB,UAAe,EAAf,SAAI,CAAC,UAAU,EAAf,cAAe,EAAf,IAAe;YAAjC,IAAM,QAAQ;oBAAR,QAAQ;SAgBlB;QACD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAElD,IAAI,CAAC,aAAa,EAAE,CAAC;IAEvB,CAAC;IAED,+DAAmB,GAAnB,UAAoB,UAAyB;QAC3C,IAAM,QAAQ,GAAG,IAAI,4CAAI,CAAgB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,oEAAwB,GAAxB,UAAyB,QAAqB;QAC7C,OAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAC,IAAG,QAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAzC,CAAyC,CAAC,CAAC;IAChF,CAAC;IAGC,yCAAyC;IACzC,2CAA2C;IAC7C,8DAAkB,GAAlB,UAAmB,QAAqB,EAAE,EAAE;QAC1C,wBAAwB;QACxB,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAC/C;YACE,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAC;gBAC1E,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;aACxC;SACF;aACI,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE;YACpD,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAC;gBAC1E,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC3B,QAAQ,CAAC,QAAQ,CAAC,aAAa,GAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,GAAC,CAAC,CAAC;aACtE;SACF;IAEH,CAAC;IACD,kEAAsB,GAAtB,UAAuB,UAAyB;QAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAuB,UAAqB,EAArB,eAAU,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACjB,KAAK,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAC,UAAU,CAAC,CAAC;SACzD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gEAAoB,GAApB,UAAqB,QAAqB,EAAC,UAAyB;QAClE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACb,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,EAAC,UAAU,CAAC,EAAE;gBACtD,IAAI,IAAI,CAAC,OAAO,EAAE;oBAChB,KAAK,EAAE,CAAC;iBACT;aACF;SACF;QACD,OAAO,KAAK,CAAC;IAEf,CAAC;IAKD,qEAAyB,GAAzB,UAA0B,MAAM,EAAE,UAAyB;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;YACjC,IAAI,UAAU,YAAY,gFAAW,IAAI,UAAU,YAAY,0FAAqB,EACpF;gBACA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,IAAK,CAAC,CAAC,QAAQ,EAA5D,CAA4D,CAAC,CAAC,MAAM,GAAG,CAAC,EAA5F,CAA4F,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9I,OAAO,IAAI,CAAC;iBACb;aACF;iBACI;gBACH,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,IAAK,CAAC,CAAC,CAAC,QAAQ,EAA7D,CAA6D,CAAC,CAAC,MAAM,GAAG,CAAC,EAA7F,CAA6F,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/I,OAAO,IAAI,CAAC;iBACb;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACb,CAAC;IAKD,+DAAmB,GAAnB,UAAoB,QAAqB;QAAzC,iBAOC;QANC,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;YAC1B,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,YAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAvB,CAAuB,CAAC,CAAC,MAAM,CAAC;YAClE,kCAAkC;SACnC;aAAM;YACL,OAAO,CAAC,CAAC;SACV;IACH,CAAC;IAED,8DAAkB,GAAlB,UAAmB,QAAqB;QACtC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACb,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,KAAK,EAAE,CAAC;aACT;SACF;QACD,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC;IAGD,0DAAc,GAAd,UAAe,QAAqB,EAAE,KAAU;QAC9C,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;SACrC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAKD,4DAAgB,GAAhB;QAAA,iBAoBC;QAnBC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EACzB;YACE,IAAK,IAAI,CAAC,oBAAoC,CAAC,QAAQ,IAAI,IAAI;gBAAE,OAAO;YACxE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAC,IAAE,QAAC,CAAC,IAAI,IAAI,cAAc,EAAxB,CAAwB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAE;YACpF,2BAA2B;YAC5B,yBAAyB;YACxB,IAAI,KAAK,GAAG,EAAE,CAAE;YAChB,IAAK,IAAI,CAAC,oBAAoC,CAAC,QAAQ,CAAC,iBAAiB,EAAE;gBACzE,KAAK,IAAI,GAAG,CAAC;aACd;iBACI;gBACH,KAAK,IAAI,GAAG,CAAC;aACd;YAED,IAAK,IAAI,CAAC,oBAAoC,CAAC,QAAQ,CAAC,YAAY,EAAE;gBACpE,KAAK,IAAG,GAAG,CAAC;aACb;YACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,CAAC,EAAE,GAAC,KAAI,CAAC,wBAAwB,CAAC,KAAI,CAAC,oBAAmC,CAAC,CAAC,KAAK,GAAC,GAAG,GAAC,KAAK,GAAC,GAAG,CAAC,EAA5G,CAA4G,CAAC;SACpJ;IACH,CAAC;IAED,wDAAY,GAAZ,UAAa,IAAI;QACd,IAAI,CAAC,oBAAoC,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACpE,CAAC;IAED,4DAAgB,GAAhB,UAAiB,UAAsB;QACrC,yCAAyC;QACzC,IAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,KAAK,UAAU,CAAC,EAAE,EAAE;YAC5D,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,oBAAoB,CAAC,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,oBAAoB,CAAC,UAAU,GAAG,UAAU,CAAC;QAElD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,iDAAK,GAAL,UAAM,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IA9hBQ;QAAR,4DAAK,EAAE;kCAAQ,8EAAS;oEAAC;IAKhB;QAAT,6DAAM,EAAE;;0EAAkC;IAfhC,iCAAiC;QAJ7C,gEAAS,CAAC;YACT,QAAQ,EAAE,4BAA4B;;SAEvC,CAAC;yCAsBuC,sFAAiB;YACjB,0GAA2B;YACvC,wFAAkB;YACtB,0EAAW;OAxBvB,iCAAiC,CA0iB7C;IAAD,wCAAC;CAAA;AA1iB6C;;;;;;;;ACnB9C,2pBAA2pB,KAAK,iCAAiC,yqCAAyqC,iDAAiD,6TAA6T,mBAAmB,q0BAAq0B,iDAAiD,4PAA4P,sDAAsD,qBAAqB,uBAAuB,mbAAmb,mCAAmC,yGAAyG,iCAAiC,8GAA8G,sCAAsC,+GAA+G,gCAAgC,2GAA2G,6CAA6C,8GAA8G,sCAAsC,2GAA2G,mCAAmC,mUAAmU,qDAAqD,ibAAib,mCAAmC,8GAA8G,qCAAqC,+GAA+G,uCAAuC,icAAic,wCAAwC,iOAAiO,qDAAqD,2aAA2a,+JAA+J,2CAA2C,yTAAyT,kKAAkK,2CAA2C,yUAAyU,4JAA4J,sDAAsD,qUAAqU,4JAA4J,oDAAoD,4cAA4c,2CAA2C,2ZAA2Z,6CAA6C,0lBAA0lB,4CAA4C,4RAA4R,2CAA2C,iFAAiF,kCAAkC,mOAAmO,wBAAwB,kOAAkO,2CAA2C,yBAAyB,yDAAyD,kbAAkb,2CAA2C,wCAAwC,iCAAiC,s5BAAs5B,mBAAmB,uCAAuC,2BAA2B,eAAe,mBAAmB,+TAA+T,mCAAmC,qEAAqE,+CAA+C,kpBAAkpB,+CAA+C,qNAAqN,0BAA0B,qCAAqC,kCAAkC,uCAAuC,0BAA0B,iNAAiN,iDAAiD,2XAA2X,6CAA6C,+XAA+X,6CAA6C,6KAA6K,wCAAwC,oaAAoa,2CAA2C,osDAAosD,wIAAwI,+BAA+B,yeAAye,+BAA+B,yeAAye,+BAA+B,yeAAye,+BAA+B,yeAAye,+BAA+B,yeAAye,+BAA+B,yeAAye,+BAA+B,yeAAye,+BAA+B,yeAAye,+BAA+B,2IAA2I,6TAA6T,wIAAwI,+BAA+B,yeAAye,+BAA+B,yeAAye,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2IAA2I,6TAA6T,wIAAwI,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2eAA2e,gCAAgC,2IAA2I,mlBAAmlB,wIAAwI,+BAA+B,8eAA8e,+BAA+B,8eAA8e,+BAA+B,8eAA8e,+BAA+B,8eAA8e,+BAA+B,8eAA8e,+BAA+B,8eAA8e,+BAA+B,8eAA8e,+BAA+B,8eAA8e,+BAA+B,2IAA2I,6TAA6T,wIAAwI,+BAA+B,8eAA8e,+BAA+B,8eAA8e,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,2IAA2I,6TAA6T,wIAAwI,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,gfAAgf,gCAAgC,2IAA2I,2xBAA2xB,yCAAyC,+GAA+G,uCAAuC,0JAA0J,oDAAoD,yGAAyG,+CAA+C,49BAA49B,oDAAoD,sEAAsE,6BAA6B,4BAA4B,kDAAkD,iGAAiG,kDAAkD,uiHAAuiH,oDAAoD,sEAAsE,6BAA6B,4BAA4B,kDAAkD,iGAAiG,kDAAkD,q6BAAq6B,6BAA6B,ufAAuf,6BAA6B,6bAA6b,6BAA6B,6bAA6b,6BAA6B,ubAAub,kCAAkC,iVAAiV,6BAA6B,qVAAqV,+BAA+B,yaAAya,gCAAgC,6HAA6H,mBAAmB,4NAA4N,+DAA+D,0RAA0R,iCAAiC,kR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA7xyD;AAEvB;AACgF;AACxE;AACmB;AACpB;AAEgB;AACkB;AAE3B;AAEzB;AACG;AACiC;AACV;AAGI;AAKa;AACD;AACgB;AAChB;AACA;AACZ;AACgD;AAChB;AACJ;AACJ;AAIgB;AAQpG;IAwHE,iCACU,SAAqB,EACrB,OAA0B,EAC1B,gBAAkC,EAClC,yBAAoD,EACpD,eAA0C,EAC1C,YAA0B,EAC1B,uBAAgD,EAChD,+BAAiE,EACjE,iBAAoC,EACpC,iBAAoC,EACpC,WAAwB,EACxB,mBAAsC,EACtC,mCAAwE,EACxE,2BAAwD,EACxD,KAAqB,EAC7B,OAAoB;QAhBtB,iBAgKC;QA/JS,cAAS,GAAT,SAAS,CAAY;QACrB,YAAO,GAAP,OAAO,CAAmB;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,8BAAyB,GAAzB,yBAAyB,CAA2B;QACpD,oBAAe,GAAf,eAAe,CAA2B;QAC1C,iBAAY,GAAZ,YAAY,CAAc;QAC1B,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,oCAA+B,GAA/B,+BAA+B,CAAkC;QACjE,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,gBAAW,GAAX,WAAW,CAAa;QACxB,wBAAmB,GAAnB,mBAAmB,CAAmB;QACtC,wCAAmC,GAAnC,mCAAmC,CAAqC;QACxE,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,UAAK,GAAL,KAAK,CAAgB;QAtIxB,aAAQ,GAAG,IAAI,iFAAe,EAAiB,CAAC;QAChD,mBAAc,GAAG,IAAI,iFAAe,EAAiB,CAAC;QACtD,YAAO,GAAG,IAAI,iFAAe,EAAiB,CAAC;QAE5C,aAAQ,GAAG,IAAI,2DAAY,EAAc,CAAC;QAE7C,0BAAqB,GAAG,IAAI,iFAAe,EAAiB,CAAC;QAG7D,2BAAsB,GAAG,IAAI,iFAAe,EAAiB,CAAC;QAMrE,oBAAe,GAAG,CAAC,CAAC;QAEpB,YAAO,GAAG,IAAI,CAAC;QACf,sBAAiB,GAAG,IAAI,CAAC;QAezB,oBAAe,GAAQ,EAAE,CAAC;QAE1B,uBAAkB,GAAG;YACnB,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK;aACf;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,KAAK;aACf;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,QAAQ;aACnB;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,CAAC;wBACJ,OAAO,EAAE,KAAK;qBACjB,CAAC;gBACF,KAAK,EAAE;oBACL;wBACA,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,MAAM;wBAChB,EAAE,EAAE,UAAU;wBACd,SAAS,EAAE;4BACT,OAAO,EAAE,KAAK;yBACf,EAAE,KAAK,EAAE;4BACR,WAAW,EAAE,IAAI,CAAG,2BAA2B;yBAChD;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,IAAI;yBAEX;qBACF,EAAE;wBACD,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,OAAO;wBACjB,EAAE,EAAE,UAAU;wBACd,SAAS,EAAE;4BACT,OAAO,EAAE,KAAK;yBACf;wBAED,KAAK,EAAE;4BACL,WAAW,EAAE,IAAI;4BACjB,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,GAAG;4BACR,QAAQ,EAAE,EAAE;yBACb;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,IAAI;yBAEX;qBACF;iBAAC;aACH;SAEF,CAAC;QAEF,gBAAW,GAA4C,EAAE,CAAC;QAE1D,wBAAmB,GAA4C,EAAE,CAAC;QAClE,2BAAsB,GAAG,IAAI,CAAC;QAE9B,UAAK,GAAW,IAAI,KAAK,EAAQ,CAAC;QAElC,mBAAc,GAA6B,EAAE,CAAC;QAC9C,cAAS,GAAc,IAAI,+EAAS,EAAE,CAAC;QACvC,oBAAe,GAAY,IAAI,6EAAO,EAAE,CAAC;QAWzC,aAAQ,GAA0B,EAAE,CAAC;QACrC,eAAU,GAA0B,EAAE,CAAC;QAIvC,eAAU,GAAG,IAAI,CAAC;QAqKX,YAAO,GAAG,IAAI,CAAC;QAwnBtB,eAAU,GAAG,KAAK,CAAC;QAxwBrB,4CAA4C;QAC1C,oCAAoC;QAClC,IAAM,OAAO,GAAG,qCAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAEnC,IAAM,QAAQ,GAAW,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAExE,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CACjC,EAAE,EACF,CAAC,kEAAU,CAAC,QAAQ,CAAC,EACrB,IAAI,EACJ,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EACxC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAC/C,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3H,IAAI,CAAC,iBAAiB,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpI,IAAM,SAAS,GAAG,CAAC,kEAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,8FAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,8FAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAGlD;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAEnG,KAAuB,UAAyB,EAAzB,SAAI,CAAC,cAAc,CAAC,KAAK,EAAzB,cAAyB,EAAzB,IAAyB;YAA3C,IAAM,QAAQ;YACjB,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACzC,MAAM;aACP;SACF;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,qBAAqB,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QAC9D,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,8BAA8B,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACrI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;QAE7H,KAAuB,UAAgC,EAAhC,SAAI,CAAC,qBAAqB,CAAC,KAAK,EAAhC,cAAgC,EAAhC,IAAgC;YAAlD,IAAM,QAAQ;YACjB,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvD,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACtD,MAAM;aACP;SACF;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QAC/D,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9H,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;QAExH,KAAuB,UAAiC,EAAjC,SAAI,CAAC,sBAAsB,CAAC,KAAK,EAAjC,cAAiC,EAAjC,IAAiC;YAAnD,IAAM,QAAQ;YACjB,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACvD,MAAM;aACP;SACF;QAED,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnC,IAAI,CAAC,aAAa,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,CAAC,kEAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3H,IAAI,CAAC,cAAc,GAAG,IAAI,8FAAmB,CAC3C,EAAE,EACF,CAAC,kEAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAClC,IAAI,EACJ,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EACxC,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YAClC,KAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAe,CAAC;YACjC,mBAAmB;YACnB,IAAM,UAAU,GAAG,IAAI,4CAAI,EAAY,CAAC;YACxC,KAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oCACd,IAAI;gBACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,EAAxB,CAAwB,CAAC,EAAE;oBAClD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC/B;gBAED,IAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,EAAxB,CAAwB,CAAC,CAAC;gBACvE,IAAI,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;oBACzC,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,EAAQ,CAAC;iBACnD;gBACD,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;YAVD,KAAmB,UAAU,EAAV,UAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU;gBAAxB,IAAM,IAAI;wBAAJ,IAAI;aAUd;YACD,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,QAAC,KAAI,CAAC,cAAc,GAAG,GAAG,CAAC,KAAqB,CAAC,EAAjD,CAAiD,CAAC,CAAC;QAEjG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEb,IAAI,CAAC,KAAK,CAAC,EAAE;gBACX,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;aAC/E;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;aAChF;SACF;QAED,KAAuB,UAAmB,EAAnB,SAAI,CAAC,QAAQ,CAAC,KAAK,EAAnB,cAAmB,EAAnB,IAAmB;YAArC,IAAM,QAAQ;YACjB,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACnD,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAClD,MAAM;aACP;SACF;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAChH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAEjH,KAAuB,UAAkB,EAAlB,SAAI,CAAC,OAAO,CAAC,KAAK,EAAlB,cAAkB,EAAlB,IAAkB;YAApC,IAAM,QAAQ;YACjB,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvD,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACtD,MAAM;aACP;SACF;IACH,CAAC;IAGD,+CAAa,GAAb,UAAc,OAAc;QAAd,wCAAc;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,kDAAgB,GAAhB;QACE,IAAI,CAAC,wBAAwB,CAAC,aAAa,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,gDAAc,GAAd;QACE,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,uDAAqB,GAArB;QACE,IAAI,IAAI,CAAC,4BAA4B,KAAK,SAAS,EAAE;YAEnD,OAAO,IAAI,CAAC,4BAA4B,CAAC,qBAAqB,EAAE,CAAE;SACnE;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qDAAmB,GAAnB;QAEE,IAAI,IAAI,CAAC,4BAA4B,KAAK,SAAS,EAAE;YAClD,OAAO,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,EAAE,CAAC;SACjE;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qDAAmB,GAAnB;QACE,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACD,wDAAsB,GAAtB;QACE,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,kDAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,4BAA4B,KAAK,SAAS,EAAE;YACnD,OAAO,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAE,CAAC;SACzD;IACH,CAAC;IAED,+CAAa,GAAb,UAAc,UAAmB;QAC/B,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,IAAI,SAAS,EAAE;YACrD,OAAO,GAAG,CAAC;SACZ;QAED,gCAAgC;QAEhC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mCAAmC,CAAC,0BAA0B,CACxF,IAAI,CAAC,SAAS,EACd,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EACzB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,UAAU,CACjD,CAAC;SACH;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,yDAAuB,GAAvB,UAAwB,UAAoB;QAC1C,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,IAAM,WAAW,GAAG,UAAU,CAAC,CAAC,KAAI,CAAC,mBAAmB,CAAC,CAAC,CAAE,IAAI,CAAC,WAAW,CAAE;QAC9E,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;YAC9B,IAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YACpC,IAAI,+DAAiB,CAAC,KAAK,CAAC,EAAE;gBAC5B,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;aACvC;iBAAM;gBACL,eAAe,GAAG,eAAe,GAAG,CAAC,KAAK,CAAC;aAC5C;SACF;QACD,OAAO,eAAe,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,yDAAuB,GAAvB;QACE,OAAO,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,EAAE,CAAC;IACjE,CAAC;IAED,yDAAuB,GAAvB,UAAwB,eAAuB;QAC7C,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACzE,CAAC;IAED,qCAAG,GAAH,UAAI,UAAU;QACZ,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,KAAK,MAAM,CAAC;IACxI,CAAC;IAED,qDAAmB,GAAnB;QACE,IAAI,IAAI,CAAC,4BAA4B,KAAK,SAAS,EAAE;YACnD,OAAO,IAAI,CAAC,4BAA4B,CAAC,eAAe,EAAE,CAAC;SAC5D;IACH,CAAC;IAED,kDAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,2BAA2B,KAAK,SAAS,EAAE;YAClD,OAAO,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE,CAAC;SACxD;IACH,CAAC;IAED,yDAAuB,GAAvB;QACE,OAAO,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,CAAC;IAChE,CAAC;IAED,yDAAuB,GAAvB,UAAwB,eAAuB;QAC7C,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACxE,CAAC;IAED,qDAAmB,GAAnB;QACE,IAAI,IAAI,CAAC,2BAA2B,KAAK,SAAS,EAAE;YAClD,OAAO,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,CAAC;SAC3D;IACH,CAAC;IAED,0CAAQ,GAAR;QACE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAC9C,CAAC;IAED,uCAAK,GAAL;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAEvB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,sCAAI,GAAJ;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,mDAAiB,GAAjB;QACE,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;IAC9C,CAAC;IAED,+CAAa,GAAb;QACE,OAAO,IAAI,CAAC,mCAAmC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;IACD,qDAAmB,GAAnB;QACE,OAAO,IAAI,CAAC,mCAAmC,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtF,CAAC;IACD,oDAAkB,GAAlB;QACE,OAAO,IAAI,CAAC,mCAAmC,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrF,CAAC;IAED,8CAAY,GAAZ;QACE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,sCAAI,GAAJ;QAAA,iBAyBC;QAxBC,qBAAqB;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,8DAA8D;QAC9D,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;YAC5B,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;gBACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;aACjD;iBAAO,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;gBAClG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAE,CAAC,CAAE;aACjD;iBAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;gBACtE,sBAAsB;gBACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAE,CAAC,CAAE;aACjD;iBAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;gBACpE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAE,CAAC,CAAE;aACjD;iBACI;gBACH,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;SACF;QACD,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE;YAC9B,UAAU,CAAC;gBACT,KAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACtC,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;QACD,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAED,sCAAI,GAAJ;QACE,qBAAqB;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QAGpB,8DAA8D;QAC9D,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;YAC5B,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;gBACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;aACjD;iBACI,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAG;gBAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAE,CAAC,CAAE;aACjD;iBACI;gBACH,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;SAEF;QAED,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAED,kDAAgB,GAAhB;QACE,IAAM,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAC/F,IAAI,kBAAkB,EAAE;YACtB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,uEAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,uDAAqB,GAArB;QACE,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,iFAAe,EAAwB,CAAC;SAChE;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE;YAClC,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,KAAK,EAAwB,CAAC;SAC5D;IACH,CAAC;IAED,sDAAoB,GAApB;QACE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,iFAAe,EAAsB,CAAC;SAC7D;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,KAAK,EAAsB,CAAC;SACzD;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,mCAAmC,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClI,CAAC;IAED,gEAA8B,GAA9B,UAA+B,UAAsB;QACnD,IAAI,CAAC,KAAK,GAAG,IAAI,uEAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,+EAAS,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,gDAAc,GAAd,UAAe,KAAiB;QAAhC,iBA8DC;QA7DC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,kCAAkC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,iFAAe,EAAgB,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC;QAE/C,IAAI,CAAC,oBAAoB,GAAG,IAAI,iFAAe,EAAgB,CAAC;QAChE,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,KAAK,CAAC,sBAAsB,CAAC;QAE/D,IAAI,CAAC,WAAW,GAAG,IAAI,iFAAe,EAAwB,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;QAE3C,IAAI,CAAC,mBAAmB,GAAG,IAAI,iFAAe,EAAsB,CAAC;QACrE,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC;QAE3D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,+BAA+B,CAC/E,KAAK,CAAC,WAAW,EACjB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,EACnB,KAAK,CAAC,mBAAmB,CAC1B,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,iFAAe,EAAsB,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;QAEzC,IAAI,CAAC,mCAAmC,CAAC,uBAAuB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,4EAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,aAAG,IAAI,QAAC,KAAI,CAAC,iBAAiB,GAAG,GAAiB,CAAC,EAA5C,CAA4C,CAAC,CAAC;QAE/G,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAEzC,KAAuB,UAAmB,EAAnB,SAAI,CAAC,QAAQ,CAAC,KAAK,EAAnB,cAAmB,EAAnB,IAAmB;YAArC,IAAM,QAAQ;YACjB,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE;gBACrD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACnD,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAClD,MAAM;aACP;SACF;QAED,IAAI,KAAK,CAAC,iBAAiB,KAAK,IAAI,EAAE;YACpC,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC;SAClC;QAED,KAAuB,UAAkB,EAAlB,SAAI,CAAC,OAAO,CAAC,KAAK,EAAlB,cAAkB,EAAlB,IAAkB;YAApC,IAAM,QAAQ;YACjB,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE;gBACzD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACvD,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACtD,MAAM;aACP;SACF;QAED,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QAEnB,iCAAiC;QACjC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAE3B,CAAC;IAED,gDAAc,GAAd;QACE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC3B,aAAa;gBACb,IAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACxC,WAAW;gBACX,IAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvJ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;aAE7C;YAEH,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,mCAAmC,CAAC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7I,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YACnE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YAE3E,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACxE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;YAC1E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,wDAAsB,GAAtB;QAAA,iBAEC;QADC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,QAAC,KAAI,CAAC,YAAY,GAAG,GAAkC,CAAC,EAAxD,CAAwD,CAAC,CAAC;IAC1G,CAAC;IACD,oDAAkB,GAAlB,UAAmB,KAAiB;QAClC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,yBAAyB;QACzB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,0CAAQ,GAAR,UAAS,YAAoB;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,iFAAe,EAAgB,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,KAAK,EAAgB,CAAC;QAEpD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;YAC9B,IAAM,mBAAmB,GAAG,IAAI,2EAAY,EAAE,CAAC;YAC/C,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC;YAC9B,mBAAmB,CAAC,IAAI,GAAG,UAAU,CAAC;YACtC,mBAAmB,CAAC,YAAY,GAAG,YAAY,CAAC;YAChD,mBAAmB,CAAC,QAAQ,GAAG,KAAK,CAAC;YAErC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAClC;YAED,QAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC/B,KAAK,MAAM;oBACT,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;oBACxD,MAAM;gBACR,KAAK,MAAM;oBACT,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;oBACxD,MAAM;gBACR,KAAK,MAAM;oBACT,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;oBACxD,MAAM;gBACR,KAAK,MAAM;oBACT,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;oBACxD,MAAM;gBACR;oBACE,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;oBACxD,MAAM;aACT;YACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACnD;IACH,CAAC;IAGD,kDAAgB,GAAhB,UAAiB,YAAoB;QACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,IAAI,iFAAe,EAAgB,CAAC;QAChE,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,KAAK,EAAgB,CAAC;QAE5D,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;YAC9B,IAAM,mBAAmB,GAAG,IAAI,2EAAY,EAAE,CAAC;YAC/C,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC;YAC9B,mBAAmB,CAAC,IAAI,GAAG,UAAU,CAAC;YACtC,mBAAmB,CAAC,YAAY,GAAG,YAAY,CAAC;YAChD,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,IAAI,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC9C,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC1C;YAED,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YAChE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC3D;IACH,CAAC;IAGD,0CAAQ,GAAR;QACE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC7B,KAA2B,UAAuB,EAAvB,SAAI,CAAC,YAAY,CAAC,KAAK,EAAvB,cAAuB,EAAvB,IAAuB;gBAA7C,IAAM,YAAY;gBACrB,IAAI,MAAM,SAAQ,CAAC;gBACnB,QAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;oBAC/B,KAAK,MAAM;wBACT,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;wBAC7B,MAAM;oBACR,KAAK,MAAM;wBACT,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;wBAC7B,MAAM;oBACR,KAAK,MAAM;wBACT,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;wBAC7B,MAAM;oBACR,KAAK,MAAM;wBACT,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;wBAC7B,MAAM;oBACR;wBACE,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;wBAC7B,MAAM;iBACT;gBACD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACtD;SACF;IACH,CAAC;IAGD,kDAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE;YACrC,KAA2B,UAA+B,EAA/B,SAAI,CAAC,oBAAoB,CAAC,KAAK,EAA/B,cAA+B,EAA/B,IAA+B;gBAArD,IAAM,YAAY;gBACrB,IAAI,MAAM,SAAQ,CAAC;gBACf,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;gBACjC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAC9D;SACF;IACH,CAAC;IAED,wCAAM,GAAN;QACE,sBAAsB;IACxB,CAAC;IAED,2CAAS,GAAT;QACE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,sDAAoB,GAApB;QACE,OAAO,qBAAqB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACxD,CAAC;IAED,iDAAe,GAAf;QACE,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,KAAK,UAAU,EAAE;YACvD,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,KAAK,MAAM,EAAE;gBACpD,OAAO,MAAM,CAAC;aACf;iBAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,KAAK,MAAM,EAAE;gBAC3D,OAAO,MAAM,CAAC;aACf;SACF;aAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,KAAK,SAAS,EAAE;YAC7D,0DAA0D;YAC1D,OAAO,MAAM,CAAC;YACd,iEAAiE;YACjE,oBAAoB;YACpB,IAAI;SACL;IACH,CAAC;IAED,iDAAe,GAAf,UAAgB,YAAoB;QAClC,QAAQ,YAAY,EAAE;YACpB,KAAK,MAAM;gBACT,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,UAAU,CAAC;gBAClD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC5C,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC/C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,UAAU,CAAC;gBAClD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC5C,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC/C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,SAAS,CAAC;gBACjD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC/C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,SAAS,CAAC;gBACjD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC/C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM;SACT;IACH,CAAC;IAED,yCAAO,GAAP;QACE,4EAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEjD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAEpE,IAAI,CAAC,WAAW,GAAG,IAAI,iFAAe,EAAwB,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1H,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAEhD,IAAI,CAAC,mBAAmB,GAAG,IAAI,iFAAe,EAAsB,CAAC;QACrE,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAAC,uCAAuC,CAAC,IAAI,CAAC,SAAS,EAAC,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxI,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAEhE,IAAI,CAAC,UAAU,GAAG,IAAI,iFAAe,EAAsB,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,mCAAmC,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACrH,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAChD,iDAAiD;IACjD,CAAC;IAED,sCAAI,GAAJ;QACE,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,iEAA+B,GAA/B,UAAgC,UAAsB;QACpD,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,WAAW,CAAC,SAAS,CAAC,aAAG,IAAI,QAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAA3B,CAA2B,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kDAAgB,GAAhB;QACE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,gBAAgB,GAAG,IAAI,4CAAI,EAAgB,CAAC;YAChD,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,YAAY,EAAd,CAAc,CAAC,CAAC,CAAC;YAE9D,IAAM,wBAAwB,GAAG,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzF,gBAAgB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YACrD,yCAAyC;YAEzC,iCAAiC;YAChC,wMAAwM;YACxM,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAG,IAAI,CAAE,CAAC;YAE9G,IAAI,CAAC,eAAe,GAAG;gBACrB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;oBACpF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;gBAChF,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBACzD,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,UAAU;wBACnB,IAAI,EAAE,SAAS,CAAC,eAAe;wBAC/B,WAAW,EACX,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,SAAS;qBAE5B,EAAE;wBACD,IAAI,EAAE,SAAS,CAAC,SAAS;wBACzB,OAAO,EAAE,UAAU;wBACnB,eAAe,EAAE;4BACf,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC1B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;yBAC7B;qBACF;iBACF;aACF,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAExB;QAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE5B,CAAC;IAED,oDAAkB,GAAlB;QAEE,IAAI,KAAK,GAAG,CAAC,CAAE;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW;YAC5B,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,WAAC,IAAG,QAAC,CAAC,OAAO,EAAT,CAAS,CAAC,CAAC,MAAM,CAAC;QAClE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS;YAC1B,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,OAAO,EAAT,CAAS,CAAC,CAAC,MAAM,CAAC;QAClE,OAAO,KAAK,CAAC;IAEf,CAAC;IAGD,4CAAU,GAAV,UAAW,QAAQ,EAAE,KAAa;QAChC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,KAAK;YACR,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,6CAAW,GAAX,UAAY,QAAQ,EAAE,KAAc;QAElC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1B,IAAI,KAAK;YACP,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC;IACnC,CAAC;IA34BS;QAAT,6DAAM,EAAE;;6DAA2C;IAe3C;QAAR,4DAAK,EAAE;kCAAQ,uEAAU;0DAAC;IAUY;QAAtC,gEAAS,CAAC,0BAA0B,CAAC;;6EAA+B;IAC1B;QAA1C,gEAAS,CAAC,8BAA8B,CAAC;;iFAAmC;IACnC;QAAzC,gEAAS,CAAC,6BAA6B,CAAC;;gFAAkC;IAhChE,uBAAuB;QAJnC,gEAAS,CAAC;YACT,QAAQ,EAAE,iBAAiB;;SAE5B,CAAC;yCA0HqB,yDAAU;YACZ,uFAAiB;YACR,6EAAgB;YACP,uGAAyB;YACnC,uGAAyB;YAC5B,4EAAY;YACD,mGAAuB;YACd,mHAA+B;YAC9C,uFAAiB;YACjB,uFAAiB;YACvB,2EAAW;YACH,gEAAiB;YACD,2HAAmC;YAC3C,2GAA2B;YACjD,uEAAc;YACpB,mEAAW;OAxIX,uBAAuB,CAm5BnC;IAAD,8BAAC;CAAA;AAn5BmC;;;;;;;;AC7CpC,miBAAmiB,mCAAmC,sIAAsI,wCAAwC,4aAA4a,yCAAyC,ibAAib,wCAAwC,0bAA0b,iDAAiD,idAAid,wCAAwC,mI;;;;;;;;;;;;;;;;;;;;;;;ACA1jF;AAC9C;AAC0B;AAGgB;AAMxE;IAWE,mCAAoB,SAAqB,EAAU,iBAAoC;QAAnE,cAAS,GAAT,SAAS,CAAY;QAAU,sBAAiB,GAAjB,iBAAiB,CAAmB;QALvF,YAAO,GAAG,IAAI,CAAC;IAK2E,CAAC;IAJ3F,mDAAe,GAAf;QACE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;IAID,yCAAK,GAAL;QACE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,wCAAI,GAAJ;QACE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,gDAAY,GAAZ;QACE,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,+CAAW,GAAX;QACE,IAAI,mBAAmB,GAAG,IAAI,4CAAI,EAAgB,CAAC;QACnD,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpD,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,EAAC,CAAC,IAAK,QAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,EAAjD,CAAiD,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5J,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,wDAAoB,GAApB;QAEE,IAAI,mBAAmB,GAAG,IAAI,4CAAI,EAAwB,CAAC;QAC3D,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,EAAC,CAAC,IAAK,QAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,EAAjD,CAAiD,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpK,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,+CAAW,GAAX;QACE,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAhDQ;QAAR,4DAAK,EAAE;kCAAoB,sEAAU;iEAAC;IAC9B;QAAR,4DAAK,EAAE;;+DAAiC;IAChC;QAAR,4DAAK,EAAE;;uEAAiD;IAH9C,yBAAyB;QAJrC,gEAAS,CAAC;YACT,QAAQ,EAAE,mBAAmB;;SAE9B,CAAC;yCAY+B,yDAAU,EAA6B,sFAAiB;OAX5E,yBAAyB,CAkDrC;IAAD,gCAAC;CAAA;AAlDqC;;;;;;;;ACXtC,miBAAmiB,mCAAmC,uO;;;;;;;;;;;;;;;;;;;;ACClf;AACvC;AAC2B;AAMxE;IASI,mCACY,SAAqB,EACrB,iBAAoC;QAFhD,iBAMC;QALW,cAAS,GAAT,SAAS,CAAY;QACrB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAVtC,aAAQ,GAAG,IAAI,2DAAY,EAAsB,CAAC;QAG5D,YAAO,GAAG,IAAI,CAAC;QAQX,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAG;YAC3C,OAAO,KAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;IAVD,mDAAe,GAAf;QACI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrE,CAAC;IAUD,mDAAe,GAAf,UAAgB,UAA8B;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,yCAAK,GAAL;QACI,aAAa;QAEb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,wCAAI,GAAJ;QACI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IA/BS;QAAT,6DAAM,EAAE;;+DAAmD;IADnD,yBAAyB;QAJrC,gEAAS,CAAC;YACP,QAAQ,EAAE,mBAAmB;;SAEhC,CAAC;yCAWyB,yDAAU;YACF,sFAAiB;OAXvC,yBAAyB,CAkCrC;IAAD,gCAAC;CAAA;AAlCqC;;;;;;;;ACTtC,4FAA4F,yCAAyC,0CAA0C,gCAAgC,4IAA4I,oBAAoB,iDAAiD,0BAA0B,qBAAqB,iCAAiC,uLAAuL,sCAAsC,0LAA0L,kBAAkB,0MAA0M,kBAAkB,yNAAyN,kBAAkB,uVAAuV,eAAe,+FAA+F,wBAAwB,sKAAsK,mCAAmC,sIAAsI,sCAAsC,qBAAqB,qBAAqB,kDAAkD,sCAAsC,qBAAqB,oBAAoB,mGAAmG,4CAA4C,qBAAqB,mBAAmB,iD;;;;;;;;;;;;;;;;;;;;;;;ACAn+E;AACnB;AAC0B;AAGgB;AAMtE;IAoBE,gDACW,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;QAnBrC,mBAAc,GAAW,IAAI,CAAC;QAC9B,mBAAc,GAAW,IAAI,CAAC;IAoB9B,CAAC;IAKD,8DAAa,GAAb;QACI,QAAQ,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACpC,KAAK,KAAK;gBACR,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YACvC,KAAK,MAAM;gBACT,OAAO,EAAE,CAAC;YACZ,KAAK,OAAO;gBACV,OAAO,EAAE,CAAC;SACb;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAIL,8DAAa,GAAb,UAAc,IAAU;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE;YAErB,IAAI,QAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE;oBACjB,OAAO,CAAC,CAAC,CAAC;iBACX;gBACD,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE;oBACjB,OAAO,CAAC,CAAC;iBACZ;gBACD,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC,OAAO,CAAC,WAAC;gBACR,IAAI,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,YAAE,IAAI,SAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAjB,CAAiB,CAAC,KAAK,KAAK,EAAE;oBACrE,QAAM,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,GAAG,QAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;SAC1D;aACI;YAGH,IAAI,QAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE;oBACjB,OAAO,CAAC,CAAC,CAAC;iBACX;gBACD,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE;oBACjB,OAAO,CAAC,CAAC;iBACZ;gBACD,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC,OAAO,CAAC,WAAC;gBACR,IAAI,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,YAAE,IAAI,SAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAjB,CAAiB,CAAC,KAAK,KAAK,EAAE;oBACrE,QAAM,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,GAAG,QAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;SAC1D;IACD,CAAC;IAEP,8DAAa,GAAb,UAAc,IAAY;QACxB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACxC,oDAAoD;YACpD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,WAAC;gBACpC,IAAI,CAAC,CAAC,UAAU;oBAAE,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI;gBACnD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC,MAAM,CAAC;SACX;IACH,CAAC;IAED,kEAAiB,GAAjB;QAEE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC7B,IAAI,gBAAgB,GAAG,IAAI,4CAAI,CAAe,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrE,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC;SACrF;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAE7B,CAAC;IACD,iEAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC7B,IAAI,gBAAgB,GAAG,IAAI,4CAAI,CAAe,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,IAAI,EAAd,CAAc,CAAC,CAAC,KAAK,EAAE,CAAC;SAC3E;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAGD,8DAAa,GAAb;QAAA,iBAUC;QATC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACvC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAI,CAAC,cAAc,EAApD,CAAoD,CAAE,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;gBACxG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;oBACpB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;iBACpC;qBAAM;oBACL,OAAO,CAAC,CAAC;iBACV;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAtHC;QADC,4DAAK,EAAE;;oFAC0B;IAGlC;QADC,4DAAK,EAAE;;kFACiB;IAIzB;QADC,4DAAK,EAAE;kCACA,sEAAU;yEAAC;IAInB;QADC,4DAAK,EAAE;;qFACkB;IAlBf,sCAAsC;QAJpD,gEAAS,CAAC;YACP,QAAQ,EAAE,kCAAkC;;SAE7C,CAAC;yCAsBoB,sFAAiB;OArB1B,sCAAsC,CAgIlD;IAAD,6CAAC;CAAA;AAhIkD;;;;;;;;ACXrD,8GAA8G,6BAA6B,iHAAiH,cAAc,msBAAmsB,mCAAmC,2XAA2X,iCAAiC,0UAA0U,mCAAmC,qWAAqW,0BAA0B,2NAA2N,yBAAyB,yCAAyC,iCAAiC,2CAA2C,yBAAyB,8tFAA8tF,mCAAmC,sHAAsH,8BAA8B,sHAAsH,mCAAmC,sHAAsH,qCAAqC,sHAAsH,mCAAmC,iVAAiV,SAAS,sqEAAsqE,qCAAqC,oUAAoU,gBAAgB,+MAA+M,gBAAgB,qNAAqN,gBAAgB,0cAA0c,kCAAkC,sFAAsF,oBAAoB,0HAA0H,oBAAoB,0WAA0W,oCAAoC,oEAAoE,0BAA0B,wGAAwG,0BAA0B,0WAA0W,oCAAoC,oEAAoE,0BAA0B,wGAAwG,0BAA0B,0WAA0W,oCAAoC,oEAAoE,0BAA0B,wGAAwG,0BAA0B,0WAA0W,mCAAmC,oEAAoE,qBAAqB,wGAAwG,qBAAqB,4YAA4Y,iBAAiB,0PAA0P,oeAAoe,qhBAAqhB,gyBAAgyB,SAAS,04DAA04D,qCAAqC,iQAAiQ,gBAAgB,yLAAyL,gBAAgB,gaAAga,kCAAkC,oEAAoE,eAAe,0WAA0W,oCAAoC,oEAAoE,qBAAqB,0WAA0W,oCAAoC,oEAAoE,qBAAqB,0WAA0W,oCAAoC,oEAAoE,qBAAqB,0WAA0W,mCAAmC,oEAAoE,gBAAgB,kVAAkV,ojBAAojB,k2BAAk2B,oxBAAoxB,SAAS,y6DAAy6D,qCAAqC,wRAAwR,gBAAgB,8MAA8M,gBAAgB,uQAAuQ,0tBAA0tB,SAAS,u1CAAu1C,0BAA0B,yNAAyN,4BAA4B,0XAA0X,qCAAqC,6RAA6R,gBAAgB,mPAAmP,sbAAsb,0xBAA0xB,mCAAmC,uIAAuI,4CAA4C,+yBAA+yB,mCAAmC,6CAA6C,+BAA+B,+CAA+C,iBAAiB,2HAA2H,kFAAkF,cAAc,kKAAkK,sBAAsB,qaAAqa,wCAAwC,2HAA2H,8BAA8B,2HAA2H,oCAAoC,2HAA2H,YAAY,82CAA82C,oCAAoC,6CAA6C,uCAAuC,+CAA+C,iBAAiB,gIAAgI,kFAAkF,cAAc,kKAAkK,sBAAsB,kNAAkN,0CAA0C,2HAA2H,0CAA0C,2HAA2H,kBAAkB,2HAA2H,sBAAsB,2HAA2H,gBAAgB,2HAA2H,mBAAmB,2HAA2H,uCAAuC,2HAA2H,6CAA6C,2HAA2H,mBAAmB,2HAA2H,YAAY,kMAAkM,sBAAsB,qzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA/ymC;AAC2B;AAClC;AACwB;AACjC;AACO;AACzB;AAMoC;AACM;AACY;AACZ;AACA;AAI4B;AACpG,4DAA4D;AACrB;AACvC,6BAA6B;AAC7B,qCAAqC;AAGrC,IAAM,QAAQ,GAAG,GAAG,CAAC;AAIrB;IAiPE,wCACS,OAA0B,EACzB,YAA0B,EAC1B,uBAAgD,EAChD,+BAAgE,EAChE,KAAqB,EAAE,OAAoB,EAC3C,MAAc,EACd,gBAAkC,EAClC,iBAAoC,EACpC,iBAAoC,EACpC,mBAAsC;QAVhD,iBAmDC;QAlDQ,YAAO,GAAP,OAAO,CAAmB;QACzB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,oCAA+B,GAA/B,+BAA+B,CAAiC;QAChE,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,wBAAmB,GAAnB,mBAAmB,CAAmB;QAzPhD,YAAO,GAAG,IAAI,CAAC;QACf,sBAAiB,GAAG,IAAI,CAAC;QAiBzB,oBAAe,GAAG,CAAC,CAAC;QACpB,kBAAa,GAAU,KAAK,CAAC;QAC7B,uBAAkB,GAAU,KAAK,CAAC;QAClC,uBAAkB,GAAW,KAAK,CAAC;QACnC,yBAAoB,GAAW,KAAK,CAAC;QAErC,uBAAkB,GAAY,MAAM,CAAC;QAGrC,oBAAe,GAAa;YAC1B,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;SACxB,CAAC;QAEF,yBAAoB,GAAa;YAC/B,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;SAC1B,CAAC;QAUK,qBAAgB,GAAG,IAAI,gFAAe,EAAiB,CAAC;QACxD,yBAAoB,GAAG,IAAI,gFAAe,EAAiB,CAAC;QAC5D,qBAAgB,GAAG,IAAI,gFAAe,EAAiB,CAAC;QAM/D,qBAAgB,GAAQ,EAAE,CAAC;QAC3B,qBAAgB,GAAQ,EAAE,CAAC;QAS3B,gBAAW,GAAQ,EAAE,CAAC;QAEtB,iBAAY,GAAG,KAAK,CAAC;QACrB,YAAO,GAAG,KAAK,CAAC;QAChB,iBAAY,GAAG,KAAK,CAAC;QACrB,sBAAiB,GAAQ,EAAE,CAAC;QAC5B,oBAAe,GAAQ,EAAE,CAAC;QAC1B,iBAAY,GAAQ,EAAE,CAAC;QAEvB,sBAAiB,GAAQ,EAAE,CAAC;QAE5B,yBAAoB,GAAQ,EAAE,CAAC;QAE/B,uBAAkB,GAAG,CAAC,CAAC;QACvB,sBAAiB,GAAE,KAAK,CAAC;QACzB,wBAAmB,GAAG,KAAK,CAAC;QA44B5B,oBAAe,GAAG;YAChB,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,qBAAqB,CAAC;aAC3D;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ;aACnB;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,CAAC;wBACN,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE;4BACL,WAAW,EAAE,IAAI,CAAG,2BAA2B;yBAChD;qBACF,CAAC;aACH;YACD,CAAC,EAAE;gBACD,OAAO,EAAE,IAAI;aACd;YACD,CAAC,EAAE;gBACD,OAAO,EAAE,IAAI;aACd;SAEF,CAAC;QACF,yBAAoB,GAAG;YACrB,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,8BAA8B,CAAC;aACpE;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ;aACnB;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,CAAC;wBACN,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE;4BACL,WAAW,EAAE,IAAI,CAAG,2BAA2B;yBAChD;qBACF,CAAC;aACH;SAEF,CAAC;QAEF,uBAAkB,GAAG;YACnB,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,8BAA8B,CAAC;aACpE;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ;aACnB;YACD,QAAQ,EAAE;gBACR,SAAS,EAAE;oBACT,KAAK,EAAE,UAAU,WAAW,EAAE,IAAI;wBAChC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBAC5E,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC1B,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;wBACnE,IAAI,WAAW,CAAC,YAAY,IAAI,CAAC,EAAE;4BACjC,OAAO,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;yBAC3C;6BAAM;4BACL,OAAO,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC;yBACrC;oBACH,CAAC;iBACF;aACF;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,CAAC;wBACN,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,MAAM;wBAChB,EAAE,EAAE,UAAU;wBACd,SAAS,EAAE;4BACT,OAAO,EAAE,KAAK;yBACf,EAAE,KAAK,EAAE;4BACR,WAAW,EAAE,IAAI,CAAG,2BAA2B;yBAChD;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,IAAI;yBAEX;qBACF,EAAE;wBACD,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,OAAO;wBACjB,EAAE,EAAE,UAAU;wBACd,SAAS,EAAE;4BACT,OAAO,EAAE,KAAK;yBACf;wBAED,KAAK,EAAE;4BACL,WAAW,EAAE,IAAI;4BACjB,GAAG,EAAE,CAAC;4BACN,GAAG,EAAE,GAAG;4BACR,QAAQ,EAAE,EAAE;yBACb;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,IAAI;yBAEX;qBACF,CAAC;aACH;SAEF,CAAC;QAGF,4BAAuB,GAAG;YACxB,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0BAA0B,CAAC;aAChE;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ;aACnB;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,CAAC;wBACN,KAAK,EAAE;4BACL,GAAG,EAAE,CAAC;yBACP;qBACF,CAAC;gBACF,KAAK,EAAE,CAAC;wBACN,KAAK,EAAE;4BACL,GAAG,EAAE,CAAC;yBACP;qBACF,CAAC;aAEH;YACD,QAAQ,EAAE;gBACR,SAAS,EAAE;oBACT,KAAK,EAAE,UAAU,WAAW,EAAE,IAAI;wBAChC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBAC9E,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;wBACnE,IAAI,WAAW,CAAC,YAAY,IAAI,CAAC,EAAE;4BACjC,OAAO,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;yBAChD;6BAAM;4BACL,OAAO,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;yBAChD;oBACH,CAAC;iBACF;aACF;SAUF,CAAC;QAGF,yBAAoB,GAAG;YACrB,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0BAA0B,CAAC;aAChE;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ;aACnB;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,CAAC;wBACN,KAAK,EAAE;4BACL,GAAG,EAAE,CAAC;yBACP;qBACF,CAAC;gBACF,KAAK,EAAE,CAAC;wBACN,KAAK,EAAE;4BACL,GAAG,EAAE,CAAC;yBACP;qBACF,CAAC;aACH;YACD,QAAQ,EACR;gBACE,SAAS,EAAE;oBACT,KAAK,EAAE,UAAU,YAAY,EAAE,IAAI;wBACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC;oBAC1F,CAAC;iBACF;aACF;YACD,IAAI;YACJ,YAAY;YACZ,eAAe;YACf,kBAAkB;YAClB,qBAAqB;YACrB,uBAAuB;YACvB,WAAW;YACX,QAAQ;YACR,IAAI;SAGL,CAAC;QA1kCA,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAExB,IAAI,CAAC,IAAI,GAAG,IAAI,mEAAW,CAAC,EAAE,EAAE;YAC9B,kEAAU,CAAC,QAAQ;YACnB,kEAAU,CAAC,SAAS,CAAC,CAAC,CAAC;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9H,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAE5H,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QAC7D,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAG/E,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACtH,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAM;YAChC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC1B,KAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yDAAgB,GAAhB,UAAiB,kBAA0B;QACzC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAE;QAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAID,oDAAW,GAAX,UAAY,aAAqB;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,yDAAgB,GAAhB,UAAiB,kBAA0B;QACzC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,2DAAkB,GAAlB,UAAmB,oBAA4B;QAC7C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAID,yDAAgB,GAAhB,UAAiB,MAAc,EAAE,EAAU;QAA3C,iBAoBC;QAnBC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,MAAM,KAAK,MAAM,EAAE;gBACrB,iCAAiC;gBACjC,UAAU,CAAC;oBACT,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACzB,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SACF;QAID,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE;YAC3C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,iCAAiC;YACjC,UAAU,CAAC;gBACT,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC;IAGD,iEAAwB,GAAxB;QACE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAClH,CAAC;IACD,4DAAmB,GAAnB;QACE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAExG,CAAC;IACD,iEAAwB,GAAxB;QACE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAElH,CAAC;IACD,+DAAsB,GAAtB;QACE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC9G,CAAC;IAED,iDAAQ,GAAR;QAAA,iBAOC;QANC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAM;YAC9D,KAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEvB,KAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACJ,2BAA2B;IAC5B,CAAC;IAED,wDAAe,GAAf;QAEE,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAED,oDAAW,GAAX;QACE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,6CAAI,GAAJ;QAAA,iBAWC;QAVC,IAAI,KAAU,CAAC;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACzB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC3C;aAAM;YACL,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACpC;QACD,KAAK,CAAC,SAAS,CACb,UAAC,KAAK,IAAK,YAAI,CAAC,eAAe,CAAC,KAAmB,CAAC,EAAzC,CAAyC,EACpD,UAAC,KAAK,IAAK,YAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAxB,CAAwB,EACnC,cAAM,YAAI,CAAC,OAAO,GAAG,KAAK,EAApB,CAAoB,CAAC,CAAC;IAChC,CAAC;IAED,kDAAS,GAAT,UAAU,GAAW;QACnB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC7B,CAAC;IAED,iEAAwB,GAAxB;QACE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,kEAAyB,GAAzB;QACE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,iEAAwB,GAAxB;QACE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,6DAAoB,GAApB;QACE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,4DAAmB,GAAnB;QACE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,iEAAwB,GAAxB;QACE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,iEAAwB,GAAxB;QACE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAGD,6DAAoB,GAApB;QACE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxH,CAAC;IACD,2DAAkB,GAAlB;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChJ,CAAC;IAED,wDAAe,GAAf;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC1H,CAAC;IAED,6DAAoB,GAApB;QACE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,+DAAsB,GAAtB,UAAuB,KAAK;QAC1B,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAGD,mEAA0B,GAA1B,UAA2B,KAAK;QAC9B,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAGD,iEAAwB,GAAxB,UAAyB,KAAK;QAC5B,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,+DAAsB,GAAtB,UAAuB,KAAK;QAC1B,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,0DAAiB,GAAjB,UAAkB,KAAK;QACrB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,eAAe,EAAE,CAAC;IAEzB,CAAC;IAED,gEAAuB,GAAvB,UAAwB,KAAK;QAC3B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,8DAAqB,GAArB,UAAsB,KAAK;QACzB,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,4DAAmB,GAAnB,UAAoB,KAAK;QACvB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,uDAAc,GAAd,UAAe,KAAK;QAClB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,4DAAmB,GAAnB,UAAoB,KAAK;QACvB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAGD,wDAAe,GAAf,UAAgB,KAAiB;QAAjC,iBA6CC;QA5CC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EACrC;YACI,UAAI,CAAC,WAAW,EAAC,IAAI,WAAI,KAAK,CAAC,WAAW,EAAE;SAC/C;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YACnC,KAAmB,UAAyB,EAAzB,UAAK,CAAC,mBAAmB,EAAzB,cAAyB,EAAzB,IAAyB;gBAAvC,IAAM,IAAI;gBAEb,UAAI,CAAC,WAAW,EAAC,IAAI,WAAI,IAAI,CAAC,WAAW,EAAE;aAC5C;SACF;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAEnC,IAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAG/B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEnF,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,CAAC,YAAY,EAAf,CAAe,CAAC,CAAC,MAAM,CAAC;QAEpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EACpE;YACE,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC;SACxC;QACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACzB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAiB,EAAzC,CAAyC,CAAC,CAAC;YACnH,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAA1B,CAA0B,CAAC,CAAC;SACpF;aAAM;YACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAiB,EAAzC,CAAyC,CAAC,CAAC;YAC5G,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAA1B,CAA0B,CAAC,CAAC;SACpF;QAED,+DAA+D;QAC/D,oBAAoB;QACpB,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;;IAC3C,CAAC;IAKD,wDAAe,GAAf,UAAgB,WAAmC,EAAE,QAAQ,EAAE,YAAY;QAGzE,IAAM,UAAU,GAAU,EAAE,CAAC;QAC7B,IAAM,SAAS,GAAU,EAAE,CAAC;QAC5B,IAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAM,WAAW,GAAa,EAAE,CAAC;QAGjC,IAAI,gBAAgB,GAAG,IAAI,4CAAI,EAAgB,CAAC;QAEhD,IAAI,IAAI,CAAC,kBAAkB,IAAI,UAAU;YACvC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,kBAAkB,IAAI,YAAY;YACzC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAG3D,mCAAmC;QACnC,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,kBAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY,EAAvB,CAAuB,CAAC,EAA9C,CAA8C,CAAC,CAAC,MAAM,EAAE,CAAC;SACzG;QACD,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,EAAE;YAChD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAArD,CAAqD,CAAC,CAAC,MAAM,EAAE,CAAC;SAChH;QACD,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE;YACxD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAA7D,CAA6D,CAAC,CAAC,MAAM,EAAE,CAAC;SACxH;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;gCAEP,CAAC;YACR,IAAM,YAAY,GAAW,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,eAAe,IAAI,IAAI,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAA/D,CAA+D,CAAC,CAAC,KAAK,EAAE,CAAC;YAClI,IAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,eAAe,IAAI,IAAI,IAAM,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAjE,CAAiE,CAAC,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC;YAC/J,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAE1C,IAAI,OAAK,YAAY,KAAK,QAAQ,EAAE;gBAClC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAChD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClD;iBAAM;gBACL,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC/B;YACD,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAChC;YACD,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAChC;QACH,CAAC;;QArBD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;oBAAlB,CAAC;SAqBT;QAED,wBAAwB;QACxB,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC;QAC9D,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iDAAiD;QAC/I,2CAA2C;QAC3C,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,WAAW,CAAC,CAAC,YAAW;QACpE,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,WAAW,CAAC,CAAC,CAAC,WAAW;QACrE,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QACnG,wBAAwB;QACxB,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC;QACtG,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,qEAAqE;QACnK,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAEnG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE;YACvC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;SAC9B;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE;YACvC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;SAC9B;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC;SACnC;QAID,2CAA2C;QAEzC,IAAI,CAAC,iBAAiB,GAAG;YACvB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;gBACpF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YAChF,QAAQ,EAAE;gBACR;oBACE,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,UAAU;oBAChB,eAAe,EAAE;wBACf,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;qBAE5B;iBACF;gBACD;oBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC;oBACxD,IAAI,EAAE,SAAS;oBACf,eAAe,EAAE;wBACf,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;qBAC5B;iBACF;aAEF;SACF,CAAC;IAGN,CAAC;IAED,sDAAa,GAAb,UAAc,WAAmC,EAAE,aAAmC,EAAE,WAAmB;QAGzG,IAAI,IAAI,CAAC,kBAAkB,IAAI,MAAM,IAAI,IAAI,CAAC,oBAAoB,IAAI,UAAU,EAAE;YAElF,IAAI,gBAAgB,GAAG,IAAI,4CAAI,EAAgB,CAAC;YAEhD,IAAI,IAAI,CAAC,oBAAoB,IAAI,UAAU;gBACzC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAEnD,IAAI,IAAI,CAAC,oBAAoB,IAAI,YAAY;gBAC3C,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAI3D,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;YAInI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,8BAA8B,CAAC;YAGlG,IAAI,CAAC,eAAe,GAAG;gBACrB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;oBACpF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;gBAChF,QAAQ,EAAE;oBAER;wBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBACzD,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,UAAU;wBACnB,IAAI,EAAE,SAAS,CAAC,eAAe;wBAC/B,WAAW,EACX,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,SAAS;qBAE5B,EAAE;wBACD,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC;wBACxD,IAAI,EAAE,SAAS,CAAC,SAAS;wBACzB,OAAO,EAAE,UAAU;wBACnB,eAAe,EAAE;4BACf,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;yBAC5B;qBACF;iBAeF;aACF,CAAC;SAEH;aAEA;YAEC,IAAI,gBAAgB,GAAG,IAAI,4CAAI,EAAgB,CAAC;YAG9C,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAI3D,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;YAEzI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oCAAoC,CAAC;YAGxG,IAAI,CAAC,eAAe,GAAG;gBACrB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;oBACpF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;gBAChF,QAAQ,EAAE;oBAER;wBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBACzD,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,UAAU;wBACnB,IAAI,EAAE,SAAS,CAAC,eAAe;wBAC/B,WAAW,EACX,IAAI,CAAC,YAAY,CAAC,SAAS;wBAC3B,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,SAAS;qBAE5B,EAAE;wBACD,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC;wBACxD,IAAI,EAAE,SAAS,CAAC,SAAS;wBACzB,OAAO,EAAE,UAAU;wBACnB,eAAe,EAAE;4BACf,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;yBAC5B;qBACF,EAAE;wBACD,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0BAA0B,CAAC;wBAChE,IAAI,EAAE,SAAS,CAAC,SAAS;wBACzB,OAAO,EAAE,UAAU;wBACnB,eAAe,EAAE;4BACf,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;4BAC3B,IAAI,CAAC,YAAY,CAAC,SAAS;yBAC5B;qBACF;oBACD;wBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wBAAwB,CAAC;wBAC9D,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,UAAU;wBACnB,IAAI,EAAE,SAAS,CAAC,SAAS;wBACzB,WAAW,EACX,IAAI,CAAC,YAAY,CAAC,aAAa;wBAC/B,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,aAAa;qBAEhC;iBAEF;aACF,CAAC;SACF;IACF,CAAC;IAED,mDAAU,GAAV,UAAW,WAAmC,EAAE,QAAQ,EAAE,aAAmC,EAAE,YAAY;QACzG,0BAA0B;QAC1B,IAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAM,wBAAwB,GAAa,EAAE,CAAC;QAC9C,IAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,IAAI,gBAAgB,GAAG,IAAI,4CAAI,EAAgB,CAAC;QAEhD,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU;YACpC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,aAAa,IAAI,YAAY;YACpC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAGzD,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,mCAAmC;QACnC,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,kBAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY,EAAvB,CAAuB,CAAC,EAA9C,CAA8C,CAAC,CAAC,MAAM,EAAE,CAAC;SACzG;QACD,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,EAAE;YAChD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAArD,CAAqD,CAAC,CAAC,MAAM,EAAE,CAAC;SAChH;QACD,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACrD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,oBAAa,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAArB,CAAqB,CAAC,EAA9C,CAA8C,CAAC,CAAC,MAAM,EAAE,CAAC;SACzG;QACD,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE;YACxD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAA7D,CAA6D,CAAC,CAAC,MAAM,EAAE,CAAC;SACxH;gCAOQ,CAAC;YAER,IAAI,OAAK,aAAa,IAAI,YAAY,IAAI,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAjF,CAAiF,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;gBACrK,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzB,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAClC;iBACI,IAAI,OAAK,aAAa,IAAI,YAAY,EAC1C;gBACC,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,IAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAnF,CAAmF,CAAC,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjL,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBAC5C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBAE5C,IAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,KAAK,SAAS,IAAK,CAAC,CAAC,SAAS,IAAI,IAAI,IAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAnF,CAAmF,CAAC,CAAC,MAAM,CAAC,WAAC,IAAI,OAAC,CAA0B,CAAC,UAAU,EAAtC,CAAsC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1N,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,sBAAsB,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBACnF,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;aACnE;YAGF,IAAI,OAAK,aAAa,IAAI,UAAU,IAAI,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAxE,CAAwE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;gBACzJ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,6BAA6B;aAC9B;iBACK,IAAI,OAAK,aAAa,IAAI,UAAU,EAAE;gBAC1C,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAxE,CAAwE,CAAC,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3J,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACjC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;aAC9C;QAKH,CAAC;;QAhCD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;oBAAlB,CAAC;SAgCT;QAGD,wBAAwB;QACxB,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChJ,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChI,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;YAClC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;SACzB;QAGD,IAAI,QAAQ,GAAG,EAAE,CAAE;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU,EAAG;YAC/E,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS;gBACxC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS;aAC7C,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,YAAY,EAAG;YAC/E,QAAQ,CAAC,IAAI,CAAE;gBACb,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;gBACzC,eAAe,EAAC,IAAI,CAAC,YAAY,CAAC,UAAU;gBAC5C,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa;gBAC5C,eAAe,EAAC,IAAI,CAAC,YAAY,CAAC,aAAa;gBAC/C,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;SACJ;QAID,IAAI,CAAC,YAAY,GAAG;YAClB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;gBACpF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YAChF,QAAQ,EAAG,QAAQ;SACpB,CAAC;IAEJ,CAAC;IAGD,sEAA6B,GAA7B,UAA8B,OAAe;QAC3C,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;YAErB,IAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YACjD,IAAM,MAAM,GAAW,OAAO,GAAG,EAAE,CAAC;YACpC,OAAO,EAAE,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;SACtC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAGD,wDAAe,GAAf,UAAgB,aAAmC;QAEjD,IAAI,gBAAgB,GAAG,IAAI,4CAAI,EAAgB,CAAE;QACjD,IAAI,IAAI,CAAC,kBAAkB,IAAI,UAAU;YACvC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,kBAAkB,IAAI,YAAY;YACzC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAM3D,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACrD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,oBAAa,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAArB,CAAqB,CAAC,EAA9C,CAA8C,CAAC,CAAC,MAAM,EAAE,CAAC;SACzG;QAGD,IAAI,CAAC,iBAAiB,GAAG;YACvB,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE;gBACR;oBAEE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yBAAyB,CAAC;oBAC/D,IAAI,EAAE,EAAE;oBACR,eAAe,EAAE,EAAE;iBACpB;gBACD;oBAEE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yBAAyB,CAAC;oBAC/D,IAAI,EAAE,EAAE;oBACR,eAAe,EAAE,EAAE;iBACpB;aAAC;SACL,CAAC;gCAQS,UAAU;YACnB,OAAK,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpD,OAAK,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,YAAY,KAAK,UAAU,CAAC,EAAE,EAAhC,CAAgC,CAAC,CAAC,CAAC;YAC5G,OAAO;YACT,6CAA6C;YACzC,OAAK,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,YAAY,KAAK,UAAU,CAAC,EAAE,EAAhC,CAAgC,CAAC,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/J,SAAS;YACH,mMAAmM;YACnM,iMAAiM;YAEjM,iHAAiH;QAEnH,CAAC;;QAnBD,IAAI;QACJ,wBAAwB;QACxB,kBAAkB;QAClB,kBAAkB;QAElB,IAAI;QAEJ,KAAyB,UAAsB,EAAtB,SAAI,CAAC,KAAK,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;YAA1C,IAAM,UAAU;oBAAV,UAAU;SAYpB;QACL,mBAAmB;QACnB,KAAsB,UAA8B,EAA9B,SAAI,CAAC,KAAK,CAAC,mBAAmB,EAA9B,cAA8B,EAA9B,IAA8B;YAAhD,IAAM,QAAQ;oCAEN,KAAK;gBAEb,OAAK,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAE;gBAChD,OAAK,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE,EAA3B,CAA2B,CAAC,CAAC,CAAC;gBACvG,OAAK,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE,EAA3B,CAA2B,CAAC,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAEpJ,CAAC;;YAND,KAAmB,UAAoB,EAApB,aAAQ,CAAC,WAAW,EAApB,cAAoB,EAApB,IAAoB;gBAAnC,IAAM,KAAK;wBAAL,KAAK;aAMd;SACF;QAIG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC1E,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAE/E,mBAAmB;QACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAElF,CAAC;IAGD,4CAAG,GAAH,UAAI,GAAW,EAAE,IAAY;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE;YACtB,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SACb;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAGD,6CAAI,GAAJ;QACE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,qDAAY,GAAZ,UAAa,KAAU;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAkND,mEAA0B,GAA1B,UAA2B,UAAsB;QAC/C,wBAAwB;QACxB,IAAI,UAAU,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,EAAE;YAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC1B;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC;IACD,0DAAiB,GAAjB,UAAkB,IAAU,EAAE,EAAW;QACvC,IAAM,WAAW,GAAG,2EAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC/D,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,EAAE;YAAG,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;;YACrC,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,kDAAS,GAAT,UAAU,IAAU;QAElB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAAE,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;SAAE;QAEhD,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;QAE3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;SAAE;QAE3D,OAAO,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED,mDAAU,GAAV,UAAW,IAAU;QACnB,IAAI,CAAC,IAAI;YACP,OAAO,EAAE,CAAC;QACZ,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;SACrB;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;QAE3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;SACzB;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;QAE3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;SACzB;QAED,OAAO,KAAK,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;IAC/C,CAAC;IAED,0DAAiB,GAAjB,UAAkB,YAAmB;QACnC,oFAAoF;QACpF,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,YAAY,EAArB,CAAqB,CAAC,CAAC;QAClE,IAAI,GAAG,IAAI,SAAS;YAClB,OAAO,GAAG,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,wDAAe,GAAf,UAAgB,UAAkB;QAChC,IAAI,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAC,IAAG,QAAC,CAAC,EAAE,IAAI,UAAU,EAAlB,CAAkB,CAAC,CAAC;QACvE,IAAI,GAAG,IAAI,SAAS;YAClB,OAAO,GAAG,CAAC,IAAI,CAAC;IACpB,CAAC;IAnsC2B;QAA3B,gEAAS,CAAC,eAAe,CAAC;;yEAAoB;IACxB;QAAtB,gEAAS,CAAC,UAAU,CAAC;;oEAAe;IACT;QAA3B,gEAAS,CAAC,eAAe,CAAC;;yEAAoB;IACrB;QAAzB,gEAAS,CAAC,aAAa,CAAC;;uEAAkB;IAElB;QAAxB,gEAAS,CAAC,YAAY,CAAC;;sEAAiB;IA3M9B,8BAA8B;QAH1C,gEAAS,CAAC;;SAEV,CAAC;yCAmPkB,sFAAiB;YACX,4EAAY;YACD,kGAAuB;YACf,mHAA+B;YACzD,uEAAc,EAAW,mEAAW;YACnC,+DAAM;YACI,6EAAgB;YACf,uFAAiB;YACjB,uFAAiB;YACf,gEAAiB;OA3PrC,8BAA8B,CA24C1C;IAAD,qCAAC;CAAA;AA34C0C;;;;;;;;AC/B3C,+DAA+D,mCAAmC,IAAI,sBAAsB,0YAA0Y,+BAA+B,kVAAkV,kCAAkC,oTAAoT,sBAAsB,oTAAoT,uBAAuB,2+BAA2+B,mBAAmB,KAAK,mBAAmB,yCAAyC,6BAA6B,0UAA0U,kCAAkC,4CAA4C,0CAA0C,eAAe,kCAAkC,8PAA8P,wCAAwC,qJAAqJ,0CAA0C,2JAA2J,0CAA0C,0JAA0J,0CAA0C,oJAAoJ,qCAAqC,IAAI,0CAA0C,sQAAsQ,kCAAkC,4CAA4C,gCAAgC,+f;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAhgJ;AACjB;AACZ;AAEyC;AAC3B;AACP;AACkB;AAIM;AACA;AACA;AACY;AAMpF;IAUE,8BACU,OAA0B,EAC1B,MAAc,EACd,gBAAkC,EAClC,iBAAoC,EACpC,iBAAoC,EACpC,uBAAgD;QAN1D,iBA0BC;QAzBS,YAAO,GAAP,OAAO,CAAmB;QAC1B,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,4BAAuB,GAAvB,uBAAuB,CAAyB;QAbnD,mBAAc,GAAG,IAAI,gFAAe,EAAiB,CAAC;QAI7D,2BAAsB,GAA6B,EAAE,CAAC;QAWpD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAM;YACjC,KAAI,CAAC,WAAW,GAAG,MAAqC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,QAAC,KAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAqB,CAAC,EAA9C,CAA8C,CAAC,CAAC;QAC9F,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,QAAC,KAAI,CAAC,YAAY,GAAG,GAAG,CAAC,KAAqB,CAAC,EAA/C,CAA+C,CAAC,CAAC;QAC/F,IAAI,CAAC,IAAI,GAAG,IAAI,8FAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,KAAK,EAAiB,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8DAAa,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE9G,KAAuB,UAAyB,EAAzB,SAAI,CAAC,cAAc,CAAC,KAAK,EAAzB,cAAyB,EAAzB,IAAyB;YAA3C,IAAM,QAAQ;YACjB,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACzC,MAAM;aACP;SACF;IACH,CAAC;IAED,4CAAa,GAAb,UAAc,UAAsB;QAClC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,UAAU,CAAC,YAAY,EAAhC,CAAgC,CAAC,CAAC;SACtE;IACH,CAAC;IAED,wDAAyB,GAAzB,UAA0B,UAAsB,EAAE,IAAY;QAC5D,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,UAAU,CAAC,WAAW,IAAI,IAAI,EAAE;YAClC,KAAkB,UAAsB,EAAtB,eAAU,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;gBAAnC,IAAM,GAAG;gBACZ,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC5D,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE;oBAC5B,MAAM,EAAE,CAAC;iBACV;aACF;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,0DAA2B,GAA3B,UAA4B,UAAsB;QAChD,IAAI,MAAM,GAAC,CAAC,CAAC;QACb,IAAI,UAAU,CAAC,mBAAmB,EAAC;YACjC,IAAI,aAAa,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAC,IAAE,QAAC,CAAC,aAAa,EAAf,CAAe,CAAC,CAAE;YAC5E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC1B,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,CAAC,EAAC,CAAC,IAAK,QAAC,GAAC,CAAC,EAAH,CAAG,CAAC,CAAC;SAC/C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,sDAAuB,GAAvB,UAAwB,UAAsB;QAC1C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,UAAU,CAAC,mBAAmB;YAC9B,MAAM,GAAG,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC;QACnD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD,iDAAkB,GAAlB,UAAmB,UAAsB,EAAE,UAAmB;QAC5D,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;YACtD,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;SAC5H;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,iDAAkB,GAAlB;QACE,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE;YAC9D,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;SACtC;aAAM;YACL,OAAO,CAAC,CAAC;SACV;IACH,CAAC;IAED,gDAAiB,GAAjB,UAAkB,EAAU;QAC1B,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC5B,KAAuB,UAAgB,EAAhB,SAAI,CAAC,WAAW,EAAhB,cAAgB,EAAhB,IAAgB;oBAAlC,IAAI,UAAU;oBACjB,UAAU,GAAG,UAAwB,CAAC;oBACtC,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;wBACxB,OAAO,UAAU,CAAC;qBACnB;iBACF;aACF;SACF;IACH,CAAC;IAED,yDAA0B,GAA1B,UAA2B,UAAsB;QAC/C,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,iDAAkB,GAAlB;QACE,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC;IA9G4B;QAA5B,gEAAS,CAAC,gBAAgB,CAAC;kCAAiB,2FAAuB;gEAAC;IAD1D,oBAAoB;QAJhC,gEAAS,CAAC;YACT,QAAQ,EAAE,aAAa;;SAExB,CAAC;yCAYmB,sFAAiB;YAClB,+DAAM;YACI,6EAAgB;YACf,sFAAiB;YACjB,sFAAiB;YACX,mGAAuB;OAhB/C,oBAAoB,CAgHhC;IAAD,2BAAC;CAAA;AAhHgC;;;;;;;;;;;;;;;;;;;;;;;;AClBY;AACF;AAEL;AACY;AAGlD;IAGE,4BAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAF5B,oBAAe,GAAkC,EAAE,CAAC;IAG5D,CAAC;IAED,2CAAc,GAAd,UAAe,IAAY;QAA3B,iBAeC;QAdC,OAAO,mEAAU,CAAC,MAAM,CAAC,kBAAQ;YAC/B,IAAM,YAAY,GAAG,KAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAElE,IAAI,YAAY,EAAE;gBAChB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;aACzC;YAED,6CAA6C;YAC7C,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC,SAAS,CAAC,UAAC,GAAQ;gBAChE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,KAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2CAAc,GAAd,UAAe,SAAiB;QAC9B,sEAAsE;QACtE,IAAI;YACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/D;QAAC,OAAO,SAAS,EAAE;YAClB,8CAA8C;YAC9C,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/D;IACH,CAAC;IAED,6CAAgB,GAAhB,UAAiB,MAAc;QAC7B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;YAC3C,OAAO,MAAM,CAAC;SACf;QAED,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC1B,OAAO,MAAM,CAAC;SACf;aAAM;YACL,OAAO,8DAA4B,CAAC,MAAM,CAAC,CAAC;SAC7C;IACH,CAAC;IAED,2CAAc,GAAd,UAAe,SAAiB,EAAE,IAAY;QAC5C,mEAAmE;QACnE,IAAI,GAAG,0DAAwB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACvC,IAAI;YACF,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACvC;QAAC,OAAO,SAAS,EAAE;YAClB,+CAA+C;SAChD;IACH,CAAC;IAtDU,kBAAkB;QAD9B,iEAAU,EAAE;yCAIe,wEAAU;OAHzB,kBAAkB,CAuD9B;IAAD,yBAAC;CAAA;AAvD8B;;;;;;;;;;;;;;;;;;;;;;;;ACTY;AAOlB;AACoB;AACS;AACc;AAKpE;IAGI,wBAAoB,WAAwB,EAAU,MAAc,EACxD,WAAwB,EAAU,kBAAsC;QADpF,iBAgBC;QAhBmB,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;QACxD,gBAAW,GAAX,WAAW,CAAa;QAAU,uBAAkB,GAAlB,kBAAkB,CAAoB;QAHpF,iBAAY,GAAG,KAAK,CAAC;QAIjB,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC3C,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO;SACV;QAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,cAAI;YACxC,IAAM,OAAO,GAAI,IAAqC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,KAAK,yBAAyB,EAApC,CAAoC,CAAC,CAAC;YAC7G,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;gBAC3C,IAAI,KAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAC5E,KAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC5B;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,oCAAW,GAAX,UAAY,KAA6B,EAAE,KAA0B;QACjE,IAAM,GAAG,GAAW,KAAK,CAAC,GAAG,CAAC;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,yCAAgB,GAAhB,UAAiB,KAA6B,EAAE,KAA0B;QACtE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,gCAAO,GAAP,UAAQ,KAAY;QAChB,IAAM,GAAG,GAAG,gBAAgB,CAAC;QAE7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,mCAAU,GAAV,UAAW,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,iCAAQ,GAAR,UAAS,EAAQ,EAAE,EAAQ;QACvB,IAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAhDQ,cAAc;QAD1B,iEAAU,EAAE;yCAIwB,kEAAW,EAAkB,+DAAM;YAC3C,0EAAW,EAA8B,wFAAkB;OAJ3E,cAAc,CAiD1B;IAAD,qBAAC;CAAA;AAjD0B;;;;;;;;;;;;;;;;;;;;;;ACfgB;AAOlB;AACoB;AAG7C;IACI,mBAAoB,WAAwB,EAAU,MAAc;QAAhD,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAEzE,+BAAW,GAAX,UAAY,KAA6B,EAAE,KAA0B;QACjE,IAAM,GAAG,GAAW,KAAK,CAAC,GAAG,CAAC;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,oCAAgB,GAAhB,UAAiB,KAA6B,EAAE,KAA0B;QACtE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,2BAAO,GAAP,UAAQ,KAAY;QAChB,IAAM,GAAG,GAAG,gBAAgB,CAAC;QAE7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,8BAAU,GAAV,UAAW,GAAW;QAClB,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;YACpC,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;QAEvC,OAAO,KAAK,CAAC;IACjB,CAAC;IA3BQ,SAAS;QADrB,iEAAU,EAAE;yCAEwB,kEAAW,EAAkB,+DAAM;OAD3D,SAAS,CA4BrB;IAAD,gBAAC;CAAA;AA5BqB;;;;;;;;;;;;;;;;;;;;;ACVqB;AAEW;AAEtD;;GAEG;AAEH;IAII,qBAAoB,YAAyB;QAA7C,iBAIC;QAJmB,iBAAY,GAAZ,YAAY,CAAa;QACzC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YACjC,KAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qCAAe,GAAf;QAAA,iBAgBC;QAfG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACnB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1B;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;gBACjC,KAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,UAAU,CAAC;gBACP,IAAI,KAAI,CAAC,IAAI,IAAI,IAAI,EAAE;oBACnB,OAAO,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC;iBAC1B;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;YAGT,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,4BAAM,GAAN;QACI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IA9BQ,WAAW;QADvB,iEAAU,EAAE;yCAKyB,0EAAW;OAJpC,WAAW,CA+BvB;IAAD,kBAAC;CAAA;AA/BuB;;;;;;;;;;;;;;;;;;;;ACT+C;AAEvE;;GAEG;AAKH;IAJA;QAUmB,SAAI,GAAG,IAAI,2DAAY,EAAU,CAAC;IAKrD,CAAC;IAHC,yCAAO,GAAP;QACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IATQ;QAAR,4DAAK,EAAE;;0DAAsB;IACrB;QAAR,4DAAK,EAAE;;0DAAsB;IACrB;QAAR,4DAAK,EAAE;;2DAAuB;IACtB;QAAR,4DAAK,EAAE;;4DAAyB;IAEvB;QAAT,6DAAM,EAAE;;yDAA0C;IANxC,uBAAuB;QAJnC,gEAAS,CAAC;YACT,QAAQ,EAAE,iBAAiB;YAC3B,QAAQ,EAAE,oGAAoG;SAC/G,CAAC;OACW,uBAAuB,CAWnC;IAAD,8BAAC;CAAA;AAXmC;;;;;;;;;;;;;;;;;;;;;;ACTpC,qBAAqB;AACkG;AAC9C;AAOlE,IAAM,iCAAiC,GAAQ;IAClD,OAAO,EAAE,yEAAiB;IAC1B,WAAW,EAAE,iEAAU,CAAC,cAAM,0BAAmB,EAAnB,CAAmB,CAAC;IAClD,KAAK,EAAE,IAAI;CACd,CAAC;AAEF,IAAM,mBAAmB,GAAG,o1CA2BzB,CAAC;AAOJ;IAkGI,6BAAmB,QAAkB,EAAE,UAAsB;QAtE7D,sFAAsF;QACrE,aAAQ,GAAyB,IAAI,2DAAY,EAAU,CAAC;QAC7E,qIAAqI;QACpH,gBAAW,GAAmC,IAAI,2DAAY,EAAoB,CAAC;QAsD7F,aAAQ,GAAQ,QAAQ,CAAC,SAAS,CAAC;QACnC,cAAS,GAAQ,QAAQ,CAAC,SAAS,CAAC;QASjC,WAAM,GAAY,KAAK,CAAC;QACxB,UAAK,GAAW,CAAC,CAAC;QAGxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IA5ED,sBAAW,6CAAY;QAFvB,gGAAgG;aAEhG;YACI,OAAO,IAAI,CAAC,aAAa,CAAC;QAC9B,CAAC;aAED,UAAwB,CAAS;YAC7B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjD,CAAC;;;OALA;IASD,sBAAW,2CAAU;QAFrB,yCAAyC;aAEzC;YACI,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;aAED,UAAsB,CAAS;YAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjD,CAAC;;;OALA;IAOD,sBAAW,2CAAU;aAArB;YACI,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;aAED,UAAsB,CAAS;YAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B;QACL,CAAC;;;OARA;IAUD,sBAAW,qCAAI;aAcf;YACI,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;aAhBD,UAAgB,KAAa;YACzB,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAExE,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;gBAC9D,OAAO;aACV;YAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,YAAY,EAAE,IAAI,CAAC,YAAY;aAClC,CAAC,CAAC;QACP,CAAC;;;OAAA;IAkCM,8CAAgB,GAAvB,UAAwB,MAAW;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,sCAAQ,GAAf;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1E,oBAAoB;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW;YAC9C,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW;YAC5C,CAAC,CAAC,IAAI,CAAC,MAAM;YACb,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW;YAC1D,CAAC,CAAC,IAAI,CAAC,aAAa;YACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,CAAC,cAAc,KAAK,WAAW;YAC5D,CAAC,CAAC,IAAI,CAAC,cAAc;YACrB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;YACxD,CAAC,CAAC,IAAI,CAAC,YAAY;YACnB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAE/B,aAAa;QACb,IAAI,CAAC,YAAY,GAAG,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW;YACxD,CAAC,CAAC,IAAI,CAAC,YAAY;YACnB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,aAAa;QACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAEM,wCAAU,GAAjB,UAAkB,KAAa;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAEM,qCAAO,GAAd,UAAe,GAAW;QACtB,OAAQ,IAAY,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IACpE,CAAC;IAEM,wCAAU,GAAjB;QACI,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,oCAAM,GAAb;QACI,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC;IACzC,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,EAAkB;QACtC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAEM,+CAAiB,GAAxB,UAAyB,EAAY;QACjC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;IAEM,wCAAU,GAAjB,UAAkB,IAAY,EAAE,KAAkB;QAC9C,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;gBACvB,IAAI,MAAM,GAAQ,KAAK,CAAC,MAAM,CAAC;gBAC/B,MAAM,CAAC,IAAI,EAAE,CAAC;aACjB;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;IACL,CAAC;IAED,sCAAsC;IAC5B,sCAAQ,GAAlB,UAAmB,GAAW,EAAE,IAAY,EAAE,MAAe;QACzD,OAAO,EAAE,IAAI,QAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAAE,CAAC;IACzC,CAAC;IAES,sCAAQ,GAAlB,UAAmB,WAAmB,EAAE,UAAkB;QACtD,IAAI,KAAK,GAAU,EAAE,CAAC;QAEtB,sBAAsB;QACtB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,IAAI,UAAU,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAElF,uBAAuB;QACvB,IAAI,UAAU,EAAE;YACZ,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,8DAA8D;gBAC9D,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBAEvC,8BAA8B;gBAC9B,IAAI,OAAO,GAAG,UAAU,EAAE;oBACtB,OAAO,GAAG,UAAU,CAAC;oBACrB,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;iBAC1C;aACJ;iBAAM;gBACH,2CAA2C;gBAC3C,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAE7E,wCAAwC;gBACxC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;aAChE;SACJ;QAED,wBAAwB;QACxB,KAAK,IAAI,GAAG,GAAG,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;YAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;QAED,sCAAsC;QACtC,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC5B,IAAI,SAAS,GAAG,CAAC,EAAE;gBACf,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACjE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;aAClC;YAED,IAAI,OAAO,GAAG,UAAU,EAAE;gBACtB,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC3B;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,aAAa;IACH,iDAAmB,GAA7B;QACI,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IArPQ;QAAR,4DAAK,EAAE;;sDAAuB;IAEtB;QAAR,4DAAK,EAAE;;wDAAwB;IAEvB;QAAR,4DAAK,EAAE;;8DAA+B;IAE9B;QAAR,4DAAK,EAAE;;+DAAgC;IAG/B;QAAR,4DAAK,EAAE;;0DAA0B;IAEzB;QAAR,4DAAK,EAAE;;6DAA6B;IAE5B;QAAR,4DAAK,EAAE;;yDAAyB;IAExB;QAAR,4DAAK,EAAE;;yDAAyB;IAExB;QAAR,4DAAK,EAAE;;uDAAwB;IAGvB;QAAR,4DAAK,EAAE;;6DAA6B;IAG5B;QAAR,4DAAK,EAAE;;yDAA0B;IAGxB;QAAT,6DAAM,EAAE;kCAAkB,2DAAY;yDAAsC;IAEnE;QAAT,6DAAM,EAAE;kCAAqB,2DAAY;4DAA0D;IAIpG;QADC,4DAAK,EAAE;;;2DAGP;IASD;QADC,4DAAK,EAAE;;;yDAGP;IAhDQ,mBAAmB;QAL/B,gEAAS,CAAC;YACP,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,mBAAmB;YAC7B,SAAS,EAAE,CAAC,iCAAiC,CAAC;SACjD,CAAC;yCAmG+B,uDAAQ,EAAc,yDAAU;OAlGpD,mBAAmB,CAyP/B;IAAD,0BAAC;CAAA;AAzP+B;;;;;;;;;ACjDhC;AAAA;IAMI,uBAAoB,QAAQ,EAAU,eAAe,EAAU,eAAuB;QAAvB,yDAAuB;QAAlE,aAAQ,GAAR,QAAQ;QAAU,oBAAe,GAAf,eAAe;QAAU,oBAAe,GAAf,eAAe,CAAQ;QAClF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;IACrC,CAAC;IACL,oBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX6D;AACf;AACmB;AAChB;AAEe;AACS;AACL;AACQ;AACA;AACuB;AACvB;AACD;AACV;AAkClE;IAAA;IAOA,CAAC;2BAPY,kBAAkB;IACb,0BAAO,GAArB;QACI,OAAO;YACH,QAAQ,EAAE,oBAAkB;YAC5B,SAAS,EAAE,EAAE;SAChB,CAAC;IACN,CAAC;IANQ,kBAAkB;QAhC9B,+DAAQ,CAAC;YACN,OAAO,EAAE;gBACL,qEAAY;gBACZ,mEAAW;gBACX,2EAAmB;gBACnB,oEAAY,CAAC,OAAO,EAAE;aACzB;YACD,YAAY,EAAE;gBACV,mFAAmB;gBACnB,0FAAmB;gBACnB,kGAAuB;gBACvB,yHAAkC;gBAClC,mGAAuB;gBACvB,4FAAuB;gBACvB,wFAA0B;gBAC1B,kGAAuB;gBACvB,kGAA2B;aAC9B;YACD,OAAO,EAAE;gBACL,mEAAW;gBACX,2EAAmB;gBACnB,mFAAmB;gBACnB,0FAAmB;gBACnB,kGAAuB;gBACvB,kGAAuB;gBACvB,yHAAkC;gBAClC,mGAAuB;gBACvB,4FAAuB;gBACvB,wFAA0B;gBAC1B,kGAA2B;aAC9B;SACJ,CAAC;OACW,kBAAkB,CAO9B;IAAD,yBAAC;;CAAA;AAP8B;;;;;;;;;;;;;;;;;;;;;AC/C6C;AAE5E;IAAyC,uCAAW;IAIhD,6BAAY,SAAe,EAAE,SAAuC,EAAE,cAAsD,EAAE,kBAA4C,EAAE,YAAkB;QAA9L,YACI,kBAAM,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,SAG9C;QAFG,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAI,CAAC,QAAQ,CAAE,YAAY,CAAC,CAAC;;IACjC,CAAC;IACL,0BAAC;AAAD,CAAC,CATwC,mEAAW,GASnD;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAwC;AACoB;AAE5D;;;GAGG;AACH;IAAA;IAsCA,CAAC;IApCG;;;;OAIG;IACW,gBAAK,GAAnB,UAAoB,KAAU,EAAE,IAAe;QAC3C,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,GAAG,YAAY,IAAI,EAAE;gBACrB,GAAG,GAAG,2CAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC9B;YACD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,cAAc,EAAE,CAAC;SACxB;IACL,CAAC;IAEa,kBAAO,GAArB,UAAsB,IAAe,EAAE,KAAU;QAC7C,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;YAE3B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,GAAG,YAAY,IAAI,EAAE;gBACrB,GAAG,GAAG,2CAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAChC;iBAAM;gBACH,IAAI,GAAG,YAAY,iFAAmB,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE;oBACvE,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC;iBAC3B;qBAAM;oBACH,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;iBACnB;aACJ;YAED,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;SACpB;IACL,CAAC;IAEL,iBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC9CsE;AAC9B;AACgC;AACN;AAsCnE;IAUI,qCAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAHjB,aAAQ,GAAsB,IAAI,2DAAY,EAAE,CAAC;QAClD,WAAM,GAAG,eAAe,CAAC;QAGrC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;IACnC,CAAC;IALiE,CAAC;IAQnE,wCAAE,GAAF;QACI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC1C;IACL,CAAC;IAtBQ;QAAR,4DAAK,EAAE;kCAAc,0FAAoB;6DAAC;IAElC;QAAR,4DAAK,EAAE;;kEAA0B;IACzB;QAAR,4DAAK,EAAE;;gEAAwB;IACvB;QAAR,4DAAK,EAAE;kCAAiB,oFAAgB;gEAAM;IACrC;QAAT,6DAAM,EAAE;kCAAkB,2DAAY;iEAA2B;IACzD;QAAR,4DAAK,EAAE;;+DAAiC;IARhC,2BAA2B;QApCvC,gEAAS,CAAC;YACP,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE,m2CA+BX;YACC,SAAS,EAAE,EAAE;SAChB,CAAC;yCAW8B,+DAAM;OAVzB,2BAA2B,CA0BvC;IAAD,kCAAC;CAAA;AA1BuC;;;;;;;;;;;;;;;;;;;;ACzCS;AAEjD,IAAM,iBAAiB,GAAG,yhBAQnB,CAAC;AAER;;;GAGG;AAKH;IAAA;IAGA,CAAC;IADG;QADC,4DAAK,EAAE;;qDACe;IAFd,iBAAiB;QAJ7B,gEAAS,CAAC;YACP,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE,iBAAiB;SAC9B,CAAC;OACW,iBAAiB,CAG7B;IAAD,wBAAC;CAAA;AAH6B;;;;;;;;;;;;;;;;;;;;ACpByC;AAEvE,IAAM,wBAAwB,GAAG,qRAK1B,CAAC;AAMR;IAJA;QASW,UAAK,GAAG,IAAI,2DAAY,EAAO,CAAC;IAK3C,CAAC;IAHU,iCAAO,GAAd;QACI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAPD;QADC,4DAAK,EAAE;;qDACiB;IAGzB;QADC,6DAAM,EAAE;;kDAC8B;IAL9B,eAAe;QAJ3B,gEAAS,CAAC;YACP,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,wBAAwB;SACrC,CAAC;OACW,eAAe,CAU3B;IAAD,sBAAC;CAAA;AAV2B;;;;;;;;;;;;;;;;;;;;ACb2C;AAEvE,IAAM,wBAAwB,GAAG,qSAK1B,CAAC;AAMR;IAJA;QASW,UAAK,GAAG,IAAI,2DAAY,EAAO,CAAC;IAK3C,CAAC;IAHU,uCAAO,GAAd;QACI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAPD;QADC,4DAAK,EAAE;;2DACiB;IAGzB;QADC,6DAAM,EAAE;;wDAC8B;IAL9B,qBAAqB;QAJjC,gEAAS,CAAC;YACP,QAAQ,EAAE,yBAAyB;YACnC,QAAQ,EAAE,wBAAwB;SACrC,CAAC;OACW,qBAAqB,CAUjC;IAAD,4BAAC;CAAA;AAViC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZqD;AAC5B;AAEK;AAEP;AAEnB;AACT;AACwC;AACA;AAwDrE;IAWE,6BACU,WAAwB,EACxB,yBAAoD,EACpD,iBAAoC,EACpC,WAAwB;QAJlC,iBAUC;QATS,gBAAW,GAAX,WAAW,CAAa;QACxB,8BAAyB,GAAzB,yBAAyB,CAA2B;QACpD,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,gBAAW,GAAX,WAAW,CAAa;QAZxB,eAAU,GAAG,IAAI,2DAAY,EAAsB,CAAC;QAC9D,uBAAkB,GAAuB,IAAI,CAAC;QAC9C,eAAU,GAAe,IAAI,CAAC;QAC9B,kBAAa,GAAG,KAAK,CAAC;QAWpB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YAClC,IAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAS,CAAC;YAClC,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8CAAgB,GAAhB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,sCAAQ,GAAR,UAAS,KAAkB;QACzB,IAAM,QAAQ,GAA+C,KAAK,CAAC;QACnE,IAAM,MAAM,GAAuC,QAAQ,CAAC,MAAM,CAAC;QACnE,IAAM,KAAK,GAAa,MAAM,CAAC,KAAK,CAAC;QACrC,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAChC,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAEhC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YACzB,IAAI;gBACF,IAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;aAC3C;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aACpC;QACH,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YAAX,iBAQf;YAPC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAM,EAAE,GAAG,kDAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;gBAClC,IAAM,KAAK,GAAG,GAAG,CAAC,KAAe,CAAC;gBAClC,KAAI,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7C,QAAQ,SAAS,EAAE;YACjB,KAAK,MAAM;gBACT,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM;YACR;gBACE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM;SACT;IACH,CAAC;IAED,2CAAa,GAAb,UAAc,EAAY,EAAE,KAAa;QACvC,IAAM,UAAU,GAAuB,EAAE,CAAC;QAC1C,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAC3B,IAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAChD,UAAU,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAM,aAAa,GAAW,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAG,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAC;YACjD,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC;SACxC;aAAM;YACL,UAAU,CAAC,cAAc,GAAG,SAAS,CAAC;YACtC,UAAU,CAAC,cAAc,GAAG,SAAS,CAAC;SACvC;QACD,UAAU,CAAC,cAAc,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,UAAU,CAAC,eAAe,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAEjG,IAAM,KAAK,GAAG,2CAAU,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gCAC5C,MAAM;YACb,IAAM,cAAc,GAAG,KAAK,CAAC,2CAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,EAA/B,CAA+B,CAAC,EAAE;gBAC1F,IAAM,QAAQ,GAAG,IAAI,sFAAkB,EAAE,CAAC;gBAC1C,IAAM,YAAU,GAAG,cAAc,CAAC,CAAC,CAAC;gBACpC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,KAAK,YAAU,EAAzB,CAAyB,CAAC,CAAC,EAAE,CAAC;gBAEhE,IAAM,QAAQ,GAAG,KAAK,CAAC,2CAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9C,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAExC,IAAM,SAAS,GAAG,KAAK,CAAC,2CAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEjD,IAAM,YAAY,GAAG,KAAK,CAAC,2CAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxE,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE1D,IAAM,UAAU,GAAG,KAAK,CAAC,2CAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpD,IAAM,OAAO,GAAG,KAAK,CAAC,2CAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC7D,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE7C,IAAM,SAAS,GAAG,KAAK,CAAC,2CAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAEjH,IAAM,kBAAkB,GAAG,KAAK,CAAC,2CAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,QAAQ,CAAC,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAEtE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtC;QACH,CAAC;QAlCD,KAAK,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;oBAAjD,MAAM;SAkCd;QAED,UAAU,CAAC,aAAa,GAAG,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAM,IAAI,GAAG,KAAK,CAAC,2CAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;IACvC,CAAC;IAED,gDAAkB,GAAlB,UAAmB,CAAa;QAAhC,iBAaC;QAZC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAEpB,oCAAoC;QACpC,IAAI,CAAC,CAAC,EAAE,EAAE;YACR,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,aAAG;gBAC7C,IAAI,GAAG,EAAE;oBACP,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEK,sCAAQ,GAAd;;;;;;wBACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,SAAI;wBAAe,qBAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;;wBAAzG,GAAK,WAAW,GAAG,SAAsF,CAAC;;;;;KAC3G;IAEK,uCAAS,GAAf;;;;;;wBACE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;4BAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;yBAC5C;wBAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,SAAI;wBAAe,qBAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC;;wBAAzH,GAAK,WAAW,GAAG,SAAsG,CAAC;;;;;KAC3H;IAED,mCAAK,GAAL;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAvKS;QAAT,6DAAM,EAAE;;2DAAqD;IAHnD,mBAAmB;QAtD/B,gEAAS,CAAC;YACT,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,i5DAiDT;YACD,SAAS,EAAE,EAAE;SACd,CAAC;yCAauB,0EAAW;YACG,sGAAyB;YACjC,sFAAiB;YACvB,0EAAW;OAfvB,mBAAmB,CA4K/B;IAAD,0BAAC;CAAA;AA5K+B;;;;;;;;ACnEhC,4NAA4N,OAAO,qG;;;;;;;;;;;;;;;;;;;;ACA5J;AAEV;AAE7D;;GAEG;AAKH;IAAA;IAMA,CAAC;IALY;QAAR,4DAAK,EAAE;;0DAAsB;IAErB;QAAR,4DAAK,EAAE;;yDAAqB;IAEpB;QAAR,4DAAK,EAAE;kCAAiB,iFAAmB;4DAAC;IALpC,uBAAuB;QAJnC,gEAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;;SAE9B,CAAC;OACW,uBAAuB,CAMnC;IAAD,8BAAC;CAAA;AANmC;;;;;;;;ACXpC,0FAA0F,SAAS,6XAA6X,sCAAsC,2FAA2F,iBAAiB,oEAAoE,eAAe,sFAAsF,sCAAsC,qFAAqF,iBAAiB,8OAA8O,0BAA0B,kJ;;;;;;;;;;;;;;;;;;;;;;ACCnpC;AACiF;AAChD;AAChB;AAG7C;;GAEG;AAKH;IAuBI;QArBQ,cAAS,GAAG,KAAK,CAAC;QAClB,aAAQ,GAAG,KAAK,CAAC;QACjB,iBAAY,GAAG,KAAK,CAAC;QAKb,OAAE,GAAG,KAAK,CAAC;QAEX,wBAAmB,GAAG,MAAM,CAAC;QAK5B,WAAM,GAAG,IAAI,2DAAY,EAAO,CAAC;IAQlD,CAAC;IAEM,oDAAkB,GAAzB;QACI,oCAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,kBAAkB,EAAE,WAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,6CAAW,GAAlB;QACI,IAAM,aAAa,GAAG,oCAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrD,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAED,qDAAqD;IAC9C,0CAAQ,GAAf,UAAgB,MAAe;IAE/B,CAAC;IAEM,4CAAU,GAAjB,UAAkB,KAAU,EAAE,IAAS;QACnC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACtB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;gBAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC/B;iBAAM;gBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAC7D;SACJ;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3B,CAAC;IAtDQ;QAAR,4DAAK,EAAE;;0DAAqB;IAMpB;QAAR,4DAAK,EAAE;;gEAA4B;IAC3B;QAAR,4DAAK,EAAE;;0DAAsB;IACrB;QAAR,4DAAK,EAAE;;uDAAmB;IAClB;QAAR,4DAAK,EAAE;;yDAAqB;IACpB;QAAR,4DAAK,EAAE;;wEAAqC;IACpC;QAAR,4DAAK,EAAE;;sEAAkC;IACjC;QAAR,4DAAK,EAAE;kCAAiB,iFAAmB;4DAAC;IACpC;QAAR,4DAAK,EAAE;;+DAA0C;IAExC;QAAT,6DAAM,EAAE;;2DAAyC;IAEzC;QAAR,4DAAK,EAAE;;kEAA2B;IAGZ;QAAtB,gEAAS,CAAC,UAAU,CAAC;kCAAkB,yDAAU;6DAAC;IArB1C,uBAAuB;QAJnC,gEAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;;SAE9B,CAAC;;OACW,uBAAuB,CAwDnC;IAAD,8BAAC;CAAA;AAxDmC;;;;;;;;ACdpC,4FAA4F,OAAO,oWAAoW,uDAAuD,ynBAAynB,2CAA2C,sTAAsT,2CAA2C,gG;;;;;;;;;;;;;;;;;;;;;ACCv+C;AACiF;AAChE;AAG7C;;GAEG;AAKH;IAkBI;QAZgB,OAAE,GAAG,KAAK,CAAC;QAEX,wBAAmB,GAAG,MAAM,CAAC;QAGtC,mBAAc,GAAU,EAAE,CAAC;QAGjB,WAAM,GAAG,IAAI,2DAAY,EAAO,CAAC;IAKlD,CAAC;IAEM,+DAAkB,GAAzB;QACI,oCAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,kBAAkB,EAAE,WAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,wDAAW,GAAlB;QACI,IAAM,aAAa,GAAG,oCAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrD,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAGM,uDAAU,GAAjB,UAAkB,KAAU,EAAE,IAAS;QACnC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,6BAA6B;QAC7B,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACpE;aAAM;YACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,KAAK,CAAC,eAAe,EAAE,CAAC;IAC5B,CAAC;IAEM,sDAAS,GAAhB;QACI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,+DAAkB,GAAlB,UAAmB,CAAM,EAAE,CAAS;QAChC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,gCAAgC;QACpE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAW,sBAAsB;QAC1D,IAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;YACtC,IAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,EAAE;gBACR,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACZ;iBAAM;gBACH,OAAO;aACV;SACJ;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAjEQ;QAAR,4DAAK,EAAE;;qEAAqB;IAEpB;QAAR,4DAAK,EAAE;;2EAA4B;IAE3B;QAAR,4DAAK,EAAE;;qEAAsB;IACrB;QAAR,4DAAK,EAAE;;kEAAmB;IAClB;QAAR,4DAAK,EAAE;;oEAAqB;IACpB;QAAR,4DAAK,EAAE;;mFAAqC;IACpC;QAAR,4DAAK,EAAE;;iFAAkC;IAIjC;QAAR,4DAAK,EAAE;;0EAA0C;IACxC;QAAT,6DAAM,EAAE;;sEAAyC;IAE3B;QAAtB,gEAAS,CAAC,UAAU,CAAC;kCAAkB,yDAAU;wEAAC;IAhB1C,kCAAkC;QAJ9C,gEAAS,CAAC;YACP,QAAQ,EAAE,6BAA6B;;SAE1C,CAAC;;OACW,kCAAkC,CAmE9C;IAAD,yCAAC;CAAA;AAnE8C;;;;;;;;ACb/C,oEAAoE,gDAAgD,iDAAiD,SAAS,kWAAkW,aAAa,mSAAmS,mBAAmB,sQAAsQ,aAAa,4RAA4R,aAAa,0QAA0Q,mBAAmB,sQAAsQ,aAAa,0IAA0I,oBAAoB,uBAAuB,aAAa,0IAA0I,wB;;;;;;;;;;;;;;;;;;;;ACA5rE;AAClB;AAM7D;IAJA;QAMW,aAAQ,GAAG,KAAK,CAAC;QAMhB,gBAAW,GAAG,IAAI,2DAAY,EAAE,CAAC;QAClC,gBAAW,GAAG,EAAE,CAAC;QAEjB,aAAQ,GAAG,OAAO,CAAC;QAErB,gBAAW,GAAG,QAAQ,CAAC,CAAC,sBAAsB;IAiCvD,CAAC;IA/BC,sCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;SACxB;IACH,CAAC;IAED,gDAAkB,GAAlB;QACE,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;YAClC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iBACxB;aACF;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;IACH,CAAC;IAED,yCAAW,GAAX,UAAY,KAAU;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,wCAAU,GAAV,UAAW,KAAU;QACnB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;aACzC;SACF;IACH,CAAC;IA5CQ;QAAR,4DAAK,EAAE;;sDAAe;IACd;QAAR,4DAAK,EAAE;;yDAAkB;IACjB;QAAR,4DAAK,EAAE;;qDAAc;IACb;QAAR,4DAAK,EAAE;kCAAU,iFAAmB;wDAAC;IAC7B;QAAR,4DAAK,EAAE;;0DAAmB;IAClB;QAAR,4DAAK,EAAE;;iEAA0B;IACzB;QAAR,4DAAK,EAAE;;sDAAe;IACb;QAAT,6DAAM,EAAE;;4DAAkC;IAClC;QAAR,4DAAK,EAAE;;4DAAkB;IACjB;QAAR,4DAAK,EAAE;;+DAAgB;IACf;QAAR,4DAAK,EAAE;;yDAAoB;IACnB;QAAR,4DAAK,EAAE;;gEAAyB;IAZtB,mBAAmB;QAJ/B,gEAAS,CAAC;YACT,QAAQ,EAAE,aAAa;;SAExB,CAAC;OACW,mBAAmB,CA8C/B;IAAD,0BAAC;CAAA;AA9C+B;;;;;;;;ACPhC,uDAAuD,OAAO,sQ;;;;;;;;;;;;;;;;;;;;ACAS;AAEV;AAE7D;;GAEG;AAKH;IAAA;IASA,CAAC;IAPG;QADC,4DAAK,EAAE;;0DACa;IAGrB;QADC,4DAAK,EAAE;;yDACY;IAGpB;QADC,4DAAK,EAAE;kCACQ,iFAAmB;4DAAC;IAR3B,uBAAuB;QAJnC,gEAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;;SAE9B,CAAC;OACW,uBAAuB,CASnC;IAAD,8BAAC;CAAA;AATmC;;;;;;;;ACXpC,6LAA6L,cAAc,6B;;;;;;;;;;;;;;;;;;;;ACA1J;AACW;AAE5D;;GAEG;AAKH;IAAA;IAGA,CAAC;IADG;QADC,4DAAK,EAAE;kCACQ,iFAAmB;+DAAC;IAF3B,0BAA0B;QAJtC,gEAAS,CAAC;YACP,QAAQ,EAAE,oBAAoB;;SAEjC,CAAC;OACW,0BAA0B,CAGtC;IAAD,iCAAC;CAAA;AAHsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVI;AACwB;AAEnE,qDAAqD;AACrD,sCAAsC;AAEtC;IAAwC,sCAAkB;IAEtD;QAAA,YACI,iBAAO,SAEV;QADG,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;;IACvE,CAAC;IALQ,kBAAkB;QAD9B,iEAAU,EAAE;;OACA,kBAAkB,CAM9B;IAAD,yBAAC;CAAA,CANuC,yEAAkB,GAMzD;AAN8B;AAQxB,IAAM,sBAAsB,GAAG,EAAE,OAAO,EAAE,qEAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;;;;;;;;;ACdhG;AAAA;AAAgC;;;;;;;;;;;;;;;;;;;;;ACA8B;AACI;AACF;AACO;AACX;AAe5D;IAAA;IAUA,CAAC;qBAVY,YAAY;IACd,oBAAO,GAAd;QACI,OAAO;YACH,QAAQ,EAAE,cAAY;YACtB,SAAS,EAAE;gBACP,uFAAqB;gBACrB,qFAAsB;aACzB;SACJ,CAAC;IACN,CAAC;IATQ,YAAY;QAbxB,+DAAQ,CAAC;YACN,OAAO,EAAE;gBACP,4EAAe,CAAC,OAAO,CAAC;oBACtB,MAAM,EAAE;wBACJ,OAAO,EAAE,4EAAe;wBACxB,QAAQ,EAAE,iFAAkB;qBAC/B;iBACJ,CAAC;aACD;YACD,OAAO,EAAE;gBACL,4EAAe;aAClB;SACJ,CAAC;OACW,YAAY,CAUxB;IAAD,mBAAC;;CAAA;AAVwB;;;;;;;;;;;;;;;;;ACnBkB;AAE3C;;GAEG;AAEH;IAAA;IAiBA,CAAC;IAfU,2CAAW,GAAlB;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,6CAAa,GAApB,UAAqB,OAAe;QAEhC,QAAQ,OAAO,EAAE;YACb,KAAK,YAAY;gBACb,OAAO,QAAQ,CAAC;YACpB,KAAK,UAAU;gBACX,OAAO,oBAAoB,CAAC;YAChC;gBACI,OAAO,QAAQ,CAAC;SACvB;IACL,CAAC;IAhBQ,qBAAqB;QADjC,iEAAU,EAAE;OACA,qBAAqB,CAiBjC;IAAD,4BAAC;CAAA;AAjBiC;;;;;;;;;ACNlC;AAAA,mFAAmF;AACnF,8FAA8F;AAC9F,yEAAyE;AACzE,gFAAgF;AAEzE,IAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;;;;;;;;;ACPF;AAAA;AAAA;AAAA;AAAA;AAA+C;AAC4B;AAE9B;AACY;AAEzD,IAAI,8EAAW,CAAC,UAAU,EAAE;IAC1B,qEAAc,EAAE,CAAC;CAClB;AAED,yGAAsB,EAAE,CAAC,eAAe,CAAC,kEAAS,CAAC;KAClD,IAAI,CAAC;IACJ,IAAI,eAAe,IAAI,SAAS,EAAE;QAChC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAE;KACtD;AACH,CAAC,CAAC;KACC,KAAK,CAAC,aAAG,IAAI,cAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;ACfwC;AAE1E;IAAkC,gCAAgC;IAAlE;;IASA,CAAC;IAAD,mBAAC;AAAD,CAAC,CATiC,+FAAgC,GASjE;;;;;;;;;;ACZD;AAAA;IAAA;IAWA,CAAC;IAAD,eAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;ACX6D;AAK9D;IAAgC,8BAAoB;IAApD;;IASA,CAAC;IAAD,iBAAC;AAAD,CAAC,CAT+B,mFAAoB,GASnD;;;;;;;;;;ACXD;AAAA;IAAA;IAMA,CAAC;IAAD,gCAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;ACT6D;AAE9D;IAAgC,8BAAoB;IAalD;eACE,iBAAO;IACT,CAAC;IACH,iBAAC;AAAD,CAAC,CAhB+B,mFAAoB,GAgBnD;;;;;;;;;;AClBD;AAAA;IAAA;IASA,CAAC;IAHG,sCAAY,GAAZ;QACI,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,CAAC;IACL,sBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;ACRyE;AAM1E;IAAgC,8BAAgC;IAAhE;;IAeA,CAAC;IAAD,iBAAC;AAAD,CAAC,CAf+B,+FAAgC,GAe/D;;;;;;;;;;;;;;;;;;;;;;ACtByE;AAG1E;IAAwC,sCAAgC;IAAxE;;IAaA,CAAC;IAAD,yBAAC;AAAD,CAAC,CAbuC,+FAAgC,GAavE;;;;;;;;;;;;;;;;;;;;;;ACfyE;AAG1E;IAA0C,wCAAgC;IAA1E;;IAMA,CAAC;IAAD,2BAAC;AAAD,CAAC,CANyC,+FAAgC,GAMzE;;;;;;;;;;;;;;;;;;;;;;ACP6D;AAE9D;IAAkD,gDAAoB;IAAtE;;IAEA,CAAC;IAAD,mCAAC;AAAD,CAAC,CAFiD,mFAAoB,GAErE;;;;;;;;;;;;;;;;;;;;;;;;;;ACJD;IAAA;QACI,gBAAW,GAAoB,EAAE,CAAC;QAClC,cAAS,GAAmB,EAAE,CAAC;QAC/B,eAAU,GAAkB,EAAE,CAAC;IACnC,CAAC;IAAD,gBAAC;AAAD,CAAC;;AAGD;IAAA;IAMA,CAAC;IAAD,oBAAC;AAAD,CAAC;;AAED;IAAiC,+BAAa;IAA9C;QAAA,qEAGC;QADG,iBAAW,GAA4B,EAAE,CAAC;;IAC9C,CAAC;IAAD,kBAAC;AAAD,CAAC,CAHgC,aAAa,GAG7C;;AAGD;IAA2C,yCAAa;IAAxD;QAAA,qEAEC;QADG,YAAM,GAAY,IAAI,CAAC;;IAC3B,CAAC;IAAD,4BAAC;AAAD,CAAC,CAF0C,aAAa,GAEvD;;AAGD;IAAA;IAKA,CAAC;IAAD,kBAAC;AAAD,CAAC;;AAED;IAAA;QAYI,aAAQ,GAAU,KAAK,CAAC;IAK5B,CAAC;IAAD,cAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;ACpDyE;AAK1E;IAAwC,sCAAgC;IAAxE;QAAA,qEAWC;QAHG,mBAAa,GAAU,CAAC,CAAC;QACzB,mBAAa,GAAY,CAAC,CAAE;;IAEhC,CAAC;IAAD,yBAAC;AAAD,CAAC,CAXuC,+FAAgC,GAWvE;;;;;;;;;;;;;;;;;;;;;;;ACbD;IACI;IAAgB,CAAC;IAIrB,2BAAC;AAAD,CAAC;;AAEA;IAAsD,oDAAoB;IAA1E;;IAGA,CAAC;IAAD,uCAAC;AAAD,CAAC,CAHqD,oBAAoB,GAGzE;;AAGD;IAAsD,oDAAoB;IAA1E;;IAGA,CAAC;IAAD,uCAAC;AAAD,CAAC,CAHqD,oBAAoB,GAGzE;;;;;;;;;;;;;;;;;;;;;;ACpBwE;AAG1E;IAAkC,gCAAgC;IAAlE;;IAeA,CAAC;IAAD,mBAAC;AAAD,CAAC,CAfiC,+FAAgC,GAejE;;;;;;;;;;;;;;;;;;;;;;ACf6C;AAE9C;IAA0C,wCAAY;IAAtD;;IAcA,CAAC;IAAD,2BAAC;AAAD,CAAC,CAdyC,mEAAY,GAcrD;;;;;;;;;;ACnBD;AAAA;IAAA;IAUA,CAAC;IAAD,6BAAC;AAAD,CAAC;;;;;;;;;;ACRD;AAAA;IAAA;IAgBA,CAAC;IAAD,qBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBsE;AAC/B;AACc;AAItD;;;;GAIG;AAEH;IAII,sBAA0C,YAAyB;QAAnE,iBAKC;QALyC,iBAAY,GAAZ,YAAY,CAAa;QAC/D,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QACtC,KAAK,CAAC,SAAS,CAAC,aAAG;YACf,KAAI,CAAC,WAAW,GAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAU,CAAC,UAAU,CAAC;QACzD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gCAAS,GAAT,UAAU,KAAU;QAChB,OAAO,2CAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAbQ,YAAY;QADxB,2DAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAKT,wEAAM,CAAC,0EAAW,CAAC;yCAAuB,0EAAW;OAJ1D,YAAY,CAcxB;IAAD,mBAAC;CAAA;AAdwB;;;;;;;;;ACZzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4B;AACG;AACD;AACW;AACH;;;;;;;;;;;;;;;;;ACJc;AAIpD;IAAA;IAaA,CAAC;IAXG,+CAAS,GAAT,UAAU,GAAmB,EAAE,IAAS;QACpC,OAAO,GAAG,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;gBACzB,OAAO,CAAC,CAAC;aACZ;YACD,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;gBACzB,OAAO,CAAC,CAAC,CAAC;aACb;YACD,OAAO,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACP,CAAC;IAZQ,2BAA2B;QADvC,2DAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;OAC7B,2BAA2B,CAavC;IAAD,kCAAC;CAAA;AAbuC;;;;;;;;;;;;;;;;;ACJY;AAGpD;IAAA;IAuBA,CAAC;IAtBG,mCAAS,GAAT,UAAU,KAAoB,EAAE,IAAY,EAAE,KAAqB;QAArB,qCAAqB;QAC/D,KAAK,CAAC,IAAI,CAAC,UAAC,CAAM,EAAE,CAAM;YACtB,IAAI,KAAK,KAAK,MAAM,EAAE;gBAClB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;oBACnB,OAAO,CAAC,CAAC,CAAC;iBACb;qBAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC1B,OAAO,CAAC,CAAC;iBACZ;qBAAM;oBACH,OAAO,CAAC,CAAC;iBACZ;aACJ;iBAAM;gBACH,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;oBACnB,OAAO,CAAC,CAAC,CAAC;iBACb;qBAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC1B,OAAO,CAAC,CAAC;iBACZ;qBAAM;oBACH,OAAO,CAAC,CAAC;iBACZ;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACjB,CAAC;IAtBQ,eAAe;QAD3B,2DAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;OACrB,eAAe,CAuB3B;IAAD,sBAAC;CAAA;AAvB2B;;;;;;;;;;;;;;;;;ACHwB;AAGpD;IAAA;IASA,CAAC;IARG,kCAAS,GAAT,UAAU,KAAY,EAAE,UAAuB;QAAvB,4CAAuB;QAC3C,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,OAAO,KAAK,CAAC,MAAM,CAAC,cAAI,IAAM,QAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzH,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9G,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAFrE,CAEqE,CAAC,CAAC;SACxG;IAEL,CAAC;IARQ,cAAc;QAD1B,2DAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;OACpB,cAAc,CAS1B;IAAD,qBAAC;CAAA;AAT0B;;;;;;;;;;;;;;;;;ACHyB;AAGpD;IAAA;IAIA,CAAC;IAHG,oCAAS,GAAT,UAAU,KAAY,EAAE,UAAuB;QAAvB,4CAAuB;QAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,cAAI,IAAI,WAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAA7F,CAA6F,CAAC,CAAC;IAC/H,CAAC;IAHQ,gBAAgB;QAD5B,2DAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;OACtB,gBAAgB,CAI5B;IAAD,uBAAC;CAAA;AAJ4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHc;AACO;AACI;AACR;AAG9C;;GAEG;AAEH;IAAwC,sCAAoC;IAWxE,4BAAY,IAAgB,EAAE,YAA0B;eACpD,kBAAM,IAAI,EAAE,kBAAkB,EAAE,YAAY,CAAC;IACjD,CAAC;IAXD,iCAAI,GAAJ,UAAK,KAA6B;QACnC,OAAO,IAAI,CAAC,IAAI;aACZ,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,cAAc,EAAG,KAAK,CAAC,CAC5C;IACJ,CAAC;IANU,kBAAkB;QAD9B,iEAAU,EAAE;yCAYS,wEAAU,EAAgB,mEAAY;OAX/C,kBAAkB,CAc9B;IAAD,yBAAC;CAAA,CAduC,2EAAgB,GAcvD;AAd8B;;;;;;;;;;;;;;;;;;;;;;;;;;ACVsB;AACR;AAGiB;AACzB;AAEC;AAItC;;GAEG;AACH;IAeE,0BAAsB,IAAgB,EAAY,OAAe,EAAY,YAA0B;QAAvG,iBAMC;QANqB,SAAI,GAAJ,IAAI,CAAY;QAAY,YAAO,GAAP,OAAO,CAAQ;QAAY,iBAAY,GAAZ,YAAY,CAAc;QAbhG,wBAAmB,GAAG,IAAI,2DAAY,EAAU,CAAC;QAEjD,2BAAsB,GAAG,IAAI,2DAAY,EAAU,CAAC;QAEpD,yBAAoB,GAAG,IAAI,2DAAY,EAAU,CAAC;QAElD,oBAAe,GAAkC,EAAE,CAAC;QAI7D,0DAA0D;QAClD,oBAAe,GAAG,IAAI,CAAC;QAG3B,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,SAAS,CAAC,aAAG;YACpD,IAAI,GAAG,EAAE;gBACP,KAAI,CAAC,WAAW,EAAE,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,+BAAI,GAAX;QAAA,iBAOC;QANC,wCAAwC;QACxC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,IAAI;aACN,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,iCAAiC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;aAChF,SAAS,CAAC,UAAC,GAAQ,IAAK,YAAI,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAtD,CAAsD,CAAC,CAAC;IACrF,CAAC;IAEM,8BAAG,GAAV;QAAA,iBAoBC;QAnBC,kCAAkC;QAClC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExB,OAAO,mEAAU,CAAC,MAAM,CAAC,kBAAQ;YAC/B,IAAM,WAAW,GAAG,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,WAAW,EAAE;gBACf,uBAAuB;gBACvB,IAAM,MAAM,GAA0C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC9E,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAC,IAAI,QAAE,CAA0B,CAAC,OAAO,EAApC,CAAoC,CAAC,CAAC;gBAC9E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACvB;YAED,yCAAyC;YACzC,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,GAAG,iCAAiC,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,GAAQ;gBAC5G,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,qCAAU,GAAjB;QAAA,iBAWC;QAVC,kCAAkC;QAClC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExB,OAAO,mEAAU,CAAC,MAAM,CAAC,kBAAQ;YAC/B,4CAA4C;YAC5C,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,GAAG,8CAA8C,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,GAAQ;gBACzH,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,oDAAyB,GAAhC,UAAiC,EAAU;QAA3C,iBAiBC;QAhBC,4BAA4B;QAC5B,OAAO,mEAAU,CAAC,MAAM,CAAC,kBAAQ;YAC/B,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,GAAG,8CAA8C,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,GAAQ;gBACzH,IAAM,WAAW,GAAG,IAAI,KAAK,EAAoC,CAAC;gBAClE,KAAoB,UAAS,EAAT,QAAG,CAAC,KAAK,EAAT,cAAS,EAAT,IAAS;oBAAxB,IAAM,KAAK;oBACd,IAAI,KAAK,CAAC,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;wBAC/C,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACzB;iBACF;gBAED,IAAM,MAAM,GAAG,IAAI,gFAAe,EAAoC,CAAC;gBACvE,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;gBAC3B,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,sCAAW,GAAlB,UAAmB,EAAU;QAA7B,iBAYC;QAXC,4BAA4B;QAC5B,+DAA+D;QAC/D,OAAO,mEAAU,CAAC,MAAM,CAAC,kBAAQ;YAC/B,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,GAAG,8CAA8C,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,GAAQ;gBACzH,KAAoB,UAAS,EAAT,QAAG,CAAC,KAAK,EAAT,cAAS,EAAT,IAAS;oBAAxB,IAAM,KAAK;oBACd,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;wBACnB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACtB;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,+BAAI,GAAX,UAAY,EAAU;QAAtB,iBAcC;QAbC,4BAA4B;QAC5B,OAAO,mEAAU,CAAC,MAAM,CAAC,kBAAQ;YAC/B,IAAM,QAAQ,GAAG,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE;gBACZ,IAAI,QAAQ,SAAuC,CAAC;gBACpD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAChC,KAAoB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA7B,IAAM,KAAK;oBACd,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;wBACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACtB;iBACF;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,qCAAU,GAAjB,UAAkB,EAAU;QAC1B,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE;YACZ,IAAI,QAAQ,SAAuC,CAAC;YACpD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChC,KAAoB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA7B,IAAM,KAAK;gBACd,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBACrC,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6CAAkB,GAAzB,UAA0B,EAAU;QAApC,iBAqBC;QApBC,4BAA4B;QAC5B,OAAO,mEAAU,CAAC,MAAM,CAAC,kBAAQ;YAC/B,IAAM,QAAQ,GAAG,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE;gBACZ,IAAI,QAAQ,SAAmD,CAAC;gBAChE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAEhC,IAAM,WAAW,GAAG,IAAI,KAAK,EAAoC,CAAC;gBAClE,KAAoB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA7B,IAAM,KAAK;oBACd,IAAI,KAAK,CAAC,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;wBAC/C,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACzB;iBACF;gBAED,IAAM,MAAM,GAAG,IAAI,gFAAe,EAAoC,CAAC;gBACvE,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;gBAC3B,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,kCAAO,GAAd,UAAe,IAA2C;QACxD,KAAmB,UAAU,EAAV,SAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU;YAAxB,IAAM,IAAI;YACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjB;IACH,CAAC;IAEM,+CAAoB,GAA3B,UAA4B,YAAoB;QAC9C,qBAAqB;QACrB,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE;YACZ,IAAI,QAAQ,SAAmD,CAAC;YAChE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,QAAQ,EAAE;gBACZ,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA5B,IAAM,IAAI;oBACb,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;wBACtC,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;4BAChB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;yBACjC;qBACF;iBACF;gBACD,uBAAuB;gBACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC7D;SACF;IACH,CAAC;IAEM,6CAAkB,GAAzB,UAA0B,EAAU;QAApC,iBAoBC;QAnBC,4BAA4B;QAC5B,OAAO,mEAAU,CAAC,MAAM,CAAC,kBAAQ;YAC/B,IAAM,QAAQ,GAAG,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE;gBACZ,IAAI,QAAQ,SAAmD,CAAC;gBAChE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAEhC,IAAM,WAAW,GAAG,IAAI,KAAK,EAAoC,CAAC;gBAClE,KAAoB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA7B,IAAM,KAAK;oBACd,IAAI,KAAK,CAAC,YAAY,KAAK,EAAE,EAAE;wBAC7B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACzB;iBACF;gBACD,IAAM,MAAM,GAAG,IAAI,gFAAe,EAAoC,CAAC;gBACvE,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;gBAC3B,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,2CAAgB,GAAvB,UAAwB,UAAgC;QACtD,qBAAqB;QACrB,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE;YACZ,IAAI,QAAQ,SAAuC,CAAC;YACpD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,QAAQ,EAAE;gBACZ,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE;oBACnE,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;wBAA5B,IAAM,IAAI;wBACb,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,EAAE;4BAC7B,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gCAChB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gCAChC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gCAChC,MAAM;6BACP;yBACF;qBACF;iBACF;qBAAM;oBACL,oBAAoB;oBACpB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACjC;gBACD,uBAAuB;gBACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC7D;SACF;IACH,CAAC;IAEM,+BAAI,GAAX,UAAY,UAAgC;QAC1C,IAAI,UAAU,CAAC,EAAE,IAAI,IAAI,EAAE;YACzB,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC;YAC7B,UAAU,CAAC,EAAE,GAAG,mDAAI,CAAC,IAAI,EAAE,CAAC;SAC7B;aAAM;YACL,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC;SAC9B;QAED,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAElC,+CAA+C;QAC/C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEhC,OAAO,UAAU,CAAC,EAAE,CAAC;IACvB,CAAC;IAEM,iCAAM,GAAb,UAAc,IAA0B;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAEO,yCAAc,GAAtB,UAAuB,IAA0B;QAAjD,iBAaC;QAZC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,CACjD,cAAI;YACF,mEAAmE;YACnE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5B,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,EACD,aAAG;YACD,+BAA+B;YAC/B,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,sCAAW,GAAlB,UAAmB,WAA4B;QAA5B,iDAA4B;QAC7C,4BAA4B;QAC5B,qBAAqB;QACrB,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE;YACZ,IAAI,QAAQ,SAAuC,CAAC;YACpD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,QAAQ,EAAE;gBACZ,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA5B,IAAM,IAAI;oBACb,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;wBACxD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;qBAC3B;iBACF;aACF;SACF;QAED,qCAAqC;QACrC,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAED,yCAAc,GAAd,UAAe,SAAiB;QAC9B,sEAAsE;QACtE,IAAI;YACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/D;QAAC,OAAO,SAAS,EAAE;YAClB,8CAA8C;YAC9C,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/D;IACH,CAAC;IAED,2CAAgB,GAAhB,UAAiB,MAAc;QAE7B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;YAC3C,OAAO,MAAM,CAAC;SACf;QAED,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC1B,OAAO,MAAM,CAAC;SACf;aAAM;YACL,OAAO,8DAA4B,CAAC,MAAM,CAAC,CAAC;SAC7C;IACH,CAAC;IAED,yCAAc,GAAd,UAAe,SAAiB,EAAE,IAAY;QAC5C,mEAAmE;QACnE,IAAI,IAAI,CAAC,eAAe;YACtB,IAAI,GAAG,0DAAwB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACvC,IAAI;YACF,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACvC;QAAC,OAAO,SAAS,EAAE;YAClB,+CAA+C;SAChD;IACH,CAAC;IAhUD;QADC,6DAAM,EAAE;;iEAC+C;IAExD;QADC,6DAAM,EAAE;;oEACkD;IAE3D;QADC,6DAAM,EAAE;;kEACgD;IA6T3D,uBAAC;CAAA;AAnU4B;;;;;;;;;;;;;;;;;;;;;;;ACVyB;AAGX;AACa;AACZ;AAG5C;;GAEG;AAEH;IAWI,iCAAoB,iBAAoC,EAAU,WAAwB;QAA1F,iBAGC;QAHmB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAV1F,oBAAe,GAAG,CAAC,CAAC;QAGpB,oCAAoC;QAEpC,qBAAgB,GAA8B,EAAE,CAAC;QACjD,oBAAe,GAA8B,EAAE,CAAC;QAK5C,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC,KAAqB,EAArD,CAAqD,CAAC,CAAC;QAChG,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,cAAc,GAAG,GAAG,CAAC,KAAe,EAAzC,CAAyC,CAAC,CAAC;IAClF,CAAC;IAGD;;;OAGG;IACH,wCAAM,GAAN,UAAO,UAAsB;QAA7B,iBA8NC;QA7NG,kBAAkB;QAClB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAEzB,4CAA4C;QAC5C,IAAI,UAAU,CAAC,YAAY,KAAK,MAAM,EAAE;YACpC,mCAAmC;YACnC,oBAAoB;YACpB,4BAA4B;YAC5B,6DAA6D;YAE7D,6CAA6C;YAC7C,IAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,WAAC,IAAI,YAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAA7F,CAA6F,CAAC,CAAC;YAErJ,yDAAyD;YACzD,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,cAAc,CAAC,CAAC;YAEjD,KAAmB,UAA2C,EAA3C,eAAU,CAAC,cAAc,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,EAA3C,cAA2C,EAA3C,IAA2C;gBAAzD,IAAM,IAAI;gBACX,+CAA+C;gBAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;aAC/D;SACJ;QAED,oCAAoC;QACpC,IAAI,UAAU,CAAC,YAAY,KAAK,MAAM,EAAE;YACpC,mCAAmC;YACnC,oBAAoB;YACpB,4BAA4B;YAC5B,6DAA6D;YAE7D,sBAAsB;YACtB,IAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,WAAC,IAAM,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,aAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAvB,CAAuB,CAAC,CAAC;YACzH,6CAA6C;YAC7C,IAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,WAAC,IAAI,YAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAA7F,CAA6F,CAAC,CAAC;YAErJ,yDAAyD;YACzD,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,EAAQ,cAAc,CAAC,CAAC;YAEjD,KAAmB,UAA2C,EAA3C,eAAU,CAAC,cAAc,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,EAA3C,cAA2C,EAA3C,IAA2C;gBAAzD,IAAM,IAAI;gBACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;gBACxC,+CAA+C;gBAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;aACvD;SACJ;gCAIU,IAAI;YACX,OAAK,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,OAAK,oBAAoB,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,EAA1B,CAA0B,CAAC,CAAC;QACtF,CAAC;;QAJD,wBAAwB;QACxB,KAAmB,UAAsB,EAAtB,eAAU,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;YAApC,IAAM,IAAI;oBAAJ,IAAI;SAGd;gCAEU,QAAQ;YACf,QAAQ,CAAC,IAAI,GAAG,OAAK,cAAc,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAM,EAAxB,CAAwB,CAAC,CAAC;QAC5E,CAAC;;QAFD,KAAuB,UAAqB,EAArB,eAAU,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;oBAAR,QAAQ;SAElB;QAED,0BAA0B;QAE1B,IAAI,MAAM,GAAmB,IAAI,KAAK,EAAgB,CAAC;QAEvD,KAAmB,UAA2C,EAA3C,eAAU,CAAC,cAAc,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,EAA3C,cAA2C,EAA3C,IAA2C;YAAzD,IAAM,IAAI;YACX,gBAAgB;YAChB,+BAA+B;YAC/B,gEAAgE;YAChE,IAAM,SAAS,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YACvD,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;gBAChC,iBAAiB;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;oBACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;iBACzC;aACJ;YAED,IAAM,eAAe,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACzC,IAAI,eAAe,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;aACzC;iBAAM,IAAI,eAAe,GAAG,CAAC,EAAE;gBAC5B,IAAM,WAAW,GAAG,EAAE,GAAG,eAAe,CAAC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE;oBACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;iBACrD;aACJ;SAEJ;QAED,IAAM,cAAc,GAAW,MAAM,CAAC,MAAM,CAAC;QAE7C,0CAA0C;QAC1C,IAAM,SAAS,GAAG,CAAC,CAAC;QACpB,IAAI,UAAU,CAAC,aAAa,KAAK,CAAC,EAAE;YAChC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,gBAAgB;SACjD;gCAEU,QAAQ;YACf,iCAAiC;YACjC,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE;;aAErE;YAED,IAAM,SAAS,GAAG,OAAK,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YAEvH,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;YAC/C,uBAAuB;YACvB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,YAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAhD,CAAgD,CAAC,CAAC;YAEnF,6HAA6H;YAC7H,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;gBAC1B,EAAE;gBACF,kHAAkH;gBAClH,yCAAyC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;oBAChC,IAAM,OAAO,GAAiB,OAAK,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;oBAC7E,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;oBACrB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACrC;aACJ;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,YAAY,EAAE;oBAClD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnC,oFAAoF;wBACpF,IAAI,KAAK,GAAG,KAAK,CAAC;wBAClB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;4BACpB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,WAAC,IAAI,QAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAM,EAArC,CAAqC,CAAC,GAAG,CAAC,CAAC,EAAE;gCAC5E,CAAC,EAAE,CAAC;6BACP;iCAAM;gCACH,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gCACpC,KAAK,GAAG,IAAI,CAAC;6BAChB;yBACJ;wBACD,uDAAuD;qBAE1D;yBAAM;wBAEH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBACnD;iBACJ;aACJ;QACL,CAAC;;QA7CD,kCAAkC;QAClC,KAAuB,UAAqB,EAArB,eAAU,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;oBAAR,QAAQ;SA4ClB;QAKD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,eAAe;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC9B,QAAQ,EAAE,CAAC;SAEd;QAGD,sBAAsB;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,sCAAsC;gBACtC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;oBACrB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;wBAClE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;wBACtB,KAAK,GAAG,IAAI,CAAC;qBAChB;oBACD,CAAC,EAAE,CAAC;iBACP;aACJ;SACJ;QAKD,0BAA0B;QAC1B,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,EAAE;YAChC,IAAM,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC,UAAU,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;YACzE,IAAM,UAAU,GAAG,cAAc,GAAG,YAAY,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,IAAI,UAAU,EAAE;gBACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;aACtC;SACJ;QAGD,6BAA6B;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,0CAA0C;YAE1C,iEAAiE;YACjE,IAAM,WAAW,GAA2B,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvF,gCAAgC;YAChC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;gBACtB,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;SACnE;QAID,IAAM,WAAW,GAAmB,IAAI,KAAK,EAAgB,CAAC;QAC9D,iBAAiB;QACjB,KAA2B,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM;YAA5B,IAAM,YAAY;YACnB,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACzC,KAAmB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG;gBAAjB,IAAM,IAAI;gBACX,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;QAGD,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAI9D,sCAAsC;QACxC,6EAA6E;QAC7E,qGAAqG;QACnG,yBAAyB;QAGzB,qCAAqC;QACzC,uDAAuD;QAGnD,OAAO,eAAe,CAAC;IAE3B,CAAC;IACD;;;OAGG;IACH,0DAAwB,GAAxB,UAAyB,UAAsB,EAC3C,UAAmB;QACnB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAuB,UAAqB,EAArB,eAAU,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACf,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;SACtH;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,+DAA6B,GAA7B,UAA8B,UAAU;QACpC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAuB,UAAqB,EAArB,eAAU,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;YACf,qBAAqB;YACrB,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAC7G,uBAAuB;YACvB,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;SACjH;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,wDAAsB,GAAtB,UAAuB,QAA4B,EAC/C,aAAqB,EACrB,iBAAyB,EACzB,UAAmB;QACnB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAClB,OAAO,CAAC,CAAC;SACZ;QACD,IAAM,MAAM,GAAW,QAAQ,CAAC,QAAQ,CAAC;QACzC,IAAM,UAAU,GAAW,QAAQ,CAAC,YAAY,CAAC;QACjD,IAAM,QAAQ,GAAW,QAAQ,CAAC,UAAU,CAAC;QAC7C,IAAM,QAAQ,GAAW,QAAQ,CAAC,SAAS,CAAC;QAC5C,IAAM,SAAS,GAAW,QAAQ,CAAC,SAAS,CAAC;QAE7C,IAAI,QAAQ,GAAW,MAAM,CAAC;QAE9B,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE;YAChC,OAAO,CAAC,CAAC;SACZ;QAED,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;SAClC;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE;YACvB,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;SACrD;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAElE,QAAQ,iBAAiB,EAAE;YACvB,KAAK,KAAK;gBACN,SAAS,GAAG,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM;YACV,KAAK,MAAM;gBACP,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;gBAC3B,MAAM;YACV,KAAK,OAAO;gBACR,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;gBAC3B,MAAM;SACb;QAED,oCAAoC;QACpC,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,EAAE;YAClC,UAAU;YACV,IAAI,aAAa,GAAG,CAAC,EAAE;gBACnB,SAAS,GAAG,SAAS,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;aAChD;iBAAM;gBACH,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;aAC9B;SACJ;aAAM,EAAE,QAAQ;YACb,IAAI,SAAS,GAAG,CAAC,EAAE;gBACf,SAAS,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;aAC5C;SACJ;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEjC,CAAC;IAED;;;;OAIG;IACH,2CAAS,GAAT,UAAU,QAAwB,EAAE,UAAsB;QACtD,IAAM,MAAM,GAAmB,IAAI,KAAK,EAAgB,CAAC;gCAG9C,UAAU;YACjB,6BAA6B;YAC7B,IAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,YAAY,KAAK,UAAU,CAAC,EAAE,EAAhC,CAAgC,CAAC,CAAC;YACpF,qCAAqC;YAErC,mCAAmC;YACnC,IAAM,SAAS,GAAG,OAAK,sBAAsB,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;YAChF,KAAmB,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS;gBAAvB,IAAM,IAAI;gBACX,0BAA0B;gBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;QACL,CAAC;;QAbD,uBAAuB;QACvB,EAAE;QACF,KAAyB,UAAsB,EAAtB,eAAU,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;YAA1C,IAAM,UAAU;oBAAV,UAAU;SAWpB;QAED,IAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,CAAC,YAAY,EAAf,CAAe,CAAC,CAAC;QAE3D,KAAmB,UAAY,EAAZ,6BAAY,EAAZ,0BAAY,EAAZ,IAAY;YAA1B,IAAM,IAAI;YACX,0BAA0B;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD;;;;OAIG;IACH,wDAAsB,GAAtB,UAAuB,oBAAoC,EAAE,UAAgC;QACzF,IAAM,MAAM,GAAmB,IAAI,KAAK,EAAgB,CAAC;QACzD,gBAAgB;QAChB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YACjE,qBAAqB;YACrB,IAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,YAAY,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC3B,aAAa;gBACb,SAAS;aACZ;YAGD,IAAI,MAAM,KAAK,CAAC,EAAE;gBACd,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC;gBAGlD,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7K,kCAAkC;gBAClC,IAAM,mBAAmB,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;gBACvF,YAAY,CAAC,UAAU,GAAG,mBAAmB,CAAC;gBAC9C,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC;aAE7B;iBAAM;gBACH,0DAA0D;gBAC1D,IAAM,eAAe,GAAG,EAAE,CAAC;gBAC3B,8DAA8D;gBAC9D,IAAI,aAAa,GAAG,oBAAoB,CAAC,MAAM,GAAG,MAAM,CAAC;gBACzD,IAAI,aAAa,GAAG,eAAe,EAAE;oBACjC,aAAa,GAAG,eAAe,CAAC;iBACnC;gBAED,mBAAmB;gBACnB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,aAAa,GAAG,CAAC,CAAC;gBACtB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,WAAW,GAAG,CAAC,CAAC;gBAGpB,oEAAoE;gBACpE,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;oBAClD,qEAAqE;oBACrE,IAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC;oBAEnC,UAAU,IAAI,QAAQ,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oBACzL,SAAS,IAAI,QAAQ,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACtL,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;oBAC/L,WAAW,IAAI,QAAQ,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;oBAC5L,aAAa,IAAI,QAAQ,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;oBAClM,SAAS,IAAI,QAAQ,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACtL,WAAW,IAAI,QAAQ,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;iBAE/L;gBACD,2BAA2B;gBAC3B,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBAMnH,2DAA2D;gBAC3D,IAAM,QAAQ,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBAChG,4FAA4F;gBAC5F,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;gBACtF,gDAAgD;gBAChD,IAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAClD,qBAAqB;gBACrB,IAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACxD,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;gBAE7E,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC;gBACjC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACjC,IAAI,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE;oBACrC,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC;oBAClD,YAAY,CAAC,UAAU,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;oBAE3F,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;wBAC3D,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC7K,kCAAkC;wBAClC,IAAM,mBAAmB,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;wBACvF,YAAY,CAAC,UAAU,GAAG,mBAAmB,CAAC;qBACjD;iBAKJ;qBAAM;oBACH,YAAY,CAAC,SAAS,GAAG,QAAQ,CAAC;oBAClC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;iBAC/B;aACJ;YACD,qEAAqE;YACrE,IAAM,GAAG,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9F,6BAA6B;YAC7B,YAAY,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1E,YAAY,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,eAAe,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YAC5G,YAAY,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;YACxG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC7B;QAGD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,+DAA6B,GAA7B,UAA8B,UAAgC,EAAE,QAAgB,EAAE,MAAc;QAC5F,IAAI,MAAM,KAAK,QAAQ,EAAE;YACrB,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACjD;QAED,IAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,KAAK,MAAM,EAAnB,CAAmB,CAAC,CAAC;QAChF,IAAI,QAAQ,IAAI,IAAI,EAAE;YAClB,OAAO,EAAE,CAAC;SACb;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,6CAAW,GAAX,UAAY,EAAQ,EAAE,EAAQ;QAC1B,IAAI,EAAE,GAAG,EAAE,EAAE;YACT,OAAO,CAAC,CAAC,CAAC;SACb;aAAM,IAAI,EAAE,GAAG,EAAE,EAAE;YAChB,OAAO,CAAC,CAAC;SACZ;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;IAED;;;;;OAKG;IACH,4CAAU,GAAV,UAAW,IAAY,EAAE,MAAc,EAAE,IAAoB;QACzD,IAAM,IAAI,GAAiB,IAAI,0EAAY,EAAE,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,0BAA0B;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;QAC/B,oBAAoB;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,gDAAc,GAAd,UAAe,UAAsB,EAAE,IAAkB;QACrD,IAAM,MAAM,GAAG,IAAI,KAAK,EAAwB,CAAC;QACjD,KAAyB,UAAsB,EAAtB,eAAU,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;YAA1C,IAAM,UAAU;YACjB,IAAI,KAAK,GAAG,IAAI,CAAC;oCACN,IAAI;gBAEX,IAAI,UAAU,CAAC,wBAAwB,CAAC,SAAS,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAhB,CAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC7E,KAAK,GAAG,KAAK,CAAC;iBACjB;YAEL,CAAC;YAND,KAAmB,UAAU,EAAV,SAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU;gBAAxB,IAAM,IAAI;wBAAJ,IAAI;aAMd;YACD,IAAI,KAAK,EAAE;gBACP,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC3B;SAEJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,+CAAa,GAAb,UAAc,WAAmC;QAC7C,kCAAkC;QAClC,oBAAoB;QACpB,IAAI,UAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAExB,uDAAuD;YACvD,wCAAwC;YACxC,KAAmB,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW;gBAAzB,IAAM,IAAI;gBACX,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;oBACvE,UAAU,GAAG,IAAI,CAAC;iBACrB;aACJ;SAEJ;QAED,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,EAAE;YACjE,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAE;SAChD;aACI;YACD,qCAAqC;YACrC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;gBAClC,SAAS,GAAG,CAAC,CAAC;aACjB;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;gBACzC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;gBACzC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;aACrB;SACJ;QAGD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;QACxF,+CAA+C;QAC/C,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,2CAAS,GAAT,UAAU,KAAmB;QACzB,IAAM,MAAM,GAAmB,IAAI,KAAK,EAAgB,CAAC;QACzD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAM,IAAI,GAAG,IAAI,0EAAY,EAAE,CAAC;gBAChC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;gBACrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAErB;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,+CAAa,GAAb,UAAc,KAAW;QACrB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAID;;;OAGG;IACH,mDAAiB,GAAjB,UAAkB,MAAM;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK;YACxC,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC;YACvB,IAAI,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;YAC1B,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,yCAAO,GAAP,UAAQ,IAAI;QACR,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,KAAK;YACtC,OAAO,GAAG,GAAG,KAAK,CAAC;QACvB,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,OAAO,GAAG,CAAC;IACf,CAAC;IAlpBQ,uBAAuB;QADnC,iEAAU,EAAE;yCAY8B,6EAAiB,EAAuB,iEAAW;OAXjF,uBAAuB,CAkzBnC;IAAD,8BAAC;CAAA;AAlzBmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBO;AAOe;AAGY;AACZ;AACF;AACZ;AACJ;AAC4B;AACE;AACtE;;GAEG;AAEH;IASI,yCAAY,iBAAoC,EAAE,WAAwB,EAC9D,kBAAsC,EACtC,uBAAgD;QAF5D,iBAMC;QALW,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,4BAAuB,GAAvB,uBAAuB,CAAyB;QACxD,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC,KAAqB,EAArD,CAAqD,CAAC,CAAC;QAChG,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,cAAc,GAAG,GAAG,CAAC,KAAe,EAAzC,CAAyC,CAAC,CAAC;QAC9E,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG,IAAI,YAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAsB,EAA7C,CAA6C,CAAC,CAAC;IAC7F,CAAC;IAED,gDAAM,GAAN,UAAO,UAAsB;QACzB,2BAA2B;QAC3B,IAAI,UAAU,CAAC,mBAAmB,IAAI,UAAU,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7E,yBAAyB;YACzB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC/C,qCAAqC;YACrC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAExC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAC3C,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YACzC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YAC5C,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YACrC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;YAE/C,wBAAwB;YACxB,wCAAwC;YACxC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACpC,wCAAwC;YACxC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAChD,2CAA2C;YAE3C,OAAO,QAAQ,CAAC;YAEhB,oBAAoB;SACvB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,mDAAS,GAAT,UAAU,QAAgC;QACtC,IAAM,WAAW,GAA2B,IAAI,KAAK,EAAwB,CAAC;QAC9E,iBAAiB;QACjB,KAA2B,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ;YAA9B,IAAM,YAAY;YACnB,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACzC,KAAmB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG;gBAAjB,IAAM,IAAI;gBACX,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;QACD,OAAO,WAAW,CAAE;IACxB,CAAC;IAGD,mDAAS,GAAT,UAAU,KAA2B;QACjC,IAAM,MAAM,GAA2B,IAAI,KAAK,EAAwB,CAAC;QACzE,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,IAAI,GAAG,IAAI,0FAAoB,EAAE,CAAC;gBACtC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAyB,CAAC;gBACjE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAID,+DAAqB,GAArB,UAAsB,QAAgC;QAAtD,iBAQC;QAPG,qEAAqE;QACrE,QAAQ,CAAC,OAAO,CAAC,iBAAO;YACpB,IAAI,IAAI,GAAG,KAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,CAAC,SAAS,GAAG,2CAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YACjF,OAAO,CAAC,UAAU,GAAG,2CAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,2CAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,qDAAW,GAAX,UAAY,QAAgC;QAA5C,iBAiDC;QA/CG,6CAA6C;QAC7C,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,IAAI,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAO,IAAI,cAAO,CAAC,OAAO,EAAf,CAAe,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YAChF,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;aAC9B;SACJ;QAED,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACpC,IAAI,YAAkB,CAAC;QACvB,YAAY,CAAC,OAAO,CAAC,iBAAO;YACxB,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,OAAO,IAAI,OAAO,EAApB,CAAoB,CAAC,CAAC;YAC5D,IAAI,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,IAAI,oBAAoB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtD,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAEpC,IAAI,IAAI,GAAG,KAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAE/B,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,aAAa,IAAI,oBAAoB,IAAI,gBAAgB,CAAC,EAAE;gBAChG,IAAI,OAAO,GAAG,YAAY;oBACtB,OAAO,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,GAAG,YAAY,CAAC;qBAC9D,IAAI,2CAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,2CAAM,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;oBAChG,OAAO,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,GAAG,2CAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC;;oBAEtI,OAAO,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC;gBAC9D,QAAQ,GAAG,OAAO,CAAC;aACtB;YAED,IAAI,MAAM,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;YACtC,UAAU,CAAC,OAAO,CAAC,iBAAO;gBACtB,OAAO,CAAC,GAAG,GAAG,2CAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;gBACxK,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;YAC/B,CAAC,CAAC;QAEN,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ;IACnB,CAAC;IAID,4DAAkB,GAAlB,UAAmB,QAAgC;QAC/C,6DAA6D;QAC7D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAClD,IAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEhC,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,EAAE;gBACvB,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;aACvB;iBACI;gBACD,IAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAEtC,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,EAAE;oBAC1F,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;iBAC3C;qBAAM,IAAI,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE;oBACtE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;iBAC3C;qBAAM;oBACH,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;iBACvC;aACJ;YACD,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAClF,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,GAAE,CAAC,CAAC,CAAC,EAAE,CAAE;SAClF;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAGD,yDAAe,GAAf,UAAgB,WAAmC;QAC/C,gDAAgD;QAEhD,IAAI,OAAa,CAAC;gCAET,KAAK;YACV,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAzC,CAAyC,CAAC,CAAC;YAC/E,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,6BAA6B;YACpD,IAAI,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,MAAI,GAAG,OAAK,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,EAAE;gBAC3B,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,EAAE;oBACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE;wBACpC,OAAO,CAAC,OAAO,GAAG,CAAC,kDAAU,CAAC,KAAK,CAAC,GAAG,CAAC,WAAC,IAAI,kDAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAf,CAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAI,CAAC,EAAE;4BAC1F,MAAI,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,GAAG,MAAI,CAAC,OAAO;4BAChC,IAAI,CAAC,GAAG,CAAC,MAAI,CAAC,QAAQ,EAAE,MAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,MAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;qBAC3G;yBAAM;wBACH,OAAO,CAAC,OAAO,GAAG,CAAC,kDAAU,CAAC,KAAK,CAAC,GAAG,CAAC,WAAC,IAAI,kDAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAf,CAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAI,CAAC,EAAE;4BAC1F,MAAI,CAAC,EAAE,GAAG,MAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;qBAClD;iBACJ;qBAAM;oBAEH,OAAO,GAAG,kDAAU,CAAC,WAAW,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,EAApC,CAAoC,CAAC,CAAC,GAAG,CAAC,WAAC,IAAI,kDAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAjB,CAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBAEzH,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE;wBAEpC,OAAO,CAAC,OAAO,GAAG,kDAAU,CAAC,kDAAU,CAAC,KAAK,CAAC,GAAG,CAAC,WAAC,IAAI,kDAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAf,CAAe,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAI,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,2CAAM,CAAC,OAAO,CAAC,CAAC;6BACnJ,GAAG,CAAC,MAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAI,CAAC,QAAQ,EAAE,MAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,MAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;6BAC7G,MAAM,EAAE,CAAC;qBACjB;yBACI;wBAED,OAAO,CAAC,OAAO,GAAG,kDAAU,CAAC,CAAC,kDAAU,CAAC,KAAK,CAAC,GAAG,CAAC,WAAC,IAAI,kDAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAf,CAAe,CAAC,CAAC,CAAC;6BACzE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAI,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,2CAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;qBAC3I;oBAEL,2CAA2C;oBAC3C,gBAAgB;oBAChB,4CAA4C;oBAC5C,oDAAoD;oBACpD,gEAAgE;oBAChE,4IAA4I;oBAC5I,uCAAuC;oBACvC,4KAA4K;oBAC5K,2DAA2D;oBAC3D,8IAA8I;oBAC9I,6KAA6K;oBAK7K,gBAAgB;iBACf;aACJ;iBACI;gBACD,8CAA8C;gBAC9C,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,EAA1C,CAA0C,CAAC,CAAC,OAAO,CAAC;gBACpF,2CAA2C;gBAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE;oBACpC,OAAO,CAAC,OAAO,GAAG,2CAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,GAAG,MAAI,CAAC,OAAO;wBAC7D,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAI,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAI,CAAC,QAAQ,EAAE,MAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;iBAEjI;qBAAM;oBACH,OAAO,CAAC,OAAO,GAAG,2CAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC7I;aACJ;QACL,CAAC;;QA9DD,gBAAgB;QAChB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE;oBAA9C,KAAK;SA6Db;QAED,OAAO,WAAW,CAAC;IAEvB,CAAC;IACD,wDAAc,GAAd,UAAe,UAAsB;QACjC,+FAA+F;QAC/F,IAAI,MAAM,GAA2B,EAAE,CAAC;QACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,UAAU,CAAC,sBAAsB,CAAC,OAAO,CAAC,YAAE;YACxC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAChC,IAAI,GAAG,GAAG,IAAI,0FAAoB,EAAE,CAAC;oBACrC,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrC,GAAG,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/C,GAAG,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/C,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC3C,GAAG,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;oBAC1B,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpB;aACJ;QACL,CAAC,CAAC;QAEF,sDAAsD;QACtD,IAAI,UAAU,CAAC,mBAAmB,IAAI,UAAU,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7E,kBAAkB;YAClB,MAAM,CAAC,OAAO,CAAC,UAAC,OAAO,EAAE,KAAK;gBAC1B,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,mBAAmB,CAAC,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACjG,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,mBAAmB,CAAC,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC1G,CAAC,CAAC,CAAC;SACN;gCAGU,QAAQ;YACf,iCAAiC;YACjC,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;;aAEtE;YAED,IAAM,SAAS,GAAG,OAAK,uBAAuB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAE9I,uBAAuB;YACvB,qFAAqF;YAErF,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;YAC/C,iGAAiG;YACjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,YAAY,EAAE;gBAClD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,oFAAoF;oBACpF,IAAI,KAAK,GAAG,KAAK,CAAC;oBAClB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;wBACpB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,WAAC,IAAI,QAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAM,EAArC,CAAqC,CAAC,GAAG,CAAC,CAAC,EAAE;4BAC5E,CAAC,EAAE,CAAC;yBACP;6BAAM;4BACH,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BACpC,KAAK,GAAG,IAAI,CAAC;yBAChB;qBACJ;oBACD,uDAAuD;iBAC1D;qBAAM;oBACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACnD;aACJ;QACL,CAAC;;QAhCD,kCAAkC;QAClC,KAAuB,UAAqB,EAArB,eAAU,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;YAAvC,IAAM,QAAQ;oBAAR,QAAQ;SA+BlB;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAiBD,wDAAc,GAAd,UAAe,UAAsB;QAArC,iBAqBC;QApBG,MAAM;QACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,iBAAO;YAC1C,IAAI,KAAK,GAAG,IAAI,8EAAc,EAAE,CAAC;YACjC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YACzB,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,aAAa,EAAvB,CAAuB,CAAC,CAAC,QAAQ,CAAC;YACxG,KAAK,CAAC,EAAE,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,cAAc,EAAxB,CAAwB,CAAC,CAAC,QAAQ,CAAC;YAC1E,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,eAAe,EAAzB,CAAyB,CAAC,CAAC,QAAQ,CAAC;YAC/E,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,iBAAiB,EAA3B,CAA2B,CAAC,CAAC,QAAQ,CAAC;YACjF,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,eAAe,EAAzB,CAAyB,CAAC,CAAC,QAAQ,CAAC;YAC/E,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,KAAK,CAAC,EAAE,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,gBAAgB,EAA1B,CAA0B,CAAC,CAAC,QAAQ,CAAC;YAC5E,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACjG,KAAK,CAAC,OAAO,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,YAAY,EAAtB,CAAsB,CAAC,CAAC,QAAQ,CAAC;YAC7E,KAAK,CAAC,cAAc,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,eAAe,EAAzB,CAAyB,CAAC,CAAC,QAAQ,CAAC;YACvF,KAAK,CAAC,WAAW,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,gBAAgB,EAA1B,CAA0B,CAAC,CAAC,QAAQ,CAAC;YACrF,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IAEP,CAAC;IAED,0DAAgB,GAAhB,UAAiB,QAAQ;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,EAAE,EAA3B,CAA2B,CAAC,CAAC;IAC9D,CAAC;IAGD,uDAAa,GAAb,UAAc,WAAmC;QAAjD,iBA+BC;QA9BG,4DAA4D;QAC5D,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,WAAW,CAAC;QAChE,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE9C;;;;UAIE;QAEF,WAAW,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,KAAK;YAC3B,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,eAAe,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACH,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;oBACrH,eAAe,IAAI,CAAC,CAAC;iBACxB;qBAAM;oBACH,kBAAkB;oBAClB,kBAAkB,GAAG,GAAG,CAAC,KAAK,CAAC;oBAC/B,aAAa,IAAI,CAAC,CAAC;oBACnB,eAAe,GAAG,CAAC,CAAC;iBACvB;aACJ;YACD,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;YAC7B,GAAG,CAAC,OAAO,GAAG,KAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,eAAe,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACvB,CAAC;IAID,yDAAe,GAAf,UAAgB,kBAAwB,EAAE,EAAU,EAAE,QAA4B;QAC9E,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,QAAQ,CAAC,iBAAiB,EAAE;YAC5B,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;SAC7I;aACI;YACD,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACxF;QAED,2DAA2D;QAC3D,IAAI,CAAC,GAAG,2CAAM,CAAC,kBAAkB,CAAC,CAAC;QACnC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxB,mEAAmE;QACnE,4DAA4D;QAC5D,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAGD,2DAAiB,GAAjB,UAAkB,WAAmC;QACjD,cAAc;QACd,IAAI,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrD,IAAI,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;gBAC7C,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;gBAC3C,UAAU,GAAG,CAAC,CAAC;gBACf,eAAe,GAAG,CAAC,CAAC;aACvB;iBAAM;gBACH,IAAI,UAAU,IAAI,EAAE,EAAE;oBAClB,UAAU,GAAG,CAAC,CAAC;oBACf,eAAe,EAAE,CAAC;iBACrB;qBAAM;oBACH,UAAU,EAAE,CAAC;iBAChB;aACJ;YACD,WAAW,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC;SACrD;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;IAGD;;;;MAIE;IACF,mDAAS,GAAT,UAAU,QAAgC,EAAE,UAAsB;QAAlE,iBAyCC;QAxCG,IAAM,MAAM,GAA2B,IAAI,KAAK,EAAwB,CAAC;QACzE,uBAAuB;QACvB,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAC,QAAQ;oCACnC,KAAK;gBACV,IAAM,oBAAoB,GAAI,QAAQ,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,EAApD,CAAoD,CAAC,CAAC;gBACxG,mCAAmC;gBAGhC,OAAO,GAAI,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAC,IAAG,QAAC,CAAC,IAAI,IAAI,CAAC,EAAX,CAAW,CAAC,CAAC;gBAC3D,UAAU,GAAG,IAAI,0FAAoB,EAAE,CAAC;gBAC5C,UAAU,CAAC,UAAU,GAAG,OAAO,CAAE;gBAKjC,+CAA+C;gBAC/C,oBAAoB,CAAC,OAAO,CAAC,iBAAO;oBAChC,IAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;oBACtC,IAAM,WAAW,GAAG,2CAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;oBACtE,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChD,CAAC,CAAG,CAAC;gBAGL,IAAM,SAAS,GAAG,KAAI,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;gBACxG,KAAmB,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS;oBAAvB,IAAM,IAAI;oBACX,0BAA0B;oBAC1B,MAAM,CAAC,IAAI,CAAC,IAA4B,CAAC,CAAC;iBAC/C;YACH,CAAC;gBApBO,OAAO,EACP,UAAU;YANlB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,aAAa,GAAC,CAAC,EAAE,KAAK,EAAE;wBAApD,KAAK;aAyBb;QACL,CAAC,CAAC,CAAC;QAEX;;;;;;;UAOE;QACM,OAAO,MAAM,CAAC;IAClB,CAAC;IAtdQ,+BAA+B;QAD3C,iEAAU,EAAE;yCAUsB,6EAAiB,EAAe,iEAAW;YAC1C,+EAAkB;YACb,yFAAuB;OAXnD,+BAA+B,CA+f3C;IAAD,sCAAC;CAAA;AA/f2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBD;AACO;AAEI;AACR;AAC9C;;GAEG;AAEH;IAAoC,kCAAyB;IAEzD,wBAAY,IAAgB,EAAE,YAA0B;eACpD,kBAAM,IAAI,EAAE,gBAAgB,EAAE,YAAY,CAAC;IAC/C,CAAC;IAJQ,cAAc;QAD1B,iEAAU,EAAE;yCAGS,wEAAU,EAAgB,mEAAY;OAF/C,cAAc,CAK1B;IAAD,qBAAC;CAAA,CALmC,2EAAgB,GAKnD;AAL0B;;;;;;;;;;;;;;;;;;;ACRgB;AAGb;AAI9B;IADA;QAGE,cAAS,GAAG,wBAAwB,CAAC;QACrC,cAAS,GAAG,uBAAuB,CAAC;QACpC,eAAU,GAAG,uBAAuB,CAAC;QACvC,yCAAyC;QACvC,kBAAa,GAAG,uBAAuB,CAAC;IA+L1C,CAAC;IA7LC,0CAAmB,GAAnB,UAAoB,UAAsB,EAAE,iBAAiC,EAAE,WAAmC,EAAE,aAAmC,EAAE,WAAmB;QAC1K,IAAM,UAAU,GAAU,EAAE,CAAC;QAC7B,IAAM,SAAS,GAAU,EAAE,CAAC;QAC5B,+BAA+B;QAC/B,IAAM,eAAe,GAAa,EAAE,CAAC;QACrC,IAAM,SAAS,GAAa,EAAE,CAAE;QAEhC,IAAI,gBAAgB,GAAG,IAAI,4CAAI,CAAe,iBAAiB,CAAC,CAAC;QAEjE,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACrD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,oBAAa,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAArB,CAAqB,CAAC,EAA9C,CAA8C,CAAC,CAAC,MAAM,EAAE,CAAC;SACzG;QACD,mCAAmC;QACnC,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,kBAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY,EAAvB,CAAuB,CAAC,EAA9C,CAA8C,CAAC,CAAC,MAAM,EAAE,CAAC;SACzG;QAED,IAAI,eAAe,GAAG,CAAC,CAAE;QACzB,wCAAwC;QACxC,IAAI,UAAU,CAAC,mBAAmB,IAAI,IAAI,EAAG;YAE3C,eAAe,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAC;gBAEhD,IAAI,CAAC,CAAC,iBAAiB;oBACvB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;;oBACjC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YAC1B,CAAC,CACA,CAAC,MAAM,CAAC,UAAC,CAAC,EAAC,CAAC,IAAI,QAAC,GAAC,CAAC,EAAH,CAAG,EAAE,CAAC,CAAC,CAAC;SAC9B;gCAEQ,CAAC;YACR,IAAM,YAAY,GAAW,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,eAAe,IAAI,IAAI,IAAK,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAhE,CAAgE,CAAC,CAAC,KAAK,EAAE,CAAC;YACnI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE7B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3C,IAAI,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAlC,CAAkC,CAAC,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC;YAC/H,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE9B,qCAAqC;YACrC,IAAI,WAAW,IAAI,IAAI,EAAE;gBACvB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;aAC1E;iBAAM;gBACL,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;gBACnG,IAAI,WAAW,GAAG,GAAG,EAAE;oBACrB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC3B;qBAAM;oBACL,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACnC;aACF;QAIH,CAAC;QAtBD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;oBAAlB,CAAC;SAsBT;QAED,OAAO;YACL,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,UAAU;YACrB,eAAe,EAAE,eAAe;YAChC,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAGD,oCAAa,GAAb,UAAc,UAAsB,EAAE,iBAAiC,EAAE,WAAmC,EAAE,aAAmC,EAAE,WAAmB;QACpK,IAAM,SAAS,GAAU,EAAE,CAAC;QAC5B,IAAM,WAAW,GAAa,EAAE,CAAC;QACjC,+BAA+B;QAC/B,IAAM,eAAe,GAAa,EAAE,CAAC;QAErC,IAAI,gBAAgB,GAAG,IAAI,4CAAI,CAAe,iBAAiB,CAAC,CAAC;QAEjE,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACrD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,oBAAa,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAArB,CAAqB,CAAC,EAA9C,CAA8C,CAAC,CAAC,MAAM,EAAE,CAAC;SACzG;QACD,mCAAmC;QACnC,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,kBAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY,EAAvB,CAAuB,CAAC,EAA9C,CAA8C,CAAC,CAAC,MAAM,EAAE,CAAC;SACzG;gCAEQ,CAAC;YACR,IAAM,YAAY,GAAW,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAI,QAAC,CAAC,eAAe,IAAI,IAAI,IAAK,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAhE,CAAgE,CAAC,CAAC,KAAK,EAAE,CAAC;YACnI,iIAAiI;YACjI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAG7B,mBAAmB;YACnB,IAAI,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAC,IAAK,QAAC,CAAC,eAAe,IAAI,IAAI,IAAK,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAhE,CAAgE,CAAC,CAAC,OAAO,CAAC,WAAC,IAAI,QAAC,CAAC,eAAe,EAAjB,CAAiB,CAAC,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAC,GAAG,EAAE,CAAC;YAEnL,gCAAgC;YAEhC,uDAAuD;YAEvD,IAAI,oBAAoB,GAAG,CAAC,CAAE;YAC9B,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnD,oBAAoB,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;gBACrD,gDAAgD;gBAChD,IAAI,UAAU,CAAC,mBAAmB,IAAI,IAAI,IAAI,UAAU,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAG;oBACxF,oBAAoB,IAAI,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAE,IAAK,SAAE,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAA/E,CAA+E,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,EAAC,CAAC,IAAK,QAAC,GAAC,CAAC,EAAH,CAAG,EAAC,CAAC,CAAC,CAAC;iBAC3K;aACF;iBAAM;gBACL,oBAAoB,GAAI,WAAW,CAAC,MAAM,CAAC;aAC5C;YAGD,IAAI,oBAAoB,IAAI,CAAC;gBAAE,oBAAoB,GAAG,CAAC,CAAE,CAAC,8BAA8B;YACxF,eAAe,GAAG,eAAe,GAAG,oBAAoB,CAAE;YAE1D,IAAI,eAAe,GAAG,EAAE,GAAG,GAAG,EAAE;gBAC9B,eAAe,GAAG,IAAI,CAAC;aACxB,CAAC,cAAc;YAChB,IAAI,WAAW,IAAI,IAAI,EAAE;gBACvB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;aACpE;iBAAM;gBACL,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC7F,IAAI,WAAW,GAAG,GAAG,EAAE;oBACrB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC3B;qBAAM;oBACL,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACnC;aACF;YAED,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAChC;YAID,gCAAgC;YAChC,4BAA4B;YAC5B,6IAA6I;YAE7I,kLAAkL;YAClL,kCAAkC;YAClC,6IAA6I;YAC7I,OAAO;YACP,YAAY;YACZ,qJAAqJ;YACrJ,0LAA0L;YAC1L,OAAO;YAKP,kDAAkD;YAClD,2DAA2D;YAC3D,+CAA+C;YAC/C,OAAO;YACP,mCAAmC;YACnC,OAAO;YACP,uNAAuN;YACvN,gDAAgD;YAChD,qCAAqC;YACrC,kDAAkD;YAClD,4CAA4C;YAC5C,gDAAgD;YAChD,yFAAyF;YACzF,qDAAqD;YACrD,WAAW;YACX,OAAO;YAEP,iCAAiC;YACjC,+BAA+B;YAC/B,YAAY;YAIZ,yCAAyC;YACzC,kCAAkC;YAClC,oFAAoF;YACpF,cAAc;YACd,yEAAyE;YACzE,qEAAqE;YACrE,2DAA2D;YAC3D,OAAO;YAEP,IAAI;YACJ,SAAS;YACT,yBAAyB;YACzB,IAAI;QAEN,CAAC;QArGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;oBAAlB,CAAC;SAqGT;QAED,OAAO;YACL,SAAS,EAAE,SAAS;YACpB,eAAe,EAAE,eAAe;SACjC,CAAC;IACJ,CAAC;IAlMU,YAAY;QADxB,iEAAU,EAAE;OACA,YAAY,CAqMxB;IAAD,mBAAC;CAAA;AArMwB;;;;;;;;;;;;;;;;;;;;;;;ACRwC;AACpB;AACJ;AACS;AAElD;;GAEG;AAEH;IAaI,sBAAsB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAR/B,2BAAsB,GAAG,IAAI,2DAAY,EAAW,CAAC;QAGrD,kBAAa,GAAG,IAAI,2DAAY,EAAU,CAAC;IAOlD,CAAC;IAGD,mCAAY,GAAZ,UAAa,SAAkB;QAC3B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC/C;IACL,CAAC;IAEM,8BAAO,GAAd;QACI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAEM,sCAAe,GAAtB;QAAA,iBAqBC;QApBG,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,SAAS;YACT,2BAA2B;aAC1B,SAAS,CACN,UAAC,GAAQ;YACL,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,EACD,UAAC,GAAQ;YACL,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAClB;gBAAC,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAAC;iBAE9B;gBAAC,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAAC;QAC/B,CAAC,CAEJ,CACA;QAED,sCAAsC;QACtC,UAAU,CAAC,cAAM,YAAI,CAAC,eAAe,EAAE,EAAtB,CAAsB,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAEO,kCAAW,GAAnB,UAAoB,KAAqB;QACrC,oEAAoE;QACpE,IAAI,MAAc,CAAC;QACnB,IAAI,KAAK,YAAY,+DAAQ,EAAE;YAC3B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAChC,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,GAAM,KAAK,CAAC,MAAM,YAAM,KAAK,CAAC,UAAU,IAAI,EAAE,UAAI,GAAK,CAAC;SACjE;aAAM;YACH,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SAC7D;QACF,yBAAyB;QACxB,OAAO,mEAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IA3DD;QADC,6DAAM,EAAE;;gEACmD;IAG5D;QADC,6DAAM,EAAE;;uDACyC;IARzC,YAAY;QADxB,iEAAU,EAAE;yCAcmB,wEAAU;OAb7B,YAAY,CAmExB;IAAD,mBAAC;CAAA;AAnEwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTyB;AACP;AACW;AAER;AAG9C;IAA+C,6CAA4B;IACzE,mCACE,IAAgB,EAChB,YAA0B;eAE1B,kBAAM,IAAI,EAAE,kBAAkB,EAAE,YAAY,CAAC;IAC/C,CAAC;IANU,yBAAyB;QADrC,iEAAU,EAAE;yCAGH,wEAAU;YACF,mEAAY;OAHjB,yBAAyB,CAQrC;IAAD,gCAAC;CAAA,CAR8C,2EAAgB,GAQ9D;AARqC;;;;;;;;;;;;;;;;;;;;;;;ACPK;AACN;AAC8F;AAE7D;AAGJ;AACoB;AAGtF;IAAA;IA8NA,CAAC;IA5NG,wDAAkB,GAAlB,UAAmB,KAAgB;QAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE;YACjF,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;SACnC;IACL,CAAC;IAGD,6EAAuC,GAAvC,UAAwC,KAAgB,EAAE,YAAoB,EAAE,KAAa;QACzF,IAAM,MAAM,GAAyB,IAAI,KAAK,EAAsB,CAAC;QACrE,KAAuB,UAAe,EAAf,UAAK,CAAC,SAAS,EAAf,cAAe,EAAf,IAAe;YAAjC,IAAM,QAAQ;YACf,IAAM,wBAAwB,GAAG,IAAI,sFAAkB,EAAE,CAAC;YAC1D,wBAAwB,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC9C,wBAAwB,CAAC,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YACvE,wBAAwB,CAAC,YAAY,GAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YACtE,wBAAwB,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3D,wBAAwB,CAAC,aAAa,GAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;YACzE,wBAAwB,CAAC,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;YACzE,wBAAwB,CAAC,iBAAiB,GAAE,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChF,wBAAwB,CAAC,EAAE,GAAG,mDAAI,CAAC,IAAI,EAAE,CAAC;YAC1C,wBAAwB,CAAC,YAAY,GAAG,YAAY,CAAC;YACrD,wBAAwB,CAAC,wBAAwB,GAAG,IAAI,KAAK,EAAQ,CAAC;YACtE,wBAAwB,CAAC,WAAW,GAAG,IAAI,KAAK,EAAgC,CAAC;YACjF,KAAuB,UAAmB,EAAnB,aAAQ,CAAC,UAAU,EAAnB,cAAmB,EAAnB,IAAmB;gBAArC,IAAM,QAAQ;gBACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA5B,IAAM,IAAI;oBACX,IAAI,IAAI,CAAC,OAAO,EAAE;wBACd,wBAAwB,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;qBACxF;iBACJ;aACJ;YAGD,mBAAmB;YACnB,KAAwB,UAAoB,EAApB,aAAQ,CAAC,WAAW,EAApB,cAAoB,EAApB,IAAoB;gBAAxC,IAAM,UAAU;gBAChB,IAAM,0BAA0B,GAAG,IAAI,0GAA4B,EAAE,CAAC;gBACtE,0BAA0B,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAClD,0BAA0B,CAAC,MAAM,GAAE,UAAU,CAAC,MAAM,CAAC;gBACrD,0BAA0B,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;gBAClE,0BAA0B,CAAC,EAAE,GAAG,mDAAI,CAAC,IAAI,EAAE,CAAC;gBAC5C,0BAA0B,CAAC,YAAY,GAAG,YAAY,CAAC;gBACvD,0BAA0B,CAAC,wBAAwB,GAAG,IAAI,KAAK,EAAQ,CAAC;gBAExE,KAAuB,UAAqB,EAArB,eAAU,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;oBAAvC,IAAM,QAAQ;oBACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;wBAA5B,IAAM,IAAI;wBACX,IAAI,IAAI,CAAC,OAAO,EAAE;4BACd,0BAA0B,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;yBAC1F;qBACJ;iBACJ;gBAED,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;aACzE;YAED,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SACzC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,qEAA+B,GAA/B,UAAgC,KAAgB,EAAE,YAAoB,EAAE,KAAa;QACjF,IAAM,MAAM,GAA2B,IAAI,KAAK,EAAwB,CAAC;QACzE,KAAyB,UAAiB,EAAjB,UAAK,CAAC,WAAW,EAAjB,cAAiB,EAAjB,IAAiB;YAArC,IAAM,UAAU;YACjB,IAAM,0BAA0B,GAAG,IAAI,0FAAoB,EAAE,CAAC;YAC9D,0BAA0B,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAClD,0BAA0B,CAAC,EAAE,GAAG,mDAAI,CAAC,IAAI,EAAE,CAAC;YAC5C,0BAA0B,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;YAClE,0BAA0B,CAAC,YAAY,GAAG,YAAY,CAAC;YACvD,0BAA0B,CAAC,wBAAwB,GAAG,IAAI,KAAK,EAAQ,CAAC;YACxE,KAAuB,UAAqB,EAArB,eAAU,CAAC,UAAU,EAArB,cAAqB,EAArB,IAAqB;gBAAvC,IAAM,QAAQ;gBACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA5B,IAAM,IAAI;oBACX,IAAI,IAAI,CAAC,OAAO,EAAE;wBACd,0BAA0B,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;qBAC1F;iBACJ;aACJ;YACD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;SAC3C;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD,qEAA+B,GAA/B,UAAgC,WAAmC,EAAE,UAAsB,EACvF,cAAyC,EAAE,cAA4B,EACnE,SAA+B;QACnC,IAAM,MAAM,GAAG,IAAI,8EAAS,EAAE,CAAC;QAG/B,MAAM,CAAC,SAAS,GAAG,IAAI,KAAK,EAAe,CAAC;QAC5C,kDAAkD;QAElD,KAAuB,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS;YAA3B,IAAM,QAAQ;YACf,IAAM,YAAY,GAAG,IAAI,gFAAW,EAAE,CAAC;YACvC,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAClC,YAAY,CAAC,QAAQ,GAAG,IAAI,sFAAkB,EAAE,CAAC;YACjD,YAAY,CAAC,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACrE,YAAY,CAAC,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC3D,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/C,YAAY,CAAC,QAAQ,CAAC,aAAa,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC9D,YAAY,CAAC,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;YAC7D,YAAY,CAAC,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YAE3D,YAAY,CAAC,UAAU,GAAG,IAAI,KAAK,EAAe,CAAC;YACnD,KAAuB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU;gBAA5B,IAAM,QAAQ;gBACf,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;gBACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC/B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;gBACvC,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;gBAC3B,KAAmB,UAA2B,EAA3B,mBAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAA3B,cAA2B,EAA3B,IAA2B;oBAAzC,IAAM,IAAI;oBACX,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;oBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAClC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;oBACtB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBACtC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC7E,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAClC;gBACD,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC3C;YAED,YAAY,CAAC,WAAW,GAAG,IAAI,KAAK,EAAyB,CAAC;YAC9D,KAAyB,UAAoB,EAApB,aAAQ,CAAC,WAAW,EAApB,cAAoB,EAApB,IAAoB;gBAAxC,IAAM,UAAU;gBAEjB,IAAI,KAAK,GAAK,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAC,cAAc,CAAC,CAAG;gBACxG,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;gBACjC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACxC;YAED,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACvC;QAGD,MAAM,CAAC,WAAW,GAAG,IAAI,KAAK,EAAiB,CAAC;QAChD,oDAAoD;QACpD,KAAyB,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW;YAA/B,IAAM,UAAU;YAEjB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAC,cAAc,CAAC,CAAC,CAAC;SAC5G;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEL,iEAA2B,GAA3B,UAA4B,UAAgC,EAAE,UAAsB,EAAG,cAAyC,EAAG,cAA4B;QAE3J,IAAM,cAAc,GAAG,IAAI,0FAAqB,EAAE,CAAC;QAC/C,cAAc,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QACtC,cAAc,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAEtD,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAExF,cAAc,CAAC,UAAU,GAAG,IAAI,KAAK,EAAe,CAAC;QACrD,KAAuB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU;YAA5B,IAAM,QAAQ;YACf,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;YACvC,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,KAAmB,UAA2B,EAA3B,mBAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAA3B,cAA2B,EAA3B,IAA2B;gBAAzC,IAAM,IAAI;gBACX,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/E,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClC;YACD,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,OAAO,cAAc,CAAC;IAC9B,CAAC;IAEG,yDAAmB,GAAnB,UAAoB,UAAgC,EAAE,UAAsB,EAAG,cAAyC,EAAG,cAA4B;QAEnJ,IAAM,cAAc,GAAG,IAAI,kFAAa,EAAE,CAAC;QACvC,cAAc,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QACtC,cAAc,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAEtD,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAExF,cAAc,CAAC,UAAU,GAAG,IAAI,KAAK,EAAe,CAAC;QACrD,KAAuB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU;YAA5B,IAAM,QAAQ;YACf,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;YACvC,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,KAAmB,UAA2B,EAA3B,mBAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAA3B,cAA2B,EAA3B,IAA2B;gBAAzC,IAAM,IAAI;gBACX,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/E,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClC;YACD,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,OAAO,cAAc,CAAC;IAC9B,CAAC;IAEM,6CAAO,GAAd,UAAe,MAAc,EAAE,KAAa;QACxC,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK;YAAnB,IAAM,IAAI;YACX,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE;gBACpB,OAAO,IAAI,CAAC;aACf;SACJ;IACL,CAAC;IAEO,8CAAQ,GAAhB,UAAiB,eAAuB,EAAE,MAAc;QACpD,KAA6B,UAAe,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe;YAAvC,IAAM,cAAc;YACrB,IAAI,cAAc,CAAC,EAAE,KAAK,MAAM,EAAE;gBAC9B,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,mDAAa,GAArB,UAAsB,YAAoB,EAAE,cAA4B;QACpE,KAAmB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACX,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,EAAE;gBAC1B,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,IAAI,CAAC;IAEhB,CAAC;IA7NQ,2BAA2B;QADvC,iEAAU,EAAE;OACA,2BAA2B,CA8NvC;IAAD,kCAAC;CAAA;AA9NuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXG;AACO;AACI;AAER;AAC9C;;GAEG;AAEH;IAAuC,qCAA4B;IAE/D,2BAAY,IAAgB,EAAE,YAA0B;eACpD,kBAAM,IAAI,EAAE,kBAAkB,EAAE,YAAY,CAAC;IACjD,CAAC;IAJQ,iBAAiB;QAD7B,iEAAU,EAAE;yCAGS,wEAAU,EAAgB,mEAAY;OAF/C,iBAAiB,CAM7B;IAAD,wBAAC;CAAA,CANsC,2EAAgB,GAMtD;AAN6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTa;AACO;AACI;AAER;AAE9C;;GAEG;AAEH;IAAuC,qCAA4B;IAE/D,2BAAY,IAAgB,EAAE,YAA0B;eACpD,kBAAM,IAAI,EAAE,mBAAmB,EAAE,YAAY,CAAC;IAClD,CAAC;IAJQ,iBAAiB;QAD7B,iEAAU,EAAE;yCAGS,wEAAU,EAAgB,mEAAY;OAF/C,iBAAiB,CAM7B;IAAD,wBAAC;CAAA,CANsC,2EAAgB,GAMtD;AAN6B;;;;;;;;;;;;;;;;;ACVa;AAG3C;IAAA;IAyDA,CAAC;IAvDG,0CAAmB,GAAnB,UAAoB,SAAkB,EAAE,KAAkB;QAAlB,kCAAkB;QACtD,IAAM,KAAK,GAAG,aAAa,CAAC;QAC5B,IAAI,SAAS,EAAE;YACX,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,sCAAe,GAAf,UAAgB,SAAkB,EAAE,KAAkB;QAAlB,kCAAkB;QAClD,IAAM,KAAK,GAAG,2BAA2B,CAAC;QAC1C,IAAI,SAAS,EAAE;YACX,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,gDAAyB,GAAzB,UAA0B,SAAkB,EAAE,KAAkB;QAAlB,kCAAkB;QAC5D,IAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,IAAI,SAAS,EAAE;YACX,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,sDAA+B,GAA/B,UAAgC,SAAkB,EAAE,KAAkB;QAAlB,kCAAkB;QAClE,IAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,IAAI,SAAS,EAAE;YACX,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IAEL,CAAC;IAED,mCAAY,GAAZ,UAAa,SAAkB,EAAE,KAAkB;QAAlB,kCAAkB;QAC/C,IAAM,KAAK,GAAG,wBAAwB,CAAC;QACvC,IAAI,SAAS,EAAE;YACX,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,oCAAa,GAAb,UAAc,KAAa,EAAE,KAAa;QACtC,IAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;SAC5B;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAvDQ,YAAY;QADxB,iEAAU,EAAE;OACA,YAAY,CAyDxB;IAAD,mBAAC;CAAA;AAzDwB;;;;;;;;;;;;;;;;;;;ACHkB;AACL;AAGtC;IAAA;IA8LA,CAAC;IA7LC;;;;;OAKG;IACH,iDAAqB,GAArB,UAAsB,KAAK,EAAE,YAAY,EAAE,WAAe;QAAf,6CAAe;QACxD,gCAAgC;QAChC,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;QACxC,IAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC;QAC1C,iCAAiC;QACjC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC;QACzC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;QAC3C,qRAAqR;QACrR,gDAAgD;QAChD,IAAM,qBAAqB,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnD,IAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QACzC,IAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAE3C,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAClC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QACtB,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QAEvB,uBAAuB;QACvB,IAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,YAAY,CAAC,KAAK,GAAG,aAAa,GAAG,WAAW,CAAC;QACjD,YAAY,CAAC,MAAM,GAAG,cAAc,GAAG,WAAW,CAAC;QACnD,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC;QAChD,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;QAClD,IAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpD,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC9C,IAAM,OAAO,GAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAC9C,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,mDAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAS,MAAM;YAC9C,+CAA+C;YAC/C,gCAAgC;YAEhC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,qBAAqB,CAAC;YAC7C,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,gBAAgB,CAAC;YACnC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC;YAErC,yCAAyC;YACzC,8FAA8F;YAC9F,uFAAuF;YACvF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE,YAAY,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wCAAY,GAAZ,UAAa,KAAK,EAAE,YAAY;QAC9B,mDAAmD;QACnD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC;IAChE,CAAC;IAED,uCAAW,GAAX,UAAY,MAAM,EAAE,OAAO;QACzB,qEAAqE;QACrE,wDAAwD;QAExD,oCAAoC;QACpC,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC;QACpD,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,mDAAmD;QAChF,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,mDAAmD;QAClF,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,iDAAiD;QAExF,4EAA4E;QAC5E,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE9B,8DAA8D;QAC9D,IAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;QAC9B,IAAM,MAAM,GAAG,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzD,wDAAwD;QACxD,UAAU,CAAC,SAAS,GAAG,kBAAkB,GAAG,KAAK,GAAG,cAAc,GAAG,MAAM,GAAG,cAAc,CAAC;QAC7F,IAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;QACnB,KAAK,CAAC,MAAM,GAAG;YACb,+DAA+D;YAC/D,6BAA6B;YAC7B,EAAE;YACF,mEAAmE;YACnE,kEAAkE;YAClE,iEAAiE;YACjE,2DAA2D;YAC3D,qBAAqB;YACrB,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAEjD,oBAAoB;YACpB,IAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACtB,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC;YACpB,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC,CAAC;IACJ,CAAC;IACD,4CAA4C;IAC5C,kFAAkF;IAClF,4CAAgB,GAAhB,UAAiB,KAAK;QACpB,8DAA8D;QAC9D,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACtF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAM,2BAA2B,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/D,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE1C,qEAAqE;QACrE,iDAAiD;QACjD,IAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;SACtE;IACH,CAAC;IAED,8CAAkB,GAAlB,UAAmB,OAAO,EAAE,2BAA2B;QACrD,IAAM,2BAA2B,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;QACvB,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,2BAA2B,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAClE,GAAG,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC1D,IAAI,KAAK,KAAK,2BAA2B,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAC/D,gBAAgB,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;aAC7C;SACF;QACD,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAED,yEAAyE;IACzE,oEAAoE;IACpE,0CAA0C;IAC1C,oCAAQ,GAAR,UAAS,GAAG;QACV,IAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAM,cAAc,GAAG;YACrB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,SAAS;SAChB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,eAAe,IAAI;YACjB,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,cAAc,CAAC,EAAE;gBACpF,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC5B,OAAO,KAAK,EAAE;oBACZ,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE;wBACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACjB,KAAK,CAAC,KAAK,CAAC,CAAC;qBACd;oBACD,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;iBAC3B;aACF;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wCAAY,GAAZ,UAAa,IAAI,EAAE,QAAQ;QACzB,IAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACzD,uBAAuB;YACvB,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnD,mCAAmC;SACnC;aAAM;YACL,IAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,IAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,gDAAgD;YAChD,yFAAyF;YACzF,yBAAyB;YACzB,oFAAoF;YACpF,gCAAgC;YAChC,+JAA+J;YAC/J,gCAAgC;SACjC;IACH,CAAC;IAED,yCAAa,GAAb,UAAc,OAAO;QACnB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAM,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvD,IAAM,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACzC;QACD,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACf,CAAC;IA7LW,iBAAiB;QAD7B,iEAAU,EAAE;OACA,iBAAiB,CA8L7B;IAAD,wBAAC;CAAA;AA9L6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJa;AACN;AACP;AAGkD;AACpC;AACwB;AACF;AAIlE;IAMI,6CAAoB,WAAwB,EAAU,uBAAgD;QAAtG,iBAUC;QAVmB,gBAAW,GAAX,WAAW,CAAa;QAAU,4BAAuB,GAAvB,uBAAuB,CAAyB;QAL9F,UAAK,GAAW,IAAI,KAAK,EAAQ,CAAC;QAClC,mBAAc,GAA8B,EAAE,CAAC;QAEvD,kBAAa,GAAG,IAAI,KAAK,EAAe,CAAC;QAIrC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAG;YAChC,KAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAe,CAAC;YACjC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAC7B,CAAC,CAAC,CAAC;QAEP,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvD,CAAC;IAGM,qEAAuB,GAA9B,UAA+B,UAAgC,EAAE,MAAiB;QAC9E,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;QAEvC,KAAuB,UAAiB,EAAjB,WAAM,CAAC,UAAU,EAAjB,cAAiB,EAAjB,IAAiB;YAAnC,IAAM,QAAQ;YACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACX,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,gEAAgE;gBAChE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,+DAA+D;gBAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;gBAC9B,sCAAsC;gBACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAEtB,KAAuB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU;oBAA5B,IAAM,QAAQ;oBACf,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAM,EAAE;wBAC7B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;wBAC9B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;wBAC9C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;wBACtC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;wBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;wBAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;wBAElC,gEAAgE;wBAChE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wBACzB,gEAAgE;wBAChE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;wBACpC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;wBAC1C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;wBACpC,MAAM;qBACT;iBACJ;aACJ;SACJ;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,6EAA+B,GAAtC,UAAuC,KAAgB,EAAE,YAAoB,EAAE,YAA6B;QAA7B,mDAA6B;QACxG,IAAM,MAAM,GAAyB,IAAI,KAAK,EAAsB,CAAC;QAErE,IAAI,CAAC,YAAY,EAAE;YACf,KAAuB,UAAgB,EAAhB,UAAK,CAAC,UAAU,EAAhB,cAAgB,EAAhB,IAAgB;gBAAlC,IAAM,QAAQ;gBACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA5B,IAAM,IAAI;oBACX,IAAM,QAAQ,GAAG,IAAI,sFAAkB,EAAE,CAAC;oBAE1C,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;oBAC1B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC9B,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBAC9C,QAAQ,CAAC,EAAE,GAAG,mDAAI,CAAC,IAAI,EAAE,CAAC;oBAC1B,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAChE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9D,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5D,kDAAkD;oBAClD,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC1C,kDAAkD;oBAClD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9D,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACpE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9D,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAE;oBACnC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACzB;aACJ;SACJ;aAAM;YACH,KAAuB,UAAgB,EAAhB,UAAK,CAAC,UAAU,EAAhB,cAAgB,EAAhB,IAAgB;gBAAlC,IAAM,QAAQ;gBACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;oBAA5B,IAAM,IAAI;oBACX,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,EAAE;wBACpC,IAAM,QAAQ,GAAG,IAAI,sFAAkB,EAAE,CAAC;wBAC1C,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;wBAC1B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;wBAC9B,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;wBAC9C,QAAQ,CAAC,EAAE,GAAG,mDAAI,CAAC,IAAI,EAAE,CAAC;wBAC1B,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAChE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC9D,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC5D,kDAAkD;wBAClD,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;wBAC1C,kDAAkD;wBAClD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC9D,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACpE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC9D,QAAQ,CAAC,QAAQ,GAAE,IAAI,CAAC,QAAQ,CAAE;wBAElC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACzB;iBACJ;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,2DAAa,GAApB,UAAqB,MAAiB;QAElC,KAAuB,UAAiB,EAAjB,WAAM,CAAC,UAAU,EAAjB,cAAiB,EAAjB,IAAiB;YAAnC,IAAM,QAAQ;YACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACX,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,EAAE;oBACrC,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACM,iEAAmB,GAA1B,UAA2B,MAAiB;QAExC,KAAuB,UAAiB,EAAjB,WAAM,CAAC,UAAU,EAAjB,cAAiB,EAAjB,IAAiB;YAAnC,IAAM,QAAQ;YACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACX,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC/B,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,gEAAkB,GAAzB,UAA0B,MAAiB;QAEvC,KAAuB,UAAiB,EAAjB,WAAM,CAAC,UAAU,EAAjB,cAAiB,EAAjB,IAAiB;YAAnC,IAAM,QAAQ;YACf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;gBAA5B,IAAM,IAAI;gBACX,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC9B,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,sEAAwB,GAA/B,UAAgC,QAAqB;QACjD,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACX,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,MAAM,EAAE,CAAC;aACZ;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,mEAAqB,GAA5B,UAA6B,QAAqB;QAC9C,KAAmB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc;YAA5B,IAAM,IAAI;YACX,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,wEAA0B,GAAjC,UAAkC,MAAiB,EAAE,aAAqB,EAAE,iBAAyB,EAAE,UAAmB;QACtH,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAuB,UAAsD,EAAtD,SAAI,CAAC,+BAA+B,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAtD,cAAsD,EAAtD,IAAsD;YAAxE,IAAM,QAAQ;YACf,IAAI,QAAQ,CAAC,cAAc,EAAE;gBACzB,IAAI,UAAU,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACjC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;iBAC/H;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,iEAAmB,GAA3B,UAA4B,SAAiB;QACzC,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE;YAC9C,OAAO,CAAC,CAAC;SACZ;aAAM;YACH,OAAO,CAAC,SAAS,CAAC;SACrB;IACL,CAAC;IAEO,oEAAsB,GAA9B;QAEI,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,IAAM,UAAU,GAAG,IAAI,4CAAI,EAAY,CAAC;QACxC,IAAM,YAAY,GAAG,IAAI,KAAK,EAAe,CAAC;gCACnC,IAAI;YACX,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,EAAxB,CAAwB,CAAC,EAAE;gBAChD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACjC;YAED,IAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,EAAxB,CAAwB,CAAC,CAAC;YACvE,IAAI,OAAK,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;gBACvC,OAAK,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,EAAQ,CAAC;aACrD;YACD,OAAK,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;;QAVD,KAAmB,UAAU,EAAV,SAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU;YAAxB,IAAM,IAAI;oBAAJ,IAAI;SAUd;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;QAEvC,KAAuB,UAAiD,EAAjD,SAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAAC,EAAjD,cAAiD,EAAjD,IAAiD;YAAnE,IAAM,QAAQ;YACf,IAAM,SAAS,GAAG,IAAI,gFAAW,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,GAAG,IAAI,KAAK,EAAW,CAAC;YAEvC,KAAmB,UAAgC,EAAhC,SAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAhC,cAAgC,EAAhC,IAAgC;gBAA9C,IAAM,IAAI;gBACX,IAAM,QAAQ,GAAG,IAAI,4EAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClC;YACD,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAChC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAxOQ,mCAAmC;QAD/C,iEAAU,EAAE;yCAOwB,iEAAW,EAAmC,yFAAuB;OAN7F,mCAAmC,CAyO/C;IAAD,0CAAC;CAAA;AAzO+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZL;AACO;AACI;AAER;AAC9C;;GAEG;AAEH;IAA+C,6CAAoC;IAE/E,mCAAY,IAAgB,EAAE,YAA0B;eACpD,kBAAM,IAAI,EAAE,yBAAyB,EAAE,YAAY,CAAC;IACxD,CAAC;IAJQ,yBAAyB;QADrC,iEAAU,EAAE;yCAGS,wEAAU,EAAgB,mEAAY;OAF/C,yBAAyB,CAMrC;IAAD,gCAAC;CAAA,CAN8C,2EAAgB,GAM9D;AANqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTmB;AACP;AACK;AAElB;AAEJ;AACqB;AAER;AACU;AACZ;AACY;AAEN;AAKlD;IAAuC,qCAA4B;IAGjE,2BACE,IAAgB,EAChB,YAA0B,EAClB,gBAAkC,EAClC,iBAAoC,EACpC,WAAwB,EACxB,iBAAoC;QAN9C,YAQE,kBAAM,IAAI,EAAE,kBAAkB,EAAE,YAAY,CAAC,SAC9C;QANS,sBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,uBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,iBAAW,GAAX,WAAW,CAAa;QACxB,uBAAiB,GAAjB,iBAAiB,CAAmB;QARvC,cAAQ,GAAG,IAAI,2DAAY,EAAc,CAAC;;IAWjD,CAAC;IAED,gDAAoB,GAApB,UAAqB,UAAsB;QACzC,IAAM,YAAY,GAAG,8BAA8B,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACjF,IAAM,QAAQ,GAAG,gBAAgB,CAAC;QAElC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,+CAAmB,GAAnB,UAAoB,UAAsB;QACxC,IAAM,MAAM,GAAG,mBAAO,CAAC,kCAAQ,CAAC,CAAC;QACjC,IAAI,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAM,YAAY,GAAG,8BAA8B,GAAG,GAAG,CAAC;QAC1D,IAAM,QAAQ,GAAG,gBAAgB,CAAC;QAElC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,+CAAmB,GAAnB,UAAoB,aAA6B,EAAE,UAAsB;QAEvE,IAAM,SAAS,GAAG,GAAG,CAAC;QAEtB,IAAI,IAAI,GAAM,EAAE;YAChB,WAAW;YACX,SAAS;YACT,UAAU;YACV,SAAS;YACT,MAAM;YACN,SAAS;YACT,UAAU;YACV,SAAS;YACT,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,SAAS;YACT,aAAa;YACb,SAAS;YACT,KAAK;YACL,IAAI,CAAC;gCAEM,IAAI;YACb,IAAM,QAAQ,GAAG,oCAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAM,UAAU,GAAG,oCAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChD,IAAM,SAAS,GAAG,oCAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,cAAc,GAAG,WAAW,CAAC;YACjC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAE;gBACnB,cAAc,GAAG,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAC,IAAG,QAAC,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,EAAvB,CAAuB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,EAA1B,CAA0B,CAAC,CAAC,IAAI,CAAC;aAC1I;iBAAM;gBACL,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,EAA1B,CAA0B,CAAC,CAAC,IAAI,CAAC;aACpF;YAED,2BAA2B;YAC3B,IAAI;gBACF,EAAE;oBACF,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC3B,SAAS;oBACT,IAAI,CAAC,QAAQ;oBACb,SAAS;oBACT,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAClB,SAAS;oBACT,IAAI,CAAC,QAAQ;oBACb,SAAS;oBACT,cAAc;oBACd,SAAS;oBACT,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC5B,SAAS;oBACT,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC7B,SAAS;oBACT,IAAI,CAAC,GAAG;oBACR,IAAI,CAAC;QACR,CAAC;QA/BF,KAAmB,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa;YAA3B,IAAM,IAAI;oBAAJ,IAAI;SA+Bb;QAEF,IAAM,YAAY,GAAG,8BAA8B,GAAG,IAAI,CAAC;QAC3D,IAAM,QAAQ,GAAG,gBAAgB,CAAC;QAClC,+BAA+B;QAE/B,qEAAqE;QACrE,uCAAuC;QACvC,oCAAoC;QACpC,yBAAyB;QACzB,aAAa;QACb,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAKD,uDAA2B,GAA3B,UAA4B,aAAqC,EAAE,UAAsB;QAEvF,IAAM,SAAS,GAAG,GAAG,CAAC;QACtB,IAAI,IAAI,GAAI,MAAM;YAClB,SAAS;YACT,UAAU;YACV,SAAS;YACT,OAAO;YACP,SAAS;YACT,OAAO;YACP,SAAS;YACT,SAAS;YACT,SAAS;YACT,YAAY;YACZ,SAAS;YACT,QAAQ;YACR,SAAS;YACT,KAAK;YACL,SAAS;YACT,SAAS;YACT,SAAS;YACT,MAAM;YACN,SAAS;YACT,UAAU;YACV,SAAS;YACT,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,SAAS;YACT,KAAK;YACL,IAAI,CAAC;gCAGM,IAAI;YACb,IAAM,QAAQ,GAAG,oCAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,IAAM,UAAU,GAAG,oCAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChD,IAAM,OAAO,GAAG,oCAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IAAM,OAAO,GAAG,oCAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IAAM,GAAG,GAAG,oCAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAM,OAAO,GAAG,oCAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEvC,IAAI,cAAc,GAAG,WAAW,CAAC;YACjC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAE;gBACnB,cAAc,GAAG,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAC,IAAG,QAAC,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,EAAvB,CAAuB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,EAA1B,CAA0B,CAAC,CAAC,IAAI,CAAC;aAC1I;iBAAM;gBACL,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,EAA1B,CAA0B,CAAC,CAAC,IAAI,CAAC;aACpF;YAED,2BAA2B;YAC3B,IAAI;gBACF,EAAE;oBACF,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;oBACxB,SAAS;oBACT,IAAI,CAAC,QAAQ;oBACb,SAAS;oBACT,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC1B,SAAS;oBACT,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC1B,SAAS;oBACT,IAAI,CAAC,QAAQ;oBACb,SAAS;oBACT,IAAI,CAAC,YAAY;oBACjB,SAAS;oBACT,IAAI,CAAC,OAAO;oBACZ,SAAS;oBACT,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;oBACtB,SAAS;oBACT,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC1B,SAAS;oBACT,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAClB,SAAS;oBACT,IAAI,CAAC,QAAQ;oBACb,SAAS;oBACT,cAAc;oBACd,SAAS;oBACT,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC7B,SAAS;oBACT,IAAI,CAAC,GAAG;oBACR,IAAI,CAAC;QACR,CAAC;QA/CF,KAAmB,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa;YAA3B,IAAM,IAAI;oBAAJ,IAAI;SA+Cb;QAEF,IAAM,YAAY,GAAG,8BAA8B,GAAG,IAAI,CAAC;QAC3D,IAAM,QAAQ,GAAG,gBAAgB,CAAC;QAClC,+BAA+B;QAE/B,qEAAqE;QACrE,uCAAuC;QACvC,oCAAoC;QACpC,yBAAyB;QACzB,aAAa;QACb,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,wCAAY,GAAZ,UAAa,IAAI,EAAE,QAAQ;QACzB,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACrC,wEAAwE;YACxE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC7C;aAAM;YACL,IAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,4DAA4D;YACtF,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,gJAAgJ;YAC3J,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAC9B;IACH,CAAC;IAEK,4CAAgB,GAAtB,UAAuB,UAAsB,EAAE,SAAkB,EAAE,OAAe,EAAE,MAAc;;;;;4BAEzE,qBAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE;;wBAA/D,cAAc,GAAG,SAA8C;wBACpD,qBAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE;;wBAAnD,QAAQ,GAAG,SAAwC;wBACzD,IAAI,UAAU,EAAE;4BACd,IAAI,UAAU,CAAC,WAAW,EAAE;oDACf,cAAc;oCACvB,IAAI,cAAc,CAAC,YAAY,EAAE;wCAC/B,IAAI,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,IAAI,cAAc,CAAC,YAAY,EAAnC,CAAmC,CAAC,CAAC;wCAAA,CAAC;wCAC/F,IAAI,mBAAmB,SAAS,CAAC;wCAEjC,IAAI,mBAAmB,EAAE;oEACZ,cAAc;gDACvB,IAAI,cAAc,EAAE;oDAClB,mBAAmB,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,EAAE,IAAI,cAAc,CAAC,EAAE,EAA5B,CAA4B,CAAC,CAAC;oDAEhF,IAAI,CAAC,mBAAmB,EAAE;wEACjB,OAAK,gBAAgB,CAAC,OAAO,CAAC,2BAA2B,CAAC,GAAG,KAAK,GAAI,cAAc,CAAC,IAAI;qDACjG;iDACF;4CACH,CAAC;4CARD,KAA6B,UAAuC,EAAvC,mBAAc,CAAC,wBAAwB,EAAvC,cAAuC,EAAvC,IAAuC;gDAA/D,IAAM,cAAc;sEAAd,cAAc;;;6CAQxB;yCACF;wCAED,IAAI,CAAC,mBAAmB,EAAE;4DACjB,OAAK,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,KAAK,GAAI,cAAc,CAAC,IAAI;yCAC7F;qCACF;gCACH,CAAC;;gCArBD,WAAmD,EAAtB,eAAU,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;oCAAxC,cAAc;sDAAd,cAAc;;;iCAqBxB;6BACF;4BAED,SAAS;4BACT,IAAI,SAAS,EAAE;gCACb,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC;gCACrB,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;gCAE1B,sBAAsB;gCACtB,WAA+C,EAAtB,eAAU,CAAC,WAAW,EAAtB,cAAsB,EAAtB,IAAsB;oCAApC,UAAU;oCACnB,UAAU,CAAC,EAAE,GAAG,mDAAI,CAAC,IAAI,EAAE,CAAC;iCAC7B;6BACF;4BAEK,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;4BAC9E,IAAI,UAAU,IAAI,IAAI,EAAE;gCACtB,UAAU,CAAC,UAAU,GAAG,IAAI,uEAAU,EAAE,CAAC;gCACzC,iBAAiB;gCACjB,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC;gCAChC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gCAChC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gCACjE,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;gCAChC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC;6BAClC;4BAED,+BAA+B;4BAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BAEtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BAE/B,sBAAO,IAAI,EAAC;yBACb;;;;;KACF;IAEM,0CAAc,GAArB,UAAsB,YAAoB;QACxC,6CAA6C;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,uCAAW,GAAX,UAAY,UAAsB;QAChC,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAE,QAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAtB,CAAsB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED,yCAAa,GAAb,UAAc,UAAsB;QAClC,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,WAAC,IAAE,QAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAvB,CAAuB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,oCAAQ,GAAR,UAAS,UAAsB;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IAxSU,iBAAiB;QAD7B,iEAAU,EAAE;yCAKH,wEAAU;YACF,mEAAY;YACA,6EAAgB;YACf,6EAAiB;YACvB,iEAAW;YACL,6EAAiB;OATnC,iBAAiB,CA4S7B;IAAD,wBAAC;CAAA,CA5SsC,2EAAgB,GA4StD;AA5S6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBa;AACO;AACI;AAER;AAC9C;;GAEG;AAEH;IAAkC,gCAAuB;IAErD,sBAAY,IAAgB,EAAE,YAA0B;eACpD,kBAAM,IAAI,EAAE,aAAa,EAAE,YAAY,CAAC;IAC5C,CAAC;IAJQ,YAAY;QADxB,iEAAU,EAAE;yCAGS,wEAAU,EAAgB,mEAAY;OAF/C,YAAY,CAOxB;IAAD,mBAAC;CAAA,CAPiC,2EAAgB,GAOjD;AAPwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTkB;AACO;AAEI;AACR;AAG9C;;GAEG;AAEH;IAAiC,+BAAsB;IAEnD,qBAAY,IAAgB,EAAE,YAA0B;eACpD,kBAAM,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC;IAC3C,CAAC;IAJQ,WAAW;QADvB,iEAAU,EAAE;yCAGS,wEAAU,EAAgB,mEAAY;OAF/C,WAAW,CAMvB;IAAD,kBAAC;CAAA,CANgC,2EAAgB,GAMhD;AANuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXmB;AACE;AACK;AACT;AACa;AAER;AACc;AAG5D;IAAiC,+BAAsB;IAGnD,qBAAY,IAAgB,EAAE,YAA0B,EAAU,MAAc;QAAhF,YACI,kBAAM,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,SAC1C;QAFiE,YAAM,GAAN,MAAM,CAAQ;;IAEhF,CAAC;IAEM,0BAAI,GAAX;QACI,qBAAqB;QACrB,qBAAqB;IACzB,CAAC;IAEM,2BAAK,GAAZ,UAAa,IAAY,EAAE,QAAgB;QACvC,IAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,iBAAiB,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,8BAA8B;IACrI,CAAC;IAEM,yBAAG,GAAV;QAAA,iBASC;QARG,OAAO,mEAAU,CAAC,MAAM,CAAC,kBAAQ;YAC7B,IAAM,MAAM,GAA0B,IAAI,gFAAe,EAAQ,CAAC;YAClE,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,gCAAU,GAAjB;QAEI,kCAAkC;QAElC,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE;YACP,IAAI,QAAQ,SAAM,CAAC;YACnB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,QAAQ,EAAE;gBACV,yBAAyB;gBACzB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC;gBACvC,OAAO,QAAQ,CAAC;aACnB;SACJ;aAAM;YACH,mBAAmB;YACnB,OAAO,IAAI,CAAC;SACf;IAEL,CAAC;IAEM,iCAAW,GAAlB,UAAmB,IAAU;QACzB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEM,4BAAM,GAAb;QAAA,iBAGC;QAFG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACzC,UAAU,CAAC,cAAM,YAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAhC,CAAgC,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IAzDQ,WAAW;QADvB,iEAAU,EAAE;yCAIS,wEAAU,EAAgB,mEAAY,EAAkB,+DAAM;OAHvE,WAAW,CA0DvB;IAAD,kBAAC;CAAA,CA1DgC,2EAAgB,GA0DhD;AA1DuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVmB;AACO;AACI;AAER;AAC9C;;GAEG;AAEH;IAAqC,mCAA8B;IAE/D,yBAAY,IAAgB,EAAE,YAA0B;eAChD,kBAAM,IAAI,EAAE,mBAAmB,EAAE,YAAY,CAAC;IACtD,CAAC;IAJQ,eAAe;QAD3B,iEAAU,EAAE;yCAGS,wEAAU,EAAgB,mEAAY;OAF/C,eAAe,CAM3B;IAAD,sBAAC;CAAA,CANoC,2EAAgB,GAMpD;AAN2B;;;;;;;;ACT5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qE;;;;;;;AC9QA,e;;;;;;;;;;;;;;;ACAA,e;;;;;;;ACAA,e;;;;;;;ACAA,e;;;;;;;ACAA,e;;;;;;;ACAA,e","file":"main.bundle.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"../../../../../src/$$_lazy_route_resource lazy recursive\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/$$_lazy_route_resource lazy\n// module id = ../../../../../src/$$_lazy_route_resource lazy recursive\n// module chunks = main","import { SharedModule } from './../common/shared-module';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n\r\nimport { LaboratoriesComponent } from './components/laboratories/laboratories.component';\r\nimport { AuthGuard } from './../common/auth-guard.service';\r\nimport { AuthGuardToken } from './../common/auth-guard-token.service';\r\nimport { LaboratoryEditComponent } from './components/laboratories/laboratory-edit.component';\r\nimport { LaboratoryViewDetailsComponent } from './components/laboratories/laboratory-view-details.component';\r\n\r\nimport { SimulationViewDetailsComponent } from './components/simulations/simulation-view-details.component';\r\nimport { SimulationEditComponent } from './components/simulations/simulation-edit.component';\r\nimport { SimulationEditInstrumentComponent } from './components/simulations/simulation-edit-instrument.component';\r\nimport { SimulationEditAnnualActivityComponent } from './components/simulations/simulation-edit-annual-activity.component';\r\nimport { SimulationEditBatchActivityComponent } from './components/simulations/simulation-edit-batch-activity.component';\r\nimport { SimulationsComponent } from './components/simulations/simulations.component';\r\nimport { SimulationImportComponent } from './components/simulations/simulation-import.component';\r\nimport { SimulationExportComponent } from './components/simulations/simulation-export.component';\r\n\r\nimport { Example1Component } from './components/example/example1.component';\r\nimport { Example2Component } from './components/example/example2.component';\r\nimport { Example3Component } from './components/example/example3.component';\r\nimport { Example4Component } from './components/example/example4.component';\r\nimport { SettingsComponent } from './components/settings/settings.component';\r\nimport { ChangelogComponent } from './components/settings/changelog.component';\r\n\r\n// admin section\r\nimport {\r\n LaboratoriesAdminComponent,\r\n SimulationsAdminComponent,\r\n AdminTabComponent,\r\n InstrumentsEditAdminComponent,\r\n InstrumentsAdminComponent,\r\n WorkcellAdminComponent\r\n} from './components/admin';\r\n\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ExtendedFormModule } from '../common/forms/ExtendedFormModule';\r\nimport { ProgressComponent } from '../common/forms/ProgressComponent';\r\nimport { ToggleComponent } from '../common/forms/ToggleComponent';\r\nimport { UploadFileComponent } from '../common/forms/UploadFileComponent';\r\nimport { SearchCategory, SearchSimulation, UserDatePipe, OrderByCategory, SortArrayOfWorklistItemPipe } from './../pipes';\r\nimport { ChartModule } from 'angular2-chartjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoginComponent } from './components/login/components/login.component';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { TabsModule } from 'ngx-bootstrap/tabs';\r\nimport { SimulationViewDetailsActivityComponent } from './components/simulations/simulation-view-details-activity.component';\r\nimport { ToggleComponentSelect } from '../common/forms/ToggleComponentSelect';\r\n\r\n@NgModule({\r\n declarations: [\r\n UserDatePipe,\r\n SearchCategory,\r\n OrderByCategory,\r\n SortArrayOfWorklistItemPipe,\r\n SearchSimulation,\r\n LaboratoriesComponent,\r\n LaboratoryEditComponent,\r\n SimulationEditComponent,\r\n SimulationEditInstrumentComponent,\r\n SimulationsComponent,\r\n Example1Component,\r\n Example2Component,\r\n Example3Component,\r\n Example4Component,\r\n SettingsComponent,\r\n ChangelogComponent,\r\n ProgressComponent,\r\n UploadFileComponent,\r\n // admin section\r\n LaboratoriesAdminComponent,\r\n SimulationsAdminComponent,\r\n WorkcellAdminComponent,\r\n InstrumentsAdminComponent,\r\n InstrumentsEditAdminComponent,\r\n ToggleComponent,\r\n ToggleComponentSelect,\r\n AdminTabComponent,\r\n LaboratoryViewDetailsComponent,\r\n SimulationEditAnnualActivityComponent,\r\n SimulationEditBatchActivityComponent,\r\n SimulationViewDetailsComponent,\r\n SimulationViewDetailsActivityComponent,\r\n SimulationImportComponent,\r\n SimulationExportComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ModalModule.forRoot(),\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ExtendedFormModule,\r\n // design module\r\n TabsModule.forRoot(),\r\n SharedModule,\r\n NgxPaginationModule,\r\n ChartModule,\r\n RouterModule.forRoot([\r\n { path: '', redirectTo: 'laboratory', pathMatch: 'full' },\r\n { path: 'login', component: LoginComponent },\r\n { path: 'laboratory', component: LaboratoriesComponent, canActivate: [AuthGuardToken] },\r\n // { path: '**', redirectTo: 'home' }\r\n { path: 'laboratory/edit/:id', component: LaboratoryEditComponent, canActivate: [AuthGuardToken] },\r\n { path: 'laboratory/view/:id', component: LaboratoryViewDetailsComponent, canActivate: [AuthGuardToken] },\r\n { path: 'laboratory/view/:id/:mode', component: LaboratoryViewDetailsComponent, canActivate: [AuthGuardToken] },\r\n { path: 'settings', component: SettingsComponent, canActivate: [AuthGuardToken] },\r\n { path: 'changelog', component: ChangelogComponent, canActivate: [AuthGuardToken] },\r\n { path: 'simulation/edit/:id', component: SimulationEditComponent, canActivate: [AuthGuardToken] },\r\n { path: 'simulation/view/:id', component: SimulationViewDetailsComponent, canActivate: [AuthGuardToken] },\r\n { path: 'simulation/view/:id/:mode', component: SimulationViewDetailsComponent, canActivate: [AuthGuardToken] },\r\n { path: 'simulation', component: SimulationsComponent, canActivate: [AuthGuardToken] },\r\n { path: 'help', component: Example1Component },\r\n { path: 'example2', component: Example2Component },\r\n { path: 'example3', component: Example3Component },\r\n { path: 'homeAdmin/laboratories', component: LaboratoriesAdminComponent, canActivate: [AuthGuard] },\r\n { path: 'homeAdmin/simulations', component: SimulationsAdminComponent, canActivate: [AuthGuard] },\r\n { path: 'homeAdmin/instruments', component: InstrumentsAdminComponent, canActivate: [AuthGuard] },\r\n { path: 'homeAdmin/workcell', component: WorkcellAdminComponent, canActivate: [AuthGuard] },\r\n { path: 'homeAdmin/instruments/edit/:id', component: InstrumentsEditAdminComponent, canActivate: [AuthGuard] }\r\n ], {\r\n onSameUrlNavigation: 'reload'\r\n })\r\n ]\r\n})\r\nexport class AppRoutingModule {}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app-routing.module.ts","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@media (max-width: 767px) {\\r\\n /* On small screens, the nav menu spans the full width of the screen. Leave a space for it. */\\r\\n .body-content {\\r\\n padding-top: 50px;\\r\\n }\\r\\n}\\r\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app.component.css\n// module id = ../../../../../src/app/app.component.css\n// module chunks = main","module.exports = \"\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app.component.html\n// module id = ../../../../../src/app/app.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { InstrumentService } from '../services/InstrumentService';\r\nimport { SimulationService } from '../services/SimulationService';\r\nimport { LaboratoryService } from '../services/LaboratoryService';\r\nimport { CountryService } from '../services/CountryService';\r\nimport { StateService } from '../services/StateService';\r\nimport { HelloService } from '../services/HelloService';\r\nimport { TestService } from '../services/TestService';\r\nimport { AppSettingsService } from '../services/AppSettingsService';\r\nimport { UserService } from '../services/UserService';\r\nimport { User } from '../models/User';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent {\r\n\r\n constructor(translate: TranslateService, private instrumentService: InstrumentService\r\n , private simulationService: SimulationService\r\n , private laboratoryService: LaboratoryService\r\n , private countryService: CountryService\r\n , private stateService: StateService\r\n , private helloService: HelloService\r\n , private testService: TestService\r\n , private appSettingsService: AppSettingsService\r\n , private userService: UserService) {\r\n\r\n // get the user informations from the webservice\r\n\r\n this.helloService.userConnected.subscribe(res => this.onUserConnected());\r\n\r\n this.helloService.checkConnection();\r\n\r\n this.userService.get().subscribe(res => {\r\n\r\n const user = res.items[0] as User;\r\n if (user != null && user.preferedLanguage != null) {\r\n translate.setDefaultLang(user.preferedLanguage);\r\n } else {\r\n translate.setDefaultLang('EN');\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(){\r\n console.log('1.4.2');\r\n }\r\n\r\n onUserConnected() {\r\n this.instrumentService.load();\r\n this.laboratoryService.load();\r\n // this.simulationActivityService.load();\r\n this.countryService.load();\r\n this.testService.load();\r\n this.stateService.load();\r\n this.userService.load();\r\n this.appSettingsService.load();\r\n this.simulationService.load();\r\n }\r\n\r\n\r\n diffdate(d1: Date, d2: Date) {\r\n const WNbJours = d2.getTime() - d1.getTime();\r\n return Math.ceil(WNbJours / (1000 * 60 * 60 * 24));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app.component.ts","import { GraphService } from './../services/GraphService';\r\nimport { ImportedSimulationService } from './../services/ImportedSimulationService';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { ExtendedFormModule } from './../common/forms/ExtendedFormModule';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { LoginModule } from './components/login/login.module';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { AppComponent } from './app.component';\r\nimport { NavMenuComponent } from './components/navmenu/navmenu.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '../common/shared-module';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { LaboratoryService } from '../services/LaboratoryService';\r\nimport { SimulationActivityService } from '../services/SimulationActivityService';\r\nimport { UserService } from '../services/UserService';\r\nimport { SimulationService } from '../services/SimulationService';\r\nimport { CountryService } from '../services/CountryService';\r\nimport { InstrumentService } from '../services/InstrumentService';\r\nimport { CalculSimulationService } from '../services/CalculSimulationService';\r\nimport { HelloService } from '../services/HelloService';\r\nimport { TestService } from '../services/TestService';\r\nimport { WorkListService } from '../services/WorkListService';\r\nimport { ScreenShotService } from '../services/ScreenShotService';\r\nimport { StateService } from '../services/StateService';\r\nimport { SimulationActivityManagementService } from '../services/SimulationActivityManagementService';\r\nimport { InstrumentManagementService } from '../services/InstrumentManagementService';\r\nimport { RegexService } from '../services/RegexService';\r\nimport { AppSettingsService } from '../services/AppSettingsService';\r\nimport { LoginRoutingModule } from './components/login/login-routing.module';\r\nimport { environment } from '../environments/environment';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { CalculSimulationWorkcellService } from '../services/CalculSimulationWorkcellService';\r\n\r\n@NgModule({\r\n\r\n declarations: [\r\n AppComponent,\r\n NavMenuComponent\r\n\r\n ],\r\n imports: [\r\n // Global module imports\r\n BrowserModule,\r\n HttpClientModule,\r\n CommonModule,\r\n\r\n // Tous les services du module SharedModule sont partag�s par tous les modules enfants\r\n // A l'inverse des services par d�faut, qui sont r�instanci�s pour chaque module\r\n SharedModule,\r\n ModalModule.forRoot(),\r\n\r\n // Login Module\r\n LoginModule,\r\n LoginRoutingModule,\r\n\r\n // App module\r\n AppRoutingModule,\r\n ExtendedFormModule,\r\n environment.production ? ServiceWorkerModule.register('/ngsw-worker.js') : [],\r\n ],\r\n exports: [\r\n TranslateModule\r\n ],\r\n providers: [\r\n // Providers pour ce module\r\n LaboratoryService,\r\n SimulationActivityService,\r\n UserService,\r\n SimulationService,\r\n CountryService,\r\n InstrumentService,\r\n ImportedSimulationService,\r\n CalculSimulationWorkcellService,\r\n CalculSimulationService,\r\n GraphService,\r\n HelloService,\r\n TestService,\r\n WorkListService,\r\n ScreenShotService,\r\n StateService,\r\n SimulationActivityManagementService,\r\n InstrumentManagementService,\r\n RegexService,\r\n AppSettingsService,\r\n\r\n // { provide: APP_BASE_HREF, useValue: '/test' }\r\n\r\n ],\r\n bootstrap: [AppComponent],\r\n\r\n})\r\nexport class AppModule {\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/app.module.ts","\r\nimport { Component } from '@angular/core';\r\n\r\nconst ADMINTABCOMPONENT_TEMPLATE = `\r\n
\r\n
\r\n`;\r\n\r\n/**\r\n * NotificationComponent displays notifications.\r\n * Use the NotificationMessageService to send a new notification.\r\n */\r\n@Component({\r\n selector: 'admin-tab',\r\n template: ADMINTABCOMPONENT_TEMPLATE\r\n})\r\nexport class AdminTabComponent {\r\n \r\n \r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/AdminTabComponent.ts","export * from './AdminTabComponent';\r\nexport * from './instruments-edit-admin.component';\r\nexport * from './instruments-admin.component';\r\nexport * from './laboratories-admin.component';\r\nexport * from './simulations-admin.component';\r\nexport * from './workcell-admin.component';\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/index.ts","module.exports = \"\\r\\n\\r\\n
\\r\\n

{{ 'Admin_Instruments' | translate }}

\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  1. \\r\\n
    \\r\\n \\r\\n
    {{ 'Instrument_Name' | translate}}
    \\r\\n {{ instrument.name }}\\r\\n
    \\r\\n
  2. \\r\\n
  3. \\r\\n
    \\r\\n \\r\\n
    {{ 'Instrument_Size' | translate}}
    \\r\\n {{ instrument.size }}\\r\\n
    \\r\\n
  4. \\r\\n
  5. \\r\\n
    \\r\\n \\r\\n
    {{ 'Instrument_Coefficient' | translate}}
    \\r\\n {{ instrument.coefficient }}\\r\\n
    \\r\\n
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{ 'Instrument_Create' | translate }}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/instruments-admin.component.html\n// module id = ../../../../../src/app/components/admin/instruments-admin.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { Instrument } from '../../../models/Instrument';\r\nimport { InstrumentService } from '../../../services/InstrumentService';\r\n\r\n@Component({\r\n selector: 'instruments-admin',\r\n templateUrl: './instruments-admin.component.html'\r\n})\r\nexport class InstrumentsAdminComponent {\r\n instruments: Instrument[];\r\n newInstrumentName: string = '';\r\n newInstrument: Instrument = null;\r\n\r\n constructor(\r\n public instrumentService: InstrumentService,\r\n private router: Router) {\r\n instrumentService.get().subscribe(res => this.instruments = res.items as Instrument[]);\r\n }\r\n\r\n change(instrument: Instrument) {\r\n\r\n }\r\n\r\n\r\n create() {\r\n const newInstrument = new Instrument();\r\n newInstrument.name = this.newInstrumentName;\r\n newInstrument.coefficient = this.newInstrument.coefficient;\r\n newInstrument.size = this.newInstrument.size;\r\n newInstrument.constants = JSON.parse(JSON.stringify(this.newInstrument.constants));\r\n newInstrument.tests = JSON.parse(JSON.stringify(this.newInstrument.tests));\r\n newInstrument.charge = JSON.parse(JSON.stringify(this.newInstrument.charge));\r\n newInstrument.ratio = this.newInstrument.ratio;\r\n newInstrument.charge.id = UUID.UUID();\r\n\r\n const newId = this.instrumentService.edit(newInstrument);\r\n\r\n // route to the new instrument\r\n\r\n this.router.navigate(['/homeAdmin/instruments/edit', newId]);\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/instruments-admin.component.ts","module.exports = \"\\r\\n\\r\\n
\\r\\n

{{ 'Admin_Instruments' | translate }}

\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEchRiTrans_IncuIncuMesureRdPreh
{{ 'Instrument_Charge' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEchRiTrans_IncuIncuMesureRdPreh
{{getNameOfTestId(constant.testId)}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{'Instrument_TestName' | translate}}{{'Instrument_TestActive' | translate}}{{'Instrument_TestOccupation' | translate}}
{{test.mnemonic}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/instruments-edit-admin.component.html\n// module id = ../../../../../src/app/components/admin/instruments-edit-admin.component.html\n// module chunks = main","\r\nimport { FormMapper } from './../../../common/forms/FormMapper';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ExtentedFormControl } from './../../../common/forms/ExtentedFormControl';\r\nimport { List } from 'linqts';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Test } from '../../../models/Test';\r\nimport { Instrument } from '../../../models/Instrument';\r\nimport { Constant } from '../../../models/Constant';\r\nimport { Charge } from '../../../models/Charge';\r\nimport { InstrumentTestOccupations } from '../../../models/InstrumentTestOccupations';\r\nimport { InstrumentService } from '../../../services/InstrumentService';\r\nimport { TestService } from '../../../services/TestService';\r\n\r\n\r\n@Component({\r\n selector: 'instruments-edit-admin',\r\n templateUrl: './instruments-edit-admin.component.html'\r\n})\r\nexport class InstrumentsEditAdminComponent implements OnInit, OnDestroy {\r\n\r\n tests: Test[];\r\n\r\n\r\n id: string;\r\n loading: boolean;\r\n value: Instrument;\r\n message: string;\r\n private _idChangedSubscription: any;\r\n constants: Constant[] = [];\r\n name: ExtentedFormControl;\r\n size: ExtentedFormControl;\r\n ratio: ExtentedFormControl;\r\n coefficient: ExtentedFormControl;\r\n charge: Charge;\r\n instrumentForm: FormGroup;\r\n testsInstrument: InstrumentTestOccupations[];\r\n\r\n\r\n constructor(\r\n public instrumentService: InstrumentService,\r\n translateService: TranslateService,\r\n private testService: TestService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n builder: FormBuilder) {\r\n\r\n testService.get().subscribe(res => {\r\n this.tests = res.items as Test[];\r\n this.tests = this.tests.sort((a, b) => a.order - b.order);\r\n });\r\n\r\n const required: string = translateService.instant('Form_FieldRequired');\r\n this.name = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.size = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.ratio = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.coefficient = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n\r\n this.instrumentForm = builder.group({\r\n name: this.name,\r\n size: this.size,\r\n coefficient: this.coefficient,\r\n ratio: this.ratio\r\n });\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this._idChangedSubscription = this.route.params.subscribe(params => {\r\n this.id = params['id'];\r\n this.load();\r\n });\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this._idChangedSubscription.unsubscribe();\r\n }\r\n\r\n\r\n load() {\r\n this.instrumentService.find(this.id)\r\n .subscribe(\r\n (value) => this.onLoadCompleted(value as Instrument),\r\n (error) => this.onLoadFailed(error),\r\n () => this.loading = false\r\n );\r\n }\r\n\r\n onLoadCompleted(value: Instrument) {\r\n this.value = value;\r\n FormMapper.mapTo(this.value, this.instrumentForm);\r\n // get all constant information\r\n for (const constant of this.value.constants) {\r\n let c: Constant = new Constant();\r\n c = this.clone(constant);\r\n\r\n this.constants.push(c);\r\n }\r\n const listtemp = new List(this.constants);\r\n this.constants = listtemp.OrderBy(s => this.getTestOfTestId(s.testId).order).ToArray();\r\n this.charge = JSON.parse(JSON.stringify(value.charge));\r\n this.testsInstrument = JSON.parse(JSON.stringify(value.tests));\r\n \r\n }\r\n\r\n clearConstants() {\r\n for (const constant of this.constants) {\r\n constant.echTime = 0;\r\n constant.riTime = 0;\r\n constant.transTime = 0;\r\n constant.incuTime = 0;\r\n constant.mesureTime = 0;\r\n constant.rdTime = 0;\r\n constant.prehTime = 0;\r\n constant.resultTime = 0;\r\n }\r\n }\r\n\r\n getNameOfTestId(testId: string) {\r\n return this.tests.find(d => d.id === testId).mnemonic;\r\n }\r\n\r\n\r\n getTestOfTestId(testId: string): Test {\r\n return this.tests.find(d => d.id === testId);\r\n }\r\n\r\n\r\n onLoadFailed(error: any) {\r\n this.value = null;\r\n this.message = error;\r\n }\r\n\r\n\r\n clone(source: any): any {\r\n return JSON.parse(JSON.stringify(source));\r\n }\r\n\r\n save() {\r\n FormMapper.mapFrom(this.instrumentForm, this.value);\r\n // map all constants\r\n this.value.constants = this.constants;\r\n this.value.charge = this.charge;\r\n this.value.tests = this.testsInstrument;\r\n this.instrumentService.edit(this.value);\r\n\r\n }\r\n\r\n cancel() {\r\n // route to homeAdmin/instruments\r\n this.router.navigate(['/homeAdmin/instruments']);\r\n }\r\n\r\n\r\n isActive(test: Test) {\r\n return this.testsInstrument.some(e => e.testId === test.id);\r\n }\r\n\r\n setActive(test: Test) {\r\n if (this.isActive(test)) {\r\n this.testsInstrument = this.testsInstrument.filter(e => e.testId !== test.id);\r\n } else {\r\n const result = new InstrumentTestOccupations();\r\n result.instrumentId = this.value.id;\r\n result.testId = test.id;\r\n result.occupationMax = 9;\r\n this.testsInstrument.push(result);\r\n }\r\n }\r\n\r\n getCharge(test: Test) {\r\n const elem = this.testsInstrument.find(e => e.testId === test.id);\r\n if (elem !== null && elem != undefined) {\r\n return elem.occupationMax;\r\n }\r\n\r\n }\r\n\r\n changeInput(test: Test, val) {\r\n const instrumentOccupations = this.testsInstrument.find(d => d.testId === test.id);\r\n instrumentOccupations.occupationMax = val.srcElement.value;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/instruments-edit-admin.component.ts","module.exports = \"
\\r\\n

Laboratories ({{getLaboratoriesCount()}})

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{ laboratory.name }}
\\r\\n {{ laboratory.clientNumber }}{{ laboratory.city }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/laboratories-admin.component.html\n// module id = ../../../../../src/app/components/admin/laboratories-admin.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { DropDownLabel } from '../../../common';\r\nimport { Router } from '@angular/router';\r\nimport { ExtentedFormControl } from './../../../common/forms/ExtentedFormControl';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PagedDataSource } from '../../../models/PagedDataSource';\r\nimport { Laboratory } from '../../../models/Laboratory';\r\nimport { LaboratoryService } from '../../../services/LaboratoryService';\r\nimport { SimulationService } from '../../../services/SimulationService';\r\n\r\n@Component({\r\n selector: 'laboratories-admin',\r\n templateUrl: './laboratories-admin.component.html'\r\n})\r\nexport class LaboratoriesAdminComponent {\r\n public laboratories: PagedDataSource;\r\n public sortProperties = new PagedDataSource();\r\n allLaboratorySimuCount: { [id: string]: number; } = {};\r\n\r\n searchTerm: string;\r\n\r\n sort: ExtentedFormControl;\r\n\r\n constructor(\r\n private laboratoryService: LaboratoryService,\r\n private simulationService: SimulationService,\r\n private translateService: TranslateService,\r\n private router: Router) {\r\n\r\n\r\n this.sort = new ExtentedFormControl('', null, null, null, 0);\r\n this.sortProperties.items = new Array();\r\n this.sortProperties.items.push(new DropDownLabel('name', translateService.instant('Sort_ByName'), true));\r\n this.sortProperties.items.push(new DropDownLabel('clientNumber', translateService.instant('Sort_ByClientNumber')));\r\n this.sortProperties.items.push(new DropDownLabel('city', translateService.instant('Sort_ByCity')));\r\n\r\n for (const property of this.sortProperties.items) {\r\n if (property.isDefault === true) {\r\n this.sort.setValue(property.displayValue);\r\n this.sort.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n\r\n laboratoryService.getAsAdmin()\r\n .subscribe(result => {\r\n this.laboratories = result as PagedDataSource;\r\n });\r\n\r\n this.allLaboratorySimuCount = {};\r\n }\r\n\r\n getSimulationCountForLaboratory(laboratory: Laboratory) {\r\n if (this.allLaboratorySimuCount[laboratory.id] == null) {\r\n const simulations = this.simulationService.findByLaboratoryIdAsAdmin(laboratory.id);\r\n let result = 0;\r\n simulations.subscribe(res => {\r\n result = res.totalCount;\r\n this.allLaboratorySimuCount[laboratory.id] = result;\r\n });\r\n }\r\n\r\n return this.allLaboratorySimuCount[laboratory.id];\r\n }\r\n\r\n getLaboratoriesCount() {\r\n if (this.laboratories != null && this.laboratories.items != null) {\r\n return this.laboratories.items.length;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n onUpdateOrCreateLaboratory(laboratory: Laboratory) {\r\n // route to /simulation/view/id\r\n this.router.navigate(['/laboratory/view', laboratory.id]);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/laboratories-admin.component.ts","module.exports = \"
\\r\\n

{{ 'Simulation_Header' | translate }} ({{ getSimulationCount() }})

\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{ simulation.name }}
\\r\\n {{ simulation.date | userdate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ getLaboratory(simulation).clientNumber }}{{ getLaboratory(simulation).city }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/simulations-admin.component.html\n// module id = ../../../../../src/app/components/admin/simulations-admin.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { ExtentedFormControl } from './../../../common/forms/ExtentedFormControl';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DropDownLabel } from '../../../common';\r\nimport { PagedDataSource } from '../../../models/PagedDataSource';\r\nimport { Simulation } from '../../../models/Simulation';\r\nimport { Instrument } from '../../../models/Instrument';\r\nimport { Laboratory } from '../../../models/Laboratory';\r\nimport { SimulationService } from '../../../services/SimulationService';\r\nimport { InstrumentService } from '../../../services/InstrumentService';\r\nimport { LaboratoryService } from '../../../services/LaboratoryService';\r\nimport { CalculSimulationService } from '../../../services/CalculSimulationService';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'simulations-admin',\r\n templateUrl: './simulations-admin.component.html'\r\n})\r\nexport class SimulationsAdminComponent {\r\n public simulations: PagedDataSource;\r\n public sortProperties = new PagedDataSource();\r\n instruments: Instrument[];\r\n laboratories: Laboratory[];\r\n sort: ExtentedFormControl;\r\n allSimulationTestCount: { [id: string]: number; } = {};\r\n searchTerm: string;\r\n\r\n constructor(private service: SimulationService,\r\n private router: Router,\r\n private translateService: TranslateService,\r\n private instrumentService: InstrumentService,\r\n private laboratoryService: LaboratoryService,\r\n private calculSimulationService: CalculSimulationService) {\r\n service.getAsAdmin()\r\n .subscribe(result => {\r\n this.simulations = result as PagedDataSource;\r\n });\r\n this.allSimulationTestCount = {};\r\n this.instrumentService.getAsAdmin().subscribe(res => this.instruments = res.items as Instrument[]);\r\n this.laboratoryService.getAsAdmin().subscribe(res => this.laboratories = res.items as Laboratory[]);\r\n this.sort = new ExtentedFormControl('', null, null, null, 0);\r\n this.sortProperties.items = new Array();\r\n this.sortProperties.items.push(new DropDownLabel('date', this.translateService.instant('Sort_ByDate'), true));\r\n\r\n for (const property of this.sortProperties.items) {\r\n if (property.isDefault === true) {\r\n this.sort.setValue(property.displayValue);\r\n this.sort.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n getLaboratory(simulation: Simulation): Laboratory {\r\n if (this.laboratories != null) {\r\n return this.laboratories.find(x => x.id === simulation.laboratoryId);\r\n }\r\n }\r\n\r\n getInstrumentsBySimuByLab(simulation: Simulation, size: number) {\r\n let result = 0;\r\n for (const key of simulation.instruments) {\r\n const instrument = this.getInstrumentById(key.instrumentId);\r\n if (instrument.size === size) {\r\n result++;\r\n }\r\n }\r\n return result;\r\n }\r\n updateLastDate(simulationId: string) {\r\n if (this.service.updateLastDate(simulationId)) {\r\n // refresh current page\r\n\r\n }\r\n }\r\n\r\n getTestByDayBySimu(simulation: Simulation) {\r\n if (this.allSimulationTestCount[simulation.id] == null) {\r\n this.allSimulationTestCount[simulation.id] = this.calculSimulationService.getTotalDailyTestOfSimulation(simulation);\r\n }\r\n\r\n return this.allSimulationTestCount[simulation.id];\r\n }\r\n\r\n getSimulationCount() {\r\n if (this.simulations != null && this.simulations.items != null) {\r\n return this.simulations.items.length;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n getInstrumentById(id: string) {\r\n if (id != null) {\r\n for (let instrument of this.instruments) {\r\n instrument = (instrument as Instrument);\r\n if (instrument.id === id) {\r\n return instrument;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n onUpdateOrCreateSimulation(simulation: Simulation) {\r\n // route to /simulation/view/id\r\n this.router.navigate(['/simulation/view', simulation.id]);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/simulations-admin.component.ts","module.exports = \"\\r\\n\\r\\n
\\r\\n

{{ 'Admin_Workcell' | translate }}

\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n Global Settings\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameValue
Transfert Time\\r\\n \\r\\n
SwapCage_Time\\r\\n \\r\\n
LoadCage_Time\\r\\n \\r\\n
RackFree_Time\\r\\n \\r\\n
UnloadCage_Time\\r\\n \\r\\n
UnloadArm_Time\\r\\n \\r\\n
Swing_Time\\r\\n \\r\\n
LoadArm_Time\\r\\n \\r\\n
Centri_Time\\r\\n \\r\\n
\\r\\n
{{'Settings_SaveValidation' | translate}}
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/workcell-admin.component.html\n// module id = ../../../../../src/app/components/admin/workcell-admin.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AppSettings } from '../../../models/AppSettings';\r\nimport { WorkcellGlobalSettings } from '../../../models/WorkcellGlobalSettings';\r\nimport { AppSettingsService } from '../../../services/AppSettingsService';\r\n\r\n@Component({\r\n selector: 'workcell-admin',\r\n templateUrl: './workcell-admin.component.html'\r\n})\r\nexport class WorkcellAdminComponent {\r\n\r\n appSettings : AppSettings[] ;\r\n param: WorkcellGlobalSettings;\r\n constructor(\r\n private appSettingsService: AppSettingsService,\r\n private router: Router) {\r\n \r\n appSettingsService.get().subscribe(res => {\r\n this.appSettings = res.items as AppSettings[];\r\n this.param = new WorkcellGlobalSettings();\r\n this.param.Centri_Time = +this.appSettings.find(e => e.name == \"Centri_Time\").settings;\r\n this.param.LoadArm_Time = +this.appSettings.find(e => e.name == \"LoadArm_Time\").settings;\r\n this.param.LoadCage_Time = +this.appSettings.find(e => e.name == \"LoadCage_Time\").settings;\r\n this.param.UnloadCage_Time = +this.appSettings.find(e => e.name == \"UnloadCage_Time\").settings;\r\n this.param.SwapCage_Time = +this.appSettings.find(e => e.name == \"SwapCage_Time\").settings;\r\n this.param.UnloadArm_Time = +this.appSettings.find(e => e.name == \"UnloadArm_Time\").settings;\r\n this.param.Swing_Time = +this.appSettings.find(e => e.name == \"Swing_Time\").settings;\r\n this.param.RackFree_Time = +this.appSettings.find(e => e.name == \"RackFree_Time\").settings;\r\n this.param.Transfert_Time = +this.appSettings.find(e => e.name == \"Transfert_Time\").settings;\r\n });\r\n\r\n \r\n }\r\n\r\n \r\n showSnackBar() {\r\n const x = document.getElementById('snackbar');\r\n x.className = 'show';\r\n setTimeout(function() {\r\n x.className = x.className.replace('show', '');\r\n }, 3000);\r\n }\r\n\r\n save() {\r\n this.appSettingsService.save(this.param).subscribe(element => {\r\n this.showSnackBar();\r\n });\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/admin/workcell-admin.component.ts","module.exports = \"
\\r\\n

REGLES

\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

CSS

\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
    \\r\\n
  1. 00
  2. \\r\\n
  3. 02
  4. \\r\\n
  5. 04
  6. \\r\\n
  7. 06
  8. \\r\\n
  9. 08
  10. \\r\\n
  11. 10
  12. \\r\\n
  13. 12
  14. \\r\\n
  15. 14
  16. \\r\\n
  17. 16
  18. \\r\\n
  19. 18
  20. \\r\\n
  21. 20
  22. \\r\\n
  23. 22
  24. \\r\\n
  25. 24
  26. \\r\\n
\\r\\n
    \\r\\n
  1. \\r\\n Lundi\\r\\n
      \\r\\n
    1. \\r\\n \\r\\n
    2. \\r\\n
    3. \\r\\n \\r\\n
    4. \\r\\n
    5. \\r\\n \\r\\n
    6. \\r\\n
    \\r\\n
  2. \\r\\n
  3. \\r\\n Mardi\\r\\n
      \\r\\n
    1. \\r\\n \\r\\n
    2. \\r\\n
    \\r\\n
      \\r\\n
    1. \\r\\n \\r\\n
    2. \\r\\n
    \\r\\n
  4. \\r\\n
  5. \\r\\n Mercredi\\r\\n
      \\r\\n
    1. \\r\\n \\r\\n
    2. \\r\\n
    \\r\\n
  6. \\r\\n
  7. \\r\\n Jeudi\\r\\n
      \\r\\n
    1. \\r\\n \\r\\n
    2. \\r\\n
    \\r\\n
  8. \\r\\n
  9. \\r\\n Vendredi\\r\\n
      \\r\\n
    1. \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    2. \\r\\n
    \\r\\n
  10. \\r\\n
  11. \\r\\n Samedi\\r\\n
      \\r\\n
    1. \\r\\n \\r\\n
    2. \\r\\n
    \\r\\n
  12. \\r\\n
  13. \\r\\n Dimanche\\r\\n
      \\r\\n
    1. \\r\\n \\r\\n
    2. \\r\\n
    \\r\\n
  14. \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

Modal Header

\\r\\n
\\r\\n
\\r\\n

\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec at odio feugiat, viverra risus a, congue justo. Sed euismod lectus et venenatis scelerisque. Sed diam risus, interdum sed erat vitae, suscipit lacinia lorem. Integer lacinia consectetur purus, vitae ornare felis semper vitae. Suspendisse sit amet orci porta, lobortis ligula at, aliquam urna. Fusce et ullamcorper sapien. Fusce consequat eu tellus sit amet vulputate. Nam hendrerit enim at enim iaculis, non porttitor eros imperdiet. Nullam euismod diam sapien, vitae eleifend elit tincidunt eu. Maecenas non vestibulum tellus. Duis id diam purus. Praesent vel sollicitudin magna.\\r\\n

\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n

\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n\\r\\n\\r\\n

\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n

\\r\\n

\\r\\n \\r\\n \\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n

Example block-level help text here.

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec at odio feugiat, viverra risus a, congue justo. Sed euismod lectus et venenatis scelerisque. Sed diam risus, interdum sed erat vitae, suscipit lacinia lorem. Integer lacinia consectetur purus, vitae ornare felis semper vitae. Suspendisse sit amet orci porta, lobortis ligula at, aliquam urna. Fusce et ullamcorper sapien. Fusce consequat eu tellus sit amet vulputate. Nam hendrerit enim at enim iaculis, non porttitor eros imperdiet. Nullam euismod diam sapien, vitae eleifend elit tincidunt eu. Maecenas non vestibulum tellus. Duis id diam purus. Praesent vel sollicitudin magna.\\r\\n

\\r\\n

\\r\\n Proin vitae dolor non nunc molestie viverra nec in odio. Sed vitae eleifend lacus. Vivamus blandit, felis a consequat sagittis, augue tellus condimentum enim, sed rhoncus mi justo id lorem. Mauris vitae augue porttitor, porta purus et, laoreet metus. Donec sit amet ullamcorper nisi, ut vestibulum turpis. Aenean mollis sagittis urna, eget lobortis nibh. In eget nisi tristique ante ultrices interdum non sed nibh. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.\\r\\n

\\r\\n

\\r\\n Donec ultricies, enim elementum porta dignissim, nibh nibh ornare tortor, venenatis faucibus orci dui sit amet erat. Maecenas lorem dolor, malesuada sit amet orci ut, tempus dictum tortor. Nulla posuere enim sed lorem euismod, egestas condimentum arcu pellentesque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Proin eget rhoncus neque, sit amet finibus mauris. Donec placerat dui turpis, eget condimentum nibh convallis et. Fusce placerat tempor augue, eget rhoncus ante congue et. Integer vitae arcu felis. Cras dignissim nisl sed rutrum maximus. Fusce velit est, efficitur sed placerat vitae, scelerisque et ex. Integer feugiat ipsum ac aliquet mollis. In placerat tempus tincidunt. Donec pellentesque eu enim eget placerat.\\r\\n

\\r\\n

\\r\\n Curabitur varius pulvinar mauris. Aenean malesuada volutpat tortor, et porta nulla malesuada ac. Praesent eget blandit lectus. Mauris lacinia ullamcorper metus, a rhoncus velit hendrerit varius. Quisque ac augue et turpis porta volutpat. In hac habitasse platea dictumst. Nullam interdum congue ante at pretium. Vivamus lectus risus, hendrerit at tellus et, ornare bibendum nunc. Curabitur odio dolor, tempor vel ullamcorper in, consectetur eget quam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut metus tempor, aliquet libero in, porta libero. Proin ut ligula et erat facilisis lacinia. Maecenas commodo arcu lacus, a ultricies dolor convallis id. Aenean sodales est ac porta posuere. Etiam scelerisque ex eu nibh facilisis, in pretium nisl maximus.\\r\\n

\\r\\n

\\r\\n Duis rhoncus eros ut ante vehicula, non interdum elit ultricies. Integer congue ornare placerat. Morbi convallis, justo vel accumsan pulvinar, purus mauris auctor eros, vitae fringilla enim nisi vitae tortor. Pellentesque vel nisi tellus. Donec tempor nisi ex, et fermentum lacus porttitor at. Sed accumsan, sapien eget suscipit facilisis, lorem enim tempor arcu, eget consectetur est quam vitae tellus. Integer sollicitudin lectus sed nunc ultricies efficitur. Cras a faucibus lorem, vitae interdum tellus. Etiam iaculis est quam, ut sagittis neque elementum non. Sed ac facilisis arcu.\\r\\n

\\r\\n

\\r\\n Curabitur ut dictum lectus, id rhoncus sapien. Aenean vitae risus quis lorem interdum lacinia in vitae sapien. Sed maximus lorem sed ante fringilla lacinia. Cras orci est, cursus ac consequat nec, molestie eu dui. Integer cursus viverra neque at tempor. Fusce tincidunt urna in eros scelerisque maximus. Ut hendrerit scelerisque facilisis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec nibh purus, ullamcorper quis posuere a, ullamcorper a magna. Nullam elementum rhoncus tempus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis interdum dolor turpis, nec convallis enim tristique eu.\\r\\n

\\r\\n

\\r\\n In hac habitasse platea dictumst. Nulla pulvinar nunc id faucibus porttitor. Curabitur id arcu neque. Suspendisse ut quam pellentesque, hendrerit nibh non, imperdiet dui. Ut non nibh vel ipsum dapibus dapibus. Quisque pretium placerat felis, nec blandit metus sollicitudin in. Aliquam tempor velit eget convallis imperdiet.\\r\\n

\\r\\n

\\r\\n Fusce arcu tortor, lacinia in sagittis ornare, finibus quis lorem. Morbi bibendum, magna eget efficitur fermentum, nulla eros laoreet tortor, placerat hendrerit est leo ac turpis. Donec ac interdum libero, sed dapibus est. Donec ut dolor iaculis, gravida magna vel, efficitur massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean a vestibulum massa, in tristique tellus. Vestibulum facilisis finibus augue vel tempor. Nunc at vestibulum nulla, eget convallis elit. Praesent dignissim nisi eu quam tempus bibendum. Ut sed porta elit, cursus ullamcorper nisl.\\r\\n

\\r\\n

\\r\\n Aenean et turpis lectus. Fusce sollicitudin luctus ligula, a rutrum odio gravida sed. Nam tellus felis, rutrum in interdum non, mollis sed libero. Etiam ut dolor in mi euismod pharetra at et turpis. Vivamus sodales volutpat metus, eu feugiat quam efficitur et. Etiam lectus lorem, porttitor feugiat eros nec, blandit tristique dui. Quisque et bibendum nibh. Duis luctus justo in ligula porttitor fringilla. Fusce at orci a nunc ultricies aliquam in eu purus. Maecenas efficitur ex nec quam commodo, in feugiat turpis porta. Cras quis nisl nec leo dictum ultricies vel eget elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nullam condimentum dignissim massa a auctor. Ut vitae justo magna. Phasellus vulputate, elit ut varius convallis, urna dolor rhoncus sapien, id luctus neque mi ullamcorper neque. Praesent maximus diam sed hendrerit efficitur.\\r\\n

\\r\\n

\\r\\n Aenean consectetur, neque at dignissim sagittis, sapien diam ornare diam, a iaculis eros eros non libero. Phasellus eros enim, gravida porttitor euismod ut, posuere in justo. Pellentesque egestas libero enim, eu dapibus felis tempus ac. Vivamus in vulputate eros. Maecenas nec consectetur erat, nec egestas mauris. Fusce dolor tortor, tempus ac metus molestie, dictum tempor ex. Ut eu posuere ipsum, non dignissim est. Vivamus sem est, sollicitudin quis ornare at, varius at mi. Praesent efficitur consectetur eros, vitae suscipit massa sagittis in. Aenean a tincidunt metus. Mauris vel lacinia elit. Sed scelerisque lacus massa, id faucibus dui consequat quis.\\r\\n

\\r\\n

\\r\\n Suspendisse tincidunt ligula ac quam rhoncus vestibulum sed id quam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc eget ante tincidunt, faucibus velit at, ultricies est. Donec sed bibendum urna. Duis nibh metus, tempus eu magna ut, pellentesque rutrum augue. Aliquam ac mi sollicitudin, pellentesque mi quis, eleifend ex. Sed euismod orci mollis mollis iaculis.\\r\\n

\\r\\n

\\r\\n Integer a odio orci. Aenean a nunc leo. Donec semper pretium lorem non dictum. Sed a aliquet nibh. Nullam at mollis sem. Mauris dignissim interdum maximus. Aliquam interdum, metus eu commodo vestibulum, quam ligula auctor felis, ut scelerisque nunc tellus non augue. Suspendisse mauris leo, aliquam a aliquet ut, tincidunt quis mauris. Mauris eget vehicula sem, sed imperdiet felis.\\r\\n

\\r\\n

\\r\\n Phasellus quam ex, luctus quis condimentum nec, molestie in ex. Duis rutrum ornare dolor, sit amet varius orci vulputate eu. Phasellus luctus interdum libero non rhoncus. Cras laoreet nisl arcu, nec gravida quam scelerisque a. Praesent non sagittis nibh. Praesent eu arcu scelerisque massa egestas placerat sit amet sed tortor. Quisque mattis libero in magna finibus feugiat. Morbi suscipit consectetur nibh, a venenatis tortor egestas faucibus. Vestibulum scelerisque et ligula vel elementum. Curabitur posuere interdum sapien. Quisque pretium augue mi, eu faucibus nisl mollis id. Phasellus auctor libero non posuere dapibus. Maecenas sed leo lectus. Nam eget massa quis dolor porttitor dignissim. Morbi consectetur lacus non consectetur dapibus.\\r\\n

\\r\\n

\\r\\n Quisque eu metus neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur elementum nec tellus sit amet malesuada. Nulla lobortis sit amet purus ut auctor. Nulla posuere, erat et pulvinar auctor, quam erat condimentum arcu, ut eleifend risus lorem non nisi. Mauris feugiat, metus nec blandit dignissim, quam ante dapibus ipsum, eu tincidunt arcu dui non augue. Maecenas dignissim condimentum massa quis tristique. Vivamus eu dolor lectus. Nam nibh massa, vehicula id faucibus quis, viverra id sem. Mauris elit nibh, venenatis a felis eget, accumsan auctor sem. In laoreet accumsan elementum.\\r\\n

\\r\\n

\\r\\n Fusce sit amet nisi elementum, imperdiet nisl et, porta ante. Quisque dignissim ultricies elit id dapibus. Nunc tristique eros ante, id fringilla nunc tempus vel. Nunc sit amet nibh mauris. Nulla consectetur sodales magna id egestas. Praesent quis mollis lacus. Duis est nibh, consequat ac accumsan sit amet, lobortis quis turpis. Ut congue egestas pharetra. Maecenas id dui urna. Donec nec leo at erat blandit pellentesque eget in nulla. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer vel placerat elit. Fusce hendrerit, leo quis blandit aliquam, risus nisi porttitor nisi, id consequat justo magna eu magna. Pellentesque porta, urna sit amet venenatis suscipit, neque odio cursus metus, eget maximus felis ligula in sapien. Nunc hendrerit faucibus ante. Nam consectetur, elit at placerat luctus, mi nibh rutrum leo, vel commodo turpis diam sit amet nibh.\\r\\n

\\r\\n

\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec at odio feugiat, viverra risus a, congue justo. Sed euismod lectus et venenatis scelerisque. Sed diam risus, interdum sed erat vitae, suscipit lacinia lorem. Integer lacinia consectetur purus, vitae ornare felis semper vitae. Suspendisse sit amet orci porta, lobortis ligula at, aliquam urna. Fusce et ullamcorper sapien. Fusce consequat eu tellus sit amet vulputate. Nam hendrerit enim at enim iaculis, non porttitor eros imperdiet. Nullam euismod diam sapien, vitae eleifend elit tincidunt eu. Maecenas non vestibulum tellus. Duis id diam purus. Praesent vel sollicitudin magna.\\r\\n

\\r\\n

\\r\\n Proin vitae dolor non nunc molestie viverra nec in odio. Sed vitae eleifend lacus. Vivamus blandit, felis a consequat sagittis, augue tellus condimentum enim, sed rhoncus mi justo id lorem. Mauris vitae augue porttitor, porta purus et, laoreet metus. Donec sit amet ullamcorper nisi, ut vestibulum turpis. Aenean mollis sagittis urna, eget lobortis nibh. In eget nisi tristique ante ultrices interdum non sed nibh. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.\\r\\n

\\r\\n

\\r\\n Donec ultricies, enim elementum porta dignissim, nibh nibh ornare tortor, venenatis faucibus orci dui sit amet erat. Maecenas lorem dolor, malesuada sit amet orci ut, tempus dictum tortor. Nulla posuere enim sed lorem euismod, egestas condimentum arcu pellentesque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Proin eget rhoncus neque, sit amet finibus mauris. Donec placerat dui turpis, eget condimentum nibh convallis et. Fusce placerat tempor augue, eget rhoncus ante congue et. Integer vitae arcu felis. Cras dignissim nisl sed rutrum maximus. Fusce velit est, efficitur sed placerat vitae, scelerisque et ex. Integer feugiat ipsum ac aliquet mollis. In placerat tempus tincidunt. Donec pellentesque eu enim eget placerat.\\r\\n

\\r\\n

\\r\\n Curabitur varius pulvinar mauris. Aenean malesuada volutpat tortor, et porta nulla malesuada ac. Praesent eget blandit lectus. Mauris lacinia ullamcorper metus, a rhoncus velit hendrerit varius. Quisque ac augue et turpis porta volutpat. In hac habitasse platea dictumst. Nullam interdum congue ante at pretium. Vivamus lectus risus, hendrerit at tellus et, ornare bibendum nunc. Curabitur odio dolor, tempor vel ullamcorper in, consectetur eget quam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut metus tempor, aliquet libero in, porta libero. Proin ut ligula et erat facilisis lacinia. Maecenas commodo arcu lacus, a ultricies dolor convallis id. Aenean sodales est ac porta posuere. Etiam scelerisque ex eu nibh facilisis, in pretium nisl maximus.\\r\\n

\\r\\n

\\r\\n Duis rhoncus eros ut ante vehicula, non interdum elit ultricies. Integer congue ornare placerat. Morbi convallis, justo vel accumsan pulvinar, purus mauris auctor eros, vitae fringilla enim nisi vitae tortor. Pellentesque vel nisi tellus. Donec tempor nisi ex, et fermentum lacus porttitor at. Sed accumsan, sapien eget suscipit facilisis, lorem enim tempor arcu, eget consectetur est quam vitae tellus. Integer sollicitudin lectus sed nunc ultricies efficitur. Cras a faucibus lorem, vitae interdum tellus. Etiam iaculis est quam, ut sagittis neque elementum non. Sed ac facilisis arcu.\\r\\n

\\r\\n

\\r\\n Curabitur ut dictum lectus, id rhoncus sapien. Aenean vitae risus quis lorem interdum lacinia in vitae sapien. Sed maximus lorem sed ante fringilla lacinia. Cras orci est, cursus ac consequat nec, molestie eu dui. Integer cursus viverra neque at tempor. Fusce tincidunt urna in eros scelerisque maximus. Ut hendrerit scelerisque facilisis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec nibh purus, ullamcorper quis posuere a, ullamcorper a magna. Nullam elementum rhoncus tempus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis interdum dolor turpis, nec convallis enim tristique eu.\\r\\n

\\r\\n

\\r\\n In hac habitasse platea dictumst. Nulla pulvinar nunc id faucibus porttitor. Curabitur id arcu neque. Suspendisse ut quam pellentesque, hendrerit nibh non, imperdiet dui. Ut non nibh vel ipsum dapibus dapibus. Quisque pretium placerat felis, nec blandit metus sollicitudin in. Aliquam tempor velit eget convallis imperdiet.\\r\\n

\\r\\n

\\r\\n Fusce arcu tortor, lacinia in sagittis ornare, finibus quis lorem. Morbi bibendum, magna eget efficitur fermentum, nulla eros laoreet tortor, placerat hendrerit est leo ac turpis. Donec ac interdum libero, sed dapibus est. Donec ut dolor iaculis, gravida magna vel, efficitur massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean a vestibulum massa, in tristique tellus. Vestibulum facilisis finibus augue vel tempor. Nunc at vestibulum nulla, eget convallis elit. Praesent dignissim nisi eu quam tempus bibendum. Ut sed porta elit, cursus ullamcorper nisl.\\r\\n

\\r\\n

\\r\\n Aenean et turpis lectus. Fusce sollicitudin luctus ligula, a rutrum odio gravida sed. Nam tellus felis, rutrum in interdum non, mollis sed libero. Etiam ut dolor in mi euismod pharetra at et turpis. Vivamus sodales volutpat metus, eu feugiat quam efficitur et. Etiam lectus lorem, porttitor feugiat eros nec, blandit tristique dui. Quisque et bibendum nibh. Duis luctus justo in ligula porttitor fringilla. Fusce at orci a nunc ultricies aliquam in eu purus. Maecenas efficitur ex nec quam commodo, in feugiat turpis porta. Cras quis nisl nec leo dictum ultricies vel eget elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nullam condimentum dignissim massa a auctor. Ut vitae justo magna. Phasellus vulputate, elit ut varius convallis, urna dolor rhoncus sapien, id luctus neque mi ullamcorper neque. Praesent maximus diam sed hendrerit efficitur.\\r\\n

\\r\\n

\\r\\n Aenean consectetur, neque at dignissim sagittis, sapien diam ornare diam, a iaculis eros eros non libero. Phasellus eros enim, gravida porttitor euismod ut, posuere in justo. Pellentesque egestas libero enim, eu dapibus felis tempus ac. Vivamus in vulputate eros. Maecenas nec consectetur erat, nec egestas mauris. Fusce dolor tortor, tempus ac metus molestie, dictum tempor ex. Ut eu posuere ipsum, non dignissim est. Vivamus sem est, sollicitudin quis ornare at, varius at mi. Praesent efficitur consectetur eros, vitae suscipit massa sagittis in. Aenean a tincidunt metus. Mauris vel lacinia elit. Sed scelerisque lacus massa, id faucibus dui consequat quis.\\r\\n

\\r\\n

\\r\\n Suspendisse tincidunt ligula ac quam rhoncus vestibulum sed id quam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc eget ante tincidunt, faucibus velit at, ultricies est. Donec sed bibendum urna. Duis nibh metus, tempus eu magna ut, pellentesque rutrum augue. Aliquam ac mi sollicitudin, pellentesque mi quis, eleifend ex. Sed euismod orci mollis mollis iaculis.\\r\\n

\\r\\n

\\r\\n Integer a odio orci. Aenean a nunc leo. Donec semper pretium lorem non dictum. Sed a aliquet nibh. Nullam at mollis sem. Mauris dignissim interdum maximus. Aliquam interdum, metus eu commodo vestibulum, quam ligula auctor felis, ut scelerisque nunc tellus non augue. Suspendisse mauris leo, aliquam a aliquet ut, tincidunt quis mauris. Mauris eget vehicula sem, sed imperdiet felis.\\r\\n

\\r\\n

\\r\\n Phasellus quam ex, luctus quis condimentum nec, molestie in ex. Duis rutrum ornare dolor, sit amet varius orci vulputate eu. Phasellus luctus interdum libero non rhoncus. Cras laoreet nisl arcu, nec gravida quam scelerisque a. Praesent non sagittis nibh. Praesent eu arcu scelerisque massa egestas placerat sit amet sed tortor. Quisque mattis libero in magna finibus feugiat. Morbi suscipit consectetur nibh, a venenatis tortor egestas faucibus. Vestibulum scelerisque et ligula vel elementum. Curabitur posuere interdum sapien. Quisque pretium augue mi, eu faucibus nisl mollis id. Phasellus auctor libero non posuere dapibus. Maecenas sed leo lectus. Nam eget massa quis dolor porttitor dignissim. Morbi consectetur lacus non consectetur dapibus.\\r\\n

\\r\\n

\\r\\n Quisque eu metus neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur elementum nec tellus sit amet malesuada. Nulla lobortis sit amet purus ut auctor. Nulla posuere, erat et pulvinar auctor, quam erat condimentum arcu, ut eleifend risus lorem non nisi. Mauris feugiat, metus nec blandit dignissim, quam ante dapibus ipsum, eu tincidunt arcu dui non augue. Maecenas dignissim condimentum massa quis tristique. Vivamus eu dolor lectus. Nam nibh massa, vehicula id faucibus quis, viverra id sem. Mauris elit nibh, venenatis a felis eget, accumsan auctor sem. In laoreet accumsan elementum.\\r\\n

\\r\\n

\\r\\n Fusce sit amet nisi elementum, imperdiet nisl et, porta ante. Quisque dignissim ultricies elit id dapibus. Nunc tristique eros ante, id fringilla nunc tempus vel. Nunc sit amet nibh mauris. Nulla consectetur sodales magna id egestas. Praesent quis mollis lacus. Duis est nibh, consequat ac accumsan sit amet, lobortis quis turpis. Ut congue egestas pharetra. Maecenas id dui urna. Donec nec leo at erat blandit pellentesque eget in nulla. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer vel placerat elit. Fusce hendrerit, leo quis blandit aliquam, risus nisi porttitor nisi, id consequat justo magna eu magna. Pellentesque porta, urna sit amet venenatis suscipit, neque odio cursus metus, eget maximus felis ligula in sapien. Nunc hendrerit faucibus ante. Nam consectetur, elit at placerat luctus, mi nibh rutrum leo, vel commodo turpis diam sit amet nibh.\\r\\n

\\r\\n
\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example1.component.html\n// module id = ../../../../../src/app/components/example/example1.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { WorkListItem } from '../../../models/WorkListItem';\r\n\r\n@Component({\r\n selector: 'example1',\r\n templateUrl: './example1.component.html'\r\n})\r\nexport class Example1Component {\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n\r\n createFile() {\r\n // this.fileSystemHelper.createFile('test.txt', 'some content !!! ');\r\n }\r\n\r\n writeFile() {\r\n\r\n // this.fileSystemHelper.requestQuota(5);\r\n }\r\n\r\n test10000() {\r\n alert('start');\r\n const list = new Array();\r\n for (let _i = 0; _i < 10000; _i++) {\r\n let s: WorkListItem;\r\n s = new WorkListItem();\r\n s.id = UUID.UUID();\r\n s.priority = 34 * 3424 * 5646 * 23 * 12 / 234 / 3424;\r\n list.push(s);\r\n }\r\n alert(list.length);\r\n }\r\n\r\n\r\n requestQuota() {\r\n // this.fileSystemHelper.requestQuota(10);\r\n }\r\n\r\n openFile() {\r\n // this.fileSystemHelper.readFile('test.txt');\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example1.component.ts","module.exports = \"\\r\\n
\\r\\n\\r\\n
\\r\\n

header

\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec at odio feugiat, viverra risus a, congue justo. Sed euismod lectus et venenatis scelerisque. Sed diam risus, interdum sed erat vitae, suscipit lacinia lorem. Integer lacinia consectetur purus, vitae ornare felis semper vitae. Suspendisse sit amet orci porta, lobortis ligula at, aliquam urna. Fusce et ullamcorper sapien. Fusce consequat eu tellus sit amet vulputate. Nam hendrerit enim at enim iaculis, non porttitor eros imperdiet. Nullam euismod diam sapien, vitae eleifend elit tincidunt eu. Maecenas non vestibulum tellus. Duis id diam purus. Praesent vel sollicitudin magna.\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n header\\r\\n \\r\\n header\\r\\n \\r\\n \\r\\n header\\r\\n \\r\\n \\r\\n \\r\\n header\\r\\n \\r\\n header\\r\\n
contentcontentcontentcontent\\r\\n content\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
contentcontentcontentcontent\\r\\n content\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
contentcontentcontentcontent\\r\\n content\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
contentcontentcontentcontent\\r\\n content\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
contentcontentcontentcontent\\r\\n content\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
contentcontentcontentcontent\\r\\n content\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
footerfooterfooterfooterfooter
\\r\\n
\\r\\n\\r\\n
\\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec at odio feugiat, viverra risus a, congue justo. Sed euismod lectus et venenatis scelerisque. Sed diam risus, interdum sed erat vitae, suscipit lacinia lorem. Integer lacinia consectetur purus, vitae ornare felis semper vitae. Suspendisse sit amet orci porta, lobortis ligula at, aliquam urna. Fusce et ullamcorper sapien. Fusce consequat eu tellus sit amet vulputate. Nam hendrerit enim at enim iaculis, non porttitor eros imperdiet. Nullam euismod diam sapien, vitae eleifend elit tincidunt eu. Maecenas non vestibulum tellus. Duis id diam purus. Praesent vel sollicitudin magna.\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
    \\r\\n
  1. \\r\\n
    \\r\\n \\r\\n
    Maintenance
    \\r\\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec at odio feugiat, viverra risus a, congue justo. Sed euismod lectus et venenatis scelerisque. Sed diam risus, interdum sed erat vitae, suscipit lacinia lorem. Integer lacinia consectetur purus, vitae ornare felis semper vitae. Suspendisse sit amet orci porta, lobortis ligula at, aliquam urna. Fusce et ullamcorper sapien. Fusce consequat eu tellus sit amet vulputate. Nam hendrerit enim at enim iaculis, non porttitor eros imperdiet. Nullam euismod diam sapien, vitae eleifend elit tincidunt eu. Maecenas non vestibulum tellus. Duis id diam purus. Praesent vel sollicitudin magna.a\\r\\n
    \\r\\n
  2. \\r\\n
  3. \\r\\n
    \\r\\n \\r\\n \\r\\n 1\\r\\n
    \\r\\n
  4. \\r\\n
  5. \\r\\n
    \\r\\n \\r\\n 3/5\\r\\n
    \\r\\n
  6. \\r\\n
  7. \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
  8. \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Maintenance\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Maintenance\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Maintenance\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Maintenance\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Maintenance\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
    \\r\\n
  1. \\r\\n
    \\r\\n
    Maintenance
    \\r\\n

    Une maintenance est � faire

    \\r\\n
    \\r\\n
  2. \\r\\n
  3. \\r\\n
    \\r\\n \\r\\n 1\\r\\n
    \\r\\n
  4. \\r\\n
  5. \\r\\n
    \\r\\n \\r\\n 3/5\\r\\n
    \\r\\n
  6. \\r\\n
  7. \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
  8. \\r\\n
  9. \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
  10. \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Mes informations

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n

Example block-level help text here.

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n test\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n test\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example2.component.html\n// module id = ../../../../../src/app/components/example/example2.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'example2',\r\n templateUrl: './example2.component.html'\r\n})\r\nexport class Example2Component {\r\n\r\n \r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example2.component.ts","module.exports = \"
\\r\\n

REGLES

\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Annual activityTests
Screening tests2345678
Screening tests2345678
Screening tests2345678
Screening tests2345678
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example3.component.html\n// module id = ../../../../../src/app/components/example/example3.component.html\n// module chunks = main","import { Component, ViewChild } from '@angular/core';\r\n// import * as LZString from 'lz-string';\r\nimport * as LZString from 'lz-string';\r\nimport { Test } from '../../../models/Test';\r\nimport { WorkListItem } from '../../../models/WorkListItem';\r\nimport { CalculSimulationService } from '../../../services/CalculSimulationService';\r\nimport { TestService } from '../../../services/TestService';\r\nimport { Simulation } from '../../../models/Simulation';\r\n\r\n@Component({\r\n selector: 'example3',\r\n templateUrl: './example3.component.html'\r\n})\r\nexport class Example3Component {\r\n test = '';\r\n tests: Test[];\r\n value: WorkListItem[];\r\n\r\n compressTest: string;\r\n\r\n constructor(private service: CalculSimulationService, private testService: TestService) {\r\n testService.get().subscribe(res => this.tests = res.items as Test[]);\r\n\r\n }\r\n @ViewChild('screenshotsrc')\r\n screensrc: any;\r\n @ViewChild('screenshotimg')\r\n screenimg: any;\r\n\r\n\r\n testCompress() {\r\n let simu: Simulation = JSON.parse(' {\"laboratory\": {\"id\":\"ea9608f8-2db9-2f9f-14c8-57bfb0967a0a\", \"name\":\"Liverpool Hospital\", \"clientNumber\":\"123456\", \"comments\":null, \"addressL1\":\"NSW Health\", \"addressL2\":null, \"addressL3\":null, \"state\":null, \"postalCode\":null, \"city\":\"Liverpool\", \"country\":\"Australia\", \"userId\":\"Anonymous\", \"deleted\":false}, \"id\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"laboratoryId\":\"ea9608f8-2db9-2f9f-14c8-57bfb0967a0a\", \"name\":\"Simu NSWH wo/batch 1 instrument\", \"date\":\"2017-04-24T13:40:02.987\", \"lastUpdateDate\":\"2017-04-24T13:40:02.987\", \"nbDaysPerWeek\":6, \"workflowMode\":\"QoTu\", \"workflowUrgent\":0, \"workflowTotal\":0, \"deleted\":false, \"activities\": [{\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"10e94e83-3930-4ed0-8cbd-dbdcbb388802\", \"test\": {\"id\":\"10e94e83-3930-4ed0-8cbd-dbdcbb388802\", \"category\": {\"id\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"Anticoagulant treatments\", \"order\":3}, \"categoryId\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"UFH and LMWH\", \"mnemonic\":\"UFH / LMWH\", \"rediluable\":false, \"diluable\":false, \"order\":21}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"2f46a96a-d03a-4189-b1ac-405e9ebd5909\", \"test\": {\"id\":\"2f46a96a-d03a-4189-b1ac-405e9ebd5909\", \"category\": {\"id\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor assays\", \"order\":2}, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor VII\", \"mnemonic\":\"FVII\", \"rediluable\":false, \"diluable\":true, \"order\":6}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"37d2c8f2-0b6b-4623-a5f3-4b985d3ba24f\", \"test\": {\"id\":\"37d2c8f2-0b6b-4623-a5f3-4b985d3ba24f\", \"category\": {\"id\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Fibrinolysis\", \"order\":6}, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Thrombin activable fibrinolysis inhibitor\", \"mnemonic\":\"TAFI\", \"rediluable\":false, \"diluable\":false, \"order\":16}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"41e485c9-6ac6-462e-b752-120e034b7131\", \"test\": {\"id\":\"41e485c9-6ac6-462e-b752-120e034b7131\", \"category\": {\"id\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor assays\", \"order\":2}, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor XII\", \"mnemonic\":\"FXII\", \"rediluable\":false, \"diluable\":true, \"order\":11}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"4540611b-9a89-4772-ad1e-8e0384393e57\", \"test\": {\"id\":\"4540611b-9a89-4772-ad1e-8e0384393e57\", \"category\": {\"id\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Thrombophilia\", \"order\":4}, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Antithrombin\", \"mnemonic\":\"AT\", \"rediluable\":false, \"diluable\":false, \"order\":23}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"4c810393-e9f5-44c7-970f-9f9777f76db8\", \"test\": {\"id\":\"4c810393-e9f5-44c7-970f-9f9777f76db8\", \"category\": {\"id\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Thrombophilia\", \"order\":4}, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Lupus Anticoagulants\", \"mnemonic\":\"DRVVs\", \"rediluable\":false, \"diluable\":false, \"order\":28}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"6a44349e-24c5-404e-827b-a09be39682a4\", \"test\": {\"id\":\"6a44349e-24c5-404e-827b-a09be39682a4\", \"category\": {\"id\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor assays\", \"order\":2}, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor XI\", \"mnemonic\":\"FXI\", \"rediluable\":false, \"diluable\":true, \"order\":10}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"702ec178-1cd7-4e97-8a71-b71e778be100\", \"test\": {\"id\":\"702ec178-1cd7-4e97-8a71-b71e778be100\", \"category\": {\"id\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Fibrinolysis\", \"order\":6}, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Antiplasmin\", \"mnemonic\":\"ANTIPLASMIN\", \"rediluable\":false, \"diluable\":false, \"order\":18}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"7317a5c0-c6d2-455b-8c6a-fb99618e7e08\", \"test\": {\"id\":\"7317a5c0-c6d2-455b-8c6a-fb99618e7e08\", \"category\": {\"id\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor assays\", \"order\":2}, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor V\", \"mnemonic\":\"FV\", \"rediluable\":false, \"diluable\":true, \"order\":5}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"8880c25c-5bbd-419a-844d-ae9464ec4564\", \"test\": {\"id\":\"8880c25c-5bbd-419a-844d-ae9464ec4564\", \"category\": {\"id\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Thrombophilia\", \"order\":4}, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Free Protein S\", \"mnemonic\":\"FreePS\", \"rediluable\":false, \"diluable\":false, \"order\":27}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"93f1d269-43ed-40fb-a97c-c9be4e762367\", \"test\": {\"id\":\"93f1d269-43ed-40fb-a97c-c9be4e762367\", \"category\": {\"id\":\"9f3d07f3-414a-4e88-b5d8-ea70b39e6066\", \"name\":\"Primary haemostasis\", \"order\":5}, \"categoryId\":\"9f3d07f3-414a-4e88-b5d8-ea70b39e6066\", \"name\":\"Ristocetin cofactor activity of Von Willebrand factor\", \"mnemonic\":\"Ricof\", \"rediluable\":false, \"diluable\":false, \"order\":31}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"a7cac554-026f-435e-8335-4c90ccd15e94\", \"test\": {\"id\":\"a7cac554-026f-435e-8335-4c90ccd15e94\", \"category\": {\"id\":\"9f3d07f3-414a-4e88-b5d8-ea70b39e6066\", \"name\":\"Primary haemostasis\", \"order\":5}, \"categoryId\":\"9f3d07f3-414a-4e88-b5d8-ea70b39e6066\", \"name\":\"Von Willebrand Factor\", \"mnemonic\":\"VWF\", \"rediluable\":false, \"diluable\":false, \"order\":30}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"b02ddcfd-6563-479f-8313-d8777642a4d2\", \"test\": {\"id\":\"b02ddcfd-6563-479f-8313-d8777642a4d2\", \"category\": {\"id\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Thrombophilia\", \"order\":4}, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Lupus Anticoagulants\", \"mnemonic\":\"DRVVc\", \"rediluable\":false, \"diluable\":false, \"order\":29}}, {\"txRepasse\":10, \"txRedilution\":10, \"nbDilution\":0, \"quantity\":5895, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":true, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"b3385c5d-031e-4129-9c38-309f9ba3b7e4\", \"test\": {\"id\":\"b3385c5d-031e-4129-9c38-309f9ba3b7e4\", \"category\": {\"id\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"Fibrin formation & degradation\", \"order\":1}, \"categoryId\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"D-Dimer\", \"mnemonic\":\"DDi\", \"rediluable\":true, \"diluable\":false, \"order\":14}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"b33ebedb-04e3-4f47-b59f-4b8a07d3b8e3\", \"test\": {\"id\":\"b33ebedb-04e3-4f47-b59f-4b8a07d3b8e3\", \"category\": {\"id\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor assays\", \"order\":2}, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor IX\", \"mnemonic\":\"FIX\", \"rediluable\":false, \"diluable\":true, \"order\":8}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"b9aa1a52-e4eb-4b37-baff-05c539b58013\", \"test\": {\"id\":\"b9aa1a52-e4eb-4b37-baff-05c539b58013\", \"category\": {\"id\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor assays\", \"order\":2}, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor X\", \"mnemonic\":\"FX\", \"rediluable\":false, \"diluable\":true, \"order\":9}}, {\"txRepasse\":10, \"txRedilution\":10, \"nbDilution\":0, \"quantity\":3297, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":true, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"ba5a3709-a860-48bd-9b0d-0ec4d3818751\", \"test\": {\"id\":\"ba5a3709-a860-48bd-9b0d-0ec4d3818751\", \"category\": {\"id\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Screening tests\", \"order\":0}, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Fibrinogen\", \"mnemonic\":\"FIB\", \"rediluable\":true, \"diluable\":false, \"order\":2}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"c170482b-fcab-424c-9d4a-6815d127342a\", \"test\": {\"id\":\"c170482b-fcab-424c-9d4a-6815d127342a\", \"category\": {\"id\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor assays\", \"order\":2}, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor XIII\", \"mnemonic\":\"FXIII\", \"rediluable\":false, \"diluable\":true, \"order\":12}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"c4a7c003-44e0-4e43-a3ad-d6e2989734d7\", \"test\": {\"id\":\"c4a7c003-44e0-4e43-a3ad-d6e2989734d7\", \"category\": {\"id\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor assays\", \"order\":2}, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor VIII\", \"mnemonic\":\"FVIII\", \"rediluable\":false, \"diluable\":true, \"order\":7}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"cfce1805-d450-41bf-b386-2103a173b0ae\", \"test\": {\"id\":\"cfce1805-d450-41bf-b386-2103a173b0ae\", \"category\": {\"id\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Thrombophilia\", \"order\":4}, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Protein C\", \"mnemonic\":\"PC\", \"rediluable\":false, \"diluable\":false, \"order\":24}}, {\"txRepasse\":10, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":95102, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":true, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"d40a0674-17b1-428e-ad5b-45379c3117be\", \"test\": {\"id\":\"d40a0674-17b1-428e-ad5b-45379c3117be\", \"category\": {\"id\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Screening tests\", \"order\":0}, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Activated Partial Thromboplastin Time\", \"mnemonic\":\"APTT\", \"rediluable\":false, \"diluable\":false, \"order\":1}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"d5a69f2b-89c1-4e57-b128-ebb42f0864d2\", \"test\": {\"id\":\"d5a69f2b-89c1-4e57-b128-ebb42f0864d2\", \"category\": {\"id\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Thrombophilia\", \"order\":4}, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Protein S\", \"mnemonic\":\"PS\", \"rediluable\":false, \"diluable\":false, \"order\":26}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"d5d4f257-fd6a-4f90-bd10-15c0077809f6\", \"test\": {\"id\":\"d5d4f257-fd6a-4f90-bd10-15c0077809f6\", \"category\": {\"id\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Fibrinolysis\", \"order\":6}, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Plasminogen\", \"mnemonic\":\"PLASMINOGEN\", \"rediluable\":false, \"diluable\":false, \"order\":17}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"d8dc7fe5-5347-40aa-943e-43f24394a8a2\", \"test\": {\"id\":\"d8dc7fe5-5347-40aa-943e-43f24394a8a2\", \"category\": {\"id\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Fibrinolysis\", \"order\":6}, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Plasminogen Activator Inhibitor-1\", \"mnemonic\":\"PAI\", \"rediluable\":false, \"diluable\":false, \"order\":19}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"e4747093-7f54-406f-90c4-b016abf41d08\", \"test\": {\"id\":\"e4747093-7f54-406f-90c4-b016abf41d08\", \"category\": {\"id\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor assays\", \"order\":2}, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor II\", \"mnemonic\":\"FII\", \"rediluable\":false, \"diluable\":true, \"order\":4}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"e85e30e1-78b1-42de-ada2-ac02d99adc56\", \"test\": {\"id\":\"e85e30e1-78b1-42de-ada2-ac02d99adc56\", \"category\": {\"id\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"Fibrin formation & degradation\", \"order\":1}, \"categoryId\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"Fibrinogen Degradation Products\", \"mnemonic\":\"FDP\", \"rediluable\":false, \"diluable\":false, \"order\":15}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"e8e5f3e1-da81-4c57-8cfb-172c5300f724\", \"test\": {\"id\":\"e8e5f3e1-da81-4c57-8cfb-172c5300f724\", \"category\": {\"id\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"Anticoagulant treatments\", \"order\":3}, \"categoryId\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"direct thrombin inhibitors\", \"mnemonic\":\"ECAII\", \"rediluable\":false, \"diluable\":false, \"order\":22}}, {\"txRepasse\":10, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":886, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":true, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"f13ff975-9c0a-4836-bc7b-1d916fabe577\", \"test\": {\"id\":\"f13ff975-9c0a-4836-bc7b-1d916fabe577\", \"category\": {\"id\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Screening tests\", \"order\":0}, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Thrombin Time\", \"mnemonic\":\"TT\", \"rediluable\":false, \"diluable\":false, \"order\":3}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"f18c7046-4be1-4223-b95c-e806eebbbb44\", \"test\": {\"id\":\"f18c7046-4be1-4223-b95c-e806eebbbb44\", \"category\": {\"id\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"Fibrin formation & degradation\", \"order\":1}, \"categoryId\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"Fibrin monomers\", \"mnemonic\":\"FM\", \"rediluable\":false, \"diluable\":false, \"order\":13}}, {\"txRepasse\":0, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":0, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":false, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"f19b4526-a94d-49f4-a816-e9cf4aced7d3\", \"test\": {\"id\":\"f19b4526-a94d-49f4-a816-e9cf4aced7d3\", \"category\": {\"id\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Thrombophilia\", \"order\":4}, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Activated Protein C Resistance\", \"mnemonic\":\"APCR\", \"rediluable\":false, \"diluable\":false, \"order\":25}}, {\"txRepasse\":10, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":107387, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":true, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"f4f19ce5-3021-4138-a2b9-7407923e5a93\", \"test\": {\"id\":\"f4f19ce5-3021-4138-a2b9-7407923e5a93\", \"category\": {\"id\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Screening tests\", \"order\":0}, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Prothrombin Time\", \"mnemonic\":\"PT\", \"rediluable\":false, \"diluable\":false, \"order\":0}}, {\"txRepasse\":10, \"txRedilution\":0, \"nbDilution\":0, \"quantity\":2281, \"quantityType\":true, \"dossierOuSerie\":true, \"active\":true, \"startHour\":0, \"nbPerWeek\":0, \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"testId\":\"f87ffcfc-eff8-4bf5-8ad8-4b7c3b39f7cc\", \"test\": {\"id\":\"f87ffcfc-eff8-4bf5-8ad8-4b7c3b39f7cc\", \"category\": {\"id\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"Anticoagulant treatments\", \"order\":3}, \"categoryId\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"UFH, LMWH, fondaparinux, rivaroxaban, apixaban and edoxaban\", \"mnemonic\":\"Anti-Xa\", \"rediluable\":false, \"diluable\":false, \"order\":20}}], \"dayRepartition\": [{\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":12, \"nbTube\":17, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":0, \"nbTube\":8, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":13, \"nbTube\":22, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":23, \"nbTube\":5, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":14, \"nbTube\":15, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":2, \"nbTube\":4, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":15, \"nbTube\":16, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":4, \"nbTube\":6, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":16, \"nbTube\":12, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":6, \"nbTube\":25, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":17, \"nbTube\":7, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":8, \"nbTube\":32, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":18, \"nbTube\":5, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":10, \"nbTube\":29, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":1, \"nbTube\":2, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":22, \"nbTube\":7, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":21, \"nbTube\":6, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":20, \"nbTube\":8, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":19, \"nbTube\":3, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":3, \"nbTube\":3, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":11, \"nbTube\":31, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":9, \"nbTube\":41, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":7, \"nbTube\":24, \"txTube\":null, \"nbTest\":null, \"txTest\":null}, {\"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"hour\":5, \"nbTube\":3, \"txTube\":null, \"nbTest\":null, \"txTest\":null}], \"instruments\": [{\"id\":\"07715a28-835e-dff1-248a-f2fc272f9747\", \"name\":\"STA R MAX 2\", \"simulationId\":\"277c1cce-096e-9391-d80c-735cfa2f1fe4\", \"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"simulationInstrumentTest\": [{\"id\":\"10e94e83-3930-4ed0-8cbd-dbdcbb388802\", \"category\":null, \"categoryId\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"UFH and LMWH\", \"mnemonic\":\"UFH / LMWH\", \"rediluable\":false, \"diluable\":false, \"order\":21}, {\"id\":\"2f46a96a-d03a-4189-b1ac-405e9ebd5909\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor VII\", \"mnemonic\":\"FVII\", \"rediluable\":false, \"diluable\":true, \"order\":6}, {\"id\":\"37d2c8f2-0b6b-4623-a5f3-4b985d3ba24f\", \"category\":null, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Thrombin activable fibrinolysis inhibitor\", \"mnemonic\":\"TAFI\", \"rediluable\":false, \"diluable\":false, \"order\":16}, {\"id\":\"41e485c9-6ac6-462e-b752-120e034b7131\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor XII\", \"mnemonic\":\"FXII\", \"rediluable\":false, \"diluable\":true, \"order\":11}, {\"id\":\"4540611b-9a89-4772-ad1e-8e0384393e57\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Antithrombin\", \"mnemonic\":\"AT\", \"rediluable\":false, \"diluable\":false, \"order\":23}, {\"id\":\"4c810393-e9f5-44c7-970f-9f9777f76db8\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Lupus Anticoagulants\", \"mnemonic\":\"DRVVs\", \"rediluable\":false, \"diluable\":false, \"order\":28}, {\"id\":\"6a44349e-24c5-404e-827b-a09be39682a4\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor XI\", \"mnemonic\":\"FXI\", \"rediluable\":false, \"diluable\":true, \"order\":10}, {\"id\":\"702ec178-1cd7-4e97-8a71-b71e778be100\", \"category\":null, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Antiplasmin\", \"mnemonic\":\"ANTIPLASMIN\", \"rediluable\":false, \"diluable\":false, \"order\":18}, {\"id\":\"7317a5c0-c6d2-455b-8c6a-fb99618e7e08\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor V\", \"mnemonic\":\"FV\", \"rediluable\":false, \"diluable\":true, \"order\":5}, {\"id\":\"8880c25c-5bbd-419a-844d-ae9464ec4564\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Free Protein S\", \"mnemonic\":\"FreePS\", \"rediluable\":false, \"diluable\":false, \"order\":27}, {\"id\":\"93f1d269-43ed-40fb-a97c-c9be4e762367\", \"category\":null, \"categoryId\":\"9f3d07f3-414a-4e88-b5d8-ea70b39e6066\", \"name\":\"Ristocetin cofactor activity of Von Willebrand factor\", \"mnemonic\":\"Ricof\", \"rediluable\":false, \"diluable\":false, \"order\":31}, {\"id\":\"a7cac554-026f-435e-8335-4c90ccd15e94\", \"category\":null, \"categoryId\":\"9f3d07f3-414a-4e88-b5d8-ea70b39e6066\", \"name\":\"Von Willebrand Factor\", \"mnemonic\":\"VWF\", \"rediluable\":false, \"diluable\":false, \"order\":30}, {\"id\":\"b02ddcfd-6563-479f-8313-d8777642a4d2\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Lupus Anticoagulants\", \"mnemonic\":\"DRVVc\", \"rediluable\":false, \"diluable\":false, \"order\":29}, {\"id\":\"b3385c5d-031e-4129-9c38-309f9ba3b7e4\", \"category\":null, \"categoryId\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"D-Dimer\", \"mnemonic\":\"DDi\", \"rediluable\":true, \"diluable\":false, \"order\":14}, {\"id\":\"b33ebedb-04e3-4f47-b59f-4b8a07d3b8e3\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor IX\", \"mnemonic\":\"FIX\", \"rediluable\":false, \"diluable\":true, \"order\":8}, {\"id\":\"b9aa1a52-e4eb-4b37-baff-05c539b58013\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor X\", \"mnemonic\":\"FX\", \"rediluable\":false, \"diluable\":true, \"order\":9}, {\"id\":\"ba5a3709-a860-48bd-9b0d-0ec4d3818751\", \"category\":null, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Fibrinogen\", \"mnemonic\":\"FIB\", \"rediluable\":true, \"diluable\":false, \"order\":2}, {\"id\":\"c170482b-fcab-424c-9d4a-6815d127342a\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor XIII\", \"mnemonic\":\"FXIII\", \"rediluable\":false, \"diluable\":true, \"order\":12}, {\"id\":\"c4a7c003-44e0-4e43-a3ad-d6e2989734d7\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor VIII\", \"mnemonic\":\"FVIII\", \"rediluable\":false, \"diluable\":true, \"order\":7}, {\"id\":\"cfce1805-d450-41bf-b386-2103a173b0ae\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Protein C\", \"mnemonic\":\"PC\", \"rediluable\":false, \"diluable\":false, \"order\":24}, {\"id\":\"d40a0674-17b1-428e-ad5b-45379c3117be\", \"category\":null, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Activated Partial Thromboplastin Time\", \"mnemonic\":\"APTT\", \"rediluable\":false, \"diluable\":false, \"order\":1}, {\"id\":\"d5a69f2b-89c1-4e57-b128-ebb42f0864d2\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Protein S\", \"mnemonic\":\"PS\", \"rediluable\":false, \"diluable\":false, \"order\":26}, {\"id\":\"d5d4f257-fd6a-4f90-bd10-15c0077809f6\", \"category\":null, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Plasminogen\", \"mnemonic\":\"PLASMINOGEN\", \"rediluable\":false, \"diluable\":false, \"order\":17}, {\"id\":\"d8dc7fe5-5347-40aa-943e-43f24394a8a2\", \"category\":null, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Plasminogen Activator Inhibitor-1\", \"mnemonic\":\"PAI\", \"rediluable\":false, \"diluable\":false, \"order\":19}, {\"id\":\"e4747093-7f54-406f-90c4-b016abf41d08\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor II\", \"mnemonic\":\"FII\", \"rediluable\":false, \"diluable\":true, \"order\":4}, {\"id\":\"e85e30e1-78b1-42de-ada2-ac02d99adc56\", \"category\":null, \"categoryId\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"Fibrinogen Degradation Products\", \"mnemonic\":\"FDP\", \"rediluable\":false, \"diluable\":false, \"order\":15}, {\"id\":\"e8e5f3e1-da81-4c57-8cfb-172c5300f724\", \"category\":null, \"categoryId\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"direct thrombin inhibitors\", \"mnemonic\":\"ECAII\", \"rediluable\":false, \"diluable\":false, \"order\":22}, {\"id\":\"f13ff975-9c0a-4836-bc7b-1d916fabe577\", \"category\":null, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Thrombin Time\", \"mnemonic\":\"TT\", \"rediluable\":false, \"diluable\":false, \"order\":3}, {\"id\":\"f18c7046-4be1-4223-b95c-e806eebbbb44\", \"category\":null, \"categoryId\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"Fibrin monomers\", \"mnemonic\":\"FM\", \"rediluable\":false, \"diluable\":false, \"order\":13}, {\"id\":\"f19b4526-a94d-49f4-a816-e9cf4aced7d3\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Activated Protein C Resistance\", \"mnemonic\":\"APCR\", \"rediluable\":false, \"diluable\":false, \"order\":25}, {\"id\":\"f4f19ce5-3021-4138-a2b9-7407923e5a93\", \"category\":null, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Prothrombin Time\", \"mnemonic\":\"PT\", \"rediluable\":false, \"diluable\":false, \"order\":0}, {\"id\":\"f87ffcfc-eff8-4bf5-8ad8-4b7c3b39f7cc\", \"category\":null, \"categoryId\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"UFH, LMWH, fondaparinux, rivaroxaban, apixaban and edoxaban\", \"mnemonic\":\"Anti-Xa\", \"rediluable\":false, \"diluable\":false, \"order\":20}], \"instrument\": {\"id\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"name\":\"STA R MAX\", \"size\":3, \"tests\": [{\"id\":\"10e94e83-3930-4ed0-8cbd-dbdcbb388802\", \"category\":null, \"categoryId\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"UFH and LMWH\", \"mnemonic\":\"UFH / LMWH\", \"rediluable\":false, \"diluable\":false, \"order\":21}, {\"id\":\"2f46a96a-d03a-4189-b1ac-405e9ebd5909\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor VII\", \"mnemonic\":\"FVII\", \"rediluable\":false, \"diluable\":true, \"order\":6}, {\"id\":\"37d2c8f2-0b6b-4623-a5f3-4b985d3ba24f\", \"category\":null, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Thrombin activable fibrinolysis inhibitor\", \"mnemonic\":\"TAFI\", \"rediluable\":false, \"diluable\":false, \"order\":16}, {\"id\":\"41e485c9-6ac6-462e-b752-120e034b7131\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor XII\", \"mnemonic\":\"FXII\", \"rediluable\":false, \"diluable\":true, \"order\":11}, {\"id\":\"4540611b-9a89-4772-ad1e-8e0384393e57\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Antithrombin\", \"mnemonic\":\"AT\", \"rediluable\":false, \"diluable\":false, \"order\":23}, {\"id\":\"4c810393-e9f5-44c7-970f-9f9777f76db8\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Lupus Anticoagulants\", \"mnemonic\":\"DRVVs\", \"rediluable\":false, \"diluable\":false, \"order\":28}, {\"id\":\"6a44349e-24c5-404e-827b-a09be39682a4\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor XI\", \"mnemonic\":\"FXI\", \"rediluable\":false, \"diluable\":true, \"order\":10}, {\"id\":\"702ec178-1cd7-4e97-8a71-b71e778be100\", \"category\":null, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Antiplasmin\", \"mnemonic\":\"ANTIPLASMIN\", \"rediluable\":false, \"diluable\":false, \"order\":18}, {\"id\":\"7317a5c0-c6d2-455b-8c6a-fb99618e7e08\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor V\", \"mnemonic\":\"FV\", \"rediluable\":false, \"diluable\":true, \"order\":5}, {\"id\":\"8880c25c-5bbd-419a-844d-ae9464ec4564\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Free Protein S\", \"mnemonic\":\"FreePS\", \"rediluable\":false, \"diluable\":false, \"order\":27}, {\"id\":\"93f1d269-43ed-40fb-a97c-c9be4e762367\", \"category\":null, \"categoryId\":\"9f3d07f3-414a-4e88-b5d8-ea70b39e6066\", \"name\":\"Ristocetin cofactor activity of Von Willebrand factor\", \"mnemonic\":\"Ricof\", \"rediluable\":false, \"diluable\":false, \"order\":31}, {\"id\":\"a7cac554-026f-435e-8335-4c90ccd15e94\", \"category\":null, \"categoryId\":\"9f3d07f3-414a-4e88-b5d8-ea70b39e6066\", \"name\":\"Von Willebrand Factor\", \"mnemonic\":\"VWF\", \"rediluable\":false, \"diluable\":false, \"order\":30}, {\"id\":\"b02ddcfd-6563-479f-8313-d8777642a4d2\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Lupus Anticoagulants\", \"mnemonic\":\"DRVVc\", \"rediluable\":false, \"diluable\":false, \"order\":29}, {\"id\":\"b3385c5d-031e-4129-9c38-309f9ba3b7e4\", \"category\":null, \"categoryId\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"D-Dimer\", \"mnemonic\":\"DDi\", \"rediluable\":true, \"diluable\":false, \"order\":14}, {\"id\":\"b33ebedb-04e3-4f47-b59f-4b8a07d3b8e3\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor IX\", \"mnemonic\":\"FIX\", \"rediluable\":false, \"diluable\":true, \"order\":8}, {\"id\":\"b9aa1a52-e4eb-4b37-baff-05c539b58013\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor X\", \"mnemonic\":\"FX\", \"rediluable\":false, \"diluable\":true, \"order\":9}, {\"id\":\"ba5a3709-a860-48bd-9b0d-0ec4d3818751\", \"category\":null, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Fibrinogen\", \"mnemonic\":\"FIB\", \"rediluable\":true, \"diluable\":false, \"order\":2}, {\"id\":\"c170482b-fcab-424c-9d4a-6815d127342a\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor XIII\", \"mnemonic\":\"FXIII\", \"rediluable\":false, \"diluable\":true, \"order\":12}, {\"id\":\"c4a7c003-44e0-4e43-a3ad-d6e2989734d7\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor VIII\", \"mnemonic\":\"FVIII\", \"rediluable\":false, \"diluable\":true, \"order\":7}, {\"id\":\"cfce1805-d450-41bf-b386-2103a173b0ae\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Protein C\", \"mnemonic\":\"PC\", \"rediluable\":false, \"diluable\":false, \"order\":24}, {\"id\":\"d40a0674-17b1-428e-ad5b-45379c3117be\", \"category\":null, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Activated Partial Thromboplastin Time\", \"mnemonic\":\"APTT\", \"rediluable\":false, \"diluable\":false, \"order\":1}, {\"id\":\"d5a69f2b-89c1-4e57-b128-ebb42f0864d2\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Protein S\", \"mnemonic\":\"PS\", \"rediluable\":false, \"diluable\":false, \"order\":26}, {\"id\":\"d5d4f257-fd6a-4f90-bd10-15c0077809f6\", \"category\":null, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Plasminogen\", \"mnemonic\":\"PLASMINOGEN\", \"rediluable\":false, \"diluable\":false, \"order\":17}, {\"id\":\"d8dc7fe5-5347-40aa-943e-43f24394a8a2\", \"category\":null, \"categoryId\":\"3650200e-2512-4ac7-b7d6-fba295d66540\", \"name\":\"Plasminogen Activator Inhibitor-1\", \"mnemonic\":\"PAI\", \"rediluable\":false, \"diluable\":false, \"order\":19}, {\"id\":\"e4747093-7f54-406f-90c4-b016abf41d08\", \"category\":null, \"categoryId\":\"9f1c2e80-d010-4e8b-ae0f-2a3831176c4f\", \"name\":\"Factor II\", \"mnemonic\":\"FII\", \"rediluable\":false, \"diluable\":true, \"order\":4}, {\"id\":\"e85e30e1-78b1-42de-ada2-ac02d99adc56\", \"category\":null, \"categoryId\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"Fibrinogen Degradation Products\", \"mnemonic\":\"FDP\", \"rediluable\":false, \"diluable\":false, \"order\":15}, {\"id\":\"e8e5f3e1-da81-4c57-8cfb-172c5300f724\", \"category\":null, \"categoryId\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"direct thrombin inhibitors\", \"mnemonic\":\"ECAII\", \"rediluable\":false, \"diluable\":false, \"order\":22}, {\"id\":\"f13ff975-9c0a-4836-bc7b-1d916fabe577\", \"category\":null, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Thrombin Time\", \"mnemonic\":\"TT\", \"rediluable\":false, \"diluable\":false, \"order\":3}, {\"id\":\"f18c7046-4be1-4223-b95c-e806eebbbb44\", \"category\":null, \"categoryId\":\"d051d937-1b13-4b4d-b4fa-ef8cb455007f\", \"name\":\"Fibrin monomers\", \"mnemonic\":\"FM\", \"rediluable\":false, \"diluable\":false, \"order\":13}, {\"id\":\"f19b4526-a94d-49f4-a816-e9cf4aced7d3\", \"category\":null, \"categoryId\":\"6644b308-e2b6-40d4-ae53-44a71dbd6f8b\", \"name\":\"Activated Protein C Resistance\", \"mnemonic\":\"APCR\", \"rediluable\":false, \"diluable\":false, \"order\":25}, {\"id\":\"f4f19ce5-3021-4138-a2b9-7407923e5a93\", \"category\":null, \"categoryId\":\"ad7adfbd-8a13-4bae-a1e5-26efbbb11db8\", \"name\":\"Prothrombin Time\", \"mnemonic\":\"PT\", \"rediluable\":false, \"diluable\":false, \"order\":0}, {\"id\":\"f87ffcfc-eff8-4bf5-8ad8-4b7c3b39f7cc\", \"category\":null, \"categoryId\":\"8e4665da-4560-432e-9690-f418ac101a2f\", \"name\":\"UFH, LMWH, fondaparinux, rivaroxaban, apixaban and edoxaban\", \"mnemonic\":\"Anti-Xa\", \"rediluable\":false, \"diluable\":false, \"order\":20}], \"coefficient\":1, \"constants\": [{\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"2f46a96a-d03a-4189-b1ac-405e9ebd5909\", \"echTime\":13.8, \"riTime\":8.8, \"transTime\":5, \"incuTime\":240, \"mesureTime\":40, \"rdTime\":13, \"prehTime\":12.5, \"resultTime\":307.6}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"37d2c8f2-0b6b-4623-a5f3-4b985d3ba24f\", \"echTime\":31.9, \"riTime\":32, \"transTime\":3, \"incuTime\":600, \"mesureTime\":310, \"rdTime\":26, \"prehTime\":10.5, \"resultTime\":976.9}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"41e485c9-6ac6-462e-b752-120e034b7131\", \"echTime\":13.8, \"riTime\":29.7, \"transTime\":5, \"incuTime\":240, \"mesureTime\":90, \"rdTime\":24.12, \"prehTime\":12.5, \"resultTime\":378.5}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"4540611b-9a89-4772-ad1e-8e0384393e57\", \"echTime\":16.3, \"riTime\":18.2, \"transTime\":5, \"incuTime\":60, \"mesureTime\":50, \"rdTime\":20.2, \"prehTime\":12.5, \"resultTime\":149.5}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"4c810393-e9f5-44c7-970f-9f9777f76db8\", \"echTime\":14.3, \"riTime\":0, \"transTime\":3, \"incuTime\":240, \"mesureTime\":55, \"rdTime\":20.2, \"prehTime\":10.5, \"resultTime\":312.3}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"6a44349e-24c5-404e-827b-a09be39682a4\", \"echTime\":13.8, \"riTime\":24.7, \"transTime\":5, \"incuTime\":240, \"mesureTime\":90, \"rdTime\":20.1, \"prehTime\":12.5, \"resultTime\":373.5}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"702ec178-1cd7-4e97-8a71-b71e778be100\", \"echTime\":13.8, \"riTime\":15.5, \"transTime\":5, \"incuTime\":30, \"mesureTime\":70, \"rdTime\":24.3, \"prehTime\":12.5, \"resultTime\":134.3}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"7317a5c0-c6d2-455b-8c6a-fb99618e7e08\", \"echTime\":13.8, \"riTime\":8.8, \"transTime\":5, \"incuTime\":240, \"mesureTime\":40, \"rdTime\":13, \"prehTime\":12.5, \"resultTime\":307.6}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"8880c25c-5bbd-419a-844d-ae9464ec4564\", \"echTime\":13.6, \"riTime\":18, \"transTime\":5, \"incuTime\":240, \"mesureTime\":250, \"rdTime\":22.2, \"prehTime\":12.5, \"resultTime\":526.6}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"93f1d269-43ed-40fb-a97c-c9be4e762367\", \"echTime\":15.2, \"riTime\":10.5, \"transTime\":5, \"incuTime\":240, \"mesureTime\":360, \"rdTime\":12, \"prehTime\":12.5, \"resultTime\":630.7}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"a7cac554-026f-435e-8335-4c90ccd15e94\", \"echTime\":13.7, \"riTime\":17.8, \"transTime\":5, \"incuTime\":240, \"mesureTime\":270, \"rdTime\":22.2, \"prehTime\":12.5, \"resultTime\":546.5}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"b02ddcfd-6563-479f-8313-d8777642a4d2\", \"echTime\":14.3, \"riTime\":0, \"transTime\":3, \"incuTime\":240, \"mesureTime\":50, \"rdTime\":20.2, \"prehTime\":10.5, \"resultTime\":307.3}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"b3385c5d-031e-4129-9c38-309f9ba3b7e4\", \"echTime\":11.6, \"riTime\":17.9, \"transTime\":5, \"incuTime\":240, \"mesureTime\":250, \"rdTime\":22.2, \"prehTime\":12.5, \"resultTime\":524.5}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"b33ebedb-04e3-4f47-b59f-4b8a07d3b8e3\", \"echTime\":13.8, \"riTime\":24.7, \"transTime\":5, \"incuTime\":240, \"mesureTime\":90, \"rdTime\":20.1, \"prehTime\":12.5, \"resultTime\":373.5}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"b9aa1a52-e4eb-4b37-baff-05c539b58013\", \"echTime\":13.8, \"riTime\":8.8, \"transTime\":5, \"incuTime\":240, \"mesureTime\":40, \"rdTime\":13, \"prehTime\":12.5, \"resultTime\":307.6}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"ba5a3709-a860-48bd-9b0d-0ec4d3818751\", \"echTime\":16.1, \"riTime\":0, \"transTime\":3, \"incuTime\":240, \"mesureTime\":30, \"rdTime\":16.3, \"prehTime\":10.5, \"resultTime\":289.1}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"c4a7c003-44e0-4e43-a3ad-d6e2989734d7\", \"echTime\":13.8, \"riTime\":24.7, \"transTime\":5, \"incuTime\":240, \"mesureTime\":90, \"rdTime\":20.1, \"prehTime\":12.5, \"resultTime\":373.5}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"cfce1805-d450-41bf-b386-2103a173b0ae\", \"echTime\":13.8, \"riTime\":29.9, \"transTime\":5, \"incuTime\":240, \"mesureTime\":140, \"rdTime\":21.72, \"prehTime\":12.5, \"resultTime\":428.7}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"d40a0674-17b1-428e-ad5b-45379c3117be\", \"echTime\":11.6, \"riTime\":8.4, \"transTime\":5, \"incuTime\":240, \"mesureTime\":45, \"rdTime\":10.4, \"prehTime\":12.5, \"resultTime\":310}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"d5a69f2b-89c1-4e57-b128-ebb42f0864d2\", \"echTime\":13.8, \"riTime\":33.2, \"transTime\":5, \"incuTime\":240, \"mesureTime\":160, \"rdTime\":20, \"prehTime\":12.5, \"resultTime\":452}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"d5d4f257-fd6a-4f90-bd10-15c0077809f6\", \"echTime\":16.4, \"riTime\":17.9, \"transTime\":5, \"incuTime\":240, \"mesureTime\":60, \"rdTime\":22.1, \"prehTime\":12.5, \"resultTime\":339.3}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"d8dc7fe5-5347-40aa-943e-43f24394a8a2\", \"echTime\":16.4, \"riTime\":0, \"transTime\":3, \"incuTime\":240, \"mesureTime\":35, \"rdTime\":11.8, \"prehTime\":10.5, \"resultTime\":294.4}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"e4747093-7f54-406f-90c4-b016abf41d08\", \"echTime\":13.8, \"riTime\":8.8, \"transTime\":5, \"incuTime\":240, \"mesureTime\":40, \"rdTime\":13, \"prehTime\":12.5, \"resultTime\":307.6}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"e85e30e1-78b1-42de-ada2-ac02d99adc56\", \"echTime\":14.7, \"riTime\":18.8, \"transTime\":5, \"incuTime\":240, \"mesureTime\":310, \"rdTime\":21, \"prehTime\":12.5, \"resultTime\":588.5}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"f13ff975-9c0a-4836-bc7b-1d916fabe577\", \"echTime\":14.2, \"riTime\":0, \"transTime\":3, \"incuTime\":240, \"mesureTime\":30, \"rdTime\":20.3, \"prehTime\":10.5, \"resultTime\":287.2}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"f18c7046-4be1-4223-b95c-e806eebbbb44\", \"echTime\":12.7, \"riTime\":15.6, \"transTime\":5, \"incuTime\":240, \"mesureTime\":160, \"rdTime\":24.3, \"prehTime\":12.5, \"resultTime\":433.3}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"f19b4526-a94d-49f4-a816-e9cf4aced7d3\", \"echTime\":13.8, \"riTime\":26.5, \"transTime\":5, \"incuTime\":240, \"mesureTime\":160, \"rdTime\":27.9, \"prehTime\":12.5, \"resultTime\":445.3}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"f4f19ce5-3021-4138-a2b9-7407923e5a93\", \"echTime\":11.6, \"riTime\":0, \"transTime\":3, \"incuTime\":240, \"mesureTime\":25, \"rdTime\":12.9, \"prehTime\":10.5, \"resultTime\":279.6}, {\"instrumentId\":\"24ba65dc-8d78-41c3-87e6-c4650d22a83a\", \"testId\":\"f87ffcfc-eff8-4bf5-8ad8-4b7c3b39f7cc\", \"echTime\":14, \"riTime\":9.3, \"transTime\":5, \"incuTime\":240, \"mesureTime\":70, \"rdTime\":20.2, \"prehTime\":12.5, \"resultTime\":338.3}], \"charge\": {\"id\":\"252ed4e6-df38-4214-8abe-acc643cf63b3\", \"echTime\":1, \"riTime\":1, \"transTime\":1, \"incuTime\":32, \"mesureTime\":8, \"rdTime\":1, \"prehTime\":1}, \"deleted\":false}}]}');\r\n return this.service.calcul(simu);\r\n\r\n }\r\n testDecompress() {\r\n alert(this.compressTest);\r\n alert(LZString.decompressFromUTF16(this.compressTest));\r\n\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example3.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example4.component.html\n// module id = ../../../../../src/app/components/example/example4.component.html\n// module chunks = main","import { Component, ViewChild } from '@angular/core';\r\n\r\n\r\nimport * as $ from 'jquery';\r\nwindow['$'] = $;\r\nwindow['jQuery'] = $;\r\n\r\n@Component({\r\n selector: 'example4',\r\n templateUrl: './example4.component.html'\r\n})\r\nexport class Example4Component {\r\n\r\n // @ViewChild('validationModal')\r\n // modal: ModalComponent;\r\n\r\n close() {\r\n // this.modal.close();\r\n }\r\n\r\n open() {\r\n // this.modal.open();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/example/example4.component.ts","module.exports = \"
\\r\\n

{{ 'Laboratory_Header' | translate }} ({{getLaboratoriesCount()}})

\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{ laboratory.name }}
\\r\\n {{ laboratory.clientNumber }}{{ laboratory.city }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ getSimulationCountForLaboratory(laboratory) }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratories.component.html\n// module id = ../../../../../src/app/components/laboratories/laboratories.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\nimport { DropDownLabel } from '../../../common';\r\nimport { Router } from '@angular/router';\r\nimport { ExtentedFormControl } from './../../../common/forms/ExtentedFormControl';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PagedDataSource } from '../../../models/PagedDataSource';\r\nimport { Simulation } from '../../../models/Simulation';\r\nimport { Laboratory } from '../../../models/Laboratory';\r\nimport { LaboratoryService } from '../../../services/LaboratoryService';\r\nimport { SimulationService } from '../../../services/SimulationService';\r\n\r\n@Component({\r\n selector: 'laboratories',\r\n templateUrl: './laboratories.component.html'\r\n})\r\nexport class LaboratoriesComponent implements OnInit {\r\n\r\n public simulations: PagedDataSource;\r\n public laboratories: PagedDataSource;\r\n public sortProperties = new PagedDataSource();\r\n allLaboratorySimuCount: { [id: string]: number; } = {};\r\n searchTerm: string;\r\n sort: ExtentedFormControl;\r\n\r\n constructor(\r\n private laboratoryService: LaboratoryService,\r\n private simulationService: SimulationService,\r\n private translateService: TranslateService,\r\n private router: Router) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.simulationService.get().subscribe(result => { this.simulations = result as PagedDataSource; });\r\n this.laboratoryService.get().subscribe(result => {\r\n this.laboratories = result as PagedDataSource;\r\n console.log(JSON.stringify(this.laboratories));\r\n });\r\n\r\n this.sort = new ExtentedFormControl('', null, null, null, 0);\r\n this.sortProperties.items = new Array();\r\n this.sortProperties.items.push(new DropDownLabel('name', this.translateService.instant('Sort_ByName'), true));\r\n this.sortProperties.items.push(new DropDownLabel('clientNumber', this.translateService.instant('Sort_ByClientNumber')));\r\n this.sortProperties.items.push(new DropDownLabel('city', this.translateService.instant('Sort_ByCity')));\r\n for (const property of this.sortProperties.items) {\r\n if (property.isDefault === true) {\r\n this.sort.setValue(property.displayValue);\r\n this.sort.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n\r\n this.refreshSimulCount();\r\n }\r\n\r\n public refreshSimulCount() {\r\n // alert('load()');\r\n\r\n this.allLaboratorySimuCount = {};\r\n // and then checkAgain every 5 seconds\r\n setTimeout(() => this.refreshSimulCount(), 1000);\r\n }\r\n\r\n getSimulationCountForLaboratory(laboratory: Laboratory) {\r\n\r\n if (this.allLaboratorySimuCount[laboratory.id] === null || this.allLaboratorySimuCount[laboratory.id] === undefined) {\r\n\r\n const simulations = this.simulationService.findByLaboratoryId(laboratory.id);\r\n let result = 0;\r\n simulations.subscribe(res => {\r\n result = res.totalCount;\r\n this.allLaboratorySimuCount[laboratory.id] = result;\r\n });\r\n }\r\n\r\n return this.allLaboratorySimuCount[laboratory.id];\r\n }\r\n\r\n getLaboratoriesCount() {\r\n if (this.laboratories != null && this.laboratories.items != null) {\r\n return this.laboratories.items.length;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n onUpdateOrCreateLaboratory(laboratory: Laboratory) {\r\n // route to /simulation/view/id\r\n this.router.navigate(['/laboratory/view', laboratory.id]);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratories.component.ts","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{ 'Laboratory_Edit' | translate }}

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratory-edit.component.html\n// module id = ../../../../../src/app/components/laboratories/laboratory-edit.component.html\n// module chunks = main","import { Component, OnInit, EventEmitter, Output, Input, ElementRef } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\n\r\n\r\nimport { FormMapper } from './../../../common/forms/FormMapper';\r\nimport { ExtentedFormControl } from './../../../common/forms/ExtentedFormControl';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Laboratory } from '../../../models/Laboratory';\r\nimport { PagedDataSource } from '../../../models/PagedDataSource';\r\nimport { Country } from '../../../models/Country';\r\nimport { State } from '../../../models/State';\r\nimport { User } from '../../../models/User';\r\nimport { LaboratoryService } from '../../../services/LaboratoryService';\r\nimport { UserService } from '../../../services/UserService';\r\nimport { CountryService } from '../../../services/CountryService';\r\nimport { StateService } from '../../../services/StateService';\r\n\r\n@Component({\r\n selector: 'laboratory-edit',\r\n templateUrl: './laboratory-edit.component.html'\r\n})\r\nexport class LaboratoryEditComponent implements OnInit {\r\n @Output() onUpdate = new EventEmitter();\r\n\r\n id: string;\r\n loading = true;\r\n\r\n @Input() value: Laboratory;\r\n @Input() idForm: string;\r\n\r\n message: string;\r\n\r\n countries: PagedDataSource;\r\n states: PagedDataSource;\r\n\r\n currentUser: User;\r\n\r\n laboratoryform: FormGroup;\r\n name: ExtentedFormControl;\r\n clientNumber: ExtentedFormControl;\r\n addressL1: ExtentedFormControl;\r\n state: ExtentedFormControl;\r\n country: ExtentedFormControl;\r\n city: ExtentedFormControl;\r\n postalCode: ExtentedFormControl;\r\n\r\n modalEl = null;\r\n\r\n constructor(private _rootNode: ElementRef,\r\n private service: LaboratoryService,\r\n private userService: UserService,\r\n private translateService: TranslateService,\r\n private countryService: CountryService,\r\n private stateService: StateService,\r\n private route: ActivatedRoute,\r\n private builder: FormBuilder) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n const required: string = this.translateService.instant('Form_FieldRequired');\r\n this.name = new ExtentedFormControl('', [Validators.required, Validators.maxLength(50)], null, [{ key: 'required', message: required }]);\r\n this.clientNumber = new ExtentedFormControl('', [Validators.pattern('[a-zA-Z0-9]{5,10}')], null, [{ key: 'required', message: required }]);\r\n this.addressL1 = new ExtentedFormControl('', null, null, [{ key: 'required', message: required }]);\r\n this.country = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.city = new ExtentedFormControl('', [Validators.required, Validators.pattern('([a-zA-Z\\u00C0-\\u017F\\-\\ ])*')], null, [{ key: 'required', message: required }]);\r\n\r\n this.postalCode = new ExtentedFormControl('', [Validators.pattern('[a-zA-Z0-9\\-]{0,10}')], null, [{ key: 'required', message: required }]);\r\n this.state = new ExtentedFormControl('', [], null, [{ key: 'required', message: required }]);\r\n\r\n this.countryService.get().subscribe(res => {\r\n this.countries = res as PagedDataSource;\r\n\r\n this.userService.get().subscribe(u => {\r\n this.currentUser = (u.items[0] as User);\r\n\r\n for (const property of this.countries.items) {\r\n if (property.name === this.currentUser.lastSelectedCountry) {\r\n this.country.setValue(property.name);\r\n this.country.internalValue = property.name;\r\n break;\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.stateService.get().subscribe(res => this.states = res as PagedDataSource);\r\n\r\n this.laboratoryform = this.builder.group({\r\n name: this.name,\r\n clientNumber: this.clientNumber,\r\n addressL1: this.addressL1,\r\n country: this.country,\r\n city: this.city,\r\n postalCode: this.postalCode,\r\n state: this.state\r\n\r\n });\r\n\r\n this.modalEl = $(this._rootNode.nativeElement).find('div.modal');\r\n }\r\n\r\n close() {\r\n // clear data\r\n this.laboratoryform.reset();\r\n this.modalEl.hide();\r\n $(document.body).removeClass('modal-open');\r\n $('.modal-backdrop').remove();\r\n }\r\n\r\n createLaboratory() {\r\n // this.modalEl.show();\r\n this.value = new Laboratory();\r\n this.value.mode = 'ToCreate';\r\n }\r\n\r\n editLaboratory(value) {\r\n this.value = value;\r\n FormMapper.mapTo(value, this.laboratoryform);\r\n }\r\n\r\n save() {\r\n if (!this.laboratoryform.valid) {\r\n\r\n for (const key in this.laboratoryform.controls) {\r\n const ctr = this.laboratoryform.controls[key];\r\n\r\n (ctr as ExtentedFormControl).markAsTouched({ onlySelf: true });\r\n }\r\n\r\n } else {\r\n FormMapper.mapFrom(this.laboratoryform, this.value);\r\n // check this !\r\n this.value.userId = this.currentUser.id;\r\n this.currentUser.lastSelectedCountry = this.value.country;\r\n this.userService.edit(this.currentUser);\r\n this.service.edit(this.value);\r\n this.onUpdate.emit(this.value);\r\n this.close();\r\n }\r\n }\r\n\r\n onLoadFailed(error: any) {\r\n this.value = null;\r\n this.message = error;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratory-edit.component.ts","module.exports = \"
\\r\\n

{{ 'Laboratories' | translate }}

\\r\\n \\r\\n
\\r\\n {{ value.name }} \\r\\n
\\r\\n Not Sync\\r\\n Synching\\r\\n Sync ok\\r\\n\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ value.name }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ value.clientNumber }}\\r\\n
\\r\\n
\\r\\n \\r\\n {{ value.addressL1 }}\\r\\n {{ value.postalCode }} {{ value.city }}\\r\\n {{ value.country }}\\r\\n {{ value.state }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ 'Simulation_Header' | translate}} ({{getNumberOfSimulations(simulations)}})

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{ simulation.name }}
\\r\\n {{ simulation.date | userdate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{getInstrumentsBySimuByLab(simulation, 1)}}\\r\\n {{getInstrumentsBySimuByLab(simulation, 2)}}\\r\\n {{getInstrumentsBySimuByLab(simulation, 3)}}\\r\\n {{getWorkcellsBySimuByLab(simulation)}} ({{getWorkcellsInstBySimuByLab(simulation) }})\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{getTestByDayBySimu(simulation)}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratory-view-details.component.html\n// module id = ../../../../../src/app/components/laboratories/laboratory-view-details.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { FormMapper } from './../../../common/forms/FormMapper';\r\nimport { ExtentedFormControl } from './../../../common/forms/ExtentedFormControl';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Laboratory } from '../../../models/Laboratory';\r\nimport { PagedDataSource } from '../../../models/PagedDataSource';\r\nimport { Simulation } from '../../../models/Simulation';\r\nimport { SynchronizableByLaboratoryObject } from '../../../models/SynchronizableObject';\r\nimport { Instrument } from '../../../models/Instrument';\r\nimport { LaboratoryService } from '../../../services/LaboratoryService';\r\nimport { SimulationService } from '../../../services/SimulationService';\r\nimport { CalculSimulationService } from '../../../services/CalculSimulationService';\r\nimport { InstrumentService } from '../../../services/InstrumentService';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n\r\n@Component({\r\n templateUrl: './laboratory-view-details.component.html'\r\n})\r\nexport class LaboratoryViewDetailsComponent implements OnInit {\r\n id: string;\r\n loading = true;\r\n loadingSimulation = true;\r\n value: Laboratory;\r\n message: string;\r\n loginForm: FormGroup;\r\n simulations: PagedDataSource;\r\n simus$: Observable>;\r\n instruments = new PagedDataSource();\r\n\r\n allSimulationTestCount: { [id: string]: number; } = {};\r\n\r\n laboratoryform: FormGroup;\r\n name: ExtentedFormControl;\r\n clientNumber: ExtentedFormControl;\r\n addressL1: ExtentedFormControl;\r\n addressL2: ExtentedFormControl;\r\n addressL3: ExtentedFormControl;\r\n state: ExtentedFormControl;\r\n country: ExtentedFormControl;\r\n city: ExtentedFormControl;\r\n postalCode: ExtentedFormControl;\r\n comments: ExtentedFormControl;\r\n userId: ExtentedFormControl;\r\n syncStatus: string;\r\n mode: string;\r\n\r\n constructor(\r\n public service: LaboratoryService,\r\n private translateService: TranslateService,\r\n private serviceSimulation: SimulationService,\r\n private router: Router,\r\n private route: ActivatedRoute, builder: FormBuilder,\r\n private calculSimulationService: CalculSimulationService,\r\n private instrumentService: InstrumentService) {\r\n\r\n const required: string = this.translateService.instant('Form_FieldRequired');\r\n this.name = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.clientNumber = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.addressL1 = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.addressL2 = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.addressL3 = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.country = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.city = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.postalCode = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.comments = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.userId = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n this.state = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }]);\r\n\r\n\r\n this.laboratoryform = builder.group({\r\n name: this.name,\r\n clientNumber: this.clientNumber,\r\n addressL1: this.addressL1,\r\n addressL2: this.addressL2,\r\n addressL3: this.addressL3,\r\n country: this.country,\r\n city: this.city,\r\n postalCode: this.postalCode,\r\n comments: this.comments,\r\n userId: this.userId,\r\n state: this.state\r\n });\r\n this.service.elementNotSynchronized.subscribe(res => this.updateSyncStatus('NotSync', res));\r\n this.service.elementSynchronized.subscribe(res => this.updateSyncStatus('Sync', res));\r\n this.service.elementSynchronizing.subscribe(res => this.updateSyncStatus('Synching', res));\r\n\r\n this.route.params.subscribe(params => {\r\n if (params['mode'] != null) {\r\n this.mode = params['mode'];\r\n }\r\n });\r\n }\r\n\r\n\r\n updateSyncStatus(status: string, id: string) {\r\n if (this.value != null && id === this.value.id) {\r\n this.syncStatus = status;\r\n if (status === 'Sync') {\r\n /// in 4 second, hide the Sync OK\r\n setTimeout(() => {\r\n this.syncStatus = null;\r\n }, 4000);\r\n }\r\n }\r\n\r\n\r\n\r\n if (this.value == null && status === 'Sync') {\r\n this.syncStatus = status;\r\n /// in 4 second, hide the Sync OK\r\n setTimeout(() => {\r\n this.syncStatus = null;\r\n }, 4000);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.route.params.subscribe(params => {\r\n this.id = params['id'];\r\n if (this.id !== '0') {\r\n this.load();\r\n } else {\r\n this.value = new Laboratory();\r\n this.value.mode = 'ToCreate';\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n load() {\r\n let lab: any;\r\n if (this.mode === 'admin') {\r\n lab = this.service.findAsAdmin(this.id);\r\n this.simus$ = this.serviceSimulation.findByLaboratoryIdAsAdmin(this.id);\r\n } else {\r\n lab = this.service.find(this.id);\r\n this.simus$ = this.serviceSimulation.findByLaboratoryId(this.id);\r\n }\r\n\r\n lab.subscribe(\r\n (value) => this.onLoadCompleted(value as Laboratory),\r\n (error) => this.onLoadFailed(error),\r\n () => this.loading = false\r\n );\r\n\r\n this.simus$.subscribe(\r\n (value) => this.onSimulationsLoadCompleted(value as PagedDataSource),\r\n (error) => this.onLoadFailed(error),\r\n () => this.loadingSimulation = false\r\n );\r\n\r\n\r\n\r\n const instru = this.instrumentService.get();\r\n if (instru != null) {\r\n instru.subscribe(res => {\r\n this.instruments.items = [];\r\n for (const entry of res.items) {\r\n if (res != null) {\r\n this.instruments.items.push((entry as Instrument));\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onLoadCompleted(value: Laboratory) {\r\n setTimeout(() => {\r\n this.value = value;\r\n if (this.value.mode === 'ToCreate' || this.value.mode === 'ToUpdate') {\r\n this.syncStatus = 'NotSync';\r\n }\r\n }, 1);\r\n FormMapper.mapTo(value, this.laboratoryform);\r\n }\r\n\r\n\r\n onSimulationsLoadCompleted(value: PagedDataSource) {\r\n setTimeout(() => {\r\n\r\n this.simulations = value;\r\n }, 1);\r\n }\r\n\r\n getNumberOfSimulations(simulations: PagedDataSource) {\r\n if (simulations !== null && simulations !== undefined && simulations.items !== null && simulations.items !== undefined) {\r\n return simulations.items.length;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getInstrumentsBySimuByLab(simulation: Simulation, size: number) {\r\n let result = 0;\r\n for (const key of simulation.instruments) {\r\n const instrument = this.getInstrumentById(key.instrumentId);\r\n if (instrument.size === size) {\r\n result++;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n getWorkcellsInstBySimuByLab(simulation: Simulation) {\r\n let result=0;\r\n if (simulation.instrumentsWorkcell){\r\n //console.log(simulation);\r\n let instru = simulation.instrumentsWorkcell.map(e=>e.nbInstruments) ;\r\n if (instru.length > 0 ) \r\n result = instru.reduce((e,f) => e+f);\r\n }\r\n return result;\r\n }\r\n getWorkcellsBySimuByLab(simulation: Simulation) {\r\n let result = 0;\r\n if (simulation.instrumentsWorkcell)\r\n result = simulation.instrumentsWorkcell.length;\r\n return result;\r\n }\r\n\r\n\r\n getTestByDayBySimu(simulation: Simulation) {\r\n // cache calcul of test by day\r\n if (this.allSimulationTestCount[simulation.id] == null) {\r\n this.allSimulationTestCount[simulation.id] = this.calculSimulationService.getTotalDailyTestOfSimulation(simulation);\r\n }\r\n return this.allSimulationTestCount[simulation.id];\r\n }\r\n\r\n\r\n\r\n getInstrumentById(id: string) {\r\n if (id != null) {\r\n for (let instrument of this.instruments.items) {\r\n instrument = (instrument as Instrument);\r\n if (instrument.id === id) {\r\n return instrument;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onUpdateOrCreateSimulation(simulation: Simulation) {\r\n // route to /simulation/view/id\r\n this.router.navigate(['/simulation/view', simulation.id]);\r\n }\r\n\r\n save() {\r\n FormMapper.mapFrom(this.laboratoryform, this.value);\r\n this.service.edit(this.value);\r\n }\r\n\r\n onLoadFailed(error: any) {\r\n this.value = null;\r\n this.message = error;\r\n }\r\n\r\n deleteAllSimulations() {\r\n this.simulations.items.forEach(s => this.serviceSimulation.delete(s));\r\n this.simulations.items = [];\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/laboratories/laboratory-view-details.component.ts","module.exports = \"
\\r\\n

{{ 'Login_Header' | translate }}

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{invalidUserPassword}}\\r\\n
\\r\\n Checking user name and password, please wait\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/login.component.html\n// module id = ../../../../../src/app/components/login/components/login.component.html\n// module chunks = main","import { Component, NgZone } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ExtentedFormControl } from '../../../../common/forms/ExtentedFormControl';\r\nimport { UserService } from '../../../../services/UserService';\r\nimport { HelloService } from '../../../../services/HelloService';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthGuardToken } from '../../../../common/auth-guard-token.service';\r\nimport { User } from '../../../../models/User';\r\n\r\n@Component({\r\n selector: 'login',\r\n templateUrl: './login.component.html'\r\n})\r\nexport class LoginComponent {\r\n loading: boolean;\r\n userForm: FormGroup;\r\n invalidUserPassword: string;\r\n\r\n user: ExtentedFormControl;\r\n password: ExtentedFormControl;\r\n\r\n constructor(\r\n public userService: UserService,\r\n private helloService: HelloService,\r\n private translateService: TranslateService,\r\n private zone: NgZone,\r\n private router: Router,\r\n private authGuard: AuthGuardToken,\r\n builder: FormBuilder\r\n ) {\r\n this.user = new ExtentedFormControl('', [Validators.required, Validators.maxLength(50)], null, [\r\n { key: 'required', message: 'mandatory' }\r\n ]);\r\n this.password = new ExtentedFormControl('', [Validators.required, Validators.maxLength(50)], null, [\r\n { key: 'required', message: 'mandatory' }\r\n ]);\r\n\r\n this.invalidUserPassword = null;\r\n\r\n this.userForm = builder.group({\r\n user: this.user,\r\n password: this.password\r\n });\r\n this.loading = false;\r\n }\r\n\r\n logon() {\r\n if (!this.userForm.valid) {\r\n this.invalidUserPassword = this.translateService.instant('App_NothingInForm');\r\n } else {\r\n this.loading = true;\r\n this.userService.logon(this.user.value, this.password.value).subscribe(\r\n (res: any) => {\r\n this.loading = false;\r\n const user = res as User;\r\n if (user) {\r\n this.userService.userId = res.id;\r\n this.helloService.userId = res.id;\r\n this.userService.storageSetItem('currentUser', JSON.stringify(res));\r\n this.authGuard.tokenExpired = false;\r\n this.helloService.newUser();\r\n setTimeout(() => this.router.navigate(['/laboratory']), 1000);\r\n } else {\r\n this.invalidUserPassword = this.translateService.instant('App_InvalidUserPassword');\r\n }\r\n },\r\n\r\n err => {\r\n this.loading = false;\r\n this.invalidUserPassword = this.translateService.instant('App_InvalidUserPassword');\r\n // this.router.navigate(['/login']);\r\n }\r\n );\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/login.component.ts","module.exports = \"LOGOUT\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/logout.component.html\n// module id = ../../../../../src/app/components/login/components/logout.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: './logout.component.html'\r\n})\r\nexport class LogoutComponent {\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/logout.component.ts","module.exports = \"
\\r\\n OUTT\\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/lostpassword.component.html\n// module id = ../../../../../src/app/components/login/components/lostpassword.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: './lostpassword.component.html'\r\n})\r\nexport class LostPasswordComponent {\r\n \r\n constructor() {\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/components/lostpassword.component.ts","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { LoginComponent } from './components/login.component';\r\nimport { LostPasswordComponent } from './components/lostpassword.component';\r\nimport { LogoutComponent } from './components/logout.component';\r\n\r\nconst loginRoutes: Routes = [\r\n {\r\n path: 'account',\r\n children: [\r\n { path: 'login', component: LoginComponent },\r\n { path: 'logout', component: LogoutComponent },\r\n { path: 'lostpassword', component: LostPasswordComponent, outlet: 'popup' },\r\n { path: '', component: LoginComponent },\r\n ]\r\n }\r\n];\r\n\r\n// Login routing module\r\n@NgModule({\r\n imports: [\r\n RouterModule.forChild(loginRoutes)\r\n ],\r\n exports: [\r\n RouterModule\r\n ]\r\n})\r\nexport class LoginRoutingModule {\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/login-routing.module.ts","import { ExtendedFormModule } from './../../../common/forms/ExtendedFormModule';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { LoginComponent} from './components/login.component';\r\nimport { LostPasswordComponent } from './components/lostpassword.component';\r\nimport { LogoutComponent } from './components/logout.component';\r\n\r\nimport { LoginRoutingModule } from './login-routing.module';\r\nimport { AuthGuard } from '../../../common/auth-guard.service';\r\nimport { AuthGuardToken } from '../../../common/auth-guard-token.service';\r\nimport { AuthService } from '../../../common/auth.service';\r\nimport { SharedModule } from '../../../common/shared-module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n LoginComponent,\r\n LogoutComponent,\r\n LostPasswordComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n ExtendedFormModule,\r\n SharedModule,\r\n // App module import\r\n LoginRoutingModule,\r\n ],\r\n exports: [\r\n TranslateModule\r\n ],\r\n providers: [\r\n AuthGuard,\r\n AuthGuardToken,\r\n AuthService\r\n ]\r\n})\r\nexport class LoginModule {\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/login/login.module.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"li .glyphicon {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n/* Highlighting rules for nav menu items */\\r\\n\\r\\nli.link-active a,\\r\\nli.link-active a:hover,\\r\\nli.link-active a:focus {\\r\\n background-color: #4189C7;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n/* Keep the nav menu independent of scrolling and on top of other items */\\r\\n\\r\\n.main-nav {\\r\\n position: fixed;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n /* On small screens, convert the nav menu to a vertical sidebar */\\r\\n .main-nav {\\r\\n height: 100%;\\r\\n width: calc(25% - 20px);\\r\\n }\\r\\n .navbar {\\r\\n border-radius: 0px;\\r\\n border-width: 0px;\\r\\n height: 100%;\\r\\n }\\r\\n .navbar-header {\\r\\n float: none;\\r\\n }\\r\\n .navbar-collapse {\\r\\n border-top: 1px solid #444;\\r\\n padding: 0px;\\r\\n }\\r\\n .navbar ul {\\r\\n float: none;\\r\\n }\\r\\n .navbar li {\\r\\n float: none;\\r\\n font-size: 15px;\\r\\n margin: 6px;\\r\\n }\\r\\n .navbar li a {\\r\\n padding: 10px 16px;\\r\\n border-radius: 4px;\\r\\n }\\r\\n .navbar a {\\r\\n /* If a menu item's text is too long, truncate it */\\r\\n width: 100%;\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n }\\r\\n}\\r\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/navmenu/navmenu.component.css\n// module id = ../../../../../src/app/components/navmenu/navmenu.component.css\n// module chunks = main","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/navmenu/navmenu.component.html\n// module id = ../../../../../src/app/components/navmenu/navmenu.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { User } from '../../../models/User';\r\nimport { UserService } from '../../../services/UserService';\r\nimport { HelloService } from '../../../services/HelloService';\r\n\r\n\r\n@Component({\r\n selector: 'nav-menu',\r\n templateUrl: './navmenu.component.html',\r\n styleUrls: ['./navmenu.component.css']\r\n})\r\nexport class NavMenuComponent {\r\n\r\n appUser: User;\r\n abbrev: string;\r\n\r\n getUserConnected() {\r\n this.userService.get().subscribe(res => {\r\n this.appUser = res.items[0] as User;\r\n if (this.appUser != null && this.appUser.firstName != null && this.appUser.name != null) {\r\n this.abbrev = this.appUser.firstName.substr(0, 1) + this.appUser.name.substr(0, 1);\r\n }\r\n }\r\n );\r\n }\r\n\r\n constructor(private userService: UserService, private helloService: HelloService) {\r\n helloService.userConnected.subscribe(res => this.getUserConnected());\r\n this.getUserConnected();\r\n }\r\n\r\n logout() {\r\n this.appUser = null;\r\n this.userService.logout();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/navmenu/navmenu.component.ts","module.exports = \"
\\r\\n

{{ 'Changelog_Header' | translate }}

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{version.title | translate}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/settings/changelog.component.html\n// module id = ../../../../../src/app/components/settings/changelog.component.html\n// module chunks = main","import { Component, OnInit, ViewChild } from '@angular/core';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'changelog',\r\n templateUrl: './changelog.component.html'\r\n})\r\nexport class ChangelogComponent {\r\n\r\n versions = [\r\n {\r\n title: 'Changelog_Version_1.4.0',\r\n description: 'Changelog_Version_1.4.0_body'\r\n },\r\n {\r\n title: 'Changelog_Version_1.2.1',\r\n description: 'Changelog_Version_1.2.1_body'\r\n },\r\n {\r\n title: 'Changelog_Version_1.2',\r\n description: 'Changelog_Version_1.2_body'\r\n },\r\n {\r\n title: 'Changelog_Version_2_0',\r\n description: 'Changelog_Version_2_0_body'\r\n },\r\n {\r\n title: 'Changelog_Version_1_7',\r\n description: 'Changelog_Version_1_7_body'\r\n },\r\n {\r\n title: 'Changelog_Version_1_6',\r\n description: 'Changelog_Version_1_6_body'\r\n },\r\n {\r\n title: 'Changelog_Version_1_5',\r\n description: 'Changelog_Version_1_5_body'\r\n },\r\n {\r\n title: 'Changelog_Version_1_0',\r\n description: 'Changelog_Version_1_0_body'\r\n }\r\n ];\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/settings/changelog.component.ts","module.exports = \"
\\r\\n

{{ 'Settings_Header' | translate }}

\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'Settings_SubHeader' | translate}}

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{'Settings_SaveValidation' | translate}}
\\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/settings/settings.component.html\n// module id = ../../../../../src/app/components/settings/settings.component.html\n// module chunks = main","import { PagedDataSource } from './../../../models/PagedDataSource';\r\nimport { isArray } from 'util';\r\nimport { DropDownLabel } from '../../../common';\r\n\r\nimport { ExtentedFormControl } from './../../../common/forms/ExtentedFormControl';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Component } from '@angular/core';\r\nimport { User } from '../../../models/User';\r\nimport { AppSettingsService } from '../../../services/AppSettingsService';\r\nimport { UserService } from '../../../services/UserService';\r\nimport { HelloService } from '../../../services/HelloService';\r\nimport { SynchronizableObject } from '../../../models/SynchronizableObject';\r\nimport { AppSettings } from '../../../models/AppSettings';\r\n\r\n@Component({\r\n selector: 'settings',\r\n templateUrl: './settings.component.html'\r\n})\r\nexport class SettingsComponent {\r\n language: ExtentedFormControl;\r\n dateFormat: ExtentedFormControl;\r\n timeFormat: ExtentedFormControl;\r\n dateFormats: PagedDataSource;\r\n languages: PagedDataSource;\r\n timeFormats: PagedDataSource;\r\n currentUser: User;\r\n unchangedLanguage: Array;\r\n unchangedDateFormat: Array;\r\n modified = false;\r\n\r\n constructor(\r\n private appSettingsService: AppSettingsService,\r\n public userService: UserService,\r\n public helloService: HelloService,\r\n private translate: TranslateService\r\n ) {\r\n this.language = new ExtentedFormControl('', null, null, null);\r\n this.dateFormat = new ExtentedFormControl('', null, null, null);\r\n\r\n this.userService.get().subscribe(res => {\r\n this.currentUser = res.items[0] as User;\r\n });\r\n\r\n this.appSettingsService.get().subscribe(res => this.initializeDropDowns(res));\r\n }\r\n\r\n saveModification() {\r\n if (this.dateFormat.value != null) {\r\n this.currentUser.dateFormat = this.dateFormat.value;\r\n this.unchangedDateFormat = [this.dateFormat.value, this.dateFormat.internalValue];\r\n }\r\n\r\n if (this.language.internalValue != null) {\r\n this.currentUser.preferedLanguage = this.language.internalValue;\r\n this.unchangedLanguage = [this.language.value, this.language.internalValue];\r\n this.translate.setDefaultLang(this.currentUser.preferedLanguage);\r\n }\r\n\r\n this.userService.edit(this.currentUser);\r\n this.userService.saveCurrent(this.currentUser);\r\n this.modified = false;\r\n this.showSnackBar();\r\n }\r\n\r\n showSnackBar() {\r\n const x = document.getElementById('snackbar');\r\n x.className = 'show';\r\n setTimeout(function() {\r\n x.className = x.className.replace('show', '');\r\n }, 3000);\r\n }\r\n\r\n cancelModification() {\r\n this.dateFormat.setValue(this.unchangedDateFormat[0]);\r\n this.dateFormat.internalValue = this.unchangedDateFormat[1];\r\n this.language.setValue(this.unchangedLanguage[0]);\r\n this.language.internalValue = this.unchangedLanguage[1];\r\n this.modified = false;\r\n }\r\n\r\n onChangeDropDown() {\r\n this.modified = true;\r\n }\r\n\r\n private pushDataToDropdown(\r\n jsonString: string,\r\n dropdown: PagedDataSource,\r\n defaultValue: string = '',\r\n control: ExtentedFormControl\r\n ) {\r\n const data = JSON.parse(jsonString);\r\n dropdown.items = new Array();\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n if (!isArray(data[i])) {\r\n if (data[i] === defaultValue) {\r\n control.setValue(data[i]);\r\n control.internalValue = data[i];\r\n }\r\n\r\n dropdown.items.push(new DropDownLabel(data[i].toString(), data[i].toString(), true));\r\n } else {\r\n const currentData = data[i];\r\n\r\n if (currentData[1] === defaultValue) {\r\n control.setValue(currentData[0]);\r\n control.internalValue = currentData[1];\r\n }\r\n\r\n dropdown.items.push(new DropDownLabel(currentData[1].toString(), currentData[0].toString()));\r\n }\r\n }\r\n return dropdown;\r\n }\r\n\r\n private initializeDropDowns(res: PagedDataSource) {\r\n for (const result of res.items) {\r\n const setting = result as AppSettings;\r\n\r\n if (setting.name === 'DateFormat') {\r\n this.dateFormats = new PagedDataSource();\r\n this.dateFormats = this.pushDataToDropdown(setting.settings, this.dateFormats, this.currentUser.dateFormat, this.dateFormat);\r\n this.unchangedDateFormat = [this.dateFormat.value, this.dateFormat.internalValue];\r\n }\r\n\r\n if (setting.name === 'Language') {\r\n this.languages = new PagedDataSource();\r\n this.languages = this.pushDataToDropdown(setting.settings, this.languages, this.currentUser.preferedLanguage, this.language);\r\n this.unchangedLanguage = [this.language.value, this.language.internalValue];\r\n }\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/settings/settings.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{ category.name }}\\r\\n \\r\\n {{ getCheckedTestByCategory(category).length }}/{{ category.tests.length }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n {{ test.mnemonic }}\\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n \\r\\n
  • \\r\\n\\r\\n
  • \\r\\n
    \\r\\n \\r\\n Patient\\r\\n \\r\\n \\r\\n Batch\\r\\n \\r\\n
    \\r\\n
  • \\r\\n\\r\\n
  • \\r\\n
    \\r\\n \\r\\n Standalone\\r\\n \\r\\n \\r\\n Workcell\\r\\n \\r\\n
    \\r\\n
  • \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-annual-activity.component.html\n// module id = ../../../../../src/app/components/simulations/simulation-edit-annual-activity.component.html\n// module chunks = main","import { isNullOrUndefined } from 'util';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { vm_Global, vm_Test, vm_Category } from '../../../models/SimulationViewModel';\r\nimport { RegexService } from '../../../services/RegexService';\r\nimport { SimulationActivityManagementService } from '../../../services/SimulationActivityManagementService';\r\n\r\n@Component({\r\n selector: 'simulation-edit-annual-activity',\r\n templateUrl: './simulation-edit-annual-activity.component.html'\r\n})\r\nexport class SimulationEditAnnualActivityComponent {\r\n\r\n @Output() modelChange = new EventEmitter();\r\n @Input() value: vm_Global;\r\n\r\n checkedTest: vm_Test[];\r\n constructor(private regexService: RegexService, private simulationActivityManagementService: SimulationActivityManagementService) {\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.initCheckedTest();\r\n }\r\n\r\n initCheckedTest() {\r\n for (const category of this.value.categories) {\r\n for (const test of category.tests) {\r\n test.checked = false;\r\n }\r\n }\r\n }\r\n\r\n setChartDirty() {\r\n this.modelChange.emit();\r\n }\r\n\r\n getFormValidity() {\r\n for (const category of this.value.categories) {\r\n for (const test of category.tests) {\r\n if (!isNullOrUndefined(test.quantity) && !this.regexService.validateTotalByYear(true, test.quantity.toString())) {\r\n return false;\r\n }\r\n\r\n if (!isNullOrUndefined(test.txRepasse) && !this.regexService.validateRerunOrRedilution(true, test.txRepasse.toString())) {\r\n return false;\r\n }\r\n\r\n if (!isNullOrUndefined(test.diluable) && !isNullOrUndefined(test.nbDilution)\r\n && !this.regexService.validateDecimal(true, test.nbDilution.toString())) {\r\n return false;\r\n }\r\n\r\n if (!isNullOrUndefined(test.rediluable) && !isNullOrUndefined(test.txRedilution)\r\n && !this.regexService.validateRerunOrRedilution(true, test.txRedilution.toString())) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n setTest(test: vm_Test, value: boolean) {\r\n test.dossierOuSerie = value;\r\n if (!value)// Si on est patient, c'est automatiquement standalone\r\n test.workcell = false;\r\n this.setChartDirty();\r\n }\r\n\r\n \r\n setTestWorkcell(test: vm_Test, value: boolean) {\r\n test.workcell = value;\r\n if (value) // Si on est workcell, c'est automatiquement Patient\r\n test.dossierOuSerie = true;\r\n this.setChartDirty();\r\n }\r\n\r\n getTotalByYearRegex() {\r\n return this.regexService.validateTotalByYear(false);\r\n }\r\n\r\n getnbDilutionRegex() {\r\n return this.regexService.validateDecimal(false);\r\n }\r\n\r\n getRerunOrRedilutionRegex() {\r\n return this.regexService.validateRerunOrRedilution(false);\r\n }\r\n\r\n getDilutionRegex() {\r\n return this.regexService.validateDilutionOrNumberPerWeek(false);\r\n }\r\n\r\n setActive(test: vm_Test) {\r\n if (test.active) {\r\n test.active = false;\r\n test.checked = false;\r\n } else {\r\n test.active = true;\r\n }\r\n\r\n this.setChartDirty();\r\n }\r\n\r\n setMultipleActive(test: vm_Test) {\r\n if (this.testSelected()) {\r\n test.active = !test.active;\r\n }\r\n }\r\n\r\n getCheckedTest(): vm_Test[] {\r\n const checkedTest = new Array();\r\n for (const category of this.value.categories) {\r\n for (const test of category.tests) {\r\n if (test.checked === true) {\r\n checkedTest.push(test);\r\n }\r\n }\r\n }\r\n this.checkedTest = checkedTest;\r\n return checkedTest;\r\n }\r\n\r\n getCheckedTestByCategory(category: vm_Category) {\r\n const categorizedTest = new Array();\r\n for (const test of category.tests) {\r\n if (test.checked === true) {\r\n categorizedTest.push(test);\r\n }\r\n }\r\n\r\n if (categorizedTest.length === category.tests.length) {\r\n category.checked = true;\r\n }\r\n\r\n return categorizedTest;\r\n }\r\n\r\n categoryIsChecked(category: vm_Category) {\r\n return this.getCheckedTestByCategory(category).length === category.tests.length;\r\n }\r\n\r\n selectAllCategory(event: any) {\r\n for (const category of this.value.categories) {\r\n category.checked = event.target.checked;\r\n this.selectCategory(category, event);\r\n }\r\n }\r\n\r\n selectCategory(category: vm_Category, event: any) {\r\n for (const test of category.tests) {\r\n test.checked = event.target.checked;\r\n }\r\n }\r\n\r\n updateMultipleValue(multipleTest: vm_Test) {\r\n for (const test of this.checkedTest) {\r\n if (multipleTest.quantity != null) {\r\n test.quantity = multipleTest.quantity;\r\n }\r\n\r\n if (multipleTest.txRepasse != null) {\r\n test.txRepasse = multipleTest.txRepasse;\r\n }\r\n\r\n if (test.diluable && multipleTest.nbDilution != null) {\r\n test.nbDilution = multipleTest.nbDilution;\r\n }\r\n\r\n if (test.rediluable && multipleTest.nbDilution != null) {\r\n test.txRedilution = multipleTest.nbDilution;\r\n }\r\n\r\n test.dossierOuSerie = multipleTest.dossierOuSerie;\r\n\r\n test.workcell = multipleTest.workcell;\r\n\r\n test.active = multipleTest.active;\r\n // if (test.active) {\r\n test.checked = false;\r\n // }\r\n }\r\n this.setChartDirty();\r\n }\r\n\r\n numberOfCheckTested() {\r\n return this.getCheckedTest().length;\r\n }\r\n\r\n testSelected(): boolean {\r\n return this.getCheckedTest().length > 0;\r\n }\r\n\r\n \r\n anyStandaloneActivity() {\r\n const checkedTest = new Array();\r\n for (const category of this.value.categories) {\r\n for (const test of category.tests) {\r\n if (test.active && !test.workcell) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n anyWorkcellActivity() {\r\n const checkedTest = new Array();\r\n for (const category of this.value.categories) {\r\n for (const test of category.tests) {\r\n if (test.active && test.workcell) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-annual-activity.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n batches\\r\\n {{category.name}}\\r\\n \\r\\n {{getCheckedTestByCategory(category).length}}/{{numberOfBatchPerCategory(category)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n {{ test.mnemonic }}\\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-batch-activity.component.html\n// module id = ../../../../../src/app/components/simulations/simulation-edit-batch-activity.component.html\n// module chunks = main","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { isNullOrUndefined } from 'util';\r\nimport { vm_Global, vm_Test, vm_Category } from '../../../models/SimulationViewModel';\r\nimport { SimulationActivityManagementService } from '../../../services/SimulationActivityManagementService';\r\nimport { RegexService } from '../../../services/RegexService';\r\n\r\n\r\n@Component({\r\n selector: 'simulation-edit-batch-activity',\r\n templateUrl: './simulation-edit-batch-activity.component.html'\r\n})\r\nexport class SimulationEditBatchActivityComponent {\r\n\r\n @Input() value: vm_Global;\r\n\r\n checkedTest: vm_Test[];\r\n\r\n constructor(private simulationActivityManagementService: SimulationActivityManagementService,\r\n private regexService: RegexService) {\r\n\r\n }\r\n\r\n @Output() modelChange = new EventEmitter();\r\n setChartDirty() {\r\n this.modelChange.emit();\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.initCheckedTest();\r\n }\r\n\r\n getFormValidity() {\r\n for (const category of this.value.categories) {\r\n if (this.simulationActivityManagementService.categoryHaveBatchTest(category)) {\r\n for (const test of category.tests) {\r\n if (!test.dossierOuSerie && test.active) {\r\n if (!isNullOrUndefined(test.nbPerWeek) &&\r\n !this.regexService.validateDecimal(true, test.nbPerWeek.toString())) {\r\n return false;\r\n }\r\n\r\n if (!isNullOrUndefined(test.startHour) &&\r\n !this.regexService.validateHour(true, test.startHour.toString())) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n getNbPerWeekRegex() {\r\n // accept decimal\r\n return this.regexService.validateDecimal(false);\r\n }\r\n\r\n getHourRegex() {\r\n return this.regexService.validateHour(false);\r\n }\r\n\r\n initCheckedTest() {\r\n for (const category of this.value.categories) {\r\n for (const test of category.tests) {\r\n test.checked = false;\r\n }\r\n }\r\n }\r\n\r\n numberOfBatchPerCategory(category: vm_Category): number {\r\n return this.simulationActivityManagementService.numberOfBatchPerCategory(category);\r\n }\r\n\r\n categoryIsEmpty(category: vm_Category): boolean {\r\n return !this.simulationActivityManagementService.categoryHaveBatchTest(category);\r\n }\r\n\r\n\r\n getCheckedTest(): vm_Test[] {\r\n const checkedTest: vm_Test[] = [];\r\n for (const category of this.value.categories) {\r\n for (const test of category.tests) {\r\n if (test.checked) {\r\n checkedTest.push(test);\r\n }\r\n }\r\n }\r\n this.checkedTest = checkedTest;\r\n return checkedTest;\r\n }\r\n\r\n getCheckedTestByCategory(category: vm_Category) {\r\n const categorizedTest = new Array();\r\n for (const test of category.tests) {\r\n if (test.checked === true) {\r\n categorizedTest.push(test);\r\n }\r\n }\r\n\r\n if (categorizedTest.length === category.tests.length) {\r\n category.checked = true;\r\n }\r\n\r\n return categorizedTest;\r\n }\r\n\r\n categoryIsChecked(category: vm_Category) {\r\n if (this.getCheckedTestByCategory(category).length === category.tests.length) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n selectAllCategory(event: any) {\r\n for (const category of this.value.categories) {\r\n category.checked = event.target.checked;\r\n this.selectCategory(category, event);\r\n }\r\n }\r\n\r\n selectCategory(category: vm_Category, event: any) {\r\n for (const test of category.tests) {\r\n if (!test.dossierOuSerie) {\r\n test.checked = event.target.checked;\r\n }\r\n }\r\n }\r\n\r\n updateMultipleValue(multipleTest: vm_Test) {\r\n for (const test of this.getCheckedTest()) {\r\n test.nbPerWeek = multipleTest.nbPerWeek;\r\n test.startHour = multipleTest.startHour;\r\n }\r\n this.setChartDirty();\r\n }\r\n\r\n numberOfCheckTested() {\r\n return this.getCheckedTest().length;\r\n }\r\n\r\n testSelected(): boolean {\r\n return this.getCheckedTest().length > 0;\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-batch-activity.component.ts","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

0\\\">Standalone simulation

\\r\\n \\r\\n \\r\\n {{ getTestInstrumentCount(instrument) }}\\r\\n {{ 'Workflow_Extansion_QoTe' | translate }}\\r\\n
\\r\\n \\r\\n

0\\\">Workcell simulation

\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n {{ getTestInstrumentCount(workcell) }}\\r\\n {{ 'Workflow_Extansion_QoTe' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{ getTestInstrumentCount(instrumentWorkcell) }}\\r\\n {{ 'Workflow_Extansion_QoTe' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{ 'Simulation_Instrument_Loading_With_Centrifuge' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{ 'Simulation_Instrument_Dispatcher_Standalone' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{ 'Simulation_Instrument_Mirror' | translate}}\\r\\n \\r\\n \\r\\n {{ 'Simulation_Instrument_Custom' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'Simulation_Instrument_add_configure' | translate}}\\r\\n {{ 'Simulation_Instrument_lab_instru' | translate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-instrument.component.html\n// module id = ../../../../../src/app/components/simulations/simulation-edit-instrument.component.html\n// module chunks = main","import { List } from 'linqts';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { SimulationInstrument } from '../../../models/SimulationInstrument';\r\nimport { Instrument } from '../../../models/Instrument';\r\nimport { Test } from '../../../models/Test';\r\nimport { Category } from '../../../models/Category';\r\nimport { ExtentedFormControl } from '../../../common/forms/ExtentedFormControl';\r\nimport { vm_Global, vm_Instrument, vm_Category, vm_Test, vm_Workcell, vm_WorkcellInstrument } from '../../../models/SimulationViewModel';\r\nimport { InstrumentService } from '../../../services/InstrumentService';\r\nimport { InstrumentManagementService } from '../../../services/InstrumentManagementService';\r\nimport { TestService } from '../../../services/TestService';\r\nimport { SimulationWorkcell } from '../../../models/SimulationWorkcell';\r\nimport { count } from 'console';\r\nimport { AppSettingsService } from '../../../services/AppSettingsService';\r\n\r\n@Component({\r\n selector: 'simulation-edit-instrument',\r\n templateUrl: './simulation-edit-instrument.component.html'\r\n})\r\nexport class SimulationEditInstrumentComponent {\r\n\r\n internalId = 0;\r\n instrumentsSimulation: SimulationInstrument[] = new Array();\r\n workcellSimulation: SimulationWorkcell[] = new Array();\r\n instruments: Instrument[] = new Array();\r\n tests: Test[] = new Array();\r\n categories: Category[];\r\n testOfCategory: { [id: string]: Test[]; } = {};\r\n sort: ExtentedFormControl;\r\n @Input() value: vm_Global;\r\n\r\n numericValues: any[];\r\n currentInstrumentSIT: vm_Instrument;\r\n\r\n @Output() modelChange = new EventEmitter();\r\n setChartDirty() {\r\n this.modelChange.emit();\r\n }\r\n\r\n\r\n constructor(private instrumentService: InstrumentService,\r\n private instrumentManagementService: InstrumentManagementService,\r\n private settingsService: AppSettingsService,\r\n private testService: TestService) {\r\n // get first instrument\r\n this.numericValues = [];\r\n for (let index = 0; index < 11; index++) {\r\n const element = 11;\r\n \r\n this.numericValues.push({name:index, value:index});\r\n }\r\n\r\n\r\n this.instrumentService.get().subscribe(res => this.instruments = res.items.sort((e, b) => (e as Instrument).size - (b as Instrument).size).reverse() as Instrument[]);\r\n this.settingsService.get().subscribe(res=> this.settings = res.items);\r\n this.testService.get().subscribe(res => {\r\n\r\n this.tests = res.items as Test[];\r\n this.tests = this.tests.sort((a, b) => a.order - b.order);\r\n this.testOfCategory = {};\r\n // get all category\r\n const categories = new List();\r\n\r\n for (const test of this.tests) {\r\n if (!categories.Any(w => w.id === test.categoryId)) {\r\n categories.Add(test.category);\r\n }\r\n\r\n const categ = categories.FirstOrDefault(e => e.id === test.categoryId);\r\n if (this.testOfCategory[categ.id] == null) {\r\n this.testOfCategory[categ.id] = new Array();\r\n }\r\n this.testOfCategory[categ.id].push(test);\r\n }\r\n this.categories = categories.OrderBy(d => d.order).ToArray();\r\n });\r\n\r\n this.sort = new ExtentedFormControl('', null, null, null, 0);\r\n\r\n }\r\n getDefaultInstrumentWorkcell() : Instrument {\r\n return this.instruments.find(e=> e.size == 3 ); // return the first size 3 instrument\r\n }\r\n\r\n getLastInstrument(): Instrument {\r\n if (this.value != null && this.value.instruments != null && this.value.instruments.length > 0) {\r\n const instrumentId = this.value.instruments[this.value.instruments.length - 1].instrumentId;\r\n for (const instrument of this.instruments) {\r\n if (instrument.id === instrumentId) {\r\n return instrument;\r\n }\r\n }\r\n }\r\n return this.instruments[0];\r\n }\r\n\r\n getLastNameWorkcell(): string {\r\n var count = this.value.workcells.length +1;\r\n return 'Workcell '+ count;\r\n }\r\n getLastNameForWorkcell(workcell: vm_Workcell): string {\r\n var count = workcell.instruments.length + 1\r\n return 'STA R MAX ' + count;\r\n \r\n }\r\n\r\n\r\n getLastName(instrumentInput: Instrument): string {\r\n // get\r\n let count = 1;\r\n if (this.value.instruments != null) {\r\n for (const instrument of this.value.instruments) {\r\n if (instrument.instrumentId === instrumentInput.id) {\r\n count++;\r\n }\r\n }\r\n }\r\n if (this.value.workcells != null) {\r\n for (const workcell of this.value.workcells) {\r\n if (workcell.instruments != null) {\r\n for (const instrument of workcell.instruments) {\r\n if (instrument.instrumentId == instrumentInput.id) {\r\n count++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return instrumentInput.name + ' ' + count;\r\n }\r\n\r\n getActiveCategory() {\r\n\r\n return this.currentInstrumentSIT.categories.filter(e => this.isCategoryActive(e.id));\r\n }\r\n\r\n isCategoryActive(categId): boolean {\r\n if (this.value.categories != null) {\r\n\r\n if (this.currentInstrumentSIT instanceof vm_Workcell || this.currentInstrumentSIT instanceof vm_WorkcellInstrument)\r\n {\r\n if (this.value.categories.filter(c => c.id === categId && c.tests.filter(t => t.active && t.quantity > 0 && t.workcell).length > 0).length > 0) {\r\n return true;\r\n }\r\n }\r\n else {\r\n if (this.value.categories.filter(c => c.id === categId && c.tests.filter(t => t.active && t.quantity > 0 && !t.workcell).length > 0).length > 0) {\r\n return true;\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n return false;\r\n\r\n }\r\n\r\n isTestActive(testId): boolean {\r\n if (this.value.categories != null) {\r\n if (this.currentInstrumentSIT instanceof vm_Workcell || this.currentInstrumentSIT instanceof vm_WorkcellInstrument)\r\n {\r\n if (this.value.categories.filter(c => c.tests.filter(t => t.active && t.quantity > 0 && t.id === testId && t.workcell).length > 0).length > 0) {\r\n return true;\r\n }\r\n }\r\n else {\r\n if (this.value.categories.filter(c => c.tests.filter(t => t.active && t.quantity > 0 && t.id === testId && !t.workcell).length > 0).length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n addWorkcell() {\r\n // TODO : ADD WORKCELL HERE\r\n const simulationInstrumentWorkcell = new vm_Workcell();\r\n //simulationInstrumentWorkcell.instrument = this.getLastInstrument();\r\n //simulationInstrumentWorkcell.instrumentId = simulationInstrumentWorkcell.instrument.id;\r\n simulationInstrumentWorkcell.name = this.getLastNameWorkcell();\r\n\r\n\r\n simulationInstrumentWorkcell.categories = new Array();\r\n\r\n\r\n for (const category of this.categories) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.id = category.id;\r\n sit_categ.tests = new Array();\r\n\r\n for (const test of this.testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = true;\r\n sit_test.id = test.id;\r\n sit_categ.tests.push(sit_test);\r\n }\r\n simulationInstrumentWorkcell.categories.push(sit_categ);\r\n }\r\n simulationInstrumentWorkcell.workcell = new SimulationWorkcell();\r\n simulationInstrumentWorkcell.workcell.centrifugTime = 600;\r\n this.currentInstrumentSIT = simulationInstrumentWorkcell;\r\n this.value.workcells.push(simulationInstrumentWorkcell);\r\n this.setChartDirty();\r\n }\r\n\r\n\r\n addInstrument() {\r\n const simulationInstrument = new vm_Instrument();\r\n simulationInstrument.instrument = this.getLastInstrument();\r\n simulationInstrument.instrumentId = simulationInstrument.instrument.id;\r\n simulationInstrument.name = this.getLastName(simulationInstrument.instrument);\r\n simulationInstrument.categories = new Array();\r\n\r\n for (const category of this.categories) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.id = category.id;\r\n sit_categ.tests = new Array();\r\n\r\n for (const test of this.testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = true;\r\n sit_test.id = test.id;\r\n sit_categ.tests.push(sit_test);\r\n }\r\n simulationInstrument.categories.push(sit_categ);\r\n }\r\n this.currentInstrumentSIT = simulationInstrument;\r\n this.value.instruments.push(simulationInstrument);\r\n this.setChartDirty();\r\n }\r\n\r\n selectInstrument(instrument: vm_Instrument) {\r\n this.currentInstrumentSIT = instrument;\r\n // console.log(instrument);\r\n // console.log(instrument instanceof vm_Workcell);\r\n }\r\n\r\n duplicateInstrument() {\r\n for (const instrument of this.value.instruments) {\r\n if (instrument.checked) {\r\n this.duplicateOneInstrument(instrument);\r\n }\r\n }\r\n\r\n for (const workcell of this.value.workcells) {\r\n if (workcell.checked) {\r\n this.duplicateOneWorkcell(workcell);\r\n }\r\n }\r\n }\r\n\r\n isVm_Workcell(obj) {\r\n return obj instanceof vm_Workcell ;\r\n }\r\n\r\n isVm_Instrument(obj) {\r\n return !(obj instanceof vm_Workcell);\r\n }\r\n\r\n isVm_InstrumentWorkcell(obj)\r\n {\r\n //console.log(obj);\r\n \r\n return obj instanceof vm_WorkcellInstrument;\r\n }\r\n\r\n addInstrumentInWorkcell(workCell: vm_Workcell) {\r\n const simulationInstrument = new vm_WorkcellInstrument();\r\n \r\n simulationInstrument.instrument = this.getDefaultInstrumentWorkcell();\r\n simulationInstrument.instrumentId = simulationInstrument.instrument.id;\r\n simulationInstrument.name = this.getLastNameForWorkcell(workCell);\r\n simulationInstrument.categories = new Array();\r\n\r\n for (const category of this.categories) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.id = category.id;\r\n sit_categ.tests = new Array();\r\n\r\n for (const test of this.testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = true;\r\n sit_test.id = test.id;\r\n sit_categ.tests.push(sit_test);\r\n }\r\n simulationInstrument.categories.push(sit_categ);\r\n }\r\n this.currentInstrumentSIT = simulationInstrument;\r\n workCell.workcell.nbInstruments = workCell.workcell.nbInstruments+1; \r\n workCell.instruments.push(simulationInstrument);\r\n this.setChartDirty();\r\n\r\n }\r\n\r\n\r\n deleteInstrument() {\r\n if (this.value.instruments.some(s => s.checked)) {\r\n this.value.instruments = this.value.instruments.filter(e => !e.checked);\r\n this.currentInstrumentSIT = null;\r\n this.setChartDirty();\r\n }\r\n if (this.value.workcells.some(s=> s.checked)) {\r\n this.value.workcells = this.value.workcells.filter(e=> !e.checked);\r\n this.currentInstrumentSIT = null;\r\n this.setChartDirty();\r\n }\r\n\r\n }\r\n\r\n getNumberOfInstruments(): number {\r\n return this.instrumentManagementService.getInstrumentCount(this.value);\r\n }\r\n\r\n dupplicateOneWorkcellInstrument(instrumentToDuplicate: vm_WorkcellInstrument, workcellFrom: vm_Workcell ) {\r\n const simulationInstrument = new vm_WorkcellInstrument();\r\n simulationInstrument.instrument = instrumentToDuplicate.instrument;\r\n simulationInstrument.instrumentId = instrumentToDuplicate.instrument.id;\r\n simulationInstrument.name = this.getLastNameForWorkcell(workcellFrom);\r\n simulationInstrument.categories = new Array();\r\n simulationInstrument.mirror = instrumentToDuplicate.mirror;\r\n\r\n for (const category of this.categories) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.id = category.id;\r\n sit_categ.tests = new Array();\r\n\r\n for (const test of this.testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = instrumentToDuplicate.categories.filter(x => x.name === sit_categ.name)[0].tests.filter(x => x.id === test.id)[0].checked;\r\n sit_test.id = test.id;\r\n sit_categ.tests.push(sit_test);\r\n }\r\n simulationInstrument.categories.push(sit_categ);\r\n }\r\n this.currentInstrumentSIT = simulationInstrument;\r\n workcellFrom.instruments.push(simulationInstrument);\r\n this.setChartDirty();\r\n}\r\n\r\n\r\n duplicateOneWorkcell(workcellToDuplicate: vm_Workcell) {\r\n const simulationWorkcell = new vm_Workcell();\r\n simulationWorkcell.workcell = new SimulationWorkcell();\r\n simulationWorkcell.workcell.centrifugTime = workcellToDuplicate.workcell.centrifugTime;\r\n simulationWorkcell.workcell.loadingCentrifuge = workcellToDuplicate.workcell.loadingCentrifuge;\r\n simulationWorkcell.workcell.mode= workcellToDuplicate.workcell.mode;\r\n simulationWorkcell.workcell.nbInstruments = workcellToDuplicate.workcell.nbInstruments;\r\n simulationWorkcell.workcell.outputModule = workcellToDuplicate.workcell.outputModule;\r\n simulationWorkcell.workcell.layout = workcellToDuplicate.workcell.layout;\r\n simulationWorkcell.workcell.preanalytics = workcellToDuplicate.workcell.preanalytics;\r\n simulationWorkcell.name = this.getLastNameWorkcell();\r\n\r\n workcellToDuplicate.instruments.map(e=> this.dupplicateOneWorkcellInstrument(e, simulationWorkcell)); \r\n\r\n simulationWorkcell.categories = new Array();\r\n\r\n for (const category of this.categories) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.id = category.id;\r\n sit_categ.tests = new Array();\r\n\r\n for (const test of this.testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = workcellToDuplicate.categories.filter(x => x.name === sit_categ.name)[0].tests.filter(x => x.id === test.id)[0].checked;\r\n sit_test.id = test.id;\r\n sit_categ.tests.push(sit_test);\r\n }\r\n simulationWorkcell.categories.push(sit_categ);\r\n }\r\n this.currentInstrumentSIT = simulationWorkcell;\r\n this.value.workcells.push(simulationWorkcell);\r\n this.setChartDirty();\r\n\r\n }\r\n\r\n\r\n duplicateOneInstrument(instrumentToDuplicate: vm_Instrument) {\r\n const simulationInstrument = new vm_Instrument();\r\n simulationInstrument.instrument = instrumentToDuplicate.instrument;\r\n simulationInstrument.instrumentId = instrumentToDuplicate.instrument.id;\r\n simulationInstrument.name = this.getLastName(instrumentToDuplicate.instrument);\r\n simulationInstrument.categories = new Array();\r\n\r\n for (const category of this.categories) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.id = category.id;\r\n sit_categ.tests = new Array();\r\n\r\n for (const test of this.testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = instrumentToDuplicate.categories.filter(x => x.name === sit_categ.name)[0].tests.filter(x => x.id === test.id)[0].checked;\r\n sit_test.id = test.id;\r\n sit_categ.tests.push(sit_test);\r\n }\r\n simulationInstrument.categories.push(sit_categ);\r\n }\r\n this.currentInstrumentSIT = simulationInstrument;\r\n this.value.instruments.push(simulationInstrument);\r\n\r\n this.setChartDirty();\r\n\r\n }\r\n\r\n deleteOneInstrument(instrument: vm_Instrument) {\r\n const instrSim = new List(this.value.instruments);\r\n instrSim.Remove(instrument);\r\n this.value.instruments = instrSim.ToArray();\r\n this.setChartDirty();\r\n }\r\n\r\n getWorkcellnbInstruments(workcell: vm_Workcell) {\r\n return this.numericValues.find(e=> e.name == workcell.workcell.nbInstruments);\r\n }\r\n\r\n\r\n // si le nb est > on ajoute la différence\r\n // si le nb est < on supprime la différence\r\n changeNbInstrument(workcell: vm_Workcell, nb) {\r\n //console.log(workcell);\r\n if (+nb.value > workcell.workcell.nbInstruments )\r\n {\r\n for (let index = workcell.workcell.nbInstruments; index < nb.value; index++){\r\n this.addInstrumentInWorkcell(workcell);\r\n }\r\n }\r\n else if (+nb.value < workcell.workcell.nbInstruments) {\r\n for (let index = workcell.workcell.nbInstruments; index > nb.value; index--){\r\n workcell.instruments.pop();\r\n workcell.workcell.nbInstruments = workcell.workcell.nbInstruments-1;\r\n }\r\n }\r\n \r\n }\r\n getTestInstrumentCount(instrument: vm_Instrument): number {\r\n let count = 0;\r\n for (const category of instrument.categories) {\r\n count += this.getTestCategoryCount(category,instrument);\r\n }\r\n return count;\r\n }\r\n\r\n getTestCategoryCount(category: vm_Category,instrument: vm_Instrument): number {\r\n let count = 0;\r\n for (const test of category.tests) {\r\n if (this.isTestActiveForInstrument(test.id,instrument)) {\r\n if (test.checked) {\r\n count++;\r\n }\r\n }\r\n }\r\n return count;\r\n\r\n }\r\n\r\n\r\n\r\n \r\n isTestActiveForInstrument(testId, instrument: vm_Instrument): boolean {\r\n if (this.value.categories != null) {\r\n if (instrument instanceof vm_Workcell || instrument instanceof vm_WorkcellInstrument)\r\n {\r\n if (this.value.categories.filter(c => c.tests.filter(t => t.active && t.quantity > 0 && t.id === testId && t.workcell).length > 0).length > 0) {\r\n return true;\r\n }\r\n }\r\n else {\r\n if (this.value.categories.filter(c => c.tests.filter(t => t.active && t.quantity > 0 && t.id === testId && !t.workcell).length > 0).length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n\r\n totalTestOfCategory(category: vm_Category): number {\r\n if (category.tests != null) {\r\n return category.tests.filter(d => this.isTestActive(d.id)).length;\r\n // return category.tests.length;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n isSelectedCategory(category: vm_Category): boolean {\r\n let count = 0;\r\n for (const test of category.tests) {\r\n if (test.checked) {\r\n count++;\r\n }\r\n }\r\n return (count === this.totalTestOfCategory(category));\r\n }\r\n\r\n\r\n selectCategory(category: vm_Category, event: any) {\r\n for (const test of category.tests) {\r\n test.checked = event.target.checked;\r\n }\r\n this.setChartDirty();\r\n }\r\n private settings ; \r\n\r\n private imageList = [] ;\r\n\r\n refreshImageList() {\r\n if (this.settings != null)\r\n {\r\n if ((this.currentInstrumentSIT as vm_Workcell).workcell == null) return;\r\n var allImage = this.settings.find(e=>e.name == 'OutputModule').settings.split(',') ;\r\n // filter on nbinstrument :\r\n // console.log(allImage);\r\n var suite = \"\" ;\r\n if ((this.currentInstrumentSIT as vm_Workcell).workcell.loadingCentrifuge) {\r\n suite += \"L\";\r\n }\r\n else {\r\n suite += \"D\";\r\n }\r\n\r\n if ((this.currentInstrumentSIT as vm_Workcell).workcell.outputModule) {\r\n suite +='O';\r\n }\r\n this.imageList = allImage.filter(e => e.startsWith(\"\"+this.getWorkcellnbInstruments(this.currentInstrumentSIT as vm_Workcell).value+\"/\"+suite+\"-\"))\r\n } \r\n }\r\n\r\n selectLayout(item) {\r\n (this.currentInstrumentSIT as vm_Workcell).workcell.layout = item;\r\n }\r\n\r\n changeInstrument(instrument: Instrument) {\r\n // change name if not the same instrument\r\n if (this.currentInstrumentSIT.instrumentId !== instrument.id) {\r\n this.currentInstrumentSIT.name = this.getLastName(instrument);\r\n }\r\n this.currentInstrumentSIT.instrumentId = instrument.id;\r\n this.currentInstrumentSIT.instrument = instrument;\r\n\r\n this.setChartDirty();\r\n }\r\n\r\n check(test) {\r\n test.checked = !test.checked;\r\n this.setChartDirty();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit-instrument.component.ts","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{ 'Simulation_Edit' | translate }}

\\r\\n
    \\r\\n
  • \\r\\n 1\\r\\n
    Laboratory
    \\r\\n
  • \\r\\n
  • \\r\\n 2\\r\\n
    Activity
    \\r\\n
  • \\r\\n
  • \\r\\n 3\\r\\n
    Instruments
    \\r\\n
  • \\r\\n
  • \\r\\n 4\\r\\n
    Workflow
    \\r\\n
  • \\r\\n
  • \\r\\n 5\\r\\n
    Workflow Workcell
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'Simulation_HelpSelectLaboratory' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'Simulation_HelpSelectLaboratory' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'Simulation_HelpSpecifyAnnualActivity' | translate }}\\r\\n ({{ getSelectedPeriod() }})\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'Simulation_HelpSpecifyBatchActivity' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

= 0\\\"\\r\\n class=\\\"headerSI nav-headerSI\\\">\\r\\n {{ 'Simulation_Instruments' | translate }}\\r\\n

\\r\\n

0\\\"\\r\\n class=\\\"headerSI blue-headerSI nav-headerSI\\\">\\r\\n ({{ simulationEditInstrument.getNumberOfInstruments() }})\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'Simulation_Instrument_Add_Workcell' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ 'Simulation_Workflow_TitleOf' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n / {{ getTotalTests(false) }}\\r\\n ({{ 'Simulation_Workflow_Reste' | translate }}:\\r\\n {{ getTotalTests(false) - getIndicativeTotalTests(false) }})\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{ laboratory.name }}
\\r\\n {{ laboratory.clientNumber }}{{ laboratory.city }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ getSimulationCountForLaboratory(laboratory) }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'Simulation_SelectedLaboratory' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n
{{ currentLaboratory.name }}
\\r\\n {{ currentLaboratory.clientNumber }}\\r\\n {{ currentLaboratory.city }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'Simulation_NoLaboratorySelected' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'Simulation_HowManyDays' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'Simulation_QuantityPeriod' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
 
\\r\\n {{ 'Workflow_0h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_1h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_2h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_3h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_4h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_5h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_6h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_7h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_8h00' | translate }}\\r\\n
 
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
 
\\r\\n {{ 'Workflow_8h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_9h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_10h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_11h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_12h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_13h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_14h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_15h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_16h00' | translate }}\\r\\n
 
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
 
\\r\\n {{ 'Workflow_16h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_17h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_18h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_19h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_20h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_21h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_22h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_23h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_24h00' | translate }}\\r\\n
 
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
 
\\r\\n {{ 'Workflow_0h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_1h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_2h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_3h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_4h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_5h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_6h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_7h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_8h00' | translate }}\\r\\n
 
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
 
\\r\\n {{ 'Workflow_8h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_9h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_10h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_11h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_12h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_13h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_14h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_15h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_16h00' | translate }}\\r\\n
 
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
 
\\r\\n {{ 'Workflow_16h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_17h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_18h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_19h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_20h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_21h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_22h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_23h00' | translate }}\\r\\n
\\r\\n {{ 'Workflow_24h00' | translate }}\\r\\n
 
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'Simulation_IsProcessing' | translate }}\\r\\n \\r\\n \\r\\n {{ 'Simulation_IsComplete' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'Simulation_YourNameWhileProcessing' | translate }}\\r\\n \\r\\n \\r\\n {{ 'Simulation_YouNameItsComplete' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n 0 && currentPosition < 7\\\" [ngClass]=\\\"{'isDirty': isDirty}\\\" #ChargeChart\\r\\n [type]=\\\"'bar'\\\" [data]=\\\"dataChargeChart\\\" [options]=\\\"optionsChargeChart\\\">\\r\\n {{ \\\"Can't display preview: settings are missing\\\" | translate }}\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit.component.html\n// module id = ../../../../../src/app/components/simulations/simulation-edit.component.html\n// module chunks = main","import { GraphService } from './../../../services/GraphService';\r\nimport { ImportedSimulation } from './../../../models/Simulation';\r\nimport { isNullOrUndefined } from 'util';\r\nimport { Component, ViewChild, Output, EventEmitter, ElementRef, ChangeDetectorRef, OnInit, Input } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { DropDownLabel } from '../../../common';\r\n\r\nimport { FormMapper } from './../../../common/forms/FormMapper';\r\nimport { ExtentedFormControl } from './../../../common/forms/ExtentedFormControl';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { List } from 'linqts';\r\nimport * as moment from 'moment';\r\nimport { PagedDataSource } from '../../../models/PagedDataSource';\r\nimport { Simulation } from '../../../models/Simulation';\r\nimport { Laboratory } from '../../../models/Laboratory';\r\nimport { SimulationActivity } from '../../../models/SimulationActivity';\r\nimport { ActivityFlux } from '../../../models/ActivityFlux';\r\nimport { SimulationInstrument } from '../../../models/SimulationInstrument';\r\nimport { Instrument } from '../../../models/Instrument';\r\nimport { Test } from '../../../models/Test';\r\nimport { Category } from '../../../models/Category';\r\nimport { vm_Global, vm_Test } from '../../../models/SimulationViewModel';\r\nimport { SimulationService } from '../../../services/SimulationService';\r\nimport { SimulationActivityService } from '../../../services/SimulationActivityService';\r\nimport { InstrumentService } from '../../../services/InstrumentService';\r\nimport { LaboratoryService } from '../../../services/LaboratoryService';\r\nimport { TestService } from '../../../services/TestService';\r\nimport { SimulationActivityManagementService } from '../../../services/SimulationActivityManagementService';\r\nimport { InstrumentManagementService } from '../../../services/InstrumentManagementService';\r\nimport { ImportedSimulationService } from '../../../services/ImportedSimulationService';\r\nimport { CalculSimulationService } from '../../../services/CalculSimulationService';\r\nimport { SimulationInstrumentWorkcell } from '../../../models/SimulationInstrumentWorkcell';\r\nimport { SimulationWorkcell } from '../../../models/SimulationWorkcell';\r\nimport { WorkListItem } from '../../../models/WorkListItem';\r\nimport { CalculSimulationWorkcellService } from '../../../services/CalculSimulationWorkcellService';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'simulation-edit',\r\n templateUrl: './simulation-edit.component.html'\r\n})\r\nexport class SimulationEditComponent implements OnInit {\r\n public workDays = new PagedDataSource();\r\n public sortProperties = new PagedDataSource();\r\n public periods = new PagedDataSource();\r\n\r\n @Output() onUpdate = new EventEmitter();\r\n\r\n public workflowDefinitionsBy = new PagedDataSource();\r\n workflowDefinedBy: ExtentedFormControl;\r\n\r\n public workflowDefinitionsAnd = new PagedDataSource();\r\n workflowDefinedAnd: ExtentedFormControl;\r\n\r\n searchTerm: string;\r\n mode: string;\r\n id: string;\r\n currentPosition = 1;\r\n currentLaboratory: Laboratory;\r\n loading = true;\r\n loadingActivities = true;\r\n @Input() value: Simulation;\r\n message: string;\r\n activities: PagedDataSource;\r\n activityFlux: PagedDataSource;\r\n activityFluxWorkcell: PagedDataSource;\r\n instruments: PagedDataSource;\r\n instrumentsWorkcell: PagedDataSource;\r\n laboratories: PagedDataSource;\r\n baseInstrument: Instrument[];\r\n sort: ExtentedFormControl;\r\n @ViewChild('simulationEditInstrument') simulationEditInstrument: any;\r\n @ViewChild('simulationEditAnnualActivity') simulationEditAnnualActivity: any;\r\n @ViewChild('simulationEditBatchActivity') simulationEditBatchActivity: any;\r\n\r\n dataChargeChart: any = {};\r\n\r\n optionsChargeChart = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n title: {\r\n display: false\r\n },\r\n tooltips: {\r\n enabled: false\r\n },\r\n legend: {\r\n display: false,\r\n position: 'bottom'\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: false,\r\n }],\r\n yAxes: [\r\n {\r\n type: 'linear',\r\n display: false,\r\n position: 'left',\r\n id: 'y-axis-1',\r\n gridLines: {\r\n display: false\r\n }, ticks: {\r\n beginAtZero: true // minimum value will be 0.\r\n },\r\n labels: {\r\n show: true,\r\n\r\n }\r\n }, {\r\n type: 'linear',\r\n display: false,\r\n position: 'right',\r\n id: 'y-axis-2',\r\n gridLines: {\r\n display: false\r\n },\r\n\r\n ticks: {\r\n beginAtZero: true, // minimum value will be 0.\r\n min: 0,\r\n max: 100,\r\n stepSize: 10\r\n },\r\n labels: {\r\n show: true,\r\n\r\n }\r\n }]\r\n }\r\n\r\n };\r\n\r\n workflowMap: { [hour: number]: ExtentedFormControl } = {};\r\n \r\n workflowWorkcellMap: { [hour: number]: ExtentedFormControl } = {};\r\n simulationIsProcessing = true;\r\n\r\n tests: Test[] = new Array();\r\n categories: Category[];\r\n testOfCategory: { [id: string]: Test[] } = {};\r\n vm_global: vm_Global = new vm_Global();\r\n vm_MultipleTest: vm_Test = new vm_Test();\r\n\r\n simulationForm: FormGroup;\r\n name: ExtentedFormControl;\r\n nbDaysPerWeek: ExtentedFormControl;\r\n periodForQuantity: ExtentedFormControl;\r\n workflowUrgent: ExtentedFormControl;\r\n workflowTotal: ExtentedFormControl;\r\n\r\n // stock the total of test count to avoid multi calcul\r\n globalTestCount: number;\r\n controls: ExtentedFormControl[] = [];\r\n controlsWC: ExtentedFormControl[] = [];\r\n\r\n private _idChangedSubscription: any;\r\n\r\n modalSimul = null;\r\n importedSimulation: ImportedSimulation;\r\n\r\n constructor(\r\n private _rootNode: ElementRef,\r\n private service: SimulationService,\r\n private translateService: TranslateService,\r\n private importedSimulationService: ImportedSimulationService,\r\n private serviceActivity: SimulationActivityService,\r\n private graphService: GraphService,\r\n private serviceCalculSimulation: CalculSimulationService,\r\n private serviceCalculSimulationWorkcell : CalculSimulationWorkcellService,\r\n private instrumentService: InstrumentService,\r\n private laboratoryService: LaboratoryService,\r\n private testService: TestService,\r\n private _changeDetectionRef: ChangeDetectorRef,\r\n private simulationActivityManagementService: SimulationActivityManagementService,\r\n private instrumentManagementService: InstrumentManagementService,\r\n private route: ActivatedRoute,\r\n builder: FormBuilder\r\n ) {\r\n// console.log('ctor :', this.vm_global);\r\n // this.vm_global = new vm_Global();\r\n const dateNow = moment(new Date());\r\n\r\n const required: string = translateService.instant('Form_FieldRequired');\r\n\r\n this.name = new ExtentedFormControl(\r\n '',\r\n [Validators.required],\r\n null,\r\n [{ key: 'required', message: required }],\r\n 'Simulation' + dateNow.format('DDMMYYYY-HHmm')\r\n );\r\n\r\n this.nbDaysPerWeek = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }], 5);\r\n this.periodForQuantity = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }], 'year');\r\n\r\n const validator = [Validators.pattern('[0-9]{0,10}')];\r\n for (let i = 0; i < 24; i++) {\r\n this.controls.push(new ExtentedFormControl('', validator, null));\r\n this.workflowMap[i] = this.controls[i];\r\n this.controlsWC.push(new ExtentedFormControl('', validator, null));\r\n this.workflowWorkcellMap[i] = this.controlsWC[i];\r\n\r\n\r\n }\r\n this.sort = new ExtentedFormControl('', null, null, null, 0);\r\n this.sortProperties.items = new Array();\r\n this.sortProperties.items.push(new DropDownLabel('name', translateService.instant('Sort_ByName'), true));\r\n this.sortProperties.items.push(new DropDownLabel('clientNumber', translateService.instant('Sort_ByClientNumber')));\r\n this.sortProperties.items.push(new DropDownLabel('city', translateService.instant('Sort_ByCity')));\r\n\r\n for (const property of this.sortProperties.items) {\r\n if (property.isDefault === true) {\r\n this.sort.setValue(property.displayValue);\r\n this.sort.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n\r\n this.workflowDefinedBy = new ExtentedFormControl('', null, null, null, 0);\r\n this.workflowDefinitionsBy.items = new Array();\r\n this.workflowDefinitionsBy.items.push(new DropDownLabel('quantity', translateService.instant('Simulation_Workflow_Quantity'), true));\r\n this.workflowDefinitionsBy.items.push(new DropDownLabel('percent', translateService.instant('Simulation_Workflow_Percent')));\r\n\r\n for (const property of this.workflowDefinitionsBy.items) {\r\n if (property.isDefault === true) {\r\n this.workflowDefinedBy.setValue(property.displayValue);\r\n this.workflowDefinedBy.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n\r\n this.workflowDefinedAnd = new ExtentedFormControl('', null, null, null, 0);\r\n this.workflowDefinitionsAnd.items = new Array();\r\n this.workflowDefinitionsAnd.items.push(new DropDownLabel('test', translateService.instant('Simulation_Workflow_Test'), true));\r\n this.workflowDefinitionsAnd.items.push(new DropDownLabel('tube', translateService.instant('Simulation_Workflow_Tube')));\r\n\r\n for (const property of this.workflowDefinitionsAnd.items) {\r\n if (property.isDefault === true) {\r\n this.workflowDefinedAnd.setValue(property.displayValue);\r\n this.workflowDefinedAnd.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n\r\n this.vm_MultipleTest.dossierOuSerie = true;\r\n this.vm_MultipleTest.workcell = false;\r\n this.vm_MultipleTest.active = true;\r\n\r\n this.workflowTotal = new ExtentedFormControl('', [Validators.required], null, [{ key: 'required', message: required }], 0);\r\n this.workflowUrgent = new ExtentedFormControl(\r\n '',\r\n [Validators.pattern('[0-9]{0,2}')],\r\n null,\r\n [{ key: 'required', message: required }],\r\n 0\r\n );\r\n\r\n this.simulationForm = builder.group({\r\n name: this.name,\r\n nbDaysPerWeek: this.nbDaysPerWeek,\r\n periodForQuantity: this.periodForQuantity,\r\n workflowUrgent: this.workflowUrgent,\r\n workflowTotal: this.workflowTotal\r\n });\r\n\r\n this.testService.get().subscribe(res => {\r\n this.tests = res.items as Test[];\r\n // get all category\r\n const categories = new List();\r\n this.testOfCategory = {};\r\n for (const test of this.tests) {\r\n if (!categories.Any(w => w.id === test.categoryId)) {\r\n categories.Add(test.category);\r\n }\r\n\r\n const categ = categories.FirstOrDefault(e => e.id === test.categoryId);\r\n if (this.testOfCategory[categ.id] == null) {\r\n this.testOfCategory[categ.id] = new Array();\r\n }\r\n this.testOfCategory[categ.id].push(test);\r\n }\r\n this.categories = categories.ToArray();\r\n });\r\n\r\n this.instrumentService.get().subscribe(res => (this.baseInstrument = res.items as Instrument[]));\r\n\r\n this.workDays.items = new Array();\r\n\r\n for (let i = 1; i <= 7; i++) {\r\n i.toString();\r\n\r\n if (i === 5) {\r\n this.workDays.items.push(new DropDownLabel(i.toString(), i.toString(), true));\r\n } else {\r\n this.workDays.items.push(new DropDownLabel(i.toString(), i.toString(), false));\r\n }\r\n }\r\n\r\n for (const property of this.workDays.items) {\r\n if (property.isDefault === true) {\r\n this.nbDaysPerWeek.setValue(property.displayValue);\r\n this.nbDaysPerWeek.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n\r\n this.periods.items = new Array();\r\n\r\n this.periods.items.push(new DropDownLabel('day', this.translateService.instant('Simulation_PeriodDay'), false));\r\n this.periods.items.push(new DropDownLabel('week', this.translateService.instant('Simulation_PeriodWeek'), false));\r\n this.periods.items.push(new DropDownLabel('month', this.translateService.instant('Simulation_PeriodMonth'), false));\r\n this.periods.items.push(new DropDownLabel('year', this.translateService.instant('Simulation_PeriodYear'), true));\r\n\r\n for (const property of this.periods.items) {\r\n if (property.isDefault === true) {\r\n this.periodForQuantity.setValue(property.displayValue);\r\n this.periodForQuantity.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n public isDirty = true;\r\n setChartDirty(isDirty = true) {\r\n this.isDirty = isDirty;\r\n }\r\n\r\n SitAddInstrument() {\r\n this.simulationEditInstrument.addInstrument();\r\n this.setChartDirty();\r\n }\r\n\r\n SitAddWorkcell() {\r\n this.simulationEditInstrument.addWorkcell();\r\n this.setChartDirty();\r\n }\r\n\r\n anyStandaloneActivity() {\r\n if (this.simulationEditAnnualActivity !== undefined) {\r\n \r\n return this.simulationEditAnnualActivity.anyStandaloneActivity() ;\r\n }\r\n return false;\r\n }\r\n\r\n anyWorkcellActivity() {\r\n \r\n if (this.simulationEditAnnualActivity !== undefined) {\r\n return this.simulationEditAnnualActivity.anyWorkcellActivity();\r\n }\r\n return false;\r\n }\r\n\r\n SitDeleteInstrument() {\r\n this.simulationEditInstrument.deleteInstrument();\r\n this.setChartDirty();\r\n }\r\n SitDuplicateInstrument() {\r\n this.simulationEditInstrument.duplicateInstrument();\r\n this.setChartDirty();\r\n }\r\n\r\n seaaTestSelected() {\r\n if (this.simulationEditAnnualActivity !== undefined) {\r\n return this.simulationEditAnnualActivity.testSelected();\r\n }\r\n }\r\n\r\n getTotalTests(isWorkcell: boolean) {\r\n if (this.workflowDefinedBy.internalValue == 'percent') {\r\n return 100;\r\n }\r\n\r\n // TODO : GC : v�rifier la dur�e\r\n\r\n if (this.globalTestCount == null) {\r\n this.globalTestCount = this.simulationActivityManagementService.getTotalOfTestsWithNoBatch(\r\n this.vm_global,\r\n +this.nbDaysPerWeek.value,\r\n this.periodForQuantity.internalValue, isWorkcell\r\n );\r\n }\r\n return this.globalTestCount;\r\n }\r\n\r\n getIndicativeTotalTests(isWorkcell : boolean) {\r\n let indicativeTotal = 0;\r\n\r\n const workflowMap = isWorkcell ?this.workflowWorkcellMap : this.workflowMap ;\r\n for (let _i = 0; _i < 24; _i++) {\r\n const value = workflowMap[_i].value;\r\n if (isNullOrUndefined(value)) {\r\n indicativeTotal = indicativeTotal + 0;\r\n } else {\r\n indicativeTotal = indicativeTotal + +value;\r\n }\r\n }\r\n return indicativeTotal.toString();\r\n }\r\n\r\n seaaNumberOfCheckedTest() {\r\n return this.simulationEditAnnualActivity.numberOfCheckTested();\r\n }\r\n\r\n seaaUpdateMultipleValue(vm_MultipleTest: Test[]) {\r\n this.simulationEditAnnualActivity.updateMultipleValue(vm_MultipleTest);\r\n }\r\n\r\n red(isWorkcell): boolean {\r\n return +this.getIndicativeTotalTests(isWorkcell) > this.getTotalTests(isWorkcell) && this.workflowDefinedAnd.internalValue === 'test';\r\n }\r\n\r\n seaaGetFormValidity() {\r\n if (this.simulationEditAnnualActivity !== undefined) {\r\n return this.simulationEditAnnualActivity.getFormValidity();\r\n }\r\n }\r\n\r\n sebaTestSelected() {\r\n if (this.simulationEditBatchActivity !== undefined) {\r\n return this.simulationEditBatchActivity.testSelected();\r\n }\r\n }\r\n\r\n sebaNumberOfCheckedTest() {\r\n return this.simulationEditBatchActivity.numberOfCheckTested();\r\n }\r\n\r\n sebaUpdateMultipleValue(vm_MultipleTest: Test[]) {\r\n this.simulationEditBatchActivity.updateMultipleValue(vm_MultipleTest);\r\n }\r\n\r\n sebaGetFormValidity() {\r\n if (this.simulationEditBatchActivity !== undefined) {\r\n return this.simulationEditBatchActivity.getFormValidity();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.modalSimul = $('#simulationEditModal');\r\n }\r\n\r\n close() {\r\n this.modalSimul.hide();\r\n\r\n $(document.body).removeClass('modal-open');\r\n $('.modal-backdrop').remove();\r\n }\r\n\r\n open() {\r\n this.modalSimul.show();\r\n }\r\n\r\n getSelectedPeriod() {\r\n return this.periodForQuantity.internalValue;\r\n }\r\n\r\n haveBatchTest() {\r\n return this.simulationActivityManagementService.haveBatchTest(this.vm_global);\r\n }\r\n haveStandAloneTests() {\r\n return this.simulationActivityManagementService.haveStandAloneTests(this.vm_global);\r\n }\r\n haveWorkcellsTests() {\r\n return this.simulationActivityManagementService.haveWorkcellsTests(this.vm_global);\r\n }\r\n\r\n refreshCount() {\r\n this.globalTestCount = null;\r\n }\r\n\r\n next() {\r\n // refresh some count\r\n this.refreshCount();\r\n // check if step 6 (workflowworcell is visible. If not, do +2)\r\n if (this.currentPosition < 7) {\r\n if (this.currentPosition === 2 && !this.haveBatchTest()) {\r\n this.currentPosition = this.currentPosition + 2;\r\n } else if (this.currentPosition == 4 && !this.haveWorkcellsTests() && !this.haveStandAloneTests()) {\r\n this.currentPosition = this.currentPosition +3 ;\r\n } else if (this.currentPosition == 4 && !this.haveStandAloneTests()) {\r\n // console.log('ici');\r\n this.currentPosition = this.currentPosition +2 ;\r\n } else if (this.currentPosition == 5 && !this.haveWorkcellsTests()) {\r\n this.currentPosition = this.currentPosition +2 ;\r\n } \r\n else {\r\n this.currentPosition++;\r\n }\r\n }\r\n if (this.currentPosition === 7) {\r\n setTimeout(() => {\r\n this.simulationIsProcessing = false;\r\n }, 2000);\r\n }\r\n this._changeDetectionRef.detectChanges();\r\n }\r\n\r\n back() {\r\n // refresh some count\r\n this.refreshCount();\r\n\r\n\r\n // check if step 6 (workflowworcell is visible. If not, do -2)\r\n if (this.currentPosition > 0) {\r\n if (this.currentPosition === 4 && !this.haveBatchTest()) {\r\n this.currentPosition = this.currentPosition - 2;\r\n } \r\n else if (this.currentPosition == 6 && !this.haveStandAloneTests() ) {\r\n this.currentPosition = this.currentPosition -2 ;\r\n }\r\n else {\r\n this.currentPosition--;\r\n }\r\n\r\n }\r\n\r\n this._changeDetectionRef.detectChanges();\r\n }\r\n\r\n createSimulation() {\r\n const importedSimulation = this.importedSimulationService.storageGetItem('importedSimulation');\r\n if (importedSimulation) {\r\n this.importedSimulation = JSON.parse(importedSimulation);\r\n this.service.storageSetItem('importedSimulation', null);\r\n }\r\n this.mode = 'New';\r\n this.value = new Simulation();\r\n this.initializeForm();\r\n }\r\n\r\n initializeInstruments() {\r\n if (this.instruments == null) {\r\n this.instruments = new PagedDataSource();\r\n }\r\n\r\n if (this.instruments.items == null) {\r\n this.instruments.items = new Array();\r\n }\r\n }\r\n\r\n initializeActivities() {\r\n if (this.activities == null) {\r\n this.activities = new PagedDataSource();\r\n }\r\n\r\n if (this.activities.items == null) {\r\n this.activities.items = new Array();\r\n }\r\n\r\n this.activities.items = this.simulationActivityManagementService.simuActivityToVm_Global(this.activities.items, this.vm_global);\r\n }\r\n\r\n createSimulationWithLaboratory(laboratory: Laboratory) {\r\n this.value = new Simulation();\r\n this.currentLaboratory = laboratory;\r\n this.vm_global = new vm_Global();\r\n this.mode = 'New';\r\n this.initializeForm();\r\n }\r\n\r\n editSimulation(value: Simulation) {\r\n this.value = value;\r\n //console.log('simulation',value);\r\n this.activityFlux = new PagedDataSource();\r\n this.activityFlux.items = value.dayRepartition;\r\n\r\n this.activityFluxWorkcell = new PagedDataSource();\r\n this.activityFluxWorkcell.items = value.dayRepartitionWorkcell;\r\n\r\n this.instruments = new PagedDataSource();\r\n this.instruments.items = value.instruments;\r\n \r\n this.instrumentsWorkcell = new PagedDataSource();\r\n this.instrumentsWorkcell.items = value.instrumentsWorkcell;\r\n \r\n this.vm_global = this.instrumentManagementService.simulationInstrumentToVm_Global(\r\n value.instruments,\r\n this.categories,\r\n this.testOfCategory,\r\n this.baseInstrument,\r\n value.instrumentsWorkcell\r\n );\r\n\r\n this.activities = new PagedDataSource();\r\n this.activities.items = value.activities;\r\n\r\n this.simulationActivityManagementService.simuActivityToVm_Global(value.activities, this.vm_global);\r\n\r\n this.loadFlux();\r\n this.loadFluxWorkcell();\r\n\r\n FormMapper.mapTo(value, this.simulationForm);\r\n this.laboratoryService.find(value.laboratoryId).subscribe(res => (this.currentLaboratory = res as Laboratory));\r\n\r\n this.initializeForm();\r\n this.setWorkflowMode(value.workflowMode);\r\n\r\n for (const property of this.workDays.items) {\r\n if (property.value === value.nbDaysPerWeek.toString()) {\r\n this.nbDaysPerWeek.setValue(property.displayValue);\r\n this.nbDaysPerWeek.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n\r\n if (value.periodForQuantity === null) {\r\n value.periodForQuantity = 'year';\r\n }\r\n\r\n for (const property of this.periods.items) {\r\n if (property.value === value.periodForQuantity.toString()) {\r\n this.periodForQuantity.setValue(property.displayValue);\r\n this.periodForQuantity.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n\r\n this.mode = 'Edit';\r\n\r\n // Go to instruments page on Edit\r\n this.currentPosition = 4;\r\n\r\n }\r\n\r\n initializeForm() {\r\n this.setWorkflowMode('QoTe');\r\n this.currentPosition = 1;\r\n this.simulationIsProcessing = true;\r\n this.initializeLaboratories();\r\n this.initializeInstruments();\r\n this.initializeActivities();\r\n\r\n if (this.importedSimulation) {\r\n for (let i = 0; i < 24; i++) {\r\n // standalone\r\n const defaultValue = this.importedSimulation && this.importedSimulation.workflowHours ? this.importedSimulation.workflowHours[i] : 0;\r\n this.controls[i].setValue(defaultValue);\r\n // workcell\r\n const defaultValueWC = this.importedSimulation && this.importedSimulation.workflowWorkcellHours ? this.importedSimulation.workflowWorkcellHours[i] : 0;\r\n this.controlsWC[i].setValue(defaultValueWC);\r\n \r\n }\r\n\r\n this.activities.items = this.simulationActivityManagementService.simuActivityToVm_Global(this.importedSimulation.activities, this.vm_global);\r\n this.nbDaysPerWeek.setValue(this.importedSimulation.nbDaysPerWeek);\r\n this.periodForQuantity.setValue(this.importedSimulation.periodForQuantity);\r\n\r\n this.workflowDefinedBy.setValue(this.importedSimulation.workflowModeBy);\r\n this.workflowDefinedAnd.setValue(this.importedSimulation.workflowModeAnd);\r\n this.setWorkflowMode(this.getWorkflowMode());\r\n }\r\n }\r\n\r\n initializeLaboratories() {\r\n this.laboratoryService.get().subscribe(res => (this.laboratories = res as PagedDataSource));\r\n }\r\n onCreateLaboratory(event: Laboratory) {\r\n this.currentPosition = 1;\r\n // set current laboratory\r\n this.currentLaboratory = event;\r\n }\r\n\r\n saveFlux(simulationId: string) {\r\n this.activityFlux = null;\r\n this.activityFlux = new PagedDataSource();\r\n this.activityFlux.items = new Array();\r\n\r\n for (let _i = 0; _i < 24; _i++) {\r\n const currentactivityFlux = new ActivityFlux();\r\n currentactivityFlux.hour = _i;\r\n currentactivityFlux.mode = 'ToCreate';\r\n currentactivityFlux.simulationId = simulationId;\r\n currentactivityFlux.workcell = false;\r\n\r\n if (this.workflowMap[_i].value == null) {\r\n this.workflowMap[_i].setValue(0);\r\n }\r\n\r\n switch (this.value.workflowMode) {\r\n case 'QoTe':\r\n currentactivityFlux.nbTest = this.workflowMap[_i].value;\r\n break;\r\n case 'QoTu':\r\n currentactivityFlux.nbTube = this.workflowMap[_i].value;\r\n break;\r\n case 'ToTe':\r\n currentactivityFlux.txTest = this.workflowMap[_i].value;\r\n break;\r\n case 'ToTu':\r\n currentactivityFlux.txTube = this.workflowMap[_i].value;\r\n break;\r\n default:\r\n currentactivityFlux.nbTest = this.workflowMap[_i].value;\r\n break;\r\n }\r\n this.activityFlux.items.push(currentactivityFlux);\r\n }\r\n }\r\n\r\n\r\n saveFluxWorkcell(simulationId: string) {\r\n this.activityFluxWorkcell = null;\r\n this.activityFluxWorkcell = new PagedDataSource();\r\n this.activityFluxWorkcell.items = new Array();\r\n\r\n for (let _i = 0; _i < 24; _i++) {\r\n const currentactivityFlux = new ActivityFlux();\r\n currentactivityFlux.hour = _i;\r\n currentactivityFlux.mode = 'ToCreate';\r\n currentactivityFlux.simulationId = simulationId;\r\n currentactivityFlux.workcell = true;\r\n if (this.workflowWorkcellMap[_i].value == null) {\r\n this.workflowWorkcellMap[_i].setValue(0);\r\n }\r\n\r\n currentactivityFlux.nbTube = this.workflowWorkcellMap[_i].value;\r\n this.activityFluxWorkcell.items.push(currentactivityFlux);\r\n }\r\n }\r\n\r\n\r\n loadFlux() {\r\n if (this.activityFlux != null) {\r\n for (const activityFlux of this.activityFlux.items) {\r\n let number: number;\r\n switch (this.value.workflowMode) {\r\n case 'QoTe':\r\n number = activityFlux.nbTest;\r\n break;\r\n case 'QoTu':\r\n number = activityFlux.nbTube;\r\n break;\r\n case 'ToTe':\r\n number = activityFlux.txTest;\r\n break;\r\n case 'ToTu':\r\n number = activityFlux.txTube;\r\n break;\r\n default:\r\n number = activityFlux.nbTest;\r\n break;\r\n }\r\n this.workflowMap[activityFlux.hour].setValue(number);\r\n }\r\n }\r\n }\r\n \r\n\r\n loadFluxWorkcell() {\r\n if (this.activityFluxWorkcell != null) {\r\n for (const activityFlux of this.activityFluxWorkcell.items) {\r\n let number: number;\r\n number = activityFlux.nbTube;\r\n this.workflowWorkcellMap[activityFlux.hour].setValue(number);\r\n }\r\n }\r\n }\r\n\r\n cancel() {\r\n // this.modal.close();\r\n }\r\n\r\n saveAsNew() {\r\n this.value.id = null;\r\n this.save();\r\n }\r\n\r\n getExtansionWorkFlow(): string {\r\n return 'Workflow_Extansion_' + this.getWorkflowMode();\r\n }\r\n\r\n getWorkflowMode(): string {\r\n if (this.workflowDefinedBy.internalValue === 'quantity') {\r\n if (this.workflowDefinedAnd.internalValue === 'test') {\r\n return 'QoTe';\r\n } else if (this.workflowDefinedAnd.internalValue === 'tube') {\r\n return 'QoTu';\r\n }\r\n } else if (this.workflowDefinedBy.internalValue === 'percent') {\r\n // if (this.workflowDefinedAnd.internalValue === 'test') {\r\n return 'ToTe';\r\n // } else if (this.workflowDefinedAnd.internalValue === 'tube') {\r\n // return 'ToTu';\r\n // }\r\n }\r\n }\r\n\r\n setWorkflowMode(workflowMode: string) {\r\n switch (workflowMode) {\r\n case 'QoTe':\r\n this.workflowDefinedBy.internalValue = 'quantity';\r\n this.workflowDefinedBy.setValue('quantity');\r\n this.workflowDefinedAnd.internalValue = 'test';\r\n this.workflowDefinedAnd.setValue('test');\r\n break;\r\n case 'QoTu':\r\n this.workflowDefinedBy.internalValue = 'quantity';\r\n this.workflowDefinedBy.setValue('quantity');\r\n this.workflowDefinedAnd.internalValue = 'tube';\r\n this.workflowDefinedAnd.setValue('tube');\r\n break;\r\n case 'ToTe':\r\n this.workflowDefinedBy.internalValue = 'percent';\r\n this.workflowDefinedBy.setValue('percent');\r\n this.workflowDefinedAnd.internalValue = 'test';\r\n this.workflowDefinedAnd.setValue('test');\r\n break;\r\n case 'ToTu':\r\n this.workflowDefinedBy.internalValue = 'percent';\r\n this.workflowDefinedBy.setValue('percent');\r\n this.workflowDefinedAnd.internalValue = 'tube';\r\n this.workflowDefinedAnd.setValue('tube');\r\n break;\r\n }\r\n }\r\n\r\n compute() {\r\n FormMapper.mapFrom(this.simulationForm, this.value);\r\n this.value.workflowMode = this.getWorkflowMode();\r\n\r\n this.value.laboratory = this.currentLaboratory;\r\n this.value.laboratoryId = this.currentLaboratory.id;\r\n this.saveFlux('');\r\n this.saveFluxWorkcell('');\r\n this.value.dayRepartition = this.activityFlux.items;\r\n this.value.dayRepartitionWorkcell = this.activityFluxWorkcell.items;\r\n\r\n this.instruments = new PagedDataSource();\r\n this.instruments.items = this.instrumentManagementService.vm_GlobalToSimulationInstrument(this.vm_global, '', this.tests);\r\n this.value.instruments = this.instruments.items;\r\n\r\n this.instrumentsWorkcell = new PagedDataSource();\r\n this.instrumentsWorkcell.items = this.instrumentManagementService.vm_GlobalToSimulationWorkcellInstrument(this.vm_global,'',this.tests);\r\n this.value.instrumentsWorkcell = this.instrumentsWorkcell.items;\r\n\r\n this.activities = new PagedDataSource();\r\n this.activities.items = this.simulationActivityManagementService.vm_GlobalToSimulationActivities(this.vm_global, '');\r\n this.value.activities = this.activities.items;\r\n // console.log('sortie du saveflux',this.value);\r\n }\r\n\r\n save() {\r\n this.compute();\r\n\r\n const simulationId = this.service.edit(this.value);\r\n this.close();\r\n this.onUpdate.emit(this.value);\r\n }\r\n\r\n getSimulationCountForLaboratory(laboratory: Laboratory) {\r\n const simulations = this.service.findByLaboratoryId(laboratory.id);\r\n let result = 0;\r\n simulations.subscribe(res => (result = res.items.length));\r\n return result;\r\n }\r\n\r\n refreshMiniChart() {\r\n this.chartError = false;\r\n try {\r\n this.compute();\r\n const result = this.serviceCalculSimulation.calcul(this.value);\r\n let resultSimulation = new List();\r\n resultSimulation.AddRange(result.filter(s => s.instrumentId));\r\n\r\n const resultSimulationWorkcell = this.serviceCalculSimulationWorkcell.calcul(this.value);\r\n resultSimulation.AddRange(resultSimulationWorkcell);\r\n // console.log(resultSimulationWorkcell);\r\n\r\n // console.log(this.instruments);\r\n // const graphData = this.graphService.getChargeData(this.value, resultSimulation.ToArray(), this.instruments ? this.instruments.items : null, this.activities ? this.activities.items : null , null );\r\n const graphData = this.graphService.getChargeData(this.value, resultSimulation.ToArray(), null, null , null );\r\n\r\n this.dataChargeChart = {\r\n labels: ['0h', '1h', '2h', '3h', '4h', '5h', '6h', '7h', '8h', '9h', '10h', '11h', '12h'\r\n , '13h', '14h', '15h', '16h', '17h', '18h', '19h', '20h', '21h', '22h', '23h'],\r\n datasets: [\r\n {\r\n label: this.translateService.instant('Simulation_Charge'),\r\n type: 'line',\r\n fill: false,\r\n yAxisID: 'y-axis-2',\r\n data: graphData.usedChargeChart,\r\n borderColor:\r\n this.graphService.pinkColor,\r\n backgroundColor:\r\n this.graphService.pinkColor,\r\n\r\n }, {\r\n data: graphData.testChart,\r\n yAxisID: 'y-axis-1',\r\n backgroundColor: [\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor\r\n ]\r\n }\r\n ]\r\n };\r\n } catch (error) {\r\n this.chartError = true;\r\n\r\n }\r\n\r\n this.setChartDirty(false);\r\n\r\n }\r\n\r\n selectedItemsCount() {\r\n\r\n var total = 0 ;\r\n if (this.vm_global.instruments)\r\n total = this.vm_global.instruments.filter(e=> e.checked).length;\r\n if (this.vm_global.workcells)\r\n total += this.vm_global.workcells.filter(e => e.checked).length;\r\n return total;\r\n\r\n }\r\n\r\n\r\n setDossier(multiple, value:boolean) {\r\n multiple.dossierOuSerie = value;\r\n if (!value)\r\n multiple.workcell = false;\r\n }\r\n\r\n setWorkcell(multiple, value: boolean)\r\n {\r\n multiple.workcell = value;\r\n if (value)\r\n multiple.dossierOuSerie = true;\r\n }\r\n\r\n chartError = false;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-edit.component.ts","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{ 'Simulation_Export' | translate }}

\\r\\n
\\r\\n
\\r\\n \\r\\n {{'Simulation_ExportMessage' | translate}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-export.component.html\n// module id = ../../../../../src/app/components/simulations/simulation-export.component.html\n// module chunks = main","import { Component, AfterViewInit, Input, ElementRef } from '@angular/core';\r\nimport { List } from 'linqts';\r\nimport { Simulation } from '../../../models/Simulation';\r\nimport { WorkListItem } from '../../../models/WorkListItem';\r\nimport { WorkListWorkcellItem } from '../../../models/WorkListWorkcellItem';\r\nimport { SimulationService } from '../../../services/SimulationService';\r\n\r\n@Component({\r\n selector: 'simulation-export',\r\n templateUrl: './simulation-export.component.html'\r\n})\r\nexport class SimulationExportComponent implements AfterViewInit {\r\n @Input() public simulation: Simulation;\r\n @Input() public itemList: WorkListItem[];\r\n @Input() public itemListWorkcell: WorkListWorkcellItem[];\r\n\r\n\r\n modalEl = null;\r\n ngAfterViewInit() {\r\n this.modalEl = $(this._rootNode.nativeElement).find('div.modal');\r\n }\r\n\r\n constructor(private _rootNode: ElementRef, private serviceSimulation: SimulationService) {}\r\n\r\n close() {\r\n this.modalEl.hide();\r\n\r\n $(document.body).removeClass('modal-open');\r\n $('.modal-backdrop').remove();\r\n }\r\n\r\n open() {\r\n this.modalEl.show();\r\n }\r\n\r\n exportAsJSON() {\r\n this.serviceSimulation.exportSimulationJSON(this.simulation);\r\n this.close();\r\n }\r\n\r\n exportAsCSV() {\r\n let simulationsResultat = new List();\r\n simulationsResultat.AddRange(this.itemList);\r\n simulationsResultat.AddRange(this.itemListWorkcell);\r\n \r\n this.serviceSimulation.exportSimulationCSV(simulationsResultat.ToArray().sort((a,b) => a.dateAndTime.getTime() - b.dateAndTime.getTime()), this.simulation);\r\n this.close();\r\n }\r\n\r\n exportAsCSVWorkcells() {\r\n \r\n let simulationsResultat = new List();\r\n simulationsResultat.AddRange(this.itemListWorkcell);\r\n this.serviceSimulation.exportSimulationCSVWorkcell(simulationsResultat.ToArray().sort((a,b) => a.dateAndTime.getTime() - b.dateAndTime.getTime()), this.simulation);\r\n this.close();\r\n }\r\n\r\n exportAsXML() {\r\n this.serviceSimulation.exportSimulationXML(this.simulation);\r\n this.close();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-export.component.ts","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{ 'Simulation_Import' | translate }}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-import.component.html\n// module id = ../../../../../src/app/components/simulations/simulation-import.component.html\n// module chunks = main","import { ImportedSimulation } from './../../../models/Simulation';\r\nimport { Component, AfterViewInit, Output, ElementRef, Input } from '@angular/core';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { SimulationService } from '../../../services/SimulationService';\r\n\r\n@Component({\r\n selector: 'simulation-import',\r\n templateUrl: './simulation-import.component.html'\r\n})\r\nexport class SimulationImportComponent implements AfterViewInit {\r\n @Output() onUpdate = new EventEmitter();\r\n simulation: ImportedSimulation;\r\n\r\n modalEl = null;\r\n ngAfterViewInit() {\r\n this.modalEl = $(this._rootNode.nativeElement).find('div.modal');\r\n }\r\n\r\n constructor(\r\n private _rootNode: ElementRef,\r\n private serviceSimulation: SimulationService) {\r\n this.serviceSimulation.onCreate.subscribe(res => {\r\n return this.onCreateHandler(res);\r\n });\r\n }\r\n\r\n onCreateHandler(simulation: ImportedSimulation) {\r\n this.close();\r\n this.onUpdate.emit(simulation);\r\n }\r\n\r\n close() {\r\n // clear data\r\n\r\n this.modalEl.hide();\r\n $(document.body).removeClass('modal-open');\r\n $('.modal-backdrop').remove();\r\n }\r\n\r\n open() {\r\n this.modalEl.show();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-import.component.ts","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{'Simulation_AnnualActivity' | translate}} {{'Simulation_Tests' | translate}}
{{test.test.mnemonic}}{{getInstuments(test.test)}}{{test.quantity * getMultiplier()}}
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{'Simulation_Instruments' | translate}}
\\r\\n \\r\\n {{getInstrument(1)}}\\r\\n Small Instrument\\r\\n
\\r\\n \\r\\n {{getInstrument(2)}}\\r\\n Medium Instrument\\r\\n
\\r\\n \\r\\n {{getInstrument(3)}}\\r\\n Large Instrument\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n

\\r\\n {{workcell.name}}\\r\\n

\\r\\n {{workcell.nbInstruments}}STA R\\r\\n MAX\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n 0\\\" class=\\\"errorRow\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{'Simulation_Workflow' | translate}}
{{'Simulation_TubesPerDays'| translate}}{{getTubesDaysCount()}}
{{'Simulation_TestsPerDays'| translate}}{{getTestDaysCount()}}
{{'Simulation_NonExecutableTests'| translate}}{{noInstrumentCount}}
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-view-details-activity.component.html\n// module id = ../../../../../src/app/components/simulations/simulation-view-details-activity.component.html\n// module chunks = main","import { Component, Input } from \"@angular/core\";\r\nimport { List } from \"linqts\";\r\nimport { Simulation } from \"../../../models/Simulation\";\r\nimport { Test } from \"../../../models/Test\";\r\nimport { WorkListItem } from \"../../../models/WorkListItem\";\r\nimport { SimulationService } from \"../../../services/SimulationService\";\r\n\r\n@Component({\r\n selector: 'simulation-view-details-activity',\r\n templateUrl: './simulation-view-details-activity.component.html'\r\n })\r\n export class SimulationViewDetailsActivityComponent {\r\n\r\n tubesDaysCount: number = null;\r\n testsDaysCount: number = null;\r\n\r\n\r\n @Input()\r\n resultSimulation : WorkListItem[];\r\n\r\n @Input()\r\n standalonePart : boolean;\r\n\r\n\r\n @Input()\r\n value : Simulation;\r\n\r\n\r\n @Input()\r\n noInstrumentCount: number;\r\n\r\n constructor(\r\n public service: SimulationService) {\r\n\r\n }\r\n\r\n\r\n \r\n\r\n getMultiplier() {\r\n switch (this.value.periodForQuantity) {\r\n case 'day':\r\n return 52 * this.value.nbDaysPerWeek;\r\n case 'week':\r\n return 52;\r\n case 'month':\r\n return 12;\r\n }\r\n \r\n return 1;\r\n }\r\n \r\n\r\n \r\n getInstuments(test: Test) {\r\n if (this.standalonePart) {\r\n\r\n let instru = '';\r\n \r\n this.value.instruments.sort((a, b) => {\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.name > b.name) {\r\n return 1;\r\n }\r\n return 0;\r\n }).forEach(i => {\r\n if (i.simulationInstrumentTest.every(it => it.id !== test.id) === false) {\r\n instru += i.name + ', ';\r\n }\r\n });\r\n \r\n return '(' + instru.substr(0, instru.length - 2) + ')';\r\n }\r\n else {\r\n\r\n \r\n let instru = '';\r\n \r\n this.value.instrumentsWorkcell.sort((a, b) => {\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.name > b.name) {\r\n return 1;\r\n }\r\n return 0;\r\n }).forEach(i => {\r\n if (i.simulationInstrumentTest.every(it => it.id !== test.id) === false) {\r\n instru += i.name + ', ';\r\n }\r\n });\r\n \r\n return '(' + instru.substr(0, instru.length - 2) + ')';\r\n }\r\n }\r\n\r\n getInstrument(size: number) {\r\n if (this.value && this.value.instruments) {\r\n //console.log('instrument:',this.value.instruments);\r\n return this.value.instruments.filter(d => {\r\n if (d.instrument) return d.instrument.size === size\r\n return false;\r\n }).length;\r\n }\r\n }\r\n\r\n getTubesDaysCount() {\r\n \r\n if (this.tubesDaysCount == null) {\r\n let resultSimulation = new List(this.resultSimulation);\r\n this.tubesDaysCount = resultSimulation.Select(c => c.sampleId).Distinct().Count();\r\n }\r\n return this.tubesDaysCount;\r\n\r\n }\r\n getTestDaysCount() {\r\n if (this.testsDaysCount == null) {\r\n let resultSimulation = new List(this.resultSimulation); \r\n this.testsDaysCount = resultSimulation.Where(d => d.test != null).Count();\r\n }\r\n return this.testsDaysCount;\r\n }\r\n\r\n \r\n getActivities() {\r\n if (this.value && this.value.activities) {\r\n return this.value.activities.filter(d => d.quantity > 0 && d.workcell == !this.standalonePart ).sort((a, b) => {\r\n if (a.test && b.test) {\r\n return a.test.order - b.test.order;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n }\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-view-details-activity.component.ts","module.exports = \"
\\r\\n

{{ 'Simulations' | translate }}

\\r\\n \\r\\n
\\r\\n {{ value.name }} \\r\\n
\\r\\n Not Sync\\r\\n Synching\\r\\n Sync ok\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
{{ value.laboratory.name }}
\\r\\n {{ value.laboratory.clientNumber }}\\r\\n {{ value.laboratory.city }}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Standalone\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n Workcell\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{message}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{activityTestLine.N}}\\r\\n {{activityTubeLine.N}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{activityTestLine.Average}}\\r\\n {{activityTubeLine.Average}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{activityTestLine.Minimum}}\\r\\n {{activityTubeLine.Minimum}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{activityTestLine.Maximum}}\\r\\n {{activityTubeLine.Maximum}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{activityTestLine.SD}}\\r\\n {{activityTubeLine.SD}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{message}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{tatTestLine.N}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{tatTestLine.Average}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{tatTestLine.Minimum}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{tatTestLine.Maximum}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{tatTestLine.SD}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{message}}

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

{{message}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
HourSample IDTestPriorityInstrumentReal startEnd dateTAT in seconds
{{ getDateHM(flux.dateAndTime) }}{{ flux.sampleId }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ getInstrumentName(flux.instrumentId) }}\\r\\n \\r\\n {{ getDateHMS(flux.startTime) }}\\r\\n \\r\\n {{ getDateHMS(flux.resultsDateTime) }}\\r\\n \\r\\n {{ flux.TAT }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t\\r\\n \\r\\n \\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
HourSample IDBras1Bras2BatchIdSubbatchIdrack_idinstrumentd_rd_instrTAT workcell in secondsTAT in secondsTest
{{ getDateWorkcellHM(flux.dt_id, true) }}{{ flux.sampleId }}\\r\\n {{ getDateWorkcellHM(flux.d_bras1, false) }}\\r\\n \\r\\n {{ getDateWorkcellHM(flux.d_bras2, false) }}\\r\\n \\r\\n {{ flux.batch_id }}\\r\\n \\r\\n {{ flux.sub_batch_id }}\\r\\n \\r\\n {{ flux.rack_id }}\\r\\n \\r\\n {{ flux.instrument }}\\r\\n \\r\\n {{ getDateWorkcellHM(flux.d_r, false) }}\\r\\n \\r\\n {{ getDateWorkcellHM(flux.startTime, false) }}\\r\\n \\r\\n {{ flux.TATInterne }}\\r\\n \\r\\n {{ flux.TAT }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-view-details.component.html\n// module id = ../../../../../src/app/components/simulations/simulation-view-details.component.html\n// module chunks = main","import { GraphService } from './../../../services/GraphService';\r\nimport { Component, OnInit, OnDestroy, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { DropDownLabel } from '../../../common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { List } from 'linqts';\r\nimport { Simulation } from '../../../models/Simulation';\r\nimport { SimulationActivity } from '../../../models/SimulationActivity';\r\nimport { ActivityFlux } from '../../../models/ActivityFlux';\r\nimport { SimulationInstrument } from '../../../models/SimulationInstrument';\r\nimport { WorkListItem } from '../../../models/WorkListItem';\r\nimport { PagedDataSource } from '../../../models/PagedDataSource';\r\nimport { SimulationService } from '../../../services/SimulationService';\r\nimport { CalculSimulationService } from '../../../services/CalculSimulationService';\r\nimport { LaboratoryService } from '../../../services/LaboratoryService';\r\nimport { ScreenShotService } from '../../../services/ScreenShotService';\r\nimport { Laboratory } from '../../../models/Laboratory';\r\nimport { Test } from '../../../models/Test';\r\nimport { WorkListWorkcellItem } from '../../../models/WorkListWorkcellItem';\r\nimport { CalculSimulationWorkcellService } from '../../../services/CalculSimulationWorkcellService';\r\n// import moment = require('moment'); // non compatible ECS6\r\nimport moment from 'moment/src/moment';\r\n//import moment from 'moment'\r\n//import moment from 'moment/moment';\r\n\r\n\r\nconst newLocal = '0';\r\n@Component({\r\n templateUrl: './simulation-view-details.component.html'\r\n})\r\nexport class SimulationViewDetailsComponent implements OnInit, OnDestroy {\r\n id: string;\r\n loading = true;\r\n loadingActivities = true;\r\n value: Simulation;\r\n message: string;\r\n simulationForm: FormGroup;\r\n activities: SimulationActivity[];\r\n activityFlux: ActivityFlux[];\r\n instruments: SimulationInstrument[];\r\n activitiesPossible: SimulationActivity[];\r\n resultSimulation: WorkListItem[];\r\n resultSimulationWorkcell : WorkListWorkcellItem[];\r\n noInstrumentCount: number;\r\n laboratoryform: FormGroup;\r\n name: FormControl;\r\n clientNumber: FormControl;\r\n nbDaysPerWeek: FormControl;\r\n periodForQuantity: FormControl;\r\n mode: string;\r\n currentPosition = 0;\r\n tatModeFilter: string ='all';\r\n activityModeFilter: string ='all';\r\n workloadModeFilter: string = 'all';\r\n occupationModeFilter: string = 'all';\r\n syncStatus: string;\r\n occupationModeTest : string = 'test';\r\n\r\n\r\n backgroundColor: string[] = [\r\n 'rgba(187, 147, 197, 1)',\r\n 'rgba(127, 198, 211, 1)',\r\n 'rgba(127, 74, 12, 1)',\r\n 'rgba(237, 183, 197, 1)',\r\n 'rgba(119, 17, 211, 1)',\r\n 'rgba(90, 94, 78, 1)',\r\n 'rgba(196, 14, 21, 1)',\r\n 'rgba(102, 81, 201, 1)',\r\n 'rgba(106, 184, 69, 1)',\r\n 'rgba(187, 147, 197, 1)',\r\n 'rgba(127, 198, 211, 1)',\r\n 'rgba(127, 74, 12, 1)',\r\n 'rgba(237, 183, 197, 1)',\r\n 'rgba(119, 17, 211, 1)',\r\n 'rgba(90, 94, 78, 1)',\r\n 'rgba(196, 14, 21, 1)',\r\n 'rgba(102, 81, 201, 1)',\r\n 'rgba(106, 184, 69, 1)',\r\n 'rgba(187, 147, 197, 1)',\r\n 'rgba(127, 198, 211, 1)',\r\n 'rgba(127, 74, 12, 1)',\r\n 'rgba(237, 183, 197, 1)',\r\n 'rgba(119, 17, 211, 1)',\r\n 'rgba(90, 94, 78, 1)',\r\n 'rgba(196, 14, 21, 1)',\r\n 'rgba(102, 81, 201, 1)',\r\n 'rgba(106, 184, 69, 1)',\r\n 'rgba(187, 147, 197, 1)',\r\n 'rgba(127, 198, 211, 1)',\r\n 'rgba(127, 74, 12, 1)',\r\n 'rgba(237, 183, 197, 1)',\r\n 'rgba(119, 17, 211, 1)',\r\n 'rgba(90, 94, 78, 1)',\r\n 'rgba(196, 14, 21, 1)',\r\n 'rgba(102, 81, 201, 1)',\r\n 'rgba(106, 184, 69, 1)',\r\n 'rgba(187, 147, 197, 1)',\r\n 'rgba(127, 198, 211, 1)',\r\n 'rgba(127, 74, 12, 1)',\r\n 'rgba(237, 183, 197, 1)',\r\n 'rgba(119, 17, 211, 1)',\r\n 'rgba(90, 94, 78, 1)',\r\n 'rgba(196, 14, 21, 1)',\r\n 'rgba(102, 81, 201, 1)',\r\n 'rgba(106, 184, 69, 1)',\r\n 'rgba(187, 147, 197, 1)',\r\n 'rgba(127, 198, 211, 1)',\r\n 'rgba(127, 74, 12, 1)',\r\n 'rgba(237, 183, 197, 1)',\r\n 'rgba(119, 17, 211, 1)',\r\n 'rgba(90, 94, 78, 1)',\r\n 'rgba(196, 14, 21, 1)',\r\n 'rgba(102, 81, 201, 1)',\r\n 'rgba(106, 184, 69, 1)',\r\n 'rgba(187, 147, 197, 1)',\r\n 'rgba(127, 198, 211, 1)',\r\n 'rgba(127, 74, 12, 1)',\r\n 'rgba(237, 183, 197, 1)',\r\n 'rgba(119, 17, 211, 1)',\r\n 'rgba(90, 94, 78, 1)',\r\n 'rgba(196, 14, 21, 1)',\r\n 'rgba(102, 81, 201, 1)',\r\n 'rgba(106, 184, 69, 1)',\r\n 'rgba(187, 147, 197, 1)',\r\n 'rgba(127, 198, 211, 1)',\r\n 'rgba(127, 74, 12, 1)',\r\n 'rgba(237, 183, 197, 1)',\r\n 'rgba(119, 17, 211, 1)',\r\n 'rgba(90, 94, 78, 1)',\r\n 'rgba(196, 14, 21, 1)',\r\n 'rgba(102, 81, 201, 1)',\r\n 'rgba(106, 184, 69, 1)',\r\n 'rgba(187, 147, 197, 1)',\r\n 'rgba(127, 198, 211, 1)',\r\n 'rgba(127, 74, 12, 1)',\r\n 'rgba(237, 183, 197, 1)',\r\n 'rgba(119, 17, 211, 1)',\r\n 'rgba(90, 94, 78, 1)',\r\n 'rgba(196, 14, 21, 1)',\r\n 'rgba(102, 81, 201, 1)',\r\n 'rgba(106, 184, 69, 1)'\r\n ];\r\n\r\n backgroundColorLight: string[] = [\r\n 'rgba(187, 147, 197, 0.3)',\r\n 'rgba(127, 198, 211, 0.3)',\r\n 'rgba(127, 74, 12, 0.3)',\r\n 'rgba(237, 183, 197, 0.3)',\r\n 'rgba(119, 17, 211, 0.3)',\r\n 'rgba(90, 94, 78, 0.3)',\r\n 'rgba(196, 14, 21, 0.3)',\r\n 'rgba(102, 81, 201, 0.3)',\r\n 'rgba(106, 184, 69, 0.3)',\r\n 'rgba(187, 147, 197, 0.3)',\r\n 'rgba(127, 198, 211, 0.3)',\r\n 'rgba(127, 74, 12, 0.3)',\r\n 'rgba(237, 183, 197, 0.3)',\r\n 'rgba(119, 17, 211, 0.3)',\r\n 'rgba(90, 94, 78, 0.3)',\r\n 'rgba(196, 14, 21, 0.3)',\r\n 'rgba(102, 81, 201, 0.3)',\r\n 'rgba(106, 184, 69, 0.3)',\r\n 'rgba(187, 147, 197, 0.3)',\r\n 'rgba(127, 198, 211, 0.3)',\r\n 'rgba(127, 74, 12, 0.3)',\r\n 'rgba(237, 183, 197, 0.3)',\r\n 'rgba(119, 17, 211, 0.3)',\r\n 'rgba(90, 94, 78, 0.3)',\r\n 'rgba(196, 14, 21, 0.3)',\r\n 'rgba(102, 81, 201, 0.3)',\r\n 'rgba(106, 184, 69, 0.3)',\r\n 'rgba(187, 147, 197, 0.3)',\r\n 'rgba(127, 198, 211, 0.3)',\r\n 'rgba(127, 74, 12, 0.3)',\r\n 'rgba(237, 183, 197, 0.3)',\r\n 'rgba(119, 17, 211, 0.3)',\r\n 'rgba(90, 94, 78, 0.3)',\r\n 'rgba(196, 14, 21, 0.3)',\r\n 'rgba(102, 81, 201, 0.3)',\r\n 'rgba(106, 184, 69, 0.3)',\r\n 'rgba(187, 147, 197, 0.3)',\r\n 'rgba(127, 198, 211, 0.3)',\r\n 'rgba(127, 74, 12, 0.3)',\r\n 'rgba(237, 183, 197, 0.3)',\r\n 'rgba(119, 17, 211, 0.3)',\r\n 'rgba(90, 94, 78, 0.3)',\r\n 'rgba(196, 14, 21, 0.3)',\r\n 'rgba(102, 81, 201, 0.3)',\r\n 'rgba(106, 184, 69, 0.3)',\r\n 'rgba(187, 147, 197, 0.3)',\r\n 'rgba(127, 198, 211, 0.3)',\r\n 'rgba(127, 74, 12, 0.3)',\r\n 'rgba(237, 183, 197, 0.3)',\r\n 'rgba(119, 17, 211, 0.3)',\r\n 'rgba(90, 94, 78, 0.3)',\r\n 'rgba(196, 14, 21, 0.3)',\r\n 'rgba(102, 81, 201, 0.3)',\r\n 'rgba(106, 184, 69, 0.3)',\r\n 'rgba(187, 147, 197, 0.3)',\r\n 'rgba(127, 198, 211, 0.3)',\r\n 'rgba(127, 74, 12, 0.3)',\r\n 'rgba(237, 183, 197, 0.3)',\r\n 'rgba(119, 17, 211, 0.3)',\r\n 'rgba(90, 94, 78, 0.3)',\r\n 'rgba(196, 14, 21, 0.3)',\r\n 'rgba(102, 81, 201, 0.3)',\r\n 'rgba(106, 184, 69, 0.3)',\r\n 'rgba(187, 147, 197, 0.3)',\r\n 'rgba(127, 198, 211, 0.3)',\r\n 'rgba(127, 74, 12, 0.3)',\r\n 'rgba(237, 183, 197, 0.3)',\r\n 'rgba(119, 17, 211, 0.3)',\r\n 'rgba(90, 94, 78, 0.3)',\r\n 'rgba(196, 14, 21, 0.3)',\r\n 'rgba(102, 81, 201, 0.3)',\r\n 'rgba(106, 184, 69, 0.3)',\r\n 'rgba(187, 147, 197, 0.3)',\r\n 'rgba(127, 198, 211, 0.3)',\r\n 'rgba(127, 74, 12, 0.3)',\r\n 'rgba(237, 183, 197, 0.3)',\r\n 'rgba(119, 17, 211, 0.3)',\r\n 'rgba(90, 94, 78, 0.3)',\r\n 'rgba(196, 14, 21, 0.3)',\r\n 'rgba(102, 81, 201, 0.3)',\r\n 'rgba(106, 184, 69, 0.3)'\r\n ];\r\n\r\n\r\n @ViewChild('ActivityChart') ActivityChart: any;\r\n @ViewChild('TATChart') TATChart: any;\r\n @ViewChild('WorkloadChart') WorkloadChart: any;\r\n @ViewChild('ChargeChart') ChargeChart: any;\r\n\r\n @ViewChild('CanvasTemp') CanvasTemp: any;\r\n\r\n public priorityActivity = new PagedDataSource();\r\n public ponderationSelection = new PagedDataSource();\r\n public patientBatchList = new PagedDataSource();\r\n activityCurrentInstruments: SimulationInstrument[];\r\n\r\n activityCurrentPriority: DropDownLabel;\r\n activityCurrentPatientBatch: DropDownLabel;\r\n ponderationCurrent: DropDownLabel;\r\n activityTestLine: any = {};\r\n activityTubeLine: any = {};\r\n\r\n tatCurrentInstruments: SimulationInstrument[];\r\n tatCurrentPriority: DropDownLabel;\r\n tatCurrentPatientBatch: DropDownLabel;\r\n tatCurrentTests: SimulationActivity[];\r\n workloadCurrentTests: SimulationActivity[];\r\n chargeCurrentTests: SimulationActivity[];\r\n chargeCurrentInstruments: SimulationInstrument[];\r\n tatTestLine: any = {};\r\n\r\n typeActivity = 'bar';\r\n typeTAT = 'bar';\r\n typeWorkload = 'bar';\r\n dataActivityChart: any = {};\r\n dataChargeChart: any = {};\r\n dataTatChart: any = {};\r\n\r\n dataWorkloadChart: any = {};\r\n\r\n dataWorkloadChartBar: any = {};\r\n instrumentsSimulation: any[];\r\n currentSubPosition = 0;\r\n workcellDisplayed= false;\r\n standaloneDisplayed = false;\r\n private _idChangedSubscription: any;\r\n\r\n constructor(\r\n public service: SimulationService,\r\n private graphService: GraphService,\r\n private serviceCalculSimulation: CalculSimulationService,\r\n private serviceCalculSimulationWorkcell: CalculSimulationWorkcellService,\r\n private route: ActivatedRoute, builder: FormBuilder,\r\n private router: Router,\r\n private translateService: TranslateService,\r\n private laboratoryService: LaboratoryService,\r\n private screenShotService: ScreenShotService,\r\n private _changeDetectionRef: ChangeDetectorRef) {\r\n\r\n laboratoryService.get();\r\n\r\n this.name = new FormControl('', [\r\n Validators.required,\r\n Validators.minLength(5)\r\n ]);\r\n\r\n this.priorityActivity.items = new Array();\r\n this.priorityActivity.items.push(new DropDownLabel('all', translateService.instant('Simulation_All'), true));\r\n this.priorityActivity.items.push(new DropDownLabel('routine', translateService.instant('Simulation_PriorityRoutine'), false));\r\n this.priorityActivity.items.push(new DropDownLabel('urgent', translateService.instant('Simulation_PriorityUrgent'), false));\r\n\r\n this.ponderationSelection.items = new Array();\r\n this.ponderationSelection.items.push(new DropDownLabel('0', 'Ponderation', true));\r\n this.ponderationSelection.items.push(new DropDownLabel('10', '+10%', false));\r\n this.ponderationSelection.items.push(new DropDownLabel('20', '+20%', false));\r\n this.ponderationSelection.items.push(new DropDownLabel('30', '+30%', false));\r\n this.ponderationSelection.items.push(new DropDownLabel('40', '+40%', false));\r\n this.ponderationSelection.items.push(new DropDownLabel('50', '+50%', false));\r\n this.ponderationSelection.items.push(new DropDownLabel('60', '+60%', false));\r\n this.ponderationSelection.items.push(new DropDownLabel('70', '+70%', false));\r\n this.ponderationSelection.items.push(new DropDownLabel('80', '+80%', false));\r\n this.ponderationSelection.items.push(new DropDownLabel('90', '+90%', false));\r\n this.ponderationSelection.items.push(new DropDownLabel('100', '+100%', false));\r\n\r\n\r\n this.patientBatchList.items = new Array();\r\n this.patientBatchList.items.push(new DropDownLabel('all', translateService.instant('Simulation_All'), true));\r\n this.patientBatchList.items.push(new DropDownLabel('patient', translateService.instant('Simulation_Patient'), false));\r\n this.patientBatchList.items.push(new DropDownLabel('batch', translateService.instant('Simulation_Batch'), false));\r\n this.simulationForm = builder.group({\r\n name: this.name\r\n });\r\n\r\n this.route.params.subscribe(params => {\r\n if (params['mode'] != null) {\r\n this.mode = params['mode'];\r\n }\r\n });\r\n }\r\n\r\n ChangeWorkloadTo(workloadModeFilter: string) {\r\n this.workloadModeFilter = workloadModeFilter ;\r\n this.refreshWorkloadGraph(); \r\n }\r\n\r\n\r\n\r\n ChangeTatTo(tatModeFilter: string) {\r\n this.tatModeFilter = tatModeFilter;\r\n this.refreshTatGraph();\r\n }\r\n\r\n ChangeActivityTo(activityModeFilter: string) {\r\n this.activityModeFilter = activityModeFilter;\r\n this.refreshActivityGraph();\r\n }\r\n\r\n ChangeOccupationTo(occupationModeFilter: string) {\r\n this.occupationModeFilter = occupationModeFilter;\r\n this.refreshChargeChart();\r\n }\r\n\r\n\r\n\r\n updateSyncStatus(status: string, id: string) {\r\n if (this.value != null && id === this.value.id) {\r\n this.syncStatus = status;\r\n if (status === 'Sync') {\r\n /// in 4 second, hide the Sync OK\r\n setTimeout(() => {\r\n this.syncStatus = null;\r\n }, 4000);\r\n }\r\n }\r\n\r\n\r\n\r\n if (this.value == null && status === 'Sync') {\r\n this.syncStatus = status;\r\n /// in 4 second, hide the Sync OK\r\n setTimeout(() => {\r\n this.syncStatus = null;\r\n }, 4000);\r\n }\r\n }\r\n\r\n\r\n SaveActivityChartToImage() {\r\n this.screenShotService.canvas2Image(this.ActivityChart.elementRef.nativeElement.lastChild, 'ActivityChart.png');\r\n }\r\n SaveTATChartToImage() {\r\n this.screenShotService.canvas2Image(this.TATChart.elementRef.nativeElement.lastChild, 'TATChart.png');\r\n\r\n }\r\n SaveWorkloadChartToImage() {\r\n this.screenShotService.canvas2Image(this.WorkloadChart.elementRef.nativeElement.lastChild, 'WorkloadChart.png');\r\n\r\n }\r\n SaveChargeChartToImage() {\r\n this.screenShotService.canvas2Image(this.ChargeChart.elementRef.nativeElement.lastChild, 'ChargeChart.png');\r\n }\r\n\r\n ngOnInit() {\r\n this._idChangedSubscription = this.route.params.subscribe(params => {\r\n this.id = params['id'];\r\n\r\n this.load();\r\n });\r\n // console.log(this.value);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n this._changeDetectionRef.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._idChangedSubscription.unsubscribe();\r\n }\r\n\r\n load() {\r\n let simus: any;\r\n if (this.mode === 'admin') {\r\n simus = this.service.findAsAdmin(this.id);\r\n } else {\r\n simus = this.service.find(this.id);\r\n }\r\n simus.subscribe(\r\n (value) => this.onLoadCompleted(value as Simulation),\r\n (error) => this.onLoadFailed(error),\r\n () => this.loading = false);\r\n }\r\n\r\n selectTab(pos: number) {\r\n this.currentPosition = pos;\r\n }\r\n\r\n ChangeActivityChartToBar() {\r\n this.typeActivity = 'bar';\r\n this.refreshActivityGraph();\r\n }\r\n\r\n ChangeActivityChartToLine() {\r\n this.typeActivity = 'line';\r\n this.refreshActivityGraph();\r\n }\r\n\r\n ChangeActivityChartToDot() {\r\n this.typeActivity = 'bubble';\r\n this.refreshActivityGraph();\r\n }\r\n\r\n ChangeTatChartToLine() {\r\n this.typeTAT = 'line';\r\n this.refreshTatGraph();\r\n }\r\n\r\n ChangeTatChartToBar() {\r\n this.typeTAT = 'bar';\r\n this.refreshTatGraph();\r\n }\r\n\r\n ChangeWorkloadChartToBar() {\r\n this.typeWorkload = 'bar';\r\n this.refreshWorkloadGraph();\r\n }\r\n\r\n ChangeWorkloadChartToPie() {\r\n this.typeWorkload = 'pie';\r\n this.refreshWorkloadGraph();\r\n }\r\n\r\n\r\n refreshActivityGraph() {\r\n this.getActivityData(this.activityCurrentInstruments, this.activityCurrentPriority, this.activityCurrentPatientBatch);\r\n }\r\n refreshChargeChart() {\r\n this.getChargeData(this.chargeCurrentInstruments, this.chargeCurrentTests, this.ponderationCurrent ? +(this.ponderationCurrent.value) : null);\r\n }\r\n\r\n refreshTatGraph() {\r\n this.getTatData(this.tatCurrentInstruments, this.tatCurrentPriority, this.tatCurrentTests, this.tatCurrentPatientBatch);\r\n }\r\n\r\n refreshWorkloadGraph() {\r\n this.getWorkloadData(this.workloadCurrentTests);\r\n }\r\n\r\n changeActivityPriority(event) {\r\n this.activityCurrentPriority = event;\r\n this.refreshActivityGraph();\r\n }\r\n\r\n\r\n changeActivityPatientBatch(event) {\r\n this.activityCurrentPatientBatch = event;\r\n this.refreshActivityGraph();\r\n }\r\n\r\n\r\n changeActivityInstrument(event) {\r\n this.activityCurrentInstruments = event;\r\n this.refreshActivityGraph();\r\n }\r\n\r\n changeChargeInstrument(event) {\r\n this.chargeCurrentInstruments = event;\r\n this.refreshChargeChart();\r\n }\r\n\r\n changeTatPriority(event) {\r\n this.tatCurrentPriority = event;\r\n this.refreshTatGraph();\r\n\r\n }\r\n\r\n changeChargePonderation(event) {\r\n this.ponderationCurrent = event;\r\n this.refreshChargeChart();\r\n }\r\n\r\n changeTatPatientBatch(event) {\r\n this.tatCurrentPatientBatch = event;\r\n this.refreshTatGraph();\r\n }\r\n\r\n changeTatInstrument(event) {\r\n this.tatCurrentInstruments = event;\r\n this.refreshTatGraph();\r\n }\r\n\r\n changeTatTests(event) {\r\n this.tatCurrentTests = event;\r\n this.refreshTatGraph();\r\n }\r\n\r\n changeWorkLoadTests(event) {\r\n this.workloadCurrentTests = event;\r\n this.refreshWorkloadGraph();\r\n }\r\n\r\n\r\n onLoadCompleted(value: Simulation) {\r\n this.value = value;\r\n this.activityFlux = value.dayRepartition;\r\n this.instruments = [];\r\n if (this.service.hasStandAlone(value)) \r\n {\r\n this.instruments.push(...value.instruments);\r\n }\r\n if (this.service.hasWorkcell(value)) {\r\n for (const work of value.instrumentsWorkcell)\r\n {\r\n this.instruments.push(...work.instruments);\r\n }\r\n }\r\n this.activities = value.activities;\r\n\r\n const result = this.serviceCalculSimulation.calcul(value);\r\n\r\n this.resultSimulation = result;\r\n\r\n\r\n this.resultSimulationWorkcell = this.serviceCalculSimulationWorkcell.calcul(value);\r\n\r\n this.noInstrumentCount = result.filter(s => !s.instrumentId).length;\r\n\r\n if (!this.service.hasMixte(value) && this.service.hasWorkcell(value))\r\n {\r\n this.occupationModeFilter = 'workcell';\r\n }\r\n this.ChangeActivityChartToBar();\r\n this.ChangeTatChartToBar();\r\n this.ChangeWorkloadChartToPie();\r\n this.refreshChargeChart();\r\n\r\n if (this.mode === 'admin') {\r\n this.laboratoryService.findAsAdmin(value.laboratoryId).subscribe(res => this.value.laboratory = res as Laboratory);\r\n this.activitiesPossible = value.activities.filter(q => q.quantity > 0 && q.active);\r\n } else {\r\n this.laboratoryService.find(value.laboratoryId).subscribe(res => this.value.laboratory = res as Laboratory);\r\n this.activitiesPossible = value.activities.filter(q => q.quantity > 0 && q.active);\r\n }\r\n\r\n // prevent bug : https://github.com/angular/angular/issues/6005\r\n // ugly ugly ugly !!\r\n this._changeDetectionRef.detectChanges();\r\n }\r\n\r\n\r\n\r\n\r\n getActivityData(instruments: SimulationInstrument[], priority, patientBatch) {\r\n\r\n\r\n const tubesChart: any[] = [];\r\n const testChart: any[] = [];\r\n const tubesValues: number[] = [];\r\n const testsValues: number[] = [];\r\n\r\n\r\n let resultSimulation = new List();\r\n \r\n if (this.activityModeFilter != 'workcell')\r\n resultSimulation.AddRange(this.resultSimulation);\r\n\r\n if (this.activityModeFilter != 'standalone')\r\n resultSimulation.AddRange(this.resultSimulationWorkcell);\r\n\r\n\r\n // create sublist due to parameters\r\n if (instruments != null && instruments.length > 0) {\r\n resultSimulation = resultSimulation.Where(r => instruments.some(e => e.id === r.instrumentId)).ToList();\r\n }\r\n if (priority != null && priority.value !== 'all') {\r\n resultSimulation = resultSimulation.Where(r => r.priority === (priority.value === 'routine' ? 0 : 1)).ToList();\r\n }\r\n if (patientBatch != null && patientBatch.value !== 'all') {\r\n resultSimulation = resultSimulation.Where(r => r.serie === (patientBatch.value === 'patient' ? false : true)).ToList();\r\n }\r\n\r\n let minTest = 0;\r\n let maxTest = 0;\r\n let minTube = 0;\r\n let maxTube = 0;\r\n\r\n for (let i = 0; i < 24; i++) {\r\n const nbTestByHour: number = resultSimulation.Where(p => p.resultsDateTime != null && p.resultsDateTime.getHours() === i).Count();\r\n const nbTubeByHour = resultSimulation.Where(p => p.resultsDateTime != null && p.resultsDateTime.getHours() === i).Select(c => c.sampleId).Distinct().Count();\r\n minTest = Math.min(minTest, nbTestByHour);\r\n maxTest = Math.max(maxTest, nbTestByHour);\r\n minTube = Math.min(minTube, nbTubeByHour);\r\n maxTube = Math.max(maxTube, nbTubeByHour);\r\n\r\n if (this.typeActivity === 'bubble') {\r\n testChart.push({ x: i, y: nbTestByHour, r: 5 });\r\n tubesChart.push({ x: i, y: nbTubeByHour, r: 5 });\r\n } else {\r\n testChart.push(nbTestByHour);\r\n tubesChart.push(nbTubeByHour);\r\n }\r\n if (nbTubeByHour > 0) {\r\n tubesValues.push(nbTubeByHour);\r\n }\r\n if (nbTestByHour > 0) {\r\n testsValues.push(nbTestByHour);\r\n }\r\n }\r\n\r\n // get table information\r\n this.activityTestLine.N = resultSimulation.Count() + ' tests';\r\n this.activityTestLine.Average = Math.ceil(this.serviceCalculSimulation.average(testsValues)); // '' + Math.ceil(resultSimulation.Count() / 24);\r\n // operator ... split array in params array\r\n this.activityTestLine.Minimum = Math.min(...testsValues);// minTest;\r\n this.activityTestLine.Maximum = Math.max(...testsValues); // maxTest;\r\n this.activityTestLine.SD = Math.round(this.serviceCalculSimulation.standardDeviation(testsValues));\r\n // get table information\r\n this.activityTubeLine.N = '' + resultSimulation.Select(c => c.sampleId).Distinct().Count() + ' tubes';\r\n this.activityTubeLine.Average = Math.ceil(this.serviceCalculSimulation.average(tubesValues)); // resultSimulation.Select(c => c.sampleId).Distinct().Count() / 24);\r\n this.activityTubeLine.Minimum = Math.min(...tubesValues);\r\n this.activityTubeLine.Maximum = Math.max(...tubesValues);\r\n this.activityTubeLine.SD = Math.round(this.serviceCalculSimulation.standardDeviation(tubesValues));\r\n\r\n if (!isFinite(this.activityTubeLine.Average)) {\r\n this.activityTubeLine.Average = 0;\r\n }\r\n if (!isFinite(this.activityTubeLine.SD)) {\r\n this.activityTubeLine.SD = 0;\r\n }\r\n if (!isFinite(this.activityTubeLine.Minimum)) {\r\n this.activityTubeLine.Minimum = 0;\r\n }\r\n if (!isFinite(this.activityTubeLine.Maximum)) {\r\n this.activityTubeLine.Maximum = 0;\r\n }\r\n if (!isFinite(this.activityTestLine.Average)) {\r\n this.activityTestLine.Average = 0;\r\n }\r\n if (!isFinite(this.activityTestLine.SD)) {\r\n this.activityTestLine.SD = 0;\r\n }\r\n if (!isFinite(this.activityTestLine.Minimum)) {\r\n this.activityTestLine.Minimum = 0;\r\n }\r\n if (!isFinite(this.activityTestLine.Maximum)) {\r\n this.activityTestLine.Maximum = 0;\r\n }\r\n\r\n\r\n\r\n //if (this.value.workflowMode === 'QoTu') {\r\n\r\n this.dataActivityChart = {\r\n labels: ['0h', '1h', '2h', '3h', '4h', '5h', '6h', '7h', '8h', '9h', '10h', '11h', '12h'\r\n , '13h', '14h', '15h', '16h', '17h', '18h', '19h', '20h', '21h', '22h', '23h'],\r\n datasets: [\r\n {\r\n label: 'Tubes',\r\n data: tubesChart,\r\n backgroundColor: [\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor\r\n\r\n ]\r\n },\r\n {\r\n label: this.translateService.instant('Simulation_Tests'),\r\n data: testChart,\r\n backgroundColor: [\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor\r\n ]\r\n }\r\n\r\n ],\r\n };\r\n\r\n\r\n }\r\n\r\n getChargeData(instruments: SimulationInstrument[], testsSelected: SimulationActivity[], ponderation: number) {\r\n \r\n \r\n if (this.occupationModeTest == 'true' || this.occupationModeFilter != 'workcell') {\r\n \r\n let resultSimulation = new List();\r\n \r\n if (this.occupationModeFilter != 'workcell')\r\n resultSimulation.AddRange(this.resultSimulation);\r\n\r\n if (this.occupationModeFilter != 'standalone')\r\n resultSimulation.AddRange(this.resultSimulationWorkcell);\r\n\r\n\r\n \r\n const graphData = this.graphService.getChargeData(this.value, resultSimulation.ToArray(), instruments, testsSelected, ponderation);\r\n\r\n\r\n\r\n this.optionsChargeChart.title.text = this.translateService.instant('Simulation_GraphChargeByHour')\r\n\r\n\r\n this.dataChargeChart = {\r\n labels: ['0h', '1h', '2h', '3h', '4h', '5h', '6h', '7h', '8h', '9h', '10h', '11h', '12h'\r\n , '13h', '14h', '15h', '16h', '17h', '18h', '19h', '20h', '21h', '22h', '23h'],\r\n datasets: [\r\n\r\n {\r\n label: this.translateService.instant('Simulation_Charge'),\r\n type: 'line',\r\n fill: false,\r\n yAxisID: 'y-axis-2',\r\n data: graphData.usedChargeChart,\r\n borderColor:\r\n this.graphService.pinkColor,\r\n backgroundColor:\r\n this.graphService.blueColor\r\n\r\n }, {\r\n label: this.translateService.instant('Simulation_Tests'),\r\n data: graphData.testChart,\r\n yAxisID: 'y-axis-1',\r\n backgroundColor: [\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor\r\n ]\r\n },\r\n // ,\r\n // {\r\n // label:' blablabla',\r\n // type: 'line',\r\n // fill: false,\r\n // yAxisID: 'y-axis-2',\r\n // data: usedChargeChart,\r\n // borderColor:\r\n // 'rgba(127, 74, 12, 1)',\r\n // backgroundColor:\r\n // 'rgba(127, 74, 12, 1)'\r\n\r\n // }\r\n\r\n ],\r\n };\r\n\r\n }\r\n else\r\n {\r\n\r\n let resultSimulation = new List();\r\n \r\n\r\n resultSimulation.AddRange(this.resultSimulationWorkcell);\r\n\r\n\r\n \r\n const graphData = this.graphService.getChargeDataByTube(this.value, resultSimulation.ToArray(), instruments, testsSelected, ponderation);\r\n\r\n this.optionsChargeChart.title.text = this.translateService.instant('Simulation_GraphChargeByHourByTube')\r\n\r\n\r\n this.dataChargeChart = {\r\n labels: ['0h', '1h', '2h', '3h', '4h', '5h', '6h', '7h', '8h', '9h', '10h', '11h', '12h'\r\n , '13h', '14h', '15h', '16h', '17h', '18h', '19h', '20h', '21h', '22h', '23h'],\r\n datasets: [\r\n\r\n {\r\n label: this.translateService.instant('Simulation_Charge'),\r\n type: 'line',\r\n fill: false,\r\n yAxisID: 'y-axis-2',\r\n data: graphData.usedChargeChart,\r\n borderColor:\r\n this.graphService.pinkColor,\r\n backgroundColor:\r\n this.graphService.blueColor\r\n\r\n }, {\r\n label: this.translateService.instant('Simulation_Tests'),\r\n data: graphData.testChart,\r\n yAxisID: 'y-axis-1',\r\n backgroundColor: [\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor,\r\n this.graphService.blueColor\r\n ]\r\n }, {\r\n label: this.translateService.instant('Simulation_Workflow_Tube'),\r\n data: graphData.tubeChart,\r\n yAxisID: 'y-axis-1',\r\n backgroundColor: [\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor,\r\n this.graphService.pinkColor\r\n ]\r\n }, \r\n {\r\n label: this.translateService.instant('Simulation_Charge_Maxi'),\r\n type: 'line',\r\n fill: false,\r\n yAxisID: 'y-axis-1',\r\n data: graphData.chargeMax,\r\n borderColor:\r\n this.graphService.lightRedColor,\r\n backgroundColor:\r\n this.graphService.lightRedColor\r\n\r\n }\r\n\r\n ],\r\n };\r\n }\r\n }\r\n\r\n getTatData(instruments: SimulationInstrument[], priority, testsSelected: SimulationActivity[], patientBatch) {\r\n // this.dataTatChart = {};\r\n const tests: number[] = [];\r\n const testsWorkcellTATAnalytic: number[] = [];\r\n const testsWorkcellTAT: number[] = [];\r\n \r\n let resultSimulation = new List();\r\n\r\n if (this.tatModeFilter != 'workcell')\r\n resultSimulation.AddRange(this.resultSimulation);\r\n\r\n if (this.tatModeFilter != 'standalone')\r\n resultSimulation.AddRange(this.resultSimulationWorkcell);\r\n\r\n\r\n let minTest = 1000000;\r\n let maxTest = 0;\r\n\r\n // create sublist due to parameters\r\n if (instruments != null && instruments.length > 0) {\r\n resultSimulation = resultSimulation.Where(r => instruments.some(e => e.id === r.instrumentId)).ToList();\r\n }\r\n if (priority != null && priority.value !== 'all') {\r\n resultSimulation = resultSimulation.Where(r => r.priority === (priority.value === 'routine' ? 0 : 1)).ToList();\r\n }\r\n if (testsSelected != null && testsSelected.length > 0) {\r\n resultSimulation = resultSimulation.Where(r => testsSelected.some(e => e.testId === r.testId)).ToList();\r\n }\r\n if (patientBatch != null && patientBatch.value !== 'all') {\r\n resultSimulation = resultSimulation.Where(r => r.serie === (patientBatch.value === 'patient' ? false : true)).ToList();\r\n }\r\n\r\n\r\n \r\n\r\n\r\n\r\n for (let i = 0; i < 24; i++) {\r\n\r\n if (this.tatModeFilter != 'standalone' && resultSimulation.Where(e => e.startTime != null && e.startTime.getHours() === i && e.workcellId !== undefined).Count() == 0) {\r\n testsWorkcellTAT.push(0);\r\n testsWorkcellTATAnalytic.push(0);\r\n }\r\n else if (this.tatModeFilter != 'standalone' )\r\n {\r\n const valWorkcellTAT = Math.round(resultSimulation.Where(e => e.workcellId !== undefined && e.startTime != null && e.startTime.getHours() === i).Select(e => e.TAT).Average());\r\n minTest = Math.min(valWorkcellTAT, minTest);\r\n maxTest = Math.max(valWorkcellTAT, maxTest);\r\n\r\n const valWorkcellTATAnalytic = Math.round(resultSimulation.Where(e => e.workcellId !== undefined && e.startTime != null && e.startTime.getHours() === i).Select(e => (e as WorkListWorkcellItem).TATInterne).Average());\r\n testsWorkcellTATAnalytic.push(Math.round((valWorkcellTATAnalytic / 60) * 10) / 10);\r\n testsWorkcellTAT.push(Math.round((valWorkcellTAT / 60) * 10) / 10);\r\n }\r\n\r\n\r\n if (this.tatModeFilter != 'workcell' && resultSimulation.Where(e => e.dateAndTime != null && e.dateAndTime.getHours() === i && !e.workcellId).Count() === 0) {\r\n tests.push(0);\r\n // testsWorkcell.push({0,0});\r\n }\r\n else if (this.tatModeFilter != 'workcell') {\r\n const val = Math.round(resultSimulation.Where(e => !e.workcellId && e.dateAndTime != null && e.dateAndTime.getHours() === i).Select(e => e.TAT).Average());\r\n minTest = Math.min(val, minTest);\r\n maxTest = Math.max(val, maxTest);\r\n tests.push(Math.round((val / 60) * 10) / 10);\r\n }\r\n \r\n \r\n\r\n \r\n }\r\n\r\n\r\n // get table information\r\n this.tatTestLine.N = resultSimulation.Count();\r\n this.tatTestLine.Average = this.transformSecondInMinuteString(Math.round(resultSimulation.Select(d => d.TAT).Sum() / resultSimulation.Count()));\r\n this.tatTestLine.Minimum = this.transformSecondInMinuteString(minTest);\r\n this.tatTestLine.Maximum = this.transformSecondInMinuteString(maxTest);\r\n this.tatTestLine.SD = Math.round(this.serviceCalculSimulation.standardDeviation(resultSimulation.Select(d => d.TAT).ToArray()));\r\n // transform in minutes\r\n if (!isFinite(this.tatTestLine.SD)) {\r\n this.tatTestLine.SD = 0;\r\n }\r\n\r\n\r\n let dataSets = [] ;\r\n if (this.service.hasStandAlone(this.value) && this.tatModeFilter != 'workcell' ) {\r\n dataSets.push({\r\n label: 'TAT standalone',\r\n data: tests,\r\n fill: false,\r\n borderColor: this.graphService.blueColor,\r\n backgroundColor: this.graphService.blueColor \r\n });\r\n }\r\n if (this.service.hasWorkcell(this.value) && this.tatModeFilter != 'standalone' ) {\r\n dataSets.push( {\r\n label: 'Préanalytic',\r\n data: testsWorkcellTATAnalytic,\r\n fill: false,\r\n borderColor: this.graphService.greenColor,\r\n backgroundColor:this.graphService.greenColor,\r\n stack: 'Stack 1'\r\n });\r\n dataSets.push({\r\n label: 'Analytic',\r\n data: testsWorkcellTAT,\r\n fill: false,\r\n borderColor: this.graphService.lightRedColor,\r\n backgroundColor:this.graphService.lightRedColor,\r\n stack: 'Stack 1'\r\n });\r\n }\r\n \r\n\r\n \r\n this.dataTatChart = {\r\n labels: ['0h', '1h', '2h', '3h', '4h', '5h', '6h', '7h', '8h', '9h', '10h', '11h', '12h'\r\n , '13h', '14h', '15h', '16h', '17h', '18h', '19h', '20h', '21h', '22h', '23h'],\r\n datasets: dataSets\r\n };\r\n\r\n }\r\n\r\n\r\n transformSecondInMinuteString(seconds: number): string {\r\n if (isFinite(seconds)) {\r\n\r\n const minutes: number = Math.trunc(seconds / 60);\r\n const second: number = seconds % 60;\r\n return '' + minutes + 'min' + second;\r\n }\r\n return '0';\r\n }\r\n\r\n\r\n getWorkloadData(testsSelected: SimulationActivity[]) {\r\n\r\n let resultSimulation = new List() ; \r\n if (this.workloadModeFilter != 'workcell')\r\n resultSimulation.AddRange(this.resultSimulation);\r\n if (this.workloadModeFilter != 'standalone')\r\n resultSimulation.AddRange(this.resultSimulationWorkcell);\r\n\r\n\r\n\r\n\r\n\r\n if (testsSelected != null && testsSelected.length > 0) {\r\n resultSimulation = resultSimulation.Where(r => testsSelected.some(e => e.testId === r.testId)).ToList();\r\n }\r\n\r\n\r\n this.dataWorkloadChart = {\r\n labels: [],\r\n datasets: [\r\n {\r\n\r\n label: this.translateService.instant('Workflow_Extansion_QoTe'),\r\n data: [],\r\n backgroundColor: []\r\n },\r\n {\r\n\r\n label: this.translateService.instant('Workflow_Extansion_QoTu'),\r\n data: [],\r\n backgroundColor: []\r\n }]\r\n };\r\n // {\r\n // label: 'TAT time',\r\n // data: tests,\r\n // fill: false,\r\n\r\n // }\r\n\r\n for (const instrument of this.value.instruments) {\r\n this.dataWorkloadChart.labels.push(instrument.name);\r\n this.dataWorkloadChart.datasets[0].data.push(resultSimulation.Count(d => d.instrumentId === instrument.id));\r\n // tube\r\n // if (this.value.workflowMode === 'QoTu') {\r\n this.dataWorkloadChart.datasets[1].data.push(resultSimulation.Where(d => d.instrumentId === instrument.id).Select(c => c.sampleId).Distinct().Count());\r\n// }\r\n // this.dataWorkloadChart.datasets[0].backgroundColor.push('rgba(' + Math.floor(Math.random() * 255) + ', ' + Math.floor(Math.random() * 255) + ', ' + Math.floor(Math.random() * 255) + ', 1)');\r\n // this.dataWorkloadChart.datasets[1].backgroundColor.push('rgba(' + Math.floor(Math.random() * 255) + ', ' + Math.floor(Math.random() * 255) + ', ' + Math.floor(Math.random() * 255) + ', 1)');\r\n\r\n // this.dataWorkloadChart.datasets.push({ resultSimulation.Count(d => d.instrumentId === instrument.id));\r\n\r\n }\r\n// add workcellpart\r\nfor(const workcell of this.value.instrumentsWorkcell)\r\n{\r\n for(const instr of workcell.instruments)\r\n {\r\n this.dataWorkloadChart.labels.push(instr.name) ;\r\n this.dataWorkloadChart.datasets[0].data.push(resultSimulation.Count(d => d.instrumentId === instr.id));\r\n this.dataWorkloadChart.datasets[1].data.push(resultSimulation.Where(d => d.instrumentId === instr.id).Select(c => c.sampleId).Distinct().Count());\r\n\r\n }\r\n}\r\n\r\n\r\n\r\n this.dataWorkloadChart.datasets[0].backgroundColor = this.backgroundColor;\r\n this.dataWorkloadChart.datasets[1].backgroundColor = this.backgroundColorLight;\r\n\r\n // clone chart data\r\n this.dataWorkloadChartBar = JSON.parse(JSON.stringify(this.dataWorkloadChart));\r\n this.dataWorkloadChartBar.datasets[0].backgroundColor = this.backgroundColor[1];\r\n this.dataWorkloadChartBar.datasets[1].backgroundColor = this.backgroundColor[0];\r\n\r\n }\r\n\r\n\r\n pad(num: number, size: number): string {\r\n let s = num + '';\r\n while (s.length < size) {\r\n s = '0' + s;\r\n }\r\n return s;\r\n }\r\n\r\n\r\n edit() {\r\n this.service.edit(this.value);\r\n }\r\n\r\n onLoadFailed(error: any) {\r\n this.value = null;\r\n this.message = error;\r\n }\r\n\r\n optionsTatChart = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n title: {\r\n display: true,\r\n text: this.translateService.instant('Simulation_GraphTAT')\r\n },\r\n legend: {\r\n display: true,\r\n position: 'bottom'\r\n },\r\n scales: {\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n beginAtZero: true // minimum value will be 0.\r\n }\r\n }]\r\n },\r\n x: {\r\n stacked: true,\r\n },\r\n y: {\r\n stacked: true\r\n }\r\n\r\n };\r\n optionsActivityChart = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n title: {\r\n display: true,\r\n text: this.translateService.instant('Simulation_GraphNumberByHour')\r\n },\r\n legend: {\r\n display: true,\r\n position: 'bottom'\r\n },\r\n scales: {\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n beginAtZero: true // minimum value will be 0.\r\n }\r\n }]\r\n }\r\n\r\n };\r\n\r\n optionsChargeChart = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n title: {\r\n display: true,\r\n text: this.translateService.instant('Simulation_GraphChargeByHour')\r\n },\r\n legend: {\r\n display: true,\r\n position: 'bottom'\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (tooltipItem, data) {\r\n let value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n value = Math.round(value);\r\n const datasetLabel = data.datasets[tooltipItem.datasetIndex].label;\r\n if (tooltipItem.datasetIndex == 0) {\r\n return datasetLabel + ' - ' + value + '%';\r\n } else {\r\n return datasetLabel + ' - ' + value;\r\n }\r\n }\r\n }\r\n },\r\n scales: {\r\n yAxes: [{\r\n type: 'linear',\r\n display: true,\r\n position: 'left',\r\n id: 'y-axis-1',\r\n gridLines: {\r\n display: false\r\n }, ticks: {\r\n beginAtZero: true // minimum value will be 0.\r\n },\r\n labels: {\r\n show: true,\r\n\r\n }\r\n }, {\r\n type: 'linear',\r\n display: true,\r\n position: 'right',\r\n id: 'y-axis-2',\r\n gridLines: {\r\n display: false\r\n },\r\n\r\n ticks: {\r\n beginAtZero: true, // minimum value will be 0.\r\n min: 0,\r\n max: 100,\r\n stepSize: 10\r\n },\r\n labels: {\r\n show: true,\r\n\r\n }\r\n }]\r\n }\r\n\r\n };\r\n\r\n\r\n optionsWorkloadChartPie = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n title: {\r\n display: true,\r\n text: this.translateService.instant('Simulation_GraphWorkload')\r\n },\r\n legend: {\r\n display: true,\r\n position: 'bottom'\r\n },\r\n scales: {\r\n xAxes: [{\r\n ticks: {\r\n min: 0\r\n }\r\n }],\r\n yAxes: [{\r\n ticks: {\r\n min: 0\r\n }\r\n }]\r\n\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: function (tooltipItem, data) {\r\n const value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n const datasetLabel = data.datasets[tooltipItem.datasetIndex].label;\r\n if (tooltipItem.datasetIndex == 0) {\r\n return datasetLabel + ' - ' + value + ' tests';\r\n } else {\r\n return datasetLabel + ' - ' + value + ' tubes';\r\n }\r\n }\r\n }\r\n },\r\n\r\n // tooltips:\r\n // {\r\n // callbacks: {\r\n // afterLabel: function (tooltipItems, data) {\r\n // return data.datasets[tooltipItems.datasetIndex].label ;\r\n // }\r\n // }\r\n // }\r\n };\r\n\r\n\r\n optionsWorkloadChart = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n title: {\r\n display: true,\r\n text: this.translateService.instant('Simulation_GraphWorkload')\r\n },\r\n legend: {\r\n display: true,\r\n position: 'bottom'\r\n },\r\n scales: {\r\n xAxes: [{\r\n ticks: {\r\n min: 0\r\n }\r\n }],\r\n yAxes: [{\r\n ticks: {\r\n min: 0\r\n }\r\n }]\r\n },\r\n tooltips:\r\n {\r\n callbacks: {\r\n label: function (tooltipItems, data) {\r\n return data.datasets[tooltipItems.datasetIndex].label + ': ' + tooltipItems.yLabel + '';\r\n }\r\n }\r\n }\r\n // ,\r\n // scales: {\r\n // yAxes: [{\r\n // ticks: {\r\n // min: 0,\r\n // max: 2000\r\n // }\r\n // }]\r\n // }\r\n\r\n\r\n };\r\n\r\n\r\n onUpdateOrCreateSimulation(simulation: Simulation) {\r\n // refresh if same url !\r\n if (simulation.id && this.id === simulation.id) {\r\n window.location.reload();\r\n } else {\r\n this.router.navigate(['/simulation/view', simulation.id]);\r\n }\r\n }\r\n getDateWorkcellHM(date: Date, hm: boolean) {\r\n const convertTime = moment(date).format(\"YYYY-MM-DD HH:mm:ss\");\r\n var converted = new Date(convertTime);\r\n if (hm) return this.getDateHM(converted);\r\n else return this.getDateHMS(converted);\r\n }\r\n\r\n getDateHM(date: Date) {\r\n \r\n let hours = date.getHours().toString();\r\n\r\n if (hours.length === 1) { hours = '0' + hours; }\r\n\r\n let minutes = date.getMinutes().toString();\r\n\r\n if (minutes.length === 1) { minutes = newLocal + minutes; }\r\n\r\n return hours + ':' + minutes;\r\n }\r\n\r\n getDateHMS(date: Date) {\r\n if (!date)\r\n return '';\r\n let hours = date.getHours().toString();\r\n\r\n if (hours.length === 1) {\r\n hours = '0' + hours;\r\n }\r\n\r\n let minutes = date.getMinutes().toString();\r\n\r\n if (minutes.length === 1) {\r\n minutes = '0' + minutes;\r\n }\r\n\r\n let seconds = date.getSeconds().toString();\r\n\r\n if (seconds.length === 1) {\r\n seconds = '0' + seconds;\r\n }\r\n\r\n return hours + ':' + minutes + ':' + seconds;\r\n }\r\n\r\n getInstrumentName(instrumentId:string): string {\r\n //return this.instrumentsSimulation.find(d => d.instrumentId === instrumentId).name;\r\n var obj = this.value.instruments.find(c => c.id === instrumentId);\r\n if (obj != undefined)\r\n return obj.name;\r\n }\r\n\r\n getWorkcellName(workcellId: string) : string {\r\n var obj = this.value.instrumentsWorkcell.find(e=> e.id == workcellId);\r\n if (obj != undefined)\r\n return obj.name;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulation-view-details.component.ts","module.exports = \"
\\r\\n

{{ 'Simulation_Header' | translate }} ({{getSimulationCount()}})

\\r\\n
    \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{ simulation.name }}
\\r\\n {{ simulation.date | userdate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ getLaboratory(simulation).clientNumber }}{{ getLaboratory(simulation).city }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{getInstrumentsBySimuByLab(simulation, 1)}}\\r\\n {{getInstrumentsBySimuByLab(simulation, 2)}}\\r\\n {{getInstrumentsBySimuByLab(simulation, 3)}}\\r\\n {{getWorkcellsBySimuByLab(simulation)}} ({{getWorkcellsInstBySimuByLab(simulation) }})\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{getTestByDayBySimu(simulation)}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulations.component.html\n// module id = ../../../../../src/app/components/simulations/simulations.component.html\n// module chunks = main","import { SimulationEditComponent } from './simulation-edit.component';\r\nimport { Component, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { ExtentedFormControl } from './../../../common/forms/ExtentedFormControl';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DropDownLabel } from '../../../common';\r\nimport { PagedDataSource } from '../../../models/PagedDataSource';\r\nimport { Simulation } from '../../../models/Simulation';\r\nimport { Instrument } from '../../../models/Instrument';\r\nimport { Laboratory } from '../../../models/Laboratory';\r\nimport { SimulationService } from '../../../services/SimulationService';\r\nimport { InstrumentService } from '../../../services/InstrumentService';\r\nimport { LaboratoryService } from '../../../services/LaboratoryService';\r\nimport { CalculSimulationService } from '../../../services/CalculSimulationService';\r\n\r\n@Component({\r\n selector: 'simulations',\r\n templateUrl: './simulations.component.html'\r\n})\r\nexport class SimulationsComponent {\r\n @ViewChild('simulationEdit') simulationEdit: SimulationEditComponent;\r\n public simulations: PagedDataSource;\r\n public sortProperties = new PagedDataSource();\r\n instruments: Instrument[];\r\n laboratories: Laboratory[];\r\n sort: ExtentedFormControl;\r\n allSimulationTestCount: { [id: string]: number } = {};\r\n searchTerm: string;\r\n\r\n constructor(\r\n private service: SimulationService,\r\n private router: Router,\r\n private translateService: TranslateService,\r\n private instrumentService: InstrumentService,\r\n private laboratoryService: LaboratoryService,\r\n private calculSimulationService: CalculSimulationService\r\n ) {\r\n this.service.get().subscribe(result => {\r\n this.simulations = result as PagedDataSource;\r\n });\r\n\r\n this.allSimulationTestCount = {};\r\n this.instrumentService.get().subscribe(res => (this.instruments = res.items as Instrument[]));\r\n this.laboratoryService.get().subscribe(res => (this.laboratories = res.items as Laboratory[]));\r\n this.sort = new ExtentedFormControl('', null, null, null, 0);\r\n this.sortProperties.items = new Array();\r\n this.sortProperties.items.push(new DropDownLabel('date', this.translateService.instant('Sort_ByDate'), true));\r\n\r\n for (const property of this.sortProperties.items) {\r\n if (property.isDefault === true) {\r\n this.sort.setValue(property.displayValue);\r\n this.sort.internalValue = property.value;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n getLaboratory(simulation: Simulation): Laboratory {\r\n if (this.laboratories != null) {\r\n return this.laboratories.find(x => x.id === simulation.laboratoryId);\r\n }\r\n }\r\n\r\n getInstrumentsBySimuByLab(simulation: Simulation, size: number) {\r\n let result = 0;\r\n if (simulation.instruments != null) {\r\n for (const key of simulation.instruments) {\r\n const instrument = this.getInstrumentById(key.instrumentId);\r\n if (instrument.size === size) {\r\n result++;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n \r\n getWorkcellsInstBySimuByLab(simulation: Simulation) {\r\n let result=0;\r\n if (simulation.instrumentsWorkcell){\r\n var nbInstruments = simulation.instrumentsWorkcell.map(e=>e.nbInstruments) ;\r\n if (nbInstruments.length > 0)\r\n result = nbInstruments.reduce((e,f) => e+f);\r\n }\r\n return result;\r\n }\r\n getWorkcellsBySimuByLab(simulation: Simulation) {\r\n let result = 0;\r\n if (simulation.instrumentsWorkcell)\r\n result = simulation.instrumentsWorkcell.length;\r\n return result;\r\n }\r\n\r\n\r\n getTestByDayBySimu(simulation: Simulation, isWorkcell: boolean) {\r\n if (this.allSimulationTestCount[simulation.id] == null) {\r\n this.allSimulationTestCount[simulation.id] = this.calculSimulationService.getDailyTestOfSimulation(simulation, isWorkcell);\r\n }\r\n\r\n return this.allSimulationTestCount[simulation.id];\r\n }\r\n\r\n getSimulationCount() {\r\n if (this.simulations != null && this.simulations.items != null) {\r\n return this.simulations.items.length;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getInstrumentById(id: string) {\r\n if (id != null) {\r\n if (this.instruments != null) {\r\n for (let instrument of this.instruments) {\r\n instrument = instrument as Instrument;\r\n if (instrument.id === id) {\r\n return instrument;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n onUpdateOrCreateSimulation(simulation: Simulation) {\r\n // route to /simulation/view/id\r\n this.router.navigate(['/simulation/view', simulation.id]);\r\n }\r\n\r\n onImportSimulation() {\r\n this.simulationEdit.createSimulation();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/app/components/simulations/simulations.component.ts","import { TranslateLoader, TranslateService } from '@ngx-translate/core';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport * as LZString from 'lz-string';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class AppTranslateLoader implements TranslateLoader {\r\n private internalStorage: { [baseUrl: string]: string } = {};\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n getTranslation(lang: string) {\r\n return Observable.create(observer => {\r\n const translations = this.storageGetItem('ng2-translate-' + lang);\r\n\r\n if (translations) {\r\n observer.next(JSON.parse(translations));\r\n }\r\n\r\n // try to get from the webapi the traduction\r\n this.http.get('/api/translation?lang=' + lang).subscribe((res: any) => {\r\n observer.next(res);\r\n this.storageSetItem('ng2-translate-' + lang, JSON.stringify(res));\r\n observer.complete();\r\n });\r\n });\r\n }\r\n\r\n storageGetItem(urlAccess: string) {\r\n // try to get from item storage, if not accessible, get from temp data\r\n try {\r\n return this.decompressSource(localStorage.getItem(urlAccess));\r\n } catch (exception) {\r\n // localstorage not supported or size exceeded\r\n return this.decompressSource(this.internalStorage[urlAccess]);\r\n }\r\n }\r\n\r\n decompressSource(source: string): string {\r\n if (source === null || source === undefined) {\r\n return source;\r\n }\r\n\r\n if (source.startsWith('{')) {\r\n return source;\r\n } else {\r\n return LZString.decompressFromUTF16(source);\r\n }\r\n }\r\n\r\n storageSetItem(urlAccess: string, item: string) {\r\n // try to set from item storage, if not accessible set to temp data\r\n item = LZString.compressToUTF16(item);\r\n this.internalStorage[urlAccess] = item;\r\n try {\r\n localStorage.setItem(urlAccess, item);\r\n } catch (exception) {\r\n // nothing to do, localstorage not supported...\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/app-translate-loader.ts","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate, Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n CanActivateChild,\r\n CanLoad, Route\r\n} from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\nimport { UserService } from '../services/UserService';\r\nimport { AppSettingsService } from '../services/AppSettingsService';\r\nimport { PagedDataSource } from '../models/PagedDataSource';\r\nimport { AppSettings } from '../models/AppSettings';\r\n\r\n@Injectable()\r\nexport class AuthGuardToken implements CanActivate, CanActivateChild, CanLoad {\r\n tokenExpired = false;\r\n\r\n constructor(private authService: AuthService, private router: Router,\r\n private userService: UserService, private appSettingsService: AppSettingsService) {\r\n const user = this.userService.getCurrent();\r\n if (user == null) {\r\n this.tokenExpired = true;\r\n return;\r\n }\r\n\r\n this.appSettingsService.get().subscribe(sett => {\r\n const setting = (sett as PagedDataSource).items.find(e => e.name === 'TokenConnectionValidity');\r\n if (setting !== null && setting !== undefined) {\r\n if (this.diffdate(new Date(user.lastSeenDate), new Date()) > +setting.settings) {\r\n this.tokenExpired = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n const url: string = state.url;\r\n return this.checkLogin(url);\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.canActivate(route, state);\r\n }\r\n\r\n canLoad(route: Route): boolean {\r\n const url = '/${route.path}';\r\n\r\n return this.checkLogin(url);\r\n }\r\n\r\n checkLogin(url: string): boolean {\r\n if (!this.tokenExpired) {\r\n return true;\r\n }\r\n\r\n this.router.navigate(['/login']);\r\n return false;\r\n }\r\n\r\n diffdate(d1: Date, d2: Date) {\r\n const WNbJours = d2.getTime() - d1.getTime();\r\n return Math.ceil(WNbJours / (1000 * 60 * 60 * 24));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/auth-guard-token.service.ts","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate, Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n CanActivateChild,\r\n CanLoad, Route\r\n} from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanActivateChild, CanLoad {\r\n constructor(private authService: AuthService, private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n const url: string = state.url;\r\n return this.checkLogin(url);\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.canActivate(route, state);\r\n }\r\n\r\n canLoad(route: Route): boolean {\r\n const url = '/${route.path}';\r\n\r\n return this.checkLogin(url);\r\n }\r\n\r\n checkLogin(url: string): boolean {\r\n if (this.authService.isAuthenticated()) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = url;\r\n this.router.navigate(['./laboratory']);\r\n\r\n return false;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/auth-guard.service.ts","\r\nimport { Injectable } from '@angular/core';\r\nimport { User } from '../models/User';\r\nimport { UserService } from '../services/UserService';\r\n\r\n/**\r\n * Authentification Service\r\n */\r\n@Injectable()\r\nexport class AuthService {\r\n private user: User;\r\n redirectUrl: string;\r\n\r\n constructor(private _userService: UserService) {\r\n this._userService.get().subscribe(res => {\r\n this.user = res.items[0] as User;\r\n });\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n if (this.user != null) {\r\n return this.user.admin;\r\n } else {\r\n this._userService.get().subscribe(res => {\r\n this.user = res.items[0] as User;\r\n });\r\n setTimeout(() => {\r\n if (this.user != null) {\r\n return this.user.admin;\r\n }\r\n }, 2000);\r\n\r\n\r\n return false;\r\n }\r\n }\r\n\r\n logout(): void {\r\n this.user = null;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/auth.service.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n/**\r\n * Colonne pour les tables de type DataGrid avec tri\r\n */\r\n@Component({\r\n selector: 'datagrid-header',\r\n template: '{{title}}'\r\n})\r\nexport class DatagridHeaderComponent {\r\n @Input() public field: string;\r\n @Input() public title: string;\r\n @Input() public sortBy: string;\r\n @Input() public sortAsc: boolean;\r\n\r\n @Output() public sort = new EventEmitter();\r\n\r\n clicked() {\r\n this.sort.emit(this.field);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/components/datagrid-header.ts","// From ng2-bootstrap\r\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer, Self, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport interface PageChangedEvent {\r\n itemsPerPage: number;\r\n page: number;\r\n}\r\n\r\nexport const PAGINATION_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PaginationComponent),\r\n multi: true\r\n};\r\n\r\nconst PAGINATION_TEMPLATE = `\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n
\r\n `;\r\n\r\n@Component({\r\n selector: 'pagination',\r\n template: PAGINATION_TEMPLATE,\r\n providers: [PAGINATION_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class PaginationComponent implements ControlValueAccessor, OnInit {\r\n public config: any;\r\n /** if `true` aligns each link to the sides of pager */\r\n @Input() public align: boolean;\r\n /** limit number for page links in pager */\r\n @Input() public maxSize: number;\r\n /** if false first and last buttons will be hidden */\r\n @Input() public boundaryLinks: boolean;\r\n /** if false previous and next buttons will be hidden */\r\n @Input() public directionLinks: boolean;\r\n // labels\r\n /** first button text */\r\n @Input() public firstText: string;\r\n /** previous button text */\r\n @Input() public previousText: string;\r\n /** next button text */\r\n @Input() public nextText: string;\r\n /** last button text */\r\n @Input() public lastText: string;\r\n /** if true current page will in the middle of pages list */\r\n @Input() public rotate: boolean;\r\n // css\r\n /** add class to
  • */\r\n @Input() public pageBtnClass: string;\r\n\r\n /** if true pagination component will be disabled */\r\n @Input() public disabled: boolean;\r\n\r\n /** fired when total pages count changes, $event:number equals to total pages count */\r\n @Output() public numPages: EventEmitter = new EventEmitter();\r\n /** fired when page was changed, $event:{page, itemsPerPage} equals to object with current page index and number of items per page */\r\n @Output() public pageChanged: EventEmitter = new EventEmitter();\r\n\r\n /** maximum number of items per page. If value less than 1 will display all items on one page */\r\n @Input()\r\n public get itemsPerPage(): number {\r\n return this._itemsPerPage;\r\n }\r\n\r\n public set itemsPerPage(v: number) {\r\n this._itemsPerPage = v;\r\n this.totalPages = this.calculateTotalPages();\r\n }\r\n\r\n /** total number of items in all pages */\r\n @Input()\r\n public get totalItems(): number {\r\n return this._totalItems;\r\n }\r\n\r\n public set totalItems(v: number) {\r\n this._totalItems = v;\r\n this.totalPages = this.calculateTotalPages();\r\n }\r\n\r\n public get totalPages(): number {\r\n return this._totalPages;\r\n }\r\n\r\n public set totalPages(v: number) {\r\n this._totalPages = v;\r\n this.numPages.emit(v);\r\n if (this.inited) {\r\n this.selectPage(this.page);\r\n }\r\n }\r\n\r\n public set page(value: number) {\r\n const _previous = this._page;\r\n this._page = (value > this.totalPages) ? this.totalPages : (value || 1);\r\n\r\n if (_previous === this._page || typeof _previous === 'undefined') {\r\n return;\r\n }\r\n\r\n this.pageChanged.emit({\r\n page: this._page,\r\n itemsPerPage: this.itemsPerPage\r\n });\r\n }\r\n\r\n public get page(): number {\r\n return this._page;\r\n }\r\n\r\n public onChange: any = Function.prototype;\r\n public onTouched: any = Function.prototype;\r\n public renderer: Renderer;\r\n public elementRef: ElementRef;\r\n public classMap: string;\r\n public pages: any[];\r\n\r\n protected _itemsPerPage: number;\r\n protected _totalItems: number;\r\n protected _totalPages: number;\r\n protected inited: boolean = false;\r\n protected _page: number = 1;\r\n\r\n public constructor(renderer: Renderer, elementRef: ElementRef) {\r\n this.renderer = renderer;\r\n this.elementRef = elementRef;\r\n this.maxSize = 5;\r\n this.itemsPerPage = 10;\r\n this.boundaryLinks = true;\r\n this.directionLinks = true;\r\n this.firstText = '«';\r\n this.previousText = '‹';\r\n this.nextText = '›';\r\n this.lastText = '»';\r\n this.pageBtnClass = '';\r\n this.rotate = true;\r\n }\r\n\r\n public configureOptions(config: any): void {\r\n this.config = Object.assign({}, config);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\r\n // watch for maxSize\r\n this.maxSize = typeof this.maxSize !== 'undefined'\r\n ? this.maxSize\r\n : this.config.maxSize;\r\n this.rotate = typeof this.rotate !== 'undefined'\r\n ? this.rotate\r\n : this.config.rotate;\r\n this.boundaryLinks = typeof this.boundaryLinks !== 'undefined'\r\n ? this.boundaryLinks\r\n : this.config.boundaryLinks;\r\n this.directionLinks = typeof this.directionLinks !== 'undefined'\r\n ? this.directionLinks\r\n : this.config.directionLinks;\r\n this.pageBtnClass = typeof this.pageBtnClass !== 'undefined'\r\n ? this.pageBtnClass\r\n : this.config.pageBtnClass;\r\n\r\n // base class\r\n this.itemsPerPage = typeof this.itemsPerPage !== 'undefined'\r\n ? this.itemsPerPage\r\n : this.config.itemsPerPage;\r\n this.totalPages = this.calculateTotalPages();\r\n // this class\r\n this.pages = this.getPages(this.page, this.totalPages);\r\n this.inited = true;\r\n }\r\n\r\n public writeValue(value: number): void {\r\n this.page = value;\r\n this.pages = this.getPages(this.page, this.totalPages);\r\n }\r\n\r\n public getText(key: string): string {\r\n return (this as any)[key + 'Text'] || this.config[key + 'Text'];\r\n }\r\n\r\n public noPrevious(): boolean {\r\n return this.page === 1;\r\n }\r\n\r\n public noNext(): boolean {\r\n return this.page === this.totalPages;\r\n }\r\n\r\n public registerOnChange(fn: (_: any) => {}): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: () => {}): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public selectPage(page: number, event?: MouseEvent): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n if (!this.disabled) {\r\n if (event && event.target) {\r\n let target: any = event.target;\r\n target.blur();\r\n }\r\n this.writeValue(page);\r\n this.onChange(this.page);\r\n }\r\n }\r\n\r\n // Create page object used in template\r\n protected makePage(num: number, text: string, active: boolean): { number: number, text: string, active: boolean } {\r\n return { text, number: num, active };\r\n }\r\n\r\n protected getPages(currentPage: number, totalPages: number): any[] {\r\n let pages: any[] = [];\r\n\r\n // Default page limits\r\n let startPage = 1;\r\n let endPage = totalPages;\r\n let isMaxSized = typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\r\n\r\n // recompute if maxSize\r\n if (isMaxSized) {\r\n if (this.rotate) {\r\n // Current page is displayed in the middle of the visible ones\r\n startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\r\n endPage = startPage + this.maxSize - 1;\r\n\r\n // Adjust if limit is exceeded\r\n if (endPage > totalPages) {\r\n endPage = totalPages;\r\n startPage = endPage - this.maxSize + 1;\r\n }\r\n } else {\r\n // Visible pages are paginated with maxSize\r\n startPage = ((Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize) + 1;\r\n\r\n // Adjust last page if limit is exceeded\r\n endPage = Math.min(startPage + this.maxSize - 1, totalPages);\r\n }\r\n }\r\n\r\n // Add page number links\r\n for (let num = startPage; num <= endPage; num++) {\r\n let page = this.makePage(num, num.toString(), num === currentPage);\r\n pages.push(page);\r\n }\r\n\r\n // Add links to move between page sets\r\n if (isMaxSized && !this.rotate) {\r\n if (startPage > 1) {\r\n let previousPageSet = this.makePage(startPage - 1, '...', false);\r\n pages.unshift(previousPageSet);\r\n }\r\n\r\n if (endPage < totalPages) {\r\n let nextPageSet = this.makePage(endPage + 1, '...', false);\r\n pages.push(nextPageSet);\r\n }\r\n }\r\n\r\n return pages;\r\n }\r\n\r\n // base class\r\n protected calculateTotalPages(): number {\r\n let totalPages = this.itemsPerPage < 1\r\n ? 1\r\n : Math.ceil(this.totalItems / this.itemsPerPage);\r\n return Math.max(totalPages || 0, 1);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/components/pagination.ts","export class DropDownLabel {\r\n\r\n value: string;\r\n displayValue: string;\r\n isDefault: boolean;\r\n\r\n constructor(private theValue, private theDisplayValue, private theDefaultValue = false) {\r\n this.value = theValue;\r\n this.displayValue = theDisplayValue;\r\n this.isDefault = theDefaultValue;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/dropDownLabel.ts","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from './../shared-module';\r\n\r\nimport { PaginationComponent } from './../components/pagination';\r\nimport { DatagridHeaderComponent } from './../components/datagrid-header';\r\nimport { TextEditorComponent } from './editor-templates/text-editor';\r\nimport { TextAreaEditorComponent } from './editor-templates/textarea-editor';\r\nimport { DropdownEditorComponent } from './editor-templates/dropdown-editor';\r\nimport { DropdownMultiselectEditorComponent } from './editor-templates/dropdown-multiselect-editor';\r\nimport { CheckboxEditorComponent } from './editor-templates/checkbox-editor';\r\nimport { ModalDeleteConfirmComponent } from './ModalDeleteConfirmComponent';\r\nimport { ValidationMessageComponent } from './validation-message';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule.forRoot(),\r\n ],\r\n declarations: [\r\n PaginationComponent,\r\n TextEditorComponent,\r\n DropdownEditorComponent,\r\n DropdownMultiselectEditorComponent,\r\n CheckboxEditorComponent,\r\n DatagridHeaderComponent,\r\n ValidationMessageComponent,\r\n TextAreaEditorComponent,\r\n ModalDeleteConfirmComponent\r\n ],\r\n exports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n PaginationComponent,\r\n TextEditorComponent,\r\n TextAreaEditorComponent,\r\n DropdownEditorComponent,\r\n DropdownMultiselectEditorComponent,\r\n CheckboxEditorComponent,\r\n DatagridHeaderComponent,\r\n ValidationMessageComponent,\r\n ModalDeleteConfirmComponent\r\n ],\r\n})\r\nexport class ExtendedFormModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: ExtendedFormModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ExtendedFormModule.ts","import { FormControl, ValidatorFn, AsyncValidatorFn } from '@angular/forms';\r\n\r\nexport class ExtentedFormControl extends FormControl {\r\n public validationMessages: FormValidationMessage[];\r\n public internalValue: string;\r\n\r\n constructor(formState?: any, validator?: ValidatorFn | ValidatorFn[], asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[], validationMessages?: FormValidationMessage[], defaultValue?: any) {\r\n super(formState, validator, asyncValidator);\r\n this.validationMessages = validationMessages;\r\n this.setValue( defaultValue);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ExtentedFormControl.ts","import { FormGroup } from '@angular/forms';\r\nimport * as moment from 'moment/moment';\r\nimport { ExtentedFormControl } from './ExtentedFormControl';\r\n\r\n/**\r\n * Assure un rôle équivalent à AutoMapper.\r\n * Permet de mapper un object dans un FormGroup et inversement\r\n */\r\nexport class FormMapper {\r\n\r\n /**\r\n * Map un object dans un formulaire\r\n * @param value\r\n * @param form\r\n */\r\n public static mapTo(value: any, form: FormGroup) {\r\n for (let key in form.controls) {\r\n let ctr = form.controls[key];\r\n let val = value[key];\r\n if (val instanceof Date) {\r\n val = moment().format('L');\r\n }\r\n ctr.setValue(val);\r\n ctr.markAsPristine();\r\n }\r\n }\r\n\r\n public static mapFrom(form: FormGroup, value: any) {\r\n for (let key in form.controls) {\r\n \r\n let ctr = form.controls[key];\r\n let val = value[key];\r\n if (val instanceof Date) {\r\n val = moment(ctr.value, 'L');\r\n } else {\r\n if (ctr instanceof ExtentedFormControl && ctr.internalValue !== undefined) {\r\n val = ctr.internalValue;\r\n } else {\r\n val = ctr.value;\r\n }\r\n }\r\n\r\n value[key] = val;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/FormMapper.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { SynchronizableObject } from '../../models/SynchronizableObject';\r\nimport { CacheableService } from '../../services/CacheableService';\r\n\r\n@Component({\r\n selector: 'confirm-delete',\r\n template: `\r\n
    \r\n\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n

    {{ 'Common_Delete_Header' | translate }}

    \r\n
    \r\n
    \r\n \r\n {{ message | translate}}\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n `,\r\n providers: []\r\n})\r\nexport class ModalDeleteConfirmComponent {\r\n\r\n @Input() public item: SynchronizableObject;\r\n\r\n @Input() public nextRoute: string;\r\n @Input() public message: string;\r\n @Input() public service: CacheableService;\r\n @Output() public callback: EventEmitter = new EventEmitter();;\r\n @Input() public idForm = \"confirmDelete\";\r\n\r\n constructor(private router: Router) {\r\n this.message = 'Common_Delete';\r\n }\r\n\r\n\r\n ok() {\r\n if (this.callback) {\r\n this.callback.emit();\r\n }\r\n\r\n if (this.nextRoute) {\r\n this.service.delete(this.item);\r\n this.router.navigate([this.nextRoute]);\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ModalDeleteConfirmComponent.ts","import { Component, Input } from '@angular/core';\r\n\r\nconst PROGRESS_TEMPLATE = `\r\n
    \r\n \r\n \r\n \r\n
    `;\r\n\r\n/**\r\n * NotificationComponent displays notifications.\r\n * Use the NotificationMessageService to send a new notification.\r\n */\r\n@Component({\r\n selector: 'progress-circular',\r\n template: PROGRESS_TEMPLATE\r\n})\r\nexport class ProgressComponent {\r\n @Input()\r\n public isBusy: boolean;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ProgressComponent.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nconst TOGGLECOMPONENT_TEMPLATE = `\r\n
    \r\n \r\n \r\n \r\n
    `;\r\n\r\n@Component({\r\n selector: 'toggle-component',\r\n template: TOGGLECOMPONENT_TEMPLATE\r\n})\r\nexport class ToggleComponent {\r\n @Input()\r\n public isActive: boolean;\r\n \r\n @Output()\r\n public click = new EventEmitter();\r\n\r\n public clicked() {\r\n this.click.emit();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ToggleComponent.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nconst TOGGLECOMPONENT_TEMPLATE = `\r\n
    \r\n \r\n \r\n \r\n
    `;\r\n\r\n@Component({\r\n selector: 'toggle-component-select',\r\n template: TOGGLECOMPONENT_TEMPLATE\r\n})\r\nexport class ToggleComponentSelect {\r\n @Input()\r\n public isActive: boolean;\r\n \r\n @Output()\r\n public click = new EventEmitter();\r\n\r\n public clicked() {\r\n this.click.emit();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/ToggleComponentSelect.ts","import { Simulation } from './../../models/Simulation';\r\nimport { ImportedSimulationService } from './../../services/ImportedSimulationService';\r\nimport { TestService } from './../../services/TestService';\r\nimport { Test } from './../../models/Test';\r\nimport { Component, Output, EventEmitter } from '@angular/core';\r\nimport { ImportedSimulation } from '../../models/Simulation';\r\nimport { UserService } from '../../services/UserService';\r\nimport { User } from '../../models/User';\r\nimport { read, WorkBook } from 'xlsx';\r\nimport * as XLSX from 'xlsx';\r\nimport { SimulationActivity } from '../../models/SimulationActivity';\r\nimport { SimulationService } from '../../services/SimulationService';\r\n\r\n@Component({\r\n selector: 'upload-file',\r\n template: `\r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n {{ 'Simulation_ImportName' | translate}}\r\n {{simulation.name}}\r\n
    \r\n
    \r\n \r\n {{ 'Simulation_ImportHelper' | translate}}:\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {{ importError }}\r\n
    \r\n
    \r\n `,\r\n providers: []\r\n})\r\nexport class UploadFileComponent {\r\n\r\n simulationName: string;\r\n @Output() onImported = new EventEmitter();\r\n importedSimulation: ImportedSimulation = null;\r\n simulation: Simulation = null;\r\n alreadyExists = false;\r\n userId: string;\r\n importError: string;\r\n fileName: any;\r\n\r\n constructor(\r\n private userService: UserService,\r\n private importedSimulationService: ImportedSimulationService,\r\n private simulationService: SimulationService,\r\n private testService: TestService\r\n ) {\r\n this.userService.get().subscribe(res => {\r\n const user = res.items[0] as User;\r\n this.userId = user.id;\r\n });\r\n }\r\n\r\n importSimulation() {\r\n this.simulation = null;\r\n this.importedSimulationService.storageSetItem('importedSimulation', JSON.stringify(this.importedSimulation));\r\n this.onImported.emit(this.importedSimulation);\r\n this.clear();\r\n }\r\n\r\n onChange(event: EventTarget) {\r\n const eventObj: MSInputMethodContext = event;\r\n const target: HTMLInputElement = eventObj.target;\r\n const files: FileList = target.files;\r\n const frJson = new FileReader();\r\n const frXlsx = new FileReader();\r\n\r\n this.importError = null;\r\n this.simulation = null;\r\n this.importedSimulation = null;\r\n this.simulationName = null;\r\n this.alreadyExists = null;\r\n\r\n frJson.onload = function (e) {\r\n try {\r\n const resultSimulation = JSON.parse(e.target.result);\r\n this.doAnythingWithFile(resultSimulation);\r\n } catch (error) {\r\n this.importError = 'Cannot import this file';\r\n console.log(JSON.stringify(error));\r\n }\r\n }.bind(this);\r\n\r\n frXlsx.onload = function (e) {\r\n this.simulation = null;\r\n const bstr = new Uint8Array(e.target.result);\r\n const wb = read(bstr, { type: 'array', WTF: true });\r\n this.testService.get().subscribe(res => {\r\n const tests = res.items as Test[];\r\n this.parseWorkbook(wb, tests);\r\n });\r\n }.bind(this);\r\n\r\n const file = files[0];\r\n const extension = file.name.split('.').pop();\r\n switch (extension) {\r\n case 'xlsx':\r\n frXlsx.readAsArrayBuffer(file);\r\n break;\r\n default:\r\n frJson.readAsText(file);\r\n break;\r\n }\r\n }\r\n\r\n parseWorkbook(wb: WorkBook, tests: Test[]) {\r\n const simulation: ImportedSimulation = {};\r\n simulation.activities = [];\r\n const sheet = wb.Sheets['Data import for SAST'];\r\n simulation.nbDaysPerWeek = sheet['C5'].v;\r\n simulation.periodForQuantity = sheet['C6'].v;\r\n\r\n const workflowValue: string = sheet['C47'].v;\r\n if(workflowValue.toLowerCase().indexOf('quantity')){\r\n simulation.workflowModeBy = 'quantity';\r\n } else {\r\n simulation.workflowModeBy = 'percent';\r\n simulation.workflowModeBy = 'percent';\r\n }\r\n simulation.workflowModeBy = workflowValue.toLowerCase().indexOf('quantity') > -1 ? 'quantity' : 'percent';\r\n simulation.workflowModeAnd += workflowValue.toLowerCase().indexOf('tube') > -1 ? 'tube' : 'test';\r\n\r\n const range = XLSX.utils.decode_range(sheet['!ref']);\r\n for (let rowNum = range.s.r; rowNum <= range.e.r; rowNum++) {\r\n const cellInstruName = sheet[XLSX.utils.encode_cell({ r: rowNum, c: 2 })];\r\n if (cellInstruName && cellInstruName.v && tests.some(t => t.mnemonic === cellInstruName.v)) {\r\n const activity = new SimulationActivity();\r\n const instruName = cellInstruName.v;\r\n activity.testId = tests.find(t => t.mnemonic === instruName).id;\r\n\r\n const quantity = sheet[XLSX.utils.encode_cell({ r: rowNum, c: 3 })];\r\n activity.quantity = quantity ? quantity.v : 0;\r\n\r\n activity.active = activity.quantity > 0;\r\n\r\n const txRepasse = sheet[XLSX.utils.encode_cell({ r: rowNum, c: 4 })];\r\n activity.txRepasse = txRepasse ? txRepasse.v : 0;\r\n\r\n const txRedilution = sheet[XLSX.utils.encode_cell({ r: rowNum, c: 5 })];\r\n activity.txRedilution = txRedilution ? txRedilution.v : 0;\r\n\r\n const nbDilution = sheet[XLSX.utils.encode_cell({ r: rowNum, c: 6 })];\r\n activity.nbDilution = nbDilution ? nbDilution.v : 0;\r\n\r\n const nbBatch = sheet[XLSX.utils.encode_cell({ r: rowNum, c: 7 })];\r\n activity.dossierOuSerie = nbBatch ? !(nbBatch.v > 0) : false;\r\n activity.nbPerWeek = nbBatch ? nbBatch.v : 0;\r\n\r\n const startHour = sheet[XLSX.utils.encode_cell({ r: rowNum, c: 8 })];\r\n activity.startHour = startHour ? startHour.w.split(':')[0] : +'00';\r\n activity.startHour = activity.startHour.toString().length < 2 ? +('0' + activity.startHour) : activity.startHour;\r\n\r\n const isActivityWorkcell = sheet[XLSX.utils.encode_cell({ r: rowNum, c: 9 })];\r\n activity.workcell = isActivityWorkcell ? isActivityWorkcell.v : false;\r\n\r\n simulation.activities.push(activity);\r\n }\r\n }\r\n\r\n simulation.workflowHours = [];\r\n for (let i = 1; i < 25; i++) {\r\n const cell = sheet[XLSX.utils.encode_cell({ r: 49, c: i })];\r\n simulation.workflowHours.push(cell ? cell.v : 0);\r\n }\r\n\r\n this.importedSimulation = simulation;\r\n }\r\n\r\n doAnythingWithFile(e: Simulation) {\r\n this.alreadyExists = false;\r\n this.importedSimulation = null;\r\n this.simulation = e;\r\n\r\n // look if simulation already exists\r\n if (e.id) {\r\n this.simulationService.find(e.id).subscribe(res => {\r\n if (res) {\r\n this.alreadyExists = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n async override() {\r\n this.importError = null;\r\n this.importError = await this.simulationService.importSimulation(this.simulation, false, '', this.userId);\r\n }\r\n\r\n async createNew() {\r\n if (this.simulationName == null) {\r\n this.simulationName = this.simulation.name;\r\n }\r\n\r\n this.importError = null;\r\n this.importError = await this.simulationService.importSimulation(this.simulation, true, this.simulationName, this.userId);\r\n }\r\n\r\n clear() {\r\n this.fileName = null;\r\n this.importError = null;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/UploadFileComponent.ts","module.exports = \"
    \\r\\n \\r\\n \\r\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/checkbox-editor.html\n// module id = ../../../../../src/common/forms/editor-templates/checkbox-editor.html\n// module chunks = main","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ExtentedFormControl } from '../ExtentedFormControl';\r\n\r\n/**\r\n * Text editor\r\n */\r\n@Component({\r\n selector: 'checkbox-editor',\r\n templateUrl: './checkbox-editor.html'\r\n})\r\nexport class CheckboxEditorComponent {\r\n @Input() public title: string;\r\n\r\n @Input() public name: string;\r\n\r\n @Input() public control: ExtentedFormControl;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/checkbox-editor.ts","module.exports = \"
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{ control.value[displayPropertyName] }}\\r\\n {{ control.value }}\\r\\n {{ placeholder }}\\r\\n {{ selectedValue[displayPropertyName] }}\\r\\n {{ selectedValue }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/dropdown-editor.html\n// module id = ../../../../../src/common/forms/editor-templates/dropdown-editor.html\n// module chunks = main","\r\nimport * as $ from 'jquery';\r\nimport { Component, AfterContentInit, OnDestroy, Input, Output, ViewChild, ElementRef } from '@angular/core';\r\nimport { ExtentedFormControl } from '../ExtentedFormControl';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n/**\r\n * Text editor\r\n */\r\n@Component({\r\n selector: 'dropdown-editor',\r\n templateUrl: './dropdown-editor.html'\r\n})\r\nexport class DropdownEditorComponent implements AfterContentInit, OnDestroy {\r\n @Input() public items: any[];\r\n private isLoading = false;\r\n private isLoaded = false;\r\n private loadingError = false;\r\n\r\n\r\n @Input() public placeholder: string;\r\n @Input() public title: string;\r\n @Input() public up = false;\r\n @Input() public name: string;\r\n @Input() public displayPropertyName = 'name';\r\n @Input() public valuePropertyName: string;\r\n @Input() public control: ExtentedFormControl;\r\n @Input() public dataSource: () => Observable;\r\n\r\n @Output() public select = new EventEmitter();\r\n\r\n @Input() public selectedValue: any;\r\n\r\n\r\n @ViewChild('dropdown') public dropdown: ElementRef;\r\n\r\n constructor() {\r\n }\r\n\r\n public ngAfterContentInit() {\r\n $(this.dropdown.nativeElement).on('show.bs.dropdown', e => {\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n const jqueryElement = $(this.dropdown.nativeElement);\r\n jqueryElement.off('show.bs.dropdown');\r\n }\r\n\r\n // Chargement les donn?es uniquement au premier appel\r\n public onToggle(isOpen: boolean) {\r\n\r\n }\r\n\r\n public selectItem(event: any, item: any) {\r\n event.preventDefault();\r\n if (this.control != null) {\r\n if (this.valuePropertyName == null) {\r\n this.control.setValue(item);\r\n } else {\r\n this.control.setValue(item[this.displayPropertyName]);\r\n this.control.internalValue = item[this.valuePropertyName];\r\n }\r\n } else {\r\n this.selectedValue = item;\r\n }\r\n this.select.emit(item);\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/dropdown-editor.ts","module.exports = \"
    \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
      \\r\\n
    • \\r\\n All\\r\\n
    • \\r\\n
    • \\r\\n
      \\r\\n = 0\\\" class=\\\"glyphicon glyphicon-check\\\">\\r\\n = 0\\\">{{getValueFromObject(j,displayPropertyName)}}\\r\\n
      \\r\\n
      \\r\\n \\r\\n {{getValueFromObject(j,displayPropertyName)}}\\r\\n
      \\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/dropdown-multiselect-editor.html\n// module id = ../../../../../src/common/forms/editor-templates/dropdown-multiselect-editor.html\n// module chunks = main","\r\nimport * as $ from 'jquery';\r\nimport { Component, AfterContentInit, OnDestroy, Input, Output, ViewChild, ElementRef } from '@angular/core';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n/**\r\n * Text editor\r\n */\r\n@Component({\r\n selector: 'dropdown-multiselect-editor',\r\n templateUrl: './dropdown-multiselect-editor.html'\r\n})\r\nexport class DropdownMultiselectEditorComponent implements AfterContentInit, OnDestroy {\r\n @Input() public items: any[];\r\n\r\n @Input() public placeholder: string;\r\n\r\n @Input() public title: string;\r\n @Input() public up = false;\r\n @Input() public name: string;\r\n @Input() public displayPropertyName = 'name';\r\n @Input() public valuePropertyName: string;\r\n\r\n public selectedValues: any[] = [];\r\n\r\n @Input() public dataSource: () => Observable;\r\n @Output() public select = new EventEmitter();\r\n\r\n @ViewChild('dropdown') public dropdown: ElementRef;\r\n\r\n constructor() {\r\n }\r\n\r\n public ngAfterContentInit() {\r\n $(this.dropdown.nativeElement).on('show.bs.dropdown', e => {\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n const jqueryElement = $(this.dropdown.nativeElement);\r\n jqueryElement.off('show.bs.dropdown');\r\n }\r\n\r\n\r\n public selectItem(event: any, item: any) {\r\n event.preventDefault();\r\n\r\n // if already present, remove\r\n if (this.selectedValues.indexOf(item) >= 0) {\r\n this.selectedValues.splice(this.selectedValues.indexOf(item), 1);\r\n } else {\r\n this.selectedValues.push(item);\r\n }\r\n\r\n this.select.emit(this.selectedValues);\r\n event.stopPropagation();\r\n }\r\n\r\n public selectAll() {\r\n event.preventDefault();\r\n this.selectedValues = [];\r\n\r\n this.select.emit(this.selectedValues);\r\n }\r\n\r\n getValueFromObject(o: any, s: string) {\r\n s = s.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\r\n s = s.replace(/^\\./, ''); // strip a leading dot\r\n const a = s.split('.');\r\n for (let i = 0, n = a.length; i < n; ++i) {\r\n const k = a[i];\r\n if (k in o) {\r\n o = o[k];\r\n } else {\r\n return;\r\n }\r\n }\r\n return o;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/dropdown-multiselect-editor.ts","module.exports = \"
    \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/text-editor.html\n// module id = ../../../../../src/common/forms/editor-templates/text-editor.html\n// module chunks = main","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { ExtentedFormControl } from '../ExtentedFormControl';\r\n\r\n@Component({\r\n selector: 'text-editor',\r\n templateUrl: './text-editor.html'\r\n})\r\nexport class TextEditorComponent implements OnInit {\r\n @Input() title: string;\r\n @Input() password = false;\r\n @Input() name: string;\r\n @Input() control: ExtentedFormControl;\r\n @Input() extansion: string;\r\n @Input() extansionAsSplit: string;\r\n @Input() model: string;\r\n @Output() modelChange = new EventEmitter();\r\n @Input() placeholder = '';\r\n @Input() hourCorrection;\r\n @Input() disabled = 'false';\r\n @Input() validationRegex: string;\r\n public inputLength = '524288'; //html 5 default value\r\n\r\n ngOnInit() {\r\n if (this.hourCorrection) {\r\n this.inputLength = '2';\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n if (this.hourCorrection === 'true') {\r\n if (this.model) {\r\n if (this.model.toString().length < 2) {\r\n this.model = '0' + this.model;\r\n this.valueChange(null);\r\n }\r\n } else {\r\n this.model = '00';\r\n this.valueChange(null);\r\n }\r\n }\r\n }\r\n\r\n valueChange(event: any) {\r\n this.modelChange.emit(this.model);\r\n }\r\n\r\n leaveField(event: any) {\r\n if (this.hourCorrection) {\r\n if (this.model.length === 1) {\r\n this.modelChange.emit('0' + this.model);\r\n }\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/text-editor.ts","module.exports = \"
    \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
    \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/textarea-editor.html\n// module id = ../../../../../src/common/forms/editor-templates/textarea-editor.html\n// module chunks = main","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ExtentedFormControl } from '../ExtentedFormControl';\r\n\r\n/**\r\n * Text editor\r\n */\r\n@Component({\r\n selector: 'textarea-editor',\r\n templateUrl: './textarea-editor.html'\r\n})\r\nexport class TextAreaEditorComponent {\r\n @Input()\r\n public title: string;\r\n\r\n @Input()\r\n public name: string;\r\n\r\n @Input()\r\n public control: ExtentedFormControl;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/editor-templates/textarea-editor.ts","module.exports = \"
    \\r\\n
    \\r\\n {{item.message}}\\r\\n
    \\r\\n
    \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/validation-message.html\n// module id = ../../../../../src/common/forms/validation-message.html\n// module chunks = main","import { Component, Input } from '@angular/core';\r\nimport { ExtentedFormControl } from './ExtentedFormControl';\r\n\r\n/**\r\n * Validation Message Component\r\n */\r\n@Component({\r\n selector: 'validation-message',\r\n templateUrl: './validation-message.html'\r\n})\r\nexport class ValidationMessageComponent {\r\n @Input()\r\n public control: ExtentedFormControl;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/forms/validation-message.ts","import { Injectable } from '@angular/core';\r\nimport { BaseRequestOptions, RequestOptions } from '@angular/http';\r\n\r\n// Définit les paramètres par défaut des requete HTTP\r\n// On inclue systématiquement l'APIKEY\r\n@Injectable()\r\nexport class HttpRequestOptions extends BaseRequestOptions {\r\n\r\n constructor() {\r\n super();\r\n this.headers.set('ApiKey', 'DDC3CF04-00BE-4EF4-A2A8-D4D5E7234BFE');\r\n }\r\n}\r\n\r\nexport const requestOptionsProvider = { provide: RequestOptions, useClass: HttpRequestOptions };\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/http-request-options.ts","export * from './dropDownLabel';\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/index.ts","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { UserPreferenceService } from './user-preference-service';\r\nimport { requestOptionsProvider } from './http-request-options';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { AppTranslateLoader } from './app-translate-loader';\r\n\r\n@NgModule({\r\n imports: [\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useClass: AppTranslateLoader\r\n }\r\n }),\r\n ],\r\n exports: [\r\n TranslateModule,\r\n ],\r\n})\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: SharedModule,\r\n providers: [\r\n UserPreferenceService,\r\n requestOptionsProvider,\r\n ]\r\n };\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/shared-module.ts","import { Injectable } from '@angular/core';\r\n\r\n/**\r\n * Service de gestion des préférence utilisateur\r\n */\r\n@Injectable()\r\nexport class UserPreferenceService {\r\n\r\n public getLanguage(): string {\r\n return 'fr';\r\n }\r\n\r\n public getDateFormat(pattern: string): string {\r\n\r\n switch (pattern) {\r\n case 'mediumDate':\r\n return 'd/MM/y';\r\n case 'fullDate':\r\n return 'dd/MM/yyyy - hh:mm';\r\n default:\r\n return 'd/MM/y';\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/common/user-preference-service.ts","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/environments/environment.ts","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n.then(() => {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.register('/ngsw-worker.js') ;\r\n }\r\n})\r\n .catch(err => console.log(err));\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/main.ts","import { Simulation } from './Simulation';\r\nimport { SynchronizableBySimulationObject } from './SynchronizableObject';\r\n\r\nexport class ActivityFlux extends SynchronizableBySimulationObject {\r\n simulationId: string;\r\n hour: number;\r\n txTest: number;\r\n txTube: number;\r\n nbTest: number;\r\n nbTube: number;\r\n simulation: Simulation;\r\n workcell: boolean;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/ActivityFlux.ts","export class Constant {\r\n testId: string;\r\n instrumentId: number;\r\n echTime: number;\r\n riTime: number;\r\n transTime: number;\r\n incuTime: number;\r\n mesureTime: number;\r\n rdTime: number;\r\n prehTime: number;\r\n resultTime: number;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/Constant.ts","import { SynchronizableObject } from './SynchronizableObject';\r\nimport { Constant } from './Constant';\r\nimport { InstrumentTestOccupations } from './InstrumentTestOccupations';\r\nimport { Charge } from './Charge';\r\n\r\nexport class Instrument extends SynchronizableObject {\r\n name: string;\r\n size: number;\r\n // id: string;\r\n tests: InstrumentTestOccupations[];\r\n coefficient: number;\r\n constants: Constant[];\r\n charge: Charge;\r\n ratio?: number;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/Instrument.ts","import { Test } from './Test';\r\nimport { Instrument } from './Instrument';\r\n\r\nexport class InstrumentTestOccupations {\r\n test: Test;\r\n instrument: Instrument;\r\n occupationMax: number;\r\n testId: string;\r\n instrumentId: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/InstrumentTestOccupations.ts","import { SynchronizableObject } from './SynchronizableObject';\r\n\r\nexport class Laboratory extends SynchronizableObject {\r\n name: string;\r\n clientNumber: string;\r\n addressL1: string;\r\n addressL2: string;\r\n addressL3: string;\r\n country: string;\r\n city: string;\r\n postalCode: string;\r\n comments: string;\r\n userId: string;\r\n state: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/Laboratory.ts","export class PagedDataSource {\r\n totalCount: number;\r\n pageSize: number;\r\n pageIndex: number;\r\n items: T[];\r\n\r\n getPageCount(): number {\r\n return Math.floor(Math.ceil(this.totalCount / this.pageSize));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/PagedDataSource.ts","import { ActivityFlux } from './ActivityFlux';\r\nimport { SynchronizableByLaboratoryObject } from './SynchronizableObject';\r\nimport { SimulationActivity } from './SimulationActivity';\r\nimport { SimulationInstrument } from './SimulationInstrument';\r\nimport { SimulationInstrumentWorkcell } from './SimulationInstrumentWorkcell';\r\nimport { SimulationWorkcell } from './SimulationWorkcell';\r\n\r\nexport class Simulation extends SynchronizableByLaboratoryObject {\r\n name: string;\r\n date: Date;\r\n lastUpdateDate: Date;\r\n nbDaysPerWeek: number;\r\n workflowMode: string;\r\n workflowUrgent: number;\r\n workflowTotal: number;\r\n periodForQuantity: string;\r\n activities: SimulationActivity[];\r\n instruments: SimulationInstrument[];\r\n instrumentsWorkcell: SimulationWorkcell[];\r\n dayRepartition: ActivityFlux[];\r\n dayRepartitionWorkcell: ActivityFlux[];\r\n\r\n}\r\n\r\nexport interface ImportedSimulation {\r\n activities?: SimulationActivity[];\r\n workflowHours?: number[];\r\n workflowWorkcellHours?: number[];\r\n nbDaysPerWeek?: number;\r\n periodForQuantity?: string;\r\n workflowModeBy?: string;\r\n workflowModeAnd?: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/Simulation.ts","import { SynchronizableBySimulationObject } from './SynchronizableObject';\r\nimport { Test } from './Test';\r\n\r\nexport class SimulationActivity extends SynchronizableBySimulationObject {\r\n txRepasse: number;\r\n txRedilution: number;\r\n nbDilution: number;\r\n quantity: number;\r\n quantityType: boolean;\r\n dossierOuSerie: boolean;\r\n active: boolean;\r\n startHour: number;\r\n nbPerWeek: number;\r\n test: Test;\r\n testId: string;\r\n workcell: boolean;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationActivity.ts","import { Test } from './Test';\r\nimport { SynchronizableBySimulationObject } from './SynchronizableObject';\r\nimport { Instrument } from './Instrument';\r\n\r\nexport class SimulationInstrument extends SynchronizableBySimulationObject {\r\n name: string;\r\n instrumentId: string;\r\n simulationInstrumentTest: Test[];\r\n instrument: Instrument;\r\n internalId: number;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationInstrument.ts","import { Test } from './Test';\r\nimport { SynchronizableBySimulationObject } from './SynchronizableObject';\r\nimport { Instrument } from './Instrument';\r\nimport { SimulationInstrument } from './SimulationInstrument';\r\n\r\nexport class SimulationInstrumentWorkcell extends SimulationInstrument {\r\n mirror: boolean;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationInstrumentWorkcell.ts","import { Instrument } from './Instrument';\r\nimport { SimulationWorkcell } from './SimulationWorkcell';\r\n\r\nexport class vm_Global {\r\n instruments: vm_Instrument[] = [];\r\n workcells : vm_Workcell[] = [];\r\n categories: vm_Category[] = [];\r\n}\r\n\r\n\r\nexport class vm_Instrument {\r\n name: string;\r\n checked: boolean;\r\n instrument: Instrument;\r\n instrumentId: string;\r\n categories: vm_Category[];\r\n}\r\n\r\nexport class vm_Workcell extends vm_Instrument {\r\n workcell: SimulationWorkcell;\r\n instruments: vm_WorkcellInstrument[] = [];\r\n}\r\n\r\n\r\nexport class vm_WorkcellInstrument extends vm_Instrument {\r\n mirror: boolean = true;\r\n}\r\n\r\n\r\nexport class vm_Category {\r\n name: string;\r\n id: string;\r\n tests: vm_Test[];\r\n checked: boolean;\r\n}\r\n\r\nexport class vm_Test {\r\n mnemonic: string;\r\n id: string;\r\n diluable: boolean;\r\n rediluable: boolean;\r\n checked: boolean;\r\n txRepasse: number;\r\n txRedilution: number;\r\n nbDilution: number;\r\n quantity: number;\r\n quantityType: boolean;\r\n dossierOuSerie: boolean;\r\n workcell: boolean=false;\r\n active: boolean;\r\n startHour: number;\r\n nbPerWeek: number;\r\n categoryid: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationViewModel.ts","import { Test } from './Test';\r\nimport { SynchronizableBySimulationObject } from './SynchronizableObject';\r\nimport { Instrument } from './Instrument';\r\nimport { SimulationInstrument } from './SimulationInstrument';\r\nimport { SimulationInstrumentWorkcell } from './SimulationInstrumentWorkcell';\r\n\r\nexport class SimulationWorkcell extends SynchronizableBySimulationObject {\r\n name: string;\r\n simulationInstrumentTest: Test[];\r\n internalId: number;\r\n instruments : SimulationInstrumentWorkcell[]; \r\n outputModule: boolean;\r\n preanalytics: boolean;\r\n loadingCentrifuge: boolean;\r\n nbInstruments: number= 0;\r\n centrifugTime : number = 0 ;\r\n layout: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SimulationWorkcell.ts","\r\nimport { Laboratory } from './Laboratory';\r\nimport { Simulation } from './Simulation';\r\n\r\nexport class SynchronizableObject {\r\n constructor() { }\r\n deleted: boolean;\r\n mode: string;\r\n id: string;\r\n}\r\n\r\n export class SynchronizableByLaboratoryObject extends SynchronizableObject {\r\n laboratoryId: string;\r\n laboratory: Laboratory;\r\n }\r\n\r\n\r\n export class SynchronizableBySimulationObject extends SynchronizableObject {\r\n simulationId: string;\r\n simulation: Simulation;\r\n }\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/SynchronizableObject.ts","import { SynchronizableBySimulationObject } from './SynchronizableObject';\r\nimport { Test } from './Test';\r\n\r\nexport class WorkListItem extends SynchronizableBySimulationObject {\r\n priority: number;\r\n TAT: number;\r\n dateAndTime: Date;\r\n sampleId: number;\r\n startTime: Date;\r\n resultsDateTime: Date;\r\n instrumentId: string;\r\n tests: Test[];\r\n serie: boolean;\r\n testId: string;\r\n test: Test;\r\n gainedTime: number;\r\n usedTime: number;\r\n workcellId: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/WorkListItem.ts","import { SimulationWorkcell } from './SimulationWorkcell';\r\nimport { SynchronizableBySimulationObject } from './SynchronizableObject';\r\nimport { Test } from './Test';\r\nimport { WorkListItem } from './WorkListItem';\r\n\r\nexport class WorkListWorkcellItem extends WorkListItem {\r\n instrumentId: string;\r\n dt_id: Date;\r\n batch_id: number;\r\n d_bras1: Date;\r\n sub_batch_id: number;\r\n d_bras2: Date;\r\n rack_id: number;\r\n instrument: number;\r\n d_r: Date;\r\n d_instr: Date;\r\n TATInterne: number;\r\n workcellId: string;\r\n workcell: SimulationWorkcell;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/WorkListWorkcellItem.ts","export class WorkcellGlobalSettings {\r\n Centri_Time : number ; // = +this.appSettings.find(e => e.name == \"Centri_Time\").settings;\r\n LoadArm_Time : number ; // = +this.appSettings.find(e => e.name == \"LoadArm_Time\").settings;\r\n LoadCage_Time : number ; // = +this.appSettings.find(e => e.name == \"LoadCage_Time\").settings;\r\n UnloadCage_Time : number ; // = +this.appSettings.find(e => e.name == \"UnloadCage_Time\").settings;\r\n SwapCage_Time : number ; // = +this.appSettings.find(e => e.name == \"SwapCage_Time\").settings;\r\n UnloadArm_Time : number ; // = +this.appSettings.find(e => e.name == \"UnloadArm_Time\").settings;\r\n Swing_Time : number ; // = +this.appSettings.find(e => e.name == \"Swing_Time\").settings;\r\n RackFree_Time : number ; // = +this.appSettings.find(e => e.name == \"RackFree_Time\").settings;\r\n Transfert_Time : number ; // = +this.appSettings.find(e => e.name == \"Transfert_Time\").settings;\r\n}\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/WorkcellGlobalSettings.ts","import { SimulationWorkcell } from \"./SimulationWorkcell\";\r\n\r\nexport class WorkcellParams {\r\n workcellId: string;\r\n workcell: SimulationWorkcell;\r\n t_centri: number;\r\n t1: number;\r\n t2: number;\r\n t3: number;\r\n t4: number;\r\n t5: number;\r\n t6: number;\r\n t7: number;\r\n t_swing: number;\r\n t_min_lib_rack: number;\r\n transfert_s : number;\r\n \r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/models/WorkcellParams.ts","import { Inject, Pipe, LOCALE_ID, PipeTransform } from '@angular/core';\r\nimport * as moment from 'moment/moment';\r\nimport { UserService } from '../services/UserService';\r\nimport { User } from '../models/User';\r\n\r\n\r\n/**\r\n * Date Pipe personnalisé.\r\n * A noter qu'on ne peut pas dériver du Pipe natif DatePipe (contrainte Angular). On va donc faire de l'aggregation.\r\n *\r\n */\r\n@Pipe({ name: 'userdate' })\r\nexport class UserDatePipe implements PipeTransform {\r\n\r\n private userPattern: string;\r\n\r\n constructor( @Inject(UserService) private _userService: UserService) {\r\n const users = this._userService.get();\r\n users.subscribe(res => {\r\n this.userPattern = (res.items[0] as User).dateFormat;\r\n });\r\n }\r\n\r\n transform(value: any): string {\r\n return moment(value).format(this.userPattern);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/date-pipe.ts","export * from './date-pipe';\r\nexport * from './orderby-pipe';\r\nexport * from './search-pipe';\r\nexport * from './search-simulation-pipe';\r\nexport * from './order-worklist-pipe';\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/index.ts","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { WorkListItem } from '../models/WorkListItem';\r\n\r\n@Pipe({ name: 'sortArrayOfWorklistItem' })\r\nexport class SortArrayOfWorklistItemPipe implements PipeTransform {\r\n\r\n transform(arr: WorkListItem[], args: any): WorkListItem[] {\r\n return arr.sort((a, b) => {\r\n if (a.sampleId > b.sampleId) {\r\n return 1;\r\n }\r\n if (a.sampleId < b.sampleId) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/order-worklist-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'orderByCategory' })\r\nexport class OrderByCategory implements PipeTransform {\r\n transform(items: Array, args: string, order: string = 'ASC'): Array {\r\n items.sort((a: any, b: any) => {\r\n if (order === 'DESC') {\r\n if (a[args] > b[args]) {\r\n return -1;\r\n } else if (a[args] < b[args]) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n } else {\r\n if (a[args] < b[args]) {\r\n return -1;\r\n } else if (a[args] > b[args]) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n });\r\n return items;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/orderby-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'searchCategory' })\r\nexport class SearchCategory implements PipeTransform {\r\n transform(items: any[], searchTerm: string = ''): any {\r\n if (items != null) {\r\n return items.filter(item => ((item.city !== null && item.city.toLowerCase().indexOf(searchTerm.toLocaleLowerCase()) !== -1) ||\r\n (item.clientNumber !== null && item.clientNumber.toLowerCase().indexOf(searchTerm.toLocaleLowerCase()) !== -1) ||\r\n (item.name !== null && item.name.toLowerCase().indexOf(searchTerm.toLocaleLowerCase()) !== -1)));\r\n }\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/search-pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'searchSimulation' })\r\nexport class SearchSimulation implements PipeTransform {\r\n transform(items: any[], searchTerm: string = ''): any {\r\n return items.filter(item => item.name != null && (item.name.toLowerCase().indexOf(searchTerm.toLocaleLowerCase()) !== -1));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/pipes/search-simulation-pipe.ts","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CacheableService } from './CacheableService';\r\nimport { HelloService } from './HelloService';\r\nimport { WorkcellGlobalSettings } from '../models/WorkcellGlobalSettings';\r\nimport { Observable } from 'rxjs/Observable';\r\n/**\r\n * Service of Application Settings\r\n */\r\n@Injectable()\r\nexport class AppSettingsService extends CacheableService {\r\n \r\n save(param: WorkcellGlobalSettings) : Observable {\r\n return this.http\r\n .post(this.baseUrl + '/saveAsAdmin' , param)\r\n ;\r\n }\r\n\r\n \r\n\r\n\r\n constructor(http: HttpClient, helloService: HelloService) {\r\n super(http, '/api/appsettings', helloService);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/AppSettingsService.ts","import { Output, EventEmitter } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { PagedDataSource } from './../models/PagedDataSource';\r\nimport { UUID } from 'angular2-uuid';\r\n\r\nimport * as LZString from 'lz-string';\r\nimport { HelloService } from './HelloService';\r\nimport { SynchronizableObject, SynchronizableByLaboratoryObject, SynchronizableBySimulationObject } from '../models/SynchronizableObject';\r\n\r\n/**\r\n * Service of laboratory\r\n */\r\nexport class CacheableService {\r\n @Output()\r\n public elementSynchronized = new EventEmitter();\r\n @Output()\r\n public elementNotSynchronized = new EventEmitter();\r\n @Output()\r\n public elementSynchronizing = new EventEmitter();\r\n\r\n public internalStorage: { [baseUrl: string]: string } = {};\r\n\r\n // isConnected: Observable;\r\n public userId: string;\r\n// change this to dev usage only ! set to True in prod !\r\n public compressStorage = true;\r\n\r\n constructor(protected http: HttpClient, protected baseUrl: string, protected helloService: HelloService) {\r\n this.helloService.connectionStatusChange.subscribe(res => {\r\n if (res) {\r\n this.synchronize();\r\n }\r\n });\r\n }\r\n\r\n public load() {\r\n // take care to save items before load :\r\n this.synchronize(false);\r\n\r\n this.http\r\n .get(this.baseUrl + '?pageIndex=0&pageSize=0&userId=' + this.helloService.userId)\r\n .subscribe((res: any) => this.storageSetItem(this.baseUrl, JSON.stringify(res)));\r\n }\r\n\r\n public get(): Observable> {\r\n // try to send before update local\r\n this.synchronize(false);\r\n\r\n return Observable.create(observer => {\r\n const instruments = this.storageGetItem(this.baseUrl);\r\n if (instruments) {\r\n // remove deleted items\r\n const result: PagedDataSource = JSON.parse(instruments);\r\n result.items = result.items.filter(s => !(s as SynchronizableObject).deleted);\r\n observer.next(result);\r\n }\r\n\r\n // try to get from the webapi the element\r\n this.http.get(this.baseUrl + '?pageIndex=0&pageSize=0&userId=' + this.helloService.userId).subscribe((res: any) => {\r\n observer.next(res);\r\n this.storageSetItem(this.baseUrl, JSON.stringify(res));\r\n observer.complete();\r\n });\r\n });\r\n }\r\n\r\n public getAsAdmin(): Observable> {\r\n // try to send before update local\r\n this.synchronize(false);\r\n\r\n return Observable.create(observer => {\r\n // try to get from the webapi the traduction\r\n this.http.get(this.baseUrl + '?pageIndex=0&pageSize=0&isAdmin=true&userId=' + this.helloService.userId).subscribe((res: any) => {\r\n observer.next(res);\r\n observer.complete();\r\n });\r\n });\r\n }\r\n\r\n public findByLaboratoryIdAsAdmin(id: string): Observable> {\r\n // search in local storage :\r\n return Observable.create(observer => {\r\n this.http.get(this.baseUrl + '?pageIndex=0&pageSize=0&isAdmin=true&userId=' + this.helloService.userId).subscribe((res: any) => {\r\n const arrayResult = new Array();\r\n for (const instr of res.items) {\r\n if (instr.laboratoryId === id && !instr.deleted) {\r\n arrayResult.push(instr);\r\n }\r\n }\r\n\r\n const result = new PagedDataSource();\r\n result.items = arrayResult;\r\n result.totalCount = arrayResult.length;\r\n observer.next(result);\r\n });\r\n });\r\n }\r\n\r\n public findAsAdmin(id: string): Observable {\r\n // search in local storage :\r\n // let list: Observable>;\r\n return Observable.create(observer => {\r\n this.http.get(this.baseUrl + '?pageIndex=0&pageSize=0&isAdmin=true&userId=' + this.helloService.userId).subscribe((res: any) => {\r\n for (const instr of res.items) {\r\n if (instr.id === id) {\r\n observer.next(instr);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n public find(id: string): Observable {\r\n // search in local storage :\r\n return Observable.create(observer => {\r\n const itemsStr = this.storageGetItem(this.baseUrl);\r\n if (itemsStr) {\r\n let itemJSON: PagedDataSource;\r\n itemJSON = JSON.parse(itemsStr);\r\n for (const instr of itemJSON.items) {\r\n if (instr.id === id && !instr.deleted) {\r\n observer.next(instr);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public findDirect(id: string): SynchronizableObject {\r\n const itemsStr = this.storageGetItem(this.baseUrl);\r\n if (itemsStr) {\r\n let itemJSON: PagedDataSource;\r\n itemJSON = JSON.parse(itemsStr);\r\n for (const instr of itemJSON.items) {\r\n if (instr.id === id && !instr.deleted) {\r\n return instr;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public findByLaboratoryId(id: string): Observable> {\r\n // search in local storage :\r\n return Observable.create(observer => {\r\n const itemsStr = this.storageGetItem(this.baseUrl);\r\n if (itemsStr) {\r\n let itemJSON: PagedDataSource;\r\n itemJSON = JSON.parse(itemsStr);\r\n\r\n const arrayResult = new Array();\r\n for (const instr of itemJSON.items) {\r\n if (instr.laboratoryId === id && !instr.deleted) {\r\n arrayResult.push(instr);\r\n }\r\n }\r\n\r\n const result = new PagedDataSource();\r\n result.items = arrayResult;\r\n result.totalCount = arrayResult.length;\r\n observer.next(result);\r\n }\r\n });\r\n }\r\n\r\n public editAll(list: PagedDataSource) {\r\n for (const item of list.items) {\r\n this.edit(item);\r\n }\r\n }\r\n\r\n public deleteBySimulationId(simulationId: string) {\r\n // update local cache\r\n const itemsStr = this.storageGetItem(this.baseUrl);\r\n if (itemsStr) {\r\n let itemJSON: PagedDataSource;\r\n itemJSON = JSON.parse(itemsStr);\r\n if (itemJSON) {\r\n for (const item of itemJSON.items) {\r\n if (item.simulationId === simulationId) {\r\n const index = itemJSON.items.indexOf(item);\r\n if (index !== -1) {\r\n itemJSON.items.splice(index, 1);\r\n }\r\n }\r\n }\r\n // save to localStorage\r\n this.storageSetItem(this.baseUrl, JSON.stringify(itemJSON));\r\n }\r\n }\r\n }\r\n\r\n public findBySimulationId(id: string): Observable> {\r\n // search in local storage :\r\n return Observable.create(observer => {\r\n const itemsStr = this.storageGetItem(this.baseUrl);\r\n if (itemsStr) {\r\n let itemJSON: PagedDataSource;\r\n itemJSON = JSON.parse(itemsStr);\r\n\r\n const arrayResult = new Array();\r\n for (const instr of itemJSON.items) {\r\n if (instr.simulationId === id) {\r\n arrayResult.push(instr);\r\n }\r\n }\r\n const result = new PagedDataSource();\r\n result.items = arrayResult;\r\n result.totalCount = arrayResult.length;\r\n observer.next(result);\r\n }\r\n });\r\n }\r\n\r\n public updateLocalCache(itemToEdit: SynchronizableObject) {\r\n // update local cache\r\n const itemsStr = this.storageGetItem(this.baseUrl);\r\n if (itemsStr) {\r\n let itemJSON: PagedDataSource;\r\n itemJSON = JSON.parse(itemsStr);\r\n if (itemJSON) {\r\n if (itemToEdit.mode === 'ToUpdate' || itemToEdit.mode === 'Nothing') {\r\n for (const item of itemJSON.items) {\r\n if (item.id === itemToEdit.id) {\r\n const index = itemJSON.items.indexOf(item);\r\n if (index !== -1) {\r\n itemJSON.items.splice(index, 1);\r\n itemJSON.items.push(itemToEdit);\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n // add item to items\r\n itemJSON.items.push(itemToEdit);\r\n }\r\n // save to localStorage\r\n this.storageSetItem(this.baseUrl, JSON.stringify(itemJSON));\r\n }\r\n }\r\n }\r\n\r\n public edit(itemToEdit: SynchronizableObject): string {\r\n if (itemToEdit.id == null) {\r\n itemToEdit.mode = 'ToCreate';\r\n itemToEdit.id = UUID.UUID();\r\n } else {\r\n itemToEdit.mode = 'ToUpdate';\r\n }\r\n\r\n this.updateLocalCache(itemToEdit);\r\n\r\n // try to synchronize information with server ?\r\n this.updateToServer(itemToEdit);\r\n\r\n return itemToEdit.id;\r\n }\r\n\r\n public delete(item: SynchronizableObject) {\r\n item.deleted = true;\r\n this.edit(item);\r\n }\r\n\r\n private updateToServer(item: SynchronizableObject) {\r\n return this.http.post(this.baseUrl, item).subscribe(\r\n data => {\r\n // update local cache and put nothing in synchronisation identifier\r\n item.mode = 'Nothing';\r\n this.updateLocalCache(item);\r\n this.elementSynchronized.emit(item.id);\r\n },\r\n err => {\r\n // no connection, nothing to do\r\n this.elementNotSynchronized.emit(item.id);\r\n }\r\n );\r\n }\r\n\r\n public synchronize(andThenLoad: boolean = false) {\r\n // get all item in the cache\r\n // update local cache\r\n const itemsStr = this.storageGetItem(this.baseUrl);\r\n if (itemsStr) {\r\n let itemJSON: PagedDataSource;\r\n itemJSON = JSON.parse(itemsStr);\r\n if (itemJSON) {\r\n for (const item of itemJSON.items) {\r\n if (item.mode === 'ToCreate' || item.mode === 'ToUpdate') {\r\n this.elementSynchronizing.emit(item.id);\r\n this.updateToServer(item);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // and then load data from the server\r\n if (andThenLoad) {\r\n this.load();\r\n }\r\n }\r\n\r\n storageGetItem(urlAccess: string) {\r\n // try to get from item storage, if not accessible, get from temp data\r\n try {\r\n return this.decompressSource(localStorage.getItem(urlAccess));\r\n } catch (exception) {\r\n // localstorage not supported or size exceeded\r\n return this.decompressSource(this.internalStorage[urlAccess]);\r\n }\r\n }\r\n\r\n decompressSource(source: string): string {\r\n \r\n if (source === null || source === undefined) {\r\n return source;\r\n }\r\n\r\n if (source.startsWith('{')) {\r\n return source;\r\n } else {\r\n return LZString.decompressFromUTF16(source);\r\n }\r\n }\r\n\r\n storageSetItem(urlAccess: string, item: string) {\r\n // try to set from item storage, if not accessible set to temp data\r\n if (this.compressStorage)\r\n item = LZString.compressToUTF16(item);\r\n this.internalStorage[urlAccess] = item;\r\n try {\r\n localStorage.setItem(urlAccess, item);\r\n } catch (exception) {\r\n // nothing to do, localstorage not supported...\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/CacheableService.ts","\r\nimport { Instrument } from '../models/Instrument';\r\nimport { Test } from '../models/Test';\r\nimport { Simulation } from '../models/Simulation';\r\nimport { WorkListItem } from '../models/WorkListItem';\r\nimport { SimulationInstrument } from '../models/SimulationInstrument';\r\nimport { SimulationActivity } from '../models/SimulationActivity';\r\nimport { Injectable } from '@angular/core';\r\nimport { InstrumentService } from './InstrumentService';\r\nimport { TestService } from './TestService';\r\nimport { SimulationWorkcell } from '../models/SimulationWorkcell';\r\n\r\n/**\r\n * Service of calcul simulation\r\n */\r\n@Injectable()\r\nexport class CalculSimulationService {\r\n currentSampleId = 1;\r\n\r\n\r\n // array of SimulationInstrument and\r\n\r\n instrumentCharge: { [id: string]: number; } = {};\r\n workcellsCharge: { [id: string]: number; } = {};\r\n instrumentsReference: Instrument[];\r\n testsReference: Test[];\r\n\r\n constructor(private instrumentService: InstrumentService, private testService: TestService) {\r\n instrumentService.get().subscribe(res => this.instrumentsReference = res.items as Instrument[]);\r\n testService.get().subscribe(res => this.testsReference = res.items as Test[]);\r\n }\r\n\r\n\r\n /**\r\n * Permet le calcul de la simulation\r\n * @param simulation\r\n */\r\n calcul(simulation: Simulation): WorkListItem[] {\r\n // alert('start');\r\n this.instrumentCharge = {};\r\n this.currentSampleId = 1;\r\n\r\n // transform percent/test/hour in tube/hour\r\n if (simulation.workflowMode === 'ToTe') {\r\n // transform test/hour in tube/hour\r\n // get total of test\r\n // get the max of daily test\r\n // get the % of test and apply to max test to get tube number\r\n\r\n // get the max of test to set number of tubes\r\n const arrayDailyTest = simulation.activities.map(e => this.getDailyTestOfActivity(e, simulation.nbDaysPerWeek, simulation.periodForQuantity, false));\r\n\r\n // use spread (...) operator to split array into argument\r\n const maxDailyTest = Math.max(...arrayDailyTest);\r\n\r\n for (const hour of simulation.dayRepartition.sort(d => d.hour)) {\r\n // round to next number to get number of tube !\r\n hour.nbTube = Math.ceil((hour.txTest / 100) * maxDailyTest);\r\n }\r\n }\r\n\r\n // transform test/hour in tube/hour\r\n if (simulation.workflowMode === 'QoTe') {\r\n // transform test/hour in tube/hour\r\n // get total of test\r\n // get the max of daily test\r\n // get the % of test and apply to max test to get tube number\r\n\r\n // get total of test :\r\n const totalOfTest = simulation.dayRepartition.map(d => { return d.nbTest; }).reduce((pv, cv) => Number(pv) + Number(cv));\r\n // get the max of test to set number of tubes\r\n const arrayDailyTest = simulation.activities.map(e => this.getDailyTestOfActivity(e, simulation.nbDaysPerWeek, simulation.periodForQuantity, false));\r\n\r\n // use spread (...) operator to split array into argument\r\n const maxDailyTest = Math.max(...arrayDailyTest);\r\n\r\n for (const hour of simulation.dayRepartition.sort(d => d.hour)) {\r\n hour.txTest = hour.nbTest / totalOfTest;\r\n // round to next number to get number of tube !\r\n hour.nbTube = Math.ceil(hour.txTest * maxDailyTest);\r\n }\r\n }\r\n\r\n\r\n // alert('instrument')\r\n for (const item of simulation.instruments) {\r\n this.instrumentCharge[item.id] = 0;\r\n item.instrument = this.instrumentsReference.find(d => d.id === item.instrumentId);\r\n }\r\n\r\n for (const activity of simulation.activities) {\r\n activity.test = this.testsReference.find(d => d.id === activity.testId);\r\n }\r\n\r\n // alert('instrument fin')\r\n\r\n let result: WorkListItem[] = new Array();\r\n\r\n for (const hour of simulation.dayRepartition.sort(d => d.hour)) {\r\n // for each hour\r\n // on regarde le nombre de tube\r\n // 10 tubes dans l'heure = 1 tube toutes les 6 minutes : 60 / 10\r\n const nbPassage: number = Math.trunc(hour.nbTube / 60);\r\n // alert(nbPassage);\r\n for (let i = 0; i < nbPassage; i++) {\r\n // Create 60 Test\r\n for (let j = 0; j < 60; j++) {\r\n this.pushElemAt(hour.hour, j, result);\r\n }\r\n }\r\n\r\n const lastRepartition = hour.nbTube % 60;\r\n if (lastRepartition === 1) {\r\n this.pushElemAt(hour.hour, 0, result);\r\n } else if (lastRepartition > 1) {\r\n const minuteToAdd = 60 / lastRepartition;\r\n for (let i = 0; i < 60; i += minuteToAdd) {\r\n this.pushElemAt(hour.hour, Math.trunc(i), result);\r\n }\r\n }\r\n\r\n }\r\n\r\n const sizePatentTube: number = result.length;\r\n\r\n // to avoid empty tube, start n test at n.\r\n const startTube = 0;\r\n if (simulation.nbDaysPerWeek === 0) {\r\n simulation.nbDaysPerWeek = 1; // minimum value\r\n }\r\n // for each test, get day activity\r\n for (const activity of simulation.activities) {\r\n // don't handle workcell activity\r\n if (activity.quantity === 0 || !activity.active || activity.workcell) {\r\n continue;\r\n }\r\n\r\n const dailyTest = this.getDailyTestOfActivity(activity, simulation.nbDaysPerWeek, simulation.periodForQuantity, false);\r\n\r\n const sampleToSkip = result.length / dailyTest;\r\n // order sample by date\r\n result = result.sort((d1, d2) => this.compareDate(d1.dateAndTime, d2.dateAndTime));\r\n\r\n // if !dossierOuSerie -serie : On fait des packs a partir de l'heure donnée dans activité sans prendre sur les tubes dossiers\r\n if (!activity.dossierOuSerie) {\r\n //\r\n // let wi = result.find(s => s.dateAndTime.getHours() === activity.startHour && s.dateAndTime.getMinutes() === 0);\r\n // let startValue = result.indexOf(wi);\r\n for (let i = 0; i < dailyTest; i++) {\r\n const newElem: WorkListItem = this.pushElemAt(activity.startHour, 0, result);\r\n newElem.serie = true;\r\n newElem.tests.push(activity.test);\r\n }\r\n } else {\r\n for (let i = 0; i < result.length; i += sampleToSkip) {\r\n if (Math.round(i) > result.length - 1) {\r\n // fill the last tube without this specific test to avoid last tube with 2 same test\r\n let found = false;\r\n let k = result.length - 1;\r\n while (k > 0 && !found) {\r\n if (result[k].tests.findIndex(t => t != null && t.id === activity.testId) > -1) {\r\n k--;\r\n } else {\r\n result[k].tests.push(activity.test);\r\n found = true;\r\n }\r\n }\r\n // result[result.length - 1].tests.push(activity.test);\r\n\r\n } else {\r\n\r\n result[Math.round(i)].tests.push(activity.test);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n var sampleId = 1;\r\n // set sampleID\r\n for (let i = 0; i < result.length; i++) {\r\n result[i].sampleId = sampleId;\r\n sampleId++;\r\n\r\n }\r\n\r\n\r\n // remove empty line :\r\n for (let i = 0; i < result.length; i++) {\r\n if (result[i].tests.length === 0) {\r\n let found = false;\r\n let k = i - 1;\r\n // look for previous line if not empty\r\n while (!found && k >= 0) {\r\n if (result[k].tests.length > 1) {\r\n result[i].tests.push(result[k].tests[result[k].tests.length - 1]);\r\n result[k].tests.pop();\r\n found = true;\r\n }\r\n k--;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // set urgent to some line\r\n if (+simulation.workflowUrgent > 0) {\r\n const nbTubeUrgent = sizePatentTube * (+simulation.workflowUrgent / 100);\r\n const tubetoSkip = sizePatentTube / nbTubeUrgent;\r\n for (let i = 0; i < sizePatentTube; i += tubetoSkip) {\r\n result[Math.trunc(i)].priority = 1;\r\n }\r\n }\r\n\r\n\r\n // affect the good instrument\r\n for (let i = 0; i < result.length; i++) {\r\n // for each tube, find the good instrument\r\n\r\n // recupere tous les instruments qui ont les tests correspondants\r\n const instruments: SimulationInstrument[] = this.getInstruments(simulation, result[i]);\r\n\r\n // alert('getInstruments ok ');\r\n if (instruments.length > 0)\r\n result[i].instrumentId = this.getInstrument(instruments).id;\r\n }\r\n\r\n\r\n\r\n const finalResult: WorkListItem[] = new Array();\r\n // split all line\r\n for (const workListItem of result) {\r\n const arr = this.splitLine(workListItem);\r\n for (const item of arr) {\r\n finalResult.push(item);\r\n }\r\n }\r\n\r\n\r\n let worklistWithTAT = this.calculTAT(finalResult, simulation);\r\n\r\n\r\n\r\n // add workcell part, (WORKLIST + TAT)\r\n // var worklistWorkcell = this.createWorklistWorkcell(simulation, sampleId);\r\n // var worklistWithWorkcellTAT = this.calculWorkcellService.calculTAT(worklistWorkcell, simulation);\r\n // rajouter les sample id\r\n\r\n\r\n // fusionner et remettre des sampleID\r\n // worklistWithTAT.push(...worklistWithWorkcellTAT);\r\n\r\n\r\n return worklistWithTAT;\r\n\r\n }\r\n /**\r\n * Retourne le nombre de test pour une simulation (pour tous les types de test)\r\n * @param simulation\r\n */\r\n getDailyTestOfSimulation(simulation: Simulation,\r\n isWorkcell: boolean): number {\r\n let count = 0;\r\n for (const activity of simulation.activities) {\r\n count += this.getDailyTestOfActivity(activity, simulation.nbDaysPerWeek, simulation.periodForQuantity, isWorkcell);\r\n }\r\n return count;\r\n }\r\n\r\n getTotalDailyTestOfSimulation(simulation): number {\r\n let count = 0;\r\n for (const activity of simulation.activities) {\r\n // get workcell tests\r\n count += this.getDailyTestOfActivity(activity, simulation.nbDaysPerWeek, simulation.periodForQuantity, true);\r\n // get standalone tests\r\n count += this.getDailyTestOfActivity(activity, simulation.nbDaysPerWeek, simulation.periodForQuantity, false);\r\n }\r\n return count;\r\n }\r\n\r\n /**\r\n * Permet de donner le nombre de test journalié pour un type de test donné\r\n * @param activity\r\n * @param nbDaysPerWeek\r\n */\r\n getDailyTestOfActivity(activity: SimulationActivity,\r\n nbDaysPerWeek: number,\r\n periodForQuantity: string,\r\n isWorkcell: boolean): number {\r\n let dailyTest = 0;\r\n if (!activity.active) {\r\n return 0;\r\n }\r\n const actQty = activity.quantity;\r\n const actTxRedil = activity.txRedilution;\r\n const actNbDil = activity.nbDilution;\r\n const actTxRep = activity.txRepasse;\r\n const actNbPerW = activity.nbPerWeek;\r\n\r\n let subtotal: number = actQty;\r\n\r\n if (actQty === 0 || actQty == null) {\r\n return 0;\r\n }\r\n\r\n if (actNbDil > 0) {\r\n subtotal = actQty * actTxRedil;\r\n } else if (actTxRedil > 0) {\r\n subtotal = actQty + ((actQty * actTxRedil) / 100);\r\n }\r\n\r\n let totalTest = Math.ceil(subtotal + (actTxRep / 100) * subtotal);\r\n\r\n switch (periodForQuantity) {\r\n case 'day':\r\n totalTest = totalTest * 52 * Math.max(nbDaysPerWeek, 1);\r\n break;\r\n case 'week':\r\n totalTest = totalTest * 52;\r\n break;\r\n case 'month':\r\n totalTest = totalTest * 12;\r\n break;\r\n }\r\n\r\n // on applique les regles de calculs\r\n if (activity.dossierOuSerie === true) {\r\n // dossier\r\n if (nbDaysPerWeek > 0) {\r\n dailyTest = totalTest / (52 * nbDaysPerWeek);\r\n } else {\r\n dailyTest = totalTest / 52;\r\n }\r\n } else { // serie\r\n if (actNbPerW > 0) {\r\n dailyTest = totalTest / (actNbPerW * 52);\r\n }\r\n }\r\n\r\n return Math.round(dailyTest);\r\n\r\n }\r\n\r\n /**\r\n * used to calcul all tat pour tous les instruments\r\n * @param allTests\r\n * @param simulation\r\n */\r\n calculTAT(allTests: WorkListItem[], simulation: Simulation): WorkListItem[] {\r\n const result: WorkListItem[] = new Array();\r\n // Filter by instrument\r\n //\r\n for (const instrument of simulation.instruments) {\r\n // select the good instrument\r\n const workListOfInstrument = allTests.filter(s => s.instrumentId === instrument.id);\r\n // workListOfInstrument = allTests;\r\n\r\n // calc the tat for each instrument\r\n const subresult = this.calculTATForInstrument(workListOfInstrument, instrument);\r\n for (const item of subresult) {\r\n // add item to result list\r\n result.push(item);\r\n }\r\n }\r\n\r\n const noInstrument = allTests.filter(s => !s.instrumentId);\r\n\r\n for (const item of noInstrument) {\r\n // add item to result list\r\n result.push(item);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n /**\r\n * calc the TAT for one instruments\r\n * @param workListOfInstrument\r\n * @param instrument\r\n */\r\n calculTATForInstrument(workListOfInstrument: WorkListItem[], instrument: SimulationInstrument): WorkListItem[] {\r\n const result: WorkListItem[] = new Array();\r\n // for each test\r\n for (let testId = 0; testId < workListOfInstrument.length; testId++) {\r\n // get the test to do\r\n const workListItem = workListOfInstrument[testId];\r\n if (workListItem.test == null) {\r\n // empty tube\r\n continue;\r\n }\r\n\r\n\r\n if (testId === 0) {\r\n workListItem.startTime = workListItem.dateAndTime;\r\n\r\n\r\n const hour = new Date(workListItem.startTime.getFullYear(), workListItem.startTime.getMonth(), workListItem.startTime.getDate(), workListItem.startTime.getHours(), 0, 0, 0);\r\n // compare hour and lastResultTime\r\n const secondToStartOfHour = (workListItem.startTime.getTime() - hour.getTime()) / 1000;\r\n workListItem.gainedTime = secondToStartOfHour;\r\n workListItem.usedTime = 0;\r\n\r\n } else {\r\n // we take the next 30(?) test to calc the TAT ( see spec)\r\n const nbElementToTake = 31;\r\n // si il y a moins de 30(?) tests restants, on en prends moins\r\n let nbTestSubList = workListOfInstrument.length - testId;\r\n if (nbTestSubList > nbElementToTake) {\r\n nbTestSubList = nbElementToTake;\r\n }\r\n\r\n // init des valeurs\r\n let tktTimeEch = 0;\r\n let tktTimeRi = 0;\r\n let tktTimeTrans = 0;\r\n let tktTimeIncu = 0;\r\n let tktTimeMesure = 0;\r\n let tktTimeRd = 0;\r\n let tktTimePreh = 0;\r\n\r\n\r\n // pour chaque test qui suit, on fait la somme des tkt par ressource\r\n for (let j = testId; j < testId + nbTestSubList; j++) {\r\n // on recupere la frequence (souvent 1/31 , sauf pour la fin de list)\r\n const freqTest = 1 / nbTestSubList;\r\n\r\n tktTimeEch += freqTest * this.getRessourceTimeForInstrument(instrument, 'echTime', workListOfInstrument[j].testId) / this.getRessourceTimeForInstrument(instrument, 'echTime', 'charge');\r\n tktTimeRi += freqTest * this.getRessourceTimeForInstrument(instrument, 'riTime', workListOfInstrument[j].testId) / this.getRessourceTimeForInstrument(instrument, 'riTime', 'charge');\r\n tktTimeTrans += freqTest * this.getRessourceTimeForInstrument(instrument, 'transTime', workListOfInstrument[j].testId) / this.getRessourceTimeForInstrument(instrument, 'transTime', 'charge');\r\n tktTimeIncu += freqTest * this.getRessourceTimeForInstrument(instrument, 'incuTime', workListOfInstrument[j].testId) / this.getRessourceTimeForInstrument(instrument, 'incuTime', 'charge');\r\n tktTimeMesure += freqTest * this.getRessourceTimeForInstrument(instrument, 'mesureTime', workListOfInstrument[j].testId) / this.getRessourceTimeForInstrument(instrument, 'mesureTime', 'charge');\r\n tktTimeRd += freqTest * this.getRessourceTimeForInstrument(instrument, 'rdTime', workListOfInstrument[j].testId) / this.getRessourceTimeForInstrument(instrument, 'rdTime', 'charge');\r\n tktTimePreh += freqTest * this.getRessourceTimeForInstrument(instrument, 'prehTime', workListOfInstrument[j].testId) / this.getRessourceTimeForInstrument(instrument, 'prehTime', 'charge');\r\n\r\n }\r\n // on prends le max des tkt\r\n const tktTimeI = Math.max(tktTimeEch, tktTimeRi, tktTimeTrans, tktTimeIncu, tktTimeMesure, tktTimeRd, tktTimePreh);\r\n\r\n\r\n\r\n\r\n\r\n // on recupere le temps du bras echangeur pour l'instrument\r\n const timeEchI = this.getRessourceTimeForInstrument(instrument, 'echTime', workListItem.testId);\r\n // on prends le max du bras echangeur, et la somme des tktTimeI multiplié par le coefficient\r\n const secondsToAdd = Math.max(timeEchI, instrument.instrument.coefficient * tktTimeI);\r\n // calc the previous start time + seconds to add\r\n const previous = workListOfInstrument[testId - 1];\r\n // recopie de la date\r\n const dateTest = this.duplicateDate(previous.startTime);\r\n dateTest.setMilliseconds(dateTest.getMilliseconds() + (secondsToAdd * 1000));\r\n\r\n previous.usedTime = secondsToAdd;\r\n workListItem.usedTime = timeEchI;\r\n if (dateTest < workListItem.dateAndTime) {\r\n workListItem.startTime = workListItem.dateAndTime;\r\n workListItem.gainedTime = (workListItem.dateAndTime.getTime() - dateTest.getTime()) / 1000;\r\n\r\n if (dateTest.getHours() !== workListItem.startTime.getHours()) {\r\n const hour = new Date(workListItem.startTime.getFullYear(), workListItem.startTime.getMonth(), workListItem.startTime.getDate(), workListItem.startTime.getHours(), 0, 0, 0);\r\n // compare hour and lastResultTime\r\n const secondToStartOfHour = (workListItem.startTime.getTime() - hour.getTime()) / 1000;\r\n workListItem.gainedTime = secondToStartOfHour;\r\n }\r\n\r\n\r\n\r\n\r\n } else {\r\n workListItem.startTime = dateTest;\r\n workListItem.gainedTime = 0;\r\n }\r\n }\r\n // on regarde le temps de resultat pour le test et l'instrument donné\r\n const trr = this.getRessourceTimeForInstrument(instrument, 'resultTime', workListItem.testId);\r\n // on ajoute au départ le trr\r\n workListItem.resultsDateTime = this.duplicateDate(workListItem.startTime);\r\n workListItem.resultsDateTime.setMilliseconds(workListItem.resultsDateTime.getMilliseconds() + (trr * 1000));\r\n workListItem.TAT = (workListItem.resultsDateTime.getTime() - workListItem.dateAndTime.getTime()) / 1000;\r\n result.push(workListItem);\r\n }\r\n\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Methode faisant de la reflexion pour trouver la ressource dans l'objet constant de l'instrument\r\n * @param instrument\r\n * @param resource\r\n * @param testId\r\n */\r\n getRessourceTimeForInstrument(instrument: SimulationInstrument, resource: string, testId: string): number {\r\n if (testId === 'charge') {\r\n return instrument.instrument.charge[resource];\r\n }\r\n\r\n const constant = instrument.instrument.constants.find(c => c.testId === testId);\r\n if (constant == null) {\r\n return 10;\r\n }\r\n return constant[resource];\r\n }\r\n\r\n /**\r\n * Permet de comparer deux dates.\r\n * @param d1\r\n * @param d2\r\n */\r\n compareDate(d1: Date, d2: Date) {\r\n if (d1 < d2) {\r\n return -1;\r\n } else if (d1 > d2) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Permet de positionner un worklist item a un emplacement données (une heure donnée)\r\n * @param hour\r\n * @param minute\r\n * @param list\r\n */\r\n pushElemAt(hour: number, minute: number, list: WorkListItem[]): WorkListItem {\r\n const elem: WorkListItem = new WorkListItem();\r\n elem.dateAndTime = new Date();\r\n elem.dateAndTime.setHours(hour, minute, 0, 0);\r\n elem.priority = 0; // 0 == routine, 1 == STAT\r\n elem.tests = new Array();\r\n // default not serie\r\n elem.serie = false;\r\n list.push(elem);\r\n return elem;\r\n }\r\n\r\n /**\r\n * Retourne la liste des instrument qui peuvent réaliser l'ensemble des tests du tube donné\r\n * @param simulation\r\n * @param line\r\n */\r\n getInstruments(simulation: Simulation, line: WorkListItem): SimulationInstrument[] {\r\n const result = new Array();\r\n for (const instrument of simulation.instruments) {\r\n let found = true;\r\n for (const test of line.tests) {\r\n\r\n if (instrument.simulationInstrumentTest.findIndex(e => e.id === test.id) === -1) {\r\n found = false;\r\n }\r\n\r\n }\r\n if (found) {\r\n result.push(instrument);\r\n }\r\n\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Permet de retourner l'instrument le moins chargé disponible (regarde la taille de l'instrument et affecte avec un ratio 1, 1/2, 1/6\r\n * @param instruments\r\n */\r\n getInstrument(instruments: SimulationInstrument[]): SimulationInstrument {\r\n // for this list, get one specific\r\n // the less overload\r\n let instrument: SimulationInstrument;\r\n if (instruments.length == 0)\r\n return null;\r\n instrument = instruments[0];\r\n if (instruments.length > 1) {\r\n\r\n // about all instrument get the less charged instrument\r\n // get the first one to be the reference\r\n for (const item of instruments) {\r\n if (this.instrumentCharge[item.id] < this.instrumentCharge[instrument.id]) {\r\n instrument = item;\r\n }\r\n }\r\n\r\n }\r\n\r\n let sizeToAdd = 1;\r\n if (instrument.instrument.ratio && instrument.instrument.ratio != 0) {\r\n sizeToAdd = 1 / instrument.instrument.ratio ; \r\n }\r\n else {\r\n // alert(instrument.instrument.size);\r\n if (instrument.instrument.size === 1) {\r\n sizeToAdd = 1;\r\n } else if (instrument.instrument.size === 2) {\r\n sizeToAdd = 1 / 2;\r\n } else if (instrument.instrument.size === 3) {\r\n sizeToAdd = 1 / 6;\r\n }\r\n }\r\n\r\n\r\n this.instrumentCharge[instrument.id] = this.instrumentCharge[instrument.id] + sizeToAdd;\r\n // alert(this.instrumentCharge[instrument.id]);\r\n return instrument;\r\n }\r\n\r\n /**\r\n * decoupe le tube par test et retourne une ligne de ligne pour chaque test\r\n * @param aLine\r\n */\r\n splitLine(aLine: WorkListItem): WorkListItem[] {\r\n const result: WorkListItem[] = new Array();\r\n if (aLine.tests.length > 0) {\r\n for (let i = 0; i < aLine.tests.length; i++) {\r\n const line = new WorkListItem();\r\n line.dateAndTime = aLine.dateAndTime;\r\n line.priority = aLine.priority;\r\n line.sampleId = aLine.sampleId;\r\n line.serie = aLine.serie;\r\n line.testId = aLine.tests[i].id;\r\n line.test = aLine.tests[i];\r\n line.instrumentId = aLine.instrumentId;\r\n line.workcellId = aLine.workcellId;\r\n result.push(line);\r\n\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Permet de dupliquer une date. Peut aussi etre fait avec JSON.parse(JSON.stringify()), mais je pense que cette solution est moins couteuse CPU\r\n * @param aDate\r\n */\r\n duplicateDate(aDate: Date): Date {\r\n return new Date(aDate.getTime());\r\n }\r\n\r\n\r\n\r\n /**\r\n * Permet de calculer l'ecart type\r\n * @param values\r\n */\r\n standardDeviation(values) {\r\n var avg = this.average(values);\r\n\r\n var squareDiffs = values.map(function (value) {\r\n var diff = value - avg;\r\n var sqrDiff = diff * diff;\r\n return sqrDiff;\r\n });\r\n\r\n var avgSquareDiff = this.average(squareDiffs);\r\n\r\n var stdDev = Math.sqrt(avgSquareDiff);\r\n return stdDev;\r\n }\r\n\r\n /**\r\n * Calcul la moyenne d'une liste de data\r\n * @param data\r\n */\r\n average(data) {\r\n var sum = data.reduce(function (sum, value) {\r\n return sum + value;\r\n }, 0);\r\n\r\n var avg = sum / data.length;\r\n return avg;\r\n }\r\n\r\n\r\n\r\n\r\n/*\r\n // method create Worklist\r\n createWorklistWorkcell(simulation: Simulation, sampleId: number): WorkListItem[] {\r\n let result: WorkListItem[] = new Array();\r\n\r\n // to avoid empty tube, start n test at n.\r\n\r\n if (simulation.nbDaysPerWeek === 0) {\r\n simulation.nbDaysPerWeek = 1; // minimum value\r\n }\r\n\r\n // On créé tous les tubes\r\n for (const hour of simulation.dayRepartitionWorkcell.sort(d => d.hour)) {\r\n // pour chaque horaire, on met les tubes\r\n for (let i = 0 ; i < hour.nbTube; i++ ) {\r\n this.pushElemAt(hour.hour, 0, result);\r\n }\r\n }\r\n\r\n // for each test, get day activity\r\n for (const activity of simulation.activities) {\r\n // don't handle workcell activity\r\n if (activity.quantity === 0 || !activity.active || !activity.workcell) {\r\n continue;\r\n }\r\n\r\n const dailyTest = this.getDailyTestOfActivity(activity, simulation.nbDaysPerWeek, simulation.periodForQuantity, true);\r\n \r\n // order sample by date\r\n //result = result.sort((d1, d2) => this.compareDate(d1.dateAndTime, d2.dateAndTime));\r\n \r\n const sampleToSkip = result.length / dailyTest;\r\n // on ajoute aux tubes les différents test. On met dans l'ordre, pas de répartition dans l'heure:\r\n for (let i=0; i < result.length; i += sampleToSkip ) {\r\n if (Math.round(i) > result.length - 1) {\r\n // fill the last tube without this specific test to avoid last tube with 2 same test\r\n let found = false;\r\n let k = result.length - 1;\r\n while (k > 0 && !found) {\r\n if (result[k].tests.findIndex(t => t != null && t.id === activity.testId) > -1) {\r\n k--;\r\n } else {\r\n result[k].tests.push(activity.test);\r\n found = true;\r\n }\r\n }\r\n // result[result.length - 1].tests.push(activity.test);\r\n } else {\r\n result[Math.round(i)].tests.push(activity.test);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n // set sampleID\r\n for (let i = 0; i < result.length; i++) {\r\n result[i].sampleId = sampleId;\r\n sampleId++;\r\n }\r\n\r\n // remove empty line :\r\n for (let i = 0; i < result.length; i++) {\r\n if (result[i].tests.length === 0) {\r\n let found = false;\r\n let k = i - 1;\r\n // look for previous line if not empty\r\n while (!found && k >= 0) {\r\n if (result[k].tests.length > 1) {\r\n result[i].tests.push(result[k].tests[result[k].tests.length - 1]);\r\n result[k].tests.pop();\r\n found = true;\r\n }\r\n k--;\r\n }\r\n }\r\n }\r\n\r\n // affect the good workcell\r\n for (let i = 0; i < result.length; i++) {\r\n // for each tube, find the good instrument\r\n\r\n // recupere tous les instruments qui ont les tests correspondants\r\n const workcells: SimulationWorkcell[] = this.getWorkcells(simulation, result[i]);\r\n\r\n if (workcells.length > 0)\r\n result[i].workcellId = this.getWorkcell(workcells).id;\r\n }\r\n\r\n\r\n\r\n const finalResult: WorkListItem[] = new Array();\r\n // split all line to get tubes and test splitted\r\n for (const workListItem of result) {\r\n const arr = this.splitLine(workListItem);\r\n for (const item of arr) {\r\n finalResult.push(item);\r\n }\r\n }\r\n return finalResult;\r\n }\r\n */\r\n\r\n\r\n /**\r\n * Permet de retourner le workcell le moins chargé disponible\r\n * @param instruments\r\n */\r\n /*\r\n getWorkcell(workcells: SimulationWorkcell[]): SimulationWorkcell {\r\n // for this list, get one specific\r\n // the less overload\r\n let workcell: SimulationWorkcell;\r\n if (workcells.length == 0)\r\n return null;\r\n workcell = workcells[0];\r\n if (workcells.length > 1) {\r\n // about all workcell get the less charged instrument\r\n // get the first one to be the reference\r\n for (const item of workcells) {\r\n if (this.workcellsCharge[item.id] < this.workcellsCharge[workcell.id]) {\r\n workcell = item;\r\n }\r\n }\r\n }\r\n\r\n this.workcellsCharge[workcell.id] = this.workcellsCharge[workcell.id] + 1;\r\n // alert(this.instrumentCharge[instrument.id]);\r\n return workcell;\r\n }*/\r\n\r\n\r\n\r\n /**\r\n * Retourne la liste des workcells qui peut réaliser l'ensemble des tests du tube donné\r\n * @param simulation\r\n * @param line\r\n */\r\n /*\r\n getWorkcells(simulation: Simulation, line: WorkListItem): SimulationWorkcell[] {\r\n const result = new Array();\r\n for (const workcell of simulation.instrumentsWorkcell) {\r\n let found = true;\r\n for (const test of line.tests) {\r\n if (workcell.simulationInstrumentTest.findIndex(e => e.id === test.id) === -1) {\r\n found = false;\r\n }\r\n }\r\n if (found) {\r\n result.push(workcell);\r\n }\r\n }\r\n return result;\r\n }*/\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/CalculSimulationService.ts","import { Injectable } from '@angular/core';\r\nimport { AppSettings } from '../models/AppSettings';\r\nimport { Instrument } from '../models/Instrument';\r\nimport { Simulation } from '../models/Simulation';\r\nimport { SimulationInstrumentWorkcell } from '../models/SimulationInstrumentWorkcell';\r\nimport { SimulationWorkcell } from '../models/SimulationWorkcell';\r\nimport { Test } from '../models/Test';\r\nimport { WorkcellParams } from '../models/WorkcellParams';\r\nimport { WorkcellSettings } from '../models/WorkCellSettings';\r\nimport { WorkListItem } from '../models/WorkListItem';\r\nimport { WorkListWorkcellItem } from '../models/WorkListWorkcellItem';\r\nimport { AppSettingsService } from './AppSettingsService';\r\nimport { InstrumentService } from './InstrumentService';\r\nimport { TestService } from './TestService';\r\nimport * as moment from 'moment/moment';\r\nimport { CalculSimulationService } from './CalculSimulationService';\r\nimport { SimulationInstrument } from '../models/SimulationInstrument';\r\n/**\r\n * Service of laboratory\r\n */\r\n@Injectable()\r\nexport class CalculSimulationWorkcellService {\r\n\r\n\r\n instrumentsReference: Instrument[];\r\n testsReference: Test[];\r\n\r\n workcellSettings: WorkcellSettings;\r\n appSettings: AppSettings[];\r\n\r\n constructor(instrumentService: InstrumentService, testService: TestService,\r\n private appSettingsService: AppSettingsService,\r\n private calculSimulationService: CalculSimulationService) {\r\n instrumentService.get().subscribe(res => this.instrumentsReference = res.items as Instrument[]);\r\n testService.get().subscribe(res => this.testsReference = res.items as Test[]);\r\n appSettingsService.get().subscribe(res => this.appSettings = res.items as AppSettings[]);\r\n }\r\n\r\n calcul(simulation: Simulation): WorkListWorkcellItem[] {\r\n // console.log(simulation);\r\n if (simulation.instrumentsWorkcell && simulation.instrumentsWorkcell.length > 0) {\r\n // this.createWorklist();\r\n this.compute_params(simulation);\r\n let worklist = this.createWorklist(simulation);\r\n // console.log(\"worklist\", worklist);\r\n worklist = this.compute_batch(worklist);\r\n\r\n worklist = this.compute_sub_batch(worklist)\r\n worklist = this.compute_d_bras2(worklist)\r\n worklist = this.compute_rack_instr(worklist)\r\n worklist = this.compute_lib(worklist)\r\n worklist = this.compute_transfert_tat(worklist)\r\n\r\n // remove split for test\r\n // console.log('beforeSplit', worklist);\r\n worklist = this.splitTest(worklist);\r\n // console.log('after split', worklist);\r\n worklist = this.calculTAT(worklist, simulation);\r\n // console.log('after calculTAT',worklist);\r\n \r\n return worklist;\r\n\r\n // this.calculTAT();\r\n }\r\n return null;\r\n }\r\n\r\n splitTest(worklist: WorkListWorkcellItem[]): WorkListWorkcellItem[] {\r\n const finalResult: WorkListWorkcellItem[] = new Array();\r\n // split all line\r\n for (const workListItem of worklist) {\r\n const arr = this.splitLine(workListItem);\r\n for (const item of arr) {\r\n finalResult.push(item);\r\n }\r\n }\r\n return finalResult ;\r\n }\r\n\r\n\r\n splitLine(aLine: WorkListWorkcellItem): WorkListWorkcellItem[] {\r\n const result: WorkListWorkcellItem[] = new Array();\r\n if (aLine.tests.length > 0) {\r\n for (let i = 0; i < aLine.tests.length; i++) {\r\n var line = new WorkListWorkcellItem();\r\n line = JSON.parse(JSON.stringify(aLine)) as WorkListWorkcellItem;\r\n line.testId = aLine.tests[i].id;\r\n line.test = aLine.tests[i];\r\n result.push(line);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n\r\n\r\n compute_transfert_tat(worklist: WorkListWorkcellItem[]): WorkListWorkcellItem[] {\r\n //# calcul du transfert vers l'instrument et du TAT lié à la workcell\r\n worklist.forEach(element => {\r\n let self = this.getSpecificParam(element.workcell);\r\n element.startTime = moment(element.d_r).add(self.transfert_s, 'second').toDate();\r\n element.TATInterne = moment(element.d_r).diff(moment(element.dt_id), 'second');\r\n });\r\n return worklist;\r\n }\r\n compute_lib(worklist: WorkListWorkcellItem[]): WorkListWorkcellItem[] {\r\n\r\n //# calcul de la date de libération des racks\r\n let min_rack = 1;\r\n let previousbatch = 1;\r\n let previousSubbatch = 1;\r\n\r\n let all_rack_ids = worklist.map(element => element.rack_id).filter(function (x, i, a) {\r\n return a.indexOf(x) == i;\r\n });\r\n let d_start = [];\r\n\r\n for (let j = 0; j < 10000; j++) {\r\n d_start.push([]);\r\n for (let k = 0; k < 1000; k++) {\r\n d_start[j].push([]);\r\n d_start[j][k] = new Date();\r\n }\r\n }\r\n\r\n d_start[1][1] = worklist[0].d_bras2;\r\n let previousRack: Date;\r\n all_rack_ids.forEach(rack_id => {\r\n let df_rack_id = worklist.filter(e => e.rack_id == rack_id);\r\n let current_batch_id = df_rack_id[0].batch_id;\r\n let current_sub_batch_id = df_rack_id[0].sub_batch_id;\r\n let d_bras2 = df_rack_id[0].d_bras2;\r\n\r\n let self = this.getSpecificParam(df_rack_id[0].workcell);\r\n let initial_time = 5 * self.t6;\r\n\r\n if (rack_id > 1 && (current_batch_id != previousbatch || current_sub_batch_id != previousSubbatch)) {\r\n if (d_bras2 < previousRack)\r\n d_start[current_batch_id][current_sub_batch_id] = previousRack;\r\n else if (moment(d_bras2).diff(moment(previousRack), 'second') < (self.t_min_lib_rack - initial_time))\r\n d_start[current_batch_id][current_sub_batch_id] = moment(previousRack).add(Math.max(0, self.t_min_lib_rack - initial_time), 'second');\r\n else\r\n d_start[current_batch_id][current_sub_batch_id] = d_bras2;\r\n min_rack = rack_id;\r\n }\r\n\r\n let n_rack = (rack_id - min_rack + 1);\r\n df_rack_id.forEach(element => {\r\n element.d_r = moment(d_start[current_batch_id][current_sub_batch_id]).add(initial_time + (n_rack - 1) * Math.max(initial_time, self.t_min_lib_rack), 'second').toDate();\r\n previousRack = element.d_r;\r\n })\r\n\r\n });\r\n return worklist\r\n }\r\n\r\n\r\n\r\n compute_rack_instr(worklist: WorkListWorkcellItem[]): WorkListWorkcellItem[] {\r\n // # calcul du rack et de l'instrument de destination du rack\r\n for (let index = 0; index < worklist.length; index++) {\r\n const element = worklist[index];\r\n\r\n if (element.sampleId <= 1) {\r\n element.rack_id = 1;\r\n }\r\n else {\r\n const elementN1 = worklist[index - 1];\r\n\r\n if (element.batch_id != elementN1.batch_id || element.sub_batch_id != elementN1.sub_batch_id) {\r\n element.rack_id = elementN1.rack_id + 1;\r\n } else if (index > 4 && worklist[index - 5].rack_id == elementN1.rack_id) {\r\n element.rack_id = elementN1.rack_id + 1;\r\n } else {\r\n element.rack_id = elementN1.rack_id;\r\n }\r\n }\r\n element.instrument = ((element.rack_id - 1) % element.workcell.nbInstruments) + 1;\r\n element.instrumentId = element.workcell.instruments[element.instrument -1].id ;\r\n }\r\n return worklist;\r\n }\r\n\r\n\r\n compute_d_bras2(df_worklist: WorkListWorkcellItem[]): WorkListWorkcellItem[] {\r\n // calcul date de dispo des tubes pour le bras 2\r\n\r\n let d_bras2: Date;\r\n // par batch_id \r\n for (let index = 0; index < df_worklist.length; index++) {\r\n let df_id = df_worklist.filter(e => e.batch_id == df_worklist[index].batch_id);\r\n let nj = df_id.length; // nj = nb tube dans le batch\r\n let element = df_worklist[index];\r\n let self = this.getSpecificParam(element.workcell);\r\n if (element.sub_batch_id == 1) {\r\n if (element.batch_id == 1) {\r\n if (element.workcell.loadingCentrifuge) {\r\n element.d_bras2 = (moment.min(df_id.map(e => moment(e.dt_id)))).add(Math.min(80, nj) * self.t1 +\r\n self.t2 + self.t3 + self.t_swing +\r\n Math.max(self.t_centri, self.t4 + Math.min(80, Math.max(0, nj - 80)) * self.t1), 'second').toDate();\r\n } else {\r\n element.d_bras2 = (moment.min(df_id.map(e => moment(e.dt_id)))).add(Math.min(80, nj) * self.t1 +\r\n self.t4 + self.t_swing, 'second').toDate();\r\n }\r\n } else {\r\n \r\n d_bras2 = moment.max(df_worklist.filter(e => e.batch_id == (element.batch_id - 1)).map(e => moment(e.d_bras2))).toDate();\r\n\r\n if (element.workcell.loadingCentrifuge) {\r\n \r\n element.d_bras2 = moment.max(moment.min(df_id.map(e => moment(e.dt_id))).add(Math.min(80, nj) * self.t1 + self.t2 + self.t3, 'second'), moment(d_bras2))\r\n .add(self.t_swing + Math.max(self.t_centri, self.t4 + Math.min(80, Math.max(0, nj - 80)) * self.t1), 'second')\r\n .toDate();\r\n }\r\n else {\r\n\r\n element.d_bras2 = moment.max((moment.min(df_id.map(e => moment(e.dt_id))))\r\n .add(Math.min(80, nj) * self.t1 + self.t4, 'second'), moment(d_bras2).add(80 * self.t6, 'second')).add(self.t_swing, 'second').toDate();\r\n }\r\n \r\n // if (element.sampleId == 51 )\r\n // {\r\n // console.log('nj',nj);\r\n // console.log('element',element); \r\n // console.log('dbras2 précédent => ',d_bras2); \r\n // let compareA = moment.min(df_id.map(e => moment(e.dt_id))).add(Math.min(80, nj) * self.t1 + self.t2 + self.t3, 'second');\r\n // console.log('compareA', compareA);\r\n // let premierDate = moment.max(moment.min(df_id.map(e => moment(e.dt_id))).add(Math.min(80, nj) * self.t1 + self.t2 + self.t3, 'second'), moment(d_bras2));\r\n // console.log('premier date', premierDate);\r\n // console.log('on ajoute : ', self.t_swing + Math.max(self.t_centri, self.t4 + Math.min(80, Math.max(0, nj - 80)) * self.t1));\r\n // console.log('premier date add', premierDate.add(self.t_swing + Math.max(self.t_centri, self.t4 + Math.min(80, Math.max(0, nj - 80)) * self.t1), 'second'));\r\n \r\n \r\n\r\n\r\n // }\r\n }\r\n }\r\n else {\r\n // on recupere le dbras du precedent sub_batch\r\n d_bras2 = df_worklist.find(e => e.sub_batch_id == element.sub_batch_id - 1).d_bras2;\r\n //d_bras2 = df_worklist[index - 1].d_bras2;\r\n if (element.workcell.loadingCentrifuge) {\r\n element.d_bras2 = moment(d_bras2).add(80 * self.t6 + self.t_swing +\r\n Math.max(0, (self.t2 + self.t3 + Math.max(self.t_centri, self.t4 + (80 * self.t1))) - (80 * self.t6)), 'second').toDate();\r\n\r\n } else {\r\n element.d_bras2 = moment(d_bras2).add(self.t_swing + Math.max(80 * self.t6, Math.min(80, nj) * self.t1 + 2 * self.t4), 'second').toDate();\r\n }\r\n }\r\n }\r\n\r\n return df_worklist;\r\n\r\n }\r\n createWorklist(simulation: Simulation): WorkListWorkcellItem[] {\r\n // on créé seulement les tubes pour les heures données. On réparti ensuite entre les workcell ?\r\n var result: WorkListWorkcellItem[] = [];\r\n let sampleId = 1;\r\n simulation.dayRepartitionWorkcell.forEach(dr => {\r\n if (dr.nbTube > 0) {\r\n for (let i = 0; i < dr.nbTube; i++) {\r\n let wwi = new WorkListWorkcellItem();\r\n wwi.dt_id = new Date();\r\n wwi.dt_id.setHours(dr.hour, 0, 0, 0);\r\n wwi.d_bras1 = new Date(2001, 1, 1, 1, 0, 0, 0);\r\n wwi.d_bras2 = new Date(2001, 1, 1, 1, 0, 0, 0);\r\n wwi.d_r = new Date(2001, 1, 1, 1, 0, 0, 0);\r\n wwi.sampleId = sampleId++;\r\n wwi.tests = [];\r\n result.push(wwi);\r\n }\r\n }\r\n })\r\n\r\n // On répartit les tubes dans les différentes workcell\r\n if (simulation.instrumentsWorkcell && simulation.instrumentsWorkcell.length > 0) {\r\n // affect workcell\r\n result.forEach((element, index) => {\r\n element.workcell = simulation.instrumentsWorkcell[index % simulation.instrumentsWorkcell.length];\r\n element.workcellId = simulation.instrumentsWorkcell[index % simulation.instrumentsWorkcell.length].id;\r\n });\r\n }\r\n\r\n // for each test, get day activity\r\n for (const activity of simulation.activities) {\r\n // don't handle workcell activity\r\n if (activity.quantity === 0 || !activity.active || !activity.workcell) {\r\n continue;\r\n }\r\n\r\n const dailyTest = this.calculSimulationService.getDailyTestOfActivity(activity, simulation.nbDaysPerWeek, simulation.periodForQuantity, true);\r\n\r\n // order sample by date\r\n //result = result.sort((d1, d2) => this.compareDate(d1.dateAndTime, d2.dateAndTime));\r\n\r\n const sampleToSkip = result.length / dailyTest;\r\n // on ajoute aux tubes les différents test. On met dans l'ordre, pas de répartition dans l'heure:\r\n for (let i = 0; i < result.length; i += sampleToSkip) {\r\n if (Math.round(i) > result.length - 1) {\r\n // fill the last tube without this specific test to avoid last tube with 2 same test\r\n let found = false;\r\n let k = result.length - 1;\r\n while (k > 0 && !found) {\r\n if (result[k].tests.findIndex(t => t != null && t.id === activity.testId) > -1) {\r\n k--;\r\n } else {\r\n result[k].tests.push(activity.test);\r\n found = true;\r\n }\r\n }\r\n // result[result.length - 1].tests.push(activity.test);\r\n } else {\r\n result[Math.round(i)].tests.push(activity.test);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n\r\n // // method calcul TAT\r\n // calculTATInternal(worklist: WorkListItem[], simulation: Simulation): WorkListItem[] {\r\n\r\n // worklist.forEach(element => {\r\n // element.resultsDateTime = element.dateAndTime;\r\n // element.startTime = element.dateAndTime;\r\n // });\r\n\r\n // return worklist;\r\n // }\r\n\r\n params: WorkcellParams[];\r\n\r\n compute_params(simulation: Simulation) {\r\n // app\r\n this.params = [];\r\n simulation.instrumentsWorkcell.forEach(element => {\r\n let param = new WorkcellParams();\r\n param.workcell = element;\r\n param.workcellId = element.id;\r\n param.t_centri = +element.centrifugTime + +this.appSettings.find(e => e.name == \"Centri_Time\").settings;\r\n param.t1 = +this.appSettings.find(e => e.name == \"LoadArm_Time\").settings;\r\n param.t2 = 4 * +this.appSettings.find(e => e.name == \"LoadCage_Time\").settings;\r\n param.t3 = 4 * +this.appSettings.find(e => e.name == \"UnloadCage_Time\").settings;\r\n param.t4 = 4 * +this.appSettings.find(e => e.name == \"SwapCage_Time\").settings;\r\n param.t5 = Math.max(0, +element.centrifugTime - (param.t4 + 80 * param.t1));\r\n param.t6 = +this.appSettings.find(e => e.name == \"UnloadArm_Time\").settings;\r\n param.t7 = Math.max(0, 80 * (param.t6 - param.t1) - (param.t2 + param.t3 + param.t4 + param.t5));\r\n param.t_swing = +this.appSettings.find(e => e.name == \"Swing_Time\").settings;\r\n param.t_min_lib_rack = +this.appSettings.find(e => e.name == \"RackFree_Time\").settings;\r\n param.transfert_s = +this.appSettings.find(e => e.name == \"Transfert_Time\").settings;\r\n this.params.push(param);\r\n });\r\n\r\n }\r\n\r\n getSpecificParam(workcell): WorkcellParams {\r\n return this.params.find(e => e.workcellId == workcell.id);\r\n }\r\n\r\n\r\n compute_batch(df_worklist: WorkListWorkcellItem[]) {\r\n // calcul du batch_id et de la prise en compte par le bras 1\r\n if (!df_worklist || df_worklist.length == 0) return df_worklist;\r\n let current_batch = 1;\r\n let n_current_batch = 1;\r\n let current_date_batch = df_worklist[0].dt_id;\r\n\r\n /*\r\n console.log(\"########### COMPUTE_ BATCH ##########\");\r\n console.log(df_worklist);\r\n console.log(\"########### END OF COMPUTE_ BATCH ##########\");\r\n */\r\n\r\n df_worklist.forEach((row, index) => {\r\n if (index == 0) {\r\n n_current_batch += 1;\r\n } else {\r\n if (df_worklist[index - 1].dt_id.toISOString() == row.dt_id.toISOString() || row.dt_id < df_worklist[index - 1].d_bras1) {\r\n n_current_batch += 1;\r\n } else {\r\n // switch de batch\r\n current_date_batch = row.dt_id;\r\n current_batch += 1;\r\n n_current_batch = 2;\r\n }\r\n }\r\n row.batch_id = current_batch;\r\n row.d_bras1 = this.compute_d_bras1(current_date_batch, n_current_batch - 1, row.workcell);\r\n });\r\n\r\n return df_worklist;\r\n }\r\n\r\n\r\n\r\n compute_d_bras1(current_date_batch: Date, nj: number, workcell: SimulationWorkcell): Date {\r\n let mj = Math.ceil(nj / 80);\r\n let delta = 0;\r\n let self = this.getSpecificParam(workcell);\r\n\r\n if (workcell.loadingCentrifuge) {\r\n delta = nj * self.t1 + ((mj - 1) * (self.t2 + self.t4)) + (Math.max(0, (mj - 2)) * (self.t3 + self.t5)) + (Math.max(0, mj - 3) * self.t7);\r\n }\r\n else {\r\n delta = nj * self.t1 + (mj - 1) * (self.t_swing + 2 * self.t4) +\r\n Math.max(0, (mj - 2)) * Math.max(0, 80 * self.t6 - (80 * self.t1 + 2 * self.t4));\r\n }\r\n\r\n // on recopie la date pour eviter le changement de variable\r\n var m = moment(current_date_batch);\r\n m.add(delta, 'seconds');\r\n //let date : Date = JSON.parse(JSON.stringify(current_date_batch));\r\n //date.setSeconds(current_date_batch.getSeconds() + delta);\r\n return m.toDate();\r\n }\r\n\r\n\r\n compute_sub_batch(df_worklist: WorkListWorkcellItem[]) {\r\n // By batch_id\r\n let currentBatch = df_worklist[0].batch_id;\r\n let currentCpt = 0;\r\n let currentSubBatch = 1;\r\n for (let index = 0; index < df_worklist.length; index++) {\r\n if (currentBatch != df_worklist[index].batch_id) {\r\n currentBatch = df_worklist[index].batch_id;\r\n currentCpt = 1;\r\n currentSubBatch = 1;\r\n } else {\r\n if (currentCpt >= 80) {\r\n currentCpt = 1;\r\n currentSubBatch++;\r\n } else {\r\n currentCpt++;\r\n }\r\n }\r\n df_worklist[index].sub_batch_id = currentSubBatch;\r\n }\r\n return df_worklist;\r\n }\r\n\r\n\r\n /**\r\n * used to calcul all tat pour tous les instruments\r\n * @param allTests\r\n * @param simulation\r\n */\r\n calculTAT(allTests: WorkListWorkcellItem[], simulation: Simulation): WorkListWorkcellItem[] {\r\n const result: WorkListWorkcellItem[] = new Array();\r\n // Filter by instrument\r\n simulation.instrumentsWorkcell.forEach((workcell) => {\r\n for (let index = 1; index < workcell.nbInstruments+1; index++) {\r\n const workListOfInstrument = allTests.filter(s => s.workcellId == workcell.id && s.instrument == index);\r\n // calc the tat for each instrument\r\n\r\n\r\n var starmax = this.instrumentsReference.find(e=> e.size == 3);\r\n var instrument = new SimulationInstrument();\r\n instrument.instrument = starmax ;\r\n\r\n\r\n\r\n\r\n // for each test : set dateandTime to starttime\r\n workListOfInstrument.forEach(element => {\r\n const currentTime = element.startTime; \r\n const convertTime = moment(currentTime).format(\"YYYY-MM-DD HH:mm:ss\");\r\n element.dateAndTime = new Date(convertTime);\r\n } );\r\n \r\n\r\n const subresult = this.calculSimulationService.calculTATForInstrument(workListOfInstrument, instrument);\r\n for (const item of subresult) {\r\n // add item to result list\r\n result.push(item as WorkListWorkcellItem);\r\n }\r\n }\r\n }); \r\n \r\n/*\r\n const noInstrument = allTests.filter(s => !s.instrumentId);\r\n\r\n for (const item of noInstrument) {\r\n // add item to result list\r\n result.push(item);\r\n }\r\n*/\r\n return result;\r\n }\r\n\r\n\r\n /*\r\n \r\n \r\n def compute_lib(self, df_worklist):\r\n # calcul de la date de libération des racks\r\n df_worklist[\"d_r\"] = pd.to_datetime(\"01/01/2021 00:00:00\", format='%d/%m/%Y %H:%M:%S')\r\n all_rack_ids = df_worklist[\"rack_id\"].unique()\r\n min_rack = 1\r\n previous_batch_and_subbatch = (1, 1)\r\n initial_time = 5 * self.t6\r\n d_start = dict()\r\n d_start[(1, 1)] = self.dict_d_bras2[(1, 1)][0]\r\n for rack_id in all_rack_ids:\r\n df_rack_id = df_worklist[df_worklist[\"rack_id\"] == rack_id]\r\n current_batch_id = df_rack_id[\"batch_id\"].unique()[0]\r\n current_sub_batch_id = df_rack_id[\"sub_batch_id\"].unique()[0]\r\n d_bras2 = self.dict_d_bras2[(current_batch_id, current_sub_batch_id)][0]\r\n if rack_id > 1 and (current_batch_id, current_sub_batch_id) != previous_batch_and_subbatch:\r\n if d_bras2 < self.dict_d_lib[rack_id-1]:\r\n d_start[(current_batch_id, current_sub_batch_id)] = self.dict_d_lib[rack_id-1]\r\n elif d_bras2 - self.dict_d_lib[rack_id-1] < datetime.timedelta(seconds=self.t_min_lib_rack - initial_time):\r\n d_start[(current_batch_id, current_sub_batch_id)] = self.dict_d_lib[rack_id - 1] + datetime.timedelta(seconds=max(0, self.t_min_lib_rack - initial_time))\r\n else:\r\n d_start[(current_batch_id, current_sub_batch_id)] = d_bras2\r\n min_rack = rack_id\r\n n_rack = int(rack_id - min_rack + 1)\r\n self.dict_d_lib[rack_id] = d_start[(current_batch_id, current_sub_batch_id)] + datetime.timedelta(seconds=initial_time + (n_rack-1) * max(initial_time, self.t_min_lib_rack))\r\n previous_batch_and_subbatch = (current_batch_id, current_sub_batch_id)\r\n for index, row in df_worklist.iterrows():\r\n df_worklist.loc[index, \"d_r\"] = self.dict_d_lib[row[\"rack_id\"]]\r\n return df_worklist\r\n\r\n def compute_transfert_tat(self, df_worklist):\r\n # calcul du transfert vers l'instrument et du TAT lié à la workcell\r\n df_worklist[\"d_instr\"] = df_worklist[\"d_r\"] + datetime.timedelta(seconds=self.transfert_s)\r\n df_worklist[\"TAT\"] = (df_worklist[\"d_r\"] - df_worklist[\"dt_id\"]).dt.seconds\r\n return df_worklist\r\n*/\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/CalculSimulationWorkcellService.ts","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Country } from '../models/Country';\r\nimport { CacheableService } from './CacheableService';\r\nimport { HelloService } from './HelloService';\r\n/**\r\n * Service of laboratory\r\n */\r\n@Injectable()\r\nexport class CountryService extends CacheableService {\r\n\r\n constructor(http: HttpClient, helloService: HelloService) {\r\n super(http, '/api/countries', helloService);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/CountryService.ts","import { Simulation } from './../models/Simulation';\r\nimport { Injectable } from '@angular/core';\r\nimport { SimulationInstrument } from '../models/SimulationInstrument';\r\nimport { SimulationActivity } from '../models/SimulationActivity';\r\nimport { List } from 'linqts';\r\nimport { WorkListItem } from '../models/WorkListItem';\r\n\r\n@Injectable()\r\nexport class GraphService {\r\n\r\n blueColor = 'rgba(127, 198, 211, 1)';\r\n pinkColor = 'rgba(187, 147, 197,1)';\r\n greenColor = 'rgba(187, 221, 143,1)';\r\n// lightRedColor = 'rgba(97, 70, 63,1)';\r\n lightRedColor = 'rgba(248, 178, 160,1)';\r\n\r\n getChargeDataByTube(simulation: Simulation, resultsSimulation: WorkListItem[], instruments: SimulationInstrument[], testsSelected: SimulationActivity[], ponderation: number) {\r\n const tubesChart: any[] = [];\r\n const testChart: any[] = [];\r\n // let chargeChart: any[] = [];\r\n const usedChargeChart: number[] = [];\r\n const chargeMax: number[] = [] ;\r\n \r\n let resultSimulation = new List(resultsSimulation);\r\n\r\n if (testsSelected != null && testsSelected.length > 0) {\r\n resultSimulation = resultSimulation.Where(r => testsSelected.some(e => e.testId === r.testId)).ToList();\r\n }\r\n // create sublist due to parameters\r\n if (instruments != null && instruments.length > 0) {\r\n resultSimulation = resultSimulation.Where(r => instruments.some(e => e.id === r.instrumentId)).ToList();\r\n }\r\n\r\n let chargeMaxTotale = 0 ; \r\n // calcul of charge max of each workcell\r\n if (simulation.instrumentsWorkcell != null ) {\r\n \r\n chargeMaxTotale = simulation.instrumentsWorkcell.map(e=> \r\n { \r\n if (e.loadingCentrifuge)\r\n return (3540 - +e.centrifugTime) / 11;\r\n else return (3540 / 11);\r\n }\r\n ).reduce((a,b)=> a+b, 0);\r\n }\r\n\r\n for (let i = 0; i < 24; i++) {\r\n const nbTestByHour: number = resultSimulation.Where(p => p.resultsDateTime != null && p.resultsDateTime.getHours() === i).Count();\r\n testChart.push(nbTestByHour);\r\n\r\n chargeMax.push(Math.round(chargeMaxTotale));\r\n let nbTubeByHour = resultSimulation.Where(p => p.resultsDateTime.getHours() === i).Select(c => c.sampleId).Distinct().Count();\r\n tubesChart.push(nbTubeByHour);\r\n \r\n // use ponderation on usedChargeChart\r\n if (ponderation == null) {\r\n usedChargeChart.push(Math.round((nbTubeByHour / chargeMaxTotale) * 100));\r\n } else {\r\n const valueToPush = Math.round((nbTubeByHour / chargeMaxTotale) * 100) * (1 + (ponderation / 100));\r\n if (valueToPush > 100) {\r\n usedChargeChart.push(100);\r\n } else {\r\n usedChargeChart.push(valueToPush);\r\n }\r\n }\r\n\r\n\r\n \r\n }\r\n\r\n return {\r\n testChart: testChart,\r\n tubeChart: tubesChart,\r\n usedChargeChart: usedChargeChart,\r\n chargeMax: chargeMax\r\n };\r\n }\r\n\r\n\r\n getChargeData(simulation: Simulation, resultsSimulation: WorkListItem[], instruments: SimulationInstrument[], testsSelected: SimulationActivity[], ponderation: number) {\r\n const testChart: any[] = [];\r\n const testsValues: number[] = [];\r\n // let chargeChart: any[] = [];\r\n const usedChargeChart: number[] = [];\r\n\r\n let resultSimulation = new List(resultsSimulation);\r\n\r\n if (testsSelected != null && testsSelected.length > 0) {\r\n resultSimulation = resultSimulation.Where(r => testsSelected.some(e => e.testId === r.testId)).ToList();\r\n }\r\n // create sublist due to parameters\r\n if (instruments != null && instruments.length > 0) {\r\n resultSimulation = resultSimulation.Where(r => instruments.some(e => e.id === r.instrumentId)).ToList();\r\n }\r\n\r\n for (let i = 0; i < 24; i++) {\r\n const nbTestByHour: number = resultSimulation.Where(p => p.resultsDateTime != null && p.resultsDateTime.getHours() === i).Count();\r\n // let nbTubeByHour = resultSimulation.Where(p => p.resultsDateTime.getHours() === i).Select(c => c.sampleId).Distinct().Count();\r\n testChart.push(nbTestByHour);\r\n\r\n\r\n // calcul la charge\r\n let usedTimeForHour = resultSimulation.Where(p => p.resultsDateTime != null && p.resultsDateTime.getHours() === i).OrderBy(p => p.resultsDateTime).Select(c => c.usedTime).Sum();\r\n\r\n // we have to divided the charge\r\n\r\n // if some workcell, divide by workcells instrument too\r\n\r\n let nbInstrumentToDivide = 1 ;\r\n if (instruments == null || instruments.length === 0) {\r\n nbInstrumentToDivide = simulation.instruments.length;\r\n // no filter, let's get workcells instrument too\r\n if (simulation.instrumentsWorkcell != null && simulation.instrumentsWorkcell.length > 0 ) {\r\n nbInstrumentToDivide += simulation.instrumentsWorkcell.map(iw => iw.instruments != null && iw.instruments.length > 0 ? iw.instruments.length : 0).reduce((a,b) => a+b,0);\r\n }\r\n } else {\r\n nbInstrumentToDivide = instruments.length;\r\n }\r\n\r\n\r\n if (nbInstrumentToDivide == 0) nbInstrumentToDivide = 1 ; // Don't divide by 0 please...\r\n usedTimeForHour = usedTimeForHour / nbInstrumentToDivide ;\r\n\r\n if (usedTimeForHour / 36 > 100) {\r\n usedTimeForHour = 3600;\r\n } // to get 100%\r\n if (ponderation == null) {\r\n usedChargeChart.push(Math.round(usedTimeForHour / 36 * 100) / 100);\r\n } else {\r\n const valueToPush = Math.round(usedTimeForHour / 36 * 100) / 100 * (1 + (ponderation / 100));\r\n if (valueToPush > 100) {\r\n usedChargeChart.push(100);\r\n } else {\r\n usedChargeChart.push(valueToPush);\r\n }\r\n }\r\n\r\n if (nbTestByHour > 0) {\r\n testsValues.push(nbTestByHour);\r\n }\r\n\r\n\r\n\r\n // let gainedTimeForHour = 0;\r\n // if (firstHourToTake) {\r\n // // console.log(resultSimulation.Where(p => p.resultsDateTime.getHours() === i && p.gainedTime > 0).OrderBy(p => p.resultsDateTime));\r\n\r\n // gainedTimeForHour = resultSimulation.Where(p => p.resultsDateTime.getHours() === i && p.gainedTime > 0).OrderBy(p => p.resultsDateTime).Select(c => c.gainedTime).Sum();\r\n // firstHourToTake = false;\r\n // // console.log(resultSimulation.Where(p => p.resultsDateTime.getHours() === i && p.gainedTime > 0).OrderBy(p => p.resultsDateTime));\r\n // }\r\n // else {\r\n // // console.log(resultSimulation.Where(p => p.resultsDateTime.getHours() === i && p.gainedTime > 0).OrderBy(p => p.resultsDateTime).Skip(1));\r\n // gainedTimeForHour = resultSimulation.Where(p => p.resultsDateTime.getHours() === i && p.gainedTime > 0).OrderBy(p => p.resultsDateTime).Skip(1).Select(c => c.gainedTime).Sum();\r\n // }\r\n\r\n\r\n\r\n\r\n // // ajoutons le dernier temps mort de l'heure\r\n // if (instruments == null || instruments.length == 0) {\r\n // instruments = this.value.instruments;\r\n // }\r\n // for (let inst of instruments)\r\n // {\r\n // let lastResultTime = resultSimulation.Where(p => p.resultsDateTime.getHours() === i && p.instrumentId === inst.id).OrderByDescending(d => d.resultsDateTime).Select(d => d.resultsDateTime).FirstOrDefault();\r\n // if (lastResultTime.getHours() === i) {\r\n // // for each instruments\r\n // let hour = new Date(lastResultTime);\r\n // hour.setHours(i + 1, 0, 0, 0);\r\n // // compare hour and lastResultTime\r\n // let secondToEndOfHour = (hour.getTime() - lastResultTime.getTime()) / 1000;\r\n // gainedTimeForHour += secondToEndOfHour;\r\n // }\r\n // }\r\n\r\n // if (gainedTimeForHour == 0)\r\n // chargeChart.push(100)\r\n // else {\r\n\r\n\r\n\r\n // // we have to divided the charge\r\n // if (instruments == null)\r\n // gainedTimeForHour = gainedTimeForHour / this.value.instruments.length;\r\n // else\r\n // gainedTimeForHour = gainedTimeForHour / instruments.length;\r\n // // chargeChart.push(gainedTimeForHour * (-50 / 1800) + 100);\r\n // chargeChart.push(100 - (gainedTimeForHour / 36));\r\n // }\r\n\r\n // }\r\n // else {\r\n // chargeChart.push(0)\r\n // }\r\n\r\n }\r\n\r\n return {\r\n testChart: testChart,\r\n usedChargeChart: usedChargeChart,\r\n };\r\n }\r\n\r\n\r\n}\r\n\r\nexport interface GraphData {\r\n testsValues: number[];\r\n usedChargeChart: number[];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/GraphService.ts","import { Injectable, Output, EventEmitter } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Response } from '@angular/http';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n/**\r\n * Service of laboratory\r\n */\r\n@Injectable()\r\nexport class HelloService {\r\n\r\n public isConnected: boolean;\r\n\r\n @Output()\r\n public connectionStatusChange = new EventEmitter();\r\n\r\n @Output()\r\n public userConnected = new EventEmitter();\r\n\r\n public userId: string;\r\n\r\n\r\n constructor(protected http: HttpClient) {\r\n\r\n }\r\n\r\n\r\n setConnected(newStatus: boolean) {\r\n if (this.isConnected !== newStatus) {\r\n this.isConnected = newStatus;\r\n this.connectionStatusChange.emit(newStatus);\r\n }\r\n }\r\n\r\n public newUser() {\r\n this.userConnected.emit(this.userId);\r\n }\r\n\r\n public checkConnection() {\r\n // alert('load()');\r\n this.http.get('/api/hello')\r\n // .map()\r\n // .catch(this.handleError)\r\n .subscribe(\r\n (res: any) => {\r\n this.setConnected(true);\r\n },\r\n (err: any) => {\r\n if (err.status === 200)\r\n {this.setConnected(true);}\r\n else\r\n {this.setConnected(false);}\r\n }\r\n\r\n )\r\n ;\r\n\r\n // and then checkAgain every 5 seconds\r\n setTimeout(() => this.checkConnection(), 5000);\r\n }\r\n\r\n private handleError(error: Response | any) {\r\n // In a real world app, we might use a remote logging infrastructure\r\n let errMsg: string;\r\n if (error instanceof Response) {\r\n const body = error.json() || '';\r\n const err = body.error || JSON.stringify(body);\r\n errMsg = `${error.status} - ${error.statusText || ''} ${err}`;\r\n } else {\r\n errMsg = error.message ? error.message : error.toString();\r\n }\r\n // console.error(errMsg);\r\n return Observable.throw(errMsg);\r\n }\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/HelloService.ts","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CacheableService } from './CacheableService';\r\nimport { Simulation } from '../models/Simulation';\r\nimport { HelloService } from './HelloService';\r\n\r\n@Injectable()\r\nexport class ImportedSimulationService extends CacheableService {\r\n constructor(\r\n http: HttpClient,\r\n helloService: HelloService,\r\n ) {\r\n super(http, '/api/simulations', helloService);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/ImportedSimulationService.ts","import { Injectable } from '@angular/core';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { vm_Global, vm_Instrument, vm_Category, vm_Test, vm_Workcell, vm_WorkcellInstrument } from '../models/SimulationViewModel';\r\nimport { Test } from '../models/Test';\r\nimport { SimulationInstrument } from '../models/SimulationInstrument';\r\nimport { Category } from '../models/Category';\r\nimport { Instrument } from '../models/Instrument';\r\nimport { SimulationWorkcell } from '../models/SimulationWorkcell';\r\nimport { SimulationInstrumentWorkcell } from '../models/SimulationInstrumentWorkcell';\r\n\r\n@Injectable()\r\nexport class InstrumentManagementService {\r\n\r\n getInstrumentCount(value: vm_Global) {\r\n if (value !== null && value.instruments !== null && value.instruments !== undefined) {\r\n return value.instruments.length;\r\n }\r\n }\r\n \r\n \r\n vm_GlobalToSimulationWorkcellInstrument(value: vm_Global, simulationId: string, tests: Test[]): SimulationWorkcell[] {\r\n const result: SimulationWorkcell[] = new Array();\r\n for (const workcell of value.workcells) {\r\n const resultSimulationWorkcell = new SimulationWorkcell();\r\n resultSimulationWorkcell.name = workcell.name;\r\n resultSimulationWorkcell.preanalytics = workcell.workcell.preanalytics;\r\n resultSimulationWorkcell.outputModule= workcell.workcell.outputModule;\r\n resultSimulationWorkcell.layout = workcell.workcell.layout;\r\n resultSimulationWorkcell.centrifugTime= +workcell.workcell.centrifugTime;\r\n resultSimulationWorkcell.nbInstruments = workcell.workcell.nbInstruments;\r\n resultSimulationWorkcell.loadingCentrifuge= workcell.workcell.loadingCentrifuge;\r\n resultSimulationWorkcell.id = UUID.UUID();\r\n resultSimulationWorkcell.simulationId = simulationId;\r\n resultSimulationWorkcell.simulationInstrumentTest = new Array();\r\n resultSimulationWorkcell.instruments = new Array();\r\n for (const category of workcell.categories) {\r\n for (const test of category.tests) {\r\n if (test.checked) {\r\n resultSimulationWorkcell.simulationInstrumentTest.push(this.getTest(test.id, tests));\r\n }\r\n }\r\n }\r\n\r\n\r\n // Load instrument \r\n for(const instrument of workcell.instruments) {\r\n const resultSimulationInstrument = new SimulationInstrumentWorkcell();\r\n resultSimulationInstrument.name = instrument.name;\r\n resultSimulationInstrument.mirror= instrument.mirror;\r\n resultSimulationInstrument.instrumentId = instrument.instrumentId;\r\n resultSimulationInstrument.id = UUID.UUID();\r\n resultSimulationInstrument.simulationId = simulationId;\r\n resultSimulationInstrument.simulationInstrumentTest = new Array();\r\n \r\n for (const category of instrument.categories) {\r\n for (const test of category.tests) {\r\n if (test.checked) {\r\n resultSimulationInstrument.simulationInstrumentTest.push(this.getTest(test.id, tests));\r\n }\r\n }\r\n }\r\n\r\n resultSimulationWorkcell.instruments.push(resultSimulationInstrument);\r\n }\r\n \r\n result.push(resultSimulationWorkcell);\r\n }\r\n return result;\r\n }\r\n\r\n vm_GlobalToSimulationInstrument(value: vm_Global, simulationId: string, tests: Test[]): SimulationInstrument[] {\r\n const result: SimulationInstrument[] = new Array();\r\n for (const instrument of value.instruments) {\r\n const resultSimulationInstrument = new SimulationInstrument();\r\n resultSimulationInstrument.name = instrument.name;\r\n resultSimulationInstrument.id = UUID.UUID();\r\n resultSimulationInstrument.instrumentId = instrument.instrumentId;\r\n resultSimulationInstrument.simulationId = simulationId;\r\n resultSimulationInstrument.simulationInstrumentTest = new Array();\r\n for (const category of instrument.categories) {\r\n for (const test of category.tests) {\r\n if (test.checked) {\r\n resultSimulationInstrument.simulationInstrumentTest.push(this.getTest(test.id, tests));\r\n }\r\n }\r\n }\r\n result.push(resultSimulationInstrument);\r\n }\r\n return result;\r\n }\r\n\r\n\r\n simulationInstrumentToVm_Global(instruments: SimulationInstrument[], categories: Category[],\r\n testOfCategory: { [id: string]: Test[]; }, baseInstrument: Instrument[],\r\n workcells: SimulationWorkcell[]): vm_Global {\r\n const result = new vm_Global();\r\n\r\n\r\n result.workcells = new Array();\r\n //console.log(\"workcells dans load : \",workcells);\r\n \r\n for (const workcell of workcells) {\r\n const sit_workcell = new vm_Workcell();\r\n sit_workcell.name = workcell.name;\r\n sit_workcell.workcell = new SimulationWorkcell();\r\n sit_workcell.workcell.loadingCentrifuge = workcell.loadingCentrifuge;\r\n sit_workcell.workcell.outputModule = workcell.outputModule;\r\n sit_workcell.workcell.layout = workcell.layout;\r\n sit_workcell.workcell.centrifugTime = +workcell.centrifugTime;\r\n sit_workcell.workcell.nbInstruments = workcell.nbInstruments;\r\n sit_workcell.workcell.preanalytics = workcell.preanalytics;\r\n \r\n sit_workcell.categories = new Array();\r\n for (const category of categories) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.tests = new Array();\r\n sit_categ.id = category.id;\r\n for (const test of testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.id = test.id;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = this.isActive(workcell.simulationInstrumentTest, test.id);\r\n sit_categ.tests.push(sit_test);\r\n }\r\n sit_workcell.categories.push(sit_categ);\r\n }\r\n\r\n sit_workcell.instruments = new Array();\r\n for (const instrument of workcell.instruments) {\r\n \r\n var instr = this.extractVMInstrumentWorkcell(instrument, categories, testOfCategory,baseInstrument) ;\r\n instr.mirror = instrument.mirror;\r\n sit_workcell.instruments.push(instr);\r\n }\r\n\r\n result.workcells.push(sit_workcell);\r\n }\r\n\r\n\r\n result.instruments = new Array();\r\n //console.log('instrument.instrument', instruments);\r\n for (const instrument of instruments) {\r\n \r\n result.instruments.push(this.extractVMInstrument(instrument, categories, testOfCategory,baseInstrument));\r\n }\r\n return result;\r\n }\r\n\r\nextractVMInstrumentWorkcell(instrument: SimulationInstrument, categories: Category[], testOfCategory: { [id: string]: Test[]; }, baseInstrument: Instrument[]): vm_WorkcellInstrument {\r\n\r\n const sit_instrument = new vm_WorkcellInstrument();\r\n sit_instrument.name = instrument.name;\r\n sit_instrument.instrumentId = instrument.instrumentId;\r\n\r\n sit_instrument.instrument = this.getInstrument(instrument.instrumentId, baseInstrument);\r\n\r\n sit_instrument.categories = new Array();\r\n for (const category of categories) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.tests = new Array();\r\n sit_categ.id = category.id;\r\n for (const test of testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.id = test.id;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = this.isActive(instrument.simulationInstrumentTest, test.id);\r\n sit_categ.tests.push(sit_test);\r\n }\r\n sit_instrument.categories.push(sit_categ);\r\n }\r\n return sit_instrument;\r\n}\r\n\r\n extractVMInstrument(instrument: SimulationInstrument, categories: Category[], testOfCategory: { [id: string]: Test[]; }, baseInstrument: Instrument[]): vm_Instrument {\r\n\r\n const sit_instrument = new vm_Instrument();\r\n sit_instrument.name = instrument.name;\r\n sit_instrument.instrumentId = instrument.instrumentId;\r\n\r\n sit_instrument.instrument = this.getInstrument(instrument.instrumentId, baseInstrument);\r\n\r\n sit_instrument.categories = new Array();\r\n for (const category of categories) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.tests = new Array();\r\n sit_categ.id = category.id;\r\n for (const test of testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.id = test.id;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = this.isActive(instrument.simulationInstrumentTest, test.id);\r\n sit_categ.tests.push(sit_test);\r\n }\r\n sit_instrument.categories.push(sit_categ);\r\n }\r\n return sit_instrument;\r\n }\r\n\r\n public getTest(testId: string, tests: Test[]) {\r\n for (const test of tests) {\r\n if (test.id === testId) {\r\n return test;\r\n }\r\n }\r\n }\r\n\r\n private isActive(instrumentTests: Test[], idTest: string): boolean {\r\n for (const instrumentTest of instrumentTests) {\r\n if (instrumentTest.id === idTest) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private getInstrument(instrumentId: string, baseInstrument: Instrument[]): Instrument {\r\n for (const inst of baseInstrument) {\r\n if (inst.id === instrumentId) {\r\n return inst;\r\n }\r\n }\r\n return null;\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/InstrumentManagementService.ts","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CacheableService } from './CacheableService';\r\nimport { Instrument } from '../models/Instrument';\r\nimport { HelloService } from './HelloService';\r\n/**\r\n * Service of laboratory\r\n */\r\n@Injectable()\r\nexport class InstrumentService extends CacheableService {\r\n\r\n constructor(http: HttpClient, helloService: HelloService) {\r\n super(http, '/api/instruments', helloService);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/InstrumentService.ts","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CacheableService } from './CacheableService';\r\nimport { Laboratory } from '../models/Laboratory';\r\nimport { HelloService } from './HelloService';\r\n\r\n/**\r\n * Service of laboratory\r\n */\r\n@Injectable()\r\nexport class LaboratoryService extends CacheableService {\r\n\r\n constructor(http: HttpClient, helloService: HelloService) {\r\n super(http, '/api/laboratories', helloService);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/LaboratoryService.ts","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class RegexService {\r\n\r\n validateTotalByYear(testRegex: boolean, value: string = '') {\r\n const regex = '[0-9]{0,10}';\r\n if (testRegex) {\r\n return this.validateRegEx(value, regex);\r\n } else {\r\n return regex;\r\n }\r\n }\r\n\r\n validateDecimal(testRegex: boolean, value: string = '') {\r\n const regex = '[0-9]{0,3}(\\.[0-9]{1,2})?';\r\n if (testRegex) {\r\n return this.validateRegEx(value, regex);\r\n } else {\r\n return regex;\r\n }\r\n }\r\n\r\n validateRerunOrRedilution(testRegex: boolean, value: string = '') {\r\n const regex = '[0-9]{0,2}';\r\n if (testRegex) {\r\n return this.validateRegEx(value, regex);\r\n } else {\r\n return regex;\r\n }\r\n }\r\n\r\n validateDilutionOrNumberPerWeek(testRegex: boolean, value: string = '') {\r\n const regex = '[0-9]{0,1}';\r\n if (testRegex) {\r\n return this.validateRegEx(value, regex);\r\n } else {\r\n return regex;\r\n }\r\n\r\n }\r\n\r\n validateHour(testRegex: boolean, value: string = '') {\r\n const regex = '0[0-9]|1[0-9]|2[0-3]|0';\r\n if (testRegex) {\r\n return this.validateRegEx(value, regex);\r\n } else {\r\n return regex;\r\n }\r\n }\r\n\r\n validateRegEx(value: string, regex: string): boolean {\r\n const regexp = RegExp(regex);\r\n const test = regexp.exec(value);\r\n if (test !== null && test.length > 0) {\r\n return test[0] === value;\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/RegexService.ts","import { Injectable } from '@angular/core';\r\nimport html2canvas from 'html2canvas';\r\n\r\n@Injectable()\r\nexport class ScreenShotService {\r\n /**\r\n * take screenshot of the html element in src, with eventualy scale factor (put 1)\r\n * @param srcEl\r\n * @param scaleFactor\r\n * @param destFileName\r\n */\r\n takeHighResScreenshot(srcEl, destFileName, scaleFactor = 2) {\r\n // Save original size of element\r\n const originalWidth = srcEl.offsetWidth;\r\n const originalHeight = srcEl.offsetHeight;\r\n // Force px size (no %, EMs, etc)\r\n srcEl.style.width = originalWidth + 'px';\r\n srcEl.style.height = originalHeight + 'px';\r\n // Position the element at the top left of the document because of bugs in html2canvas. The bug exists when supplying a custom canvas, and offsets the rendering on the custom canvas based on the offset of the source element on the page; thus the source element MUST be at 0, 0.\r\n // See html2canvas issues #790, #820, #893, #922\r\n const originalStylePosition = srcEl.style.position;\r\n const originalStyleTop = srcEl.style.top;\r\n const originalStyleLeft = srcEl.style.left;\r\n\r\n srcEl.style.position = 'absolute';\r\n srcEl.style.top = '0';\r\n srcEl.style.left = '0';\r\n\r\n // Create scaled canvas\r\n const scaledCanvas = document.createElement('canvas');\r\n scaledCanvas.width = originalWidth * scaleFactor;\r\n scaledCanvas.height = originalHeight * scaleFactor;\r\n scaledCanvas.style.width = originalWidth + 'px';\r\n scaledCanvas.style.height = originalHeight + 'px';\r\n const scaledContext = scaledCanvas.getContext('2d');\r\n scaledContext.scale(scaleFactor, scaleFactor);\r\n const options: any = { canvas: scaledCanvas };\r\n const that = this;\r\n html2canvas(srcEl, options).then(function(canvas) {\r\n // destIMG.src = canvas.toDataURL(\"image/png\");\r\n // srcEl.style.display = \"none\";\r\n\r\n srcEl.style.position = originalStylePosition;\r\n srcEl.style.top = originalStyleTop;\r\n srcEl.style.left = originalStyleLeft;\r\n\r\n // const a = document.createElement('a');\r\n // // toDataURL defaults to png, so we need to request a jpeg, then convert for file download.\r\n // a.href = canvas.toDataURL('image/jpeg').replace('image/jpeg', 'image/octet-stream');\r\n console.log('takeHighResScreenshot');\r\n that.downloadFile(canvas.toDataURL('image/jpeg').replace('image/jpeg', 'image/octet-stream'), destFileName);\r\n });\r\n }\r\n\r\n canvas2Image(srcEl, destFileName) {\r\n // this.takeHighResScreenshot(srcEl, destFileName);\r\n this.downloadFile(srcEl.toDataURL('image/png'), destFileName);\r\n }\r\n\r\n svg_crowbar(svg_el, options) {\r\n // TODO: should probably do some checking to make sure that svg_el is\r\n // actually a and throw a friendly error otherwise\r\n\r\n // get options passed to svg_crowbar\r\n const filename = options.filename || 'download.png';\r\n const width = options.width; // TODO: add fallback value based on svg attributes\r\n const height = options.height; // TODO: add fallback value based on svg attributes\r\n const crowbar_el = options.crowbar_el; // TODO: element for preparing the canvas element\r\n\r\n // apply the stylesheet to the svg to be sure to capture all of the stylings\r\n this.applyStylesheets(svg_el);\r\n\r\n // grab the html from the svg and encode the svg in a data url\r\n const html = svg_el.outerHTML;\r\n const imgsrc = 'data:image/svg+xml;base64,' + btoa(html);\r\n\r\n // create a canvas element that has the right dimensions\r\n crowbar_el.innerHTML = '';\r\n const canvas = crowbar_el.querySelector('canvas');\r\n const context = canvas.getContext('2d');\r\n const image = new Image();\r\n image.src = imgsrc;\r\n image.onload = function() {\r\n // draw the image in the context of the canvas and then get the\r\n // image data from the canvas\r\n //\r\n // TODO: the resulting canvas image is a little on the grainy side.\r\n // up until this point the image is lossless, so it definitely has\r\n // something to do with the imgsrc getting lost when embedding in\r\n // the canvas. this appears to be a problem with just about\r\n // anything i've seen\r\n context.drawImage(image, 0, 0);\r\n const canvasdata = canvas.toDataURL('image/png');\r\n\r\n // download the data\r\n const a = document.createElement('a');\r\n a.download = filename;\r\n a.href = canvasdata;\r\n a.click();\r\n };\r\n }\r\n // this is adapted (barely) from svg-crowbar\r\n // https://github.com/NYTimes/svg-crowbar/blob/gh-pages/svg-crowbar-2.js#L211-L250\r\n applyStylesheets(svgEl) {\r\n // use an empty svg to compute the browser applied stylesheets\r\n const emptySvg = window.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n window.document.body.appendChild(emptySvg);\r\n const emptySvgDeclarationComputed = getComputedStyle(emptySvg);\r\n emptySvg.parentNode.removeChild(emptySvg);\r\n\r\n // traverse the element tree and explicitly set all stylesheet values\r\n // on an element. this is ripped from svg-crowbar\r\n const allElements = this.traverse(svgEl);\r\n let i = allElements.length;\r\n while (i--) {\r\n this.explicitlySetStyle(allElements[i], emptySvgDeclarationComputed);\r\n }\r\n }\r\n\r\n explicitlySetStyle(element, emptySvgDeclarationComputed) {\r\n const cSSStyleDeclarationComputed = getComputedStyle(element);\r\n let i, len, key, value;\r\n let computedStyleStr = '';\r\n for (i = 0, len = cSSStyleDeclarationComputed.length; i < len; i++) {\r\n key = cSSStyleDeclarationComputed[i];\r\n value = cSSStyleDeclarationComputed.getPropertyValue(key);\r\n if (value !== emptySvgDeclarationComputed.getPropertyValue(key)) {\r\n computedStyleStr += key + ':' + value + ';';\r\n }\r\n }\r\n element.setAttribute('style', computedStyleStr);\r\n }\r\n\r\n // traverse an svg and append all of the elements to the tree array. This\r\n // ignores some elements that can appear in elements but whose\r\n // children's styles should not be tweaked\r\n traverse(obj) {\r\n const tree = [];\r\n const ignoreElements = {\r\n script: undefined,\r\n defs: undefined\r\n };\r\n tree.push(obj);\r\n visit(obj);\r\n function visit(node) {\r\n if (node && node.hasChildNodes() && !(node.nodeName.toLowerCase() in ignoreElements)) {\r\n let child = node.firstChild;\r\n while (child) {\r\n if (child.nodeType === 1) {\r\n tree.push(child);\r\n visit(child);\r\n }\r\n child = child.nextSibling;\r\n }\r\n }\r\n }\r\n return tree;\r\n }\r\n\r\n downloadFile(data, fileName) {\r\n const blob = this.dataURItoBlob(data);\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // console.log('blob');\r\n window.navigator.msSaveOrOpenBlob(blob, fileName);\r\n // console.log('msSaveOrOpenBlob');\r\n } else {\r\n const url = window.URL.createObjectURL(blob);\r\n window.open(url);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = fileName;\r\n link.click();\r\n\r\n // const a = window.document.createElement('a');\r\n // a.href = encodeURI(data); // window.URL.createObjectURL(blob, { type: 'text/plain' });\r\n // a.download = fileName;\r\n // // a.href = a.href.replace(/^data:image\\/[^;]/, 'data:application/octet-stream');\r\n // document.body.appendChild(a);\r\n // a.click(); // IE: \"Access is denied\"; see: https://connect.microsoft.com/IE/feedback/details/797361/ie-10-treats-blob-url-as-cross-origin-and-denies-access\r\n // document.body.removeChild(a);\r\n }\r\n }\r\n\r\n dataURItoBlob(dataURI) {\r\n dataURI = dataURI.replace(/\\r\\n/g, '').replace(/^[^,]+,/, '');\r\n const byteString = atob(dataURI);\r\n const arrayBuffer = new ArrayBuffer(byteString.length);\r\n const int8Array = new Uint8Array(arrayBuffer);\r\n for (let i = 0; i < byteString.length; i++) {\r\n int8Array[i] = byteString.charCodeAt(i);\r\n }\r\n const blob = new Blob([int8Array], { type: 'image/png' });\r\n return blob;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/ScreenShotService.ts","import { Injectable } from '@angular/core';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { List } from 'linqts';\r\nimport { Test } from '../models/Test';\r\nimport { Category } from '../models/Category';\r\nimport { vm_Category, vm_Global, vm_Test } from '../models/SimulationViewModel';\r\nimport { TestService } from './TestService';\r\nimport { CalculSimulationService } from './CalculSimulationService';\r\nimport { SimulationActivity } from '../models/SimulationActivity';\r\n\r\n\r\n@Injectable()\r\nexport class SimulationActivityManagementService {\r\n private tests: Test[] = new Array();\r\n private testOfCategory: { [id: string]: Test[]; } = {};\r\n private categories: Category[];\r\n vm_Categories = new Array();\r\n\r\n constructor(private testService: TestService, private calculSimulationService: CalculSimulationService) {\r\n\r\n this.testService.get().subscribe(res => {\r\n this.tests = res.items as Test[];\r\n this.tests = this.tests.sort(function (a, b) {\r\n return a.order - b.order;\r\n });\r\n\r\n });\r\n this.vm_Categories = this.getTestOrderByCategory();\r\n }\r\n\r\n\r\n public simuActivityToVm_Global(activities: SimulationActivity[], global: vm_Global) {\r\n global.categories = this.vm_Categories;\r\n\r\n for (const category of global.categories) {\r\n for (const test of category.tests) {\r\n test.checked = false;\r\n test.active = false;\r\n test.dossierOuSerie = true;\r\n test.nbDilution = null;\r\n test.nbPerWeek = null;\r\n test.quantity = null;\r\n // TODO Set to true there's no input for quantity type until now\r\n test.quantityType = true;\r\n // ------------------------------------------------------------\r\n test.startHour = null;\r\n test.txRedilution = null;\r\n test.txRepasse = null;\r\n test.categoryid = category.id;\r\n // set false to default workcell value\r\n test.workcell = false;\r\n\r\n for (const activity of activities) {\r\n if (test.id === activity.testId) {\r\n test.active = activity.active;\r\n test.dossierOuSerie = activity.dossierOuSerie;\r\n test.nbDilution = activity.nbDilution;\r\n test.nbPerWeek = activity.nbPerWeek;\r\n test.quantity = activity.quantity;\r\n test.workcell = activity.workcell;\r\n\r\n // TODO Set to true there's no input for quantity type until now\r\n test.quantityType = true;\r\n // -------------------------------------------------------------\r\n test.startHour = activity.startHour;\r\n test.txRedilution = activity.txRedilution;\r\n test.txRepasse = activity.txRepasse;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return activities;\r\n }\r\n\r\n public vm_GlobalToSimulationActivities(value: vm_Global, simulationId: string, skipForTotal: boolean = false): SimulationActivity[] {\r\n const result: SimulationActivity[] = new Array();\r\n\r\n if (!skipForTotal) {\r\n for (const category of value.categories) {\r\n for (const test of category.tests) {\r\n const activity = new SimulationActivity();\r\n\r\n activity.testId = test.id;\r\n activity.active = test.active;\r\n activity.dossierOuSerie = test.dossierOuSerie;\r\n activity.id = UUID.UUID();\r\n activity.nbDilution = this.testNullOrUndefined(test.nbDilution);\r\n activity.nbPerWeek = this.testNullOrUndefined(test.nbPerWeek);\r\n activity.quantity = this.testNullOrUndefined(test.quantity);\r\n // TODO to review --------------------------------\r\n activity.quantityType = test.quantityType;\r\n // -----------------------------------------------\r\n activity.startHour = this.testNullOrUndefined(test.startHour);\r\n activity.txRedilution = this.testNullOrUndefined(test.txRedilution);\r\n activity.txRepasse = this.testNullOrUndefined(test.txRepasse);\r\n activity.workcell = test.workcell ;\r\n result.push(activity);\r\n }\r\n }\r\n } else {\r\n for (const category of value.categories) {\r\n for (const test of category.tests) {\r\n if (test.dossierOuSerie && test.active) {\r\n const activity = new SimulationActivity();\r\n activity.testId = test.id;\r\n activity.active = test.active;\r\n activity.dossierOuSerie = test.dossierOuSerie;\r\n activity.id = UUID.UUID();\r\n activity.nbDilution = this.testNullOrUndefined(test.nbDilution);\r\n activity.nbPerWeek = this.testNullOrUndefined(test.nbPerWeek);\r\n activity.quantity = this.testNullOrUndefined(test.quantity);\r\n // TODO to review --------------------------------\r\n activity.quantityType = test.quantityType;\r\n // -----------------------------------------------\r\n activity.startHour = this.testNullOrUndefined(test.startHour);\r\n activity.txRedilution = this.testNullOrUndefined(test.txRedilution);\r\n activity.txRepasse = this.testNullOrUndefined(test.txRepasse);\r\n activity.workcell =test.workcell ;\r\n\r\n result.push(activity);\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public haveBatchTest(global: vm_Global): boolean {\r\n\r\n for (const category of global.categories) {\r\n for (const test of category.tests) {\r\n if (!test.dossierOuSerie && test.active) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n public haveStandAloneTests(global: vm_Global): boolean {\r\n\r\n for (const category of global.categories) {\r\n for (const test of category.tests) {\r\n if (!test.workcell && test.active) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n \r\n public haveWorkcellsTests(global: vm_Global): boolean {\r\n\r\n for (const category of global.categories) {\r\n for (const test of category.tests) {\r\n if (test.workcell && test.active) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public numberOfBatchPerCategory(category: vm_Category): number {\r\n let batchs = 0;\r\n\r\n for (const test of category.tests) {\r\n if (!test.dossierOuSerie) {\r\n batchs++;\r\n }\r\n }\r\n\r\n return batchs;\r\n }\r\n\r\n public categoryHaveBatchTest(category: vm_Category): boolean {\r\n for (const test of category.tests) {\r\n if (!test.dossierOuSerie) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public getTotalOfTestsWithNoBatch(global: vm_Global, nbDaysPerWeek: number, periodForQuantity: string, isWorkcell: boolean): number {\r\n let total = 0;\r\n for (const activity of this.vm_GlobalToSimulationActivities(global, '', true)) {\r\n if (activity.dossierOuSerie) {\r\n if (isWorkcell == activity.workcell) {\r\n total = total + this.calculSimulationService.getDailyTestOfActivity(activity, nbDaysPerWeek, periodForQuantity, isWorkcell);\r\n }\r\n }\r\n }\r\n return total;\r\n }\r\n\r\n private testNullOrUndefined(testValue: number): number {\r\n if (testValue == null || testValue === undefined) {\r\n return 0;\r\n } else {\r\n return +testValue;\r\n }\r\n }\r\n\r\n private getTestOrderByCategory() {\r\n\r\n this.testOfCategory = {};\r\n\r\n const categories = new List();\r\n const categoriesVm = new Array();\r\n for (const test of this.tests) {\r\n if (!categories.Any(w => w.id === test.categoryId)) {\r\n categories.Add(test.category);\r\n }\r\n\r\n const categ = categories.FirstOrDefault(e => e.id === test.categoryId);\r\n if (this.testOfCategory[categ.id] == null) {\r\n this.testOfCategory[categ.id] = new Array();\r\n }\r\n this.testOfCategory[categ.id].push(test);\r\n }\r\n\r\n this.categories = categories.ToArray();\r\n\r\n for (const category of this.categories.sort((a, b) => a.order - b.order)) {\r\n const sit_categ = new vm_Category();\r\n sit_categ.name = category.name;\r\n sit_categ.id = category.id;\r\n sit_categ.tests = new Array();\r\n\r\n for (const test of this.testOfCategory[category.id]) {\r\n const sit_test = new vm_Test();\r\n sit_test.mnemonic = test.mnemonic;\r\n sit_test.diluable = test.diluable;\r\n sit_test.rediluable = test.rediluable;\r\n sit_test.checked = true;\r\n sit_test.id = test.id;\r\n sit_categ.tests.push(sit_test);\r\n }\r\n categoriesVm.push(sit_categ);\r\n }\r\n\r\n return categoriesVm;\r\n }\r\n}\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/SimulationActivityManagementService.ts","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CacheableService } from './CacheableService';\r\nimport { SimulationActivity } from '../models/SimulationActivity';\r\nimport { HelloService } from './HelloService';\r\n/**\r\n * Service of laboratory\r\n */\r\n@Injectable()\r\nexport class SimulationActivityService extends CacheableService {\r\n\r\n constructor(http: HttpClient, helloService: HelloService) {\r\n super(http, '/api/simulationActivity', helloService);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/SimulationActivityService.ts","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { UUID } from 'angular2-uuid';\r\n\r\nimport * as moment from 'moment';\r\nimport { CacheableService } from './CacheableService';\r\nimport { Simulation } from '../models/Simulation';\r\nimport { HelloService } from './HelloService';\r\nimport { LaboratoryService } from './LaboratoryService';\r\nimport { TestService } from './TestService';\r\nimport { InstrumentService } from './InstrumentService';\r\nimport { WorkListItem } from '../models/WorkListItem';\r\nimport { Laboratory } from '../models/Laboratory';\r\nimport * as XLSX from 'xlsx';\r\nimport { WorkListWorkcellItem } from '../models/WorkListWorkcellItem';\r\n\r\n@Injectable()\r\nexport class SimulationService extends CacheableService {\r\n public onCreate = new EventEmitter();\r\n\r\n constructor(\r\n http: HttpClient,\r\n helloService: HelloService,\r\n private translateService: TranslateService,\r\n private laboratoryService: LaboratoryService,\r\n private testService: TestService,\r\n private instrumentService: InstrumentService\r\n ) {\r\n super(http, '/api/simulations', helloService);\r\n }\r\n\r\n exportSimulationJSON(simulation: Simulation) {\r\n const fileContents = 'data:text/csv;charset=utf-8,' + JSON.stringify(simulation);\r\n const filename = 'simulation.txt';\r\n\r\n this.downloadFile(fileContents, filename);\r\n }\r\n\r\n exportSimulationXML(simulation: Simulation) {\r\n const xml2js = require('xml2js');\r\n var builder = new xml2js.Builder();\r\n var xml = builder.buildObject(simulation);\r\n\r\n const fileContents = 'data:text/xml;charset=utf-8,' + xml;\r\n const filename = 'simulation.xml';\r\n\r\n this.downloadFile(fileContents, filename);\r\n }\r\n\r\n exportSimulationCSV(worklistItems: WorkListItem[], simulation: Simulation) {\r\n\r\n const separator = ';';\r\n\r\n let data = '' +\r\n 'Load Date' +\r\n separator +\r\n 'SampleID' +\r\n separator +\r\n 'Test' +\r\n separator +\r\n 'Priority' +\r\n separator +\r\n 'Instrument' +\r\n separator +\r\n 'Start Date' +\r\n separator +\r\n 'Result Date' +\r\n separator +\r\n 'TAT' +\r\n '\\n';\r\n\r\n for (const item of worklistItems) {\r\n const loadDate = moment(item.dateAndTime);\r\n const resultDate = moment(item.resultsDateTime);\r\n const startDate = moment(item.startTime);\r\n let instrumentName = 'not found';\r\n if (item.workcellId) {\r\n item.priority = 0 ;\r\n instrumentName = simulation.instrumentsWorkcell.find(e=> e.id == item.workcellId).instruments.find(c => c.id === item.instrumentId).name;\r\n } else {\r\n instrumentName = simulation.instruments.find(c => c.id === item.instrumentId).name;\r\n }\r\n\r\n // HH format for 24H format\r\n data +=\r\n '' +\r\n loadDate.format('HH:mm:ss') +\r\n separator +\r\n item.sampleId +\r\n separator +\r\n item.test.mnemonic +\r\n separator +\r\n item.priority +\r\n separator +\r\n instrumentName +\r\n separator +\r\n startDate.format('HH:mm:ss') +\r\n separator +\r\n resultDate.format('HH:mm:ss') +\r\n separator +\r\n item.TAT +\r\n '\\n';\r\n }\r\n\r\n const fileContents = 'data:text/csv;charset=utf-8,' + data;\r\n const filename = 'simulation.csv';\r\n // let filetype = 'text/plain';\r\n\r\n //// generate link to dl file, check if FF is ok with this hidden a !\r\n // let a = document.createElement('a');\r\n // a.href = encodeURI(fileContents);\r\n // a.download = filename;\r\n // a.click();\r\n this.downloadFile(fileContents, filename);\r\n }\r\n\r\n\r\n\r\n\r\n exportSimulationCSVWorkcell(worklistItems: WorkListWorkcellItem[], simulation: Simulation) {\r\n\r\n const separator = ';';\r\n let data = 'Hour' +\r\n separator +\r\n 'sampleID' +\r\n separator +\r\n 'bras1' +\r\n separator +\r\n 'Bras2' +\r\n separator +\r\n 'BatchId' +\r\n separator +\r\n 'SubBatchId'+\r\n separator +\r\n 'RackId' +\r\n separator +\r\n 'D_r' +\r\n separator +\r\n 'd_instr' +\r\n separator +\r\n 'test' +\r\n separator +\r\n 'priority' +\r\n separator +\r\n 'instrument' +\r\n separator +\r\n 'resultDate' +\r\n separator +\r\n 'TAT' +\r\n '\\n';\r\n\r\n\r\n for (const item of worklistItems) {\r\n const loadDate = moment(item.dt_id);\r\n const resultDate = moment(item.resultsDateTime);\r\n const d_bras1 = moment(item.d_bras1);\r\n const d_bras2 = moment(item.d_bras2);\r\n const d_r = moment(item.d_r);\r\n const d_instr = moment(item.startTime);\r\n\r\n let instrumentName = 'not found';\r\n if (item.workcellId) {\r\n item.priority = 0 ;\r\n instrumentName = simulation.instrumentsWorkcell.find(e=> e.id == item.workcellId).instruments.find(c => c.id === item.instrumentId).name;\r\n } else {\r\n instrumentName = simulation.instruments.find(c => c.id === item.instrumentId).name;\r\n }\r\n\r\n // HH format for 24H format\r\n data +=\r\n '' +\r\n loadDate.format('HH:mm') +\r\n separator +\r\n item.sampleId +\r\n separator +\r\n d_bras1.format('HH:mm:ss') +\r\n separator +\r\n d_bras2.format('HH:mm:ss') +\r\n separator +\r\n item.batch_id +\r\n separator +\r\n item.sub_batch_id +\r\n separator +\r\n item.rack_id +\r\n separator +\r\n d_r.format('HH:mm:ss') +\r\n separator +\r\n d_instr.format('HH:mm:ss') +\r\n separator +\r\n item.test.mnemonic +\r\n separator +\r\n item.priority +\r\n separator +\r\n instrumentName +\r\n separator +\r\n resultDate.format('HH:mm:ss') +\r\n separator +\r\n item.TAT +\r\n '\\n';\r\n }\r\n\r\n const fileContents = 'data:text/csv;charset=utf-8,' + data;\r\n const filename = 'simulation.csv';\r\n // let filetype = 'text/plain';\r\n\r\n //// generate link to dl file, check if FF is ok with this hidden a !\r\n // let a = document.createElement('a');\r\n // a.href = encodeURI(fileContents);\r\n // a.download = filename;\r\n // a.click();\r\n this.downloadFile(fileContents, filename);\r\n }\r\n\r\n /**\r\n * This faboulous method works in most of navigator : cross hands for ipad !\r\n * @param data\r\n * @param fileName\r\n */\r\n downloadFile(data, fileName) {\r\n const blob = new Blob([data]);\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n // IE hack; see http://msdn.microsoft.com/en-us/library/ie/hh779016.aspx\r\n window.navigator.msSaveBlob(blob, fileName);\r\n } else {\r\n const a = window.document.createElement('a');\r\n a.href = encodeURI(data); // window.URL.createObjectURL(blob, { type: 'text/plain' });\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click(); // IE: \"Access is denied\"; see: https://connect.microsoft.com/IE/feedback/details/797361/ie-10-treats-blob-url-as-cross-origin-and-denies-access\r\n document.body.removeChild(a);\r\n }\r\n }\r\n\r\n async importSimulation(simulation: Simulation, createNew: boolean, newName: string, userId: string) {\r\n // check if simulation doesn't already exist : ask for update or create a new one\r\n const allInstruments = await this.instrumentService.get().toPromise();\r\n const allTests = await this.testService.get().toPromise();\r\n if (simulation) {\r\n if (simulation.instruments) {\r\n for (const simuInstrument of simulation.instruments) {\r\n if (simuInstrument.instrumentId) {\r\n let simuInstrumentFound = allInstruments.items.some(i => i.id == simuInstrument.instrumentId);;\r\n let simuInstruTestFound: boolean;\r\n\r\n if (simuInstrumentFound) {\r\n for (const simuInstruTest of simuInstrument.simulationInstrumentTest) {\r\n if (simuInstruTest) {\r\n simuInstruTestFound = allTests.items.some(test => test.id == simuInstruTest.id);\r\n\r\n if (!simuInstruTestFound) {\r\n return this.translateService.instant('Import_FailInstrumentTest') + ' : ' + simuInstruTest.name;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!simuInstrumentFound) {\r\n return this.translateService.instant('Import_FailInstrument') + ' : ' + simuInstrument.name;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Update\r\n if (createNew) {\r\n simulation.id = null;\r\n simulation.name = newName;\r\n\r\n // fresh instrument id\r\n for (const instrument of simulation.instruments) {\r\n instrument.id = UUID.UUID();\r\n }\r\n }\r\n // create the laboratory !\r\n const laboratory = this.laboratoryService.findDirect(simulation.laboratoryId);\r\n if (laboratory == null) {\r\n simulation.laboratory = new Laboratory();\r\n // create the lab\r\n simulation.laboratory.id = null;\r\n simulation.laboratory.userId = userId;\r\n const labId = this.laboratoryService.edit(simulation.laboratory);\r\n simulation.laboratoryId = labId;\r\n simulation.laboratory.id = labId;\r\n }\r\n\r\n // update/create the simulation\r\n this.edit(simulation);\r\n\r\n this.onCreate.emit(simulation);\r\n\r\n return null;\r\n }\r\n }\r\n\r\n public updateLastDate(simulationId: string): boolean {\r\n // call the WS to update the last update date\r\n this.http.get(this.baseUrl + '/' + simulationId + '/updateLastDate');\r\n return true;\r\n }\r\n\r\n\r\n\r\n\r\n hasWorkcell(simulation: Simulation): boolean {\r\n return simulation.activities.filter(e=>e.workcell && e.active).length > 0;\r\n }\r\n\r\n hasStandAlone(simulation: Simulation): boolean {\r\n return simulation.activities.filter(e=>!e.workcell && e.active).length > 0;\r\n }\r\n\r\n hasMixte(simulation: Simulation) : boolean {\r\n return this.hasWorkcell(simulation) && this.hasStandAlone(simulation);\r\n }\r\n\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/SimulationService.ts","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CacheableService } from './CacheableService';\r\nimport { State } from '../models/State';\r\nimport { HelloService } from './HelloService';\r\n/**\r\n * Service of laboratory\r\n */\r\n@Injectable()\r\nexport class StateService extends CacheableService {\r\n\r\n constructor(http: HttpClient, helloService: HelloService) {\r\n super(http, '/api/states', helloService);\r\n }\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/StateService.ts","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Test } from '../models/Test';\r\nimport { CacheableService } from './CacheableService';\r\nimport { HelloService } from './HelloService';\r\n\r\n\r\n/**\r\n * Service of laboratory\r\n */\r\n@Injectable()\r\nexport class TestService extends CacheableService {\r\n\r\n constructor(http: HttpClient, helloService: HelloService) {\r\n super(http, '/api/tests', helloService);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/TestService.ts","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { CacheableService } from './CacheableService';\r\nimport { User } from '../models/User';\r\nimport { HelloService } from './HelloService';\r\nimport { PagedDataSource } from '../models/PagedDataSource';\r\n\r\n@Injectable()\r\nexport class UserService extends CacheableService {\r\n\r\n errorMessage: string;\r\n constructor(http: HttpClient, helloService: HelloService, private router: Router) {\r\n super(http, '/api/login', helloService);\r\n }\r\n\r\n public load() {\r\n // nothing to do here\r\n // let's take a chair\r\n }\r\n\r\n public logon(user: string, password: string) {\r\n const encodedPass = encodeURIComponent(password);\r\n const encodedUser = encodeURIComponent(user);\r\n\r\n return this.http.get(this.baseUrl + '/getUser?login=' + encodedUser + '&password=' + encodedPass); // ;=0&userId=' + this.userId)\r\n }\r\n\r\n public get(): Observable> {\r\n return Observable.create(observer => {\r\n const result: PagedDataSource = new PagedDataSource();\r\n result.items = [];\r\n result.items.push(this.getCurrent());\r\n result.totalCount = 1;\r\n observer.next(result);\r\n observer.complete();\r\n });\r\n }\r\n\r\n public getCurrent(): User {\r\n\r\n // try to send before update local\r\n\r\n const users = this.storageGetItem('currentUser');\r\n if (users) {\r\n let itemJSON: User;\r\n itemJSON = JSON.parse(users);\r\n if (itemJSON) {\r\n // console.log(itemJSON);\r\n this.helloService.userId = itemJSON.id;\r\n return itemJSON;\r\n }\r\n } else {\r\n // go to logon page\r\n return null;\r\n }\r\n\r\n }\r\n\r\n public saveCurrent(user: User) {\r\n this.storageSetItem('currentUser', JSON.stringify(user));\r\n }\r\n\r\n public logout() {\r\n this.storageSetItem('currentUser', null);\r\n setTimeout(() => this.router.navigate(['/login']), 213);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/UserService.ts","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CacheableService } from './CacheableService';\r\nimport { WorkListItem } from '../models/WorkListItem';\r\nimport { HelloService } from './HelloService';\r\n/**\r\n * Service of activity flux\r\n */\r\n@Injectable()\r\nexport class WorkListService extends CacheableService {\r\n\r\n constructor(http: HttpClient, helloService: HelloService ) {\r\n super(http, '/api/worklistItem', helloService);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/src/services/WorkListService.ts","var map = {\n\t\"./af\": \"../../../../moment/locale/af.js\",\n\t\"./af.js\": \"../../../../moment/locale/af.js\",\n\t\"./ar\": \"../../../../moment/locale/ar.js\",\n\t\"./ar-dz\": \"../../../../moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"../../../../moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"../../../../moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"../../../../moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"../../../../moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"../../../../moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"../../../../moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"../../../../moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"../../../../moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"../../../../moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"../../../../moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"../../../../moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"../../../../moment/locale/ar.js\",\n\t\"./az\": \"../../../../moment/locale/az.js\",\n\t\"./az.js\": \"../../../../moment/locale/az.js\",\n\t\"./be\": \"../../../../moment/locale/be.js\",\n\t\"./be.js\": \"../../../../moment/locale/be.js\",\n\t\"./bg\": \"../../../../moment/locale/bg.js\",\n\t\"./bg.js\": \"../../../../moment/locale/bg.js\",\n\t\"./bm\": \"../../../../moment/locale/bm.js\",\n\t\"./bm.js\": \"../../../../moment/locale/bm.js\",\n\t\"./bn\": \"../../../../moment/locale/bn.js\",\n\t\"./bn.js\": \"../../../../moment/locale/bn.js\",\n\t\"./bo\": \"../../../../moment/locale/bo.js\",\n\t\"./bo.js\": \"../../../../moment/locale/bo.js\",\n\t\"./br\": \"../../../../moment/locale/br.js\",\n\t\"./br.js\": \"../../../../moment/locale/br.js\",\n\t\"./bs\": \"../../../../moment/locale/bs.js\",\n\t\"./bs.js\": \"../../../../moment/locale/bs.js\",\n\t\"./ca\": \"../../../../moment/locale/ca.js\",\n\t\"./ca.js\": \"../../../../moment/locale/ca.js\",\n\t\"./cs\": \"../../../../moment/locale/cs.js\",\n\t\"./cs.js\": \"../../../../moment/locale/cs.js\",\n\t\"./cv\": \"../../../../moment/locale/cv.js\",\n\t\"./cv.js\": \"../../../../moment/locale/cv.js\",\n\t\"./cy\": \"../../../../moment/locale/cy.js\",\n\t\"./cy.js\": \"../../../../moment/locale/cy.js\",\n\t\"./da\": \"../../../../moment/locale/da.js\",\n\t\"./da.js\": \"../../../../moment/locale/da.js\",\n\t\"./de\": \"../../../../moment/locale/de.js\",\n\t\"./de-at\": \"../../../../moment/locale/de-at.js\",\n\t\"./de-at.js\": \"../../../../moment/locale/de-at.js\",\n\t\"./de-ch\": \"../../../../moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"../../../../moment/locale/de-ch.js\",\n\t\"./de.js\": \"../../../../moment/locale/de.js\",\n\t\"./dv\": \"../../../../moment/locale/dv.js\",\n\t\"./dv.js\": \"../../../../moment/locale/dv.js\",\n\t\"./el\": \"../../../../moment/locale/el.js\",\n\t\"./el.js\": \"../../../../moment/locale/el.js\",\n\t\"./en-SG\": \"../../../../moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"../../../../moment/locale/en-SG.js\",\n\t\"./en-au\": \"../../../../moment/locale/en-au.js\",\n\t\"./en-au.js\": \"../../../../moment/locale/en-au.js\",\n\t\"./en-ca\": \"../../../../moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"../../../../moment/locale/en-ca.js\",\n\t\"./en-gb\": \"../../../../moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"../../../../moment/locale/en-gb.js\",\n\t\"./en-ie\": \"../../../../moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"../../../../moment/locale/en-ie.js\",\n\t\"./en-il\": \"../../../../moment/locale/en-il.js\",\n\t\"./en-il.js\": \"../../../../moment/locale/en-il.js\",\n\t\"./en-nz\": \"../../../../moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"../../../../moment/locale/en-nz.js\",\n\t\"./eo\": \"../../../../moment/locale/eo.js\",\n\t\"./eo.js\": \"../../../../moment/locale/eo.js\",\n\t\"./es\": \"../../../../moment/locale/es.js\",\n\t\"./es-do\": \"../../../../moment/locale/es-do.js\",\n\t\"./es-do.js\": \"../../../../moment/locale/es-do.js\",\n\t\"./es-us\": \"../../../../moment/locale/es-us.js\",\n\t\"./es-us.js\": \"../../../../moment/locale/es-us.js\",\n\t\"./es.js\": \"../../../../moment/locale/es.js\",\n\t\"./et\": \"../../../../moment/locale/et.js\",\n\t\"./et.js\": \"../../../../moment/locale/et.js\",\n\t\"./eu\": \"../../../../moment/locale/eu.js\",\n\t\"./eu.js\": \"../../../../moment/locale/eu.js\",\n\t\"./fa\": \"../../../../moment/locale/fa.js\",\n\t\"./fa.js\": \"../../../../moment/locale/fa.js\",\n\t\"./fi\": \"../../../../moment/locale/fi.js\",\n\t\"./fi.js\": \"../../../../moment/locale/fi.js\",\n\t\"./fo\": \"../../../../moment/locale/fo.js\",\n\t\"./fo.js\": \"../../../../moment/locale/fo.js\",\n\t\"./fr\": \"../../../../moment/locale/fr.js\",\n\t\"./fr-ca\": \"../../../../moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"../../../../moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"../../../../moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"../../../../moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"../../../../moment/locale/fr.js\",\n\t\"./fy\": \"../../../../moment/locale/fy.js\",\n\t\"./fy.js\": \"../../../../moment/locale/fy.js\",\n\t\"./ga\": \"../../../../moment/locale/ga.js\",\n\t\"./ga.js\": \"../../../../moment/locale/ga.js\",\n\t\"./gd\": \"../../../../moment/locale/gd.js\",\n\t\"./gd.js\": \"../../../../moment/locale/gd.js\",\n\t\"./gl\": \"../../../../moment/locale/gl.js\",\n\t\"./gl.js\": \"../../../../moment/locale/gl.js\",\n\t\"./gom-latn\": \"../../../../moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"../../../../moment/locale/gom-latn.js\",\n\t\"./gu\": \"../../../../moment/locale/gu.js\",\n\t\"./gu.js\": \"../../../../moment/locale/gu.js\",\n\t\"./he\": \"../../../../moment/locale/he.js\",\n\t\"./he.js\": \"../../../../moment/locale/he.js\",\n\t\"./hi\": \"../../../../moment/locale/hi.js\",\n\t\"./hi.js\": \"../../../../moment/locale/hi.js\",\n\t\"./hr\": \"../../../../moment/locale/hr.js\",\n\t\"./hr.js\": \"../../../../moment/locale/hr.js\",\n\t\"./hu\": \"../../../../moment/locale/hu.js\",\n\t\"./hu.js\": \"../../../../moment/locale/hu.js\",\n\t\"./hy-am\": \"../../../../moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"../../../../moment/locale/hy-am.js\",\n\t\"./id\": \"../../../../moment/locale/id.js\",\n\t\"./id.js\": \"../../../../moment/locale/id.js\",\n\t\"./is\": \"../../../../moment/locale/is.js\",\n\t\"./is.js\": \"../../../../moment/locale/is.js\",\n\t\"./it\": \"../../../../moment/locale/it.js\",\n\t\"./it-ch\": \"../../../../moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"../../../../moment/locale/it-ch.js\",\n\t\"./it.js\": \"../../../../moment/locale/it.js\",\n\t\"./ja\": \"../../../../moment/locale/ja.js\",\n\t\"./ja.js\": \"../../../../moment/locale/ja.js\",\n\t\"./jv\": \"../../../../moment/locale/jv.js\",\n\t\"./jv.js\": \"../../../../moment/locale/jv.js\",\n\t\"./ka\": \"../../../../moment/locale/ka.js\",\n\t\"./ka.js\": \"../../../../moment/locale/ka.js\",\n\t\"./kk\": \"../../../../moment/locale/kk.js\",\n\t\"./kk.js\": \"../../../../moment/locale/kk.js\",\n\t\"./km\": \"../../../../moment/locale/km.js\",\n\t\"./km.js\": \"../../../../moment/locale/km.js\",\n\t\"./kn\": \"../../../../moment/locale/kn.js\",\n\t\"./kn.js\": \"../../../../moment/locale/kn.js\",\n\t\"./ko\": \"../../../../moment/locale/ko.js\",\n\t\"./ko.js\": \"../../../../moment/locale/ko.js\",\n\t\"./ku\": \"../../../../moment/locale/ku.js\",\n\t\"./ku.js\": \"../../../../moment/locale/ku.js\",\n\t\"./ky\": \"../../../../moment/locale/ky.js\",\n\t\"./ky.js\": \"../../../../moment/locale/ky.js\",\n\t\"./lb\": \"../../../../moment/locale/lb.js\",\n\t\"./lb.js\": \"../../../../moment/locale/lb.js\",\n\t\"./lo\": \"../../../../moment/locale/lo.js\",\n\t\"./lo.js\": \"../../../../moment/locale/lo.js\",\n\t\"./lt\": \"../../../../moment/locale/lt.js\",\n\t\"./lt.js\": \"../../../../moment/locale/lt.js\",\n\t\"./lv\": \"../../../../moment/locale/lv.js\",\n\t\"./lv.js\": \"../../../../moment/locale/lv.js\",\n\t\"./me\": \"../../../../moment/locale/me.js\",\n\t\"./me.js\": \"../../../../moment/locale/me.js\",\n\t\"./mi\": \"../../../../moment/locale/mi.js\",\n\t\"./mi.js\": \"../../../../moment/locale/mi.js\",\n\t\"./mk\": \"../../../../moment/locale/mk.js\",\n\t\"./mk.js\": \"../../../../moment/locale/mk.js\",\n\t\"./ml\": \"../../../../moment/locale/ml.js\",\n\t\"./ml.js\": \"../../../../moment/locale/ml.js\",\n\t\"./mn\": \"../../../../moment/locale/mn.js\",\n\t\"./mn.js\": \"../../../../moment/locale/mn.js\",\n\t\"./mr\": \"../../../../moment/locale/mr.js\",\n\t\"./mr.js\": \"../../../../moment/locale/mr.js\",\n\t\"./ms\": \"../../../../moment/locale/ms.js\",\n\t\"./ms-my\": \"../../../../moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"../../../../moment/locale/ms-my.js\",\n\t\"./ms.js\": \"../../../../moment/locale/ms.js\",\n\t\"./mt\": \"../../../../moment/locale/mt.js\",\n\t\"./mt.js\": \"../../../../moment/locale/mt.js\",\n\t\"./my\": \"../../../../moment/locale/my.js\",\n\t\"./my.js\": \"../../../../moment/locale/my.js\",\n\t\"./nb\": \"../../../../moment/locale/nb.js\",\n\t\"./nb.js\": \"../../../../moment/locale/nb.js\",\n\t\"./ne\": \"../../../../moment/locale/ne.js\",\n\t\"./ne.js\": \"../../../../moment/locale/ne.js\",\n\t\"./nl\": \"../../../../moment/locale/nl.js\",\n\t\"./nl-be\": \"../../../../moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"../../../../moment/locale/nl-be.js\",\n\t\"./nl.js\": \"../../../../moment/locale/nl.js\",\n\t\"./nn\": \"../../../../moment/locale/nn.js\",\n\t\"./nn.js\": \"../../../../moment/locale/nn.js\",\n\t\"./pa-in\": \"../../../../moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"../../../../moment/locale/pa-in.js\",\n\t\"./pl\": \"../../../../moment/locale/pl.js\",\n\t\"./pl.js\": \"../../../../moment/locale/pl.js\",\n\t\"./pt\": \"../../../../moment/locale/pt.js\",\n\t\"./pt-br\": \"../../../../moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"../../../../moment/locale/pt-br.js\",\n\t\"./pt.js\": \"../../../../moment/locale/pt.js\",\n\t\"./ro\": \"../../../../moment/locale/ro.js\",\n\t\"./ro.js\": \"../../../../moment/locale/ro.js\",\n\t\"./ru\": \"../../../../moment/locale/ru.js\",\n\t\"./ru.js\": \"../../../../moment/locale/ru.js\",\n\t\"./sd\": \"../../../../moment/locale/sd.js\",\n\t\"./sd.js\": \"../../../../moment/locale/sd.js\",\n\t\"./se\": \"../../../../moment/locale/se.js\",\n\t\"./se.js\": \"../../../../moment/locale/se.js\",\n\t\"./si\": \"../../../../moment/locale/si.js\",\n\t\"./si.js\": \"../../../../moment/locale/si.js\",\n\t\"./sk\": \"../../../../moment/locale/sk.js\",\n\t\"./sk.js\": \"../../../../moment/locale/sk.js\",\n\t\"./sl\": \"../../../../moment/locale/sl.js\",\n\t\"./sl.js\": \"../../../../moment/locale/sl.js\",\n\t\"./sq\": \"../../../../moment/locale/sq.js\",\n\t\"./sq.js\": \"../../../../moment/locale/sq.js\",\n\t\"./sr\": \"../../../../moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"../../../../moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"../../../../moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"../../../../moment/locale/sr.js\",\n\t\"./ss\": \"../../../../moment/locale/ss.js\",\n\t\"./ss.js\": \"../../../../moment/locale/ss.js\",\n\t\"./sv\": \"../../../../moment/locale/sv.js\",\n\t\"./sv.js\": \"../../../../moment/locale/sv.js\",\n\t\"./sw\": \"../../../../moment/locale/sw.js\",\n\t\"./sw.js\": \"../../../../moment/locale/sw.js\",\n\t\"./ta\": \"../../../../moment/locale/ta.js\",\n\t\"./ta.js\": \"../../../../moment/locale/ta.js\",\n\t\"./te\": \"../../../../moment/locale/te.js\",\n\t\"./te.js\": \"../../../../moment/locale/te.js\",\n\t\"./tet\": \"../../../../moment/locale/tet.js\",\n\t\"./tet.js\": \"../../../../moment/locale/tet.js\",\n\t\"./tg\": \"../../../../moment/locale/tg.js\",\n\t\"./tg.js\": \"../../../../moment/locale/tg.js\",\n\t\"./th\": \"../../../../moment/locale/th.js\",\n\t\"./th.js\": \"../../../../moment/locale/th.js\",\n\t\"./tl-ph\": \"../../../../moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"../../../../moment/locale/tl-ph.js\",\n\t\"./tlh\": \"../../../../moment/locale/tlh.js\",\n\t\"./tlh.js\": \"../../../../moment/locale/tlh.js\",\n\t\"./tr\": \"../../../../moment/locale/tr.js\",\n\t\"./tr.js\": \"../../../../moment/locale/tr.js\",\n\t\"./tzl\": \"../../../../moment/locale/tzl.js\",\n\t\"./tzl.js\": \"../../../../moment/locale/tzl.js\",\n\t\"./tzm\": \"../../../../moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"../../../../moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"../../../../moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"../../../../moment/locale/tzm.js\",\n\t\"./ug-cn\": \"../../../../moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"../../../../moment/locale/ug-cn.js\",\n\t\"./uk\": \"../../../../moment/locale/uk.js\",\n\t\"./uk.js\": \"../../../../moment/locale/uk.js\",\n\t\"./ur\": \"../../../../moment/locale/ur.js\",\n\t\"./ur.js\": \"../../../../moment/locale/ur.js\",\n\t\"./uz\": \"../../../../moment/locale/uz.js\",\n\t\"./uz-latn\": \"../../../../moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"../../../../moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"../../../../moment/locale/uz.js\",\n\t\"./vi\": \"../../../../moment/locale/vi.js\",\n\t\"./vi.js\": \"../../../../moment/locale/vi.js\",\n\t\"./x-pseudo\": \"../../../../moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"../../../../moment/locale/x-pseudo.js\",\n\t\"./yo\": \"../../../../moment/locale/yo.js\",\n\t\"./yo.js\": \"../../../../moment/locale/yo.js\",\n\t\"./zh-cn\": \"../../../../moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"../../../../moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"../../../../moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"../../../../moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"../../../../moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"../../../../moment/locale/zh-tw.js\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"../../../../moment/locale recursive ^\\\\.\\\\/.*$\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Ai3/Stago/SAST/Sources/SAST/src/Stago.AAI/ClientAppAngular/node_modules/moment/locale ^\\.\\/.*$\n// module id = ../../../../moment/locale recursive ^\\.\\/.*$\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// fs (ignored)\n// module id = 0\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// util (ignored)\n// module id = 2\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// util (ignored)\n// module id = 3\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./util.inspect (ignored)\n// module id = 4\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// crypto (ignored)\n// module id = 5\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// stream (ignored)\n// module id = 6\n// module chunks = main"],"sourceRoot":"webpack:///"}