@geosanja/geosanja-frontend-api
Version:
swagger client for @geosanja/geosanja-frontend-api
1 lines • 144 kB
Source Map (JSON)
{"version":3,"file":"geosanja-geosanja-frontend-api.mjs","sources":["../../encoder.ts","../../variables.ts","../../configuration.ts","../../api/default.service.ts","../../api/api.ts","../../model/camadaCustomAttributeDTO.ts","../../model/camadaPropriedadeValorPadraoDTO.ts","../../model/camadaToolDTO.ts","../../model/editAttributesDTOAttributes.ts","../../model/exportPDFDTO.ts","../../model/featureDTO.ts","../../model/funcionalidadeDTOCustomAttributes.ts","../../model/geoTableDTOFields.ts","../../model/localizarUnidadeGeoDTOParametros.ts","../../model/perfilCamadaDTO.ts","../../model/resultadoUnidadeGeoDTO.ts","../../model/uploadCamadaCheckCamadaNameStatus.ts","../../model/uploadCamadaFileDTO.ts","../../model/uploadCamadaFileInfoDTOFields.ts","../../model/uploadCamadaSLDFileDTO.ts","../../api.module.ts","../../geosanja-geosanja-frontend-api.ts"],"sourcesContent":[" import { HttpUrlEncodingCodec } from '@angular/common/http';\n\n/**\n* CustomHttpUrlEncodingCodec\n* Fix plus sign (+) not encoding, so sent as blank space\n* See: https://github.com/angular/angular/issues/11058#issuecomment-247367318\n*/\nexport class CustomHttpUrlEncodingCodec extends HttpUrlEncodingCodec {\n override encodeKey(k: string): string {\n k = super.encodeKey(k);\n return k.replace(/\\+/gi, '%2B');\n }\n override encodeValue(v: string): string {\n v = super.encodeValue(v);\n return v.replace(/\\+/gi, '%2B');\n }\n}\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","export interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length == 0) {\n return undefined;\n }\n\n let type = contentTypes.find(x => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length == 0) {\n return undefined;\n }\n\n let type = accepts.find(x => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime != null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *//* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { AdminConfigDTO } from '../model/adminConfigDTO';\nimport { AdminPropriedadesCamadaDTO } from '../model/adminPropriedadesCamadaDTO';\nimport { AutenticacaoDTO } from '../model/autenticacaoDTO';\nimport { CamadaDTO } from '../model/camadaDTO';\nimport { CamadaPropriedadeDTO } from '../model/camadaPropriedadeDTO';\nimport { ConfigDTO } from '../model/configDTO';\nimport { EditAttributesDTO } from '../model/editAttributesDTO';\nimport { EditionOperationsDTO } from '../model/editionOperationsDTO';\nimport { FuncionalidadeDTO } from '../model/funcionalidadeDTO';\nimport { GrupoCamadaDTO } from '../model/grupoCamadaDTO';\nimport { LocalizarUnidadeGeoDTO } from '../model/localizarUnidadeGeoDTO';\nimport { PerfilDTO } from '../model/perfilDTO';\nimport { ResultadoUnidadeGeoDTO } from '../model/resultadoUnidadeGeoDTO';\nimport { SaveCamadaDTO } from '../model/saveCamadaDTO';\nimport { UploadCamadaCheckCamadaNameStatus } from '../model/uploadCamadaCheckCamadaNameStatus';\nimport { UploadCamadaFileInfoDTO } from '../model/uploadCamadaFileInfoDTO';\nimport { UsuarioDTO } from '../model/usuarioDTO';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DefaultService {\n\n protected basePath = '/';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (basePath) {\n this.basePath = basePath;\n }\n if (configuration) {\n this.configuration = configuration;\n this.basePath = basePath || configuration.basePath || this.basePath;\n }\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n /**\n * Autenticar usuário\n * \n * @param token \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public autenticar(token: string, observe?: 'body', reportProgress?: boolean): Observable<AutenticacaoDTO>;\n public autenticar(token: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AutenticacaoDTO>>;\n public autenticar(token: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AutenticacaoDTO>>;\n public autenticar(token: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (token === null || token === undefined) {\n throw new Error('Required parameter token was null or undefined when calling autenticar.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (token !== undefined && token !== null) {\n queryParameters = queryParameters.set('token', <any>token);\n }\n\n let headers = this.defaultHeaders;\n\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<AutenticacaoDTO>('get',`${this.basePath}/autenticar`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Verifica se o nome da camada/tabela pode ser usado.\n * \n * @param name \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkCamadaNameStatus(name: string, observe?: 'body', reportProgress?: boolean): Observable<Array<UploadCamadaCheckCamadaNameStatus>>;\n public checkCamadaNameStatus(name: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<UploadCamadaCheckCamadaNameStatus>>>;\n public checkCamadaNameStatus(name: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<UploadCamadaCheckCamadaNameStatus>>>;\n public checkCamadaNameStatus(name: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (name === null || name === undefined) {\n throw new Error('Required parameter name was null or undefined when calling checkCamadaNameStatus.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (name !== undefined && name !== null) {\n queryParameters = queryParameters.set('name', <any>name);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<Array<UploadCamadaCheckCamadaNameStatus>>('get',`${this.basePath}/admin/camada/checknameinfo`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete camada da aplicação\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteCamada(body: CamadaDTO, observe?: 'body', reportProgress?: boolean): Observable<boolean>;\n public deleteCamada(body: CamadaDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<boolean>>;\n public deleteCamada(body: CamadaDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<boolean>>;\n public deleteCamada(body: CamadaDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling deleteCamada.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<boolean>('delete',`${this.basePath}/admin/camada`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete grupo camada da aplicação\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteCamada_1(body: GrupoCamadaDTO, observe?: 'body', reportProgress?: boolean): Observable<boolean>;\n public deleteCamada_1(body: GrupoCamadaDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<boolean>>;\n public deleteCamada_1(body: GrupoCamadaDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<boolean>>;\n public deleteCamada_1(body: GrupoCamadaDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling deleteCamada_1.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<boolean>('delete',`${this.basePath}/admin/grupocamada`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete perfil da aplicação\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deletePerfil(body: PerfilDTO, observe?: 'body', reportProgress?: boolean): Observable<boolean>;\n public deletePerfil(body: PerfilDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<boolean>>;\n public deletePerfil(body: PerfilDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<boolean>>;\n public deletePerfil(body: PerfilDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling deletePerfil.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<boolean>('delete',`${this.basePath}/admin/perfil`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete usuário da aplicação\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteUsuario(body: UsuarioDTO, observe?: 'body', reportProgress?: boolean): Observable<boolean>;\n public deleteUsuario(body: UsuarioDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<boolean>>;\n public deleteUsuario(body: UsuarioDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<boolean>>;\n public deleteUsuario(body: UsuarioDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling deleteUsuario.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<boolean>('delete',`${this.basePath}/admin/usuario`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Download de camadas e grupo de camadas do GeoServer.\n * \n * @param layerId \n * @param format \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public downloadCamada(layerId: string, format: string, observe?: 'body', reportProgress?: boolean): Observable<Blob>;\n public downloadCamada(layerId: string, format: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Blob>>;\n public downloadCamada(layerId: string, format: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Blob>>;\n public downloadCamada(layerId: string, format: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (layerId === null || layerId === undefined) {\n throw new Error('Required parameter layerId was null or undefined when calling downloadCamada.');\n }\n\n if (format === null || format === undefined) {\n throw new Error('Required parameter format was null or undefined when calling downloadCamada.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (layerId !== undefined && layerId !== null) {\n queryParameters = queryParameters.set('layerId', <any>layerId);\n }\n if (format !== undefined && format !== null) {\n queryParameters = queryParameters.set('format', <any>format);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/octet-stream'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/download/camada`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edição dos atributos de camada.\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editAttributes(body?: EditAttributesDTO, observe?: 'body', reportProgress?: boolean): Observable<string>;\n public editAttributes(body?: EditAttributesDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<string>>;\n public editAttributes(body?: EditAttributesDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<string>>;\n public editAttributes(body?: EditAttributesDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<string>('post',`${this.basePath}/edit/attributes`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Operações de edição de feições de camadas.\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public executeEditionOperations(body?: EditionOperationsDTO, observe?: 'body', reportProgress?: boolean): Observable<EditionOperationsDTO>;\n public executeEditionOperations(body?: EditionOperationsDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<EditionOperationsDTO>>;\n public executeEditionOperations(body?: EditionOperationsDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<EditionOperationsDTO>>;\n public executeEditionOperations(body?: EditionOperationsDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<EditionOperationsDTO>('post',`${this.basePath}/edit/execute/operations`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Serviço para exportar o mapa e legendas para PDF.\n * \n * @param pdfHeader \n * @param pdfFooter \n * @param pdfLegends \n * @param pdfMap \n * @param pdfFormat \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public exportPDFForm(pdfHeader?: string, pdfFooter?: string, pdfLegends?: string, pdfMap?: Blob, pdfFormat?: string, observe?: 'body', reportProgress?: boolean): Observable<Blob>;\n public exportPDFForm(pdfHeader?: string, pdfFooter?: string, pdfLegends?: string, pdfMap?: Blob, pdfFormat?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Blob>>;\n public exportPDFForm(pdfHeader?: string, pdfFooter?: string, pdfLegends?: string, pdfMap?: Blob, pdfFormat?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Blob>>;\n public exportPDFForm(pdfHeader?: string, pdfFooter?: string, pdfLegends?: string, pdfMap?: Blob, pdfFormat?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n\n\n\n\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/octet-stream'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): void; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n }\n\n if (pdfHeader !== undefined) {\n formParams = formParams.append('pdfHeader', <any>pdfHeader) as any || formParams;\n }\n if (pdfFooter !== undefined) {\n formParams = formParams.append('pdfFooter', <any>pdfFooter) as any || formParams;\n }\n if (pdfLegends !== undefined) {\n formParams = formParams.append('pdfLegends', <any>pdfLegends) as any || formParams;\n }\n if (pdfMap !== undefined) {\n formParams = formParams.append('pdfMap', <any>pdfMap) as any || formParams;\n }\n if (pdfFormat !== undefined) {\n formParams = formParams.append('pdfFormat', <any>pdfFormat) as any || formParams;\n }\n\n return this.httpClient.request('post',`${this.basePath}/export/pdf`,\n {\n body: convertFormParamsToString ? formParams.toString() : formParams,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar lista de opções de configurações para campos de administração\n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAdminConfig(observe?: 'body', reportProgress?: boolean): Observable<AdminConfigDTO>;\n public getAdminConfig(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AdminConfigDTO>>;\n public getAdminConfig(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AdminConfigDTO>>;\n public getAdminConfig(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<AdminConfigDTO>('get',`${this.basePath}/admin/config`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar lista de camadas.\n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCamadas(observe?: 'body', reportProgress?: boolean): Observable<Array<GrupoCamadaDTO>>;\n public getCamadas(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<GrupoCamadaDTO>>>;\n public getCamadas(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<GrupoCamadaDTO>>>;\n public getCamadas(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<Array<GrupoCamadaDTO>>('get',`${this.basePath}/camadas`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar lista de camadas para administração\n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCamadasAdmin(observe?: 'body', reportProgress?: boolean): Observable<Array<CamadaDTO>>;\n public getCamadasAdmin(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<CamadaDTO>>>;\n public getCamadasAdmin(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<CamadaDTO>>>;\n public getCamadasAdmin(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<Array<CamadaDTO>>('get',`${this.basePath}/admin/camadas`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar configurações da aplicação (Camadas e Funcionalidades Públicas).\n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getConfig(observe?: 'body', reportProgress?: boolean): Observable<ConfigDTO>;\n public getConfig(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ConfigDTO>>;\n public getConfig(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ConfigDTO>>;\n public getConfig(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<ConfigDTO>('get',`${this.basePath}/config`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar lista de usuários do esjc\n * \n * @param cpf \n * @param nome \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getESJCUsuarios(cpf?: number, nome?: string, observe?: 'body', reportProgress?: boolean): Observable<Array<UsuarioDTO>>;\n public getESJCUsuarios(cpf?: number, nome?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<UsuarioDTO>>>;\n public getESJCUsuarios(cpf?: number, nome?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<UsuarioDTO>>>;\n public getESJCUsuarios(cpf?: number, nome?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (cpf !== undefined && cpf !== null) {\n queryParameters = queryParameters.set('cpf', <any>cpf);\n }\n if (nome !== undefined && nome !== null) {\n queryParameters = queryParameters.set('nome', <any>nome);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<Array<UsuarioDTO>>('get',`${this.basePath}/admin/esjc/usuarios`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar informações de camadas e grupos de camadas por apontamento.\n * \n * @param srs \n * @param version \n * @param bbox \n * @param height \n * @param width \n * @param layers \n * @param queryLayers \n * @param infoFormat \n * @param x \n * @param y \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFeatureInfo(srs: string, version: string, bbox: string, height: string, width: string, layers: string, queryLayers: string, infoFormat: string, x: string, y: string, observe?: 'body', reportProgress?: boolean): Observable<string>;\n public getFeatureInfo(srs: string, version: string, bbox: string, height: string, width: string, layers: string, queryLayers: string, infoFormat: string, x: string, y: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<string>>;\n public getFeatureInfo(srs: string, version: string, bbox: string, height: string, width: string, layers: string, queryLayers: string, infoFormat: string, x: string, y: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<string>>;\n public getFeatureInfo(srs: string, version: string, bbox: string, height: string, width: string, layers: string, queryLayers: string, infoFormat: string, x: string, y: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (srs === null || srs === undefined) {\n throw new Error('Required parameter srs was null or undefined when calling getFeatureInfo.');\n }\n\n if (version === null || version === undefined) {\n throw new Error('Required parameter version was null or undefined when calling getFeatureInfo.');\n }\n\n if (bbox === null || bbox === undefined) {\n throw new Error('Required parameter bbox was null or undefined when calling getFeatureInfo.');\n }\n\n if (height === null || height === undefined) {\n throw new Error('Required parameter height was null or undefined when calling getFeatureInfo.');\n }\n\n if (width === null || width === undefined) {\n throw new Error('Required parameter width was null or undefined when calling getFeatureInfo.');\n }\n\n if (layers === null || layers === undefined) {\n throw new Error('Required parameter layers was null or undefined when calling getFeatureInfo.');\n }\n\n if (queryLayers === null || queryLayers === undefined) {\n throw new Error('Required parameter queryLayers was null or undefined when calling getFeatureInfo.');\n }\n\n if (infoFormat === null || infoFormat === undefined) {\n throw new Error('Required parameter infoFormat was null or undefined when calling getFeatureInfo.');\n }\n\n if (x === null || x === undefined) {\n throw new Error('Required parameter x was null or undefined when calling getFeatureInfo.');\n }\n\n if (y === null || y === undefined) {\n throw new Error('Required parameter y was null or undefined when calling getFeatureInfo.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (srs !== undefined && srs !== null) {\n queryParameters = queryParameters.set('srs', <any>srs);\n }\n if (version !== undefined && version !== null) {\n queryParameters = queryParameters.set('version', <any>version);\n }\n if (bbox !== undefined && bbox !== null) {\n queryParameters = queryParameters.set('bbox', <any>bbox);\n }\n if (height !== undefined && height !== null) {\n queryParameters = queryParameters.set('height', <any>height);\n }\n if (width !== undefined && width !== null) {\n queryParameters = queryParameters.set('width', <any>width);\n }\n if (layers !== undefined && layers !== null) {\n queryParameters = queryParameters.set('layers', <any>layers);\n }\n if (queryLayers !== undefined && queryLayers !== null) {\n queryParameters = queryParameters.set('query_layers', <any>queryLayers);\n }\n if (infoFormat !== undefined && infoFormat !== null) {\n queryParameters = queryParameters.set('info_format', <any>infoFormat);\n }\n if (x !== undefined && x !== null) {\n queryParameters = queryParameters.set('x', <any>x);\n }\n if (y !== undefined && y !== null) {\n queryParameters = queryParameters.set('y', <any>y);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<string>('get',`${this.basePath}/featureinfo`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar lista de funcionalidades para administração\n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFuncionalidadesAdmin(observe?: 'body', reportProgress?: boolean): Observable<Array<FuncionalidadeDTO>>;\n public getFuncionalidadesAdmin(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<FuncionalidadeDTO>>>;\n public getFuncionalidadesAdmin(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<FuncionalidadeDTO>>>;\n public getFuncionalidadesAdmin(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<Array<FuncionalidadeDTO>>('get',`${this.basePath}/admin/funcionalidades`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Busca icone\n * \n * @param filename \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getIcon(filename: string, observe?: 'body', reportProgress?: boolean): Observable<Blob>;\n public getIcon(filename: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Blob>>;\n public getIcon(filename: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Blob>>;\n public getIcon(filename: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (filename === null || filename === undefined) {\n throw new Error('Required parameter filename was null or undefined when calling getIcon.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (filename !== undefined && filename !== null) {\n queryParameters = queryParameters.set('filename', <any>filename);\n }\n\n let headers = this.defaultHeaders;\n\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'image/svg+xml'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/icon`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Busca feição baseado no id da feição.\n * \n * @param id \n * @param layerId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLayerFeature(id: string, layerId: string, observe?: 'body', reportProgress?: boolean): Observable<string>;\n public getLayerFeature(id: string, layerId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<string>>;\n public getLayerFeature(id: string, layerId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<string>>;\n public getLayerFeature(id: string, layerId: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getLayerFeature.');\n }\n\n if (layerId === null || layerId === undefined) {\n throw new Error('Required parameter layerId was null or undefined when calling getLayerFeature.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (id !== undefined && id !== null) {\n queryParameters = queryParameters.set('id', <any>id);\n }\n if (layerId !== undefined && layerId !== null) {\n queryParameters = queryParameters.set('layerId', <any>layerId);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<string>('get',`${this.basePath}/layer/feature`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar lista de perfis\n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPerfis(observe?: 'body', reportProgress?: boolean): Observable<Array<PerfilDTO>>;\n public getPerfis(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<PerfilDTO>>>;\n public getPerfis(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<PerfilDTO>>>;\n public getPerfis(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<Array<PerfilDTO>>('get',`${this.basePath}/admin/perfis`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar lista de proprieades das camadas e suas configurações.\n * \n * @param id \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPropriedadesCamada(id: string, observe?: 'body', reportProgress?: boolean): Observable<Array<CamadaPropriedadeDTO>>;\n public getPropriedadesCamada(id: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<CamadaPropriedadeDTO>>>;\n public getPropriedadesCamada(id: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<CamadaPropriedadeDTO>>>;\n public getPropriedadesCamada(id: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getPropriedadesCamada.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (id !== undefined && id !== null) {\n queryParameters = queryParameters.set('id', <any>id);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<Array<CamadaPropriedadeDTO>>('get',`${this.basePath}/camada/propriedades`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar lista de propriedades para a camada ou grupo de camadas para administração. \n * \n * @param id \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPropriedadesCamadaAdmin(id: number, observe?: 'body', reportProgress?: boolean): Observable<Array<AdminPropriedadesCamadaDTO>>;\n public getPropriedadesCamadaAdmin(id: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<AdminPropriedadesCamadaDTO>>>;\n public getPropriedadesCamadaAdmin(id: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<AdminPropriedadesCamadaDTO>>>;\n public getPropriedadesCamadaAdmin(id: number, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getPropriedadesCamadaAdmin.');\n }\n\n let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n if (id !== undefined && id !== null) {\n queryParameters = queryParameters.set('id', <any>id);\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<Array<AdminPropriedadesCamadaDTO>>('get',`${this.basePath}/admin/camada/propriedades`,\n {\n params: queryParameters,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Buscar lista de usuários da aplicação\n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUsuarios(observe?: 'body', reportProgress?: boolean): Observable<Array<UsuarioDTO>>;\n public getUsuarios(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<UsuarioDTO>>>;\n public getUsuarios(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<UsuarioDTO>>>;\n public getUsuarios(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<Array<UsuarioDTO>>('get',`${this.basePath}/admin/usuarios`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Localização por unidade geográfica.\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public localizarUnidadeGeo(body: LocalizarUnidadeGeoDTO, observe?: 'body', reportProgress?: boolean): Observable<Array<ResultadoUnidadeGeoDTO>>;\n public localizarUnidadeGeo(body: LocalizarUnidadeGeoDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<ResultadoUnidadeGeoDTO>>>;\n public localizarUnidadeGeo(body: LocalizarUnidadeGeoDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<ResultadoUnidadeGeoDTO>>>;\n public localizarUnidadeGeo(body: LocalizarUnidadeGeoDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling localizarUnidadeGeo.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<Array<ResultadoUnidadeGeoDTO>>('post',`${this.basePath}/localizar`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Proxy para requisições GET ao GeoServer.\n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public proxy(observe?: 'body', reportProgress?: boolean): Observable<Blob>;\n public proxy(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Blob>>;\n public proxy(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Blob>>;\n public proxy(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/octet-stream'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request('get',`${this.basePath}/proxy`,\n {\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upload do estilo sld na aplicação\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveUploadCamadaFile(body: UploadCamadaFileInfoDTO, observe?: 'body', reportProgress?: boolean): Observable<any>;\n public saveUploadCamadaFile(body: UploadCamadaFileInfoDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n public saveUploadCamadaFile(body: UploadCamadaFileInfoDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n public saveUploadCamadaFile(body: UploadCamadaFileInfoDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling saveUploadCamadaFile.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<any>('post',`${this.basePath}/admin/camada/uploadsave`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Salvar camada na aplicação\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setCamada(body: SaveCamadaDTO, observe?: 'body', reportProgress?: boolean): Observable<boolean>;\n public setCamada(body: SaveCamadaDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<boolean>>;\n public setCamada(body: SaveCamadaDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<boolean>>;\n public setCamada(body: SaveCamadaDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling setCamada.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<boolean>('post',`${this.basePath}/admin/camada`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Salvar grupo camada na aplicação\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setGrupoCamada(body: GrupoCamadaDTO, observe?: 'body', reportProgress?: boolean): Observable<boolean>;\n public setGrupoCamada(body: GrupoCamadaDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<boolean>>;\n public setGrupoCamada(body: GrupoCamadaDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<boolean>>;\n public setGrupoCamada(body: GrupoCamadaDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling setGrupoCamada.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<boolean>('post',`${this.basePath}/admin/grupocamada`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Salvar perfil na aplicação\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setPerfil(body: PerfilDTO, observe?: 'body', reportProgress?: boolean): Observable<boolean>;\n public setPerfil(body: PerfilDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<boolean>>;\n public setPerfil(body: PerfilDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<boolean>>;\n public setPerfil(body: PerfilDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling setPerfil.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<boolean>('post',`${this.basePath}/admin/perfil`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Salvar usuário na aplicação\n * \n * @param body \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setUsuario(body: UsuarioDTO, observe?: 'body', reportProgress?: boolean): Observable<boolean>;\n public setUsuario(body: UsuarioDTO, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<boolean>>;\n public setUsuario(body: UsuarioDTO, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<boolean>>;\n public setUsuario(body: UsuarioDTO, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (body === null || body === undefined) {\n throw new Error('Required parameter body was null or undefined when calling setUsuario.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected != undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.request<boolean>('post',`${this.basePath}/admin/usuario`,\n {\n body: body,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upload de camada na aplicação\n * \n * @param filename \n * @param file \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public uploadCamadaFileForm(filename: string, file: Blob, observe?: 'body', reportProgress?: boolean): Observable<UploadCamadaFileInfoDTO>;\n public uploadCamadaFileForm(filename: string, file: Blob, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<UploadCamadaFileInfoDTO>>;\n public uploadCamadaFileForm(filename: string, file: Blob, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<UploadCamadaFileInfoDTO>>;\n public uploadCamadaFileForm(filename: string, file: Blob, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (filename === null || filename === undefined) {\n throw new Error('Required parameter filename was null or undefined when calling uploadCamadaFile.');\n }\n\n if (file === null || file === undefined) {\n throw new Error('Required parameter file was null or undefined when calling uploadCamadaFile.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): void; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n }\n\n if (filename !== undefined) {\n formParams = formParams.append('filename', <any>filename) as any || formParams;\n }\n if (file !== undefined) {\n formParams = formParams.append('file', <any>file) as any || formParams;\n }\n\n return this.httpClient.request<UploadCamadaFileInfoDTO>('post',`${this.basePath}/admin/camada/uploadfile`,\n {\n body: convertFormParamsToString ? formParams.toString() : formParams,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upload do estilo sld na aplicação\n * \n * @param filePath \n * @param layerName \n * @param file \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public uploadCamadaSLDFileForm(filePath: string, layerName: string, file: Blob, observe?: 'body', reportProgress?: boolean): Observable<UploadCamadaFileInfoDTO>;\n public uploadCamadaSLDFileForm(filePath: string, layerName: string, file: Blob, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<UploadCamadaFileInfoDTO>>;\n public uploadCamadaSLDFileForm(filePath: string, layerName: string, file: Blob, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<UploadCamadaFileInfoDTO>>;\n public uploadCamadaSLDFileForm(filePath: string, layerName: string, file: Blob, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n if (filePath === null || filePath === undefined) {\n throw new Error('Required parameter filePath was null or undefined when calling uploadCamadaSLDFile.');\n }\n\n if (layerName === null || layerName === undefined) {\n throw new Error('Required parameter layerName was null or undefined when calling uploadCamadaSLDFile.');\n }\n\n if (file === null || file === undefined) {\n throw new Error('Required parameter file was null or undefined when calling uploadCamadaSLDFile.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): void; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n }\n\n if (filePath !== undefined) {\n formParams = formParams.append('filePath', <any>filePath) as any || formParams;\n }\n if (layerName !== undefined) {\n formParams = formParams.append('layerName', <any>layerName) as any || formParams;\n }\n if (file !== undefined) {\n formParams = formParams.append('file', <any>file) as any || formParams;\n }\n\n return this.httpClient.request<UploadCamadaFileInfoDTO>('post',`${this.basePath}/admin/camada/uploadsldfile`,\n {\n body: convertFormParamsToString ? formParams.toString() : formParams,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Verifica se token de autenticação é valido.\n * \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public verificaToken(observe?: 'body', reportProgress?: boolean): Observable<boolean>;\n public verificaToken(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<boolean>>;\n public verificaToken(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<boolean>>;\n public verificaToken(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n let headers = this.defaultHeaders;\n\n // authentication (BearerAuth) required\n if (this.configuration.accessToken) {\n const accessToken = typeof this.configuration.accessToken === 'function'\n ? this.configuration.accessToken()\n : this.configuration.accessToken;\n headers = headers.set('Authorization', 'Bearer ' + accessToken);\n }\n // to determine the Accept header\n let httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n if (httpHeaderAcceptSelected != undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n ];\n\n return this.httpClient.request<boolean>('get',`${this.basePath}/verifica/token`,\n {\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from './default.service';\nimport { DefaultService } from './default.service';\nexport const APIS = [DefaultService];\n","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface CamadaCustomAttributeDTO { \n id?: number;\n attribute?: string;\n valor?: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface CamadaPropriedadeValorPadraoDTO { \n id?: number;\n geoserverId?: string;\n campo?: string;\n valor?: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface CamadaToolDTO { \n id?: number;\n toolId?: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface EditAttributesDTOAttributes { \n key?: string;\n value?: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ExportPDFDTO { \n pdfHeader?: string;\n pdfFooter?: string;\n pdfLegends?: string;\n pdfMap: Blob;\n pdfFormat: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface FeatureDTO { \n id?: string;\n type?: string;\n properties?: any;\n geometry?: any;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface FuncionalidadeDTOCustomAttributes { \n id?: number;\n key?: string;\n value?: string;\n descricao?: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface GeoTableDTOFields { \n name?: string;\n type?: string;\n approved?: boolean;\n message?: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface LocalizarUnidadeGeoDTOParametros { \n name?: string;\n value?: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PerfilCamadaDTO { \n id: number;\n camadaId?: number;\n geoserverWorkspace?: string;\n geoserverId?: string;\n editAttributes?: boolean;\n editGeometries?: boolean;\n editLabels?: boolean;\n editDefaultValues?: boolean;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ResultadoUnidadeGeoDTO { \n camadaId?: number;\n data?: any;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface UploadCamadaCheckCamadaNameStatus { \n status?: boolean;\n msg?: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface UploadCamadaFileDTO { \n filename?: string;\n file?: Blob;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface UploadCamadaFileInfoDTOFields { \n name?: string;\n type?: string;\n approved?: boolean;\n msg?: string;\n}","/**\n * GeoSanja API\n * API para Aplicação GeoSanja\n *\n * OpenAPI spec version: 1.2.8\n * Contact: claudio.bogossian@gmail.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface UploadCamadaSLDFileDTO { \n filePath?: string;\n layerName?: string;\n file?: Blob;\n}","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { DefaultService } from './api/default.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: [\n DefaultService ]\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.Configuration"],"mappings":";;;;;AAEA;;;;AAIE;AACI,MAAO,0BAA2B,SAAQ,oBAAoB,CAAA;AACvD,IAAA,SAAS,CAAC,CAAS,EAAA;AACxB,QAAA,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACtB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;;AAE1B,IAAA,WAAW,CAAC,CAAS,EAAA;AAC1B,QAAA,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;;AAEtC;;MCdY,SAAS,GAAG,IAAI,cAAc,CAAS,UAAU;AACjD,MAAA,kBAAkB,GAAG;AAC9B,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE;;;MCEA,aAAa,CAAA;AACtB,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,QAAQ;AACR,IAAA,eAAe;AAEf,IAAA,WAAA,CAAY,0BAAmD,EAAE,EAAA;AAC7D,QAAA,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC,OAAO;AAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,QAAQ;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,QAAQ;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC,WAAW;AACtD,QAAA,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,QAAQ;AAChD,QAAA,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,eAAe;;AAGlE;;;;;;AAMG;AACI,IAAA,uBAAuB,CAAE,YAAsB,EAAA;AAClD,QAAA,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,YAAA,OAAO,SAAS;;AAGpB,QAAA,IAAI,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,YAAA,OAAO,YAAY,CAAC,CAAC,CAAC;;AAE1B,QAAA,OAAO,IAAI;;AAGf;;;;;;AAMG;AACI,IAAA,kBAAkB,CAAC,OAAiB,EAAA;AACvC,QAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;AACrB,YAAA,OAAO,SAAS;;AAGpB,QAAA,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,YAAA,OAAO,OAAO,CAAC,CAAC,CAAC;;AAErB,QAAA,OAAO,IAAI;;AAGf;;;;;;;;;AASG;AACI,IAAA,UAAU,CAAC,IAAY,EAAA;QAC1B,MAAM,QAAQ,GAAW,IAAI,MAAM,CAAC,+DAA+D,EAAE,GAAG,CAAC;AACzG,QAAA,OAAO,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,6BAA6B,CAAC;;AAE3G;;AC9ED;;;;;;;;;;AAUG;MAkCU,cAAc,CAAA;AAMD,IAAA,UAAA;IAJZ,QAAQ,GAAG,GAAG;AACjB,IAAA,cAAc,GAAG,IAAI,WAAW,EAAE;AAClC,IAAA,aAAa,GAAG,IAAI,aAAa,EAAE;AAE1C,IAAA,WAAA,CAAsB,UAAsB,EAAgC,QAAgB,EAAc,aAA4B,EAAA;QAAhH,IAAU,CAAA,UAAA,GAAV,UAAU;QAC5B,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;QAE5B,IAAI,aAAa,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;;;AAI3E;;;AAGG;AACK,IAAA,cAAc,CAAC,QAAkB,EAAA;QACrC,MAAM,IAAI,GAAG,qBAAqB;AAClC,QAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC5B,YAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AAClB,gBAAA,OAAO,IAAI;;;AAGnB,QAAA,OAAO,KAAK;;AAcT,IAAA,UAAU,CAAC,KAAa,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAEnF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;;AAG9F,QAAA,IAAI,eAAe,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;QACjF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACvC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,EAAO,KAAK,CAAC;;AAG9D,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAkB,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,aAAa,EAC/E;AACI,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,qBAAqB,CAAC,IAAY,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAE7F,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC;;AAGxG,QAAA,IAAI,eAAe,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;QACjF,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;YACrC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,EAAO,IAAI,CAAC;;AAG5D,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAA2C,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,6BAA6B,EACxH;AACI,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,YAAY,CAAC,IAAe,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAEvF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC;;AAG/F,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,QAAQ,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,eAAe,EAC5E;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,cAAc,CAAC,IAAoB,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAE9F,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC;;AAGjG,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,QAAQ,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,oBAAoB,EACjF;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,YAAY,CAAC,IAAe,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAEvF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC;;AAG/F,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,QAAQ,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,eAAe,EAC5E;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,aAAa,CAAC,IAAgB,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAEzF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC;;AAGhG,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,QAAQ,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,gBAAgB,EAC7E;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;IAcE,cAAc,CAAC,OAAe,EAAE,MAAc,EAAE,OAAe,GAAA,MAAM,EAAE,cAAA,GAA0B,KAAK,EAAA;QAEzG,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC;;QAGpG,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC;;AAGnG,QAAA,IAAI,eAAe,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;QACjF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;YAC3C,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,EAAO,OAAO,CAAC;;QAElE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE;YACzC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAO,MAAM,CAAC;;AAGhE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,kBAAkB,EACnE;AACI,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,cAAc,CAAC,IAAwB,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAGlG,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAS,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,kBAAkB,EAC5E;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,wBAAwB,CAAC,IAA2B,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAG/G,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAuB,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,0BAA0B,EAClG;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAiBE,IAAA,aAAa,CAAC,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,MAAa,EAAE,SAAkB,EAAE,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAOvK,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAEpD,QAAA,IAAI,UAAwD;QAC5D,IAAI,OAAO,GAAG,KAAK;QACnB,IAAI,yBAAyB,GAAG,KAAK;;;QAGrC,OAAO,GAAG,cAAc;QACxB,IAAI,OAAO,EAAE;AACT,YAAA,UAAU,GAAG,IAAI,QAAQ,EAAE;;aACxB;AACH,YAAA,UAAU,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;;AAG5E,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAO,SAAS,CAAQ,IAAI,UAAU;;AAEpF,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAO,SAAS,CAAQ,IAAI,UAAU;;AAEpF,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;YAC1B,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,EAAO,UAAU,CAAQ,IAAI,UAAU;;AAEtF,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAO,MAAM,CAAQ,IAAI,UAAU;;AAE9E,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAO,SAAS,CAAQ,IAAI,UAAU;;AAGpF,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,aAAa,EAC/D;AACI,YAAA,IAAI,EAAE,yBAAyB,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,UAAU;AACpE,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAYE,IAAA,cAAc,CAAC,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAExE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAiB,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,eAAe,EAChF;AACI,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAYE,IAAA,UAAU,CAAC,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAEpE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAwB,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,UAAU,EAClF;AACI,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAYE,IAAA,eAAe,CAAC,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAEzE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAmB,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,gBAAgB,EACnF;AACI,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAYE,IAAA,SAAS,CAAC,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAEnE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAY,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,SAAS,EACrE;AACI,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;IAcE,eAAe,CAAC,GAAY,EAAE,IAAa,EAAE,OAAe,GAAA,MAAM,EAAE,cAAA,GAA0B,KAAK,EAAA;AAItG,QAAA,IAAI,eAAe,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;QACjF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,EAAO,GAAG,CAAC;;QAE1D,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;YACrC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,EAAO,IAAI,CAAC;;AAG5D,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAoB,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,sBAAsB,EAC1F;AACI,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;IAsBE,cAAc,CAAC,GAAW,EAAE,OAAe,EAAE,IAAY,EAAE,MAAc,EAAE,KAAa,EAAE,MAAc,EAAE,WAAmB,EAAE,UAAkB,EAAE,CAAS,EAAE,CAAS,EAAE,OAAe,GAAA,MAAM,EAAE,cAAA,GAA0B,KAAK,EAAA;QAElO,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC;;QAGhG,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC;;QAGpG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC;;QAGjG,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC;;QAGnG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC;;QAGlG,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC;;QAGnG,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;AACnD,YAAA,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC;;QAGxG,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE;AACjD,YAAA,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC;;QAGvG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;;QAG9F,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;;AAG9F,QAAA,IAAI,eAAe,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;QACjF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,EAAO,GAAG,CAAC;;QAE1D,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;YAC3C,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,EAAO,OAAO,CAAC;;QAElE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;YACrC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,EAAO,IAAI,CAAC;;QAE5D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE;YACzC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAO,MAAM,CAAC;;QAEhE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACvC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,EAAO,KAAK,CAAC;;QAE9D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE;YACzC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAO,MAAM,CAAC;;QAEhE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE;YACnD,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,cAAc,EAAO,WAAW,CAAC;;QAE3E,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE;YACjD,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,EAAO,UAAU,CAAC;;QAEzE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE;YAC/B,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAO,CAAC,CAAC;;QAEtD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE;YAC/B,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAO,CAAC,CAAC;;AAGtD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAS,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,cAAc,EACvE;AACI,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAYE,IAAA,uBAAuB,CAAC,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAEjF,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAA2B,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,wBAAwB,EACnG;AACI,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,OAAO,CAAC,QAAgB,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAEnF,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC7C,YAAA,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;;AAG9F,QAAA,IAAI,eAAe,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;QACjF,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE;YAC7C,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,EAAO,QAAQ,CAAC;;AAGpE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,OAAO,EACxD;AACI,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;IAcE,eAAe,CAAC,EAAU,EAAE,OAAe,EAAE,OAAe,GAAA,MAAM,EAAE,cAAA,GAA0B,KAAK,EAAA;QAEtG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE;AACjC,YAAA,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC;;QAGhG,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC;;AAGrG,QAAA,IAAI,eAAe,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;QACjF,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,EAAE;YACjC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAO,EAAE,CAAC;;QAExD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;YAC3C,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,EAAO,OAAO,CAAC;;AAGlE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAS,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,gBAAgB,EACzE;AACI,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAYE,IAAA,SAAS,CAAC,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAEnE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAmB,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,eAAe,EAClF;AACI,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,qBAAqB,CAAC,EAAU,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAE3F,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE;AACjC,YAAA,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC;;AAGtG,QAAA,IAAI,eAAe,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;QACjF,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,EAAE;YACjC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAO,EAAE,CAAC;;AAGxD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAA8B,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,sBAAsB,EACpG;AACI,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,0BAA0B,CAAC,EAAU,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAEhG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE;AACjC,YAAA,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC;;AAG3G,QAAA,IAAI,eAAe,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;QACjF,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,EAAE;YACjC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAO,EAAE,CAAC;;AAGxD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAoC,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,4BAA4B,EAChH;AACI,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAYE,IAAA,WAAW,CAAC,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAErE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAoB,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,iBAAiB,EACrF;AACI,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,mBAAmB,CAAC,IAA4B,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAE3G,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC;;AAGtG,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAgC,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,YAAY,EAC7F;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAYE,IAAA,KAAK,CAAC,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAE/D,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,QAAQ,EACzD;AACI,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,oBAAoB,CAAC,IAA6B,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAE7G,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC;;AAGvG,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAM,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,0BAA0B,EACjF;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,SAAS,CAAC,IAAmB,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAExF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC;;AAG5F,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,eAAe,EAC1E;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,cAAc,CAAC,IAAoB,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAE9F,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC;;AAGjG,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,oBAAoB,EAC/E;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,SAAS,CAAC,IAAe,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAEpF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC;;AAG5F,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,eAAe,EAC1E;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAaE,IAAA,UAAU,CAAC,IAAgB,EAAE,UAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;QAEtF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC;;AAG7F,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QACD,MAAM,uBAAuB,GAAuB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACxG,QAAA,IAAI,uBAAuB,IAAI,SAAS,EAAE;YACtC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAuB,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,gBAAgB,EAC3E;AACI,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;IAcE,oBAAoB,CAAC,QAAgB,EAAE,IAAU,EAAE,OAAe,GAAA,MAAM,EAAE,cAAA,GAA0B,KAAK,EAAA;QAE5G,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC7C,YAAA,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC;;QAGvG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC;;AAGnG,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAEpD,QAAA,IAAI,UAAwD;QAC5D,IAAI,OAAO,GAAG,KAAK;QACnB,IAAI,yBAAyB,GAAG,KAAK;;;QAGrC,OAAO,GAAG,cAAc;QACxB,IAAI,OAAO,EAAE;AACT,YAAA,UAAU,GAAG,IAAI,QAAQ,EAAE;;aACxB;AACH,YAAA,UAAU,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;;AAG5E,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,EAAO,QAAQ,CAAQ,IAAI,UAAU;;AAElF,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAO,IAAI,CAAQ,IAAI,UAAU;;AAG1E,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAA0B,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,0BAA0B,EACrG;AACI,YAAA,IAAI,EAAE,yBAAyB,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,UAAU;AACpE,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;IAeE,uBAAuB,CAAC,QAAgB,EAAE,SAAiB,EAAE,IAAU,EAAE,OAAe,GAAA,MAAM,EAAE,cAAA,GAA0B,KAAK,EAAA;QAElI,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC7C,YAAA,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC;;QAG1G,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE;AAC/C,YAAA,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC;;QAG3G,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,YAAA,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC;;AAGtG,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;AAI7D,QAAA,MAAM,QAAQ,GAAa;YACvB;SACH;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAEpD,QAAA,IAAI,UAAwD;QAC5D,IAAI,OAAO,GAAG,KAAK;QACnB,IAAI,yBAAyB,GAAG,KAAK;;;QAGrC,OAAO,GAAG,cAAc;QACxB,IAAI,OAAO,EAAE;AACT,YAAA,UAAU,GAAG,IAAI,QAAQ,EAAE;;aACxB;AACH,YAAA,UAAU,GAAG,IAAI,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,0BAA0B,EAAE,EAAC,CAAC;;AAG5E,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,EAAO,QAAQ,CAAQ,IAAI,UAAU;;AAElF,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAO,SAAS,CAAQ,IAAI,UAAU;;AAEpF,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAO,IAAI,CAAQ,IAAI,UAAU;;AAG1E,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAA0B,MAAM,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,6BAA6B,EACxG;AACI,YAAA,IAAI,EAAE,yBAAyB,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,UAAU;AACpE,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AAYE,IAAA,aAAa,CAAC,OAAA,GAAe,MAAM,EAAE,iBAA0B,KAAK,EAAA;AAEvE,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc;;AAGjC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK;AAC1D,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;YACpC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC;;;AAGnE,QAAA,IAAI,iBAAiB,GAAa;YAC9B;SACH;QACD,MAAM,wBAAwB,GAAuB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC7G,QAAA,IAAI,wBAAwB,IAAI,SAAS,EAAE;YACvC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;;QAI7D,MAAM,QAAQ,GAAa,EAC1B;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAU,KAAK,EAAC,CAAG,EAAA,IAAI,CAAC,QAAQ,iBAAiB,EAC3E;AACI,YAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,CACJ;;AA50DI,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,4CAM0C,SAAS,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AANjE,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAOkD;;0BAAW,MAAM;2BAAC,SAAS;;0BAAqB;;;AChDtF,MAAA,IAAI,GAAG,CAAC,cAAc;;ACFnC;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;ACVH;;;;;;;;;;AAUG;;MCIU,SAAS,CAAA;IACX,OAAO,OAAO,CAAC,oBAAyC,EAAA;QAC3D,OAAO;AACH,YAAA,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,CAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE;SAC5E;;IAGL,WAAqC,CAAA,YAAuB,EACnC,IAAgB,EAAA;QACrC,IAAI,YAAY,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC;;QAEvF,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,+DAA+D;AAC/E,gBAAA,0DAA0D,CAAC;;;wGAf1D,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAT,SAAS,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,EAHT,SAAA,EAAA;YACT;AAAgB,SAAA,EAAA,CAAA;;4FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAO,EAAE;AAChB,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAO,EAAE;AAChB,oBAAA,SAAS,EAAE;wBACT;AAAgB;AACnB,iBAAA;;0BASiB;;0BAAY;;0BACZ;;;ACvBlB;;AAEG;;;;"}