{"version":3,"file":"button.mjs","sources":["../../../../../../src/material/button/button.ts","../../../../../../src/material/button/button.html","../../../../../../src/material/button/button-module.ts","../../../../../../src/material/button/public-api.ts","../../../../../../src/material/button/index.ts","../../../../../../src/material/button/button_public_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.io/license\n */\n\nimport {FocusMonitor, FocusableOption, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  OnDestroy,\n  ViewChild,\n  ViewEncapsulation,\n  Optional,\n  Inject,\n  Input,\n  AfterViewInit,\n  NgZone,\n} from '@angular/core';\nimport {\n  CanColor,\n  CanDisable,\n  CanDisableRipple,\n  MatRipple,\n  mixinColor,\n  mixinDisabled,\n  mixinDisableRipple,\n} from '@angular/material/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\n\n/** Default color palette for round buttons (mat-fab and mat-mini-fab) */\nconst DEFAULT_ROUND_BUTTON_COLOR = 'accent';\n\n/**\n * List of classes to add to MatButton instances based on host attributes to\n * style as different variants.\n */\nconst BUTTON_HOST_ATTRIBUTES = [\n  'mat-button',\n  'mat-flat-button',\n  'mat-icon-button',\n  'mat-raised-button',\n  'mat-stroked-button',\n  'mat-mini-fab',\n  'mat-fab',\n];\n\n// Boilerplate for applying mixins to MatButton.\nconst _MatButtonBase = mixinColor(\n  mixinDisabled(\n    mixinDisableRipple(\n      class {\n        constructor(public _elementRef: ElementRef) {}\n      },\n    ),\n  ),\n);\n\n/**\n * Material design button.\n */\n@Component({\n  selector: `button[mat-button], button[mat-raised-button], button[mat-icon-button],\n             button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],\n             button[mat-flat-button]`,\n  exportAs: 'matButton',\n  host: {\n    '[attr.disabled]': 'disabled || null',\n    '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n    // Add a class for disabled button styling instead of the using attribute\n    // selector or pseudo-selector.  This allows users to create focusable\n    // disabled buttons without recreating the styles.\n    '[class.mat-button-disabled]': 'disabled',\n    'class': 'mat-focus-indicator',\n  },\n  templateUrl: 'button.html',\n  styleUrls: ['button.css'],\n  inputs: ['disabled', 'disableRipple', 'color'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatButton\n  extends _MatButtonBase\n  implements AfterViewInit, OnDestroy, CanDisable, CanColor, CanDisableRipple, FocusableOption\n{\n  /** Whether the button is round. */\n  readonly isRoundButton: boolean = this._hasHostAttributes('mat-fab', 'mat-mini-fab');\n\n  /** Whether the button is icon button. */\n  readonly isIconButton: boolean = this._hasHostAttributes('mat-icon-button');\n\n  /** Reference to the MatRipple instance of the button. */\n  @ViewChild(MatRipple) ripple: MatRipple;\n\n  constructor(\n    elementRef: ElementRef,\n    private _focusMonitor: FocusMonitor,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string,\n  ) {\n    super(elementRef);\n\n    // For each of the variant selectors that is present in the button's host\n    // attributes, add the correct corresponding class.\n    for (const attr of BUTTON_HOST_ATTRIBUTES) {\n      if (this._hasHostAttributes(attr)) {\n        (this._getHostElement() as HTMLElement).classList.add(attr);\n      }\n    }\n\n    // Add a class that applies to all buttons. This makes it easier to target if somebody\n    // wants to target all Material buttons. We do it here rather than `host` to ensure that\n    // the class is applied to derived classes.\n    elementRef.nativeElement.classList.add('mat-button-base');\n\n    if (this.isRoundButton) {\n      this.color = DEFAULT_ROUND_BUTTON_COLOR;\n    }\n  }\n\n  ngAfterViewInit() {\n    this._focusMonitor.monitor(this._elementRef, true);\n  }\n\n  ngOnDestroy() {\n    this._focusMonitor.stopMonitoring(this._elementRef);\n  }\n\n  /** Focuses the button. */\n  focus(origin?: FocusOrigin, options?: FocusOptions): void {\n    if (origin) {\n      this._focusMonitor.focusVia(this._getHostElement(), origin, options);\n    } else {\n      this._getHostElement().focus(options);\n    }\n  }\n\n  _getHostElement() {\n    return this._elementRef.nativeElement;\n  }\n\n  _isRippleDisabled() {\n    return this.disableRipple || this.disabled;\n  }\n\n  /** Gets whether the button has one of the given attributes. */\n  _hasHostAttributes(...attributes: string[]) {\n    return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\n  }\n}\n\n/**\n * Material design anchor button.\n */\n@Component({\n  selector: `a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab],\n             a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]`,\n  exportAs: 'matButton, matAnchor',\n  host: {\n    // Note that we ignore the user-specified tabindex when it's disabled for\n    // consistency with the `mat-button` applied on native buttons where even\n    // though they have an index, they're not tabbable.\n    '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n    '[attr.disabled]': 'disabled || null',\n    '[attr.aria-disabled]': 'disabled.toString()',\n    '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n    '[class.mat-button-disabled]': 'disabled',\n    'class': 'mat-focus-indicator',\n  },\n  inputs: ['disabled', 'disableRipple', 'color'],\n  templateUrl: 'button.html',\n  styleUrls: ['button.css'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatAnchor extends MatButton implements AfterViewInit, OnDestroy {\n  /** Tabindex of the button. */\n  @Input() tabIndex: number;\n\n  constructor(\n    focusMonitor: FocusMonitor,\n    elementRef: ElementRef,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode: string,\n    /** @breaking-change 14.0.0 _ngZone will be required. */\n    @Optional() private _ngZone?: NgZone,\n  ) {\n    super(elementRef, focusMonitor, animationMode);\n  }\n\n  override ngAfterViewInit(): void {\n    super.ngAfterViewInit();\n\n    /** @breaking-change 14.0.0 _ngZone will be required. */\n    if (this._ngZone) {\n      this._ngZone.runOutsideAngular(() => {\n        this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n      });\n    } else {\n      this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n    }\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this._elementRef.nativeElement.removeEventListener('click', this._haltDisabledEvents);\n  }\n\n  _haltDisabledEvents = (event: Event): void => {\n    // A disabled button shouldn't apply any actions\n    if (this.disabled) {\n      event.preventDefault();\n      event.stopImmediatePropagation();\n    }\n  };\n}\n","<span class=\"mat-button-wrapper\"><ng-content></ng-content></span>\n<span matRipple class=\"mat-button-ripple\"\n      [class.mat-button-ripple-round]=\"isRoundButton || isIconButton\"\n      [matRippleDisabled]=\"_isRippleDisabled()\"\n      [matRippleCentered]=\"isIconButton\"\n      [matRippleTrigger]=\"_getHostElement()\"></span>\n<span class=\"mat-button-focus-overlay\"></span>\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.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule, MatRippleModule} from '@angular/material/core';\nimport {MatAnchor, MatButton} from './button';\n\n@NgModule({\n  imports: [MatRippleModule, MatCommonModule],\n  exports: [MatButton, MatAnchor, MatCommonModule],\n  declarations: [MatButton, MatAnchor],\n})\nexport class MatButtonModule {}\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.io/license\n */\n\nexport * from './button-module';\nexport * from './button';\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.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAiCA;AACA,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAE5C;;;AAGG;AACH,MAAM,sBAAsB,GAAG;IAC7B,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,SAAS;CACV,CAAC;AAEF;AACA,MAAM,cAAc,GAAG,UAAU,CAC/B,aAAa,CACX,kBAAkB,CAChB,MAAA;AACE,IAAA,WAAA,CAAmB,WAAuB,EAAA;AAAvB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;KAAI;CAC/C,CACF,CACF,CACF,CAAC;AAEF;;AAEG;AAqBG,MAAO,SACX,SAAQ,cAAc,CAAA;AAYtB,IAAA,WAAA,CACE,UAAsB,EACd,aAA2B,EACe,cAAsB,EAAA;QAExE,KAAK,CAAC,UAAU,CAAC,CAAC;AAHV,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;AACe,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAQ;;QAXjE,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;;QAG5E,IAAA,CAAA,YAAY,GAAY,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;;;AAc1E,QAAA,KAAK,MAAM,IAAI,IAAI,sBAAsB,EAAE;AACzC,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;gBAChC,IAAI,CAAC,eAAe,EAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7D,aAAA;AACF,SAAA;;;;QAKD,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE1D,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,0BAA0B,CAAC;AACzC,SAAA;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KACpD;IAED,WAAW,GAAA;QACT,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACrD;;IAGD,KAAK,CAAC,MAAoB,EAAE,OAAsB,EAAA;AAChD,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACtE,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACvC,SAAA;KACF;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;KACvC;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC;KAC5C;;IAGD,kBAAkB,CAAC,GAAG,UAAoB,EAAA;AACxC,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;KACrF;;AAlEU,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,wEAgBE,qBAAqB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0FAhBhC,SAAS,EAAA,QAAA,EAAA,gMAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,+BAAA,EAAA,uCAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAWT,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/FtB,sYAOA,EAAA,MAAA,EAAA,CAAA,skNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FD6Ea,SAAS,EAAA,UAAA,EAAA,CAAA;kBApBrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA;;AAEyB,oCAAA,CAAA,EAAA,QAAA,EACzB,WAAW,EACf,IAAA,EAAA;AACJ,wBAAA,iBAAiB,EAAE,kBAAkB;AACrC,wBAAA,iCAAiC,EAAE,qCAAqC;;;;AAIxE,wBAAA,6BAA6B,EAAE,UAAU;AACzC,wBAAA,OAAO,EAAE,qBAAqB;AAC/B,qBAAA,EAAA,MAAA,EAGO,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,EAC/B,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sYAAA,EAAA,MAAA,EAAA,CAAA,skNAAA,CAAA,EAAA,CAAA;;;8BAkB5C,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;yBALrB,MAAM,EAAA,CAAA;sBAA3B,SAAS;uBAAC,SAAS,CAAA;;AA0DtB;;AAEG;AAsBG,MAAO,SAAU,SAAQ,SAAS,CAAA;AAItC,IAAA,WAAA,CACE,YAA0B,EAC1B,UAAsB,EACqB,aAAqB;;IAE5C,OAAgB,EAAA;AAEpC,QAAA,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAF3B,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AAuBtC,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAY,KAAU;;YAE3C,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;AAClC,aAAA;AACH,SAAC,CAAC;KA1BD;IAEQ,eAAe,GAAA;QACtB,KAAK,CAAC,eAAe,EAAE,CAAC;;QAGxB,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;AAClC,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACrF,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACpF,SAAA;KACF;IAEQ,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;KACvF;;AA9BU,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,wEAOE,qBAAqB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAPhC,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,6oBCjLtB,sYAOA,EAAA,MAAA,EAAA,CAAA,skNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FD0Ka,SAAS,EAAA,UAAA,EAAA,CAAA;kBArBrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA;AAC4D,uEAAA,CAAA,EAAA,QAAA,EAC5D,sBAAsB,EAC1B,IAAA,EAAA;;;;AAIJ,wBAAA,iBAAiB,EAAE,0BAA0B;AAC7C,wBAAA,iBAAiB,EAAE,kBAAkB;AACrC,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,iCAAiC,EAAE,qCAAqC;AACxE,wBAAA,6BAA6B,EAAE,UAAU;AACzC,wBAAA,OAAO,EAAE,qBAAqB;AAC/B,qBAAA,EAAA,MAAA,EACO,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,EAG/B,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sYAAA,EAAA,MAAA,EAAA,CAAA,skNAAA,CAAA,EAAA,CAAA;;;8BAS5C,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;8BAExC,QAAQ;;yBAPF,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;AEnLR;;;;;;AAMG;MAWU,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAFX,YAAA,EAAA,CAAA,SAAS,EAAE,SAAS,CAFzB,EAAA,OAAA,EAAA,CAAA,eAAe,EAAE,eAAe,CAChC,EAAA,OAAA,EAAA,CAAA,SAAS,EAAE,SAAS,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAGpC,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAJhB,OAAA,EAAA,CAAA,eAAe,EAAE,eAAe,EACV,eAAe,CAAA,EAAA,CAAA,CAAA;2FAGpC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAC3C,oBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC;AAChD,oBAAA,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;iBACrC,CAAA;;;AChBD;;;;;;AAMG;;ACNH;;;;;;AAMG;;ACNH;;AAEG;;;;"}