{"version":3,"file":"ngx-cron-jobs.mjs","sources":["../../src/app/lib/contracts/contracts.ts","../../src/app/lib/services/data.service.ts","../../src/app/lib/services/posix.service.ts","../../src/app/lib/services/quartz.service.ts","../../src/app/lib/cron-jobs/cron-jobs.component.ts","../../src/app/lib/cron-jobs/cron-jobs.component.html","../../src/app/lib/cron-jobs.module.ts","../../ngx-cron-jobs.ts"],"sourcesContent":["export interface CronJobsBaseFrequency {\n  none: number;\n  minute: number;\n  hour: number;\n  day: number;\n  week: number;\n  month: number;\n  year: number;\n}\n\nexport interface CronJobsConfig {\n  quartz?: boolean;\n  multiple?: boolean;\n  bootstrap?: boolean;\n  option?: {};\n}\n\nexport interface CronJobsFrequency {\n  baseFrequency: number;\n  minutes: Array<number>;\n  hours: Array<number>;\n  daysOfMonth: Array<number>;\n  daysOfWeek: Array<number>;\n  months: Array<number>;\n  nthMinutes: Array<number>;\n}\n\nexport interface CronJobsSelectOption {\n  value: number;\n  type?: OptionType;\n  label: string | number;\n}\n\nexport enum OptionType {\n  minute,\n  hour,\n  day,\n  week,\n  month,\n  year\n  }\n\nexport interface CronJobsValidationConfig {\n  validate?: boolean;\n}\n","import { Injectable } from '@angular/core';\nimport { CronJobsConfig, CronJobsSelectOption, CronJobsValidationConfig, OptionType } from '../contracts/contracts';\n\n@Injectable()\nexport class DataService {\n  private defaultConfig: CronJobsConfig = {\n    quartz: false,\n    bootstrap: true,\n    multiple: false,\n  };\n\n  private defaultValidateConfig: CronJobsValidationConfig = {\n    validate: false,\n  };\n\n  private daysBase: Array<CronJobsSelectOption> = [\n    { value: 0, label: \"Sunday\" },\n    { value: 1, label: \"Monday\" },\n    { value: 2, label: \"Tuesday\" },\n    { value: 3, label: \"Wednesday\" },\n    { value: 4, label: \"Thursday\" },\n    { value: 5, label: \"Friday\" },\n    { value: 6, label: \"Saturday\" },\n  ];\n\n  private daysOfWeekPosix: Array<CronJobsSelectOption> = [...this.daysBase];\n\n  private daysOfWeekQuartz: Array<CronJobsSelectOption> = [\n    ...this.daysBase.map((day, i) => ({\n      ...day,\n      value: i + 1,\n    })),\n  ];\n\n  private numeral: Array<CronJobsSelectOption> = [\n    ...new Array(31).fill(0).map((_, index) => {\n      const value = index + 1;\n      let suffix = \"th\";\n      if (value <= 10 || value >= 20) {\n        switch (value % 10) {\n          case 1:\n            suffix = \"st\";\n            break;\n          case 2:\n            suffix = \"nd\";\n            break;\n          case 3:\n            suffix = \"rd\";\n            break;\n        }\n      }\n      return {\n        value,\n        label: `${value}${suffix}`,\n      };\n    }),\n  ];\n\n  private _months: Array<CronJobsSelectOption> = [\n    { value: 1, label: \"January\" },\n    { value: 2, label: \"February\" },\n    { value: 3, label: \"March\" },\n    { value: 4, label: \"April\" },\n    { value: 5, label: \"May\" },\n    { value: 6, label: \"June\" },\n    { value: 7, label: \"July\" },\n    { value: 8, label: \"August\" },\n    { value: 9, label: \"September\" },\n    { value: 10, label: \"October\" },\n    { value: 11, label: \"November\" },\n    { value: 12, label: \"December\" },\n  ];\n\n  private _baseFrequency: Array<CronJobsSelectOption> = [\n    { value: 0, label: \"Please select\" },\n    { value: 1, type: OptionType.minute, label: \"Minute\" },\n    { value: 2, type: OptionType.hour, label: \"Hour\" },\n    { value: 3, type: OptionType.day, label: \"Day\" },\n    { value: 4, type: OptionType.week, label: \"Week\" },\n    { value: 5, type: OptionType.month, label: \"Month\" },\n    { value: 6, type: OptionType.year, label: \"Year\" },\n  ];\n\n  private _hours: Array<CronJobsSelectOption>;\n  private _minutes: Array<CronJobsSelectOption>;\n\n  public get baseFrequency(): Array<CronJobsSelectOption> {\n    return [...this._baseFrequency];\n  }\n\n  public get daysOfMonth(): Array<CronJobsSelectOption> {\n    return [...this.numeral];\n  }\n\n  public get months(): Array<CronJobsSelectOption> {\n    return [...this._months];\n  }\n\n  public get hours(): Array<CronJobsSelectOption> {\n    return [...this._hours];\n  }\n\n  public get minutes(): Array<CronJobsSelectOption> {\n    return [...this._minutes];\n  }\n\n  constructor() {\n    this._hours = [];\n    for (let x = 0; x < 24; x++) {\n      this._hours.push(<CronJobsSelectOption>{ value: x, label: `${x}` });\n    }\n\n    this._minutes = [];\n    for (let x = 0; x < 60; x = x + 5) {\n      this._minutes.push(<CronJobsSelectOption>{ value: x, label: `${x}` });\n    }\n  }\n\n  getConfig(config: CronJobsConfig = {}): CronJobsConfig {\n    return {\n      ...this.defaultConfig,\n      ...config,\n    };\n  }\n\n  getValidate(\n    validateConfig: CronJobsValidationConfig = {}\n  ): CronJobsValidationConfig {\n    return {\n      ...this.defaultValidateConfig,\n      ...validateConfig,\n    };\n  }\n\n  getDaysOfWeek(quartz: Boolean = false): Array<CronJobsSelectOption> {\n    if (quartz) {\n      return [...this.daysOfWeekQuartz];\n    }\n    return [...this.daysOfWeekPosix];\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { CronJobsBaseFrequency, CronJobsFrequency, CronJobsSelectOption } from '../contracts/contracts';\nimport { DataService } from './data.service';\n\n@Injectable()\nexport class PosixService {\n\n  public baseFrequency: CronJobsBaseFrequency;\n  private frequencyData: Array<CronJobsSelectOption>;\n\n  constructor(protected dataService: DataService) {\n    this.frequencyData = this.dataService.baseFrequency;\n    const keys = ['none', 'minute', 'hour', 'day', 'week', 'month', 'year'];\n    const result = {};\n    keys.forEach((key: string, idx: number) => {\n      result[key] = this.frequencyData[idx].value;\n    });\n    this.baseFrequency = <CronJobsBaseFrequency>result;\n  }\n\n  public getDefaultFrequency(): CronJobsFrequency {\n    const cronJobsFrequency = {\n      baseFrequency: this.frequencyData[0].value,\n      minutes: [],\n      hours: [],\n      daysOfMonth: [],\n      daysOfWeek: [],\n      months: [],\n      nthMinutes: []\n    };\n    return cronJobsFrequency;\n  }\n\n  public getDefaultFrequenceWithDefault(): CronJobsFrequency {\n    const cronJobsFrequency = this.getDefaultFrequency();\n    cronJobsFrequency.daysOfWeek = this.getDaysOfWeek()[0] ? [this.getDaysOfWeek()[0].value] : [];\n    cronJobsFrequency.daysOfMonth = this.dataService.daysOfMonth[0] ? [this.dataService.daysOfMonth[0].value] : [];\n    cronJobsFrequency.months = this.dataService.months[0] ? [this.dataService.months[0].value] : [];\n    cronJobsFrequency.hours = this.dataService.hours[0] ? [this.dataService.hours[0].value] : [];\n    cronJobsFrequency.minutes = this.dataService.minutes[0] ? [this.dataService.minutes[0].value] : [];\n    cronJobsFrequency.nthMinutes = this.dataService.minutes[0] ? [this.dataService.minutes[0].value] : [];\n    return cronJobsFrequency;\n  }\n\n  protected getDaysOfWeek(): Array<CronJobsSelectOption> {\n    return this.dataService.getDaysOfWeek(false);\n  }\n\n  public fromCronWithDefault(value: String): CronJobsFrequency {\n    const cron = value.trim().replace(/\\s+/g, ' ').split(' ');\n    const frequency = this.getDefaultFrequenceWithDefault();\n\n    return this.fromCronInternal(cron, frequency);\n  }\n\n  public fromCron(value: String): CronJobsFrequency {\n    const cron = value.trim().replace(/\\s+/g, ' ').split(' ');\n    const frequency = this.getDefaultFrequency();\n\n    return this.fromCronInternal(cron, frequency);\n  }\n\n  private fromCronInternal(cron: string[], frequency: CronJobsFrequency): CronJobsFrequency {\n    if (cron.length !== 5) {\n      return frequency;\n    }\n\n    if (cron[0] === '*' && cron[1] === '*' && cron[2] === '*' && cron[3] === '*' && cron[4] === '*') {\n      frequency.baseFrequency = this.baseFrequency.minute; // every minute\n    } else if (cron[1] === '*' && cron[2] === '*' && cron[3] === '*' && cron[4] === '*') {\n      frequency.baseFrequency = this.baseFrequency.hour; // every hour\n    } else if (cron[2] === '*' && cron[3] === '*' && cron[4] === '*') {\n      frequency.baseFrequency = this.baseFrequency.day; // every day\n    } else if (cron[2] === '*' && cron[3] === '*') {\n      frequency.baseFrequency = this.baseFrequency.week; // every week\n    } else if (cron[3] === '*' && cron[4] === '*') {\n      frequency.baseFrequency = this.baseFrequency.month; // every month\n    } else if (cron[4] === '*') {\n      frequency.baseFrequency = this.baseFrequency.year; // every year\n    }\n    if (cron[0] !== '*') {\n      // preparing to handle multiple minutes\n      frequency.minutes = this.getValueArray(cron[0]);\n    }\n    if (cron[1] !== '*') {\n      // preparing to handle multiple hours\n      frequency.hours = this.getValueArray(cron[1]);\n    }\n    if (cron[2] !== '*') {\n      // preparing to handle multiple daysOfWeek of the month\n      frequency.daysOfMonth = this.getValueArray(cron[2]);\n    }\n    if (cron[3] !== '*') {\n      // preparing to handle multiple months\n      frequency.months = this.getValueArray(cron[3]);\n    }\n    if (cron[4] !== '*') {\n      // preparing to handle multiple daysOfWeek of the week\n      frequency.daysOfWeek = this.getValueArray(cron[4]);\n    }\n    return frequency;\n  }\n\n  setCron(value: CronJobsFrequency) {\n    const cron = ['*', '*', '*', '*', '*'];\n\n    if (value && value.baseFrequency) {\n      if (value.baseFrequency >= this.baseFrequency.hour) {\n        cron[0] = value.minutes.length > 0 ? value.minutes.join(',') : '*';\n      }\n\n      if (value.baseFrequency >= this.baseFrequency.day) {\n        cron[1] = value.hours.length > 0 ? value.hours.join(',') : '*';\n      }\n\n      if (value.baseFrequency === this.baseFrequency.week) {\n        cron[4] = value.daysOfWeek.length > 0 ? value.daysOfWeek.join(',') : '*';\n      }\n\n      if (value.baseFrequency >= this.baseFrequency.month) {\n        cron[2] = value.daysOfMonth.length > 0 ? value.daysOfMonth.join(',') : '*';\n      }\n\n      if (value.baseFrequency === this.baseFrequency.year) {\n        cron[3] = value.months.length > 0 ? value.months.join(',') : '*';\n      }\n\n      if (value.baseFrequency === this.baseFrequency.minute && value.nthMinutes.length && value.nthMinutes[0] !== 0) {\n        cron[0] = `*/${value.nthMinutes[0]}`;\n      }\n    } else {\n      return '';\n    }\n\n\n    return cron.join(' ');\n  }\n\n  public getValueArray(value: string): Array<number> {\n    if (value) {\n      return value.split(',').map((ele) => +ele);\n    }\n    return [];\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { PosixService } from './posix.service';\nimport { DataService } from './data.service';\nimport { CronJobsFrequency, CronJobsSelectOption } from '../contracts/contracts';\n\n@Injectable()\nexport class QuartzService extends PosixService {\n\n  constructor(protected dataService: DataService) {\n    super(dataService);\n  }\n\n  protected getDaysOfWeek(): Array<CronJobsSelectOption> {\n    return this.dataService.getDaysOfWeek(true);\n  }\n\n  public fromCronWithDefault(value: String): CronJobsFrequency {\n    const cron = value.trim().replace(/\\s+/g, ' ').split(' ');\n    const frequency = this.getDefaultFrequenceWithDefault();\n\n    return this.fromCronQuartzInternal(cron, frequency);\n  }\n\n  public fromCron(value: String): CronJobsFrequency {\n    const cron = value.trim().replace(/\\s+/g, ' ').split(' ');\n    const frequency = this.getDefaultFrequency();\n    return this.fromCronQuartzInternal(cron, frequency);\n  }\n\n  private fromCronQuartzInternal(cron: string[], frequency: CronJobsFrequency) {\n    if (!(cron.length === 6 || cron.length === 7)) {\n      return frequency;\n    }\n\n    if (cron[1] === '*' && cron[2] === '*' && cron[3] === '*' && cron[4] === '*' && cron[5] === '?') {\n      frequency.baseFrequency = this.baseFrequency.minute; // every minute\n    } else if (cron[2] === '*' && cron[3] === '*' && cron[4] === '*' && cron[5] === '?') {\n      frequency.baseFrequency = this.baseFrequency.hour; // every hour\n    } else if (cron[3] === '*' && cron[4] === '*' && cron[5] === '?') {\n      frequency.baseFrequency = this.baseFrequency.day; // every day\n    } else if (cron[3] === '?' && cron[4] === '*') {\n      frequency.baseFrequency = this.baseFrequency.week; // every week\n    } else if (cron[4] === '*' && cron[5] === '?') {\n      frequency.baseFrequency = this.baseFrequency.month; // every month\n    } else if (cron[5] === '?') {\n      frequency.baseFrequency = this.baseFrequency.year; // every year\n    }\n    if (cron[1] !== '*') {\n      // preparing to handle multiple minutes\n      frequency.minutes = this.getValueArray(cron[1]);\n    }\n    if (cron[2] !== '*') {\n      // preparing to handle multiple hours\n      frequency.hours = this.getValueArray(cron[2]);\n    }\n    if (cron[3] !== '*' && cron[3] !== '?') {\n      // preparing to handle multiple days of the month\n      frequency.daysOfMonth = this.getValueArray(cron[3]);\n    }\n    if (cron[4] !== '*') {\n      // preparing to handle multiple months\n      frequency.months = this.getValueArray(cron[4]);\n    }\n    if (cron[5] !== '*' && cron[5] !== '?') {\n      // preparing to handle multiple days of the week\n      frequency.daysOfWeek = this.getValueArray(cron[5]);\n    }\n    return frequency;\n  }\n\n  setCron(newValue: CronJobsFrequency) {\n    const cron = ['0', '*', '*', '*', '*', '?'];\n\n    if (newValue && newValue.baseFrequency) {\n      if (newValue.baseFrequency >= this.baseFrequency.hour) {\n        cron[1] = newValue.minutes.length > 0 ? newValue.minutes.join(',') : '*';\n      }\n\n      if (newValue.baseFrequency >= this.baseFrequency.day) {\n        cron[2] = newValue.hours.length > 0 ? newValue.hours.join(',') : '*';\n      }\n\n      if (newValue.baseFrequency === this.baseFrequency.week) {\n        cron[3] = '?';\n        cron[5] = newValue.daysOfWeek.length > 0 ? newValue.daysOfWeek.join(',') : '*';\n      }\n\n      if (newValue.baseFrequency >= this.baseFrequency.month) {\n        cron[3] = newValue.daysOfMonth.length > 0 ? newValue.daysOfMonth.join(',') : '*';\n      }\n\n      if (newValue.baseFrequency === this.baseFrequency.year) {\n        cron[4] = newValue.months.length > 0 ? newValue.months.join(',') : '*';\n      }\n\n      if (newValue.baseFrequency === this.baseFrequency.minute && newValue.nthMinutes.length && newValue.nthMinutes[0] !== 0) {\n        cron[0] = `*/${newValue.nthMinutes[0]}`;\n      }\n    } else {\n      return '';\n    }\n\n    return cron.join(' ');\n  }\n\n}\n","\nimport {filter, takeUntil, map, publishReplay, refCount} from 'rxjs/operators';\nimport {\n  Component, forwardRef, Injector, Input, OnChanges, OnDestroy, OnInit,\n  SimpleChanges\n} from '@angular/core';\nimport {\n  CronJobsConfig, CronJobsFrequency, CronJobsSelectOption,\n  CronJobsValidationConfig,\n  OptionType\n} from '../contracts/contracts';\nimport { DataService } from '../services/data.service';\nimport { ControlValueAccessor, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject ,  Observable } from 'rxjs';\n\n\n\n\n\nimport { PosixService } from '../services/posix.service';\nimport { QuartzService } from '../services/quartz.service';\n\n@Component({\n  selector: 'cron-jobs',\n  templateUrl: './cron-jobs.component.html',\n  styleUrls: ['./cron-jobs.component.css'],\n  providers: [\n    PosixService,\n    QuartzService,\n    DataService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => CronJobsComponent),\n      multi: true\n    }\n  ]\n})\nexport class CronJobsComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {\n  @Input() config: CronJobsConfig;\n  @Input() validate: CronJobsValidationConfig;\n  @Input() isValid = true;\n  @Input() formControl: UntypedFormControl;\n\n  public isDisabled = false;\n  public baseFrequencyData: Array<CronJobsSelectOption>;\n  public baseFrequency$: Observable<number>;\n  public daysOfWeekData: Array<CronJobsSelectOption> = [];\n  public daysOfMonthData: Array<CronJobsSelectOption> = [];\n  public monthsData: Array<CronJobsSelectOption> = [];\n  public hoursData: Array<CronJobsSelectOption> = [];\n  public minutesData: Array<CronJobsSelectOption> = [];\n  public onChange: (cronValue: string) => {};\n  public onTouched: () => {};\n  public cronJobsForm: UntypedFormGroup;\n\n  private isPatching = false;\n  private unSubscribe = new Subject<void>();\n  private cronService: PosixService;\n\n  constructor(private dataService: DataService,\n    private injector: Injector,\n    private formBuilder: UntypedFormBuilder) {\n\n    this.cronJobsForm = this.formBuilder.group({\n      baseFrequency: 0,\n      daysOfWeek: '',\n      daysOfMonth: '',\n      months: '',\n      hours: '',\n      minutes: '',\n      nthMinutes: ''\n    });\n\n    this.config = this.dataService.getConfig();\n    this.validate = this.dataService.getValidate();\n    this.setService();\n  }\n\n  ngOnInit() {\n    this.baseFrequency$ = this.cronJobsForm.get('baseFrequency')\n      .valueChanges.pipe(\n      takeUntil(this.unSubscribe),\n      map(v => +v),\n      publishReplay(1),\n      refCount(), );\n\n    this.cronJobsForm\n      .valueChanges.pipe(\n      takeUntil(this.unSubscribe),\n      filter(() => !this.isPatching),\n      map((freq: CronJobsFrequency) => {\n        freq.baseFrequency = +freq.baseFrequency;\n        return freq;\n      }), )\n      .subscribe((values: CronJobsFrequency) => {\n        if (!values.baseFrequency) {\n          values = this.cronService.getDefaultFrequenceWithDefault();\n          this.cronJobsForm.patchValue(values, { emitEvent: false });\n        }\n        this.onChange(this.cronService.setCron(values));\n      });\n\n    let baseFreq = this.dataService.baseFrequency;\n\n    if (this.config.option) {\n      baseFreq = baseFreq.filter(x => !(this.config.option.hasOwnProperty(OptionType[x.type])\n        && !this.config.option[OptionType[x.type]])\n      );\n    }\n\n    this.baseFrequencyData = baseFreq;\n    this.daysOfMonthData = this.dataService.daysOfMonth;\n    this.daysOfWeekData = this.dataService.getDaysOfWeek(false);\n    this.monthsData = this.dataService.months;\n    this.hoursData = this.dataService.hours;\n    this.minutesData = this.dataService.minutes;\n\n    this.isPatching = true;\n    setTimeout(() => {\n      this.cronJobsForm.patchValue(this.cronService.getDefaultFrequenceWithDefault());\n      this.isPatching = false;\n    });\n  }\n\n  onBlur() {\n    this.onTouched();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['config']) {\n      this.config = this.dataService.getConfig(<CronJobsConfig>changes['config'].currentValue);\n      setTimeout(() => {\n        if (!changes['config'].previousValue || !changes['config'].currentValue ||\n          changes['config'].previousValue['quartz'] !== changes['config'].currentValue['quartz']) {\n          this.daysOfWeekData = this.dataService.getDaysOfWeek(this.config.quartz);\n          this.cronJobsForm.patchValue({ daysOfWeek: this.daysOfWeekData[0].value });\n        }\n      });\n      this.setService();\n    }\n\n    if (changes['validate']) {\n      this.validate = this.dataService.getValidate(<CronJobsValidationConfig>changes['validate'].currentValue);\n    }\n  }\n\n  setService() {\n    if (this.config.quartz) {\n      this.cronService = this.injector.get(QuartzService);\n    } else {\n      this.cronService = this.injector.get(PosixService);\n    }\n  }\n\n  writeValue(cronValue: string): void {\n    this.isPatching = true;\n    let valueToPatch: CronJobsFrequency;\n    if (cronValue) {\n      valueToPatch = this.cronService.fromCronWithDefault(cronValue);\n    } else {\n      valueToPatch = this.cronService.getDefaultFrequenceWithDefault();\n    }\n\n    setTimeout(() => {\n      this.cronJobsForm.patchValue(valueToPatch);\n      this.isPatching = false;\n    });\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    if (this.isDisabled) {\n      this.cronJobsForm.disable();\n    } else {\n      this.cronJobsForm.enable();\n    }\n  }\n\n  getIsValid(): boolean {\n    return this.validate.validate ? this.getValid() : false;\n  }\n\n  getIsInvalid(): boolean {\n    return this.validate.validate ? !this.getValid() : false;\n  }\n\n  getValid(): boolean {\n    return this.formControl ? this.formControl.valid : this.isValid;\n  }\n\n  ngOnDestroy() {\n    this.unSubscribe.next();\n    this.unSubscribe.complete();\n  }\n\n}\n","<div class=\"form-inline\" *ngIf=\"config?.bootstrap\" [formGroup]=\"cronJobsForm\">\n  <label class=\"mr-sm-2\" for=\"selectBase\">Every: </label>\n  <select class=\"form-control\" id=\"selectBase\" (blur)=\"onBlur()\"\n          [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n          formControlName=\"baseFrequency\">\n    <option *ngFor=\"let item of baseFrequencyData\" [value]=\"item.value\">{{item.label}}</option>\n  </select>\n  <label class=\"mx-sm-2\" *ngIf=\"(baseFrequency$ | async) === 4\">on</label>\n  <select multiple [multiple]=\"config.multiple\" class=\"form-control\" (blur)=\"onBlur()\"\n          [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n          *ngIf=\"(baseFrequency$ | async) === 4\" formControlName=\"daysOfWeek\">\n    <option *ngFor=\"let item of daysOfWeekData\" [value]=\"item.value\">{{item.label}}</option>\n  </select>\n  <label class=\"mx-sm-2\" *ngIf=\"(baseFrequency$ | async) >= 5\">on the</label>\n  <select multiple [multiple]=\"config.multiple\" class=\"form-control\" (blur)=\"onBlur()\"\n          [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n          *ngIf=\"(baseFrequency$ | async) >= 5\" formControlName=\"daysOfMonth\">\n    <option *ngFor=\"let item of daysOfMonthData\" [value]=\"item.value\">{{item.label}}</option>\n  </select>\n  <label class=\"mx-sm-2\" *ngIf=\"(baseFrequency$ | async) === 6\">of</label>\n  <select multiple [multiple]=\"config.multiple\" class=\"form-control\" (blur)=\"onBlur()\"\n          [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n          *ngIf=\"(baseFrequency$ | async) === 6\" formControlName=\"months\">\n    <option *ngFor=\"let item of monthsData\" [ngValue]=\"item.value\">{{item.label}}</option>\n  </select>\n  <label class=\"mx-sm-2\" *ngIf=\"(baseFrequency$ | async) >= 2\">at</label>\n  <select multiple [multiple]=\"config.multiple\" class=\"form-control\" (blur)=\"onBlur()\"\n          [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n          *ngIf=\"(baseFrequency$ | async) >= 3\" formControlName=\"hours\">\n    <option *ngFor=\"let item of hoursData\" [value]=\"item.value\">{{item.label}}</option>\n  </select>\n  <label class=\"mx-sm-2\" *ngIf=\"(baseFrequency$ | async) >= 3 \">:</label>\n  <select multiple [multiple]=\"config.multiple\" class=\"form-control\" (blur)=\"onBlur()\"\n          [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n          *ngIf=\"(baseFrequency$ | async) >=2\" formControlName=\"minutes\">\n    <option *ngFor=\"let item of minutesData\" [value]=\"item.value\">{{item.label}}</option>\n  </select>\n  <label class=\"mx-sm-2\" *ngIf=\"(baseFrequency$ | async) === 2\">past the hour</label>\n  <label class=\"mx-sm-2\" *ngIf=\"(baseFrequency$ | async) === 1\">i.e. every</label>\n  <div *ngIf=\"(baseFrequency$ | async) === 1\" class=\"cron-select-wrap\">\n    <select multiple [multiple]=\"config.multiple\" class=\"cron-select nth-minute-value\" (blur)=\"onBlur()\"\n            [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n            formControlName=\"nthMinutes\">\n      <option *ngFor=\"let item of minutesData\" [value]=\"item.value\">{{item.value === 0 ? '' : item.value + 'th'}}</option>\n    </select>\n  </div>\n  <label class=\"mx-sm-2\" *ngIf=\"(baseFrequency$ | async) === 1\">minute</label>\n</div>\n<div class=\"cron-wrap\" *ngIf=\"!config?.bootstrap\" [formGroup]=\"cronJobsForm\">\n  <span>Every: </span>\n  <div class=\"cron-select-wrap\">\n    <select class=\"cron-select\" formControlName=\"baseFrequency\" (blur)=\"onBlur()\"\n            [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\">\n      <option *ngFor=\"let item of baseFrequencyData\" [value]=\"item.value\">{{item.label}}</option>\n    </select>\n  </div>\n  <div class=\"select-options\">\n    <span  *ngIf=\"(baseFrequency$ | async) === 4\">on </span>\n    <div *ngIf=\"(baseFrequency$ | async) === 4\" class=\"cron-select-wrap\">\n      <select multiple [multiple]=\"config.multiple\" class=\"cron-select day-of-week-value\" (blur)=\"onBlur()\"\n              [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n              formControlName=\"daysOfWeek\">\n        <option *ngFor=\"let item of daysOfWeekData\" [value]=\"item.value\">{{item.label}}</option>\n      </select>\n    </div>\n    <span *ngIf=\"(baseFrequency$ | async) >= 5\">on the </span>\n    <div *ngIf=\"(baseFrequency$ | async) >= 5\" class=\"cron-select-wrap\">\n      <select multiple [multiple]=\"config.multiple\" class=\"cron-select day-of-month-value\" (blur)=\"onBlur()\"\n              [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n              formControlName=\"daysOfMonth\">\n        <option *ngFor=\"let item of daysOfMonthData\" [value]=\"item.value\">{{item.label}}</option>\n      </select>\n    </div>\n    <span *ngIf=\"(baseFrequency$ | async) === 6\">of </span>\n    <div *ngIf=\"(baseFrequency$ | async) === 6\" class=\"cron-select-wrap\">\n      <select multiple [multiple]=\"config.multiple\" class=\"cron-select month-value\" (blur)=\"onBlur()\"\n              [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n              formControlName=\"months\">\n        <option *ngFor=\"let item of monthsData\" [ngValue]=\"item.value\">{{item.label}}</option>\n      </select>\n    </div>\n    <span *ngIf=\"(baseFrequency$ | async) >= 3 \">at </span>\n    <div *ngIf=\"(baseFrequency$ | async) >= 3\" class=\"cron-select-wrap\">\n      <select multiple [multiple]=\"config.multiple\" class=\"cron-select hour-value\" (blur)=\"onBlur()\"\n              [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n              formControlName=\"hours\">\n        <option *ngFor=\"let item of hoursData\" [value]=\"item.value\">{{item.label}}</option>\n      </select>\n    </div>\n    <span *ngIf=\"(baseFrequency$ | async) >= 3\"> : </span>\n    <div *ngIf=\"(baseFrequency$ | async) >=2\" class=\"cron-select-wrap\">\n      <select multiple [multiple]=\"config.multiple\" class=\"cron-select minute-value\" (blur)=\"onBlur()\"\n              [ngClass]=\"{'is-valid': getIsValid(), 'is-invalid': getIsInvalid()}\"\n              formControlName=\"minutes\">\n        <option *ngFor=\"let item of minutesData\" [value]=\"item.value\">{{item.label}}</option>\n      </select>\n    </div>\n    <span *ngIf=\"(baseFrequency$ | async) === 2\"> past the hour</span>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CronJobsComponent } from './cron-jobs/cron-jobs.component';\nimport { DataService } from './services/data.service';\nimport { PosixService } from './services/posix.service';\nimport { QuartzService } from './services/quartz.service';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n  ],\n  declarations: [\n    CronJobsComponent\n  ],\n  exports: [\n    CronJobsComponent\n  ],\n  providers: [\n    DataService,\n    PosixService,\n    QuartzService\n  ]\n})\nexport class CronJobsModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.DataService"],"mappings":";;;;;;;;;AAiCA,IAAY,UAOT,CAAA;AAPH,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACH,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,CAAC,EAPS,UAAU,KAAV,UAAU,GAOnB,EAAA,CAAA,CAAA;;MCpCU,WAAW,CAAA;AACd,IAAA,aAAa,GAAmB;AACtC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,QAAQ,EAAE,KAAK;KAChB,CAAC;AAEM,IAAA,qBAAqB,GAA6B;AACxD,QAAA,QAAQ,EAAE,KAAK;KAChB,CAAC;AAEM,IAAA,QAAQ,GAAgC;AAC9C,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC7B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC7B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AAC9B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AAChC,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;AAC/B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC7B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;KAChC,CAAC;AAEM,IAAA,eAAe,GAAgC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAElE,IAAA,gBAAgB,GAAgC;AACtD,QAAA,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM;AAChC,YAAA,GAAG,GAAG;YACN,KAAK,EAAE,CAAC,GAAG,CAAC;AACb,SAAA,CAAC,CAAC;KACJ,CAAC;AAEM,IAAA,OAAO,GAAgC;AAC7C,QAAA,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAI;AACxC,YAAA,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,EAAE;AAC9B,gBAAA,QAAQ,KAAK,GAAG,EAAE;AAChB,oBAAA,KAAK,CAAC;wBACJ,MAAM,GAAG,IAAI,CAAC;wBACd,MAAM;AACR,oBAAA,KAAK,CAAC;wBACJ,MAAM,GAAG,IAAI,CAAC;wBACd,MAAM;AACR,oBAAA,KAAK,CAAC;wBACJ,MAAM,GAAG,IAAI,CAAC;wBACd,MAAM;iBACT;aACF;YACD,OAAO;gBACL,KAAK;AACL,gBAAA,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,EAAG,MAAM,CAAE,CAAA;aAC3B,CAAC;AACJ,SAAC,CAAC;KACH,CAAC;AAEM,IAAA,OAAO,GAAgC;AAC7C,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AAC9B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;AAC/B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAC1B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;AAC3B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;AAC3B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC7B,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AAChC,QAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC/B,QAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;AAChC,QAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;KACjC,CAAC;AAEM,IAAA,cAAc,GAAgC;AACpD,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE;AACpC,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;AACtD,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AAClD,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AAChD,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AAClD,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AACpD,QAAA,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;KACnD,CAAC;AAEM,IAAA,MAAM,CAA8B;AACpC,IAAA,QAAQ,CAA8B;AAE9C,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;KACjC;AAED,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1B;AAED,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1B;AAED,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;KACzB;AAED,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC3B;AAED,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAA,EAAG,CAAC,CAAE,CAAA,EAAE,CAAC,CAAC;SACrE;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAA,EAAG,CAAC,CAAE,CAAA,EAAE,CAAC,CAAC;SACvE;KACF;IAED,SAAS,CAAC,SAAyB,EAAE,EAAA;QACnC,OAAO;YACL,GAAG,IAAI,CAAC,aAAa;AACrB,YAAA,GAAG,MAAM;SACV,CAAC;KACH;IAED,WAAW,CACT,iBAA2C,EAAE,EAAA;QAE7C,OAAO;YACL,GAAG,IAAI,CAAC,qBAAqB;AAC7B,YAAA,GAAG,cAAc;SAClB,CAAC;KACH;IAED,aAAa,CAAC,SAAkB,KAAK,EAAA;QACnC,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACnC;AACD,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;KAClC;uGAvIU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2GAAX,WAAW,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;MCEE,YAAY,CAAA;AAKD,IAAA,WAAA,CAAA;AAHf,IAAA,aAAa,CAAwB;AACpC,IAAA,aAAa,CAA8B;AAEnD,IAAA,WAAA,CAAsB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AACpD,QAAA,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,GAAW,KAAI;AACxC,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9C,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,aAAa,GAA0B,MAAM,CAAC;KACpD;IAEM,mBAAmB,GAAA;AACxB,QAAA,MAAM,iBAAiB,GAAG;YACxB,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK;AAC1C,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AACF,QAAA,OAAO,iBAAiB,CAAC;KAC1B;IAEM,8BAA8B,GAAA;AACnC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACrD,QAAA,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAC9F,QAAA,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAC/G,QAAA,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChG,QAAA,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAC7F,QAAA,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACnG,QAAA,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACtG,QAAA,OAAO,iBAAiB,CAAC;KAC1B;IAES,aAAa,GAAA;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC9C;AAEM,IAAA,mBAAmB,CAAC,KAAa,EAAA;AACtC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAExD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC/C;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE7C,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC/C;IAEO,gBAAgB,CAAC,IAAc,EAAE,SAA4B,EAAA;AACnE,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,OAAO,SAAS,CAAC;SAClB;AAED,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC/F,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SACrD;AAAM,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACnF,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACnD;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAChE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;SAClD;AAAM,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC7C,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACnD;AAAM,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC7C,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;SACpD;AAAM,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC1B,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACnD;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEnB,YAAA,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEnB,YAAA,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEnB,YAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEnB,YAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEnB,YAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,OAAO,CAAC,KAAwB,EAAA;AAC9B,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEvC,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;YAChC,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aACpE;YAED,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;gBACjD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aAChE;YAED,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBACnD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aAC1E;YAED,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBACnD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aAC5E;YAED,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBACnD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aAClE;YAED,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC7G,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAK,EAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;aACtC;SACF;aAAM;AACL,YAAA,OAAO,EAAE,CAAC;SACX;AAGD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvB;AAEM,IAAA,aAAa,CAAC,KAAa,EAAA;QAChC,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;SAC5C;AACD,QAAA,OAAO,EAAE,CAAC;KACX;uGA1IU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2GAAZ,YAAY,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;;ACEL,MAAO,aAAc,SAAQ,YAAY,CAAA;AAEvB,IAAA,WAAA,CAAA;AAAtB,IAAA,WAAA,CAAsB,WAAwB,EAAA;QAC5C,KAAK,CAAC,WAAW,CAAC,CAAC;QADC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAE7C;IAES,aAAa,GAAA;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC7C;AAEM,IAAA,mBAAmB,CAAC,KAAa,EAAA;AACtC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAExD,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KACrD;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KACrD;IAEO,sBAAsB,CAAC,IAAc,EAAE,SAA4B,EAAA;AACzE,QAAA,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AAC7C,YAAA,OAAO,SAAS,CAAC;SAClB;AAED,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC/F,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SACrD;AAAM,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACnF,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACnD;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAChE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;SAClD;AAAM,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC7C,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACnD;AAAM,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC7C,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;SACpD;AAAM,aAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC1B,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACnD;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEnB,YAAA,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEnB,YAAA,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEtC,YAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEnB,YAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;AACD,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;;AAEtC,YAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,OAAO,CAAC,QAA2B,EAAA;AACjC,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE5C,QAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,EAAE;YACtC,IAAI,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBACrD,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aAC1E;YAED,IAAI,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;gBACpD,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aACtE;YAED,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACtD,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aAChF;YAED,IAAI,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBACtD,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aAClF;YAED,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBACtD,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aACxE;YAED,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACtH,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAK,EAAA,EAAA,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;aACzC;SACF;aAAM;AACL,YAAA,OAAO,EAAE,CAAC;SACX;AAED,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvB;uGAjGU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2GAAb,aAAa,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;;MCgCE,iBAAiB,CAAA;AAsBR,IAAA,WAAA,CAAA;AACV,IAAA,QAAA,CAAA;AACA,IAAA,WAAA,CAAA;AAvBD,IAAA,MAAM,CAAiB;AACvB,IAAA,QAAQ,CAA2B;IACnC,OAAO,GAAG,IAAI,CAAC;AACf,IAAA,WAAW,CAAqB;IAElC,UAAU,GAAG,KAAK,CAAC;AACnB,IAAA,iBAAiB,CAA8B;AAC/C,IAAA,cAAc,CAAqB;IACnC,cAAc,GAAgC,EAAE,CAAC;IACjD,eAAe,GAAgC,EAAE,CAAC;IAClD,UAAU,GAAgC,EAAE,CAAC;IAC7C,SAAS,GAAgC,EAAE,CAAC;IAC5C,WAAW,GAAgC,EAAE,CAAC;AAC9C,IAAA,QAAQ,CAA4B;AACpC,IAAA,SAAS,CAAW;AACpB,IAAA,YAAY,CAAmB;IAE9B,UAAU,GAAG,KAAK,CAAC;AACnB,IAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;AAClC,IAAA,WAAW,CAAe;AAElC,IAAA,WAAA,CAAoB,WAAwB,EAClC,QAAkB,EAClB,WAA+B,EAAA;QAFrB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAClC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAEvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACzC,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,UAAU,EAAE,EAAE;AACf,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC;AACzD,aAAA,YAAY,CAAC,IAAI,CAClB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EACZ,aAAa,CAAC,CAAC,CAAC,EAChB,QAAQ,EAAE,CAAG,CAAC;AAEhB,QAAA,IAAI,CAAC,YAAY;aACd,YAAY,CAAC,IAAI,CAClB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAC9B,GAAG,CAAC,CAAC,IAAuB,KAAI;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;AACzC,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC,CAAG;AACJ,aAAA,SAAS,CAAC,CAAC,MAAyB,KAAI;AACvC,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;AACzB,gBAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,8BAA8B,EAAE,CAAC;AAC3D,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;aAC5D;AACD,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AAE9C,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClF,mBAAA,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5C,CAAC;SACH;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AAE5C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAiB,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC;YACzF,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY;AACrE,oBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;AACxF,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACzE,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;iBAC5E;AACH,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;AAED,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAA2B,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC;SAC1G;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SACpD;KACF;AAED,IAAA,UAAU,CAAC,SAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,YAA+B,CAAC;QACpC,IAAI,SAAS,EAAE;YACb,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;SAChE;aAAM;AACL,YAAA,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,8BAA8B,EAAE,CAAC;SAClE;QAED,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAC7B;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;SAC5B;KACF;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC;KACzD;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC;KAC1D;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;KACjE;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC7B;uGApKU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAXjB,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;YACT,YAAY;YACZ,aAAa;YACb,WAAW;AACX,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnCH,m7MAoGA,EAAA,MAAA,EAAA,CAAA,8oBAAA,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,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,2FAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,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,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FD/Da,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAf7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGV,SAAA,EAAA;wBACT,YAAY;wBACZ,aAAa;wBACb,WAAW;AACX,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,m7MAAA,EAAA,MAAA,EAAA,CAAA,8oBAAA,CAAA,EAAA,CAAA;qIAGQ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MEfK,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;wGAAd,cAAc,EAAA,YAAA,EAAA,CAXvB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CALjB,YAAY;YACZ,WAAW;AACX,YAAA,mBAAmB,aAMnB,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAQR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EANd,SAAA,EAAA;YACT,WAAW;YACX,YAAY;YACZ,aAAa;AACd,SAAA,EAAA,OAAA,EAAA,CAdC,YAAY;YACZ,WAAW;YACX,mBAAmB,CAAA,EAAA,CAAA,CAAA;;2FAcV,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;AACpB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;AAClB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,WAAW;wBACX,YAAY;wBACZ,aAAa;AACd,qBAAA;AACF,iBAAA,CAAA;;;ACzBD;;AAEG;;;;"}