{"version":3,"file":"iptdevs-design-system.mjs","sources":["../../../design-system/src/lib/components/atoms/aside-button/aside-button.component.ts","../../../design-system/src/lib/components/atoms/button/button.component.ts","../../../design-system/src/lib/components/atoms/checkbox/checkbox.component.ts","../../../design-system/src/lib/components/atoms/datalist/datalist.component.ts","../../../design-system/src/lib/components/atoms/input/input.component.ts","../../../design-system/src/lib/components/atoms/level-button/level-button.component.ts","../../../design-system/src/lib/components/atoms/level-text/level-text.component.ts","../../../design-system/src/lib/components/atoms/loader/loader.component.ts","../../../design-system/src/lib/components/atoms/radio/radio.component.ts","../../../design-system/src/lib/components/atoms/select/select.component.ts","../../../design-system/src/lib/components/atoms/text-link/text-link.component.ts","../../../design-system/src/lib/core/services/service-enviroments.ts","../../../design-system/src/lib/core/services/user-service/user-service.ts","../../../design-system/src/lib/core/services/storage-service/storage-service.ts","../../../design-system/src/lib/core/services/calendar-service/calendar.service.ts","../../../design-system/src/lib/core/utils/base-service/base.service.ts","../../../design-system/src/lib/components/forms/login-form/login-form.component.ts","../../../design-system/src/lib/core/services/parameters-service/parameters.service.ts","../../../design-system/src/lib/components/forms/create-user-form/create-user-form.component.ts","../../../design-system/src/lib/components/forms/create-user-form/create-user-form.component.html","../../../design-system/src/lib/components/molecules/sidenav/sidenav.component.ts","../../../design-system/src/lib/components/material.module.ts","../../../design-system/src/lib/components/molecules/question-type/edit-question-types.component.ts","../../../design-system/src/lib/core/pipes/course-pipes/schedule-form.pipe.ts","../../../design-system/src/lib/core/pipes/course-pipes/time-form.pipe.ts","../../../design-system/src/lib/core/pipes/course-pipes/type-level.pipe.ts","../../../design-system/src/lib/components/molecules/card-course/card-course.component.ts","../../../design-system/src/lib/components/molecules/card-course/card-course.component.html","../../../design-system/src/lib/core/pipes/pipe.module.ts","../../../design-system/src/lib/components/molecules/card-select-course/card-select-course.component.ts","../../../design-system/src/lib/components/molecules/card-select-course/card-select-course.component.html","../../../design-system/src/lib/components/components.module.ts","../../../design-system/src/lib/core/services/media-service/media.service.ts","../../../design-system/src/lib/cod/cod-documents-section/cod-documents-section.component.ts","../../../design-system/src/lib/cod/cod-documents-section/cod-documents-section.component.html","../../../design-system/src/lib/cod/logic/local-storage-cod.service.ts","../../../design-system/src/lib/cod/logic/cod-form-controls.ts","../../../design-system/src/lib/core/services/commercial-service/comercial.service.ts","../../../design-system/src/lib/cod/logic/cod-form-steps.ts","../../../design-system/src/lib/core/utils/copies.ts","../../../design-system/src/lib/core/services/copies.service.ts","../../../design-system/src/lib/core/services/course-service/course-service.model.ts","../../../design-system/src/lib/cod/logic/communicator.service.ts","../../../design-system/src/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.html","../../../design-system/src/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.html","../../../design-system/src/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.html","../../../design-system/src/lib/cod/logic/calculate-quotes.service.ts","../../../design-system/src/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.html","../../../design-system/src/lib/cod/modal-referred/modal-referred.component.ts","../../../design-system/src/lib/cod/modal-referred/modal-referred.component.html","../../../design-system/src/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.ts","../../../design-system/src/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.html","../../../design-system/src/lib/cod/cod-form/cod-form.component.ts","../../../design-system/src/lib/cod/cod-form/cod-form.component.html","../../../design-system/src/lib/cod/cod.module.ts","../../../design-system/src/lib/core/utils/route-service/route.service.ts","../../../design-system/src/lib/core/services/switch-service/switch.service.ts","../../../design-system/src/lib/core/services/test-service/test.service.ts","../../../design-system/src/lib/core/services/marketing-service/marketing-service.ts","../../../design-system/src/lib/core/services/budget-service/budget-service.ts","../../../design-system/src/lib/core/services/classroom-service/classroom-service.service.ts","../../../design-system/src/lib/core/services/activity-service/activity.service.ts","../../../design-system/src/lib/core/services/academic-service/academic.service.ts","../../../design-system/src/lib/core/services/attendance-service/attendance.service.ts","../../../design-system/src/lib/core/services/certificate-service/certificate.service.ts","../../../design-system/src/lib/core/services/ekt-service/userekt.service.ts","../../../design-system/src/lib/core/services/ePayco/epayco.service.ts","../../../design-system/src/lib/core/core.module.ts","../../../design-system/src/lib/cod-self-managed/logic/cod-self-managed-controls.ts","../../../design-system/src/lib/cod-self-managed/logic/local-storage-cod.service.ts","../../../design-system/src/lib/cod-self-managed/logic/cod-self-managed-steps.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.html","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.html","../../../design-system/src/lib/cod-self-managed/logic/calculate-quotes.service.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component.html","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component.ts","../../../design-system/src/lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component.html","../../../design-system/src/lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component.ts","../../../design-system/src/lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component.html","../../../design-system/src/lib/cod-self-managed/cod-self-managed.module.ts","../../../design-system/src/lib/design-system.module.ts","../../../design-system/src/lib/core/services/notes-service/notes.service.ts","../../../design-system/src/lib/core/services/student-service/student.service.ts","../../../design-system/src/lib/core/services/commercial-service/validators.ts","../../../design-system/src/lib/core/services/placement-service/placement.service.ts","../../../design-system/src/lib/core/services/announcement/announcement.service.ts","../../../design-system/src/lib/core/models/course/course-rq.model.ts","../../../design-system/src/lib/core/models/session/session.model.ts","../../../design-system/src/lib/core/models/user/user-rs.model.ts","../../../design-system/src/lib/core/models/announcement/announcement-user-rs.model.ts","../../../design-system/src/public-api.ts","../../../design-system/src/iptdevs-design-system.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n@Component({\n  selector: 'ipt-aside-button',\n  template: `\n    <div [ngSwitch]=\"buttonActive\">\n      <a *ngSwitchCase=\"0\" class=\"flex-item-menu__link\" (click)=\"clickAction()\">\n        <img src=\"{{ icon }}\" alt=\"icon_url\" />\n        <p>{{ text }}</p>\n      </a>\n\n      <a *ngSwitchCase=\"1\" class=\"flex-item-menu__link flex-item-active\" (click)=\"clickAction()\">\n        <img src=\"{{ icon }}\" alt=\"icon_url\" />\n        <p>{{ text }}</p>\n      </a>\n    </div>\n  `,\n  styleUrls: ['./aside-button.css']\n})\n\nexport class AsideButtonComponent {\n  @Input() icon!: string;\n  @Input() text!: string;\n  @Input() buttonActive?: boolean;\n  @Output() isClicked = new EventEmitter<boolean>();\n\n  clickAction() {\n    this.isClicked.emit(true);\n  }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'ipt-button',\n  template: `<button *ngIf=\"isEnabled\"\n    type=\"{{ buttonType }}\"\n    (click)=\"onClick.emit($event)\"\n    [ngClass]=\"classes\"\n  >\n    {{ label }}\n  </button>\n\n  <button *ngIf=\"!isEnabled\"\n    type=\"{{ buttonType }}\"\n    [ngClass]=\"classes\"\n  >\n    {{ label }}\n  </button>`,\n  styleUrls: ['./button.css'],\n})\nexport class ButtonComponent {\n\n  @Input() primary: boolean = false;\n  @Input() size: 'small' | 'medium' | 'large' = 'medium';\n  @Input() label: string = 'Button';\n  @Input() buttonType?: string;\n  @Input() isEnabled: boolean = true;\n\n  @Output() onClick = new EventEmitter<Event>();\n\n  public get classes(): string[] {\n    const mode = this.primary && this.isEnabled === true\n      ? 'ipt-button--primary'\n      : this.isEnabled === false ? 'ipt-button--primary-disabled'\n      : 'ipt-button--secondary';\n\n    return ['ipt-button', `ipt-button--${this.size}`, mode];\n  }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, FormControl } from \"@angular/forms\";\n\n@Component({\n  selector: 'ipt-checkbox',\n  template: `\n    <label class=\"cont\">\n      <input\n        class=\"checkbox\"\n        [formControl]=\"formControl\"\n        [checked]=\"checkboxOption\"\n        (click)=\"onChecked.emit($event)\"\n        type=\"checkbox\">\n      <span></span>\n    </label>\n  `,\n  styleUrls: ['./checkbox.css']\n})\n\nexport class CheckboxComponent {\n\n  @Input() checkboxOption: boolean = false;\n  @Input() set control(value: AbstractControl) {\n    if (this.formControl !== value) {\n      this.formControl = value as FormControl;\n    }\n  }\n\n  @Output() onChecked = new EventEmitter<Event>();\n\n  formControl!: FormControl;\n\n}\n","import { Component, Input, Output, EventEmitter, ViewChild, SimpleChanges } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, NgForm, Validators } from '@angular/forms';\n\n@Component({\n  selector: 'ipt-datalist',\n  template: `\n    <div class=\"input-container\">\n      <label [ngClass]=\"labelClass\">{{ placeHolder }}</label>\n      <input\n        type=\"text\"\n        class=\"input\"\n        (click)=\"click($event)\"\n        [attr.list]=\"datalistId\"\n        (change)=\"optionChanged($event)\"\n        [disabled]=\"disabledSel\"\n        [value]=\"setDataListValue()\"\n      />\n\n      <datalist id=\"{{ datalistId }}\">\n        <option *ngFor=\"let item of datalistData; index as i\" [value]=\"item.name\">\n          {{item.id_card}} {{item.name}}\n        </option>\n      </datalist>\n    </div>\n  `,\n  styleUrls: ['./datalist.css'],\n})\nexport class DatalistComponent {\n\n  @Input() datalistId!: string;\n  @Input() datalistData!: any[];\n  @Input() placeHolder!: string;\n  @Input() validateText!: string;\n  @Input() initalData!: string;\n  @Input() disabledSel:boolean = false;\n\n  @Output() isChanged = new EventEmitter<string>();\n\n  clicked: boolean = false;\n\n  constructor(fb: FormBuilder) {\n  }\n\n  optionChanged(event: any) {\n    let selectOption = this.datalistData.find(element =>  element.name == event.target.value);\n    if (typeof(selectOption) != 'undefined') {\n      this.isChanged.emit(selectOption.code);\n    } else {\n      this.isChanged.emit('-1');\n    }\n  }\n\n  click(value: MouseEvent) {\n    this.clicked = value.isTrusted;\n  }\n\n  setDataListValue() {\n    let selectOption = this.datalistData.find(element =>  element.code == this.initalData);\n    if (typeof(selectOption) != 'undefined') {\n      return selectOption.name;\n    } else {\n      return '';\n    }\n  }\n\n  public get labelClass(): string {\n    return this.clicked === false ? 'label' : 'labelUp';\n  }\n}\n","import { AbstractControl, FormControl } from '@angular/forms';\nimport { Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\n\n@Component({\n  selector: 'ipt-input',\n  template: `\n    <div class=\"input-container\">\n      <!-- Resto del código... -->\n      <input *ngIf=\"inputType === 'date'\"\n        class=\"input\"\n        type=\"{{ inputType ? 'text' : 'date' }}\"\n        [formControl]=\"formControl\"\n        (ngModelChange)=\"selectedDate($event)\"\n        onfocus=\"this.type='date';\"\n        onblur=\"javascript: if( !this.value ) this.type='text';\"\n        uib-datepicker-popup=\"dd/MM/yyyy\"\n        ng-model=\"inputType\"/>\n\n      <input *ngIf=\"inputType !== 'date' && inputType !== 'time' && !withPipe\"\n        class=\"input\"\n        type=\"{{ inputType }}\"\n        [formControl]=\"formControl\"\n        [attr.list]=\"list\"/>\n\n        <input *ngIf=\"inputType === 'text' && withPipe\"\n          class=\"input\"\n          currencyMask\n          [options]=\"{ prefix: prefix, thousands: thousands, decimal: decimal, allowNegative: false }\"\n          type=\"{{ inputType }}\"\n          [formControl]=\"formControl\"\n          [attr.list]=\"list\"/>\n\n        <input *ngIf=\"inputType === 'time'\"\n          class=\"input\"\n          type=\"time\"\n          [formControl]=\"formControl\"\n          [min]=\"'06:00:00'\"\n          max=\"22:00:00\"\n          step=\"900\"\n          autocomplete=\"on\"\n          value=\"08:00:00\"\n          (click)=\"click($event)\"\n        />\n\n      <label [ngClass]=\"{'labelUp': formControl.value !== ''}\">{{ placeHolder }}</label>\n\n      <p *ngIf=\"(formControl.invalid && formControl.value !== '')\">\n        {{ validateText }}\n      </p>\n    </div>\n    `,\n  styleUrls: ['./input.css'],\n})\nexport class InputComponent implements OnInit {\n\n  public codeValue!: string;\n  data: any[] = [];\n  formControl!: FormControl;\n  clicked: boolean = false;\n\n  @Input() inputType!: string;\n  @Input() placeHolder!: string;\n  @Input() validateText?: string;\n  @Input() withPipe?: boolean = false;\n  @Input() list?: string; //Para el datalist\n  @Input() iconUrl?: string;\n  @Input() set control(value: AbstractControl | string) {\n    if (this.formControl !== value) {\n      this.formControl = value as FormControl;\n    }\n  }\n\n  @Input() prefix: string = '$';\n  @Input() thousands: string = '.';\n  @Input() decimal: string = ',';\n  @Output() dateSelected = new EventEmitter<string>();\n  @Input() disabledSel: boolean = false;\n\n  constructor() {}\n\n  ngOnInit() {}\n\n  selectedDate(evt: string){\n    this.dateSelected.emit(evt);\n  }\n\n  click(value: MouseEvent) {\n    this.clicked = value.isTrusted;\n  }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'ipt-level-button',\n  template: `\n    <div [ngSwitch]=\"buttonActive\">\n      <button\n        *ngSwitchCase=\"0\"\n        (click)=\"clickAction()\"\n        id=\"level\"\n        class=\"courses\"\n      >\n      <p class=\"p-level\">{{ level }}</p>\n      </button>\n\n      <button\n        *ngSwitchCase=\"1\"\n        (click)=\"clickAction()\"\n        id=\"{{ idColor }}\"\n        class=\"courses\">\n      <p class=\"p-level p-level-active\">{{ level }}</p>\n      </button>\n    </div>\n  `,\n  styleUrls: ['./level-button.css'],\n})\n\nexport class LevelButtonComponent {\n\n  @Input() level!: string;\n  @Input() buttonActive!: boolean;\n  @Input() idColor!: string;\n  @Output() isClicked = new EventEmitter<boolean>();\n\n  clickAction() {\n    this.isClicked.emit(true);\n  }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'ipt-level-button',\n  template: `\n    <p class=\"p-table-course\">{{ level }}: {{ total }}</p>\n  `,\n  styleUrls: ['./level-text.css'],\n})\n\nexport class LevelTextComponent {\n\n  @Input() level!: string;\n  @Input() total!: string;\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'ipt-loader',\n  template: `\n  <div [ngClass]=\"{'dialog': isDialog}\">\n    <div [ngClass]=\"{'loader_container' : isDialog}\">\n      <span>{{ message }}</span>\n      <div class=\"container\">\n        <div class=\"spinner\">\n          <div class=\"dot\"></div>\n          <div class=\"dot\"></div>\n          <div class=\"dot\"></div>\n          <div class=\"dot\"></div>\n          <div class=\"dot\"></div>\n        </div>\n      </div>\n    </div>\n  </div>`,\n  styleUrls: ['./loader.css']\n})\nexport class LoaderComponent {\n  @Input() message: string = '';\n  @Input() isDialog: boolean = false;\n}\n\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, FormControl } from \"@angular/forms\";\n\n@Component({\n  selector: 'ipt-radio',\n  template: `\n    <label class=\"cont\">\n      <input\n        class=\"radio\"\n        [formControl]=\"formControl\"\n        [checked]=\"radioOption\"\n        (click)=\"onSelected.emit($event)\"\n        type=\"radio\">\n      <span></span>\n    </label>\n  `,\n  styleUrls: ['./radio.css']\n})\n\nexport class RadioComponent {\n\n  @Input() radioOption: boolean = false;\n  @Input() set control(value: AbstractControl) {\n    if (this.formControl !== value) {\n      this.formControl = value as FormControl;\n    }\n  }\n\n  @Output() onSelected = new EventEmitter<Event>();\n\n  formControl!: FormControl;\n\n}\n","import { Component, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Component({\n  selector: 'ipt-select',\n  template: `\n    <div class=\"select-container\">\n      <label [ngClass]=\"labelClass\">{{ defaultText }}</label>\n      <select\n        [(ngModel)]=\"binding\"\n        (ngModelChange)=\"seleccionar($event)\"\n        (click)=\"click($event)\"\n        [ngClass]=\"textClass\"\n        [disabled]=\"disabledSel\">\n        <option *ngFor=\"let item of data; index as i\" [value]=\"item.code\">\n        {{ label === 'displayName' ? item.displayName : item.name }} {{ item.prefix }}\n      </option>\n      </select>\n    </div>\n  `,\n  styleUrls: ['./select.css'],\n})\nexport class SelectComponent {\n\n  binding: any;\n  boxShadow: number = 0;\n  formControl!: FormControl;\n  clicked: boolean = false;\n\n  @Input() isRequired!: boolean; // temas de validacion\n  // objeto que me trae el listado\n  @Input() data!: any[]; // recibe un array de cualquier cosa\n  @Input() defaultText!: any;\n  @Input() selectCode!:string;\n  @Input() disabledSel:boolean = false;\n  @Input() initialValue!: string;\n  @Input() label!: string;\n\n  @Output() eventSelect = new EventEmitter<string>();\n  // type viene de otro componente -> indica de que tipo es el arreglo si pregrade, posgrade o modo\n  @Input() set control(value: AbstractControl) {\n    if (this.formControl !== value) {\n      this.formControl = value as FormControl;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['data']) {\n      this.setBinding();\n    }\n  }\n  ngOnInit(): void {\n    this.setBinding();\n  }\n\n  seleccionar(evt: string) {\n    if (this.eventSelect.emit(evt) !== this.defaultText) {\n      this.boxShadow = 1;\n    } else {\n      this.boxShadow = 2;\n    }\n  }\n\n  private setBinding() {\n    if (this.initialValue !== '') {\n      this.binding = this.initialValue;\n    } else {\n      this.binding = this.defaultText;\n    }\n  }\n\n  click(value: MouseEvent) {\n    this.clicked = value.isTrusted;\n  }\n\n\n  public get textClass(): string {\n    return this.defaultText === '' ? 'selected' : 'select';\n  }\n\n  public get labelClass(): string {\n    return (this.clicked || this.initialValue !== '') ? 'labelUp' : 'label';\n  }\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'ipt-text-link',\n  template: `\n    <a class=\"text-link\" (click)='isLinkClicked()'>\n      <p class=\"text-link__paragraph\">\n        <i class=\"{{icon}}\" aria-hidden=\"true\"></i>\n        {{text}}\n      </p>\n    </a>\n  `,\n  styleUrls: ['./text-link.css'],\n})\n\nexport class TextLinkComponent {\n\n  @Input() text!: string;\n  @Input() blank?: boolean;\n  @Input() icon?: string;\n\n  @Output() isClicked = new EventEmitter<boolean>();\n\n\n  constructor() {\n  }\n\n  isLinkClicked() {\n    this.isClicked.emit(true);\n  }\n\n}\n","import { HttpHeaders } from \"@angular/common/http\";\n\nexport class IPTGeneralService {\n\n  httpOptions: any;\n\n  baseUrl(): string {\n    let url = window.location.href;\n\n    if (url.includes('localhost') || url.includes('qa')) {\n      return 'https://lab.iptdev.com.co/';\n    } else if ( url.includes('inglesparatodos.edu.co')) {\n      return 'https://iptdev.com.co/';\n    } else if ( url.includes('inglesparatodos.us')) {\n      return 'https://iptdev.com.co/';\n    } else {\n      return 'error.com';\n    }\n  }\n\n  // construye los headers y params\n  generateRequestParams(param: any) {\n    this.httpOptions = {\n      header: new HttpHeaders(),\n      params: param,\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { RegisterIndexRq, RegisterDashboardRq, UserTokenRq, ForgotPasswordRq, LoginRq, RegisterRq, getStudentRq, TeacherByCodeRq, userTokenRq, IUpdtaeUserValidatedRq, IObtainUserByEmailDocRq, IStudentOrUserEktByConceptRq, UserTokenRq2, ParamsUser, IusersRq, IDeleteTeacherRq,IUpdateDataTeacherRq, IObtainDataFromSuppliersStudentRq, IGeUsersFromDepartmentsRq } from '../../models/user/user-rq.model';\nimport { getStrategyByUserCommercialRq } from '../../models/marketing/marketing.model';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { GetStudentByCodeRq, tokenAdministrativeRq } from '../../models/payment/payment-rq.model';\nimport { IReportExcelRq } from '../../models/commercial/commercial.model';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class UserService extends IPTGeneralService{\n  private SERVICE_URL = 'users/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  login(userLogin: LoginRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/login';\n    this.generateRequestParams(userLogin);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  resetPassword(resetPassword: ForgotPasswordRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'reset/password';\n    this.generateRequestParams(resetPassword);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  register(user: RegisterRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/create/web';\n    this.generateRequestParams(user);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  registerIndex(register: RegisterIndexRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/create/marketing';\n    this.generateRequestParams(register);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  registerDashboard(user: RegisterDashboardRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/create/dashboard';\n    this.generateRequestParams(user);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAvailableTeachers(token: UserTokenRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/teachers';\n    this.generateRequestParams(token);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllAdvisor(userToken: getStrategyByUserCommercialRq): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'post/obtain/all/user/commercial';\n    this.generateRequestParams(userToken);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getByRoleUser(codeRole: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/obtain/by/role/user/' + codeRole;\n    return this.http.get(serviceUrl);\n  }\n\n  getUserStatistics(userToken: getStrategyByUserCommercialRq): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'get/contact/strategy/statistics';\n    this.generateRequestParams(userToken);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getRoutesForRole(token: UserTokenRq2): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/routes/role';\n    this.generateRequestParams(token);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getStudents(token: UserTokenRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/students';\n    this.generateRequestParams(token);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getStudent(token: getStudentRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/student';\n    this.generateRequestParams(token);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllAdministrative(userToken: tokenAdministrativeRq): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'post/obtain/all/user/administrative';\n    this.generateRequestParams(userToken);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  getAllMarketing(userToken: tokenAdministrativeRq): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'post/obtain/all/user/marketing';\n    this.generateRequestParams(userToken);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getStudenbyCode(parans: GetStudentByCodeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/obtain/student/by/code';\n    this.generateRequestParams(parans);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getTeachersbyCode(parans: TeacherByCodeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/teachers/by/code';\n    this.generateRequestParams(parans);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllUserByRole(userToken: userTokenRq): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'post/obtain/all/user/by/role';\n    this.generateRequestParams(userToken);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getUserRoleByCode(codeRole: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/obtain/user/role/by/code/' + codeRole;\n    return this.http.get(serviceUrl);\n  }\n\n  getUserAllBudget(userToken: tokenAdministrativeRq): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'post/obtain/all/user/budget';\n    this.generateRequestParams(userToken);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getObtainPossibleStudents(userToken: tokenAdministrativeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/possibleStudents';\n    this.generateRequestParams(userToken);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllUserByRoleValidate(token: string): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/by/rol/all/user/validated';\n    this.generateRequestParams(token);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateUserValidated(params: string): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/update/user/validated';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  deletedUserValidated(params: IUpdtaeUserValidatedRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/deleted/user/validated';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainStudentByDocumentEmail(params: IObtainUserByEmailDocRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/student/by/document/email';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainDataByUserLoged(params: IReportExcelRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/user/commercial/loged';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  obtainStudentOrUserEktByConcept(params: IStudentOrUserEktByConceptRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/students/by/type/concept/in/payments';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainReferralUsers(token: getStudentRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/referral/users';\n    this.generateRequestParams(token);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  obtainUsersThreeDptoCommercialAndAdministrativeAndBudget(token: getStrategyByUserCommercialRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/user/commercial/administrative/budgets';\n    this.generateRequestParams(token);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainTeachersAvailableToTeach(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/obtain/teachers/available/to/teach';\n    return this.http.get(serviceUrl);\n  }\n\n  searchUser(param: ParamsUser): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'post/search/user';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getUserByCode(codeUser: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/user/by/code/' + codeUser;\n    return this.http.get(serviceUrl);\n  }\n  createProveedor(param:IusersRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/create/user';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  updateUser(param:any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'update/data/user/cod/self/managed';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  DeleteTeacherByCode(params: IDeleteTeacherRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/delete/teacher/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  UpdateTeacherDataByCode(params: IUpdateDataTeacherRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/update/teacher/data/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllUsersCommisions(params: getStrategyByUserCommercialRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/commissions';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainDataFromSuppliersStudent(params: IObtainDataFromSuppliersStudentRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/data/from/suppliers/or/students';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getUsersFromDepartments(params: IGeUsersFromDepartmentsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/users/from/departments';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { Session } from \"../../models/session/session.model\";\nimport { UserRs } from \"../../models/user/user-rs.model\";\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class StorageService {\n\n  private localStorageService;\n  private currentSession : Session | null= null;\n\n  constructor() {\n    this.localStorageService = localStorage;\n    this.currentSession = this.loadSessionData();\n  }\n\n  setCurrentSession(session: Session): void {\n    this.currentSession = session;\n    this.localStorageService.setItem('606a7d4e73650b75ebb06972e77d6cc4', JSON.stringify(session));\n  }\n\n  loadSessionData(): Session | null {\n    var sessionStr = this.localStorageService.getItem('606a7d4e73650b75ebb06972e77d6cc4');\n    return (sessionStr) ? <Session> JSON.parse(sessionStr) : null;\n  }\n\n  getCurrentSession(): Session | null {\n    return this.currentSession;\n  }\n\n  removeCurrentSession(): void {\n    this.localStorageService.removeItem('606a7d4e73650b75ebb06972e77d6cc4');\n    this.currentSession = null;\n  }\n\n  getCurrentUser(): UserRs | null {\n    var session: Session | null = this.getCurrentSession();\n    return (session && session.user) ? session.user : null;\n  };\n\n  isAuthenticated(): boolean {\n    return (this.getCurrentToken() != null) ? true : false;\n  };\n\n  getCurrentToken(): string | null{\n    var session = this.getCurrentSession();\n    return (session && session.token) ? session.token : null;\n  };\n\n  logout(): void{\n    this.removeCurrentSession();\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { eventqueryRq } from '../../models/calendar/calendar-rq.models';\nimport { AddNewEventRq, AvailabilityQueryRq, AvailabilityQueryRqs, GetEventByDateTimeRq, GetEventsByCourseRq, IObtainAvailableCourseDayRq } from '../../models/cronogram/cronogram.models';\nimport { Response } from '../../models/response/response.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CalendarService extends IPTGeneralService{\n  private SERVICE_URL = 'calendar/api/'\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  postCreateQueryEvent(params: AvailabilityQueryRq): Observable<Response>{\n    let serviceUrl = this.SERVICE_URL + 'post/event/create/query';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getEventByIdCalendar(idCalendar: string): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/event/calendar/idcalendar/all/' + idCalendar;\n    return this.http.get(serviceUrl);\n  }\n\n  postEventByDayTime(params: eventqueryRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/event/calendar/idcalendar/by/datetime';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getEventsByCourse(params: GetEventsByCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/event/calendar/idcalendar/by/course';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getEventByDateTime(params: GetEventByDateTimeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/event/calendar/idcalendar/by/datetime';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n\n  //duplicida de ep\n  getAvailability(params: AvailabilityQueryRqs): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/event/create/query';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  addNewEvent(params: AddNewEventRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/add/event/calendar/by/daytime';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  newCreateEvents(params: AddNewEventRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/create/new/events';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  ObtainUnitsNameCourseType(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/unitsname/by/coursetype';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllEventByCourse(params: GetEventsByCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/all/event/calendar/idcalendar/by/course';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainAvailableCourseDays(params: IObtainAvailableCourseDayRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/available/course/days';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainAvailableClassroomsInCalendar(params: AvailabilityQueryRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/available/classrooms/in/calendar';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { LoginRq, RegisterDashboardRq } from '../../models/user/user-rq.model';\nimport { UserService } from '../../services/user-service/user-service';\nimport Swal from 'sweetalert2';\nimport { Session } from '../../models/session/session.model';\nimport { StorageService } from '../../services/storage-service/storage-service';\nimport { AvailabilityQueryRq } from '../../models/cronogram/cronogram.models';\nimport { CalendarService } from '../../services/calendar-service/calendar.service';\nimport { Response } from '../../models/response/response.interface';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class BaseService {\n\n  constructor(\n    private userService: UserService,\n    private storageService: StorageService,\n    private calendarService: CalendarService\n  ) {}\n\n  webLogin(user: string, password: string): Promise<boolean>{\n    let request: LoginRq = {\n      user: user,\n      password: password\n    }\n    let service = this.userService;\n    let storage = this.storageService;\n    let appUser = this.isAnAppUser();\n\n    return new Promise(function(resolve, reject) {\n      service.login(request).subscribe( response => {\n        switch (response.message.code) {\n          case 1:\n            if(!appUser) {\n              Swal.fire ({\n                'title': '<p style=\"font-family: Poppins\"\">Perfect!</p>',\n                'html': '<p style=\"font-family: Poppins\"\">Succesfull login</p>',\n                'icon':'success',\n              });\n            }\n            const loginRegisterUser: Session = {\n              token: response.data.token,\n              user: response.data,\n            };\n\n            storage.setCurrentSession(loginRegisterUser);\n            resolve(true);\n            break;\n          case 2:\n            Swal.fire({\n              'title': '<p style=\"font-family: Poppins\"\">Warning!</p>',\n              'html': '<p style=\"font-family: Poppins\"\">The data does not correspond to a user registered in our system, please review them.</p>',\n              'icon':'warning',\n            });\n\n            resolve(false);\n            break;\n          case 3:\n            Swal.fire({\n              'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n              'html': '<p style=\"font-family: Poppins\"\">The input data does not meet the established parameters.</p>',\n              'icon':'error',\n            });\n\n            resolve(false);\n            break;\n          case 4:\n              Swal.fire({\n                title: '<p style=\"font-family: Poppins\">Warning!</p>',\n                html: '<div style=\"text-align: center; font-family: Poppins;\">' +\n                      '<i class=\"fas fa-exclamation-triangle\" style=\"color: red; font-size: 24px;\"></i>' +\n                      '<p>Your account is in inactive status. Contact support.</p>' +\n                      '</div>',\n                showConfirmButton: true,\n              });\n              resolve(false);\n              break;\n          default:\n            Swal.fire({\n              'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n              'html': '<p style=\"font-family: Poppins\"\">An unexpected error has occurred</p>',\n              'icon':'error',\n            });\n\n            resolve(false);\n            break;\n        }\n        reject('Unhandled exception');\n      });\n    })\n  }\n\n  getCronogramAvailability(isTeacher: boolean, code: number, startDate: string, numClass: number, weekDays: any[], startTime: string, endTime: string): Promise<any>{\n    let request: AvailabilityQueryRq = {\n      isTeacher: isTeacher,\n      code: code,\n      startDate: startDate,\n      numClass: numClass,\n      weekDays: weekDays,\n      startTime: startTime,\n      endTime: endTime,\n    };\n\n    let service = this.calendarService;\n\n    return new Promise(function(resolve, reject) {\n      service.postCreateQueryEvent(request).subscribe(  (response: Response) => {\n        switch (response.message.code) {\n          case 1:\n            resolve(response.data);\n            break\n          default:\n            reject('Unhandled exception');\n        }\n        reject('Unhandled exception');\n      });\n    });\n  }\n\n  isAnAppUser() {\n    const userAgent: string = window.navigator.userAgent;\n    return userAgent.includes('Flutter IPT APP');\n  }\n\n  getUserRole(): number {\n    let user = this.storageService.getCurrentUser()?.role;\n    return user === undefined ? -1 : user;\n  }\n\n  getUserToken(): string {\n    let token = this.storageService.getCurrentUser()?.token;\n    return token === undefined ? '-1' : token;\n  }\n\n  getUserName(): string {\n    let user = this.storageService.getCurrentUser();\n    let response = user === null ? '' : user.name;\n    return response;\n  }\n\n  getUserCode(): number {\n    let user = this.storageService.getCurrentUser();\n    let response = user === null ? -1 : user.code;\n    return response;\n  }\n\n  registerUserFromDashboard(registerDashboardRq: RegisterDashboardRq): Promise<boolean>{\n    let request = registerDashboardRq;\n    let service = this.userService;\n\n    return new Promise(function(resolve, reject) {\n      service.registerDashboard(request).subscribe((response) => {\n\n        switch (response.message.code) {\n          case 1:\n            Swal.fire ({\n              'title': '<p style=\"font-family: Poppins\"\">Perfect!</p>',\n              'html': '<p style=\"font-family: Poppins\"\">Sucesfull register!</p>',\n              'icon':'success',\n            });\n            resolve(true);\n            break;\n          case 3:\n            Swal.fire ({\n              'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n              'html': '<p style=\"font-family: Poppins\"\">The input data does not meet the established parameters.</p>',\n              'icon':'error',\n            });\n            resolve(false);\n            break;\n          case 4:\n            Swal.fire ({\n              'title': '<p style=\"font-family: Poppins\">Ups!</p>',\n              'html': '<p style=\"font-family: Poppins\">The input data has a high relation with a user that already exists!</p>',\n              'icon': 'warning',\n            });\n            resolve(false);\n            break;\n          default:\n            Swal.fire ({\n              'title': '<p style=\"font-family: Poppins\"\">Error!</p>',\n              'html': '<p style=\"font-family: Poppins\"\">An unexpected error has occurred</p>',\n              'icon':'error',\n            });\n            resolve(false);\n            break;\n        }\n\n        reject('Unhandled exception');\n      });\n    });\n  }\n\n  jsonToArray(data: any[]): any[][] {\n    var response: any[] = [];\n    data.forEach((element) => {\n      var object: any[] = [];\n      for (var clave in element) {\n        if (element.hasOwnProperty(clave)) {\n          if (typeof element[clave] == 'object') {\n            element[clave] = this.subJsonToArray(element[clave]);\n          }\n\n          object.push(element[clave]);\n        }\n      }\n      response.push(object);\n    });\n    return response;\n  }\n\n  subJsonToArray(data: any[]): string {\n    var object: string = '';\n    for (var clave in data) {\n      if (clave != 'code') {\n        object += '\\n' + data[clave];\n      }\n    }\n    return object;\n  }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\n\n@Component({\n  selector: 'ipt-login-form',\n  template: `\n    <div class=\"form-container\">\n\n      <h2 style=\"text-align: center;\">IPT PLATFORM</h2>\n      <hr>\n\n      <form (ngSubmit)=\"login(loginForm)\" [formGroup]=\"loginForm\">\n        <ipt-input\n          [inputType]=\"'text'\"\n          [placeHolder]=\"'Email'\"\n          [validateText]=\"'Debe ser @inglesparatodos.edu.co'\"\n          [control]=\"loginForm.controls['email']\"\n        ></ipt-input>\n\n        <ipt-input\n          [inputType]=\"'password'\"\n          [placeHolder]=\"'Password'\"\n          [control]=\"loginForm.controls['password']\"\n        ></ipt-input>\n      </form>\n\n      <div class=\"button-container\">\n        <ipt-button\n          [label]=\"'Login'\"\n          [primary]=\"true\"\n          [isEnabled]=\"loginForm.valid\"\n          (onClick)=\"login(loginForm)\"\n        ></ipt-button>\n      </div>\n\n    </div>\n  `,\n  styleUrls: ['./login-form.css']\n})\n\nexport class LoginFormComponent {\n\n  @Output() isLogged = new EventEmitter<boolean>();\n\n  loginForm!: FormGroup;\n\n  constructor(\n    fb: FormBuilder,\n    private baseService: BaseService,\n  ) {\n    this.loginForm = fb.group({\n      email: ['', [Validators.required]],\n      password: ['', [Validators.required, Validators.minLength(3),Validators.maxLength(15)]],\n    });\n  }\n\n  login(data: FormGroup) {\n    this.baseService.webLogin(data.controls['email'].value, data.controls['password'].value).then((isLogged) =>{\n      this.isLogged.emit(isLogged);\n    });\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ParameterService extends IPTGeneralService{\n  private SERVICE_URL = 'parameters/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getIndicatives(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/indicatives';\n    return this.http.get(serviceUrl);\n  }\n\n  getCardTypes(country: string): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/id/card/type/country/' + country;\n    return this.http.get(serviceUrl);\n  }\n\n  getCountries(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/countries';\n    return this.http.get(serviceUrl);\n  }\n\n  getStatesByCountry(country: string): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/state/country/iso/' + country;\n    return this.http.get(serviceUrl);\n  }\n\n  getCitiesByState(state: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/cities/state/' + state;\n    return this.http.get(serviceUrl);\n  }\n\n  getAllPlans(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/plans';\n    return this.http.get(serviceUrl);\n  }\n\n  getLevels(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/english/levels';\n    return this.http.get(serviceUrl);\n  }\n\n  getAgreements(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/agreement';\n    return this.http.get(serviceUrl);\n  }\n\n  getAgreementByCategory(typeCategory: any): Observable<any> {\n    let serviceUrl =\n      this.SERVICE_URL + 'get/agreement/by/category/' + typeCategory;\n    return this.http.get(serviceUrl);\n  }\n\n  getAllClassrooms(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/classroom';\n    return this.http.get(serviceUrl);\n  }\n\n  getCoursesTypes(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/course/type';\n    return this.http.get(serviceUrl);\n  }\n\n  getCoursesTypesByPlan(typePlan: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/course/by/plan/' + typePlan;\n    return this.http.get(serviceUrl);\n  }\n\n  getDegrees(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/degrees';\n    return this.http.get(serviceUrl);\n  }\n\n  getProgramsByDegree(typeDegree: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/programs/by/degree/' + typeDegree;\n    return this.http.get(serviceUrl);\n  }\n\n  getMarketingReasons(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/mkt/reasons';\n    return this.http.get(serviceUrl);\n  }\n\n  getStudyReasons(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/study/reasons';\n    return this.http.get(serviceUrl);\n  }\n\n  getAcademicUnits(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/academic/units';\n    return this.http.get(serviceUrl);\n  }\n  getStatusContact(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/contact/status/all';\n    return this.http.get(serviceUrl);\n  }\n\n  getTypePlan(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/plans';\n    return this.http.get(serviceUrl);\n  }\n  getTypePlanDiscount(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/discount/all/plans';\n    return this.http.get(serviceUrl);\n  }\n\n  getContactedType(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/contact/contacted/all';\n    return this.http.get(serviceUrl);\n  }\n\n  getStatusByCode(codeStatus: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/contact/status/bycode/' + codeStatus;\n    return this.http.get(serviceUrl);\n  }\n  getAllTypeDiscount(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/commercial/typediscounts/all';\n    return this.http.get(serviceUrl);\n  }\n\n  getAllCourseModality(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/course/modality';\n    return this.http.get(serviceUrl);\n  }\n\n  getAllPaymentMethod(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/payment/method/all';\n    return this.http.get(serviceUrl);\n  }\n\n  getAllPaymentService(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/payment/services/all';\n    return this.http.get(serviceUrl);\n  }\n\n  getAllBanks(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/banks/all';\n    return this.http.get(serviceUrl);\n  }\n\n  getAllCampus(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/banks/all';\n    return this.http.get(serviceUrl);\n  }\n\n  getCampusByCode(codeCampu: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/campus/by/code/' + codeCampu;\n    return this.http.get(serviceUrl);\n  }\n\n  getGenders(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/genders';\n    return this.http.get(serviceUrl);\n  }\n\n  getGenderByCode(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/gender/code/' + code;\n    return this.http.get(serviceUrl);\n  }\n\n  getStratums(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/stratums';\n    return this.http.get(serviceUrl);\n  }\n\n  getStratumByCode(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/stratum/by/code/' + code;\n    return this.http.get(serviceUrl);\n  }\n\n  getCivilStatus(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/civil/status';\n    return this.http.get(serviceUrl);\n  }\n\n  getCivilStatusByCode(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/civil/status/by/code/' + code;\n    return this.http.get(serviceUrl);\n  }\n\n  getMulticulturalisms(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/multiculturalisms';\n    return this.http.get(serviceUrl);\n  }\n\n  getMulticulturalismByCode(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/multiculturalism/by/code/' + code;\n    return this.http.get(serviceUrl);\n  }\n\n  getClassRoomByMod(codeModality: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/classroom/by/modality/' + codeModality;\n    return this.http.get(serviceUrl);\n  }\n\n  getConuntryStateByCity(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/country/state/by/city/' + code;\n    return this.http.get(serviceUrl);\n  }\n\n  getAllStates(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/states';\n    return this.http.get(serviceUrl);\n  }\n\n  getAllCities(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/cities';\n    return this.http.get(serviceUrl);\n  }\n\n  getDataCityByCode(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/city/code/' + code;\n    return this.http.get(serviceUrl);\n  }\n\n  getDataCityByCountry(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/city/country/' + code;\n    return this.http.get(serviceUrl);\n  }\n\n  getDataCityByName(name: string): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/city/name/' + name;\n    return this.http.get(serviceUrl);\n  }\n\n  getDataCityByState(name: string): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/cities/state/' + name;\n    return this.http.get(serviceUrl);\n  }\n\n  getActionsAdminStudent(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/actions/admin/student';\n    return this.http.get(serviceUrl);\n  }\n\n  getReasonObservationStudent(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/reason/observation/student';\n    return this.http.get(serviceUrl);\n  }\n  GetAllGradeEducation(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/grade';\n    return this.http.get(serviceUrl);\n  }\n  getAllParametersCodForm(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/parameter/cod/form';\n    return this.http.get(serviceUrl);\n  }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { RegisterDashboardRq } from '../../../core/models/user/user-rq.model';\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { UserService } from '../../../core/services/user-service/user-service';\n\n@Component({\n  selector: 'ipt-create-user-form',\n  templateUrl: './create-user-form.component.html',\n  styleUrls: ['./create-user-form.component.css'],\n  animations: [\n    trigger('fade', [\n      transition('void => *', [\n        style({ opacity: 0 }),\n        animate(200, style({opacity: 1}))\n      ])\n    ])\n  ]\n})\nexport class CreateUserFormComponent implements OnInit {\n  @Input() userType!: string;\n  @Input() visibility: boolean = false;\n  @Output() userCreated = new EventEmitter<boolean>(false);\n  @Output() onHide = new EventEmitter<boolean>(false);\n\n  createUserForm!: FormGroup;\n  phoneNumberIndicatives: any;\n  idTypes: any;\n  states: any;\n  loader: boolean = false;\n  cities: any;\n  photo: string = '';\n\n  constructor(\n    private fb: FormBuilder,\n    private parameterService: ParameterService,\n    private userService: UserService\n  ) {}\n\n  ngOnInit() {\n    this.initForm();\n    this.getParameters();\n  }\n\n  closeModal() {\n    this.visibility = false;\n    this.onHide.emit(true);\n  }\n\n  createUser() {\n    this.loader = true;\n\n    let request: RegisterDashboardRq = {\n      name: this.createUserForm.controls['name'].value,\n      last_name: this.createUserForm.controls['last_name'].value,\n      id_card_type: this.createUserForm.controls['id_card_type'].value,\n      id_card: this.createUserForm.controls['id_card'].value,\n      phone_indicative: this.createUserForm.controls['phone_indicative'].value,\n      phone_number: this.createUserForm.controls['phone_number'].value,\n      email: this.createUserForm.controls['email'].value,\n      city: this.createUserForm.controls['city'].value,\n      service_hour: this.createUserForm.controls['service_hour'].value,\n      role: this.createUserForm.controls['role'].value,\n      password: this.createUserForm.controls['password'].value,\n    };\n\n    this.userService.registerDashboard(request).subscribe((response) => {\n      switch (response.message.code) {\n        case 1:\n          this.userCreated.emit(true);\n          this.initForm();\n          break;\n        case 2:\n          throw new Error(\"Los datos ingresados no corresponden a un usuario registrado en nuestro sistema, por favor reviselos.\");\n        case 3:\n          throw new Error(\"Los datos ingresados no cumplen los parámetros establecidos\");\n        default:\n          break;\n      }\n      this.loader = false;\n    });\n  }\n\n  getParameters() {\n    this.parameterService.getIndicatives().subscribe((response: { data: any; }) => {\n      this.phoneNumberIndicatives = response.data;\n    });\n    this.parameterService.getCardTypes('col').subscribe((response: { data: any; }) => {\n      this.idTypes = response.data;\n    });\n    this.parameterService.getStatesByCountry('col').subscribe((response): void => {\n      this.states = response.data;\n    });\n  }\n\n  getRolesOptions(): any {\n    // Estudiante\n    if (this.userType === 'student') {\n      this.setPhoto('student');\n      return [\n        { code: '13', name: 'Student' },\n      ];\n    }\n\n    // Académico\n    if (this.userType === 'academic') {\n      this.setPhoto('academic');\n      return [\n        { code: '11', name: 'Academic Coordinator' },\n        { code: '12', name: 'Teacher' },\n      ];\n    }\n\n    // Administrativo\n    if (this.userType === 'administrative') {\n      this.setPhoto('administrative');\n      return [\n        { code: '31', name: 'Administrative Coordinator' },\n        { code: '32', name: 'Administrative Advisor' },\n      ];\n    }\n\n    // Marketing\n    if (this.userType === 'marketing') {\n      this.setPhoto('marketing');\n      return [\n        { code: '21', name: 'Marketing Coordinator' },\n        { code: '22', name: 'Marketing Advisor' },\n      ];\n    }\n\n    // Comercial\n    if (this.userType === 'commercial') {\n      this.setPhoto('commercial');\n      return [\n        { code: '41', name: 'Commercial Coordinator' },\n        { code: '42', name: 'Commercial Advisor' },\n      ];\n    }\n\n    // Cartera\n    if (this.userType === 'treasure') {\n      this.setPhoto('treasure');\n      return [\n        { code: '51', name: 'Treauser Coordinator' },\n        { code: '52', name: 'Treauser Advisor' },\n      ];\n    }\n  }\n\n  initForm() {\n    this.createUserForm = this.fb.group({\n      name: ['',[Validators.required,Validators.minLength(3),Validators.maxLength(32)],],\n      last_name: ['',[Validators.required,Validators.minLength(5),Validators.maxLength(32),],],\n      email: ['', [Validators.required, Validators.maxLength(300)]],\n      id_card_type: ['', [Validators.required]],\n      id_card: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(20),]],\n      phone_indicative: ['', [Validators.required]],\n      city: ['', [Validators.required]],\n      role: ['', [Validators.required]],\n      service_hour: ['', [Validators.required]],\n      phone_number: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(15)]],\n      password: ['', [Validators.required, Validators.minLength(7), Validators.maxLength(32)]],\n      re_password: ['', [Validators.required, Validators.minLength(7), Validators.maxLength(32)]],\n      state: [''],\n    });\n  }\n\n  setPhoto(type: string) {\n    if (type === 'student') this.photo = '/platform/academic/assets/student.jpg'\n    if (type === 'academic') this.photo = '/platform/academic/assets/academico.png'\n    if (type === 'administrative') this.photo = '/platform/administrative/assets/administrativo.jpg'\n    if (type === 'marketing') this.photo = '/platform/marketing/assets//marketing.jpg'\n    if (type === 'commercial') this.photo = '/platform/commercial/assets/user-form-assets/comercial.jpg'\n    if (type === 'treasure') this.photo = '/platform/treasure/assets/administrativo.jpg'\n  }\n\n  selectRol(role: any) {\n    if (role !== 'Seleccione el rol') {\n      this.createUserForm.controls['role'].setValue(role);\n    } else {\n      this.createUserForm.controls['role'].setValue(null);\n    }\n  }\n\n  selectIndicatives(indicative: any) {\n    if (indicative !== 'Seleccione el indicativo') {\n      this.createUserForm.controls['phone_indicative'].setValue(indicative);\n    } else {\n      this.createUserForm.controls['phone_indicative'].setValue(null);\n    }\n  }\n\n  selectIdType(idType: any) {\n    if (idType !== 'Ingrese el tipo de documento') {\n      this.createUserForm.controls['id_card_type'].setValue(idType);\n    } else {\n      this.createUserForm.controls['id_card_type'].setValue(null);\n    }\n  }\n\n  selectState(state: any) {\n    if (state !== 'Seleccione el departamento') {\n      this.createUserForm.controls['state'].setValue(state);\n      this.parameterService.getCitiesByState(state).subscribe((response) => {\n        this.cities = response.data;\n      });\n    } else {\n      this.createUserForm.controls['state'].setValue(null);\n      this.createUserForm.controls['city'].setValue(null);\n      this.cities = [];\n    }\n  }\n\n  selectCity(city: any) {\n    if (city !== 'Ciudad de residencia') {\n      this.createUserForm.controls['city'].setValue(city);\n    } else {\n      this.createUserForm.controls['city'].setValue(null);\n    }\n  }\n}\n","<main *ngIf=\"visibility\">\n  <div @fade class=\"modal_container\">\n    <div class=\"header_modal\">\n      <h1>Crear usuario de {{ userType | titlecase}}</h1>\n      <button (click)=\"closeModal()\">x</button>\n    </div>\n    <div class=\"grid_container\">\n      <div>\n        <form autocomplete=\"off\" [formGroup]=\"createUserForm\">\n          <ipt-input\n            [inputType]=\"'text'\"\n            [placeHolder]=\"'Nombres'\"\n            [control]=\"createUserForm.controls['name']\"\n            [validateText]=\"'Debe ingresar el nombre'\"\n          ></ipt-input>\n          <ipt-input\n            [inputType]=\"'text'\"\n            [placeHolder]=\"'Apellidos'\"\n            [control]=\"createUserForm.controls['last_name']\"\n            [validateText]=\"'Debe ingresar los apellidos'\"\n          ></ipt-input>\n          <ipt-input\n            [inputType]=\"'text'\"\n            [placeHolder]=\"'Email'\"\n            [control]=\"createUserForm.controls['email']\"\n            [validateText]=\"'Debe tener dominio @inglesparatodos.edu.co'\"\n          ></ipt-input>\n          <ipt-select\n            [isRequired]=\"true\"\n            [defaultText]=\"'Rol'\"\n            (eventSelect)=\"selectRol($event)\"\n            [data]=\"getRolesOptions()\"\n          ></ipt-select>\n          <ipt-select\n            [isRequired]=\"true\"\n            [data]=\"phoneNumberIndicatives\"\n            (eventSelect)=\"selectIndicatives($event)\"\n            [defaultText]=\"'Indicativo'\"\n          ></ipt-select>\n          <ipt-input\n            [inputType]=\"'number'\"\n            [placeHolder]=\"'Teléfono'\"\n            [control]=\"createUserForm.controls['phone_number']\"\n            [validateText]=\"'Debe ingresar un número de teléfono válido'\"\n          ></ipt-input>\n          <ipt-select\n            [isRequired]=\"true\"\n            [data]=\"idTypes\"\n            (eventSelect)=\"selectIdType($event)\"\n            [defaultText]=\"'Tipo de documento'\"\n          ></ipt-select>\n          <ipt-input\n            [inputType]=\"'number'\"\n            [placeHolder]=\"'Documento'\"\n            [control]=\"createUserForm.controls['id_card']\"\n            [validateText]=\"'Debe ingresar el número de documento'\"\n          ></ipt-input>\n          <ipt-select\n            [isRequired]=\"true\"\n            (eventSelect)=\"selectState($event)\"\n            [data]=\"states\"\n            [defaultText]=\"'Departamento'\"\n          ></ipt-select>\n          <ipt-select\n            [isRequired]=\"true\"\n            (eventSelect)=\"selectCity($event)\"\n            [data]=\"cities\"\n            [defaultText]=\"'Ciudad'\"\n          ></ipt-select>\n          <ipt-input *ngIf=\"!(userType === 'student')\"\n            [inputType]=\"'number'\"\n            [placeHolder]=\"'Horas de servicio'\"\n            [control]=\"createUserForm.controls['service_hour']\"\n            [validateText]=\"'Debe ingresar las horas de servicio'\"\n          ></ipt-input>\n          <ipt-input\n            [inputType]=\"'password'\"\n            [placeHolder]=\"'Contraseña'\"\n            [control]=\"createUserForm.controls['password']\"\n          >\n          </ipt-input>\n          <ipt-input\n            [inputType]=\"'password'\"\n            [placeHolder]=\"'Repetir contraseña'\"\n            [control]=\"createUserForm.controls['re_password']\"\n          >\n          </ipt-input>\n        </form>\n\n        <div class=\"buttons-container\">\n          <ipt-button\n            [label]=\"'Crear usuario'\"\n            [isEnabled]=\"\n              !loader &&\n              createUserForm.value['re_password'] ===\n              createUserForm.value['password']\n            \"\n            (onClick)=\"createUser()\"\n            [primary]=\"true\"\n          >\n          </ipt-button>\n        </div>\n      </div>\n      <div [ngStyle]=\"{'background-image': 'url(' + photo + ')'}\" class=\"user_type_image\"></div>\n    </div>\n  </div>\n</main>\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\nimport { BaseService } from '../../../core/utils/base-service/base.service';\nimport { UserTokenRq2 } from '../../../core/models/user/user-rq.model';\nimport { StorageService } from '../../../core/services/storage-service/storage-service';\nimport { UserService } from '../../../core/services/user-service/user-service';\n\n@Component({\n  selector: 'ipt-sidenav',\n  template: `\n    <mat-sidenav #sidenav mode=\"push\" >\n      <mat-toolbar color=\"primary\" (click)=\"sidenav.toggle()\">\n        <span style=\"font-size: 15px;\">{{department}}</span>\n        <span class=\"menu-icon-close\"></span>\n      </mat-toolbar>\n\n      <mat-nav-list *ngFor=\"let route of routes\">\n        <nav class=\"flex-container-menu\">\n          <ipt-aside-button\n            [buttonActive]=\"this.setPage === route.page\"\n            [icon]=\"route.icon\"\n            [text]=\"route.text\"\n            (isClicked)=\"clickPage(route.page)\"\n            (click)=\"sidenav.toggle()\"\n          >\n          </ipt-aside-button>\n        </nav>\n      </mat-nav-list>\n    </mat-sidenav>\n\n    <mat-toolbar class=\"header\">\n      <div class=\"menu-container\" (click)=\"sidenav.toggle()\">\n        <p>Menu</p>\n        <div class=\"menu-icon\"></div>\n      </div>\n\n      <img class=\"img-logo\" src=\"./assets/logos/IPT-logo.png\" alt=\"\" />\n\n      <div class=\"text-container\">\n        <span class=\"p1\">{{ currentDay }}</span>\n        <span *ngIf=\"hour >= 0 && hour < 12\" class=\"p2\">\n          Hey {{ userName }}, Good morning!\n        </span>\n        <p *ngIf=\"hour >= 12 && hour < 18\" class=\"p2\">\n          Hey {{ userName }}, Good afternoon!\n        </p>\n        <p *ngIf=\"hour >= 18 && hour < 24\" class=\"p2\">\n          Hey {{ userName }}, Good evening!\n        </p>\n      </div>\n\n      <div *ngIf=\"!this.appUser\" class=\"logout-container\" (click)=\"logout()\">\n        <p class=\"logout-button\">Cerrar sesión</p>\n        <div class=\"photo-logout\"></div>\n      </div>\n    </mat-toolbar>\n  `,\n  styleUrls: ['./sidenav.css'],\n})\nexport class SidenavComponent implements OnInit {\n  @Input() department!: string;\n  @Input() setPage!: string;\n  @Input() userName!: string;\n  @Output() pageChangeEvent = new EventEmitter<string>();\n\n  appUser: boolean = false;\n  routes: any[] = [];\n  options: any = { weekday: 'long', month: 'long', day: 'numeric' };\n  currentDay = new Date().toLocaleDateString('en-EN', this.options);\n  hour = new Date().getHours();\n\n  constructor(\n    private userService: UserService,\n    private baseService: BaseService,\n    private storageService: StorageService\n  ) {}\n\n  ngOnInit(): void {\n    let user = this.storageService.getCurrentUser()?.token;\n    let token: string = user === undefined ? '' : user;\n\n    let request: UserTokenRq2 = {\n      token: token,\n      department: this.department\n    };\n\n    this.userService.getRoutesForRole(request).subscribe((response) => {\n      this.routes = response.data;\n    });\n\n    this.appUser = this.baseService.isAnAppUser();\n  }\n\n  clickPage(event: string) {\n    this.pageChangeEvent.emit(event);\n  }\n\n  logout() {\n    this.storageService.logout();\n    this.pageChangeEvent.emit('logout');\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n  exports: [MatSidenavModule, MatToolbarModule, MatIconModule, MatListModule, MatButtonModule],\n})\nexport class MaterialModule {}\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n  selector: 'ipt-question-types',\n  template: `\n    <div\n      *ngIf=\"\n        this.questionType === 'True or False' ||\n        this.questionType === 'Correct or Incorrect'\n      \"\n      class=\"sectionABCD\"\n    >\n      <fieldset disabled=\"disabled\">\n        <ipt-input\n          [control]=\"formGruoup.controls['answer1']\"\n          [inputType]=\"'text'\"\n          [placeHolder]=\"\n            this.questionType === 'True or False' ? 'True' : 'Correct'\n          \"\n          [validateText]=\"'Este campo es requerido'\"\n        >\n        </ipt-input>\n      </fieldset>\n      <ipt-input\n        [control]=\"formGruoup.controls['value1']\"\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Valor *'\"\n        [validateText]=\"'Debe ser 0 o 1'\"\n        (click)='clickDetection(\"value1\")'\n      >\n      </ipt-input>\n      <fieldset disabled=\"disabled\">\n        <ipt-input\n          [control]=\"formGruoup.controls['answer2']\"\n          [inputType]=\"'text'\"\n          [placeHolder]=\"\n            this.questionType === 'True or False' ? 'False' : 'Incorrect'\n          \"\n          [validateText]=\"'Este campo es requerido'\"\n        >\n        </ipt-input>\n      </fieldset>\n      <ipt-input\n        [control]=\"formGruoup.controls['value2']\"\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Valor *'\"\n        [validateText]=\"'Debe ser 0 o 1'\"\n        (click)='clickDetection(\"value2\")'\n      >\n      </ipt-input>\n    </div>\n\n    <div\n      *ngIf=\"\n        this.questionType === 'Relationship' ||\n        this.questionType === 'Complete' ||\n        this.questionType === 'Conversation'\n      \"\n      class=\"sectionABCD\"\n    >\n      <ipt-input\n        [control]=\"formGruoup.controls['answer1']\"\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Ingrese la opción'\"\n        [validateText]=\"'Este campo es requerido'\"\n      >\n      </ipt-input>\n      <ipt-input\n        [control]=\"formGruoup.controls['value1']\"\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Valor *'\"\n        [validateText]=\"'Debe ser 0 o 1'\"\n        (click)='clickDetection(\"value1\")'\n      >\n      </ipt-input>\n    </div>\n\n    <div\n      *ngIf=\"\n        this.questionType === 'A, B, C' || this.questionType === 'A, B, C, D'\n      \"\n      class=\"sectionABCD\"\n    >\n      <ipt-input\n        [control]=\"formGruoup.controls['answer1']\"\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Opción A *'\"\n        [validateText]=\"'Este campo es requerido'\"\n      >\n      </ipt-input>\n      <ipt-input\n        [control]=\"formGruoup.controls['value1']\"\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Valor *'\"\n        [validateText]=\"'Debe ser 0 o 1'\"\n        (click)='clickDetection(\"value1\")'\n      >\n      </ipt-input>\n\n      <ipt-input\n        [control]=\"formGruoup.controls['answer2']\"\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Opción B *'\"\n        [validateText]=\"'Este campo es requerido'\"\n      >\n      </ipt-input>\n      <ipt-input\n        [control]=\"formGruoup.controls['value2']\"\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Valor *'\"\n        [validateText]=\"'Debe ser 0 o 1'\"\n        (click)='clickDetection(\"value2\")'\n      >\n      </ipt-input>\n\n      <ipt-input\n        [control]=\"formGruoup.controls['answer3']\"\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Opción C *'\"\n        [validateText]=\"'Este campo es requerido'\"\n      >\n      </ipt-input>\n      <ipt-input\n        [control]=\"formGruoup.controls['value3']\"\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Valor *'\"\n        [validateText]=\"'Debe ser 0 o 1'\"\n        (click)='clickDetection(\"value3\")'\n      >\n      </ipt-input>\n\n      <ipt-input\n        *ngIf=\"this.questionType === 'A, B, C, D'\"\n        [control]=\"formGruoup.controls['answer4']\"\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Opción D *'\"\n        [validateText]=\"'Este campo es requerido'\"\n      >\n      </ipt-input>\n      <ipt-input\n        *ngIf=\"this.questionType === 'A, B, C, D'\"\n        [control]=\"formGruoup.controls['value4']\"\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Valor *'\"\n        [validateText]=\"'Debe ser 0 o 1'\"\n        (click)='clickDetection(\"value4\")'\n      >\n      </ipt-input>\n    </div>\n  `,\n  styleUrls: ['./edit-question-types.component.css'],\n})\nexport class QuestionTypeComponent implements OnChanges {\n  @Input() questionType!: string;\n  @Input() formGruoup!: FormGroup;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['formGruoup']) {\n    }\n  }\n\n  clickDetection(value: string){\n    switch (value) {\n      case 'value1':\n        if(this.formGruoup.controls['value1'].value === 1) {\n          this.formGruoup.controls['value2'].value === 0;\n          this.formGruoup.controls['value3'].value === 0;\n          this.formGruoup.controls['value4'].value === 0;\n        }\n        break;\n      case 'value2':        \n        if(this.formGruoup.controls['value2'].value === 1) {\n          this.formGruoup.controls['value1'].value === 0;\n          this.formGruoup.controls['value3'].value === 0;\n          this.formGruoup.controls['value4'].value === 0;\n        }\n        break;\n      case 'value3':\n        if(this.formGruoup.controls['value3'].value === 1) {\n          this.formGruoup.controls['value1'].value === 0;\n          this.formGruoup.controls['value2'].value === 0;\n          this.formGruoup.controls['value4'].value === 0;\n        }\n        break;\n      case 'value4':\n        if(this.formGruoup.controls['value4'].value === 1) {\n          this.formGruoup.controls['value1'].value === 0;\n          this.formGruoup.controls['value2'].value === 0;\n          this.formGruoup.controls['value3'].value === 0;\n        }\n        break;\n    \n      default:\n        console.log('exception')\n        break;\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'scheduleFormat'\n})\nexport class ScheduleFormatPipe implements PipeTransform {\n  transform(schedule: string[] | undefined): string {\n    if (!schedule) {\n      return 'Sin horario';\n    }\n\n    const isWithoutSchedule = typeof schedule === 'string' && schedule == 'without schedule';\n\n    if (isWithoutSchedule) {\n      return 'Sin horario';\n    }\n\n    const formattedDays: string[] = [];\n\n    // Mapea los días en inglés a español\n    const daysMapping: { [key: string]: string } = {\n      Monday: 'Lun',\n      Tuesday: 'Mar',\n      Wednesday: 'Mie',\n      Thursday: 'Jue',\n      Friday: 'Vie',\n      Saturday: 'Sáb',\n      Sunday: 'Dom'\n    };\n\n    if (Array.isArray(schedule)) {\n      schedule.forEach(item => {\n        const parts = item.split(' at ');\n        if (parts.length !== 2) {\n          return;\n        }\n\n        const [day] = parts;\n        const spanishDay = daysMapping[day];\n\n        if (spanishDay && !formattedDays.includes(spanishDay)) {\n          formattedDays.push(spanishDay);\n        }\n      });\n    }\n\n    return formattedDays.length > 0 ? formattedDays.join(', ') : 'Sin horario';\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'scheduleTimeFormat'\n})\nexport class ScheduleTimeFormatPipe implements PipeTransform {\n  transform(schedule: string[] | undefined): string {\n    if (!schedule || !Array.isArray(schedule) || schedule.length === 0) {\n      return 'Sin horario';\n    }\n\n    const firstItem = schedule[0];\n    const match = firstItem.match(/(\\d{2}:\\d{2}:\\d{2}) to (\\d{2}:\\d{2}:\\d{2})/);\n\n    if (match && match.length === 3) {\n      const [startTime, endTime] = match.slice(1);\n      return `${this.formatTo12Hours(startTime)} to ${this.formatTo12Hours(endTime)}`;\n    }\n\n    return 'Sin horario';\n  }\n\n  private formatTo12Hours(time: string): string {\n    const [hours, minutes, seconds] = time.split(':').map(Number);\n    const period = hours >= 12 ? 'PM' : 'AM';\n    const formattedHours = hours % 12 || 12; // Handle noon as 12 PM\n    return `${formattedHours}:${this.padWithZero(minutes)} ${period}`;\n  }\n\n  private padWithZero(value: number): string {\n    return value < 10 ? `0${value}` : `${value}`;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'typeLevel'\n})\nexport class TypeLevelPipe implements PipeTransform {\n\n  transform(value: string): string {\n\n    if (value === 'BEGINNERS I') {\n      return 'Beg.I'\n    }\n\n    if (value === 'BEGINNERS II') {\n      return 'Beg.II'\n    }\n\n    if (value === 'BEGINNERS III') {\n      return 'Beg.III'\n    }\n    if (value === 'STARTERS I') {\n      return 'Sta.I'\n    }\n\n    if (value === 'STARTERS II') {\n      return 'Sta.II'\n    }\n\n    if (value === 'MOVERS I') {\n      return 'Mov.I'\n    }\n\n    if (value === 'MOVERS II') {\n      return 'Mov.II'\n    }\n\n    if (value === 'PRE-A1') {\n      return 'PRE-A1'\n    }\n\n    if (value === 'A1') {\n      return 'A1'\n    }\n\n    if (value === 'A2') {\n      return 'A2'\n    }\n\n    if (value === 'B1') {\n      return 'B1'\n    }\n\n    if (value === 'B1+') {\n      return 'B1+'\n    }\n\n    if (value === 'B2') {\n      return 'B2'\n    }\n\n    else {\n      return '-'\n    }\n  }\n\n}\n","import { ICourseByTokenRs } from './../../../core/models/activities/activities.interface';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\n\n\n@Component({\n  selector: 'ipt-card-course-self-cod-managed',\n  templateUrl: './card-course.component.html',\n  styleUrls: ['./card-course.component.css']\n})\nexport class CardCourseComponent implements OnChanges, OnInit {\n  @Input () CourseData?:any;\n  @Input() isLoading = true\n  @Output() codeCourse = new EventEmitter<ICourseByTokenRs>();\n\n  courseAcademy:any[]=[];\n  courseKids:any[]=[];\n  courseSchools:any[]=[];\n  visibleAcademy =  false;\n  visibleKids =  false;\n  visibleSchools =  false;\n  skeleton=[{},{}];\n\n  ngOnInit(): void {\n    if (this.CourseData.length == 0) {\n      this.isLoading=true;\n    }else{\n      this.isLoading=false;\n    }\n  }\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['CourseData']) {\n      if (!this.CourseData) {\n        this.courseAcademy = [];\n        this.courseKids = [];\n        this.courseSchools = [];\n        this.isLoading=false\n        this.visibleAcademy = false;\n        this.visibleKids = false;\n        this.visibleSchools = false;\n      } else {\n        this.isLoading=false\n        this.courseAcademy = this.CourseData.Academy;\n        this.courseKids = this.CourseData.Kids;\n        this.courseSchools = this.CourseData.Schools;\n        this.visibleAcademy = this.CourseData.Academy ? true : false;\n        this.visibleKids = this.CourseData.Kids ? true : false;\n        this.visibleSchools = this.CourseData.Schools ? true : false;\n      }\n    }\n  }\n\n  viewDataCourse(codeCourse: ICourseByTokenRs){\n    this.codeCourse.emit(codeCourse);\n  }\n\n  getCssClass(level: string): string {\n    switch(level) {\n      case 'PRE-A1':\n        return 'levelAone'\n      case 'A1':\n        return 'levelAonetwo'\n      case 'A2':\n        return 'levelAtwo';\n      case 'B1':\n        return 'levelBone'\n      case 'B2':\n        return 'levelBtwo'\n      case 'B1+':\n        return 'levelBplus'\n      case 'MOVERS I':\n      case 'MOVERS II':\n      case 'BEGINNERS I':\n      case 'BEGINNERS II':\n      case 'BEGINNERS III':\n      case 'STARTERS I':\n      case 'STARTERS II':\n        return 'beginner';\n      default:\n        return '';\n    }\n  }\n}\n","<div *ngIf=\"!isLoading\" class=\"main-container\">\n\n  <!-- cards Academy -->\n  <div class=\"container__span-header flex justify-content-start\" *ngIf=\"visibleAcademy || visibleKids || visibleSchools\">\n    <span>Selecciona un Plan</span>\n  </div>\n\n  <p-panel\n  *ngIf=\"visibleAcademy\"\n  header=\"Plan Academy\"\n  [toggleable]=\"true\"\n  [collapsed]=\"false\"\n  id=\"academic_plan\"\n  class=\"academic_plan\"\n  >\n  <ng-template pTemplate=\"icons\"> </ng-template>\n    <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n      <section *ngFor=\"let course of courseAcademy\" class=\"card1 animate__animated\"  (click)=\"viewDataCourse(course)\">\n        <h3 class=\"card1__title__academic\">{{ course.course_type.label }}</h3>\n        <p class=\"card1__content\">\n          <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n          <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n          <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br> -->\n          <!-- <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name  | titlecase}}</span><br> -->\n          <strong><hr></strong>\n          <strong class=\"type-club\">Clases Club: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n          <strong class=\"type-club\">Horario Club: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n          <strong>Modalidad: </strong>\n            <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n          <!-- <strong class=\"type-club\">Club Teacher: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n          <!-- <strong class=\"type-club\">Club Classroom: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name  | titlecase}}</span><br> -->\n          <!-- <strong><hr></strong> -->\n          <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n          <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n          <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n          <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n        </p>\n        <div class=\"card1__date\">\n          <!-- <span\n          [ngClass]=\"course.status?.color_status\"\n          ></span> -->\n          <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n        </div>\n        <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n          <span>{{ course.english_level.name | typeLevel}}</span>\n        </div>\n      </section>\n    </main>\n    <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n  </p-panel>\n\n  <!-- cards Kids -->\n\n  <p-panel\n  *ngIf=\"visibleKids\"\n  header=\"Plan Kids\"\n  [toggleable]=\"true\"\n  [collapsed]=\"false\"\n  id=\"social_kids\"\n  >\n  <ng-template pTemplate=\"icons\"> </ng-template>\n    <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n      <section *ngFor=\"let course of courseKids\" class=\"card1 animate__animated\"  (click)=\"viewDataCourse(course)\">\n        <h3 class=\"card1__title__kids\">{{ course.course_type.label }}</h3>\n        <p class=\"card1__content\">\n          <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n          <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n          <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n          <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name  | titlecase}}</span><br> -->\n          <strong><hr></strong>\n          <strong class=\"type-club\">Clases Club: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n          <strong class=\"type-club\">Horario Club: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n          <strong>Modalidad: </strong>\n            <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n          <!-- <strong class=\"type-club\">Club Teacher: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br> -->\n          <!-- <strong class=\"type-club\">Club Classroom: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name  | titlecase}}</span><br> -->\n          <!-- <strong><hr></strong> -->\n          <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n          <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n          <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n          <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n        </p>\n        <div class=\"card1__date\">\n          <!-- <span\n          [ngClass]=\"course.status?.color_status\"\n          ></span> -->\n          <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n        </div>\n        <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n          <span>{{ course.english_level.name | typeLevel}}</span>\n        </div>\n      </section>\n    </main>\n    <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n  </p-panel>\n\n  <!-- cards Schools -->\n\n  <p-panel\n  *ngIf=\"visibleSchools\"\n  header=\"Plan Schools\"\n  [toggleable]=\"true\"\n  [collapsed]=\"false\"\n  id=\"social_school\"\n  >\n  <ng-template pTemplate=\"icons\"> </ng-template>\n    <main *ngIf=\"!isLoading\" class=\"flex flex-col\">\n      <section *ngFor=\"let course of courseSchools\" class=\"card1 animate__animated\"  (click)=\"viewDataCourse(course)\">\n        <h3 class=\"card1__title__schools\">{{ course.course_type.label }}</h3>\n        <p class=\"card1__content\">\n          <strong class=\"type-theory\">Clases Teoricas: </strong>{{ course.course_schedule | scheduleFormat }}<br>\n          <strong class=\"type-theory\">Horario Teorico: </strong>{{ course.course_schedule | scheduleTimeFormat }}<br>\n          <!-- <strong class=\"type-theory\">Theory Teacher: </strong>{{ course.teacher | titlecase }}<br>\n          <strong class=\"type-theory\">Theory Classroom: </strong><span>{{ course.course_scheduleDetails[0].ClassRoom.name  | titlecase}}</span><br> -->\n          <strong><hr></strong>\n          <strong class=\"type-club\">Clases Club: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleFormat }}</span><br>\n          <strong class=\"type-club\">Horario Club: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n          <strong>Modalidad: </strong>\n            <span *ngIf=\"course.course_modality\">{{ course.course_modality.name | titlecase }}</span><br>\n          <!-- <strong class=\"type-club\">Club Teacher: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.teacher | titlecase }}</span><br>\n          <strong class=\"type-club\">Club Classroom: </strong>\n            <span *ngIf=\"course.course_club\">{{ course.course_club.course_scheduleDetails[0].ClassRoom.name  | titlecase}}</span><br> -->\n          <!-- <strong><hr></strong> -->\n          <!-- <strong *ngIf=\"course.start_date === null\">Posible inicio: </strong>{{ course.start_date === null ? course.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.start_date === null\">\n          <strong *ngIf=\"course.start_date !== null\">Fecha Inicio: </strong>{{ course.start_date !== null ? course.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\">\n          <strong *ngIf=\"course.finish_date !== null\">Fecha culminacion: </strong>{{ course.finish_date !== null ? course.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"course.finish_date !== null\"> -->\n          <!-- <strong>Created: </strong>{{ course.created_at | date:'dd/MM/yyyy' }}<br> -->\n        </p>\n        <div class=\"card1__date\">\n          <!-- <span\n          [ngClass]=\"course.status?.color_status\"\n          ></span> -->\n          <!-- <span class=\"course-code\">Code: {{course.code}}</span> -->\n        </div>\n        <div class=\"card1__arrow\" [ngClass]=\"getCssClass(course.english_level.name)\">\n          <span>{{ course.english_level.name | typeLevel}}</span>\n        </div>\n      </section>\n    </main>\n    <ipt-loader *ngIf=\"isLoading\"></ipt-loader>\n  </p-panel>\n\n  <div class=\"container__span-footer flex justify-content-center\" *ngIf=\"!visibleAcademy && !visibleKids && !visibleSchools\">\n    <span>No se encontraron planes</span>\n  </div>\n</div>\n<div *ngIf=\"isLoading\">\n\n  <p-panel\n  header=\"\"\n  [toggleable]=\"true\"\n  [collapsed]=\"false\"\n  id=\"p-component panel-skeleton\"\n  >\n  <ng-template pTemplate=\"icons\"> </ng-template>\n    <main class=\"flex flex-col\">\n      <section *ngFor=\"let course of skeleton\" class=\"card1 animate__animated\"  >\n        <p-skeleton width=\"12rem\" height=\"2rem\" styleClass=\"mb-2\" ></p-skeleton>\n        <p class=\"card1__content_skeleton\">\n          <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n          <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n          <strong><hr></strong>\n          <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n          <p-skeleton width=\"9rem\" height=\"1rem\" styleClass=\"mb-2\" ></p-skeleton>\n        </p>\n        <div class=\"card1__date__skeleton\">\n        </div>\n        <div class=\"card1__arrow\" >\n          <p-skeleton size=\"3rem\" styleClass=\"mr-2\" ></p-skeleton>\n        </div>\n      </section>\n    </main>\n  </p-panel>\n\n</div>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ScheduleFormatPipe } from './course-pipes/schedule-form.pipe';\nimport { ScheduleTimeFormatPipe } from './course-pipes/time-form.pipe';\nimport { TypeLevelPipe } from './course-pipes/type-level.pipe';\n\n@NgModule({\n  declarations: [\n    ScheduleFormatPipe,\n    ScheduleTimeFormatPipe,\n    TypeLevelPipe\n  ],\n  imports: [CommonModule],\n  exports: [\n\n    ScheduleFormatPipe,\n    ScheduleTimeFormatPipe,\n    TypeLevelPipe\n\n  ]\n})\nexport class PipeModule {}\n","import { Component, Input, OnInit } from '@angular/core';\n\n\n@Component({\n  selector: 'ipt-card-select-course-self-cod-managed',\n  templateUrl: './card-select-course.component.html',\n  styleUrls: ['./card-select-course.component.css']\n})\nexport class CardSelectCourseComponent implements OnInit{\n\n  @Input() courseSelect?: any;\n  jornada: number = 0;\n\n  ngOnInit(): void {\n    if (this.courseSelect && this.courseSelect.course_schedule) {\n      const schedule = this.courseSelect.course_schedule[0];\n      this.jornada = this.getJornada(schedule);\n    }\n  }\n\n  getJornada(schedule: string): number {\n    const timeRegex = /\\b\\d{2}:\\d{2}:\\d{2}\\b/g;\n    const times = schedule.match(timeRegex);\n\n    if (times && times.length > 0) {\n      const startTime = times[0];\n      if (this.isMorning(startTime)) {\n        return 1;\n      } else if (this.isAfternoon(startTime)) {\n        return 2;\n      } else if (this.isNight(startTime)) {\n        return 3;\n      }\n    }\n    return 0;\n  }\n\n  isMorning(time: string): boolean {\n    return time >= '05:00:00' && time <= '11:59:59';\n  }\n\n  isAfternoon(time: string): boolean {\n    return time >= '12:00:00' && time <= '17:59:59';\n  }\n\n  isNight(time: string): boolean {\n    return time >= '18:00:00';\n  }\n\n\n\n}\n","<!-- <main class=\"container-card\">\n  <div class=\"w-auto\" >\n    <div class=\"card\" (click)=\"selectDepartment(courseSelect)\">\n      <div class=\"card-text\">\n        <span class=\"date\">{{ courseSelect.course_type.label }}</span><br>\n        <strong class=\"type-theory\">Clases Teoricas: </strong>{{ courseSelect.course_schedule | scheduleFormat }}<br>\n        <strong class=\"type-theory\">Horario Teorico: </strong>{{ courseSelect.course_schedule | scheduleTimeFormat }}<br>\n        <strong><hr></strong>\n        <strong class=\"type-club\">Clases Club: </strong>\n          <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n        <strong class=\"type-club\">Horario Club: </strong>\n          <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n        <strong>Modalidad: </strong>\n        <span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n        <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.start_date === null\">\n        <strong *ngIf=\"courseSelect.start_date !== null\">Fecha Inicio: </strong>{{ courseSelect.start_date !== null ? courseSelect.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n        <strong *ngIf=\"courseSelect.finish_date !== null\">Fecha culminacion: </strong>{{ courseSelect.finish_date !== null ? courseSelect.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n      </div>\n    </div>\n  </div>\n</main> -->\n<main>\n<div class=\"container__tittle__card flex justify-content-center\">\n  Plan Seleccionado\n</div>\n<div class=\"container-card\">\n  <div class=\"card\">\n    <p class=\"heading\">\n      {{ courseSelect.course_type.label }}<br>\n    </p>\n    <div class=\"card-text\">\n      <strong class=\"type-theory\">Clases Teoricas: </strong><span>{{ courseSelect.course_schedule | scheduleFormat }}</span><br>\n      <strong class=\"type-theory\">Horario Teorico: </strong> <span>{{ courseSelect.course_schedule | scheduleTimeFormat }}</span><br>\n      <strong><hr></strong>\n      <strong class=\"type-club\">Clases Club: </strong><span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n      <strong class=\"type-club\">Horario Club: </strong><span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n      <strong>Modalidad: </strong><span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n      <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong><span>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}</span><br *ngIf=\"courseSelect.start_date === null\">\n    </div>\n    <p>{{ courseSelect.english_level.name | typeLevel}}\n    </p>\n  </div>\n</div>\n</main>\n<!-- <main *ngIf=\"jornada === 2\" class=\"container-card\">\n  <div class=\"w-auto\" >\n    <div class=\"card\" (click)=\"selectDepartment(courseSelect)\">\n      <div class=\"card-image\" [style.background-image]=\"'url(' + courseSelect.imageUrl + ')'\"></div>\n      <div class=\"card-text\">\n        <span class=\"date\">{{ courseSelect.course_type.label }}</span><br>\n        <strong class=\"type-theory\">Clases Teoricas: </strong>{{ courseSelect.course_schedule | scheduleFormat }}<br>\n        <strong class=\"type-theory\">Horario Teorico: </strong>{{ courseSelect.course_schedule | scheduleTimeFormat }}<br>\n        <strong><hr></strong>\n        <strong class=\"type-club\">Clases Club: </strong>\n          <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n        <strong class=\"type-club\">Horario Club: </strong>\n          <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n        <strong>Modalidad: </strong>\n        <span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n        <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.start_date === null\">\n        <strong *ngIf=\"courseSelect.start_date !== null\">Fecha Inicio: </strong>{{ courseSelect.start_date !== null ? courseSelect.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n        <strong *ngIf=\"courseSelect.finish_date !== null\">Fecha culminacion: </strong>{{ courseSelect.finish_date !== null ? courseSelect.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n      </div>\n    </div>\n  </div>\n</main>\n<main *ngIf=\"jornada === 3\" class=\"container-card\">\n  <div class=\"w-auto\" >\n    <div class=\"card\" (click)=\"selectDepartment(courseSelect)\">\n      <div class=\"card-image\" [style.background-image]=\"'url(' + courseSelect.imageUrl + ')'\"></div>\n      <div class=\"card-text\">\n        <span class=\"date\">{{ courseSelect.course_type.label }}</span><br>\n        <strong class=\"type-theory\">Clases Teoricas: </strong>{{ courseSelect.course_schedule | scheduleFormat }}<br>\n        <strong class=\"type-theory\">Horario Teorico: </strong>{{ courseSelect.course_schedule | scheduleTimeFormat }}<br>\n        <strong><hr></strong>\n        <strong class=\"type-club\">Clases Club: </strong>\n          <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n        <strong class=\"type-club\">Horario Club: </strong>\n          <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n        <strong>Modalidad: </strong>\n        <span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n        <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.start_date === null\">\n        <strong *ngIf=\"courseSelect.start_date !== null\">Fecha Inicio: </strong>{{ courseSelect.start_date !== null ? courseSelect.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n        <strong *ngIf=\"courseSelect.finish_date !== null\">Fecha culminacion: </strong>{{ courseSelect.finish_date !== null ? courseSelect.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n      </div>\n    </div>\n  </div>\n</main> -->\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule, CurrencyPipe, TitleCasePipe } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { AsideButtonComponent } from './atoms/aside-button/aside-button.component';\nimport { ButtonComponent } from './atoms/button/button.component';\nimport { CheckboxComponent } from './atoms/checkbox/checkbox.component';\nimport { DatalistComponent } from './atoms/datalist/datalist.component';\nimport { InputComponent } from './atoms/input/input.component';\nimport { LevelButtonComponent } from './atoms/level-button/level-button.component';\nimport { LevelTextComponent } from './atoms/level-text/level-text.component';\nimport { LoaderComponent } from './atoms/loader/loader.component';\nimport { RadioComponent } from './atoms/radio/radio.component';\nimport { SelectComponent } from './atoms/select/select.component';\nimport { TextLinkComponent } from './atoms/text-link/text-link.component';\n\nimport { LoginFormComponent } from './forms/login-form/login-form.component';\nimport { CreateUserFormComponent } from './forms/create-user-form/create-user-form.component';\n\nimport { SidenavComponent } from './molecules/sidenav/sidenav.component';\nimport { MaterialModule } from './material.module';\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\nimport { QuestionTypeComponent } from './molecules/question-type/edit-question-types.component';\nimport { PanelModule } from 'primeng/panel';\nimport { CardCourseComponent } from './molecules/card-course/card-course.component';\nimport { PipeModule } from '../core/pipes/pipe.module';\n\nimport { SkeletonModule } from 'primeng/skeleton';\nimport { CardSelectCourseComponent } from './molecules/card-select-course/card-select-course.component';\n\n@NgModule({\n  declarations: [\n    AsideButtonComponent,\n    ButtonComponent,\n    CheckboxComponent,\n    CreateUserFormComponent,\n    DatalistComponent,\n    InputComponent,\n    LevelButtonComponent,\n    LevelTextComponent,\n    LoginFormComponent,\n    LoaderComponent,\n    RadioComponent,\n    SelectComponent,\n    SidenavComponent,\n    TextLinkComponent,\n    QuestionTypeComponent,\n    CardCourseComponent,\n    CardSelectCourseComponent\n\n  ],\n  imports: [\n    CommonModule,\n    // BrowserModule, // Para evitar doble carga de BrowserModule\n    FormsModule,\n    ReactiveFormsModule,\n    MaterialModule,\n    CurrencyMaskModule,\n    PanelModule,\n    PipeModule,\n    SkeletonModule\n  ],\n  exports: [\n    AsideButtonComponent,\n    ButtonComponent,\n    CheckboxComponent,\n    CreateUserFormComponent,\n    DatalistComponent,\n    InputComponent,\n    LevelButtonComponent,\n    LevelTextComponent,\n    LoaderComponent,\n    RadioComponent,\n    SelectComponent,\n    TextLinkComponent,\n    LoginFormComponent,\n    SidenavComponent,\n    CurrencyMaskModule,\n    QuestionTypeComponent,\n    CardCourseComponent,\n    CardSelectCourseComponent\n  ],\n  providers: [\n    CurrencyPipe,\n    TitleCasePipe\n  ]\n})\n\nexport class ComponentsModule { }\n","\n\nimport { Injectable } from '@angular/core';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { MediaRq } from '../../models/media/media.interfaces';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MediaService extends IPTGeneralService{\n\n  private SERVICE_URL = 'media/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  createMedia(request: MediaRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/media';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllDataMedia(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/media/all';\n    return this.http.get(serviceUrl);\n  }\n\n  getMediaByCode(idCode: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/media/code/' + idCode;\n    return this.http.get(serviceUrl);\n  }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport Swal from 'sweetalert2';\nimport { MediaRq } from '../../core/models/media/media.interfaces';\nimport { MediaService } from '../../core/services/media-service/media.service';\nimport { UserService } from '../../core/services/user-service/user-service';\nimport { BaseService } from '../../core/utils/base-service/base.service';\n@Component({\n  selector: 'ipt-cod-documents-section',\n  templateUrl: './cod-documents-section.component.html',\n  styleUrls: ['./cod-documents-section.component.css'],\n})\nexport class CodDocumentsSectionComponent implements OnInit {\n  documentsForm!: FormGroup;\n  docStudent: boolean = false;\n  docAgreement: boolean = false;\n  docParent: boolean = false;\n  docConfanorte: boolean = false;\n  idPdf: any[] = [];\n  code!: number;\n  pdfSrc: any;\n  numDoc: number = -1;\n  value: boolean = false\n  nameUserRole: string = '';\n\n  constructor(\n    private fb: FormBuilder,\n    private mediaService: MediaService,\n    private userService: UserService,\n    private baseService: BaseService,\n    ) {\n    this.documentsForm = this.fb.group({\n      doc_student: ['', [Validators.required], []],\n      doc_agreement: [''],\n      doc_parent: [''],\n      doc_confanorte: [''],\n    });\n  }\n\n  ngOnInit(): void {}\n\n  showIdDocument() {\n    console.log('abrir modal de cargar pdf');\n  }\n\n  catchDocument(event: any, visible: string) {\n    this.numDoc++;\n    this.validateVisibility(visible, true);\n\n    const fileCatched = event.target.files[0];\n    let reader = new FileReader();\n    reader.onload = (e: any) => {\n      this.idPdf.push(e.target.result);\n      this.pdfSrc = this.idPdf[this.numDoc];\n    };\n    this.code = 0;\n    reader.readAsArrayBuffer(fileCatched);\n  }\n\n  filesUploaded() {\n    Swal.fire({\n      title: '<p style=\"font-family: Poppins\">Perfect</p>',\n      html: '<p style=\"font-family: Poppins\">Archivos subidos correctamente.</p>',\n      icon: 'success',\n    });\n    this.documentsForm.controls['doc_student'].setValue(null);\n    this.documentsForm.controls['doc_agreement'].setValue(null);\n    this.documentsForm.controls['doc_parent'].setValue(null);\n    this.documentsForm.controls['doc_confanorte'].setValue(null);\n    this.docStudent = false;\n    this.docAgreement = false;\n    this.docParent = false;\n    this.docConfanorte = false;\n  }\n\n  clearDocStudent(typeDoc: any) {\n    this.documentsForm.controls[typeDoc].setValue(null);\n    this.validateVisibility(typeDoc, false);\n  }\n\n  validateVisibility(compVisivility: string, value: boolean){\n    switch (compVisivility) {\n      case 'doc_student': this.docStudent = value;\n        break;\n      case 'doc_agreement': this.docAgreement = value;\n        break;\n      case 'doc_parent': this.docParent = value;\n        break;\n      case 'doc_confanorte': this.docConfanorte = value;\n        break;\n      default:\n        break;\n    }\n  }\n\n  getAllMedia(){\n    this.mediaService.getAllDataMedia().subscribe((response) => {\n      console.log(response.data);\n    });\n  }\n\n  getUserRole(){\n    this.userService.getUserRoleByCode(1).subscribe((response) => {\n      this.nameUserRole = response.data[0];\n    })\n  }\n\n  saveDocuments(){\n    let request: MediaRq ={\n      name :      'jhhgh',\n      link :       'khkhk',\n      user_autor : 2,\n    }\n  }\n\n}\n","<div class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n  <span class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">Documentos del COD</span>\n\n  <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n    <div class=\"ml-auto\">\n      <div class=\"inp w-10\">\n        <ipt-input\n        [inputType]=\"'file'\"\n        [placeHolder]=\"'Doc. Estudiante'\"\n        [control]=\"documentsForm.controls['doc_student']\"\n        (change)=\"catchDocument($event, 'doc_student')\"\n        ></ipt-input>\n      </div>\n      <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docStudent\">\n        <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n        <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_student')\"></button>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n    <div class=\"ml-auto\">\n      <div class=\"inp w-10\">\n        <ipt-input\n        [inputType]=\"'file'\"\n        [placeHolder]=\"'Doc. Convenio'\"\n        [control]=\"documentsForm.controls['doc_agreement']\"\n        (change)=\"catchDocument($event, 'doc_agreement')\"\n        ></ipt-input>\n      </div>\n      <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docAgreement\">\n        <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n        <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_agreement')\"></button>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n    <div class=\"ml-auto\">\n      <div class=\"inp w-10\">\n        <ipt-input\n        [inputType]=\"'file'\"\n        [placeHolder]=\"'Doc. Acudiente'\"\n        [control]=\"documentsForm.controls['doc_parent']\"\n        (change)=\"catchDocument($event, 'doc_parent')\"\n        ></ipt-input>\n      </div>\n      <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docParent\">\n        <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n        <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_parent')\"></button>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"document_item flex flex-column align-items-center p-2 border-round\">\n    <div class=\"ml-auto\">\n      <div class=\"inp w-10\">\n        <ipt-input\n        [inputType]=\"'file'\"\n        [placeHolder]=\"'Doc. Confanorte'\"\n        [control]=\"documentsForm.controls['doc_confanorte']\"\n        (change)=\"catchDocument($event, 'doc_confanorte')\"\n        ></ipt-input>\n      </div>\n      <div class=\"btn flex justify-content-center flex-wrap w-8 p-2\" *ngIf=\"docConfanorte\">\n        <button pButton pRipple type=\"button\" icon=\"pi pi-eye\" class=\"p-button-rounded p-button-sm ml-auto mr-1\" (click)=\"showIdDocument()\"></button>\n        <button pButton pRipple type=\"button\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-sm p-button-danger ml-auto\" (click)=\"clearDocStudent('doc_confanorte')\"></button>\n      </div>\n    </div>\n  </div>\n\n  <hr>\n  <button pButton pRipple type=\"button\" icon=\"pi pi-plus\" label=\"Agregar\" class=\"p-button-rounded p-button-sm ml-auto mt-2\" (click)=\"filesUploaded()\"></button>\n\n</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LocalStorageCODService {\n\n  constructor() { }\n\n  getCodFormData(step: number, control: string): string | null {\n    if (step === 1) return localStorage.getItem(`COD FORM - step1(${control})`);\n    if (step === 2) return localStorage.getItem(`COD FORM - step2(${control})`);\n    if (step === 3) return localStorage.getItem(`COD FORM - step3(${control})`);\n    if (step === 4) return localStorage.getItem(`COD FORM - step4(${control})`);\n    if (step === 5) return localStorage.getItem(`COD FORM - step5(${control})`);\n\n    return null;\n  }\n\n  setCodFormData(step: number, control: string, value: string) {\n    if (step === 1) localStorage.setItem(`COD FORM - step1(${control})`, value);\n    if (step === 2) localStorage.setItem(`COD FORM - step2(${control})`, value);\n    if (step === 3) localStorage.setItem(`COD FORM - step3(${control})`, value);\n    if (step === 4) localStorage.setItem(`COD FORM - step4(${control})`, value);\n    if (step === 5) localStorage.setItem(`COD FORM - step5(${control})`, value);\n  }\n\n  clearData() {\n    let keySessionUser = '606a7d4e73650b75ebb06972e77d6cc4';\n    let sessionUser: string | null =  localStorage.getItem(keySessionUser);\n    localStorage.clear();\n\n    if(sessionUser !== null) {\n      localStorage.setItem(keySessionUser, sessionUser);\n    } else {\n      console.log('raro que no haya sesion');\n    }\n  }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport interface Control {\n  name: string;\n  required: boolean;\n  description: string;\n}\n@Injectable({\n  providedIn: 'root'\n})\nexport class CodFormControls {\n\n  public controls: Array<Control[]> = [\n    [\n      { name: 'academic_plan', required: true, description: 'Plan académico' },\n      { name: 'course_type', required: true, description: 'Tipo de curso' },\n      { name: 'agreement_by_category', required: true, description: 'Convenio' },\n      { name: 'english_level', required: true, description: 'Nivel de inglés' },\n      { name: 'availible_courses', required: false, description: 'Cursos disponibles' },\n      { name: 'course_modality', required: false, description: 'Modalidad del curso' },\n    ],\n    [\n      { name: 'student_address', required: true, description: 'Dirección del estudiante' },\n      { name: 'birthdate', required: true, description: 'Fecha de nacimiento del estudiante' },\n      { name: 'country', required: true, description: 'País' },\n      { name: 'state', required: true, description: 'Departamento o estado' },\n      { name: 'city', required: true, description: 'Ciudad de residencia' },\n      { name: 'student_id_card_type', required: true, description: 'Tipo de documento del estudiante' },\n      { name: 'student_id_card', required: true, description: 'Documento del estudiante' },\n      { name: 'student_last_name', required: true, description: 'Apellidos del estudiante' },\n      { name: 'student_name', required: true, description: 'Nombres del estudiante' },\n      { name: 'student_email', required: true, description: 'Correo del estudiante' },\n      { name: 'nickname', required: true, description: 'Alias o nickname' },\n      { name: 'gender', required: true, description: 'Género' },\n      { name: 'age', required: true, description: 'Edad' },\n      { name: 'student_occupation', required: true, description: 'Ocupación del estudiante' },\n      { name: 'stratum', required: true, description: 'Estrato del estudiante' },\n      { name: 'grade', required: true, description: 'Grado del estudiante' },\n      { name: 'civil_status', required: true, description: 'Estado civil del estudiante' },\n      { name: 'student_phone_indicative', required: true, description: 'Indicativo del estudiante' },\n      { name: 'student_phone_number', required: true, description: 'Teléfono del estudiante' },\n      { name: 'password', required: true, description: 'Contraseña del estudiante' },\n      { name: 're_password', required: true, description: 'Confirmación de contraseña' },\n    ],\n    [\n      { name: 'parent_id_card_type', required: true, description: 'Tipo de documento del acudiente' },\n      { name: 'parent_id_card', required: true, description: 'Documento del acudiente' },\n      { name: 'parent_last_name', required: true, description: 'Apellidos del acudiente' },\n      { name: 'parent_name', required: true, description: 'Nombres del acudiente' },\n      { name: 'needAtendant', required: true, description: '¿Requiere acudiente?' },\n      { name: 'parent_phone_indicative', required: true, description: 'Indicativo del acudiente' },\n      { name: 'parent_occupation', required: true, description: 'Ocupación del acudiente' },\n      { name: 'parent_address', required: true, description: 'Dirección del acudiente' },\n      { name: 'parent_phone_number', required: true, description: 'Teléfono del acudiente' }\n    ],\n    [\n      { name: 'payment_date', required: true, description: 'Fecha de pago' },\n      { name: 'program_price', required: true, description: 'Valor total del programa' },\n      { name: 'payment_method', required: true, description: 'Método de pago' },\n      { name: 'quota_times', required: true, description: 'Cantidad de cuotas' },\n      { name: 'total_price', required: true, description: 'Precio total de la matricula' },\n      { name: 'paid_level', required: true, description: 'Niveles pagos' },\n    ],\n    [\n      { name: 'marketing_reasons', required: true, description: '¿Cómo se enteró del programa?' },\n      { name: 'observation', required: false, description: 'Observación' },\n      { name: 'study_reasons', required: true, description: 'Motivo' },\n      { name: 'terms', required: true, description: 'Términos y condiciones' },\n      { name: 'disability', required: false, description: 'Discapacidad' },\n      { name: 'multiculturalism_1', required: false, description: 'Multiculturalismo' },\n      { name: 'multiculturalism_2', required: false, description: 'Multiculturalismo' },\n      { name: 'multiculturalism_3', required: false, description: 'Multiculturalismo' },\n      { name: 'multiculturalism_4', required: false, description: 'Multiculturalismo' },\n      { name: 'multiculturalism_5', required: false, description: 'Multiculturalismo' },\n      { name: 'multiculturalism_6', required: false, description: 'Multiculturalismo' },\n      { name: 'health_regimen', required: true, description: 'Régimen de salud' },\n      { name: 'code_refers', required: true, description: 'Refiere' },\n      { name: 'code_cod', required: false, description: 'Codigo Cod' }\n    ],\n  ];\n\n  private $controls = new BehaviorSubject<Array<Control[]>>([]);\n\n  constructor() {\n    this.$controls.next(this.controls);\n  }\n\n  getControlValues(): Observable<Array<Control[]>> {\n    return this.$controls.asObservable();\n  }\n\n  // Cambiar los valores de los controls, ejemplo: true y false del checkbox\n  changeValue(step: number, controlName: string, newValue: any) {\n    const controls: Array<Control[]> = { ...this.controls };\n    let control = controls[step-1].filter(element => element.name === controlName);\n    control[0].required = newValue;\n\n    this.$controls.next(controls)\n  }\n}\n","import { IgetCoursesFinishAndunassignedRq } from './../../models/reports/reports.model';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GetDiscountCouponsRq } from '../../models/payment/payment-rq.model';\nimport { CreateCODRq, FullDataCODRq, GetCodByCourseRq, IUpdateCODRq, IobtaincodCurrrentAndLevelFullDataRenovationsRq } from '../../models/cod/cod-rq.model';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { AdicInfoByCodeRq, CodPricesRq, IGoalInterfaceRq, ParentByCodeRq, IObtainRefersByUserRq, IAssignPosibleStudentForValueRq, IGetContactsadviserRq, IObtainCodPricesRq, IAssigningAdvisorGoalsRq, IReportCodForAdviserRq, ICreateTicketReferralRq, ICodDetailsbyAdviser, IGetPosibleStudentByDateRq, IGetUserAdviserCommercialByTypeAssingContactsRq, AssingCustomersByTypeAssingContactForAdviserRq,getSummaryByCommercialAdvisorRq } from '../../models/commercial/commercial.model';\nimport { UserTokenRq } from '../../models/user/user-rq.model';\nimport { ISocialNetworksRq } from '../../models/marketing/marketing.model';\nimport { IObtainAllCoursewallet } from '../../models/budget/budget.model';\nimport { IObtainAllReferralsByUserRq } from '../../models/transfer/transfer.model';\n\n\n@Injectable({providedIn: 'root'})\nexport class CommercialService extends IPTGeneralService {\n\n  private SERVICE_URL = 'commercial/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  createCOD(request: CreateCODRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/cod';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getStudentCodHistory(token: string, student_id_card: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/by/student';\n    this.generateRequestParams({token, student_id_card});\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodHistoryAll(userToken: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/all';\n    this.generateRequestParams(userToken);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodHistoryByCourse(request: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/by/course';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodHistoryByCourseExport(request: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/history/by/course/export';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getDiscountCoupons(params: GetDiscountCouponsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/discount/coupon/search';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodPricesByAgreement(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/cod/prices/by/agreement/' + code;\n    this.generateRequestParams(code);\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  getCodParentByCode(params: ParentByCodeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/parent/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAdicInfoByCode(params: AdicInfoByCodeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/aditionalinfo/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getFullDataCodByStudent(params: FullDataCODRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/full/data/cod/by/student';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getFullDataCodByStudentAndCodsBefore(params: FullDataCODRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/full/data/cod/by/student/and/cod/before';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodPricesByAgreementTypePayment(params: CodPricesRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/cod/prices/by/agreement/and/type/payment';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCodByAdvaiser(params: UserTokenRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/by/advaiser';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCodCoursesByAdvisor(params: UserTokenRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/courses/by/advisor';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCodByAdvisorAndCourse(params: GetCodByCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/student/by/course/and/advisor';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  createGoal(params: IGoalInterfaceRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/contact/strategy/create/goal';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl,this.httpOptions);\n    }\n\n  getAllGoals(token: string): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/contact/strategy/view/goals';\n    this.generateRequestParams(token);\n    return this.http.post(serviceUrl,this.httpOptions);\n  }\n\n  createDocument(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/media/document';\n    let formData = new FormData();\n    formData.append('file', params.file);\n    formData.append('user_autor', params.user_autor);\n    formData.append('code_user', params.code_user);\n    formData.append('type_document', params.type_document);\n    formData.append('token', params.token);\n\n    return this.http.post(serviceUrl, formData);\n  }\n\n  getDocumentsByStudent(params:any): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'get/media/document/user';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl,this.httpOptions);\n  }\n\n  obtainCodStudentByCodeAdviser(params: IReportCodForAdviserRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/cod/student/by/adviser';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  ExportFileExcelCodByAdviser(params: IReportCodForAdviserRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/export/excel/cod/student/by/adviser';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  ObtainReferralsByUser(params: IObtainRefersByUserRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/referrals/by/user/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n    getPosibleStudentsAll(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/posible/students/all/models';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  postAssignPosibleStuentForValue(params: IAssignPosibleStudentForValueRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/posible/students/value/assing';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  getContactsByAdviserCommercial(params: IGetContactsadviserRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/contacts/marketing/strategy/assing/by/adviser';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  ObtainCodPrices(params: IObtainCodPricesRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/prices';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  postCreatedSocialNetowrks(params: ISocialNetworksRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/new/register/social/network';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  postAssigningAdvisorGoals(params: IAssigningAdvisorGoalsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/assigning/advisory/goals';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  posObtainAdvisorGoals(params: IObtainAllCoursewallet): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/goals/assigned/to/advisor';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  postObtainOveralGoalAdviso(params: IObtainAllCoursewallet): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/overal/goal/of/advisor';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  postObtaininfoCodActuallyByUser(params: IgetCoursesFinishAndunassignedRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/info/cod/user';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtaingLatesCodByStudentCode (codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/latest/cod/by/student/code/' + codeStudent;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  updateCOD(request: IUpdateCODRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/update/cod';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  obtaincodCurrrentAndLevelFullDataRenovations(request: IobtaincodCurrrentAndLevelFullDataRenovationsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/full/data/current/cod/by/code/student/renovation';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  getdataCurrentCodBySTudentCode(request: IobtaincodCurrrentAndLevelFullDataRenovationsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/data/current/data/cod/by/student';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  updateCodCurrentInObservationsRenovations(request: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/change/cod/status/observations/renovations';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCodPreviusOrPlacementTestBycode(request: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/register/previous/or/placement/test/by/status';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  updateControlStepsCodSelfManaged(request: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/change/step/form/control/cod/self/managed';\n    this.generateRequestParams(request);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  ObtainCodPricesCodSelfManaged(params: IObtainCodPricesRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/self/managed/prices';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  createCodSelfManaged(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/cod/self/managed';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  prizesForDurationOdContest(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL +  'prizes/for/duration/of/contest';\n    return this.http.get(serviceUrl);\n  }\n\n  createTicketReferral(params: ICreateTicketReferralRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'create/contest/registration/by/referrale';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n    obtainStatusAndReferralsByUserCode(params: IObtainRefersByUserRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/status/and/referrals/by/user/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodStudentDetailsByAdviser(params: ICodDetailsbyAdviser): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/cod/student/details/by/adviser';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  gesPosibleStudentAllFourModelsByDate(params: IGetPosibleStudentByDateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/posible/students/all/four/models/by/date';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  gesUserAdviserCommercialByTypeAssingContact(params: IGetUserAdviserCommercialByTypeAssingContactsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/user/commercial/by/type/assing';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  assingCustomersByTypeAssingContactForAdviser(params: AssingCustomersByTypeAssingContactForAdviserRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/Assing/user/posible/student/by/date';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainAdditionalUserDataByCourse(params: IgetCoursesFinishAndunassignedRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/additional/user/data/by/course';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainAllReferralsByUser(params: IObtainAllReferralsByUserRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/all/referrals/by/user/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getSummaryByCommercialAdvisor(params: getSummaryByCommercialAdvisorRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/summary/by/commercial/advisor';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n}\n","import { Observable } from \"rxjs\";\nimport { Control } from \"./cod-form-controls\";\nimport { LocalStorageCODService } from \"./local-storage-cod.service\";\n\nexport interface localStorageValues {\n  control: string,\n  value: any\n}\n\nexport abstract class CodFormSteps {\n\n  public localStorageCOD = new LocalStorageCODService();\n\n  constructor() {}\n\n  readAndWriteLS(step: number, control: string): localStorageValues {\n    if (this.localStorageCOD.getCodFormData(step, control)) {\n      const value = this.localStorageCOD.getCodFormData(step, control);\n      return { control, value };\n    } else {\n      return { control, value: '' }\n    }\n  }\n\n  setDataInLocalStorage(step: number, control: string, value: any) {\n    this.localStorageCOD.setCodFormData(step, control, value);\n  }\n\n  listenFormChanges(step: number, control: string, obs: Observable<any>) {\n    obs.subscribe(value => {\n      this.setDataInLocalStorage(step, control, value);\n    });\n  }\n\n  resetLocalStorage(controls: Control[]) {\n    controls.forEach(control => {\n      localStorage.removeItem(control.name);\n    });\n  }\n\n}\n","const copies: any = {\n  \"es\": {\n    \"modal_template\": {\n      \"inputs\": {\n        \"city\":\"Ingrese su ciudad de residencia\",\n        \"country\":\"Ingresa tu pais de residencia\",\n        \"comments\":\"Ingresa tus comentarios de registro ( Opcional )\",\n        \"date_of_birth\":\"Ingresa tu fecha de nacimiento\",\n        \"email\": \"Correo electronico\",\n        \"id_card\": \"Documento de identidad\",\n        \"last_name\": \"Apellidos\",\n        \"name\": \"Nombres\",\n        \"phone_number\": \"Numero de teléfono\",\n        \"password\": \"Contraseña\",\n        \"re_password\": \"Repetir contraseña\",\n        \"role\": \"Seleccione el rol\",\n        \"service_hour\": \"Horas de servicio\",\n        \"id_card_type\":\"Ingresa tu tipo de documento\",\n        \"phone_indicative\": \"Seleccione su indicativo\",\n        \"state\":\"Seleccione su departamento\",\n        \"file\": \"Seleccionar archivo\",\n        \"contacted_contact\": \"Contactado...\",\n        \"status_contact\": \"Status\",\n        \"plan_contact\": \"Tipo Plan\",\n        \"observations_contact\": \"Observaciones\",\n      },\n      \"validators\": {\n        \"city\":\"Debe ingresar la ciudad de residencia\",\n        \"country\":\"Debes ingresar el pais de residencia\",\n        \"date_of_birth\":\"Debes ingrese la fecha de nacimiento\",\n        \"email\": \"Recuerda usar correos con dominio @inglesparatodos.edu.co\",\n        \"id_card\": \"Debes ingresar el número de documento.\",\n        \"last_name\": \"Debes ingresar los apellidos del usuario.\",\n        \"name\": \"Debes ingresar el nombre del usuario\",\n        \"phone_number\": \"Debes ingresar un número de teléfono valido\",\n        \"password\": \"Debe ser de minimo 7 digitos\",\n        \"re_password\": \"Debe ser de minimo 7 digitos\",\n        \"role\": \"Debe seleccionar un rol\",\n        \"service_hour\": \"Debe ingresar las horas de servicio\",\n        \"id_card_type\":\"Debes ingresar el tipo de documento\",\n        \"phone_indicative\": \"Debes seleccionar un indicativo\",\n        \"state\":\"Seleccione el departamento\",\n        \"id_document\": \"Debe subir un archivo\",\n        \"agreement_document\": \"Debe subir un archivo\",\n        \"parent_id_document\": \"Debe subir un archivo\",\n        \"comfanorte_document\": \"Debe subir un archivo\",\n        \"contacted_contact\": \"Debe seleccionar forma de contactar cliente\",\n        \"status_contact\": \"Debe seleccionar un estaus.\",\n        \"plan_contact\": \"Debe seleccionar un plan\",\n        \"observariones_contact\": \"Debe llenar el campo observaciones\",\n\n      }\n    },\n    \"dashboard_template\": {\n      \"inputs\": {\n        \"agreement_by_category\":\"Convenio por categoria\",\n        \"academic_level\": \"Ingrese el nivel academico ( Pregrado / Posgrado )\",\n        \"academic_plan\": 'Plan',\n        \"address\": \"ingrese su direccion\",\n        \"agreement\": \"ingrese el convenio\",\n        \"availible_courses\":\"Grupos disponibles\",\n        \"birthdate\":\"Ingresa tu fecha de nacimiento\",\n        \"city\":\"Ingrese su ciudad de residencia\",\n        \"classroom\": \"Grupos Disponibles\",\n        \"country\":\"Ingresa tu pais de residencia\",\n        \"course_type\": \"Tipo de plan\",\n        \"degree\": \"Nivel universitario\",\n        \"comments\":\"Ingresa tus comentarios de registro ( Opcional )\",\n        \"email\": \"Correo electronico\",\n        \"email_ufps\": \"ingresa el correo electronico con dominio ufps.edu.co\",\n        \"email_unipamplona\": \"Ingresa el correo con dominio unipamplona.edu.co\",\n        \"financing_value\": \"Valor pagado\",\n        \"financing_date\": \"Fecha de pago\",\n        \"financing_responsable\": \"Recibido por\",\n        \"financing_sales_check\": \"Numero de recibo\",\n        \"financing_invoice_number\":\"Numero de recibo\",\n        \"id_cod\": \"Numero de inscripcion\",\n        \"id_card_type\":\"Ingresa tu tipo de documento\",\n        \"id_card\": \"Documento de identidad\",\n        \"id_financing\": \"Consecutivo\",\n        \"id_payment\": \"Ingrese el número de recibo\",\n        \"last_name\": \"Apellidos\",\n        \"name\": \"Ingrese los nombres\",\n        \"nickname\":\"Nickname\",\n        \"needAtendant\": \"¿Requiere acudiente?\",\n        \"marketing_reasons\": \"¿Cómo se entero del programa?\",\n        \"level\": \"Seleccione el nivel\",\n        \"code_refers\": \"Seleccionar quien lo refeiere\",\n        \"observation\": \"Observaciones\",\n        \"occupation\":\"Ocupacion\",\n        \"password\": \"Contraseña\",\n        \"phone_indicative\": \"Seleccione su indicativo\",\n        \"phone_number\": \"Numero de teléfono\",\n        \"paymentMethod\": \"Seleccione el metodo de pago\",\n        \"payment_date\": \"Ingresa la fecha de pago\",\n        \"program\":\"Ingrese el programa academico\",\n        \"first_quota_price\": \"Ingrese el valor de la primera cuota\",\n        \"quota_times\": \"Ingresar el numero de cuotas\",\n        \"role\": \"Seleccione el rol\",\n        \"re_password\": \"Repetir contraseña\",\n        \"re_total_price\": \"Confirmar el valor total de la matricula\",\n        \"service_hour\": \"Horas de servicio\",\n        \"semester\": \"Semestre actual\",\n        \"school_name\": \"Ingrese el nombre del colegio\",\n        \"school_grade\": \"Grado escolar\",\n        \"state\":\"Seleccione su departamento\",\n        \"study_reasons\":\"Motivo\",\n        \"total_price\": \"Ingrese el monto total de la matricula\",\n        \"ufps_code\": \"Ingrese el codigo UFPS\",\n        \"unipamplona_code\": \"Ingresa tu codigo UniPamplona\",\n        \"type_coupon\":\"Ingrese el tipo de cupon\"\n      },\n      \"validators\": {\n        \"academic_level\": \"Ingrese el nivel academico ( Pregrado / Posgrado )\",\n        \"academic_plan\": 'Plan',\n        \"address\": \"Debes ingresar su direccion\",\n        \"agreement_by_category\":\"Convenio por categoria\",\n        \"availible_courses\":\"Debes seleccionar el grupo\",\n        \"birthdate\":\"Debes ingresar tu fecha de nacimiento\",\n        \"city\":\"Debes ingresar la ciudad de residencia\",\n        \"classroom\": \"Debe seleccionar los grupos disponibles\",\n        \"country\":\"Debes ingresar el pais de residencia\",\n        \"degree\": \"Debe seleccionar el nivel universitario\",\n        \"email\": \"Recuerda usar correos con dominio @inglesparatodos.edu.co\",\n        \"email_ufps\": \"ingresa el correo electronico con dominio ufps.edu.co\",\n        \"email_unipamplona\": \"Ingresa el correo con dominio unipamplona.edu.co\",\n        \"financing_value\": \"Debe ingresar el valor pagado de la cuota\",\n        \"financing_date\": \"Debe ingresar la fecha de realizacion del pago\",\n        \"financing_responsable\": \"Debe ingresar el nombre de quien recibe el pago\",\n        \"financing_sales_check\": \"Debe ingresar el numero de recibo\",\n        \"financing_invoice_number\":\"Debes ingresar el numero de recibo\",\n        \"id_cod\": \"Ingrese el numero de inscripcion\",\n        \"id_card_type\":\"Debes ingresar el tipo de documento\",\n        \"id_card\": \"Debes ingresar el número de documento.\",\n        \"id_payment\": \"Debe ingresar el número de recibo\",\n        \"last_name\": \"Debes ingresar los apellidos del usuario.\",\n        \"name\": \"Debes ingresar el nombre del usuario\",\n        \"nickname\":\"Debes ingresar el nickname\",\n        \"marketing_reasons\": \"¿Cómo se entero del programa?\",\n        \"needAtendant\": \"Debes ingresar si requiere o no acudiente\",\n        \"level\": \"Seleccione el nivel\",\n        \"code_refers\": \"Seleccionar quien lo refeiere\",\n        \"observation\": \"Observaciones\",\n        \"occupation\":\"Debes ingresar la ocupacion\",\n        \"password\": \"Debe ser de minimo 7 digitos\",\n        \"paymentMethod\": \"Seleccione el metodo de pago\",\n        \"payment_date\": \"Debe ingresa la fecha de pago\",\n        \"phone_number\": \"Debes ingresar un número de teléfono valido\",\n        \"phone_indicative\": \"Debes seleccionar un indicativo\",\n        \"first_quota_price\": \"Debe ingresar el valor de la primera cuota\",\n        \"quota_times\": \"Ingrese un número de cuotas válido\",\n        \"program\":\"Debe ingresar el programa academico\",\n        \"role\": \"Debe seleccionar un rol\",\n        \"re_password\": \"Debe ser de minimo 7 digitos\",\n        \"re_total_price\": \"Debe confirmar el valor total de la matricula\",\n        \"semester\": \"Debe ingresar el semestre actual\",\n        \"service_hour\": \"Debe ingresar las horas de servicio\",\n        \"school_name\": \"Debe ingresar el nombre del colegio\",\n        \"school_grade\": \"Debes ingresar el grado actual\",\n        \"state\":\"Seleccione el departamento\",\n        \"study_reasons\":\"Motivo\",\n        \"total_price\": \"Debe ingresar el monto total de la matricula\",\n        \"ufps_code\": \"Debe ingresar el codigo UFPS\",\n        \"unipamplona_code\": \"Debes ingresar tu codigo UniPamplona\"\n      },\n    },\n    \"attendant\": {\n        \"inputs\": {\n          \"address\": \"ingrese su direccion\",\n          \"city\":\"Ingrese su ciudad de residencia\",\n          \"country\":\"Ingresa tu pais de residencia\",\n          \"id_card_type\":\"Ingresa tu tipo de documento\",\n          \"id_card\": \"Documento de identidad\",\n          \"last_name\": \"Apellidos\",\n          \"name\": \"Ingrese los nombres\",\n          \"phone_indicative\": \"Seleccione su indicativo\",\n          \"phone_number\": \"Numero de teléfono\",\n          \"state\":\"Seleccione su departamento\",\n        },\n        \"validators\": {\n          \"address\": \"Debes ingresar su direccion\",\n          \"city\":\"Debes ingresar la ciudad de residencia\",\n          \"country\":\"Debes ingresar el pais de residencia\",\n          \"id_card_type\":\"Debes ingresar el tipo de documento\",\n          \"id_card\": \"Debes ingresar el número de documento.\",\n          \"last_name\": \"Debes ingresar los apellidos del usuario.\",\n          \"name\": \"Debes ingresar el nombre del usuario\",\n          \"phone_number\": \"Debes ingresar un número de teléfono valido\",\n          \"phone_indicative\": \"Debes seleccionar un indicativo\",\n          \"state\":\"Seleccione el departamento\",\n        }\n    },\n    \"menu\": {\n      \"field1\": \"Home\",\n      \"field2\": \"Groups\",\n      \"field3\": \"Profile\",\n      \"field5\": \"Score\",\n      \"field4\": \"Search\",\n      \"endField\": \"Cerrar Sesión\"\n    },\n    \"edit_profile\": {\n      \"inputs\": {\n        \"id_card\": \"Documento de identidad\",\n        \"ufps_code\": \"Código de la universidad\",\n        \"email\": \"Correo dominio @ufps.edu.co\",\n        \"last_name\": \"Ingresa tus apellidos\",\n        \"name\": \"Ingresa tus nombres\",\n        \"phone\": \"Numero de teléfono\",\n      },\n  },\n  \"en\": {}\n  }\n}\n\nexport function getCopies(): any {\n  return copies;\n}\n","import { Injectable } from '@angular/core';\nimport { getCopies } from '../utils/copies';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CopiesService {\n\n  constructor() { }\n\n  public copies: any = getCopies();\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { CreateCourseRq, EditCourseRq, GetAvailibleCoursesRq, GetCourseByCodeRq, GetCoursesByTeacherRq, GetCoursesRq, IChangeCourseStudentNotStartedRq, IUpdateCourseEventByCodeRq,ICourse,GetCoursesFilterRq,CreateCourseEventRq,IUpdateCourseEventByCodeNewRq, DeleteCourseEventRq, GetEventEditDataRq, GetCourseScheduleRq,GetLastEventByCourseCodeRq,GetCourseAssignedByCourseCodeRq } from '../../models/course/course-rq.model';\nimport { CourseStartDateRq } from '../../models/cronogram/cronogram.models';\nimport { ICourseChangeAuditRq } from '../../models/course/courses.model';\nimport { ITransferGetAllRq } from '../../models/payment/payment-rq.model';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CourseService extends IPTGeneralService{\n  private SERVICE_URL = 'academic/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  createCourse(course: CreateCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course';\n    this.generateRequestParams(course);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  editCourse(course: EditCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'put/course';\n    this.generateRequestParams(course);\n    return this.http.put(serviceUrl, this.httpOptions);\n  }\n\n  getAllCourses(params: GetCoursesRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/all/courses';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCoursesByLevel(params: GetCoursesRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/by/level';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAvailibleCourses( availibleCourses: GetAvailibleCoursesRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/for/cod';\n    this.generateRequestParams(availibleCourses);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCourseByCode(params: GetCourseByCodeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCourseByCodeAllData(params: GetCourseByCodeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/by/code/all/data';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCoursesByTeacher(params: GetCoursesByTeacherRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/by/teacher';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getFilteredCoursesByTeacher(params: GetCoursesByTeacherRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/filtered/by/teacher';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCoursesByStartDate(params: CourseStartDateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/by/startdate';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  numberClassByCode(idCode: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/coursetype/numclass/by/code/' + idCode;\n    return this.http.get(serviceUrl);\n  }\n\n  getAvailableCoursesByLevAgreeCType( availibleCourses: GetAvailibleCoursesRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/available/courses/by/lev/agree/coursetype';\n    this.generateRequestParams(availibleCourses);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  ChangeCourseStudentWhoHasNotStarted( params: IChangeCourseStudentNotStartedRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'change/course/student/who/has/not/started';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateCourseEventByCode( params: IUpdateCourseEventByCodeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'update/course/event/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  UpdateCourseTeacherByCode( params: ICourse): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/update/course/teacher/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  UpdateCourseCapacityByCode( params: ICourse): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + '/post/update/course/capacity/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCourseTheoryAndClubAllData( params: GetCourseByCodeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/theory/and/club/all/data';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCourses(params: GetCoursesFilterRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/courses';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCoursesByState(params: GetCoursesFilterRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/courses/by/state';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  createCourseEvent(params: CreateCourseEventRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'create/course/event';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateCourseEventByCodeTwo(params: IUpdateCourseEventByCodeNewRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'update/course/event/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  deleteCourseEvent(params: DeleteCourseEventRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'delete/course/event';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getEventEditData(params: GetEventEditDataRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'get/event/edit/data';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCourseSchedule(params: GetCourseScheduleRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'get/course/schedule';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCourseAssignedByCourseCode(params: GetCourseAssignedByCourseCodeRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'course/assigned/by/course/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getLastEventByCourseCode(params: GetLastEventByCourseCodeRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'last/event/by/course/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCourseChangeAuditByStudent(params: ICourseChangeAuditRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'audit/query/of/changes/by/user';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getRecordOfAuditedCoursesByDate(params: ITransferGetAllRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'record/of/audited/courses/by/date';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  confirmationOfStudentCourseChange(params: any): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'confirmation/of/student/course/change';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class CommunicatorService {\n  private $courseType = new BehaviorSubject<string>('');\n  private $agreement = new BehaviorSubject<string>('');\n\n  constructor() { }\n\n  getSelectedCourseType(): Observable<string> {\n    return this.$courseType.asObservable();\n  }\n\n  setCurrentCourseType(value: string) {\n    this.$courseType.next(value);\n  }\n\n  getSelectedAgreement(): Observable<string> {\n    return this.$agreement.asObservable();\n  }\n\n  setCurrentAgreement(value: string) {\n    this.$agreement.next(value);\n  }\n\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, SimpleChanges, OnChanges, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { GetAvailibleCoursesRq } from '../../../core/models/course/course-rq.model';\nimport { CopiesService } from '../../../core/services/copies.service';\nimport { CourseService } from '../../../core/services/course-service/course-service.model';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { CommunicatorService } from '../../logic/communicator.service';\nimport { IAgreementRs, ICourseTypeRs, IParametersAllRs } from '../../../core/models/parameters/parameters-rs.model';\nimport { finalize } from 'rxjs';\n\n@Component({\n  selector: 'app-cod-form-step-one',\n  templateUrl: './cod-form-step-one.component.html',\n  styleUrls: ['./cod-form-step-one.component.css'],\n})\nexport class CodFormStepOneComponent extends CodFormSteps implements OnChanges {\n\n  @Input() initialData?: any;\n  @Input() dataPreviusCodData?: any;\n  @Input() isEditCod?: boolean;\n  @Input() courseSelectRenovation?:any;\n  @Input() isRenovation?:any;\n  @Input() parametersAll?: IParametersAllRs;\n  @Output() changeStepEvent = new EventEmitter<number>();\n\n  copies: any;\n  codFormStepOne!: FormGroup;\n  hasAvailableCourse!: boolean;\n  isLoading: boolean = false;\n  // Parameters\n  agreements: IAgreementRs[]=[];\n  availibleCourses: any[] = [];\n  course_type: ICourseTypeRs[]=[];\n  levels: any;\n  plans: any;\n  isDisabledSel:boolean=false\n  // Controls del formulario\n  controls = new CodFormControls().controls[0];\n\n  constructor(\n    private fb: FormBuilder,\n    private copiesService: CopiesService,\n    private baseService: BaseService,\n    private courseService: CourseService,\n    private communicatorService: CommunicatorService,\n    private cdRef: ChangeDetectorRef\n  ) {\n    super();\n    this.copies = this.copiesService.copies;\n  }\n\n  /* Es necesario recorrer el array de controls de nuestro formulario para:\n    ✅ Leer el Local Storage y setear los valores\n    ✅ Subscribirse a los cambios del formulario para setear valores nuevos\n\n    Nota: la clase CodFormSteps() se encarga de toda la lógica de LS con los pasos del formulario del COD\n  */\n\n  ngOnChanges(changes: SimpleChanges): void {\n\n    this.initForm();\n    this.getParameters();\n    this.startLocalStorageWork();\n    this.setValuesByLocalStorage()\n    this.codFormStepOne.controls['course_type'].valueChanges\n    .subscribe(value => this.communicatorService.setCurrentCourseType(value));\n\n    this.communicatorService.setCurrentAgreement(this.localStorageCOD.getCodFormData(1, 'agreement_by_category')!);\n\n        // Lógica principal de cambios\n        if (changes['initialData'] || changes['dataPreviusCodData']) {\n          this.handleDataChanges(changes);\n      }\n  \n      this.cdRef.detectChanges(); \n      // const shouldProcessInitialData = changes['initialData'] && \n      //                           this.initialData != null && \n      //                           this.dataPreviusCodData === null;\n\n      // const shouldProcessPreviusData = this.dataPreviusCodData != null && \n      //                               this.isEditCod === false && \n      //                               this.isRenovation === false;\n\n      // if (shouldProcessInitialData || shouldProcessPreviusData) {\n      //   this.processData(this.initialData);\n      //   this.cdRef.detectChanges();\n      //   console.log(\"Entro en this.processData con initialData\");\n      // } else {\n      //   // Manejo más controlado del \"else\"\n      //     console.log(\"entre en el else que borra todo en null\");\n      //     this.codFormStepOne.controls['academic_plan'].setValue(null);\n      //     this.codFormStepOne.controls['course_type'].setValue(null);\n      //     this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n      //     this.codFormStepOne.controls['english_level'].setValue(null);\n      //     this.codFormStepOne.controls['availible_courses'].setValue(null);\n      //     this.codFormStepOne.controls['course_modality'].setValue(null);\n      // }\n    // if (changes['initialData'] && this.initialData != null && this.dataPreviusCodData === null || this.dataPreviusCodData != null  && this.isEditCod === false && this.isRenovation === false) {\n    //   this.processData(this.initialData);\n    //   console.log(\"Entro en this.processData con initialData\");\n    //   this.cdRef.detectChanges();\n    // }else{\n    //   this.codFormStepOne.controls['academic_plan'].setValue(null);\n    //   this.codFormStepOne.controls['course_type'].setValue(null);\n    //   this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n    //   this.codFormStepOne.controls['english_level'].setValue(null);\n    //   this.codFormStepOne.controls['availible_courses'].setValue(null);\n    //   this.codFormStepOne.controls['course_modality'].setValue(null);\n    // }\n\n    // if (changes['dataPreviusCodData'] && this.dataPreviusCodData != null  && this.isEditCod && this.isRenovation === false ) {\n    //   this.processData(this.dataPreviusCodData);\n    //   console.log(\"Entro en this.processData con dataPreviusCodData\");\n    //   if (this.isEditCod && !this.dataPreviusCodData.edit_course_payment) {\n    //     this.isDisabledSel = true;\n    //   } else {\n    //     this.isDisabledSel = false;\n    //   }\n\n    //   this.cdRef.detectChanges();\n    // }else if(changes['dataPreviusCodData'] && this.dataPreviusCodData != null && !this.isEditCod && this.courseSelectRenovation && this.isRenovation === true ){\n    //   this.setDataCodRenovationSelect();\n    //   this.isDisabledSel= true\n    //   this.cdRef.detectChanges();\n    //   }\n\n  }\n\n  private handleDataChanges(changes: SimpleChanges): void {\n    // Caso 1: Hay initialData y NO hay dataPreviusCodData\n    if (changes['initialData']?.currentValue && !this.isRenovation && !this.isEditCod) {\n        this.processData(this.initialData);\n        return;\n    }\n\n    // Caso 2: Hay dataPreviusCodData\n    if (changes['dataPreviusCodData']?.currentValue) {\n        // Subcaso 2.1: Es edición\n        if (this.isEditCod && !this.isRenovation) {\n            this.processData(this.dataPreviusCodData);\n            this.isDisabledSel = !this.dataPreviusCodData.edit_course_payment;\n            return;\n        }\n        // Subcaso 2.2: Es renovación\n        if (!this.isEditCod && this.isRenovation && this.courseSelectRenovation) {\n          this.setDataCodRenovationSelect();\n          this.isDisabledSel = true;\n          return;\n        }\n\n        // Subcaso 2.2: viene con initialData\n        if (this.initialData && !this.isEditCod && !this.isRenovation) {\n          this.processData(this.initialData);\n          this.isDisabledSel = false;\n          return;\n        }\n    }\n\n    // Caso 3: Ninguna condición anterior se cumplió (reset controlado)\n    this.resetForm();\n}\n\n  private processData(data: any) {\n    const { codFormStepOne } = this;\n    this.getAgreementByPlan(data.course_type?.academic_plan.code);\n    this.getCourseType(data.course_type?.academic_plan.code);\n    codFormStepOne.controls['english_level'].setValue(data.english_level?.code);\n    codFormStepOne.controls['agreement_by_category'].setValue(data.agreement?.code);\n    codFormStepOne.controls['course_type'].setValue(data.course_type?.code);\n    codFormStepOne.controls['academic_plan'].setValue(data.course_type?.academic_plan.code);\n    this.getAvailibleCourses();\n\n    if (this.isEditCod) {\n      this.setDataFromEditCodHistory();\n    } else if (!this.isEditCod && this.initialData != null) {\n      this.setDataFromUserHistory();\n    }\n  }\n\n  setDataFromUserHistory(){\n    this.codFormStepOne.controls['academic_plan'].setValue(this.initialData.course_type.academic_plan.code);\n    this.codFormStepOne.controls['course_type'].setValue(this.initialData.course_type.code);\n    this.codFormStepOne.controls['agreement_by_category'].setValue(this.initialData.agreement.code);\n    this.codFormStepOne.controls['english_level'].setValue(this.initialData.english_level.code);\n    this.codFormStepOne.controls['availible_courses'].setValue(this.initialData.code);\n    this.codFormStepOne.controls['course_modality'].setValue(this.initialData.course_modality.code);\n  }\n\n  setDataFromEditCodHistory(){\n\n    this.codFormStepOne.controls['academic_plan'].setValue(this.dataPreviusCodData.course_type.academic_plan.code ? this.dataPreviusCodData.course_type.academic_plan.code : null);\n    this.codFormStepOne.controls['course_type'].setValue(this.dataPreviusCodData.course_type.code ? this.dataPreviusCodData.course_type.code : null);\n    this.codFormStepOne.controls['agreement_by_category'].setValue(this.dataPreviusCodData.agreement.code ? this.dataPreviusCodData.agreement.code : null);\n    this.codFormStepOne.controls['english_level'].setValue(this.dataPreviusCodData.english_level.code ? this.dataPreviusCodData.english_level.code : null);\n    this.codFormStepOne.controls['availible_courses'].setValue(this.dataPreviusCodData.course.code ? this.dataPreviusCodData.course.code : null);\n    this.codFormStepOne.controls['course_modality'].setValue(this.dataPreviusCodData.course.course_modality ? this.dataPreviusCodData.course.course_modality : null);\n  }\n  setDataCodRenovationSelect(){\n    this.getAgreementByPlan(this.courseSelectRenovation.course_type?.academic_plan.code);\n    this.getCourseType(this.courseSelectRenovation.course_type?.academic_plan.code);\n    this.codFormStepOne.controls['academic_plan'].setValue(this.courseSelectRenovation.course_type?.academic_plan.code ? this.courseSelectRenovation.course_type?.academic_plan.code : null);\n    this.codFormStepOne.controls['course_type'].setValue(this.courseSelectRenovation.course_type?.code ? this.courseSelectRenovation.course_type?.code : null);\n    this.codFormStepOne.controls['agreement_by_category'].setValue(this.courseSelectRenovation.agreement?.code ? this.courseSelectRenovation.agreement?.code : null);\n    this.codFormStepOne.controls['english_level'].setValue(this.courseSelectRenovation.english_level?.code ? this.courseSelectRenovation.english_level?.code : null);\n    this.codFormStepOne.controls['availible_courses'].setValue(this.courseSelectRenovation?.code ? this.courseSelectRenovation?.code : null);\n    this.codFormStepOne.controls['course_modality'].setValue(this.courseSelectRenovation.course_modality?.code ? this.courseSelectRenovation.course_modality?.code : null);\n    this.getAvailibleCourses();\n  }\n\n  startLocalStorageWork() {\n    this.controls.forEach(control => {\n      let localStorageValue: localStorageValues = this.readAndWriteLS(1, control.name);\n      this.codFormStepOne.controls[control.name].setValue(localStorageValue.value);\n      this.listenFormChanges(1, control.name, this.codFormStepOne.controls[control.name].valueChanges);\n    });\n  }\n\n\n  getParameters() {\n    this.plans = this.parametersAll?.academicPlan;\n    this.levels = this.parametersAll?.english_levels;\n  }\n\n  initForm() {\n    this.codFormStepOne = this.fb.group({\n      academic_plan: ['', [Validators.required]],\n      course_type: ['', [Validators.required]],\n      agreement_by_category: ['', [Validators.required]],\n      english_level: ['', [Validators.required]],\n      availible_courses: ['', []],\n      course_modality: [''],\n\n    });\n  }\n\n  setValuesByLocalStorage() {\n    const academicPlan = this.codFormStepOne.controls['academic_plan'].value;\n    if (academicPlan) {\n      this.selectAcademicPlan(academicPlan);\n    }\n  \n    const agreementByCategory = parseInt(this.codFormStepOne.controls['agreement_by_category'].value);\n    const englishLevel = parseInt(this.codFormStepOne.controls['english_level'].value);\n    const courseModality = parseInt(this.codFormStepOne.controls['course_modality'].value);\n  \n    if (agreementByCategory && englishLevel && courseModality) {\n      this.getAvailibleCourses();\n    }\n  }\n\n  sendForm() {\n    this.codFormStepOne.markAsTouched();\n    if (this.codFormStepOne.invalid) return;\n\n    // Movernos al paso 2\n    this.changeStepEvent.emit(1);\n  }\n\n  resetForm() {\n    // this.resetLocalStorage(this.controls);\n    // this.codFormStepOne.reset();\n    this.codFormStepOne.controls['academic_plan'].setValue(null);\n    this.codFormStepOne.controls['course_type'].setValue(null);\n    this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n    this.codFormStepOne.controls['english_level'].setValue(null);\n    this.codFormStepOne.controls['availible_courses'].setValue(null);\n    this.codFormStepOne.controls['course_modality'].setValue(null);\n  }\n\n  // Eventos de los selects\n  selectAcademicPlan(academic_plan: string) {\n    if (academic_plan !== 'Plan') {\n      this.codFormStepOne.controls['academic_plan'].setValue(parseInt(academic_plan));\n      // this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n      // this.codFormStepOne.controls['school_name'].setValue(null);\n      // this.codFormStepOne.controls['course_type'].setValue(null);\n      this.getCourseType(parseInt(academic_plan));\n      this.getAgreementByPlan(parseInt(academic_plan));\n    } else {\n      this.codFormStepOne.controls['academic_plan'].setValue(null);\n      this.codFormStepOne.controls['course_type'].setValue(null);\n      this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n    }\n  }\n\n  getCourseType(plan: number) {\n    const planNumber = typeof plan === 'string' ? parseInt(plan) : plan;\n    if (this.parametersAll && this.parametersAll?.courseType) {\n      this.course_type = this.parametersAll.courseType.filter((course) => {\n        return course.academic_plan === planNumber;\n      });\n    } else {\n      this.course_type = [];\n    }\n  }\n\n  getAgreementByPlan(plan: number) {\n    const planNumber = typeof plan === 'string' ? parseInt(plan) : plan;\n    if (this.parametersAll && this.parametersAll?.agreement) {\n      this.agreements = this.parametersAll.agreement.filter((agreement) => {\n        return agreement.category === planNumber;\n      });\n    } else {\n      this.agreements = [];\n    }\n  }\n\n  selectCoursesTypesByPlan(coursesTypes: any) {\n    if (coursesTypes !== 'Tipo de plan') {\n      this.codFormStepOne.controls['course_modality'].setValue(null);\n      this.codFormStepOne.controls['availible_courses'].setValue(null);\n      this.codFormStepOne.controls['course_type'].setValue(coursesTypes);\n      this.getAvailibleCourses();\n    } else {\n      this.codFormStepOne.controls['course_type'].setValue(null);\n    }\n  }\n\n  selectAgreementByCategory(agreementByCategories: any) {\n    if (agreementByCategories !== 'Convenio por categoria') {\n      // this.codFormStepOne.controls['course_modality'].setValue(null);\n      this.codFormStepOne.controls['agreement_by_category'].setValue(agreementByCategories);\n      this.communicatorService.setCurrentAgreement(agreementByCategories);\n      // this.getAvailibleCourses();\n    } else {\n      this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n      this.codFormStepOne.controls['school_name'].setValue(null);\n    }\n  }\n\n  selectLevel(levels: any) {\n    if (levels !== 'Nivel de inglés') {\n      this.codFormStepOne.controls['course_modality'].setValue(null);\n      this.codFormStepOne.controls['availible_courses'].setValue(null);\n      this.codFormStepOne.controls['english_level'].setValue(levels);\n      this.getAvailibleCourses();\n    } else {\n      this.codFormStepOne.controls['english_level'].setValue(null);\n    }\n  }\n\n  selectAvailibleCourses(availibleCourses: any) {\n    if (availibleCourses !== 'Grupos disponibles') {\n      let courseMod = this.availibleCourses.find(objeto => objeto.code === parseInt(availibleCourses, 10));\n      this.codFormStepOne.controls['course_modality'].setValue(courseMod.modality);\n      this.codFormStepOne.controls['availible_courses'].setValue(availibleCourses);\n    } else {\n      this.codFormStepOne.controls['availible_courses'].setValue(null);\n      this.codFormStepOne.controls['agreement_by_category'].setValue(null);\n      this.codFormStepOne.controls['course_type'].setValue(null);\n      this.codFormStepOne.controls['english_level'].setValue(null);\n    }\n  }\n\n  private validRequest(): boolean {\n    const form = this.codFormStepOne;\n    return !!(\n      form.get('english_level')?.value &&\n      form.get('agreement_by_category')?.value &&\n      form.get('course_type')?.value\n    );\n  }\n\n  // getAvailibleCourses() {\n\n  //   if (this.validRequest()) {\n  //     this.isLoading = true;\n  //     let request_availibleCourses: GetAvailibleCoursesRq = {\n  //       token: this.baseService.getUserToken(),\n  //       english_level: this.codFormStepOne.controls['english_level'].value,\n  //       agreement: this.codFormStepOne.controls['agreement_by_category'].value,\n  //       course_type: this.codFormStepOne.controls['course_type'].value,\n  //     };\n\n  //     this.courseService.getAvailableCoursesByLevAgreeCType(request_availibleCourses).subscribe((response) => {\n  //       if (response.data) {\n  //         this.availibleCourses = [];\n  //         let courses: any[] = response.data;\n  //         this.hasAvailableCourse = true;\n  //         courses.forEach(course => {\n  //           let scheduleParts = course.course_schedule[0].split(\" \");\n  //           let startTime = scheduleParts[2];\n  //           this.availibleCourses.push({\n  //             code: course.code,\n  //             name: `${course.code} Curso ${course.course_modality.name === 'Presencial' ? 'Presencial' : 'Virtual'} - Teacher ${course.teacher} -  Fecha de inicio: ${course.to_start}, Hora de inicio: ${startTime}, Cupos disp: ${course.available_capacity}`,\n  //             modality: course.course_modality.code\n  //           });\n  //         })\n  //         this.isLoading = false;\n  //         console.log(\"availibleCourses\",this.availibleCourses);\n  //         console.log(\"Valores del formulario:\", {\n  //           academic_plan: this.codFormStepOne.controls['academic_plan'].value,\n  //           course_type: this.codFormStepOne.controls['course_type'].value,\n  //           agreement_by_category: this.codFormStepOne.controls['agreement_by_category'].value,\n  //           english_level: this.codFormStepOne.controls['english_level'].value,\n  //           availible_courses: this.codFormStepOne.controls['availible_courses'].value,\n  //           course_modality: this.codFormStepOne.controls['course_modality'].value,\n  //           agreement: this.codFormStepOne.controls['agreement'].value,\n  //         });\n  //       } else {  \n  //         this.hasAvailableCourse = false;\n  //         this.codFormStepOne.controls['availible_courses'].setValue(\"\");\n  //         this.setValueStepFour();\n  //         this.isLoading = false;\n  //       }\n  //       });\n  //   }\n  // }\n\n  getAvailibleCourses() {\n    if (this.isLoading) return;\n    if (this.validRequest()) {\n      this.isLoading = true;\n      \n      // Guarda los valores actuales antes de la llamada\n      const currentValues = {\n        academic_plan: this.codFormStepOne.get('academic_plan')?.value,\n        course_type: this.codFormStepOne.get('course_type')?.value,\n        agreement_by_category: this.codFormStepOne.get('agreement_by_category')?.value,\n        english_level: this.codFormStepOne.get('english_level')?.value\n      };\n      let request_availibleCourses: GetAvailibleCoursesRq = {\n        token: this.baseService.getUserToken(),\n        english_level: currentValues.english_level,\n        agreement: currentValues.agreement_by_category,\n        course_type: currentValues.course_type,\n      };\n\n      this.courseService.getAvailableCoursesByLevAgreeCType(request_availibleCourses)\n        .pipe(\n          finalize(() => {\n            this.isLoading = false\n            this.cdRef.detectChanges();\n          }) \n        )\n        .subscribe({\n          next: (response) => {\n            if (response.data) {\n              this.availibleCourses = response.data.map((course:any) => {\n                let scheduleParts = course.course_schedule[0]?.split(\" \") || [];\n                let startTime = scheduleParts[2] || '';\n                return {\n                  code: course.code,\n                  name: `${course.code} Curso ${course.course_modality?.name === 'Presencial' ? 'Presencial' : 'Virtual'} - Teacher ${course.teacher} - Fecha de inicio: ${course.to_start}, Hora de inicio: ${startTime}, Cupos disp: ${course.available_capacity}`,\n                  modality: course.course_modality?.code\n                };\n              });\n              this.hasAvailableCourse = true;\n            } else {  \n              this.hasAvailableCourse = false;\n              this.codFormStepOne.get('availible_courses')?.setValue(null);\n              this.setValueStepFour();\n            }\n          },\n          error: (err) => {\n            this.hasAvailableCourse = false;\n            this.cdRef.detectChanges();\n          }\n        });\n    }\n  }\n\n  setValueStepFour(){\n    this.setDataInLocalStorage(4, 'program_price', null);\n    this.setDataInLocalStorage(4, 'quota_times', null);\n    this.setDataInLocalStorage(4, 'total_price', null);\n  }\n}\n","<form [formGroup]=\"codFormStepOne\" class=\"grid\">\n  <div class=\"col\">\n    <ipt-select\n      [initialValue]=\"codFormStepOne.controls['academic_plan'].value\"\n      [selectCode]=\"codFormStepOne.controls['academic_plan'].value === null? 'Plan': codFormStepOne.controls['academic_plan'].value\"\n      [defaultText]=\"'Plan'\"\n      [isRequired]=\"true\"\n      (eventSelect)=\"selectAcademicPlan($event)\"\n      [data]=\"plans\"\n      [control]=\"codFormStepOne.controls['academic_plan']\"\n      [disabledSel]=\"isDisabledSel\"\n    ></ipt-select>\n    <ipt-select\n      [initialValue]=\"codFormStepOne.controls['course_type'].value\"\n      [selectCode]=\"codFormStepOne.controls['course_type'].value === null? 'Tipo de plan': codFormStepOne.controls['course_type'].value\"\n      [defaultText]=\"'Tipo de plan'\"\n      [isRequired]=\"true\"\n      (eventSelect)=\"selectCoursesTypesByPlan($event)\"\n      [data]=\"course_type\"\n      [control]=\"codFormStepOne.controls['course_type']\"\n      [disabledSel]=\"isDisabledSel\"\n    ></ipt-select>\n  </div>\n  <div class=\"col\">\n    <ipt-select\n      [initialValue]=\"codFormStepOne.controls['agreement_by_category'].value\"\n      [selectCode]=\"codFormStepOne.controls['agreement_by_category'].value === null? 'Convenio por categoria': codFormStepOne.controls['agreement_by_category'].value\"\n      [defaultText]=\"'Convenio por categoria'\"\n      [isRequired]=\"true\"\n      (eventSelect)=\"selectAgreementByCategory($event)\"\n      [data]=\"agreements\"\n      [control]=\"codFormStepOne.controls['agreement_by_category']\"\n      [disabledSel]=\"isDisabledSel\"\n    ></ipt-select>\n    <ipt-select\n      [initialValue]=\"codFormStepOne.controls['english_level'].value\"\n      [selectCode]=\"codFormStepOne.controls['english_level'].value === null? 'Nivel de inglés': codFormStepOne.controls['english_level'].value\"\n      [defaultText]=\"'Nivel de inglés'\"\n      [isRequired]=\"true\"\n      (eventSelect)=\"selectLevel($event)\"\n      [data]=\"levels\"\n      [control]=\"codFormStepOne.controls['english_level']\"\n      [disabledSel]=\"isDisabledSel\"\n    ></ipt-select>\n  </div>\n  <div class=\"col-12\">\n    <ipt-select\n      [initialValue]=\"codFormStepOne.controls['availible_courses'].value\"\n      [selectCode]=\"codFormStepOne.controls['availible_courses'].value === null? 'Grupos disponibles': codFormStepOne.controls['availible_courses'].value\"\n      [defaultText]=\"'Grupos disponibles'\"\n      [isRequired]=\"true\"\n      (eventSelect)=\"selectAvailibleCourses($event)\"\n      [data]=\"availibleCourses\"\n      [control]=\"codFormStepOne.controls['availible_courses']\"\n      [disabledSel]=\"isDisabledSel\"\n    ></ipt-select>\n    <ipt-loader *ngIf=\"isLoading\" class=\"w-1\">\n    </ipt-loader>\n  </div>\n  <span *ngIf=\"!hasAvailableCourse\" class=\"mt-1 pl-2 text-red-500\">Todavía no hay cursos con estas características.</span>\n</form>\n\n<div class=\"flex mt-2 align-items-center gap-3\">\n  <span *ngIf=\"codFormStepOne.invalid && codFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">Faltan campos por llenar.</span>\n  <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { IParametersAllRs } from '../../../core/models/parameters/parameters-rs.model';\n\n@Component({\n  selector: 'app-cod-form-step-two',\n  templateUrl: './cod-form-step-two.component.html',\n  styleUrls: ['./cod-form-step-two.component.css']\n})\nexport class CodFormStepTwoComponent extends CodFormSteps implements OnChanges {\n  @Input() initialData?: any;\n  @Input() isEditCod?: boolean;\n  @Input() parametersAll?:IParametersAllRs;\n  @Output() changeStepEvent = new EventEmitter<number>();\n\n  codFormStepTwo!: FormGroup;\n  countrySelected: any;\n  countries: any;\n  states: any;\n  cities: any;\n  errorMessage: string = 'Faltan campos por llenar.';\n  hasErrors: boolean = false;\n  idTypes: any;\n  indicatives: any;\n  civilStatus: any;\n  genders: any[]=[];\n  stratums: any;\n\n  // Controls del formulario\n  controls = new CodFormControls().controls[1];\n  dataCountry: any;\n\n  constructor(\n    private fb: FormBuilder,\n  ) {\n    super();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.initForm();\n    this.startLocalStorageWork();\n    this.validateErrors();\n    this.getParameters();\n    if (changes['initialData']) {\n      if (this.initialData != null) {\n        if (this.initialData.student != null) {\n          this.setDataFromPreviusCod();\n        }else{\n          this.setDataFromUserHistory();\n        }\n      }\n    }\n  }\n\n  setDataFromUserHistory(){\n    this.codFormStepTwo.controls['student_name'].setValue(this.initialData.name);\n    this.codFormStepTwo.controls['student_last_name'].setValue(this.initialData.last_name);\n    this.codFormStepTwo.controls['student_id_card_type'].setValue(this.initialData.id_card_type);\n    this.codFormStepTwo.controls['student_id_card'].setValue(this.initialData.id_card);\n    this.codFormStepTwo.controls['country'].setValue(this.initialData.city[0]?.country);\n    this.codFormStepTwo.controls['state'].setValue(this.initialData.city[0]?.state);\n    this.codFormStepTwo.controls['city'].setValue(this.initialData.city[0]?.code);\n    this.codFormStepTwo.controls['gender'].setValue(this.initialData.gender);\n    this.codFormStepTwo.controls['nickname'].setValue(this.initialData.nick_name);\n    this.codFormStepTwo.controls['student_phone_indicative'].setValue(this.initialData.phone_indicative);\n    this.codFormStepTwo.controls['student_phone_number'].setValue(this.initialData.phone_number);\n    this.codFormStepTwo.controls['birthdate'].setValue(this.initialData.birthdate);\n    this.codFormStepTwo.controls['student_email'].setValue(this.initialData.email);\n    this.codFormStepTwo.controls['password'].setValue(this.initialData.id_card);\n    this.codFormStepTwo.controls['re_password'].setValue(this.initialData.id_card);\n  }\n\n  setDataFromPreviusCod() {\n    this.codFormStepTwo.controls['student_name'].setValue(this.initialData.student.name);\n    this.codFormStepTwo.controls['student_last_name'].setValue(this.initialData.student.last_name);\n    this.codFormStepTwo.controls['student_id_card_type'].setValue(this.initialData.student.id_card_type);\n    this.codFormStepTwo.controls['student_id_card'].setValue(this.initialData.student.id_card);\n    this.codFormStepTwo.controls['country'].setValue(this.initialData.student.city[0].country);\n    this.codFormStepTwo.controls['state'].setValue(this.initialData.student.city[0].state);\n    this.codFormStepTwo.controls['city'].setValue(this.initialData.student.city[0].code);\n    this.codFormStepTwo.controls['student_address'].setValue(this.initialData.aditional_information.student_address);\n    this.codFormStepTwo.controls['gender'].setValue(this.initialData.student.gender);\n    this.codFormStepTwo.controls['nickname'].setValue(this.initialData.student.nick_name);\n    this.codFormStepTwo.controls['stratum'].setValue(this.initialData.aditional_information.social_stratum);\n    this.codFormStepTwo.controls['student_occupation'].setValue(this.initialData.aditional_information.student_occupation);\n    this.codFormStepTwo.controls['grade'].setValue(this.initialData.aditional_information.educational_level);\n    this.codFormStepTwo.controls['civil_status'].setValue(this.initialData.aditional_information.civil_status);\n    this.codFormStepTwo.controls['student_phone_indicative'].setValue(this.initialData.student.phone_indicative);\n    this.codFormStepTwo.controls['student_phone_number'].setValue(this.initialData.student.phone_number);\n    this.codFormStepTwo.controls['birthdate'].setValue(this.initialData.student.birthdate);\n    this.codFormStepTwo.controls['student_email'].setValue(this.initialData.student.email);\n    this.codFormStepTwo.controls['password'].setValue(this.initialData.student.id_card);\n    this.codFormStepTwo.controls['re_password'].setValue(this.initialData.student.id_card);\n  }\n\n  cleanComponent(){\n    this.resetLocalStorage(this.controls);\n    this.codFormStepTwo.reset();\n  }\n\n  validateErrors() {\n    this.codFormStepTwo.valueChanges.subscribe(changes => {\n      if (this.codFormStepTwo.controls['student_name'].hasError('minlength')) {\n        this.errorMessage = 'Los nombres deben tener mínimo 3 caracteres';\n      } else if (this.codFormStepTwo.controls['student_last_name'].hasError('minlength')) {\n        this.errorMessage = 'Los apellidos deben tener mínimo 5 caracteres';\n      } else if (this.codFormStepTwo.controls['password'].hasError('minlength')) {\n        this.errorMessage = 'La contraseña debe tener mínimo 6 caracteres';\n      } else if (this.codFormStepTwo.controls['password'].value !== this.codFormStepTwo.controls['re_password'].value) {\n        this.errorMessage = 'Las contraseñas no coinciden';\n      } else if (this.codFormStepTwo.controls['age'].errors) {\n        this.errorMessage = 'Fecha de nacimiento no válida';\n      }\n       else {\n        this.errorMessage = 'Faltan campos por llenar';\n      }\n    })\n  }\n\n  startLocalStorageWork() {\n    this.controls.forEach(control => {\n      let localStorageValue: localStorageValues = this.readAndWriteLS(2, control.name);\n      this.codFormStepTwo.controls[control.name].setValue(localStorageValue.value);\n      this.listenFormChanges(2, control.name, this.codFormStepTwo.controls[control.name].valueChanges);\n    });\n  }\n\n  initForm() {\n    const currentDate = new Date().toISOString().split('T')[0];\n    this.codFormStepTwo = this.fb.group({\n      student_address: ['', [Validators.required], []],\n      birthdate: [currentDate, [Validators.required], []],\n      country: ['', [Validators.required], []],\n      state: ['', [Validators.required], []],\n      city: ['', [Validators.required], []],\n      student_id_card_type: ['', [Validators.required], []],\n      student_id_card: [{value: '', disabled: true}, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],\n      student_last_name: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(32)]],\n      student_name: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(32)]],\n      student_email: ['', [Validators.required, Validators.email]],\n      nickname: ['', [Validators.required]],\n      gender: ['', [Validators.required]],\n      age: ['', [Validators.required], []],\n      student_occupation: ['', [Validators.required]],\n      stratum: ['', [Validators.required]],\n      grade: ['', [Validators.required]],\n      civil_status: ['', [Validators.required]],\n      student_phone_indicative: ['', [Validators.required], []],\n      student_phone_number: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(15)]],\n      password: [{ value: '', disabled: this.isEditCod }, [Validators.required, Validators.minLength(6)]],\n      re_password: [{ value: '', disabled: this.isEditCod }, [Validators.required, Validators.minLength(6)]],\n    });\n    this.codFormStepTwo.patchValue({\n      birthdate: currentDate\n    });\n    // Calcular edad y setear valor\n    this.codFormStepTwo.controls['birthdate'].valueChanges.subscribe({\n      next: (change) => {\n        let today = new Date();\n        let birthday = new Date(change);\n        let age = today.getFullYear() - birthday.getFullYear();\n        let month = today.getMonth() - birthday.getMonth();\n\n        if (month < 0 || (month === 0 && today.getDate() < birthday.getDate())) {\n          age--;\n        }\n\n        if (age < 3) {\n          this.errorMessage = 'Fecha de nacimiento no válida'\n          this.codFormStepTwo.controls['birthdate'].setErrors({\n            invalidAge: true\n          })\n        } else {\n          this.codFormStepTwo.controls['birthdate'].setErrors(null);\n        }\n\n        this.codFormStepTwo.controls['age'].setValue(age);\n      }\n    })\n  }\n\n  getParameters(){\n    this.idTypes =this.parametersAll?.TypeIdCardByCountryCol;\n    this.indicatives =this.parametersAll?.indicatives;\n    this.countries =this.parametersAll?.country;\n    this.stratums =this.parametersAll?.stratum;\n    this.civilStatus =this.parametersAll?.civilStatus;\n    this.cities =this.parametersAll?.city;\n    this.states =this.parametersAll?.State;\n    // this.genders =this.parametersAll?.gender;\n    if (this.parametersAll && this.parametersAll.gender) {\n      // Transformar gender en un arreglo de { code, name }\n      this.genders = this.parametersAll.gender.map((gender: any) => ({\n        code: gender.code,\n        name: gender.name_spanish\n      }));\n    } else {\n      this.genders = [];\n    }\n  }\n\n  sendForm() {\n    this.codFormStepTwo.markAllAsTouched();\n    if (this.codFormStepTwo.invalid) return;\n\n    // Movernos al paso 3\n    this.changeStepEvent.emit(2);\n  }\n\n  getState(state: any) {\n    this.getCity(state);\n  }\n\n  getCity(state: any) {\n    const stateNumber = typeof state === 'string' ? parseInt(state, 10) : state;\n    \n    if (this.parametersAll && this.parametersAll?.city) {\n  \n      this.cities = this.parametersAll.city.filter((course) => {\n        const academicPlan = typeof course.state === 'string' \n          ? parseInt(course.state, 10) \n          : course.state;\n        return academicPlan === stateNumber;\n      });\n  \n    } else {\n      this.cities = [];\n    }\n    this.selectCity(this.localStorageCOD.getCodFormData(2, 'city'));\n  }\n\n  selectCountry(country: any){\n    const countryNumber = typeof country === 'string' ? parseInt(country, 10) : country;\n    if (country != null) {\n      this.codFormStepTwo.controls['country'].setValue(country);\n      if (this.parametersAll && this.parametersAll?.State) {\n        this.states = this.parametersAll.State.filter((course) => {\n          const state = typeof course.country === 'string' \n            ? parseInt(course.country, 10) \n            : course.country;\n          return state === countryNumber;\n        });\n        this.selectState(this.localStorageCOD.getCodFormData(2, 'state'));\n      } else {\n        this.states = [];\n      }\n    }else {\n      this.codFormStepTwo.controls['country'].setValue(null);\n    }\n  }\n\n  selectState(state: any) {\n    if (state !== 'Departamento o estado') {\n      this.codFormStepTwo.controls['state'].setValue(state);\n      this.getState(state);\n    } else {\n      this.codFormStepTwo.controls['state'].setValue(null);\n      this.codFormStepTwo.controls['city'].setValue(null);\n      this.cities = [];\n    }\n  }\n\n  selectCity(city: any) {\n    if (city !== 'Ciudad de residencia') {\n      this.codFormStepTwo.controls['city'].setValue(city);\n    } else {\n      this.codFormStepTwo.controls['city'].setValue(null);\n    }\n  }\n\n  selectIdType(idType: any) {\n    if (idType !== 'Tipo de documento') {\n      this.codFormStepTwo.controls['student_id_card_type'].setValue(idType);\n    } else {\n      this.codFormStepTwo.controls['student_id_card_type'].setValue(null);\n    }\n  }\n\n  selectIndicatives(indicative: any) {\n    if (indicative !== 'Indicativo') {\n      this.codFormStepTwo.controls['student_phone_indicative'].setValue(indicative);\n    } else {\n      this.codFormStepTwo.controls['student_phone_indicative'].setValue(null);\n    }\n  }\n\n  selectGender(gender: any) {\n    if (gender !== 'Género') {\n      this.codFormStepTwo.controls['gender'].setValue(gender);\n    } else {\n      this.codFormStepTwo.controls['gender'].setValue(null);\n    }\n  }\n\n  selectStratum(stratum: any) {\n    if (stratum !== 'Estrato') {\n      this.codFormStepTwo.controls['stratum'].setValue(stratum);\n    } else {\n      this.codFormStepTwo.controls['stratum'].setValue(null);\n    }\n  }\n\n  selectCivilStatus(civil_status: any) {\n    if (civil_status !== 'Estado civil') {\n      this.codFormStepTwo.controls['civil_status'].setValue(civil_status);\n    } else {\n      this.codFormStepTwo.controls['civil_status'].setValue(null);\n    }\n  }\n}\n","<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\n\n  <div class=\"col\">\n    <ipt-input\n      [inputType]=\"'text'\"\n      [placeHolder]=\"'Nombres'\"\n      [control]=\"codFormStepTwo.controls['student_name']\"\n    ></ipt-input>\n    <ipt-select\n      [initialValue]=\"codFormStepTwo.controls['student_id_card_type'].value\"\n      [control]=\"codFormStepTwo.controls['student_id_card_type']\"\n      [selectCode]=\"codFormStepTwo.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codFormStepTwo.controls['student_id_card_type'].value\"\n      [isRequired]=\"true\"\n      [data]=\"idTypes\"\n      (eventSelect)=\"selectIdType($event)\"\n      [defaultText]=\"'Tipo de documento'\"\n    ></ipt-select>\n    <ipt-select\n      [initialValue]=\"codFormStepTwo.controls['country'].value\"\n      [control]=\"codFormStepTwo.controls['country']\"\n      [selectCode]=\"codFormStepTwo.controls['country'].value === null ? 'País de residencia' : codFormStepTwo.controls['country'].value\"\n      (eventSelect)=\"selectCountry($event)\"\n      [data]=\"countries\"\n      [defaultText]=\"'País de residencia'\"\n    ></ipt-select>\n    <ipt-select\n      [initialValue]=\"codFormStepTwo.controls['city'].value\"\n      [control]=\"codFormStepTwo.controls['city']\"\n      [selectCode]=\"codFormStepTwo.controls['city'].value === null ? 'Ciudad de residencia' : codFormStepTwo.controls['city'].value\"\n      (eventSelect)=\"selectCity($event)\"\n      [data]=\"cities\"\n      [defaultText]=\"'Ciudad de residencia'\"\n    ></ipt-select>\n    <ipt-input\n      onfocus=\"(this.type='date')\"\n      [inputType]=\"'date'\"\n      [control]=\"codFormStepTwo.controls['birthdate']\"\n      [placeHolder]=\"'Fecha de nacimiento'\"\n    ></ipt-input>\n     <ipt-select\n      [initialValue]=\"codFormStepTwo.controls['gender'].value\"\n      [control]=\"codFormStepTwo.controls['gender']\"\n      [data]=\"genders\"\n      (eventSelect)=\"selectGender($event)\"\n      [defaultText]=\"'Género'\"\n    ></ipt-select>\n    <ipt-select\n      [initialValue]=\"codFormStepTwo.controls['stratum'].value\"\n      [control]=\"codFormStepTwo.controls['stratum']\"\n      [data]=\"stratums\"\n      (eventSelect)=\"selectStratum($event)\"\n      [defaultText]=\"'Estrato'\"\n    ></ipt-select>\n    <ipt-input\n      [inputType]=\"'text'\"\n      [placeHolder]=\"'Grado'\"\n      [control]=\"codFormStepTwo.controls['grade']\"\n    ></ipt-input>\n    <ipt-select\n      [initialValue]=\"codFormStepTwo.controls['student_phone_indicative'].value\"\n      [control]=\"codFormStepTwo.controls['student_phone_indicative']\"\n      [data]=\"indicatives\"\n      (eventSelect)=\"selectIndicatives($event)\"\n      [defaultText]=\"'Indicativo'\"\n    ></ipt-select>\n    <ipt-input\n      [inputType]=\"'email'\"\n      [placeHolder]=\"'Correo electrónico'\"\n      [control]=\"codFormStepTwo.controls['student_email']\"\n    ></ipt-input>\n    <ipt-input\n      [inputType]=\"'password'\"\n      [placeHolder]=\"'Repetir contraseña'\"\n      [control]=\"codFormStepTwo.controls['re_password']\"\n    ></ipt-input>\n  </div>\n\n  <div class=\"col\">\n    <ipt-input\n      [inputType]=\"'text'\"\n      [placeHolder]=\"'Apellidos'\"\n      [control]=\"codFormStepTwo.controls['student_last_name']\"\n    ></ipt-input>\n    <ipt-input\n      [inputType]=\"'number'\"\n      [placeHolder]=\"'Número de documento'\"\n      [control]=\"codFormStepTwo.controls['student_id_card']\"\n    ></ipt-input>\n    <ipt-select\n      [initialValue]=\"codFormStepTwo.controls['state'].value\"\n      [control]=\"codFormStepTwo.controls['state']\"\n      [selectCode]=\"codFormStepTwo.controls['state'].value === null ? 'Departamento o estado' : codFormStepTwo.controls['state'].value\"\n      [isRequired]=\"true\"\n      (eventSelect)=\"selectState($event)\"\n      [data]=\"states\"\n      [defaultText]=\"'Departamento o estado'\"\n    ></ipt-select>\n    <ipt-input\n      [inputType]=\"'text'\"\n      [placeHolder]=\"'Dirección'\"\n      [control]=\"codFormStepTwo.controls['student_address']\"\n    ></ipt-input>\n    <ipt-input\n      [inputType]=\"'number'\"\n      [placeHolder]=\"'Edad'\"\n      [control]=\"codFormStepTwo.controls['age']\"\n    ></ipt-input>\n    <ipt-input\n      [inputType]=\"'text'\"\n      [placeHolder]=\"'Nickname'\"\n      [control]=\"codFormStepTwo.controls['nickname']\"\n    ></ipt-input>\n    <ipt-input\n      [inputType]=\"'text'\"\n      [placeHolder]=\"'Ocupación'\"\n      [control]=\"codFormStepTwo.controls['student_occupation']\"\n    ></ipt-input>\n    <ipt-select\n      [initialValue]=\"codFormStepTwo.controls['civil_status'].value\"\n      [control]=\"codFormStepTwo.controls['civil_status']\"\n      [data]=\"civilStatus\"\n      (eventSelect)=\"selectCivilStatus($event)\"\n      [defaultText]=\"'Estado civil'\"\n    ></ipt-select>\n    <ipt-input\n      [inputType]=\"'number'\"\n      [placeHolder]=\"'Número de teléfono'\"\n      [control]=\"codFormStepTwo.controls['student_phone_number']\"\n    ></ipt-input>\n    <ipt-input\n      [inputType]=\"'password'\"\n      [placeHolder]=\"'Contraseña'\"\n      [control]=\"codFormStepTwo.controls['password']\"\n    ></ipt-input>\n  </div>\n\n  <div class=\"col-12\"></div>\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n  <span *ngIf=\"codFormStepTwo.invalid && codFormStepTwo.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n  <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { IParametersAllRs } from '../../../core/models/parameters/parameters-rs.model';\n\n@Component({\n  selector: 'app-cod-form-step-three',\n  templateUrl: './cod-form-step-three.component.html',\n  styleUrls: ['./cod-form-step-three.component.css']\n})\nexport class CodFormStepThreeComponent extends CodFormSteps implements OnChanges {\n  @Input() initialData?: any;\n  @Input() isEditCod?: boolean;\n  @Input() parametersAll?:IParametersAllRs;\n  @Output() changeStepEvent = new EventEmitter<number>();\n  globalControls = new CodFormControls();\n\n  idTypes: any;\n  indicatives: any;\n  codFormStepThree!: FormGroup;\n  errorMessage: string = 'Faltan campos por llenar.';\n  needAtendants: any[] = [\n    { code: '1', name: 'Si requiere acudiente' },\n    { code: '2', name: 'No requiere acudiente' },\n  ];\n\n   // Controls del formulario\n   controls = new CodFormControls().controls[2];\n\n  constructor(\n    private fb: FormBuilder,\n    private codFormControls: CodFormControls\n  ) {\n    super();\n  }\n\n  // ngOnInit(): void {\n  //   this.getParameters();\n  //   this.initForm();\n  //   this.startLocalStorageWork();\n  //   this.validateErrors();\n  //   if (this.initialData != null) {\n  //     this.setValueStepThree();\n  //   }\n  // }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.getParameters();\n    this.initForm();\n    this.startLocalStorageWork();\n    this.validateErrors();\n\n    if (changes['initialData']) {\n      if (this.initialData != null) {\n        if (this.initialData.parent != null) {\n          this.selectNeedAtendant(1);\n          if (this.initialData.student != null) {\n            this.setValueStepThree();\n          }else{\n            this.setDataFromUserHistory();\n          }\n        } else {\n          this.selectNeedAtendant(null);\n        }\n      }\n    }\n  }\n\n  validateErrors() {\n    this.codFormStepThree.valueChanges.subscribe(changes => {\n      if (this.codFormStepThree.controls['parent_name'].hasError('minlength')) {\n        this.errorMessage = 'Los nombres deben tener mínimo 3 caracteres';\n      } else if (this.codFormStepThree.controls['parent_last_name'].hasError('minlength')) {\n        this.errorMessage = 'Los apellidos deben tener mínimo 5 caracteres';\n      }\n       else {\n        this.errorMessage = 'Faltan campos por llenar';\n      }\n    })\n  }\n\n  startLocalStorageWork() {\n    this.controls.forEach(control => {\n      let localStorageValue: localStorageValues = this.readAndWriteLS(3, control.name);\n      this.codFormStepThree.controls[control.name].setValue(localStorageValue.value);\n      this.listenFormChanges(3, control.name, this.codFormStepThree.controls[control.name].valueChanges);\n    });\n  }\n\n  getParameters() {\n    this.idTypes =this.parametersAll?.TypeIdCardByCountryCol;\n    this.indicatives =this.parametersAll?.indicatives;\n  }\n\n  initForm() {\n    this.codFormStepThree = this.fb.group({\n      parent_id_card_type: ['', [Validators.required]],\n      parent_id_card: ['',[Validators.required,Validators.minLength(5),Validators.maxLength(20),],],\n      parent_last_name: ['',[Validators.required,Validators.minLength(5),Validators.maxLength(32),],],\n      parent_name: ['',[Validators.required,Validators.minLength(3),Validators.maxLength(32)],],\n      needAtendant: ['', [Validators.required], []],\n      parent_phone_indicative: ['', [Validators.required], []],\n      parent_occupation: ['', [Validators.required], []],\n      parent_address: ['', [Validators.required], []],\n      parent_phone_number: ['',[Validators.required,Validators.minLength(10),Validators.maxLength(15),],],\n    })\n\n    this.listenNeedAtendantField()\n  }\n\n  listenNeedAtendantField() {\n    const control = this.codFormStepThree.get('needAtendant');\n    control?.valueChanges.subscribe((change) => {\n      if (change === '1') {\n        // Poner validaciones\n        this.codFormStepThree.controls['parent_id_card_type'].setValidators([Validators.required])\n        this.codFormStepThree.controls['parent_id_card'].setValidators([Validators.required,Validators.minLength(5),Validators.maxLength(20)])\n        this.codFormStepThree.controls['parent_last_name'].setValidators([Validators.required,Validators.minLength(5),Validators.maxLength(32)])\n        this.codFormStepThree.controls['parent_name'].setValidators([Validators.required,Validators.minLength(3),Validators.maxLength(32)])\n        this.codFormStepThree.controls['parent_phone_indicative'].setValidators([Validators.required])\n        this.codFormStepThree.controls['parent_occupation'].setValidators([Validators.required])\n        this.codFormStepThree.controls['parent_address'].setValidators([Validators.required])\n        this.codFormStepThree.controls['parent_phone_number'].setValidators([Validators.required,Validators.minLength(10),Validators.maxLength(15)])\n\n        // Actualizar para que se tomen los cambios\n        this.updateValueAndValidity();\n\n        // Actualizar los controls globales\n        this.updateGlobalControls(change)\n      }\n      if (change === '2') {\n        // Quitar las validaciones\n        this.codFormStepThree.controls['parent_id_card_type'].clearValidators();\n        this.codFormStepThree.controls['parent_id_card'].clearValidators();\n        this.codFormStepThree.controls['parent_last_name'].clearValidators();\n        this.codFormStepThree.controls['parent_name'].clearValidators();\n        this.codFormStepThree.controls['parent_phone_indicative'].clearValidators();\n        this.codFormStepThree.controls['parent_occupation'].clearValidators();\n        this.codFormStepThree.controls['parent_address'].clearValidators();\n        this.codFormStepThree.controls['parent_phone_number'].clearValidators();\n\n        // Actualizar para que se tomen los cambios\n        this.updateValueAndValidity();\n\n        // Actualizar los controls globales\n        this.updateGlobalControls(change)\n      }\n    });\n  }\n\n  updateGlobalControls(change: string) {\n    let controls = this.controls.filter(control => control.name !== 'needAtendant');\n    controls.forEach(control => {\n      if (change === '1') this.codFormControls.changeValue(3, control.name, true)\n      if (change === '2') this.codFormControls.changeValue(3, control.name, false)\n    });\n  }\n\n  setValueStepThree(){\n    this.codFormStepThree.controls['parent_id_card_type'].setValue(this.initialData.parent.id_card_type);\n    this.codFormStepThree.controls['parent_id_card'].setValue(this.initialData.parent.id_card);\n    this.codFormStepThree.controls['parent_last_name'].setValue(this.initialData.parent.last_name);\n    this.codFormStepThree.controls['parent_name'].setValue(this.initialData.parent.name);\n    this.codFormStepThree.controls['parent_phone_indicative'].setValue(this.initialData.parent.phone_indicative);\n    this.codFormStepThree.controls['parent_occupation'].setValue(this.initialData.parent.occupation);\n    this.codFormStepThree.controls['parent_phone_number'].setValue(this.initialData.parent.phone_number);\n    this.codFormStepThree.controls['parent_address'].setValue(this.initialData.parent.office_adrress);\n  }\n  setDataFromUserHistory(){\n    this.codFormStepThree.controls['parent_id_card_type'].setValue(null);\n    this.codFormStepThree.controls['parent_id_card'].setValue(null);\n    this.codFormStepThree.controls['parent_last_name'].setValue(null);\n    this.codFormStepThree.controls['parent_name'].setValue(null);\n    this.codFormStepThree.controls['parent_phone_indicative'].setValue(null);\n    this.codFormStepThree.controls['parent_occupation'].setValue(null);\n    this.codFormStepThree.controls['parent_phone_number'].setValue(null);\n    this.codFormStepThree.controls['parent_address'].setValue(null);\n  }\n\n  updateValueAndValidity() {\n    this.codFormStepThree.controls['parent_id_card_type'].updateValueAndValidity();\n    this.codFormStepThree.controls['parent_id_card'].updateValueAndValidity();\n    this.codFormStepThree.controls['parent_last_name'].updateValueAndValidity();\n    this.codFormStepThree.controls['parent_name'].updateValueAndValidity();\n    this.codFormStepThree.controls['parent_phone_indicative'].updateValueAndValidity();\n    this.codFormStepThree.controls['parent_occupation'].updateValueAndValidity();\n    this.codFormStepThree.controls['parent_address'].updateValueAndValidity();\n    this.codFormStepThree.controls['parent_phone_number'].updateValueAndValidity();\n  }\n\n  needAtendant(): boolean {\n    return this.codFormStepThree.controls['needAtendant'].value == 1;\n  }\n\n  sendForm() {\n    this.codFormStepThree.markAllAsTouched();\n    if (this.codFormStepThree.controls['needAtendant'].value === '1' && this.codFormStepThree.invalid) return;\n\n    // Movernos al paso 4\n    this.changeStepEvent.emit(3);\n  }\n\n  // Eventos de los select\n  selectNeedAtendant(needAtendant: any) {\n    if (needAtendant == 1) {\n      this.codFormStepThree.controls['needAtendant'].setValue(needAtendant);\n    } else {\n      this.cleanComponent();\n      this.codFormStepThree.controls['needAtendant'].setValue(null);\n    }\n  }\n\n  selectIdTypeParents(value: string) {\n    if (value !== 'Tipo de documento') {\n      this.codFormStepThree.controls['parent_id_card_type'].setValue(value);\n    } else {\n      this.codFormStepThree.controls['parent_id_card_type'].setValue(null);\n    }\n  }\n\n  selectIndicativesParents(value: string) {\n    if (value !== 'Indicativo') {\n      this.codFormStepThree.controls['parent_phone_indicative'].setValue(value);\n    } else {\n      this.codFormStepThree.controls['parent_phone_indicative'].setValue(null);\n    }\n  }\n\n  cleanComponent(){\n    this.resetLocalStorage(this.controls);\n    this.codFormStepThree.reset();\n  }\n\n}\n","<form autocomplete=\"off\" [formGroup]=\"codFormStepThree\"class=\"grid\">\n  <div class=\"col-12\">\n    <ipt-select\n      [initialValue]=\"codFormStepThree.controls['needAtendant'].value\"\n      [control]=\"codFormStepThree.controls['needAtendant']\"\n      (eventSelect)=\"selectNeedAtendant($event)\"\n      [data]=\"needAtendants\"\n      [defaultText]=\"'Requiere acudiente'\"\n    ></ipt-select>\n  </div>\n\n  <div *ngIf=\"needAtendant()\" class=\"grid col-12\">\n    <div class=\"col-12 md:col-6\">\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Nombres'\"\n        [control]=\"codFormStepThree.controls['parent_name']\"\n      ></ipt-input>\n      <ipt-select\n        [initialValue]=\"codFormStepThree.controls['parent_id_card_type'].value\"\n        [data]=\"idTypes\"\n        (eventSelect)=\"selectIdTypeParents($event)\"\n        [defaultText]=\"'Tipo de documento'\"\n        [control]=\"codFormStepThree.controls['parent_id_card_type']\"\n      ></ipt-select>\n      <ipt-select\n        [initialValue]=\"codFormStepThree.controls['parent_phone_indicative'].value\"\n        [data]=\"indicatives\"\n        (eventSelect)=\"selectIndicativesParents($event)\"\n        [defaultText]=\"'Indicativo'\"\n        [control]=\"codFormStepThree.controls['parent_phone_indicative']\"\n      ></ipt-select>\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Ocupación'\"\n        [control]=\"codFormStepThree.controls['parent_occupation']\"\n      ></ipt-input>\n    </div>\n    <div class=\"col-12 md:col-6\">\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Apellidos'\"\n        [control]=\"codFormStepThree.controls['parent_last_name']\"\n      ></ipt-input>\n      <ipt-input\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Número de documento'\"\n        [control]=\"codFormStepThree.controls['parent_id_card']\"\n      ></ipt-input>\n      <ipt-input\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Número de teléfono'\"\n        [control]=\"codFormStepThree.controls['parent_phone_number']\"\n      ></ipt-input>\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Dirección - Oficina'\"\n        [control]=\"codFormStepThree.controls['parent_address']\"\n      ></ipt-input>\n    </div>\n  </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n  <span *ngIf=\"(codFormStepThree.invalid && codFormStepThree.touched) && needAtendant()\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n  <button type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n","import { Injectable } from '@angular/core';\nimport Swal from 'sweetalert2';\n\nexport interface CalculateQuotesParams {\n  date: Date;\n  quotaValues: number;\n  quotaTimes: any;\n  totalPrice: any;\n  courseType: number;\n  englishLevel: number;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CalculateQuotesService {\n  specialCourseTypes: number[] = [3, 4, 5, 6, 7, 8, 15, 21, 24, 25, 26, 30, 33];//tecnicas\n  monthsDays: number[] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n  constructor() { }\n\n  calculateQuotes(params: CalculateQuotesParams): any[] {\n    let dataFinancing: any[] = [];\n    let index = 1; // Indicador de cant. de cuotas\n    let dateJs = new Date(params.date);\n    let isEndMonth = false;\n    const isSpecialCourseType = this.specialCourseTypes.includes(Number(params.courseType));\n\n    if (!isSpecialCourseType) {\n      // Non-special case: add one day and check for Sunday\n      dateJs.setMilliseconds(dateJs.getMilliseconds() + (1000 * 3600 * 24));\n      isEndMonth = this.monthsDays[dateJs.getMonth()] === dateJs.getDate();\n\n      if (dateJs.getDay() === 0) {\n        Swal.fire({\n          title: 'Fecha inválida',\n          text: 'Debe seleccionar un día de la semana diferente al domingo',\n          icon: 'error'\n        });\n        return [];\n      }\n    }\n\n    // Enrollment\n    let enrollment: any[] = [\n      index,\n      Intl.NumberFormat('en-US', {\n        style: 'currency',\n        currency: 'USD',\n        minimumFractionDigits: 0\n      }).format(Math.round(parseFloat(params.totalPrice.toString()))),\n      this.getStringDate(dateJs)\n    ];\n\n    // First quota\n    let firstQuotaDate = isSpecialCourseType ? new Date(params.date) : dateJs;\n    if (isSpecialCourseType) {\n      firstQuotaDate.setMonth(firstQuotaDate.getMonth() + 1);\n      // Adjust if day exceeds max days in month\n      const maxDays = this.monthsDays[firstQuotaDate.getMonth()];\n      if (firstQuotaDate.getDate() > maxDays) {\n        firstQuotaDate.setDate(maxDays);\n      }\n    }\n    let quota: any[] = [\n      index,\n      Intl.NumberFormat('en-US', {\n        style: 'currency',\n        currency: 'USD',\n        minimumFractionDigits: 0\n      }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n      this.getStringDate(firstQuotaDate)\n    ];\n\n    dataFinancing.push(enrollment);\n    dataFinancing.push(quota);\n\n    while (index < params.quotaTimes) {\n      index = index + 1;\n      let newJsDate: Date;\n      if (isSpecialCourseType) {\n        // Special case: add (index) months from params.date\n        newJsDate = new Date(params.date);\n        newJsDate.setMonth(newJsDate.getMonth() + index);\n        // Adjust if day exceeds max days in month\n        const maxDays = this.monthsDays[newJsDate.getMonth()];\n        if (newJsDate.getDate() > maxDays) {\n          newJsDate.setDate(maxDays);\n        }\n      } else {\n        // Non-special case: use existing logic\n        const nextDates = this.setPlusOneMonth(dateJs, isEndMonth);\n        newJsDate = nextDates[nextDates.length - 1];\n        dateJs = nextDates[0];\n      }\n\n      let row: any[] = [\n        index,\n        Intl.NumberFormat('en-US', {\n          style: 'currency',\n          currency: 'USD',\n          minimumFractionDigits: 0\n        }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n        this.getStringDate(newJsDate)\n      ];\n      dataFinancing.push(row);\n    }\n\n    return dataFinancing;\n  }\n\n  setPlusOneMonth(originDate: Date, isEndMonth: boolean): Date[] {\n    let response: Date[] = [];\n    let oneDayMilis = 1000 * 3600 * 24;\n    let day = isEndMonth ? this.monthsDays[(originDate.getMonth() + 1) % 12] : originDate.getDate();\n    let plusMonthDate: Date = new Date(originDate.getFullYear(), originDate.getMonth() + 1, day);\n\n    response.push(new Date(originDate.getFullYear(), originDate.getMonth() + 1, day));\n\n    while (plusMonthDate.getDay() === 0) {\n      plusMonthDate.setMilliseconds(plusMonthDate.getMilliseconds() - oneDayMilis);\n    }\n\n    response.push(plusMonthDate);\n    return response;\n  }\n\n  getStringDate(originDate: Date): string {\n    let month = originDate.getMonth() + 1;\n    let stringMonth = month < 10 ? '0' + month : month.toString();\n    let day = originDate.getDate();\n    let stringDay = day < 10 ? '0' + day : day.toString();\n    return originDate.getFullYear() + '-' + stringMonth + '-' + stringDay;\n  }\n}","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges, OnChanges } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport Swal from 'sweetalert2';\n// import { map } from 'rxjs';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CalculateQuotesParams, CalculateQuotesService } from '../../logic/calculate-quotes.service';\n// import { CommunicatorService } from '../../logic/communicator.service';\nimport { CodPrices, CodPricesRq, ICodPricesByProgramRs, IObtainCodPricesRq } from '../../../core/models/commercial/commercial.model';\n// import { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { CommercialService } from '../../../core/services/commercial-service/comercial.service';\nimport { BaseService } from '../../../core/utils/base-service/base.service';\n\n// interface CourseTypes {\n//   code: number;\n//   name: string;\n//   number_class: number;\n//   academic_plan: number;\n//   updated_at: string;\n//   created_at: string;\n// }\n@Component({\n  selector: 'app-cod-form-step-four',\n  templateUrl: './cod-form-step-four.component.html',\n  styleUrls: ['./cod-form-step-four.component.css'],\n})\nexport class CodFormStepFourComponent extends CodFormSteps implements OnChanges {\n  @Input() isEditCod?: boolean;\n  @Input() initialData?: any;\n  @Input() isRenovation?: boolean;\n  @Output() changeStepEvent = new EventEmitter<number>();\n  @Output() financingData = new EventEmitter<any>();\n\n  codFormStepFour!: FormGroup;\n  isCalculateQuotesButtonClicked: boolean = false;\n  errorMessage: string = 'Faltan campos por llenar.';\n  paymentMethods: any[] = [\n    { code: '1', name: 'Financiado' },\n    { code: '2', name: 'Contado' },\n  ];\n  dataFinancing: any[] = [];\n  isFinancing: boolean = false;\n  isSemestral: boolean = false;\n  codPrices: CodPrices[] = [];\n  codPricesFilter: CodPrices[] = [];\n\n  dataPrices:ICodPricesByProgramRs[]=[];\n  feeResponse: boolean = false;\n  thereArePlans: boolean = false;\n  isDisabledSel=false;\n  // Controls del formulario\n  controls = new CodFormControls().controls[3];\n\n  constructor(\n    private fb: FormBuilder,\n    private calculateQuotesService: CalculateQuotesService,\n    private codFormControls: CodFormControls,\n    private commercialService: CommercialService,\n    // private communicatorService: CommunicatorService,\n    // private parameterService: ParameterService,\n    private baseService: BaseService\n  ) {\n    super();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.initForm();\n    this.startLocalStorageWork();\n    this.validateErrors();\n    // this.getCodPricesByAgreement();\n    // this.getValuesOfStepOneComponent();\n    if (changes['initialData']) {\n      if (this.initialData != null) {\n\n        if (this.isEditCod && !this.initialData.edit_course_payment){\n          this.isDisabledSel = true;\n        }else{\n          this.isDisabledSel = false;\n        }\n        if (this.initialData.cod_renovation == true && this.isEditCod == false) {\n          this.setDataFromPreviusCodPrices();\n          this.isDisabledSel = true;\n        }else {\n          this.resetForm();\n        }\n        // if (this.initialData.cod_price != null) {\n        //   // this.setDataFromPreviusCodPrices();\n        //   this.resetForm();\n        //   // this.showTable();\n        // }\n      }\n    }\n    if (this.isDisabledSel) {\n      this.codFormStepFour.controls['payment_date'].disable();\n    } else {\n      this.codFormStepFour.controls['payment_date'].enable();\n    }\n  }\n  resetForm() {\n    // this.resetLocalStorage(this.controls);\n    this.codFormStepFour.reset();\n  }\n  // ngOnInit(): void {\n  //   // this.cleanComponent();\n  //   this.initForm();\n  //   this.startLocalStorageWork();\n  //   this.validateErrors();\n  //   // this.getCodPricesByAgreement();\n  //   this.getValuesOfStepOneComponent();\n  // }\n\n\n  // getValuesOfStepOneComponent() {\n  //   // Tipo de curso seleccionado\n  //   this.communicatorService.getSelectedCourseType().subscribe(value => {\n  //     this.parameterService.getCoursesTypes().pipe(\n  //       map( (response: any) => {\n  //         const courseTypes: CourseTypes[] = response.data;\n  //         return courseTypes.filter( ({ name }) => name.includes('Semestral') )\n  //       })\n  //     )\n  //     .subscribe( (courseTypes: CourseTypes[]) => {\n  //       for (let i = 0; i < courseTypes.length; i++) {\n  //         if (courseTypes[i].code.toString() === value) {\n  //           this.isSemestral = true;\n  //           break;\n  //         } else {\n  //           this.isSemestral = false;\n  //         }\n  //       }\n  //     })\n  //   });\n\n    // Convenio seleccionado\n    // this.communicatorService.getSelectedAgreement().subscribe(value => {\n    //   this.getCodPricesByAgreement(value);\n    // });\n  // }\n\n  getCodPricesByAgreement(agreement?: string) {\n    let agreementSelected: string | null;\n    if (agreement) {\n      agreementSelected = agreement;\n    } else {\n      agreementSelected = this.localStorageCOD.getCodFormData(1, 'agreement_by_category')\n    }\n\n    if (this.codFormStepFour.controls['payment_method'].value === '1') {\n      let request: CodPricesRq = {\n        agreement:     Number(agreementSelected),\n        payment_method: 'cuota'\n      }\n      this.commercialService.getCodPricesByAgreementTypePayment(request).subscribe((response: any) =>{\n        this.codPrices = response.data;\n        this.codFormStepFour.controls['quota_times'].setValue(this.codPrices[0].code)\n        this.codFormStepFour.controls['program_price'].setValue(this.codPrices[0].normal_price)\n      })\n      }else {\n        if (this.codFormStepFour.controls['payment_method'].value === '2') {\n          let request: CodPricesRq = {\n            agreement:     Number(agreementSelected),\n            payment_method: 'conta'\n          }\n          this.commercialService.getCodPricesByAgreementTypePayment(request).subscribe((response: any) =>{\n            this.codPrices = response.data;\n            this.codFormStepFour.controls['quota_times'].setValue(this.codPrices[0].code);\n            this.codFormStepFour.controls['program_price'].setValue(this.codPrices[0].normal_price)\n            this.codFormStepFour.controls['total_price'].setValue(this.codPrices[0].enrollment);\n          })\n        }\n    }\n  }\n\n  validateErrors() {\n    this.codFormStepFour.valueChanges.subscribe(changes => {\n      if (this.codFormStepFour.controls['quota_times'].hasError('min')) {\n        this.errorMessage = 'La cantidad de cuotas mínimas debe ser 1';\n      } else if (this.codFormStepFour.controls['quota_times'].hasError('max')) {\n        this.errorMessage = 'La cantidad de cuotas no debe ser superior a 12';\n      }\n       else {\n        this.errorMessage = 'Faltan campos por llenar';\n      }\n    })\n  }\n\n  searchPriceByTypePayment(agreementSelected: any, type: string, change: string){\n    let request: CodPricesRq = {\n      agreement:     Number(agreementSelected),\n      payment_method: type\n    }\n    this.commercialService.getCodPricesByAgreementTypePayment(request).subscribe((response: any) =>{\n      this.codPrices = response.data;\n    })\n  }\n\n  initForm() {\n    this.codFormStepFour = this.fb.group({\n      program_price: [{ value: '', disabled: true }, [Validators.required]],\n      payment_date: ['', [Validators.required]],\n      payment_method: ['', [Validators.required]],\n      quota_times: [{ value: '', disabled: true }, [Validators.required]],\n      total_price: [{ value: '', disabled: true }, [Validators.required]],\n      paid_level: ['', [Validators.required]],\n      quota_price: ['', [Validators.required]],\n      fee_number: ['', [Validators.required]],\n    });\n    const currentDate = new Date().toISOString().split('T')[0];\n    this.codFormStepFour.controls['payment_date'].setValue(currentDate);\n\n    this.listenPaymentMethodField();\n  }\n\n\n  listenPaymentMethodField() {\n    const control = this.codFormStepFour.get('payment_method');\n    control?.valueChanges.subscribe((change) => {\n      // Financiado\n      if (change === '1') {\n        // Poner validaciones\n        this.codFormStepFour.controls['program_price'].setValidators([Validators.required]);\n        this.codFormStepFour.controls['payment_date'].setValidators([Validators.required]);\n        this.codFormStepFour.controls['quota_times'].setValidators([Validators.required]);\n        this.codFormStepFour.controls['total_price'].setValidators([Validators.required]);\n\n        this.updateValueAndValidity();\n\n        this.updateGlobalControls(change)\n      }\n\n      // de contado\n      if (change === '2') {\n        this.codFormStepFour.controls['program_price'].setValidators([Validators.required]);\n        this.codFormStepFour.controls['payment_date'].setValidators([Validators.required]);\n        this.codFormStepFour.controls['quota_times'].clearValidators();\n        this.codFormStepFour.controls['total_price'].setValidators([Validators.required]);\n\n        this.updateValueAndValidity();\n\n        this.updateGlobalControls(change)\n      }\n    });\n  }\n\n  updateGlobalControls(change: string) {\n    let controls = this.controls.filter(control => control.name !== 'payment_method');\n    controls.forEach(control => {\n      if (change === '1') this.codFormControls.changeValue(4, control.name, true)\n      if (change === '2') {\n        if (control.name === 'quota_times') this.codFormControls.changeValue(4, control.name, false);\n      }\n    });\n  }\n\n  updateValueAndValidity() {\n    this.codFormStepFour.controls['program_price'].updateValueAndValidity();\n    this.codFormStepFour.controls['payment_date'].updateValueAndValidity();\n    this.codFormStepFour.controls['quota_times'].updateValueAndValidity();\n    this.codFormStepFour.controls['total_price'].updateValueAndValidity();\n  }\n\n  startLocalStorageWork() {\n    this.controls.forEach(control => {\n      let localStorageValue: localStorageValues = this.readAndWriteLS(4, control.name);\n      this.codFormStepFour.controls[control.name].setValue(localStorageValue.value);\n      this.listenFormChanges(4, control.name, this.codFormStepFour.controls[control.name].valueChanges);\n    });\n  }\n\n  showTable() {\n    this.isCalculateQuotesButtonClicked = true;\n    const total_price = this.codFormStepFour.controls['total_price'].value;\n    if ((total_price === 'null') || this.codFormStepFour.invalid) {\n      Swal.fire({\n        title: 'Error table',\n        text: 'Debes ingresar el monto total de la matrícula y la cuota inicial',\n        icon: 'error'\n      })\n      return;\n    }\n\n    // Calcular cuotas\n    this.dataFinancing = [];\n    // const quotaValues = this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].quota_price;\n    // let params: CalculateQuotesParams = {\n    //   date: new Date(this.codFormStepFour.controls['payment_date'].value),\n    //   quotaValues,\n    //   quotaTimes: this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].fee_number,\n    //   totalPrice: this.codFormStepFour.controls['total_price'].value,\n    // }\n\n    let params: CalculateQuotesParams = {\n      date: new Date(this.codFormStepFour.controls['payment_date'].value),\n      quotaValues: Number(this.codFormStepFour.controls['quota_price'].value),\n      quotaTimes: Number(this.codFormStepFour.controls['fee_number'].value),\n      totalPrice: this.codFormStepFour.controls['total_price'].value,\n      courseType: Number(this.localStorageCOD.getCodFormData(1, 'course_type')),\n      englishLevel: Number(this.localStorageCOD.getCodFormData(1, 'english_level')),\n    }\n    this.dataFinancing = this.calculateQuotesService.calculateQuotes(params);\n    this.isFinancing = true;\n    this.financingData.emit(this.dataFinancing);\n  }\n\n  calculateNewQuotes() {\n    this.isCalculateQuotesButtonClicked = false;\n    this.isFinancing = false;\n    this.financingData.emit(null);\n  }\n\n  sendForm() {\n    this.codFormStepFour.markAllAsTouched();\n    if (this.codFormStepFour.invalid) return;\n    // Movernos al paso 5\n    this.changeStepEvent.emit(4);\n  }\n\n  isFinanced(): boolean {\n    return this.codFormStepFour.controls['payment_method'].value == 1;\n  }\n\n  // Eventos del select\n  selectPaymentMethod(paymentMethod: any) {\n    this.feeResponse = true;\n    this.thereArePlans = false;\n\n    if (paymentMethod !== '') {\n      const request: IObtainCodPricesRq = {\n        token:            this.baseService.getUserToken(),\n        course_type:      Number(this.localStorageCOD.getCodFormData(1, 'course_type')),\n        agreement:        Number(this.localStorageCOD.getCodFormData(1, 'agreement_by_category')),\n        course_modality:  Number(this.localStorageCOD.getCodFormData(1, 'course_modality')),\n        payment_method:   parseInt(paymentMethod)\n      }\n      this.commercialService.ObtainCodPrices(request).subscribe((response)=> {\n        if (response.data != null) {\n          const course_type = Number(this.localStorageCOD.getCodFormData(1, 'course_type'));\n          const english_level  = Number(this.localStorageCOD.getCodFormData(1, 'english_level'));\n          // Cursos técnicos que requieren filtrado especial\n          const technicalCourses = [3, 4, 5, 6, 7, 8, 21, 30, 33];\n          this.dataPrices = response.data\n           if (technicalCourses.includes(course_type)) {\n            // Calculamos los paid_levels permitidos basado en el english_level\n            const techEnglishLevels = [8, 9, 10, 11];\n            const levelIndex = techEnglishLevels.indexOf(english_level);\n            const levelsToShow = techEnglishLevels.length - levelIndex;\n\n            this.dataPrices = this.dataPrices.filter((item) => {\n                return item.paid_level <= levelsToShow\n            });\n          }\n          this.feeResponse = false;\n          this.thereArePlans = true;\n        }else {\n          this.thereArePlans = false;\n          this.feeResponse = false;\n          Swal.fire({\n            position: 'center',\n            icon: 'warning',\n            title:\n              '<p style=\"font-family: Poppins\"\">Oops.. no hay planes de pagos, \\n en el curso elegido.</p>',\n            showConfirmButton: false,\n            timer: 3000,\n          });\n          this.clearInputPayment();\n        }\n      });\n      this.codFormStepFour.controls['payment_method'].setValue(paymentMethod);\n      // this.getCodPricesByAgreement();\n    } else {\n      this.codFormStepFour.controls['payment_method'].setValue(null);\n    }\n  }\n\n  selectQuotas(quotas: string) {\n    if (quotas !== 'Número de cuotas') {\n      const codPrice: CodPrices[] = this.codPrices.filter(codPrice => codPrice.code === Number(quotas));\n      this.codFormStepFour.controls['quota_times'].setValue(codPrice[0].code);\n      this.codFormStepFour.controls['total_price'].setValue(codPrice[0].enrollment);\n      this.codFormStepFour.controls['program_price'].setValue(codPrice[0].financed_price);\n    } else {\n      this.codFormStepFour.controls['quota_times'].setValue(null);\n      this.codFormStepFour.controls['total_price'].setValue(null);\n      this.codFormStepFour.controls['program_price'].setValue(null);\n    }\n  }\n\n  cleanComponent(){\n    this.resetLocalStorage(this.controls);\n  }\n\n  selectLevels(dataPayment: any){\n    if (this.codFormStepFour.get('payment_method')?.value == 1) {\n      this.codFormStepFour.controls['quota_times'].setValue(dataPayment.code);\n      this.codFormStepFour.controls['total_price'].setValue(dataPayment.enrollment);\n      this.codFormStepFour.controls['program_price'].setValue(dataPayment.financed_price);\n      this.codFormStepFour.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n      this.codFormStepFour.controls['fee_number'].setValue(dataPayment.fee_number);\n      this.codFormStepFour.controls['quota_price'].setValue(dataPayment.quota_price);\n      this.updateValueAndValidity();\n    } else if(this.codFormStepFour.get('payment_method')?.value == 2){\n      this.codFormStepFour.controls['quota_times'].setValue(dataPayment.code);\n      this.codFormStepFour.controls['total_price'].setValue(dataPayment.enrollment);\n      this.codFormStepFour.controls['program_price'].setValue(dataPayment.normal_price);\n      this.codFormStepFour.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n      this.codFormStepFour.controls['fee_number'].setValue(dataPayment.fee_number);\n      this.codFormStepFour.controls['quota_price'].setValue(dataPayment.quota_price);\n      this.updateValueAndValidity();\n    }\n  }\n\n  clearInputPayment(){\n    this.codFormStepFour.controls['program_price'].setValue(null);\n    this.codFormStepFour.controls['quota_times'].setValue(null);\n    this.codFormStepFour.controls['total_price'].setValue(null);\n  }\n\n  setDataFromPreviusCodPrices(){\n    this.codFormStepFour.controls['payment_method'].setValue( this.initialData.cod_payment ? ((this.initialData.cod_payment.length == 1) ? 2 : 1) : 2)\n\n    if (this.codFormStepFour.get('payment_method')?.value == 1) {\n      this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.code : 0);\n      this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.enrollment : 0);\n      this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.financed_price : 0);\n      this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);\n      this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment ? this.initialData.cod_payment?.length : 0);\n      this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.quota_price: 0);\n      this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment ?  this.initialData.cod_payment[0]?.timely_date : new Date());\n      this.updateValueAndValidity();\n    } else if(this.codFormStepFour.get('payment_method')?.value == 2){\n      this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment ?  this.initialData.cod_price.code : 0);\n      this.codFormStepFour.controls['total_price'].setValue(0);\n      this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.normal_price : 0);\n      this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);\n      this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment ? 1  : 0);\n      this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_payment ? this.initialData.cod_price.normal_price : 0);\n      this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment ? this.initialData.cod_payment[0]?.timely_date: new Date());\n      this.updateValueAndValidity();\n    }\n\n    // this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);\n    // this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment.lenght == 1 ? this.initialData.cod_price.normal_price  : this.initialData.cod_price.financed_price);\n    // this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);\n    // this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);\n    // this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);\n    // this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment[0].timely_date);\n    // this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);\n  }\n\n}\n\n","<div *ngIf=\"isSemestral\" class=\"m-1 p-2 border-round-lg bg-blue-500 text-white\">\n  <strong>Nota: </strong>\n  El tipo de curso seleccionado fue semestral, por lo tanto el estudiante debe pagar matrícula y primera cuota (M&M)\n</div>\n\n<form autocomplete=\"off\" [formGroup]=\"codFormStepFour\" class=\"grid mt-2\">\n\n  <div class=\"col-12\">\n    <ipt-select\n      [initialValue]=\"codFormStepFour.controls['payment_method'].value\"\n      [control]=\"codFormStepFour.controls['payment_method']\"\n      (eventSelect)=\"selectPaymentMethod($event)\"\n      [data]=\"paymentMethods\"\n      [defaultText]=\"'Método de pago'\"\n      [disabledSel]=\"isDisabledSel\"\n    ></ipt-select>\n    <ipt-loader *ngIf=\"feeResponse\"></ipt-loader>\n\n    <div class=\"col-12\" *ngIf=\"thereArePlans\">\n      <p-table\n        [value]=\"dataPrices\"\n        [tableStyle]=\"{'min-width': '100%'}\"\n        [rowHover]=\"true\"\n      >\n        <ng-template pTemplate=\"caption\">\n          <div class=\"flex align-items-center\">\n             Seleccion de niveles a cancelar.\n          </div>\n        </ng-template>\n        <ng-template pTemplate=\"header\">\n          <tr>\n            <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cancelar</th>\n            <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cuotas</th>\n            <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Admin</th>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data>\n          <tr>\n            <td class=\"text-center\">{{ data.paid_level }} Nivel(es)</td>\n            <td class=\"text-center\">{{ data.fee_number }}</td>\n            <td class=\"pt-2 pb-2 text-center\">\n              <button\n                pButton\n                pRipple\n                icon=\"pi pi-money-bill\"\n                class=\"p-button-sm p-button-rounded\"\n                (click)=\"selectLevels(data)\"\n\n              ></button>\n            </td>\n          </tr>\n        </ng-template>\n      </p-table>\n    </div>\n\n    <!-- [initialValue]=\"codFormStepFour.controls['quota_times'].value\" -->\n    <!-- <ipt-select *ngIf=\"isFinanced();\"\n      [initialValue]=\"'1'\"\n      [control]=\"codFormStepFour.controls['quota_times']\"\n      (eventSelect)=\"selectQuotas($event)\"\n      [defaultText]=\"'Número de cuotas'\"\n      [data]=\"codPrices\"\n      ></ipt-select> -->\n    </div>\n\n  <div class=\"col-12\">\n    <ipt-input\n      [inputType]=\"'text'\"\n      [placeHolder]=\"'Monto total de la matrícula'\"\n      [control]=\"codFormStepFour.controls['total_price']\"\n      [withPipe]=\"true\"\n    ></ipt-input>\n  </div>\n\n  <div class=\"col-12\">\n    <ipt-input\n      [withPipe]=\"true\"\n      [inputType]=\"'text'\"\n      [control]=\"codFormStepFour.controls['program_price']\"\n      [placeHolder]=\"'Valor total del programa'\"\n    ></ipt-input>\n  </div>\n\n  <div class=\"col-12\">\n    <ipt-input\n      onfocus=\"(this.type='date')\"\n      [inputType]=\"'date'\"\n      [control]=\"codFormStepFour.controls['payment_date']\"\n      [placeHolder]=\"'Fecha de pago'\"\n    ></ipt-input>\n  </div>\n\n  <!-- Tabla de financiación -->\n   <div *ngIf=\"isFinancing && isRenovation === false\" class=\"container_tablet\">\n    <div class=\"col-12\" *ngIf=\"isFinancing\">\n      <p-table\n        [value]=\"dataFinancing\"\n        [tableStyle]=\"{'min-width': '100%'}\"\n        [rowHover]=\"true\"\n      >\n        <ng-template pTemplate=\"caption\">\n          <div class=\"flex align-items-center\">\n            Cálculo de cuotas\n            <button pButton class=\"p-button-sm ml-auto\" label=\"Nuevo cálculo\" (click)=\"calculateNewQuotes()\" [disabled]=\"isDisabledSel\" lab icon=\"pi pi-replay\"></button>\n          </div>\n        </ng-template>\n        <ng-template pTemplate=\"header\">\n          <tr>\n            <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">#</th>\n            <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Valor</th>\n            <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Fecha</th>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data>\n          <tr>\n            <td class=\"p-0 text-center text-sm\">{{ data[0] }}</td>\n            <td class=\"p-0 text-center text-sm\">{{ data[1] }}</td>\n            <td class=\"p-0 text-center text-sm\">{{ data[2] }}</td>\n          </tr>\n        </ng-template>\n      </p-table>\n    </div>\n  </div>\n  <!-- ---------------------- -->\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n  <span *ngIf=\"codFormStepFour.invalid && codFormStepFour.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span>\n  <div class=\"flex ml-auto gap-2\">\n    <button *ngIf=\"codFormStepFour.controls['payment_method'].value === '1'\" [disabled]=\"isFinancing || codFormStepFour.controls['payment_method'].value !== '1'\"type=\"submit\" class=\"ml-auto p-button-sm p-button-secondary\" (click)=\"showTable()\" pButton label=\"Calcular cuotas\" icon=\"pi pi-sliders-h\"></button>\n    <button [disabled]=\"!isFinancing && codFormStepFour.controls['payment_method'].value === '1'\" type=\"submit\" [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-sm'\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { BaseService } from '../../core/utils/base-service/base.service';\nimport { UserService } from '../../core/services/user-service/user-service';\nimport { getStudentRq } from '../../core/models/user/user-rq.model';\nimport Swal from 'sweetalert2';\n\n@Component({\n  selector: 'cod-modal-referred',\n  templateUrl: './modal-referred.component.html',\n  styleUrls: ['./modal-referred.component.css']\n})\nexport class ModalReferredComponent implements OnInit {\n  @Input() visibility: boolean = false;\n  @Output() userSelect = new EventEmitter<any>();\n\n  searchUserForm!: FormGroup;\n  userExists: boolean = false;\n  allUsers: any;\n  loading = [false, false, false, false];\n\n  constructor(\n    private fb: FormBuilder,\n    private baseService: BaseService,\n    private userService: UserService\n  ) {}\n\n  ngOnInit(): void {\n    this.initForm();\n  }\n\n  closeModal() {\n    this.visibility = false;\n    this.userSelect.emit(null);\n  }\n\n  initForm() {\n    this.searchUserForm = this.fb.group({\n      searchUser: ['',[Validators.required,Validators.minLength(4),Validators.maxLength(30)],],\n    });\n\n    const searchUserControl = this.searchUserForm.get('searchUser');\n    if (searchUserControl) {\n      searchUserControl.valueChanges.subscribe((value) => {\n        // this.modalClose.emit(false);\n      });\n    }\n  }\n\n  selectUser(data : any){\n    this.userSelect.emit(data);\n  }\n\n  load(index: any, form: FormGroup) {\n    this.loading[index] = true;\n    setTimeout(() => (this.loading[index] = false), 1000);\n    this.search(form);\n  }\n\n  search(form: FormGroup) {\n    let request: getStudentRq = {\n      token: this.baseService.getUserToken(),\n      param: form.value.searchUser,\n    };\n    if (form.value.searchUser != \"\") {\n      this.userService.obtainReferralUsers(request).subscribe((response) => {\n          if (response.data == null) {\n            this.userExists = false;\n            Swal.fire({\n              title: 'Oops...',\n              text: 'No hay usuarios con los parámetros ingresados',\n              icon: 'error',\n            });\n          } else {\n            this.userExists = true;\n            this.allUsers = response.data;\n          }\n        });\n    } else {\n      Swal.fire({\n        title: 'Oops...',\n        text: 'Debe digitar un parámetro para realizar la búsqueda',\n        icon: 'info',\n      });\n\n    }\n  }\n}\n","<main *ngIf=\"visibility\">\n  <div class=\"modal_container\">\n    <div class=\"header_modal\">\n      <h1>Datos de quien lo refiere</h1>\n      <button (click)=\"closeModal()\">x</button>\n    </div>\n    <div class=\"grid_container\">\n      <div>\n        <section\n          id=\"container\"\n          class=\"flex flex-column bg-white border-round-2xl\"\n        >\n          <form\n            autocomplete=\"off\"\n            (ngSubmit)=\"search(searchUserForm)\"\n            class=\"form\"\n            [formGroup]=\"searchUserForm\"\n          >\n            <input\n              placeholder=\"Buscar por nombre, documento o teléfono\"\n              [formControl]=\"$any(searchUserForm.controls['searchUser'])\"\n              type=\"text\"\n              pInputText\n            />\n            <p-button\n              type=\"submit\"\n              label=\"Buscar\"\n              icon=\"pi pi-search\"\n              (onClick)=\"load(0, searchUserForm)\"\n            ></p-button>\n          </form>\n        </section>\n\n        <div *ngIf=\"userExists\" class=\"referrerInformation\">\n          <section class=\"userList\">\n              <p-table\n                [value]=\"allUsers\"\n                [scrollable]=\"true\"\n                scrollHeight=\"150px\"\n                [tableStyle]=\"{'min-width': '50rem'}\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                      <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Documento</th>\n                      <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Nombres</th>\n                      <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Apellidos</th>\n                      <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Email</th>\n                      <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Telefono</th>\n                      <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Rol</th>\n                      <th class=\"bg-blue-500 text-white text-center w-2 p-0 m-0\">Admin</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-user>\n                    <tr>\n                        <td class=\"pt-2 pb-2 text-sm text-left\">{{user.id_card}}</td>\n                        <td class=\"pt-2 pb-2 text-sm text-left\">{{user.name}}</td>\n                        <td class=\"pt-2 pb-2 text-sm text-left\">{{user.last_name}}</td>\n                        <td class=\"pt-2 pb-2 text-sm text-left\">{{user.email}}</td>\n                        <td class=\"pt-2 pb-2 text-sm text-right\">{{user.phone_number}}</td>\n                        <td class=\"pt-2 pb-2 text-sm text-center\">{{user.role}}</td>\n                        <td class=\"pt-2 pb-2 min-w-min\" style=\"text-align: center\">\n                          <p-button\n                          icon=\"pi pi-chevron-circle-right\"\n                          (click)=\"selectUser(user)\"\n                        ></p-button>\n                        </td>\n                    </tr>\n                </ng-template>\n            </p-table>\n          </section>\n        </div>\n      </div>\n    </div>\n  </div>\n</main>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { CodFormControls } from '../../logic/cod-form-controls';\nimport { CodFormSteps, localStorageValues } from '../../logic/cod-form-steps';\nimport { IParametersAllRs } from '../../../core/models/parameters/parameters-rs.model';\n\n\n@Component({\n  selector: 'app-cod-form-step-five',\n  templateUrl: './cod-form-step-five.component.html',\n  styleUrls: ['./cod-form-step-five.component.css']\n})\nexport class CodFormStepFiveComponent extends CodFormSteps implements OnChanges {\n  @Input() userRole!: number;\n  @Input() initialData?: any;\n  @Input() isEditCod?: boolean;\n  @Input() isRenovation?: boolean;\n  @Input() parametersAll?:IParametersAllRs;\n  @Output() changeStepEvent = new EventEmitter<number>();\n  @Output() action = new EventEmitter<string>();\n\n  codFormStepFive!: FormGroup;\n  marketingReasons: any;\n  studyReasons: any;\n  errorMessage: string = 'Faltan campos por llenar.';\n  sendFormMsg!: string;\n  termsCheckboxStatus: boolean = false;\n  multiculturalities: any;\n  modalVisible: boolean = false;\n  visbleReferred: boolean = false;\n\n  // Controls del formulario\n  controls = new CodFormControls().controls[4];\n\n  constructor(\n    private fb: FormBuilder,\n  ) {\n    super();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.initForm();\n    this.startLocalStorageWork();\n    this.getParameters();\n    this.codFormStepFive.controls['terms'].valueChanges.subscribe(changes => {\n      this.termsCheckboxStatus = changes;\n      if (!this.termsCheckboxStatus) this.errorMessage = 'Debe marcar la casilla de términos y condiciones.'\n    })\n    // if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32) this.sendFormMsg = 'Editar COD';\n    if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32 ||\n        this.userRole === 40 || this.userRole === 41 || this.userRole === 42 ||\n        this.userRole === 50 || this.userRole === 51 || this.userRole === 52 ||\n        this.userRole === 1\n        ) this.isEditCod ? this.sendFormMsg = 'Editar COD' : this.sendFormMsg = 'Crear COD';\n    if (changes['initialData']) {\n      if (this.initialData != null) {\n        if (this.initialData.student != null || this.initialData != null) {\n          this.setDataFromPreviusCod();\n        }else{\n          this.setDataFromUserHistory();\n        }\n      }\n    }\n  }\n\n  getParameters() {\n    this.marketingReasons = this.parametersAll?.mkReasons;\n    this.studyReasons = this.parametersAll?.studyReasons;\n    this.multiculturalities = this.parametersAll?.Multiculturalism; \n  }\n\n  initForm() {\n    this.codFormStepFive = this.fb.group({\n      marketing_reasons:  ['', [Validators.required]],\n      observation:        [''],\n      study_reasons:      ['', [Validators.required]],\n      terms:              [false, [Validators.required]],\n      disability:         [''],\n      multiculturalism_1: [false, []],\n      multiculturalism_2: [false, []],\n      multiculturalism_3: [false, []],\n      multiculturalism_4: [false, []],\n      multiculturalism_5: [false, []],\n      multiculturalism_6: [false, []],\n      multiculturalism_7: [false, []],\n      health_regimen:     ['', [Validators.required]],\n      code_refers:        [''],\n      code_cod:           [''],\n      document_refers:    [{ value: '', disabled: true }],\n      name_refers:        [{ value: '', disabled: true }],\n      phone_refers:       [{ value: '', disabled: true }],\n      email_refers:       [{ value: '', disabled: true }],\n    });\n\n    this.codFormStepFive.controls['marketing_reasons'].valueChanges.subscribe(change => {\n      if (change === '1') {\n        this.modalVisible = true;\n        this.codFormStepFive.controls['code_refers'].setValidators([Validators.required]);\n        this.codFormStepFive.controls['code_refers'].updateValueAndValidity();\n      } else {\n        this.codFormStepFive.controls['code_refers'].clearValidators();\n        this.codFormStepFive.controls['code_refers'].updateValueAndValidity();\n        this.codFormStepFive.controls['code_refers'].setValue(null);\n        this.modalVisible = false;\n        this.visbleReferred = false;\n      }\n    })\n  }\n\n  startLocalStorageWork() {\n    this.controls.forEach(control => {\n      let localStorageValue: localStorageValues = this.readAndWriteLS(5, control.name);\n\n      // Solución al bug del checkbox\n      if (localStorageValue.control === 'terms') {\n        let nextValue: boolean = localStorageValue.value === 'true' ? true : false;\n        this.codFormStepFive.controls['terms'].setValue(nextValue);\n        this.termsCheckboxStatus = nextValue;\n      }\n      // -------------------------- //\n\n      this.codFormStepFive.controls[control.name].setValue(localStorageValue.value);\n      this.listenFormChanges(5, control.name, this.codFormStepFive.controls[control.name].valueChanges);\n    });\n\n    this.controls.filter(control => control.description === 'Multiculturalismo').forEach(control => {\n      let localStorageValue: localStorageValues = this.readAndWriteLS(5, control.name);\n      let nextValue: boolean = localStorageValue.value === 'true' ? true : false;\n      this.codFormStepFive.controls[control.name].setValue(nextValue);\n    })\n  }\n\n  getCheckboxControl(): FormControl {\n    return this.codFormStepFive.controls['terms'] as FormControl;\n  }\n\n  sendForm() {\n    this.codFormStepFive.markAllAsTouched();\n    if (this.codFormStepFive.invalid || this.termsCheckboxStatus === false) return;\n      if (this.userRole == 30 || this.userRole == 31 || this.userRole == 32 ||\n        this.userRole == 40 || this.userRole == 41 || this.userRole == 42 ||\n        this.userRole == 50 || this.userRole == 51 || this.userRole == 52 ||\n        this.userRole == 1) this.isEditCod ? this.action.emit('update') : this.action.emit('create');\n\n  }\n\n  cleanStorage(){\n    sessionStorage.clear();\n    this.startLocalStorageWork()\n  }\n\n  // Eventos del select\n  selectMarketingReasons(marketingReasons: any) {\n    if (marketingReasons !== '¿Cómo se enteró del programa?') {\n      this.codFormStepFive.controls['marketing_reasons'].setValue(marketingReasons);\n    } else {\n      this.codFormStepFive.controls['marketing_reasons'].setValue(null);\n    }\n  }\n\n  selectStudyReasons(studyReasons: any) {\n    if (studyReasons !== 'Motivo') {\n      this.codFormStepFive.controls['study_reasons'].setValue(studyReasons);\n    } else {\n      this.codFormStepFive.controls['study_reasons'].setValue(null);\n    }\n  }\n\n  setDataFromPreviusCod() {\n    this.codFormStepFive.controls['marketing_reasons'].setValue(this.initialData.aditional_information?.marketing_reasons);\n    this.codFormStepFive.controls['study_reasons'].setValue(this.initialData.aditional_information?.study_reasons);\n    this.codFormStepFive.controls['disability'].setValue(this.initialData.aditional_information?.disability);\n    this.codFormStepFive.controls['health_regimen'].setValue(this.initialData.aditional_information?.health_regimen);\n    this.codFormStepFive.controls['observation'].setValue(this.initialData.aditional_information?.observation);\n    this.codFormStepFive.controls['code_refers'].setValue(this.isRenovation === false ? this.initialData.cod_referral?.user_referred.code : null);\n    if (this.codFormStepFive.get('marketing_reasons')?.value == 1) {\n      this.visbleReferred = true;\n      // this.codFormStepFive.controls['code_refers'].setValue(this.initialData.cod_referral?.user_referred.code);\n      this.codFormStepFive.controls['document_refers'].setValue(this.initialData.cod_referral?.user_referred.id_card);\n      this.codFormStepFive.controls['name_refers'].setValue(this.initialData.cod_referral?.user_referred.name);\n      this.codFormStepFive.controls['phone_refers'].setValue(this.initialData.cod_referral?.user_referred.phone_number);\n      this.codFormStepFive.controls['email_refers'].setValue(this.initialData.cod_referral?.user_referred.email);\n    }else{\n      this.visbleReferred = false;\n      this.codFormStepFive.controls['code_refers'].setValue(null);\n      this.codFormStepFive.controls['document_refers'].setValue(null);\n      this.codFormStepFive.controls['name_refers'].setValue(null);\n      this.codFormStepFive.controls['phone_refers'].setValue(null);\n      this.codFormStepFive.controls['email_refers'].setValue(null);\n    }\n    this.codFormStepFive.controls['code_cod'].setValue(this.initialData.code);\n  }\n  setDataFromUserHistory() {\n    this.codFormStepFive.controls['marketing_reasons'].setValue(null);\n    this.codFormStepFive.controls['study_reasons'].setValue(null);\n    this.codFormStepFive.controls['disability'].setValue(null);\n    this.codFormStepFive.controls['health_regimen'].setValue(null);\n    this.codFormStepFive.controls['observation'].setValue(null);\n    this.codFormStepFive.controls['code_refers'].setValue(null);\n    this.codFormStepFive.controls['code_cod'].setValue(null);\n  }\n\n  cleanComponent(){\n    this.resetLocalStorage(this.controls);\n    this.codFormStepFive.reset();\n  }\n\n  referredUser(data: any){\n    this.modalVisible = false;\n    if (data) {\n      this.visbleReferred = true;\n      this.codFormStepFive.controls['code_refers'].setValue(data['code']);\n      this.codFormStepFive.controls['document_refers'].setValue(data['id_card']);\n      this.codFormStepFive.controls['name_refers'].setValue(data['name']);\n      this.codFormStepFive.controls['phone_refers'].setValue(data['phone_number']);\n      this.codFormStepFive.controls['email_refers'].setValue(data['email']);\n    } else {\n      this.visbleReferred = false;\n      this.codFormStepFive.controls['code_refers'].setValue(null);\n      this.codFormStepFive.controls['document_refers'].setValue(null);\n      this.codFormStepFive.controls['name_refers'].setValue(null);\n      this.codFormStepFive.controls['phone_refers'].setValue(null);\n      this.codFormStepFive.controls['email_refers'].setValue(null);\n      this.codFormStepFive.controls['marketing_reasons'].setValue(null);\n    }\n  }\n\n  openModalReferred(){\n    this.modalVisible = true;\n  }\n\n\n}\n","<form autocomplete=\"off\" [formGroup]=\"codFormStepFive\" class=\"grid\">\n  <div class=\"col-12 md:col-6\">\n    <cod-modal-referred\n    *ngIf=\"modalVisible\"\n    [visibility]=\"modalVisible\"\n    (userSelect)=\"referredUser($event)\"\n    ></cod-modal-referred>\n\n    <div class=\"container_referred flex flex-row justify-content-between align-items-end\">\n      <div class=\"containe_select1\">\n        <ipt-select\n          [control]=\"codFormStepFive.controls['marketing_reasons']\"\n          [initialValue]=\"codFormStepFive.controls['marketing_reasons'].value\"\n          (eventSelect)=\"selectMarketingReasons($event)\"\n          [data]=\"marketingReasons\"\n          [defaultText]=\"'¿Cómo se enteró del programa?'\"\n        ></ipt-select>\n      </div>\n      <p-button\n      *ngIf=\"visbleReferred\"\n      styleClass=\"p-button-sm w-max\"\n      label=\"Cambiar Referido\"\n      icon=\"pi pi-sync\"\n      (onClick)=\"openModalReferred()\"\n    ></p-button>\n    </div>\n\n    <ipt-input\n      [inputType]=\"'text'\"\n      [placeHolder]=\"'Discapacidad'\"\n      [control]=\"codFormStepFive.controls['disability']\"\n    ></ipt-input>\n  </div>\n  <div class=\"col-12 md:col-6\">\n    <ipt-select\n      [control]=\"codFormStepFive.controls['study_reasons']\"\n      [initialValue]=\"codFormStepFive.controls['study_reasons'].value\"\n      (eventSelect)=\"selectStudyReasons($event)\"\n      [data]=\"studyReasons\"\n      [defaultText]=\"'Motivo'\"\n    ></ipt-select>\n    <ipt-input\n      [inputType]=\"'text'\"\n      [placeHolder]=\"'Régimen de salud'\"\n      [control]=\"codFormStepFive.controls['health_regimen']\"\n    ></ipt-input>\n  </div>\n  <div class=\"col-12\">\n    <h3 *ngIf=\"visbleReferred\" class=\"referred_title\">Datos del referido</h3>\n    <div *ngIf=\"visbleReferred\" class=\"referred_user_data\">\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Documento'\"\n        [control]=\"codFormStepFive.controls['document_refers']\"\n      ></ipt-input>\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Nombres'\"\n        [control]=\"codFormStepFive.controls['name_refers']\"\n      ></ipt-input>\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Teléfono'\"\n        [control]=\"codFormStepFive.controls['phone_refers']\"\n      ></ipt-input>\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Email'\"\n        [control]=\"codFormStepFive.controls['email_refers']\"\n      ></ipt-input>\n    </div>\n    <span class=\"p-float-label\">\n      <textarea\n        id=\"float-input\"\n        rows=\"4\"\n        cols=\"30\"\n        pInputTextarea\n        formControlName=\"observation\"\n      ></textarea>\n      <label for=\"float-input\">Observaciones</label>\n    </span>\n    <div class=\"flex flex-wrap justify-content-between gap-2\">\n      <div\n        *ngFor=\"let option of multiculturalities; index as i\"\n        class=\"field-checkbox mt-4 flex align-items-center\"\n      >\n        <mat-checkbox\n          [formControlName]=\"'multiculturalism' + '_' + (i + 1)\"\n          class=\"example-margin\"\n        ></mat-checkbox>\n        <label [for]=\"option.code\">{{ option.name }}</label>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"col-12 p-4 font-bold\">\n    <p>\n      * El estudiante o titular se comprometen a cancelar las cuotas\n      establecidas en este contrato, los primeros 5 (cinco) días del mes. En\n      caso de querer retirarse, deberá informar por escrito 30 (treinta) días\n      antes y cancelar lo correspondiente hasta la fecha definida de retiro,\n      para poder obtener su paz y salvo.\n    </p>\n    <br /><br />\n    <div class=\"flex gap-2\">\n      <mat-checkbox\n        formControlName=\"terms\"\n        class=\"example-margin\"\n      ></mat-checkbox>\n      <!-- <p-checkbox [formControl]=\"getCheckboxControl()\"></p-checkbox> -->\n      <!-- <ipt-checkbox [control]=\"codFormStepFive.controls['terms']\" [checkboxOption]=\"termsCheckboxStatus\"></ipt-checkbox> -->\n      <p>\n        DECLARO HABER LEÍDO Y ACEPTO LOS TÉRMINOS Y CONDICIONES DE LAS POLÍTICAS\n        ESTABLECIDAS EN LA INSTITUCIÓN.\n      </p>\n    </div>\n  </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n  <span\n    *ngIf=\"\n      (codFormStepFive.invalid && codFormStepFive.touched) ||\n      (!termsCheckboxStatus && codFormStepFive.touched)\n    \"\n    class=\"\n      text-red-500\n      font-bold\n      text-center\n      mt-1\n      py-2\n      bg-red-100\n      w-full\n      border-round-xl\n    \"\n    >{{ errorMessage }}</span\n  >\n  <button\n  type=\"submit\"\n  [class]=\"isEditCod ? 'ml-auto yellow-300 p-button-sm' : 'ml-auto p-button-success p-button-sm'\"\n  (click)=\"sendForm()\"\n  pButton\n  [label]=\"sendFormMsg\"\n  icon=\"pi pi-check\"\n></button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport Swal from 'sweetalert2';\nimport { CreateCODRq, IUpdateCODRq } from '../../core/models/cod/cod-rq.model';\nimport { CommercialService } from '../../core/services/commercial-service/comercial.service';\nimport { BaseService } from '../../core/utils/base-service/base.service';\nimport { CodFormControls, Control } from '../logic/cod-form-controls';\nimport { LocalStorageCODService } from '../logic/local-storage-cod.service';\nimport { ParameterService } from '../../core/services/parameters-service/parameters.service';\nimport { IParametersAllRs } from '../../core/models/parameters/parameters-rs.model';\n\n@Component({\n  selector: 'ipt-cod-form',\n  templateUrl: './cod-form.component.html',\n  styleUrls: []\n})\nexport class CodFormComponent implements OnChanges, OnDestroy {\n\n  @Input() dataFromPreviusCodData?: any;\n  @Input() courseSelect?: any;\n  @Input() isNewCod!: boolean;\n  @Input() editCod!: boolean;\n  @Input() CourseSelectRenovation!:any;\n  @Input() isRenovation?:boolean;\n\n  @Output() okCreatedCOD = new EventEmitter<Boolean>();\n  subscription?: Subscription;\n\n  private allowedRoles: number[] = [\n    1, 30, 31, 32, 40, 41, 42, 50, 51, 52,\n  ];\n\n  public currentStep: number = 0;\n  public formTitle: string = 'Formulario para creación del COD';\n  public userRole: number;\n  public formSteps: number = 5;\n  public financingData?: any[];\n  public isLoading: boolean = false;\n  public loaderMessage: string = '';\n  public codCreationSubscription: Subscription | null = null;\n  public parametersAll?:IParametersAllRs;\n\n  constructor(\n    private baseService: BaseService,\n    private localStorageCOD: LocalStorageCODService,\n    private codFormControls: CodFormControls,\n    private commercialService: CommercialService,\n    private parameterService: ParameterService,\n  ) {\n    this.userRole = this.baseService.getUserRole();\n    this.getParameters();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['editCod'] && this.dataFromPreviusCodData) {\n      if (this.editCod) {\n        if (!this.dataFromPreviusCodData.edit_course_payment) {\n          Swal.fire({\n            title: 'Querido asesor',\n            text: 'Solo puede editar Datos del estudiante',\n            icon: 'warning'\n          })\n        }\n        this.formTitle = 'Formulario para verificar y editar información del COD actual';\n      } else if (this.dataFromPreviusCodData?.cod_renovation == false && this.editCod == false) {\n        this.formTitle = 'Formulario para creación del COD';\n      }else if(this.dataFromPreviusCodData.cod_renovation == true && this.editCod == false){\n        this.formTitle = 'Formulario para la renovacion del COD';\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n\n  allowedRole(): boolean {\n    return this.allowedRoles.includes(this.userRole);\n  }\n\n  getCodbyCode() {\n    // TODO: Traer COD por código y pintarlo\n  }\n\n\n  saveFinancingData(data: any[]) {\n    if (data) {\n      const dates: string[] = [];\n      data.forEach(p => {\n        const date = p[2];\n        dates.push(date);\n      })\n      this.financingData = dates;\n    }\n  }\n\n  getFormAction(action: string) {\n    if (this.isRenovation ==true) {\n      this.financingData=[];\n    }else{\n      if (!this.financingData  && this.localStorageCOD.getCodFormData(4, 'payment_method') === '1') {\n        Swal.fire({\n          title: 'Querido asesor',\n          text: 'Debe hacer el cálculo de las cuotas en el paso 4',\n          icon: 'error'\n        })\n        return;\n      }\n    }\n    const totalData: any[] = [];\n\n    this.subscription = this.codFormControls.getControlValues().subscribe((controls) => {\n        for (let i = 1; i <= this.formSteps; i++) {\n          let controlsByStep: Control[] = controls[i-1];\n            controlsByStep.forEach(control => {\n              let value = this.localStorageCOD.getCodFormData(i, control.name);\n              // Cambiar True/False del multiculturalismo 1/0\n              if (value === 'false' && control.description === 'Multiculturalismo') {\n                totalData.push({\n                  control: control.name,\n                  isRequired: control.required,\n                  value: '0',\n                  description: control.description\n                })\n              } else if (value === 'true' && control.description === 'Multiculturalismo') {\n                totalData.push({\n                  control: control.name,\n                  isRequired: control.required,\n                  value: '1',\n                  description: control.description\n                })\n              } else {\n                totalData.push({\n                  control: control.name,\n                  isRequired: control.required,\n                  value,\n                  description: control.description\n                })\n              }\n            });\n      }\n\n      // Validar errores\n      for (let i = 0; i < totalData.length; i++) {\n        const element = totalData[i];\n        if (!element.value && element.isRequired) {\n          Swal.fire({\n            title: 'Error Form Action Validate Error',\n            text: `Revisar el campo: \"${element.description}\"`,\n            icon: 'error'\n          });\n          break;\n        }\n      }\n\n      if (action === 'create') this.createCOD(totalData);\n      if (action === 'update') this.updateCOD(totalData);\n    })\n\n    this.subscription.unsubscribe();\n  }\n\n  updateCOD(totalData: any[]) {\n    if (this.codCreationSubscription && !this.codCreationSubscription.closed) {\n      return;\n    }\n    this.isLoading = true;\n    this.loaderMessage = 'Editando COD, espere un momento'\n    let request: IUpdateCODRq = this.getUpdateCOD(totalData);\n    this.commercialService.updateCOD(request).subscribe({\n      next: (response: any) => {\n        if (response.message.code === 1) {\n          this.isLoading = false;\n          this.loaderMessage = '';\n          Swal.fire({\n            title: 'Perfecto!',\n            text: 'El COD ha sido Editado exitosamente.',\n            icon: 'success'\n          })\n          this.localStorageCOD.clearData();\n          this.okCreatedCOD.emit(true);\n        } else if (response.message.code === 4) {\n          this.isLoading = false;\n          this.loaderMessage = '';\n          const errorMessages = (response.data.errors as any[]).map(error => `- ${error.message}`).join('<br>');\n\n          Swal.fire({\n            title: 'Revisar lo seleccionado en los campos',\n            html: `${errorMessages}`,\n            icon: 'warning'\n          });\n        } else {\n          this.isLoading = false;\n          this.loaderMessage = '';\n\n          Swal.fire({\n            title: 'Warning!',\n            text: response.message.message,\n            icon: 'error'\n          })\n        }\n      },\n      error: (err: any) => {\n        this.isLoading = false;\n        this.loaderMessage = '';\n        Swal.fire({\n          title: 'Error in cod creation',\n          text: err.message,\n          icon: 'error'\n        })\n      },\n      complete: () => {\n        this.codCreationSubscription = null;\n      }\n    })\n\n  }\n\n  createCOD(totalData: any[]) {\n    if (this.codCreationSubscription && !this.codCreationSubscription.closed) {\n      return;\n    }\n    this.isLoading = true;\n    this.loaderMessage = 'Creando COD, espere un momento'\n    let request: CreateCODRq = this.getCreateCOD(totalData);\n    this.commercialService.createCOD(request).subscribe({\n      next: (response: any) => {\n        if (response.message.code === 1) {\n          this.isLoading = false;\n          this.loaderMessage = '';\n          Swal.fire({\n            title: 'Perfecto!',\n            text: 'El COD ha sido creado exitosamente.',\n            icon: 'success'\n          })\n          this.localStorageCOD.clearData();\n          this.okCreatedCOD.emit(true);\n        }else if(response.message.code === 3){\n          let alertHtml = `\n          <div class=\"my-custom-alert\">\n              <h2>Warning!</h2>\n          `;\n            if (!response.data.warning.average_score) {\n                alertHtml += `<p>No pasó el promedio final</p><br>`;\n            }\n            if (!response.data.warning.non_attendance) {\n                alertHtml += `<p>Tiene más del 25% de inasistencias</p><br>`;\n            }\n            if (!response.data.warning.outstanding_payments) {\n                alertHtml += `<p>Tiene pagos pendientes</p>`;\n            }\n          alertHtml += `</div>`;\n          Swal.fire({\n            html: alertHtml,\n            icon: 'error',\n            // showCancelButton: true,\n            confirmButtonText: 'Confirmar',\n            // cancelButtonText: 'Cancelar',\n          })\n          this.isLoading = false;\n        } else if (response.message.code === 4) {\n          this.isLoading = false;\n          this.loaderMessage = '';\n          const errorMessages = (response.data.errors as any[]).map(error => `- ${error.message}`).join('<br>');\n\n          Swal.fire({\n            title: 'Revisar lo seleccionado en los campos',\n            html: `${errorMessages}`,\n            icon: 'warning'\n          });\n        } else {\n          this.isLoading = false;\n          this.loaderMessage = '';\n\n          Swal.fire({\n            title: 'Warning!',\n            text: response.message.message,\n            icon: 'error'\n          })\n        }\n      },\n      error: (err: any) => {\n        this.isLoading = false;\n        this.loaderMessage = '';\n        Swal.fire({\n          title: 'Error in cod creation',\n          text: err.message,\n          icon: 'error'\n        })\n      },\n      complete: () => {\n        this.codCreationSubscription = null;\n      }\n    })\n\n  }\n\n  getCreateCOD(data: any[]): CreateCODRq {\n    let request: CreateCODRq = {\n      token: this.baseService.getUserToken(),\n      student_name: data.filter(data => data.control === 'student_name')[0].value,\n      student_last_name: data.filter(data => data.control === 'student_last_name')[0].value,\n      nickname: data.filter(data => data.control === 'nickname')[0].value,\n      student_email: data.filter(data => data.control === 'student_email')[0].value,\n      student_phone_indicative: data.filter(data => data.control === 'student_phone_indicative')[0].value,\n      student_phone_number: data.filter(data => data.control === 'student_phone_number')[0].value,\n      gender: data.filter(data => data.control === 'gender')[0].value,\n      birthdate: data.filter(data => data.control === 'birthdate')[0].value,\n      city: data.filter(data => data.control === 'city')[0].value,\n      student_id_card_type: data.filter(data => data.control === 'student_id_card_type')[0].value,\n      student_id_card: data.filter(data => data.control === 'student_id_card')[0].value,\n      password: data.filter(data => data.control === 'password')[0].value,\n      needAtendant: data.filter(data => data.control === 'needAtendant')[0].value,\n      parent_name: data.filter(data => data.control === 'parent_name')[0].value,\n      parent_last_name: data.filter(data => data.control === 'parent_last_name')[0].value,\n      parent_id_card_type: data.filter(data => data.control === 'parent_id_card_type')[0].value,\n      parent_id_card: data.filter(data => data.control === 'parent_id_card')[0].value,\n      parent_phone_indicative: data.filter(data => data.control === 'parent_phone_indicative')[0].value,\n      parent_phone_number: data.filter(data => data.control === 'parent_phone_number')[0].value,\n      parent_occupation: data.filter(data => data.control === 'parent_occupation')[0].value,\n      parent_office_address: data.filter(data => data.control === 'parent_address')[0].value,\n      social_stratum: data.filter(data => data.control === 'stratum')[0].value,\n      civil_status: data.filter(data => data.control === 'civil_status')[0].value,\n      educational_level: data.filter(data => data.control === 'grade')[0].value,\n      student_address: data.filter(data => data.control === 'student_address')[0].value,\n      student_occupation: data.filter(data => data.control === 'student_occupation')[0].value,\n      disability: data.filter(data => data.control === 'disability')[0].value,\n      health_regimen: data.filter(data => data.control === 'health_regimen')[0].value,\n      marketing_reasons: data.filter(data => data.control === 'marketing_reasons')[0].value,\n      study_reasons: data.filter(data => data.control === 'study_reasons')[0].value,\n      observation: data.filter(data => data.control === 'observation')[0].value,\n      multiculturalism_1: data.filter(data => data.control === 'multiculturalism_1')[0].value,\n      multiculturalism_2: data.filter(data => data.control === 'multiculturalism_2')[0].value,\n      multiculturalism_3: data.filter(data => data.control === 'multiculturalism_3')[0].value,\n      multiculturalism_4: data.filter(data => data.control === 'multiculturalism_4')[0].value,\n      multiculturalism_5: data.filter(data => data.control === 'multiculturalism_5')[0].value,\n      multiculturalism_6: data.filter(data => data.control === 'multiculturalism_6')[0].value,\n      availible_courses: data.filter(data => data.control === 'availible_courses')[0].value,\n      course_type: data.filter(data => data.control === 'course_type')[0].value,\n      agreement_by_category: data.filter(data => data.control === 'agreement_by_category')[0].value,\n      english_level: data.filter(data => data.control === 'english_level')[0].value,\n      payment_method: data.filter(data => data.control === 'payment_method')[0].value,\n      quota_times: data.filter(data => data.control === 'quota_times')[0].value,\n      payment_date: data.filter(data => data.control === 'payment_date')[0].value,\n      payment_dates: this.financingData!,\n      program_price: data.filter(data => data.control === 'program_price')[0].value,\n      total_price: data.filter(data => data.control === 'total_price')[0].value,\n      paid_level: data.filter(data => data.control === 'paid_level')[0].value,\n      terms: data.filter(data => data.control === 'terms')[0].value,\n      re_password: data.filter(data => data.control === 're_password')[0].value,\n      age: data.filter(data => data.control === 'age')[0].value,\n      country: data.filter(data => data.control === 'country')[0].value,\n      state: data.filter(data => data.control === 'state')[0].value,\n      academic_plan: data.filter(data => data.control === 'academic_plan')[0].value,\n      code_refers: data.filter(data => data.control === 'code_refers')[0].value,\n    }\n    return request;\n  }\n\n  getUpdateCOD(data: any[]): IUpdateCODRq {\n    let request: IUpdateCODRq = {\n      token: this.baseService.getUserToken(),\n      student_name: data.filter(data => data.control === 'student_name')[0].value,\n      student_last_name: data.filter(data => data.control === 'student_last_name')[0].value,\n      nickname: data.filter(data => data.control === 'nickname')[0].value,\n      student_email: data.filter(data => data.control === 'student_email')[0].value,\n      student_phone_indicative: data.filter(data => data.control === 'student_phone_indicative')[0].value,\n      student_phone_number: data.filter(data => data.control === 'student_phone_number')[0].value,\n      gender: data.filter(data => data.control === 'gender')[0].value,\n      birthdate: data.filter(data => data.control === 'birthdate')[0].value,\n      city: data.filter(data => data.control === 'city')[0].value,\n      student_id_card_type: data.filter(data => data.control === 'student_id_card_type')[0].value,\n      student_id_card: data.filter(data => data.control === 'student_id_card')[0].value,\n      needAtendant: data.filter(data => data.control === 'needAtendant')[0].value,\n      parent_name: data.filter(data => data.control === 'parent_name')[0].value,\n      parent_last_name: data.filter(data => data.control === 'parent_last_name')[0].value,\n      parent_id_card_type: data.filter(data => data.control === 'parent_id_card_type')[0].value,\n      parent_id_card: data.filter(data => data.control === 'parent_id_card')[0].value,\n      parent_phone_indicative: data.filter(data => data.control === 'parent_phone_indicative')[0].value,\n      parent_phone_number: data.filter(data => data.control === 'parent_phone_number')[0].value,\n      parent_occupation: data.filter(data => data.control === 'parent_occupation')[0].value,\n      parent_office_address: data.filter(data => data.control === 'parent_address')[0].value,\n      social_stratum: data.filter(data => data.control === 'stratum')[0].value,\n      civil_status: data.filter(data => data.control === 'civil_status')[0].value,\n      educational_level: data.filter(data => data.control === 'grade')[0].value,\n      student_address: data.filter(data => data.control === 'student_address')[0].value,\n      student_occupation: data.filter(data => data.control === 'student_occupation')[0].value,\n      disability: data.filter(data => data.control === 'disability')[0].value,\n      health_regimen: data.filter(data => data.control === 'health_regimen')[0].value,\n      marketing_reasons: data.filter(data => data.control === 'marketing_reasons')[0].value,\n      study_reasons: data.filter(data => data.control === 'study_reasons')[0].value,\n      observation: data.filter(data => data.control === 'observation')[0].value,\n      multiculturalism_1: data.filter(data => data.control === 'multiculturalism_1')[0].value,\n      multiculturalism_2: data.filter(data => data.control === 'multiculturalism_2')[0].value,\n      multiculturalism_3: data.filter(data => data.control === 'multiculturalism_3')[0].value,\n      multiculturalism_4: data.filter(data => data.control === 'multiculturalism_4')[0].value,\n      multiculturalism_5: data.filter(data => data.control === 'multiculturalism_5')[0].value,\n      multiculturalism_6: data.filter(data => data.control === 'multiculturalism_6')[0].value,\n      availible_courses: data.filter(data => data.control === 'availible_courses')[0].value,\n      course_type: data.filter(data => data.control === 'course_type')[0].value,\n      agreement_by_category: data.filter(data => data.control === 'agreement_by_category')[0].value,\n      english_level: data.filter(data => data.control === 'english_level')[0].value,\n      payment_method: data.filter(data => data.control === 'payment_method')[0].value,\n      quota_times: data.filter(data => data.control === 'quota_times')[0].value,\n      payment_date: data.filter(data => data.control === 'payment_date')[0].value,\n      payment_dates: this.financingData!,\n      program_price: data.filter(data => data.control === 'program_price')[0].value,\n      total_price: data.filter(data => data.control === 'total_price')[0].value,\n      paid_level: data.filter(data => data.control === 'paid_level')[0].value,\n      terms: data.filter(data => data.control === 'terms')[0].value,\n      age: data.filter(data => data.control === 'age')[0].value,\n      country: data.filter(data => data.control === 'country')[0].value,\n      state: data.filter(data => data.control === 'state')[0].value,\n      academic_plan: data.filter(data => data.control === 'academic_plan')[0].value,\n      code_refers: this.parseNumber(data.filter(data => data.control === 'code_refers')[0].value),\n      code_cod: data.filter(data => data.control === 'code_cod')[0].value,\n    }\n    return request;\n  }\n\n  changeStep(step: number) {\n    this.currentStep = step;\n  }\n\n  parseNumber(value: any): number | null {\n    const parsedValue = parseFloat(value);\n    return isNaN(parsedValue) ? null : parsedValue;\n  }\n\n  getParameters(){\n    this.parameterService.getAllParametersCodForm().subscribe((response) => {\n      this.parametersAll = response.data;\n    });\n  }\n}\n","<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n  <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n  <span *ngIf=\"!editCod && !dataFromPreviusCodData?.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n  <span *ngIf=\"!editCod && dataFromPreviusCodData?.cod_renovation == true\" class=\"p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n  <div *ngIf=\"parametersAll !== null\">\n    <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n      <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n        <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" [courseSelectRenovation]=\"CourseSelectRenovation\" [isRenovation]=\"isRenovation\" [parametersAll]=\"parametersAll\" class=\"p-1\"></app-cod-form-step-one>\n      </p-tabPanel>\n      <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n        <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" [parametersAll]=\"parametersAll\" class=\"p-1\"></app-cod-form-step-two>\n      </p-tabPanel>\n      <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n        <app-cod-form-step-three  (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" [parametersAll]=\"parametersAll\" class=\"p-1\"></app-cod-form-step-three>\n      </p-tabPanel>\n      <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n        <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\" [isRenovation]=\"isRenovation\"></app-cod-form-step-four>\n      </p-tabPanel>\n      <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n        <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" [isRenovation]=\"isRenovation\" class=\"p-1\" [parametersAll]=\"parametersAll\"></app-cod-form-step-five>\n      </p-tabPanel>\n    </p-tabView>\n  </div>\n\n</div>\n\n<ng-template #Unauthorized>\n  <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n    No tienes los permisos para acceder a esta funcionalidad, comunícate con el desarrollador.\n  </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MessageService } from 'primeng/api';\nimport { TabViewModule } from 'primeng/tabview';\nimport { ComponentsModule } from '../components/components.module';\nimport { CodDocumentsSectionComponent } from './cod-documents-section/cod-documents-section.component';\n\nimport { CodFormComponent } from './cod-form/cod-form.component';\nimport { CodFormStepFiveComponent } from './steps/cod-form-step-five/cod-form-step-five.component';\nimport { CodFormStepFourComponent } from './steps/cod-form-step-four/cod-form-step-four.component';\nimport { CodFormStepOneComponent } from './steps/cod-form-step-one/cod-form-step-one.component';\nimport { CodFormStepTwoComponent } from './steps/cod-form-step-two/cod-form-step-two.component';\nimport { CodFormStepThreeComponent } from './steps/cod-form-step-three/cod-form-step-three.component';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { TableModule } from 'primeng/table';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { ModalReferredComponent } from './modal-referred/modal-referred.component';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    TabViewModule,\n    ComponentsModule,\n    MatCheckboxModule,\n    ReactiveFormsModule,\n    TableModule,\n    ButtonModule,\n    InputTextareaModule,\n    InputTextModule\n  ],\n  exports: [\n    CodFormComponent,\n    CodDocumentsSectionComponent,\n    CodFormStepOneComponent,\n    CodFormStepTwoComponent,\n    CodFormStepThreeComponent,\n    CodFormStepFourComponent,\n    CodFormStepFiveComponent,\n  ],\n  declarations: [\n    CodFormComponent,\n    CodDocumentsSectionComponent,\n    CodFormStepOneComponent,\n    CodFormStepTwoComponent,\n    CodFormStepThreeComponent,\n    CodFormStepFourComponent,\n    CodFormStepFiveComponent,\n    ModalReferredComponent,\n  ],\n  providers: [\n    MessageService\n  ],\n})\nexport class CodModule { }\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\n@Injectable()\nexport class RedirectGuard implements CanActivate {\n  constructor(private router: Router) {}\n\n  canActivate( route: ActivatedRouteSnapshot, state: RouterStateSnapshot ): boolean {\n    window.location.href = route.data['externalUrl'];\n    return true;\n  }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SwitchService {\n\n  constructor() { }\n\n  $modal = new EventEmitter<any>();\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n  CopyExamRq,\n  CreateAnswerRq,\n  CreateQuestionRq,\n  CreateSectionRq,\n  CreateSectionWithAllRq,\n  Exam,\n  GetAllExamsRq,\n  GetAllSectionsRq,\n  GetQuestionsBySectionRq,\n  getQuestionsBySectionsRq,\n  UpdateAnswerRq,\n  UpdateExamRq,\n  UpdateExamStatusRq,\n  UpdateQuestionRq,\n  UpdateQuestionStateRq,\n  UpdateSectionMediaRq,\n  UpdateSectionRq,\n  UpdateSectionStateRq,\n} from '../../models/test/test.model';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class TestService extends IPTGeneralService{\n  private SERVICE_URL = 'test/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  // ---------------------- EXÁMENES ---------------------- //\n  createExam(exam: Exam): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/exam';\n    this.generateRequestParams(exam);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  //Este servicio solo trae todos los examenes pero del autor que los hizo \n  getAllExams(params: GetAllExamsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/all/exam';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateExam(params: UpdateExamRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'update/exam';\n    this.generateRequestParams(params);\n    return this.http.put(serviceUrl, this.httpOptions);\n  }\n\n  updateExamStatus(params: UpdateExamStatusRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'update/exam/status';\n    this.generateRequestParams(params);\n    return this.http.put(serviceUrl, this.httpOptions);\n  }\n\n  copyExam(params: CopyExamRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'copy/exam';\n    this.generateRequestParams(params);\n    return this.http.put(serviceUrl, this.httpOptions);\n  }\n\n  getExamByCode(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/exam/by/code/' + code;\n    return this.http.get(serviceUrl);\n  }\n\n  // ---------------------- SECCIONES ---------------------- //\n  createSectionWithAll(params: CreateSectionWithAllRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/section/with/all';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  createSection(params: CreateSectionRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/section';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllSections(params: GetAllSectionsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/all/sections';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateSection(params: UpdateSectionRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'update/section';\n    this.generateRequestParams(params);\n    return this.http.put(serviceUrl, this.httpOptions);\n  }\n\n  updateSectionMedia(params: UpdateSectionMediaRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/section/media';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateSectionState(params: UpdateSectionStateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'update/section/state';\n    this.generateRequestParams(params);\n    return this.http.put(serviceUrl, this.httpOptions);\n  }\n\n  getSectionsByExam(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/sections/by/exam/' + code;\n    return this.http.get(serviceUrl);\n  }\n\n  // ---------------------- PREGUNTAS ---------------------- //\n  createQuestion(params: CreateQuestionRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/question';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateQuestion(params: UpdateQuestionRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'update/question';\n    this.generateRequestParams(params);\n    return this.http.put(serviceUrl, this.httpOptions);\n  }\n\n  getQuestionsBySections(params: getQuestionsBySectionsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/questions/by/sections';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getQuestionsBySection(params: GetQuestionsBySectionRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/questions/by/section';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  // ---------------------- RESPUESTAS ---------------------- //\n  createAnswer(params: CreateAnswerRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/answer';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateAnswer(params: UpdateAnswerRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'update/answer';\n    this.generateRequestParams(params);\n    return this.http.put(serviceUrl, this.httpOptions);\n  }\n\n  getAnswersByQuestion(code: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/answers/by/question/' + code;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  updateQuestionState(params: UpdateQuestionStateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'update/question/state';\n    this.generateRequestParams(params);\n    return this.http.put(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getStrategyByUserCommercialRq, CreateObservationsRq } from '../../models/marketing/marketing.model';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class MarketingService extends IPTGeneralService{\n\n  private SERVICE_URL = 'commercial/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getStrategyByUserCommercial(user: getStrategyByUserCommercialRq): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'post/contact/strategy/byaviser';\n    this.generateRequestParams(user);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getObservationsContact(codeContact: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/contact/observation/strategy/bycode/' + codeContact;\n    return this.http.get(serviceUrl);\n  }\n\n  createObservations(params: CreateObservationsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/contact/observation/create';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getUserStatistics(userToken: getStrategyByUserCommercialRq): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'get/contact/strategy/statistics';\n    this.generateRequestParams(userToken);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getTopAdviser(): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'get/contact/strategy/topadviser';\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  getMovementStatus(): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'get/contact/strategy/movements/status';\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  getgroupSignupStatus(): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'get/contact/strategy/group/signup';\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n  obtainAllTypeSocialNetworks(): Observable<any> {\n    let serviceUrl =  this.SERVICE_URL + 'post/obtain/type/social/network';\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getdiscountAllRq, DiscountRq, DiscountUpdateRq, IObtainAllCoursewallet, IAssignRequestRq, IObtainAvailableCourseRs, IGetCodByPaymentPlanRq, IUpdateAmountCodPaymentsRq, IParamsUpdateDateCodPaymentsRq, ICancelStudentReceiptRq, ICancelledReceiptByDateRq, IPaymentsReceivedByUserRq, IObtainCourseByCoodDiffParamRq, NameCommonExpenses, IObtainPaymentTranHistoryRq, IObtainStudentPaymentByDiffParamRq, InfoCashClosingRq, IcashClosingDateRq, IcashClosingRq, IpaymentBillEgressRq, IncomesAndEgressRq, IObatinDetailedIncomeByUserAndDateRq, IObatinBalacesByCoodinatorRq, SendEmailPayment,SendEmailPaymentCancellationRS, IPaymentCorrelativeRq, IObtainGatewayPaymentRecordRq, IUpdateEpaycoPaymentRq, IElectronicInvoiceRS, IAccountsBalanceRq, IGetFullPaymentInformationRq, IGetFullPaymentInformationRs, ISearchPaymentBillRq, ISearchPaymentBillRs, IGetSummaryByCoordinatorRq } from '../../models/budget/budget.model';\nimport { IFullCodStudentOverdueByCoordinatorRq, IPaymentOverdueByCoordinatorCourseRq, IPaymentOverdueByCoordinatorRq, IPaymentReferenceRq, ITransfer, ITransferAssignImage, ITransferCreateRq, ITransferDeleteRq, ITransferGetAllRq, ITransferGetRq, ITransferSearchRq, ITransferShowImageRq, ITransferStatusUpdateRq, ITransferUpdateRq, PaymentBillRq, PaymentBillRq2, PriceByTypeServiceRq,IDeleteCodPaymentsRq,ICreateCodPaymentsRq, ITransferStatusUpdateRequestRq, IUpdateElectronicInvoiceRq, IValidationOfTransfersByNumberRq } from '../../models/payment/payment-rq.model';\nimport { IgetCoursesFinishAndunassignedRq } from '../../models/reports/reports.model';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { ICodPaymentRq } from '../../models/cod/cod-rq.model';\nimport { ICreateTransferRq, ISearchTransferRq, IUpdateTransferRq } from '../../models/transfer/transfer.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BudgetService extends IPTGeneralService{\n\n  private SERVICE_URL = 'budget/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getAllDiscount(user: getdiscountAllRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/discounts/coupon/all';\n    this.generateRequestParams(user);\n    return this.http.post(serviceUrl,this.httpOptions);\n  }\n  createDiscount(params: DiscountRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/discount/coupon/create';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  updateDiscount(params: DiscountUpdateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/discount/coupon/update';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getPaymentStudentsByCode(codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/payment/cod/student/by/code/' + codeStudent;\n    return this.http.get(serviceUrl);\n  }\n\n  getPaymentWalletByCampus(codeCampus: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/payment/wallet/by/campus/' + codeCampus;\n    return this.http.get(serviceUrl);\n  }\n\n  paymentBillDues(params: PaymentBillRq2): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/payment/bill/register/dues';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  paymentBillServices(params: PaymentBillRq2): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/payment/bill/register/services';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getPaymentBillAll(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/payment/bill/canceled/all';\n    return this.http.get(serviceUrl);\n  }\n\n  getPaymentBillByCode(codePayment: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL +  'get/payment/bill/canceled/by/code/' + codePayment;\n    return this.http.get(serviceUrl);\n  }\n\n  getPaymentBillByStudent(codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL +  'get/payment/bill/canceled/by/student/' + codeStudent;\n    return this.http.get(serviceUrl);\n  }\n\n  getPaymentBillByReference(reference: string): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/payment/bill/canceled/by/reference/' + reference;\n    return this.http.get(serviceUrl);\n  }\n\n\n  getPriceByTypeService(params: PriceByTypeServiceRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/price/by/type/service';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCoursesByCoordinator(params: IObtainAllCoursewallet): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/wallet/user/by/coordinator';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getWalletByCodeUser (codeUser: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/wallet/by/code/user/' + codeUser;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n  getpaymentBillByWalletCode (codeWallet: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/obtain/payment/bill/by/wallets/by/' + codeWallet;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n  getpaymentBillIncome (codeWallet: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/payment/bill/wallets/code/filter/income/' + codeWallet;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n  getpaymentBillEgress (codeWallet: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/payment/bill/wallets/code/filter/egress/' + codeWallet;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  getPaymentOverdueStudent(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL +  'get/payment/overdue/all/student';\n    return this.http.get(serviceUrl);\n  }\n\n  getDayPaymentOverdueStudent(codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/day/payment/overdue/student/by/code/' + codeStudent;\n    return this.http.get(serviceUrl);\n  }\n\n  getPaymentOverdueCourseByCoordinator(params: IPaymentOverdueByCoordinatorRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/payment/overdue/course/by/coordinator';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getPaymentOverdueStudentByCoordinator(params: IPaymentOverdueByCoordinatorRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/payment/overdue/student/by/coodinator';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getPaymentOverdueStudentByCoordinatorAndCourseCode(params: IPaymentOverdueByCoordinatorCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/payment/overdue/student/by/coodinatorcourse';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getObtainCodStudentByCoordinator(params: IFullCodStudentOverdueByCoordinatorRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/stundent/by/coordinator';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCoursesFinishAndunassigned(params: IgetCoursesFinishAndunassignedRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'get/course/by/user/budget';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  // AssingCourse(params: any): Observable<any> {\n  //   let serviceUrl = this.SERVICE_URL + 'post/course/by/code/user/budget/assign';\n  //   this.generateRequestParams(params);\n  //   return this.http.post(serviceUrl, this.httpOptions);\n  // }\n  AssingCourse(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/course/assign/detail/by/adviser/budget';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  AssingCourses(params: IAssignRequestRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/by/user/budget/assign';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainAllAvailableCoursesByStudent(params: IObtainAvailableCourseRs): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/all/available/courses/by/student';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainObservationByCodStudent(params: IFullCodStudentOverdueByCoordinatorRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/observarion/by/cod/studet';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  adminStudentByCoordinator(params: IFullCodStudentOverdueByCoordinatorRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/admin/student/by/coordinator';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodbyPaymentPlanRq(params: IGetCodByPaymentPlanRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/stundent/payments/by/code/user';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  UpdateAmountCodPayments(params: IUpdateAmountCodPaymentsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/change/amount/cod/payments';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  UpdateDateCodPayments(params: IParamsUpdateDateCodPaymentsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'put/change/date/payment/cod/by/cod';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  UpdateDateCodPaymentsForPaymentPlan(params: IParamsUpdateDateCodPaymentsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/change/date/payment/cod';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainPaymentReceiptByCode (codeReceipt: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/obtain/payment/receipt/by/code/' + codeReceipt;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  obtainPaymentsForStudentCode (codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/obtain/payments/for/student/code/' + codeStudent;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  obtainStudentPaymentsByGroupingCod (codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/student/payments/by/grouping/cod/' + codeStudent;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  obtainReceiptByCode (codeReceipt: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/receipt/by/code/' + codeReceipt;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  obtainPaymentsForReceiptCode (codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/obtain/payments/for/receipt/code/' + codeStudent;\n    return this.http.get(serviceUrl, this.httpOptions);\n  }\n\n  canelStudentReceipt(params: ICancelStudentReceiptRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/cancel/student/receipt';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCancelledReceiptsByDate(params: ICancelledReceiptByDateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/cancelled/receipts/by/date';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainPaymentreceivedByUser(params: IPaymentsReceivedByUserRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/payments/received/by/user';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getTotalCashReceiptsByDateAndUser(params: IPaymentsReceivedByUserRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/total/cash/receipts/by/date/and/user';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCoursesByCoordAndDiffParam(params: IObtainCourseByCoodDiffParamRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/course/wallet/by/coordinator/diffetent/param';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllCommonExpenses(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/common/expenses/all';\n    return this.http.get(serviceUrl);\n  }\n  createCommmonExpenses(param: NameCommonExpenses): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/common/expenses/create';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  obtainCodAndStatusApprovedLevelByGroup(param: NameCommonExpenses): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/student/status/approved/by/group';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainStudentPaymentTransactionHistoryByCourse(param: IObtainPaymentTranHistoryRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/student/payment/transaction/history/by/course';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainPaymentTransactionHistoryByCod(param: IObtainPaymentTranHistoryRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/payment/transaction/history/by/cod';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainStudentPaymentByDifferentParameter(param: IObtainStudentPaymentByDiffParamRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/student/payment/by/different/parameters';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  createEgress(param: IpaymentBillEgressRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'post/payment/bill/register/egress';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  getCategory(): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'get/type/supplier/all';\n    return this.http.get(serviceUrl);\n  }\n  createCashClosing(param: IcashClosingRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl,this.httpOptions);\n  }\n  searchCommonExpenses(name:string): Observable<any>{\n    let serviceUrl = this.SERVICE_URL +'get/search/common/expenses/' + name;\n    return this.http.get(serviceUrl);\n  }\n  getUsersCashClosing(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash/by/user';\n    return this.http.get(serviceUrl);\n  }\n\n  getCashClosingDay(code:number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL +'post/payment/bill/close/cash/by/day/codeuser/' + code;\n    return this.http.get(serviceUrl);\n  }\n  getCashClosingMonth(code:number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL+ 'post/payment/bill/close/cash/by/month/codeuser/' + code;\n    return this.http.get(serviceUrl);\n  }\n  getCashClosingYear(code:number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash/by/year/codeuser/' + code;\n    return this.http.get(serviceUrl);\n  }\n  getInfoCashClosingByCode(param:InfoCashClosingRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash/by/code';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCashClosingDate(param:IcashClosingDateRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'post/payment/bill/close/cash/by/date/range';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  exportObtainStudentPaymentTransactionHistoryByCourse(param: IObtainPaymentTranHistoryRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'export/excel/data/payment/transaction/history/by/course';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  getTotalCashIncomeEgress(param: IncomesAndEgressRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'post/total/cash/receipts/incomes/egress';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obatinBalacesByCoodinator(params: IAccountsBalanceRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/accounts/and/balances/by/coodinator';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obatinDetailedIncomeByUserAndDate(params: IObatinDetailedIncomeByUserAndDateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/detailed/income/report/by/advisor';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  exportIncomeExpenseHistoryData(params: IObatinDetailedIncomeByUserAndDateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'export/income/expense/history/data';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainAllPaymentBillCanceledByStudent(codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/all/payment/bill/cancelled/by/student/' + codeStudent;\n    return this.http.get(serviceUrl);\n  }\n\n  getPaymentInfoByReference(params: IPaymentReferenceRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/payment/bill/by/reference';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainPaymentsByCod(param:ICodPaymentRq):Observable<any>{\n    const serviceUrl = this.SERVICE_URL + 'post/obtain/payments/by/cod';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainPaymentsMadeByDates(params: ICancelledReceiptByDateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/payments/made/by/dates';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  sendEmailPayment(params: SendEmailPayment): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/send/email/payment';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  sendEmailPaymentCancellation(params: SendEmailPaymentCancellationRS): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/send/email/payment/cancellation';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n}\n\n  getAllTransfers(params: ITransferGetAllRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfers/all';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n\n  getTransferByCode(params: ITransferGetRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfers/specific';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  // createTransfer(params: ITransferCreateRq): Observable<any> {\n  //   const serviceUrl = this.SERVICE_URL + 'post/transfers/create';\n  //   this.generateRequestParams(params);\n  //   return this.http.post(serviceUrl, this.httpOptions);\n  // }\n\n  createTransfer(params: ITransferCreateRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfers/create';\n\n    const formData = new FormData();\n    formData.append('params[token]', params.token);\n    formData.append('params[transfer_amount]', params.transfer_amount.toString());\n    formData.append('params[bank_code]', params.bank_code.toString());\n    formData.append('params[transfer_date]', params.transfer_date); // ahora string\n    formData.append('params[reference_number]', params.reference_number);\n\n\n    if (params.image) {\n      formData.append('params[image]', params.image, params.image.name);\n    }\n    return this.http.post(serviceUrl, formData);\n  }\n/*\n  showTransferImage(params: ITransferShowImageRq): Observable<Blob> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfer/show-image';\n    const body = { code: params.code };\n\n    return this.http.post<Blob>(serviceUrl, body, {\n      responseType: 'blob' as 'json',\n    });\n  }\n\n  assignImageToTransfer(params: ITransferAssignImage): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfer/assign-image';\n    const formData = new FormData();\n    formData.append('token', params.token);\n    formData.append('code', params.code.toString());\n    formData.append('image', params.image, params.image.name);\n\n    return this.http.post(serviceUrl, formData);\n  }   */\n\n    assignImageToTransfer(params: ITransferAssignImage): Observable<any> {\n      const serviceUrl = this.SERVICE_URL + 'post/transfer/assign-image';\n      const formData = new FormData();\n      formData.append('params[token]', params.token);\n      formData.append('params[code]', params.code.toString());\n      if (params.image) {\n        formData.append('image', params.image, params.image.name);\n      }\n      return this.http.post(serviceUrl, formData);\n    }\n\n    showTransferImage(params: ITransferShowImageRq): Observable<HttpResponse<Blob>> {\n      const serviceUrl = this.SERVICE_URL + 'post/transfer/show-image';\n      const body = {\n        params: {\n          code: params.code\n        }\n      };\n      return this.http.post(serviceUrl, body, {\n        observe: 'response',\n        responseType: 'blob'\n      });\n    }\n\n\n\n  updateTransfer(params: ITransferUpdateRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfers/update';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateTransferStatus(params: ITransferStatusUpdateRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfers/update';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  deleteTransfer(params: ITransferDeleteRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfers/delete';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  searchTransfer(params: ITransferSearchRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfer/search';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  exportPaymentCorrelativeeHistoryData(param:IPaymentCorrelativeRq):Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'export/payments/correlative/history/data';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainPaymentsMadeByFilter(param: IPaymentCorrelativeRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'obtain/payment/correlatives/by/filter';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainGatewayPaymentRecord(param: IObtainGatewayPaymentRecordRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'obtain/gateway/payment/record';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  epaycoPaymentUpdate(param: IUpdateEpaycoPaymentRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'epayco/payment/update';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  exportElectronicInvoiceHistoryData(param:IElectronicInvoiceRS): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'export/electronic/invoice/history/data';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  exportAccountsAndBalancesByCoodinator(param:IAccountsBalanceRq): Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'export/accounts/and/balances/by/coodinator';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  createCodPayments(params: ICreateCodPaymentsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/create/cod/payments';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  deleteCodPayments(params: IDeleteCodPaymentsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/delete/cod/payments';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n\n  getFullPaymentInformation(params: IGetFullPaymentInformationRq): Observable<IGetFullPaymentInformationRs> {\n    const serviceUrl = this.SERVICE_URL + 'post/payment/bill/full-information';\n    this.generateRequestParams(params);\n    return this.http.post<IGetFullPaymentInformationRs>(serviceUrl, this.httpOptions);\n  }\n\n  updateTransferStatusByCode(params: ITransferStatusUpdateRequestRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/transfer/update-status';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateElectronicInvoice(params: IUpdateElectronicInvoiceRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/payment/bill/update-electronic-invoice';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  searchPaymentBill(params: ISearchPaymentBillRq): Observable<ISearchPaymentBillRs> {\n    const serviceUrl = this.SERVICE_URL + 'post/payment/bill/search-information';\n    this.generateRequestParams(params);\n    return this.http.post<ISearchPaymentBillRs>(serviceUrl, this.httpOptions);\n  }\n\n  getValidationOfTransfersByNumber(params: IValidationOfTransfersByNumberRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'get/validation/of/transfers/by/number';\n    this.generateRequestParams(params);\n    return this.http.post<ISearchPaymentBillRs>(serviceUrl, this.httpOptions);\n  }\n\n  getSummaryByCoordinator(params: IGetSummaryByCoordinatorRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'get/summary/by/coordinator';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n\n  createTransferValidate(params: ICreateTransferRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'create/transfer/validate';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  searchTransferByReference(params: ISearchTransferRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'search/transfer/by/reference';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateTransferData(params: IUpdateTransferRq): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'update/transfer/data';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ClassroomByIdCalendarRq, ClassroomByTypeUserRq, ClassroomModalityRq, ClassroomStudentRq, IObatinRoomByModalityCampusRq } from '../../models/classroom/classroom-rq.model';\n\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ClassroomService extends IPTGeneralService{\n  private SERVICE_URL = 'academic/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getClassroomsByModality(params: ClassroomModalityRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/classroom/by/modality';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  obtainRoomByModalityAndCampus(params: IObatinRoomByModalityCampusRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/rooms/by/modality/and/location';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getClassroomByIdCalendar(params: ClassroomByIdCalendarRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/classroom/by/idcalendar';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getAllClassroomByTypeUser(params: ClassroomByTypeUserRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/all/classroom/by/user';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getClassroomByStudent(params: ClassroomStudentRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/classroom/by/student';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ActivityService extends IPTGeneralService{\n  private SERVICE_URL = 'academic/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getActivityByCourse(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/activities/by/course/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getNoticesByCourse(codeCourse: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/notices/by/course/code/' + codeCourse;\n    return this.http.get(serviceUrl);\n  }\n\n  getUnitsByActivity(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/units/by/activity/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getElementsByUnit(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/element/by/unit/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCourseTeacherByToken(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/teacher/by/token';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllTypeResource(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/type/resource/template';\n    return this.http.get(serviceUrl);\n  }\n\n  getAllTypeElement(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/type/element/template';\n    return this.http.get(serviceUrl);\n  }\n\n  getElementsByUnitNew(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/element/by/unit/code/new';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  updateCourseByCronogram(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/update/course/by/code';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getTemplateCourseByCourse(codeCourse: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/template/course/by/course/code/' + codeCourse;\n    return this.http.get(serviceUrl);\n  }\n\n  saveMagnageActivity(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/manage/activities/by/course/element';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  postNotesActivityH5P(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/activity/h5p/notes';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getMagnageActivity(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/template/admin/by/course/element';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getNoteActivityH5P(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/note/activity/h5p';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { GetCourseByTypeRq, GetStudentByCourse, GetLastStudentCodRq, GetStudentByTeacherRq, GetAllStudentByTeacherRq, ClassRoomRQI, IManageCreatedScherduleEventsRq, IParamsObtainCoursesByTypeCourseInCreatedCoursesRs, IgetAvailableCoursesByLevStaModalRq, IGetCoursesAvailableForExchangeRq } from '../../models/academic/academic.component';\nimport { UserTokenRq } from '../../models/user/user-rq.model';\nimport { GetStudentsByCourseRq } from '../../models/student/student.interface';\nimport { GetCodByStudentCourseRq } from '../../models/cod/cod-rq.model';\nimport { IChangeOfStudentGroupRq, IgetCodBcourseByModalityAndDisponibilityRq, IgetCodBcourseByModalityAndLevelAndCourseTypeRq } from '../../models/course/course-rq.model';\nimport { IObtainCoursesByDifferentParametersRq, IObtainCoursesStatusByAreaRq, IObtainCoursesStatusByDifferentParametersRq, IgetCodBcourseByModalityAndStatusAndLevelInglishRq } from '../../models/course/courses.model';\nimport { INotesStudentRq, NotesStudents } from '../../models/notes/INotesTemplate';\nimport { IAttendanceCodRq } from '../../models/attendance/attendance.interface';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AcademicService extends IPTGeneralService{\n  private SERVICE_URL = 'academic/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getCourseByType(params: GetCourseByTypeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/by/type';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  getStudentByCourse(params: GetStudentByCourse): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/students';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainLastStudentCod(params: GetLastStudentCodRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/last/student/cod/by/student';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodGenDataStudent(codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/general/data/student/by/code/' + codeStudent;\n    return this.http.get(serviceUrl);\n  }\n\n  getAllCoursesInitialized(params: UserTokenRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/all/courses/initialized';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getStudentByTeacher(params: GetStudentByTeacherRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/students/by/teacher';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllStudentByTeacher(params: GetAllStudentByTeacherRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/all/students/by/teacher';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllStudentByCourse(params: GetStudentsByCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/all/students/by/course';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainStudentsByTeacher(params: GetStudentByTeacherRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/students/by/teacher';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAllCodActiveByCourse(params: GetStudentsByCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/all/cod/active/by/course';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  createClassroom(params: ClassRoomRQI): Observable<any> {\n    const serviceUrl = this.SERVICE_URL + 'post/create/classroom';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodByStudentAndCourse(params: GetCodByStudentCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cod/by/student/and/course';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodBcourseByModalityAndDisponibility(params: IgetCodBcourseByModalityAndDisponibilityRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/obtain/by/modality';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCodBcourseByModalityAndStatusAndLevelInglish(params: IgetCodBcourseByModalityAndStatusAndLevelInglishRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/course/obtain/by/modality/status';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  manageCreatedScherduleEvents(params: IManageCreatedScherduleEventsRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/manage/created/schedule/events';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCoursesByDifferentParameters(params: IObtainCoursesByDifferentParametersRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/courses/by/different/parameters';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  getCodBcourseByModalityAndlevelEnglishAndCourseType(params: IgetCodBcourseByModalityAndLevelAndCourseTypeRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/courses/by/level/and/type/course/renovation/modality';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCoursesTheoryByDifferentParameters(params: IObtainCoursesByDifferentParametersRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/courses/theory/by/different/parameters';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCourseTheoryByCode(courseCode: number): Observable<any> {\n    let serviceUrl = `${this.SERVICE_URL}obtain/course/theory/${courseCode}`;\n    return this.http.get<any>(serviceUrl);\n  }\n\n  obtainCoursesTheoryByDiffParametersForNotes(params: IObtainCoursesByDifferentParametersRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/courses/theory/by/diffparameters/for/notes';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCoursesByTypeCoursesInCreatdCourseRs(params: IParamsObtainCoursesByTypeCourseInCreatedCoursesRs): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/course/by/plan/academic/type/course/modality';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainAllCodAirByCourse(params: GetStudentsByCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/all/cod/air/by/course';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCourseStatusByParameters(params: IObtainCoursesStatusByDifferentParametersRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/courses/status/by/different/parameters';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCourseStatusByArea(params: IObtainCoursesStatusByAreaRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/courses/status/by/area';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getEventsByCourseCode(coudeCourse: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/events/by/course/' + coudeCourse;\n    return this.http.get(serviceUrl);\n  }\n\n  obtainPlansCourseAvalaibleForPosibleStudentByAgeAndGrade(params: any): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'obtain/avalaible/plans/course/by/age/and/grade/education';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  ObtainGradesByStudent(param:INotesStudentRq):Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/student';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n  ObtainLevelsCodsByStudent(param:NotesStudents):Observable<any>{\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/cods/by/student';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getAttendanceByCod(param:IAttendanceCodRq):Observable<any>{\n    const serviceUrl = this.SERVICE_URL + 'post/obtain/attendance/by/cod/by/student';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getInfoStudentCourseByCod(param: IAttendanceCodRq):Observable<any>{\n    const serviceUrl = this.SERVICE_URL + 'post/obtain/info/student/course/by/cod';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCourseTypeByAcademicPlan(codeAcademic: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/coursetype/by/academic/plan/' + codeAcademic;\n    return this.http.get(serviceUrl);\n  }\n\n  getAvailableCoursesByModalityStatusAndLevel(param: IgetAvailableCoursesByLevStaModalRq):Observable<any>{\n    const serviceUrl = this.SERVICE_URL + 'get/available/courses/by/modality/status/level';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  obtainCoursesAvailableSpacesAndClassesViewed(param:IgetAvailableCoursesByLevStaModalRq):Observable<any>{\n    const serviceUrl = this.SERVICE_URL + 'obtain/course/active/by/quotas/classes';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCoursesAvailableForStudentChange(param:IGetCoursesAvailableForExchangeRq):Observable<any>{\n    const serviceUrl = this.SERVICE_URL + 'get/courses/available/for/student/change';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  changeOfStudentGroup(param:IChangeOfStudentGroupRq):Observable<any>{\n    const serviceUrl = this.SERVICE_URL + 'change/student/to/new/course';\n    this.generateRequestParams(param);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Response } from '../../models/response/response.interface';\nimport { Observable } from 'rxjs';\nimport { AddEventByCourseRq, CourseAttendance, GetEventByCodeRq, GetEventsByCourseCodeRq, GetNotAttendancesByCodRq, IRegisterNewAttendanceRq, IServiceAllDataAttendanceRq, IUpdateAttendacenByCodeRq, RegisterNewAttendanceByEventRq } from '../../models/attendance/attendance.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AttendanceService extends IPTGeneralService{\n  private SERVICE_URL = 'academic/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  addEventByCourseRq(params: AddEventByCourseRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}post/event/by/course`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getEventsByCourseCode(params: GetEventsByCourseCodeRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}post/obtain/events/by/course_code`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getEventByCode(params: GetEventByCodeRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}post/obtain/event/by/code`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  registerNewAttendanceByEvent(params: RegisterNewAttendanceByEventRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}register/attendance/by/event`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getAttendaceByCourse(courseCode: number): Observable<CourseAttendance> {\n    let serviceUrl = `${this.SERVICE_URL}post/obtain/attendances/by/course/${courseCode}`;\n    return this.http.get<CourseAttendance>(serviceUrl);\n  }\n\n  getAttendaceByCourseAssigned(courseCode: number): Observable<CourseAttendance> {\n    let serviceUrl = `${this.SERVICE_URL}obtain/attendances/by/course/assigned/${courseCode}`;\n    return this.http.get<CourseAttendance>(serviceUrl);\n  }\n\n  getCODCodeByStudentCode(studentCode: number) {\n    let serviceUrl = `${this.SERVICE_URL}get/cod_code/by/student_code/${studentCode}`;\n    return this.http.get<any>(serviceUrl);\n  }\n\n  getAttendanceHistoryByStudent(token: string, cod_code: number): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}post/obtain/attendance/history/by/student`;\n    this.generateRequestParams({token, cod_code});\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getAllNotAttendancesByCod(params: GetNotAttendancesByCodRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}get/all/not/attendances/by/cod`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getNotAttendancesOfLastWeekByCod(params: GetNotAttendancesByCodRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}get/all/not/attendances/lastweek/by/cod`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getAllAttendaceByCourse(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n    let serviceUrl = `${this.SERVICE_URL}get/all/data/attendances/by/course/${courseCode}`;\n    return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n  }\n\n  newAttendanceByEvent(params: IRegisterNewAttendanceRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}post/register/new/attendance/by/event`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  obtainAttendancesStustudentByCourse(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n    let serviceUrl = `${this.SERVICE_URL}obtain/attendances/students/by/course/${courseCode}`;\n    return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n  }\n\n  obtainAttendancessByCourse(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n    let serviceUrl = `${this.SERVICE_URL}obtain/attendances/by/course/${courseCode}`;\n    return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n  }\n\n  obtainAttendancessByAssigned(courseCode: number): Observable<IServiceAllDataAttendanceRq> {\n    let serviceUrl = `${this.SERVICE_URL}obtain/attendances/by/assigned/${courseCode}`;\n    return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n  }\n\n  obtainCourseEventByCode(code: number): Observable<IServiceAllDataAttendanceRq> {\n    let serviceUrl = `${this.SERVICE_URL}obtain/course/event/by/code/${code}`;\n    return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n  }\n\n  obtainFullDataAttendanceByCode(code: number): Observable<IServiceAllDataAttendanceRq> {\n    let serviceUrl = `${this.SERVICE_URL}obtain/full/data/attendance/by/code/${code}`;\n    return this.http.get<IServiceAllDataAttendanceRq>(serviceUrl);\n  }\n\n  UpdateIndividualAttendance(params: IUpdateAttendacenByCodeRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}update/individual/attendance/by/code`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  exportExcelAttendance(codeStudent: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'dowload/excel/attendances/students/by/course/' + codeStudent;\n    return this.http.get(serviceUrl);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { GetCertificate } from '../../models/academic/academic.component';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CertificateService extends IPTGeneralService{\n  private SERVICE_URL = 'certificates/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getCertificate(params: GetCertificate): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/kids';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getCertificateApiUrl(): string {\n    return this.SERVICE_URL + 'post/certificate';\n  }\n\n  getCertificatesApiUrl(): string {\n    return this.SERVICE_URL + 'post/certificates';\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class UserEktService extends IPTGeneralService{\n  private SERVICE_URL = 'ekt/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getAllUserEkt(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/users/1161419';\n    return this.http.get(serviceUrl);\n  }\n\n  getAllAnnouncementByUser(codeUser: number): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/all/announcement/by/user/' + codeUser;\n    return this.http.get(serviceUrl);\n  }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { AnnouncementEpaycoRefRq } from '../../models/epayco/epayco.interfaces';\nimport { IPTGeneralService } from '../../services/service-enviroments';\nimport { Response } from '../../models/response/response.interface';\n\n@Injectable({\n  providedIn: 'root',\n})\n\nexport class EpaycoService extends IPTGeneralService{\n  private EPAYCO_URL = 'https://secure.epayco.co/validation/v1/reference';\n  private SERVICE_URL = 'https://iptdev.com.co/ekt/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.EPAYCO_URL = this.EPAYCO_URL;\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getPaymentStatus(reference: string): Observable<any> {\n    let serviceUrl = `${this.EPAYCO_URL}/${reference}`;\n    return this.http.get<any>(serviceUrl);\n  }\n\n  setAnnouncementEpaycoRef(params: AnnouncementEpaycoRefRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}post/announcement/epayco_ref`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  setAnnouncementGroupEpaycoRef(params: AnnouncementEpaycoRefRq): Observable<Response> {\n    let serviceUrl = `${this.SERVICE_URL}post/announcementGroup/epayco_ref`;\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CourseService } from './services/course-service/course-service.model';\nimport { ParameterService } from './services/parameters-service/parameters.service';\nimport { RedirectGuard } from './utils/route-service/route.service';\nimport { StorageService } from './services/storage-service/storage-service';\nimport { SwitchService } from './services/switch-service/switch.service';\nimport { UserService } from './services/user-service/user-service';\nimport { BaseService } from './utils/base-service/base.service';\nimport { TestService } from './services/test-service/test.service';\nimport { MarketingService } from './services/marketing-service/marketing-service';\nimport { BudgetService } from './services/budget-service/budget-service';\nimport { ClassroomService } from './services/classroom-service/classroom-service.service';\nimport { ActivityService } from './services/activity-service/activity.service';\nimport { CommercialService } from './services/commercial-service/comercial.service';\nimport { AcademicService } from './services/academic-service/academic.service';\nimport { AttendanceService } from './services/attendance-service/attendance.service';\nimport { CalendarService } from './services/calendar-service/calendar.service';\nimport { CertificateService } from './services/certificate-service/certificate.service';\nimport { UserEktService } from './services/ekt-service/userekt.service';\nimport { CopiesService } from './services/copies.service';\nimport { PipeModule } from './pipes/pipe.module';\nimport { EpaycoService } from './services/ePayco/epayco.service';\n\n@NgModule({\n  providers: [\n    CommercialService,\n    ParameterService,\n    CourseService,\n    StorageService,\n    UserService,\n    SwitchService,\n    RedirectGuard,\n    BaseService,\n    TestService,\n    MarketingService,\n    ClassroomService,\n    BudgetService,\n    ActivityService,\n    AcademicService,\n    AttendanceService,\n    CalendarService,\n    CertificateService,\n    UserEktService,\n    CopiesService,\n    EpaycoService,\n    PipeModule\n  ]\n})\nexport class CoreModule {}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport interface ControlSteps {\n  name: string;\n  required: boolean;\n  description: string;\n}\n@Injectable({\n  providedIn: 'root'\n})\nexport class CodSelfManagedControls {\n\n  public controls: Array<ControlSteps[]> = [\n    [\n      { name: 'student_name', required: true, description: 'Nombres del estudiante' },\n      { name: 'student_last_name', required: true, description: 'Apellidos del estudiante' },\n      { name: 'student_id_card_type', required: true, description: 'Tipo de documento del estudiante' },\n      { name: 'student_id_card', required: true, description: 'Documento del estudiante' },\n      { name: 'gender', required: true, description: 'Género' },\n      { name: 'birthdate', required: true, description: 'Fecha de nacimiento del estudiante' },\n      { name: 'age', required: true, description: 'Edad' },\n      { name: 'country', required: true, description: 'País' },\n      { name: 'state', required: true, description: 'Departamento o estado' },\n      { name: 'city', required: true, description: 'Ciudad de residencia' },\n      { name: 'student_email', required: true, description: 'Correo del estudiante' },\n      { name: 'student_phone_indicative', required: true, description: 'Indicativo del estudiante' },\n      { name: 'student_phone_number', required: true, description: 'Teléfono del estudiante' },\n      { name: 'grade', required: true, description: 'Grado del estudiante' },\n      { name: 'agreement_by_category', required: true, description: 'Convenio' },\n    ],\n    [\n      { name: 'academic_plan', required: true, description: 'Plan académico' },\n      { name: 'course_type', required: true, description: 'Tipo de curso' },\n      { name: 'english_level', required: true, description: 'Nivel de inglés' },\n      { name: 'availible_courses', required: false, description: 'Cursos disponibles' },\n      { name: 'course_modality', required: false, description: 'Modalidad del curso' },\n    ],\n    [\n      { name: 'program_price', required: true, description: 'Valor total del programa' },\n      { name: 'payment_date', required: true, description: 'Fecha de pago' },\n      { name: 'payment_method', required: true, description: 'Método de pago' },\n      { name: 'quota_times', required: true, description: 'Cantidad de cuotas' },\n      { name: 'total_price', required: true, description: 'Precio total de la matricula' },\n      { name: 'paid_level', required: true, description: 'Niveles pagos' },\n    ],\n    [\n      { name: 'optionsPayments', required: true, description: 'Tipo de pago' },\n      { name: 'invoicing_name', required: true, description: 'Nombre de facturacion' },\n      { name: 'invoicing_Apellido', required: true, description: 'Apellido de facturacion' },\n      { name: 'invoicing_idType', required: true, description: 'Tipo de documento de facturacion' },\n      { name: 'invoicing_document', required: true, description: 'documento de facturacion' },\n    ],\n  ];\n\n  private $controls = new BehaviorSubject<Array<ControlSteps[]>>([]);\n\n  constructor() {\n    this.$controls.next(this.controls);\n  }\n\n  getControlValues(): Observable<Array<ControlSteps[]>> {\n    return this.$controls.asObservable();\n  }\n\n  // Cambiar los valores de los controls, ejemplo: true y false del checkbox\n  changeValue(step: number, controlName: string, newValue: any) {\n    const controls: Array<ControlSteps[]> = { ...this.controls };\n    let control = controls[step-1].filter(element => element.name === controlName);\n    control[0].required = newValue;\n\n    this.$controls.next(controls)\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LocalStorageCodSelfMaganedService {\n\n  constructor() { }\n\n  getCodFormData(step: number, control: string): string | null {\n    if (step === 1) return localStorage.getItem(`COD SELF - step1(${control})`);\n    if (step === 2) return localStorage.getItem(`COD SELF - step2(${control})`);\n    if (step === 3) return localStorage.getItem(`COD SELF - step3(${control})`);\n    if (step === 4) return localStorage.getItem(`COD SELF - step4(${control})`);\n\n    return null;\n  }\n\n  setCodFormData(step: number, control: string, value: string) {\n    if (step === 1) localStorage.setItem(`COD SELF - step1(${control})`, value);\n    if (step === 2) localStorage.setItem(`COD SELF - step2(${control})`, value);\n    if (step === 3) localStorage.setItem(`COD SELF - step3(${control})`, value);\n    if (step === 4) localStorage.setItem(`COD SELF - step4(${control})`, value);\n  }\n\n  clearData() {\n    let keySessionUser = '606a7d4e73650b75ebb06972e77d6cc4';\n    let sessionUser: string | null =  localStorage.getItem(keySessionUser);\n    localStorage.clear();\n\n    if(sessionUser !== null) {\n      localStorage.setItem(keySessionUser, sessionUser);\n    } else {\n      console.log('raro que no haya sesion');\n    }\n  }\n\n}\n","import { Observable } from \"rxjs\";\nimport { ControlSteps } from \"./cod-self-managed-controls\";\nimport { LocalStorageCodSelfMaganedService } from \"./local-storage-cod.service\";\n\nexport interface localStorageValuesTwo {\n  control: string,\n  value: any\n}\n\nexport abstract class CodSelfManagedSteps {\n\n  public localStorageCOD = new LocalStorageCodSelfMaganedService();\n\n  constructor() {}\n\n  readAndWriteLS(step: number, control: string): localStorageValuesTwo {\n    if (this.localStorageCOD.getCodFormData(step, control)) {\n      const value = this.localStorageCOD.getCodFormData(step, control);\n      return { control, value };\n    } else {\n      return { control, value: '' }\n    }\n  }\n\n  setDataInLocalStorage(step: number, control: string, value: any) {\n    this.localStorageCOD.setCodFormData(step, control, value);\n  }\n\n  listenFormChanges(step: number, control: string, obs: Observable<any>) {\n    obs.subscribe(value => {\n      this.setDataInLocalStorage(step, control, value);\n    });\n  }\n\n  resetLocalStorage(controls: ControlSteps[]) {\n    controls.forEach(control => {\n      localStorage.removeItem(control.name);\n    });\n  }\n\n}\n","import { BaseService } from './../../../core/utils/base-service/base.service';\nimport { UserService } from './../../../core/services/user-service/user-service';\nimport { Component, Output, EventEmitter, OnInit, Input, SimpleChanges, OnChanges } from '@angular/core';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { map } from 'rxjs';\n\n//import services\nimport { ParameterService } from '../../../core/services/parameters-service/parameters.service';\nimport { CodSelfManagedControls } from '../../logic/cod-self-managed-controls';\nimport { CodSelfManagedSteps, localStorageValuesTwo } from '../../logic/cod-self-managed-steps';\n\n//import Prime ng\nimport { MessageService } from 'primeng/api';\n\n//import Models\nimport { IUserIPTRqs } from '../../../core/models/user/user-rs.model';\n\n@Component({\n  selector: 'app-cod-self-form-step-one',\n  templateUrl: './cod-self-form-step-one.component.html',\n  styleUrls: ['./cod-self-form-step-one.component.css'],\n})\nexport class CodSelfFormStepOneComponent extends CodSelfManagedSteps implements OnChanges, OnInit {\n\n  @Input() userStudent?: IUserIPTRqs;\n\n  @Output() completed = new EventEmitter<number>();\n  @Output() idTypesChanged = new EventEmitter<any>();\n  controls = new CodSelfManagedControls().controls[0];\n  codSelfFormStepOne!: FormGroup\n  genders: any[] = [];\n  stratums: any;\n  idTypes: any;\n  indicatives: any;\n  civilStatus: any;\n  countrySelected: any;\n  countries: any;\n  states: any;\n  cities: any;\n  grades:any[] = [];\n  errorMessage: string = 'Faltan campos por llenar.';\n  visible: boolean = false;\n  messageInfo='Esta seccion solo es para datos del estudiante.';\n  showAgreementSelect: boolean = false;\n  agreements=[\n    {\n      code:2,\n      name: \"sin convenio\"\n    },\n    {\n      code:3,\n      name: \"Universidad Francisco de Paula Santander\"\n    },\n  ];\n\n  constructor(\n    private fb: FormBuilder,\n    private parameterService: ParameterService,\n    private messageService: MessageService,\n    private userService: UserService,\n    private baseService:BaseService\n  ) {\n    super();\n    this.initForm();\n  }\n\n  ngOnInit(): void {\n    this.getParameters();\n\n  }\n  ngOnChanges(changes: SimpleChanges): void {\n    this.startLocalStorageWork();\n    if (changes['userStudent'] && this.userStudent != null) {\n      this.setDataUsers();\n    }\n  }\n\n  initForm() {\n    this.codSelfFormStepOne = this.fb.group({\n      student_name: ['', [Validators.required]],\n      student_last_name:['', [Validators.required]],\n      student_id_card_type: ['', [Validators.required], []],\n      student_id_card: [{value: '', disabled: true}, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],\n      gender: ['', [Validators.required]],\n      birthdate: ['', [Validators.required], []],\n      age: ['', [Validators.required], []],\n      country: ['', [Validators.required], []],\n      state: ['', [Validators.required], []],\n      city: ['', [Validators.required], []],\n      student_email: ['', [Validators.required, Validators.email]],\n      student_phone_indicative: ['', [Validators.required], []],\n      student_phone_number: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(15)]],\n      grade: ['', [Validators.required]],\n      agreement_by_category: [''],\n    });\n    this.codSelfFormStepOne.controls['grade'].valueChanges.subscribe((grade) => {\n      if (grade == 15 || grade == 16) {\n        this.showAgreementSelect = true;\n        this.codSelfFormStepOne.controls['agreement_by_category'].setValidators([Validators.required]);\n      } else {\n        this.showAgreementSelect = false;\n        this.codSelfFormStepOne.controls['agreement_by_category'].clearValidators();\n        this.codSelfFormStepOne.controls['agreement_by_category'].setValue(null);\n      }\n      this.codSelfFormStepOne.controls['agreement_by_category'].updateValueAndValidity();\n    });\n    // Calcular edad y setear valor\n    this.codSelfFormStepOne.controls['birthdate'].valueChanges.subscribe({\n      next: (change) => {\n        let today = new Date();\n        let birthday = new Date(change);\n        let age = today.getFullYear() - birthday.getFullYear();\n        let month = today.getMonth() - birthday.getMonth();\n\n        if (month < 0 || (month === 0 && today.getDate() < birthday.getDate())) {\n          age--;\n        }\n        if (age < 3) {\n          this.errorMessage = 'Fecha de nacimiento no válida'\n          this.codSelfFormStepOne.controls['birthdate'].setErrors({\n            invalidAge: true\n          })\n        } else {\n          this.codSelfFormStepOne.controls['birthdate'].setErrors(null);\n        }\n\n        this.codSelfFormStepOne.controls['age'].setValue(age);\n      }\n    })\n\n  }\n  getParameters() {\n    this.parameterService.getCardTypes('col').subscribe((response) => {\n      this.idTypes = response.data;\n      this.idTypesChanged.emit(this.idTypes);\n    });\n    this.parameterService.getIndicatives().subscribe((response) => {\n      this.indicatives = response.data;\n    });\n    this.parameterService.getCountries().subscribe((response) => {\n      this.countries = response.data;\n    });\n    this.parameterService.getAllCities().subscribe((response) => {\n      this.cities = response.data;\n    });\n    this.parameterService.getAllStates().subscribe((response) => {\n      this.states = response.data;\n    });\n    this.parameterService.getGenders().pipe(map((response: any) => response.data)).subscribe((genders: any[]) => {\n      genders.forEach(gender => {\n        let genderItem = {\n          code: gender.code,\n          name: gender.name_spanish\n        }\n        this.genders.push(genderItem)\n      })\n    });\n    this.parameterService.GetAllGradeEducation().pipe\n    (map((response: any) => response.data)).subscribe((grades: any[]) => {\n      grades.forEach(grade => {\n        let gradesItems = {\n          code: grade.code,\n          name: grade.grade\n        }\n        this.grades.push(gradesItems)\n    });\n  });\n  }\n\n  setDataUsers(){\n    this.codSelfFormStepOne.controls['student_name'].setValue(this.userStudent?.name);\n    this.codSelfFormStepOne.controls['student_last_name'].setValue(this.userStudent?.last_name);\n    this.codSelfFormStepOne.controls['student_id_card_type'].setValue(this.userStudent?.id_card_type);\n    this.codSelfFormStepOne.controls['student_id_card'].setValue(this.userStudent?.id_card);\n    this.codSelfFormStepOne.controls['country'].setValue(this.userStudent?.city[0]?.country != (1 || null) ? this.userStudent?.city[0]?.country : null);\n    this.codSelfFormStepOne.controls['state'].setValue(this.userStudent?.city[0]?.state != (33 || null) ? this.userStudent?.city[0]?.state : null);\n    this.codSelfFormStepOne.controls['city'].setValue(this.userStudent?.city[0]?.code != (1 || null) ? this.userStudent?.city[0]?.code : null);\n    this.codSelfFormStepOne.controls['gender'].setValue(this.userStudent?.gender);\n    this.codSelfFormStepOne.controls['birthdate'].setValue(this.userStudent?.birthdate);\n    this.codSelfFormStepOne.controls['student_email'].setValue(this.userStudent?.email);\n    this.codSelfFormStepOne.controls['student_phone_indicative'].setValue(this.userStudent?.phone_indicative);\n    this.codSelfFormStepOne.controls['student_phone_number'].setValue(this.userStudent?.phone_number);\n\n  }\n\n  selectCountry(country: any) {\n    let iso = '';\n    if (country === '2') iso = 'col';\n    else if (country === '3') iso = 'ven';\n    else if (country === '4') iso = 'usa';\n    else iso = '';\n\n    if (iso != '') {\n      this.codSelfFormStepOne.controls['country'].setValue(country);\n      this.parameterService.getStatesByCountry(iso).subscribe((response) => {\n        this.states = response.data;\n        this.selectState(this.localStorageCOD.getCodFormData(2, 'state'));\n      });\n    } else {\n      this.codSelfFormStepOne.controls['country'].setValue(null);\n    }\n    this.countrySelected = country;\n  }\n\n  selectState(state: any) {\n    if (state !== 'Departamento o estado') {\n      this.getState(state);\n      this.codSelfFormStepOne.controls['state'].setValue(state);\n    } else {\n      this.codSelfFormStepOne.controls['state'].setValue(null);\n      this.codSelfFormStepOne.controls['city'].setValue(null);\n      this.cities = [];\n    }\n  }\n\n  selectCity(city: any) {\n    if (city !== 'Ciudad de residencia') {\n      this.codSelfFormStepOne.controls['city'].setValue(city);\n    } else {\n      this.codSelfFormStepOne.controls['city'].setValue(null);\n    }\n  }\n\n  selectIdType(idType: any) {\n    if (idType !== 'Tipo de documento') {\n      this.codSelfFormStepOne.controls['student_id_card_type'].setValue(idType);\n    } else {\n      this.codSelfFormStepOne.controls['student_id_card_type'].setValue(null);\n    }\n  }\n  selectGender(gender: any) {\n    if (gender !== 'Género') {\n      this.codSelfFormStepOne.controls['gender'].setValue(gender);\n    } else {\n      this.codSelfFormStepOne.controls['gender'].setValue(null);\n    }\n  }\n  selectIndicatives(indicative: any) {\n    if (indicative !== 'Indicativo') {\n      this.codSelfFormStepOne.controls['student_phone_indicative'].setValue(indicative);\n    } else {\n      this.codSelfFormStepOne.controls['student_phone_indicative'].setValue(null);\n    }\n  }\n  selectGrade(grade: any) {\n\n    if (grade !== 'Grado Educativo') {\n      this.codSelfFormStepOne.controls['grade'].setValue(grade);\n      if (grade == 15 || grade == 16) {\n        // Si es 15 o 16, mostrar el otro ipt-select\n        this.showAgreementSelect = true;\n      } else {\n        this.showAgreementSelect = false;\n        this.codSelfFormStepOne.controls['agreement_by_category'].setValue(null);\n      }\n    } else {\n      this.codSelfFormStepOne.controls['grade'].setValue(null);\n      this.codSelfFormStepOne.controls['agreement_by_category'].setValue(null);\n      this.showAgreementSelect = false;\n    }\n  }\n  selectAgreement(grade: any) {\n    if (grade !== 'Convenio') {\n      this.codSelfFormStepOne.controls['agreement_by_category'].setValue(grade);\n    } else {\n      this.codSelfFormStepOne.controls['agreement_by_category'].setValue(null);\n    }\n  }\n  sendForm() {\n    this.codSelfFormStepOne.markAllAsTouched();\n    if (this.codSelfFormStepOne.invalid) return;\n    const request:any = {\n      token: this.baseService.getUserToken(),\n      student_name: this.codSelfFormStepOne.controls['student_name'].value,\n      student_last_name: this.codSelfFormStepOne.controls['student_last_name'].value,\n      student_id_card_type: this.codSelfFormStepOne.controls['student_id_card_type'].value,\n      student_id_card: this.codSelfFormStepOne.controls['student_id_card'].value,\n      country: this.codSelfFormStepOne.controls['country'].value,\n      state: this.codSelfFormStepOne.controls['state'].value,\n      city: this.codSelfFormStepOne.controls['city'].value,\n      gender: this.codSelfFormStepOne.controls['gender'].value,\n      birthdate: this.codSelfFormStepOne.controls['birthdate'].value,\n      student_email: this.codSelfFormStepOne.controls['student_email'].value,\n      student_phone_indicative: this.codSelfFormStepOne.controls['student_phone_indicative'].value,\n      student_phone_number: this.codSelfFormStepOne.controls['student_phone_number'].value,\n      grade: this.codSelfFormStepOne.controls['grade'].value,\n      agreement_by_category: this.codSelfFormStepOne.controls['agreement_by_category'].value,\n    };\n    this.userService.updateUser(request).subscribe((response:any)=>{\n    })\n\n    this.completed.emit(1);\n  }\n  getState(state: any) {\n    this.getCity(state);\n  }\n  getCity(state: any) {\n    this.parameterService.getCitiesByState(state).subscribe((response) => {\n      this.cities = response.data;\n      this.selectCity(this.localStorageCOD.getCodFormData(1, 'city'));\n    });\n  }\n  startLocalStorageWork() {\n    this.controls.forEach(control => {\n      let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(1, control.name);\n      this.codSelfFormStepOne.controls[control.name].setValue(localStorageValue.value);\n      this.listenFormChanges(1, control.name, this.codSelfFormStepOne.controls[control.name].valueChanges);\n    });\n  }\n  showConfirm() {\n    if (!this.visible) {\n        this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 5000 });\n        this.visible = true;\n    }\n  }\n\n  onReject() {\n    this.messageService.clear('confirm');\n    this.visible = false;\n  }\n\n\n}\n","<div class=\"container-main\">\n  <div class=\"container-form\">\n      <!-- <i class=\"pi pi-user-edit icon__tittle\"></i> -->\n      <h2>Datos Personales</h2>\n    <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n      <ng-template let-message pTemplate=\"message\">\n          <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n              <div class=\"flex align-items-center gap-2\">\n                  <img src=\"./assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n                  <span class=\"font-bold text-900\">Jacob</span>\n              </div>\n              <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n          </div>\n      </ng-template>\n  </p-toast>\n\n    <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n    <form [formGroup]=\"codSelfFormStepOne\">\n\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Nombres'\"\n        [control]=\"codSelfFormStepOne.controls['student_name']\"\n      ></ipt-input>\n      <div *ngIf=\"codSelfFormStepOne.controls['student_name'].invalid && codSelfFormStepOne.controls['student_name'].touched\">\n        <span class=\"error-message\">Por favor ingresa un nombre válido.</span>\n      </div>\n      <ipt-input\n        [inputType]=\"'text'\"\n        [placeHolder]=\"'Apellidos'\"\n        [control]=\"codSelfFormStepOne.controls['student_last_name']\"\n      ></ipt-input>\n      <div *ngIf=\"codSelfFormStepOne.controls['student_last_name'].invalid && codSelfFormStepOne.controls['student_last_name'].touched\">\n        <span class=\"error-message\">Por favor ingresa un apellido válido.</span>\n      </div>\n      <ipt-select\n        [initialValue]=\"codSelfFormStepOne.controls['student_id_card_type'].value\"\n        [control]=\"codSelfFormStepOne.controls['student_id_card_type']\"\n        [selectCode]=\"codSelfFormStepOne.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codSelfFormStepOne.controls['student_id_card_type'].value\"\n        [isRequired]=\"true\"\n        [data]=\"idTypes\"\n        (eventSelect)=\"selectIdType($event)\"\n        [defaultText]=\"'Tipo de documento'\"\n      ></ipt-select>\n      <div *ngIf=\"codSelfFormStepOne.controls['student_id_card_type'].invalid && codSelfFormStepOne.controls['student_id_card_type'].touched\">\n        <span class=\"error-message\">Por favor ingresa un tipo de documento válido.</span>\n      </div>\n      <ipt-input\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Número de documento'\"\n        [control]=\"codSelfFormStepOne.controls['student_id_card']\"\n      ></ipt-input>\n      <div *ngIf=\"codSelfFormStepOne.controls['student_id_card'].invalid && codSelfFormStepOne.controls['student_id_card'].touched\">\n        <span class=\"error-message\">Por favor ingresa un documento válido.</span>\n      </div>\n      <ipt-select\n        [initialValue]=\"codSelfFormStepOne.controls['gender'].value\"\n        [control]=\"codSelfFormStepOne.controls['gender']\"\n        [data]=\"genders\"\n        (eventSelect)=\"selectGender($event)\"\n        [defaultText]=\"'Género'\"\n      ></ipt-select>\n      <div *ngIf=\"codSelfFormStepOne.controls['gender'].invalid && codSelfFormStepOne.controls['gender'].touched\">\n        <span class=\"error-message\">Por favor ingresa un genero válido.</span>\n      </div>\n      <ipt-input\n        onfocus=\"(this.type='date')\"\n        [inputType]=\"'date'\"\n        [control]=\"codSelfFormStepOne.controls['birthdate']\"\n        [placeHolder]=\"'Fecha de nacimiento'\"\n      ></ipt-input>\n      <div *ngIf=\"codSelfFormStepOne.controls['birthdate'].invalid && codSelfFormStepOne.controls['birthdate'].touched\">\n        <span class=\"error-message\">Por favor ingresa una fecha mayor de 3 años.</span>\n      </div>\n      <ipt-select\n        [initialValue]=\"codSelfFormStepOne.controls['country'].value\"\n        [control]=\"codSelfFormStepOne.controls['country']\"\n        [selectCode]=\"codSelfFormStepOne.controls['country'].value === null ? 'País de residencia' : codSelfFormStepOne.controls['country'].value\"\n        (eventSelect)=\"selectCountry($event)\"\n        [data]=\"countries\"\n        [defaultText]=\"'País de residencia'\"\n      ></ipt-select>\n      <div *ngIf=\"codSelfFormStepOne.controls['country'].invalid && codSelfFormStepOne.controls['country'].touched\">\n        <span class=\"error-message\">Por favor ingresa un pais válido.</span>\n      </div>\n      <ipt-select\n        [initialValue]=\"codSelfFormStepOne.controls['state'].value\"\n        [control]=\"codSelfFormStepOne.controls['state']\"\n        [selectCode]=\"codSelfFormStepOne.controls['state'].value === null ? 'Departamento o estado' : codSelfFormStepOne.controls['state'].value\"\n        [isRequired]=\"true\"\n        (eventSelect)=\"selectState($event)\"\n        [data]=\"states\"\n        [defaultText]=\"'Departamento o estado'\"\n      ></ipt-select>\n      <div *ngIf=\"codSelfFormStepOne.controls['state'].invalid && codSelfFormStepOne.controls['state'].touched\">\n        <span class=\"error-message\">Por favor ingresa un departamento válido.</span>\n      </div>\n      <ipt-select\n        [initialValue]=\"codSelfFormStepOne.controls['city'].value\"\n        [control]=\"codSelfFormStepOne.controls['city']\"\n        [selectCode]=\"codSelfFormStepOne.controls['city'].value === null ? 'Ciudad de residencia' : codSelfFormStepOne.controls['city'].value\"\n        (eventSelect)=\"selectCity($event)\"\n        [data]=\"cities\"\n        [defaultText]=\"'Ciudad de residencia'\"\n      ></ipt-select>\n      <div *ngIf=\"codSelfFormStepOne.controls['city'].invalid && codSelfFormStepOne.controls['city'].touched\">\n        <span class=\"error-message\">Por favor ingresa una ciudad válido.</span>\n      </div>\n      <ipt-input\n        [inputType]=\"'email'\"\n        [placeHolder]=\"'Correo electrónico'\"\n        [control]=\"codSelfFormStepOne.controls['student_email']\"\n      ></ipt-input>\n      <div *ngIf=\"codSelfFormStepOne.controls['student_email'].invalid && codSelfFormStepOne.controls['student_email'].touched\">\n        <span class=\"error-message\">Por favor ingresa un email valido.</span>\n      </div>\n      <ipt-select\n        [initialValue]=\"codSelfFormStepOne.controls['student_phone_indicative'].value\"\n        [control]=\"codSelfFormStepOne.controls['student_phone_indicative']\"\n        [data]=\"indicatives\"\n        (eventSelect)=\"selectIndicatives($event)\"\n        [defaultText]=\"'Indicativo'\"\n      ></ipt-select>\n      <div *ngIf=\"codSelfFormStepOne.controls['student_phone_indicative'].invalid && codSelfFormStepOne.controls['student_phone_indicative'].touched\">\n        <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n      </div>\n      <ipt-input\n        [inputType]=\"'number'\"\n        [placeHolder]=\"'Número de teléfono'\"\n        [control]=\"codSelfFormStepOne.controls['student_phone_number']\"\n      ></ipt-input>\n      <div *ngIf=\"codSelfFormStepOne.controls['student_phone_number'].invalid && codSelfFormStepOne.controls['student_phone_number'].touched\">\n        <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n      </div>\n      <ipt-select\n        [initialValue]=\"codSelfFormStepOne.controls['grade'].value\"\n        [control]=\"codSelfFormStepOne.controls['grade']\"\n        [data]=\"grades\"\n        (eventSelect)=\"selectGrade($event)\"\n        [defaultText]=\"'Grado Educativo'\"\n      ></ipt-select>\n      <div *ngIf=\"codSelfFormStepOne.controls['grade'].invalid && codSelfFormStepOne.controls['grade'].touched\">\n        <span class=\"error-message\">Por favor selecciona un grado educativo</span>\n      </div>\n      <ipt-select\n      *ngIf=\"showAgreementSelect\"\n      [initialValue]=\"codSelfFormStepOne.controls['agreement_by_category'].value\"\n      [control]=\"codSelfFormStepOne.controls['agreement_by_category']\"\n      [data]=\"agreements\"\n      (eventSelect)=\"selectAgreement($event)\"\n      [defaultText]=\"'Convenio'\"\n    ></ipt-select>\n    <div *ngIf=\"codSelfFormStepOne.controls['agreement_by_category'].invalid && codSelfFormStepOne.controls['agreement_by_category'].touched\">\n      <span class=\"error-message\">Por favor selecciona un convenio valido</span>\n    </div>\n    </form>\n\n    <div class=\"flex justify-content-end mt-3 align-items-center gap-3\">\n      <button\n        pButton\n        icon=\"pi pi-arrow-right\"\n        type=\"submit\"\n        [disabled]=\"!codSelfFormStepOne.valid\"\n        (click)=\"sendForm()\"\n      ></button>\n    </div>\n  </div>\n\n</div>\n","import { Component, Output, EventEmitter, OnInit, Input } from '@angular/core';\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\n\n//import services\nimport { AcademicService } from './../../../core/services/academic-service/academic.service';\nimport { BaseService } from './../../../core/utils/base-service/base.service';\nimport { CodSelfManagedControls } from '../../logic/cod-self-managed-controls';\nimport { CodSelfManagedSteps, localStorageValuesTwo } from '../../logic/cod-self-managed-steps';\n\n//import Prime ng\nimport { MessageService } from 'primeng/api';\n\n//import Models\nimport { IweekDaysRq } from '../../../core/models/academic/academic.component';\n\n@Component({\n  selector: 'app-cod-self-form-step-two',\n  templateUrl: './cod-self-form-step-two.component.html',\n  styleUrls: ['./cod-self-form-step-two.component.css'],\n})\nexport class CodSelfFormStepTwoComponent extends CodSelfManagedSteps implements OnInit {\n\n  @Output() completed = new EventEmitter<number>();\n\n  @Input() scorePlacementTest?:any;\n  @Input() codPrevious?:any;\n\n  controls = new CodSelfManagedControls().controls[1];\n  codSelfFormStepTwo!: FormGroup;\n  startDate1!: string;\n  visible: boolean = false;\n  messageInfo:string = 'Busca un plan de acuerdo a tu disponibilidad.';\n  stateOptionsModality: any[] = [\n    { code: 1, key: 'pr',  name: 'Presencial'},\n    { code: 2, key: 'vi', name: 'Virtual'},\n  ];\n  schedules: IweekDaysRq[] = [\n    {code: 1, name: 'Mañana', key: 'ma' },\n    {code: 2, name: 'Tarde', key: 'ta' },\n    {code: 3, name: 'Noche', key: 'no' },\n  ];\n  OptionPlacementTest: any[]=[\n    {code: 1, key: 'si',  name: 'Si'},\n    {code: 2, key: 'ni',  name: 'No'},\n  ];\n  selectedSchedules: IweekDaysRq[] = [];\n  disableweekdays: boolean[] = [];\n  selectedModality: IweekDaysRq[]=[]\n  selectedOptionPlacementTest: IweekDaysRq[]=[];\n  messageAlertSchedules = false;\n  messageAlertModality = false;\n  messageAlertPlacementTest = false;\n  SearchData = true;\n  dataCourse: any[] = [];\n  isLoading = true;\n  courseSelect?: any;\n  visibleGroupReview = false;\n\n  constructor(\n    private fb: FormBuilder,\n    private messageService: MessageService,\n    private baseService: BaseService,\n    private academicService: AcademicService\n  ) {\n    super();\n    this.initForm();\n  }\n\n  ngOnInit(): void {\n    this.startLocalStorageWork();\n    this.isLoading=true;\n  }\n\n  initForm() {\n\n    this.codSelfFormStepTwo = this.fb.group({\n      academic_plan: ['', [Validators.required]],\n      course_type:['', [Validators.required]],\n      english_level: [{value: '', disabled: true}, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],\n      availible_courses: ['', [Validators.required]],\n      course_modality: ['', [Validators.required],],\n\n    });\n  }\n\n  back() {\n    this.completed.emit(0);\n  }\n  sendForm() {\n    this.completed.emit(2);\n  }\n\n  startLocalStorageWork() {\n    this.controls.forEach(control => {\n      let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(2, control.name);\n      this.codSelfFormStepTwo.controls[control.name].setValue(localStorageValue.value);\n      this.listenFormChanges(2, control.name, this.codSelfFormStepTwo.controls[control.name].valueChanges);\n    });\n  }\n\n  searchAvalaibleCourse(){\n    this.isLoading=true;\n    const age = Number(this.localStorageCOD.getCodFormData(1, 'age'))\n    const grade = Number(this.localStorageCOD.getCodFormData(1, 'grade'))\n    const agreement = Number(this.localStorageCOD.getCodFormData(1, 'agreement_by_category'))\n    const userCode = this.baseService.getUserCode();\n\n    const request: any = {\n      code_user: userCode,\n      codPrevious: this.codPrevious,\n      scorePlacementTest: this.scorePlacementTest,\n      age: age,\n      grade: grade,\n      agreement: agreement,\n      modality: this.selectedModality,\n      schedules: this.selectedSchedules,\n      decitionPlacementTest: this.selectedOptionPlacementTest,\n      token: this.baseService.getUserToken()\n\n    }\n    this.academicService.obtainPlansCourseAvalaibleForPosibleStudentByAgeAndGrade(request).subscribe((response)=>{\n      this.SearchData = false;\n      this.dataCourse = response.data;\n      this.isLoading = false;\n      this.visibleGroupReview = true\n    })\n  }\n\n  onReject() {\n    this.messageService.clear('confirm');\n    this.visible = false;\n  }\n\n  showConfirm() {\n    if (!this.visible) {\n        this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 5000 });\n        this.visible = true;\n    }\n  }\n\n  selectSchedules(eve: IweekDaysRq[]) {\n    this.selectedSchedules = eve\n    if (this.selectedSchedules.length === 0) {\n      this.messageAlertSchedules = true;\n    }else{\n      this.messageAlertSchedules = false\n    }\n  }\n\n  selectModality(eve: IweekDaysRq[]){\n    this.selectedModality = eve\n    if (this.selectedModality.length === 0) {\n      this.messageAlertModality = true;\n    }else{\n      this.messageAlertModality = false\n    }\n  }\n  selectOpcionsPlacementTest(eve: IweekDaysRq[]){\n    this.selectedOptionPlacementTest = eve\n    if (this.selectedOptionPlacementTest.length === 0) {\n      this.messageAlertPlacementTest = true;\n    }else{\n      this.messageAlertPlacementTest = false\n    }\n  }\n\n  filterAgain(){\n    this.SearchData = true\n  }\n\n  courseCode(codeCourse: any){\n    this.courseSelect = codeCourse;\n    this.visibleGroupReview = false;\n    this.SearchData = false;\n    this.setValuesForm();\n  }\n\n  setValuesForm(){\n    this.codSelfFormStepTwo.controls['academic_plan'].setValue(this.courseSelect.course_type.academic_plan.code);\n    this.codSelfFormStepTwo.controls['course_type'].setValue(this.courseSelect.course_type?.code);\n    // this.codSelfFormStepTwo.controls['agreement_by_category'].setValue(this.courseSelect.agreement?.code);\n    this.codSelfFormStepTwo.controls['english_level'].setValue(this.courseSelect.english_level?.code);\n    this.codSelfFormStepTwo.controls['availible_courses'].setValue(this.courseSelect.code);\n    this.codSelfFormStepTwo.controls['course_modality'].setValue(this.courseSelect.course_modality.code);\n  }\n\n  openTestInNewTab(): void {\n    window.open('https://test.inglesparatodos.edu.co/', '_blank');\n  }\n}\n","<div class=\"container-main\">\n  <div class=\"container-form\">\n    <div class=\"title_step\">\n      <h2 class=\"title\">Planes</h2>\n      <i class=\"pi pi-exclamation-circle cursor-pointer w-auto mt-4 mb-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n    </div>\n      <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n        <ng-template let-message pTemplate=\"message\">\n            <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n                <div class=\"flex align-items-center gap-2\">\n                    <img src=\"./assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n                    <span class=\"font-bold text-900\">Jacob</span>\n                </div>\n                <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n            </div>\n        </ng-template>\n      </p-toast>\n\n      <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n        <div class=\"container-button\" *ngIf=\"!SearchData\">\n          <ipt-button\n            [label]=\"'Filtrar'\"\n            (onClick)=\"filterAgain()\"\n            [primary]=\"true\">\n          </ipt-button>\n        </div>\n\n        <div *ngIf=\"SearchData\">\n          <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n            <p-accordionTab header=\"Jornada\">\n              <div class=\"containerDay\">\n                <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n                  <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n                    <p-checkbox\n                      name=\"group2\"\n                      value=\"category\"\n                      [value]=\"dayW\"\n                      [(ngModel)]=\"selectedSchedules\"\n                      [inputId]=\"dayW.key\"\n                      [disabled]=\"disableweekdays[ind]\"\n                      [ngModelOptions]=\"{ standalone: true }\"\n                      checkboxIcon=\"pi pi-check-circle\"\n                      (ngModelChange)=\"selectSchedules($event)\"\n                    ></p-checkbox>\n                    <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n                  </div>\n                  <div *ngIf=\"messageAlertSchedules\">\n                    <span class=\"error-message\">Por favor selecciona una opcion</span>\n                  </div>\n              </div>\n            </div>\n            </p-accordionTab>\n            <p-accordionTab header=\"Modalidad\">\n              <div class=\"containerDay\">\n                <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n                  <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n                    <p-checkbox\n                      name=\"group2\"\n                      value=\"category\"\n                      [value]=\"dayW\"\n                      [(ngModel)]=\"selectedModality\"\n                      [inputId]=\"dayW.key\"\n                      [disabled]=\"disableweekdays[ind]\"\n                      [ngModelOptions]=\"{ standalone: true }\"\n                      checkboxIcon=\"pi pi-check-circle\"\n                      (ngModelChange)=\"selectModality($event)\"\n                    ></p-checkbox>\n                    <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n                  </div>\n                  <div *ngIf=\"messageAlertModality\">\n                    <span class=\"error-message\">Por favor selecciona una opcion</span>\n                  </div>\n              </div>\n            </div>\n            </p-accordionTab>\n            <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"Placement test\">\n              <span>Tienes un Placement Test realizado. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n              <span>\"NO APLICA PLACEMENT TEST PARA PLANES TECNICOS\"</span>\n              <div class=\"containerDay mt-3\">\n                <h3>¿Deseas iniciar en este nivel {{ scorePlacementTest?.level_inglish_next.name }}?</h3>\n\n              <div class=\"flex flex-column gap-3\">\n                <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n                    <p-radioButton\n                        [inputId]=\"category.key\"\n                        name=\"category\"\n                        [value]=\"category\"\n                        [(ngModel)]=\"selectedOptionPlacementTest\"\n                        [disabled]=\"disableweekdays[ind]\"\n                        [ngModelOptions]=\"{ standalone: true }\"\n                        (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n                        ></p-radioButton>\n                    <label [for]=\"category.key\" class=\"ml-2\">\n                        {{ category.name }}\n                    </label>\n                </div>\n              </div>\n            </div>\n            </p-accordionTab>\n            <p-accordionTab *ngIf=\"scorePlacementTest == null\" header=\"Prueba diagnóstico Placement Test\">\n              <span>Presenta totalmente gratis esta prueba para conocer tu nivel de inglés y nuestras ofertas para ti.</span>\n              <div class=\"containerDay mt-3\">\n                <ipt-button\n                [label]=\"'Presentar Test'\"\n                (onClick)=\"openTestInNewTab()\"\n                [primary]=\"true\">\n              </ipt-button>\n\n              <div class=\"flex flex-column gap-3\">\n\n            </div>\n            </div>\n            </p-accordionTab>\n\n          </p-accordion>\n          <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n            <button\n              pTooltip=\"Buscar Planes\"\n              tooltipPosition=\"left\"\n              pButton\n              Ripple\n              type=\"button\"\n              icon=\"pi pi-search\"\n              class=\"p-button-rounded p-button-outlined\"\n              [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n              (click)=\"searchAvalaibleCourse()\"\n            ></button>\n          </div>\n        </div>\n\n\n        <ipt-card-select-course-self-cod-managed\n        *ngIf=\"courseSelect != null\"\n        [courseSelect]=\"courseSelect\">\n        </ipt-card-select-course-self-cod-managed>\n\n        <article *ngIf=\"visibleGroupReview\" class=\"cards-container\">\n\n          <ipt-card-course-self-cod-managed\n            [CourseData]=\"dataCourse\"\n            (codeCourse)=\"courseCode($event)\"\n            [isLoading]=\"isLoading\">\n          </ipt-card-course-self-cod-managed>\n        </article>\n      <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n        <button\n        pButton\n        icon=\"pi pi-arrow-left\"\n        type=\"submit\"\n        (click)=\"back()\"\n        ></button>\n\n        <button\n        pButton\n        icon=\"pi pi-arrow-right\"\n        [disabled]=\"!codSelfFormStepTwo.valid || courseSelect === null\"\n        (click)=\"sendForm()\"\n        ></button>\n      </div>\n    </div>\n  </div>\n</div>\n\n\n\n","import { Injectable } from '@angular/core';\nimport Swal from 'sweetalert2';\n\nexport interface CalculateQuotesParams {\n  date: Date;\n  quotaValues: number;\n  quotaTimes: any;\n  totalPrice: any;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CalculateQuotesService {\n\n   monthsDays: number[] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n  constructor() { }\n\n  calculateQuotes(params: CalculateQuotesParams): any[] {\n    let dataFinancing: any[] = [];\n    let index = 1; // Indicador de cant. de cuotas\n    let dateJs =  new Date(params.date);\n    let isEndMonth = false;\n\n    dateJs.setMilliseconds(dateJs.getMilliseconds() + (1000*3600*24));\n\n    isEndMonth = this.monthsDays[dateJs.getMonth()] === dateJs.getDate();\n\n    if (dateJs.getDay() === 0) {\n      Swal.fire({\n        title: 'Fecha inválida',\n        text: 'Debe seleccionar un día de la semana diferente al domingo',\n        icon: 'error'\n      })\n    } else {\n\n      let enrollment: any[] = [\n        index,\n        Intl.NumberFormat('en-US', {\n          style: 'currency',\n          currency: 'USD',\n          minimumFractionDigits: 0\n        }).format(Math.round(parseFloat(params.totalPrice.toString()))),\n        this.getStringDate(dateJs)\n      ];\n\n      let quota: any[] = [\n        index,\n        Intl.NumberFormat('en-US', {\n          style: 'currency',\n          currency: 'USD',\n          minimumFractionDigits: 0\n        }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n        this.getStringDate(dateJs)\n      ];\n      dataFinancing.push(enrollment);\n\n      dataFinancing.push(quota);\n\n      while (index < params.quotaTimes) {\n        index = index + 1;\n        let newJsDate = this.setPlusOneMonth(dateJs, isEndMonth);\n        let row: any[] = [\n          index,\n          Intl.NumberFormat('en-US', {\n            style: 'currency',\n            currency: 'USD',\n            minimumFractionDigits: 0\n          }).format(Math.round(parseFloat(params.quotaValues.toString()))),\n          this.getStringDate(newJsDate[newJsDate.length - 1])\n        ];\n        dataFinancing.push(row)\n\n        dateJs = newJsDate[0];\n      }\n    }\n    return dataFinancing;\n  }\n\n  setPlusOneMonth(originDate: Date, isEndMonth: boolean): Date[] {\n    let response: Date [] = [];\n\n    let oneDayMilis = 1000 * 3600 * 24;\n\n    let day = isEndMonth ? this.monthsDays[(originDate.getMonth() + 1)%12]: originDate.getDate();\n    let plusMonthDate: Date = new Date(originDate.getFullYear(), originDate.getMonth() + 1, day);\n\n    response.push(new Date(originDate.getFullYear(), originDate.getMonth() + 1, day));\n\n    while(plusMonthDate.getDay() === 0) {\n      plusMonthDate.setMilliseconds(originDate.getMilliseconds() - oneDayMilis);\n    }\n\n    response.push(plusMonthDate);\n    return response;\n  }\n\n  // setPlusOneMonth2(originDate: Date, isEndMonth: boolean): Date[] {\n  //   let response: Date[] = [];\n  //   let oneDayMilis = 1000 * 3600 * 24;\n\n  //   let day = isEndMonth ? this.monthsDays[(originDate.getMonth() + 1) % 12] : originDate.getDate();\n  //   let plusMonthDate: Date = new Date(originDate.getFullYear(), originDate.getMonth() + 1, day);\n\n  //   while (plusMonthDate.getDay() === 0) {\n  //       plusMonthDate.setMilliseconds(plusMonthDate.getMilliseconds() - oneDayMilis);\n  //   }\n\n  //   response.push(plusMonthDate);\n  //   response.push(new Date(originDate.getFullYear(), originDate.getMonth() + 1, day + 1));\n  //   return response;\n  // }\n\n\n  getStringDate(originDate: Date) {\n    let month = originDate.getMonth()+1;\n    let stringMonth = month < 10 ? '0'+month : month;\n    return originDate.getFullYear() + '-' + stringMonth + '-' + originDate.getDate();\n  }\n\n}\n","import { Component, EventEmitter, Output, OnInit } from '@angular/core';\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\n\n//import services\nimport { CodSelfManagedControls } from './../../logic/cod-self-managed-controls';\nimport { localStorageValuesTwo } from './../../logic/cod-self-managed-steps';\nimport { CalculateQuotesParams, CalculateQuotesService } from './../../logic/calculate-quotes.service';\nimport { BaseService } from './../../../core/utils/base-service/base.service';\nimport { IObtainCodPricesRq } from './../../../core/models/commercial/commercial.model';\nimport { CodSelfManagedSteps } from '../../logic/cod-self-managed-steps';\nimport { CommercialService } from '../../../core/services/commercial-service/comercial.service';\n\n//import Prime ng and Library Alert\nimport { MessageService } from 'primeng/api';\nimport Swal from 'sweetalert2';\n\n@Component({\n  selector: 'app-cod-self-form-step-three',\n  templateUrl: './cod-self-form-step-three.component.html',\n  styleUrls: ['./cod-self-form-step-three.component.css'],\n})\nexport class CodSelfFormStepThreeComponent extends CodSelfManagedSteps implements OnInit {\n\n  @Output() completed = new EventEmitter<number>();\n  @Output() financingData = new EventEmitter<any>();\n\n  controls = new CodSelfManagedControls().controls[2];\n  messageInfo:string = \"Selecciona un plan de pagos\";\n  visible: boolean = false;\n  codSelfFormStepThree!: FormGroup;\n  paymentMethods: any[] = [\n    { code: '1', name: 'Financiado' },\n    { code: '2', name: 'Contado' },\n  ];\n  feeResponse: boolean = false;\n  thereArePlans: boolean = false;\n  dataPrices:any;\n  isFinancing: boolean = false;\n  dataFinancingMaster: any[] = [];\n  dataFinancing: any[] = [];\n  selectedRow: number | null = null;\n  errorMessage: string = 'Faltan campos por llenar.';\n  totalInitialPaymentSpan?: number;\n  isLoadingSelectLevels = false;\n  totalInitialPayment?: number;\n\n  constructor(\n    private fb: FormBuilder,\n    private messageService: MessageService,\n    private commercialService: CommercialService,\n    private baseService: BaseService,\n    private codFormControls: CodSelfManagedControls,\n    private calculateQuotesService: CalculateQuotesService) {\n    super();\n    this.initForm();\n  }\n\n  initForm() {\n    this.codSelfFormStepThree = this.fb.group({\n      program_price: [{ value: '', disabled: true }, [Validators.required]],\n      payment_date: ['' , [Validators.required]],\n      payment_method: ['', [Validators.required]],\n      quota_times: [{ value: '', disabled: true }, [Validators.required]],\n      total_price: [{ value: '', disabled: true }, [Validators.required]],\n      paid_level: ['', [Validators.required]],\n      quota_price: ['', [Validators.required]],\n      fee_number: ['', [Validators.required]],\n      selectedRow: [null],\n    });\n    this.listenPaymentMethodField();\n  }\n  ngOnInit(): void {\n    this.startLocalStorageWork();\n    const currentDate = new Date().toISOString().split('T')[0];\n    this.codSelfFormStepThree.controls['payment_date'].setValue(currentDate)\n\n    this.codSelfFormStepThree.get('payment_method')?.valueChanges.subscribe(() => {\n      this.selectedRow = null;\n      this.codSelfFormStepThree.controls['selectedRow'].setValue(null);\n      this.codSelfFormStepThree.controls['fee_number'].setValue(null);\n      this.codSelfFormStepThree.controls['quota_price'].setValue(null);\n      this.codSelfFormStepThree.controls['paid_level'].setValue(null);\n      this.codSelfFormStepThree.controls['selectedRow'].setValue(null);\n    });\n  }\n  startLocalStorageWork() {\n    this.controls.forEach(control => {\n      let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(3, control.name);\n      this.codSelfFormStepThree.controls[control.name].setValue(localStorageValue.value);\n      this.listenFormChanges(3, control.name, this.codSelfFormStepThree.controls[control.name].valueChanges);\n    });\n  }\n\n  listenPaymentMethodField() {\n    const control = this.codSelfFormStepThree.get('payment_method');\n    control?.valueChanges.subscribe((change) => {\n      // Financiado\n      if (change === '1') {\n        // Poner validaciones\n        this.codSelfFormStepThree.controls['program_price'].setValidators([Validators.required]);\n        this.codSelfFormStepThree.controls['payment_date'].setValidators([Validators.required]);\n        this.codSelfFormStepThree.controls['quota_times'].setValidators([Validators.required]);\n        this.codSelfFormStepThree.controls['total_price'].setValidators([Validators.required]);\n\n        this.updateValueAndValidity();\n        this.updateGlobalControls(change)\n      }\n\n      // de contado\n      if (change === '2') {\n        // Quitar las validaciones\n        this.codSelfFormStepThree.controls['program_price'].setValidators([Validators.required]);\n        this.codSelfFormStepThree.controls['payment_date'].setValidators([Validators.required]);\n        this.codSelfFormStepThree.controls['quota_times'].clearValidators();\n        this.codSelfFormStepThree.controls['total_price'].setValidators([Validators.required]);\n\n        this.updateValueAndValidity();\n        this.updateGlobalControls(change)\n      }\n    });\n  }\n  updateGlobalControls(change: string) {\n    let controls = this.controls.filter(control => control.name !== 'payment_method');\n    controls.forEach(control => {\n      if (change === '1') this.codFormControls.changeValue(3, control.name, true)\n      if (change === '2') {\n        if (control.name === 'quota_times') this.codFormControls.changeValue(3, control.name, false);\n      }\n    });\n  }\n  onReject() {\n    this.messageService.clear('confirm');\n    this.visible = false;\n  }\n\n  showConfirm() {\n    if (!this.visible) {\n        this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 5000 });\n        this.visible = true;\n    }\n  }\n\n  selectPaymentMethod(paymentMethod: any) {\n    this.feeResponse = true;\n    this.thereArePlans = false;\n\n    if (paymentMethod !== '') {\n      const request: IObtainCodPricesRq = {\n        token:            this.baseService.getUserToken(),\n        course_type:      Number(this.localStorageCOD.getCodFormData(2, 'course_type')),\n        agreement:        Number(this.localStorageCOD.getCodFormData(1, 'agreement_by_category')),\n        course_modality:  Number(this.localStorageCOD.getCodFormData(2, 'course_modality')),\n        payment_method:   parseInt(paymentMethod)\n      }\n      this.commercialService.ObtainCodPricesCodSelfManaged(request).subscribe((response)=> {\n        if (response.data != null) {\n          this.dataPrices = response.data;\n          this.feeResponse = false;\n          this.thereArePlans = true;\n        }else {\n          this.thereArePlans = false;\n          this.feeResponse = false;\n          Swal.fire({\n            position: 'center',\n            icon: 'warning',\n            title:\n              '<p style=\"font-family: Poppins\"\">Oops.. no hay planes de pagos, \\n en el curso elegido.</p>',\n            showConfirmButton: false,\n            timer: 3000,\n          });\n          this.clearInputPayment();\n        }\n      });\n      this.codSelfFormStepThree.controls['payment_method'].setValue(paymentMethod);\n    } else {\n      this.codSelfFormStepThree.controls['payment_method'].setValue(null);\n    }\n  }\n\n  clearInputPayment(){\n    this.codSelfFormStepThree.controls['program_price'].setValue(null);\n    this.codSelfFormStepThree.controls['quota_times'].setValue(null);\n    this.codSelfFormStepThree.controls['total_price'].setValue(null);\n  }\n  back() {\n    this.completed.emit(1);\n  }\n\n  sendForm() {\n\n    this.completed.emit(3);\n  }\n\n  showTable() {\n    this.isLoadingSelectLevels = true;\n    this.isFinancing = true;\n    this.financingData.emit(null);\n    const total_price = this.codSelfFormStepThree.controls['total_price'].value;\n    if ((total_price === 'null') || this.codSelfFormStepThree.invalid) {\n      Swal.fire({\n        title: 'Error table',\n        text: 'Debes ingresar el monto total de la matrícula y la cuota inicial',\n        icon: 'error'\n      })\n      return;\n    }\n\n    // Calcular cuotas\n    this.dataFinancing = [];\n\n    let params: CalculateQuotesParams = {\n      date: new Date(this.codSelfFormStepThree.controls['payment_date'].value),\n      quotaValues: Number(this.codSelfFormStepThree.controls['quota_price'].value),\n      quotaTimes: Number(this.codSelfFormStepThree.controls['fee_number'].value),\n      totalPrice: this.codSelfFormStepThree.controls['total_price'].value,\n    }\n\n    this.dataFinancingMaster = this.calculateQuotesService.calculateQuotes(params);\n    if (this.dataFinancingMaster.length > 1) {\n\n      const enrollmentValue = this.dataFinancingMaster[0][1];\n      const firstQuotaValue = this.dataFinancingMaster[1][1];\n      this.totalInitialPaymentSpan = parseFloat(enrollmentValue.replace(/[^\\d.-]/g, '')) + parseFloat(firstQuotaValue.replace(/[^\\d.-]/g, ''));\n\n      const enrollmentValueTwo = parseFloat(this.dataFinancingMaster[0][1].replace(/[^\\d.-]/g, ''));\n      const firstQuotaValueTwo = parseFloat(this.dataFinancingMaster[1][1].replace(/[^\\d.-]/g, ''));\n      this.totalInitialPayment = enrollmentValueTwo + firstQuotaValueTwo;\n\n      const totalInitialPaymentInteger = Math.round(this.totalInitialPayment);\n\n      const formattedTotalInitialPayment = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD',minimumFractionDigits: 0 }).format(totalInitialPaymentInteger);\n\n      const combinedRecord = [\n        this.dataFinancingMaster[0][0],\n        formattedTotalInitialPayment,\n        this.dataFinancingMaster[0][2]\n      ];\n      this.dataFinancing = [combinedRecord, ...this.dataFinancingMaster.slice(2)];\n    }\n    this.isFinancing = true;\n    this.financingData.emit(this.dataFinancingMaster);\n    this.isLoadingSelectLevels = false;\n  }\n\n  selectLevels(dataPayment: any, rowIndex: number){\n    rowIndex\n    if (this.codSelfFormStepThree.get('payment_method')?.value == 1) {\n      this.selectedRow = rowIndex;\n      this.codSelfFormStepThree.controls['selectedRow'].setValue(rowIndex);\n      this.codSelfFormStepThree.controls['quota_times'].setValue(dataPayment.code);\n      this.codSelfFormStepThree.controls['total_price'].setValue(dataPayment.enrollment);\n      this.codSelfFormStepThree.controls['program_price'].setValue(dataPayment.financed_price);\n      this.codSelfFormStepThree.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n      this.codSelfFormStepThree.controls['fee_number'].setValue(dataPayment.fee_number);\n      this.codSelfFormStepThree.controls['quota_price'].setValue(dataPayment.quota_price);\n      this.updateValueAndValidity();\n      this.showTable();\n    } else if(this.codSelfFormStepThree.get('payment_method')?.value == 2){\n      this.selectedRow = rowIndex;\n      this.codSelfFormStepThree.controls['selectedRow'].setValue(rowIndex);\n      this.codSelfFormStepThree.controls['quota_times'].setValue(dataPayment.code);\n      this.codSelfFormStepThree.controls['total_price'].setValue(dataPayment.enrollment);\n      this.codSelfFormStepThree.controls['program_price'].setValue(dataPayment.normal_price);\n      this.codSelfFormStepThree.controls['paid_level'].setValue(dataPayment.paid_level - 1);\n      this.codSelfFormStepThree.controls['fee_number'].setValue(dataPayment.fee_number);\n      this.codSelfFormStepThree.controls['quota_price'].setValue(dataPayment.quota_price);\n      this.updateValueAndValidity();\n    }\n  }\n\n  updateValueAndValidity() {\n    this.codSelfFormStepThree.controls['program_price'].updateValueAndValidity();\n    this.codSelfFormStepThree.controls['payment_date'].updateValueAndValidity();\n    this.codSelfFormStepThree.controls['quota_times'].updateValueAndValidity();\n    this.codSelfFormStepThree.controls['total_price'].updateValueAndValidity();\n  }\n\n}\n","<div class=\"container-main\">\n  <div class=\"container-form\">\n    <h2>Pagos</h2>\n    <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n      <ng-template let-message pTemplate=\"message\">\n          <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n              <div class=\"flex align-items-center gap-2\">\n                  <img src=\"./assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n                  <span class=\"font-bold text-900\">Jacob</span>\n              </div>\n              <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n          </div>\n      </ng-template>\n    </p-toast>\n    <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n    <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n      <div class=\"container__body__select flex justify-content-center flex-wrap\">\n\n        <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepThree\" class=\"grid mt-2 flex flex-column align-items-center\">\n\n          <div class=\"container_selects col-12\">\n            <ipt-select\n              [initialValue]=\"codSelfFormStepThree.controls['payment_method'].value\"\n              [control]=\"codSelfFormStepThree.controls['payment_method']\"\n              (eventSelect)=\"selectPaymentMethod($event)\"\n              [data]=\"paymentMethods\"\n              [defaultText]=\"'Método de pago'\"\n            ></ipt-select>\n            <ipt-loader *ngIf=\"feeResponse\"></ipt-loader>\n\n            <div class=\"col-12\" *ngIf=\"thereArePlans\">\n              <p-table\n                [value]=\"dataPrices\"\n                [tableStyle]=\"{'min-width': '100%'}\"\n                [rowHover]=\"true\"\n              >\n                <ng-template pTemplate=\"caption\">\n                  <div class=\"flex align-items-center\">\n                    Click en niveles a cancelar\n                  </div>\n                </ng-template>\n                <ng-template pTemplate=\"header\">\n                  <tr>\n                    <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\"></th>\n                    <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cancelar</th>\n                    <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Cuotas</th>\n                  </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-data let-rowIndex=\"rowIndex\">\n                  <tr [class.selected-row]=\"selectedRow === rowIndex\" (click)=\"selectLevels(data, rowIndex)\">\n                    <td class=\"pt-0 pb-0 text-center\">\n                      <p-radioButton [value]=\"rowIndex\" formControlName=\"selectedRow\"></p-radioButton>\n                    </td>\n                    <td class=\"pt-1 pb-1\">{{ data.paid_level }} {{ data.paid_level == 1 ? \"Nivel\" : \"Niveles\"}}</td>\n                    <td class=\"pt-1 pb-1 text-center\">{{ data.fee_number }}</td>\n                  </tr>\n                </ng-template>\n              </p-table>\n            </div>\n          </div>\n\n          <div class=\"container_selects col-12\">\n            <ipt-input\n              [inputType]=\"'text'\"\n              [placeHolder]=\"'Monto total de la matrícula'\"\n              [control]=\"codSelfFormStepThree.controls['total_price']\"\n              [withPipe]=\"true\"\n            ></ipt-input>\n          </div>\n\n          <div class=\"container_selects col-12\">\n            <ipt-input\n              [withPipe]=\"true\"\n              [inputType]=\"'text'\"\n              [control]=\"codSelfFormStepThree.controls['program_price']\"\n              [placeHolder]=\"'Valor total del programa'\"\n            ></ipt-input>\n          </div>\n\n          <div class=\"flex justify-content-center flex-wrap m-2\">\n          </div>\n\n          <!-- Tabla de financiación -->\n          <div class=\"col-12\" *ngIf=\"codSelfFormStepThree.controls['payment_method'].value === '1' && isFinancing\">\n            <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n              <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n                <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n              </div>\n              <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n                <span><strong>NOTA:</strong> Deberá pagar la matrícula y la primera cuota <strong>(total: ${{ totalInitialPaymentSpan }})</strong> para completar el proceso de inscripción.</span><br>\n                <span>Recuerda que las fechas cambian de acuerdo a la fecha que comienza el plan</span>\n              </div>\n            </div>\n\n            <p-table\n              *ngIf=\"!isLoadingSelectLevels\"\n              [value]=\"dataFinancing\"\n              [tableStyle]=\"{'min-width': '100%'}\"\n              [rowHover]=\"true\"\n            >\n              <ng-template pTemplate=\"caption\">\n                <div class=\"flex align-items-center\">\n                  Cálculo de cuotas\n                </div>\n              </ng-template>\n              <ng-template pTemplate=\"header\">\n                <tr>\n                  <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">#</th>\n                  <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Valor</th>\n                  <th class=\"bg-blue-200 text-center font-medium pt-2 pb-2\">Fecha</th>\n                </tr>\n              </ng-template>\n              <ng-template pTemplate=\"body\" let-data>\n                <tr>\n                  <td class=\"p-0 text-center text-sm\">{{ data[0] }}</td>\n                  <td class=\"p-0 text-center text-sm\">{{ data[1] }}</td>\n                  <td class=\"p-0 text-center text-sm\">{{ data[2] }}</td>\n                </tr>\n              </ng-template>\n            </p-table>\n            <ipt-loader *ngIf=\"isLoadingSelectLevels\"></ipt-loader>\n          </div>\n\n        </form>\n      </div>\n\n      <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n        <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n        <button\n        pButton\n        icon=\"pi pi-arrow-left\"\n        type=\"submit\"\n        (click)=\"back()\"\n        ></button>\n\n        <button\n        pButton\n        icon=\"pi pi-arrow-right\"\n        [disabled]=\"!codSelfFormStepThree.valid\"\n        (click)=\"sendForm()\"\n        ></button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, Output, EventEmitter, OnInit, Input } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl, AbstractControl, ValidatorFn } from '@angular/forms';\nimport { MessageService } from 'primeng/api';\nimport { IweekDaysRq } from './../../../core/models/academic/academic.component';\nimport { CodSelfManagedSteps, localStorageValuesTwo } from '../../logic/cod-self-managed-steps';\nimport { CodSelfManagedControls } from '../../logic/cod-self-managed-controls';\n\n@Component({\n  selector: 'app-cod-self-form-step-four',\n  templateUrl: './cod-self-form-step-four.component.html',\n  styleUrls: ['./cod-self-form-step-four.component.css'],\n})\nexport class CodSelfFormStepFourComponent extends CodSelfManagedSteps implements OnInit {\n\n  @Input() idTypes: any;\n  @Output() completed = new EventEmitter<number>();\n  @Output() action = new EventEmitter<string>();\n\n  controls = new CodSelfManagedControls().controls[3];\n  messageInfo: string = \"Datos de facturacion de acuerdo a tu eleccion\";\n  visible: boolean = false;\n  codSelfFormStepFour!: FormGroup;\n  selectedOptionPayments?: IweekDaysRq;\n  messageAlertPlacementTest = false;\n  disableweekdays: boolean[] = [];\n  isSelectionOptionPayments = true;\n  isEditBillingData = true;\n  OptionPayments: any[] = [\n    { code: 1, key: 'in', name: 'Instalaciones' },\n    // { code: 2, key: 'tr', name: 'Transferencia' },\n    { code: 3, key: 'ps', name: 'Pasarela pagos' },\n  ];\n\n  studentIdCardType = new FormControl();\n\n  constructor(\n    private fb: FormBuilder,\n    private messageService: MessageService,\n    private codFormControls: CodSelfManagedControls,\n  ) {\n    super();\n    this.initForm();\n  }\n\n  ngOnInit(): void {\n    this.startLocalStorageWork();\n    this.subscribeToStudentIdCardTypeChanges();\n    this.getDataUser();\n  }\n\n  initForm() {\n    this.codSelfFormStepFour = this.fb.group({\n      optionsPayments: ['', [Validators.required]],\n      invoicing_name: ['', [Validators.required]],\n      invoicing_Apellido: ['', [Validators.required]],\n      invoicing_idType: ['', [Validators.required]],\n      invoicing_document: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(20), Validators.pattern(/^[0-9]*$/)]],\n    });\n  }\n\n  subscribeToStudentIdCardTypeChanges() {\n    this.studentIdCardType.valueChanges.subscribe(value => {\n      this.updateBillingDataFields(value);\n    });\n  }\n\n  getDataUser() {\n    const typeIdCard = this.localStorageCOD.getCodFormData(1, 'student_id_card_type');\n    this.studentIdCardType.setValue(typeIdCard);\n  }\n\n  updateBillingDataFields(typeIdCard: string | null) {\n    if (typeIdCard != null && typeIdCard != \"2\") {\n      const nameStudent = this.localStorageCOD.getCodFormData(1, 'student_name');\n      const lastNameStudent = this.localStorageCOD.getCodFormData(1, 'student_last_name');\n      const typeIdCardStudent = this.localStorageCOD.getCodFormData(1, 'student_id_card_type');\n      const idCardStudent = this.localStorageCOD.getCodFormData(1, 'student_id_card');\n\n\n      this.codSelfFormStepFour.controls['invoicing_name'].setValue(nameStudent);\n      this.codSelfFormStepFour.controls['invoicing_Apellido'].setValue(lastNameStudent);\n      this.codSelfFormStepFour.controls['invoicing_idType'].setValue(typeIdCardStudent);\n      this.codSelfFormStepFour.controls['invoicing_document'].setValue(idCardStudent);\n    } else {\n      // Limpia los campos si el tipo de documento es \"2\"\n      this.codSelfFormStepFour.controls['invoicing_name'].setValue('');\n      this.codSelfFormStepFour.controls['invoicing_Apellido'].setValue('');\n      this.codSelfFormStepFour.controls['invoicing_idType'].setValue('');\n      this.codSelfFormStepFour.controls['invoicing_document'].setValue('');\n    }\n  }\n\n  back() {\n    if (!this.isSelectionOptionPayments && !this.isEditBillingData) {\n      this.isEditBillingData = true;\n    } else if (!this.isSelectionOptionPayments && this.isEditBillingData) {\n      this.isSelectionOptionPayments = true;\n    } else {\n      this.completed.emit(2);\n    }\n  }\n\n  next() {\n    if (this.isSelectionOptionPayments) {\n      this.isSelectionOptionPayments = false;\n    } else if (!this.isEditBillingData) {\n      this.isEditBillingData = true;\n    } else {\n      this.sendForm();\n    }\n  }\n\n  startLocalStorageWork() {\n    this.controls.forEach(control => {\n      let localStorageValue: localStorageValuesTwo = this.readAndWriteLS(4, control.name);\n      this.codSelfFormStepFour.controls[control.name].setValue(localStorageValue.value);\n      this.listenFormChanges(4, control.name, this.codSelfFormStepFour.controls[control.name].valueChanges);\n    });\n  }\n\n  editBillingData() {\n    this.isEditBillingData = false;\n  }\n\n  updateDatosBillingData() {\n    this.isEditBillingData = true;\n  }\n\n  sendForm() {\n    this.codSelfFormStepFour.markAllAsTouched();\n    this.action.emit('create');\n  }\n\n  onReject() {\n    this.messageService.clear('confirm');\n    this.visible = false;\n  }\n\n  showConfirm() {\n    if (!this.visible) {\n      this.messageService.add({ key: 'confirm', sticky: true, severity: 'success', summary: 'Can you send me the report?', life: 5000 });\n      this.visible = true;\n    }\n  }\n\n  selectOpcionsPayments(eve: IweekDaysRq) {\n    this.selectedOptionPayments = eve;\n    this.isSelectionOptionPayments = false;\n\n    if (this.selectedOptionPayments !== null) {\n      this.codSelfFormStepFour.controls['optionsPayments'].setValue(this.selectedOptionPayments.code);\n\n      if (this.selectedOptionPayments.code === 1) { // Instalaciones\n        this.addValidators();\n      } else if (this.selectedOptionPayments.code === 3) { // Pasarela Pago\n        this.removeValidators();\n      }\n\n      // Aplicar el validador personalizado basado en la opción seleccionada\n      this.codSelfFormStepFour.setValidators(paymentOptionValidator(this.selectedOptionPayments));\n      this.codSelfFormStepFour.updateValueAndValidity();\n      this.updateGlobalControls(this.selectedOptionPayments.code);\n    } else {\n      this.codSelfFormStepFour.controls['optionsPayments'].setValue(null);\n    }\n  }\n\n  addValidators() {\n    this.codSelfFormStepFour.controls['invoicing_name'].setValidators([Validators.required]);\n    this.codSelfFormStepFour.controls['invoicing_Apellido'].setValidators([Validators.required]);\n    this.codSelfFormStepFour.controls['invoicing_idType'].setValidators([Validators.required]);\n    this.codSelfFormStepFour.controls['invoicing_document'].setValidators([Validators.required, Validators.minLength(5), Validators.maxLength(20), Validators.pattern(/^[0-9]*$/)]);\n    this.codSelfFormStepFour.controls['invoicing_name'].updateValueAndValidity();\n    this.codSelfFormStepFour.controls['invoicing_Apellido'].updateValueAndValidity();\n    this.codSelfFormStepFour.controls['invoicing_idType'].updateValueAndValidity();\n    this.codSelfFormStepFour.controls['invoicing_document'].updateValueAndValidity();\n  }\n\n  removeValidators() {\n    this.codSelfFormStepFour.controls['invoicing_name'].clearValidators();\n    this.codSelfFormStepFour.controls['invoicing_Apellido'].clearValidators();\n    this.codSelfFormStepFour.controls['invoicing_idType'].clearValidators();\n    this.codSelfFormStepFour.controls['invoicing_document'].clearValidators();\n    this.codSelfFormStepFour.controls['invoicing_name'].updateValueAndValidity();\n    this.codSelfFormStepFour.controls['invoicing_Apellido'].updateValueAndValidity();\n    this.codSelfFormStepFour.controls['invoicing_idType'].updateValueAndValidity();\n    this.codSelfFormStepFour.controls['invoicing_document'].updateValueAndValidity();\n  }\n\n  selectIdType(idType: any) {\n    if (idType !== 'Tipo de documento') {\n      this.codSelfFormStepFour.controls['invoicing_idType'].setValue(idType);\n    } else {\n      this.codSelfFormStepFour.controls['invoicing_idType'].setValue(null);\n    }\n  }\n\n  getViewBasedOnPaymentOption(): string {\n    if (this.selectedOptionPayments?.code === 1) {\n      return 'in';\n    } else if (this.selectedOptionPayments?.code === 3) {\n      return 'ps';\n    }\n    return 'default';\n  }\n\n  getIdTypeDescription(idType: string): string {\n    switch (idType) {\n      case '0':\n        return 'N/A';\n      case '1':\n        return 'C.C';\n      case '2':\n        return 'T.I';\n      case '3':\n        return 'C.E';\n      case '4':\n        return 'P.E.P';\n      case '5':\n        return 'R.U.M';\n      case '6':\n        return 'P.P.T';\n      case '7':\n        return 'P.A';\n      case '8':\n        return 'R.C';\n      case '9':\n        return 'C.D';\n      default:\n        return '';\n    }\n  }\n  updateGlobalControls(change: number) {\n    let controls = this.controls.filter(control => control.name !== 'optionsPayments');\n    controls.forEach(control => {\n      if (change === 1) this.codFormControls.changeValue(4, control.name, true)\n      if (change === 3) this.codFormControls.changeValue(4, control.name, false)\n    });\n  }\n}\n\n\n// Definición de la función de validador personalizada\nfunction paymentOptionValidator(selectedOptionPayments: IweekDaysRq): ValidatorFn {\n  return (control: AbstractControl): { [key: string]: any } | null => {\n    if (selectedOptionPayments?.code === 1) { // Instalaciones\n      if (!control.get('invoicing_name')?.value || !control.get('invoicing_Apellido')?.value ||\n          !control.get('invoicing_idType')?.value || !control.get('invoicing_document')?.value) {\n        return { 'requiredFieldsMissing': true };\n      }\n    }\n    return null;\n  };\n}\n","<div class=\"container-main\">\n  <div class=\"container-form\">\n    <div class=\"title_step\">\n      <h2>Datos de Facturación</h2>\n      <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n        <ng-template let-message pTemplate=\"message\">\n          <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n            <div class=\"flex align-items-center gap-2\">\n              <img src=\"./assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n              <span class=\"font-bold text-900\">Jacob</span>\n            </div>\n            <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n          </div>\n        </ng-template>\n      </p-toast>\n    </div>\n\n    <i class=\"pi pi-exclamation-circle cursor-pointer w-auto \" (click)=\"showConfirm()\" pTooltip=\"Más info.\" tooltipPosition=\"bottom\"></i>\n    <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n      <form autocomplete=\"off\" [formGroup]=\"codSelfFormStepFour\" class=\"grid mt-2 flex flex-column align-items-center\">\n        <div class=\"container__body__select flex justify-content-center flex-wrap\">\n          <div class=\"container__type__payments\" *ngIf=\"isSelectionOptionPayments\">\n            <div class=\"flex flex-column gap-3\">\n              <h3>¿Cómo quieres pagar?</h3>\n              <div *ngFor=\"let category of OptionPayments; index as ind\" class=\"field-checkbox\">\n                <p-radioButton\n                  [inputId]=\"category.key\"\n                  name=\"category\"\n                  [value]=\"category\"\n                  [(ngModel)]=\"selectedOptionPayments\"\n                  [disabled]=\"disableweekdays[ind]\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                  (ngModelChange)=\"selectOpcionsPayments($event)\"\n                ></p-radioButton>\n                <label [for]=\"category.key\" class=\"ml-2\">\n                  {{ category.name }}\n                </label>\n              </div>\n            </div>\n          </div>\n\n          <div class=\"container__option__instalations\" *ngIf=\"!isSelectionOptionPayments\">\n            <!-- Vista para la opción de pago \"Instalaciones\" -->\n            <div *ngIf=\"getViewBasedOnPaymentOption() === 'in'\">\n              <div class=\"container__info flex flex-column align-items-center justify-content-center mt-1 mb-4\" *ngIf=\"isEditBillingData\">\n                <img src=\"./assets/logos/lobo-web.png\" alt=\"Receipt Icon\" shape=\"circle\" class=\"circular-image\" />\n                <strong>{{ codSelfFormStepFour.get('invoicing_name')?.value }} {{ codSelfFormStepFour.get('invoicing_Apellido')?.value }}</strong>\n                <span>{{ getIdTypeDescription(codSelfFormStepFour.get('invoicing_idType')?.value) }} {{ codSelfFormStepFour.get('invoicing_document')?.value }}</span>\n                <div class=\"container-button\">\n                  <ipt-button [label]=\"'Modificar Datos'\" (onClick)=\"editBillingData()\" [primary]=\"false\"></ipt-button>\n                </div>\n              </div>\n              <div class=\"m-2\" *ngIf=\"!isEditBillingData\">\n                <h3>Completa los nuevos datos para la emisión de tu factura</h3>\n                <div class=\"flex gap-1 md:gap-4 xl:gap-8 m-1 p-2 border-round bg-blue-500 text-white\">\n                  <div class=\"container_icon flex mr-4 justify-content-center align-items-start mt-1\">\n                    <i class=\"pi pi-info-circle cursor-pointer w-auto mb-4\" pTooltip=\"Más info.\" tooltipPosition=\"bottom\"></i>\n                  </div>\n                  <div class=\"flex flex-column container_info_span flex align-items-center justify-content-center\">\n                    <span>Si proporcionas datos de un tercero, confirmas que los datos son correctos y que tienes su consentimiento para el uso de la información. Estos datos se tratarán de acuerdo a nuestra <a href=\"\">Declaración de Privacidad</a></span>\n                  </div>\n                </div>\n                <div>\n                  <ipt-input [inputType]=\"'text'\" [placeHolder]=\"'Nombres'\" [control]=\"codSelfFormStepFour.controls['invoicing_name']\"></ipt-input>\n                  <ipt-input [inputType]=\"'text'\" [placeHolder]=\"'Apellidos'\" [control]=\"codSelfFormStepFour.controls['invoicing_Apellido']\"></ipt-input>\n                  <ipt-select\n                    [initialValue]=\"codSelfFormStepFour.controls['invoicing_idType'].value\"\n                    [control]=\"codSelfFormStepFour.controls['invoicing_idType']\"\n                    [selectCode]=\"codSelfFormStepFour.controls['invoicing_idType'].value === null ? 'Tipo de documento' : codSelfFormStepFour.controls['invoicing_idType'].value\"\n                    [isRequired]=\"true\"\n                    [data]=\"idTypes\"\n                    (eventSelect)=\"selectIdType($event)\"\n                    [defaultText]=\"'Tipo de documento'\"\n                  ></ipt-select>\n                  <ipt-input [inputType]=\"'number'\" [placeHolder]=\"'Número de documento'\" [control]=\"codSelfFormStepFour.controls['invoicing_document']\"></ipt-input>\n                </div>\n                <div class=\"flex justify-content-end mt-3 align-items-center gap-3\">\n                  <button pButton [disabled]=\"!codSelfFormStepFour.valid\" label=\"Continuar\" type=\"button\" (click)=\"updateDatosBillingData()\"></button>\n                </div>\n              </div>\n            </div>\n\n            <!-- Vista para la opción de pago \"Pasarela pagos\" -->\n            <div *ngIf=\"getViewBasedOnPaymentOption() === 'ps'\">\n              <!-- TODO:<h3>Completa los datos para Pasarela pagos</h3> -->\n              <!-- Aquí puedes agregar el formulario específico para Pasarela pagos -->\n            </div>\n          </div>\n        </div>\n      </form>\n\n      <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n        <button pButton icon=\"pi pi-arrow-left\" type=\"button\" (click)=\"back()\"></button>\n        <button *ngIf=\"!isSelectionOptionPayments && isEditBillingData && codSelfFormStepFour.valid\" pButton label=\"¡Matricularme!\" type=\"button\" (click)=\"sendForm()\"></button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnDestroy, OnInit, Output, EventEmitter } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n//import services\nimport { BaseService } from '../../core/utils/base-service/base.service';\nimport { CommercialService } from '../../core/services/commercial-service/comercial.service';\n\n//import Models\nimport { IUserIPTRqs } from '../../core/models/user/user-rs.model';\n\n//import Prime ng\nimport { MenuItem } from 'primeng/api';\nimport Swal from 'sweetalert2';\nimport { CodSelfManagedControls, ControlSteps } from '../logic/cod-self-managed-controls';\nimport { LocalStorageCodSelfMaganedService } from '../logic/local-storage-cod.service';\n\n\n@Component({\n  selector: 'ipt-cod-self-managed',\n  templateUrl: './cod-self-managed.component.html',\n  styleUrls: ['./cod-self-managed.component.css']\n})\nexport class CodSelfManagedComponent implements OnDestroy, OnInit {\n\n  @Input() user?: IUserIPTRqs;\n  @Input() scorePlacementTest?:any;\n  @Input() codPrevious?:any;\n  @Output() okCreatedCOD = new EventEmitter<any>();\n\n  public currentStep: number = 0;\n  public financingData?: any[];\n  public loaderMessage: string = '';\n  public isLoading: boolean = false;\n  public formSteps: number = 4;\n  public codCreationSubscription: Subscription | null = null;\n\n  countInitialStep:number = 0;\n  subscription?: Subscription;\n  idTypes: any;\n  items: MenuItem[] = [\n    { label: 'Datos', icon: 'pi pi-user-edit', id: '1' },\n    { label: 'Planes', icon: 'pi pi-box', id: '2' },\n    { label: 'Pago', icon: 'pi pi-wallet', id: '3' },\n    { label: 'Facturacion', icon: 'pi pi-receipt', id: '4' }\n  ];\n\n  constructor(private baseService: BaseService,\n    private commercialService: CommercialService,\n    private codSelfManagedFormControls:CodSelfManagedControls,\n    private localStorageCodSelfManaged:LocalStorageCodSelfMaganedService){}\n\n  ngOnInit(): void {\n    this.countInitialStep = 1;\n    this.changeStep(this.currentStep);\n\n  }\n\n  ngOnDestroy(): void {\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n\n  changeStep(step: any) {\n    this.currentStep = step;\n\n    const request: any = {\n      currentStep: this.currentStep + 1,\n      user_code: this.baseService.getUserCode(),\n      count: this.countInitialStep,\n      token: this.baseService.getUserToken()\n    }\n    this.commercialService.updateControlStepsCodSelfManaged(request).subscribe((response)=>{\n      this.countInitialStep = 0;\n    })\n\n  }\n  saveFinancingData(data: any[]) {\n    if (data) {\n      const dates: string[] = [];\n      data.forEach(p => {\n        const date = p[2];\n        dates.push(date);\n      })\n      this.financingData = dates;\n    }\n  }\n  handleIdTypesChanged(idTypes: any) {\n    this.idTypes = idTypes;\n  }\n  getFormAction(action: string) {\n    if (!this.financingData && this.localStorageCodSelfManaged.getCodFormData(4, 'payment_method') === '1') {\n      Swal.fire({\n        title: 'Opss',\n        text: 'Debe hacer el cálculo de las cuotas en el paso 4',\n        icon: 'error'\n      });\n      return;\n    }\n\n    const totalData: any[] = [];\n    this.subscription = this.codSelfManagedFormControls.getControlValues().subscribe((controls) => {\n      for (let i = 1; i <= this.formSteps; i++) {\n        const controlsByStep: ControlSteps[] = controls[i-1];\n        controlsByStep.forEach(control => {\n          const value = this.localStorageCodSelfManaged.getCodFormData(i, control.name);\n          totalData.push({\n            control: control.name,\n            isRequired: control.required,\n            value,\n            description: control.description\n          });\n        });\n      }\n\n      const validationErrors = this.validateFormData(totalData);\n      if (validationErrors.length > 0) {\n        Swal.fire({\n          title: 'Error Form Action Validate Error',\n          html: validationErrors.join('<br>'),\n          icon: 'error'\n        });\n        return;\n      }\n\n      if (action === 'create') {\n        this.createCOD(totalData);\n      }\n\n      this.subscription?.unsubscribe();\n    });\n  }\n\n  validateFormData(data: any[]): string[] {\n    const errors: string[] = [];\n    data.forEach(element => {\n      if (!element.value && element.isRequired) {\n        errors.push(`Revisar el campo: \"${element.description}\"`);\n      }\n    });\n    return errors;\n  }\n\n  createCOD(totalData: any[]) {\n    if (this.codCreationSubscription && !this.codCreationSubscription.closed) {\n      return;\n    }\n    this.isLoading = true;\n    this.loaderMessage = 'Creando COD, espere un momento';\n    const request: any = this.getCreateCOD(totalData);\n\n    this.codCreationSubscription = this.commercialService.createCodSelfManaged(request).subscribe({\n      next: (response: any) => {\n        this.isLoading = false;\n        this.loaderMessage = '';\n        if (response.message.code === 1) {\n          Swal.fire({\n            title: 'Perfecto!',\n            text: 'El COD ha sido creado exitosamente.',\n            icon: 'success'\n          });\n          this.localStorageCodSelfManaged.clearData();\n          this.okCreatedCOD.emit(response.data);\n        } else {\n          Swal.fire({\n            title: 'Warning!',\n            text: response.message.message,\n            icon: 'error'\n          });\n        }\n      },\n      error: (err: any) => {\n        this.isLoading = false;\n        this.loaderMessage = '';\n        Swal.fire({\n          title: 'Error en la creación de COD',\n          text: err.message,\n          icon: 'error'\n        });\n      },\n      complete: () => {\n        this.codCreationSubscription = null;\n      }\n    });\n  }\n\n  getCreateCOD(data: any[]): any {\n    return {\n      token: this.baseService.getUserToken(),\n      student_name: this.getDataByName(data, 'student_name'),\n      student_last_name: this.getDataByName(data, 'student_last_name'),\n      student_id_card_type: this.getDataByName(data, 'student_id_card_type'),\n      student_id_card: this.getDataByName(data, 'student_id_card'),\n      gender: this.getDataByName(data, 'gender'),\n      birthdate: this.getDataByName(data, 'birthdate'),\n      age: this.getDataByName(data, 'age'),\n      country: this.getDataByName(data, 'country'),\n      state: this.getDataByName(data, 'state'),\n      city: this.getDataByName(data, 'city'),\n      student_email: this.getDataByName(data, 'student_email'),\n      student_phone_indicative: this.getDataByName(data, 'student_phone_indicative'),\n      student_phone_number: this.getDataByName(data, 'student_phone_number'),\n      educational_level: this.getDataByName(data, 'grade'),\n      agreement_by_category: this.getDataByName(data, 'agreement_by_category'),\n      academic_plan: this.getDataByName(data, 'academic_plan'),\n      course_type: this.getDataByName(data, 'course_type'),\n      english_level: this.getDataByName(data, 'english_level'),\n      availible_courses: this.getDataByName(data, 'availible_courses'),\n      course_modality: this.getDataByName(data, 'course_modality'),\n      program_price: this.getDataByName(data, 'program_price'),\n      payment_date: this.getDataByName(data, 'payment_date'),\n      payment_dates: this.financingData!,\n      payment_method: this.getDataByName(data, 'payment_method'),\n      quota_times: this.getDataByName(data, 'quota_times'),\n      total_price: this.getDataByName(data, 'total_price'),\n      paid_level: this.getDataByName(data, 'paid_level'),\n      optionsPayments: this.getDataByName(data, 'optionsPayments'),\n      invoicing_name: this.getDataByName(data, 'invoicing_name'),\n      invoicing_Apellido: this.getDataByName(data, 'invoicing_Apellido'),\n      invoicing_idType: this.getDataByName(data, 'invoicing_idType'),\n      invoicing_document: this.getDataByName(data, 'invoicing_document')\n    };\n  }\n\n  getDataByName(data: any[], name: string): any {\n    return data.filter(item => item.control === name)[0]?.value || null;\n  }\n}\n","<!-- <p-steps [model]=\"items\" [(activeIndex)]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" ></p-steps> -->\n<p-steps [model]=\"items\" [(activeIndex)]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\">\n  <ng-template pTemplate=\"item\" let-item>\n    <span class=\"p-steps-number\">{{ item.id }}</span>\n    <i [class]=\"item.icon\"></i>\n    <span class=\"p-steps-title\">{{ item.label }}</span>\n  </ng-template>\n</p-steps>\n\n<p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\">\n  <p-tabPanel [disabled]=\"true\">\n    <app-cod-self-form-step-one (completed)=\"changeStep($event)\" [userStudent]=\"user\" (idTypesChanged)=\"handleIdTypesChanged($event)\"></app-cod-self-form-step-one>\n  </p-tabPanel>\n  <p-tabPanel [disabled]=\"true\">\n    <app-cod-self-form-step-two (completed)=\"changeStep($event)\" [codPrevious]=\"codPrevious\" [scorePlacementTest]=\"scorePlacementTest\"></app-cod-self-form-step-two>\n  </p-tabPanel>\n  <p-tabPanel [disabled]=\"true\">\n    <app-cod-self-form-step-three (completed)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\"></app-cod-self-form-step-three>\n  </p-tabPanel>\n  <p-tabPanel [disabled]=\"true\">\n    <app-cod-self-form-step-four (completed)=\"changeStep($event)\" [idTypes]=\"idTypes\" (action)=\"getFormAction($event)\"></app-cod-self-form-step-four>\n  </p-tabPanel>\n</p-tabView>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CodSelfManagedComponent } from './cod-form-self-managed/cod-self-managed.component';\nimport { ComponentsModule } from '../components/components.module';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { CodSelfFormStepOneComponent } from './steps/cod-form-step-one/cod-self-form-step-one.component';\nimport { StepsModule } from 'primeng/steps';\nimport { CodSelfFormStepTwoComponent } from './steps/cod-form-step-two/cod-self-form-step-two.component';\nimport { CodSelfFormStepThreeComponent } from './steps/cod-form-step-three/cod-self-form-step-three.component';\nimport { CodSelfFormStepFourComponent } from './steps/cod-form-step-four/cod-self-form-step-four.component';\nimport { ButtonModule } from 'primeng/button';\nimport { ToastModule } from 'primeng/toast';\nimport { CalendarModule } from 'primeng/calendar';\nimport { TabViewModule } from 'primeng/tabview';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { AccordionModule } from 'primeng/accordion';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TableModule } from 'primeng/table';\n\n@NgModule({\n  imports:[\n    CommonModule,\n    ComponentsModule,\n    ReactiveFormsModule,\n    StepsModule,\n    FormsModule,\n    ButtonModule,\n    ToastModule,\n    CalendarModule,\n    TabViewModule,\n    SelectButtonModule,\n    AccordionModule,\n    CheckboxModule,\n    RadioButtonModule,\n    TooltipModule,\n    TableModule\n  ],\n  declarations:[\n    CodSelfManagedComponent,\n    CodSelfFormStepOneComponent,\n    CodSelfFormStepTwoComponent,\n    CodSelfFormStepThreeComponent,\n    CodSelfFormStepFourComponent,\n  ],\n  exports:[\n    CodSelfManagedComponent,\n    CodSelfFormStepOneComponent,\n    CodSelfFormStepTwoComponent,\n    CodSelfFormStepThreeComponent,\n    CodSelfFormStepFourComponent,\n  ],\n})\nexport class codSelfManagedModule { }\n","import { NgModule } from '@angular/core';\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\nimport { CodModule } from './cod/cod.module';\n\nimport { ComponentsModule } from './components/components.module';\nimport { CoreModule } from './core/core.module';\nimport { codSelfManagedModule } from './cod-self-managed/cod-self-managed.module';\n\n@NgModule({\n  imports: [\n    ComponentsModule,\n    CoreModule,\n    CurrencyMaskModule,\n    CodModule,\n    codSelfManagedModule\n  ],\n  exports: [\n    ComponentsModule,\n    CoreModule,\n    CurrencyMaskModule,\n    CodModule,\n    codSelfManagedModule\n  ],\n})\n\nexport class DesignSystemModule { }\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { CreateNewNoteRq, GetNotesByGroupRq, GetNotesByStudentRq, INotesByUCourseAndStudentRq, IServiceCreateNewNoteRq, IServiceDeleteNoteRq, IServiceUpdateNoteRq, IdeletedNoteScoreRq, Notes, UpdateStudentNoteRq, calculateFinalNoteRq } from '../../models/notes/notes.interface';\nimport { Observable } from 'rxjs';\nimport { Response } from '../../models/response/response.interface';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { animate } from '@angular/animations';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NotesService extends IPTGeneralService{\n\n  private SERVICE_URL = 'academic/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n\n  getNotesByGroup(params: GetNotesByGroupRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/by/course';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getNotesByStudent(params: GetNotesByStudentRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/by/student';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  createNewNote(params: IServiceCreateNewNoteRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/create/note';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  updateStudentNote(params: UpdateStudentNoteRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'update/note';\n    this.generateRequestParams(params);\n    return this.http.put<Response>(serviceUrl, this.httpOptions);\n  }\n\n  calculateFinalNote(params: calculateFinalNoteRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/calculate/final/note';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  getNotesByUserCourseStudent(params: INotesByUCourseAndStudentRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/notes/by/courseandstudent';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n  updateNoteByTypeAndStudent(params: IServiceUpdateNoteRq): Observable<Response> {\n    let serviceUrl = this.SERVICE_URL + 'update/note/by/type/and/student';\n    this.generateRequestParams(params);\n    return this.http.put<Response>(serviceUrl, this.httpOptions);\n  }\n\n\n\n  deleteNoteByTypeAndStudent(params: IdeletedNoteScoreRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'delete/note/by/type/and/student';\n    this.generateRequestParams(params);\n    return this.http.post<Response>(serviceUrl, this.httpOptions);\n  }\n\n\n\n  getNotesByCourseExcel(params: GetNotesByGroupRq): Observable<any>  {\n    const serviceUrl = this.SERVICE_URL + 'post/notes/by/course/export' ;\n      this.generateRequestParams(params);\n      return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GetStudentsByCourseRq } from '../../models/student/student.interface';\nimport { IPTGeneralService } from '../service-enviroments';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class StudentService extends IPTGeneralService{\n\n  private SERVICE_URL = 'academic/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getStudentsByCourse(params: GetStudentsByCourseRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/obtain/students/by/course';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { FormControl } from '@angular/forms';\n\n\nexport const validateCoupunts = (control: FormControl) => {\n  const value: string = control.value.trim();\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IPTGeneralService } from '../service-enviroments';\nimport { IObtainNoteByDateRq, IObtainNoteByNameRq } from '../../models/PlacementTest/PlacementTest.models';\n\n@Injectable({providedIn: 'root'})\nexport class PlacementService extends IPTGeneralService {\n\n  private SERVICE_URL = 'placement/api/';\n\n  constructor(private http: HttpClient) {\n    super();\n    this.SERVICE_URL = this.baseUrl() + this.SERVICE_URL;\n  }\n\n  getAllPlacementTestUsers(): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'get/possible/students';\n    return this.http.get(serviceUrl);\n  }\n\n  getNotePlacementTestByDate(params: IObtainNoteByDateRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/note/placement/test/by/date';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n  getNotePlacementTestByName(params: IObtainNoteByNameRq): Observable<any> {\n    let serviceUrl = this.SERVICE_URL + 'post/note/placement/test/by/name/student';\n    this.generateRequestParams(params);\n    return this.http.post(serviceUrl, this.httpOptions);\n  }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable } from 'rxjs';\nimport { JoinAnnouncementUserGroupRq } from \"../../models/announcement/announcement-user-rq.model\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AnnouncementService {\n\n    private SERVICE_URL = 'https://iptdev.com.co/ekt/api/';\n    //private SERVICE_URL = 'http://lab.iptdev.com.co/ekt/api/';\n\n    httpOptions: any;\n\n    constructor(private http: HttpClient) {\n    }\n\n    announcementUser(user: number, announcement: number): Observable<any> {\n        let serviceUrl = this.SERVICE_URL + 'get/announcement/' + 41 + \"/user/\" + user;\n        return this.http.get(serviceUrl);\n    }\n\n    getAnnouncementEktByEpaycoRef(user: number, announcement: number, payment_ref: string): Observable<any> {\n      let serviceUrl = this.SERVICE_URL + 'get/announcement/' + announcement + \"/user/\" + user + \"/paymenref/\" + payment_ref;\n      return this.http.get(serviceUrl);\n    }\n\n    announcementUserGroup(announcement: number, user: number): Observable<any> {\n      let serviceUrl = this.SERVICE_URL + 'get/announcementGroup/' + 41 + \"/user/\" + user;\n      return this.http.get(serviceUrl);\n    }\n\n    getAnnouncementGroupByEpaycoRef(announcement: number, user: number, payment_ref: string): Observable<any> {\n      let serviceUrl = this.SERVICE_URL + 'get/announcementGroup/' + announcement + \"/user/\" + user + \"/paymenref/\" + payment_ref;;\n      return this.http.get(serviceUrl);\n    }\n\n    joinAnnouncementUserGroup(request: JoinAnnouncementUserGroupRq): Observable<any> {\n      let serviceUrl = this.SERVICE_URL + 'join/announcementGroup';\n      let httpOptions = {\n        header: new HttpHeaders(),\n        params: request\n      }\n      return this.http.post(serviceUrl, httpOptions);\n    }\n\n    joinAnnouncement(user: number, announcement: number, typeAnnouncement?: number): Observable<any> {\n        let serviceUrl = this.SERVICE_URL + 'join/announcement';\n\n        let httpOptions = {\n            header: new HttpHeaders(),\n            params: {\n                token: 'DS7zBTcVX1UlvWO94AwyexGskPcWi55PG5WP',\n                announcement_code: 41,\n                typeAnnouncement,\n                user_code: user\n            }\n        }\n\n        return this.http.post(serviceUrl, httpOptions);\n    }\n\n}\n","import { ICourseEventRq } from \"../academic/academic.component\";\nimport { ICourseModality } from \"../activities/activities.interface\";\nimport { longDateAvailabilityRs } from \"../cronogram/cronogram.models\";\nimport { English_Levels } from \"./courses.model\";\n\nexport interface CreateCourseRq {\n  token?:         string;\n  teacher?:       number | null;\n  academic_plan?: string;\n  course_type?:   string;\n  to_start?:      string;\n  start_date?:    string | null;\n  finish_date?:   string | null;\n  capacity?:      string;\n  more_days?:     string | null;\n  english_level?:       string;\n  agreement?:           string;\n  time_start_monday:    string | null;\n  time_end_monday:      string | null;\n  classroom_monday:     string | null;\n  time_start_tuesday:   string | null;\n  time_end_tuesday:     string | null;\n  classroom_tuesday:    string | null;\n  time_start_wednesday: string | null;\n  time_end_wednesday:   string | null;\n  classroom_wednesday:  string | null;\n  time_start_thursday:  string | null;\n  time_end_thursday:    string | null;\n  classroom_thursday:   string | null;\n  time_start_friday:    string | null;\n  time_end_friday:      string | null;\n  classroom_friday:     string | null;\n  time_start_saturday?: string | null;\n  time_end_saturday?:   string | null;\n  classroom_saturday?:  string | null;\n}\n\nexport interface EditCourseRq {\n  token: string;\n  course_code: number;\n  course_schedule?: number;\n  course_schedule_club?: number;\n  teacher?: number | null;\n  teacherClub?: number | null;\n  capacity?: string;\n  to_start?: string;\n  weekDays?: string[];\n  startTime?: string | null;\n  endTime?: string | null;\n  weekDaysClub?: string[];\n  startTimeClub?: string | null;\n  endTimeClub?: string | null;\n  classroom?: number | null;\n  classroom_club?: number | null;\n}\nexport interface GetCoursesRq {\n  token: string;\n  record: number;\n  page: number;\n  english_level?: number;\n}\n\nexport interface GetCourseByCodeRq {\n  token: string;\n  course_code: number;\n}\n\nexport interface GetCoursesByLevelRq {\n  token: string;\n  record: number;\n  page: number;\n  english_level: number;\n}\n\nexport interface GetAvailibleCoursesRq{\n  token:string;\n  english_level:number;\n  agreement:number;\n  course_type:number;\n}\n\nexport interface GetCoursesByTeacherRq {\n  token: string;\n  page: number;\n  record: number;\n  teacher_code: number;\n  filter_type?: number,\n  filter?: number\n}\n\nexport interface DataAllCourseRq {\n  code:            number;\n  course_schedule: CourseScheduleCRq;\n  teacher:         TeacherCRq;\n  course_type:     CourseTypeCRq;\n  to_start:        Date;\n  start_date:      Date;\n  finish_date:     Date;\n  capacity:        number;\n  more_days:       number | null;\n  english_level:   EnglishLevelCRq;\n  agreement:       AgreementCRq;\n  course_modality: number;\n}\n\nexport interface AgreementCRq {\n  code:     number;\n  name:     string;\n  end_time: Date;\n  category: number;\n}\n\nexport interface CourseScheduleCRq {\n  code:                 number;\n  time_start_monday:    string | null;\n  time_end_monday:      string | null;\n  classroom_monday:     string | null;\n  time_start_tuesday:   string | null;\n  time_end_tuesday:     string | null;\n  classroom_tuesday:    string | null;\n  time_start_wednesday: string | null;\n  time_end_wednesday:   string | null;\n  classroom_wednesday:  string | null;\n  time_start_thursday:  string | null;\n  time_end_thursday:    string | null;\n  classroom_thursday:   string | null;\n  time_start_friday:    string | null;\n  time_end_friday:      string | null;\n  classroom_friday:     string | null;\n  time_start_saturday:  string | null;\n  time_end_saturday:    string | null;\n  classroom_saturday:   string | null;\n  updated_at:           Date;\n  created_at:           Date;\n}\n\nexport interface CourseTypeCRq {\n  code:          number;\n  name:          string;\n  number_class:  number;\n  academic_plan: string;\n}\n\nexport interface EnglishLevelCRq {\n  code: number;\n  name: string;\n}\n\nexport interface TeacherCRq {\n  code:             number;\n  name:             string;\n  last_name:        string;\n  nick_name:        string;\n  email:            string;\n  email_ipt:        string;\n  role:             number;\n  service_hour:     number;\n  phone_indicative: number;\n  phone_number:     string;\n  gender:           number;\n  birthdate:        Date | null;\n  city:             number;\n  id_card_type:     number;\n  id_card:          string;\n  token:            string;\n}\nexport interface IgetCodBcourseByModalityAndDisponibilityRq{\n  token: string;\n  modality: number;\n  english_level: English_Levels[];\n}\nexport interface IgetCodBcourseByModalityAndLevelAndCourseTypeRq{\n  token: string;\n  modality: number;\n  english_level: English_Levels[];\n  course_type: number;\n}\n\nexport interface IObtainAvailableCourseDaysRq {\n  startDate:     string;\n  startTime:     string;\n  endTime:       string;\n  numClass:      number;\n  weekDays:      string[];\n  startDateClub: string;\n  startTimeClub: string;\n  endTimeClub:   string;\n  numClassClub:  number;\n  weekDaysClub:  string[];\n  courseType:    number;\n  courseClub:    boolean;\n}\n\nexport interface IAvailableCourseDaysRs {\n  schoolDays:                longDateAvailabilityRs[];\n  schoolDaysClub:            longDateAvailabilityRs[];\n  schoolDaysCombine:         ISchoolDaysCombineRs[];\n  ShortDateSchoolDays:       string[];\n  ShortDateSchoolDaysClub:   string[];\n  ShortDateSchoolDayCombine: string[];\n  weeksClass:                number;\n  completionClass:           Date;\n  startTime:                 string;\n  endTime:                   string;\n  courseName:                ICourseNameUnitRs;\n}\n\nexport interface ICourseNameUnitRs {\n  unitNameTheory: string[];\n  unitNameClub:   IUnitNameClubRs[];\n}\n\nexport enum IUnitNameClubRs {\n  Club = \"Club\",\n}\n\nexport interface ISchoolDaysCombineRs {\n  longDate: string;\n  nameUnit: string;\n}\n\nexport interface ICreatedScheduleEvents {\n  token:             string;\n  courseCode:        number;\n  codeClassRoom:     number;\n  codeTeacher:       string;\n  startTime:         string;\n  endTime:           string;\n  weekDays:          string[];\n  courseCodeClub:    number;\n  codeClassRoomClub: number;\n  codeTeacherClub:   string;\n  startTimeClub:     string;\n  endTimeClub:       string;\n  weekDaysClub:      string[];\n  course_events:     ICourseEventRq[];\n}\n\nexport interface IChangeCourseStudentNotStartedRq {\n  token:                string;\n  cod_code:             number;\n  current_course:       number;\n  current_course_event: number;\n  new_course:           number;\n  new_course_event:     number;\n  number_class:         number;\n}\n\nexport interface IUpdateCourseEventByCodeRq {\n  token:       string;\n  course_code: number;\n  date_event:  Date;\n  event_code:  number;\n  name_event:  string;\n}\n\n\nexport interface IUpdateCourseEventByCodeRs {\n  code:              number;\n  course_code:       number;\n  date_event:        Date;\n  name_event:        string;\n  description_event: string;\n}\n\nexport interface ICourse {\n  code: number;\n  course_schedule: string[];\n  teacher: string;\n  course:{\n    agreement:string\n    capacity:number\n    code: number\n    course_type:ICourseTypeRs\n    course_modality:ICourseModality\n    course_schedule: string[];\n    created_at: string\n    english_level:string\n    finish_date:string\n    is_club: number\n    is_from?:number\n    is_renovation: number\n    is_visible:number\n    more_days?:number\n    start_date: string\n    teacher:string\n    to_start:string\n  };\n  to_start: string;\n  start_date: string;\n  finish_date: string;\n  capacity: number;\n  more_days: string | null;\n  english_level: string;\n  agreement: string;\n  course_modality: ICourseModality;\n  is_renovation: number;\n  is_from: string | null;\n  is_club: number;\n  is_visible: number;\n  created_at: string;\n}\nexport interface ICourseTypeRs {\n  code: number;\n  name: string;\n  label: string;\n  number_class: number;\n  number_class_club: number;\n  academic_plan: string;\n  theory_classes: number;\n  club_classes: number;\n}\n\nexport interface GetCoursesFilterRq {\n  token: string;\n  status_filter?: string;\n}\n\n/////////////////////////// Change of student group ////////////////////////////\n\n\nexport interface IChangeOfStudentGroupRq {\n  token:                 string;\n  cod_code:              number;\n  new_course:            number;\n  old_course:            number;\n  user_course:           number;\n  classes_given_theory:  number;\n  classes_given_club:    number;\n  club_classes_viewed:   IClassesViewedRq[];\n  theory_classes_viewed: IClassesViewedRq[];\n}\n\nexport interface IClassesViewedRq {\n  attendance:   number;\n  cod:          number;\n  course:       number;\n  course_event: number;\n  date_event:   Date;\n  is_attended:  number;\n  name_event:   string;\n}\n\nexport interface IChangeOfStudentGroupRs {\n  old_course: IOldCourseRs;\n  new_course: INewCourseRs;\n}\n\nexport interface INewCourseRs {\n  status:         IStatusRs;\n  courseAssigned: ICourseAssignedRs;\n  capacity:       ICapacityRs;\n  cronogram:      ICronogramRs;\n  attendance:     IFutureEventsClassRs;\n  evaluations:    INewCourseEvaluationsRs;\n}\n\nexport interface IFutureEventsClassRs {\n  theory: IClubElementRs[];\n  club:   IClubElementRs[];\n}\n\nexport interface IClubElementRs {\n  code:        number;\n  course_code: number;\n  date_event:  Date;\n  name_event:  string;\n}\n\nexport interface ICourseAssignedRs {\n  course_theory: number;\n  course_club:   number;\n}\n\nexport interface ICapacityRs {\n  total_capacity:        number;\n  enrolled_students:     number;\n  available_capacity:    number;\n  has_classroom:         boolean;\n  modality:              string;\n  classroom_code_theory: number | null;\n  classroom_code_club:   number | null;\n  classroom_name_theory: null | string;\n  classroom_name_club:   null | string;\n}\n\nexport interface ICronogramRs {\n  has_events:     boolean;\n  event_theory:   number;\n  event_club:     number;\n  pending_theory: number;\n  pending_club:   number;\n  past_events:    IFutureEventsClassRs;\n  future_events:  IFutureEventsClassRs;\n}\n\nexport interface INewCourseEvaluationsRs {\n  course_code:                  number;\n  total_students:               number;\n  total_evaluations:            number;\n  evaluations_by_type:          IEvaluationsByTypeRs;\n  evaluations_above_60_percent: IEvaluationsAbove60PercentRs;\n  course_details:               ICourseDetailsRs;\n}\n\nexport interface ICourseDetailsRs {\n  start_date:  Date;\n  finish_date: Date;\n  capacity:    number;\n}\n\nexport interface IEvaluationsAbove60PercentRs {\n  [noteType: string]: INoteEvaluationRs;\n}\n\nexport interface INoteEvaluationRs {\n  note_name?:          string;\n  total_notes:         number;\n  unique_students:     number;\n  percent_of_students: number;\n  average_evaluations: number;\n  percent_weight?:     number;\n}\n\nexport interface IEvaluationsByTypeRs {\n  [noteType: string]: INoteEvaluationRs;\n}\n\nexport interface IStatusRs {\n  code_status: number;\n  status:      string;\n}\n\nexport interface IOldCourseRs {\n  status:         IStatusRs;\n  courseAssigned: ICourseAssignedRs;\n  capacity:       ICapacityRs;\n  user_course:    IOldCourseUserCourseRs;\n  cronogram:      ICronogramRs;\n  attendance:     IOldCourseAttendanceRs;\n  evaluations:    IOldCourseEvaluationsRs;\n}\n\nexport interface IOldCourseAttendanceRs {\n  club:   IPurpleClubRs;\n  theory: IPurpleClubRs;\n}\n\nexport interface IPurpleClubRs {\n  has_duplicates:   boolean;\n  unique_classes:   IDuplicatesFoundRs[];\n  duplicates_found: IDuplicatesFoundRs[];\n  delete_result:    IDeleteResultRs;\n}\n\nexport interface IDeleteResultRs {\n  success:       boolean;\n  deleted_count: number;\n  message:       string;\n}\n\nexport interface IDuplicatesFoundRs {\n  attendance:   number;\n  cod:          number;\n  course:       number;\n  course_event: number;\n  date_event:   Date;\n  is_attended:  number;\n  name_event:   string;\n}\n\nexport interface INoteScoreRs {\n  code:        number;\n  note_code:   number;\n  note_type:   number;\n  note_value:  number;\n  observation: string;\n}\n\nexport interface IOldCourseEvaluationsRs {\n  note_details: INoteDetailsRs;\n  note_scores:  INoteScoreRs[];\n}\n\nexport interface INoteDetailsRs {\n  code:         number;\n  student_code: number;\n  cod_code:     number;\n  final_score:  number;\n  user_course:  INoteDetailsUserCourseRs;\n  note_scores:  INoteScoreRs[];\n}\n\nexport interface INoteDetailsUserCourseRs {\n  code:         number;\n  student_code: number;\n  course_code:  number;\n  notes:        number;\n}\n\nexport interface IOldCourseUserCourseRs {\n  success:               boolean;\n  message:               string;\n  duplicates:            boolean;\n  kept_note:             number;\n  kept_user_course:      number;\n  note_details:          INoteDetailsRs;\n  note_scores:           INoteScoreRs[];\n  duplicate_notes:       number[];\n  duplicate_user_course: number[];\n  deleted_notes:         any[];\n  deleted_user_course:   any[];\n}\n\nexport interface CreateCourseEventRq {\n  token: string;\n  course_code: number;\n  name_event: string;\n  date_event: string;\n  event_type: 'THEORETICAL' | 'CLUB';\n}\n\nexport interface IUpdateCourseEventByCodeNewRq {\n  token: string;\n  event_code: number;\n  course_code: number;\n  name_event: string;\n  date_event: string;\n  event_type: 'THEORETICAL' | 'CLUB';\n}\n\nexport interface DeleteCourseEventRq {\n  token: string;\n  event_code: number;\n}\n\nexport interface GetEventEditDataRq {\n  token: string;\n  event_code: number;\n}\n\nexport interface GetCourseScheduleRq {\n  token: string;\n  course_code: number;\n}\n\nexport interface GetCourseAssignedByCourseCodeRq {\n  token: string;\n  course_code: number;\n}\n\nexport interface GetLastEventByCourseCodeRq {\n  token: string;\n  course_code: number;\n}\n\n\n","import { UserRs } from '../user/user-rs.model';\n\nexport class Session {\n  token!: string;\n  user!: UserRs;\n}","import { MessageRq } from \"../attendance/attendance.interface\";\n\nexport class UserRs {\n  code!: number;\n  name!: string;\n  last_name!: string;\n  nick_name!: string;\n  email!: string;\n  email_ipt!: string;\n  role!: number;\n  service_hour!: number;\n  phone_indicative!: number;\n  phone_number!: number;\n  gender!: string;\n  birthdate!: string;\n  city!: number;\n  id_card_type!: number;\n  id_card!: number;\n  comment?: string;\n  password!: string;\n  token!: string;\n}\n\nexport class IUserEktRs {\n  code!: number;\n  name!: string;\n  last_name!: string;\n  id_card!: number;\n  ufps_code!: number;\n  email!: string;\n  phone_indicative!: number;\n  phone!: number;\n  token!: string;\n}\n\nexport class UserLoginRs {\n  code!: number;\n  name!: string;\n  last_name!: string;\n  email!: string;\n  id_card!: string;\n  id_card_type!: number;\n  phone_indicative!: number;\n  phone!: string;\n  gender!: number;\n  city!: number;\n  role!: number;\n  birthdate!: string;\n  token!: string;\n}\n\nexport class IUserFullDataRs {\n  code!:              number;\n  name!:              string;\n  last_name!:         string;\n  nick_name!:         string;\n  email!:             string;\n  email_ipt!:         string;\n  role!:              number;\n  service_hour!:      number;\n  phone_indicative!:  number;\n  phone_number!:      string;\n  gender!:            number;\n  birthdate!:         string;\n  city!:              number;\n  id_card_type!:      number;\n  id_card!:           string;\n  password!:          string;\n  token!:             string;\n  user_status!:       number;\n}\n\nexport interface IUserResetPasswordRs {\n  ip_applicant: string;\n  status:       number;\n  message:      MessageRq;\n  data:         IDataUserResetPasswordRs[];\n}\n\nexport interface IDataUserResetPasswordRs {\n  code:             number;\n  name:             string;\n  last_name:        string;\n  nick_name:        string;\n  email:            string;\n  email_ipt:        string;\n  role:             number;\n  service_hour:     number;\n  phone_indicative: number;\n  phone_number:     string;\n  gender:           number;\n  birthdate:        null;\n  city:             number;\n  id_card_type:     number;\n  id_card:          string;\n  token:            string;\n  user_status:      number;\n  password_change:  number;\n  updated_at:       Date;\n  newPassword:      string;\n}\n\nexport interface IUserIPTRqs {\n  code:             number;\n  name:             string;\n  last_name:        string | null;\n  nick_name:        string | null;\n  email:            string;\n  email_ipt:        string | null;\n  role:             number;\n  phone_indicative: number;\n  phone_number:     string;\n  gender:           number | null;\n  birthdate:        Date | null;\n  city:             ICityRS[];\n  id_card_type:     number;\n  id_card:          string | null;\n  user_status:      number;\n  password_change:  number;\n  status_asing:     number;\n}\n\nexport interface ICityRS {\n  code:    number;\n  capital: number;\n  state:   number;\n  country: number;\n}\n","export class AnnouncementUserRs {\n    code!: number;\n    announcement!: string;\n    user_ekt!: string;\n    need_pay!: number;\n    is_pay!: number;\n}","/*\n * Public API Surface of design-system dockerizada\n */\n\nexport * from \"./lib/design-system.module\"\nexport * from \"./lib/cod/cod.module\"\nexport * from \"./lib/components/components.module\"\nexport * from \"./lib/core/core.module\"\n\n// Atomos\nexport * from \"./lib/components/atoms/aside-button/aside-button.component\"\nexport * from \"./lib/components/atoms/button/button.component\"\nexport * from \"./lib/components/atoms/checkbox/checkbox.component\"\nexport * from \"./lib/components/atoms/datalist/datalist.component\"\nexport * from \"./lib/components/atoms/input/input.component\"\nexport * from \"./lib/components/atoms/level-button/level-button.component\"\nexport * from \"./lib/components/atoms/level-text/level-text.component\"\nexport * from \"./lib/components/atoms/loader/loader.component\"\nexport * from \"./lib/components/atoms/radio/radio.component\"\nexport * from \"./lib/components/atoms/select/select.component\"\nexport * from \"./lib/components/atoms/text-link/text-link.component\"\n\n// Formularios\nexport * from \"./lib/components/forms/login-form/login-form.component\"\nexport * from \"./lib/components/molecules/sidenav/sidenav.component\"\nexport * from \"./lib/components/molecules/question-type/edit-question-types.component\"\nexport * from \"./lib/components/forms/create-user-form/create-user-form.component\"\nexport * from \"./lib/components/molecules/card-course/card-course.component\"\nexport * from \"./lib/components/molecules/card-select-course/card-select-course.component\"\n\n// Servicios\nexport * from \"./lib/core/services/attendance-service/attendance.service\"\nexport * from \"./lib/core/services/budget-service/budget-service\"\nexport * from \"./lib/core/services/course-service/course-service.model\"\nexport * from \"./lib/core/services/calendar-service/calendar.service\"\nexport * from \"./lib/core/services/marketing-service/marketing-service\"\nexport * from \"./lib/core/services/notes-service/notes.service\"\nexport * from \"./lib/core/services/parameters-service/parameters.service\"\nexport * from \"./lib/core/services/student-service/student.service\"\nexport * from \"./lib/core/services/storage-service/storage-service\"\nexport * from \"./lib/core/services/switch-service/switch.service\"\nexport * from \"./lib/core/services/test-service/test.service\"\nexport * from \"./lib/core/services/user-service/user-service\"\nexport * from \"./lib/core/utils/base-service/base.service\"\nexport * from \"./lib/core/utils/route-service/route.service\"\nexport * from \"./lib/core/services/classroom-service/classroom-service.service\"\nexport * from \"./lib/core/services/activity-service/activity.service\"\nexport * from \"./lib/core/services/commercial-service/comercial.service\"\nexport * from \"./lib/core/services/commercial-service/validators\"\nexport * from \"./lib/core/services/academic-service/academic.service\"\nexport * from \"./lib/core/services/certificate-service/certificate.service\"\nexport * from \"./lib/core/services/ekt-service/userekt.service\"\nexport * from \"./lib/core/services/copies.service\"\nexport * from \"./lib/core/services/placement-service/placement.service\"\nexport * from \"./lib/core/services/ePayco/epayco.service\"\nexport * from \"./lib/core/services/announcement/announcement.service\"\n\n\n// Modelos\nexport * from \"./lib/core/models/activities/activities.interface\"\nexport * from \"./lib/core/models/attendance/attendance.interface\"\nexport * from \"./lib/core/models/budget/budget.model\"\nexport * from \"./lib/core/models/cod/cod-rq.model\"\nexport * from \"./lib/core/models/calendar/calendar-rq.models\"\nexport * from \"./lib/core/models/cronogram/cronogram.models\"\nexport * from \"./lib/core/models/course/course-rq.model\"\nexport * from \"./lib/core/models/marketing/marketing.model\"\nexport * from \"./lib/core/models/notes/notes.interface\"\nexport * from \"./lib/core/models/notes/INotesTemplate\"\nexport * from \"./lib/core/models/response/response.interface\"\nexport * from \"./lib/core/models/session/session.model\"\nexport * from \"./lib/core/models/student/student.interface\"\nexport * from \"./lib/core/models/table/table-rs.model\"\nexport * from \"./lib/core/models/test/test.model\"\nexport * from \"./lib/core/models/url/url.model\"\nexport * from \"./lib/core/models/user/user-rq.model\"\nexport * from \"./lib/core/models/user/user-rs.model\"\nexport * from \"./lib/core/models/classroom/classroom-rq.model\"\nexport * from \"./lib/core/models/academic/academic.component\"\nexport * from \"./lib/core/models/course/courses.model\"\nexport * from \"./lib/core/models/payment/payment-rq.model\"\nexport * from \"./lib/core/models/commercial/commercial.model\"\nexport * from \"./lib/core/models/reports/reports.model\"\nexport * from \"./lib/core/models/homeTemplate/homeTemplate.models\"\nexport * from \"./lib/core/models/PlacementTest/PlacementTest.models\"\nexport * from \"./lib/core/models/PossibleStudent/PossibleStudent.models\"\nexport * from \"./lib/core/models/announcement/announcement-user-rq.model\"\nexport * from \"./lib/core/models/announcement/announcement-user-rs.model\"\nexport * from \"./lib/core/models/epayco/epayco.interfaces\"\n\n//Pipes\nexport * from \"./lib/core/pipes/course-pipes/schedule-form.pipe\"\nexport * from \"./lib/core/pipes/course-pipes/time-form.pipe\"\nexport * from \"./lib/core/pipes/course-pipes/type-level.pipe\"\n\n// Librería para máscara de moneda\nexport * from \"./lib/components/components.module\"\n\n// Modulo del COD\nexport * from \"./lib/cod/cod.module\"\n\n// Componentes del COD\nexport * from \"./lib/cod/cod-form/cod-form.component\"\nexport * from \"./lib/cod/cod-documents-section/cod-documents-section.component\"\n\n// Lógica del COD\nexport * from \"./lib/cod/logic/calculate-quotes.service\"\nexport * from \"./lib/cod/logic/cod-form-controls\"\nexport * from \"./lib/cod/logic/cod-form-steps\"\nexport * from \"./lib/cod/logic/communicator.service\"\nexport * from \"./lib/cod/logic/local-storage-cod.service\"\n\n// Pasos del COD\nexport * from \"./lib/cod/steps/cod-form-step-one/cod-form-step-one.component\"\nexport * from \"./lib/cod/steps/cod-form-step-two/cod-form-step-two.component\"\nexport * from \"./lib/cod/steps/cod-form-step-three/cod-form-step-three.component\"\nexport * from \"./lib/cod/steps/cod-form-step-four/cod-form-step-four.component\"\nexport * from \"./lib/cod/steps/cod-form-step-five/cod-form-step-five.component\"\n\n//Module Cod Autogestionado\nexport * from \"./lib/cod-self-managed/cod-self-managed.module\"\n\n//component Cod Autogestionado\nexport * from \"./lib/cod-self-managed/cod-form-self-managed/cod-self-managed.component\"\n\n//Steps Cod Autogestionado\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component\"\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component\"\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-three/cod-self-form-step-three.component\"\nexport * from \"./lib/cod-self-managed/steps/cod-form-step-four/cod-self-form-step-four.component\"\n\n// Lógica del Autogestionado\nexport * from \"./lib/cod-self-managed/logic/cod-self-managed-controls\"\nexport * from \"./lib/cod-self-managed/logic/cod-self-managed-steps\"\nexport * from \"./lib/cod-self-managed/logic/local-storage-cod.service\"\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.UserService","i2.StorageService","i3.CalendarService","i2.BaseService","i3.ButtonComponent","i4.InputComponent","i2.ParameterService","i3.UserService","i4","i5.ButtonComponent","i6.InputComponent","i7.SelectComponent","i3.StorageService","i8.AsideButtonComponent","i2.InputComponent","i3","i5.LoaderComponent","i6.ScheduleFormatPipe","i7.ScheduleTimeFormatPipe","i8.TypeLevelPipe","i2.ScheduleFormatPipe","i3.ScheduleTimeFormatPipe","i4.TypeLevelPipe","i2.MediaService","i4.BaseService","i5","i7","i2.CopiesService","i3.BaseService","i4.CourseService","i5.CommunicatorService","i6","i7.LoaderComponent","i8.SelectComponent","i9","i3.InputComponent","i4.SelectComponent","i2.CodFormControls","i5.SelectComponent","CalculateQuotesService","i2.CalculateQuotesService","i3.CodFormControls","i4.CommercialService","i5.BaseService","i8.InputComponent","i9.LoaderComponent","i10.SelectComponent","i12","i8.ModalReferredComponent","i1.BaseService","i2.LocalStorageCODService","i5.ParameterService","i8.LoaderComponent","i9.CodFormStepOneComponent","i10.CodFormStepTwoComponent","i11.CodFormStepThreeComponent","i12.CodFormStepFourComponent","i13.CodFormStepFiveComponent","i4.UserService","i7.InputComponent","i10","i11","i4.AcademicService","i6.ButtonComponent","i7.CardCourseComponent","i8.CardSelectCourseComponent","i3.CommercialService","i5.CodSelfManagedControls","i6.CalculateQuotesService","i13","i15","i3.CodSelfManagedControls","i8","i2.CommercialService","i4.LocalStorageCodSelfMaganedService","i8.CodSelfFormStepOneComponent","i9.CodSelfFormStepTwoComponent","i10.CodSelfFormStepThreeComponent","i11.CodSelfFormStepFourComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoBa,oBAAoB,CAAA;AAlBjC,IAAA,WAAA,GAAA;AAsBY,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAW,CAAC;AAKnD,KAAA;IAHC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;;iHARU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAhBrB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,q2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAIU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAlBhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,q2CAAA,CAAA,EAAA,CAAA;8BAKQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCJI,eAAe,CAAA;AAlB5B,IAAA,WAAA,GAAA;QAoBW,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAI,CAAA,IAAA,GAAiC,QAAQ,CAAC;QAC9C,IAAK,CAAA,KAAA,GAAW,QAAQ,CAAC;QAEzB,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAEzB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAS,CAAC;AAU/C,KAAA;AARC,IAAA,IAAW,OAAO,GAAA;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;AAClD,cAAE,qBAAqB;cACrB,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,8BAA8B;kBACzD,uBAAuB,CAAC;QAE5B,OAAO,CAAC,YAAY,EAAE,CAAe,YAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,EAAE,IAAI,CAAC,CAAC;KACzD;;4GAjBU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAhBhB,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaA,WAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,s4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAlB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACZ,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaA,WAAA,CAAA,EAAA,MAAA,EAAA,CAAA,s4BAAA,CAAA,EAAA,CAAA;8BAKD,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MCTI,iBAAiB,CAAA;AAhB9B,IAAA,WAAA,GAAA;QAkBW,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAO/B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAS,CAAC;AAIjD,KAAA;IAVC,IAAa,OAAO,CAAC,KAAsB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAoB,CAAC;AACzC,SAAA;KACF;;8GAPU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAdlB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6yCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAIU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhB7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACd,QAAA,EAAA,CAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,6yCAAA,CAAA,EAAA,CAAA;8BAMQ,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAMI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCDI,iBAAiB,CAAA;AAa5B,IAAA,WAAA,CAAY,EAAe,EAAA;QANlB,IAAW,CAAA,WAAA,GAAW,KAAK,CAAC;AAE3B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;QAEjD,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;KAGxB;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,IAAK,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1F,QAAA,IAAI,QAAO,YAAY,CAAC,IAAI,WAAW,EAAE;YACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAA;KACF;AAED,IAAA,KAAK,CAAC,KAAiB,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;KAChC;IAED,gBAAgB,GAAA;QACd,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,IAAK,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AACvF,QAAA,IAAI,QAAO,YAAY,CAAC,IAAI,WAAW,EAAE;YACvC,OAAO,YAAY,CAAC,IAAI,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;KACrD;;8GAxCU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAtBlB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,u2BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAxB7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACd,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,u2BAAA,CAAA,EAAA,CAAA;oGAKQ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCiBI,cAAc,CAAA;AAyBzB,IAAA,WAAA,GAAA;QAtBA,IAAI,CAAA,IAAA,GAAU,EAAE,CAAC;QAEjB,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAKhB,IAAQ,CAAA,QAAA,GAAa,KAAK,CAAC;QAS3B,IAAM,CAAA,MAAA,GAAW,GAAG,CAAC;QACrB,IAAS,CAAA,SAAA,GAAW,GAAG,CAAC;QACxB,IAAO,CAAA,OAAA,GAAW,GAAG,CAAC;AACrB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAC3C,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;KAEtB;IAZhB,IAAa,OAAO,CAAC,KAA+B,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAoB,CAAC;AACzC,SAAA;KACF;AAUD,IAAA,QAAQ,MAAK;AAEb,IAAA,YAAY,CAAC,GAAW,EAAA;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;AAED,IAAA,KAAK,CAAC,KAAiB,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;KAChC;;2GAnCU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAhDf,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CP,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0sCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGQ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlD1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACX,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CP,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0sCAAA,CAAA,EAAA,CAAA;0EAUM,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAMG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACE,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MCjDK,oBAAoB,CAAA;AAzBjC,IAAA,WAAA,GAAA;AA8BY,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAW,CAAC;AAMnD,KAAA;IAJC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;;iHATU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAvBrB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qrCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAIU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAzBhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,qrCAAA,CAAA,EAAA,CAAA;8BAMQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCtBI,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EANnB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uaAAA,CAAA,EAAA,CAAA,CAAA;2FAIU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,CAAA;;AAET,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uaAAA,CAAA,EAAA,CAAA;8BAMQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MCQK,eAAe,CAAA;AAnB5B,IAAA,WAAA,GAAA;QAoBW,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AACpC,KAAA;;4GAHY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAjBhB,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGI,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACZ,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcH,QAAA,CAAA,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,CAAA;8BAIE,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MCJK,cAAc,CAAA;AAhB3B,IAAA,WAAA,GAAA;QAkBW,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAO5B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAS,CAAC;AAIlD,KAAA;IAVC,IAAa,OAAO,CAAC,KAAsB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAoB,CAAC;AACzC,SAAA;KACF;;2GAPU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAdf,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAIU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhB1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACX,QAAA,EAAA,CAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,CAAA;8BAMQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAMI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MCNI,eAAe,CAAA;AAnB5B,IAAA,WAAA,GAAA;QAsBE,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QAEtB,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAOhB,IAAW,CAAA,WAAA,GAAW,KAAK,CAAC;AAI3B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AA8CpD,KAAA;;IA5CC,IAAa,OAAO,CAAC,KAAsB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAoB,CAAC;AACzC,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;KACF;IACD,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;AAED,IAAA,WAAW,CAAC,GAAW,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;AACnD,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB,SAAA;KACF;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE;AAC5B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;AACjC,SAAA;KACF;AAED,IAAA,KAAK,CAAC,KAAiB,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;KAChC;AAGD,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,EAAE,GAAG,UAAU,GAAG,QAAQ,CAAC;KACxD;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC;KACzE;;4GA5DU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAjBhB,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2lCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACZ,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2lCAAA,CAAA,EAAA,CAAA;8BAUQ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEM,OAAO,EAAA,CAAA;sBAAnB,KAAK;;;MCzBK,iBAAiB,CAAA;AAS5B,IAAA,WAAA,GAAA;AAHU,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAW,CAAC;KAIjD;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;;8GAdU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAXlB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+aAAA,CAAA,EAAA,CAAA,CAAA;2FAIU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EACf,QAAA,EAAA,CAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,+aAAA,CAAA,EAAA,CAAA;0EAMQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCnBI,iBAAiB,CAAA;IAI5B,OAAO,GAAA;AACL,QAAA,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AAE/B,QAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACnD,YAAA,OAAO,4BAA4B,CAAC;AACrC,SAAA;AAAM,aAAA,IAAK,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;AAClD,YAAA,OAAO,wBAAwB,CAAC;AACjC,SAAA;AAAM,aAAA,IAAK,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;AAC9C,YAAA,OAAO,wBAAwB,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;KACF;;AAGD,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,CAAC,WAAW,GAAG;YACjB,MAAM,EAAE,IAAI,WAAW,EAAE;AACzB,YAAA,MAAM,EAAE,KAAK;SACd,CAAC;KACH;AACF;;ACfK,MAAO,WAAY,SAAQ,iBAAiB,CAAA;AAGhD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,YAAY,CAAC;QAIjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,KAAK,CAAC,SAAkB,EAAA;AACtB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AACjD,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,aAAa,CAAC,aAA+B,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC;AACrD,QAAA,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAC1C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,QAAQ,CAAC,IAAgB,EAAA;AACvB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;AACtD,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,aAAa,CAAC,QAAyB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,IAAyB,EAAA;AACzC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oBAAoB,CAAC,KAAkB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAC3D,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,aAAa,CAAC,SAAwC,EAAA;AACpD,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,aAAa,CAAC,QAAgB,EAAA;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,GAAG,QAAQ,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,iBAAiB,CAAC,SAAwC,EAAA;AACxD,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,gBAAgB,CAAC,KAAmB,EAAA;AAClC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;AACvD,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,WAAW,CAAC,KAAkB,EAAA;AAC5B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAC3D,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,UAAU,CAAC,KAAmB,EAAA;AAC5B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;AAC1D,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oBAAoB,CAAC,SAAgC,EAAA;AACnD,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,qCAAqC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,eAAe,CAAC,SAAgC,EAAA;AAC9C,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,eAAe,CAAC,MAA0B,EAAA;AACxC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACjE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAAuB,EAAA;AACvC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,gBAAgB,CAAC,SAAsB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACpE,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,QAAgB,EAAA;QAChC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,GAAG,QAAQ,CAAC;QAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,gBAAgB,CAAC,SAAgC,EAAA;AAC/C,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,SAAgC,EAAA;AACxD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,MAAc,EAAA;AAChC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACjE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oBAAoB,CAAC,MAA8B,EAAA;AACjD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,4BAA4B,CAAC,MAA+B,EAAA;AAC1D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,MAAsB,EAAA;AAC1C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,+BAA+B,CAAC,MAAoC,EAAA;AAClE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kDAAkD,CAAC;AACvF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,KAAmB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACjE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,wDAAwD,CAAC,KAAoC,EAAA;AAC3F,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oDAAoD,CAAC;AACzF,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IAED,8BAA8B,GAAA;AAC5B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wCAAwC,CAAC;QAC7E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,UAAU,CAAC,KAAiB,EAAA;AAC1B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;AACvD,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,aAAa,CAAC,QAAgB,EAAA;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,GAAG,QAAQ,CAAC;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AACD,IAAA,eAAe,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;AACvD,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,UAAU,CAAC,KAAS,EAAA;AAClB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,MAAwB,EAAA;AAC1C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAA4B,EAAA;AAClD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,MAAqC,EAAA;AACzD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,8BAA8B,CAAC,MAAyC,EAAA;AACtE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wCAAwC,CAAC;AAC7E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAAiC,EAAA;AACvD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACjE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;wGAjOU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCJY,cAAc,CAAA;AAKzB,IAAA,WAAA,GAAA;QAFQ,IAAc,CAAA,cAAA,GAAmB,IAAI,CAAC;AAG5C,QAAA,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;KAC9C;AAED,IAAA,iBAAiB,CAAC,OAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,kCAAkC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;KAC/F;IAED,eAAe,GAAA;QACb,IAAI,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;AACtF,QAAA,OAAO,CAAC,UAAU,IAAc,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;KAC/D;IAED,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,OAAO,GAAmB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACvD,QAAA,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;KACxD;;IAED,eAAe,GAAA;AACb,QAAA,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC;KACxD;;IAED,eAAe,GAAA;AACb,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACvC,QAAA,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;KAC1D;;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;;2GA7CU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACKK,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAGpD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,eAAe,CAAA;QAInC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,oBAAoB,CAAC,MAA2B,EAAA;AAC9C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,oBAAoB,CAAC,UAAkB,EAAA;QACrC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,GAAG,UAAU,CAAC;QACtF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,kBAAkB,CAAC,MAAoB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4CAA4C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAA2B,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,MAA4B,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4CAA4C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;AAID,IAAA,eAAe,CAAC,MAA4B,EAAA;AAC1C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,WAAW,CAAC,MAAqB,EAAA;AAC/B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,eAAe,CAAC,MAAqB,EAAA;AACnC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,CAAC;AAC7D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,MAAW,EAAA;AACnC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qCAAqC,CAAC;AAC1E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,MAA2B,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8CAA8C,CAAC;AACnF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,MAAmC,EAAA;AAC3D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mCAAmC,CAAC,MAA2B,EAAA;AAC7D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8CAA8C,CAAC;AACnF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;4GA/EU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,WAAW,CAAA;AAEtB,IAAA,WAAA,CACU,WAAwB,EACxB,cAA8B,EAC9B,eAAgC,EAAA;QAFhC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;KACtC;IAEJ,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;AACrC,QAAA,IAAI,OAAO,GAAY;AACrB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,QAAQ;SACnB,CAAA;AACD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;AAC/B,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;AAClC,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAEjC,QAAA,OAAO,IAAI,OAAO,CAAC,UAAS,OAAO,EAAE,MAAM,EAAA;YACzC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAE,QAAQ,IAAG;AAC3C,gBAAA,QAAQ,QAAQ,CAAC,OAAO,CAAC,IAAI;AAC3B,oBAAA,KAAK,CAAC;wBACJ,IAAG,CAAC,OAAO,EAAE;4BACX,IAAI,CAAC,IAAI,CAAE;AACT,gCAAA,OAAO,EAAE,+CAA+C;AACxD,gCAAA,MAAM,EAAE,uDAAuD;AAC/D,gCAAA,MAAM,EAAC,SAAS;AACjB,6BAAA,CAAC,CAAC;AACJ,yBAAA;AACD,wBAAA,MAAM,iBAAiB,GAAY;AACjC,4BAAA,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;4BAC1B,IAAI,EAAE,QAAQ,CAAC,IAAI;yBACpB,CAAC;AAEF,wBAAA,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;wBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;wBACd,MAAM;AACR,oBAAA,KAAK,CAAC;wBACJ,IAAI,CAAC,IAAI,CAAC;AACR,4BAAA,OAAO,EAAE,+CAA+C;AACxD,4BAAA,MAAM,EAAE,2HAA2H;AACnI,4BAAA,MAAM,EAAC,SAAS;AACjB,yBAAA,CAAC,CAAC;wBAEH,OAAO,CAAC,KAAK,CAAC,CAAC;wBACf,MAAM;AACR,oBAAA,KAAK,CAAC;wBACJ,IAAI,CAAC,IAAI,CAAC;AACR,4BAAA,OAAO,EAAE,6CAA6C;AACtD,4BAAA,MAAM,EAAE,+FAA+F;AACvG,4BAAA,MAAM,EAAC,OAAO;AACf,yBAAA,CAAC,CAAC;wBAEH,OAAO,CAAC,KAAK,CAAC,CAAC;wBACf,MAAM;AACR,oBAAA,KAAK,CAAC;wBACF,IAAI,CAAC,IAAI,CAAC;AACR,4BAAA,KAAK,EAAE,8CAA8C;AACrD,4BAAA,IAAI,EAAE,yDAAyD;gCACzD,kFAAkF;gCAClF,6DAA6D;gCAC7D,QAAQ;AACd,4BAAA,iBAAiB,EAAE,IAAI;AACxB,yBAAA,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;wBACf,MAAM;AACV,oBAAA;wBACE,IAAI,CAAC,IAAI,CAAC;AACR,4BAAA,OAAO,EAAE,6CAA6C;AACtD,4BAAA,MAAM,EAAE,uEAAuE;AAC/E,4BAAA,MAAM,EAAC,OAAO;AACf,yBAAA,CAAC,CAAC;wBAEH,OAAO,CAAC,KAAK,CAAC,CAAC;wBACf,MAAM;AACT,iBAAA;gBACD,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAA;KACH;AAED,IAAA,wBAAwB,CAAC,SAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,QAAgB,EAAE,QAAe,EAAE,SAAiB,EAAE,OAAe,EAAA;AACjJ,QAAA,IAAI,OAAO,GAAwB;AACjC,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,OAAO,EAAE,OAAO;SACjB,CAAC;AAEF,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;AAEnC,QAAA,OAAO,IAAI,OAAO,CAAC,UAAS,OAAO,EAAE,MAAM,EAAA;YACzC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAG,CAAC,QAAkB,KAAI;AACvE,gBAAA,QAAQ,QAAQ,CAAC,OAAO,CAAC,IAAI;AAC3B,oBAAA,KAAK,CAAC;AACJ,wBAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACvB,MAAK;AACP,oBAAA;wBACE,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACjC,iBAAA;gBACD,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,MAAM,SAAS,GAAW,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AACrD,QAAA,OAAO,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;QACT,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC;AACtD,QAAA,OAAO,IAAI,KAAK,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;KACvC;IAED,YAAY,GAAA;QACV,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC;QACxD,OAAO,KAAK,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;KAC3C;IAED,WAAW,GAAA;QACT,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AAChD,QAAA,IAAI,QAAQ,GAAG,IAAI,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;AAC9C,QAAA,OAAO,QAAQ,CAAC;KACjB;IAED,WAAW,GAAA;QACT,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AAChD,QAAA,IAAI,QAAQ,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AAC9C,QAAA,OAAO,QAAQ,CAAC;KACjB;AAED,IAAA,yBAAyB,CAAC,mBAAwC,EAAA;QAChE,IAAI,OAAO,GAAG,mBAAmB,CAAC;AAClC,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;AAE/B,QAAA,OAAO,IAAI,OAAO,CAAC,UAAS,OAAO,EAAE,MAAM,EAAA;YACzC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAExD,gBAAA,QAAQ,QAAQ,CAAC,OAAO,CAAC,IAAI;AAC3B,oBAAA,KAAK,CAAC;wBACJ,IAAI,CAAC,IAAI,CAAE;AACT,4BAAA,OAAO,EAAE,+CAA+C;AACxD,4BAAA,MAAM,EAAE,0DAA0D;AAClE,4BAAA,MAAM,EAAC,SAAS;AACjB,yBAAA,CAAC,CAAC;wBACH,OAAO,CAAC,IAAI,CAAC,CAAC;wBACd,MAAM;AACR,oBAAA,KAAK,CAAC;wBACJ,IAAI,CAAC,IAAI,CAAE;AACT,4BAAA,OAAO,EAAE,6CAA6C;AACtD,4BAAA,MAAM,EAAE,+FAA+F;AACvG,4BAAA,MAAM,EAAC,OAAO;AACf,yBAAA,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;wBACf,MAAM;AACR,oBAAA,KAAK,CAAC;wBACJ,IAAI,CAAC,IAAI,CAAE;AACT,4BAAA,OAAO,EAAE,0CAA0C;AACnD,4BAAA,MAAM,EAAE,yGAAyG;AACjH,4BAAA,MAAM,EAAE,SAAS;AAClB,yBAAA,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;wBACf,MAAM;AACR,oBAAA;wBACE,IAAI,CAAC,IAAI,CAAE;AACT,4BAAA,OAAO,EAAE,6CAA6C;AACtD,4BAAA,MAAM,EAAE,uEAAuE;AAC/E,4BAAA,MAAM,EAAC,OAAO;AACf,yBAAA,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;wBACf,MAAM;AACT,iBAAA;gBAED,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,IAAW,EAAA;QACrB,IAAI,QAAQ,GAAU,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;YACvB,IAAI,MAAM,GAAU,EAAE,CAAC;AACvB,YAAA,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE;AACzB,gBAAA,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;AACjC,oBAAA,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,EAAE;AACrC,wBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,qBAAA;oBAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,iBAAA;AACF,aAAA;AACD,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,QAAQ,CAAC;KACjB;AAED,IAAA,cAAc,CAAC,IAAW,EAAA;QACxB,IAAI,MAAM,GAAW,EAAE,CAAC;AACxB,QAAA,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,KAAK,IAAI,MAAM,EAAE;AACnB,gBAAA,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;wGA/MU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MC6BY,kBAAkB,CAAA;IAM7B,WACE,CAAA,EAAe,EACP,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AANxB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAW,CAAC;AAQ/C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC;YACxB,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,KAAK,CAAC,IAAe,EAAA;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;AACzG,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;KACJ;;+GApBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAnCnB,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ikBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAIU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArC9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAChB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,ikBAAA,CAAA,EAAA,CAAA;2HAMS,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;ACnCH,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;AAGrD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,iBAAiB,CAAC;QAItC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,YAAY,CAAC,OAAe,EAAA;QAC1B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,GAAG,OAAO,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,YAAY,GAAA;AACV,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,kBAAkB,CAAC,OAAe,EAAA;QAChC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,GAAG,OAAO,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,GAAG,KAAK,CAAC;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,SAAS,GAAA;AACP,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,aAAa,GAAA;AACX,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,sBAAsB,CAAC,YAAiB,EAAA;QACtC,IAAI,UAAU,GACZ,IAAI,CAAC,WAAW,GAAG,4BAA4B,GAAG,YAAY,CAAC;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,eAAe,GAAA;AACb,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,qBAAqB,CAAC,QAAa,EAAA;QACjC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,GAAG,QAAQ,CAAC;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,UAAU,GAAA;AACR,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,mBAAmB,CAAC,UAAe,EAAA;QACjC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yBAAyB,GAAG,UAAU,CAAC;QAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,eAAe,GAAA;AACb,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IACD,gBAAgB,GAAA;AACd,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IACD,mBAAmB,GAAA;AACjB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,eAAe,CAAC,UAAkB,EAAA;QAChC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,GAAG,UAAU,CAAC;QAC9E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IACD,kBAAkB,GAAA;AAChB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,YAAY,GAAA;AACV,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,eAAe,CAAC,SAAiB,EAAA;QAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,GAAG,SAAS,CAAC;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,UAAU,GAAA;AACR,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,eAAe,CAAC,IAAY,EAAA;QAC1B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kBAAkB,GAAG,IAAI,CAAC;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAA;QAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,GAAG,IAAI,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,oBAAoB,CAAC,IAAY,EAAA;QAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,GAAG,IAAI,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,yBAAyB,CAAC,IAAY,EAAA;QACpC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,GAAG,IAAI,CAAC;QAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,iBAAiB,CAAC,YAAoB,EAAA;QACpC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gCAAgC,GAAG,YAAY,CAAC;QACpF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,sBAAsB,CAAC,IAAY,EAAA;QACjC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,GAAG,IAAI,CAAC;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,YAAY,GAAA;AACV,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,YAAY,GAAA;AACV,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,iBAAiB,CAAC,IAAY,EAAA;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAAC;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,oBAAoB,CAAC,IAAY,EAAA;QAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,GAAG,IAAI,CAAC;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,iBAAiB,CAAC,IAAY,EAAA;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAAC;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,kBAAkB,CAAC,IAAY,EAAA;QAC7B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,GAAG,IAAI,CAAC;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,2BAA2B,GAAA;AACzB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IACD,oBAAoB,GAAA;AAClB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IACD,uBAAuB,GAAA;AACrB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;;6GAvPU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCaY,uBAAuB,CAAA;AAclC,IAAA,WAAA,CACU,EAAe,EACf,gBAAkC,EAClC,WAAwB,EAAA;QAFxB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAfzB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAC3B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,CAAU,KAAK,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,CAAU,KAAK,CAAC,CAAC;QAMpD,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QAExB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;KAMf;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAEnB,QAAA,IAAI,OAAO,GAAwB;YACjC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK;YAChD,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK;YAC1D,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK;YAChE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK;YACtD,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK;YACxE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK;YAChE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK;YAClD,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK;YAChD,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK;YAChE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK;YAChD,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK;SACzD,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACjE,YAAA,QAAQ,QAAQ,CAAC,OAAO,CAAC,IAAI;AAC3B,gBAAA,KAAK,CAAC;AACJ,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,MAAM;AACR,gBAAA,KAAK,CAAC;AACJ,oBAAA,MAAM,IAAI,KAAK,CAAC,uGAAuG,CAAC,CAAC;AAC3H,gBAAA,KAAK,CAAC;AACJ,oBAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;AACjF,gBAAA;oBACE,MAAM;AACT,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;IAED,aAAa,GAAA;QACX,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,QAAwB,KAAI;AAC5E,YAAA,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC9C,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAwB,KAAI;AAC/E,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC/B,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAU;AAC3E,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;;AAEb,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzB,OAAO;AACL,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;aAChC,CAAC;AACH,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC1B,OAAO;AACL,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE;AAC5C,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;aAChC,CAAC;AACH,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,EAAE;AACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAChC,OAAO;AACL,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,4BAA4B,EAAE;AAClD,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,EAAE;aAC/C,CAAC;AACH,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;AACjC,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3B,OAAO;AACL,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAE;AAC7C,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE;aAC1C,CAAC;AACH,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO;AACL,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,EAAE;AAC9C,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE;aAC3C,CAAC;AACH,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC1B,OAAO;AACL,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE;AAC5C,gBAAA,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;aACzC,CAAC;AACH,SAAA;KACF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAClC,IAAI,EAAE,CAAC,EAAE,EAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE;YAClF,SAAS,EAAE,CAAC,EAAE,EAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE;AACxF,YAAA,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YACxF,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7F,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACxF,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3F,KAAK,EAAE,CAAC,EAAE,CAAC;AACZ,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,QAAQ,CAAC,IAAY,EAAA;QACnB,IAAI,IAAI,KAAK,SAAS;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,uCAAuC,CAAA;QAC5E,IAAI,IAAI,KAAK,UAAU;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,yCAAyC,CAAA;QAC/E,IAAI,IAAI,KAAK,gBAAgB;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,oDAAoD,CAAA;QAChG,IAAI,IAAI,KAAK,WAAW;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,2CAA2C,CAAA;QAClF,IAAI,IAAI,KAAK,YAAY;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,4DAA4D,CAAA;QACpG,IAAI,IAAI,KAAK,UAAU;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,8CAA8C,CAAA;KACrF;AAED,IAAA,SAAS,CAAC,IAAS,EAAA;QACjB,IAAI,IAAI,KAAK,mBAAmB,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,UAAe,EAAA;QAC/B,IAAI,UAAU,KAAK,0BAA0B,EAAE;AAC7C,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,SAAA;KACF;AAED,IAAA,YAAY,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,KAAK,8BAA8B,EAAE;AAC7C,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/D,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,KAAK,KAAK,4BAA4B,EAAE;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACnE,gBAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC9B,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AAClB,SAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;QAClB,IAAI,IAAI,KAAK,sBAAsB,EAAE;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA;KACF;;oHAzMU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBpC,g9HA2GA,EDhGc,MAAA,EAAA,CAAA,uiDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAAA;QACV,OAAO,CAAC,MAAM,EAAE;YACd,UAAU,CAAC,WAAW,EAAE;AACtB,gBAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;aAClC,CAAC;SACH,CAAC;AACH,KAAA,EAAA,CAAA,CAAA;2FAEU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAbnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGpB,UAAA,EAAA;wBACV,OAAO,CAAC,MAAM,EAAE;4BACd,UAAU,CAAC,WAAW,EAAE;AACtB,gCAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gCACrB,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;6BAClC,CAAC;yBACH,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,g9HAAA,EAAA,MAAA,EAAA,CAAA,uiDAAA,CAAA,EAAA,CAAA;uJAGQ,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MEmCI,gBAAgB,CAAA;AAY3B,IAAA,WAAA,CACU,WAAwB,EACxB,WAAwB,EACxB,cAA8B,EAAA;QAF9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAX9B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;QAEvD,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;AACnB,QAAA,IAAA,CAAA,OAAO,GAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAClE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;KAMzB;IAEJ,QAAQ,GAAA;QACN,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC;AACvD,QAAA,IAAI,KAAK,GAAW,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD,QAAA,IAAI,OAAO,GAAiB;AAC1B,YAAA,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAChE,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC9B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;KAC/C;AAED,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;;6GAzCU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAlDjB,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,k7DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBApD5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACb,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,k7DAAA,CAAA,EAAA,CAAA;gJAIQ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MCpDI,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,OAAA,EAAA,CAFf,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;4GAEhF,cAAc,EAAA,OAAA,EAAA,CAFf,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;2FAEhF,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC;AAC7F,iBAAA,CAAA;;;MC+IY,qBAAqB,CAAA;AAIhC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;AAC1B,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAa,EAAA;AAC1B,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;oBACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AAChD,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;oBACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AAChD,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;oBACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AAChD,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;oBACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AAChD,iBAAA;gBACD,MAAM;AAER,YAAA;AACE,gBAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBACxB,MAAM;AACT,SAAA;KACF;;kHA5CU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EApJtB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiJT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAtJjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiJT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,kKAAA,CAAA,EAAA,CAAA;8BAIQ,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MCtJK,kBAAkB,CAAA;AAC7B,IAAA,SAAS,CAAC,QAA8B,EAAA;QACtC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,aAAa,CAAC;AACtB,SAAA;QAED,MAAM,iBAAiB,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,kBAAkB,CAAC;AAEzF,QAAA,IAAI,iBAAiB,EAAE;AACrB,YAAA,OAAO,aAAa,CAAC;AACtB,SAAA;QAED,MAAM,aAAa,GAAa,EAAE,CAAC;;AAGnC,QAAA,MAAM,WAAW,GAA8B;AAC7C,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,MAAM,EAAE,KAAK;SACd,CAAC;AAEF,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC3B,YAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAG;gBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjC,gBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtB,OAAO;AACR,iBAAA;AAED,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACpB,gBAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAEpC,IAAI,UAAU,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACrD,oBAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;KAC5E;;+GA1CU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCCY,sBAAsB,CAAA;AACjC,IAAA,SAAS,CAAC,QAA8B,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAClE,YAAA,OAAO,aAAa,CAAC;AACtB,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAE5E,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,YAAA,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,OAAO,CAAG,EAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;AACjF,SAAA;AAED,QAAA,OAAO,aAAa,CAAC;KACtB;AAEO,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9D,QAAA,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;QACzC,MAAM,cAAc,GAAG,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;AACxC,QAAA,OAAO,CAAG,EAAA,cAAc,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,CAAC;KACnE;AAEO,IAAA,WAAW,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,KAAK,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC;KAC9C;;mHA1BU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;iHAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAA;;;MCCY,aAAa,CAAA;AAExB,IAAA,SAAS,CAAC,KAAa,EAAA;QAErB,IAAI,KAAK,KAAK,aAAa,EAAE;AAC3B,YAAA,OAAO,OAAO,CAAA;AACf,SAAA;QAED,IAAI,KAAK,KAAK,cAAc,EAAE;AAC5B,YAAA,OAAO,QAAQ,CAAA;AAChB,SAAA;QAED,IAAI,KAAK,KAAK,eAAe,EAAE;AAC7B,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;QACD,IAAI,KAAK,KAAK,YAAY,EAAE;AAC1B,YAAA,OAAO,OAAO,CAAA;AACf,SAAA;QAED,IAAI,KAAK,KAAK,aAAa,EAAE;AAC3B,YAAA,OAAO,QAAQ,CAAA;AAChB,SAAA;QAED,IAAI,KAAK,KAAK,UAAU,EAAE;AACxB,YAAA,OAAO,OAAO,CAAA;AACf,SAAA;QAED,IAAI,KAAK,KAAK,WAAW,EAAE;AACzB,YAAA,OAAO,QAAQ,CAAA;AAChB,SAAA;QAED,IAAI,KAAK,KAAK,QAAQ,EAAE;AACtB,YAAA,OAAO,QAAQ,CAAA;AAChB,SAAA;QAED,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QAED,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QAED,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QAED,IAAI,KAAK,KAAK,KAAK,EAAE;AACnB,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;QAED,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AAEI,aAAA;AACH,YAAA,OAAO,GAAG,CAAA;AACX,SAAA;KACF;;0GA1DU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;wGAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAA;;;MCKY,mBAAmB,CAAA;AALhC,IAAA,WAAA,GAAA;QAOW,IAAS,CAAA,SAAA,GAAG,IAAI,CAAA;AACf,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAoB,CAAC;QAE5D,IAAa,CAAA,aAAA,GAAO,EAAE,CAAC;QACvB,IAAU,CAAA,UAAA,GAAO,EAAE,CAAC;QACpB,IAAa,CAAA,aAAA,GAAO,EAAE,CAAC;QACvB,IAAc,CAAA,cAAA,GAAI,KAAK,CAAC;QACxB,IAAW,CAAA,WAAA,GAAI,KAAK,CAAC;QACrB,IAAc,CAAA,cAAA,GAAI,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAC,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AA6DlB,KAAA;IA3DC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;AACrB,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,SAAS,GAAC,KAAK,CAAC;AACtB,SAAA;KACF;AACD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,SAAS,GAAC,KAAK,CAAA;AACpB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,GAAC,KAAK,CAAA;gBACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AAC7C,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AAC7D,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AACvD,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AAC9D,aAAA;AACF,SAAA;KACF;AAED,IAAA,cAAc,CAAC,UAA4B,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,QAAO,KAAK;AACV,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,WAAW,CAAA;AACpB,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,cAAc,CAAA;AACvB,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,WAAW,CAAC;AACrB,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,WAAW,CAAA;AACpB,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,WAAW,CAAA;AACpB,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,YAAY,CAAA;AACrB,YAAA,KAAK,UAAU,CAAC;AAChB,YAAA,KAAK,WAAW,CAAC;AACjB,YAAA,KAAK,aAAa,CAAC;AACnB,YAAA,KAAK,cAAc,CAAC;AACpB,YAAA,KAAK,eAAe,CAAC;AACrB,YAAA,KAAK,YAAY,CAAC;AAClB,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,UAAU,CAAC;AACpB,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC;AACb,SAAA;KACF;;gHAvEU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,kMCThC,m+VA2LA,EAAA,MAAA,EAAA,CAAA,8yKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,SAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDlLa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,m+VAAA,EAAA,MAAA,EAAA,CAAA,8yKAAA,CAAA,EAAA,CAAA;8BAKlC,UAAU,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MEUI,UAAU,CAAA;;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,iBAbnB,kBAAkB;QAClB,sBAAsB;QACtB,aAAa,CAAA,EAAA,OAAA,EAAA,CAEL,YAAY,CAAA,EAAA,OAAA,EAAA,CAGpB,kBAAkB;QAClB,sBAAsB;QACtB,aAAa,CAAA,EAAA,CAAA,CAAA;AAIJ,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YATX,YAAY,CAAA,EAAA,CAAA,CAAA;2FASX,UAAU,EAAA,UAAA,EAAA,CAAA;kBAftB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,kBAAkB;wBAClB,sBAAsB;wBACtB,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE;wBAEP,kBAAkB;wBAClB,sBAAsB;wBACtB,aAAa;AAEd,qBAAA;AACF,iBAAA,CAAA;;;MCbY,yBAAyB,CAAA;AALtC,IAAA,WAAA,GAAA;QAQE,IAAO,CAAA,OAAA,GAAW,CAAC,CAAC;AAwCrB,KAAA;IAtCC,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC1C,SAAA;KACF;AAED,IAAA,UAAU,CAAC,QAAgB,EAAA;QACzB,MAAM,SAAS,GAAG,wBAAwB,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAExC,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3B,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AAC7B,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AACtC,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAClC,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AACF,SAAA;AACD,QAAA,OAAO,CAAC,CAAC;KACV;AAED,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,OAAO,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC;KACjD;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,OAAO,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC;KACjD;AAED,IAAA,OAAO,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,IAAI,UAAU,CAAC;KAC3B;;sHAvCU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,yHCRtC,61NAwFA,EAAA,MAAA,EAAA,CAAA,snDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDhFa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,yCAAyC,EAAA,QAAA,EAAA,61NAAA,EAAA,MAAA,EAAA,CAAA,snDAAA,CAAA,EAAA,CAAA;8BAM1C,YAAY,EAAA,CAAA;sBAApB,KAAK;;;MEgFK,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAxDzB,oBAAoB;QACpB,eAAe;QACf,iBAAiB;QACjB,uBAAuB;QACvB,iBAAiB;QACjB,cAAc;QACd,oBAAoB;QACpB,kBAAkB;QAClB,kBAAkB;QAClB,eAAe;QACf,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,qBAAqB;QACrB,mBAAmB;AACnB,QAAA,yBAAyB,aAIzB,YAAY;;QAEZ,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,kBAAkB;QAClB,WAAW;QACX,UAAU;AACV,QAAA,cAAc,aAGd,oBAAoB;QACpB,eAAe;QACf,iBAAiB;QACjB,uBAAuB;QACvB,iBAAiB;QACjB,cAAc;QACd,oBAAoB;QACpB,kBAAkB;QAClB,eAAe;QACf,cAAc;QACd,eAAe;QACf,iBAAiB;QACjB,kBAAkB;QAClB,gBAAgB;QAChB,kBAAkB;QAClB,qBAAqB;QACrB,mBAAmB;QACnB,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAQhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EANhB,SAAA,EAAA;QACT,YAAY;QACZ,aAAa;AACd,KAAA,EAAA,OAAA,EAAA,CAjCC,YAAY;;QAEZ,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,kBAAkB;QAClB,WAAW;QACX,UAAU;AACV,QAAA,cAAc,EAiBd,kBAAkB,CAAA,EAAA,CAAA,CAAA;2FAWT,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA1D5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,eAAe;wBACf,iBAAiB;wBACjB,uBAAuB;wBACvB,iBAAiB;wBACjB,cAAc;wBACd,oBAAoB;wBACpB,kBAAkB;wBAClB,kBAAkB;wBAClB,eAAe;wBACf,cAAc;wBACd,eAAe;wBACf,gBAAgB;wBAChB,iBAAiB;wBACjB,qBAAqB;wBACrB,mBAAmB;wBACnB,yBAAyB;AAE1B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;;wBAEZ,WAAW;wBACX,mBAAmB;wBACnB,cAAc;wBACd,kBAAkB;wBAClB,WAAW;wBACX,UAAU;wBACV,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,eAAe;wBACf,iBAAiB;wBACjB,uBAAuB;wBACvB,iBAAiB;wBACjB,cAAc;wBACd,oBAAoB;wBACpB,kBAAkB;wBAClB,eAAe;wBACf,cAAc;wBACd,eAAe;wBACf,iBAAiB;wBACjB,kBAAkB;wBAClB,gBAAgB;wBAChB,kBAAkB;wBAClB,qBAAqB;wBACrB,mBAAmB;wBACnB,yBAAyB;AAC1B,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,YAAY;wBACZ,aAAa;AACd,qBAAA;AACF,iBAAA,CAAA;;;AC7EK,MAAO,YAAa,SAAQ,iBAAiB,CAAA;AAIjD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,YAAY,CAAC;QAIjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,WAAW,CAAC,OAAgB,EAAA;AAC1B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AACjD,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IAED,eAAe,GAAA;AACb,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;QAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB,GAAG,MAAM,CAAC;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;;yGAvBU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxB,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCEY,4BAA4B,CAAA;AAavC,IAAA,WAAA,CACU,EAAe,EACf,YAA0B,EAC1B,WAAwB,EACxB,WAAwB,EAAA;QAHxB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAflC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAK,CAAA,KAAA,GAAU,EAAE,CAAC;QAGlB,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC,CAAC;QACpB,IAAK,CAAA,KAAA,GAAY,KAAK,CAAA;QACtB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAQxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACjC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC5C,aAAa,EAAE,CAAC,EAAE,CAAC;YACnB,UAAU,EAAE,CAAC,EAAE,CAAC;YAChB,cAAc,EAAE,CAAC,EAAE,CAAC;AACrB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,QAAQ,MAAW;IAEnB,cAAc,GAAA;AACZ,QAAA,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;KAC1C;IAED,aAAa,CAAC,KAAU,EAAE,OAAe,EAAA;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEvC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAM,KAAI;YACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxC,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACd,QAAA,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;KACvC;IAED,aAAa,GAAA;QACX,IAAI,CAAC,IAAI,CAAC;AACR,YAAA,KAAK,EAAE,6CAA6C;AACpD,YAAA,IAAI,EAAE,qEAAqE;AAC3E,YAAA,IAAI,EAAE,SAAS;AAChB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;AAED,IAAA,eAAe,CAAC,OAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACzC;IAED,kBAAkB,CAAC,cAAsB,EAAE,KAAc,EAAA;AACvD,QAAA,QAAQ,cAAc;AACpB,YAAA,KAAK,aAAa;AAAE,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC1C,MAAM;AACR,YAAA,KAAK,eAAe;AAAE,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC9C,MAAM;AACR,YAAA,KAAK,YAAY;AAAE,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACxC,MAAM;AACR,YAAA,KAAK,gBAAgB;AAAE,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAChD,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACzD,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;YAC3D,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,SAAC,CAAC,CAAA;KACH;IAED,aAAa,GAAA;AACX,QAAA,IAAI,OAAO,GAAW;AACpB,YAAA,IAAI,EAAQ,OAAO;AACnB,YAAA,IAAI,EAAS,OAAO;AACpB,YAAA,UAAU,EAAG,CAAC;SACf,CAAA;KACF;;yHArGU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAyB,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAhB,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAiB,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,iECZzC,22HA4EA,EAAA,MAAA,EAAA,CAAA,iIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDhEa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,22HAAA,EAAA,MAAA,EAAA,CAAA,iIAAA,CAAA,EAAA,CAAA;;;MEH1B,sBAAsB,CAAA;AAEjC,IAAA,WAAA,GAAA,GAAiB;IAEjB,cAAc,CAAC,IAAY,EAAE,OAAe,EAAA;QAC1C,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;AAE5E,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,cAAc,CAAC,IAAY,EAAE,OAAe,EAAE,KAAa,EAAA;QACzD,IAAI,IAAI,KAAK,CAAC;YAAE,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;KAC7E;IAED,SAAS,GAAA;QACP,IAAI,cAAc,GAAG,kCAAkC,CAAC;QACxD,IAAI,WAAW,GAAmB,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACvE,YAAY,CAAC,KAAK,EAAE,CAAC;QAErB,IAAG,WAAW,KAAK,IAAI,EAAE;AACvB,YAAA,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACnD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACxC,SAAA;KACF;;mHAhCU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCOY,eAAe,CAAA;AAyE1B,IAAA,WAAA,GAAA;AAvEO,QAAA,IAAA,CAAA,QAAQ,GAAqB;AAClC,YAAA;gBACE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;gBACxE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;gBACrE,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE;gBAC1E,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBACzE,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBACjF,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE;AACjF,aAAA;AACD,YAAA;gBACE,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACpF,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oCAAoC,EAAE;gBACxF,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;gBACxD,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBACvE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBACrE,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBACjG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACpF,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACtF,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBAC/E,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBAC/E,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBACrE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE;gBACzD,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;gBACpD,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACvF,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBAC1E,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBACtE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBACpF,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBAC9F,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACxF,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBAC9E,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE;AACnF,aAAA;AACD,YAAA;gBACE,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAC/F,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBAClF,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACpF,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBAC7E,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBAC7E,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBAC5F,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACrF,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBAClF,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE;AACvF,aAAA;AACD,YAAA;gBACE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;gBACtE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBAClF,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;gBACzE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBAC1E,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE;gBACpF,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;AACrE,aAAA;AACD,YAAA;gBACE,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBAC3F,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE;gBACpE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE;gBAChE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBACxE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE;gBACpE,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBACjF,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBACjF,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBACjF,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBACjF,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBACjF,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBACjF,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBAC3E,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;gBAC/D,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE;AACjE,aAAA;SACF,CAAC;AAEM,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAmB,EAAE,CAAC,CAAC;QAG5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACtC;;AAGD,IAAA,WAAW,CAAC,IAAY,EAAE,WAAmB,EAAE,QAAa,EAAA;QAC1D,MAAM,QAAQ,GAAqB,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxD,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;AAC/E,QAAA,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE/B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;KAC9B;;4GAxFU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACKK,MAAO,iBAAkB,SAAQ,iBAAiB,CAAA;AAItD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,iBAAiB,CAAC;QAItC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,SAAS,CAAC,OAAoB,EAAA;AAC5B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAC/C,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IAED,oBAAoB,CAAC,KAAa,EAAE,eAAuB,EAAA;AACzD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;QACzE,IAAI,CAAC,qBAAqB,CAAC,EAAC,KAAK,EAAE,eAAe,EAAC,CAAC,CAAC;AACrD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,gBAAgB,CAAC,SAAc,EAAA;AAC7B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,OAAY,EAAA;AAChC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,2BAA2B,CAAC,OAAY,EAAA;AACtC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,MAA4B,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,IAAY,EAAA;QAClC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,GAAG,IAAI,CAAC;AAC1E,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,kBAAkB,CAAC,MAAsB,EAAA;AACvC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACrE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAAwB,EAAA;AACxC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAAqB,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oCAAoC,CAAC,MAAqB,EAAA;AACxD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qDAAqD,CAAC;AAC1F,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kCAAkC,CAAC,MAAmB,EAAA;AACpD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+CAA+C,CAAC;AACpF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,MAAmB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,MAAmB,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,2BAA2B,CAAC,MAAwB,EAAA;AAClD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+CAA+C,CAAC;AACpF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,UAAU,CAAC,MAAwB,EAAA;AACjC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAClD;AAEH,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,cAAc,CAAC,MAAW,EAAA;AACxB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;AAC1D,QAAA,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACjD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QACvD,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC7C;AAED,IAAA,qBAAqB,CAAC,MAAU,EAAA;AAC9B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,6BAA6B,CAAC,MAA8B,EAAA;AAC1D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACjE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,2BAA2B,CAAC,MAA8B,EAAA;AACxD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,MAA6B,EAAA;AACjD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAEC,IAAA,qBAAqB,CAAC,MAAW,EAAA;AACjC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yCAAyC,CAAC;AAC9E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,+BAA+B,CAAC,MAAuC,EAAA;AACrE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,8BAA8B,CAAC,MAA6B,EAAA;AAC1D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oDAAoD,CAAC;AACzF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,eAAe,CAAC,MAA0B,EAAA;AACxC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,CAAC;AAC7D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,MAAyB,EAAA;AACjD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,MAAgC,EAAA;AACxD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC;AACpE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,MAA8B,EAAA;AAClD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0BAA0B,CAAC,MAA8B,EAAA;AACvD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,+BAA+B,CAAC,MAAwC,EAAA;AACtE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,4BAA4B,CAAE,WAAmB,EAAA;QAC/C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iCAAiC,GAAG,WAAW,CAAC;AACpF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,SAAS,CAAC,OAAqB,EAAA;AAC7B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;AACtD,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,4CAA4C,CAAC,OAAwD,EAAA;AACnG,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8DAA8D,CAAC;AACnG,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,8BAA8B,CAAC,OAAwD,EAAA;AACrF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,yCAAyC,CAAC,OAAY,EAAA;AACpD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iDAAiD,CAAC;AACtF,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qCAAqC,CAAC,OAAY,EAAA;AAChD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+DAA+D,CAAC;AACpG,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,gCAAgC,CAAC,OAAY,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gDAAgD,CAAC;AACrF,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,6BAA6B,CAAC,MAA0B,EAAA;AACtD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qCAAqC,CAAC;AAC1E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,oBAAoB,CAAC,MAAW,EAAA;AAC9B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IAED,0BAA0B,GAAA;AACxB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAI,gCAAgC,CAAC;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,oBAAoB,CAAC,MAA+B,EAAA;AAClD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAEC,IAAA,kCAAkC,CAAC,MAA6B,EAAA;AAChE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,6BAA6B,CAAC,MAA4B,EAAA;AACxD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oCAAoC,CAAC,MAAkC,EAAA;AACrE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8CAA8C,CAAC;AACnF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,2CAA2C,CAAC,MAAuD,EAAA;AACjG,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,4CAA4C,CAAC,MAAsD,EAAA;AACjG,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,gCAAgC,CAAC,MAAwC,EAAA;AACvE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,wBAAwB,CAAC,MAAmC,EAAA;AAC1D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,6BAA6B,CAAC,MAAuC,EAAA;AACnE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;8GA/SU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA5B,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADL,MAAM,EAAA,CAAA,CAAA;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCLV,YAAY,CAAA;AAIhC,IAAA,WAAA,GAAA;AAFO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,sBAAsB,EAAE,CAAC;KAEtC;IAEhB,cAAc,CAAC,IAAY,EAAE,OAAe,EAAA;QAC1C,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACtD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjE,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC3B,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;AAC9B,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,IAAY,EAAE,OAAe,EAAE,KAAU,EAAA;QAC7D,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;KAC3D;AAED,IAAA,iBAAiB,CAAC,IAAY,EAAE,OAAe,EAAE,GAAoB,EAAA;AACnE,QAAA,GAAG,CAAC,SAAS,CAAC,KAAK,IAAG;YACpB,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACnD,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,QAAmB,EAAA;AACnC,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AACzB,YAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;AAEF;;ACxCD,MAAM,MAAM,GAAQ;AAClB,IAAA,IAAI,EAAE;AACJ,QAAA,gBAAgB,EAAE;AAChB,YAAA,QAAQ,EAAE;AACR,gBAAA,MAAM,EAAC,iCAAiC;AACxC,gBAAA,SAAS,EAAC,+BAA+B;AACzC,gBAAA,UAAU,EAAC,kDAAkD;AAC7D,gBAAA,eAAe,EAAC,gCAAgC;AAChD,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,SAAS,EAAE,wBAAwB;AACnC,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,cAAc,EAAE,oBAAoB;AACpC,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,aAAa,EAAE,oBAAoB;AACnC,gBAAA,MAAM,EAAE,mBAAmB;AAC3B,gBAAA,cAAc,EAAE,mBAAmB;AACnC,gBAAA,cAAc,EAAC,8BAA8B;AAC7C,gBAAA,kBAAkB,EAAE,0BAA0B;AAC9C,gBAAA,OAAO,EAAC,4BAA4B;AACpC,gBAAA,MAAM,EAAE,qBAAqB;AAC7B,gBAAA,mBAAmB,EAAE,eAAe;AACpC,gBAAA,gBAAgB,EAAE,QAAQ;AAC1B,gBAAA,cAAc,EAAE,WAAW;AAC3B,gBAAA,sBAAsB,EAAE,eAAe;AACxC,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,MAAM,EAAC,uCAAuC;AAC9C,gBAAA,SAAS,EAAC,sCAAsC;AAChD,gBAAA,eAAe,EAAC,sCAAsC;AACtD,gBAAA,OAAO,EAAE,2DAA2D;AACpE,gBAAA,SAAS,EAAE,wCAAwC;AACnD,gBAAA,WAAW,EAAE,2CAA2C;AACxD,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,cAAc,EAAE,6CAA6C;AAC7D,gBAAA,UAAU,EAAE,8BAA8B;AAC1C,gBAAA,aAAa,EAAE,8BAA8B;AAC7C,gBAAA,MAAM,EAAE,yBAAyB;AACjC,gBAAA,cAAc,EAAE,qCAAqC;AACrD,gBAAA,cAAc,EAAC,qCAAqC;AACpD,gBAAA,kBAAkB,EAAE,iCAAiC;AACrD,gBAAA,OAAO,EAAC,4BAA4B;AACpC,gBAAA,aAAa,EAAE,uBAAuB;AACtC,gBAAA,oBAAoB,EAAE,uBAAuB;AAC7C,gBAAA,oBAAoB,EAAE,uBAAuB;AAC7C,gBAAA,qBAAqB,EAAE,uBAAuB;AAC9C,gBAAA,mBAAmB,EAAE,6CAA6C;AAClE,gBAAA,gBAAgB,EAAE,6BAA6B;AAC/C,gBAAA,cAAc,EAAE,0BAA0B;AAC1C,gBAAA,uBAAuB,EAAE,oCAAoC;AAE9D,aAAA;AACF,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,QAAQ,EAAE;AACR,gBAAA,uBAAuB,EAAC,wBAAwB;AAChD,gBAAA,gBAAgB,EAAE,oDAAoD;AACtE,gBAAA,eAAe,EAAE,MAAM;AACvB,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,WAAW,EAAE,qBAAqB;AAClC,gBAAA,mBAAmB,EAAC,oBAAoB;AACxC,gBAAA,WAAW,EAAC,gCAAgC;AAC5C,gBAAA,MAAM,EAAC,iCAAiC;AACxC,gBAAA,WAAW,EAAE,oBAAoB;AACjC,gBAAA,SAAS,EAAC,+BAA+B;AACzC,gBAAA,aAAa,EAAE,cAAc;AAC7B,gBAAA,QAAQ,EAAE,qBAAqB;AAC/B,gBAAA,UAAU,EAAC,kDAAkD;AAC7D,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,YAAY,EAAE,uDAAuD;AACrE,gBAAA,mBAAmB,EAAE,kDAAkD;AACvE,gBAAA,iBAAiB,EAAE,cAAc;AACjC,gBAAA,gBAAgB,EAAE,eAAe;AACjC,gBAAA,uBAAuB,EAAE,cAAc;AACvC,gBAAA,uBAAuB,EAAE,kBAAkB;AAC3C,gBAAA,0BAA0B,EAAC,kBAAkB;AAC7C,gBAAA,QAAQ,EAAE,uBAAuB;AACjC,gBAAA,cAAc,EAAC,8BAA8B;AAC7C,gBAAA,SAAS,EAAE,wBAAwB;AACnC,gBAAA,cAAc,EAAE,aAAa;AAC7B,gBAAA,YAAY,EAAE,6BAA6B;AAC3C,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,MAAM,EAAE,qBAAqB;AAC7B,gBAAA,UAAU,EAAC,UAAU;AACrB,gBAAA,cAAc,EAAE,sBAAsB;AACtC,gBAAA,mBAAmB,EAAE,+BAA+B;AACpD,gBAAA,OAAO,EAAE,qBAAqB;AAC9B,gBAAA,aAAa,EAAE,+BAA+B;AAC9C,gBAAA,aAAa,EAAE,eAAe;AAC9B,gBAAA,YAAY,EAAC,WAAW;AACxB,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,kBAAkB,EAAE,0BAA0B;AAC9C,gBAAA,cAAc,EAAE,oBAAoB;AACpC,gBAAA,eAAe,EAAE,8BAA8B;AAC/C,gBAAA,cAAc,EAAE,0BAA0B;AAC1C,gBAAA,SAAS,EAAC,+BAA+B;AACzC,gBAAA,mBAAmB,EAAE,sCAAsC;AAC3D,gBAAA,aAAa,EAAE,8BAA8B;AAC7C,gBAAA,MAAM,EAAE,mBAAmB;AAC3B,gBAAA,aAAa,EAAE,oBAAoB;AACnC,gBAAA,gBAAgB,EAAE,0CAA0C;AAC5D,gBAAA,cAAc,EAAE,mBAAmB;AACnC,gBAAA,UAAU,EAAE,iBAAiB;AAC7B,gBAAA,aAAa,EAAE,+BAA+B;AAC9C,gBAAA,cAAc,EAAE,eAAe;AAC/B,gBAAA,OAAO,EAAC,4BAA4B;AACpC,gBAAA,eAAe,EAAC,QAAQ;AACxB,gBAAA,aAAa,EAAE,wCAAwC;AACvD,gBAAA,WAAW,EAAE,wBAAwB;AACrC,gBAAA,kBAAkB,EAAE,+BAA+B;AACnD,gBAAA,aAAa,EAAC,0BAA0B;AACzC,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,gBAAgB,EAAE,oDAAoD;AACtE,gBAAA,eAAe,EAAE,MAAM;AACvB,gBAAA,SAAS,EAAE,6BAA6B;AACxC,gBAAA,uBAAuB,EAAC,wBAAwB;AAChD,gBAAA,mBAAmB,EAAC,4BAA4B;AAChD,gBAAA,WAAW,EAAC,uCAAuC;AACnD,gBAAA,MAAM,EAAC,wCAAwC;AAC/C,gBAAA,WAAW,EAAE,yCAAyC;AACtD,gBAAA,SAAS,EAAC,sCAAsC;AAChD,gBAAA,QAAQ,EAAE,yCAAyC;AACnD,gBAAA,OAAO,EAAE,2DAA2D;AACpE,gBAAA,YAAY,EAAE,uDAAuD;AACrE,gBAAA,mBAAmB,EAAE,kDAAkD;AACvE,gBAAA,iBAAiB,EAAE,2CAA2C;AAC9D,gBAAA,gBAAgB,EAAE,gDAAgD;AAClE,gBAAA,uBAAuB,EAAE,iDAAiD;AAC1E,gBAAA,uBAAuB,EAAE,mCAAmC;AAC5D,gBAAA,0BAA0B,EAAC,oCAAoC;AAC/D,gBAAA,QAAQ,EAAE,kCAAkC;AAC5C,gBAAA,cAAc,EAAC,qCAAqC;AACpD,gBAAA,SAAS,EAAE,wCAAwC;AACnD,gBAAA,YAAY,EAAE,mCAAmC;AACjD,gBAAA,WAAW,EAAE,2CAA2C;AACxD,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,UAAU,EAAC,4BAA4B;AACvC,gBAAA,mBAAmB,EAAE,+BAA+B;AACpD,gBAAA,cAAc,EAAE,2CAA2C;AAC3D,gBAAA,OAAO,EAAE,qBAAqB;AAC9B,gBAAA,aAAa,EAAE,+BAA+B;AAC9C,gBAAA,aAAa,EAAE,eAAe;AAC9B,gBAAA,YAAY,EAAC,6BAA6B;AAC1C,gBAAA,UAAU,EAAE,8BAA8B;AAC1C,gBAAA,eAAe,EAAE,8BAA8B;AAC/C,gBAAA,cAAc,EAAE,+BAA+B;AAC/C,gBAAA,cAAc,EAAE,6CAA6C;AAC7D,gBAAA,kBAAkB,EAAE,iCAAiC;AACrD,gBAAA,mBAAmB,EAAE,4CAA4C;AACjE,gBAAA,aAAa,EAAE,oCAAoC;AACnD,gBAAA,SAAS,EAAC,qCAAqC;AAC/C,gBAAA,MAAM,EAAE,yBAAyB;AACjC,gBAAA,aAAa,EAAE,8BAA8B;AAC7C,gBAAA,gBAAgB,EAAE,+CAA+C;AACjE,gBAAA,UAAU,EAAE,kCAAkC;AAC9C,gBAAA,cAAc,EAAE,qCAAqC;AACrD,gBAAA,aAAa,EAAE,qCAAqC;AACpD,gBAAA,cAAc,EAAE,gCAAgC;AAChD,gBAAA,OAAO,EAAC,4BAA4B;AACpC,gBAAA,eAAe,EAAC,QAAQ;AACxB,gBAAA,aAAa,EAAE,8CAA8C;AAC7D,gBAAA,WAAW,EAAE,8BAA8B;AAC3C,gBAAA,kBAAkB,EAAE,sCAAsC;AAC3D,aAAA;AACF,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,QAAQ,EAAE;AACR,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,MAAM,EAAC,iCAAiC;AACxC,gBAAA,SAAS,EAAC,+BAA+B;AACzC,gBAAA,cAAc,EAAC,8BAA8B;AAC7C,gBAAA,SAAS,EAAE,wBAAwB;AACnC,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,MAAM,EAAE,qBAAqB;AAC7B,gBAAA,kBAAkB,EAAE,0BAA0B;AAC9C,gBAAA,cAAc,EAAE,oBAAoB;AACpC,gBAAA,OAAO,EAAC,4BAA4B;AACrC,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,SAAS,EAAE,6BAA6B;AACxC,gBAAA,MAAM,EAAC,wCAAwC;AAC/C,gBAAA,SAAS,EAAC,sCAAsC;AAChD,gBAAA,cAAc,EAAC,qCAAqC;AACpD,gBAAA,SAAS,EAAE,wCAAwC;AACnD,gBAAA,WAAW,EAAE,2CAA2C;AACxD,gBAAA,MAAM,EAAE,sCAAsC;AAC9C,gBAAA,cAAc,EAAE,6CAA6C;AAC7D,gBAAA,kBAAkB,EAAE,iCAAiC;AACrD,gBAAA,OAAO,EAAC,4BAA4B;AACrC,aAAA;AACJ,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,UAAU,EAAE,eAAe;AAC5B,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,QAAQ,EAAE;AACR,gBAAA,SAAS,EAAE,wBAAwB;AACnC,gBAAA,WAAW,EAAE,0BAA0B;AACvC,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,WAAW,EAAE,uBAAuB;AACpC,gBAAA,MAAM,EAAE,qBAAqB;AAC7B,gBAAA,OAAO,EAAE,oBAAoB;AAC9B,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,EAAE,EAAE;AACP,KAAA;CACF,CAAA;SAEe,SAAS,GAAA;AACvB,IAAA,OAAO,MAAM,CAAC;AAChB;;MClNa,aAAa,CAAA;AAExB,IAAA,WAAA,GAAA;QAEO,IAAM,CAAA,MAAA,GAAQ,SAAS,EAAE,CAAC;KAFhB;;0GAFN,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACOK,MAAO,aAAc,SAAQ,iBAAiB,CAAA;AAGlD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;QAIpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,YAAY,CAAC,MAAsB,EAAA;AACjC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;AAClD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,UAAU,CAAC,MAAoB,EAAA;AAC7B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;AACjD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,aAAa,CAAC,MAAoB,EAAA;AAChC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;AACvD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAAoB,EAAA;AACpC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAC3D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAE,gBAAuC,EAAA;AAC1D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;AAC1D,QAAA,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,eAAe,CAAC,MAAyB,EAAA;AACvC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;AAC1D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,sBAAsB,CAAC,MAAyB,EAAA;AAC9C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,MAA6B,EAAA;AAC/C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,CAAC;AAC7D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,2BAA2B,CAAC,MAA6B,EAAA;AACvD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,MAAyB,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAC/D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAAc,EAAA;QAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,GAAG,MAAM,CAAC;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,kCAAkC,CAAE,gBAAuC,EAAA;AACzE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gDAAgD,CAAC;AACrF,QAAA,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mCAAmC,CAAE,MAAwC,EAAA;AAC3E,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2CAA2C,CAAC;AAChF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAE,MAAkC,EAAA;AACzD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAE,MAAe,EAAA;AACxC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0BAA0B,CAAE,MAAe,EAAA;AACzC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,6BAA6B,CAAE,MAAyB,EAAA;AACtD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,UAAU,CAAC,MAA0B,EAAA;AACnC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;AAClD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAA0B,EAAA;AAC1C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAC3D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAA2B,EAAA;AAC3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0BAA0B,CAAC,MAAqC,EAAA;AAC9D,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AACpE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAA2B,EAAA;AAC3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,gBAAgB,CAAC,MAA0B,EAAA;AACzC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAA2B,EAAA;AAC3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,6BAA6B,CAAC,MAAuC,EAAA;AACnE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,wBAAwB,CAAC,MAAkC,EAAA;AACzD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,6BAA6B,CAAC,MAA4B,EAAA;AACxD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,+BAA+B,CAAC,MAAyB,EAAA;AACvD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AAC1E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iCAAiC,CAAC,MAAW,EAAA;AAC3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC9E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;0GAnLU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCNY,mBAAmB,CAAA;AAI9B,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;KAEpC;IAEjB,qBAAqB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACxC;AAED,IAAA,oBAAoB,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;KACvC;AAED,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;;gHApBU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADP,MAAM,EAAA,CAAA,CAAA;2FAClB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACa1B,MAAO,uBAAwB,SAAQ,YAAY,CAAA;IAwBvD,WACU,CAAA,EAAe,EACf,aAA4B,EAC5B,WAAwB,EACxB,aAA4B,EAC5B,mBAAwC,EACxC,KAAwB,EAAA;AAEhC,QAAA,KAAK,EAAE,CAAC;QAPA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;AAtBxB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;QAKvD,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;;QAE3B,IAAU,CAAA,UAAA,GAAiB,EAAE,CAAC;QAC9B,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAW,CAAA,WAAA,GAAkB,EAAE,CAAC;QAGhC,IAAa,CAAA,aAAA,GAAS,KAAK,CAAA;;QAE3B,IAAQ,CAAA,QAAA,GAAG,IAAI,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAW3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;KACzC;AAED;;;;;AAKE;AAEF,IAAA,WAAW,CAAC,OAAsB,EAAA;QAEhC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAA;QAC9B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,YAAY;AACvD,aAAA,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;AAE1E,QAAA,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,uBAAuB,CAAE,CAAC,CAAC;;QAG3G,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,oBAAoB,CAAC,EAAE;AAC3D,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoD9B;AAEO,IAAA,iBAAiB,CAAC,OAAsB,EAAA;;AAE9C,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC/E,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO;AACV,SAAA;;AAGD,QAAA,IAAI,OAAO,CAAC,oBAAoB,CAAC,EAAE,YAAY,EAAE;;YAE7C,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC1C,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC;gBAClE,OAAO;AACV,aAAA;;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBACvE,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAClC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,OAAO;AACR,aAAA;;AAGD,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC7D,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,OAAO;AACR,aAAA;AACJ,SAAA;;QAGD,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;AAES,IAAA,WAAW,CAAC,IAAS,EAAA;AAC3B,QAAA,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AACzD,QAAA,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC5E,QAAA,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAChF,QAAA,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACxE,QAAA,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QACxF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAClC,SAAA;aAAM,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YACtD,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;KACF;IAED,sBAAsB,GAAA;QACpB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACxG,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChG,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5F,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KACjG;IAED,yBAAyB,GAAA;AAEvB,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAC/K,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACjJ,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACvJ,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACvJ,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAC7I,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;KAClK;IACD,0BAA0B,GAAA;AACxB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACzL,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAC3J,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AACjK,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AACjK,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,GAAG,IAAI,CAAC,sBAAsB,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AACzI,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;QACvK,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,iBAAiB,GAAuB,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7E,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACnG,SAAC,CAAC,CAAC;KACJ;IAGD,aAAa,GAAA;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC;KAClD;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAClC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,qBAAqB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClD,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC1C,YAAA,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;YAC3B,eAAe,EAAE,CAAC,EAAE,CAAC;AAEtB,SAAA,CAAC,CAAC;KACJ;IAED,uBAAuB,GAAA;AACrB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;AACzE,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AACvC,SAAA;AAED,QAAA,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC;AAClG,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;AACnF,QAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC;AAEvF,QAAA,IAAI,mBAAmB,IAAI,YAAY,IAAI,cAAc,EAAE;YACzD,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;AACpC,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO;YAAE,OAAO;;AAGxC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC9B;IAED,SAAS,GAAA;;;AAGP,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAChE;;AAGD,IAAA,kBAAkB,CAAC,aAAqB,EAAA;QACtC,IAAI,aAAa,KAAK,MAAM,EAAE;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;;;;YAIhF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAClD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtE,SAAA;KACF;AAED,IAAA,aAAa,CAAC,IAAY,EAAA;AACxB,QAAA,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACpE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE;AACxD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,KAAI;AACjE,gBAAA,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,CAAC;AAC7C,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,IAAY,EAAA;AAC7B,QAAA,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACpE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE;AACvD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,KAAI;AAClE,gBAAA,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC3C,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACtB,SAAA;KACF;AAED,IAAA,wBAAwB,CAAC,YAAiB,EAAA;QACxC,IAAI,YAAY,KAAK,cAAc,EAAE;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,SAAA;KACF;AAED,IAAA,yBAAyB,CAAC,qBAA0B,EAAA;QAClD,IAAI,qBAAqB,KAAK,wBAAwB,EAAE;;AAEtD,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AACtF,YAAA,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;;AAErE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,SAAA;KACF;AAED,IAAA,WAAW,CAAC,MAAW,EAAA;QACrB,IAAI,MAAM,KAAK,iBAAiB,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9D,SAAA;KACF;AAED,IAAA,sBAAsB,CAAC,gBAAqB,EAAA;QAC1C,IAAI,gBAAgB,KAAK,oBAAoB,EAAE;YAC7C,IAAI,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACrG,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAC9E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9D,SAAA;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACjC,OAAO,CAAC,EACN,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,KAAK;AAChC,YAAA,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,KAAK;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,KAAK,CAC/B,CAAC;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDD,mBAAmB,GAAA;QACjB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;AAC3B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;AAGtB,YAAA,MAAM,aAAa,GAAG;gBACpB,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,KAAK;gBAC9D,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,KAAK;gBAC1D,qBAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,KAAK;gBAC9E,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,KAAK;aAC/D,CAAC;AACF,YAAA,IAAI,wBAAwB,GAA0B;AACpD,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;gBACtC,aAAa,EAAE,aAAa,CAAC,aAAa;gBAC1C,SAAS,EAAE,aAAa,CAAC,qBAAqB;gBAC9C,WAAW,EAAE,aAAa,CAAC,WAAW;aACvC,CAAC;AAEF,YAAA,IAAI,CAAC,aAAa,CAAC,kCAAkC,CAAC,wBAAwB,CAAC;AAC5E,iBAAA,IAAI,CACH,QAAQ,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;AACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC7B,aAAC,CAAC,CACH;AACA,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,QAAQ,KAAI;oBACjB,IAAI,QAAQ,CAAC,IAAI,EAAE;AACjB,wBAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAU,KAAI;AACvD,4BAAA,IAAI,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;4BAChE,IAAI,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;4BACvC,OAAO;gCACL,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,gCAAA,IAAI,EAAE,CAAA,EAAG,MAAM,CAAC,IAAI,CAAU,OAAA,EAAA,MAAM,CAAC,eAAe,EAAE,IAAI,KAAK,YAAY,GAAG,YAAY,GAAG,SAAS,CAAA,WAAA,EAAc,MAAM,CAAC,OAAO,CAAuB,oBAAA,EAAA,MAAM,CAAC,QAAQ,qBAAqB,SAAS,CAAA,cAAA,EAAiB,MAAM,CAAC,kBAAkB,CAAE,CAAA;AAClP,gCAAA,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI;6BACvC,CAAC;AACJ,yBAAC,CAAC,CAAC;AACH,wBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAChC,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,wBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAC7D,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,qBAAA;iBACF;AACD,gBAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,oBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,oBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC5B;AACF,aAAA,CAAC,CAAC;AACN,SAAA;KACF;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;KACpD;;oHAncU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA6B,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,oXCjBpC,q2GAkEA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDjDa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,q2GAAA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,CAAA;4OAMxB,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;AEdH,MAAO,uBAAwB,SAAQ,YAAY,CAAA;AAuBvD,IAAA,WAAA,CACU,EAAe,EAAA;AAEvB,QAAA,KAAK,EAAE,CAAC;QAFA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;AApBf,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;QAOvD,IAAY,CAAA,YAAA,GAAW,2BAA2B,CAAC;QACnD,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAI3B,IAAO,CAAA,OAAA,GAAQ,EAAE,CAAC;;QAIlB,IAAQ,CAAA,QAAA,GAAG,IAAI,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAO5C;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,EAAE;oBACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,iBAAA;AAAI,qBAAA;oBACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC7F,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACpF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9E,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9E,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACrG,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC7F,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAChF;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC/F,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACrG,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;AACjH,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACtF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;AACxG,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;AACvH,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AACzG,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAC3G,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC7G,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACrG,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACxF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;KAC7B;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,IAAG;AACnD,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACtE,gBAAA,IAAI,CAAC,YAAY,GAAG,6CAA6C,CAAC;AACnE,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAClF,gBAAA,IAAI,CAAC,YAAY,GAAG,+CAA+C,CAAC;AACrE,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACzE,gBAAA,IAAI,CAAC,YAAY,GAAG,8CAA8C,CAAC;AACpE,aAAA;iBAAM,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE;AAC/G,gBAAA,IAAI,CAAC,YAAY,GAAG,8BAA8B,CAAC;AACpD,aAAA;iBAAM,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;AACrD,gBAAA,IAAI,CAAC,YAAY,GAAG,+BAA+B,CAAC;AACrD,aAAA;AACK,iBAAA;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,0BAA0B,CAAC;AAChD,aAAA;AACH,SAAC,CAAC,CAAA;KACH;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,iBAAiB,GAAuB,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7E,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACnG,SAAC,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAClC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChD,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACnD,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACxC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACrC,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;AACrD,YAAA,eAAe,EAAE,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACxH,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACjG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,YAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5D,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACpC,kBAAkB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,wBAAwB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACzD,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACpG,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACnG,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;AAC7B,YAAA,SAAS,EAAE,WAAW;AACvB,SAAA,CAAC,CAAC;;QAEH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC;AAC/D,YAAA,IAAI,EAAE,CAAC,MAAM,KAAI;AACf,gBAAA,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,gBAAA,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACvD,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAEnD,gBAAA,IAAI,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE;AACtE,oBAAA,GAAG,EAAE,CAAC;AACP,iBAAA;gBAED,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,oBAAA,IAAI,CAAC,YAAY,GAAG,+BAA+B,CAAA;oBACnD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;AAClD,wBAAA,UAAU,EAAE,IAAI;AACjB,qBAAA,CAAC,CAAA;AACH,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC3D,iBAAA;AAED,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aACnD;AACF,SAAA,CAAC,CAAA;KACH;IAED,aAAa,GAAA;QACX,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACzD,IAAI,CAAC,WAAW,GAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC;QAClD,IAAI,CAAC,SAAS,GAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC;QAClD,IAAI,CAAC,MAAM,GAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;QACtC,IAAI,CAAC,MAAM,GAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;;QAEvC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;;AAEnD,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAW,MAAM;gBAC7D,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,YAAY;AAC1B,aAAA,CAAC,CAAC,CAAC;AACL,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACnB,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;AACvC,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO;YAAE,OAAO;;AAGxC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC9B;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrB;AAED,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;QAE5E,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;AAElD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAI;AACtD,gBAAA,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;sBACjD,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;AAC5B,sBAAE,MAAM,CAAC,KAAK,CAAC;gBACjB,OAAO,YAAY,KAAK,WAAW,CAAC;AACtC,aAAC,CAAC,CAAC;AAEJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AAClB,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;KACjE;AAED,IAAA,aAAa,CAAC,OAAY,EAAA;AACxB,QAAA,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;QACpF,IAAI,OAAO,IAAI,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;AACnD,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,KAAI;AACvD,oBAAA,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;0BAC5C,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;AAC9B,0BAAE,MAAM,CAAC,OAAO,CAAC;oBACnB,OAAO,KAAK,KAAK,aAAa,CAAC;AACjC,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACnE,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AAClB,aAAA;AACF,SAAA;AAAK,aAAA;AACJ,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,SAAA;KACF;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,KAAK,KAAK,uBAAuB,EAAE;AACrC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AAClB,SAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;QAClB,IAAI,IAAI,KAAK,sBAAsB,EAAE;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA;KACF;AAED,IAAA,YAAY,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,KAAK,mBAAmB,EAAE;AAClC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,UAAe,EAAA;QAC/B,IAAI,UAAU,KAAK,YAAY,EAAE;AAC/B,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC/E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzE,SAAA;KACF;AAED,IAAA,YAAY,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,KAAK,QAAQ,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvD,SAAA;KACF;AAED,IAAA,aAAa,CAAC,OAAY,EAAA;QACxB,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3D,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,YAAiB,EAAA;QACjC,IAAI,YAAY,KAAK,cAAc,EAAE;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACrE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,SAAA;KACF;;oHA3SU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApC,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,0PCXpC,wqLAgJA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2B,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDrIa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,wqLAAA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,CAAA;oGAKxB,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;AEJH,MAAO,yBAA0B,SAAQ,YAAY,CAAA;IAmBzD,WACU,CAAA,EAAe,EACf,eAAgC,EAAA;AAExC,QAAA,KAAK,EAAE,CAAC;QAHA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAjBhC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;AACvD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,EAAE,CAAC;QAKvC,IAAY,CAAA,YAAA,GAAW,2BAA2B,CAAC;AACnD,QAAA,IAAA,CAAA,aAAa,GAAU;AACrB,YAAA,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE;AAC5C,YAAA,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE;SAC7C,CAAC;;QAGD,IAAQ,CAAA,QAAA,GAAG,IAAI,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAO7C;;;;;;;;;;AAYD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;AAEtB,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,EAAE;AACnC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC3B,oBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,EAAE;wBACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,qBAAA;AAAI,yBAAA;wBACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC/B,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,IAAG;AACrD,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACvE,gBAAA,IAAI,CAAC,YAAY,GAAG,6CAA6C,CAAC;AACnE,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACnF,gBAAA,IAAI,CAAC,YAAY,GAAG,+CAA+C,CAAC;AACrE,aAAA;AACK,iBAAA;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,0BAA0B,CAAC;AAChD,aAAA;AACH,SAAC,CAAC,CAAA;KACH;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,iBAAiB,GAAuB,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC/E,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACrG,SAAC,CAAC,CAAC;KACJ;IAED,aAAa,GAAA;QACX,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACzD,IAAI,CAAC,WAAW,GAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC;KACnD;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACpC,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAChD,cAAc,EAAE,CAAC,EAAE,EAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7F,gBAAgB,EAAE,CAAC,EAAE,EAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/F,WAAW,EAAE,CAAC,EAAE,EAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE;YACzF,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC7C,uBAAuB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACxD,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClD,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC/C,mBAAmB,EAAE,CAAC,EAAE,EAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE;AACpG,SAAA,CAAC,CAAA;QAEF,IAAI,CAAC,uBAAuB,EAAE,CAAA;KAC/B;IAED,uBAAuB,GAAA;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1D,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;YACzC,IAAI,MAAM,KAAK,GAAG,EAAE;;AAElB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC1F,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACtI,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACxI,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACnI,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC9F,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;AACxF,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;AACrF,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;;gBAG5I,IAAI,CAAC,sBAAsB,EAAE,CAAC;;AAG9B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAClC,aAAA;YACD,IAAI,MAAM,KAAK,GAAG,EAAE;;gBAElB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACxE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACnE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACrE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,eAAe,EAAE,CAAC;gBAChE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,eAAe,EAAE,CAAC;gBAC5E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACtE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACnE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,eAAe,EAAE,CAAC;;gBAGxE,IAAI,CAAC,sBAAsB,EAAE,CAAC;;AAG9B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAClC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;AAChF,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;YACzB,IAAI,MAAM,KAAK,GAAG;AAAE,gBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC3E,IAAI,MAAM,KAAK,GAAG;AAAE,gBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC9E,SAAC,CAAC,CAAC;KACJ;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACrG,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3F,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/F,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC7G,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACjG,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACrG,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;KACnG;IACD,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACjE;IAED,sBAAsB,GAAA;QACpB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC/E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC1E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC5E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACvE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACnF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC7E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC1E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,sBAAsB,EAAE,CAAC;KAChF;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;KAClE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO;YAAE,OAAO;;AAG1G,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC9B;;AAGD,IAAA,kBAAkB,CAAC,YAAiB,EAAA;QAClC,IAAI,YAAY,IAAI,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/D,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,KAAa,EAAA;QAC/B,IAAI,KAAK,KAAK,mBAAmB,EAAE;AACjC,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtE,SAAA;KACF;AAED,IAAA,wBAAwB,CAAC,KAAa,EAAA;QACpC,IAAI,KAAK,KAAK,YAAY,EAAE;AAC1B,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1E,SAAA;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;KAC/B;;sHA7NU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA3B,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAuC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,4PCXtC,6xFAmEA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDxDa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,6xFAAA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,CAAA;+HAK1B,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEAIQ,wBAAsB,CAAA;AAIjC,IAAA,WAAA,GAAA;AAHA,QAAA,IAAA,CAAA,kBAAkB,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9E,IAAU,CAAA,UAAA,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KAEvD;AAEjB,IAAA,eAAe,CAAC,MAA6B,EAAA;QAC3C,IAAI,aAAa,GAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,mBAAmB,EAAE;;AAExB,YAAA,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;AACtE,YAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;AAErE,YAAA,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;gBACzB,IAAI,CAAC,IAAI,CAAC;AACR,oBAAA,KAAK,EAAE,gBAAgB;AACvB,oBAAA,IAAI,EAAE,2DAA2D;AACjE,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;AACF,SAAA;;AAGD,QAAA,IAAI,UAAU,GAAU;YACtB,KAAK;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzB,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,qBAAqB,EAAE,CAAC;AACzB,aAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SAC3B,CAAC;;AAGF,QAAA,IAAI,cAAc,GAAG,mBAAmB,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC1E,QAAA,IAAI,mBAAmB,EAAE;YACvB,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;;YAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,YAAA,IAAI,cAAc,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE;AACtC,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACjC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,KAAK,GAAU;YACjB,KAAK;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzB,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,qBAAqB,EAAE,CAAC;AACzB,aAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;SACnC,CAAC;AAEF,QAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,QAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAE1B,QAAA,OAAO,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE;AAChC,YAAA,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;AAClB,YAAA,IAAI,SAAe,CAAC;AACpB,YAAA,IAAI,mBAAmB,EAAE;;gBAEvB,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;;gBAEjD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtD,gBAAA,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE;AACjC,oBAAA,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5B,iBAAA;AACF,aAAA;AAAM,iBAAA;;gBAEL,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC3D,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,gBAAA,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACvB,aAAA;AAED,YAAA,IAAI,GAAG,GAAU;gBACf,KAAK;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzB,oBAAA,KAAK,EAAE,UAAU;AACjB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,qBAAqB,EAAE,CAAC;AACzB,iBAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChE,gBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;aAC9B,CAAC;AACF,YAAA,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,SAAA;AAED,QAAA,OAAO,aAAa,CAAC;KACtB;IAED,eAAe,CAAC,UAAgB,EAAE,UAAmB,EAAA;QACnD,IAAI,QAAQ,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAI,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AACnC,QAAA,IAAI,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;AAChG,QAAA,IAAI,aAAa,GAAS,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAE7F,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAElF,QAAA,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YACnC,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,eAAe,EAAE,GAAG,WAAW,CAAC,CAAC;AAC9E,SAAA;AAED,QAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7B,QAAA,OAAO,QAAQ,CAAC;KACjB;AAED,IAAA,aAAa,CAAC,UAAgB,EAAA;QAC5B,IAAI,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACtC,QAAA,IAAI,WAAW,GAAG,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC9D,QAAA,IAAI,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;AAC/B,QAAA,IAAI,SAAS,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AACtD,QAAA,OAAO,UAAU,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC;KACvE;;qHAtHUA,wBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtBA,wBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,wBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;2FAEPA,wBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMM,MAAO,wBAAyB,SAAQ,YAAY,CAAA;AA2BxD,IAAA,WAAA,CACU,EAAe,EACf,sBAA8C,EAC9C,eAAgC,EAChC,iBAAoC;;;IAGpC,WAAwB,EAAA;AAEhC,QAAA,KAAK,EAAE,CAAC;QARA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;QAC9C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAGpC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AA9BxB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;AAC7C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;QAGlD,IAA8B,CAAA,8BAAA,GAAY,KAAK,CAAC;QAChD,IAAY,CAAA,YAAA,GAAW,2BAA2B,CAAC;AACnD,QAAA,IAAA,CAAA,cAAc,GAAU;AACtB,YAAA,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;AACjC,YAAA,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;SAC/B,CAAC;QACF,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAS,CAAA,SAAA,GAAgB,EAAE,CAAC;QAC5B,IAAe,CAAA,eAAA,GAAgB,EAAE,CAAC;QAElC,IAAU,CAAA,UAAA,GAAyB,EAAE,CAAC;QACtC,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAC,KAAK,CAAC;;QAEpB,IAAQ,CAAA,QAAA,GAAG,IAAI,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAY5C;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;;;AAGtB,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAE5B,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAC;AAC1D,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,iBAAA;AAAI,qBAAA;AACH,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC5B,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,EAAE;oBACtE,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACnC,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,iBAAA;AAAK,qBAAA;oBACJ,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,iBAAA;;;;;;AAMF,aAAA;AACF,SAAA;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;AACzD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;AACxD,SAAA;KACF;IACD,SAAS,GAAA;;AAEP,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;KAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCD,IAAA,uBAAuB,CAAC,SAAkB,EAAA;AACxC,QAAA,IAAI,iBAAgC,CAAC;AACrC,QAAA,IAAI,SAAS,EAAE;YACb,iBAAiB,GAAG,SAAS,CAAC;AAC/B,SAAA;AAAM,aAAA;YACL,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAA;AACpF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,KAAK,KAAK,GAAG,EAAE;AACjE,YAAA,IAAI,OAAO,GAAgB;AACzB,gBAAA,SAAS,EAAM,MAAM,CAAC,iBAAiB,CAAC;AACxC,gBAAA,cAAc,EAAE,OAAO;aACxB,CAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAa,KAAI;AAC7F,gBAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC/B,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC7E,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;AACzF,aAAC,CAAC,CAAA;AACD,SAAA;AAAK,aAAA;AACJ,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,KAAK,KAAK,GAAG,EAAE;AACjE,gBAAA,IAAI,OAAO,GAAgB;AACzB,oBAAA,SAAS,EAAM,MAAM,CAAC,iBAAiB,CAAC;AACxC,oBAAA,cAAc,EAAE,OAAO;iBACxB,CAAA;AACD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAa,KAAI;AAC7F,oBAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC/B,oBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9E,oBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;AACvF,oBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACtF,iBAAC,CAAC,CAAA;AACH,aAAA;AACJ,SAAA;KACF;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,IAAG;AACpD,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChE,gBAAA,IAAI,CAAC,YAAY,GAAG,0CAA0C,CAAC;AAChE,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvE,gBAAA,IAAI,CAAC,YAAY,GAAG,iDAAiD,CAAC;AACvE,aAAA;AACK,iBAAA;AACJ,gBAAA,IAAI,CAAC,YAAY,GAAG,0BAA0B,CAAC;AAChD,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AAED,IAAA,wBAAwB,CAAC,iBAAsB,EAAE,IAAY,EAAE,MAAc,EAAA;AAC3E,QAAA,IAAI,OAAO,GAAgB;AACzB,YAAA,SAAS,EAAM,MAAM,CAAC,iBAAiB,CAAC;AACxC,YAAA,cAAc,EAAE,IAAI;SACrB,CAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAa,KAAI;AAC7F,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;AACjC,SAAC,CAAC,CAAA;KACH;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AACnC,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrE,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC3C,YAAA,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnE,YAAA,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACxC,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEpE,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IAGD,wBAAwB,GAAA;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC3D,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;;YAEzC,IAAI,MAAM,KAAK,GAAG,EAAE;;AAElB,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnF,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAElF,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAClC,aAAA;;YAGD,IAAI,MAAM,KAAK,GAAG,EAAE;AAClB,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,eAAe,EAAE,CAAC;AAC/D,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAElF,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAClC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;AAClF,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;YACzB,IAAI,MAAM,KAAK,GAAG;AAAE,gBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC3E,IAAI,MAAM,KAAK,GAAG,EAAE;AAClB,gBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;AAAE,oBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9F,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,sBAAsB,GAAA;QACpB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACxE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACtE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;KACvE;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,iBAAiB,GAAuB,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9E,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACpG,SAAC,CAAC,CAAC;KACJ;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC;AAC3C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QACvE,IAAI,CAAC,WAAW,KAAK,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;YAC5D,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,IAAI,EAAE,kEAAkE;AACxE,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC,CAAA;YACF,OAAO;AACR,SAAA;;AAGD,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;;;;;;;;AASxB,QAAA,IAAI,MAAM,GAA0B;AAClC,YAAA,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;AACnE,YAAA,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;AACvE,YAAA,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;YACrE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK;AAC9D,YAAA,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AACzE,YAAA,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;SAC9E,CAAA;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC7C;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;AAC5C,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;AACxC,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO;YAAE,OAAO;;AAEzC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC9B;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;KACnE;;AAGD,IAAA,mBAAmB,CAAC,aAAkB,EAAA;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,IAAI,aAAa,KAAK,EAAE,EAAE;AACxB,YAAA,MAAM,OAAO,GAAuB;AAClC,gBAAA,KAAK,EAAa,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACjD,gBAAA,WAAW,EAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAC/E,gBAAA,SAAS,EAAS,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;AACzF,gBAAA,eAAe,EAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACnF,gBAAA,cAAc,EAAI,QAAQ,CAAC,aAAa,CAAC;aAC1C,CAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAG;AACpE,gBAAA,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;AACzB,oBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;AAClF,oBAAA,MAAM,aAAa,GAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;;oBAEvF,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACxD,oBAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAA;AAC9B,oBAAA,IAAI,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;;wBAE3C,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBACzC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC5D,wBAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,GAAG,UAAU,CAAC;AAE3D,wBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC9C,4BAAA,OAAO,IAAI,CAAC,UAAU,IAAI,YAAY,CAAA;AAC1C,yBAAC,CAAC,CAAC;AACJ,qBAAA;AACD,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,iBAAA;AAAK,qBAAA;AACJ,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,KAAK,EACH,6FAA6F;AAC/F,wBAAA,iBAAiB,EAAE,KAAK;AACxB,wBAAA,KAAK,EAAE,IAAI;AACZ,qBAAA,CAAC,CAAC;oBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,iBAAA;AACH,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;;AAEzE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,SAAA;KACF;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;QACzB,IAAI,MAAM,KAAK,kBAAkB,EAAE;YACjC,MAAM,QAAQ,GAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClG,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AACrF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/D,SAAA;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACvC;AAED,IAAA,YAAY,CAAC,WAAgB,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC/E,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;AAAM,aAAA,IAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,EAAC;AAC/D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC/E,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC7D;IAED,2BAA2B,GAAA;QACzB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAE,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAElJ,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AAC1H,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAChI,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AACtI,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC5F,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9H,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAE,CAAC,CAAC,CAAC;AAChI,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;YAClJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;AAAM,aAAA,IAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,EAAC;AAC/D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AAC3H,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AACpI,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC5F,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,GAAI,CAAC,CAAC,CAAC;AAC5F,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAClI,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,GAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAChJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;;;;;;;;KASF;;qHAraU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAzC,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA0C,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,yRC1BrC,+5KAsIA,EAAA,MAAA,EAAA,CAAA,uHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiD,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD5Ga,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,+5KAAA,EAAA,MAAA,EAAA,CAAA,uHAAA,CAAA,EAAA,CAAA;uNAKzB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;MEnBI,sBAAsB,CAAA;AASjC,IAAA,WAAA,CACU,EAAe,EACf,WAAwB,EACxB,WAAwB,EAAA;QAFxB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAXzB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;QAG/C,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAE5B,IAAO,CAAA,OAAA,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KAMnC;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAClC,UAAU,EAAE,CAAC,EAAE,EAAC,CAAC,UAAU,CAAC,QAAQ,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE;AACzF,SAAA,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChE,QAAA,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;;AAEnD,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAU,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,IAAI,CAAC,KAAU,EAAE,IAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC3B,QAAA,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACnB;AAED,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,IAAI,OAAO,GAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACtC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;SAC7B,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACjE,gBAAA,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;AACzB,oBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,IAAI,EAAE,+CAA+C;AACrD,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,oBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC/B,iBAAA;AACH,aAAC,CAAC,CAAC;AACN,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE,qDAAqD;AAC3D,gBAAA,IAAI,EAAE,MAAM;AACb,aAAA,CAAC,CAAC;AAEJ,SAAA;KACF;;mHA1EU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjD,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,uICZnC,osGA0EA,EAAA,MAAA,EAAA,CAAA,8wDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3B,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiC,GAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD9Da,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,osGAAA,EAAA,MAAA,EAAA,CAAA,8wDAAA,CAAA,EAAA,CAAA;kJAKrB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AEFH,MAAO,wBAAyB,SAAQ,YAAY,CAAA;AAsBxD,IAAA,WAAA,CACU,EAAe,EAAA;AAEvB,QAAA,KAAK,EAAE,CAAC;QAFA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;AAjBf,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;AAC7C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAU,CAAC;QAK9C,IAAY,CAAA,YAAA,GAAW,2BAA2B,CAAC;QAEnD,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QAErC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;;QAGhC,IAAQ,CAAA,QAAA,GAAG,IAAI,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAM5C;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,IAAG;AACtE,YAAA,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,mBAAmB;AAAE,gBAAA,IAAI,CAAC,YAAY,GAAG,mDAAmD,CAAA;AACxG,SAAC,CAAC,CAAA;;AAEF,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE;AACpE,YAAA,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE;AACpE,YAAA,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE;YACpE,IAAI,CAAC,QAAQ,KAAK,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACxF,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;oBAChE,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,iBAAA;AAAI,qBAAA;oBACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,aAAa,GAAA;QACX,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;QACrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC;KAChE;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnC,iBAAiB,EAAG,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,WAAW,EAAS,CAAC,EAAE,CAAC;YACxB,aAAa,EAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,KAAK,EAAe,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClD,UAAU,EAAU,CAAC,EAAE,CAAC;AACxB,YAAA,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/B,YAAA,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/B,YAAA,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/B,YAAA,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/B,YAAA,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/B,YAAA,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/B,YAAA,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YAC/B,cAAc,EAAM,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,WAAW,EAAS,CAAC,EAAE,CAAC;YACxB,QAAQ,EAAY,CAAC,EAAE,CAAC;YACxB,eAAe,EAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACnD,WAAW,EAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACnD,YAAY,EAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACnD,YAAY,EAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpD,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAG;YACjF,IAAI,MAAM,KAAK,GAAG,EAAE;AAClB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;AACvE,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,eAAe,EAAE,CAAC;gBAC/D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;AACtE,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,aAAA;AACH,SAAC,CAAC,CAAA;KACH;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,iBAAiB,GAAuB,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;;AAGjF,YAAA,IAAI,iBAAiB,CAAC,OAAO,KAAK,OAAO,EAAE;AACzC,gBAAA,IAAI,SAAS,GAAY,iBAAiB,CAAC,KAAK,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAC3E,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;AACtC,aAAA;;AAGD,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9E,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACpG,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,mBAAmB,CAAC,CAAC,OAAO,CAAC,OAAO,IAAG;AAC7F,YAAA,IAAI,iBAAiB,GAAuB,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACjF,YAAA,IAAI,SAAS,GAAY,iBAAiB,CAAC,KAAK,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAC3E,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClE,SAAC,CAAC,CAAA;KACH;IAED,kBAAkB,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAgB,CAAC;KAC9D;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK;YAAE,OAAO;AAC7E,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;AACnE,YAAA,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;AACjE,YAAA,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YACjE,IAAI,CAAC,QAAQ,IAAI,CAAC;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAElG;IAED,YAAY,GAAA;QACV,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAA;KAC7B;;AAGD,IAAA,sBAAsB,CAAC,gBAAqB,EAAA;QAC1C,IAAI,gBAAgB,KAAK,+BAA+B,EAAE;AACxD,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAC/E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,YAAiB,EAAA;QAClC,IAAI,YAAY,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/D,SAAA;KACF;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;AACvH,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;AAC/G,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;AACzG,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;AACjH,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;AAC3G,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAC9I,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AAC7D,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;;YAE3B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAChH,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;YACzG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;YAClH,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5G,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9D,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC3E;IACD,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC1D;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;KAC9B;AAED,IAAA,YAAY,CAAC,IAAS,EAAA;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3E,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;;qHAzNU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA5B,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,iUCZrC,02JAkJA,EAAA,MAAA,EAAA,CAAA,8gBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3B,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsB,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDtIa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,02JAAA,EAAA,MAAA,EAAA,CAAA,8gBAAA,CAAA,EAAA,CAAA;oGAKzB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MEHI,gBAAgB,CAAA;IA0B3B,WACU,CAAA,WAAwB,EACxB,eAAuC,EACvC,eAAgC,EAChC,iBAAoC,EACpC,gBAAkC,EAAA;QAJlC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAwB;QACvC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAtBlC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;AAG7C,QAAA,IAAA,CAAA,YAAY,GAAa;AAC/B,YAAA,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SACtC,CAAC;QAEK,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAS,CAAA,SAAA,GAAW,kCAAkC,CAAC;QAEvD,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QAEtB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAC3B,IAAuB,CAAA,uBAAA,GAAwB,IAAI,CAAC;QAUzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,sBAAsB,EAAE;YACrD,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE;oBACpD,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,gBAAgB;AACvB,wBAAA,IAAI,EAAE,wCAAwC;AAC9C,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA,CAAC,CAAA;AACH,iBAAA;AACD,gBAAA,IAAI,CAAC,SAAS,GAAG,+DAA+D,CAAC;AAClF,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,cAAc,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE;AACxF,gBAAA,IAAI,CAAC,SAAS,GAAG,kCAAkC,CAAC;AACrD,aAAA;AAAK,iBAAA,IAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,EAAC;AACnF,gBAAA,IAAI,CAAC,SAAS,GAAG,uCAAuC,CAAC;AAC1D,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACjC,SAAA;KACF;IAED,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClD;IAED,YAAY,GAAA;;KAEX;AAGD,IAAA,iBAAiB,CAAC,IAAW,EAAA;AAC3B,QAAA,IAAI,IAAI,EAAE;YACR,MAAM,KAAK,GAAa,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAG;AACf,gBAAA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,gBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC5B,SAAA;KACF;AAED,IAAA,aAAa,CAAC,MAAc,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,YAAY,IAAG,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAC,EAAE,CAAC;AACvB,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAK,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,GAAG,EAAE;gBAC5F,IAAI,CAAC,IAAI,CAAC;AACR,oBAAA,KAAK,EAAE,gBAAgB;AACvB,oBAAA,IAAI,EAAE,kDAAkD;AACxD,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC,CAAA;gBACF,OAAO;AACR,aAAA;AACF,SAAA;QACD,MAAM,SAAS,GAAU,EAAE,CAAC;AAE5B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC/E,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,cAAc,GAAc,QAAQ,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;AAC5C,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,IAAG;AAC/B,oBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;;oBAEjE,IAAI,KAAK,KAAK,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,mBAAmB,EAAE;wBACpE,SAAS,CAAC,IAAI,CAAC;4BACb,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,UAAU,EAAE,OAAO,CAAC,QAAQ;AAC5B,4BAAA,KAAK,EAAE,GAAG;4BACV,WAAW,EAAE,OAAO,CAAC,WAAW;AACjC,yBAAA,CAAC,CAAA;AACH,qBAAA;yBAAM,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,WAAW,KAAK,mBAAmB,EAAE;wBAC1E,SAAS,CAAC,IAAI,CAAC;4BACb,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,UAAU,EAAE,OAAO,CAAC,QAAQ;AAC5B,4BAAA,KAAK,EAAE,GAAG;4BACV,WAAW,EAAE,OAAO,CAAC,WAAW;AACjC,yBAAA,CAAC,CAAA;AACH,qBAAA;AAAM,yBAAA;wBACL,SAAS,CAAC,IAAI,CAAC;4BACb,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,UAAU,EAAE,OAAO,CAAC,QAAQ;4BAC5B,KAAK;4BACL,WAAW,EAAE,OAAO,CAAC,WAAW;AACjC,yBAAA,CAAC,CAAA;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;AACR,aAAA;;AAGD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE;oBACxC,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,kCAAkC;AACzC,wBAAA,IAAI,EAAE,CAAA,mBAAA,EAAsB,OAAO,CAAC,WAAW,CAAG,CAAA,CAAA;AAClD,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA,CAAC,CAAC;oBACH,MAAM;AACP,iBAAA;AACF,aAAA;YAED,IAAI,MAAM,KAAK,QAAQ;AAAE,gBAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,MAAM,KAAK,QAAQ;AAAE,gBAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACrD,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACjC;AAED,IAAA,SAAS,CAAC,SAAgB,EAAA;QACxB,IAAI,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;YACxE,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,iCAAiC,CAAA;QACtD,IAAI,OAAO,GAAiB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClD,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;AAC/B,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,IAAI,EAAE,sCAAsC;AAC5C,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA,CAAC,CAAA;AACF,oBAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACjC,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,iBAAA;AAAM,qBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;AACtC,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,MAAM,aAAa,GAAI,QAAQ,CAAC,IAAI,CAAC,MAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAEtG,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,uCAAuC;wBAC9C,IAAI,EAAE,CAAG,EAAA,aAAa,CAAE,CAAA;AACxB,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBAExB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;AAC9B,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA,CAAC,CAAA;AACH,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC;AACR,oBAAA,KAAK,EAAE,uBAAuB;oBAC9B,IAAI,EAAE,GAAG,CAAC,OAAO;AACjB,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC,CAAA;aACH;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;aACrC;AACF,SAAA,CAAC,CAAA;KAEH;AAED,IAAA,SAAS,CAAC,SAAgB,EAAA;QACxB,IAAI,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;YACxE,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,gCAAgC,CAAA;QACrD,IAAI,OAAO,GAAgB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAClD,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;AAC/B,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,IAAI,EAAE,qCAAqC;AAC3C,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA,CAAC,CAAA;AACF,oBAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACjC,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,iBAAA;AAAK,qBAAA,IAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAC;AACnC,oBAAA,IAAI,SAAS,GAAG,CAAA;;;WAGf,CAAC;oBACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;wBACtC,SAAS,IAAI,sCAAsC,CAAC;AACvD,qBAAA;oBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;wBACvC,SAAS,IAAI,+CAA+C,CAAC;AAChE,qBAAA;oBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;wBAC7C,SAAS,IAAI,+BAA+B,CAAC;AAChD,qBAAA;oBACH,SAAS,IAAI,QAAQ,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,IAAI,EAAE,OAAO;;AAEb,wBAAA,iBAAiB,EAAE,WAAW;;AAE/B,qBAAA,CAAC,CAAA;AACF,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,iBAAA;AAAM,qBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;AACtC,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBACxB,MAAM,aAAa,GAAI,QAAQ,CAAC,IAAI,CAAC,MAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAEtG,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,uCAAuC;wBAC9C,IAAI,EAAE,CAAG,EAAA,aAAa,CAAE,CAAA;AACxB,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;oBAExB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;AAC9B,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA,CAAC,CAAA;AACH,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC;AACR,oBAAA,KAAK,EAAE,uBAAuB;oBAC9B,IAAI,EAAE,GAAG,CAAC,OAAO;AACjB,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC,CAAA;aACH;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;aACrC;AACF,SAAA,CAAC,CAAA;KAEH;AAED,IAAA,YAAY,CAAC,IAAW,EAAA;AACtB,QAAA,IAAI,OAAO,GAAgB;AACzB,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACtC,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3E,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrF,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACnE,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAA,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACnG,YAAA,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3F,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC/D,YAAA,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrE,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3D,YAAA,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3F,YAAA,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACjF,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACnE,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3E,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACnF,YAAA,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzF,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC/E,YAAA,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACjG,YAAA,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzF,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrF,YAAA,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACtF,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACxE,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3E,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACjF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvE,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC/E,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrF,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrF,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7F,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC/E,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;YAC3E,aAAa,EAAE,IAAI,CAAC,aAAc;AAClC,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvE,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7D,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzD,YAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACjE,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7D,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;SAC1E,CAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,YAAY,CAAC,IAAW,EAAA;AACtB,QAAA,IAAI,OAAO,GAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACtC,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3E,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrF,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACnE,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAA,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACnG,YAAA,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3F,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC/D,YAAA,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrE,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3D,YAAA,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3F,YAAA,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACjF,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3E,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACnF,YAAA,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzF,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC/E,YAAA,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACjG,YAAA,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzF,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrF,YAAA,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACtF,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACxE,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3E,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACjF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvE,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC/E,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrF,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvF,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrF,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7F,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC/E,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;YAC3E,aAAa,EAAE,IAAI,CAAC,aAAc;AAClC,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzE,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACvE,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7D,YAAA,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACzD,YAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACjE,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7D,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;YAC7E,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3F,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;SACpE,CAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,UAAU,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,WAAW,CAAC;KAChD;IAED,aAAa,GAAA;QACX,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACrE,YAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;AACrC,SAAC,CAAC,CAAC;KACJ;;6GAnaU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,0UChB7B,i/FAmCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDnBa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,i/FAAA,EAAA,CAAA;qNAMf,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MEkCI,SAAS,CAAA;;sGAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAT,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,iBAblB,gBAAgB;QAChB,4BAA4B;QAC5B,uBAAuB;QACvB,uBAAuB;QACvB,yBAAyB;QACzB,wBAAwB;QACxB,wBAAwB;AACxB,QAAA,sBAAsB,aA3BtB,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,WAAW;QACX,YAAY;QACZ,mBAAmB;AACnB,QAAA,eAAe,aAGf,gBAAgB;QAChB,4BAA4B;QAC5B,uBAAuB;QACvB,uBAAuB;QACvB,yBAAyB;QACzB,wBAAwB;QACxB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAgBf,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,EAJT,SAAA,EAAA;QACT,cAAc;AACf,KAAA,EAAA,OAAA,EAAA,CA/BC,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,WAAW;QACX,YAAY;QACZ,mBAAmB;QACnB,eAAe,CAAA,EAAA,CAAA,CAAA;2FAyBN,SAAS,EAAA,UAAA,EAAA,CAAA;kBAnCrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,gBAAgB;wBAChB,iBAAiB;wBACjB,mBAAmB;wBACnB,WAAW;wBACX,YAAY;wBACZ,mBAAmB;wBACnB,eAAe;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;wBAChB,4BAA4B;wBAC5B,uBAAuB;wBACvB,uBAAuB;wBACvB,yBAAyB;wBACzB,wBAAwB;wBACxB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,4BAA4B;wBAC5B,uBAAuB;wBACvB,uBAAuB;wBACvB,yBAAyB;wBACzB,wBAAwB;wBACxB,wBAAwB;wBACxB,sBAAsB;AACvB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,cAAc;AACf,qBAAA;AACF,iBAAA,CAAA;;;MCvDY,aAAa,CAAA;AACxB,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAAI;IAEtC,WAAW,CAAE,KAA6B,EAAE,KAA0B,EAAA;QACpE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC;KACb;;0GANU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA3D,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8GAAb,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;;MCGE,aAAa,CAAA;AAExB,IAAA,WAAA,GAAA;AAEA,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAO,CAAC;KAFhB;;0GAFN,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACwBK,MAAO,WAAY,SAAQ,iBAAiB,CAAA;AAGhD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAIhC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;;AAGD,IAAA,UAAU,CAAC,IAAU,EAAA;AACnB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAChD,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;AAGD,IAAA,WAAW,CAAC,MAAqB,EAAA;AAC/B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;AACpD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,UAAU,CAAC,MAAoB,EAAA;AAC7B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;AAClD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,gBAAgB,CAAC,MAA0B,EAAA;AACzC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC;AACzD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,QAAQ,CAAC,MAAkB,EAAA;AACzB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAChD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,aAAa,CAAC,IAAY,EAAA;QACxB,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,GAAG,IAAI,CAAC;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;;AAGD,IAAA,oBAAoB,CAAC,MAA8B,EAAA;AACjD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,aAAa,CAAC,MAAuB,EAAA;AACnC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;AACnD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,cAAc,CAAC,MAAwB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;AACxD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,aAAa,CAAC,MAAuB,EAAA;AACnC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC;AACrD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,kBAAkB,CAAC,MAA4B,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC;AACzD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,MAA4B,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAC3D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,iBAAiB,CAAC,IAAY,EAAA;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,GAAG,IAAI,CAAC;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;;AAGD,IAAA,cAAc,CAAC,MAAwB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;AACpD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,cAAc,CAAC,MAAwB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;AACtD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,sBAAsB,CAAC,MAAgC,EAAA;AACrD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,MAA+B,EAAA;AACnD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAC/D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;AAGD,IAAA,YAAY,CAAC,MAAsB,EAAA;AACjC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;AAClD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,YAAY,CAAC,MAAsB,EAAA;AACjC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;AACpD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,oBAAoB,CAAC,IAAY,EAAA;QAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,GAAG,IAAI,CAAC;AACtE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,mBAAmB,CAAC,MAA6B,EAAA;AAC/C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;;wGAtIU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACjBK,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;AAIrD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,iBAAiB,CAAC;QAItC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,2BAA2B,CAAC,IAAmC,EAAA;AAC7D,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,sBAAsB,CAAC,WAAmB,EAAA;QACxC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,GAAG,WAAW,CAAC;QAC7F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,kBAAkB,CAAC,MAA4B,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,SAAwC,EAAA;AACxD,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IAED,aAAa,GAAA;AACX,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC7E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;IACD,2BAA2B,GAAA;AACzB,QAAA,IAAI,UAAU,GAAI,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;;6GAjDU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAHf,MAAM,EAAA,CAAA,CAAA;2FAGP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACKK,MAAO,aAAc,SAAQ,iBAAiB,CAAA;AAIlD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,aAAa,CAAC;QAIlC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,cAAc,CAAC,IAAsB,EAAA;AACnC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AACD,IAAA,cAAc,CAAC,MAAkB,EAAA;AAC/B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,cAAc,CAAC,MAAwB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,wBAAwB,CAAC,WAAmB,EAAA;QAC1C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,GAAG,WAAW,CAAC;QACrF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,wBAAwB,CAAC,UAAkB,EAAA;QACzC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,GAAG,UAAU,CAAC;QACjF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,eAAe,CAAC,MAAsB,EAAA;AACpC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,MAAsB,EAAA;AACxC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qCAAqC,CAAC;AAC1E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,oBAAoB,CAAC,WAAmB,EAAA;QACtC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAI,oCAAoC,GAAG,WAAW,CAAC;QACxF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,uBAAuB,CAAC,WAAmB,EAAA;QACzC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAI,uCAAuC,GAAG,WAAW,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,yBAAyB,CAAC,SAAiB,EAAA;QACzC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yCAAyC,GAAG,SAAS,CAAC;QAC1F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAGD,IAAA,qBAAqB,CAAC,MAA4B,EAAA;AAChD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0BAA0B,CAAC,MAA8B,EAAA;AACvD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wCAAwC,CAAC;AAC7E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAE,QAAgB,EAAA;QACnC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,GAAG,QAAQ,CAAC;AAC1E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AACD,IAAA,0BAA0B,CAAE,UAAkB,EAAA;QAC5C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wCAAwC,GAAG,UAAU,CAAC;AAC1F,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AACD,IAAA,oBAAoB,CAAE,UAAkB,EAAA;QACtC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8CAA8C,GAAG,UAAU,CAAC;AAChG,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AACD,IAAA,oBAAoB,CAAE,UAAkB,EAAA;QACtC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8CAA8C,GAAG,UAAU,CAAC;AAChG,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAI,iCAAiC,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,2BAA2B,CAAC,WAAmB,EAAA;QAC7C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,GAAG,WAAW,CAAC;QAC7F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,oCAAoC,CAAC,MAAsC,EAAA;AACzE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4CAA4C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qCAAqC,CAAC,MAAsC,EAAA;AAC1E,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4CAA4C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kDAAkD,CAAC,MAA4C,EAAA;AAC7F,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kDAAkD,CAAC;AACvF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,gCAAgC,CAAC,MAA6C,EAAA;AAC5E,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yCAAyC,CAAC;AAC9E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,6BAA6B,CAAC,MAAwC,EAAA;AACpE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;;;;;AAOD,IAAA,YAAY,CAAC,MAAW,EAAA;AACtB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+CAA+C,CAAC;AACpF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,aAAa,CAAC,MAAwB,EAAA;AACpC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kCAAkC,CAAC,MAAgC,EAAA;AACjE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8CAA8C,CAAC;AACnF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,6BAA6B,CAAC,MAA6C,EAAA;AACzE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,MAA6C,EAAA;AACrE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,MAA8B,EAAA;AAClD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gDAAgD,CAAC;AACrF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAAkC,EAAA;AACxD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,MAAsC,EAAA;AAC1D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,mCAAmC,CAAC,MAAsC,EAAA;AACxE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0BAA0B,CAAE,WAAmB,EAAA;QAC7C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qCAAqC,GAAG,WAAW,CAAC;AACxF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,4BAA4B,CAAE,WAAmB,EAAA;QAC/C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,GAAG,WAAW,CAAC;AAC1F,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,kCAAkC,CAAE,WAAmB,EAAA;QACrD,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,GAAG,WAAW,CAAC;AAC1F,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,mBAAmB,CAAE,WAAmB,EAAA;QACtC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,GAAG,WAAW,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,4BAA4B,CAAE,WAAmB,EAAA;QAC/C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,GAAG,WAAW,CAAC;AAC1F,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,mBAAmB,CAAC,MAA+B,EAAA;AACjD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0BAA0B,CAAC,MAAiC,EAAA;AAC1D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,2BAA2B,CAAC,MAAiC,EAAA;AAC3D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iCAAiC,CAAC,MAAiC,EAAA;AACjE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2CAA2C,CAAC;AAChF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,gCAAgC,CAAC,MAAsC,EAAA;AACrE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qDAAqD,CAAC;AAC1F,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AACD,IAAA,qBAAqB,CAAC,KAAyB,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,sCAAsC,CAAC,KAAyB,EAAA;AAC9D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yCAAyC,CAAC;AAC9E,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,8CAA8C,CAAC,KAAkC,EAAA;AAC/E,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sDAAsD,CAAC;AAC3F,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oCAAoC,CAAC,KAAkC,EAAA;AACrE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2CAA2C,CAAC;AAChF,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,wCAAwC,CAAC,KAAyC,EAAA;AAChF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gDAAgD,CAAC;AACrF,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,YAAY,CAAC,KAA2B,EAAA;AACtC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IACD,WAAW,GAAA;AACT,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AACD,IAAA,iBAAiB,CAAC,KAAqB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;AACD,IAAA,oBAAoB,CAAC,IAAW,EAAA;QAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAE,6BAA6B,GAAG,IAAI,CAAC;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IACD,mBAAmB,GAAA;AACjB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sCAAsC,CAAC;QAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,iBAAiB,CAAC,IAAW,EAAA;QAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAE,+CAA+C,GAAG,IAAI,CAAC;QAC1F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AACD,IAAA,mBAAmB,CAAC,IAAW,EAAA;QAC7B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAE,iDAAiD,GAAG,IAAI,CAAC;QAC5F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AACD,IAAA,kBAAkB,CAAC,IAAW,EAAA;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gDAAgD,GAAG,IAAI,CAAC;QAC5F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AACD,IAAA,wBAAwB,CAAC,KAAuB,EAAA;AAC9C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,KAAwB,EAAA;AACzC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4CAA4C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,oDAAoD,CAAC,KAAkC,EAAA;AACrF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yDAAyD,CAAC;AAC9F,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,wBAAwB,CAAC,KAAyB,EAAA;AAChD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yCAAyC,CAAC;AAC9E,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,MAA0B,EAAA;AAClD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4CAA4C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iCAAiC,CAAC,MAA4C,EAAA;AAC5E,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,8BAA8B,CAAC,MAA4C,EAAA;AACzE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qCAAqC,CAAC,WAAmB,EAAA;QACvD,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+CAA+C,GAAG,WAAW,CAAC;QAClG,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,yBAAyB,CAAC,MAA2B,EAAA;AACnD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACrE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,KAAmB,EAAA;AACrC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AACpE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,MAAiC,EAAA;AACzD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC;AACpE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,gBAAgB,CAAC,MAAwB,EAAA;AACvC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,4BAA4B,CAAC,MAAsC,EAAA;AACjE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACvD;AAEC,IAAA,eAAe,CAAC,MAAyB,EAAA;AACvC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC;AAC3D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAGD,IAAA,iBAAiB,CAAC,MAAsB,EAAA;AACtC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;;;;;AAQD,IAAA,cAAc,CAAC,MAAyB,EAAA;AACtC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAE9D,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/C,QAAA,QAAQ,CAAC,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9E,QAAA,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,QAAQ,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/D,QAAQ,CAAC,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAGrE,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,YAAA,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,SAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC7C;AACH;;;;;;;;;;;;;;;;;;AAkBQ;AAEJ,IAAA,qBAAqB,CAAC,MAA4B,EAAA;AAChD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACnE,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/C,QAAA,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,YAAA,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3D,SAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC7C;AAED,IAAA,iBAAiB,CAAC,MAA4B,EAAA;AAC5C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;AACjE,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;AAClB,aAAA;SACF,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;AACtC,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,YAAY,EAAE,MAAM;AACrB,SAAA,CAAC,CAAC;KACJ;AAIH,IAAA,cAAc,CAAC,MAAyB,EAAA;AACtC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oBAAoB,CAAC,MAA+B,EAAA;AAClD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,cAAc,CAAC,MAAyB,EAAA;AACtC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,cAAc,CAAC,MAAyB,EAAA;AACtC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAC7D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oCAAoC,CAAC,KAA2B,EAAA;AAC9D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0BAA0B,CAAC,KAA4B,EAAA;AACrD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0BAA0B,CAAC,KAAoC,EAAA;AAC7D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC;AACpE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,KAA6B,EAAA;AAC/C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC5D,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kCAAkC,CAAC,KAA0B,EAAA;AAC3D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wCAAwC,CAAC;AAC7E,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qCAAqC,CAAC,KAAwB,EAAA;AAC5D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4CAA4C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAA4B,EAAA;AAC5C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAC/D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAA4B,EAAA;AAC5C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAC/D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAGD,IAAA,yBAAyB,CAAC,MAAoC,EAAA;AAC5D,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACnF;AAED,IAAA,0BAA0B,CAAC,MAAsC,EAAA;AAC/D,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AACpE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAAkC,EAAA;AACxD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6CAA6C,CAAC;AACpF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAA4B,EAAA;AAC5C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC7E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC3E;AAED,IAAA,gCAAgC,CAAC,MAAwC,EAAA;AACvE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC9E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC3E;AAED,IAAA,uBAAuB,CAAC,MAAkC,EAAA;AACxD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAGD,IAAA,sBAAsB,CAAC,MAAyB,EAAA;AAC9C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;AACjE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,MAAyB,EAAA;AACjD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACrE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,MAAyB,EAAA;AAC1C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAC7D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;0GAxlBU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACFK,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;AAGrD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;QAIpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,uBAAuB,CAAC,MAA2B,EAAA;AACjD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACjE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,6BAA6B,CAAC,MAAqC,EAAA;AACjE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4CAA4C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,wBAAwB,CAAC,MAA+B,EAAA;AACtD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,yBAAyB,CAAC,MAA6B,EAAA;AACrD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,qBAAqB,CAAC,MAA0B,EAAA;AAC9C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;;6GApCU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACDK,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAGpD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;QAIpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,mBAAmB,CAAC,MAAW,EAAA;AAC7B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACrE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,UAAkB,EAAA;QACnC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,GAAG,UAAU,CAAC;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,kBAAkB,CAAC,MAAW,EAAA;AAC5B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAAW,EAAA;AAC3B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAAW,EAAA;AACjC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,oBAAoB,CAAC,MAAW,EAAA;AAC9B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC;AACpE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAAW,EAAA;AACjC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACjE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,UAAkB,EAAA;QAC1C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qCAAqC,GAAG,UAAU,CAAC;QACvF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,mBAAmB,CAAC,MAAW,EAAA;AAC7B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oBAAoB,CAAC,MAAW,EAAA;AAC9B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,MAAW,EAAA;AAC5B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,MAAW,EAAA;AAC5B,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,CAAC;AAC7D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;4GAtFU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACSK,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAGpD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;QAIpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,eAAe,CAAC,MAAyB,EAAA;AACvC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC;AAC1D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,kBAAkB,CAAC,MAA0B,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAC3D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oBAAoB,CAAC,MAA2B,EAAA;AAC9C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,yCAAyC,CAAC;AAC9E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oBAAoB,CAAC,WAAmB,EAAA;QACtC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mCAAmC,GAAG,WAAW,CAAC;QACtF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,wBAAwB,CAAC,MAAmB,EAAA;AAC1C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mBAAmB,CAAC,MAA6B,EAAA;AAC/C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,sBAAsB,CAAC,MAAgC,EAAA;AACrD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qCAAqC,CAAC;AAC1E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,MAA6B,EAAA;AACjD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACzE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAA6B,EAAA;AACnD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAC/D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAA6B,EAAA;AACnD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,eAAe,CAAC,MAAoB,EAAA;AAClC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,wBAAwB,CAAC,MAA+B,EAAA;AACtD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uCAAuC,CAAC,MAAkD,EAAA;AACxF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACrE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,+CAA+C,CAAC,MAA0D,EAAA;AACxG,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,4BAA4B,CAAC,MAAuC,EAAA;AAClE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qCAAqC,CAAC;AAC1E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kCAAkC,CAAC,MAA6C,EAAA;AAC9E,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wCAAwC,CAAC;AAC7E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,mDAAmD,CAAC,MAAuD,EAAA;AACzG,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6DAA6D,CAAC;AAClG,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,wCAAwC,CAAC,MAA6C,EAAA;AACpF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+CAA+C,CAAC;AACpF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,wBAAwB,CAAC,UAAkB,EAAA;QACzC,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,qBAAA,EAAwB,UAAU,CAAA,CAAE,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,UAAU,CAAC,CAAC;KACvC;AAED,IAAA,2CAA2C,CAAC,MAA6C,EAAA;AACvF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mDAAmD,CAAC;AACxF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0CAA0C,CAAC,MAA0D,EAAA;AACnG,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,qDAAqD,CAAC;AAC1F,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,uBAAuB,CAAC,MAA6B,EAAA;AACnD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,8BAA8B,CAAC,MAAmD,EAAA;AAChF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+CAA+C,CAAC;AACpF,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,wBAAwB,CAAC,MAAoC,EAAA;AAC3D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC;AACpE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,WAAmB,EAAA;QACvC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,GAAG,WAAW,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,wDAAwD,CAAC,MAAW,EAAA;AAClE,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0DAA0D,CAAC;AAC/F,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,qBAAqB,CAAC,KAAqB,EAAA;AACzC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AACD,IAAA,yBAAyB,CAAC,KAAmB,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,kBAAkB,CAAC,KAAsB,EAAA;AACvC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,KAAuB,EAAA;AAC/C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wCAAwC,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,2BAA2B,CAAC,YAAoB,EAAA;QAC9C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,GAAG,YAAY,CAAC;QACtF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,2CAA2C,CAAC,KAA0C,EAAA;AACpF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gDAAgD,CAAC;AACvF,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,4CAA4C,CAAC,KAAyC,EAAA;AACpF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wCAAwC,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,mCAAmC,CAAC,KAAuC,EAAA;AACzE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,oBAAoB,CAAC,KAA6B,EAAA;AAChD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACrE,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;4GAjNU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLK,MAAO,iBAAkB,SAAQ,iBAAiB,CAAA;AAGtD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;QAIpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,kBAAkB,CAAC,MAA0B,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,sBAAsB,CAAC;AAC3D,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,qBAAqB,CAAC,MAA+B,EAAA;AACnD,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,cAAc,CAAC,MAAwB,EAAA;AACrC,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,2BAA2B,CAAC;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,4BAA4B,CAAC,MAAsC,EAAA;AACjE,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,oBAAoB,CAAC,UAAkB,EAAA;QACrC,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,kCAAA,EAAqC,UAAU,CAAA,CAAE,CAAC;QACtF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,UAAU,CAAC,CAAC;KACpD;AAED,IAAA,4BAA4B,CAAC,UAAkB,EAAA;QAC7C,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,sCAAA,EAAyC,UAAU,CAAA,CAAE,CAAC;QAC1F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,UAAU,CAAC,CAAC;KACpD;AAED,IAAA,uBAAuB,CAAC,WAAmB,EAAA;QACzC,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,6BAAA,EAAgC,WAAW,CAAA,CAAE,CAAC;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,UAAU,CAAC,CAAC;KACvC;IAED,6BAA6B,CAAC,KAAa,EAAE,QAAgB,EAAA;AAC3D,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,2CAA2C,CAAC;QAChF,IAAI,CAAC,qBAAqB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,yBAAyB,CAAC,MAAgC,EAAA;AACxD,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,gCAAgC,CAAC;AACrE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,gCAAgC,CAAC,MAAgC,EAAA;AAC/D,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,yCAAyC,CAAC;AAC9E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,uBAAuB,CAAC,UAAkB,EAAA;QACxC,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,mCAAA,EAAsC,UAAU,CAAA,CAAE,CAAC;QACvF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,UAAU,CAAC,CAAC;KAC/D;AAED,IAAA,oBAAoB,CAAC,MAAgC,EAAA;AACnD,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,mCAAmC,CAAC,UAAkB,EAAA;QACpD,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,sCAAA,EAAyC,UAAU,CAAA,CAAE,CAAC;QAC1F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,UAAU,CAAC,CAAC;KAC/D;AAED,IAAA,0BAA0B,CAAC,UAAkB,EAAA;QAC3C,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,6BAAA,EAAgC,UAAU,CAAA,CAAE,CAAC;QACjF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,UAAU,CAAC,CAAC;KAC/D;AAED,IAAA,4BAA4B,CAAC,UAAkB,EAAA;QAC7C,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,+BAAA,EAAkC,UAAU,CAAA,CAAE,CAAC;QACnF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,UAAU,CAAC,CAAC;KAC/D;AAED,IAAA,uBAAuB,CAAC,IAAY,EAAA;QAClC,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,4BAAA,EAA+B,IAAI,CAAA,CAAE,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,UAAU,CAAC,CAAC;KAC/D;AAED,IAAA,8BAA8B,CAAC,IAAY,EAAA;QACzC,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,oCAAA,EAAuC,IAAI,CAAA,CAAE,CAAC;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,UAAU,CAAC,CAAC;KAC/D;AAED,IAAA,0BAA0B,CAAC,MAAiC,EAAA;AAC1D,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,sCAAsC,CAAC;AAC3E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,qBAAqB,CAAC,WAAmB,EAAA;QACvC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+CAA+C,GAAG,WAAW,CAAC;QAClG,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;;8GA9GU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACAK,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;AAGvD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,mBAAmB,CAAC;QAIxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,cAAc,CAAC,MAAsB,EAAA;AACnC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAChD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;IAED,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;KAC9C;IAED,qBAAqB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;KAC/C;;+GApBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACAK,MAAO,cAAe,SAAQ,iBAAiB,CAAA;AAGnD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,UAAU,CAAC;QAI/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;IAED,aAAa,GAAA;AACX,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,wBAAwB,CAAC,QAAgB,EAAA;QACvC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,+BAA+B,GAAG,QAAQ,CAAC;QAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;;2GAhBU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACIK,MAAO,aAAc,SAAQ,iBAAiB,CAAA;AAIlD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAH5B,IAAU,CAAA,UAAA,GAAG,kDAAkD,CAAC;QAChE,IAAW,CAAA,WAAA,GAAG,gCAAgC,CAAC;AAIrD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,gBAAgB,CAAC,SAAiB,EAAA;QAChC,IAAI,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,UAAU,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,UAAU,CAAC,CAAC;KACvC;AAED,IAAA,wBAAwB,CAAC,MAA+B,EAAA;AACtD,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,6BAA6B,CAAC,MAA+B,EAAA;AAC3D,QAAA,IAAI,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,mCAAmC,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;;0GAzBU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAHZ,MAAM,EAAA,CAAA,CAAA;2FAGP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCuCY,UAAU,CAAA;;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;wGAAV,UAAU,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAxBV,SAAA,EAAA;QACT,iBAAiB;QACjB,gBAAgB;QAChB,aAAa;QACb,cAAc;QACd,WAAW;QACX,aAAa;QACb,aAAa;QACb,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;QACb,eAAe;QACf,eAAe;QACf,iBAAiB;QACjB,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,aAAa;QACb,aAAa;QACb,UAAU;AACX,KAAA,EAAA,CAAA,CAAA;2FAEU,UAAU,EAAA,UAAA,EAAA,CAAA;kBAzBtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;wBACT,iBAAiB;wBACjB,gBAAgB;wBAChB,aAAa;wBACb,cAAc;wBACd,WAAW;wBACX,aAAa;wBACb,aAAa;wBACb,WAAW;wBACX,WAAW;wBACX,gBAAgB;wBAChB,gBAAgB;wBAChB,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,iBAAiB;wBACjB,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,UAAU;AACX,qBAAA;AACF,iBAAA,CAAA;;;MCpCY,sBAAsB,CAAA;AA8CjC,IAAA,WAAA,GAAA;AA5CO,QAAA,IAAA,CAAA,QAAQ,GAA0B;AACvC,YAAA;gBACE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBAC/E,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACtF,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBACjG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACpF,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE;gBACzD,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oCAAoC,EAAE;gBACxF,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;gBACpD,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;gBACxD,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBACvE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBACrE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBAC/E,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBAC9F,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACxF,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBACtE,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE;AAC3E,aAAA;AACD,YAAA;gBACE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;gBACxE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;gBACrE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBACzE,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBACjF,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE;AACjF,aAAA;AACD,YAAA;gBACE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBAClF,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;gBACtE,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;gBACzE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBAC1E,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE;gBACpF,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;AACrE,aAAA;AACD,YAAA;gBACE,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE;gBACxE,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBAChF,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACtF,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBAC7F,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE;AACxF,aAAA;SACF,CAAC;AAEM,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAwB,EAAE,CAAC,CAAC;QAGjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACtC;;AAGD,IAAA,WAAW,CAAC,IAAY,EAAE,WAAmB,EAAE,QAAa,EAAA;QAC1D,MAAM,QAAQ,GAA0B,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7D,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;AAC/E,QAAA,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE/B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;KAC9B;;mHA7DU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCLY,iCAAiC,CAAA;AAE5C,IAAA,WAAA,GAAA,GAAiB;IAEjB,cAAc,CAAC,IAAY,EAAE,OAAe,EAAA;QAC1C,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC;AAE5E,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,cAAc,CAAC,IAAY,EAAE,OAAe,EAAE,KAAa,EAAA;QACzD,IAAI,IAAI,KAAK,CAAC;YAAE,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,IAAI,KAAK,CAAC;YAAE,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;KAC7E;IAED,SAAS,GAAA;QACP,IAAI,cAAc,GAAG,kCAAkC,CAAC;QACxD,IAAI,WAAW,GAAmB,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACvE,YAAY,CAAC,KAAK,EAAE,CAAC;QAErB,IAAG,WAAW,KAAK,IAAI,EAAE;AACvB,YAAA,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACnD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACxC,SAAA;KACF;;8HA9BU,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjC,iCAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,cAFhC,MAAM,EAAA,CAAA,CAAA;2FAEP,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAH7C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCKqB,mBAAmB,CAAA;AAIvC,IAAA,WAAA,GAAA;AAFO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,iCAAiC,EAAE,CAAC;KAEjD;IAEhB,cAAc,CAAC,IAAY,EAAE,OAAe,EAAA;QAC1C,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACtD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjE,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC3B,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;AAC9B,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,IAAY,EAAE,OAAe,EAAE,KAAU,EAAA;QAC7D,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;KAC3D;AAED,IAAA,iBAAiB,CAAC,IAAY,EAAE,OAAe,EAAE,GAAoB,EAAA;AACnE,QAAA,GAAG,CAAC,SAAS,CAAC,KAAK,IAAG;YACpB,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACnD,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,QAAwB,EAAA;AACxC,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AACzB,YAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;AAEF;;AClBK,MAAO,2BAA4B,SAAQ,mBAAmB,CAAA;IAiClE,WACU,CAAA,EAAe,EACf,gBAAkC,EAClC,cAA8B,EAC9B,WAAwB,EACxB,WAAuB,EAAA;AAE/B,QAAA,KAAK,EAAE,CAAC;QANA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AAlCvB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;AACvC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAO,CAAC;QACnD,IAAQ,CAAA,QAAA,GAAG,IAAI,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEpD,IAAO,CAAA,OAAA,GAAU,EAAE,CAAC;QASpB,IAAM,CAAA,MAAA,GAAS,EAAE,CAAC;QAClB,IAAY,CAAA,YAAA,GAAW,2BAA2B,CAAC;QACnD,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAW,CAAA,WAAA,GAAC,iDAAiD,CAAC;QAC9D,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;AACrC,QAAA,IAAA,CAAA,UAAU,GAAC;AACT,YAAA;AACE,gBAAA,IAAI,EAAC,CAAC;AACN,gBAAA,IAAI,EAAE,cAAc;AACrB,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAC,CAAC;AACN,gBAAA,IAAI,EAAE,0CAA0C;AACjD,aAAA;SACF,CAAC;QAUA,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;KAEtB;AACD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YACtD,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;KACF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACtC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,iBAAiB,EAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC7C,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;AACrD,YAAA,eAAe,EAAE,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACxH,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC1C,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACxC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;AACrC,YAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5D,wBAAwB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACzD,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACpG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClC,qBAAqB,EAAE,CAAC,EAAE,CAAC;AAC5B,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACzE,YAAA,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,EAAE;AAC9B,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChG,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,eAAe,EAAE,CAAC;AAC5E,gBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1E,aAAA;YACD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,sBAAsB,EAAE,CAAC;AACrF,SAAC,CAAC,CAAC;;QAEH,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC;AACnE,YAAA,IAAI,EAAE,CAAC,MAAM,KAAI;AACf,gBAAA,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,gBAAA,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACvD,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAEnD,gBAAA,IAAI,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE;AACtE,oBAAA,GAAG,EAAE,CAAC;AACP,iBAAA;gBACD,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,oBAAA,IAAI,CAAC,YAAY,GAAG,+BAA+B,CAAA;oBACnD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;AACtD,wBAAA,UAAU,EAAE,IAAI;AACjB,qBAAA,CAAC,CAAA;AACH,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/D,iBAAA;AAED,gBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aACvD;AACF,SAAA,CAAC,CAAA;KAEH;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC/D,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC5D,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;AACnC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC1D,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;AACjC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC1D,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC9B,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC1D,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC9B,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAa,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAc,KAAI;AAC1G,YAAA,OAAO,CAAC,OAAO,CAAC,MAAM,IAAG;AACvB,gBAAA,IAAI,UAAU,GAAG;oBACf,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,YAAY;iBAC1B,CAAA;AACD,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC/B,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAChD,GAAG,CAAC,CAAC,QAAa,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAa,KAAI;AAClE,YAAA,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;AACrB,gBAAA,IAAI,WAAW,GAAG;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,KAAK;iBAClB,CAAA;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACjC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACF;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC5F,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAClG,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACxF,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;QACpJ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;QAC/I,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAC3I,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC9E,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAC1G,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;KAEnG;AAED,IAAA,aAAa,CAAC,OAAY,EAAA;QACxB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,KAAK,GAAG;YAAE,GAAG,GAAG,KAAK,CAAC;aAC5B,IAAI,OAAO,KAAK,GAAG;YAAE,GAAG,GAAG,KAAK,CAAC;aACjC,IAAI,OAAO,KAAK,GAAG;YAAE,GAAG,GAAG,KAAK,CAAC;;YACjC,GAAG,GAAG,EAAE,CAAC;QAEd,IAAI,GAAG,IAAI,EAAE,EAAE;AACb,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9D,YAAA,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACnE,gBAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACpE,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5D,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;KAChC;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,KAAK,KAAK,uBAAuB,EAAE;AACrC,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3D,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AAClB,SAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;QAClB,IAAI,IAAI,KAAK,sBAAsB,EAAE;AACnC,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzD,SAAA;KACF;AAED,IAAA,YAAY,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,KAAK,mBAAmB,EAAE;AAClC,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC3E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzE,SAAA;KACF;AACD,IAAA,YAAY,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,KAAK,QAAQ,EAAE;AACvB,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7D,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,SAAA;KACF;AACD,IAAA,iBAAiB,CAAC,UAAe,EAAA;QAC/B,IAAI,UAAU,KAAK,YAAY,EAAE;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7E,SAAA;KACF;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;QAEpB,IAAI,KAAK,KAAK,iBAAiB,EAAE;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,YAAA,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,EAAE;;AAE9B,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACjC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1E,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAClC,SAAA;KACF;AACD,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,IAAI,KAAK,KAAK,UAAU,EAAE;AACxB,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1E,SAAA;KACF;IACD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;AAC3C,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO;YAAE,OAAO;AAC5C,QAAA,MAAM,OAAO,GAAO;AAClB,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YACtC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK;YACpE,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KAAK;YAC9E,oBAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAK;YACpF,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,KAAK;YAC1E,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK;YAC1D,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK;YACtD,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK;YACpD,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK;YACxD,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK;YAC9D,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK;YACtE,wBAAwB,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,KAAK;YAC5F,oBAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAK;YACpF,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK;YACtD,qBAAqB,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,KAAK;SACvF,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAY,KAAG;AAC/D,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACxB;AACD,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrB;AACD,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACnE,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE,SAAC,CAAC,CAAC;KACJ;IACD,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,iBAAiB,GAA0B,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACjF,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACvG,SAAC,CAAC,CAAC;KACJ;IACD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACnI,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACvB,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;;wHAzSU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA2C,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAf,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,6NCtBxC,+tRAyKA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4B,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8D,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,KAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9C,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDnJa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,+tRAAA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA,CAAA;6MAM7B,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;AEPH,MAAO,2BAA4B,SAAQ,mBAAmB,CAAA;AAsClE,IAAA,WAAA,CACU,EAAe,EACf,cAA8B,EAC9B,WAAwB,EACxB,eAAgC,EAAA;AAExC,QAAA,KAAK,EAAE,CAAC;QALA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAxChC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;QAKjD,IAAQ,CAAA,QAAA,GAAG,IAAI,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAGpD,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAW,CAAA,WAAA,GAAU,+CAA+C,CAAC;AACrE,QAAA,IAAA,CAAA,oBAAoB,GAAU;YAC5B,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAG,IAAI,EAAE,YAAY,EAAC;YAC1C,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC;SACvC,CAAC;AACF,QAAA,IAAA,CAAA,SAAS,GAAkB;YACzB,EAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;YACrC,EAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE;YACpC,EAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE;SACrC,CAAC;AACF,QAAA,IAAA,CAAA,mBAAmB,GAAQ;YACzB,EAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAG,IAAI,EAAE,IAAI,EAAC;YACjC,EAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAG,IAAI,EAAE,IAAI,EAAC;SAClC,CAAC;QACF,IAAiB,CAAA,iBAAA,GAAkB,EAAE,CAAC;QACtC,IAAe,CAAA,eAAA,GAAc,EAAE,CAAC;QAChC,IAAgB,CAAA,gBAAA,GAAgB,EAAE,CAAA;QAClC,IAA2B,CAAA,2BAAA,GAAgB,EAAE,CAAC;QAC9C,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAyB,CAAA,yBAAA,GAAG,KAAK,CAAC;QAClC,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QAEjB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QASzB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;KACrB;IAED,QAAQ,GAAA;QAEN,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACtC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,WAAW,EAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvC,YAAA,aAAa,EAAE,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACtH,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC9C,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AAE9C,SAAA,CAAC,CAAC;KACJ;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACxB;IACD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACxB;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,iBAAiB,GAA0B,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACjF,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACvG,SAAC,CAAC,CAAC;KACJ;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;AACpB,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AACjE,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AACrE,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAA;QACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAEhD,QAAA,MAAM,OAAO,GAAQ;AACnB,YAAA,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AAC3C,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,SAAS,EAAE,IAAI,CAAC,iBAAiB;YACjC,qBAAqB,EAAE,IAAI,CAAC,2BAA2B;AACvD,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;SAEvC,CAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,wDAAwD,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAG;AAC3G,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;AAChC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;AAChC,SAAC,CAAC,CAAA;KACH;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACnI,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACvB,SAAA;KACF;AAED,IAAA,eAAe,CAAC,GAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACnC,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAA;AACnC,SAAA;KACF;AAED,IAAA,cAAc,CAAC,GAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAClC,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;AAClC,SAAA;KACF;AACD,IAAA,0BAA0B,CAAC,GAAkB,EAAA;AAC3C,QAAA,IAAI,CAAC,2BAA2B,GAAG,GAAG,CAAA;AACtC,QAAA,IAAI,IAAI,CAAC,2BAA2B,CAAC,MAAM,KAAK,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACvC,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAA;AACvC,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;KACvB;AAED,IAAA,UAAU,CAAC,UAAe,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;AAC/B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,aAAa,GAAA;QACX,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7G,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;;AAE9F,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAClG,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KACtG;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,QAAQ,CAAC,CAAC;KAC/D;;wHAxKU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjB,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA6B,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAkC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,gNCpBxC,otOAqKA,EAAA,MAAA,EAAA,CAAA,wxDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8D,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,KAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9D,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDjJa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,otOAAA,EAAA,MAAA,EAAA,CAAA,wxDAAA,CAAA,EAAA,CAAA;qLAM5B,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAEE,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MEZK,sBAAsB,CAAA;AAIjC,IAAA,WAAA,GAAA;QAFC,IAAU,CAAA,UAAA,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KAExD;AAEjB,IAAA,eAAe,CAAC,MAA6B,EAAA;QAC3C,IAAI,aAAa,GAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,GAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,QAAA,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,IAAI,GAAC,IAAI,GAAC,EAAE,CAAC,CAAC,CAAC;AAElE,QAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;AAErE,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,KAAK,EAAE,gBAAgB;AACvB,gBAAA,IAAI,EAAE,2DAA2D;AACjE,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC,CAAA;AACH,SAAA;AAAM,aAAA;AAEL,YAAA,IAAI,UAAU,GAAU;gBACtB,KAAK;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzB,oBAAA,KAAK,EAAE,UAAU;AACjB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,qBAAqB,EAAE,CAAC;AACzB,iBAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC/D,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;aAC3B,CAAC;AAEF,YAAA,IAAI,KAAK,GAAU;gBACjB,KAAK;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzB,oBAAA,KAAK,EAAE,UAAU;AACjB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,qBAAqB,EAAE,CAAC;AACzB,iBAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAChE,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;aAC3B,CAAC;AACF,YAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAE/B,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAE1B,YAAA,OAAO,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE;AAChC,gBAAA,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;gBAClB,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACzD,gBAAA,IAAI,GAAG,GAAU;oBACf,KAAK;AACL,oBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzB,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,QAAQ,EAAE,KAAK;AACf,wBAAA,qBAAqB,EAAE,CAAC;AACzB,qBAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAChE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACpD,CAAC;AACF,gBAAA,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEvB,gBAAA,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACvB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,aAAa,CAAC;KACtB;IAED,eAAe,CAAC,UAAgB,EAAE,UAAmB,EAAA;QACnD,IAAI,QAAQ,GAAY,EAAE,CAAC;AAE3B,QAAA,IAAI,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAEnC,QAAA,IAAI,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAE,EAAE,CAAC,GAAE,UAAU,CAAC,OAAO,EAAE,CAAC;AAC7F,QAAA,IAAI,aAAa,GAAS,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAE7F,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAElF,QAAA,OAAM,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YAClC,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,WAAW,CAAC,CAAC;AAC3E,SAAA;AAED,QAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7B,QAAA,OAAO,QAAQ,CAAC;KACjB;;;;;;;;;;;;;AAmBD,IAAA,aAAa,CAAC,UAAgB,EAAA;QAC5B,IAAI,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAC,CAAC,CAAC;AACpC,QAAA,IAAI,WAAW,GAAG,KAAK,GAAG,EAAE,GAAG,GAAG,GAAC,KAAK,GAAG,KAAK,CAAC;AACjD,QAAA,OAAO,UAAU,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;KAClF;;mHA1GU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACSK,MAAO,6BAA8B,SAAQ,mBAAmB,CAAA;IAyBpE,WACU,CAAA,EAAe,EACf,cAA8B,EAC9B,iBAAoC,EACpC,WAAwB,EACxB,eAAuC,EACvC,sBAA8C,EAAA;AACtD,QAAA,KAAK,EAAE,CAAC;QANA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAwB;QACvC,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;AA7B9C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;QAElD,IAAQ,CAAA,QAAA,GAAG,IAAI,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpD,IAAW,CAAA,WAAA,GAAU,6BAA6B,CAAC;QACnD,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;AAEzB,QAAA,IAAA,CAAA,cAAc,GAAU;AACtB,YAAA,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;AACjC,YAAA,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;SAC/B,CAAC;QACF,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAE/B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAmB,CAAA,mBAAA,GAAU,EAAE,CAAC;QAChC,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;QAClC,IAAY,CAAA,YAAA,GAAW,2BAA2B,CAAC;QAEnD,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAW5B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AACxC,YAAA,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrE,YAAY,EAAE,CAAC,EAAE,EAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC3C,YAAA,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnE,YAAA,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,WAAW,EAAE,CAAC,IAAI,CAAC;AACpB,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IACD,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AAExE,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,MAAK;AAC3E,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,SAAC,CAAC,CAAC;KACJ;IACD,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,iBAAiB,GAA0B,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACnF,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACzG,SAAC,CAAC,CAAC;KACJ;IAED,wBAAwB,GAAA;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAChE,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;;YAEzC,IAAI,MAAM,KAAK,GAAG,EAAE;;AAElB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzF,gBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxF,gBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvF,gBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAEvF,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAClC,aAAA;;YAGD,IAAI,MAAM,KAAK,GAAG,EAAE;;AAElB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzF,gBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,eAAe,EAAE,CAAC;AACpE,gBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAEvF,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAClC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;AAClF,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;YACzB,IAAI,MAAM,KAAK,GAAG;AAAE,gBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC3E,IAAI,MAAM,KAAK,GAAG,EAAE;AAClB,gBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;AAAE,oBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9F,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IACD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACnI,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACvB,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,aAAkB,EAAA;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,IAAI,aAAa,KAAK,EAAE,EAAE;AACxB,YAAA,MAAM,OAAO,GAAuB;AAClC,gBAAA,KAAK,EAAa,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACjD,gBAAA,WAAW,EAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAC/E,gBAAA,SAAS,EAAS,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;AACzF,gBAAA,eAAe,EAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACnF,gBAAA,cAAc,EAAI,QAAQ,CAAC,aAAa,CAAC;aAC1C,CAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAG;AAClF,gBAAA,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;AACzB,oBAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;AAChC,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,iBAAA;AAAK,qBAAA;AACJ,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,KAAK,EACH,6FAA6F;AAC/F,wBAAA,iBAAiB,EAAE,KAAK;AACxB,wBAAA,KAAK,EAAE,IAAI;AACZ,qBAAA,CAAC,CAAC;oBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,iBAAA;AACH,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC9E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAClE;IACD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACxB;IAED,QAAQ,GAAA;AAEN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACxB;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAC5E,IAAI,CAAC,WAAW,KAAK,MAAM,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;YACjE,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,IAAI,EAAE,kEAAkE;AACxE,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC,CAAA;YACF,OAAO;AACR,SAAA;;AAGD,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAExB,QAAA,IAAI,MAAM,GAA0B;AAClC,YAAA,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;AACxE,YAAA,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;AAC5E,YAAA,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK;SACpE,CAAA;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC/E,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YAEvC,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YAEzI,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9F,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9F,YAAA,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;YAEnE,MAAM,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAExE,YAAA,MAAM,4BAA4B,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAExK,YAAA,MAAM,cAAc,GAAG;AACrB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9B,4BAA4B;AAC5B,gBAAA,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/B,CAAC;AACF,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACpC;IAED,YAAY,CAAC,WAAgB,EAAE,QAAgB,EAAA;AAC7C,QAAA,QAAQ,CAAA;AACR,QAAA,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AAC/D,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5B,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACnF,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACzF,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACtF,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACpF,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;AAAM,aAAA,IAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,EAAC;AACpE,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5B,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACnF,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACvF,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACtF,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACpF,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,SAAA;KACF;IAED,sBAAsB,GAAA;QACpB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC7E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC5E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC3E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,sBAAsB,EAAE,CAAC;KAC5E;;0HA9PU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAmE,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA1C,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA2C,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,gKCrB1C,wzNAiJA,EAAA,MAAA,EAAA,CAAA,0/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1C,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+D,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsB,KAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuE,GAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD5Ha,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,wzNAAA,EAAA,MAAA,EAAA,CAAA,0/BAAA,CAAA,EAAA,CAAA;2PAM9B,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;AEZH,MAAO,4BAA6B,SAAQ,mBAAmB,CAAA;AAuBnE,IAAA,WAAA,CACU,EAAe,EACf,cAA8B,EAC9B,eAAuC,EAAA;AAE/C,QAAA,KAAK,EAAE,CAAC;QAJA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAwB;AAvBvC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;AACvC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAU,CAAC;QAE9C,IAAQ,CAAA,QAAA,GAAG,IAAI,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpD,IAAW,CAAA,WAAA,GAAW,+CAA+C,CAAC;QACtE,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAGzB,IAAyB,CAAA,yBAAA,GAAG,KAAK,CAAC;QAClC,IAAe,CAAA,eAAA,GAAc,EAAE,CAAC;QAChC,IAAyB,CAAA,yBAAA,GAAG,IAAI,CAAC;QACjC,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AACzB,QAAA,IAAA,CAAA,cAAc,GAAU;YACtB,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE;;YAE7C,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;SAC/C,CAAC;AAEF,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,WAAW,EAAE,CAAC;QAQpC,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,mCAAmC,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACvC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5C,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,kBAAkB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7C,YAAA,kBAAkB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACnI,SAAA,CAAC,CAAC;KACJ;IAED,mCAAmC,GAAA;QACjC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAG;AACpD,YAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7C;AAED,IAAA,uBAAuB,CAAC,UAAyB,EAAA;AAC/C,QAAA,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,GAAG,EAAE;AAC3C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AAC3E,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACpF,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACzF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAGhF,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC1E,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACjF,SAAA;AAAM,aAAA;;AAEL,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnE,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtE,SAAA;KACF;IAED,IAAI,GAAA;QACF,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC9D,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,SAAA;aAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpE,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACvC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,SAAA;KACF;IAED,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAClC,YAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACxC,SAAA;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAClC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjB,SAAA;KACF;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,iBAAiB,GAA0B,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAClF,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACxG,SAAC,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACnI,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,GAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;AAClC,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AAEvC,QAAA,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,EAAE;AACxC,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAEhG,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,EAAE;gBAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,aAAA;iBAAM,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,EAAE;gBACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,aAAA;;AAGD,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC5F,YAAA,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;YAClD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAC7D,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,SAAA;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzF,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7F,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3F,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChL,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC7E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACjF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC/E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,sBAAsB,EAAE,CAAC;KAClF;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,eAAe,EAAE,CAAC;QACtE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,eAAe,EAAE,CAAC;QAC1E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,eAAe,EAAE,CAAC;QACxE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,eAAe,EAAE,CAAC;QAC1E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC7E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACjF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAC/E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,sBAAsB,EAAE,CAAC;KAClF;AAED,IAAA,YAAY,CAAC,MAAW,EAAA;QACtB,IAAI,MAAM,KAAK,mBAAmB,EAAE;AAClC,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACxE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtE,SAAA;KACF;IAED,2BAA2B,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,IAAI,KAAK,CAAC,EAAE;AAC3C,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,IAAI,KAAK,CAAC,EAAE;AAClD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,QAAQ,MAAM;AACZ,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,OAAO,CAAC;AACjB,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,OAAO,CAAC;AACjB,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,OAAO,CAAC;AACjB,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC;AACb,SAAA;KACF;AACD,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;AACnF,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;YACzB,IAAI,MAAM,KAAK,CAAC;AAAE,gBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzE,IAAI,MAAM,KAAK,CAAC;AAAE,gBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC5E,SAAC,CAAC,CAAC;KACJ;;yHAlOU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxE,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAwE,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,iLCZzC,izMAkGA,EAAA,MAAA,EAAA,CAAA,2WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/D,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0E,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1E,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,KAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7D,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA8D,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDtFa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,izMAAA,EAAA,MAAA,EAAA,CAAA,2WAAA,CAAA,EAAA,CAAA;qKAM9B,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;;AAkOT;AACA,SAAS,sBAAsB,CAAC,sBAAmC,EAAA;IACjE,OAAO,CAAC,OAAwB,KAAmC;AACjE,QAAA,IAAI,sBAAsB,EAAE,IAAI,KAAK,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,KAAK;AAClF,gBAAA,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE;AACxF,gBAAA,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;AAC1C,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;AACd,KAAC,CAAC;AACJ;;MEvOa,uBAAuB,CAAA;AAwBlC,IAAA,WAAA,CAAoB,WAAwB,EAClC,iBAAoC,EACpC,0BAAiD,EACjD,0BAA4D,EAAA;QAHlD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAClC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAAuB;QACjD,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAAkC;AAtB5D,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;QAE1C,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QAExB,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAC3B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QACtB,IAAuB,CAAA,uBAAA,GAAwB,IAAI,CAAC;QAE3D,IAAgB,CAAA,gBAAA,GAAU,CAAC,CAAC;AAG5B,QAAA,IAAA,CAAA,KAAK,GAAe;YAClB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,GAAG,EAAE;YACpD,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE;YAC/C,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,EAAE;YAChD,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE;SACzD,CAAC;KAKuE;IAEzE,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAEnC;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACjC,SAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAExB,QAAA,MAAM,OAAO,GAAQ;AACnB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;AACjC,YAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YACzC,KAAK,EAAE,IAAI,CAAC,gBAAgB;AAC5B,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;SACvC,CAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAG;AACrF,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAA;KAEH;AACD,IAAA,iBAAiB,CAAC,IAAW,EAAA;AAC3B,QAAA,IAAI,IAAI,EAAE;YACR,MAAM,KAAK,GAAa,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAG;AACf,gBAAA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,gBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC5B,SAAA;KACF;AACD,IAAA,oBAAoB,CAAC,OAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;AACD,IAAA,aAAa,CAAC,MAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,GAAG,EAAE;YACtG,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,IAAI,EAAE,kDAAkD;AACxD,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC,CAAC;YACH,OAAO;AACR,SAAA;QAED,MAAM,SAAS,GAAU,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC5F,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBACxC,MAAM,cAAc,GAAmB,QAAQ,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;AACrD,gBAAA,cAAc,CAAC,OAAO,CAAC,OAAO,IAAG;AAC/B,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC9E,SAAS,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,OAAO,CAAC,IAAI;wBACrB,UAAU,EAAE,OAAO,CAAC,QAAQ;wBAC5B,KAAK;wBACL,WAAW,EAAE,OAAO,CAAC,WAAW;AACjC,qBAAA,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;AACJ,aAAA;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAC1D,YAAA,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC;AACR,oBAAA,KAAK,EAAE,kCAAkC;AACzC,oBAAA,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;AACnC,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC,CAAC;gBACH,OAAO;AACR,aAAA;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE;AACvB,gBAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;AACnC,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,gBAAgB,CAAC,IAAW,EAAA;QAC1B,MAAM,MAAM,GAAa,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,IAAG;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE;gBACxC,MAAM,CAAC,IAAI,CAAC,CAAA,mBAAA,EAAsB,OAAO,CAAC,WAAW,CAAG,CAAA,CAAA,CAAC,CAAC;AAC3D,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,SAAS,CAAC,SAAgB,EAAA;QACxB,IAAI,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;YACxE,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,gCAAgC,CAAC;QACtD,MAAM,OAAO,GAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAElD,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC5F,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,gBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;oBAC/B,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,IAAI,EAAE,qCAAqC;AAC3C,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,CAAC;oBAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;AAC9B,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA,CAAC,CAAC;AACJ,iBAAA;aACF;AACD,YAAA,KAAK,EAAE,CAAC,GAAQ,KAAI;AAClB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC;AACR,oBAAA,KAAK,EAAE,6BAA6B;oBACpC,IAAI,EAAE,GAAG,CAAC,OAAO;AACjB,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC,CAAC;aACJ;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;aACrC;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,YAAY,CAAC,IAAW,EAAA;QACtB,OAAO;AACL,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YACtC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC;YACtD,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,mBAAmB,CAAC;YAChE,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,sBAAsB,CAAC;YACtE,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC;YAC5D,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC1C,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;YAChD,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;YAC5C,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YACxC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;YACtC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC;YACxD,wBAAwB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,0BAA0B,CAAC;YAC9E,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,sBAAsB,CAAC;YACtE,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YACpD,qBAAqB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,uBAAuB,CAAC;YACxE,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC;YACxD,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;YACpD,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC;YACxD,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,mBAAmB,CAAC;YAChE,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC;YAC5D,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC;YACxD,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC;YACtD,aAAa,EAAE,IAAI,CAAC,aAAc;YAClC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC;YAC1D,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;YACpD,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;YACpD,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;YAClD,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC;YAC5D,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC;YAC1D,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC;YAClE,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC;YAC9D,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC;SACnE,CAAC;KACH;IAED,aAAa,CAAC,IAAW,EAAE,IAAY,EAAA;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;KACrE;;oHA5MU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAwB,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,iCAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,uMCtBpC,g5CAuBA,EAAA,MAAA,EAAA,CAAA,qSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjD,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiD,2BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDDa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,g5CAAA,EAAA,MAAA,EAAA,CAAA,qSAAA,CAAA,EAAA,CAAA;2MAMvB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;ME2BI,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAd7B,uBAAuB;QACvB,2BAA2B;QAC3B,2BAA2B;QAC3B,6BAA6B;AAC7B,QAAA,4BAA4B,aArB5B,YAAY;QACZ,gBAAgB;QAChB,mBAAmB;QACnB,WAAW;QACX,WAAW;QACX,YAAY;QACZ,WAAW;QACX,cAAc;QACd,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,cAAc;QACd,iBAAiB;QACjB,aAAa;AACb,QAAA,WAAW,aAUX,uBAAuB;QACvB,2BAA2B;QAC3B,2BAA2B;QAC3B,6BAA6B;QAC7B,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAGnB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YA/B7B,YAAY;QACZ,gBAAgB;QAChB,mBAAmB;QACnB,WAAW;QACX,WAAW;QACX,YAAY;QACZ,WAAW;QACX,cAAc;QACd,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,WAAW,CAAA,EAAA,CAAA,CAAA;2FAiBF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjChC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAC;wBACN,YAAY;wBACZ,gBAAgB;wBAChB,mBAAmB;wBACnB,WAAW;wBACX,WAAW;wBACX,YAAY;wBACZ,WAAW;wBACX,cAAc;wBACd,aAAa;wBACb,kBAAkB;wBAClB,eAAe;wBACf,cAAc;wBACd,iBAAiB;wBACjB,aAAa;wBACb,WAAW;AACZ,qBAAA;AACD,oBAAA,YAAY,EAAC;wBACX,uBAAuB;wBACvB,2BAA2B;wBAC3B,2BAA2B;wBAC3B,6BAA6B;wBAC7B,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAC;wBACN,uBAAuB;wBACvB,2BAA2B;wBAC3B,2BAA2B;wBAC3B,6BAA6B;wBAC7B,4BAA4B;AAC7B,qBAAA;AACF,iBAAA,CAAA;;;MC5BY,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAf3B,gBAAgB;QAChB,UAAU;QACV,kBAAkB;QAClB,SAAS;AACT,QAAA,oBAAoB,aAGpB,gBAAgB;QAChB,UAAU;QACV,kBAAkB;QAClB,SAAS;QACT,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAIX,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAf3B,gBAAgB;QAChB,UAAU;QACV,kBAAkB;QAClB,SAAS;AACT,QAAA,oBAAoB,EAGpB,gBAAgB;QAChB,UAAU;QACV,kBAAkB;QAClB,SAAS;QACT,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAjB9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,gBAAgB;wBAChB,UAAU;wBACV,kBAAkB;wBAClB,SAAS;wBACT,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;wBAChB,UAAU;wBACV,kBAAkB;wBAClB,SAAS;wBACT,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;ACZK,MAAO,YAAa,SAAQ,iBAAiB,CAAA;AAIjD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;QAIpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAGD,IAAA,eAAe,CAAC,MAAyB,EAAA;AACvC,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,iBAAiB,CAAC,MAA2B,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,aAAa,CAAC,MAA+B,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;AACvD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,iBAAiB,CAAC,MAA2B,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;AAClD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC9D;AAED,IAAA,kBAAkB,CAAC,MAA4B,EAAA;AAC7C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAAC;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,2BAA2B,CAAC,MAAmC,EAAA;AAC7D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uCAAuC,CAAC;AAC5E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAED,IAAA,0BAA0B,CAAC,MAA4B,EAAA;AACrD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC9D;AAID,IAAA,0BAA0B,CAAC,MAA2B,EAAA;AACpD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,iCAAiC,CAAC;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAID,IAAA,qBAAqB,CAAC,MAAyB,EAAA;AAC7C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,6BAA6B,CAAE;AACnE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACvD;;yGAlEU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAhF,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACDK,MAAO,cAAe,SAAQ,iBAAiB,CAAA;AAInD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;QAIpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;AAED,IAAA,mBAAmB,CAAC,MAA6B,EAAA;AAC/C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACrE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;2GAbU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLY,MAAA,gBAAgB,GAAG,CAAC,OAAoB,KAAI;IACvD,MAAM,KAAK,GAAW,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC7C;;ACEM,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;AAIrD,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QADU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF5B,IAAW,CAAA,WAAA,GAAG,gBAAgB,CAAC;QAIrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACtD;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,0BAA0B,CAAC,MAA2B,EAAA;AACpD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,kCAAkC,CAAC;AACvE,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;AAED,IAAA,0BAA0B,CAAC,MAA2B,EAAA;AACpD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0CAA0C,CAAC;AAC/E,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;6GAxBU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADJ,MAAM,EAAA,CAAA,CAAA;2FAClB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCEnB,mBAAmB,CAAA;AAO5B,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAL5B,IAAW,CAAA,WAAA,GAAG,gCAAgC,CAAC;KAMtD;IAED,gBAAgB,CAAC,IAAY,EAAE,YAAoB,EAAA;AAC/C,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACpC;AAED,IAAA,6BAA6B,CAAC,IAAY,EAAE,YAAoB,EAAE,WAAmB,EAAA;AACnF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,GAAG,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,aAAa,GAAG,WAAW,CAAC;QACvH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,qBAAqB,CAAC,YAAoB,EAAE,IAAY,EAAA;AACtD,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC;QACpF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,+BAA+B,CAAC,YAAoB,EAAE,IAAY,EAAE,WAAmB,EAAA;AACrF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,GAAG,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,aAAa,GAAG,WAAW,CAAC;QAAA,CAAC;QAC7H,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAED,IAAA,yBAAyB,CAAC,OAAoC,EAAA;AAC5D,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wBAAwB,CAAC;AAC7D,QAAA,IAAI,WAAW,GAAG;YAChB,MAAM,EAAE,IAAI,WAAW,EAAE;AACzB,YAAA,MAAM,EAAE,OAAO;SAChB,CAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;KAChD;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAE,YAAoB,EAAE,gBAAyB,EAAA;AAC1E,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;AAExD,QAAA,IAAI,WAAW,GAAG;YACd,MAAM,EAAE,IAAI,WAAW,EAAE;AACzB,YAAA,MAAM,EAAE;AACJ,gBAAA,KAAK,EAAE,sCAAsC;AAC7C,gBAAA,iBAAiB,EAAE,EAAE;gBACrB,gBAAgB;AAChB,gBAAA,SAAS,EAAE,IAAI;AAClB,aAAA;SACJ,CAAA;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;KAClD;;gHArDQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;IC6MW,gBAEX;AAFD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAFW,eAAe,KAAf,eAAe,GAE1B,EAAA,CAAA,CAAA;;MCpNY,OAAO,CAAA;AAGnB;;MCHY,MAAM,CAAA;AAmBlB,CAAA;MAEY,UAAU,CAAA;AAUtB,CAAA;MAEY,WAAW,CAAA;AAcvB,CAAA;MAEY,eAAe,CAAA;AAmB3B;;MCtEY,kBAAkB,CAAA;AAM9B;;ACND;;AAEG;;ACFH;;AAEG;;;;"}