@aurigma/ng-storefront-api-client 2.11.1 → 2.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/aurigma-ng-storefront-api-client.metadata.json +1 -1
- package/bundles/aurigma-ng-storefront-api-client.umd.js +81 -0
- package/bundles/aurigma-ng-storefront-api-client.umd.js.map +1 -1
- package/bundles/aurigma-ng-storefront-api-client.umd.min.js +1 -1
- package/bundles/aurigma-ng-storefront-api-client.umd.min.js.map +1 -1
- package/esm2015/aurigma-ng-storefront-api-client.js +1 -1
- package/esm2015/lib/storefront-api-client.js +69 -1
- package/esm2015/lib/storefront.module.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/fesm2015/aurigma-ng-storefront-api-client.js +68 -0
- package/fesm2015/aurigma-ng-storefront-api-client.js.map +1 -1
- package/lib/storefront-api-client.d.ts +27 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/client/src/lib/storefront-api-client.ts","../../../projects/client/src/lib/storefront.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","pop","length","push","__values","o","s","m","i","API_BASE_URL","InjectionToken","ApiClientConfiguration","apiKey","authorizationToken","getAuthorizationToken","setAuthorizationToken","token","ApiClientBase","configuration","transformOptions","options","_a","headers","append","getBaseUrl","defultUrl","apiUrl","transformResult","url","res","cb","BuildInfoApiClient","http","baseUrl","_this","_super","jsonParseReviver","undefined","headInfo","url_","replace","options_","observe","responseType","HttpHeaders","_observableFrom","pipe","_observableMergeMap","transformedOptions_","request","response_","r","processHeadInfo","_observableCatch","HttpResponseBase","_observableThrow","response","status","responseBlob","HttpResponse","error","Blob","_headers","_b","keys","_c","key","get","blobToText","_responseText","_observableOf","throwException","getInfo","Accept","processGetInfo","result200","JSON","parse","Injectable","args","providedIn","decorators","type","Inject","HttpClient","Optional","ProductReferencesApiClient","getAll","storefrontId","productReference","productSpecificationId","skip","take","sorting","search","tenantId","Error","encodeURIComponent","processGetAll","stringify","Content-Type","processCreate","result201","result404","reference","processGet","delete","processDelete","getProductSpecification","processGetProductSpecification","getProductConfig","processGetProductConfig","ProductSpecificationsApiClient","id","getConfiguration","processGetConfiguration","ProjectsApiClient","ownerId","datePeriod","result409","getAvailableTransitions","processGetAvailableTransitions","result400","changeStatus","transition","processChangeStatus","forceStatus","processForceStatus","getAllStatuses","processGetAllStatuses","getAllTransitions","processGetAllTransitions","getProjectPdfUrl","designUserId","designId","processGetProjectPdfUrl","getProjectPdfZip","attachment","processGetProjectPdfZip","contentDisposition","fileNameMatch","exec","fileName","data","getProjectOrder","processGetProjectOrder","StorefrontsApiClient","types","forEach","item","StorefrontUsersApiClient","storefrontUserId","register","processRegister","mergeAnonymous","processMergeAnonymous","getToken","processGetToken","DatePeriod","StorefrontType","TenantInfoApiClient","getApplicationsInfo","processGetApplicationsInfo","ApiException","message","isApiException","obj","blob","Observable","observer","reader","FileReader","onload","event","target","complete","readAsText","CreateApiClientConfiguration","apiConf","StorefrontApiClient.ApiClientConfiguration","StorefrontModule","forRoot","ngModule","providers","provide","StorefrontApiClient.API_BASE_URL","useValue","useFactory","bind","NgModule","declarations","imports","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// <auto-generated>\n// Generated using the NSwag toolchain v13.9.4.0 (NJsonSchema v10.3.1.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\n// </auto-generated>\n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport { mergeMap as _observableMergeMap, catchError as _observableCatch } from 'rxjs/operators';\nimport { Observable, from as _observableFrom, throwError as _observableThrow, of as _observableOf } from 'rxjs';\nimport { Injectable, Inject, Optional, InjectionToken } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\n\nexport const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');\n\nexport class ApiClientConfiguration {\n apiUrl: string;\n apiKey: string = 'ApiKey';\n private authorizationToken: string = null;\n async getAuthorizationToken(): Promise<string> { return this.authorizationToken; };\n setAuthorizationToken(token: string): void { this.authorizationToken = token; };\n}\n\nexport class ApiClientBase {\n constructor(private configuration: ApiClientConfiguration) { }\n\n protected async transformOptions(options: any): Promise<any> {\n const token = await this.configuration.getAuthorizationToken();\n if (token != null) {\n options.headers = (options.headers as HttpHeaders).append(\"authorization\", \"Bearer \" + token);\n } else {\n options.headers = (options.headers as HttpHeaders).append(\"X-API-Key\", this.configuration.apiKey);\n }\n //options = { ...options, transformResponse: (res) => res, responseType: 'json' };\n return options;\n }\n\n protected getBaseUrl(defultUrl: string) {\n return this.configuration.apiUrl;\n }\n\n protected transformResult(url: string, res: HttpResponseBase, cb: (res: HttpResponseBase) => Observable<any>): Observable<any> {\n return cb(res);\n }\n}\n\nexport interface IBuildInfoApiClient {\n /**\n * Returns an assembly build info.\n * @return Success\n */\n headInfo(): Observable<void>;\n /**\n * Returns an assembly build info.\n * @return Success\n */\n getInfo(): Observable<BuildInfoModel>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuildInfoApiClient extends ApiClientBase implements IBuildInfoApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns an assembly build info.\n * @return Success\n */\n headInfo(): Observable<void> {\n let url_ = this.baseUrl + \"/api/storefront/v1/info\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"head\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processHeadInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processHeadInfo(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processHeadInfo(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns an assembly build info.\n * @return Success\n */\n getInfo(): Observable<BuildInfoModel> {\n let url_ = this.baseUrl + \"/api/storefront/v1/info\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n } catch (e) {\n return <Observable<BuildInfoModel>><any>_observableThrow(e);\n }\n } else\n return <Observable<BuildInfoModel>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetInfo(response: HttpResponseBase): Observable<BuildInfoModel> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <BuildInfoModel>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<BuildInfoModel>(<any>null);\n }\n}\n\nexport interface IProductReferencesApiClient {\n /**\n * Returns all storefront product references relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param productReference (optional) Product reference filter. Product reference is an external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param productSpecificationId (optional) Cusomer's Canvas product specification filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, productReference?: string | null | undefined, productSpecificationId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductReferenceDto>;\n /**\n * Creates a new storefront product reference.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProductReferenceDto | undefined): Observable<ProductReferenceDto>;\n /**\n * Returns a storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto>;\n /**\n * Deletes the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto>;\n /**\n * Returns a product specification by the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductSpecification(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductSpecificationDto>;\n /**\n * Returns a product personalization workflow configuration by storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductConfig(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<string>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductReferencesApiClient extends ApiClientBase implements IProductReferencesApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefront product references relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param productReference (optional) Product reference filter. Product reference is an external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param productSpecificationId (optional) Cusomer's Canvas product specification filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, productReference?: string | null | undefined, productSpecificationId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (productReference !== undefined && productReference !== null)\n url_ += \"productReference=\" + encodeURIComponent(\"\" + productReference) + \"&\";\n if (productSpecificationId !== undefined && productSpecificationId !== null)\n url_ += \"productSpecificationId=\" + encodeURIComponent(\"\" + productSpecificationId) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductReferenceDto>(<any>null);\n }\n\n /**\n * Creates a new storefront product reference.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProductReferenceDto | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Returns a storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references/{reference}?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Deletes the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references/{reference}?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Returns a product specification by the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductSpecification(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductSpecificationDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references/{reference}/product-specification?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductSpecification(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductSpecification(<any>r));\n } catch (e) {\n return <Observable<ProductSpecificationDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductSpecificationDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductSpecification(response: HttpResponseBase): Observable<ProductSpecificationDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductSpecificationDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductSpecificationDto>(<any>null);\n }\n\n /**\n * Returns a product personalization workflow configuration by storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductConfig(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<string> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references/{reference}/product-config?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductConfig(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductConfig(<any>r));\n } catch (e) {\n return <Observable<string>><any>_observableThrow(e);\n }\n } else\n return <Observable<string>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductConfig(response: HttpResponseBase): Observable<string> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <string>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<string>(<any>null);\n }\n}\n\nexport interface IProductSpecificationsApiClient {\n /**\n * Returns all product specifications, relevant to the specified query parameters.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductSpecificationDto>;\n /**\n * Returns a product specification by identifier.\n * @param id Product specification identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProductSpecificationDto>;\n /**\n * Returns a product personlization workflow configuration by product specification identifier.\n * @param id Product specification identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getConfiguration(id: number, tenantId?: number | null | undefined): Observable<string>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductSpecificationsApiClient extends ApiClientBase implements IProductSpecificationsApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all product specifications, relevant to the specified query parameters.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductSpecificationDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-specifications?\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductSpecificationDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductSpecificationDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProductSpecificationDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductSpecificationDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductSpecificationDto>(<any>null);\n }\n\n /**\n * Returns a product specification by identifier.\n * @param id Product specification identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProductSpecificationDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-specifications/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProductSpecificationDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductSpecificationDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProductSpecificationDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductSpecificationDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductSpecificationDto>(<any>null);\n }\n\n /**\n * Returns a product personlization workflow configuration by product specification identifier.\n * @param id Product specification identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getConfiguration(id: number, tenantId?: number | null | undefined): Observable<string> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-specifications/{id}/config?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetConfiguration(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetConfiguration(<any>r));\n } catch (e) {\n return <Observable<string>><any>_observableThrow(e);\n }\n } else\n return <Observable<string>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetConfiguration(response: HttpResponseBase): Observable<string> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <string>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<string>(<any>null);\n }\n}\n\nexport interface IProjectsApiClient {\n /**\n * Returns all projects, relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param ownerId (optional) Project owner (storefront user id) filter.\n * @param productReference (optional) Product reference filter.\n * @param status (optional) Project status filter.\n * @param datePeriod (optional) Project date period filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, ownerId?: string | null | undefined, productReference?: string | null | undefined, status?: number | null | undefined, datePeriod?: DatePeriod | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProjectDto>;\n /**\n * Creates a new project.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProjectDto | undefined): Observable<ProjectDto>;\n /**\n * Returns a project by identifier.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectDto>;\n /**\n * Returns all available status transitions for a project.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailableTransitions(id: number, tenantId?: number | null | undefined): Observable<PagedOfProjectTransitionDto>;\n /**\n * Changes the project status.\n * @param id Project identifier\n * @param transition Transition identifying name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n changeStatus(id: number, transition: string | null, tenantId?: number | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Changes the project status forcibly without a proper transition.\n * @param id Project identifier.\n * @param status Project status code.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n forceStatus(id: number, status: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Returns a list of all existing project statuses.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllStatuses(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusDto>;\n /**\n * Returns a list of all existing project status transitions.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllTransitions(tenantId?: number | null | undefined): Observable<PagedOfProjectTransitionDto>;\n /**\n * Returns an url to download project print file.\n * @param id Project identifier.\n * @param designUserId Design owner identifier.\n * @param designId Design identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectPdfUrl(id: number, designUserId: string, designId: string, tenantId?: number | null | undefined): Observable<ProjectPdfResultDto>;\n /**\n * Returns an archive file, which contains all project print files.\n * @param id Project identifier.\n * @param designUserId Design owner identifier.\n * @param designId Design identifier.\n * @param attachment (optional) If set to 'true', the requested file will be provided as an attachment with proper filename supplied (default value is 'false').\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectPdfZip(id: number, designUserId: string, designId: string, attachment?: boolean | null | undefined, tenantId?: number | null | undefined): Observable<FileResponse>;\n /**\n * Returns an order description from the ecommerce system for the specified project.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectOrder(id: number, tenantId?: number | null | undefined): Observable<any>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProjectsApiClient extends ApiClientBase implements IProjectsApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all projects, relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param ownerId (optional) Project owner (storefront user id) filter.\n * @param productReference (optional) Product reference filter.\n * @param status (optional) Project status filter.\n * @param datePeriod (optional) Project date period filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, ownerId?: string | null | undefined, productReference?: string | null | undefined, status?: number | null | undefined, datePeriod?: DatePeriod | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProjectDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (ownerId !== undefined && ownerId !== null)\n url_ += \"ownerId=\" + encodeURIComponent(\"\" + ownerId) + \"&\";\n if (productReference !== undefined && productReference !== null)\n url_ += \"productReference=\" + encodeURIComponent(\"\" + productReference) + \"&\";\n if (status !== undefined && status !== null)\n url_ += \"status=\" + encodeURIComponent(\"\" + status) + \"&\";\n if (datePeriod === null)\n throw new Error(\"The parameter 'datePeriod' cannot be null.\");\n else if (datePeriod !== undefined)\n url_ += \"datePeriod=\" + encodeURIComponent(\"\" + datePeriod) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProjectDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectDto>(<any>null);\n }\n\n /**\n * Creates a new project.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProjectDto | undefined): Observable<ProjectDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProjectDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProjectDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProjectDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectDto>(<any>null);\n }\n\n /**\n * Returns a project by identifier.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProjectDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProjectDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectDto>(<any>null);\n }\n\n /**\n * Returns all available status transitions for a project.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailableTransitions(id: number, tenantId?: number | null | undefined): Observable<PagedOfProjectTransitionDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/transitions?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAvailableTransitions(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAvailableTransitions(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAvailableTransitions(response: HttpResponseBase): Observable<PagedOfProjectTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProjectTransitionConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectTransitionDto>(<any>null);\n }\n\n /**\n * Changes the project status.\n * @param id Project identifier\n * @param transition Transition identifying name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n changeStatus(id: number, transition: string | null, tenantId?: number | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/transitions/{transition}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (transition === undefined || transition === null)\n throw new Error(\"The parameter 'transition' must be defined.\");\n url_ = url_.replace(\"{transition}\", encodeURIComponent(\"\" + transition));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processChangeStatus(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processChangeStatus(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processChangeStatus(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProjectTransitionConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Changes the project status forcibly without a proper transition.\n * @param id Project identifier.\n * @param status Project status code.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n forceStatus(id: number, status: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/statuses/{status}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (status === undefined || status === null)\n throw new Error(\"The parameter 'status' must be defined.\");\n url_ = url_.replace(\"{status}\", encodeURIComponent(\"\" + status));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processForceStatus(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processForceStatus(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processForceStatus(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Returns a list of all existing project statuses.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllStatuses(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/statuses?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAllStatuses(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAllStatuses(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAllStatuses(response: HttpResponseBase): Observable<PagedOfProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectStatusDto>(<any>null);\n }\n\n /**\n * Returns a list of all existing project status transitions.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllTransitions(tenantId?: number | null | undefined): Observable<PagedOfProjectTransitionDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/transitions?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAllTransitions(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAllTransitions(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAllTransitions(response: HttpResponseBase): Observable<PagedOfProjectTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectTransitionDto>(<any>null);\n }\n\n /**\n * Returns an url to download project print file.\n * @param id Project identifier.\n * @param designUserId Design owner identifier.\n * @param designId Design identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectPdfUrl(id: number, designUserId: string, designId: string, tenantId?: number | null | undefined): Observable<ProjectPdfResultDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/project-pdf?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (designUserId === undefined || designUserId === null)\n throw new Error(\"The parameter 'designUserId' must be defined and cannot be null.\");\n else\n url_ += \"designUserId=\" + encodeURIComponent(\"\" + designUserId) + \"&\";\n if (designId === undefined || designId === null)\n throw new Error(\"The parameter 'designId' must be defined and cannot be null.\");\n else\n url_ += \"designId=\" + encodeURIComponent(\"\" + designId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProjectPdfUrl(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProjectPdfUrl(<any>r));\n } catch (e) {\n return <Observable<ProjectPdfResultDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectPdfResultDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProjectPdfUrl(response: HttpResponseBase): Observable<ProjectPdfResultDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectPdfResultDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectPdfResultDto>(<any>null);\n }\n\n /**\n * Returns an archive file, which contains all project print files.\n * @param id Project identifier.\n * @param designUserId Design owner identifier.\n * @param designId Design identifier.\n * @param attachment (optional) If set to 'true', the requested file will be provided as an attachment with proper filename supplied (default value is 'false').\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectPdfZip(id: number, designUserId: string, designId: string, attachment?: boolean | null | undefined, tenantId?: number | null | undefined): Observable<FileResponse> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/project-pdf-zip?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (designUserId === undefined || designUserId === null)\n throw new Error(\"The parameter 'designUserId' must be defined and cannot be null.\");\n else\n url_ += \"designUserId=\" + encodeURIComponent(\"\" + designUserId) + \"&\";\n if (designId === undefined || designId === null)\n throw new Error(\"The parameter 'designId' must be defined and cannot be null.\");\n else\n url_ += \"designId=\" + encodeURIComponent(\"\" + designId) + \"&\";\n if (attachment !== undefined && attachment !== null)\n url_ += \"attachment=\" + encodeURIComponent(\"\" + attachment) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/octet-stream\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProjectPdfZip(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProjectPdfZip(<any>r));\n } catch (e) {\n return <Observable<FileResponse>><any>_observableThrow(e);\n }\n } else\n return <Observable<FileResponse>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProjectPdfZip(response: HttpResponseBase): Observable<FileResponse> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200 || status === 206) {\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\n const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\n return _observableOf({ fileName: fileName, data: <any>responseBlob, status: status, headers: _headers });\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<FileResponse>(<any>null);\n }\n\n /**\n * Returns an order description from the ecommerce system for the specified project.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectOrder(id: number, tenantId?: number | null | undefined): Observable<any> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/order?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProjectOrder(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProjectOrder(<any>r));\n } catch (e) {\n return <Observable<any>><any>_observableThrow(e);\n }\n } else\n return <Observable<any>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProjectOrder(response: HttpResponseBase): Observable<any> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <any>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<any>(<any>null);\n }\n}\n\nexport interface IStorefrontsApiClient {\n /**\n * Returns all storefronts, relevant to the specified query parameters.\n * @param types (optional) Storefront type filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(types?: StorefrontType[] | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontDto>;\n /**\n * Returns a storefront by identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorefrontsApiClient extends ApiClientBase implements IStorefrontsApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefronts, relevant to the specified query parameters.\n * @param types (optional) Storefront type filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(types?: StorefrontType[] | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefronts?\";\n if (types !== undefined && types !== null)\n types && types.forEach(item => { url_ += \"types=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfStorefrontDto>(<any>null);\n }\n\n /**\n * Returns a storefront by identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefronts/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<StorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<StorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontDto>(<any>null);\n }\n}\n\nexport interface IStorefrontUsersApiClient {\n /**\n * Returns all storefront users, relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param storefrontUserId (optional) Storefront user identifier.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, storefrontUserId?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontUserDto>;\n /**\n * Creates a new storefront user.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateStorefrontUserDto | undefined): Observable<StorefrontUserDto>;\n /**\n * Returns a storefront user by identifier.\n * @param id Storefront user identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<StorefrontUserDto>;\n /**\n * Registers a storefront user with the specified identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n register(storefrontId: number, tenantId?: number | null | undefined, body?: RegisterStorefrontUserInput | undefined): Observable<StorefrontUserDto>;\n /**\n * Transfers all existing data for the anonymous storefront user to the selected regular storefront user account.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n mergeAnonymous(storefrontId: number, tenantId?: number | null | undefined, body?: MergeAnonymousUserDataInput | undefined): Observable<void>;\n /**\n * Returns an API access token for the specified storefront user.\n * @param storefrontUserId Storefront user identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getToken(storefrontUserId: string, storefrontId: number, tenantId?: number | null | undefined): Observable<string>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorefrontUsersApiClient extends ApiClientBase implements IStorefrontUsersApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefront users, relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param storefrontUserId (optional) Storefront user identifier.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, storefrontUserId?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontUserDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (storefrontUserId !== undefined && storefrontUserId !== null)\n url_ += \"storefrontUserId=\" + encodeURIComponent(\"\" + storefrontUserId) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfStorefrontUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfStorefrontUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfStorefrontUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfStorefrontUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfStorefrontUserDto>(<any>null);\n }\n\n /**\n * Creates a new storefront user.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateStorefrontUserDto | undefined): Observable<StorefrontUserDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<StorefrontUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<StorefrontUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <StorefrontUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontUserDto>(<any>null);\n }\n\n /**\n * Returns a storefront user by identifier.\n * @param id Storefront user identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<StorefrontUserDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<StorefrontUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<StorefrontUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontUserDto>(<any>null);\n }\n\n /**\n * Registers a storefront user with the specified identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n register(storefrontId: number, tenantId?: number | null | undefined, body?: RegisterStorefrontUserInput | undefined): Observable<StorefrontUserDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users/register?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processRegister(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processRegister(<any>r));\n } catch (e) {\n return <Observable<StorefrontUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processRegister(response: HttpResponseBase): Observable<StorefrontUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontUserDto>(<any>null);\n }\n\n /**\n * Transfers all existing data for the anonymous storefront user to the selected regular storefront user account.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n mergeAnonymous(storefrontId: number, tenantId?: number | null | undefined, body?: MergeAnonymousUserDataInput | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users/merge-anonymous?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processMergeAnonymous(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processMergeAnonymous(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processMergeAnonymous(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns an API access token for the specified storefront user.\n * @param storefrontUserId Storefront user identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getToken(storefrontUserId: string, storefrontId: number, tenantId?: number | null | undefined): Observable<string> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users/token?\";\n if (storefrontUserId === undefined || storefrontUserId === null)\n throw new Error(\"The parameter 'storefrontUserId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontUserId=\" + encodeURIComponent(\"\" + storefrontUserId) + \"&\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetToken(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetToken(<any>r));\n } catch (e) {\n return <Observable<string>><any>_observableThrow(e);\n }\n } else\n return <Observable<string>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetToken(response: HttpResponseBase): Observable<string> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <string>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<string>(<any>null);\n }\n}\n\nexport interface ITenantInfoApiClient {\n /**\n * Returns an information about the tenant applications.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getApplicationsInfo(tenantId?: number | null | undefined): Observable<TenantApplicationsInfoDto>;\n /**\n * Returns an information about the tenant.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getInfo(tenantId?: number | null | undefined): Observable<TenantInfoDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TenantInfoApiClient extends ApiClientBase implements ITenantInfoApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns an information about the tenant applications.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getApplicationsInfo(tenantId?: number | null | undefined): Observable<TenantApplicationsInfoDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/tenant-info/applications?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetApplicationsInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetApplicationsInfo(<any>r));\n } catch (e) {\n return <Observable<TenantApplicationsInfoDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<TenantApplicationsInfoDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetApplicationsInfo(response: HttpResponseBase): Observable<TenantApplicationsInfoDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <TenantApplicationsInfoDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<TenantApplicationsInfoDto>(<any>null);\n }\n\n /**\n * Returns an information about the tenant.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getInfo(tenantId?: number | null | undefined): Observable<TenantInfoDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/tenant-info?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n } catch (e) {\n return <Observable<TenantInfoDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<TenantInfoDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetInfo(response: HttpResponseBase): Observable<TenantInfoDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <TenantInfoDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<TenantInfoDto>(<any>null);\n }\n}\n\n/** Information about a service. */\nexport interface BuildInfoModel {\n /** Version number. */\n version?: string | null;\n /** Build date (UTC). */\n buildDate?: string | null;\n /** Build configuration (Debug | Release). */\n configuration?: string | null;\n /** Service name. */\n appName?: string | null;\n}\n\n/** Dto class, containing information about storefront product reference. */\nexport interface ProductReferenceDto {\n /** Product reference is an external reference to Customer's Canvas product specification, e.g online store product identifier. */\n productReference?: string | null;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId?: number;\n /** Storefront identifier. */\n storefrontId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront product reference creation date and time. */\n created?: string;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProductReferenceDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProductReferenceDto[] | null;\n}\n\n/** Dto class, containing create operation parameters for storefront product reference. */\nexport interface CreateProductReferenceDto {\n /** Product reference is an external reference to Customer's Canvas product specification, e.g online store product identifier. */\n productReference: string;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId: number;\n}\n\nexport interface ProblemDetails {\n type?: string | null;\n title?: string | null;\n status?: number | null;\n detail?: string | null;\n instance?: string | null;\n}\n\n/** Dto class, containing information about product attribute. */\nexport interface ProductAttributeDto {\n /** Product attribute name. */\n name?: string | null;\n /** Product attribute type. */\n type?: string | null;\n /** Product attribute value. */\n value?: any | null;\n}\n\n/** Dto class, containing information about product specification. */\nexport interface ProductSpecificationDto {\n /** Product specification identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product specification name. */\n name?: string | null;\n /** List of product attributes. */\n productAttributes?: ProductAttributeDto[] | null;\n /** Product specification creation time. */\n created?: string;\n /** Product specification modification time. */\n lastModified?: string | null;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProductSpecificationDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProductSpecificationDto[] | null;\n}\n\n/** Defines all available date period filter values for queries. */\nexport enum DatePeriod {\n All = \"All\",\n Today = \"Today\",\n Last7Days = \"Last7Days\",\n Last30Days = \"Last30Days\",\n}\n\n/** Dto class, containing information about a project item. */\nexport interface ProjectItemDto {\n /** Item name. */\n name?: string | null;\n /** Item quantity information. */\n quantity?: number | null;\n /** Item information. */\n fields?: { [key: string]: any; } | null;\n /** Additional item information. */\n hidden?: any | null;\n /** A list of design identifiers associated to the item. */\n designIds?: string[] | null;\n /** SKU. */\n sku?: string | null;\n}\n\n/** Dto class, containing information about a project. */\nexport interface ProjectDto {\n /** Project identifier. */\n id?: number;\n /** Product reference (i.e external reference to Customer's Canvas product specification) */\n productReference?: string | null;\n /** Storefront identifier. */\n storefrontId?: number;\n /** Project tenant indentifier. */\n tenantId?: number;\n /** Order identifier in ecommerce system. */\n orderId?: string | null;\n /** Order url in ecommerce system. */\n orderUrl?: string | null;\n /** Order number in ecommerce system. */\n orderNumber?: number | null;\n /** Line item identifier from external ecommerce system order. */\n orderLineItemId?: string | null;\n /** Line item index from external ecommerce system order. */\n orderLineItemIndex?: number | null;\n /** Customer identifier in ecommerce system. */\n customerId?: string | null;\n /** Customer name in ecommerce system. */\n customerName?: string | null;\n /** Project name. */\n name?: string | null;\n /** Project owner identifier. */\n ownerId?: string | null;\n /** List of project items. */\n items?: ProjectItemDto[] | null;\n /** Project status code. */\n status?: number;\n /** Project creation time. */\n created?: string;\n /** Project modification time. */\n lastModified?: string | null;\n /** Description of the project. */\n description?: string | null;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProjectDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProjectDto[] | null;\n}\n\n/** Dto class, containing create operation parameters for project entity. */\nexport interface CreateProjectDto {\n /** Product reference (i.e external reference to Customer's Canvas product specification - main subject of this project). */\n productReference: string;\n /** Order identifier in ecommerce system. */\n orderId?: string | null;\n /** Order url in ecommerce system. */\n orderUrl?: string | null;\n /** Order number in ecommerce system. */\n orderNumber?: number | null;\n /** Line item index from ecommerce system order. */\n orderLineItemIndex?: number | null;\n /** Line Item identifier from ecommerce system order. */\n orderLineItemId?: string | null;\n /** Customer identifier in ecommerce system. */\n customerId?: string | null;\n /** Customer name in ecommerce system. */\n customerName?: string | null;\n /** Project name. */\n name?: string | null;\n /** Project owner identifier. */\n ownerId: string;\n /** List of project items. */\n items?: ProjectItemDto[] | null;\n /** Description of the project. */\n description?: string | null;\n}\n\n/** Project transition dto class. */\nexport interface ProjectTransitionDto {\n /** Transition identifying name. */\n name?: string | null;\n /** Transition display name. */\n displayName?: string | null;\n /** Project status code from which transition to the result status code can be done. */\n startStatus?: number;\n /** Transition result project status code. */\n resultStatus?: number;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProjectTransitionDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProjectTransitionDto[] | null;\n}\n\n/** Dto class, containing information about the project transition conflict. */\nexport interface ProjectTransitionConflictDto {\n /** A list of all available status transitions for the project. */\n availableTransitions?: ProjectTransitionDto[] | null;\n}\n\n/** Dto class, containing the information about project status. */\nexport interface ProjectStatusDto {\n /** Status code. */\n code?: number;\n /** Status display name. */\n displayName?: string | null;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProjectStatusDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProjectStatusDto[] | null;\n}\n\n/** Dto class, containing result of 'get project pdf url' operation. */\nexport interface ProjectPdfResultDto {\n /** Project pdf url. */\n url?: string | null;\n}\n\n/** Storefront types. */\nexport enum StorefrontType {\n Custom = \"Custom\",\n Shopify = \"Shopify\",\n DocketManager = \"DocketManager\",\n Auth0Saml = \"Auth0Saml\",\n}\n\n/** Dto class, containing information about a storefront. */\nexport interface StorefrontDto {\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n}\n\n/** Paged list of items. */\nexport interface PagedOfStorefrontDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: StorefrontDto[] | null;\n}\n\n/** DTO class, containing infromation about a storefront user. */\nexport interface StorefrontUserDto {\n /** Storefront user identifier. */\n userId?: string | null;\n /** Storefront tenant indentifier. */\n tenantId?: number;\n /** Storefront identifier. */\n storefrontId?: number | null;\n /** Indicates if the user is tracked as an anonymous. */\n isAnonymous?: boolean;\n}\n\n/** Paged list of items. */\nexport interface PagedOfStorefrontUserDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: StorefrontUserDto[] | null;\n}\n\n/** Dto class, containing create operation parameters for storefront user. */\nexport interface CreateStorefrontUserDto {\n /** Storefront user identifier. */\n storefrontUserId?: string | null;\n /** Indicates if the user is tracked as an anonymous. */\n isAnonymous?: boolean;\n}\n\nexport interface RegisterStorefrontUserInput {\n /** Storefront user identifier. */\n storefrontUserId?: string | null;\n}\n\n/** Dto class, containing parameters for merge anonymous user operation. */\nexport interface MergeAnonymousUserDataInput {\n /** Anonymous storefront user identifier. */\n anonymousStorefrontUserId?: string | null;\n /** Regular storefront user identifier. */\n regularStorefrontUserId?: string | null;\n}\n\n/** Dto class, containing information about tenant applications. */\nexport interface TenantApplicationsInfoDto {\n /** An url to the 'Design Editor' tenant application. */\n designEditorUrl?: string | null;\n /** An url to the 'UI Framework'. */\n uiFrameworkUrl?: string | null;\n /** An url to the 'Preflight' tenant application. */\n preflightUrl?: string | null;\n /** An url to the 'Dynamic Image' tenant application. */\n dynamicImageUrl?: string | null;\n /** Tenant identifier */\n tenantId?: number;\n /** An ApiKey for the 'Design Editor' tenant application. */\n designEditorApiKey?: string | null;\n /** An ApiKey for the 'Preflight' tenant application. */\n preflightApiKey?: string | null;\n /** An ApiKey for the 'Dynamic Image' tenant application. */\n dynamicImageApiKey?: string | null;\n}\n\n/** Dto class, containing general information about tenant. */\nexport interface TenantInfoDto {\n /** Tenant identifier. */\n tenantId?: number;\n /** Tenancy name. */\n tenancyName?: string | null;\n /** Tenant creation time. */\n tenantCreationTime?: string;\n}\n\nexport interface FileResponse {\n data: Blob;\n status: number;\n fileName?: string;\n headers?: { [name: string]: any };\n}\n\nexport class ApiException extends Error {\n message: string;\n status: number;\n response: string;\n headers: { [key: string]: any; };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): Observable<any> {\n if (result !== null && result !== undefined)\n return _observableThrow(result);\n else\n return _observableThrow(new ApiException(message, status, response, headers, null));\n}\n\nfunction blobToText(blob: any): Observable<string> {\n return new Observable<string>((observer: any) => {\n if (!blob) {\n observer.next(\"\");\n observer.complete();\n } else {\n let reader = new FileReader();\n reader.onload = event => {\n observer.next((<any>event.target).result);\n observer.complete();\n };\n reader.readAsText(blob);\n }\n });\n}","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport * as StorefrontApiClient from './storefront-api-client';\n\n// @dynamic\nexport function CreateApiClientConfiguration(token: string, apiUrl: string, apiKey: string = 'ApiKey'): StorefrontApiClient.ApiClientConfiguration {\n const apiConf = new StorefrontApiClient.ApiClientConfiguration();\n apiConf.apiKey = apiKey;\n apiConf.apiUrl = apiUrl;\n apiConf.setAuthorizationToken(token);\n return apiConf;\n}\n\n@NgModule({\n declarations: [],\n imports: [\n ],\n exports: []\n})\nexport class StorefrontModule {\n static forRoot(token: string, apiUrl: string, apiKey: string = 'ApiKey'): ModuleWithProviders<StorefrontModule> {\n return {\n ngModule: StorefrontModule,\n providers: [\n {\n provide: StorefrontApiClient.API_BASE_URL,\n useValue: apiUrl\n },\n {\n provide: StorefrontApiClient.ApiClientConfiguration,\n useFactory: CreateApiClientConfiguration.bind(this, token , apiUrl, apiKey)\n },\n ]\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/client/src/lib/storefront-api-client.ts","../../../projects/client/src/lib/storefront.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","pop","length","push","__values","o","s","m","i","API_BASE_URL","InjectionToken","ApiClientConfiguration","apiKey","authorizationToken","getAuthorizationToken","setAuthorizationToken","token","ApiClientBase","configuration","transformOptions","options","_a","headers","append","getBaseUrl","defultUrl","apiUrl","transformResult","url","res","cb","BuildInfoApiClient","http","baseUrl","_this","_super","jsonParseReviver","undefined","headInfo","url_","replace","options_","observe","responseType","HttpHeaders","_observableFrom","pipe","_observableMergeMap","transformedOptions_","request","response_","r","processHeadInfo","_observableCatch","HttpResponseBase","_observableThrow","response","status","responseBlob","HttpResponse","error","Blob","_headers","_b","keys","_c","key","get","blobToText","_responseText","_observableOf","throwException","getInfo","Accept","processGetInfo","result200","JSON","parse","Injectable","args","providedIn","decorators","type","Inject","HttpClient","Optional","ProductReferencesApiClient","getAll","storefrontId","productReference","productSpecificationId","skip","take","sorting","search","tenantId","Error","encodeURIComponent","processGetAll","stringify","Content-Type","processCreate","result201","result404","reference","processGet","delete","processDelete","getProductSpecification","processGetProductSpecification","getProductConfig","processGetProductConfig","ProductSpecificationsApiClient","id","getConfiguration","processGetConfiguration","ProjectsApiClient","ownerId","datePeriod","result409","getAvailableTransitions","processGetAvailableTransitions","result400","changeStatus","transition","processChangeStatus","forceStatus","processForceStatus","getAllStatuses","processGetAllStatuses","getAllTransitions","processGetAllTransitions","getProjectPdfUrl","designUserId","designId","processGetProjectPdfUrl","getProjectPdfZip","attachment","processGetProjectPdfZip","contentDisposition","fileNameMatch","exec","fileName","data","getProjectOrder","processGetProjectOrder","StorefrontsApiClient","types","forEach","item","StorefrontUsersApiClient","storefrontUserId","register","processRegister","mergeAnonymous","processMergeAnonymous","getToken","processGetToken","DatePeriod","StorefrontType","TenantInfoApiClient","getApplicationsInfo","processGetApplicationsInfo","getUsersInfo","processGetUsersInfo","ApiException","message","isApiException","obj","blob","Observable","observer","reader","FileReader","onload","event","target","complete","readAsText","CreateApiClientConfiguration","apiConf","StorefrontApiClient.ApiClientConfiguration","StorefrontModule","forRoot","ngModule","providers","provide","StorefrontApiClient.API_BASE_URL","useValue","useFactory","bind","NgModule","declarations","imports","exports"],"mappings":";;;;;;;;;;;;;;oFAgBA,IAAIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,MAC3EN,EAAGC,aAGZS,EAAUV,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASY,IAAOC,KAAKC,YAAcf,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOc,OAAOf,IAAMY,EAAGN,UAAYN,EAAEM,UAAW,IAAIM,YAyCnEI,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,oBAItDO,EAAYjB,EAASkB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOpC,OAAU0B,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIhB,EAAG,MAAM,IAAI1B,UAAU,mCAC3B,KAAO8B,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARc,EAAG,GAASf,EAAU,OAAIe,EAAG,GAAKf,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAE9B,KAAK6B,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAE9B,KAAK6B,EAAGe,EAAG,KAAKrB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGc,EAAK,CAAS,EAARA,EAAG,GAAQd,EAAEb,QACzB2B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGd,EAAIc,EAAI,MACxB,KAAK,EAAc,OAAXZ,EAAEC,QAAgB,CAAEhB,MAAO2B,EAAG,GAAIrB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIe,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKZ,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMf,EAAIE,EAAEG,MAAML,EAAIA,EAAEgB,OAAS,GAAKhB,EAAEA,EAAEgB,OAAS,KAAkB,IAAVF,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEZ,EAAI,EAAG,SACjG,GAAc,IAAVY,EAAG,MAAcd,GAAMc,EAAG,GAAKd,EAAE,IAAMc,EAAG,GAAKd,EAAE,IAAM,CAAEE,EAAEC,MAAQW,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYZ,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIc,EAAI,MAC7D,GAAId,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIW,KAAKH,GAAK,MACvDd,EAAE,IAAIE,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBD,EAAKjB,EAAK3B,KAAKS,EAASuB,GAC1B,MAAOZ,GAAKwB,EAAK,CAAC,EAAGxB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARc,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3B,MAAO2B,EAAG,GAAKA,EAAG,QAAK,EAAQrB,MAAM,GArB9BL,CAAK,CAACwB,EAAGC,MAyBhClD,OAAOc,gBAYpByC,EAASC,GACrB,IAAIC,EAAsB,mBAAXV,QAAyBA,OAAOC,SAAUU,EAAID,GAAKD,EAAEC,GAAIE,EAAI,EAC5E,GAAID,EAAG,OAAOA,EAAEnD,KAAKiD,GACrB,GAAIA,GAAyB,iBAAbA,EAAEH,OAAqB,MAAO,CAC1C3B,KAAM,WAEF,OADI8B,GAAKG,GAAKH,EAAEH,SAAQG,OAAI,GACrB,CAAEhC,MAAOgC,GAAKA,EAAEG,KAAM7B,MAAO0B,KAG5C,MAAM,IAAI/C,UAAUgD,EAAI,0BAA4B,mCA6E/BzD,OAAOc,WC/LnB8C,EAAe,IAAIC,EAAAA,eAAuB,6BAEvD,SAAAC,IAEIlD,KAAAmD,OAAiB,SACTnD,KAAAoD,mBAA6B,YAC/BF,EAAAzD,UAAA4D,sBAAA,8EAA2C,MAAA,CAAA,EAAOrD,KAAKoD,2BAC7DF,EAAAzD,UAAA6D,sBAAA,SAAsBC,GAAuBvD,KAAKoD,mBAAqBG,qBAIvE,SAAAC,EAAoBC,GAAAzD,KAAAyD,cAAAA,SAEJD,EAAA/D,UAAAiE,iBAAA,SAAiBC,mGACf,MAAA,CAAA,EAAM3D,KAAKyD,cAAcJ,gCAOvC,OAPME,EAAQK,EAAA/B,OAEZ8B,EAAQE,QADG,MAATN,EACiBI,EAAQE,QAAwBC,OAAO,gBAAiB,UAAYP,GAEpEI,EAAQE,QAAwBC,OAAO,YAAa9D,KAAKyD,cAAcN,QAG5F,CAAA,EAAOQ,WAGDH,EAAA/D,UAAAsE,WAAA,SAAWC,GACjB,OAAOhE,KAAKyD,cAAcQ,QAGpBT,EAAA/D,UAAAyE,gBAAA,SAAgBC,EAAaC,EAAuBC,GAC5D,OAAOA,EAAGD,uBAyBZ,SAAAE,EAA4Cb,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aARrDnE,EAAA0E,EAAAI,GAepCJ,EAAA7E,UAAAoF,SAAA,WAAA,IAAAJ,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,0BAC1BM,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,KAI7B,OAAOC,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkB,gBAAqBD,UAC9EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkB,gBAAqBD,MAChF,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrDuD,EAAA7E,UAAAkG,gBAAA,SAAgBI,WAChBC,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAOpCvC,EAAA7E,UAAAsH,QAAA,WAAA,IAAAtC,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,0BAC1BM,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwC,eAAoBvB,UAC7EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAwCC,EAAAA,WAAiBL,GANzD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwC,eAAoBvB,MAC/E,MAAO3E,GACL,OAAwC+E,EAAAA,WAAiB/E,SAO/DuD,EAAA7E,UAAAwH,eAAA,SAAelB,WAAftB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFkC,EAAAA,GAAcK,OAEH,MAAXlB,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAmC,UA/GVrD,0KAHvC6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YAxDfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KAwDqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BA8K7I,SAAA6E,EAA4CpE,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aAR7CnE,EAAAiI,EAAAnD,GAuB5CmD,EAAApI,UAAAqI,OAAA,SAAOC,EAAsBC,EAA8CC,EAAoDC,EAAkCC,EAAkCC,EAAqCC,EAAoCC,GAA5Q,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,yCAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEC,MAAAA,IACAlD,GAAQ,oBAAsB0D,mBAAmB,GAAKR,GAAoB,KAC1EC,MAAAA,IACAnD,GAAQ,0BAA4B0D,mBAAmB,GAAKP,GAA0B,KACtFC,MAAAA,IACApD,GAAQ,QAAU0D,mBAAmB,GAAKN,GAAQ,KAClDC,MAAAA,IACArD,GAAQ,QAAU0D,mBAAmB,GAAKL,GAAQ,KAClDC,MAAAA,IACAtD,GAAQ,WAAa0D,mBAAmB,GAAKJ,GAAW,KACxDC,MAAAA,IACAvD,GAAQ,UAAY0D,mBAAmB,GAAKH,GAAU,KACtDC,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoDC,EAAAA,WAAiBL,GANrE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,MAC9E,MAAO3E,GACL,OAAoD+E,EAAAA,WAAiB/E,SAO3E8G,EAAApI,UAAAgJ,cAAA,SAAc1C,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAmCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+C,OAU1DgB,EAAApI,UAAAS,OAAA,SAAO6H,EAAsBO,EAAsChH,GAAnE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,yCAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKuB,UAAUpH,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBwD,eAAgB,8BAChB3B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKmE,cAAmBlD,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKmE,cAAmBlD,MAC9E,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpE8G,EAAApI,UAAAmJ,cAAA,SAAc7C,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIiC,EAEJ,OADAA,EAA8B,KAAlBjC,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcgC,OAEH,MAAX7C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,OAUnDgB,EAAApI,UAAAiH,IAAA,SAAIqC,EAA0BhB,EAAsBO,GAApD,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,qDAC1B,GAAIuE,MAAAA,EACA,MAAM,IAAIR,MAAM,8CAEpB,GADAzD,EAAOA,EAAKC,QAAQ,cAAeyD,mBAAmB,GAAKO,IACvDhB,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,MAC3E,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpE8G,EAAApI,UAAAuJ,WAAA,SAAWjD,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,OAUnDgB,EAAApI,UAAAwJ,OAAA,SAAOF,EAA0BhB,EAAsBO,GAAvD,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,qDAC1B,GAAIuE,MAAAA,EACA,MAAM,IAAIR,MAAM,8CAEpB,GADAzD,EAAOA,EAAKC,QAAQ,cAAeyD,mBAAmB,GAAKO,IACvDhB,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKyE,cAAmBxD,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKyE,cAAmBxD,MAC9E,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpE8G,EAAApI,UAAAyJ,cAAA,SAAcnD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,OAUnDgB,EAAApI,UAAA0J,wBAAA,SAAwBJ,EAA0BhB,EAAsBO,GAAxE,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,2EAC1B,GAAIuE,MAAAA,EACA,MAAM,IAAIR,MAAM,8CAEpB,GADAzD,EAAOA,EAAKC,QAAQ,cAAeyD,mBAAmB,GAAKO,IACvDhB,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK2E,+BAAoC1D,UAC7FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAiDC,EAAAA,WAAiBL,GANlE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK2E,+BAAoC1D,MAC/F,MAAO3E,GACL,OAAiD+E,EAAAA,WAAiB/E,SAOxE8G,EAAApI,UAAA2J,+BAAA,SAA+BrD,WAA/BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAgCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC3FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA4C,OAUvDgB,EAAApI,UAAA4J,iBAAA,SAAiBN,EAA0BhB,EAAsBO,GAAjE,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,oEAC1B,GAAIuE,MAAAA,EACA,MAAM,IAAIR,MAAM,8CAEpB,GADAzD,EAAOA,EAAKC,QAAQ,cAAeyD,mBAAmB,GAAKO,IACvDhB,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6E,wBAA6B5D,UACtFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAgCC,EAAAA,WAAiBL,GANjD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6E,wBAA6B5D,MACxF,MAAO3E,GACL,OAAgC+E,EAAAA,WAAiB/E,SAOvD8G,EAAApI,UAAA6J,wBAAA,SAAwBvD,WAAxBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAeO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC1EkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA2B,UA3eMrD,0KAH/C6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YAtOfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KAsOqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BA6gB7I,SAAAuG,EAA4C9F,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aARzCnE,EAAA2J,EAAA7E,GAoBhD6E,EAAA9J,UAAAqI,OAAA,SAAOI,EAAkCC,EAAkCC,EAAqCC,EAAoCC,GAApJ,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,6CACtB0D,MAAAA,IACApD,GAAQ,QAAU0D,mBAAmB,GAAKN,GAAQ,KAClDC,MAAAA,IACArD,GAAQ,QAAU0D,mBAAmB,GAAKL,GAAQ,KAClDC,MAAAA,IACAtD,GAAQ,WAAa0D,mBAAmB,GAAKJ,GAAW,KACxDC,MAAAA,IACAvD,GAAQ,UAAY0D,mBAAmB,GAAKH,GAAU,KACtDC,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAwDC,EAAAA,WAAiBL,GANzE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,MAC9E,MAAO3E,GACL,OAAwD+E,EAAAA,WAAiB/E,SAO/EwI,EAAA9J,UAAAgJ,cAAA,SAAc1C,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAuCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClGkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAmD,OAS9D0C,EAAA9J,UAAAiH,IAAA,SAAI8C,EAAYlB,GAAhB,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,kDAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCACpBzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDlB,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAiDC,EAAAA,WAAiBL,GANlE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,MAC3E,MAAO3E,GACL,OAAiD+E,EAAAA,WAAiB/E,SAOxEwI,EAAA9J,UAAAuJ,WAAA,SAAWjD,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAgCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC3FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA4C,OASvD0C,EAAA9J,UAAAgK,iBAAA,SAAiBD,EAAYlB,GAA7B,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,yDAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCACpBzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDlB,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKiF,wBAA6BhE,UACtFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAgCC,EAAAA,WAAiBL,GANjD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKiF,wBAA6BhE,MACxF,MAAO3E,GACL,OAAgC+E,EAAAA,WAAiB/E,SAOvDwI,EAAA9J,UAAAiK,wBAAA,SAAwB3D,WAAxBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAeO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC1EkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA2B,UAxOUrD,0KAHnD6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YAnvBfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KAmvBqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BA6U7I,SAAA2G,EAA4ClG,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aARtDnE,EAAA+J,EAAAjF,GAyBnCiF,EAAAlK,UAAAqI,OAAA,SAAOC,EAAsB6B,EAAqC5B,EAA8ChC,EAAoC6D,EAAqC3B,EAAkCC,EAAkCC,EAAqCC,EAAoCC,GAAtU,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,+BAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEASpB,GAPIzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClE6B,MAAAA,IACA9E,GAAQ,WAAa0D,mBAAmB,GAAKoB,GAAW,KACxD5B,MAAAA,IACAlD,GAAQ,oBAAsB0D,mBAAmB,GAAKR,GAAoB,KAC1EhC,MAAAA,IACAlB,GAAQ,UAAY0D,mBAAmB,GAAKxC,GAAU,KACvC,OAAf6D,EACA,MAAM,IAAItB,MAAM,mDACI3D,IAAfiF,IACL/E,GAAQ,cAAgB0D,mBAAmB,GAAKqB,GAAc,KAC9D3B,MAAAA,IACApD,GAAQ,QAAU0D,mBAAmB,GAAKN,GAAQ,KAClDC,MAAAA,IACArD,GAAQ,QAAU0D,mBAAmB,GAAKL,GAAQ,KAClDC,MAAAA,IACAtD,GAAQ,WAAa0D,mBAAmB,GAAKJ,GAAW,KACxDC,MAAAA,IACAvD,GAAQ,UAAY0D,mBAAmB,GAAKH,GAAU,KACtDC,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA2CC,EAAAA,WAAiBL,GAN5D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,MAC9E,MAAO3E,GACL,OAA2C+E,EAAAA,WAAiB/E,SAOlE4I,EAAAlK,UAAAgJ,cAAA,SAAc1C,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA0BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACrFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAsC,OAUjD8C,EAAAlK,UAAAS,OAAA,SAAO6H,EAAsBO,EAAsChH,GAAnE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,+BAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKuB,UAAUpH,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBwD,eAAgB,8BAChB3B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKmE,cAAmBlD,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoCC,EAAAA,WAAiBL,GANrD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKmE,cAAmBlD,MAC9E,MAAO3E,GACL,OAAoC+E,EAAAA,WAAiB/E,SAO3D4I,EAAAlK,UAAAmJ,cAAA,SAAc7C,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIiC,EAEJ,OADAA,EAA8B,KAAlBjC,EAAuB,KAAmBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9EkC,EAAAA,GAAcgC,OAEH,MAAX7C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkD,EAEJ,OADAA,EAA8B,KAAlBlD,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAUyD,OAEjD,MAAX9D,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+B,OAS1C8C,EAAAlK,UAAAiH,IAAA,SAAI8C,EAAYlB,GAAhB,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,oCAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCACpBzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDlB,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoCC,EAAAA,WAAiBL,GANrD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,MAC3E,MAAO3E,GACL,OAAoC+E,EAAAA,WAAiB/E,SAO3D4I,EAAAlK,UAAAuJ,WAAA,SAAWjD,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAmBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9EkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+B,OAS1C8C,EAAAlK,UAAAsK,wBAAA,SAAwBP,EAAYlB,GAApC,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,gDAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCACpBzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDlB,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuF,+BAAoCtE,UAC7FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAqDC,EAAAA,WAAiBL,GANtE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuF,+BAAoCtE,MAC/F,MAAO3E,GACL,OAAqD+E,EAAAA,WAAiB/E,SAO5E4I,EAAAlK,UAAAuK,+BAAA,SAA+BjE,WAA/BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAoCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC/FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIqD,EAEJ,OADAA,EAA8B,KAAlBrD,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU4D,OAEpD,MAAXjE,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkD,EAEJ,OADAA,EAA8B,KAAlBlD,EAAuB,KAAqCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAChGmC,EAAe,WAAYd,EAAQY,EAAeP,EAAUyD,OAEjD,MAAX9D,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAgD,OAU3D8C,EAAAlK,UAAAyK,aAAA,SAAaV,EAAYW,EAA2B7B,GAApD,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,6DAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCAEpB,GADAzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDW,MAAAA,EACA,MAAM,IAAI5B,MAAM,+CACpBzD,EAAOA,EAAKC,QAAQ,eAAgByD,mBAAmB,GAAK2B,IACxD7B,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK2F,oBAAyB1E,UAClFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA0CC,EAAAA,WAAiBL,GAN3D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK2F,oBAAyB1E,MACpF,MAAO3E,GACL,OAA0C+E,EAAAA,WAAiB/E,SAOjE4I,EAAAlK,UAAA2K,oBAAA,SAAoBrE,WAApBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAyBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACpFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIqD,EAEJ,OADAA,EAA8B,KAAlBrD,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU4D,OAEpD,MAAXjE,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkD,EAEJ,OADAA,EAA8B,KAAlBlD,EAAuB,KAAqCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAChGmC,EAAe,WAAYd,EAAQY,EAAeP,EAAUyD,OAEjD,MAAX9D,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAqC,OAUhD8C,EAAAlK,UAAA4K,YAAA,SAAYb,EAAYxD,EAAgBsC,GAAxC,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,sDAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCAEpB,GADAzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDxD,MAAAA,EACA,MAAM,IAAIuC,MAAM,2CACpBzD,EAAOA,EAAKC,QAAQ,WAAYyD,mBAAmB,GAAKxC,IACpDsC,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6F,mBAAwB5E,UACjFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA0CC,EAAAA,WAAiBL,GAN3D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6F,mBAAwB5E,MACnF,MAAO3E,GACL,OAA0C+E,EAAAA,WAAiB/E,SAOjE4I,EAAAlK,UAAA6K,mBAAA,SAAmBvE,WAAnBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAyBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACpFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIqD,EAEJ,OADAA,EAA8B,KAAlBrD,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU4D,OAEpD,MAAXjE,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAqC,OAQhD8C,EAAAlK,UAAA8K,eAAA,SAAejC,GAAf,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,wCACtB8D,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK+F,sBAA2B9E,UACpFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAiDC,EAAAA,WAAiBL,GANlE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK+F,sBAA2B9E,MACtF,MAAO3E,GACL,OAAiD+E,EAAAA,WAAiB/E,SAOxE4I,EAAAlK,UAAA+K,sBAAA,SAAsBzE,WAAtBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAgCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC3FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA4C,OAQvD8C,EAAAlK,UAAAgL,kBAAA,SAAkBnC,GAAlB,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,2CACtB8D,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKiG,yBAA8BhF,UACvFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAqDC,EAAAA,WAAiBL,GANtE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKiG,yBAA8BhF,MACzF,MAAO3E,GACL,OAAqD+E,EAAAA,WAAiB/E,SAO5E4I,EAAAlK,UAAAiL,yBAAA,SAAyB3E,WAAzBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAoCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC/FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAgD,OAW3D8C,EAAAlK,UAAAkL,iBAAA,SAAiBnB,EAAYoB,EAAsBC,EAAkBvC,GAArE,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,gDAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCAEpB,GADAzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDoB,MAAAA,EACA,MAAM,IAAIrC,MAAM,oEAGpB,GADIzD,GAAQ,gBAAkB0D,mBAAmB,GAAKoC,GAAgB,IAClEC,MAAAA,EACA,MAAM,IAAItC,MAAM,gEAEhBzD,GAAQ,YAAc0D,mBAAmB,GAAKqC,GAAY,IAC1DvC,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKqG,wBAA6BpF,UACtFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKqG,wBAA6BpF,MACxF,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpE4I,EAAAlK,UAAAqL,wBAAA,SAAwB/E,WAAxBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,OAYnD8C,EAAAlK,UAAAsL,iBAAA,SAAiBvB,EAAYoB,EAAsBC,EAAkBG,EAAyC1C,GAA9G,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,oDAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCAEpB,GADAzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDoB,MAAAA,EACA,MAAM,IAAIrC,MAAM,oEAGpB,GADIzD,GAAQ,gBAAkB0D,mBAAmB,GAAKoC,GAAgB,IAClEC,MAAAA,EACA,MAAM,IAAItC,MAAM,gEAEhBzD,GAAQ,YAAc0D,mBAAmB,GAAKqC,GAAY,IAC1DG,MAAAA,IACAlG,GAAQ,cAAgB0D,mBAAmB,GAAKwC,GAAc,KAC9D1C,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,8BAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwG,wBAA6BvF,UACtFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAsCC,EAAAA,WAAiBL,GANvD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwG,wBAA6BvF,MACxF,MAAO3E,GACL,OAAsC+E,EAAAA,WAAiB/E,SAO7D4I,EAAAlK,UAAAwL,wBAAA,SAAwBlF,WAAxBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,GAAe,MAAXT,GAA6B,MAAXA,EAAgB,CAClC,IAAMkF,EAAqBnF,EAASlC,QAAUkC,EAASlC,QAAQ6C,IAAI,4BAAyB9B,EACtFuG,EAAgBD,EAAqB,8BAA8BE,KAAKF,QAAsBtG,EAC9FyG,EAAWF,GAAiBA,EAAc1I,OAAS,EAAI0I,EAAc,QAAKvG,EAChF,OAAOiC,EAAAA,GAAc,CAAEwE,SAAUA,EAAUC,KAAWrF,EAAcD,OAAQA,EAAQnC,QAASwC,IAC1F,OAAe,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAiC,OAS5C8C,EAAAlK,UAAA8L,gBAAA,SAAgB/B,EAAYlB,GAA5B,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,0CAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCACpBzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDlB,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK+G,uBAA4B9F,UACrFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6BC,EAAAA,WAAiBL,GAN9C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK+G,uBAA4B9F,MACvF,MAAO3E,GACL,OAA6B+E,EAAAA,WAAiB/E,SAOpD4I,EAAAlK,UAAA+L,uBAAA,SAAuBzF,WAAvBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAYO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvEkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwB,UAn3BArD,0KAHtC6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YAhkCfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KAgkCqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BA+4B7I,SAAAyI,EAA4ChI,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aARnDnE,EAAA6L,EAAA/G,GAqBtC+G,EAAAhM,UAAAqI,OAAA,SAAO4D,EAA6CxD,EAAkCC,EAAkCC,EAAqCC,EAAoCC,GAAjM,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,kCACtBkH,MAAAA,GACAA,GAASA,EAAMC,SAAQ,SAAAC,GAAU9G,GAAQ,SAAW0D,mBAAmB,GAAKoD,GAAQ,OACpF1D,MAAAA,IACApD,GAAQ,QAAU0D,mBAAmB,GAAKN,GAAQ,KAClDC,MAAAA,IACArD,GAAQ,QAAU0D,mBAAmB,GAAKL,GAAQ,KAClDC,MAAAA,IACAtD,GAAQ,WAAa0D,mBAAmB,GAAKJ,GAAW,KACxDC,MAAAA,IACAvD,GAAQ,UAAY0D,mBAAmB,GAAKH,GAAU,KACtDC,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8CC,EAAAA,WAAiBL,GAN/D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,MAC9E,MAAO3E,GACL,OAA8C+E,EAAAA,WAAiB/E,SAOrE0K,EAAAhM,UAAAgJ,cAAA,SAAc1C,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA6BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACxFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyC,OASpD4E,EAAAhM,UAAAiH,IAAA,SAAI8C,EAAYlB,GAAhB,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uCAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCACpBzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDlB,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAuCC,EAAAA,WAAiBL,GANxD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,MAC3E,MAAO3E,GACL,OAAuC+E,EAAAA,WAAiB/E,SAO9D0K,EAAAhM,UAAAuJ,WAAA,SAAWjD,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAsBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACjFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAkC,UAjKPrD,0KAHzC6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YA/8DfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KA+8DqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BA+N7I,SAAA6I,EAA4CpI,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aAR/CnE,EAAAiM,EAAAnH,GAsB1CmH,EAAApM,UAAAqI,OAAA,SAAOC,EAAsB+D,EAA8C5D,EAAkCC,EAAkCC,EAAqCC,EAAoCC,GAAxN,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uCAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClE+D,MAAAA,IACAhH,GAAQ,oBAAsB0D,mBAAmB,GAAKsD,GAAoB,KAC1E5D,MAAAA,IACApD,GAAQ,QAAU0D,mBAAmB,GAAKN,GAAQ,KAClDC,MAAAA,IACArD,GAAQ,QAAU0D,mBAAmB,GAAKL,GAAQ,KAClDC,MAAAA,IACAtD,GAAQ,WAAa0D,mBAAmB,GAAKJ,GAAW,KACxDC,MAAAA,IACAvD,GAAQ,UAAY0D,mBAAmB,GAAKH,GAAU,KACtDC,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAkDC,EAAAA,WAAiBL,GANnE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgE,cAAmB/C,MAC9E,MAAO3E,GACL,OAAkD+E,EAAAA,WAAiB/E,SAOzE8K,EAAApM,UAAAgJ,cAAA,SAAc1C,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAiCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC5FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA6C,OAUxDgF,EAAApM,UAAAS,OAAA,SAAO6H,EAAsBO,EAAsChH,GAAnE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uCAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKuB,UAAUpH,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBwD,eAAgB,8BAChB3B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKmE,cAAmBlD,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA2CC,EAAAA,WAAiBL,GAN5D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKmE,cAAmBlD,MAC9E,MAAO3E,GACL,OAA2C+E,EAAAA,WAAiB/E,SAOlE8K,EAAApM,UAAAmJ,cAAA,SAAc7C,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIiC,EAEJ,OADAA,EAA8B,KAAlBjC,EAAuB,KAA0BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACrFkC,EAAAA,GAAcgC,OAEH,MAAX7C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkD,EAEJ,OADAA,EAA8B,KAAlBlD,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAUyD,OAEjD,MAAX9D,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAsC,OAUjDgF,EAAApM,UAAAiH,IAAA,SAAI8C,EAAmBzB,EAAsBO,GAA7C,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,4CAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIjB,MAAM,uCAEpB,GADAzD,EAAOA,EAAKC,QAAQ,OAAQyD,mBAAmB,GAAKgB,IAChDzB,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA2CC,EAAAA,WAAiBL,GAN5D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuE,WAAgBtD,MAC3E,MAAO3E,GACL,OAA2C+E,EAAAA,WAAiB/E,SAOlE8K,EAAApM,UAAAuJ,WAAA,SAAWjD,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA0BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACrFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAsC,OAUjDgF,EAAApM,UAAAsM,SAAA,SAAShE,EAAsBO,EAAsChH,GAArE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,gDAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKuB,UAAUpH,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBwD,eAAgB,8BAChB3B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuH,gBAAqBtG,UAC9EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA2CC,EAAAA,WAAiBL,GAN5D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuH,gBAAqBtG,MAChF,MAAO3E,GACL,OAA2C+E,EAAAA,WAAiB/E,SAOlE8K,EAAApM,UAAAuM,gBAAA,SAAgBjG,WAAhBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA0BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACrFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkD,EAEJ,OADAA,EAA8B,KAAlBlD,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAUyD,OAEjD,MAAX9D,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAsC,OAUjDgF,EAAApM,UAAAwM,eAAA,SAAelE,EAAsBO,EAAsChH,GAA3E,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uDAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKuB,UAAUpH,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBwD,eAAgB,iCAIxB,OAAOvD,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKyH,sBAA2BxG,UACpFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKyH,sBAA2BxG,MACtF,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD8K,EAAApM,UAAAyM,sBAAA,SAAsBnG,WAAtBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkD,EAEJ,OADAA,EAA8B,KAAlBlD,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAUyD,OAEjD,MAAX9D,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpCgF,EAAApM,UAAA0M,SAAA,SAASL,EAA0B/D,EAAsBO,GAAzD,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,6CAC1B,GAAIsH,MAAAA,EACA,MAAM,IAAIvD,MAAM,wEAGpB,GADIzD,GAAQ,oBAAsB0D,mBAAmB,GAAKsD,GAAoB,IAC1E/D,MAAAA,EACA,MAAM,IAAIQ,MAAM,oEAEhBzD,GAAQ,gBAAkB0D,mBAAmB,GAAKT,GAAgB,IAClEO,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK2H,gBAAqB1G,UAC9EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAgCC,EAAAA,WAAiBL,GANjD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK2H,gBAAqB1G,MAChF,MAAO3E,GACL,OAAgC+E,EAAAA,WAAiB/E,SAOvD8K,EAAApM,UAAA2M,gBAAA,SAAgBrG,WAAhBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIiC,EAEJ,OADAA,EAA8B,KAAlBjC,EAAuB,KAAeO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC1EkC,EAAAA,GAAcgC,OAEH,MAAX7C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkC,EAEJ,OADAA,EAA8B,KAAlBlC,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUyC,OAElD,MAAX9C,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIkD,EAEJ,OADAA,EAA8B,KAAlBlD,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAUyD,OAEjD,MAAX9D,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA2B,UApfIrD,0KAH7C6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YA9qEfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KA8qEqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,YA4yBrIqJ,EAoJAC,gBAhbR,SAAAC,EAA4C9I,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aARpDnE,EAAA2M,EAAA7H,GAgBrC6H,EAAA9M,UAAA+M,oBAAA,SAAoBlE,GAApB,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,+CACtB8D,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgI,2BAAgC/G,UACzFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAmDC,EAAAA,WAAiBL,GANpE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgI,2BAAgC/G,MAC3F,MAAO3E,GACL,OAAmD+E,EAAAA,WAAiB/E,SAO1EwL,EAAA9M,UAAAgN,2BAAA,SAA2B1G,WAA3BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAkCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC7FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA8C,OAQzD0F,EAAA9M,UAAAsH,QAAA,SAAQuB,GAAR,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,kCACtB8D,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwC,eAAoBvB,UAC7EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAuCC,EAAAA,WAAiBL,GANxD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwC,eAAoBvB,MAC/E,MAAO3E,GACL,OAAuC+E,EAAAA,WAAiB/E,SAO9DwL,EAAA9M,UAAAwH,eAAA,SAAelB,WAAftB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAsBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACjFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAkC,OAQ7C0F,EAAA9M,UAAAiN,aAAA,SAAapE,GAAb,IAAA7D,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,wCACtB8D,MAAAA,IACAxD,GAAQ,YAAc0D,mBAAmB,GAAKF,GAAY,KAC9DxD,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,gBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkI,oBAAyBjH,UAClFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkI,oBAAyBjH,MACpF,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpEwL,EAAA9M,UAAAkN,oBAAA,SAAoB5G,WAApBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA3D,EAAAoD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,UAxMdrD,0KAHxC6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YA9rFfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KA8rFqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,SA4RrIqJ,EAAAA,EAAAA,aAAAA,EAAAA,WAAU,KAClB,IAAA,MACAA,EAAA,MAAA,QACAA,EAAA,UAAA,YACAA,EAAA,WAAA,cAgJQC,EAAAA,EAAAA,iBAAAA,EAAAA,eAAc,KACtB,OAAA,SACAA,EAAA,QAAA,UACAA,EAAA,cAAA,gBACAA,EAAA,UAAA,8BA4HA,SAAAM,EAAYC,EAAiB7G,EAAgBD,EAAkBlC,EAAkC5C,GAAjG,IAAAwD,EACIC,EAAA/E,KAAAK,OAAOA,YASDyE,EAAAqI,gBAAiB,EAPvBrI,EAAKoI,QAAUA,EACfpI,EAAKuB,OAASA,EACdvB,EAAKsB,SAAWA,EAChBtB,EAAKZ,QAAUA,EACfY,EAAKxD,OAASA,WAdYrB,EAAAgN,EAAAlI,GAmBvBkI,EAAAE,eAAP,SAAsBC,GAClB,OAA8B,IAAvBA,EAAID,mBApBevE,OAwBlC,SAASzB,EAAe+F,EAAiB7G,EAAgBD,EAAkBlC,EAAkC5C,GACzG,OAAIA,MAAAA,EACO6E,EAAAA,WAAiB7E,GAEjB6E,EAAAA,WAAiB,IAAI8G,EAAaC,EAAS7G,EAAQD,EAAUlC,EAAS,OAGrF,SAAS8C,EAAWqG,GAChB,OAAO,IAAIC,EAAAA,YAAmB,SAACC,GAC3B,GAAKF,EAGE,CACH,IAAIG,EAAS,IAAIC,WACjBD,EAAOE,OAAS,SAAAC,GACZJ,EAASpM,KAAWwM,EAAMC,OAAQtM,QAClCiM,EAASM,YAEbL,EAAOM,WAAWT,QARlBE,EAASpM,KAAK,IACdoM,EAASM,uBClxGLE,EAA6BnK,EAAeU,EAAgBd,QAAA,IAAAA,IAAAA,EAAA,UAC1E,IAAMwK,EAAU,IAAIC,EAIpB,OAHAD,EAAQxK,OAASA,EACjBwK,EAAQ1J,OAASA,EACjB0J,EAAQrK,sBAAsBC,GACvBoK,mBAST,SAAAE,YACSA,EAAAC,QAAP,SAAevK,EAAeU,EAAgBd,GAC5C,YAD4C,IAAAA,IAAAA,EAAA,UACrC,CACL4K,SAAUF,EACVG,UAAW,CACT,CACEC,QAASC,EACTC,SAAUlK,GAEZ,CACEgK,QAASL,EACTQ,WAAYV,EAA6BW,KAAKrO,KAAMuD,EAAQU,EAAQd,gCAjB7EmL,EAAAA,SAAQhH,KAAA,CAAC,CACRiH,aAAc,GACdC,QAAS,GAETC,QAAS","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// <auto-generated>\n// Generated using the NSwag toolchain v13.9.4.0 (NJsonSchema v10.3.1.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\n// </auto-generated>\n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport { mergeMap as _observableMergeMap, catchError as _observableCatch } from 'rxjs/operators';\nimport { Observable, from as _observableFrom, throwError as _observableThrow, of as _observableOf } from 'rxjs';\nimport { Injectable, Inject, Optional, InjectionToken } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\n\nexport const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');\n\nexport class ApiClientConfiguration {\n apiUrl: string;\n apiKey: string = 'ApiKey';\n private authorizationToken: string = null;\n async getAuthorizationToken(): Promise<string> { return this.authorizationToken; };\n setAuthorizationToken(token: string): void { this.authorizationToken = token; };\n}\n\nexport class ApiClientBase {\n constructor(private configuration: ApiClientConfiguration) { }\n\n protected async transformOptions(options: any): Promise<any> {\n const token = await this.configuration.getAuthorizationToken();\n if (token != null) {\n options.headers = (options.headers as HttpHeaders).append(\"authorization\", \"Bearer \" + token);\n } else {\n options.headers = (options.headers as HttpHeaders).append(\"X-API-Key\", this.configuration.apiKey);\n }\n //options = { ...options, transformResponse: (res) => res, responseType: 'json' };\n return options;\n }\n\n protected getBaseUrl(defultUrl: string) {\n return this.configuration.apiUrl;\n }\n\n protected transformResult(url: string, res: HttpResponseBase, cb: (res: HttpResponseBase) => Observable<any>): Observable<any> {\n return cb(res);\n }\n}\n\nexport interface IBuildInfoApiClient {\n /**\n * Returns an assembly build info.\n * @return Success\n */\n headInfo(): Observable<void>;\n /**\n * Returns an assembly build info.\n * @return Success\n */\n getInfo(): Observable<BuildInfoModel>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuildInfoApiClient extends ApiClientBase implements IBuildInfoApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns an assembly build info.\n * @return Success\n */\n headInfo(): Observable<void> {\n let url_ = this.baseUrl + \"/api/storefront/v1/info\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"head\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processHeadInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processHeadInfo(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processHeadInfo(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns an assembly build info.\n * @return Success\n */\n getInfo(): Observable<BuildInfoModel> {\n let url_ = this.baseUrl + \"/api/storefront/v1/info\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n } catch (e) {\n return <Observable<BuildInfoModel>><any>_observableThrow(e);\n }\n } else\n return <Observable<BuildInfoModel>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetInfo(response: HttpResponseBase): Observable<BuildInfoModel> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <BuildInfoModel>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<BuildInfoModel>(<any>null);\n }\n}\n\nexport interface IProductReferencesApiClient {\n /**\n * Returns all storefront product references relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param productReference (optional) Product reference filter. Product reference is an external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param productSpecificationId (optional) Cusomer's Canvas product specification filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, productReference?: string | null | undefined, productSpecificationId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductReferenceDto>;\n /**\n * Creates a new storefront product reference.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProductReferenceDto | undefined): Observable<ProductReferenceDto>;\n /**\n * Returns a storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto>;\n /**\n * Deletes the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto>;\n /**\n * Returns a product specification by the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductSpecification(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductSpecificationDto>;\n /**\n * Returns a product personalization workflow configuration by storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductConfig(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<string>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductReferencesApiClient extends ApiClientBase implements IProductReferencesApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefront product references relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param productReference (optional) Product reference filter. Product reference is an external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param productSpecificationId (optional) Cusomer's Canvas product specification filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, productReference?: string | null | undefined, productSpecificationId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (productReference !== undefined && productReference !== null)\n url_ += \"productReference=\" + encodeURIComponent(\"\" + productReference) + \"&\";\n if (productSpecificationId !== undefined && productSpecificationId !== null)\n url_ += \"productSpecificationId=\" + encodeURIComponent(\"\" + productSpecificationId) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductReferenceDto>(<any>null);\n }\n\n /**\n * Creates a new storefront product reference.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProductReferenceDto | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Returns a storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references/{reference}?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Deletes the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references/{reference}?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Returns a product specification by the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductSpecification(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductSpecificationDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references/{reference}/product-specification?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductSpecification(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductSpecification(<any>r));\n } catch (e) {\n return <Observable<ProductSpecificationDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductSpecificationDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductSpecification(response: HttpResponseBase): Observable<ProductSpecificationDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductSpecificationDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductSpecificationDto>(<any>null);\n }\n\n /**\n * Returns a product personalization workflow configuration by storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductConfig(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<string> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-references/{reference}/product-config?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductConfig(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductConfig(<any>r));\n } catch (e) {\n return <Observable<string>><any>_observableThrow(e);\n }\n } else\n return <Observable<string>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductConfig(response: HttpResponseBase): Observable<string> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <string>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<string>(<any>null);\n }\n}\n\nexport interface IProductSpecificationsApiClient {\n /**\n * Returns all product specifications, relevant to the specified query parameters.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductSpecificationDto>;\n /**\n * Returns a product specification by identifier.\n * @param id Product specification identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProductSpecificationDto>;\n /**\n * Returns a product personlization workflow configuration by product specification identifier.\n * @param id Product specification identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getConfiguration(id: number, tenantId?: number | null | undefined): Observable<string>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductSpecificationsApiClient extends ApiClientBase implements IProductSpecificationsApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all product specifications, relevant to the specified query parameters.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductSpecificationDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-specifications?\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductSpecificationDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductSpecificationDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProductSpecificationDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductSpecificationDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductSpecificationDto>(<any>null);\n }\n\n /**\n * Returns a product specification by identifier.\n * @param id Product specification identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProductSpecificationDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-specifications/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProductSpecificationDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductSpecificationDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProductSpecificationDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductSpecificationDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductSpecificationDto>(<any>null);\n }\n\n /**\n * Returns a product personlization workflow configuration by product specification identifier.\n * @param id Product specification identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getConfiguration(id: number, tenantId?: number | null | undefined): Observable<string> {\n let url_ = this.baseUrl + \"/api/storefront/v1/product-specifications/{id}/config?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetConfiguration(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetConfiguration(<any>r));\n } catch (e) {\n return <Observable<string>><any>_observableThrow(e);\n }\n } else\n return <Observable<string>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetConfiguration(response: HttpResponseBase): Observable<string> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <string>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<string>(<any>null);\n }\n}\n\nexport interface IProjectsApiClient {\n /**\n * Returns all projects, relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param ownerId (optional) Project owner (storefront user id) filter.\n * @param productReference (optional) Product reference filter.\n * @param status (optional) Project status filter.\n * @param datePeriod (optional) Project date period filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, ownerId?: string | null | undefined, productReference?: string | null | undefined, status?: number | null | undefined, datePeriod?: DatePeriod | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProjectDto>;\n /**\n * Creates a new project.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProjectDto | undefined): Observable<ProjectDto>;\n /**\n * Returns a project by identifier.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectDto>;\n /**\n * Returns all available status transitions for a project.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailableTransitions(id: number, tenantId?: number | null | undefined): Observable<PagedOfProjectTransitionDto>;\n /**\n * Changes the project status.\n * @param id Project identifier\n * @param transition Transition identifying name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n changeStatus(id: number, transition: string | null, tenantId?: number | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Changes the project status forcibly without a proper transition.\n * @param id Project identifier.\n * @param status Project status code.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n forceStatus(id: number, status: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Returns a list of all existing project statuses.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllStatuses(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusDto>;\n /**\n * Returns a list of all existing project status transitions.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllTransitions(tenantId?: number | null | undefined): Observable<PagedOfProjectTransitionDto>;\n /**\n * Returns an url to download project print file.\n * @param id Project identifier.\n * @param designUserId Design owner identifier.\n * @param designId Design identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectPdfUrl(id: number, designUserId: string, designId: string, tenantId?: number | null | undefined): Observable<ProjectPdfResultDto>;\n /**\n * Returns an archive file, which contains all project print files.\n * @param id Project identifier.\n * @param designUserId Design owner identifier.\n * @param designId Design identifier.\n * @param attachment (optional) If set to 'true', the requested file will be provided as an attachment with proper filename supplied (default value is 'false').\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectPdfZip(id: number, designUserId: string, designId: string, attachment?: boolean | null | undefined, tenantId?: number | null | undefined): Observable<FileResponse>;\n /**\n * Returns an order description from the ecommerce system for the specified project.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectOrder(id: number, tenantId?: number | null | undefined): Observable<any>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProjectsApiClient extends ApiClientBase implements IProjectsApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all projects, relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param ownerId (optional) Project owner (storefront user id) filter.\n * @param productReference (optional) Product reference filter.\n * @param status (optional) Project status filter.\n * @param datePeriod (optional) Project date period filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, ownerId?: string | null | undefined, productReference?: string | null | undefined, status?: number | null | undefined, datePeriod?: DatePeriod | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProjectDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (ownerId !== undefined && ownerId !== null)\n url_ += \"ownerId=\" + encodeURIComponent(\"\" + ownerId) + \"&\";\n if (productReference !== undefined && productReference !== null)\n url_ += \"productReference=\" + encodeURIComponent(\"\" + productReference) + \"&\";\n if (status !== undefined && status !== null)\n url_ += \"status=\" + encodeURIComponent(\"\" + status) + \"&\";\n if (datePeriod === null)\n throw new Error(\"The parameter 'datePeriod' cannot be null.\");\n else if (datePeriod !== undefined)\n url_ += \"datePeriod=\" + encodeURIComponent(\"\" + datePeriod) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProjectDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectDto>(<any>null);\n }\n\n /**\n * Creates a new project.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProjectDto | undefined): Observable<ProjectDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProjectDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProjectDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProjectDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectDto>(<any>null);\n }\n\n /**\n * Returns a project by identifier.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProjectDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProjectDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectDto>(<any>null);\n }\n\n /**\n * Returns all available status transitions for a project.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailableTransitions(id: number, tenantId?: number | null | undefined): Observable<PagedOfProjectTransitionDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/transitions?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAvailableTransitions(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAvailableTransitions(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAvailableTransitions(response: HttpResponseBase): Observable<PagedOfProjectTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProjectTransitionConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectTransitionDto>(<any>null);\n }\n\n /**\n * Changes the project status.\n * @param id Project identifier\n * @param transition Transition identifying name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n changeStatus(id: number, transition: string | null, tenantId?: number | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/transitions/{transition}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (transition === undefined || transition === null)\n throw new Error(\"The parameter 'transition' must be defined.\");\n url_ = url_.replace(\"{transition}\", encodeURIComponent(\"\" + transition));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processChangeStatus(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processChangeStatus(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processChangeStatus(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProjectTransitionConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Changes the project status forcibly without a proper transition.\n * @param id Project identifier.\n * @param status Project status code.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n forceStatus(id: number, status: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/statuses/{status}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (status === undefined || status === null)\n throw new Error(\"The parameter 'status' must be defined.\");\n url_ = url_.replace(\"{status}\", encodeURIComponent(\"\" + status));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processForceStatus(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processForceStatus(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processForceStatus(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Returns a list of all existing project statuses.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllStatuses(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/statuses?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAllStatuses(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAllStatuses(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAllStatuses(response: HttpResponseBase): Observable<PagedOfProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectStatusDto>(<any>null);\n }\n\n /**\n * Returns a list of all existing project status transitions.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllTransitions(tenantId?: number | null | undefined): Observable<PagedOfProjectTransitionDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/transitions?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAllTransitions(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAllTransitions(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAllTransitions(response: HttpResponseBase): Observable<PagedOfProjectTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectTransitionDto>(<any>null);\n }\n\n /**\n * Returns an url to download project print file.\n * @param id Project identifier.\n * @param designUserId Design owner identifier.\n * @param designId Design identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectPdfUrl(id: number, designUserId: string, designId: string, tenantId?: number | null | undefined): Observable<ProjectPdfResultDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/project-pdf?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (designUserId === undefined || designUserId === null)\n throw new Error(\"The parameter 'designUserId' must be defined and cannot be null.\");\n else\n url_ += \"designUserId=\" + encodeURIComponent(\"\" + designUserId) + \"&\";\n if (designId === undefined || designId === null)\n throw new Error(\"The parameter 'designId' must be defined and cannot be null.\");\n else\n url_ += \"designId=\" + encodeURIComponent(\"\" + designId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProjectPdfUrl(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProjectPdfUrl(<any>r));\n } catch (e) {\n return <Observable<ProjectPdfResultDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectPdfResultDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProjectPdfUrl(response: HttpResponseBase): Observable<ProjectPdfResultDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectPdfResultDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectPdfResultDto>(<any>null);\n }\n\n /**\n * Returns an archive file, which contains all project print files.\n * @param id Project identifier.\n * @param designUserId Design owner identifier.\n * @param designId Design identifier.\n * @param attachment (optional) If set to 'true', the requested file will be provided as an attachment with proper filename supplied (default value is 'false').\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectPdfZip(id: number, designUserId: string, designId: string, attachment?: boolean | null | undefined, tenantId?: number | null | undefined): Observable<FileResponse> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/project-pdf-zip?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (designUserId === undefined || designUserId === null)\n throw new Error(\"The parameter 'designUserId' must be defined and cannot be null.\");\n else\n url_ += \"designUserId=\" + encodeURIComponent(\"\" + designUserId) + \"&\";\n if (designId === undefined || designId === null)\n throw new Error(\"The parameter 'designId' must be defined and cannot be null.\");\n else\n url_ += \"designId=\" + encodeURIComponent(\"\" + designId) + \"&\";\n if (attachment !== undefined && attachment !== null)\n url_ += \"attachment=\" + encodeURIComponent(\"\" + attachment) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/octet-stream\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProjectPdfZip(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProjectPdfZip(<any>r));\n } catch (e) {\n return <Observable<FileResponse>><any>_observableThrow(e);\n }\n } else\n return <Observable<FileResponse>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProjectPdfZip(response: HttpResponseBase): Observable<FileResponse> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200 || status === 206) {\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\n const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\n return _observableOf({ fileName: fileName, data: <any>responseBlob, status: status, headers: _headers });\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<FileResponse>(<any>null);\n }\n\n /**\n * Returns an order description from the ecommerce system for the specified project.\n * @param id Project identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProjectOrder(id: number, tenantId?: number | null | undefined): Observable<any> {\n let url_ = this.baseUrl + \"/api/storefront/v1/projects/{id}/order?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProjectOrder(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProjectOrder(<any>r));\n } catch (e) {\n return <Observable<any>><any>_observableThrow(e);\n }\n } else\n return <Observable<any>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProjectOrder(response: HttpResponseBase): Observable<any> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <any>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<any>(<any>null);\n }\n}\n\nexport interface IStorefrontsApiClient {\n /**\n * Returns all storefronts, relevant to the specified query parameters.\n * @param types (optional) Storefront type filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(types?: StorefrontType[] | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontDto>;\n /**\n * Returns a storefront by identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorefrontsApiClient extends ApiClientBase implements IStorefrontsApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefronts, relevant to the specified query parameters.\n * @param types (optional) Storefront type filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(types?: StorefrontType[] | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefronts?\";\n if (types !== undefined && types !== null)\n types && types.forEach(item => { url_ += \"types=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfStorefrontDto>(<any>null);\n }\n\n /**\n * Returns a storefront by identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefronts/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<StorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<StorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontDto>(<any>null);\n }\n}\n\nexport interface IStorefrontUsersApiClient {\n /**\n * Returns all storefront users, relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param storefrontUserId (optional) Storefront user identifier.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, storefrontUserId?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontUserDto>;\n /**\n * Creates a new storefront user.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateStorefrontUserDto | undefined): Observable<StorefrontUserDto>;\n /**\n * Returns a storefront user by identifier.\n * @param id Storefront user identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<StorefrontUserDto>;\n /**\n * Registers a storefront user with the specified identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n register(storefrontId: number, tenantId?: number | null | undefined, body?: RegisterStorefrontUserInput | undefined): Observable<StorefrontUserDto>;\n /**\n * Transfers all existing data for the anonymous storefront user to the selected regular storefront user account.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n mergeAnonymous(storefrontId: number, tenantId?: number | null | undefined, body?: MergeAnonymousUserDataInput | undefined): Observable<void>;\n /**\n * Returns an API access token for the specified storefront user.\n * @param storefrontUserId Storefront user identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getToken(storefrontUserId: string, storefrontId: number, tenantId?: number | null | undefined): Observable<string>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorefrontUsersApiClient extends ApiClientBase implements IStorefrontUsersApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefront users, relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param storefrontUserId (optional) Storefront user identifier.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, storefrontUserId?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontUserDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (storefrontUserId !== undefined && storefrontUserId !== null)\n url_ += \"storefrontUserId=\" + encodeURIComponent(\"\" + storefrontUserId) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfStorefrontUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfStorefrontUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfStorefrontUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfStorefrontUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfStorefrontUserDto>(<any>null);\n }\n\n /**\n * Creates a new storefront user.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateStorefrontUserDto | undefined): Observable<StorefrontUserDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<StorefrontUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<StorefrontUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <StorefrontUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontUserDto>(<any>null);\n }\n\n /**\n * Returns a storefront user by identifier.\n * @param id Storefront user identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<StorefrontUserDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<StorefrontUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<StorefrontUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontUserDto>(<any>null);\n }\n\n /**\n * Registers a storefront user with the specified identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n register(storefrontId: number, tenantId?: number | null | undefined, body?: RegisterStorefrontUserInput | undefined): Observable<StorefrontUserDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users/register?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processRegister(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processRegister(<any>r));\n } catch (e) {\n return <Observable<StorefrontUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processRegister(response: HttpResponseBase): Observable<StorefrontUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontUserDto>(<any>null);\n }\n\n /**\n * Transfers all existing data for the anonymous storefront user to the selected regular storefront user account.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Operation parameters.\n * @return Success\n */\n mergeAnonymous(storefrontId: number, tenantId?: number | null | undefined, body?: MergeAnonymousUserDataInput | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users/merge-anonymous?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json-patch+json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processMergeAnonymous(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processMergeAnonymous(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processMergeAnonymous(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns an API access token for the specified storefront user.\n * @param storefrontUserId Storefront user identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getToken(storefrontUserId: string, storefrontId: number, tenantId?: number | null | undefined): Observable<string> {\n let url_ = this.baseUrl + \"/api/storefront/v1/storefront-users/token?\";\n if (storefrontUserId === undefined || storefrontUserId === null)\n throw new Error(\"The parameter 'storefrontUserId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontUserId=\" + encodeURIComponent(\"\" + storefrontUserId) + \"&\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetToken(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetToken(<any>r));\n } catch (e) {\n return <Observable<string>><any>_observableThrow(e);\n }\n } else\n return <Observable<string>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetToken(response: HttpResponseBase): Observable<string> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <string>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<string>(<any>null);\n }\n}\n\nexport interface ITenantInfoApiClient {\n /**\n * Returns an information about the tenant applications.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getApplicationsInfo(tenantId?: number | null | undefined): Observable<TenantApplicationsInfoDto>;\n /**\n * Returns an information about the tenant.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getInfo(tenantId?: number | null | undefined): Observable<TenantInfoDto>;\n /**\n * Returns a list of tenant users.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getUsersInfo(tenantId?: number | null | undefined): Observable<TenantUserInfoDto[]>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TenantInfoApiClient extends ApiClientBase implements ITenantInfoApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns an information about the tenant applications.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getApplicationsInfo(tenantId?: number | null | undefined): Observable<TenantApplicationsInfoDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/tenant-info/applications?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetApplicationsInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetApplicationsInfo(<any>r));\n } catch (e) {\n return <Observable<TenantApplicationsInfoDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<TenantApplicationsInfoDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetApplicationsInfo(response: HttpResponseBase): Observable<TenantApplicationsInfoDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <TenantApplicationsInfoDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<TenantApplicationsInfoDto>(<any>null);\n }\n\n /**\n * Returns an information about the tenant.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getInfo(tenantId?: number | null | undefined): Observable<TenantInfoDto> {\n let url_ = this.baseUrl + \"/api/storefront/v1/tenant-info?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n } catch (e) {\n return <Observable<TenantInfoDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<TenantInfoDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetInfo(response: HttpResponseBase): Observable<TenantInfoDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <TenantInfoDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<TenantInfoDto>(<any>null);\n }\n\n /**\n * Returns a list of tenant users.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getUsersInfo(tenantId?: number | null | undefined): Observable<TenantUserInfoDto[]> {\n let url_ = this.baseUrl + \"/api/storefront/v1/tenant-info/users?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"text/plain\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetUsersInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetUsersInfo(<any>r));\n } catch (e) {\n return <Observable<TenantUserInfoDto[]>><any>_observableThrow(e);\n }\n } else\n return <Observable<TenantUserInfoDto[]>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetUsersInfo(response: HttpResponseBase): Observable<TenantUserInfoDto[]> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <TenantUserInfoDto[]>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<TenantUserInfoDto[]>(<any>null);\n }\n}\n\n/** Information about a service. */\nexport interface BuildInfoModel {\n /** Version number. */\n version?: string | null;\n /** Build date (UTC). */\n buildDate?: string | null;\n /** Build configuration (Debug | Release). */\n configuration?: string | null;\n /** Service name. */\n appName?: string | null;\n}\n\n/** Dto class, containing information about storefront product reference. */\nexport interface ProductReferenceDto {\n /** Product reference is an external reference to Customer's Canvas product specification, e.g online store product identifier. */\n productReference?: string | null;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId?: number;\n /** Storefront identifier. */\n storefrontId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront product reference creation date and time. */\n created?: string;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProductReferenceDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProductReferenceDto[] | null;\n}\n\n/** Dto class, containing create operation parameters for storefront product reference. */\nexport interface CreateProductReferenceDto {\n /** Product reference is an external reference to Customer's Canvas product specification, e.g online store product identifier. */\n productReference: string;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId: number;\n}\n\nexport interface ProblemDetails {\n type?: string | null;\n title?: string | null;\n status?: number | null;\n detail?: string | null;\n instance?: string | null;\n}\n\n/** Dto class, containing information about product attribute. */\nexport interface ProductAttributeDto {\n /** Product attribute name. */\n name?: string | null;\n /** Product attribute type. */\n type?: string | null;\n /** Product attribute value. */\n value?: any | null;\n}\n\n/** Dto class, containing information about product specification. */\nexport interface ProductSpecificationDto {\n /** Product specification identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product specification name. */\n name?: string | null;\n /** List of product attributes. */\n productAttributes?: ProductAttributeDto[] | null;\n /** Product specification creation time. */\n created?: string;\n /** Product specification modification time. */\n lastModified?: string | null;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProductSpecificationDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProductSpecificationDto[] | null;\n}\n\n/** Defines all available date period filter values for queries. */\nexport enum DatePeriod {\n All = \"All\",\n Today = \"Today\",\n Last7Days = \"Last7Days\",\n Last30Days = \"Last30Days\",\n}\n\n/** Dto class, containing information about a project item. */\nexport interface ProjectItemDto {\n /** Item name. */\n name?: string | null;\n /** Item quantity information. */\n quantity?: number | null;\n /** Item information. */\n fields?: { [key: string]: any; } | null;\n /** Additional item information. */\n hidden?: any | null;\n /** A list of design identifiers associated to the item. */\n designIds?: string[] | null;\n /** SKU. */\n sku?: string | null;\n}\n\n/** Dto class, containing information about a project. */\nexport interface ProjectDto {\n /** Project identifier. */\n id?: number;\n /** Product reference (i.e external reference to Customer's Canvas product specification) */\n productReference?: string | null;\n /** Storefront identifier. */\n storefrontId?: number;\n /** Project tenant indentifier. */\n tenantId?: number;\n /** Order identifier in ecommerce system. */\n orderId?: string | null;\n /** Order url in ecommerce system. */\n orderUrl?: string | null;\n /** Order number in ecommerce system. */\n orderNumber?: number | null;\n /** Line item identifier from external ecommerce system order. */\n orderLineItemId?: string | null;\n /** Line item index from external ecommerce system order. */\n orderLineItemIndex?: number | null;\n /** Customer identifier in ecommerce system. */\n customerId?: string | null;\n /** Customer name in ecommerce system. */\n customerName?: string | null;\n /** Project name. */\n name?: string | null;\n /** Project owner identifier. */\n ownerId?: string | null;\n /** List of project items. */\n items?: ProjectItemDto[] | null;\n /** Project status code. */\n status?: number;\n /** Project creation time. */\n created?: string;\n /** Project modification time. */\n lastModified?: string | null;\n /** Description of the project. */\n description?: string | null;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProjectDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProjectDto[] | null;\n}\n\n/** Dto class, containing create operation parameters for project entity. */\nexport interface CreateProjectDto {\n /** Product reference (i.e external reference to Customer's Canvas product specification - main subject of this project). */\n productReference: string;\n /** Order identifier in ecommerce system. */\n orderId?: string | null;\n /** Order url in ecommerce system. */\n orderUrl?: string | null;\n /** Order number in ecommerce system. */\n orderNumber?: number | null;\n /** Line item index from ecommerce system order. */\n orderLineItemIndex?: number | null;\n /** Line Item identifier from ecommerce system order. */\n orderLineItemId?: string | null;\n /** Customer identifier in ecommerce system. */\n customerId?: string | null;\n /** Customer name in ecommerce system. */\n customerName?: string | null;\n /** Project name. */\n name?: string | null;\n /** Project owner identifier. */\n ownerId: string;\n /** List of project items. */\n items?: ProjectItemDto[] | null;\n /** Description of the project. */\n description?: string | null;\n}\n\n/** Project transition dto class. */\nexport interface ProjectTransitionDto {\n /** Transition identifying name. */\n name?: string | null;\n /** Transition display name. */\n displayName?: string | null;\n /** Project status code from which transition to the result status code can be done. */\n startStatus?: number;\n /** Transition result project status code. */\n resultStatus?: number;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProjectTransitionDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProjectTransitionDto[] | null;\n}\n\n/** Dto class, containing information about the project transition conflict. */\nexport interface ProjectTransitionConflictDto {\n /** A list of all available status transitions for the project. */\n availableTransitions?: ProjectTransitionDto[] | null;\n}\n\n/** Dto class, containing the information about project status. */\nexport interface ProjectStatusDto {\n /** Status code. */\n code?: number;\n /** Status display name. */\n displayName?: string | null;\n}\n\n/** Paged list of items. */\nexport interface PagedOfProjectStatusDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: ProjectStatusDto[] | null;\n}\n\n/** Dto class, containing result of 'get project pdf url' operation. */\nexport interface ProjectPdfResultDto {\n /** Project pdf url. */\n url?: string | null;\n}\n\n/** Storefront types. */\nexport enum StorefrontType {\n Custom = \"Custom\",\n Shopify = \"Shopify\",\n DocketManager = \"DocketManager\",\n Auth0Saml = \"Auth0Saml\",\n}\n\n/** Dto class, containing information about a storefront. */\nexport interface StorefrontDto {\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n}\n\n/** Paged list of items. */\nexport interface PagedOfStorefrontDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: StorefrontDto[] | null;\n}\n\n/** DTO class, containing infromation about a storefront user. */\nexport interface StorefrontUserDto {\n /** Storefront user identifier. */\n userId?: string | null;\n /** Storefront tenant indentifier. */\n tenantId?: number;\n /** Storefront identifier. */\n storefrontId?: number | null;\n /** Indicates if the user is tracked as an anonymous. */\n isAnonymous?: boolean;\n}\n\n/** Paged list of items. */\nexport interface PagedOfStorefrontUserDto {\n /** Items count. */\n total?: number;\n /** Items list. */\n items?: StorefrontUserDto[] | null;\n}\n\n/** Dto class, containing create operation parameters for storefront user. */\nexport interface CreateStorefrontUserDto {\n /** Storefront user identifier. */\n storefrontUserId?: string | null;\n /** Indicates if the user is tracked as an anonymous. */\n isAnonymous?: boolean;\n}\n\nexport interface RegisterStorefrontUserInput {\n /** Storefront user identifier. */\n storefrontUserId?: string | null;\n}\n\n/** Dto class, containing parameters for merge anonymous user operation. */\nexport interface MergeAnonymousUserDataInput {\n /** Anonymous storefront user identifier. */\n anonymousStorefrontUserId?: string | null;\n /** Regular storefront user identifier. */\n regularStorefrontUserId?: string | null;\n}\n\n/** Dto class, containing information about tenant applications. */\nexport interface TenantApplicationsInfoDto {\n /** An url to the 'Design Editor' tenant application. */\n designEditorUrl?: string | null;\n /** An url to the 'UI Framework'. */\n uiFrameworkUrl?: string | null;\n /** An url to the 'Simple editor'. */\n simpleEditorUrl?: string | null;\n /** An url to the 'Preflight' tenant application. */\n preflightUrl?: string | null;\n /** An url to the 'Dynamic Image' tenant application. */\n dynamicImageUrl?: string | null;\n /** Tenant identifier */\n tenantId?: number;\n /** An ApiKey for the 'Design Editor' tenant application. */\n designEditorApiKey?: string | null;\n /** An ApiKey for the 'Preflight' tenant application. */\n preflightApiKey?: string | null;\n /** An ApiKey for the 'Dynamic Image' tenant application. */\n dynamicImageApiKey?: string | null;\n}\n\n/** Dto class, containing general information about tenant. */\nexport interface TenantInfoDto {\n /** Tenant identifier. */\n tenantId?: number;\n /** Tenancy name. */\n tenancyName?: string | null;\n /** Tenant creation time. */\n tenantCreationTime?: string;\n /** Tenant activeness status. */\n isActive?: boolean;\n}\n\nexport interface TenantUserInfoDto {\n /** Tenant identifier. */\n tenantId?: number;\n /** User identifier. */\n userId?: number;\n /** User name. */\n userName?: string | null;\n /** User surname. */\n userSurname?: string | null;\n}\n\nexport interface FileResponse {\n data: Blob;\n status: number;\n fileName?: string;\n headers?: { [name: string]: any };\n}\n\nexport class ApiException extends Error {\n message: string;\n status: number;\n response: string;\n headers: { [key: string]: any; };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): Observable<any> {\n if (result !== null && result !== undefined)\n return _observableThrow(result);\n else\n return _observableThrow(new ApiException(message, status, response, headers, null));\n}\n\nfunction blobToText(blob: any): Observable<string> {\n return new Observable<string>((observer: any) => {\n if (!blob) {\n observer.next(\"\");\n observer.complete();\n } else {\n let reader = new FileReader();\n reader.onload = event => {\n observer.next((<any>event.target).result);\n observer.complete();\n };\n reader.readAsText(blob);\n }\n });\n}","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport * as StorefrontApiClient from './storefront-api-client';\n\n// @dynamic\nexport function CreateApiClientConfiguration(token: string, apiUrl: string, apiKey: string = 'ApiKey'): StorefrontApiClient.ApiClientConfiguration {\n const apiConf = new StorefrontApiClient.ApiClientConfiguration();\n apiConf.apiKey = apiKey;\n apiConf.apiUrl = apiUrl;\n apiConf.setAuthorizationToken(token);\n return apiConf;\n}\n\n@NgModule({\n declarations: [],\n imports: [\n ],\n exports: []\n})\nexport class StorefrontModule {\n static forRoot(token: string, apiUrl: string, apiKey: string = 'ApiKey'): ModuleWithProviders<StorefrontModule> {\n return {\n ngModule: StorefrontModule,\n providers: [\n {\n provide: StorefrontApiClient.API_BASE_URL,\n useValue: apiUrl\n },\n {\n provide: StorefrontApiClient.ApiClientConfiguration,\n useFactory: CreateApiClientConfiguration.bind(this, token , apiUrl, apiKey)\n },\n ]\n };\n }\n}\n"]}
|