{"version":3,"file":"devextreme-angular-http.mjs","sources":["../../../dist/http/ajax.ts","../../../dist/http/index.ts","../../../dist/http/devextreme-angular-http.ts"],"sourcesContent":["/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/DevExtreme\n */\n\nimport {\n  HttpClient,\n  HttpEventType,\n  HttpParams,\n  HttpEvent,\n  HttpErrorResponse,\n  HttpResponse,\n  HttpHeaders,\n} from '@angular/common/http';\nimport { Deferred, DeferredObj } from 'devextreme/core/utils/deferred';\nimport { isDefined } from 'devextreme/core/utils/type';\nimport { getWindow } from 'devextreme/core/utils/window';\nimport {\n  isCrossDomain,\n  evalCrossDomainScript,\n  getRequestOptions,\n  getJsonpCallbackName,\n  getRequestHeaders as getAjaxRequestHeaders,\n  getAcceptHeader,\n  getMethod,\n  evalScript,\n} from 'devextreme/core/utils/ajax_utils';\n\ntype Result = Promise<any> & { abort: () => void };\ntype DeferredResult = DeferredObj<any>;\ninterface Options {\n  url: string;\n  [key: string]: any;\n}\n\ninterface XHRSurrogate {\n  type?: string;\n  aborted: boolean;\n  abort: () => void;\n  response?: HttpResponse<object>;\n  status?: number;\n  statusText?: string;\n}\n\ninterface SubscriptionLike {\n  unsubscribe: () => void;\n}\n\nconst PARSER_ERROR = 'parsererror';\nconst SUCCESS = 'success';\nconst ERROR = 'error';\nconst NO_CONTENT = 'nocontent';\nconst TIMEOUT = 'timeout';\nconst STATUS_ABORT = 0;\nconst CONTENT_TYPE = 'Content-Type';\nconst URLENCODED = 'application/x-www-form-urlencoded';\n\nfunction assignResponseProps(xhrSurrogate: XHRSurrogate, response: HttpResponse<any> | HttpErrorResponse) {\n  const getResponseHeader = (name: string) => response.headers.get(name);\n\n  function makeResponseText() {\n    const body = 'error' in response ? response.error : response.body;\n\n    if (typeof body !== 'string' || String(getResponseHeader(CONTENT_TYPE)).startsWith('application/json')) {\n      return JSON.stringify(body);\n    }\n\n    return body;\n  }\n\n  Object.assign(xhrSurrogate, {\n    status: response.status,\n    statusText: response.statusText,\n    getResponseHeader,\n    responseText: makeResponseText(),\n  });\n\n  return xhrSurrogate;\n}\n\nfunction isGetMethod(options: Options) {\n  return getMethod(options) === 'GET';\n}\n\nfunction isCacheNeed(options: Options) {\n  if (options.cache === undefined) {\n    return !(isUsedScript(options) || isUsedJSONP(options));\n  }\n\n  return options.cache;\n}\n\nfunction isUsedScript(options: Options) {\n  return options.dataType === 'script';\n}\n\nfunction isUsedJSONP(options: Options) {\n  return options.dataType === 'jsonp';\n}\n\nfunction getRequestHeaders(options: Options) {\n  const headers = getAjaxRequestHeaders(options);\n  const { upload } = options;\n\n  if (!headers.Accept) {\n    headers.Accept = getAcceptHeader(options);\n  }\n\n  if (!upload && !isGetMethod(options) && !headers[CONTENT_TYPE]) {\n    headers[CONTENT_TYPE] = options.contentType || `${URLENCODED};charset=utf-8`;\n  }\n\n  return Object.keys(headers).reduce((acc, key) => {\n    if (isDefined(headers[key])) {\n      acc[key] = headers[key];\n    }\n    return acc;\n  }, {});\n}\n\nfunction rejectIfAborted(deferred: DeferredResult, xhrSurrogate: XHRSurrogate, callback?: () => void) {\n  if (xhrSurrogate.aborted) {\n    deferred.reject({ status: STATUS_ABORT, statusText: 'aborted', ok: false });\n    callback?.();\n  }\n}\n\nfunction getJsonpParameters(options: Options) {\n  const patchedOptions = { ...options };\n  const callbackName = getJsonpCallbackName(patchedOptions);\n\n  return { callbackName, data: patchedOptions.data };\n}\n\nfunction addJsonpCallback(callbackName: string, deferred: DeferredResult, xhrSurrogate: XHRSurrogate) {\n  getWindow()[callbackName] = (data) => deferred.resolve(data, SUCCESS, xhrSurrogate);\n}\n\nfunction sendRequestByScript(url: string, deferred: DeferredResult, xhrSurrogate: XHRSurrogate) {\n  evalCrossDomainScript(url).then(\n    () => deferred.resolve(null, SUCCESS, xhrSurrogate),\n    () => deferred.reject(xhrSurrogate, ERROR),\n  );\n}\n\nfunction getRequestCallbacks(options: Options, deferred: DeferredResult, xhrSurrogate: XHRSurrogate) {\n  return {\n    next(response: HttpResponse<any>) {\n      if (isUsedJSONP(options)) {\n        return options.crossDomain\n          ? deferred.resolve(response, 'success', assignResponseProps(xhrSurrogate, response))\n          : evalScript(response.body);\n      }\n\n      if (isUsedScript(options)) {\n        evalScript(response.body);\n      }\n\n      return deferred.resolve(\n        response.body,\n        response.body ? 'success' : NO_CONTENT,\n        assignResponseProps(xhrSurrogate, response),\n      );\n    },\n    error(error: HttpErrorResponse) {\n      error = error && typeof error === 'object' ? error : { error } as unknown as HttpErrorResponse;\n      let errorStatus = error?.statusText === TIMEOUT ? TIMEOUT : 'error';\n\n      errorStatus = options.dataType === 'json' && error?.message?.includes?.('parsing')\n        ? PARSER_ERROR\n        : errorStatus;\n\n      return deferred.reject(assignResponseProps(xhrSurrogate, { status: 400, ...error } as HttpErrorResponse), errorStatus, error);\n    },\n    complete() {\n      rejectIfAborted(deferred, xhrSurrogate);\n    },\n  };\n}\n\nfunction getUploadCallbacks(options: Options, deferred: DeferredResult, xhrSurrogate: XHRSurrogate) {\n  let total = 0;\n  let isUploadStarted = false;\n\n  return {\n    next: (event: HttpEvent<object>) => {\n      if (!isUploadStarted\n          && [HttpEventType.UploadProgress, HttpEventType.Sent].includes(event.type)) {\n        options.upload.onloadstart?.(event);\n        isUploadStarted = true;\n      }\n\n      if (event.type === HttpEventType.UploadProgress) {\n        total += event.loaded;\n        options.upload.onprogress?.({ ...event, total });\n      } else if (event.type === HttpEventType.Response) {\n        xhrSurrogate.status = event.status;\n        xhrSurrogate.statusText = event.statusText;\n        xhrSurrogate.response = event;\n\n        const result = options?.dataType === 'json' && typeof event.body === 'object'\n          ? event.body\n          : xhrSurrogate;\n\n        return deferred.resolve(result, SUCCESS);\n      }\n      return null;\n    },\n    error(error: HttpErrorResponse) {\n      error = error && typeof error === 'object' ? error : { error } as unknown as HttpErrorResponse;\n      return deferred.reject(assignResponseProps(xhrSurrogate, { status: 400, ...error } as HttpErrorResponse), error.status, error);\n    },\n    complete() {\n      rejectIfAborted(deferred, xhrSurrogate, () => {\n        options.upload?.onabort?.(xhrSurrogate);\n      });\n    },\n  };\n}\n\nexport const sendRequestFactory = (httpClient: HttpClient) => (options: Options) => {\n  let subscription: SubscriptionLike | null = null;\n  let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n  const deferred: DeferredResult = Deferred();\n  const result = deferred.promise() as Result;\n  const isGet = isGetMethod(options);\n  const isJSONP = isUsedJSONP(options);\n  const isScript = isUsedScript(options);\n\n  options.crossDomain = isCrossDomain(options.url);\n  options.cache = isCacheNeed(options);\n\n  const clearTimeoutIfSet = () => {\n    if (timeoutId !== null) {\n      clearTimeout(timeoutId);\n      timeoutId = null;\n    }\n  };\n\n  const headers = getRequestHeaders(options);\n  const xhrSurrogate: XHRSurrogate = {\n    type: 'XMLHttpRequestSurrogate',\n    aborted: false,\n    abort() {\n      this.aborted = true;\n      clearTimeoutIfSet();\n      subscription?.unsubscribe();\n      subscription = null;\n      rejectIfAborted(deferred, this, () => options.upload?.onabort?.(this));\n    },\n  };\n\n  result.abort = () => xhrSurrogate.abort();\n\n  if (!options.crossDomain && isJSONP) {\n    const { callbackName, data } = getJsonpParameters(options);\n\n    options.data = { ...options.data, ...data };\n\n    addJsonpCallback(callbackName, deferred, xhrSurrogate);\n  }\n\n  const { url, parameters: data } = getRequestOptions(options, headers);\n  const { upload, beforeSend, xhrFields } = options;\n\n  beforeSend?.(xhrSurrogate);\n\n  if (options.crossDomain && isScript && !xhrSurrogate.aborted) {\n    sendRequestByScript(url, deferred, xhrSurrogate);\n    return result;\n  }\n\n  if (options.cache === false && isGet && data) {\n    data._ = Date.now() + 1;\n  }\n\n  const makeBody = () => (!upload && typeof data === 'object' && headers[CONTENT_TYPE].indexOf(URLENCODED) === 0\n    ? Object.keys(data).reduce(\n      (httpParams, key) => httpParams.set(key, data[key]),\n      new HttpParams(),\n    ).toString()\n    : data);\n\n  const body = isGet ? undefined : makeBody();\n  const params = isGet ? data : undefined;\n\n  const request = options.crossDomain && isJSONP\n    ? httpClient.jsonp(url, options.jsonp || 'callback')\n    : httpClient.request(\n      getMethod(options),\n      url,\n      {\n        params,\n        body,\n        headers,\n        reportProgress: true,\n        withCredentials: xhrFields?.withCredentials,\n        observe: upload ? 'events' : 'response',\n        responseType: options.responseType || (isScript || isJSONP ? 'text' : options.dataType),\n      },\n    );\n\n  const callbacks = upload\n    ? getUploadCallbacks(options, deferred, xhrSurrogate)\n    : getRequestCallbacks(options, deferred, xhrSurrogate);\n\n  if (options.timeout) {\n    timeoutId = setTimeout(() => {\n      timeoutId = null;\n      subscription?.unsubscribe();\n      subscription = null;\n      const timeoutError = {\n        statusText: TIMEOUT,\n        status: 0,\n        ok: false,\n        headers: new HttpHeaders(),\n      } as HttpErrorResponse;\n      callbacks.error(timeoutError);\n    }, options.timeout);\n  }\n\n  subscription = request.subscribe({\n    next(value) {\n      clearTimeoutIfSet();\n      callbacks.next(value);\n    },\n    error(err) {\n      clearTimeoutIfSet();\n      callbacks.error(err);\n    },\n    complete: callbacks.complete,\n  });\n\n  return result;\n};\n","/*!\n * devextreme-angular\n * Version: 26.1.3\n * Build date: Wed Jun 10 2026\n *\n * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/DevExtreme\n */\n\nimport { NgModule, Injector, createNgModule } from '@angular/core';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport devextremeAjax from 'devextreme/core/utils/ajax';\nimport { sendRequestFactory } from './ajax';\n\n@NgModule({\n  exports: [],\n  imports: [],\n  providers: [],\n})\nexport class DxHttpModule {\n  constructor(injector: Injector) {\n    let httpClient: HttpClient = injector.get(HttpClient, null);\n\n    if (!httpClient) {\n      const moduleRef = createNgModule(HttpClientModule, injector);\n\n      httpClient = moduleRef.injector.get(HttpClient);\n    }\n\n    devextremeAjax.inject({ sendRequest: sendRequestFactory(httpClient) });\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getAjaxRequestHeaders"],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;AAWG;AA6CH,MAAM,YAAY,GAAG,aAAa;AAClC,MAAM,OAAO,GAAG,SAAS;AACzB,MAAM,KAAK,GAAG,OAAO;AACrB,MAAM,UAAU,GAAG,WAAW;AAC9B,MAAM,OAAO,GAAG,SAAS;AACzB,MAAM,YAAY,GAAG,CAAC;AACtB,MAAM,YAAY,GAAG,cAAc;AACnC,MAAM,UAAU,GAAG,mCAAmC;AAEtD,SAAS,mBAAmB,CAAC,YAA0B,EAAE,QAA+C,EAAA;AACtG,IAAA,MAAM,iBAAiB,GAAG,CAAC,IAAY,KAAK,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAEtE,IAAA,SAAS,gBAAgB,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,OAAO,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI;AAEjE,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;AACtG,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7B;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;QAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,iBAAiB;QACjB,YAAY,EAAE,gBAAgB,EAAE;AACjC,KAAA,CAAC;AAEF,IAAA,OAAO,YAAY;AACrB;AAEA,SAAS,WAAW,CAAC,OAAgB,EAAA;AACnC,IAAA,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK;AACrC;AAEA,SAAS,WAAW,CAAC,OAAgB,EAAA;AACnC,IAAA,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;AAC/B,QAAA,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACzD;IAEA,OAAO,OAAO,CAAC,KAAK;AACtB;AAEA,SAAS,YAAY,CAAC,OAAgB,EAAA;AACpC,IAAA,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;AACtC;AAEA,SAAS,WAAW,CAAC,OAAgB,EAAA;AACnC,IAAA,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO;AACrC;AAEA,SAAS,iBAAiB,CAAC,OAAgB,EAAA;AACzC,IAAA,MAAM,OAAO,GAAGA,mBAAqB,CAAC,OAAO,CAAC;AAC9C,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;AAE1B,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACnB,QAAA,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;IAC3C;AAEA,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC9D,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,WAAW,IAAI,CAAA,EAAG,UAAU,CAAA,cAAA,CAAgB;IAC9E;AAEA,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;QAC9C,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;YAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;QACzB;AACA,QAAA,OAAO,GAAG;IACZ,CAAC,EAAE,EAAE,CAAC;AACR;AAEA,SAAS,eAAe,CAAC,QAAwB,EAAE,YAA0B,EAAE,QAAqB,EAAA;AAClG,IAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACxB,QAAA,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3E,QAAQ,IAAI;IACd;AACF;AAEA,SAAS,kBAAkB,CAAC,OAAgB,EAAA;AAC1C,IAAA,MAAM,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE;AACrC,IAAA,MAAM,YAAY,GAAG,oBAAoB,CAAC,cAAc,CAAC;IAEzD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE;AACpD;AAEA,SAAS,gBAAgB,CAAC,YAAoB,EAAE,QAAwB,EAAE,YAA0B,EAAA;IAClG,SAAS,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC;AACrF;AAEA,SAAS,mBAAmB,CAAC,GAAW,EAAE,QAAwB,EAAE,YAA0B,EAAA;AAC5F,IAAA,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,CAC7B,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EACnD,MAAM,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAC3C;AACH;AAEA,SAAS,mBAAmB,CAAC,OAAgB,EAAE,QAAwB,EAAE,YAA0B,EAAA;IACjG,OAAO;AACL,QAAA,IAAI,CAAC,QAA2B,EAAA;AAC9B,YAAA,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;gBACxB,OAAO,OAAO,CAAC;AACb,sBAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,mBAAmB,CAAC,YAAY,EAAE,QAAQ,CAAC;AACnF,sBAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC/B;AAEA,YAAA,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;AACzB,gBAAA,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B;YAEA,OAAO,QAAQ,CAAC,OAAO,CACrB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,IAAI,GAAG,SAAS,GAAG,UAAU,EACtC,mBAAmB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAC5C;QACH,CAAC;AACD,QAAA,KAAK,CAAC,KAAwB,EAAA;AAC5B,YAAA,KAAK,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,EAAE,KAAK,EAAkC;AAC9F,YAAA,IAAI,WAAW,GAAG,KAAK,EAAE,UAAU,KAAK,OAAO,GAAG,OAAO,GAAG,OAAO;AAEnE,YAAA,WAAW,GAAG,OAAO,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS;AAC/E,kBAAE;kBACA,WAAW;YAEf,OAAO,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAuB,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC;QAC/H,CAAC;QACD,QAAQ,GAAA;AACN,YAAA,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC;QACzC,CAAC;KACF;AACH;AAEA,SAAS,kBAAkB,CAAC,OAAgB,EAAE,QAAwB,EAAE,YAA0B,EAAA;IAChG,IAAI,KAAK,GAAG,CAAC;IACb,IAAI,eAAe,GAAG,KAAK;IAE3B,OAAO;AACL,QAAA,IAAI,EAAE,CAAC,KAAwB,KAAI;AACjC,YAAA,IAAI,CAAC;AACE,mBAAA,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC9E,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;gBACnC,eAAe,GAAG,IAAI;YACxB;YAEA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,EAAE;AAC/C,gBAAA,KAAK,IAAI,KAAK,CAAC,MAAM;AACrB,gBAAA,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;YAClD;iBAAO,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,EAAE;AAChD,gBAAA,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAClC,gBAAA,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAC1C,gBAAA,YAAY,CAAC,QAAQ,GAAG,KAAK;AAE7B,gBAAA,MAAM,MAAM,GAAG,OAAO,EAAE,QAAQ,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK;sBACjE,KAAK,CAAC;sBACN,YAAY;gBAEhB,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;YAC1C;AACA,YAAA,OAAO,IAAI;QACb,CAAC;AACD,QAAA,KAAK,CAAC,KAAwB,EAAA;AAC5B,YAAA,KAAK,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,EAAE,KAAK,EAAkC;YAC9F,OAAO,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAuB,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;QAChI,CAAC;QACD,QAAQ,GAAA;AACN,YAAA,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAK;gBAC3C,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC;AACzC,YAAA,CAAC,CAAC;QACJ,CAAC;KACF;AACH;AAEO,MAAM,kBAAkB,GAAG,CAAC,UAAsB,KAAK,CAAC,OAAgB,KAAI;IACjF,IAAI,YAAY,GAA4B,IAAI;IAChD,IAAI,SAAS,GAAyC,IAAI;AAE1D,IAAA,MAAM,QAAQ,GAAmB,QAAQ,EAAE;AAC3C,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAY;AAC3C,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC;AAClC,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AACpC,IAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;IAEtC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC;AAChD,IAAA,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC;IAEpC,MAAM,iBAAiB,GAAG,MAAK;AAC7B,QAAA,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,YAAY,CAAC,SAAS,CAAC;YACvB,SAAS,GAAG,IAAI;QAClB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC;AAC1C,IAAA,MAAM,YAAY,GAAiB;AACjC,QAAA,IAAI,EAAE,yBAAyB;AAC/B,QAAA,OAAO,EAAE,KAAK;QACd,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,YAAA,iBAAiB,EAAE;YACnB,YAAY,EAAE,WAAW,EAAE;YAC3B,YAAY,GAAG,IAAI;AACnB,YAAA,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;QACxE,CAAC;KACF;IAED,MAAM,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE;AAEzC,IAAA,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,EAAE;QACnC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAE1D,QAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE;AAE3C,QAAA,gBAAgB,CAAC,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC;IACxD;AAEA,IAAA,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC;IACrE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO;AAEjD,IAAA,UAAU,GAAG,YAAY,CAAC;IAE1B,IAAI,OAAO,CAAC,WAAW,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC5D,QAAA,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC;AAChD,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE;QAC5C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;IACzB;IAEA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;AAC3G,UAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CACxB,CAAC,UAAU,EAAE,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EACnD,IAAI,UAAU,EAAE,CACjB,CAAC,QAAQ;UACR,IAAI,CAAC;AAET,IAAA,MAAM,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,EAAE;IAC3C,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS;AAEvC,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,IAAI;AACrC,UAAE,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;UACjD,UAAU,CAAC,OAAO,CAClB,SAAS,CAAC,OAAO,CAAC,EAClB,GAAG,EACH;YACE,MAAM;YACN,IAAI;YACJ,OAAO;AACP,YAAA,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,SAAS,EAAE,eAAe;YAC3C,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU;AACvC,YAAA,YAAY,EAAE,OAAO,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;AACxF,SAAA,CACF;IAEH,MAAM,SAAS,GAAG;UACd,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY;UAClD,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC;AAExD,IAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,QAAA,SAAS,GAAG,UAAU,CAAC,MAAK;YAC1B,SAAS,GAAG,IAAI;YAChB,YAAY,EAAE,WAAW,EAAE;YAC3B,YAAY,GAAG,IAAI;AACnB,YAAA,MAAM,YAAY,GAAG;AACnB,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAI,WAAW,EAAE;aACN;AACtB,YAAA,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;AAC/B,QAAA,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IACrB;AAEA,IAAA,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,EAAA;AACR,YAAA,iBAAiB,EAAE;AACnB,YAAA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QACvB,CAAC;AACD,QAAA,KAAK,CAAC,GAAG,EAAA;AACP,YAAA,iBAAiB,EAAE;AACnB,YAAA,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;QACtB,CAAC;QACD,QAAQ,EAAE,SAAS,CAAC,QAAQ;AAC7B,KAAA,CAAC;AAEF,IAAA,OAAO,MAAM;AACf,CAAC;;ACvVD;;;;;;;;;;;AAWG;MAYU,YAAY,CAAA;AACvB,IAAA,WAAA,CAAY,QAAkB,EAAA;QAC5B,IAAI,UAAU,GAAe,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;QAE3D,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,SAAS,GAAG,cAAc,CAAC,gBAAgB,EAAE,QAAQ,CAAC;YAE5D,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QACjD;AAEA,QAAA,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;IACxE;kIAXW,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mIAAZ,YAAY,EAAA,CAAA,CAAA;mIAAZ,YAAY,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACtBD;;AAEG;;;;"}