Ignore:
Timestamp:
11/25/21 22:08:24 (3 years ago)
Author:
Ema <ema_spirova@…>
Branches:
master
Children:
8d391a1
Parents:
59329aa
Message:

primeNG components

Location:
trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js

    r59329aa re29cc2e  
    11/**
    2  * @license Angular v12.2.9
     2 * @license Angular v12.2.13
    33 * (c) 2010-2021 Google LLC. https://angular.io/
    44 * License: MIT
  • trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js

    r59329aa re29cc2e  
    11/**
    2  * @license Angular v12.2.9
     2 * @license Angular v12.2.13
    33 * (c) 2010-2021 Google LLC. https://angular.io/
    44 * License: MIT
     
    21452145 * @publicApi
    21462146 */
    2147 const VERSION = new Version('12.2.9');
     2147const VERSION = new Version('12.2.13');
    21482148
    21492149/**
  • trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js.map

    r59329aa re29cc2e  
    1 {"version":3,"file":"platform-browser.js","sources":["../../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../../packages/platform-browser/src/browser/xhr.ts","../../../../../../packages/platform-browser/src/dom/util.ts","../../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../../packages/platform-browser/src/browser.ts","../../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../../packages/platform-browser/src/browser/title.ts","../../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../../packages/platform-browser/src/private_export.ts","../../../../../../packages/platform-browser/src/version.ts","../../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../../packages/platform-browser/public_api.ts","../../../../../../packages/platform-browser/index.ts","../../../../../../packages/platform-browser/platform-browser.ts"],"names":["DomAdapter","setRootDomAdapter","parseCookieValue","getDOM","global","Console","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","getSanitizationBypassType","_sanitizeUrl","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","PLATFORM_BROWSER_ID","INJECTOR_SCOPE","window"],"mappings":"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","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 {ɵDomAdapter as DomAdapter} from '@angular/common';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n  readonly supportsDOMEvents: boolean = true;\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.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue, ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n  static makeCurrent() {\n    setRootDomAdapter(new BrowserDomAdapter());\n  }\n\n  onAndCancel(el: Node, evt: any, listener: any): Function {\n    el.addEventListener(evt, listener, false);\n    // Needed to follow Dart's subscription semantic, until fix of\n    // https://code.google.com/p/dart/issues/detail?id=17406\n    return () => {\n      el.removeEventListener(evt, listener, false);\n    };\n  }\n  dispatchEvent(el: Node, evt: any) {\n    el.dispatchEvent(evt);\n  }\n  remove(node: Node): void {\n    if (node.parentNode) {\n      node.parentNode.removeChild(node);\n    }\n  }\n  createElement(tagName: string, doc?: Document): HTMLElement {\n    doc = doc || this.getDefaultDocument();\n    return doc.createElement(tagName);\n  }\n  createHtmlDocument(): HTMLDocument {\n    return document.implementation.createHTMLDocument('fakeTitle');\n  }\n  getDefaultDocument(): Document {\n    return document;\n  }\n\n  isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n  }\n\n  isShadowRoot(node: any): boolean {\n    return node instanceof DocumentFragment;\n  }\n\n  /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n  getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n    if (target === 'window') {\n      return window;\n    }\n    if (target === 'document') {\n      return doc;\n    }\n    if (target === 'body') {\n      return doc.body;\n    }\n    return null;\n  }\n  getBaseHref(doc: Document): string|null {\n    const href = getBaseElementHref();\n    return href == null ? null : relativePath(href);\n  }\n  resetBaseElement(): void {\n    baseElement = null;\n  }\n  getUserAgent(): string {\n    return window.navigator.userAgent;\n  }\n  getCookie(name: string): string|null {\n    return parseCookieValue(document.cookie, name);\n  }\n}\n\nlet baseElement: HTMLElement|null = null;\nfunction getBaseElementHref(): string|null {\n  baseElement = baseElement || document.querySelector('base');\n  return baseElement ? baseElement.getAttribute('href') : null;\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: HTMLAnchorElement|undefined;\nfunction relativePath(url: any): string {\n  urlParsingNode = urlParsingNode || document.createElement('a');\n  urlParsingNode.setAttribute('href', url);\n  const pathName = urlParsingNode.pathname;\n  return pathName.charAt(0) === '/' ? pathName : `/${pathName}`;\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {APP_INITIALIZER, ApplicationInitStatus, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n  return () => {\n    // Wait for all application initializers to be completed before removing the styles set by\n    // the server.\n    injector.get(ApplicationInitStatus).donePromise.then(() => {\n      const dom = getDOM();\n      const styles: HTMLCollectionOf<HTMLStyleElement> =\n          document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n      for (let i = 0; i < styles.length; i++) {\n        dom.remove(styles[i]);\n      }\n    });\n  };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: appInitializerFactory,\n    deps: [TRANSITION_ID, DOCUMENT, Injector],\n    multi: true\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {GetTestability, setTestabilityGetter, Testability, TestabilityRegistry, ɵglobal as global} from '@angular/core';\n\nexport class BrowserGetTestability implements GetTestability {\n  static init() {\n    setTestabilityGetter(new BrowserGetTestability());\n  }\n\n  addToWindow(registry: TestabilityRegistry): void {\n    global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n      const testability = registry.findTestabilityInTree(elem, findInAncestors);\n      if (testability == null) {\n        throw new Error('Could not find testability for element.');\n      }\n      return testability;\n    };\n\n    global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n    global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n    const whenAllStable = (callback: any /** TODO #9100 */) => {\n      const testabilities = global['getAllAngularTestabilities']();\n      let count = testabilities.length;\n      let didWork = false;\n      const decrement = function(didWork_: any /** TODO #9100 */) {\n        didWork = didWork || didWork_;\n        count--;\n        if (count == 0) {\n          callback(didWork);\n        }\n      };\n      testabilities.forEach(function(testability: any /** TODO #9100 */) {\n        testability.whenStable(decrement);\n      });\n    };\n\n    if (!global['frameworkStabilizers']) {\n      global['frameworkStabilizers'] = [];\n    }\n    global['frameworkStabilizers'].push(whenAllStable);\n  }\n\n  findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean):\n      Testability|null {\n    if (elem == null) {\n      return null;\n    }\n    const t = registry.getTestability(elem);\n    if (t != null) {\n      return t;\n    } else if (!findInAncestors) {\n      return null;\n    }\n    if (getDOM().isShadowRoot(elem)) {\n      return this.findTestabilityInTree(registry, (<any>elem).host, true);\n    }\n    return this.findTestabilityInTree(registry, elem.parentElement, true);\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.io/license\n */\n\nimport {XhrFactory} from '@angular/common';\nimport {Injectable} from '@angular/core';\n\n/**\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\n */\n@Injectable()\nexport class BrowserXhr implements XhrFactory {\n  build(): XMLHttpRequest {\n    return new XMLHttpRequest();\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.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n  return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n  if (typeof COMPILED === 'undefined' || !COMPILED) {\n    // Note: we can't export `ng` when using closure enhanced optimization as:\n    // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n    // - we can't declare a closure extern as the namespace `ng` is already used within Google\n    //   for typings for angularJS (via `goog.provide('ng....')`).\n    const ng = global['ng'] = (global['ng'] as {[key: string]: any} | undefined) || {};\n    ng[name] = value;\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.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationRef, DebugNode, NgProbeToken, NgZone, Optional, Provider, ɵgetDebugNodeR2} from '@angular/core';\n\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = (() => ({\n                       'ApplicationRef': ApplicationRef,\n                       'NgZone': NgZone,\n                     }))();\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElementR2(element: any): DebugNode|null {\n  return ɵgetDebugNodeR2(element);\n}\n\nexport function _createNgProbeR2(coreTokens: NgProbeToken[]): any {\n  exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElementR2);\n  exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n  return () => inspectNativeElementR2;\n}\n\nfunction _ngProbeTokensToMap(tokens: NgProbeToken[]): {[name: string]: any} {\n  return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\n * with more robust functionality.\n *\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\n * tree-shaking properly.\n */\nexport const ELEMENT_PROBE_PROVIDERS__POST_R3__ = [];\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: _createNgProbeR2,\n    deps: [\n      [NgProbeToken, new Optional()],\n    ],\n    multi: true,\n  },\n];\n\nexport const ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\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 {ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n    new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\n\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n@Injectable()\nexport class EventManager {\n  private _plugins: EventManagerPlugin[];\n  private _eventNameToPlugin = new Map<string, EventManagerPlugin>();\n\n  /**\n   * Initializes an instance of the event-manager service.\n   */\n  constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n    plugins.forEach(p => p.manager = this);\n    this._plugins = plugins.slice().reverse();\n  }\n\n  /**\n   * Registers a handler for a specific element and event.\n   *\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns  A callback function that can be used to remove the handler.\n   */\n  addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addEventListener(element, eventName, handler);\n  }\n\n  /**\n   * Registers a global handler for an event in a target view.\n   *\n   * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns A callback function that can be used to remove the handler.\n   * @deprecated No longer being used in Ivy code. To be removed in version 14.\n   */\n  addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addGlobalEventListener(target, eventName, handler);\n  }\n\n  /**\n   * Retrieves the compilation zone in which event listeners are registered.\n   */\n  getZone(): NgZone {\n    return this._zone;\n  }\n\n  /** @internal */\n  _findPluginFor(eventName: string): EventManagerPlugin {\n    const plugin = this._eventNameToPlugin.get(eventName);\n    if (plugin) {\n      return plugin;\n    }\n\n    const plugins = this._plugins;\n    for (let i = 0; i < plugins.length; i++) {\n      const plugin = plugins[i];\n      if (plugin.supports(eventName)) {\n        this._eventNameToPlugin.set(eventName, plugin);\n        return plugin;\n      }\n    }\n    throw new Error(`No event manager plugin found for event ${eventName}`);\n  }\n}\n\nexport abstract class EventManagerPlugin {\n  constructor(private _doc: any) {}\n\n  // TODO(issue/24571): remove '!'.\n  manager!: EventManager;\n\n  abstract supports(eventName: string): boolean;\n\n  abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n  addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n    const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n    if (!target) {\n      throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n    }\n    return this.addEventListener(target, eventName, handler);\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n  /** @internal */\n  protected _stylesSet = new Set<string>();\n\n  addStyles(styles: string[]): void {\n    const additions = new Set<string>();\n    styles.forEach(style => {\n      if (!this._stylesSet.has(style)) {\n        this._stylesSet.add(style);\n        additions.add(style);\n      }\n    });\n    this.onStylesAdded(additions);\n  }\n\n  onStylesAdded(additions: Set<string>): void {}\n\n  getAllStyles(): string[] {\n    return Array.from(this._stylesSet);\n  }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n  // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n  private _hostNodes = new Map<Node, Node[]>();\n\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n    this._hostNodes.set(_doc.head, []);\n  }\n\n  private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n    styles.forEach((style: string) => {\n      const styleEl = this._doc.createElement('style');\n      styleEl.textContent = style;\n      styleNodes.push(host.appendChild(styleEl));\n    });\n  }\n\n  addHost(hostNode: Node): void {\n    const styleNodes: Node[] = [];\n    this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n    this._hostNodes.set(hostNode, styleNodes);\n  }\n\n  removeHost(hostNode: Node): void {\n    const styleNodes = this._hostNodes.get(hostNode);\n    if (styleNodes) {\n      styleNodes.forEach(removeStyle);\n    }\n    this._hostNodes.delete(hostNode);\n  }\n\n  override onStylesAdded(additions: Set<string>): void {\n    this._hostNodes.forEach((styleNodes, hostNode) => {\n      this._addStylesToHost(additions, hostNode, styleNodes);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n  }\n}\n\nfunction removeStyle(styleNode: Node): void {\n  getDOM().remove(styleNode);\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.io/license\n */\n\nimport {APP_ID, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n  'svg': 'http://www.w3.org/2000/svg',\n  'xhtml': 'http://www.w3.org/1999/xhtml',\n  'xlink': 'http://www.w3.org/1999/xlink',\n  'xml': 'http://www.w3.org/XML/1998/namespace',\n  'xmlns': 'http://www.w3.org/2000/xmlns/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n  return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n  return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n    compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n  for (let i = 0; i < styles.length; i++) {\n    let style = styles[i];\n\n    if (Array.isArray(style)) {\n      flattenStyles(compId, style, target);\n    } else {\n      style = style.replace(COMPONENT_REGEX, compId);\n      target.push(style);\n    }\n  }\n  return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n  // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n  // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n  // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n  // the listener (see below).\n  return (event: any) => {\n    // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n    // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n    // can inspect the listener toString contents for the existence of this special token. Because\n    // the token is a string literal, it is ensured to not be modified by compiled code.\n    if (event === '__ngUnwrap__') {\n      return eventHandler;\n    }\n\n    const allowDefaultBehavior = eventHandler(event);\n    if (allowDefaultBehavior === false) {\n      // TODO(tbosch): move preventDefault into event plugins...\n      event.preventDefault();\n      event.returnValue = false;\n    }\n\n    return undefined;\n  };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n  private rendererByCompId = new Map<string, Renderer2>();\n  private defaultRenderer: Renderer2;\n\n  constructor(\n      private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      @Inject(APP_ID) private appId: string) {\n    this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n  }\n\n  createRenderer(element: any, type: RendererType2|null): Renderer2 {\n    if (!element || !type) {\n      return this.defaultRenderer;\n    }\n    switch (type.encapsulation) {\n      case ViewEncapsulation.Emulated: {\n        let renderer = this.rendererByCompId.get(type.id);\n        if (!renderer) {\n          renderer = new EmulatedEncapsulationDomRenderer2(\n              this.eventManager, this.sharedStylesHost, type, this.appId);\n          this.rendererByCompId.set(type.id, renderer);\n        }\n        (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n        return renderer;\n      }\n      // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n      // value that is not known (but previously was the value for ViewEncapsulation.Native)\n      case 1:\n      case ViewEncapsulation.ShadowDom:\n        // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n        if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n            // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n            // enum value that is not known (but previously was the value for\n            // ViewEncapsulation.Native)\n            !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n          hasLoggedNativeEncapsulationWarning = true;\n          console.warn(\n              'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n        }\n\n        return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n      default: {\n        if (!this.rendererByCompId.has(type.id)) {\n          const styles = flattenStyles(type.id, type.styles, []);\n          this.sharedStylesHost.addStyles(styles);\n          this.rendererByCompId.set(type.id, this.defaultRenderer);\n        }\n        return this.defaultRenderer;\n      }\n    }\n  }\n\n  begin() {}\n  end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n  data: {[key: string]: any} = Object.create(null);\n\n  constructor(private eventManager: EventManager) {}\n\n  destroy(): void {}\n\n  destroyNode: null;\n\n  createElement(name: string, namespace?: string): any {\n    if (namespace) {\n      // In cases where Ivy (not ViewEngine) is giving us the actual namespace, the look up by key\n      // will result in undefined, so we just return the namespace here.\n      return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n    }\n\n    return document.createElement(name);\n  }\n\n  createComment(value: string): any {\n    return document.createComment(value);\n  }\n\n  createText(value: string): any {\n    return document.createTextNode(value);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    parent.appendChild(newChild);\n  }\n\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    if (parent) {\n      parent.insertBefore(newChild, refChild);\n    }\n  }\n\n  removeChild(parent: any, oldChild: any): void {\n    if (parent) {\n      parent.removeChild(oldChild);\n    }\n  }\n\n  selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n    let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n                                                       selectorOrNode;\n    if (!el) {\n      throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n    }\n    if (!preserveContent) {\n      el.textContent = '';\n    }\n    return el;\n  }\n\n  parentNode(node: any): any {\n    return node.parentNode;\n  }\n\n  nextSibling(node: any): any {\n    return node.nextSibling;\n  }\n\n  setAttribute(el: any, name: string, value: string, namespace?: string): void {\n    if (namespace) {\n      name = namespace + ':' + name;\n      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.setAttributeNS(namespaceUri, name, value);\n      } else {\n        el.setAttribute(name, value);\n      }\n    } else {\n      el.setAttribute(name, value);\n    }\n  }\n\n  removeAttribute(el: any, name: string, namespace?: string): void {\n    if (namespace) {\n      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.removeAttributeNS(namespaceUri, name);\n      } else {\n        // TODO(FW-811): Since ivy is passing around full URIs for namespaces\n        // this could result in properties like `http://www.w3.org/2000/svg:cx=\"123\"`,\n        // which is wrong.\n        el.removeAttribute(`${namespace}:${name}`);\n      }\n    } else {\n      el.removeAttribute(name);\n    }\n  }\n\n  addClass(el: any, name: string): void {\n    el.classList.add(name);\n  }\n\n  removeClass(el: any, name: string): void {\n    el.classList.remove(name);\n  }\n\n  setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n    if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n      el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n    } else {\n      el.style[style] = value;\n    }\n  }\n\n  removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n    if (flags & RendererStyleFlags2.DashCase) {\n      el.style.removeProperty(style);\n    } else {\n      // IE requires '' instead of null\n      // see https://github.com/angular/angular/issues/7916\n      el.style[style] = '';\n    }\n  }\n\n  setProperty(el: any, name: string, value: any): void {\n    NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n    el[name] = value;\n  }\n\n  setValue(node: any, value: string): void {\n    node.nodeValue = value;\n  }\n\n  listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n      () => void {\n    NG_DEV_MODE && checkNoSyntheticProp(event, 'listener');\n    if (typeof target === 'string') {\n      return <() => void>this.eventManager.addGlobalEventListener(\n          target, event, decoratePreventDefault(callback));\n    }\n    return <() => void>this.eventManager.addEventListener(\n               target, event, decoratePreventDefault(callback)) as () => void;\n  }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n  if (name.charCodeAt(0) === AT_CHARCODE) {\n    throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n  - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n  - There is corresponding configuration for the animation named \\`${\n        name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n  }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n  private contentAttr: string;\n  private hostAttr: string;\n\n  constructor(\n      eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n      private component: RendererType2, appId: string) {\n    super(eventManager);\n    const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n    sharedStylesHost.addStyles(styles);\n\n    this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n    this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n  }\n\n  applyToHost(element: any) {\n    super.setAttribute(element, this.hostAttr, '');\n  }\n\n  override createElement(parent: any, name: string): Element {\n    const el = super.createElement(parent, name);\n    super.setAttribute(el, this.contentAttr, '');\n    return el;\n  }\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n  private shadowRoot: any;\n\n  constructor(\n      eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      private hostEl: any, component: RendererType2) {\n    super(eventManager);\n    this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n    this.sharedStylesHost.addHost(this.shadowRoot);\n    const styles = flattenStyles(component.id, component.styles, []);\n    for (let i = 0; i < styles.length; i++) {\n      const styleEl = document.createElement('style');\n      styleEl.textContent = styles[i];\n      this.shadowRoot.appendChild(styleEl);\n    }\n  }\n\n  private nodeOrShadowRoot(node: any): any {\n    return node === this.hostEl ? this.shadowRoot : node;\n  }\n\n  override destroy() {\n    this.sharedStylesHost.removeHost(this.shadowRoot);\n  }\n\n  override appendChild(parent: any, newChild: any): void {\n    return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n  }\n  override insertBefore(parent: any, newChild: any, refChild: any): void {\n    return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n  }\n  override removeChild(parent: any, oldChild: any): void {\n    return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n  }\n  override parentNode(node: any): any {\n    return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n  constructor(@Inject(DOCUMENT) doc: any) {\n    super(doc);\n  }\n\n  // This plugin should come last in the list of plugins, because it accepts all\n  // events.\n  override supports(eventName: string): boolean {\n    return true;\n  }\n\n  override addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    element.addEventListener(eventName, handler as EventListener, false);\n    return () => this.removeEventListener(element, eventName, handler as EventListener);\n  }\n\n  removeEventListener(target: any, eventName: string, callback: Function): void {\n    return target.removeEventListener(eventName, callback as EventListener);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgModule, Optional, Provider, ɵConsole as Console} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n  // pan\n  'pan': true,\n  'panstart': true,\n  'panmove': true,\n  'panend': true,\n  'pancancel': true,\n  'panleft': true,\n  'panright': true,\n  'panup': true,\n  'pandown': true,\n  // pinch\n  'pinch': true,\n  'pinchstart': true,\n  'pinchmove': true,\n  'pinchend': true,\n  'pinchcancel': true,\n  'pinchin': true,\n  'pinchout': true,\n  // press\n  'press': true,\n  'pressup': true,\n  // rotate\n  'rotate': true,\n  'rotatestart': true,\n  'rotatemove': true,\n  'rotateend': true,\n  'rotatecancel': true,\n  // swipe\n  'swipe': true,\n  'swipeleft': true,\n  'swiperight': true,\n  'swipeup': true,\n  'swipedown': true,\n  // tap\n  'tap': true,\n  'doubletap': true\n};\n\n/**\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n  on(eventName: string, callback?: Function): void;\n  off(eventName: string, callback?: Function): void;\n  destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n  /**\n   * A set of supported event names for gestures to be used in Angular.\n   * Angular supports all built-in recognizers, as listed in\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  events: string[] = [];\n\n  /**\n   * Maps gesture event names to a set of configuration options\n   * that specify overrides to the default values for specific properties.\n   *\n   * The key is a supported event name to be configured,\n   * and the options object contains a set of properties, with override values\n   * to be applied to the named recognizer event.\n   * For example, to disable recognition of the rotate event, specify\n   *  `{\"rotate\": {\"enable\": false}}`.\n   *\n   * Properties that are not present take the HammerJS default values.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   *\n   */\n  overrides: {[key: string]: Object} = {};\n\n  /**\n   * Properties whose default values can be overridden for a given event.\n   * Different sets of properties apply to different events.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  options?: {\n    cssProps?: any;\n    domEvents?: boolean;\n    enable?: boolean | ((manager: any) => boolean);\n    preset?: any[];\n    touchAction?: string;\n    recognizers?: any[];\n    inputClass?: any;\n    inputTarget?: EventTarget;\n  };\n\n  /**\n   * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n   * and attaches it to a given HTML element.\n   * @param element The element that will recognize gestures.\n   * @returns A HammerJS event-manager object.\n   */\n  buildHammer(element: HTMLElement): HammerInstance {\n    const mc = new Hammer!(element, this.options);\n\n    mc.get('pinch').set({enable: true});\n    mc.get('rotate').set({enable: true});\n\n    for (const eventName in this.overrides) {\n      mc.get(eventName).set(this.overrides[eventName]);\n    }\n\n    return mc;\n  }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n  private _loaderPromise: Promise<void>|null = null;\n\n  constructor(\n      @Inject(DOCUMENT) doc: any,\n      @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n      @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\n    super(doc);\n  }\n\n  override supports(eventName: string): boolean {\n    if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n      return false;\n    }\n\n    if (!(window as any).Hammer && !this.loader) {\n      if (typeof ngDevMode === 'undefined' || ngDevMode) {\n        this.console.warn(\n            `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n            `loaded and no custom loader has been specified.`);\n      }\n      return false;\n    }\n\n    return true;\n  }\n\n  override addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const zone = this.manager.getZone();\n    eventName = eventName.toLowerCase();\n\n    // If Hammer is not present but a loader is specified, we defer adding the event listener\n    // until Hammer is loaded.\n    if (!(window as any).Hammer && this.loader) {\n      this._loaderPromise = this._loaderPromise || this.loader();\n      // This `addEventListener` method returns a function to remove the added listener.\n      // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n      // than remove anything.\n      let cancelRegistration = false;\n      let deregister: Function = () => {\n        cancelRegistration = true;\n      };\n\n      this._loaderPromise\n          .then(() => {\n            // If Hammer isn't actually loaded when the custom loader resolves, give up.\n            if (!(window as any).Hammer) {\n              if (typeof ngDevMode === 'undefined' || ngDevMode) {\n                this.console.warn(\n                    `The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n              }\n              deregister = () => {};\n              return;\n            }\n\n            if (!cancelRegistration) {\n              // Now that Hammer is loaded and the listener is being loaded for real,\n              // the deregistration function changes from canceling registration to removal.\n              deregister = this.addEventListener(element, eventName, handler);\n            }\n          })\n          .catch(() => {\n            if (typeof ngDevMode === 'undefined' || ngDevMode) {\n              this.console.warn(\n                  `The \"${eventName}\" event cannot be bound because the custom ` +\n                  `Hammer.JS loader failed.`);\n            }\n            deregister = () => {};\n          });\n\n      // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n      // can change the behavior of `deregister` once the listener is added. Using a closure in\n      // this way allows us to avoid any additional data structures to track listener removal.\n      return () => {\n        deregister();\n      };\n    }\n\n    return zone.runOutsideAngular(() => {\n      // Creating the manager bind events, must be done outside of angular\n      const mc = this._config.buildHammer(element);\n      const callback = function(eventObj: HammerInput) {\n        zone.runGuarded(function() {\n          handler(eventObj);\n        });\n      };\n      mc.on(eventName, callback);\n      return () => {\n        mc.off(eventName, callback);\n        // destroy mc to prevent memory leak\n        if (typeof mc.destroy === 'function') {\n          mc.destroy();\n        }\n      };\n    });\n  }\n\n  isCustomEvent(eventName: string): boolean {\n    return this._config.events.indexOf(eventName) > -1;\n  }\n}\n\n/**\n * In Ivy, support for Hammer gestures is optional, so applications must\n * import the `HammerModule` at root to turn on support. This means that\n * Hammer-specific code can be tree-shaken away if not needed.\n */\nexport const HAMMER_PROVIDERS__POST_R3__ = [];\n\n/**\n * In View Engine, support for Hammer gestures is built-in by default.\n */\nexport const HAMMER_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: HammerGesturesPlugin,\n    multi: true,\n    deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n  },\n  {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n];\n\nexport const HAMMER_PROVIDERS = HAMMER_PROVIDERS__PRE_R3__;\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\n@NgModule({providers: HAMMER_PROVIDERS__PRE_R3__})\nexport class HammerModule {\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\n  // The following values are here for cross-browser compatibility and to match the W3C standard\n  // cf https://www.w3.org/TR/DOM-Level-3-Events-key/\n  '\\b': 'Backspace',\n  '\\t': 'Tab',\n  '\\x7F': 'Delete',\n  '\\x1B': 'Escape',\n  'Del': 'Delete',\n  'Esc': 'Escape',\n  'Left': 'ArrowLeft',\n  'Right': 'ArrowRight',\n  'Up': 'ArrowUp',\n  'Down': 'ArrowDown',\n  'Menu': 'ContextMenu',\n  'Scroll': 'ScrollLock',\n  'Win': 'OS'\n};\n\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n  'A': '1',\n  'B': '2',\n  'C': '3',\n  'D': '4',\n  'E': '5',\n  'F': '6',\n  'G': '7',\n  'H': '8',\n  'I': '9',\n  'J': '*',\n  'K': '+',\n  'M': '-',\n  'N': '.',\n  'O': '/',\n  '\\x60': '0',\n  '\\x90': 'NumLock'\n};\n\n\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS: {[key: string]: (event: KeyboardEvent) => boolean} = {\n  'alt': (event: KeyboardEvent) => event.altKey,\n  'control': (event: KeyboardEvent) => event.ctrlKey,\n  'meta': (event: KeyboardEvent) => event.metaKey,\n  'shift': (event: KeyboardEvent) => event.shiftKey\n};\n\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n@Injectable()\nexport class KeyEventsPlugin extends EventManagerPlugin {\n  /**\n   * Initializes an instance of the browser plug-in.\n   * @param doc The document in which key events will be detected.\n   */\n  constructor(@Inject(DOCUMENT) doc: any) {\n    super(doc);\n  }\n\n  /**\n   * Reports whether a named key event is supported.\n   * @param eventName The event name to query.\n   * @return True if the named key event is supported.\n   */\n  override supports(eventName: string): boolean {\n    return KeyEventsPlugin.parseEventName(eventName) != null;\n  }\n\n  /**\n   * Registers a handler for a specific element and key event.\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the key event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns The key event that was registered.\n   */\n  override addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const parsedEvent = KeyEventsPlugin.parseEventName(eventName)!;\n\n    const outsideHandler =\n        KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n    return this.manager.getZone().runOutsideAngular(() => {\n      return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n    });\n  }\n\n  static parseEventName(eventName: string): {fullKey: string, domEventName: string}|null {\n    const parts: string[] = eventName.toLowerCase().split('.');\n\n    const domEventName = parts.shift();\n    if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n      return null;\n    }\n\n    const key = KeyEventsPlugin._normalizeKey(parts.pop()!);\n\n    let fullKey = '';\n    MODIFIER_KEYS.forEach(modifierName => {\n      const index: number = parts.indexOf(modifierName);\n      if (index > -1) {\n        parts.splice(index, 1);\n        fullKey += modifierName + '.';\n      }\n    });\n    fullKey += key;\n\n    if (parts.length != 0 || key.length === 0) {\n      // returning null instead of throwing to let another plugin process the event\n      return null;\n    }\n\n    // NOTE: Please don't rewrite this as so, as it will break JSCompiler property renaming.\n    //       The code must remain in the `result['domEventName']` form.\n    // return {domEventName, fullKey};\n    const result: {fullKey: string, domEventName: string} = {} as any;\n    result['domEventName'] = domEventName;\n    result['fullKey'] = fullKey;\n    return result;\n  }\n\n  static getEventFullKey(event: KeyboardEvent): string {\n    let fullKey = '';\n    let key = getEventKey(event);\n    key = key.toLowerCase();\n    if (key === ' ') {\n      key = 'space';  // for readability\n    } else if (key === '.') {\n      key = 'dot';  // because '.' is used as a separator in event names\n    }\n    MODIFIER_KEYS.forEach(modifierName => {\n      if (modifierName != key) {\n        const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n        if (modifierGetter(event)) {\n          fullKey += modifierName + '.';\n        }\n      }\n    });\n    fullKey += key;\n    return fullKey;\n  }\n\n  /**\n   * Configures a handler callback for a key event.\n   * @param fullKey The event name that combines all simultaneous keystrokes.\n   * @param handler The function that responds to the key event.\n   * @param zone The zone in which the event occurred.\n   * @returns A callback function.\n   */\n  static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function {\n    return (event: any /** TODO #9100 */) => {\n      if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n        zone.runGuarded(() => handler(event));\n      }\n    };\n  }\n\n  /** @internal */\n  static _normalizeKey(keyName: string): string {\n    // TODO: switch to a Map if the mapping grows too much\n    switch (keyName) {\n      case 'esc':\n        return 'escape';\n      default:\n        return keyName;\n    }\n  }\n}\n\nfunction getEventKey(event: any): string {\n  let key = event.key;\n  if (key == null) {\n    key = event.keyIdentifier;\n    // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n    // Safari cf\n    // https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n    if (key == null) {\n      return 'Unidentified';\n    }\n    if (key.startsWith('U+')) {\n      key = String.fromCharCode(parseInt(key.substring(2), 16));\n      if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n        // There is a bug in Chrome for numeric keypad keys:\n        // https://code.google.com/p/chromium/issues/detail?id=155654\n        // 1, 2, 3 ... are reported as A, B, C ...\n        key = (_chromeNumKeyPadMap as any)[key];\n      }\n    }\n  }\n\n  return _keyMap[key] || key;\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {forwardRef, Inject, Injectable, Injector, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeUrl as _sanitizeUrl, ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow, ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml, ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl, ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript, ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle, ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl, ɵBypassType as BypassType, ɵgetSanitizationBypassType as getSanitizationBypassType, ɵunwrapSafeValue as unwrapSafeValue} from '@angular/core';\n\nexport {SecurityContext};\n\n\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl)})\nexport abstract class DomSanitizer implements Sanitizer {\n  /**\n   * Sanitizes a value for use in the given SecurityContext.\n   *\n   * If value is trusted for the context, this method will unwrap the contained safe value and use\n   * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n   * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n   * is responsible to make sure that the value can definitely be safely used in the given context.\n   */\n  abstract sanitize(context: SecurityContext, value: SafeValue|string|null): string|null;\n\n  /**\n   * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n   * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n   * leave safe HTML intact, so in most situations this method should not be used.\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n  /**\n   * Bypass security and trust the given value to be safe style value (CSS).\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n  /**\n   * Bypass security and trust the given value to be safe JavaScript.\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n  /**\n   * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n   * in hyperlinks or `<img src>`.\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n  /**\n   * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n   * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\nexport function domSanitizerImplFactory(injector: Injector) {\n  return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\n\n@Injectable({providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector]})\nexport class DomSanitizerImpl extends DomSanitizer {\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n  }\n\n  override sanitize(ctx: SecurityContext, value: SafeValue|string|null): string|null {\n    if (value == null) return null;\n    switch (ctx) {\n      case SecurityContext.NONE:\n        return value as string;\n      case SecurityContext.HTML:\n        if (allowSanitizationBypassOrThrow(value, BypassType.Html)) {\n          return unwrapSafeValue(value);\n        }\n        return _sanitizeHtml(this._doc, String(value)).toString();\n      case SecurityContext.STYLE:\n        if (allowSanitizationBypassOrThrow(value, BypassType.Style)) {\n          return unwrapSafeValue(value);\n        }\n        return value as string;\n      case SecurityContext.SCRIPT:\n        if (allowSanitizationBypassOrThrow(value, BypassType.Script)) {\n          return unwrapSafeValue(value);\n        }\n        throw new Error('unsafe value used in a script context');\n      case SecurityContext.URL:\n        const type = getSanitizationBypassType(value);\n        if (allowSanitizationBypassOrThrow(value, BypassType.Url)) {\n          return unwrapSafeValue(value);\n        }\n        return _sanitizeUrl(String(value));\n      case SecurityContext.RESOURCE_URL:\n        if (allowSanitizationBypassOrThrow(value, BypassType.ResourceUrl)) {\n          return unwrapSafeValue(value);\n        }\n        throw new Error(\n            'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n      default:\n        throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\n    }\n  }\n\n  override bypassSecurityTrustHtml(value: string): SafeHtml {\n    return bypassSanitizationTrustHtml(value);\n  }\n  override bypassSecurityTrustStyle(value: string): SafeStyle {\n    return bypassSanitizationTrustStyle(value);\n  }\n  override bypassSecurityTrustScript(value: string): SafeScript {\n    return bypassSanitizationTrustScript(value);\n  }\n  override bypassSecurityTrustUrl(value: string): SafeUrl {\n    return bypassSanitizationTrustUrl(value);\n  }\n  override bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n    return bypassSanitizationTrustResourceUrl(value);\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.io/license\n */\n\nimport {CommonModule, DOCUMENT, XhrFactory, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, createPlatformFactory, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, ɵINJECTOR_SCOPE as INJECTOR_SCOPE, ɵsetDocument} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {BrowserXhr} from './browser/xhr';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_PROVIDERS} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport function initDomAdapter() {\n  BrowserDomAdapter.makeCurrent();\n  BrowserGetTestability.init();\n}\n\nexport function errorHandler(): ErrorHandler {\n  return new ErrorHandler();\n}\n\nexport function _document(): any {\n  // Tell ivy about the global document\n  ɵsetDocument(document);\n  return document;\n}\n\nexport const INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n  {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n  {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n  {provide: DOCUMENT, useFactory: _document, deps: []},\n];\n\nconst BROWSER_SANITIZATION_PROVIDERS__PRE_R3__: StaticProvider[] = [\n  {provide: Sanitizer, useExisting: DomSanitizer},\n  {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\nexport const BROWSER_SANITIZATION_PROVIDERS__POST_R3__ = [];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS__PRE_R3__;\n\n/**\n * A factory function that returns a `PlatformRef` instance associated with browser service\n * providers.\n *\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n    createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n  BROWSER_SANITIZATION_PROVIDERS,\n  {provide: INJECTOR_SCOPE, useValue: 'root'},\n  {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: DomEventsPlugin,\n    multi: true,\n    deps: [DOCUMENT, NgZone, PLATFORM_ID]\n  },\n  {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n  HAMMER_PROVIDERS,\n  {\n    provide: DomRendererFactory2,\n    useClass: DomRendererFactory2,\n    deps: [EventManager, DomSharedStylesHost, APP_ID]\n  },\n  {provide: RendererFactory2, useExisting: DomRendererFactory2},\n  {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n  {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n  {provide: Testability, useClass: Testability, deps: [NgZone]},\n  {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n  {provide: XhrFactory, useClass: BrowserXhr, deps: []},\n  ELEMENT_PROBE_PROVIDERS,\n];\n\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\n@NgModule({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n  constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n    if (parentModule) {\n      throw new Error(\n          `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n    }\n  }\n\n  /**\n   * Configures a browser-based app to transition from a server-rendered app, if\n   * one is present on the page.\n   *\n   * @param params An object containing an identifier for the app to transition.\n   * The ID must match between the client and server versions of the app.\n   * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n   */\n  static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n    return {\n      ngModule: BrowserModule,\n      providers: [\n        {provide: APP_ID, useValue: params.appId},\n        {provide: TRANSITION_ID, useExisting: APP_ID},\n        SERVER_TRANSITION_PROVIDERS,\n      ],\n    };\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.io/license\n */\n\nimport {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n/**\n * Represents the attributes of an HTML `<meta>` element. The element itself is\n * represented by the internal `HTMLMetaElement`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see `Meta`\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n  charset?: string;\n  content?: string;\n  httpEquiv?: string;\n  id?: string;\n  itemprop?: string;\n  name?: string;\n  property?: string;\n  scheme?: string;\n  url?: string;\n}&{\n  // TODO(IgorMinar): this type looks wrong\n  [prop: string]: string;\n};\n\n/**\n * Factory to create a `Meta` service instance for the current DOM document.\n */\nexport function createMeta() {\n  return new Meta(ɵɵinject(DOCUMENT));\n}\n\n/**\n * A service for managing HTML `<meta>` tags.\n *\n * Properties of the `MetaDefinition` object match the attributes of the\n * HTML `<meta>` tag. These tags define document metadata that is important for\n * things like configuring a Content Security Policy, defining browser compatibility\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\n * and Search Engine Optimization (SEO).\n *\n * To identify specific `<meta>` tags in a document, use an attribute selection\n * string in the format `\"tag_attribute='value string'\"`.\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\n * whose `name` attribute has the value `\"description\"`.\n * Selectors are used with the `querySelector()` Document method,\n * in the format `meta[{attrSelector}]`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n *\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createMeta, deps: []})\nexport class Meta {\n  private _dom: DomAdapter;\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    this._dom = getDOM();\n  }\n  /**\n   * Retrieves or creates a specific `<meta>` tag element in the current HTML document.\n   * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n   * values in the provided tag definition, and verifies that all other attribute values are equal.\n   * If an existing element is found, it is returned and is not modified in any way.\n   * @param tag The definition of a `<meta>` element to match or create.\n   * @param forceCreation True to create a new element without checking whether one already exists.\n   * @returns The existing element with the same attributes and values if found,\n   * the new element if no match is found, or `null` if the tag parameter is not defined.\n   */\n  addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement|null {\n    if (!tag) return null;\n    return this._getOrCreateElement(tag, forceCreation);\n  }\n\n  /**\n   * Retrieves or creates a set of `<meta>` tag elements in the current HTML document.\n   * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n   * values in the provided tag definition, and verifies that all other attribute values are equal.\n   * @param tags An array of tag definitions to match or create.\n   * @param forceCreation True to create new elements without checking whether they already exist.\n   * @returns The matching elements if found, or the new elements.\n   */\n  addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n    if (!tags) return [];\n    return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n      if (tag) {\n        result.push(this._getOrCreateElement(tag, forceCreation));\n      }\n      return result;\n    }, []);\n  }\n\n  /**\n   * Retrieves a `<meta>` tag element in the current HTML document.\n   * @param attrSelector The tag attribute and value to match against, in the format\n   * `\"tag_attribute='value string'\"`.\n   * @returns The matching element, if any.\n   */\n  getTag(attrSelector: string): HTMLMetaElement|null {\n    if (!attrSelector) return null;\n    return this._doc.querySelector(`meta[${attrSelector}]`) || null;\n  }\n\n  /**\n   * Retrieves a set of `<meta>` tag elements in the current HTML document.\n   * @param attrSelector The tag attribute and value to match against, in the format\n   * `\"tag_attribute='value string'\"`.\n   * @returns The matching elements, if any.\n   */\n  getTags(attrSelector: string): HTMLMetaElement[] {\n    if (!attrSelector) return [];\n    const list /*NodeList*/ = this._doc.querySelectorAll(`meta[${attrSelector}]`);\n    return list ? [].slice.call(list) : [];\n  }\n\n  /**\n   * Modifies an existing `<meta>` tag element in the current HTML document.\n   * @param tag The tag description with which to replace the existing tag content.\n   * @param selector A tag attribute and value to match against, to identify\n   * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n   * If not supplied, matches a tag with the same `name` or `property` attribute value as the\n   * replacement tag.\n   * @return The modified element.\n   */\n  updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement|null {\n    if (!tag) return null;\n    selector = selector || this._parseSelector(tag);\n    const meta: HTMLMetaElement = this.getTag(selector)!;\n    if (meta) {\n      return this._setMetaElementAttributes(tag, meta);\n    }\n    return this._getOrCreateElement(tag, true);\n  }\n\n  /**\n   * Removes an existing `<meta>` tag element from the current HTML document.\n   * @param attrSelector A tag attribute and value to match against, to identify\n   * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n   */\n  removeTag(attrSelector: string): void {\n    this.removeTagElement(this.getTag(attrSelector)!);\n  }\n\n  /**\n   * Removes an existing `<meta>` tag element from the current HTML document.\n   * @param meta The tag definition to match against to identify an existing tag.\n   */\n  removeTagElement(meta: HTMLMetaElement): void {\n    if (meta) {\n      this._dom.remove(meta);\n    }\n  }\n\n  private _getOrCreateElement(meta: MetaDefinition, forceCreation: boolean = false):\n      HTMLMetaElement {\n    if (!forceCreation) {\n      const selector: string = this._parseSelector(meta);\n      // It's allowed to have multiple elements with the same name so it's not enough to\n      // just check that element with the same name already present on the page. We also need to\n      // check if element has tag attributes\n      const elem = this.getTags(selector).filter(elem => this._containsAttributes(meta, elem))[0];\n      if (elem !== undefined) return elem;\n    }\n    const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n    this._setMetaElementAttributes(meta, element);\n    const head = this._doc.getElementsByTagName('head')[0];\n    head.appendChild(element);\n    return element;\n  }\n\n  private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n    Object.keys(tag).forEach(\n        (prop: string) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\n    return el;\n  }\n\n  private _parseSelector(tag: MetaDefinition): string {\n    const attr: string = tag.name ? 'name' : 'property';\n    return `${attr}=\"${tag[attr]}\"`;\n  }\n\n  private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n    return Object.keys(tag).every(\n        (key: string) => elem.getAttribute(this._getMetaKeyMap(key)) === tag[key]);\n  }\n\n  private _getMetaKeyMap(prop: string): string {\n    return META_KEYS_MAP[prop] || prop;\n  }\n}\n\n/**\n * Mapping for MetaDefinition properties with their correct meta attribute names\n */\nconst META_KEYS_MAP: {[prop: string]: string;} = {\n  httpEquiv: 'http-equiv'\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n  return new Title(ɵɵinject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createTitle, deps: []})\nexport class Title {\n  constructor(@Inject(DOCUMENT) private _doc: any) {}\n  /**\n   * Get the title of the current HTML document.\n   */\n  getTitle(): string {\n    return this._doc.title;\n  }\n\n  /**\n   * Set the title of the current HTML document.\n   * @param newTitle\n   */\n  setTitle(newTitle: string) {\n    this._doc.title = newTitle || '';\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.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\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 {ApplicationRef, ComponentRef} from '@angular/core';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n  constructor(public msPerTick: number, public numTicks: number) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n  appRef: ApplicationRef;\n\n  constructor(ref: ComponentRef<any>) {\n    this.appRef = ref.injector.get(ApplicationRef);\n  }\n\n  // tslint:disable:no-console\n  /**\n   * Exercises change detection in a loop and then prints the average amount of\n   * time in milliseconds how long a single round of change detection takes for\n   * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n   * of 500 milliseconds.\n   *\n   * Optionally, a user may pass a `config` parameter containing a map of\n   * options. Supported options are:\n   *\n   * `record` (boolean) - causes the profiler to record a CPU profile while\n   * it exercises the change detector. Example:\n   *\n   * ```\n   * ng.profiler.timeChangeDetection({record: true})\n   * ```\n   */\n  timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n    const record = config && config['record'];\n    const profileName = 'Change Detection';\n    // Profiler is not available in Android browsers without dev tools opened\n    const isProfilerAvailable = window.console.profile != null;\n    if (record && isProfilerAvailable) {\n      window.console.profile(profileName);\n    }\n    const start = performanceNow();\n    let numTicks = 0;\n    while (numTicks < 5 || (performanceNow() - start) < 500) {\n      this.appRef.tick();\n      numTicks++;\n    }\n    const end = performanceNow();\n    if (record && isProfilerAvailable) {\n      window.console.profileEnd(profileName);\n    }\n    const msPerTick = (end - start) / numTicks;\n    window.console.log(`ran ${numTicks} change detection cycles`);\n    window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n    return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n  }\n}\n\nfunction performanceNow() {\n  return window.performance && window.performance.now ? window.performance.now() :\n                                                        new Date().getTime();\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.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n *    then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n  exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n  return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n  exportNgVar(PROFILER_GLOBAL_NAME, null);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\n\nexport function escapeHtml(text: string): string {\n  const escapedText: {[k: string]: string} = {\n    '&': '&a;',\n    '\"': '&q;',\n    '\\'': '&s;',\n    '<': '&l;',\n    '>': '&g;',\n  };\n  return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n  const unescapedText: {[k: string]: string} = {\n    '&a;': '&',\n    '&q;': '\"',\n    '&s;': '\\'',\n    '&l;': '<',\n    '&g;': '>',\n  };\n  return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string&{__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n  return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n  private store: {[k: string]: {}|undefined} = {};\n  private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n  /** @internal */\n  static init(initState: {}) {\n    const transferState = new TransferState();\n    transferState.store = initState;\n    return transferState;\n  }\n\n  /**\n   * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n   */\n  get<T>(key: StateKey<T>, defaultValue: T): T {\n    return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n  }\n\n  /**\n   * Set the value corresponding to a key.\n   */\n  set<T>(key: StateKey<T>, value: T): void {\n    this.store[key] = value;\n  }\n\n  /**\n   * Remove a key from the store.\n   */\n  remove<T>(key: StateKey<T>): void {\n    delete this.store[key];\n  }\n\n  /**\n   * Test whether a key exists in the store.\n   */\n  hasKey<T>(key: StateKey<T>) {\n    return this.store.hasOwnProperty(key);\n  }\n\n  /**\n   * Register a callback to provide the value for a key when `toJson` is called.\n   */\n  onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n    this.onSerializeCallbacks[key] = callback;\n  }\n\n  /**\n   * Serialize the current state of the store to JSON.\n   */\n  toJson(): string {\n    // Call the onSerialize callbacks and put those values into the store.\n    for (const key in this.onSerializeCallbacks) {\n      if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n        try {\n          this.store[key] = this.onSerializeCallbacks[key]();\n        } catch (e) {\n          console.warn('Exception in onSerialize callback: ', e);\n        }\n      }\n    }\n    return JSON.stringify(this.store);\n  }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n  // Locate the script tag with the JSON data transferred from the server.\n  // The id of the script tag is set to the Angular appId + 'state'.\n  const script = doc.getElementById(appId + '-state');\n  let initialState = {};\n  if (script && script.textContent) {\n    try {\n      // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n      initialState = JSON.parse(unescapeHtml(script.textContent)) as {};\n    } catch (e) {\n      console.warn('Exception while restoring TransferState for app ' + appId, e);\n    }\n  }\n  return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n  providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n  /**\n   * Match all nodes.\n   *\n   * @usageNotes\n   * ### Example\n   *\n   * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n   */\n  static all(): Predicate<DebugNode> {\n    return () => true;\n  }\n\n  /**\n   * Match elements by the given CSS selector.\n   *\n   * @usageNotes\n   * ### Example\n   *\n   * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n   */\n  static css(selector: string): Predicate<DebugElement> {\n    return (debugElement) => {\n      return debugElement.nativeElement != null ?\n          elementMatches(debugElement.nativeElement, selector) :\n          false;\n    };\n  }\n\n  /**\n   * Match nodes that have the given directive present.\n   *\n   * @usageNotes\n   * ### Example\n   *\n   * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n   */\n  static directive(type: Type<any>): Predicate<DebugNode> {\n    return (debugNode) => debugNode.providerTokens!.indexOf(type) !== -1;\n  }\n}\n\nfunction elementMatches(n: any, selector: string): boolean {\n  if (getDOM().isElementNode(n)) {\n    return n.matches && n.matches(selector) ||\n        n.msMatchesSelector && n.msMatchesSelector(selector) ||\n        n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n  }\n\n  return false;\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.io/license\n */\n\nexport {ɵgetDOM} from '@angular/common';\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, BROWSER_SANITIZATION_PROVIDERS__POST_R3__ as ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__, initDomAdapter as ɵinitDomAdapter, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, flattenStyles as ɵflattenStyles, NAMESPACE_URIS as ɵNAMESPACE_URIS, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\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\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('12.2.9');\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 {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, makeStateKey, StateKey, TransferState} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HAMMER_PROVIDERS__POST_R3__ as ɵHAMMER_PROVIDERS__POST_R3__, HammerGestureConfig, HammerLoader, HammerModule} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n// This must be exported so it doesn't get tree-shaken away prematurely\nexport {ELEMENT_PROBE_PROVIDERS__POST_R3__ as ɵELEMENT_PROBE_PROVIDERS__POST_R3__} from './dom/debug/ng_probe';\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\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\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\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_p} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_l,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {BrowserXhr as ɵangular_packages_platform_browser_platform_browser_o} from './src/browser/xhr';\nexport {ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_n,_createNgProbeR2 as ɵangular_packages_platform_browser_platform_browser_m} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';\nexport {HAMMER_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,HAMMER_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_h} from './src/dom/events/hammer_gestures';\nexport {domSanitizerImplFactory as ɵangular_packages_platform_browser_platform_browser_j} from './src/security/dom_sanitization_service';"]}
     1{"version":3,"file":"platform-browser.js","sources":["../../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../../packages/platform-browser/src/browser/xhr.ts","../../../../../../packages/platform-browser/src/dom/util.ts","../../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../../packages/platform-browser/src/browser.ts","../../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../../packages/platform-browser/src/browser/title.ts","../../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../../packages/platform-browser/src/private_export.ts","../../../../../../packages/platform-browser/src/version.ts","../../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../../packages/platform-browser/public_api.ts","../../../../../../packages/platform-browser/index.ts","../../../../../../packages/platform-browser/platform-browser.ts"],"names":["DomAdapter","setRootDomAdapter","parseCookieValue","getDOM","global","Console","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","getSanitizationBypassType","_sanitizeUrl","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","PLATFORM_BROWSER_ID","INJECTOR_SCOPE","window"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA,MAAsB,wBAAyB,SAAQA,WAAU;AACjE,IADA;AAAgB;AAA6B,QAClC,sBAAiB,GAAY,IAAI,CAAC;AAC7C,KAAC;AACD;AAAE;ACrBF;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAa,iBAAkB,SAAQ,wBAAwB;AAC/D,IAAE,OAAO,WAAW;AACpB,QAAIC,kBAAiB,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;AAC/C,KAAG;AACH,IACE,WAAW,CAAC,EAAQ,EAAE,GAAQ,EAAE,QAAa;AAAI,QAC/C,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C;AACI;AACI,QAAJ,OAAO;AACX,YAAM,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACnD,SAAK,CAAC;AACN,KAAG;AACH,IAAE,aAAa,CAAC,EAAQ,EAAE,GAAQ;AAClC,QAAI,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAG;AACH,IAAE,MAAM,CAAC,IAAU;AAAI,QACnB,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,YAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxC,SAAK;AACL,KAAG;AACH,IAAE,aAAa,CAAC,OAAe,EAAE,GAAc;AAAI,QAC/C,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3C,QAAI,OAAO,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACtC,KAAG;AACH,IAAE,kBAAkB;AAAK,QACrB,OAAO,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACnE,KAAG;AACH,IAAE,kBAAkB;AAAK,QACrB,OAAO,QAAQ,CAAC;AACpB,KAAG;AACH,IACE,aAAa,CAAC,IAAU;AAAI,QAC1B,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC;AAC/C,KAAG;AACH,IACE,YAAY,CAAC,IAAS;AAAI,QACxB,OAAO,IAAI,YAAY,gBAAgB,CAAC;AAC5C,KAAG;AACH;AAEC,IAAC,oBAAoB,CAAC,GAAa,EAAE,MAAc;AAAI,QACpD,IAAI,MAAM,KAAK,QAAQ,EAAE;AAC7B,YAAM,OAAO,MAAM,CAAC;AACpB,SAAK;AACL,QAAI,IAAI,MAAM,KAAK,UAAU,EAAE;AAC/B,YAAM,OAAO,GAAG,CAAC;AACjB,SAAK;AACL,QAAI,IAAI,MAAM,KAAK,MAAM,EAAE;AAC3B,YAAM,OAAO,GAAG,CAAC,IAAI,CAAC;AACtB,SAAK;AACL,QAAI,OAAO,IAAI,CAAC;AAChB,KAAG;AACH,IAAE,WAAW,CAAC,GAAa;AAAI,QAC3B,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;AACtC,QAAI,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AACpD,KAAG;AACH,IAAE,gBAAgB;AAAK,QACnB,WAAW,GAAG,IAAI,CAAC;AACvB,KAAG;AACH,IAAE,YAAY;AAAK,QACf,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AACtC,KAAG;AACH,IAAE,SAAS,CAAC,IAAY;AAAI,QACxB,OAAOC,iBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACnD,KAAG;AACH,CAAC;AAED,IAAI,WAAW,GAAqB,IAAI,CAAC;AACzC,SAAS,kBAAkB;AAAK,IAC9B,WAAW,GAAG,WAAW,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9D,IAAE,OAAO,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAC/D,CAAC;AAED;AACA,IAAI,cAA2C,CAAC;AAChD,SAAS,YAAY,CAAC,GAAQ;AAAI,IAChC,cAAc,GAAG,cAAc,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACjE,IAAE,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3C,IAAE,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;AAC3C,IAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChE;AACA;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA,MAAa,aAAa,GAAG,IAAI,cAAc,CAAC,eAAe,EAAE;AACjE,SACgB,qBAAqB,CAAC,YAAoB,EAAE,QAAa,EAAE,QAAkB;AAC7F,IAAE,OAAO;AACT;AACI;AACI,QAAJ,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;AACzD,YAAM,MAAM,GAAG,GAAGC,OAAM,EAAE,CAAC;AAC3B,YAAM,MAAM,MAAM,GACR,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,YAAY,IAAI,CAAC,CAAC;AAC9E,YAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,gBAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,aAAO;AACP,SAAK,CAAC,CAAC;AACP,KAAG,CAAC;AACJ,CAAC;AACD,MACa,2BAA2B,GAAqB;AAC7D,IAAE;AACF,QAAI,OAAO,EAAE,eAAe;AAC5B,QAAI,UAAU,EAAE,qBAAqB;AACrC,QAAI,IAAI,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC7C,QAAI,KAAK,EAAE,IAAI;AACf,KAAG;AACH;AACA;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAIa,qBAAqB;AAAG,IACnC,OAAO,IAAI;AACb,QAAI,oBAAoB,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;AACtD,KAAG;AACH,IACE,WAAW,CAAC,QAA6B;AAAI,QAC3CC,OAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAS,EAAE,kBAA2B,IAAI;AACjF,YAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAChF,YAAM,IAAI,WAAW,IAAI,IAAI,EAAE;AAC/B,gBAAQ,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACnE,aAAO;AACP,YAAM,OAAO,WAAW,CAAC;AACzB,SAAK,CAAC;AACN,QACIA,OAAM,CAAC,4BAA4B,CAAC,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;AAChF,QACIA,OAAM,CAAC,2BAA2B,CAAC,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;AAC9E,QACI,MAAM,aAAa,GAAG,CAAC,QAAa;AACxC,YAAM,MAAM,aAAa,GAAGA,OAAM,CAAC,4BAA4B,CAAC,EAAE,CAAC;AACnE,YAAM,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;AACvC,YAAM,IAAI,OAAO,GAAG,KAAK,CAAC;AAC1B,YAAM,MAAM,SAAS,GAAG,UAAS,QAAa;AAC9C,gBAAQ,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC;AACtC,gBAAQ,KAAK,EAAE,CAAC;AAChB,gBAAQ,IAAI,KAAK,IAAI,CAAC,EAAE;AACxB,oBAAU,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC5B,iBAAS;AACT,aAAO,CAAC;AACR,YAAM,aAAa,CAAC,OAAO,CAAC,UAAS,WAAgB;AACrD,gBAAQ,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC1C,aAAO,CAAC,CAAC;AACT,SAAK,CAAC;AACN,QACI,IAAI,CAACA,OAAM,CAAC,sBAAsB,CAAC,EAAE;AACzC,YAAMA,OAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;AAC1C,SAAK;AACL,QAAIA,OAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvD,KAAG;AACH,IACE,qBAAqB,CAAC,QAA6B,EAAE,IAAS,EAAE,eAAwB;AACzF,QACG,IAAI,IAAI,IAAI,IAAI,EAAE;AACtB,YAAM,OAAO,IAAI,CAAC;AAClB,SAAK;AACL,QAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAI,IAAI,CAAC,IAAI,IAAI,EAAE;AACnB,YAAM,OAAO,CAAC,CAAC;AACf,SAAK;AAAC,aAAK,IAAI,CAAC,eAAe,EAAE;AACjC,YAAM,OAAO,IAAI,CAAC;AAClB,SAAK;AACL,QAAI,IAAID,OAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AACrC,YAAM,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAQ,IAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1E,SAAK;AACL,QAAI,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC1E,KAAG;AACH;AACA;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA,MACa,UAAU;AAAG,IACxB,KAAK;AAAK,QACR,OAAO,IAAI,cAAc,EAAE,CAAC;AAChC,KAAG;AACH;sCALC,UAAU;;;;0BACT;AAAC;ACfH;AACA;AACA;AACA;AACA;AACA;AACA;AAIA,MAAM,iBAAiB,GAAG,UAAU,CAAC;AACrC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,SAEgB,mBAAmB,CAAC,KAAa;AAAI,IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAW,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACxF,CAAC;AACD,SACgB,mBAAmB,CAAC,KAAa;AAAI,IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACjF,CAAC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAgB,WAAW,CAAC,IAAY,EAAE,KAAU;AAAI,IACtD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,EAAE;AACpD;AACI;AACI;AACI;AACI,QAAZ,MAAM,EAAE,GAAGC,OAAM,CAAC,IAAI,CAAC,GAAIA,OAAM,CAAC,IAAI,CAAsC,IAAI,EAAE,CAAC;AACvF,QAAI,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACrB,KAAG;AACH;AACA;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAKqB,OAAO;AAC5B,IAAuB,gBAAgB,EAAE,cAAc;AACvD,IAAuB,QAAQ,EAAE,MAAM;AACvC,CAAsB,CAAC;AAHvB,MAAM,WAAW,GAAG,MAGM,CAAC;AAE3B,MAAM,mBAAmB,GAAG,OAAO,CAAC;AACpC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAE7C;AACA;AACA;AACA;AACA;AACA,SAAgB,sBAAsB,CAAC,OAAY;AAAI,IACrD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AACD,SACgB,gBAAgB,CAAC,UAA0B;AAAI,IAC7D,WAAW,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC;AAC3D,IAAE,WAAW,CAAC,uBAAuB,kCAAM,WAAW,GAAK,mBAAmB,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;AACnG,IAAE,OAAO,MAAM,sBAAsB,CAAC;AACtC,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAsB;AAAI,IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,CAAM,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAa,kCAAkC,GAAG,GAAG;AAErD;AACA;AACA;AACA,MAAa,iCAAiC,GAAe;AAC7D,IAAE;AACF,QAAI,OAAO,EAAE,eAAe;AAC5B,QAAI,UAAU,EAAE,gBAAgB;AAChC,QAAI,IAAI,EAAE;AACV,YAAM,CAAC,YAAY,EAAE,IAAI,QAAQ,EAAE,CAAC;AACpC,SAAK;AACL,QAAI,KAAK,EAAE,IAAI;AACf,KAAG;AACH,EAAE;AACF,MACa,uBAAuB,GAAG,kCAAiC;AACxE;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA,MAAa,qBAAqB,GAC9B,IAAI,cAAc,CAAuB,qBAAqB,EAAE;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA,MACa,YAAY;AACzB;AAAQ;AACmB;AAAQ,IAKjC,YAA2C,OAA6B,EAAU,KAAa;AACjG,QADoF,UAAK,GAAL,KAAK,CAAQ;AAAC,QALxF,uBAAkB,GAAG,IAAI,GAAG,EAA8B,CAAC;AACrE,QAKI,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAC3C,QAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;AAC9C,KAAG;AACH;AAEC;AACE;AACE;AACE;AACE;AACE;AACE;AAEJ;AAAQ,IAAf,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB;AAAI,QAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAClD,QAAI,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAChE,KAAG;AACH;AAEC;AACE;AACE;AACE;AACE;AACE;AACE;AACE;AAEJ;AAAQ,IAAjB,sBAAsB,CAAC,MAAc,EAAE,SAAiB,EAAE,OAAiB;AAAI,QAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAClD,QAAI,OAAO,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACrE,KAAG;AACH;AAEC;AACE;AACE,IAAH,OAAO;AAAK,QACV,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,KAAG;AACH;AAEC,IAAC,cAAc,CAAC,SAAiB;AAAI,QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1D,QAAI,IAAI,MAAM,EAAE;AAChB,YAAM,OAAO,MAAM,CAAC;AACpB,SAAK;AACL,QACI,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,QAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,YAAM,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,YAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACtC,gBAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACvD,gBAAQ,OAAO,MAAM,CAAC;AACtB,aAAO;AACP,SAAK;AACL,QAAI,MAAM,IAAI,KAAK,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;AAC5E,KAAG;AACH;wCAlEC,UAAU;kHACT;AAAC;AACU,wCAME,MAAM,SAAC,qBAAqB;AAAS,YAxBR,MAAM;AAAG;;;;;;2DAAE;AAAC,MAoFlC,kBAAkB;AACxC,IAAE,YAAoB,IAAS;AAAI,QAAb,SAAI,GAAJ,IAAI,CAAK;AAAC,KAAG;AACnC,IAQE,sBAAsB,CAAC,OAAe,EAAE,SAAiB,EAAE,OAAiB;AAAI,QAC9E,MAAM,MAAM,GAAgBD,OAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClF,QAAI,IAAI,CAAC,MAAM,EAAE;AACjB,YAAM,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,cAAc,SAAS,EAAE,CAAC,CAAC;AACnF,SAAK;AACL,QAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC7D,KAAG;AACH;AACA;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAKa,gBAAgB;AAC7B,IAFA;AACE;AAAyB,QAEf,eAAU,GAAG,IAAI,GAAG,EAAU,CAAC;AAC3C,KAiBC;AACD,IAjBE,SAAS,CAAC,MAAgB;AAAI,QAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;AACxC,QAAI,MAAM,CAAC,OAAO,CAAC,KAAK;AACxB,YAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnC,gBAAQ,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,aAAO;AACP,SAAK,CAAC,CAAC;AACP,QAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAClC,KAAG;AACH,IACE,aAAa,CAAC,SAAsB,KAAU;AAChD,IACE,YAAY;AAAK,QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,KAAG;AACH;4CArBC,UAAU;;;;gDACT;AAAC,MAuBU,mBAAoB,SAAQ,gBAAgB;AAAG,IAI1D,YAAsC,IAAS;AACjD,QAAI,KAAK,EAAE,CAAC;AACZ,QAFwC,SAAI,GAAJ,IAAI,CAAK;AAAC;AAKL,QAPnC,eAAU,GAAG,IAAI,GAAG,EAAgB,CAAC;AAC/C,QAGI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvC,KAAG;AACH,IACU,gBAAgB,CAAC,MAAmB,EAAE,IAAU,EAAE,UAAkB;AAAI,QAC9E,MAAM,CAAC,OAAO,CAAC,CAAC,KAAa;AACjC,YAAM,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACvD,YAAM,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;AAClC,YAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,SAAK,CAAC,CAAC;AACP,KAAG;AACH,IACE,OAAO,CAAC,QAAc;AAAI,QACxB,MAAM,UAAU,GAAW,EAAE,CAAC;AAClC,QAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACjE,QAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9C,KAAG;AACH,IACE,UAAU,CAAC,QAAc;AAAI,QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrD,QAAI,IAAI,UAAU,EAAE;AACpB,YAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACtC,SAAK;AACL,QAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,KAAG;AACH,IACW,aAAa,CAAC,SAAsB;AAAI,QAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ;AACjD,YAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC7D,SAAK,CAAC,CAAC;AACP,KAAG;AACH,IACE,WAAW;AAAK,QACd,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3E,KAAG;AACH;+CAzCC,UAAU;uIACT;AAAC;AAA6C,4CAIjC,MAAM,SAAC,QAAQ;AAAQ;;;;;;kCAAE;AAsCxC,SAAS,WAAW,CAAC,SAAe;AAAI,IACtCA,OAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7B;AACA;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAMa,cAAc,GAA2B;AACtD,IAAE,KAAK,EAAE,4BAA4B;AACrC,IAAE,OAAO,EAAE,8BAA8B;AACzC,IAAE,OAAO,EAAE,8BAA8B;AACzC,IAAE,KAAK,EAAE,sCAAsC;AAC/C,IAAE,OAAO,EAAE,+BAA+B;AAC1C,EAAE;AAEF,MAAM,eAAe,GAAG,SAAS,CAAC;AAClC,MAAM,WAAW,GAAG,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,CAAC;AAE7D,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,SAAS,GAAG,WAAW,kBAAkB,EAAE,CAAC;AAClD,MAAM,YAAY,GAAG,cAAc,kBAAkB,EAAE,CAAC;AAC/D,SACgB,oBAAoB,CAAC,gBAAwB;AAAI,IAC/D,OAAO,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AACjE,CAAC;AACD,SACgB,iBAAiB,CAAC,gBAAwB;AAAI,IAC5D,OAAO,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAC9D,CAAC;AACD,SACgB,aAAa,CACzB,MAAc,EAAE,MAAwB,EAAE,MAAgB;AAAI,IAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAI,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,QACI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,YAAM,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3C,SAAK;AAAC,aAAK;AACX,YAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACrD,YAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAK;AACL,KAAG;AACH,IAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAsB;AAAI;AACkB;AACkB;AACA;AACjE,IAC3B,OAAO,CAAC,KAAU;AACpB;AACI;AACI;AACI;AACI,QAAZ,IAAI,KAAK,KAAK,cAAc,EAAE;AAClC,YAAM,OAAO,YAAY,CAAC;AAC1B,SAAK;AACL,QACI,MAAM,oBAAoB,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACrD,QAAI,IAAI,oBAAoB,KAAK,KAAK,EAAE;AACxC;AACM,YAAA,KAAK,CAAC,cAAc,EAAE,CAAC;AAC7B,YAAM,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;AAChC,SAAK;AACL,QACI,OAAO,SAAS,CAAC;AACrB,KAAG,CAAC;AACJ,CAAC;AAED,IAAI,mCAAmC,GAAG,KAAK,CAAC;AAChD,MAEa,mBAAmB;AAAG,IAIjC,YACY,YAA0B,EAAU,gBAAqC,EACzD,KAAa;AAC3C,QAFc,iBAAY,GAAZ,YAAY,CAAc;AAAC,QAAS,qBAAgB,GAAhB,gBAAgB,CAAqB;AAAC,QAC1D,UAAK,GAAL,KAAK,CAAQ;AAAC,QALlC,qBAAgB,GAAG,IAAI,GAAG,EAAqB,CAAC;AAC1D,QAKI,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;AACjE,KAAG;AACH,IACE,cAAc,CAAC,OAAY,EAAE,IAAwB;AAAI,QACvD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE;AAC3B,YAAM,OAAO,IAAI,CAAC,eAAe,CAAC;AAClC,SAAK;AACL,QAAI,QAAQ,IAAI,CAAC,aAAa;AAC9B,YAAM,KAAK,iBAAiB,CAAC,QAAQ,EAAE;AACvC,gBAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1D,gBAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,oBAAU,QAAQ,GAAG,IAAI,iCAAiC,CAC5C,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1E,oBAAU,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACvD,iBAAS;AACT,gBAA4C,QAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC3E,gBAAQ,OAAO,QAAQ,CAAC;AACxB,aAAO;AACP;AACM;AACM,YAAN,KAAK,CAAC,CAAC;AACb,YAAM,KAAK,iBAAiB,CAAC,SAAS;AACtC;AACQ,gBAAA,IAAI,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS;AAC1D;AACQ;AACQ;AACQ,oBAAZ,CAAC,mCAAmC,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AAC9E,oBAAU,mCAAmC,GAAG,IAAI,CAAC;AACrD,oBAAU,OAAO,CAAC,IAAI,CACR,oIAAoI,CAAC,CAAC;AACpJ,iBAAS;AACT,gBACQ,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC9F,YAAM,SAAS;AACf,gBAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACjD,oBAAU,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjE,oBAAU,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAClD,oBAAU,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACnE,iBAAS;AACT,gBAAQ,OAAO,IAAI,CAAC,eAAe,CAAC;AACpC,aAAO;AACP,SAAK;AACL,KAAG;AACH,IACE,KAAK,MAAK;AACZ,IAAE,GAAG,MAAK;AACV;+CAvDC,UAAU;uIACT;AAAC;AAA6C,YArExC,YAAY;AAAI,YAChB,mBAAmB;AAAI,yCA0ExB,MAAM,SAAC,MAAM;AAAQ;;;;;;kCAAE;AAkD9B,MAAM,mBAAmB;AAAG,IAG1B,YAAoB,YAA0B;AAAI,QAA9B,iBAAY,GAAZ,YAAY,CAAc;AAAC,QAF/C,SAAI,GAAyB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnD,KACoD;AACpD,IACE,OAAO,MAAW;AACpB,IAGE,aAAa,CAAC,IAAY,EAAE,SAAkB;AAAI,QAChD,IAAI,SAAS,EAAE;AACnB;AACM;AACM,YAAN,OAAO,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC;AACpF,SAAK;AACL,QACI,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACxC,KAAG;AACH,IACE,aAAa,CAAC,KAAa;AAAI,QAC7B,OAAO,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACzC,KAAG;AACH,IACE,UAAU,CAAC,KAAa;AAAI,QAC1B,OAAO,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC1C,KAAG;AACH,IACE,WAAW,CAAC,MAAW,EAAE,QAAa;AAAI,QACxC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACjC,KAAG;AACH,IACE,YAAY,CAAC,MAAW,EAAE,QAAa,EAAE,QAAa;AAAI,QACxD,IAAI,MAAM,EAAE;AAChB,YAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC9C,SAAK;AACL,KAAG;AACH,IACE,WAAW,CAAC,MAAW,EAAE,QAAa;AAAI,QACxC,IAAI,MAAM,EAAE;AAChB,YAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACnC,SAAK;AACL,KAAG;AACH,IACE,iBAAiB,CAAC,cAA0B,EAAE,eAAyB;AAAI,QACzE,IAAI,EAAE,GAAQ,OAAO,cAAc,KAAK,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC;AAC7F,YAAuD,cAAc,CAAC;AACtE,QAAI,IAAI,CAAC,EAAE,EAAE;AACb,YAAM,MAAM,IAAI,KAAK,CAAC,iBAAiB,cAAc,8BAA8B,CAAC,CAAC;AACrF,SAAK;AACL,QAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,YAAM,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,SAAK;AACL,QAAI,OAAO,EAAE,CAAC;AACd,KAAG;AACH,IACE,UAAU,CAAC,IAAS;AAAI,QACtB,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,KAAG;AACH,IACE,WAAW,CAAC,IAAS;AAAI,QACvB,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,KAAG;AACH,IACE,YAAY,CAAC,EAAO,EAAE,IAAY,EAAE,KAAa,EAAE,SAAkB;AAAI,QACvE,IAAI,SAAS,EAAE;AACnB,YAAM,IAAI,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;AACpC;AACM;AACM,YAAN,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;AACrD,YAAM,IAAI,YAAY,EAAE;AACxB,gBAAQ,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACrD,aAAO;AAAC,iBAAK;AACb,gBAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrC,aAAO;AACP,SAAK;AAAC,aAAK;AACX,YAAM,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACnC,SAAK;AACL,KAAG;AACH,IACE,eAAe,CAAC,EAAO,EAAE,IAAY,EAAE,SAAkB;AAAI,QAC3D,IAAI,SAAS,EAAE;AACnB;AACM;AACM,YAAN,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;AACrD,YAAM,IAAI,YAAY,EAAE;AACxB,gBAAQ,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACjD,aAAO;AAAC,iBAAK;AACb;AACQ;AACQ;AACQ,gBAAhB,EAAE,CAAC,eAAe,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;AACnD,aAAO;AACP,SAAK;AAAC,aAAK;AACX,YAAM,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAK;AACL,KAAG;AACH,IACE,QAAQ,CAAC,EAAO,EAAE,IAAY;AAAI,QAChC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,KAAG;AACH,IACE,WAAW,CAAC,EAAO,EAAE,IAAY;AAAI,QACnC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,KAAG;AACH,IACE,QAAQ,CAAC,EAAO,EAAE,KAAa,EAAE,KAAU,EAAE,KAA0B;AAAI,QACzE,IAAI,KAAK,IAAI,mBAAmB,CAAC,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE;AAChF,YAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,mBAAmB,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;AACnG,SAAK;AAAC,aAAK;AACX,YAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAC9B,SAAK;AACL,KAAG;AACH,IACE,WAAW,CAAC,EAAO,EAAE,KAAa,EAAE,KAA0B;AAAI,QAChE,IAAI,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE;AAC9C,YAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACrC,SAAK;AAAC,aAAK;AACX;AACM;AACM,YAAN,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAC3B,SAAK;AACL,KAAG;AACH,IACE,WAAW,CAAC,EAAO,EAAE,IAAY,EAAE,KAAU;AAAI,QAC/C,WAAW,IAAI,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC1D,QAAI,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACrB,KAAG;AACH,IACE,QAAQ,CAAC,IAAS,EAAE,KAAa;AAAI,QACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,KAAG;AACH,IACE,MAAM,CAAC,MAAsC,EAAE,KAAa,EAAE,QAAiC;AAChG,QACG,WAAW,IAAI,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC3D,QAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpC,YAAM,OAAmB,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACvD,MAAM,EAAE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,SAAK;AACL,QAAI,OAAmB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC1C,MAAM,EAAE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAe,CAAC;AAC9E,KAAG;AACH,CAAC;AACD,aACqB,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AAA5C,MAAM,WAAW,GAAG,QAA2B,CAAC;AAChD,SAAS,oBAAoB,CAAC,IAAY,EAAE,QAAgB;AAC5D,IAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;AAC1C,QAAI,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,IAAI,IAAI;AAC5D;AACA,qEACQ,IAAI,gIAAgI,CAAC,CAAC;AAC9I,KAAG;AACH,CAAC;AAED,MAAM,iCAAkC,SAAQ,mBAAmB;AACnE,IAGE,YACI,YAA0B,EAAE,gBAAqC,EACzD,SAAwB,EAAE,KAAa;AACrD,QAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AACxB,QAFc,cAAS,GAAT,SAAS,CAAe;AAAC,QAEnC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnF,QAAI,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACvC,QACI,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,KAAK,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACxE,QAAI,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,KAAK,GAAG,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAClE,KAAG;AACH,IACE,WAAW,CAAC,OAAY;AAC1B,QAAI,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnD,KAAG;AACH,IACW,aAAa,CAAC,MAAW,EAAE,IAAY;AAAI,QAClD,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjD,QAAI,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACjD,QAAI,OAAO,EAAE,CAAC;AACd,KAAG;AACH,CAAC;AAED,MAAM,iBAAkB,SAAQ,mBAAmB;AACnD,IAEE,YACI,YAA0B,EAAU,gBAAqC,EACjE,MAAW,EAAE,SAAwB;AACnD,QAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AACxB,QAH0C,qBAAgB,GAAhB,gBAAgB,CAAqB;AAAC,QAClE,WAAM,GAAN,MAAM,CAAK;AAAC,QAEtB,IAAI,CAAC,UAAU,GAAI,MAAc,CAAC,YAAY,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC;AACnE,QAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnD,QAAI,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACrE,QAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACtD,YAAM,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,YAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAK;AACL,KAAG;AACH,IACU,gBAAgB,CAAC,IAAS;AAAI,QACpC,OAAO,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACzD,KAAG;AACH,IACW,OAAO;AAClB,QAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD,KAAG;AACH,IACW,WAAW,CAAC,MAAW,EAAE,QAAa;AAAI,QACjD,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AACtE,KAAG;AACH,IAAW,YAAY,CAAC,MAAW,EAAE,QAAa,EAAE,QAAa;AAAI,QACjE,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjF,KAAG;AACH,IAAW,WAAW,CAAC,MAAW,EAAE,QAAa;AAAI,QACjD,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AACtE,KAAG;AACH,IAAW,UAAU,CAAC,IAAS;AAAI,QAC/B,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChF,KAAG;AACH;AACA;ACjWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAOa,eAAgB,SAAQ,kBAAkB;AACvD,IAAE,YAA8B,GAAQ;AACxC,QAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACf,KAAG;AACH;AAEC;AACE,IAAQ,QAAQ,CAAC,SAAiB;AAAI,QACrC,OAAO,IAAI,CAAC;AAChB,KAAG;AACH,IACW,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB;AAAI,QACtF,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAwB,EAAE,KAAK,CAAC,CAAC;AACzE,QAAI,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAwB,CAAC,CAAC;AACxF,KAAG;AACH,IACE,mBAAmB,CAAC,MAAW,EAAE,SAAiB,EAAE,QAAkB;AAAI,QACxE,OAAO,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAyB,CAAC,CAAC;AAC5E,KAAG;AACH;2CApBC,UAAU;2HACT;AAAC;AAAyC,4CAC7B,MAAM,SAAC,QAAQ;AAAQ;;;;;;kCAAE;AAAC;ACfzC;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA,MAAM,WAAW,GAAG;AACpB;AACE,IAAA,KAAK,EAAE,IAAI;AACb,IAAE,UAAU,EAAE,IAAI;AAClB,IAAE,SAAS,EAAE,IAAI;AACjB,IAAE,QAAQ,EAAE,IAAI;AAChB,IAAE,WAAW,EAAE,IAAI;AACnB,IAAE,SAAS,EAAE,IAAI;AACjB,IAAE,UAAU,EAAE,IAAI;AAClB,IAAE,OAAO,EAAE,IAAI;AACf,IAAE,SAAS,EAAE,IAAI;AACjB;AACE,IAAA,OAAO,EAAE,IAAI;AACf,IAAE,YAAY,EAAE,IAAI;AACpB,IAAE,WAAW,EAAE,IAAI;AACnB,IAAE,UAAU,EAAE,IAAI;AAClB,IAAE,aAAa,EAAE,IAAI;AACrB,IAAE,SAAS,EAAE,IAAI;AACjB,IAAE,UAAU,EAAE,IAAI;AAClB;AACE,IAAA,OAAO,EAAE,IAAI;AACf,IAAE,SAAS,EAAE,IAAI;AACjB;AACE,IAAA,QAAQ,EAAE,IAAI;AAChB,IAAE,aAAa,EAAE,IAAI;AACrB,IAAE,YAAY,EAAE,IAAI;AACpB,IAAE,WAAW,EAAE,IAAI;AACnB,IAAE,cAAc,EAAE,IAAI;AACtB;AACE,IAAA,OAAO,EAAE,IAAI;AACf,IAAE,WAAW,EAAE,IAAI;AACnB,IAAE,YAAY,EAAE,IAAI;AACpB,IAAE,SAAS,EAAE,IAAI;AACjB,IAAE,WAAW,EAAE,IAAI;AACnB;AACE,IAAA,KAAK,EAAE,IAAI;AACb,IAAE,WAAW,EAAE,IAAI;AACnB,CAAC,CAAC;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAa,qBAAqB,GAAG,IAAI,cAAc,CAAsB,qBAAqB,EAAE;AAUpG;AACA;AACA;AACA;AACA;AACA,MAAa,aAAa,GAAG,IAAI,cAAc,CAAe,cAAc,EAAE;AAQ9E;AACA;AACA;AACA;AACA;AACA,MACa,mBAAmB;AAChC,IAFA;AACE;AAAY;AAEqC;AACL;AACK;AAChD,QACD,WAAM,GAAa,EAAE,CAAC;AACxB;AAEK;AACM;AAEC;AAAW;AACM;AACM;AACM;AAGtC;AAA6C;AAAW;AACM;AAEzC;AAGlB;AAGgB;AAAW;AAAY,QAH3C,cAAS,GAA4B,EAAE,CAAC;AAC1C,KAqCC;AACD;AAEG;AAEoB;AAGI;AACC;AAGpB;AAAQ,IAxBd,WAAW,CAAC,OAAoB;AAAI,QAClC,MAAM,EAAE,GAAG,IAAI,MAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,QACI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;AACxC,QAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;AACzC,QACI,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5C,YAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACvD,SAAK;AACL,QACI,OAAO,EAAE,CAAC;AACd,KAAG;AACH;+CA/DC,UAAU;;;;gDACT;AAgEF;AACA;AACA;AACA;AACA;AACA,MACa,oBAAqB,SAAQ,kBAAkB;AAC5D,IAEE,YACsB,GAAQ,EACa,OAA4B,EAAU,OAAgB,EAClD,MAA0B;AAC3E,QAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACf,QAH6C,YAAO,GAAP,OAAO,CAAqB;AAAC,QAAS,YAAO,GAAP,OAAO,CAAS;AAAC,QACnD,WAAM,GAAN,MAAM,CAAoB;AAAC,QALlE,mBAAc,GAAuB,IAAI,CAAC;AACpD,KAMG;AACH,IACW,QAAQ,CAAC,SAAiB;AAAI,QACrC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;AAChG,YAAM,OAAO,KAAK,CAAC;AACnB,SAAK;AACL,QACI,IAAI,CAAE,MAAc,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACjD,YAAM,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACzD,gBAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,QAAQ,SAAS,mDAAmD;AAChF,oBAAY,iDAAiD,CAAC,CAAC;AAC/D,aAAO;AACP,YAAM,OAAO,KAAK,CAAC;AACnB,SAAK;AACL,QACI,OAAO,IAAI,CAAC;AAChB,KAAG;AACH,IACW,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB;AAAI,QACtF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACxC,QAAI,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;AACxC;AAEG;AACI,QAAH,IAAI,CAAE,MAAc,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AAChD,YAAM,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AACjE;AACM;AACM;AACM,YAAZ,IAAI,kBAAkB,GAAG,KAAK,CAAC;AACrC,YAAM,IAAI,UAAU,GAAa;AACjC,gBAAQ,kBAAkB,GAAG,IAAI,CAAC;AAClC,aAAO,CAAC;AACR,YACM,IAAI,CAAC,cAAc;AACzB,iBAAW,IAAI,CAAC;AAChB;AACI,gBAAQ,IAAI,CAAE,MAAc,CAAC,MAAM,EAAE;AACzC,oBAAc,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjE,wBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,mEAAmE,CAAC,CAAC;AACzF,qBAAe;AACf,oBAAc,UAAU,GAAG,SAAQ,CAAC;AACpC,oBAAc,OAAO;AACrB,iBAAa;AACb,gBACY,IAAI,CAAC,kBAAkB,EAAE;AACrC;AACM;AACM,oBAAE,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9E,iBAAa;AACb,aAAW,CAAC;AACZ,iBAAW,KAAK,CAAC;AACjB,gBAAY,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AAC/D,oBAAc,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,QAAQ,SAAS,6CAA6C;AAChF,wBAAkB,0BAA0B,CAAC,CAAC;AAC9C,iBAAa;AACb,gBAAY,UAAU,GAAG,SAAQ,CAAC;AAClC,aAAW,CAAC,CAAC;AACb;AAEK;AACM;AACM,YAAX,OAAO;AACb,gBAAQ,UAAU,EAAE,CAAC;AACrB,aAAO,CAAC;AACR,SAAK;AACL,QACI,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAClC;AACM,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACnD,YAAM,MAAM,QAAQ,GAAG,UAAS,QAAqB;AACrD,gBAAQ,IAAI,CAAC,UAAU,CAAC;AACvB,oBAAS,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5B,iBAAS,CAAC,CAAC;AACX,aAAO,CAAC;AACR,YAAM,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACjC,YAAM,OAAO;AACb,gBAAQ,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpC;AACQ,gBAAA,IAAI,OAAO,EAAE,CAAC,OAAO,KAAK,UAAU,EAAE;AAC9C,oBAAU,EAAE,CAAC,OAAO,EAAE,CAAC;AACvB,iBAAS;AACT,aAAO,CAAC;AACR,SAAK,CAAC,CAAC;AACP,KAAG;AACH,IACE,aAAa,CAAC,SAAiB;AAAI,QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,KAAG;AACH;gDArGC,UAAU;0IACT;AAAC;AAA8C,4CAI1C,MAAM,SAAC,QAAQ;AAAS,YACuB,mBAAmB,uBAAlE,MAAM,SAAC,qBAAqB;AAAS,YA/J0CE,QAAO;AAAI,4CAgK1F,QAAQ,YAAI,MAAM,SAAC,aAAa;AAAQ;;;;;;;;;;;;;;kCAAE;AAgGjD;AACA;AACA;AACA;AACA;AACA,MAAa,2BAA2B,GAAG,GAAG;AAE9C;AACA;AACA;AACA,MAAa,0BAA0B,GAAe;AACtD,IAAE;AACF,QAAI,OAAO,EAAE,qBAAqB;AAClC,QAAI,QAAQ,EAAE,oBAAoB;AAClC,QAAI,KAAK,EAAE,IAAI;AACf,QAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,qBAAqB,EAAEA,QAAO,EAAE,CAAC,IAAI,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;AACrF,KAAG;AACH,IAAE,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAC;AAC3E,EAAE;AACF,MACa,gBAAgB,GAAG,2BAA0B,CAAC;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MACa,YAAY;AACzB;wCAFC,QAAQ,SAAC,EAAC,SAAS,EAAE;IAA0B,EAAC;;;;;0BAC5C;AAAC;AC3SN;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1D,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC;AACA,MAAM,OAAO,GAA0B;AACvC;AACE;AACE,IAAF,IAAI,EAAE,WAAW;AACnB,IAAE,IAAI,EAAE,KAAK;AACb,IAAE,MAAM,EAAE,QAAQ;AAClB,IAAE,MAAM,EAAE,QAAQ;AAClB,IAAE,KAAK,EAAE,QAAQ;AACjB,IAAE,KAAK,EAAE,QAAQ;AACjB,IAAE,MAAM,EAAE,WAAW;AACrB,IAAE,OAAO,EAAE,YAAY;AACvB,IAAE,IAAI,EAAE,SAAS;AACjB,IAAE,MAAM,EAAE,WAAW;AACrB,IAAE,MAAM,EAAE,aAAa;AACvB,IAAE,QAAQ,EAAE,YAAY;AACxB,IAAE,KAAK,EAAE,IAAI;AACb,CAAC,CAAC;AAEF;AACA;AACA;AACA,MAAM,mBAAmB,GAAG;AAC5B,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,GAAG,EAAE,GAAG;AACV,IAAE,MAAM,EAAE,GAAG;AACb,IAAE,MAAM,EAAE,SAAS;AACnB,CAAC,CAAC;AACF,aAMS,CAAC,KAAoB,KAAK,KAAK,CAAC,MAAM,OAClC,CAAC,KAAoB,KAAK,KAAK,CAAC,OAAO,OAC1C,CAAC,KAAoB,KAAK,KAAK,CAAC,OAAO,OACtC,CAAC,KAAoB,KAAK,KAAK,CAAC,QAAQ;AAPnD;AACA;AACA;AACA,MAAM,oBAAoB,GAAuD;AACjF,IAAE,KAAK,MAAwC;AAC/C,IAAE,SAAS,IAAyC;AACpD,IAAE,MAAM,IAAyC;AACjD,IAAE,OAAO,IAA0C;AACnD,CAAC,CAAC;AAEF;AACA;AACA;AACA;AACA,MACa,eAAgB,SAAQ,kBAAkB;AACvD;AACE;AACE;AAEJ;AAAQ,IAAN,YAA8B,GAAQ;AACxC,QAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACf,KAAG;AACH;AAEC;AACE;AACE;AAEJ;AAAQ,IAAE,QAAQ,CAAC,SAAiB;AAAI,QACrC,OAAO,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AAC7D,KAAG;AACH;AAEC;AACE;AACE;AACE;AACE;AACE;AAEJ;AAAQ,IAAJ,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB;AAAI,QACtF,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,CAAE,CAAC;AACnE,QACI,MAAM,cAAc,GAChB,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/F,QACI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AACpD,YAAM,OAAOF,OAAM,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;AACxF,SAAK,CAAC,CAAC;AACP,KAAG;AACH,IACE,OAAO,cAAc,CAAC,SAAiB;AAAI,QACzC,MAAM,KAAK,GAAa,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/D,QACI,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AACvC,QAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,OAAO,CAAC,EAAE;AAC3F,YAAM,OAAO,IAAI,CAAC;AAClB,SAAK;AACL,QACI,MAAM,GAAG,GAAG,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC,CAAC;AAC5D,QACI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,QAAI,aAAa,CAAC,OAAO,CAAC,YAAY;AACtC,YAAM,MAAM,KAAK,GAAW,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACxD,YAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACtB,gBAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/B,gBAAQ,OAAO,IAAI,YAAY,GAAG,GAAG,CAAC;AACtC,aAAO;AACP,SAAK,CAAC,CAAC;AACP,QAAI,OAAO,IAAI,GAAG,CAAC;AACnB,QACI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/C;AACM,YAAA,OAAO,IAAI,CAAC;AAClB,SAAK;AACL;AAEG;AACI;AACI,QAAP,MAAM,MAAM,GAA4C,EAAS,CAAC;AACtE,QAAI,MAAM,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;AAC1C,QAAI,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;AAChC,QAAI,OAAO,MAAM,CAAC;AAClB,KAAG;AACH,IACE,OAAO,eAAe,CAAC,KAAoB;AAAI,QAC7C,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,QAAI,IAAI,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACjC,QAAI,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;AAC5B,QAAI,IAAI,GAAG,KAAK,GAAG,EAAE;AACrB,YAAM,GAAG,GAAG,OAAO,CAAC;AAAoB,SACnC;AAAC,aAAK,IAAI,GAAG,KAAK,GAAG,EAAE;AAC5B,YAAM,GAAG,GAAG,KAAK,CAAC;AAAsD,SACnE;AACL,QAAI,aAAa,CAAC,OAAO,CAAC,YAAY;AACtC,YAAM,IAAI,YAAY,IAAI,GAAG,EAAE;AAC/B,gBAAQ,MAAM,cAAc,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAClE,gBAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;AACnC,oBAAU,OAAO,IAAI,YAAY,GAAG,GAAG,CAAC;AACxC,iBAAS;AACT,aAAO;AACP,SAAK,CAAC,CAAC;AACP,QAAI,OAAO,IAAI,GAAG,CAAC;AACnB,QAAI,OAAO,OAAO,CAAC;AACnB,KAAG;AACH;AAEC;AACE;AACE;AACE;AACE;AAEJ;AAAQ,IAAX,OAAO,aAAa,CAAC,OAAY,EAAE,OAAiB,EAAE,IAAY;AAAI,QACpE,OAAO,CAAC,KAAU;AACtB,YAAM,IAAI,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE;AAC9D,gBAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,aAAO;AACP,SAAK,CAAC;AACN,KAAG;AACH;AAEC,IAAC,OAAO,aAAa,CAAC,OAAe;AAAI;AACa,QACnD,QAAQ,OAAO;AACnB,YAAM,KAAK,KAAK;AAChB,gBAAQ,OAAO,QAAQ,CAAC;AACxB,YAAM;AACN,gBAAQ,OAAO,OAAO,CAAC;AACvB,SAAK;AACL,KAAG;AACH;2CAtHC,UAAU;2HACT;AAAC;AAAyC,4CAK7B,MAAM,SAAC,QAAQ;AAAQ;;;;;;kCAAE;AAkHxC,SAAS,WAAW,CAAC,KAAU;AAAI,IACjC,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACtB,IAAE,IAAI,GAAG,IAAI,IAAI,EAAE;AACnB,QAAI,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC;AAC9B;AACI;AACI;AACI,QAAR,IAAI,GAAG,IAAI,IAAI,EAAE;AACrB,YAAM,OAAO,cAAc,CAAC;AAC5B,SAAK;AACL,QAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC9B,YAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,YAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,uBAAuB,IAAI,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACjG;AACQ;AACQ;AACQ,gBAAhB,GAAG,GAAI,mBAA2B,CAAC,GAAG,CAAC,CAAC;AAChD,aAAO;AACP,SAAK;AACL,KAAG;AACH,IACE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AAC7B;AACA;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AAmDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MACsB,YAAY;AAAG;2FAAC;AAAC;wCADtC,UAAU,SAAC,EAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC;GAAM,gBAAgB,CAAC,EAAC;;0BAC5E;AAAC,SAwDU,uBAAuB,CAAC,QAAkB;AAC1D,IAAE,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,CAAC;AACD,MAEa,gBAAiB,SAAQ,YAAY;AAClD,IAAE,YAAsC,IAAS;AACjD,QAAI,KAAK,EAAE,CAAC;AACZ,QAFwC,SAAI,GAAJ,IAAI,CAAK;AAAC,KAE/C;AACH,IACW,QAAQ,CAAC,GAAoB,EAAE,KAA4B;AAAI,QACtE,IAAI,KAAK,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC;AACnC,QAAI,QAAQ,GAAG;AACf,YAAM,KAAK,eAAe,CAAC,IAAI;AAC/B,gBAAQ,OAAO,KAAe,CAAC;AAC/B,YAAM,KAAK,eAAe,CAAC,IAAI;AAC/B,gBAAQ,IAAIG,gCAA8B,CAAC,KAAK,oBAAkB,EAAE;AACpE,oBAAU,OAAOC,gBAAe,CAAC,KAAK,CAAC,CAAC;AACxC,iBAAS;AACT,gBAAQ,OAAOC,cAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAClE,YAAM,KAAK,eAAe,CAAC,KAAK;AAChC,gBAAQ,IAAIF,gCAA8B,CAAC,KAAK,sBAAmB,EAAE;AACrE,oBAAU,OAAOC,gBAAe,CAAC,KAAK,CAAC,CAAC;AACxC,iBAAS;AACT,gBAAQ,OAAO,KAAe,CAAC;AAC/B,YAAM,KAAK,eAAe,CAAC,MAAM;AACjC,gBAAQ,IAAID,gCAA8B,CAAC,KAAK,wBAAoB,EAAE;AACtE,oBAAU,OAAOC,gBAAe,CAAC,KAAK,CAAC,CAAC;AACxC,iBAAS;AACT,gBAAQ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACjE,YAAM,KAAK,eAAe,CAAC,GAAG;AAC9B,gBAAQ,MAAM,IAAI,GAAGE,0BAAyB,CAAC,KAAK,CAAC,CAAC;AACtD,gBAAQ,IAAIH,gCAA8B,CAAC,KAAK,kBAAiB,EAAE;AACnE,oBAAU,OAAOC,gBAAe,CAAC,KAAK,CAAC,CAAC;AACxC,iBAAS;AACT,gBAAQ,OAAOG,aAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,YAAM,KAAK,eAAe,CAAC,YAAY;AACvC,gBAAQ,IAAIJ,gCAA8B,CAAC,KAAK,kCAAyB,EAAE;AAC3E,oBAAU,OAAOC,gBAAe,CAAC,KAAK,CAAC,CAAC;AACxC,iBAAS;AACT,gBAAQ,MAAM,IAAI,KAAK,CACX,gFAAgF,CAAC,CAAC;AAC9F,YAAM;AACN,gBAAQ,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,qCAAqC,CAAC,CAAC;AAChG,SAAK;AACL,KAAG;AACH,IACW,uBAAuB,CAAC,KAAa;AAAI,QAChD,OAAOI,4BAA2B,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAG;AACH,IAAW,wBAAwB,CAAC,KAAa;AAAI,QACjD,OAAOC,6BAA4B,CAAC,KAAK,CAAC,CAAC;AAC/C,KAAG;AACH,IAAW,yBAAyB,CAAC,KAAa;AAAI,QAClD,OAAOC,8BAA6B,CAAC,KAAK,CAAC,CAAC;AAChD,KAAG;AACH,IAAW,sBAAsB,CAAC,KAAa;AAAI,QAC/C,OAAOC,2BAA0B,CAAC,KAAK,CAAC,CAAC;AAC7C,KAAG;AACH,IAAW,8BAA8B,CAAC,KAAa;AAAI,QACvD,OAAOC,mCAAkC,CAAC,KAAK,CAAC,CAAC;AACrD,KAAG;AACH;gIAAC;AACD,mMA1DK;AAAC;EADL,UAAU,SAAC,EAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,vDACG,4CACjC,MAAM,SAAC,QAAQ;AAAQ;AAF8B,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAC;;;;;;kCAE/C;AAAC;ACvJzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAiBgB,cAAc;AAC9B,IAAE,iBAAiB,CAAC,WAAW,EAAE,CAAC;AAClC,IAAE,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AACD,SACgB,YAAY;AAAK,IAC/B,OAAO,IAAI,YAAY,EAAE,CAAC;AAC5B,CAAC;AACD,SACgB,SAAS;AAAK;AACO,IACnC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzB,IAAE,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,aAEmCC,oBAAmB;AAAE,MAD3C,mCAAmC,GAAqB;AACrE,IAAE,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,MAAqB,EAAC;AACvD,IAAE,EAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAC;AACxE,IAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAC;AACtD,EAAE;AAEF,MAAM,wCAAwC,GAAqB;AACnE,IAAE,EAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAC;AACjD,IAAE,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAC;AACvE,CAAC,CAAC;AACF,MACa,yCAAyC,GAAG,GAAG;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA,MAAa,8BAA8B,GAAG,yCAAwC,CAAC;AAEvF;AACA;AACA;AACA;AACA;AACA;AACA,MAAa,eAAe,GACxB,qBAAqB,CAAC,YAAY,EAAE,SAAS,EAAE,mCAAmC,EAAE;AACxF,MACa,wBAAwB,GAAqB;AAC1D,IAAE,8BAA8B;AAChC,IAAE,EAAC,OAAO,EAAEC,eAAc,EAAE,QAAQ,EAAE,MAAM,EAAC;AAC7C,IAAE,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAC;AAC7D,IAAE;AACF,QAAI,OAAO,EAAE,qBAAqB;AAClC,QAAI,QAAQ,EAAE,eAAe;AAC7B,QAAI,KAAK,EAAE,IAAI;AACf,QAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;AACzC,KAAG;AACH,IAAE,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAC;AAC5F,IAAE,gBAAgB;AAClB,IAAE;AACF,QAAI,OAAO,EAAE,mBAAmB;AAChC,QAAI,QAAQ,EAAE,mBAAmB;AACjC,QAAI,IAAI,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,MAAM,CAAC;AACrD,KAAG;AACH,IAAE,EAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAC;AAC/D,IAAE,EAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAC;AAC/D,IAAE,EAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAC;AACjF,IAAE,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAC;AAC/D,IAAE,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAC;AACxF,IAAE,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAC;AACvD,IAAE,uBAAuB;AACzB,EAAE;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MACa,aAAa;AAC1B,IAAE,YAA2D,YAAgC;AAC7F,QAAI,IAAI,YAAY,EAAE;AACtB,YAAM,MAAM,IAAI,KAAK,CACX,+JAA+J,CAAC,CAAC;AAC3K,SAAK;AACL,KAAG;AACH;AAEC;AACE;AAEH;AAAO;AACE;AACE;AAEJ;AAAQ,IAAb,OAAO,oBAAoB,CAAC,MAAuB;AAAI,QACrD,OAAO;AACX,YAAM,QAAQ,EAAE,aAAa;AAC7B,YAAM,SAAS,EAAE;AACjB,gBAAQ,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAC;AACjD,gBAAQ,EAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAC;AACrD,gBAAQ,2BAA2B;AACnC,aAAO;AACP,SAAK,CAAC;AACN,KAAG;AACH;yCA3BC,QAAQ,SAAC,EAAC,SAAS,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE;SAAiB,CAAC,EAAC;gJACtF;AAAC;AACU,YAA2D,aAAa,uBAAzE,QAAQ,YAAI,QAAQ,YAAI,MAAM,SAAC,aAAa;AAAQ;;;;;;;;;;;;yLAAE;AAAC;AC1GtE;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA;AACA;AACA;AACA,SAAgB,UAAU;AAC1B,IAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MACa,IAAI;AACjB,IACE,YAAsC,IAAS;AACjD,QADwC,SAAI,GAAJ,IAAI,CAAK;AAAC,QAC9C,IAAI,CAAC,IAAI,GAAGd,OAAM,EAAE,CAAC;AACzB,KAAG;AACH;AACE;AACE;AACE;AACE;AACE;AACE;AACE;AACE;AAEJ;AAAQ,IAAlB,MAAM,CAAC,GAAmB,EAAE,gBAAyB,KAAK;AAAI,QAC5D,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,IAAI,CAAC;AAC1B,QAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AACxD,KAAG;AACH;AAEC;AACE;AACE;AACE;AACE;AACE;AAEJ;AAAQ,IAAb,OAAO,CAAC,IAAsB,EAAE,gBAAyB,KAAK;AAAI,QAChE,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE,CAAC;AACzB,QAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAyB,EAAE,GAAmB;AACtE,YAAM,IAAI,GAAG,EAAE;AACf,gBAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;AAClE,aAAO;AACP,YAAM,OAAO,MAAM,CAAC;AACpB,SAAK,EAAE,EAAE,CAAC,CAAC;AACX,KAAG;AACH;AAEC;AACE;AACE;AACE;AAEJ;AAAQ,IAAT,MAAM,CAAC,YAAoB;AAAI,QAC7B,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,IAAI,CAAC;AACnC,QAAI,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC;AACpE,KAAG;AACH;AAEC;AACE;AACE;AACE;AAEJ;AAAQ,IAAT,OAAO,CAAC,YAAoB;AAAI,QAC9B,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,EAAE,CAAC;AACjC,QAAI,MAAM,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,YAAY,GAAG,CAAC,CAAC;AAClF,QAAI,OAAO,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3C,KAAG;AACH;AAEC;AACE;AACE;AACE;AACE;AACE;AACE;AAEJ;AAAQ,IAAf,SAAS,CAAC,GAAmB,EAAE,QAAiB;AAAI,QAClD,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,IAAI,CAAC;AAC1B,QAAI,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpD,QAAI,MAAM,IAAI,GAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;AACzD,QAAI,IAAI,IAAI,EAAE;AACd,YAAM,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvD,SAAK;AACL,QAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/C,KAAG;AACH;AAEC;AACE;AACE;AAEJ;AAAQ,IAAP,SAAS,CAAC,YAAoB;AAAI,QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,CAAC,CAAC;AACtD,KAAG;AACH;AAEC;AACE;AACE;AACE,IAAL,gBAAgB,CAAC,IAAqB;AAAI,QACxC,IAAI,IAAI,EAAE;AACd,YAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAK;AACL,KAAG;AACH,IACU,mBAAmB,CAAC,IAAoB,EAAE,gBAAyB,KAAK;AACjF,QACG,IAAI,CAAC,aAAa,EAAE;AACxB,YAAM,MAAM,QAAQ,GAAW,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACzD;AACM;AACM;AACM,YAAZ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,YAAM,IAAI,IAAI,KAAK,SAAS;AAAE,gBAAA,OAAO,IAAI,CAAC;AAC1C,SAAK;AACL,QAAI,MAAM,OAAO,GAAoB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAoB,CAAC;AACxF,QAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClD,QAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,QAAI,OAAO,OAAO,CAAC;AACnB,KAAG;AACH,IACU,yBAAyB,CAAC,GAAmB,EAAE,EAAmB;AAAI,QAC5E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CACpB,CAAC,IAAY,KAAK,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjF,QAAI,OAAO,EAAE,CAAC;AACd,KAAG;AACH,IACU,cAAc,CAAC,GAAmB;AAAI,QAC5C,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC;AACxD,QAAI,OAAO,GAAG,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,KAAG;AACH,IACU,mBAAmB,CAAC,GAAmB,EAAE,IAAqB;AAAI,QACxE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CACzB,CAAC,GAAW,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnF,KAAG;AACH,IACU,cAAc,CAAC,IAAY;AAAI,QACrC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACvC,KAAG;AACH;4FAAC;AACD,0FAxIK;AAAC;EADL,UAAU,SAAC,EAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,zEAE/C,4CACD,MAAM,SAAC,QAAQ;AAHmC,EAAC,FAG5B;;;;;;;kCAAE;AAuIxC;AACA;AACA;AACA,MAAM,aAAa,GAA8B;AACjD,IAAE,SAAS,EAAE,YAAY;AACzB,CAAC;AACD;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA,SAAgB,WAAW;AAC3B,IAAE,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MACa,KAAK;AAClB,IAAE,YAAsC,IAAS;AAAI,QAAb,SAAI,GAAJ,IAAI,CAAK;AAAC,KAAG;AACrD;AACE;AACE;AACE,IAAJ,QAAQ;AAAK,QACX,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAG;AACH;AAEC;AACE;AACE;AACE,IAAL,QAAQ,CAAC,QAAgB;AAC3B,QAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,IAAI,EAAE,CAAC;AACrC,KAAG;AACH;+FAAC;AACD,6FAjBK;AAAC;EADL,UAAU,SAAC,EAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,1EAEhD,4CAAD,MAAM,SAAC,QAAQ;CAFoC,DAE5B;AAF6B;;;;;;kCAE3B;AAAC;AC/BzC;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,GAAG,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,IAAS,EAAE;AAC9D;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAIa,yBAAyB;AACtC,IAAE,YAAmB,SAAiB,EAAS,QAAgB;AAAI,QAA9C,cAAS,GAAT,SAAS,CAAQ;AAAC,QAAQ,aAAQ,GAAR,QAAQ,CAAQ;AAAC,KAAG;AACnE,CAAC;AAED;AACA;AACA;AACA;AACA,MAAa,eAAe;AAC5B,IAEE,YAAY,GAAsB;AACpC,QAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACnD,KAAG;AACH;AAEC;AACE;AACE;AACE;AACE;AAEH;AAAO;AACE;AAEH;AAAO;AACE;AAGZ;AAAO;AAAW;AAGb;AAAW;AAAQ,IAA/B,mBAAmB,CAAC,MAAW;AAAI,QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9C,QAAI,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC3C;AACI,QAAA,MAAM,mBAAmB,GAAGe,GAAM,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;AAC/D,QAAI,IAAI,MAAM,IAAI,mBAAmB,EAAE;AACvC,YAAMA,GAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1C,SAAK;AACL,QAAI,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;AACnC,QAAI,IAAI,QAAQ,GAAG,CAAC,CAAC;AACrB,QAAI,OAAO,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,IAAI,GAAG,EAAE;AAC7D,YAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACzB,YAAM,QAAQ,EAAE,CAAC;AACjB,SAAK;AACL,QAAI,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;AACjC,QAAI,IAAI,MAAM,IAAI,mBAAmB,EAAE;AACvC,YAAMA,GAAM,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC7C,SAAK;AACL,QAAI,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC;AAC/C,QAAIA,GAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,0BAA0B,CAAC,CAAC;AAClE,QAAIA,GAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;AAC/D,QACI,OAAO,IAAI,yBAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC9D,KAAG;AACH,CAAC;AAED,SAAS,cAAc;AACvB,IAAE,OAAOA,GAAM,CAAC,WAAW,IAAIA,GAAM,CAAC,WAAW,CAAC,GAAG,GAAGA,GAAM,CAAC,WAAW,CAAC,GAAG,EAAE;AAChF,QAAwD,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAC7E;AACA;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAgB,gBAAgB,CAAI,GAAoB;AAAI,IAC1D,WAAW,CAAC,oBAAoB,EAAE,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,IAAE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;AACA;AACA;AACA;AACA;AACA,SAAgB,iBAAiB;AAAK,IACpC,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AAC1C;AACA;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAIgB,UAAU,CAAC,IAAY;AAAI,IACzC,MAAM,WAAW,GAA0B;AAC7C,QAAI,GAAG,EAAE,KAAK;AACd,QAAI,GAAG,EAAE,KAAK;AACd,QAAI,IAAI,EAAE,KAAK;AACf,QAAI,GAAG,EAAE,KAAK;AACd,QAAI,GAAG,EAAE,KAAK;AACd,KAAG,CAAC;AACJ,IAAE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AACD,SACgB,YAAY,CAAC,IAAY;AAAI,IAC3C,MAAM,aAAa,GAA0B;AAC/C,QAAI,KAAK,EAAE,GAAG;AACd,QAAI,KAAK,EAAE,GAAG;AACd,QAAI,KAAK,EAAE,IAAI;AACf,QAAI,KAAK,EAAE,GAAG;AACd,QAAI,KAAK,EAAE,GAAG;AACd,KAAG,CAAC;AACJ,IAAE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAkBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAgB,YAAY,CAAW,GAAW;AAAI,IACpD,OAAO,GAAkB,CAAC;AAC5B,CAAC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MACa,aAAa;AAC1B,IAFA;AACE,QACQ,UAAK,GAAgC,EAAE,CAAC;AAClD,QAAU,yBAAoB,GAAwC,EAAE,CAAC;AACzE,KA2DC;AACD;AACoB,IA3DlB,OAAO,IAAI,CAAC,SAAa;AAC3B,QAAI,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAC9C,QAAI,aAAa,CAAC,KAAK,GAAG,SAAS,CAAC;AACpC,QAAI,OAAO,aAAa,CAAC;AACzB,KAAG;AACH;AAEC;AACE;AACE,IAAH,GAAG,CAAI,GAAgB,EAAE,YAAe;AAAI,QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,GAAG,YAAY,CAAC;AAC/E,KAAG;AACH;AAEC;AACE;AACE,IAAH,GAAG,CAAI,GAAgB,EAAE,KAAQ;AAAI,QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5B,KAAG;AACH;AAEC;AACE;AACE,IAAH,MAAM,CAAI,GAAgB;AAAI,QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3B,KAAG;AACH;AAEC;AACE;AACE,IAAH,MAAM,CAAI,GAAgB;AAC5B,QAAI,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,KAAG;AACH;AAEC;AACE;AACE,IAAH,WAAW,CAAI,GAAgB,EAAE,QAAiB;AAAI,QACpD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC9C,KAAG;AACH;AAEC;AACE;AACE,IAAH,MAAM;AAAK;AAC0D,QACnE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACjD,YAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACzD,gBAAQ,IAAI;AACZ,oBAAU,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7D,iBAAS;AAAC,gBAAA,OAAO,CAAC,EAAE;AACpB,oBAAU,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AACjE,iBAAS;AACT,aAAO;AACP,SAAK;AACL,QAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,KAAG;AACH;yCA/DC,UAAU;;;;gDACT;AAAC,SAgEa,iBAAiB,CAAC,GAAa,EAAE,KAAa;AAC9D;AACE;AACE,IAAF,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;AACtD,IAAE,IAAI,YAAY,GAAG,EAAE,CAAC;AACxB,IAAE,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;AACpC,QAAI,IAAI;AACR;AACM,YAAA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAO,CAAC;AACxE,SAAK;AAAC,QAAA,OAAO,CAAC,EAAE;AAChB,YAAM,OAAO,CAAC,IAAI,CAAC,kDAAkD,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;AAClF,SAAK;AACL,KAAG;AACH,IAAE,OAAO,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAGa,0BAA0B;AACvC;sDAJC,QAAQ,SAAC,kBACR,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,aAAa,EAAE;GAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAC,CAAC,eAC/F;;;;;;;0BACI;AAAC;AC1KN;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA,MAAa,EAAE;AACf;AACE;AACE;AACE;AACE;AAEH;AAAO;AAEJ;AAAQ,IAAd,OAAO,GAAG;AAAK,QACb,OAAO,MAAM,IAAI,CAAC;AACtB,KAAG;AACH;AAEC;AACE;AACE;AACE;AAEH;AAAO;AAEJ;AAAQ,IAAb,OAAO,GAAG,CAAC,QAAgB;AAAI,QAC7B,OAAO,CAAC,YAAY;AACxB,YAAM,OAAO,YAAY,CAAC,aAAa,IAAI,IAAI;AAC/C,gBAAU,cAAc,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC9D,gBAAU,KAAK,CAAC;AAChB,SAAK,CAAC;AACN,KAAG;AACH;AAEC;AACE;AACE;AACE;AAEH;AAAO;AAEJ;AAAQ,IAAb,OAAO,SAAS,CAAC,IAAe;AAAI,QAClC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,cAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,KAAG;AACH,CAAC;AAED,SAAS,cAAc,CAAC,CAAM,EAAE,QAAgB;AAAI,IAClD,IAAIf,OAAM,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;AACjC,QAAI,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC3C,YAAQ,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AAC5D,YAAQ,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACrE,KAAG;AACH,IACE,OAAO,KAAK,CAAC;AACf;AACA;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA,MAAa,OAAO,GAAG,IAAI,OAAO,CAAC;AACnC;AAAC;AAAI,EADiD,FClBtD;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AAYq9B","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 {ɵDomAdapter as DomAdapter} from '@angular/common';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n  readonly supportsDOMEvents: boolean = true;\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.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue, ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n  static makeCurrent() {\n    setRootDomAdapter(new BrowserDomAdapter());\n  }\n\n  onAndCancel(el: Node, evt: any, listener: any): Function {\n    el.addEventListener(evt, listener, false);\n    // Needed to follow Dart's subscription semantic, until fix of\n    // https://code.google.com/p/dart/issues/detail?id=17406\n    return () => {\n      el.removeEventListener(evt, listener, false);\n    };\n  }\n  dispatchEvent(el: Node, evt: any) {\n    el.dispatchEvent(evt);\n  }\n  remove(node: Node): void {\n    if (node.parentNode) {\n      node.parentNode.removeChild(node);\n    }\n  }\n  createElement(tagName: string, doc?: Document): HTMLElement {\n    doc = doc || this.getDefaultDocument();\n    return doc.createElement(tagName);\n  }\n  createHtmlDocument(): HTMLDocument {\n    return document.implementation.createHTMLDocument('fakeTitle');\n  }\n  getDefaultDocument(): Document {\n    return document;\n  }\n\n  isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n  }\n\n  isShadowRoot(node: any): boolean {\n    return node instanceof DocumentFragment;\n  }\n\n  /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n  getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n    if (target === 'window') {\n      return window;\n    }\n    if (target === 'document') {\n      return doc;\n    }\n    if (target === 'body') {\n      return doc.body;\n    }\n    return null;\n  }\n  getBaseHref(doc: Document): string|null {\n    const href = getBaseElementHref();\n    return href == null ? null : relativePath(href);\n  }\n  resetBaseElement(): void {\n    baseElement = null;\n  }\n  getUserAgent(): string {\n    return window.navigator.userAgent;\n  }\n  getCookie(name: string): string|null {\n    return parseCookieValue(document.cookie, name);\n  }\n}\n\nlet baseElement: HTMLElement|null = null;\nfunction getBaseElementHref(): string|null {\n  baseElement = baseElement || document.querySelector('base');\n  return baseElement ? baseElement.getAttribute('href') : null;\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: HTMLAnchorElement|undefined;\nfunction relativePath(url: any): string {\n  urlParsingNode = urlParsingNode || document.createElement('a');\n  urlParsingNode.setAttribute('href', url);\n  const pathName = urlParsingNode.pathname;\n  return pathName.charAt(0) === '/' ? pathName : `/${pathName}`;\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {APP_INITIALIZER, ApplicationInitStatus, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n  return () => {\n    // Wait for all application initializers to be completed before removing the styles set by\n    // the server.\n    injector.get(ApplicationInitStatus).donePromise.then(() => {\n      const dom = getDOM();\n      const styles: HTMLCollectionOf<HTMLStyleElement> =\n          document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n      for (let i = 0; i < styles.length; i++) {\n        dom.remove(styles[i]);\n      }\n    });\n  };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: appInitializerFactory,\n    deps: [TRANSITION_ID, DOCUMENT, Injector],\n    multi: true\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {GetTestability, setTestabilityGetter, Testability, TestabilityRegistry, ɵglobal as global} from '@angular/core';\n\nexport class BrowserGetTestability implements GetTestability {\n  static init() {\n    setTestabilityGetter(new BrowserGetTestability());\n  }\n\n  addToWindow(registry: TestabilityRegistry): void {\n    global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n      const testability = registry.findTestabilityInTree(elem, findInAncestors);\n      if (testability == null) {\n        throw new Error('Could not find testability for element.');\n      }\n      return testability;\n    };\n\n    global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n    global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n    const whenAllStable = (callback: any /** TODO #9100 */) => {\n      const testabilities = global['getAllAngularTestabilities']();\n      let count = testabilities.length;\n      let didWork = false;\n      const decrement = function(didWork_: any /** TODO #9100 */) {\n        didWork = didWork || didWork_;\n        count--;\n        if (count == 0) {\n          callback(didWork);\n        }\n      };\n      testabilities.forEach(function(testability: any /** TODO #9100 */) {\n        testability.whenStable(decrement);\n      });\n    };\n\n    if (!global['frameworkStabilizers']) {\n      global['frameworkStabilizers'] = [];\n    }\n    global['frameworkStabilizers'].push(whenAllStable);\n  }\n\n  findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean):\n      Testability|null {\n    if (elem == null) {\n      return null;\n    }\n    const t = registry.getTestability(elem);\n    if (t != null) {\n      return t;\n    } else if (!findInAncestors) {\n      return null;\n    }\n    if (getDOM().isShadowRoot(elem)) {\n      return this.findTestabilityInTree(registry, (<any>elem).host, true);\n    }\n    return this.findTestabilityInTree(registry, elem.parentElement, true);\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.io/license\n */\n\nimport {XhrFactory} from '@angular/common';\nimport {Injectable} from '@angular/core';\n\n/**\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\n */\n@Injectable()\nexport class BrowserXhr implements XhrFactory {\n  build(): XMLHttpRequest {\n    return new XMLHttpRequest();\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.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n  return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n  if (typeof COMPILED === 'undefined' || !COMPILED) {\n    // Note: we can't export `ng` when using closure enhanced optimization as:\n    // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n    // - we can't declare a closure extern as the namespace `ng` is already used within Google\n    //   for typings for angularJS (via `goog.provide('ng....')`).\n    const ng = global['ng'] = (global['ng'] as {[key: string]: any} | undefined) || {};\n    ng[name] = value;\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.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationRef, DebugNode, NgProbeToken, NgZone, Optional, Provider, ɵgetDebugNodeR2} from '@angular/core';\n\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = (() => ({\n                       'ApplicationRef': ApplicationRef,\n                       'NgZone': NgZone,\n                     }))();\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElementR2(element: any): DebugNode|null {\n  return ɵgetDebugNodeR2(element);\n}\n\nexport function _createNgProbeR2(coreTokens: NgProbeToken[]): any {\n  exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElementR2);\n  exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n  return () => inspectNativeElementR2;\n}\n\nfunction _ngProbeTokensToMap(tokens: NgProbeToken[]): {[name: string]: any} {\n  return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\n * with more robust functionality.\n *\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\n * tree-shaking properly.\n */\nexport const ELEMENT_PROBE_PROVIDERS__POST_R3__ = [];\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: _createNgProbeR2,\n    deps: [\n      [NgProbeToken, new Optional()],\n    ],\n    multi: true,\n  },\n];\n\nexport const ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\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 {ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n    new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\n\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n@Injectable()\nexport class EventManager {\n  private _plugins: EventManagerPlugin[];\n  private _eventNameToPlugin = new Map<string, EventManagerPlugin>();\n\n  /**\n   * Initializes an instance of the event-manager service.\n   */\n  constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n    plugins.forEach(p => p.manager = this);\n    this._plugins = plugins.slice().reverse();\n  }\n\n  /**\n   * Registers a handler for a specific element and event.\n   *\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns  A callback function that can be used to remove the handler.\n   */\n  addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addEventListener(element, eventName, handler);\n  }\n\n  /**\n   * Registers a global handler for an event in a target view.\n   *\n   * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns A callback function that can be used to remove the handler.\n   * @deprecated No longer being used in Ivy code. To be removed in version 14.\n   */\n  addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addGlobalEventListener(target, eventName, handler);\n  }\n\n  /**\n   * Retrieves the compilation zone in which event listeners are registered.\n   */\n  getZone(): NgZone {\n    return this._zone;\n  }\n\n  /** @internal */\n  _findPluginFor(eventName: string): EventManagerPlugin {\n    const plugin = this._eventNameToPlugin.get(eventName);\n    if (plugin) {\n      return plugin;\n    }\n\n    const plugins = this._plugins;\n    for (let i = 0; i < plugins.length; i++) {\n      const plugin = plugins[i];\n      if (plugin.supports(eventName)) {\n        this._eventNameToPlugin.set(eventName, plugin);\n        return plugin;\n      }\n    }\n    throw new Error(`No event manager plugin found for event ${eventName}`);\n  }\n}\n\nexport abstract class EventManagerPlugin {\n  constructor(private _doc: any) {}\n\n  // TODO(issue/24571): remove '!'.\n  manager!: EventManager;\n\n  abstract supports(eventName: string): boolean;\n\n  abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n  addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n    const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n    if (!target) {\n      throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n    }\n    return this.addEventListener(target, eventName, handler);\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n  /** @internal */\n  protected _stylesSet = new Set<string>();\n\n  addStyles(styles: string[]): void {\n    const additions = new Set<string>();\n    styles.forEach(style => {\n      if (!this._stylesSet.has(style)) {\n        this._stylesSet.add(style);\n        additions.add(style);\n      }\n    });\n    this.onStylesAdded(additions);\n  }\n\n  onStylesAdded(additions: Set<string>): void {}\n\n  getAllStyles(): string[] {\n    return Array.from(this._stylesSet);\n  }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n  // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n  private _hostNodes = new Map<Node, Node[]>();\n\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n    this._hostNodes.set(_doc.head, []);\n  }\n\n  private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n    styles.forEach((style: string) => {\n      const styleEl = this._doc.createElement('style');\n      styleEl.textContent = style;\n      styleNodes.push(host.appendChild(styleEl));\n    });\n  }\n\n  addHost(hostNode: Node): void {\n    const styleNodes: Node[] = [];\n    this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n    this._hostNodes.set(hostNode, styleNodes);\n  }\n\n  removeHost(hostNode: Node): void {\n    const styleNodes = this._hostNodes.get(hostNode);\n    if (styleNodes) {\n      styleNodes.forEach(removeStyle);\n    }\n    this._hostNodes.delete(hostNode);\n  }\n\n  override onStylesAdded(additions: Set<string>): void {\n    this._hostNodes.forEach((styleNodes, hostNode) => {\n      this._addStylesToHost(additions, hostNode, styleNodes);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n  }\n}\n\nfunction removeStyle(styleNode: Node): void {\n  getDOM().remove(styleNode);\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.io/license\n */\n\nimport {APP_ID, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n  'svg': 'http://www.w3.org/2000/svg',\n  'xhtml': 'http://www.w3.org/1999/xhtml',\n  'xlink': 'http://www.w3.org/1999/xlink',\n  'xml': 'http://www.w3.org/XML/1998/namespace',\n  'xmlns': 'http://www.w3.org/2000/xmlns/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n  return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n  return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n    compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n  for (let i = 0; i < styles.length; i++) {\n    let style = styles[i];\n\n    if (Array.isArray(style)) {\n      flattenStyles(compId, style, target);\n    } else {\n      style = style.replace(COMPONENT_REGEX, compId);\n      target.push(style);\n    }\n  }\n  return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n  // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n  // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n  // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n  // the listener (see below).\n  return (event: any) => {\n    // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n    // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n    // can inspect the listener toString contents for the existence of this special token. Because\n    // the token is a string literal, it is ensured to not be modified by compiled code.\n    if (event === '__ngUnwrap__') {\n      return eventHandler;\n    }\n\n    const allowDefaultBehavior = eventHandler(event);\n    if (allowDefaultBehavior === false) {\n      // TODO(tbosch): move preventDefault into event plugins...\n      event.preventDefault();\n      event.returnValue = false;\n    }\n\n    return undefined;\n  };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n  private rendererByCompId = new Map<string, Renderer2>();\n  private defaultRenderer: Renderer2;\n\n  constructor(\n      private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      @Inject(APP_ID) private appId: string) {\n    this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n  }\n\n  createRenderer(element: any, type: RendererType2|null): Renderer2 {\n    if (!element || !type) {\n      return this.defaultRenderer;\n    }\n    switch (type.encapsulation) {\n      case ViewEncapsulation.Emulated: {\n        let renderer = this.rendererByCompId.get(type.id);\n        if (!renderer) {\n          renderer = new EmulatedEncapsulationDomRenderer2(\n              this.eventManager, this.sharedStylesHost, type, this.appId);\n          this.rendererByCompId.set(type.id, renderer);\n        }\n        (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n        return renderer;\n      }\n      // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n      // value that is not known (but previously was the value for ViewEncapsulation.Native)\n      case 1:\n      case ViewEncapsulation.ShadowDom:\n        // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n        if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n            // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n            // enum value that is not known (but previously was the value for\n            // ViewEncapsulation.Native)\n            !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n          hasLoggedNativeEncapsulationWarning = true;\n          console.warn(\n              'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n        }\n\n        return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n      default: {\n        if (!this.rendererByCompId.has(type.id)) {\n          const styles = flattenStyles(type.id, type.styles, []);\n          this.sharedStylesHost.addStyles(styles);\n          this.rendererByCompId.set(type.id, this.defaultRenderer);\n        }\n        return this.defaultRenderer;\n      }\n    }\n  }\n\n  begin() {}\n  end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n  data: {[key: string]: any} = Object.create(null);\n\n  constructor(private eventManager: EventManager) {}\n\n  destroy(): void {}\n\n  destroyNode: null;\n\n  createElement(name: string, namespace?: string): any {\n    if (namespace) {\n      // In cases where Ivy (not ViewEngine) is giving us the actual namespace, the look up by key\n      // will result in undefined, so we just return the namespace here.\n      return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n    }\n\n    return document.createElement(name);\n  }\n\n  createComment(value: string): any {\n    return document.createComment(value);\n  }\n\n  createText(value: string): any {\n    return document.createTextNode(value);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    parent.appendChild(newChild);\n  }\n\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    if (parent) {\n      parent.insertBefore(newChild, refChild);\n    }\n  }\n\n  removeChild(parent: any, oldChild: any): void {\n    if (parent) {\n      parent.removeChild(oldChild);\n    }\n  }\n\n  selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n    let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n                                                       selectorOrNode;\n    if (!el) {\n      throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n    }\n    if (!preserveContent) {\n      el.textContent = '';\n    }\n    return el;\n  }\n\n  parentNode(node: any): any {\n    return node.parentNode;\n  }\n\n  nextSibling(node: any): any {\n    return node.nextSibling;\n  }\n\n  setAttribute(el: any, name: string, value: string, namespace?: string): void {\n    if (namespace) {\n      name = namespace + ':' + name;\n      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.setAttributeNS(namespaceUri, name, value);\n      } else {\n        el.setAttribute(name, value);\n      }\n    } else {\n      el.setAttribute(name, value);\n    }\n  }\n\n  removeAttribute(el: any, name: string, namespace?: string): void {\n    if (namespace) {\n      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.removeAttributeNS(namespaceUri, name);\n      } else {\n        // TODO(FW-811): Since ivy is passing around full URIs for namespaces\n        // this could result in properties like `http://www.w3.org/2000/svg:cx=\"123\"`,\n        // which is wrong.\n        el.removeAttribute(`${namespace}:${name}`);\n      }\n    } else {\n      el.removeAttribute(name);\n    }\n  }\n\n  addClass(el: any, name: string): void {\n    el.classList.add(name);\n  }\n\n  removeClass(el: any, name: string): void {\n    el.classList.remove(name);\n  }\n\n  setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n    if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n      el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n    } else {\n      el.style[style] = value;\n    }\n  }\n\n  removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n    if (flags & RendererStyleFlags2.DashCase) {\n      el.style.removeProperty(style);\n    } else {\n      // IE requires '' instead of null\n      // see https://github.com/angular/angular/issues/7916\n      el.style[style] = '';\n    }\n  }\n\n  setProperty(el: any, name: string, value: any): void {\n    NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n    el[name] = value;\n  }\n\n  setValue(node: any, value: string): void {\n    node.nodeValue = value;\n  }\n\n  listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n      () => void {\n    NG_DEV_MODE && checkNoSyntheticProp(event, 'listener');\n    if (typeof target === 'string') {\n      return <() => void>this.eventManager.addGlobalEventListener(\n          target, event, decoratePreventDefault(callback));\n    }\n    return <() => void>this.eventManager.addEventListener(\n               target, event, decoratePreventDefault(callback)) as () => void;\n  }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n  if (name.charCodeAt(0) === AT_CHARCODE) {\n    throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n  - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n  - There is corresponding configuration for the animation named \\`${\n        name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n  }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n  private contentAttr: string;\n  private hostAttr: string;\n\n  constructor(\n      eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n      private component: RendererType2, appId: string) {\n    super(eventManager);\n    const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n    sharedStylesHost.addStyles(styles);\n\n    this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n    this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n  }\n\n  applyToHost(element: any) {\n    super.setAttribute(element, this.hostAttr, '');\n  }\n\n  override createElement(parent: any, name: string): Element {\n    const el = super.createElement(parent, name);\n    super.setAttribute(el, this.contentAttr, '');\n    return el;\n  }\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n  private shadowRoot: any;\n\n  constructor(\n      eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      private hostEl: any, component: RendererType2) {\n    super(eventManager);\n    this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n    this.sharedStylesHost.addHost(this.shadowRoot);\n    const styles = flattenStyles(component.id, component.styles, []);\n    for (let i = 0; i < styles.length; i++) {\n      const styleEl = document.createElement('style');\n      styleEl.textContent = styles[i];\n      this.shadowRoot.appendChild(styleEl);\n    }\n  }\n\n  private nodeOrShadowRoot(node: any): any {\n    return node === this.hostEl ? this.shadowRoot : node;\n  }\n\n  override destroy() {\n    this.sharedStylesHost.removeHost(this.shadowRoot);\n  }\n\n  override appendChild(parent: any, newChild: any): void {\n    return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n  }\n  override insertBefore(parent: any, newChild: any, refChild: any): void {\n    return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n  }\n  override removeChild(parent: any, oldChild: any): void {\n    return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n  }\n  override parentNode(node: any): any {\n    return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n  constructor(@Inject(DOCUMENT) doc: any) {\n    super(doc);\n  }\n\n  // This plugin should come last in the list of plugins, because it accepts all\n  // events.\n  override supports(eventName: string): boolean {\n    return true;\n  }\n\n  override addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    element.addEventListener(eventName, handler as EventListener, false);\n    return () => this.removeEventListener(element, eventName, handler as EventListener);\n  }\n\n  removeEventListener(target: any, eventName: string, callback: Function): void {\n    return target.removeEventListener(eventName, callback as EventListener);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgModule, Optional, Provider, ɵConsole as Console} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n  // pan\n  'pan': true,\n  'panstart': true,\n  'panmove': true,\n  'panend': true,\n  'pancancel': true,\n  'panleft': true,\n  'panright': true,\n  'panup': true,\n  'pandown': true,\n  // pinch\n  'pinch': true,\n  'pinchstart': true,\n  'pinchmove': true,\n  'pinchend': true,\n  'pinchcancel': true,\n  'pinchin': true,\n  'pinchout': true,\n  // press\n  'press': true,\n  'pressup': true,\n  // rotate\n  'rotate': true,\n  'rotatestart': true,\n  'rotatemove': true,\n  'rotateend': true,\n  'rotatecancel': true,\n  // swipe\n  'swipe': true,\n  'swipeleft': true,\n  'swiperight': true,\n  'swipeup': true,\n  'swipedown': true,\n  // tap\n  'tap': true,\n  'doubletap': true\n};\n\n/**\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n  on(eventName: string, callback?: Function): void;\n  off(eventName: string, callback?: Function): void;\n  destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n  /**\n   * A set of supported event names for gestures to be used in Angular.\n   * Angular supports all built-in recognizers, as listed in\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  events: string[] = [];\n\n  /**\n   * Maps gesture event names to a set of configuration options\n   * that specify overrides to the default values for specific properties.\n   *\n   * The key is a supported event name to be configured,\n   * and the options object contains a set of properties, with override values\n   * to be applied to the named recognizer event.\n   * For example, to disable recognition of the rotate event, specify\n   *  `{\"rotate\": {\"enable\": false}}`.\n   *\n   * Properties that are not present take the HammerJS default values.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   *\n   */\n  overrides: {[key: string]: Object} = {};\n\n  /**\n   * Properties whose default values can be overridden for a given event.\n   * Different sets of properties apply to different events.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  options?: {\n    cssProps?: any;\n    domEvents?: boolean;\n    enable?: boolean | ((manager: any) => boolean);\n    preset?: any[];\n    touchAction?: string;\n    recognizers?: any[];\n    inputClass?: any;\n    inputTarget?: EventTarget;\n  };\n\n  /**\n   * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n   * and attaches it to a given HTML element.\n   * @param element The element that will recognize gestures.\n   * @returns A HammerJS event-manager object.\n   */\n  buildHammer(element: HTMLElement): HammerInstance {\n    const mc = new Hammer!(element, this.options);\n\n    mc.get('pinch').set({enable: true});\n    mc.get('rotate').set({enable: true});\n\n    for (const eventName in this.overrides) {\n      mc.get(eventName).set(this.overrides[eventName]);\n    }\n\n    return mc;\n  }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n  private _loaderPromise: Promise<void>|null = null;\n\n  constructor(\n      @Inject(DOCUMENT) doc: any,\n      @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n      @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\n    super(doc);\n  }\n\n  override supports(eventName: string): boolean {\n    if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n      return false;\n    }\n\n    if (!(window as any).Hammer && !this.loader) {\n      if (typeof ngDevMode === 'undefined' || ngDevMode) {\n        this.console.warn(\n            `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n            `loaded and no custom loader has been specified.`);\n      }\n      return false;\n    }\n\n    return true;\n  }\n\n  override addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const zone = this.manager.getZone();\n    eventName = eventName.toLowerCase();\n\n    // If Hammer is not present but a loader is specified, we defer adding the event listener\n    // until Hammer is loaded.\n    if (!(window as any).Hammer && this.loader) {\n      this._loaderPromise = this._loaderPromise || this.loader();\n      // This `addEventListener` method returns a function to remove the added listener.\n      // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n      // than remove anything.\n      let cancelRegistration = false;\n      let deregister: Function = () => {\n        cancelRegistration = true;\n      };\n\n      this._loaderPromise\n          .then(() => {\n            // If Hammer isn't actually loaded when the custom loader resolves, give up.\n            if (!(window as any).Hammer) {\n              if (typeof ngDevMode === 'undefined' || ngDevMode) {\n                this.console.warn(\n                    `The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n              }\n              deregister = () => {};\n              return;\n            }\n\n            if (!cancelRegistration) {\n              // Now that Hammer is loaded and the listener is being loaded for real,\n              // the deregistration function changes from canceling registration to removal.\n              deregister = this.addEventListener(element, eventName, handler);\n            }\n          })\n          .catch(() => {\n            if (typeof ngDevMode === 'undefined' || ngDevMode) {\n              this.console.warn(\n                  `The \"${eventName}\" event cannot be bound because the custom ` +\n                  `Hammer.JS loader failed.`);\n            }\n            deregister = () => {};\n          });\n\n      // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n      // can change the behavior of `deregister` once the listener is added. Using a closure in\n      // this way allows us to avoid any additional data structures to track listener removal.\n      return () => {\n        deregister();\n      };\n    }\n\n    return zone.runOutsideAngular(() => {\n      // Creating the manager bind events, must be done outside of angular\n      const mc = this._config.buildHammer(element);\n      const callback = function(eventObj: HammerInput) {\n        zone.runGuarded(function() {\n          handler(eventObj);\n        });\n      };\n      mc.on(eventName, callback);\n      return () => {\n        mc.off(eventName, callback);\n        // destroy mc to prevent memory leak\n        if (typeof mc.destroy === 'function') {\n          mc.destroy();\n        }\n      };\n    });\n  }\n\n  isCustomEvent(eventName: string): boolean {\n    return this._config.events.indexOf(eventName) > -1;\n  }\n}\n\n/**\n * In Ivy, support for Hammer gestures is optional, so applications must\n * import the `HammerModule` at root to turn on support. This means that\n * Hammer-specific code can be tree-shaken away if not needed.\n */\nexport const HAMMER_PROVIDERS__POST_R3__ = [];\n\n/**\n * In View Engine, support for Hammer gestures is built-in by default.\n */\nexport const HAMMER_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: HammerGesturesPlugin,\n    multi: true,\n    deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n  },\n  {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n];\n\nexport const HAMMER_PROVIDERS = HAMMER_PROVIDERS__PRE_R3__;\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\n@NgModule({providers: HAMMER_PROVIDERS__PRE_R3__})\nexport class HammerModule {\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\n  // The following values are here for cross-browser compatibility and to match the W3C standard\n  // cf https://www.w3.org/TR/DOM-Level-3-Events-key/\n  '\\b': 'Backspace',\n  '\\t': 'Tab',\n  '\\x7F': 'Delete',\n  '\\x1B': 'Escape',\n  'Del': 'Delete',\n  'Esc': 'Escape',\n  'Left': 'ArrowLeft',\n  'Right': 'ArrowRight',\n  'Up': 'ArrowUp',\n  'Down': 'ArrowDown',\n  'Menu': 'ContextMenu',\n  'Scroll': 'ScrollLock',\n  'Win': 'OS'\n};\n\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n  'A': '1',\n  'B': '2',\n  'C': '3',\n  'D': '4',\n  'E': '5',\n  'F': '6',\n  'G': '7',\n  'H': '8',\n  'I': '9',\n  'J': '*',\n  'K': '+',\n  'M': '-',\n  'N': '.',\n  'O': '/',\n  '\\x60': '0',\n  '\\x90': 'NumLock'\n};\n\n\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS: {[key: string]: (event: KeyboardEvent) => boolean} = {\n  'alt': (event: KeyboardEvent) => event.altKey,\n  'control': (event: KeyboardEvent) => event.ctrlKey,\n  'meta': (event: KeyboardEvent) => event.metaKey,\n  'shift': (event: KeyboardEvent) => event.shiftKey\n};\n\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n@Injectable()\nexport class KeyEventsPlugin extends EventManagerPlugin {\n  /**\n   * Initializes an instance of the browser plug-in.\n   * @param doc The document in which key events will be detected.\n   */\n  constructor(@Inject(DOCUMENT) doc: any) {\n    super(doc);\n  }\n\n  /**\n   * Reports whether a named key event is supported.\n   * @param eventName The event name to query.\n   * @return True if the named key event is supported.\n   */\n  override supports(eventName: string): boolean {\n    return KeyEventsPlugin.parseEventName(eventName) != null;\n  }\n\n  /**\n   * Registers a handler for a specific element and key event.\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the key event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns The key event that was registered.\n   */\n  override addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const parsedEvent = KeyEventsPlugin.parseEventName(eventName)!;\n\n    const outsideHandler =\n        KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n    return this.manager.getZone().runOutsideAngular(() => {\n      return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n    });\n  }\n\n  static parseEventName(eventName: string): {fullKey: string, domEventName: string}|null {\n    const parts: string[] = eventName.toLowerCase().split('.');\n\n    const domEventName = parts.shift();\n    if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n      return null;\n    }\n\n    const key = KeyEventsPlugin._normalizeKey(parts.pop()!);\n\n    let fullKey = '';\n    MODIFIER_KEYS.forEach(modifierName => {\n      const index: number = parts.indexOf(modifierName);\n      if (index > -1) {\n        parts.splice(index, 1);\n        fullKey += modifierName + '.';\n      }\n    });\n    fullKey += key;\n\n    if (parts.length != 0 || key.length === 0) {\n      // returning null instead of throwing to let another plugin process the event\n      return null;\n    }\n\n    // NOTE: Please don't rewrite this as so, as it will break JSCompiler property renaming.\n    //       The code must remain in the `result['domEventName']` form.\n    // return {domEventName, fullKey};\n    const result: {fullKey: string, domEventName: string} = {} as any;\n    result['domEventName'] = domEventName;\n    result['fullKey'] = fullKey;\n    return result;\n  }\n\n  static getEventFullKey(event: KeyboardEvent): string {\n    let fullKey = '';\n    let key = getEventKey(event);\n    key = key.toLowerCase();\n    if (key === ' ') {\n      key = 'space';  // for readability\n    } else if (key === '.') {\n      key = 'dot';  // because '.' is used as a separator in event names\n    }\n    MODIFIER_KEYS.forEach(modifierName => {\n      if (modifierName != key) {\n        const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n        if (modifierGetter(event)) {\n          fullKey += modifierName + '.';\n        }\n      }\n    });\n    fullKey += key;\n    return fullKey;\n  }\n\n  /**\n   * Configures a handler callback for a key event.\n   * @param fullKey The event name that combines all simultaneous keystrokes.\n   * @param handler The function that responds to the key event.\n   * @param zone The zone in which the event occurred.\n   * @returns A callback function.\n   */\n  static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function {\n    return (event: any /** TODO #9100 */) => {\n      if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n        zone.runGuarded(() => handler(event));\n      }\n    };\n  }\n\n  /** @internal */\n  static _normalizeKey(keyName: string): string {\n    // TODO: switch to a Map if the mapping grows too much\n    switch (keyName) {\n      case 'esc':\n        return 'escape';\n      default:\n        return keyName;\n    }\n  }\n}\n\nfunction getEventKey(event: any): string {\n  let key = event.key;\n  if (key == null) {\n    key = event.keyIdentifier;\n    // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n    // Safari cf\n    // https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n    if (key == null) {\n      return 'Unidentified';\n    }\n    if (key.startsWith('U+')) {\n      key = String.fromCharCode(parseInt(key.substring(2), 16));\n      if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n        // There is a bug in Chrome for numeric keypad keys:\n        // https://code.google.com/p/chromium/issues/detail?id=155654\n        // 1, 2, 3 ... are reported as A, B, C ...\n        key = (_chromeNumKeyPadMap as any)[key];\n      }\n    }\n  }\n\n  return _keyMap[key] || key;\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {forwardRef, Inject, Injectable, Injector, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeUrl as _sanitizeUrl, ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow, ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml, ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl, ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript, ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle, ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl, ɵBypassType as BypassType, ɵgetSanitizationBypassType as getSanitizationBypassType, ɵunwrapSafeValue as unwrapSafeValue} from '@angular/core';\n\nexport {SecurityContext};\n\n\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl)})\nexport abstract class DomSanitizer implements Sanitizer {\n  /**\n   * Sanitizes a value for use in the given SecurityContext.\n   *\n   * If value is trusted for the context, this method will unwrap the contained safe value and use\n   * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n   * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n   * is responsible to make sure that the value can definitely be safely used in the given context.\n   */\n  abstract sanitize(context: SecurityContext, value: SafeValue|string|null): string|null;\n\n  /**\n   * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n   * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n   * leave safe HTML intact, so in most situations this method should not be used.\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n  /**\n   * Bypass security and trust the given value to be safe style value (CSS).\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n  /**\n   * Bypass security and trust the given value to be safe JavaScript.\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n  /**\n   * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n   * in hyperlinks or `<img src>`.\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n  /**\n   * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n   * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n   *\n   * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n   * security risks!\n   */\n  abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\nexport function domSanitizerImplFactory(injector: Injector) {\n  return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\n\n@Injectable({providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector]})\nexport class DomSanitizerImpl extends DomSanitizer {\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n  }\n\n  override sanitize(ctx: SecurityContext, value: SafeValue|string|null): string|null {\n    if (value == null) return null;\n    switch (ctx) {\n      case SecurityContext.NONE:\n        return value as string;\n      case SecurityContext.HTML:\n        if (allowSanitizationBypassOrThrow(value, BypassType.Html)) {\n          return unwrapSafeValue(value);\n        }\n        return _sanitizeHtml(this._doc, String(value)).toString();\n      case SecurityContext.STYLE:\n        if (allowSanitizationBypassOrThrow(value, BypassType.Style)) {\n          return unwrapSafeValue(value);\n        }\n        return value as string;\n      case SecurityContext.SCRIPT:\n        if (allowSanitizationBypassOrThrow(value, BypassType.Script)) {\n          return unwrapSafeValue(value);\n        }\n        throw new Error('unsafe value used in a script context');\n      case SecurityContext.URL:\n        const type = getSanitizationBypassType(value);\n        if (allowSanitizationBypassOrThrow(value, BypassType.Url)) {\n          return unwrapSafeValue(value);\n        }\n        return _sanitizeUrl(String(value));\n      case SecurityContext.RESOURCE_URL:\n        if (allowSanitizationBypassOrThrow(value, BypassType.ResourceUrl)) {\n          return unwrapSafeValue(value);\n        }\n        throw new Error(\n            'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n      default:\n        throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\n    }\n  }\n\n  override bypassSecurityTrustHtml(value: string): SafeHtml {\n    return bypassSanitizationTrustHtml(value);\n  }\n  override bypassSecurityTrustStyle(value: string): SafeStyle {\n    return bypassSanitizationTrustStyle(value);\n  }\n  override bypassSecurityTrustScript(value: string): SafeScript {\n    return bypassSanitizationTrustScript(value);\n  }\n  override bypassSecurityTrustUrl(value: string): SafeUrl {\n    return bypassSanitizationTrustUrl(value);\n  }\n  override bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n    return bypassSanitizationTrustResourceUrl(value);\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.io/license\n */\n\nimport {CommonModule, DOCUMENT, XhrFactory, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, createPlatformFactory, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, ɵINJECTOR_SCOPE as INJECTOR_SCOPE, ɵsetDocument} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {BrowserXhr} from './browser/xhr';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_PROVIDERS} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport function initDomAdapter() {\n  BrowserDomAdapter.makeCurrent();\n  BrowserGetTestability.init();\n}\n\nexport function errorHandler(): ErrorHandler {\n  return new ErrorHandler();\n}\n\nexport function _document(): any {\n  // Tell ivy about the global document\n  ɵsetDocument(document);\n  return document;\n}\n\nexport const INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n  {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n  {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n  {provide: DOCUMENT, useFactory: _document, deps: []},\n];\n\nconst BROWSER_SANITIZATION_PROVIDERS__PRE_R3__: StaticProvider[] = [\n  {provide: Sanitizer, useExisting: DomSanitizer},\n  {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\nexport const BROWSER_SANITIZATION_PROVIDERS__POST_R3__ = [];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS__PRE_R3__;\n\n/**\n * A factory function that returns a `PlatformRef` instance associated with browser service\n * providers.\n *\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n    createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n  BROWSER_SANITIZATION_PROVIDERS,\n  {provide: INJECTOR_SCOPE, useValue: 'root'},\n  {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: DomEventsPlugin,\n    multi: true,\n    deps: [DOCUMENT, NgZone, PLATFORM_ID]\n  },\n  {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n  HAMMER_PROVIDERS,\n  {\n    provide: DomRendererFactory2,\n    useClass: DomRendererFactory2,\n    deps: [EventManager, DomSharedStylesHost, APP_ID]\n  },\n  {provide: RendererFactory2, useExisting: DomRendererFactory2},\n  {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n  {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n  {provide: Testability, useClass: Testability, deps: [NgZone]},\n  {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n  {provide: XhrFactory, useClass: BrowserXhr, deps: []},\n  ELEMENT_PROBE_PROVIDERS,\n];\n\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\n@NgModule({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n  constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n    if (parentModule) {\n      throw new Error(\n          `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n    }\n  }\n\n  /**\n   * Configures a browser-based app to transition from a server-rendered app, if\n   * one is present on the page.\n   *\n   * @param params An object containing an identifier for the app to transition.\n   * The ID must match between the client and server versions of the app.\n   * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n   */\n  static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n    return {\n      ngModule: BrowserModule,\n      providers: [\n        {provide: APP_ID, useValue: params.appId},\n        {provide: TRANSITION_ID, useExisting: APP_ID},\n        SERVER_TRANSITION_PROVIDERS,\n      ],\n    };\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.io/license\n */\n\nimport {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n/**\n * Represents the attributes of an HTML `<meta>` element. The element itself is\n * represented by the internal `HTMLMetaElement`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see `Meta`\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n  charset?: string;\n  content?: string;\n  httpEquiv?: string;\n  id?: string;\n  itemprop?: string;\n  name?: string;\n  property?: string;\n  scheme?: string;\n  url?: string;\n}&{\n  // TODO(IgorMinar): this type looks wrong\n  [prop: string]: string;\n};\n\n/**\n * Factory to create a `Meta` service instance for the current DOM document.\n */\nexport function createMeta() {\n  return new Meta(ɵɵinject(DOCUMENT));\n}\n\n/**\n * A service for managing HTML `<meta>` tags.\n *\n * Properties of the `MetaDefinition` object match the attributes of the\n * HTML `<meta>` tag. These tags define document metadata that is important for\n * things like configuring a Content Security Policy, defining browser compatibility\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\n * and Search Engine Optimization (SEO).\n *\n * To identify specific `<meta>` tags in a document, use an attribute selection\n * string in the format `\"tag_attribute='value string'\"`.\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\n * whose `name` attribute has the value `\"description\"`.\n * Selectors are used with the `querySelector()` Document method,\n * in the format `meta[{attrSelector}]`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n *\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createMeta, deps: []})\nexport class Meta {\n  private _dom: DomAdapter;\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    this._dom = getDOM();\n  }\n  /**\n   * Retrieves or creates a specific `<meta>` tag element in the current HTML document.\n   * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n   * values in the provided tag definition, and verifies that all other attribute values are equal.\n   * If an existing element is found, it is returned and is not modified in any way.\n   * @param tag The definition of a `<meta>` element to match or create.\n   * @param forceCreation True to create a new element without checking whether one already exists.\n   * @returns The existing element with the same attributes and values if found,\n   * the new element if no match is found, or `null` if the tag parameter is not defined.\n   */\n  addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement|null {\n    if (!tag) return null;\n    return this._getOrCreateElement(tag, forceCreation);\n  }\n\n  /**\n   * Retrieves or creates a set of `<meta>` tag elements in the current HTML document.\n   * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n   * values in the provided tag definition, and verifies that all other attribute values are equal.\n   * @param tags An array of tag definitions to match or create.\n   * @param forceCreation True to create new elements without checking whether they already exist.\n   * @returns The matching elements if found, or the new elements.\n   */\n  addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n    if (!tags) return [];\n    return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n      if (tag) {\n        result.push(this._getOrCreateElement(tag, forceCreation));\n      }\n      return result;\n    }, []);\n  }\n\n  /**\n   * Retrieves a `<meta>` tag element in the current HTML document.\n   * @param attrSelector The tag attribute and value to match against, in the format\n   * `\"tag_attribute='value string'\"`.\n   * @returns The matching element, if any.\n   */\n  getTag(attrSelector: string): HTMLMetaElement|null {\n    if (!attrSelector) return null;\n    return this._doc.querySelector(`meta[${attrSelector}]`) || null;\n  }\n\n  /**\n   * Retrieves a set of `<meta>` tag elements in the current HTML document.\n   * @param attrSelector The tag attribute and value to match against, in the format\n   * `\"tag_attribute='value string'\"`.\n   * @returns The matching elements, if any.\n   */\n  getTags(attrSelector: string): HTMLMetaElement[] {\n    if (!attrSelector) return [];\n    const list /*NodeList*/ = this._doc.querySelectorAll(`meta[${attrSelector}]`);\n    return list ? [].slice.call(list) : [];\n  }\n\n  /**\n   * Modifies an existing `<meta>` tag element in the current HTML document.\n   * @param tag The tag description with which to replace the existing tag content.\n   * @param selector A tag attribute and value to match against, to identify\n   * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n   * If not supplied, matches a tag with the same `name` or `property` attribute value as the\n   * replacement tag.\n   * @return The modified element.\n   */\n  updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement|null {\n    if (!tag) return null;\n    selector = selector || this._parseSelector(tag);\n    const meta: HTMLMetaElement = this.getTag(selector)!;\n    if (meta) {\n      return this._setMetaElementAttributes(tag, meta);\n    }\n    return this._getOrCreateElement(tag, true);\n  }\n\n  /**\n   * Removes an existing `<meta>` tag element from the current HTML document.\n   * @param attrSelector A tag attribute and value to match against, to identify\n   * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n   */\n  removeTag(attrSelector: string): void {\n    this.removeTagElement(this.getTag(attrSelector)!);\n  }\n\n  /**\n   * Removes an existing `<meta>` tag element from the current HTML document.\n   * @param meta The tag definition to match against to identify an existing tag.\n   */\n  removeTagElement(meta: HTMLMetaElement): void {\n    if (meta) {\n      this._dom.remove(meta);\n    }\n  }\n\n  private _getOrCreateElement(meta: MetaDefinition, forceCreation: boolean = false):\n      HTMLMetaElement {\n    if (!forceCreation) {\n      const selector: string = this._parseSelector(meta);\n      // It's allowed to have multiple elements with the same name so it's not enough to\n      // just check that element with the same name already present on the page. We also need to\n      // check if element has tag attributes\n      const elem = this.getTags(selector).filter(elem => this._containsAttributes(meta, elem))[0];\n      if (elem !== undefined) return elem;\n    }\n    const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n    this._setMetaElementAttributes(meta, element);\n    const head = this._doc.getElementsByTagName('head')[0];\n    head.appendChild(element);\n    return element;\n  }\n\n  private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n    Object.keys(tag).forEach(\n        (prop: string) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\n    return el;\n  }\n\n  private _parseSelector(tag: MetaDefinition): string {\n    const attr: string = tag.name ? 'name' : 'property';\n    return `${attr}=\"${tag[attr]}\"`;\n  }\n\n  private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n    return Object.keys(tag).every(\n        (key: string) => elem.getAttribute(this._getMetaKeyMap(key)) === tag[key]);\n  }\n\n  private _getMetaKeyMap(prop: string): string {\n    return META_KEYS_MAP[prop] || prop;\n  }\n}\n\n/**\n * Mapping for MetaDefinition properties with their correct meta attribute names\n */\nconst META_KEYS_MAP: {[prop: string]: string;} = {\n  httpEquiv: 'http-equiv'\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n  return new Title(ɵɵinject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createTitle, deps: []})\nexport class Title {\n  constructor(@Inject(DOCUMENT) private _doc: any) {}\n  /**\n   * Get the title of the current HTML document.\n   */\n  getTitle(): string {\n    return this._doc.title;\n  }\n\n  /**\n   * Set the title of the current HTML document.\n   * @param newTitle\n   */\n  setTitle(newTitle: string) {\n    this._doc.title = newTitle || '';\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.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\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 {ApplicationRef, ComponentRef} from '@angular/core';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n  constructor(public msPerTick: number, public numTicks: number) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n  appRef: ApplicationRef;\n\n  constructor(ref: ComponentRef<any>) {\n    this.appRef = ref.injector.get(ApplicationRef);\n  }\n\n  // tslint:disable:no-console\n  /**\n   * Exercises change detection in a loop and then prints the average amount of\n   * time in milliseconds how long a single round of change detection takes for\n   * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n   * of 500 milliseconds.\n   *\n   * Optionally, a user may pass a `config` parameter containing a map of\n   * options. Supported options are:\n   *\n   * `record` (boolean) - causes the profiler to record a CPU profile while\n   * it exercises the change detector. Example:\n   *\n   * ```\n   * ng.profiler.timeChangeDetection({record: true})\n   * ```\n   */\n  timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n    const record = config && config['record'];\n    const profileName = 'Change Detection';\n    // Profiler is not available in Android browsers without dev tools opened\n    const isProfilerAvailable = window.console.profile != null;\n    if (record && isProfilerAvailable) {\n      window.console.profile(profileName);\n    }\n    const start = performanceNow();\n    let numTicks = 0;\n    while (numTicks < 5 || (performanceNow() - start) < 500) {\n      this.appRef.tick();\n      numTicks++;\n    }\n    const end = performanceNow();\n    if (record && isProfilerAvailable) {\n      window.console.profileEnd(profileName);\n    }\n    const msPerTick = (end - start) / numTicks;\n    window.console.log(`ran ${numTicks} change detection cycles`);\n    window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n    return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n  }\n}\n\nfunction performanceNow() {\n  return window.performance && window.performance.now ? window.performance.now() :\n                                                        new Date().getTime();\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.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n *    then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n  exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n  return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n  exportNgVar(PROFILER_GLOBAL_NAME, null);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\n\nexport function escapeHtml(text: string): string {\n  const escapedText: {[k: string]: string} = {\n    '&': '&a;',\n    '\"': '&q;',\n    '\\'': '&s;',\n    '<': '&l;',\n    '>': '&g;',\n  };\n  return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n  const unescapedText: {[k: string]: string} = {\n    '&a;': '&',\n    '&q;': '\"',\n    '&s;': '\\'',\n    '&l;': '<',\n    '&g;': '>',\n  };\n  return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string&{__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n  return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n  private store: {[k: string]: {}|undefined} = {};\n  private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n  /** @internal */\n  static init(initState: {}) {\n    const transferState = new TransferState();\n    transferState.store = initState;\n    return transferState;\n  }\n\n  /**\n   * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n   */\n  get<T>(key: StateKey<T>, defaultValue: T): T {\n    return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n  }\n\n  /**\n   * Set the value corresponding to a key.\n   */\n  set<T>(key: StateKey<T>, value: T): void {\n    this.store[key] = value;\n  }\n\n  /**\n   * Remove a key from the store.\n   */\n  remove<T>(key: StateKey<T>): void {\n    delete this.store[key];\n  }\n\n  /**\n   * Test whether a key exists in the store.\n   */\n  hasKey<T>(key: StateKey<T>) {\n    return this.store.hasOwnProperty(key);\n  }\n\n  /**\n   * Register a callback to provide the value for a key when `toJson` is called.\n   */\n  onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n    this.onSerializeCallbacks[key] = callback;\n  }\n\n  /**\n   * Serialize the current state of the store to JSON.\n   */\n  toJson(): string {\n    // Call the onSerialize callbacks and put those values into the store.\n    for (const key in this.onSerializeCallbacks) {\n      if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n        try {\n          this.store[key] = this.onSerializeCallbacks[key]();\n        } catch (e) {\n          console.warn('Exception in onSerialize callback: ', e);\n        }\n      }\n    }\n    return JSON.stringify(this.store);\n  }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n  // Locate the script tag with the JSON data transferred from the server.\n  // The id of the script tag is set to the Angular appId + 'state'.\n  const script = doc.getElementById(appId + '-state');\n  let initialState = {};\n  if (script && script.textContent) {\n    try {\n      // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n      initialState = JSON.parse(unescapeHtml(script.textContent)) as {};\n    } catch (e) {\n      console.warn('Exception while restoring TransferState for app ' + appId, e);\n    }\n  }\n  return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n  providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n  /**\n   * Match all nodes.\n   *\n   * @usageNotes\n   * ### Example\n   *\n   * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n   */\n  static all(): Predicate<DebugNode> {\n    return () => true;\n  }\n\n  /**\n   * Match elements by the given CSS selector.\n   *\n   * @usageNotes\n   * ### Example\n   *\n   * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n   */\n  static css(selector: string): Predicate<DebugElement> {\n    return (debugElement) => {\n      return debugElement.nativeElement != null ?\n          elementMatches(debugElement.nativeElement, selector) :\n          false;\n    };\n  }\n\n  /**\n   * Match nodes that have the given directive present.\n   *\n   * @usageNotes\n   * ### Example\n   *\n   * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n   */\n  static directive(type: Type<any>): Predicate<DebugNode> {\n    return (debugNode) => debugNode.providerTokens!.indexOf(type) !== -1;\n  }\n}\n\nfunction elementMatches(n: any, selector: string): boolean {\n  if (getDOM().isElementNode(n)) {\n    return n.matches && n.matches(selector) ||\n        n.msMatchesSelector && n.msMatchesSelector(selector) ||\n        n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n  }\n\n  return false;\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.io/license\n */\n\nexport {ɵgetDOM} from '@angular/common';\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, BROWSER_SANITIZATION_PROVIDERS__POST_R3__ as ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__, initDomAdapter as ɵinitDomAdapter, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, flattenStyles as ɵflattenStyles, NAMESPACE_URIS as ɵNAMESPACE_URIS, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\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\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('12.2.13');\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 {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, makeStateKey, StateKey, TransferState} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HAMMER_PROVIDERS__POST_R3__ as ɵHAMMER_PROVIDERS__POST_R3__, HammerGestureConfig, HammerLoader, HammerModule} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n// This must be exported so it doesn't get tree-shaken away prematurely\nexport {ELEMENT_PROBE_PROVIDERS__POST_R3__ as ɵELEMENT_PROBE_PROVIDERS__POST_R3__} from './dom/debug/ng_probe';\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\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\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\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_p} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_l,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {BrowserXhr as ɵangular_packages_platform_browser_platform_browser_o} from './src/browser/xhr';\nexport {ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_n,_createNgProbeR2 as ɵangular_packages_platform_browser_platform_browser_m} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';\nexport {HAMMER_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,HAMMER_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_h} from './src/dom/events/hammer_gestures';\nexport {domSanitizerImplFactory as ɵangular_packages_platform_browser_platform_browser_j} from './src/security/dom_sanitization_service';"]}
Note: See TracChangeset for help on using the changeset viewer.