{"version":3,"file":"material-moment-adapter.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-moment-adapter/adapter/moment-date-adapter.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-moment-adapter/adapter/moment-date-formats.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material-moment-adapter/adapter/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Service, InjectionToken, inject} from '@angular/core';\nimport {DateAdapter, MAT_DATE_LOCALE} from '@angular/material/core';\n// Depending on whether rollup is used, moment needs to be imported differently.\n// Since Moment.js doesn't have a default export, we normally need to import using the `* as`\n// syntax. However, rollup creates a synthetic default module and we thus need to import it using\n// the `default as` syntax.\n// TODO(mmalerba): See if we can clean this up at some point.\nimport * as _moment from 'moment';\n// tslint:disable-next-line:no-duplicate-imports\nimport {default as _rollupMoment, Moment, MomentFormatSpecification, MomentInput} from 'moment';\n\nconst moment = _rollupMoment || _moment;\n\n/** Configurable options for MomentDateAdapter. */\nexport interface MatMomentDateAdapterOptions {\n  /**\n   * When enabled, the dates have to match the format exactly.\n   * See https://momentjs.com/guides/#/parsing/strict-mode/.\n   */\n  strict?: boolean;\n\n  /**\n   * Turns the use of utc dates on or off.\n   * Changing this will change how Angular Material components like DatePicker output dates.\n   * Defaults to `false`.\n   */\n  useUtc?: boolean;\n}\n\n/** InjectionToken for moment date adapter to configure options. */\nexport const MAT_MOMENT_DATE_ADAPTER_OPTIONS = new InjectionToken<MatMomentDateAdapterOptions>(\n  'MAT_MOMENT_DATE_ADAPTER_OPTIONS',\n  {\n    providedIn: 'root',\n    factory: () => ({useUtc: false}),\n  },\n);\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n  const valuesArray = Array(length);\n  for (let i = 0; i < length; i++) {\n    valuesArray[i] = valueFunction(i);\n  }\n  return valuesArray;\n}\n\n/** Adapts Moment.js Dates for use with Angular Material. */\n@Service({autoProvided: false})\nexport class MomentDateAdapter extends DateAdapter<Moment> {\n  private _options = inject<MatMomentDateAdapterOptions>(MAT_MOMENT_DATE_ADAPTER_OPTIONS, {\n    optional: true,\n  });\n\n  // Note: all of the methods that accept a `Moment` input parameter immediately call `this.clone`\n  // on it. This is to ensure that we're working with a `Moment` that has the correct locale setting\n  // while avoiding mutating the original object passed to us. Just calling `.locale(...)` on the\n  // input would mutate the object.\n\n  private _localeData!: {\n    firstDayOfWeek: number;\n    longMonths: string[];\n    shortMonths: string[];\n    dates: string[];\n    longDaysOfWeek: string[];\n    shortDaysOfWeek: string[];\n    narrowDaysOfWeek: string[];\n  };\n\n  constructor() {\n    super();\n    const dateLocale = inject<string>(MAT_DATE_LOCALE, {optional: true});\n    this.setLocale(dateLocale || moment.locale());\n  }\n\n  override setLocale(locale: string) {\n    super.setLocale(locale);\n\n    let momentLocaleData = moment.localeData(locale);\n    this._localeData = {\n      firstDayOfWeek: momentLocaleData.firstDayOfWeek(),\n      longMonths: momentLocaleData.months(),\n      shortMonths: momentLocaleData.monthsShort(),\n      dates: range(31, i => this.createDate(2017, 0, i + 1).format('D')),\n      longDaysOfWeek: momentLocaleData.weekdays(),\n      shortDaysOfWeek: momentLocaleData.weekdaysShort(),\n      narrowDaysOfWeek: momentLocaleData.weekdaysMin(),\n    };\n  }\n\n  getYear(date: Moment): number {\n    return this.clone(date).year();\n  }\n\n  getMonth(date: Moment): number {\n    return this.clone(date).month();\n  }\n\n  getDate(date: Moment): number {\n    return this.clone(date).date();\n  }\n\n  getDayOfWeek(date: Moment): number {\n    return this.clone(date).day();\n  }\n\n  getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n    // Moment.js doesn't support narrow month names, so we just use short if narrow is requested.\n    return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\n  }\n\n  getDateNames(): string[] {\n    return this._localeData.dates;\n  }\n\n  getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n    if (style == 'long') {\n      return this._localeData.longDaysOfWeek;\n    }\n    if (style == 'short') {\n      return this._localeData.shortDaysOfWeek;\n    }\n    return this._localeData.narrowDaysOfWeek;\n  }\n\n  getYearName(date: Moment): string {\n    return this.clone(date).format('YYYY');\n  }\n\n  getFirstDayOfWeek(): number {\n    return this._localeData.firstDayOfWeek;\n  }\n\n  getNumDaysInMonth(date: Moment): number {\n    return this.clone(date).daysInMonth();\n  }\n\n  clone(date: Moment): Moment {\n    return date.clone().locale(this.locale);\n  }\n\n  createDate(year: number, month: number, date: number): Moment {\n    // Moment.js will create an invalid date if any of the components are out of bounds, but we\n    // explicitly check each case so we can throw more descriptive errors.\n    if (typeof ngDevMode === 'undefined' || ngDevMode) {\n      if (month < 0 || month > 11) {\n        throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n      }\n\n      if (date < 1) {\n        throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n      }\n    }\n\n    const result = this._createMoment({year, month, date}).locale(this.locale);\n\n    // If the result isn't valid, the date must have been out of bounds for this month.\n    if (!result.isValid() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n    }\n\n    return result;\n  }\n\n  today(): Moment {\n    return this._createMoment().locale(this.locale);\n  }\n\n  parse(value: unknown, parseFormat: string | string[]): Moment | null {\n    if (value && typeof value == 'string') {\n      return this._createMoment(value, parseFormat, this.locale);\n    }\n    return value ? this._createMoment(value).locale(this.locale) : null;\n  }\n\n  format(date: Moment, displayFormat: string): string {\n    date = this.clone(date);\n    if (!this.isValid(date) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('MomentDateAdapter: Cannot format invalid date.');\n    }\n    return date.format(displayFormat);\n  }\n\n  addCalendarYears(date: Moment, years: number): Moment {\n    return this.clone(date).add({years});\n  }\n\n  addCalendarMonths(date: Moment, months: number): Moment {\n    return this.clone(date).add({months});\n  }\n\n  addCalendarDays(date: Moment, days: number): Moment {\n    return this.clone(date).add({days});\n  }\n\n  toIso8601(date: Moment): string {\n    return this.clone(date).format();\n  }\n\n  /**\n   * Returns the given value if given a valid Moment or null. Deserializes valid ISO 8601 strings\n   * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid Moments and empty\n   * string into null. Returns an invalid date for all other values.\n   */\n  override deserialize(value: unknown): Moment | null {\n    let date;\n    if (value instanceof Date) {\n      date = this._createMoment(value).locale(this.locale);\n    } else if (this.isDateInstance(value)) {\n      // Note: assumes that cloning also sets the correct locale.\n      return this.clone(value);\n    }\n    if (typeof value === 'string') {\n      if (!value) {\n        return null;\n      }\n      date = this._createMoment(value, moment.ISO_8601).locale(this.locale);\n    }\n    if (date && this.isValid(date)) {\n      return this._createMoment(date).locale(this.locale);\n    }\n    return super.deserialize(value);\n  }\n\n  isDateInstance(obj: unknown): obj is Moment {\n    return moment.isMoment(obj);\n  }\n\n  isValid(date: Moment): boolean {\n    return this.clone(date).isValid();\n  }\n\n  invalid(): Moment {\n    return moment.invalid();\n  }\n\n  override setTime(target: Moment, hours: number, minutes: number, seconds: number): Moment {\n    if (typeof ngDevMode === 'undefined' || ngDevMode) {\n      if (hours < 0 || hours > 23) {\n        throw Error(`Invalid hours \"${hours}\". Hours value must be between 0 and 23.`);\n      }\n\n      if (minutes < 0 || minutes > 59) {\n        throw Error(`Invalid minutes \"${minutes}\". Minutes value must be between 0 and 59.`);\n      }\n\n      if (seconds < 0 || seconds > 59) {\n        throw Error(`Invalid seconds \"${seconds}\". Seconds value must be between 0 and 59.`);\n      }\n    }\n\n    return this.clone(target).set({hours, minutes, seconds, milliseconds: 0});\n  }\n\n  override getHours(date: Moment): number {\n    return date.hours();\n  }\n\n  override getMinutes(date: Moment): number {\n    return date.minutes();\n  }\n\n  override getSeconds(date: Moment): number {\n    return date.seconds();\n  }\n\n  override parseTime(value: unknown, parseFormat: string | string[]): Moment | null {\n    return this.parse(value, parseFormat);\n  }\n\n  override addSeconds(date: Moment, amount: number): Moment {\n    return this.clone(date).add({seconds: amount});\n  }\n\n  /** Creates a Moment instance while respecting the current UTC settings. */\n  private _createMoment(\n    date?: MomentInput,\n    format?: MomentFormatSpecification,\n    locale?: string,\n  ): Moment {\n    const {strict, useUtc}: MatMomentDateAdapterOptions = this._options || {};\n\n    return useUtc ? moment.utc(date, format, locale, strict) : moment(date, format, locale, strict);\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {MatDateFormats} from '@angular/material/core';\n\nexport const MAT_MOMENT_DATE_FORMATS: MatDateFormats = {\n  parse: {\n    dateInput: 'l',\n    timeInput: 'LT',\n  },\n  display: {\n    dateInput: 'l',\n    timeInput: 'LT',\n    monthYearLabel: 'MMM YYYY',\n    dateA11yLabel: 'LL',\n    monthYearA11yLabel: 'MMMM YYYY',\n    timeOptionLabel: 'LT',\n  },\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule, Provider} from '@angular/core';\nimport {DateAdapter, MAT_DATE_FORMATS, MatDateFormats} from '@angular/material/core';\nimport {\n  MAT_MOMENT_DATE_ADAPTER_OPTIONS,\n  MatMomentDateAdapterOptions,\n  MomentDateAdapter,\n} from './moment-date-adapter';\nimport {MAT_MOMENT_DATE_FORMATS} from './moment-date-formats';\n\nexport * from './moment-date-adapter';\nexport * from './moment-date-formats';\n\n@NgModule({\n  providers: [\n    {\n      provide: DateAdapter,\n      useClass: MomentDateAdapter,\n    },\n  ],\n})\nexport class MomentDateModule {}\n\n@NgModule({\n  providers: [provideMomentDateAdapter()],\n})\nexport class MatMomentDateModule {}\n\nexport function provideMomentDateAdapter(\n  formats: MatDateFormats = MAT_MOMENT_DATE_FORMATS,\n  options?: MatMomentDateAdapterOptions,\n): Provider[] {\n  const providers: Provider[] = [\n    {\n      provide: DateAdapter,\n      useClass: MomentDateAdapter,\n    },\n    {provide: MAT_DATE_FORMATS, useValue: formats},\n  ];\n\n  if (options) {\n    providers.push({provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: options});\n  }\n\n  return providers;\n}\n"],"names":["_rollupMoment","_moment"],"mappings":";;;;;;AAmBA,MAAM,MAAM,GAAGA,sBAAa,IAAIC,aAAO;MAmB1B,+BAA+B,GAAG,IAAI,cAAc,CAC/D,iCAAiC,EACjC;AACE,EAAA,UAAU,EAAE,MAAM;AAClB,EAAA,OAAO,EAAE,OAAO;AAAC,IAAA,MAAM,EAAE;GAAM;AAChC,CAAA;AAIH,SAAS,KAAK,CAAI,MAAc,EAAE,aAAmC,EAAA;AACnE,EAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;EACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAA,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;AACnC,EAAA;AACA,EAAA,OAAO,WAAW;AACpB;AAIM,MAAO,iBAAkB,SAAQ,WAAmB,CAAA;AAChD,EAAA,QAAQ,GAAG,MAAM,CAA8B,+BAA+B,EAAE;AACtF,IAAA,QAAQ,EAAE;AACX,GAAA,CAAC;EAOM,WAAW;AAUnB,EAAA,WAAA,GAAA;AACE,IAAA,KAAK,EAAE;AACP,IAAA,MAAM,UAAU,GAAG,MAAM,CAAS,eAAe,EAAE;AAAC,MAAA,QAAQ,EAAE;AAAI,KAAC,CAAC;IACpE,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;AAC/C,EAAA;EAES,SAAS,CAAC,MAAc,EAAA;AAC/B,IAAA,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AAEvB,IAAA,IAAI,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;IAChD,IAAI,CAAC,WAAW,GAAG;AACjB,MAAA,cAAc,EAAE,gBAAgB,CAAC,cAAc,EAAE;AACjD,MAAA,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE;AACrC,MAAA,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE;MAC3C,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClE,MAAA,cAAc,EAAE,gBAAgB,CAAC,QAAQ,EAAE;AAC3C,MAAA,eAAe,EAAE,gBAAgB,CAAC,aAAa,EAAE;AACjD,MAAA,gBAAgB,EAAE,gBAAgB,CAAC,WAAW;KAC/C;AACH,EAAA;EAEA,OAAO,CAAC,IAAY,EAAA;IAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AAChC,EAAA;EAEA,QAAQ,CAAC,IAAY,EAAA;IACnB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AACjC,EAAA;EAEA,OAAO,CAAC,IAAY,EAAA;IAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AAChC,EAAA;EAEA,YAAY,CAAC,IAAY,EAAA;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;AAC/B,EAAA;EAEA,aAAa,CAAC,KAAkC,EAAA;AAE9C,IAAA,OAAO,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW;AACrF,EAAA;AAEA,EAAA,YAAY,GAAA;AACV,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK;AAC/B,EAAA;EAEA,iBAAiB,CAAC,KAAkC,EAAA;IAClD,IAAI,KAAK,IAAI,MAAM,EAAE;AACnB,MAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc;AACxC,IAAA;IACA,IAAI,KAAK,IAAI,OAAO,EAAE;AACpB,MAAA,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe;AACzC,IAAA;AACA,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB;AAC1C,EAAA;EAEA,WAAW,CAAC,IAAY,EAAA;IACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACxC,EAAA;AAEA,EAAA,iBAAiB,GAAA;AACf,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc;AACxC,EAAA;EAEA,iBAAiB,CAAC,IAAY,EAAA;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;AACvC,EAAA;EAEA,KAAK,CAAC,IAAY,EAAA;IAChB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACzC,EAAA;AAEA,EAAA,UAAU,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAA;AAGlD,IAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,MAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE;AAC3B,QAAA,MAAM,KAAK,CAAC,CAAA,qBAAA,EAAwB,KAAK,4CAA4C,CAAC;AACxF,MAAA;MAEA,IAAI,IAAI,GAAG,CAAC,EAAE;AACZ,QAAA,MAAM,KAAK,CAAC,CAAA,cAAA,EAAiB,IAAI,mCAAmC,CAAC;AACvE,MAAA;AACF,IAAA;AAEA,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;MAAC,IAAI;MAAE,KAAK;AAAE,MAAA;AAAI,KAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAG1E,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,EAAE;AACxE,MAAA,MAAM,KAAK,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAA,wBAAA,EAA2B,KAAK,IAAI,CAAC;AACxE,IAAA;AAEA,IAAA,OAAO,MAAM;AACf,EAAA;AAEA,EAAA,KAAK,GAAA;IACH,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACjD,EAAA;AAEA,EAAA,KAAK,CAAC,KAAc,EAAE,WAA8B,EAAA;AAClD,IAAA,IAAI,KAAK,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;MACrC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;AAC5D,IAAA;AACA,IAAA,OAAO,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI;AACrE,EAAA;AAEA,EAAA,MAAM,CAAC,IAAY,EAAE,aAAqB,EAAA;AACxC,IAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACvB,IAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,EAAE;MAC1E,MAAM,KAAK,CAAC,gDAAgD,CAAC;AAC/D,IAAA;AACA,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AACnC,EAAA;AAEA,EAAA,gBAAgB,CAAC,IAAY,EAAE,KAAa,EAAA;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAAC,MAAA;AAAK,KAAC,CAAC;AACtC,EAAA;AAEA,EAAA,iBAAiB,CAAC,IAAY,EAAE,MAAc,EAAA;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAAC,MAAA;AAAM,KAAC,CAAC;AACvC,EAAA;AAEA,EAAA,eAAe,CAAC,IAAY,EAAE,IAAY,EAAA;IACxC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAAC,MAAA;AAAI,KAAC,CAAC;AACrC,EAAA;EAEA,SAAS,CAAC,IAAY,EAAA;IACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AAClC,EAAA;EAOS,WAAW,CAAC,KAAc,EAAA;AACjC,IAAA,IAAI,IAAI;IACR,IAAI,KAAK,YAAY,IAAI,EAAE;AACzB,MAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACtD,CAAA,MAAO,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;AAErC,MAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1B,IAAA;AACA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;MAC7B,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,IAAI;AACb,MAAA;AACA,MAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACvE,IAAA;IACA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACrD,IAAA;AACA,IAAA,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;AACjC,EAAA;EAEA,cAAc,CAAC,GAAY,EAAA;AACzB,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC7B,EAAA;EAEA,OAAO,CAAC,IAAY,EAAA;IAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;AACnC,EAAA;AAEA,EAAA,OAAO,GAAA;AACL,IAAA,OAAO,MAAM,CAAC,OAAO,EAAE;AACzB,EAAA;EAES,OAAO,CAAC,MAAc,EAAE,KAAa,EAAE,OAAe,EAAE,OAAe,EAAA;AAC9E,IAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,MAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE;AAC3B,QAAA,MAAM,KAAK,CAAC,CAAA,eAAA,EAAkB,KAAK,0CAA0C,CAAC;AAChF,MAAA;AAEA,MAAA,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,EAAE;AAC/B,QAAA,MAAM,KAAK,CAAC,CAAA,iBAAA,EAAoB,OAAO,4CAA4C,CAAC;AACtF,MAAA;AAEA,MAAA,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,EAAE;AAC/B,QAAA,MAAM,KAAK,CAAC,CAAA,iBAAA,EAAoB,OAAO,4CAA4C,CAAC;AACtF,MAAA;AACF,IAAA;IAEA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;MAAC,KAAK;MAAE,OAAO;MAAE,OAAO;AAAE,MAAA,YAAY,EAAE;AAAC,KAAC,CAAC;AAC3E,EAAA;EAES,QAAQ,CAAC,IAAY,EAAA;AAC5B,IAAA,OAAO,IAAI,CAAC,KAAK,EAAE;AACrB,EAAA;EAES,UAAU,CAAC,IAAY,EAAA;AAC9B,IAAA,OAAO,IAAI,CAAC,OAAO,EAAE;AACvB,EAAA;EAES,UAAU,CAAC,IAAY,EAAA;AAC9B,IAAA,OAAO,IAAI,CAAC,OAAO,EAAE;AACvB,EAAA;AAES,EAAA,SAAS,CAAC,KAAc,EAAE,WAA8B,EAAA;AAC/D,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC;AACvC,EAAA;AAES,EAAA,UAAU,CAAC,IAAY,EAAE,MAAc,EAAA;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAAC,MAAA,OAAO,EAAE;AAAM,KAAC,CAAC;AAChD,EAAA;AAGQ,EAAA,aAAa,CACnB,IAAkB,EAClB,MAAkC,EAClC,MAAe,EAAA;IAEf,MAAM;MAAC,MAAM;AAAE,MAAA;AAAM,KAAC,GAAgC,IAAI,CAAC,QAAQ,IAAI,EAAE;IAEzE,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AACjG,EAAA;;;;;UA1OW,iBAAiB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;;UAAjB,iBAAiB;AAAA,IAAA,YAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAAjB,iBAAiB;AAAA,EAAA,UAAA,EAAA,CAAA;UAD7B,OAAO;WAAC;AAAC,MAAA,YAAY,EAAE;KAAM;;;;;AC9CvB,MAAM,uBAAuB,GAAmB;AACrD,EAAA,KAAK,EAAE;AACL,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE;GACZ;AACD,EAAA,OAAO,EAAE;AACP,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,kBAAkB,EAAE,WAAW;AAC/B,IAAA,eAAe,EAAE;AAClB;;;MCMU,gBAAgB,CAAA;;;;;UAAhB,gBAAgB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;;UAAhB;AAAgB,GAAA,CAAA;AAAhB,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,QAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,IAAA,EAAA,gBAAgB;AAAA,IAAA,SAAA,EAPhB,CACT;AACE,MAAA,OAAO,EAAE,WAAW;AACpB,MAAA,QAAQ,EAAE;KACX;AACF,GAAA,CAAA;;;;;;QAEU,gBAAgB;AAAA,EAAA,UAAA,EAAA,CAAA;UAR5B,QAAQ;AAAC,IAAA,IAAA,EAAA,CAAA;AACR,MAAA,SAAS,EAAE,CACT;AACE,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,QAAQ,EAAE;OACX;KAEJ;;;MAMY,mBAAmB,CAAA;;;;;UAAnB,mBAAmB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;;UAAnB;AAAmB,GAAA,CAAA;AAAnB,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,QAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,IAAA,EAAA,mBAAmB;AAAA,IAAA,SAAA,EAFnB,CAAC,wBAAwB,EAAE;AAAC,GAAA,CAAA;;;;;;QAE5B,mBAAmB;AAAA,EAAA,UAAA,EAAA,CAAA;UAH/B,QAAQ;AAAC,IAAA,IAAA,EAAA,CAAA;AACR,MAAA,SAAS,EAAE,CAAC,wBAAwB,EAAE;KACvC;;;SAGe,wBAAwB,CACtC,OAAA,GAA0B,uBAAuB,EACjD,OAAqC,EAAA;EAErC,MAAM,SAAS,GAAe,CAC5B;AACE,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,QAAQ,EAAE;AACX,GAAA,EACD;AAAC,IAAA,OAAO,EAAE,gBAAgB;AAAE,IAAA,QAAQ,EAAE;AAAO,GAAC,CAC/C;AAED,EAAA,IAAI,OAAO,EAAE;IACX,SAAS,CAAC,IAAI,CAAC;AAAC,MAAA,OAAO,EAAE,+BAA+B;AAAE,MAAA,QAAQ,EAAE;AAAO,KAAC,CAAC;AAC/E,EAAA;AAEA,EAAA,OAAO,SAAS;AAClB;;;;"}