@ember-data/legacy-compat 4.13.0-alpha.4 → 4.13.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +19 -7
- package/README.md +2 -2
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/logos/NCC-1701-a-blue.svg +4 -0
- package/logos/NCC-1701-a-gold.svg +4 -0
- package/logos/NCC-1701-a-gold_100.svg +1 -0
- package/logos/NCC-1701-a-gold_base-64.txt +1 -0
- package/logos/NCC-1701-a.svg +4 -0
- package/logos/README.md +4 -0
- package/logos/docs-badge.svg +2 -0
- package/logos/github-header.svg +444 -0
- package/logos/social1.png +0 -0
- package/logos/social2.png +0 -0
- package/logos/warp-drive-logo-dark.svg +4 -0
- package/logos/warp-drive-logo-gold.svg +4 -0
- package/package.json +26 -54
- package/unstable-preview-types/index.d.ts +12 -12
- /package/{ember-data-logo-dark.svg → logos/ember-data-logo-dark.svg} +0 -0
- /package/{ember-data-logo-light.svg → logos/ember-data-logo-light.svg} +0 -0
package/LICENSE.md
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Copyright (c) 2017-2025 Ember.js and contributors
|
|
4
|
+
Copyright (c) 2011-2017 Tilde, Inc. and contributors
|
|
5
|
+
Copyright (c) 2011 LivingSocial Inc.
|
|
6
6
|
|
|
7
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
8
13
|
|
|
9
|
-
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
10
16
|
|
|
11
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<img
|
|
3
3
|
class="project-logo"
|
|
4
|
-
src="./ember-data-logo-dark.svg#gh-dark-mode-only"
|
|
4
|
+
src="./logos/ember-data-logo-dark.svg#gh-dark-mode-only"
|
|
5
5
|
alt="EmberData LegacyCompat"
|
|
6
6
|
width="240px"
|
|
7
7
|
title="EmberData LegacyCompat"
|
|
8
8
|
/>
|
|
9
9
|
<img
|
|
10
10
|
class="project-logo"
|
|
11
|
-
src="./ember-data-logo-light.svg#gh-light-mode-only"
|
|
11
|
+
src="./logos/ember-data-logo-light.svg#gh-light-mode-only"
|
|
12
12
|
alt="EmberData LegacyCompat"
|
|
13
13
|
width="240px"
|
|
14
14
|
title="EmberData LegacyCompat"
|
package/dist/index.js
CHANGED
|
@@ -479,14 +479,16 @@ function saveRecord(context) {
|
|
|
479
479
|
}, options);
|
|
480
480
|
const fetchManagerPromise = store._fetchManager.scheduleSave(identifier, saveOptions);
|
|
481
481
|
return fetchManagerPromise.then(payload => {
|
|
482
|
-
if (macroCondition(getGlobalConfig().WarpDrive.
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
482
|
+
if (macroCondition(getGlobalConfig().WarpDrive.activeLogging.LOG_PAYLOADS)) {
|
|
483
|
+
if (getGlobalConfig().WarpDrive.debug.LOG_PAYLOADS || globalThis.getWarpDriveRuntimeConfig().debug.LOG_PAYLOADS) {
|
|
484
|
+
try {
|
|
485
|
+
const payloadCopy = payload ? JSON.parse(JSON.stringify(payload)) : payload;
|
|
486
|
+
// eslint-disable-next-line no-console
|
|
487
|
+
console.log(`EmberData | Payload - ${operation}`, payloadCopy);
|
|
488
|
+
} catch {
|
|
489
|
+
// eslint-disable-next-line no-console
|
|
490
|
+
console.log(`EmberData | Payload - ${operation}`, payload);
|
|
491
|
+
}
|
|
490
492
|
}
|
|
491
493
|
}
|
|
492
494
|
let result;
|
|
@@ -686,9 +688,11 @@ function _findAll(adapter, store, type, snapshotArray, request, isAsyncFlush) {
|
|
|
686
688
|
const payload = normalizeResponseHelper(serializer, store, schema, adapterPayload, null, 'findAll');
|
|
687
689
|
store._push(payload, isAsyncFlush);
|
|
688
690
|
snapshotArray._recordArray.isUpdating = false;
|
|
689
|
-
if (macroCondition(getGlobalConfig().WarpDrive.
|
|
690
|
-
|
|
691
|
-
|
|
691
|
+
if (macroCondition(getGlobalConfig().WarpDrive.activeLogging.LOG_PAYLOADS)) {
|
|
692
|
+
if (getGlobalConfig().WarpDrive.debug.LOG_PAYLOADS || globalThis.getWarpDriveRuntimeConfig().debug.LOG_PAYLOADS) {
|
|
693
|
+
// eslint-disable-next-line no-console
|
|
694
|
+
console.log(`request: findAll<${type}> background reload complete`);
|
|
695
|
+
}
|
|
692
696
|
}
|
|
693
697
|
return snapshotArray._recordArray;
|
|
694
698
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/legacy-network-handler/legacy-data-fetch.ts","../src/legacy-network-handler/legacy-network-handler.ts","../src/index.ts"],"sourcesContent":["import { deprecate } from '@ember/debug';\n\nimport type Store from '@ember-data/store';\nimport type { BaseFinderOptions, ModelSchema } from '@ember-data/store/types';\nimport { DEPRECATE_RELATIONSHIPS_WITHOUT_INVERSE, DEPRECATE_RSVP_PROMISE } from '@warp-drive/build-config/deprecations';\nimport { DEBUG } from '@warp-drive/build-config/env';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { StableRecordIdentifier } from '@warp-drive/core-types';\nimport type { StableExistingRecordIdentifier } from '@warp-drive/core-types/identifier';\nimport type { LegacyRelationshipSchema as RelationshipSchema } from '@warp-drive/core-types/schema/fields';\nimport type { ExistingResourceObject, JsonApiDocument } from '@warp-drive/core-types/spec/json-api-raw';\n\nimport { upgradeStore } from '../-private';\nimport { iterateData, payloadIsNotBlank } from './legacy-data-utils';\nimport type { MinimumAdapterInterface } from './minimum-adapter-interface';\nimport { normalizeResponseHelper } from './serializer-response';\nimport { _bind, _guard, _objectIsAlive, guardDestroyedStore } from './utils';\n\nexport function _findHasMany(\n adapter: MinimumAdapterInterface,\n store: Store,\n identifier: StableRecordIdentifier,\n link: string | null | { href: string },\n relationship: RelationshipSchema,\n options: BaseFinderOptions\n): Promise<StableExistingRecordIdentifier[]> {\n upgradeStore(store);\n let promise: Promise<unknown> = Promise.resolve().then(() => {\n const snapshot = store._fetchManager.createSnapshot(identifier, options);\n const useLink = !link || typeof link === 'string';\n const relatedLink = useLink ? link : link.href;\n assert(\n `Attempted to load a hasMany relationship from a specified 'link' in the original payload, but the specified link is empty. You must provide a valid 'link' in the original payload to use 'findHasMany'`,\n relatedLink\n );\n assert(\n `Expected the adapter to implement 'findHasMany' but it does not`,\n typeof adapter.findHasMany === 'function'\n );\n return adapter.findHasMany(store, snapshot, relatedLink, relationship);\n });\n\n promise = guardDestroyedStore(promise, store);\n promise = promise.then((adapterPayload) => {\n const record = store._instanceCache.getRecord(identifier);\n\n if (!_objectIsAlive(record)) {\n if (DEPRECATE_RSVP_PROMISE) {\n deprecate(\n `A Promise for fetching ${relationship.type} did not resolve by the time your model was destroyed. This will error in a future release.`,\n false,\n {\n id: 'ember-data:rsvp-unresolved-async',\n until: '5.0',\n for: '@ember-data/store',\n since: {\n available: '4.5',\n enabled: '4.5',\n },\n }\n );\n }\n }\n\n assert(\n `You made a 'findHasMany' request for a ${identifier.type}'s '${\n relationship.name\n }' relationship, using link '${JSON.stringify(link)}' , but the adapter's response did not have any data`,\n payloadIsNotBlank(adapterPayload)\n );\n const modelClass = store.modelFor(relationship.type);\n\n const serializer = store.serializerFor(relationship.type);\n let payload = normalizeResponseHelper(serializer, store, modelClass, adapterPayload, null, 'findHasMany');\n\n assert(\n `fetched the hasMany relationship '${relationship.name}' for ${identifier.type}:${\n identifier.id\n } with link '${JSON.stringify(\n link\n )}', but no data member is present in the response. If no data exists, the response should set { data: [] }`,\n 'data' in payload && Array.isArray(payload.data)\n );\n\n payload = syncRelationshipDataFromLink(store, payload, identifier as ResourceIdentity, relationship);\n return store._push(payload, true);\n }, null);\n\n if (DEPRECATE_RSVP_PROMISE) {\n const record = store._instanceCache.getRecord(identifier);\n\n promise = _guard(promise, _bind(_objectIsAlive, record));\n }\n\n return promise as Promise<StableExistingRecordIdentifier[]>;\n}\n\nexport function _findBelongsTo(\n store: Store,\n identifier: StableRecordIdentifier,\n link: string | null | { href: string },\n relationship: RelationshipSchema,\n options: BaseFinderOptions\n) {\n upgradeStore(store);\n let promise = Promise.resolve().then(() => {\n const adapter = store.adapterFor(identifier.type);\n assert(`You tried to load a belongsTo relationship but you have no adapter (for ${identifier.type})`, adapter);\n assert(\n `You tried to load a belongsTo relationship from a specified 'link' in the original payload but your adapter does not implement 'findBelongsTo'`,\n typeof adapter.findBelongsTo === 'function'\n );\n const snapshot = store._fetchManager.createSnapshot(identifier, options);\n const useLink = !link || typeof link === 'string';\n const relatedLink = useLink ? link : link.href;\n assert(\n `Attempted to load a belongsTo relationship from a specified 'link' in the original payload, but the specified link is empty. You must provide a valid 'link' in the original payload to use 'findBelongsTo'`,\n relatedLink\n );\n return adapter.findBelongsTo(store, snapshot, relatedLink, relationship);\n });\n\n if (DEPRECATE_RSVP_PROMISE) {\n const record = store._instanceCache.getRecord(identifier);\n promise = guardDestroyedStore(promise, store);\n promise = _guard(promise, _bind(_objectIsAlive, record));\n }\n\n return promise.then((adapterPayload) => {\n if (DEPRECATE_RSVP_PROMISE) {\n const record = store._instanceCache.getRecord(identifier);\n\n if (!_objectIsAlive(record)) {\n deprecate(\n `A Promise for fetching ${relationship.type} did not resolve by the time your model was destroyed. This will error in a future release.`,\n false,\n {\n id: 'ember-data:rsvp-unresolved-async',\n until: '5.0',\n for: '@ember-data/store',\n since: {\n available: '4.5',\n enabled: '4.5',\n },\n }\n );\n }\n }\n\n const modelClass = store.modelFor(relationship.type);\n const serializer = store.serializerFor(relationship.type);\n let payload = normalizeResponseHelper(serializer, store, modelClass, adapterPayload, null, 'findBelongsTo');\n\n assert(\n `fetched the belongsTo relationship '${relationship.name}' for ${identifier.type}:${\n identifier.id\n } with link '${JSON.stringify(\n link\n )}', but no data member is present in the response. If no data exists, the response should set { data: null }`,\n 'data' in payload && (payload.data === null || (typeof payload.data === 'object' && !Array.isArray(payload.data)))\n );\n\n if (!payload.data && !payload.links && !payload.meta) {\n return null;\n }\n\n payload = syncRelationshipDataFromLink(store, payload, identifier as ResourceIdentity, relationship);\n\n return store._push(payload, true);\n }, null);\n}\n\n// sync\n// iterate over records in payload.data\n// for each record\n// assert that record.relationships[inverse] is either undefined (so we can fix it)\n// or provide a data: {id, type} that matches the record that requested it\n// return the relationship data for the parent\nfunction syncRelationshipDataFromLink(\n store: Store,\n payload: JsonApiDocument,\n parentIdentifier: ResourceIdentity,\n relationship: RelationshipSchema\n) {\n // ensure the right hand side (incoming payload) points to the parent record that\n // requested this relationship\n const relationshipData = payload.data\n ? iterateData(payload.data, (data, index) => {\n const { id, type } = data;\n ensureRelationshipIsSetToParent(data, parentIdentifier, store, relationship, index);\n return { id, type };\n })\n : null;\n\n const relatedDataHash = {} as JsonApiDocument;\n\n if ('meta' in payload) {\n relatedDataHash.meta = payload.meta;\n }\n if ('links' in payload) {\n relatedDataHash.links = payload.links;\n }\n if ('data' in payload) {\n relatedDataHash.data = relationshipData;\n }\n\n // now, push the left hand side (the parent record) to ensure things are in sync, since\n // the payload will be pushed with store._push\n const parentPayload = {\n id: parentIdentifier.id,\n type: parentIdentifier.type,\n relationships: {\n [relationship.name]: relatedDataHash,\n },\n };\n\n if (!Array.isArray(payload.included)) {\n payload.included = [];\n }\n payload.included.push(parentPayload);\n\n return payload;\n}\n\ntype ResourceIdentity = { id: string; type: string };\ntype RelationshipData = ResourceIdentity | ResourceIdentity[] | null;\n\nfunction ensureRelationshipIsSetToParent(\n payload: ExistingResourceObject,\n parentIdentifier: ResourceIdentity,\n store: Store,\n parentRelationship: RelationshipSchema,\n index: number\n) {\n const { id, type } = payload;\n\n if (!payload.relationships) {\n payload.relationships = {};\n }\n const { relationships } = payload;\n\n const inverse = getInverse(store, parentIdentifier, parentRelationship, type);\n if (inverse) {\n const { inverseKey, kind } = inverse;\n\n const relationshipData = relationships[inverseKey]?.data as RelationshipData | undefined;\n\n if (DEBUG) {\n if (\n typeof relationshipData !== 'undefined' &&\n !relationshipDataPointsToParent(relationshipData, parentIdentifier)\n ) {\n const inspect = function inspect(thing: unknown) {\n return `'${JSON.stringify(thing)}'`;\n };\n const quotedType = inspect(type);\n const quotedInverse = inspect(inverseKey);\n const expected = inspect({\n id: parentIdentifier.id,\n type: parentIdentifier.type,\n });\n const expectedModel = `${parentIdentifier.type}:${parentIdentifier.id}`;\n const got = inspect(relationshipData);\n const prefix = typeof index === 'number' ? `data[${index}]` : `data`;\n const path = `${prefix}.relationships.${inverseKey}.data`;\n const data = Array.isArray(relationshipData) ? relationshipData[0] : relationshipData;\n const other = data ? `<${data.type}:${data.id}>` : null;\n const relationshipFetched = `${expectedModel}.${parentRelationship.kind}(\"${parentRelationship.name}\")`;\n const includedRecord = `<${type}:${id}>`;\n const message = [\n `Encountered mismatched relationship: Ember Data expected ${path} in the payload from ${relationshipFetched} to include ${expected} but got ${got} instead.\\n`,\n `The ${includedRecord} record loaded at ${prefix} in the payload specified ${other} as its ${quotedInverse}, but should have specified ${expectedModel} (the record the relationship is being loaded from) as its ${quotedInverse} instead.`,\n `This could mean that the response for ${relationshipFetched} may have accidentally returned ${quotedType} records that aren't related to ${expectedModel} and could be related to a different ${parentIdentifier.type} record instead.`,\n `Ember Data has corrected the ${includedRecord} record's ${quotedInverse} relationship to ${expectedModel} so that ${relationshipFetched} will include ${includedRecord}.`,\n `Please update the response from the server or change your serializer to either ensure that the response for only includes ${quotedType} records that specify ${expectedModel} as their ${quotedInverse}, or omit the ${quotedInverse} relationship from the response.`,\n ].join('\\n');\n\n assert(message);\n }\n }\n\n if (kind !== 'hasMany' || typeof relationshipData !== 'undefined') {\n relationships[inverseKey] = relationships[inverseKey] || {};\n relationships[inverseKey].data = fixRelationshipData(relationshipData ?? null, kind, parentIdentifier);\n }\n }\n}\n\ntype LegacyRelationshipDefinition = { _inverseKey: (store: Store, modelClass: ModelSchema) => string | null };\n\nfunction metaIsRelationshipDefinition(meta: unknown): meta is LegacyRelationshipDefinition {\n return typeof meta === 'object' && !!meta && '_inverseKey' in meta && typeof meta._inverseKey === 'function';\n}\n\nfunction inverseForRelationship(store: Store, identifier: { type: string; id?: string }, key: string) {\n const definition = store.schema.fields(identifier).get(key);\n if (!definition) {\n return null;\n }\n\n if (DEPRECATE_RELATIONSHIPS_WITHOUT_INVERSE) {\n if (metaIsRelationshipDefinition(definition)) {\n const modelClass = store.modelFor(identifier.type);\n return definition._inverseKey(store, modelClass);\n }\n }\n assert(\n `Expected the field definition to be a relationship`,\n definition.kind === 'hasMany' || definition.kind === 'belongsTo'\n );\n assert(\n `Expected the relationship defintion to specify the inverse type or null.`,\n definition.options?.inverse === null ||\n (typeof definition.options?.inverse === 'string' && definition.options.inverse.length > 0)\n );\n return definition.options.inverse;\n}\n\nfunction getInverse(\n store: Store,\n parentIdentifier: ResourceIdentity,\n parentRelationship: RelationshipSchema,\n type: string\n) {\n const { name: lhs_relationshipName } = parentRelationship;\n const { type: parentType } = parentIdentifier;\n const inverseKey = inverseForRelationship(store, { type: parentType }, lhs_relationshipName);\n\n if (inverseKey) {\n const definition = store.schema.fields({ type }).get(inverseKey);\n assert(\n `Expected the field definition to be a relationship`,\n definition && (definition.kind === 'hasMany' || definition.kind === 'belongsTo')\n );\n return {\n inverseKey,\n kind: definition.kind,\n };\n }\n}\n\nfunction relationshipDataPointsToParent(relationshipData: RelationshipData, identifier: ResourceIdentity): boolean {\n if (relationshipData === null) {\n return false;\n }\n\n if (Array.isArray(relationshipData)) {\n if (relationshipData.length === 0) {\n return false;\n }\n for (let i = 0; i < relationshipData.length; i++) {\n const entry = relationshipData[i];\n if (validateRelationshipEntry(entry, identifier)) {\n return true;\n }\n }\n } else {\n return validateRelationshipEntry(relationshipData, identifier);\n }\n\n return false;\n}\n\nfunction fixRelationshipData(\n relationshipData: RelationshipData,\n relationshipKind: 'hasMany' | 'belongsTo',\n { id, type }: ResourceIdentity\n) {\n const parentRelationshipData = {\n id,\n type,\n };\n\n let payload: { type: string; id: string } | { type: string; id: string }[] | null = null;\n\n if (relationshipKind === 'hasMany') {\n const relData = (relationshipData as { type: string; id: string }[]) || [];\n if (relationshipData) {\n assert('expected the relationship data to be an array', Array.isArray(relationshipData));\n // these arrays could be massive so this is better than filter\n // Note: this is potentially problematic if type/id are not in the\n // same state of normalization.\n const found = relationshipData.find((v) => {\n return v.type === parentRelationshipData.type && v.id === parentRelationshipData.id;\n });\n if (!found) {\n relData.push(parentRelationshipData);\n }\n } else {\n relData.push(parentRelationshipData);\n }\n payload = relData;\n } else {\n const relData = (relationshipData as { type: string; id: string }) || {};\n Object.assign(relData, parentRelationshipData);\n payload = relData;\n }\n\n return payload;\n}\n\nfunction validateRelationshipEntry({ id }: ResourceIdentity, { id: parentModelID }: ResourceIdentity): boolean {\n return !!id && id.toString() === parentModelID;\n}\n","import { importSync } from '@embroider/macros';\n\nimport type { Future, Handler, NextFn, StructuredDataDocument } from '@ember-data/request';\nimport type Store from '@ember-data/store';\nimport type { StoreRequestContext } from '@ember-data/store';\nimport type { CollectionRecordArray } from '@ember-data/store/-private';\nimport type { ModelSchema } from '@ember-data/store/types';\nimport { LOG_PAYLOADS } from '@warp-drive/build-config/debugging';\nimport { DEBUG, TESTING } from '@warp-drive/build-config/env';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { StableExistingRecordIdentifier, StableRecordIdentifier } from '@warp-drive/core-types/identifier';\nimport type { ImmutableRequestInfo } from '@warp-drive/core-types/request';\nimport type { LegacyRelationshipSchema as RelationshipSchema } from '@warp-drive/core-types/schema/fields';\nimport type { SingleResourceDataDocument } from '@warp-drive/core-types/spec/document';\nimport type { ApiError } from '@warp-drive/core-types/spec/error';\nimport type {\n CollectionResourceDocument,\n JsonApiDocument,\n Links,\n PaginationLinks,\n SingleResourceDocument,\n} from '@warp-drive/core-types/spec/json-api-raw';\n\nimport { upgradeStore } from '../-private';\nimport { FetchManager, SaveOp } from './fetch-manager';\nimport { assertIdentifierHasId } from './identifier-has-id';\nimport { _findBelongsTo, _findHasMany } from './legacy-data-fetch';\nimport { payloadIsNotBlank } from './legacy-data-utils';\nimport type { MinimumAdapterInterface } from './minimum-adapter-interface';\nimport type { MinimumSerializerInterface } from './minimum-serializer-interface';\nimport { normalizeResponseHelper } from './serializer-response';\nimport type { Snapshot } from './snapshot';\nimport { SnapshotRecordArray } from './snapshot-record-array';\n\ntype AdapterErrors = Error & { errors?: unknown[]; isAdapterError?: true; code?: string };\ntype SerializerWithParseErrors = MinimumSerializerInterface & {\n extractErrors?(store: Store, modelClass: ModelSchema, error: AdapterErrors, recordId: string | null): unknown;\n};\n\nconst PotentialLegacyOperations = new Set([\n 'findRecord',\n 'findAll',\n 'query',\n 'queryRecord',\n 'findBelongsTo',\n 'findHasMany',\n 'updateRecord',\n 'createRecord',\n 'deleteRecord',\n]);\n\nexport const LegacyNetworkHandler: Handler = {\n request<T>(context: StoreRequestContext, next: NextFn<T>): Future<T> | Promise<StructuredDataDocument<T>> {\n // if we are not a legacy request, move on\n if (context.request.url || !context.request.op || !PotentialLegacyOperations.has(context.request.op)) {\n return next(context.request);\n }\n\n const { store } = context.request;\n upgradeStore(store);\n if (!store._fetchManager) {\n store._fetchManager = new FetchManager(store);\n }\n\n switch (context.request.op) {\n case 'findRecord':\n return findRecord(context);\n case 'findAll':\n return findAll(context);\n case 'query':\n return query(context);\n case 'queryRecord':\n return queryRecord(context);\n case 'findBelongsTo':\n return findBelongsTo(context);\n case 'findHasMany':\n return findHasMany(context);\n case 'updateRecord':\n return saveRecord(context);\n case 'createRecord':\n return saveRecord(context);\n case 'deleteRecord':\n return saveRecord(context);\n default:\n return next(context.request);\n }\n },\n};\n\nfunction findBelongsTo<T>(context: StoreRequestContext): Promise<T> {\n const { store, data, records: identifiers } = context.request;\n const { options, record, links, useLink, field } = data as {\n record: StableRecordIdentifier;\n options: Record<string, unknown>;\n links?: Links;\n useLink: boolean;\n field: RelationshipSchema;\n };\n const identifier = identifiers?.[0];\n upgradeStore(store);\n\n // short circuit if we are already loading\n const pendingRequest =\n identifier && store._fetchManager.getPendingFetch(identifier as StableExistingRecordIdentifier, options);\n if (pendingRequest) {\n return pendingRequest as Promise<T>;\n }\n\n if (useLink) {\n assert(`Expected a related link when calling store.findBelongsTo, found ${String(links)}`, links && links.related);\n return _findBelongsTo(store, record, links.related, field, options) as Promise<T>;\n }\n\n assert(`Expected an identifier`, Array.isArray(identifiers) && identifiers.length === 1);\n\n const manager = store._fetchManager;\n assertIdentifierHasId(identifier);\n\n return options.reload\n ? (manager.scheduleFetch(identifier, options, context.request) as Promise<T>)\n : (manager.fetchDataIfNeededForIdentifier(identifier, options, context.request) as Promise<T>);\n}\n\nfunction findHasMany<T>(context: StoreRequestContext): Promise<T> {\n const { store, data, records: identifiers } = context.request;\n const { options, record, links, useLink, field } = data as {\n record: StableRecordIdentifier;\n options: Record<string, unknown>;\n links?: PaginationLinks | Links;\n useLink: boolean;\n field: RelationshipSchema;\n };\n upgradeStore(store);\n\n // link case\n if (useLink) {\n const adapter = store.adapterFor(record.type);\n /*\n If a relationship was originally populated by the adapter as a link\n (as opposed to a list of IDs), this method is called when the\n relationship is fetched.\n\n The link (which is usually a URL) is passed through unchanged, so the\n adapter can make whatever request it wants.\n\n The usual use-case is for the server to register a URL as a link, and\n then use that URL in the future to make a request for the relationship.\n */\n assert(`You tried to load a hasMany relationship but you have no adapter (for ${record.type})`, adapter);\n assert(\n `You tried to load a hasMany relationship from a specified 'link' in the original payload but your adapter does not implement 'findHasMany'`,\n typeof adapter.findHasMany === 'function'\n );\n assert(`Expected a related link when calling store.findHasMany, found ${String(links)}`, links && links.related);\n\n return _findHasMany(adapter, store, record, links.related, field, options) as Promise<T>;\n }\n\n // identifiers case\n assert(`Expected an array of identifiers to fetch`, Array.isArray(identifiers));\n const fetches = new Array<globalThis.Promise<StableRecordIdentifier>>(identifiers.length);\n const manager = store._fetchManager;\n\n for (let i = 0; i < identifiers.length; i++) {\n const identifier = identifiers[i];\n // TODO we probably can be lenient here and return from cache for the isNew case\n assertIdentifierHasId(identifier);\n fetches[i] = options.reload\n ? manager.scheduleFetch(identifier, options, context.request)\n : manager.fetchDataIfNeededForIdentifier(identifier, options, context.request);\n }\n\n return Promise.all(fetches) as Promise<T>;\n}\n\nfunction saveRecord<T>(context: StoreRequestContext): Promise<T> {\n const { store, data, op: operation } = context.request;\n const { options, record: identifier } = data as { record: StableRecordIdentifier; options: Record<string, unknown> };\n\n upgradeStore(store);\n\n store.cache.willCommit(identifier, context);\n\n const saveOptions = Object.assign(\n { [SaveOp]: operation as 'updateRecord' | 'deleteRecord' | 'createRecord' },\n options\n );\n const fetchManagerPromise = store._fetchManager.scheduleSave(identifier, saveOptions);\n\n return fetchManagerPromise\n .then((payload) => {\n if (LOG_PAYLOADS) {\n try {\n const payloadCopy: unknown = payload ? JSON.parse(JSON.stringify(payload)) : payload;\n // eslint-disable-next-line no-console\n console.log(`EmberData | Payload - ${operation}`, payloadCopy);\n } catch {\n // eslint-disable-next-line no-console\n console.log(`EmberData | Payload - ${operation}`, payload);\n }\n }\n let result: SingleResourceDataDocument;\n store._join(() => {\n // @ts-expect-error we don't have access to a response in legacy\n result = store.cache.didCommit(identifier, { request: context.request, content: payload });\n });\n\n // blatantly lie if we were a createRecord request\n // to give some semblance of cache-control to the\n // CachePolicy while legacy is still around\n if (store.lifetimes?.didRequest && operation === 'createRecord') {\n store.lifetimes.didRequest(context.request, { status: 201 } as Response, null, store);\n }\n return store.peekRecord(result!.data!);\n })\n .catch((e: unknown) => {\n let err = e;\n if (!e) {\n err = new Error(`Unknown Error Occurred During Request`);\n } else if (typeof e === 'string') {\n err = new Error(e);\n }\n adapterDidInvalidate(store, identifier, err as Error);\n throw err;\n }) as Promise<T>;\n}\n\nfunction adapterDidInvalidate(\n store: Store,\n identifier: StableRecordIdentifier,\n error: Error & { errors?: ApiError[]; isAdapterError?: true; code?: string }\n) {\n upgradeStore(store);\n if (error && error.isAdapterError === true && error.code === 'InvalidError') {\n const serializer = store.serializerFor(identifier.type) as SerializerWithParseErrors;\n\n // TODO @deprecate extractErrors being called\n // TODO remove extractErrors from the default serializers.\n if (serializer && typeof serializer.extractErrors === 'function') {\n const errorsHash = serializer.extractErrors(\n store,\n store.modelFor(identifier.type),\n error,\n identifier.id\n ) as Record<string, string | string[]>;\n error.errors = errorsHashToArray(errorsHash);\n }\n }\n const cache = store.cache;\n\n if (error.errors) {\n assert(\n `Expected the cache in use by resource ${String(\n identifier\n )} to have a getErrors(identifier) method for retrieving errors.`,\n typeof cache.getErrors === 'function'\n );\n\n let jsonApiErrors: ApiError[] = error.errors;\n if (jsonApiErrors.length === 0) {\n jsonApiErrors = [{ title: 'Invalid Error', detail: '', source: { pointer: '/data' } }];\n }\n cache.commitWasRejected(identifier, jsonApiErrors);\n } else {\n cache.commitWasRejected(identifier);\n }\n}\n\nfunction makeArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n\nconst PRIMARY_ATTRIBUTE_KEY = 'base';\nfunction errorsHashToArray(errors: Record<string, string | string[]>): ApiError[] {\n const out: ApiError[] = [];\n\n if (errors) {\n Object.keys(errors).forEach((key) => {\n const messages = makeArray(errors[key]);\n for (let i = 0; i < messages.length; i++) {\n let title = 'Invalid Attribute';\n let pointer = `/data/attributes/${key}`;\n if (key === PRIMARY_ATTRIBUTE_KEY) {\n title = 'Invalid Document';\n pointer = `/data`;\n }\n out.push({\n title: title,\n detail: messages[i],\n source: {\n pointer: pointer,\n },\n });\n }\n });\n }\n\n return out;\n}\n\nfunction findRecord<T>(context: StoreRequestContext): Promise<T> {\n const { store, data } = context.request;\n const { record: identifier, options } = data as {\n record: StableExistingRecordIdentifier;\n options: { reload?: boolean; backgroundReload?: boolean };\n };\n upgradeStore(store);\n let promise: Promise<StableRecordIdentifier>;\n\n // if not loaded start loading\n if (!store._instanceCache.recordIsLoaded(identifier)) {\n promise = store._fetchManager.fetchDataIfNeededForIdentifier(identifier, options, context.request);\n\n // Refetch if the reload option is passed\n } else if (options.reload) {\n assertIdentifierHasId(identifier);\n\n promise = store._fetchManager.scheduleFetch(identifier, options, context.request);\n } else {\n let snapshot: Snapshot | null = null;\n const adapter = store.adapterFor(identifier.type);\n\n // Refetch the record if the adapter thinks the record is stale\n if (\n typeof options.reload === 'undefined' &&\n adapter.shouldReloadRecord &&\n adapter.shouldReloadRecord(store, (snapshot = store._fetchManager.createSnapshot(identifier, options)))\n ) {\n assertIdentifierHasId(identifier);\n if (DEBUG) {\n promise = store._fetchManager.scheduleFetch(\n identifier,\n Object.assign({}, options, { reload: true }),\n context.request\n );\n } else {\n options.reload = true;\n promise = store._fetchManager.scheduleFetch(identifier, options, context.request);\n }\n } else {\n // Trigger the background refetch if backgroundReload option is passed\n if (\n options.backgroundReload !== false &&\n (options.backgroundReload ||\n !adapter.shouldBackgroundReloadRecord ||\n adapter.shouldBackgroundReloadRecord(\n store,\n (snapshot = snapshot || store._fetchManager.createSnapshot(identifier, options))\n ))\n ) {\n assertIdentifierHasId(identifier);\n\n if (DEBUG) {\n void store._fetchManager.scheduleFetch(\n identifier,\n Object.assign({}, options, { backgroundReload: true }),\n context.request\n );\n } else {\n options.backgroundReload = true;\n void store._fetchManager.scheduleFetch(identifier, options, context.request);\n }\n }\n\n // Return the cached record\n promise = Promise.resolve(identifier) as Promise<StableRecordIdentifier>;\n }\n }\n\n return promise.then((i: StableRecordIdentifier) => store.peekRecord(i)) as Promise<T>;\n}\n\nfunction findAll<T>(context: StoreRequestContext): Promise<T> {\n const { store, data } = context.request;\n const { type, options } = data as {\n type: string;\n options: { reload?: boolean; backgroundReload?: boolean };\n };\n upgradeStore(store);\n const adapter = store.adapterFor(type);\n\n assert(`You tried to load all records but you have no adapter (for ${type})`, adapter);\n assert(\n `You tried to load all records but your adapter does not implement 'findAll'`,\n typeof adapter.findAll === 'function'\n );\n\n // avoid initializing the liveArray just to set `isUpdating`\n const maybeRecordArray = store.recordArrayManager._live.get(type);\n const snapshotArray = new SnapshotRecordArray(store, type, options);\n\n const shouldReload =\n options.reload ||\n (options.reload !== false &&\n ((adapter.shouldReloadAll && adapter.shouldReloadAll(store, snapshotArray)) ||\n (!adapter.shouldReloadAll && snapshotArray.length === 0)));\n\n let fetch: Promise<T> | undefined;\n if (shouldReload) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n maybeRecordArray && (maybeRecordArray.isUpdating = true);\n fetch = _findAll(adapter, store, type, snapshotArray, context.request, true);\n } else {\n fetch = Promise.resolve(store.peekAll(type)) as Promise<T>;\n\n if (\n options.backgroundReload ||\n (options.backgroundReload !== false &&\n (!adapter.shouldBackgroundReloadAll || adapter.shouldBackgroundReloadAll(store, snapshotArray)))\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n maybeRecordArray && (maybeRecordArray.isUpdating = true);\n void _findAll(adapter, store, type, snapshotArray, context.request, false);\n }\n }\n\n return fetch;\n}\n\nfunction _findAll<T>(\n adapter: MinimumAdapterInterface,\n store: Store,\n type: string,\n snapshotArray: SnapshotRecordArray,\n request: ImmutableRequestInfo,\n isAsyncFlush: boolean\n): Promise<T> {\n const schema = store.modelFor(type);\n let promise: Promise<T> = Promise.resolve().then(() =>\n adapter.findAll(store, schema, null, snapshotArray)\n ) as Promise<T>;\n\n promise = promise.then((adapterPayload: T) => {\n assert(\n `You made a 'findAll' request for '${type}' records, but the adapter's response did not have any data`,\n payloadIsNotBlank(adapterPayload)\n );\n upgradeStore(store);\n const serializer = store.serializerFor(type);\n const payload = normalizeResponseHelper(serializer, store, schema, adapterPayload, null, 'findAll');\n\n store._push(payload, isAsyncFlush);\n snapshotArray._recordArray.isUpdating = false;\n\n if (LOG_PAYLOADS) {\n // eslint-disable-next-line no-console\n console.log(`request: findAll<${type}> background reload complete`);\n }\n return snapshotArray._recordArray;\n }) as Promise<T>;\n\n if (TESTING) {\n if (!request.disableTestWaiter) {\n const { waitForPromise } = importSync('@ember/test-waiters') as {\n waitForPromise: <PT>(promise: Promise<PT>) => Promise<PT>;\n };\n promise = waitForPromise(promise);\n }\n }\n\n return promise;\n}\n\nfunction query<T>(context: StoreRequestContext): Promise<T> {\n const { store, data } = context.request;\n upgradeStore(store);\n let { options } = data as {\n options: { _recordArray?: CollectionRecordArray; adapterOptions?: Record<string, unknown> };\n };\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { type, query } = data as {\n type: string;\n query: Record<string, unknown>;\n options: { _recordArray?: CollectionRecordArray; adapterOptions?: Record<string, unknown> };\n };\n const adapter = store.adapterFor(type);\n\n assert(`You tried to make a query but you have no adapter (for ${type})`, adapter);\n assert(`You tried to make a query but your adapter does not implement 'query'`, typeof adapter.query === 'function');\n\n const recordArray =\n options._recordArray ||\n store.recordArrayManager.createArray({\n type,\n query,\n });\n\n if (DEBUG) {\n options = Object.assign({}, options);\n delete options._recordArray;\n } else {\n delete options._recordArray;\n }\n const schema = store.modelFor(type);\n const promise = Promise.resolve().then(() => adapter.query(store, schema, query, recordArray, options));\n\n return promise.then((adapterPayload) => {\n const serializer = store.serializerFor(type);\n const payload = normalizeResponseHelper(\n serializer,\n store,\n schema,\n adapterPayload as Record<string, unknown>,\n null,\n 'query'\n );\n const identifiers = store._push(payload, true);\n\n assert(\n 'The response to store.query is expected to be an array but it was a single record. Please wrap your response in an array or use `store.queryRecord` to query for a single record.',\n Array.isArray(identifiers)\n );\n\n store.recordArrayManager.populateManagedArray(recordArray, identifiers, payload as CollectionResourceDocument);\n\n return recordArray;\n }) as Promise<T>;\n}\n\nfunction assertSingleResourceDocument(payload: JsonApiDocument): asserts payload is SingleResourceDocument {\n assert(\n `Expected the primary data returned by the serializer for a 'queryRecord' response to be a single object or null but instead it was an array.`,\n !Array.isArray(payload.data)\n );\n}\n\nfunction queryRecord<T>(context: StoreRequestContext): Promise<T> {\n const { store, data } = context.request;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { type, query, options } = data as { type: string; query: Record<string, unknown>; options: object };\n upgradeStore(store);\n const adapter = store.adapterFor(type);\n\n assert(`You tried to make a query but you have no adapter (for ${type})`, adapter);\n assert(\n `You tried to make a query but your adapter does not implement 'queryRecord'`,\n typeof adapter.queryRecord === 'function'\n );\n\n const schema = store.modelFor(type);\n const promise = Promise.resolve().then(() => adapter.queryRecord(store, schema, query, options)) as Promise<T>;\n\n return promise.then((adapterPayload: T) => {\n const serializer = store.serializerFor(type);\n const payload = normalizeResponseHelper(\n serializer,\n store,\n schema,\n adapterPayload as Record<string, unknown>,\n null,\n 'queryRecord'\n );\n\n assertSingleResourceDocument(payload);\n\n const identifier = store._push(payload, true) as StableRecordIdentifier;\n return identifier ? store.peekRecord(identifier) : null;\n }) as Promise<T>;\n}\n","import { getOwner } from '@ember/application';\nimport { deprecate } from '@ember/debug';\n\nimport type Store from '@ember-data/store';\nimport { recordIdentifierFor } from '@ember-data/store';\nimport { DEPRECATE_JSON_API_FALLBACK } from '@warp-drive/build-config/deprecations';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { ObjectValue } from '@warp-drive/core-types/json/raw';\n\nimport { FetchManager, upgradeStore } from './-private';\nimport { normalizeModelName } from './builders/utils';\nimport type { AdapterPayload, MinimumAdapterInterface } from './legacy-network-handler/minimum-adapter-interface';\nimport type {\n MinimumSerializerInterface,\n SerializerOptions,\n} from './legacy-network-handler/minimum-serializer-interface';\n\nexport { LegacyNetworkHandler } from './legacy-network-handler/legacy-network-handler';\n\nexport type { MinimumAdapterInterface, MinimumSerializerInterface, SerializerOptions, AdapterPayload };\n\n/**\n * @module @ember-data/store\n * @class Store\n */\nexport type LegacyStoreCompat = {\n _fetchManager: FetchManager;\n adapterFor(this: Store, modelName: string): MinimumAdapterInterface;\n adapterFor(this: Store, modelName: string, _allowMissing: true): MinimumAdapterInterface | undefined;\n\n serializerFor<K extends string>(modelName: K, _allowMissing?: boolean): MinimumSerializerInterface | null;\n\n normalize(modelName: string, payload: ObjectValue): ObjectValue;\n pushPayload(modelName: string, payload: ObjectValue): void;\n serializeRecord(record: unknown, options?: SerializerOptions): unknown;\n\n _adapterCache: Record<string, MinimumAdapterInterface & { store: Store }>;\n _serializerCache: Record<string, MinimumSerializerInterface & { store: Store }>;\n};\n\nexport type CompatStore = Store & LegacyStoreCompat;\n\n/**\n Returns an instance of the adapter for a given type. For\n example, `adapterFor('person')` will return an instance of\n the adapter located at `app/adapters/person.js`\n\n If no `person` adapter is found, this method will look\n for an `application` adapter (the default adapter for\n your entire application).\n\n @method adapterFor\n @public\n @param {String} modelName\n @return Adapter\n */\nexport function adapterFor(this: Store, modelName: string): MinimumAdapterInterface;\nexport function adapterFor(this: Store, modelName: string, _allowMissing: true): MinimumAdapterInterface | undefined;\nexport function adapterFor(this: Store, modelName: string, _allowMissing?: true): MinimumAdapterInterface | undefined {\n assert(\n `Attempted to call store.adapterFor(), but the store instance has already been destroyed.`,\n !(this.isDestroying || this.isDestroyed)\n );\n assert(`You need to pass a model name to the store's adapterFor method`, modelName);\n assert(\n `Passing classes to store.adapterFor has been removed. Please pass a dasherized string instead of ${modelName}`,\n typeof modelName === 'string'\n );\n upgradeStore(this);\n this._adapterCache =\n this._adapterCache || (Object.create(null) as Record<string, MinimumAdapterInterface & { store: Store }>);\n\n const normalizedModelName = normalizeModelName(modelName);\n\n const { _adapterCache } = this;\n let adapter: (MinimumAdapterInterface & { store: Store }) | undefined = _adapterCache[normalizedModelName];\n if (adapter) {\n return adapter;\n }\n\n const owner = getOwner(this)!;\n\n // name specific adapter\n adapter = owner.lookup(`adapter:${normalizedModelName}`) as (MinimumAdapterInterface & { store: Store }) | undefined;\n if (adapter !== undefined) {\n _adapterCache[normalizedModelName] = adapter;\n return adapter;\n }\n\n // no adapter found for the specific name, fallback and check for application adapter\n adapter = _adapterCache.application || owner.lookup('adapter:application');\n if (adapter !== undefined) {\n _adapterCache[normalizedModelName] = adapter;\n _adapterCache.application = adapter;\n return adapter;\n }\n\n if (DEPRECATE_JSON_API_FALLBACK) {\n // final fallback, no model specific adapter, no application adapter, no\n // `adapter` property on store: use json-api adapter\n adapter = _adapterCache['-json-api'] || owner.lookup('adapter:-json-api');\n if (adapter !== undefined) {\n deprecate(\n `Your application is utilizing a deprecated hidden fallback adapter (-json-api). Please implement an application adapter to function as your fallback.`,\n false,\n {\n id: 'ember-data:deprecate-secret-adapter-fallback',\n for: 'ember-data',\n until: '5.0',\n since: { available: '4.5', enabled: '4.5' },\n }\n );\n _adapterCache[normalizedModelName] = adapter;\n _adapterCache['-json-api'] = adapter;\n\n return adapter;\n }\n }\n\n assert(\n `No adapter was found for '${modelName}' and no 'application' adapter was found as a fallback.`,\n _allowMissing\n );\n}\n\n/**\n Returns an instance of the serializer for a given type. For\n example, `serializerFor('person')` will return an instance of\n `App.PersonSerializer`.\n\n If no `App.PersonSerializer` is found, this method will look\n for an `App.ApplicationSerializer` (the default serializer for\n your entire application).\n\n If a serializer cannot be found on the adapter, it will fall back\n to an instance of `JSONSerializer`.\n\n @method serializerFor\n @public\n @param {String} modelName the record to serialize\n @return {Serializer}\n */\nexport function serializerFor(this: Store, modelName: string): MinimumSerializerInterface | null {\n assert(\n `Attempted to call store.serializerFor(), but the store instance has already been destroyed.`,\n !(this.isDestroying || this.isDestroyed)\n );\n assert(`You need to pass a model name to the store's serializerFor method`, modelName);\n assert(\n `Passing classes to store.serializerFor has been removed. Please pass a dasherized string instead of ${modelName}`,\n typeof modelName === 'string'\n );\n upgradeStore(this);\n this._serializerCache =\n this._serializerCache || (Object.create(null) as Record<string, MinimumSerializerInterface & { store: Store }>);\n const normalizedModelName = normalizeModelName(modelName);\n\n const { _serializerCache } = this;\n let serializer: (MinimumSerializerInterface & { store: Store }) | undefined = _serializerCache[normalizedModelName];\n if (serializer) {\n return serializer;\n }\n\n // by name\n const owner = getOwner(this)!;\n serializer = owner.lookup(`serializer:${normalizedModelName}`) as\n | (MinimumSerializerInterface & { store: Store })\n | undefined;\n if (serializer !== undefined) {\n _serializerCache[normalizedModelName] = serializer;\n return serializer;\n }\n\n // no serializer found for the specific model, fallback and check for application serializer\n serializer = _serializerCache.application || owner.lookup('serializer:application');\n if (serializer !== undefined) {\n _serializerCache[normalizedModelName] = serializer;\n _serializerCache.application = serializer;\n return serializer;\n }\n\n return null;\n}\n\n/**\n `normalize` converts a json payload into the normalized form that\n [push](../methods/push?anchor=push) expects.\n\n Example\n\n ```js\n socket.on('message', function(message) {\n let modelName = message.model;\n let data = message.data;\n store.push(store.normalize(modelName, data));\n });\n ```\n\n @method normalize\n @public\n @param {String} modelName The name of the model type for this payload\n @param {Object} payload\n @return {Object} The normalized payload\n */\n// TODO @runspired @deprecate users should call normalize on the associated serializer directly\nexport function normalize(this: Store, modelName: string, payload: ObjectValue) {\n upgradeStore(this);\n assert(\n `Attempted to call store.normalize(), but the store instance has already been destroyed.`,\n !(this.isDestroying || this.isDestroyed)\n );\n assert(`You need to pass a model name to the store's normalize method`, modelName);\n assert(\n `Passing classes to store methods has been removed. Please pass a dasherized string instead of ${typeof modelName}`,\n typeof modelName === 'string'\n );\n const normalizedModelName = normalizeModelName(modelName);\n const serializer = this.serializerFor(normalizedModelName);\n const schema = this.modelFor(normalizedModelName);\n assert(\n `You must define a normalize method in your serializer in order to call store.normalize`,\n typeof serializer?.normalize === 'function'\n );\n return serializer.normalize(schema, payload);\n}\n\n/**\n Push some raw data into the store.\n\n This method can be used both to push in brand new\n records, as well as to update existing records. You\n can push in more than one type of object at once.\n All objects should be in the format expected by the\n serializer.\n\n ```app/serializers/application.js\n import RESTSerializer from '@ember-data/serializer/rest';\n\n export default class ApplicationSerializer extends RESTSerializer;\n ```\n\n ```js\n let pushData = {\n posts: [\n { id: 1, postTitle: \"Great post\", commentIds: [2] }\n ],\n comments: [\n { id: 2, commentBody: \"Insightful comment\" }\n ]\n }\n\n store.pushPayload(pushData);\n ```\n\n By default, the data will be deserialized using a default\n serializer (the application serializer if it exists).\n\n Alternatively, `pushPayload` will accept a model type which\n will determine which serializer will process the payload.\n\n ```app/serializers/application.js\n import RESTSerializer from '@ember-data/serializer/rest';\n\n export default class ApplicationSerializer extends RESTSerializer;\n ```\n\n ```app/serializers/post.js\n import JSONSerializer from '@ember-data/serializer/json';\n\n export default JSONSerializer;\n ```\n\n ```js\n store.pushPayload(pushData); // Will use the application serializer\n store.pushPayload('post', pushData); // Will use the post serializer\n ```\n\n @method pushPayload\n @public\n @param {String} modelName Optionally, a model type used to determine which serializer will be used\n @param {Object} inputPayload\n */\n// TODO @runspired @deprecate pushPayload in favor of looking up the serializer\nexport function pushPayload(this: Store, modelName: string, inputPayload: ObjectValue): void {\n upgradeStore(this);\n assert(\n `Attempted to call store.pushPayload(), but the store instance has already been destroyed.`,\n !(this.isDestroying || this.isDestroyed)\n );\n\n const payload: ObjectValue = inputPayload || (modelName as unknown as ObjectValue);\n const normalizedModelName = inputPayload ? normalizeModelName(modelName) : 'application';\n const serializer = this.serializerFor(normalizedModelName);\n\n assert(\n `You cannot use 'store.pushPayload(<type>, <payload>)' unless the serializer for '${normalizedModelName}' defines 'pushPayload'`,\n serializer && typeof serializer.pushPayload === 'function'\n );\n serializer.pushPayload(this, payload);\n}\n\n// TODO @runspired @deprecate records should implement their own serialization if desired\nexport function serializeRecord(this: Store, record: unknown, options?: SerializerOptions): unknown {\n upgradeStore(this);\n // TODO we used to check if the record was destroyed here\n if (!this._fetchManager) {\n this._fetchManager = new FetchManager(this);\n }\n\n return this._fetchManager.createSnapshot(recordIdentifierFor(record)).serialize(options);\n}\n\nexport function cleanup(this: Store) {\n upgradeStore(this);\n // enqueue destruction of any adapters/serializers we have created\n for (const adapterName in this._adapterCache) {\n const adapter = this._adapterCache[adapterName];\n if (typeof adapter.destroy === 'function') {\n adapter.destroy();\n }\n }\n\n for (const serializerName in this._serializerCache) {\n const serializer = this._serializerCache[serializerName];\n if (typeof serializer.destroy === 'function') {\n serializer.destroy();\n }\n }\n}\n"],"names":["_findHasMany","adapter","store","identifier","link","relationship","options","promise","Promise","resolve","then","snapshot","_fetchManager","createSnapshot","useLink","relatedLink","href","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","findHasMany","guardDestroyedStore","adapterPayload","record","_instanceCache","getRecord","_objectIsAlive","deprecations","DEPRECATE_RSVP_PROMISE","deprecate","type","id","until","for","since","available","enabled","name","JSON","stringify","payloadIsNotBlank","modelClass","modelFor","serializer","serializerFor","payload","normalizeResponseHelper","Array","isArray","data","syncRelationshipDataFromLink","_push","_guard","_bind","_findBelongsTo","adapterFor","findBelongsTo","links","meta","parentIdentifier","relationshipData","iterateData","index","ensureRelationshipIsSetToParent","relatedDataHash","parentPayload","relationships","included","push","parentRelationship","inverse","getInverse","inverseKey","kind","relationshipDataPointsToParent","inspect","thing","quotedType","quotedInverse","expected","expectedModel","got","prefix","path","other","relationshipFetched","includedRecord","message","join","fixRelationshipData","metaIsRelationshipDefinition","_inverseKey","inverseForRelationship","key","definition","schema","fields","get","DEPRECATE_RELATIONSHIPS_WITHOUT_INVERSE","length","lhs_relationshipName","parentType","i","entry","validateRelationshipEntry","relationshipKind","parentRelationshipData","relData","found","find","v","Object","assign","parentModelID","toString","PotentialLegacyOperations","Set","LegacyNetworkHandler","request","context","next","url","op","has","FetchManager","findRecord","findAll","query","queryRecord","saveRecord","records","identifiers","field","pendingRequest","getPendingFetch","String","related","manager","assertIdentifierHasId","reload","scheduleFetch","fetchDataIfNeededForIdentifier","fetches","all","operation","cache","willCommit","saveOptions","SaveOp","fetchManagerPromise","scheduleSave","debug","LOG_PAYLOADS","payloadCopy","parse","console","log","result","_join","didCommit","content","lifetimes","didRequest","status","peekRecord","catch","e","err","adapterDidInvalidate","error","isAdapterError","code","extractErrors","errorsHash","errors","errorsHashToArray","getErrors","jsonApiErrors","title","detail","source","pointer","commitWasRejected","makeArray","value","PRIMARY_ATTRIBUTE_KEY","out","keys","forEach","messages","recordIsLoaded","shouldReloadRecord","backgroundReload","shouldBackgroundReloadRecord","maybeRecordArray","recordArrayManager","_live","snapshotArray","SnapshotRecordArray","shouldReload","shouldReloadAll","fetch","isUpdating","_findAll","peekAll","shouldBackgroundReloadAll","isAsyncFlush","_recordArray","TESTING","disableTestWaiter","waitForPromise","importSync","recordArray","createArray","populateManagedArray","assertSingleResourceDocument","modelName","_allowMissing","isDestroying","isDestroyed","_adapterCache","create","normalizedModelName","normalizeModelName","owner","getOwner","lookup","undefined","application","DEPRECATE_JSON_API_FALLBACK","_serializerCache","normalize","pushPayload","inputPayload","serializeRecord","recordIdentifierFor","serialize","cleanup","adapterName","destroy","serializerName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/legacy-network-handler/legacy-data-fetch.ts","../src/legacy-network-handler/legacy-network-handler.ts","../src/index.ts"],"sourcesContent":["import { deprecate } from '@ember/debug';\n\nimport type Store from '@ember-data/store';\nimport type { BaseFinderOptions, ModelSchema } from '@ember-data/store/types';\nimport { DEPRECATE_RELATIONSHIPS_WITHOUT_INVERSE, DEPRECATE_RSVP_PROMISE } from '@warp-drive/build-config/deprecations';\nimport { DEBUG } from '@warp-drive/build-config/env';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { StableRecordIdentifier } from '@warp-drive/core-types';\nimport type { StableExistingRecordIdentifier } from '@warp-drive/core-types/identifier';\nimport type { LegacyRelationshipSchema as RelationshipSchema } from '@warp-drive/core-types/schema/fields';\nimport type { ExistingResourceObject, JsonApiDocument } from '@warp-drive/core-types/spec/json-api-raw';\n\nimport { upgradeStore } from '../-private';\nimport { iterateData, payloadIsNotBlank } from './legacy-data-utils';\nimport type { MinimumAdapterInterface } from './minimum-adapter-interface';\nimport { normalizeResponseHelper } from './serializer-response';\nimport { _bind, _guard, _objectIsAlive, guardDestroyedStore } from './utils';\n\nexport function _findHasMany(\n adapter: MinimumAdapterInterface,\n store: Store,\n identifier: StableRecordIdentifier,\n link: string | null | { href: string },\n relationship: RelationshipSchema,\n options: BaseFinderOptions\n): Promise<StableExistingRecordIdentifier[]> {\n upgradeStore(store);\n let promise: Promise<unknown> = Promise.resolve().then(() => {\n const snapshot = store._fetchManager.createSnapshot(identifier, options);\n const useLink = !link || typeof link === 'string';\n const relatedLink = useLink ? link : link.href;\n assert(\n `Attempted to load a hasMany relationship from a specified 'link' in the original payload, but the specified link is empty. You must provide a valid 'link' in the original payload to use 'findHasMany'`,\n relatedLink\n );\n assert(\n `Expected the adapter to implement 'findHasMany' but it does not`,\n typeof adapter.findHasMany === 'function'\n );\n return adapter.findHasMany(store, snapshot, relatedLink, relationship);\n });\n\n promise = guardDestroyedStore(promise, store);\n promise = promise.then((adapterPayload) => {\n const record = store._instanceCache.getRecord(identifier);\n\n if (!_objectIsAlive(record)) {\n if (DEPRECATE_RSVP_PROMISE) {\n deprecate(\n `A Promise for fetching ${relationship.type} did not resolve by the time your model was destroyed. This will error in a future release.`,\n false,\n {\n id: 'ember-data:rsvp-unresolved-async',\n until: '5.0',\n for: '@ember-data/store',\n since: {\n available: '4.5',\n enabled: '4.5',\n },\n }\n );\n }\n }\n\n assert(\n `You made a 'findHasMany' request for a ${identifier.type}'s '${\n relationship.name\n }' relationship, using link '${JSON.stringify(link)}' , but the adapter's response did not have any data`,\n payloadIsNotBlank(adapterPayload)\n );\n const modelClass = store.modelFor(relationship.type);\n\n const serializer = store.serializerFor(relationship.type);\n let payload = normalizeResponseHelper(serializer, store, modelClass, adapterPayload, null, 'findHasMany');\n\n assert(\n `fetched the hasMany relationship '${relationship.name}' for ${identifier.type}:${\n identifier.id\n } with link '${JSON.stringify(\n link\n )}', but no data member is present in the response. If no data exists, the response should set { data: [] }`,\n 'data' in payload && Array.isArray(payload.data)\n );\n\n payload = syncRelationshipDataFromLink(store, payload, identifier as ResourceIdentity, relationship);\n return store._push(payload, true);\n }, null);\n\n if (DEPRECATE_RSVP_PROMISE) {\n const record = store._instanceCache.getRecord(identifier);\n\n promise = _guard(promise, _bind(_objectIsAlive, record));\n }\n\n return promise as Promise<StableExistingRecordIdentifier[]>;\n}\n\nexport function _findBelongsTo(\n store: Store,\n identifier: StableRecordIdentifier,\n link: string | null | { href: string },\n relationship: RelationshipSchema,\n options: BaseFinderOptions\n) {\n upgradeStore(store);\n let promise = Promise.resolve().then(() => {\n const adapter = store.adapterFor(identifier.type);\n assert(`You tried to load a belongsTo relationship but you have no adapter (for ${identifier.type})`, adapter);\n assert(\n `You tried to load a belongsTo relationship from a specified 'link' in the original payload but your adapter does not implement 'findBelongsTo'`,\n typeof adapter.findBelongsTo === 'function'\n );\n const snapshot = store._fetchManager.createSnapshot(identifier, options);\n const useLink = !link || typeof link === 'string';\n const relatedLink = useLink ? link : link.href;\n assert(\n `Attempted to load a belongsTo relationship from a specified 'link' in the original payload, but the specified link is empty. You must provide a valid 'link' in the original payload to use 'findBelongsTo'`,\n relatedLink\n );\n return adapter.findBelongsTo(store, snapshot, relatedLink, relationship);\n });\n\n if (DEPRECATE_RSVP_PROMISE) {\n const record = store._instanceCache.getRecord(identifier);\n promise = guardDestroyedStore(promise, store);\n promise = _guard(promise, _bind(_objectIsAlive, record));\n }\n\n return promise.then((adapterPayload) => {\n if (DEPRECATE_RSVP_PROMISE) {\n const record = store._instanceCache.getRecord(identifier);\n\n if (!_objectIsAlive(record)) {\n deprecate(\n `A Promise for fetching ${relationship.type} did not resolve by the time your model was destroyed. This will error in a future release.`,\n false,\n {\n id: 'ember-data:rsvp-unresolved-async',\n until: '5.0',\n for: '@ember-data/store',\n since: {\n available: '4.5',\n enabled: '4.5',\n },\n }\n );\n }\n }\n\n const modelClass = store.modelFor(relationship.type);\n const serializer = store.serializerFor(relationship.type);\n let payload = normalizeResponseHelper(serializer, store, modelClass, adapterPayload, null, 'findBelongsTo');\n\n assert(\n `fetched the belongsTo relationship '${relationship.name}' for ${identifier.type}:${\n identifier.id\n } with link '${JSON.stringify(\n link\n )}', but no data member is present in the response. If no data exists, the response should set { data: null }`,\n 'data' in payload && (payload.data === null || (typeof payload.data === 'object' && !Array.isArray(payload.data)))\n );\n\n if (!payload.data && !payload.links && !payload.meta) {\n return null;\n }\n\n payload = syncRelationshipDataFromLink(store, payload, identifier as ResourceIdentity, relationship);\n\n return store._push(payload, true);\n }, null);\n}\n\n// sync\n// iterate over records in payload.data\n// for each record\n// assert that record.relationships[inverse] is either undefined (so we can fix it)\n// or provide a data: {id, type} that matches the record that requested it\n// return the relationship data for the parent\nfunction syncRelationshipDataFromLink(\n store: Store,\n payload: JsonApiDocument,\n parentIdentifier: ResourceIdentity,\n relationship: RelationshipSchema\n) {\n // ensure the right hand side (incoming payload) points to the parent record that\n // requested this relationship\n const relationshipData = payload.data\n ? iterateData(payload.data, (data, index) => {\n const { id, type } = data;\n ensureRelationshipIsSetToParent(data, parentIdentifier, store, relationship, index);\n return { id, type };\n })\n : null;\n\n const relatedDataHash = {} as JsonApiDocument;\n\n if ('meta' in payload) {\n relatedDataHash.meta = payload.meta;\n }\n if ('links' in payload) {\n relatedDataHash.links = payload.links;\n }\n if ('data' in payload) {\n relatedDataHash.data = relationshipData;\n }\n\n // now, push the left hand side (the parent record) to ensure things are in sync, since\n // the payload will be pushed with store._push\n const parentPayload = {\n id: parentIdentifier.id,\n type: parentIdentifier.type,\n relationships: {\n [relationship.name]: relatedDataHash,\n },\n };\n\n if (!Array.isArray(payload.included)) {\n payload.included = [];\n }\n payload.included.push(parentPayload);\n\n return payload;\n}\n\ntype ResourceIdentity = { id: string; type: string };\ntype RelationshipData = ResourceIdentity | ResourceIdentity[] | null;\n\nfunction ensureRelationshipIsSetToParent(\n payload: ExistingResourceObject,\n parentIdentifier: ResourceIdentity,\n store: Store,\n parentRelationship: RelationshipSchema,\n index: number\n) {\n const { id, type } = payload;\n\n if (!payload.relationships) {\n payload.relationships = {};\n }\n const { relationships } = payload;\n\n const inverse = getInverse(store, parentIdentifier, parentRelationship, type);\n if (inverse) {\n const { inverseKey, kind } = inverse;\n\n const relationshipData = relationships[inverseKey]?.data as RelationshipData | undefined;\n\n if (DEBUG) {\n if (\n typeof relationshipData !== 'undefined' &&\n !relationshipDataPointsToParent(relationshipData, parentIdentifier)\n ) {\n const inspect = function inspect(thing: unknown) {\n return `'${JSON.stringify(thing)}'`;\n };\n const quotedType = inspect(type);\n const quotedInverse = inspect(inverseKey);\n const expected = inspect({\n id: parentIdentifier.id,\n type: parentIdentifier.type,\n });\n const expectedModel = `${parentIdentifier.type}:${parentIdentifier.id}`;\n const got = inspect(relationshipData);\n const prefix = typeof index === 'number' ? `data[${index}]` : `data`;\n const path = `${prefix}.relationships.${inverseKey}.data`;\n const data = Array.isArray(relationshipData) ? relationshipData[0] : relationshipData;\n const other = data ? `<${data.type}:${data.id}>` : null;\n const relationshipFetched = `${expectedModel}.${parentRelationship.kind}(\"${parentRelationship.name}\")`;\n const includedRecord = `<${type}:${id}>`;\n const message = [\n `Encountered mismatched relationship: Ember Data expected ${path} in the payload from ${relationshipFetched} to include ${expected} but got ${got} instead.\\n`,\n `The ${includedRecord} record loaded at ${prefix} in the payload specified ${other} as its ${quotedInverse}, but should have specified ${expectedModel} (the record the relationship is being loaded from) as its ${quotedInverse} instead.`,\n `This could mean that the response for ${relationshipFetched} may have accidentally returned ${quotedType} records that aren't related to ${expectedModel} and could be related to a different ${parentIdentifier.type} record instead.`,\n `Ember Data has corrected the ${includedRecord} record's ${quotedInverse} relationship to ${expectedModel} so that ${relationshipFetched} will include ${includedRecord}.`,\n `Please update the response from the server or change your serializer to either ensure that the response for only includes ${quotedType} records that specify ${expectedModel} as their ${quotedInverse}, or omit the ${quotedInverse} relationship from the response.`,\n ].join('\\n');\n\n assert(message);\n }\n }\n\n if (kind !== 'hasMany' || typeof relationshipData !== 'undefined') {\n relationships[inverseKey] = relationships[inverseKey] || {};\n relationships[inverseKey].data = fixRelationshipData(relationshipData ?? null, kind, parentIdentifier);\n }\n }\n}\n\ntype LegacyRelationshipDefinition = { _inverseKey: (store: Store, modelClass: ModelSchema) => string | null };\n\nfunction metaIsRelationshipDefinition(meta: unknown): meta is LegacyRelationshipDefinition {\n return typeof meta === 'object' && !!meta && '_inverseKey' in meta && typeof meta._inverseKey === 'function';\n}\n\nfunction inverseForRelationship(store: Store, identifier: { type: string; id?: string }, key: string) {\n const definition = store.schema.fields(identifier).get(key);\n if (!definition) {\n return null;\n }\n\n if (DEPRECATE_RELATIONSHIPS_WITHOUT_INVERSE) {\n if (metaIsRelationshipDefinition(definition)) {\n const modelClass = store.modelFor(identifier.type);\n return definition._inverseKey(store, modelClass);\n }\n }\n assert(\n `Expected the field definition to be a relationship`,\n definition.kind === 'hasMany' || definition.kind === 'belongsTo'\n );\n assert(\n `Expected the relationship defintion to specify the inverse type or null.`,\n definition.options?.inverse === null ||\n (typeof definition.options?.inverse === 'string' && definition.options.inverse.length > 0)\n );\n return definition.options.inverse;\n}\n\nfunction getInverse(\n store: Store,\n parentIdentifier: ResourceIdentity,\n parentRelationship: RelationshipSchema,\n type: string\n) {\n const { name: lhs_relationshipName } = parentRelationship;\n const { type: parentType } = parentIdentifier;\n const inverseKey = inverseForRelationship(store, { type: parentType }, lhs_relationshipName);\n\n if (inverseKey) {\n const definition = store.schema.fields({ type }).get(inverseKey);\n assert(\n `Expected the field definition to be a relationship`,\n definition && (definition.kind === 'hasMany' || definition.kind === 'belongsTo')\n );\n return {\n inverseKey,\n kind: definition.kind,\n };\n }\n}\n\nfunction relationshipDataPointsToParent(relationshipData: RelationshipData, identifier: ResourceIdentity): boolean {\n if (relationshipData === null) {\n return false;\n }\n\n if (Array.isArray(relationshipData)) {\n if (relationshipData.length === 0) {\n return false;\n }\n for (let i = 0; i < relationshipData.length; i++) {\n const entry = relationshipData[i];\n if (validateRelationshipEntry(entry, identifier)) {\n return true;\n }\n }\n } else {\n return validateRelationshipEntry(relationshipData, identifier);\n }\n\n return false;\n}\n\nfunction fixRelationshipData(\n relationshipData: RelationshipData,\n relationshipKind: 'hasMany' | 'belongsTo',\n { id, type }: ResourceIdentity\n) {\n const parentRelationshipData = {\n id,\n type,\n };\n\n let payload: { type: string; id: string } | { type: string; id: string }[] | null = null;\n\n if (relationshipKind === 'hasMany') {\n const relData = (relationshipData as { type: string; id: string }[]) || [];\n if (relationshipData) {\n assert('expected the relationship data to be an array', Array.isArray(relationshipData));\n // these arrays could be massive so this is better than filter\n // Note: this is potentially problematic if type/id are not in the\n // same state of normalization.\n const found = relationshipData.find((v) => {\n return v.type === parentRelationshipData.type && v.id === parentRelationshipData.id;\n });\n if (!found) {\n relData.push(parentRelationshipData);\n }\n } else {\n relData.push(parentRelationshipData);\n }\n payload = relData;\n } else {\n const relData = (relationshipData as { type: string; id: string }) || {};\n Object.assign(relData, parentRelationshipData);\n payload = relData;\n }\n\n return payload;\n}\n\nfunction validateRelationshipEntry({ id }: ResourceIdentity, { id: parentModelID }: ResourceIdentity): boolean {\n return !!id && id.toString() === parentModelID;\n}\n","import { importSync } from '@embroider/macros';\n\nimport type { Future, Handler, NextFn, StructuredDataDocument } from '@ember-data/request';\nimport type Store from '@ember-data/store';\nimport type { StoreRequestContext } from '@ember-data/store';\nimport type { CollectionRecordArray } from '@ember-data/store/-private';\nimport type { ModelSchema } from '@ember-data/store/types';\nimport { LOG_PAYLOADS } from '@warp-drive/build-config/debugging';\nimport { DEBUG, TESTING } from '@warp-drive/build-config/env';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { StableExistingRecordIdentifier, StableRecordIdentifier } from '@warp-drive/core-types/identifier';\nimport type { ImmutableRequestInfo } from '@warp-drive/core-types/request';\nimport type { LegacyRelationshipSchema as RelationshipSchema } from '@warp-drive/core-types/schema/fields';\nimport type { SingleResourceDataDocument } from '@warp-drive/core-types/spec/document';\nimport type { ApiError } from '@warp-drive/core-types/spec/error';\nimport type {\n CollectionResourceDocument,\n JsonApiDocument,\n Links,\n PaginationLinks,\n SingleResourceDocument,\n} from '@warp-drive/core-types/spec/json-api-raw';\n\nimport { upgradeStore } from '../-private';\nimport { FetchManager, SaveOp } from './fetch-manager';\nimport { assertIdentifierHasId } from './identifier-has-id';\nimport { _findBelongsTo, _findHasMany } from './legacy-data-fetch';\nimport { payloadIsNotBlank } from './legacy-data-utils';\nimport type { MinimumAdapterInterface } from './minimum-adapter-interface';\nimport type { MinimumSerializerInterface } from './minimum-serializer-interface';\nimport { normalizeResponseHelper } from './serializer-response';\nimport type { Snapshot } from './snapshot';\nimport { SnapshotRecordArray } from './snapshot-record-array';\n\ntype AdapterErrors = Error & { errors?: unknown[]; isAdapterError?: true; code?: string };\ntype SerializerWithParseErrors = MinimumSerializerInterface & {\n extractErrors?(store: Store, modelClass: ModelSchema, error: AdapterErrors, recordId: string | null): unknown;\n};\n\nconst PotentialLegacyOperations = new Set([\n 'findRecord',\n 'findAll',\n 'query',\n 'queryRecord',\n 'findBelongsTo',\n 'findHasMany',\n 'updateRecord',\n 'createRecord',\n 'deleteRecord',\n]);\n\nexport const LegacyNetworkHandler: Handler = {\n request<T>(context: StoreRequestContext, next: NextFn<T>): Future<T> | Promise<StructuredDataDocument<T>> {\n // if we are not a legacy request, move on\n if (context.request.url || !context.request.op || !PotentialLegacyOperations.has(context.request.op)) {\n return next(context.request);\n }\n\n const { store } = context.request;\n upgradeStore(store);\n if (!store._fetchManager) {\n store._fetchManager = new FetchManager(store);\n }\n\n switch (context.request.op) {\n case 'findRecord':\n return findRecord(context);\n case 'findAll':\n return findAll(context);\n case 'query':\n return query(context);\n case 'queryRecord':\n return queryRecord(context);\n case 'findBelongsTo':\n return findBelongsTo(context);\n case 'findHasMany':\n return findHasMany(context);\n case 'updateRecord':\n return saveRecord(context);\n case 'createRecord':\n return saveRecord(context);\n case 'deleteRecord':\n return saveRecord(context);\n default:\n return next(context.request);\n }\n },\n};\n\nfunction findBelongsTo<T>(context: StoreRequestContext): Promise<T> {\n const { store, data, records: identifiers } = context.request;\n const { options, record, links, useLink, field } = data as {\n record: StableRecordIdentifier;\n options: Record<string, unknown>;\n links?: Links;\n useLink: boolean;\n field: RelationshipSchema;\n };\n const identifier = identifiers?.[0];\n upgradeStore(store);\n\n // short circuit if we are already loading\n const pendingRequest =\n identifier && store._fetchManager.getPendingFetch(identifier as StableExistingRecordIdentifier, options);\n if (pendingRequest) {\n return pendingRequest as Promise<T>;\n }\n\n if (useLink) {\n assert(`Expected a related link when calling store.findBelongsTo, found ${String(links)}`, links && links.related);\n return _findBelongsTo(store, record, links.related, field, options) as Promise<T>;\n }\n\n assert(`Expected an identifier`, Array.isArray(identifiers) && identifiers.length === 1);\n\n const manager = store._fetchManager;\n assertIdentifierHasId(identifier);\n\n return options.reload\n ? (manager.scheduleFetch(identifier, options, context.request) as Promise<T>)\n : (manager.fetchDataIfNeededForIdentifier(identifier, options, context.request) as Promise<T>);\n}\n\nfunction findHasMany<T>(context: StoreRequestContext): Promise<T> {\n const { store, data, records: identifiers } = context.request;\n const { options, record, links, useLink, field } = data as {\n record: StableRecordIdentifier;\n options: Record<string, unknown>;\n links?: PaginationLinks | Links;\n useLink: boolean;\n field: RelationshipSchema;\n };\n upgradeStore(store);\n\n // link case\n if (useLink) {\n const adapter = store.adapterFor(record.type);\n /*\n If a relationship was originally populated by the adapter as a link\n (as opposed to a list of IDs), this method is called when the\n relationship is fetched.\n\n The link (which is usually a URL) is passed through unchanged, so the\n adapter can make whatever request it wants.\n\n The usual use-case is for the server to register a URL as a link, and\n then use that URL in the future to make a request for the relationship.\n */\n assert(`You tried to load a hasMany relationship but you have no adapter (for ${record.type})`, adapter);\n assert(\n `You tried to load a hasMany relationship from a specified 'link' in the original payload but your adapter does not implement 'findHasMany'`,\n typeof adapter.findHasMany === 'function'\n );\n assert(`Expected a related link when calling store.findHasMany, found ${String(links)}`, links && links.related);\n\n return _findHasMany(adapter, store, record, links.related, field, options) as Promise<T>;\n }\n\n // identifiers case\n assert(`Expected an array of identifiers to fetch`, Array.isArray(identifiers));\n const fetches = new Array<globalThis.Promise<StableRecordIdentifier>>(identifiers.length);\n const manager = store._fetchManager;\n\n for (let i = 0; i < identifiers.length; i++) {\n const identifier = identifiers[i];\n // TODO we probably can be lenient here and return from cache for the isNew case\n assertIdentifierHasId(identifier);\n fetches[i] = options.reload\n ? manager.scheduleFetch(identifier, options, context.request)\n : manager.fetchDataIfNeededForIdentifier(identifier, options, context.request);\n }\n\n return Promise.all(fetches) as Promise<T>;\n}\n\nfunction saveRecord<T>(context: StoreRequestContext): Promise<T> {\n const { store, data, op: operation } = context.request;\n const { options, record: identifier } = data as { record: StableRecordIdentifier; options: Record<string, unknown> };\n\n upgradeStore(store);\n\n store.cache.willCommit(identifier, context);\n\n const saveOptions = Object.assign(\n { [SaveOp]: operation as 'updateRecord' | 'deleteRecord' | 'createRecord' },\n options\n );\n const fetchManagerPromise = store._fetchManager.scheduleSave(identifier, saveOptions);\n\n return fetchManagerPromise\n .then((payload) => {\n if (LOG_PAYLOADS) {\n try {\n const payloadCopy: unknown = payload ? JSON.parse(JSON.stringify(payload)) : payload;\n // eslint-disable-next-line no-console\n console.log(`EmberData | Payload - ${operation}`, payloadCopy);\n } catch {\n // eslint-disable-next-line no-console\n console.log(`EmberData | Payload - ${operation}`, payload);\n }\n }\n let result: SingleResourceDataDocument;\n store._join(() => {\n // @ts-expect-error we don't have access to a response in legacy\n result = store.cache.didCommit(identifier, { request: context.request, content: payload });\n });\n\n // blatantly lie if we were a createRecord request\n // to give some semblance of cache-control to the\n // CachePolicy while legacy is still around\n if (store.lifetimes?.didRequest && operation === 'createRecord') {\n store.lifetimes.didRequest(context.request, { status: 201 } as Response, null, store);\n }\n return store.peekRecord(result!.data!);\n })\n .catch((e: unknown) => {\n let err = e;\n if (!e) {\n err = new Error(`Unknown Error Occurred During Request`);\n } else if (typeof e === 'string') {\n err = new Error(e);\n }\n adapterDidInvalidate(store, identifier, err as Error);\n throw err;\n }) as Promise<T>;\n}\n\nfunction adapterDidInvalidate(\n store: Store,\n identifier: StableRecordIdentifier,\n error: Error & { errors?: ApiError[]; isAdapterError?: true; code?: string }\n) {\n upgradeStore(store);\n if (error && error.isAdapterError === true && error.code === 'InvalidError') {\n const serializer = store.serializerFor(identifier.type) as SerializerWithParseErrors;\n\n // TODO @deprecate extractErrors being called\n // TODO remove extractErrors from the default serializers.\n if (serializer && typeof serializer.extractErrors === 'function') {\n const errorsHash = serializer.extractErrors(\n store,\n store.modelFor(identifier.type),\n error,\n identifier.id\n ) as Record<string, string | string[]>;\n error.errors = errorsHashToArray(errorsHash);\n }\n }\n const cache = store.cache;\n\n if (error.errors) {\n assert(\n `Expected the cache in use by resource ${String(\n identifier\n )} to have a getErrors(identifier) method for retrieving errors.`,\n typeof cache.getErrors === 'function'\n );\n\n let jsonApiErrors: ApiError[] = error.errors;\n if (jsonApiErrors.length === 0) {\n jsonApiErrors = [{ title: 'Invalid Error', detail: '', source: { pointer: '/data' } }];\n }\n cache.commitWasRejected(identifier, jsonApiErrors);\n } else {\n cache.commitWasRejected(identifier);\n }\n}\n\nfunction makeArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n\nconst PRIMARY_ATTRIBUTE_KEY = 'base';\nfunction errorsHashToArray(errors: Record<string, string | string[]>): ApiError[] {\n const out: ApiError[] = [];\n\n if (errors) {\n Object.keys(errors).forEach((key) => {\n const messages = makeArray(errors[key]);\n for (let i = 0; i < messages.length; i++) {\n let title = 'Invalid Attribute';\n let pointer = `/data/attributes/${key}`;\n if (key === PRIMARY_ATTRIBUTE_KEY) {\n title = 'Invalid Document';\n pointer = `/data`;\n }\n out.push({\n title: title,\n detail: messages[i],\n source: {\n pointer: pointer,\n },\n });\n }\n });\n }\n\n return out;\n}\n\nfunction findRecord<T>(context: StoreRequestContext): Promise<T> {\n const { store, data } = context.request;\n const { record: identifier, options } = data as {\n record: StableExistingRecordIdentifier;\n options: { reload?: boolean; backgroundReload?: boolean };\n };\n upgradeStore(store);\n let promise: Promise<StableRecordIdentifier>;\n\n // if not loaded start loading\n if (!store._instanceCache.recordIsLoaded(identifier)) {\n promise = store._fetchManager.fetchDataIfNeededForIdentifier(identifier, options, context.request);\n\n // Refetch if the reload option is passed\n } else if (options.reload) {\n assertIdentifierHasId(identifier);\n\n promise = store._fetchManager.scheduleFetch(identifier, options, context.request);\n } else {\n let snapshot: Snapshot | null = null;\n const adapter = store.adapterFor(identifier.type);\n\n // Refetch the record if the adapter thinks the record is stale\n if (\n typeof options.reload === 'undefined' &&\n adapter.shouldReloadRecord &&\n adapter.shouldReloadRecord(store, (snapshot = store._fetchManager.createSnapshot(identifier, options)))\n ) {\n assertIdentifierHasId(identifier);\n if (DEBUG) {\n promise = store._fetchManager.scheduleFetch(\n identifier,\n Object.assign({}, options, { reload: true }),\n context.request\n );\n } else {\n options.reload = true;\n promise = store._fetchManager.scheduleFetch(identifier, options, context.request);\n }\n } else {\n // Trigger the background refetch if backgroundReload option is passed\n if (\n options.backgroundReload !== false &&\n (options.backgroundReload ||\n !adapter.shouldBackgroundReloadRecord ||\n adapter.shouldBackgroundReloadRecord(\n store,\n (snapshot = snapshot || store._fetchManager.createSnapshot(identifier, options))\n ))\n ) {\n assertIdentifierHasId(identifier);\n\n if (DEBUG) {\n void store._fetchManager.scheduleFetch(\n identifier,\n Object.assign({}, options, { backgroundReload: true }),\n context.request\n );\n } else {\n options.backgroundReload = true;\n void store._fetchManager.scheduleFetch(identifier, options, context.request);\n }\n }\n\n // Return the cached record\n promise = Promise.resolve(identifier) as Promise<StableRecordIdentifier>;\n }\n }\n\n return promise.then((i: StableRecordIdentifier) => store.peekRecord(i)) as Promise<T>;\n}\n\nfunction findAll<T>(context: StoreRequestContext): Promise<T> {\n const { store, data } = context.request;\n const { type, options } = data as {\n type: string;\n options: { reload?: boolean; backgroundReload?: boolean };\n };\n upgradeStore(store);\n const adapter = store.adapterFor(type);\n\n assert(`You tried to load all records but you have no adapter (for ${type})`, adapter);\n assert(\n `You tried to load all records but your adapter does not implement 'findAll'`,\n typeof adapter.findAll === 'function'\n );\n\n // avoid initializing the liveArray just to set `isUpdating`\n const maybeRecordArray = store.recordArrayManager._live.get(type);\n const snapshotArray = new SnapshotRecordArray(store, type, options);\n\n const shouldReload =\n options.reload ||\n (options.reload !== false &&\n ((adapter.shouldReloadAll && adapter.shouldReloadAll(store, snapshotArray)) ||\n (!adapter.shouldReloadAll && snapshotArray.length === 0)));\n\n let fetch: Promise<T> | undefined;\n if (shouldReload) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n maybeRecordArray && (maybeRecordArray.isUpdating = true);\n fetch = _findAll(adapter, store, type, snapshotArray, context.request, true);\n } else {\n fetch = Promise.resolve(store.peekAll(type)) as Promise<T>;\n\n if (\n options.backgroundReload ||\n (options.backgroundReload !== false &&\n (!adapter.shouldBackgroundReloadAll || adapter.shouldBackgroundReloadAll(store, snapshotArray)))\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n maybeRecordArray && (maybeRecordArray.isUpdating = true);\n void _findAll(adapter, store, type, snapshotArray, context.request, false);\n }\n }\n\n return fetch;\n}\n\nfunction _findAll<T>(\n adapter: MinimumAdapterInterface,\n store: Store,\n type: string,\n snapshotArray: SnapshotRecordArray,\n request: ImmutableRequestInfo,\n isAsyncFlush: boolean\n): Promise<T> {\n const schema = store.modelFor(type);\n let promise: Promise<T> = Promise.resolve().then(() =>\n adapter.findAll(store, schema, null, snapshotArray)\n ) as Promise<T>;\n\n promise = promise.then((adapterPayload: T) => {\n assert(\n `You made a 'findAll' request for '${type}' records, but the adapter's response did not have any data`,\n payloadIsNotBlank(adapterPayload)\n );\n upgradeStore(store);\n const serializer = store.serializerFor(type);\n const payload = normalizeResponseHelper(serializer, store, schema, adapterPayload, null, 'findAll');\n\n store._push(payload, isAsyncFlush);\n snapshotArray._recordArray.isUpdating = false;\n\n if (LOG_PAYLOADS) {\n // eslint-disable-next-line no-console\n console.log(`request: findAll<${type}> background reload complete`);\n }\n return snapshotArray._recordArray;\n }) as Promise<T>;\n\n if (TESTING) {\n if (!request.disableTestWaiter) {\n const { waitForPromise } = importSync('@ember/test-waiters') as {\n waitForPromise: <PT>(promise: Promise<PT>) => Promise<PT>;\n };\n promise = waitForPromise(promise);\n }\n }\n\n return promise;\n}\n\nfunction query<T>(context: StoreRequestContext): Promise<T> {\n const { store, data } = context.request;\n upgradeStore(store);\n let { options } = data as {\n options: { _recordArray?: CollectionRecordArray; adapterOptions?: Record<string, unknown> };\n };\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { type, query } = data as {\n type: string;\n query: Record<string, unknown>;\n options: { _recordArray?: CollectionRecordArray; adapterOptions?: Record<string, unknown> };\n };\n const adapter = store.adapterFor(type);\n\n assert(`You tried to make a query but you have no adapter (for ${type})`, adapter);\n assert(`You tried to make a query but your adapter does not implement 'query'`, typeof adapter.query === 'function');\n\n const recordArray =\n options._recordArray ||\n store.recordArrayManager.createArray({\n type,\n query,\n });\n\n if (DEBUG) {\n options = Object.assign({}, options);\n delete options._recordArray;\n } else {\n delete options._recordArray;\n }\n const schema = store.modelFor(type);\n const promise = Promise.resolve().then(() => adapter.query(store, schema, query, recordArray, options));\n\n return promise.then((adapterPayload) => {\n const serializer = store.serializerFor(type);\n const payload = normalizeResponseHelper(\n serializer,\n store,\n schema,\n adapterPayload as Record<string, unknown>,\n null,\n 'query'\n );\n const identifiers = store._push(payload, true);\n\n assert(\n 'The response to store.query is expected to be an array but it was a single record. Please wrap your response in an array or use `store.queryRecord` to query for a single record.',\n Array.isArray(identifiers)\n );\n\n store.recordArrayManager.populateManagedArray(recordArray, identifiers, payload as CollectionResourceDocument);\n\n return recordArray;\n }) as Promise<T>;\n}\n\nfunction assertSingleResourceDocument(payload: JsonApiDocument): asserts payload is SingleResourceDocument {\n assert(\n `Expected the primary data returned by the serializer for a 'queryRecord' response to be a single object or null but instead it was an array.`,\n !Array.isArray(payload.data)\n );\n}\n\nfunction queryRecord<T>(context: StoreRequestContext): Promise<T> {\n const { store, data } = context.request;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { type, query, options } = data as { type: string; query: Record<string, unknown>; options: object };\n upgradeStore(store);\n const adapter = store.adapterFor(type);\n\n assert(`You tried to make a query but you have no adapter (for ${type})`, adapter);\n assert(\n `You tried to make a query but your adapter does not implement 'queryRecord'`,\n typeof adapter.queryRecord === 'function'\n );\n\n const schema = store.modelFor(type);\n const promise = Promise.resolve().then(() => adapter.queryRecord(store, schema, query, options)) as Promise<T>;\n\n return promise.then((adapterPayload: T) => {\n const serializer = store.serializerFor(type);\n const payload = normalizeResponseHelper(\n serializer,\n store,\n schema,\n adapterPayload as Record<string, unknown>,\n null,\n 'queryRecord'\n );\n\n assertSingleResourceDocument(payload);\n\n const identifier = store._push(payload, true) as StableRecordIdentifier;\n return identifier ? store.peekRecord(identifier) : null;\n }) as Promise<T>;\n}\n","import { getOwner } from '@ember/application';\nimport { deprecate } from '@ember/debug';\n\nimport type Store from '@ember-data/store';\nimport { recordIdentifierFor } from '@ember-data/store';\nimport { DEPRECATE_JSON_API_FALLBACK } from '@warp-drive/build-config/deprecations';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { ObjectValue } from '@warp-drive/core-types/json/raw';\n\nimport { FetchManager, upgradeStore } from './-private';\nimport { normalizeModelName } from './builders/utils';\nimport type { AdapterPayload, MinimumAdapterInterface } from './legacy-network-handler/minimum-adapter-interface';\nimport type {\n MinimumSerializerInterface,\n SerializerOptions,\n} from './legacy-network-handler/minimum-serializer-interface';\n\nexport { LegacyNetworkHandler } from './legacy-network-handler/legacy-network-handler';\n\nexport type { MinimumAdapterInterface, MinimumSerializerInterface, SerializerOptions, AdapterPayload };\n\n/**\n * @module @ember-data/store\n * @class Store\n */\nexport type LegacyStoreCompat = {\n _fetchManager: FetchManager;\n adapterFor(this: Store, modelName: string): MinimumAdapterInterface;\n adapterFor(this: Store, modelName: string, _allowMissing: true): MinimumAdapterInterface | undefined;\n\n serializerFor<K extends string>(modelName: K, _allowMissing?: boolean): MinimumSerializerInterface | null;\n\n normalize(modelName: string, payload: ObjectValue): ObjectValue;\n pushPayload(modelName: string, payload: ObjectValue): void;\n serializeRecord(record: unknown, options?: SerializerOptions): unknown;\n\n _adapterCache: Record<string, MinimumAdapterInterface & { store: Store }>;\n _serializerCache: Record<string, MinimumSerializerInterface & { store: Store }>;\n};\n\nexport type CompatStore = Store & LegacyStoreCompat;\n\n/**\n Returns an instance of the adapter for a given type. For\n example, `adapterFor('person')` will return an instance of\n the adapter located at `app/adapters/person.js`\n\n If no `person` adapter is found, this method will look\n for an `application` adapter (the default adapter for\n your entire application).\n\n @method adapterFor\n @public\n @param {String} modelName\n @return Adapter\n */\nexport function adapterFor(this: Store, modelName: string): MinimumAdapterInterface;\nexport function adapterFor(this: Store, modelName: string, _allowMissing: true): MinimumAdapterInterface | undefined;\nexport function adapterFor(this: Store, modelName: string, _allowMissing?: true): MinimumAdapterInterface | undefined {\n assert(\n `Attempted to call store.adapterFor(), but the store instance has already been destroyed.`,\n !(this.isDestroying || this.isDestroyed)\n );\n assert(`You need to pass a model name to the store's adapterFor method`, modelName);\n assert(\n `Passing classes to store.adapterFor has been removed. Please pass a dasherized string instead of ${modelName}`,\n typeof modelName === 'string'\n );\n upgradeStore(this);\n this._adapterCache =\n this._adapterCache || (Object.create(null) as Record<string, MinimumAdapterInterface & { store: Store }>);\n\n const normalizedModelName = normalizeModelName(modelName);\n\n const { _adapterCache } = this;\n let adapter: (MinimumAdapterInterface & { store: Store }) | undefined = _adapterCache[normalizedModelName];\n if (adapter) {\n return adapter;\n }\n\n const owner = getOwner(this)!;\n\n // name specific adapter\n adapter = owner.lookup(`adapter:${normalizedModelName}`) as (MinimumAdapterInterface & { store: Store }) | undefined;\n if (adapter !== undefined) {\n _adapterCache[normalizedModelName] = adapter;\n return adapter;\n }\n\n // no adapter found for the specific name, fallback and check for application adapter\n adapter = _adapterCache.application || owner.lookup('adapter:application');\n if (adapter !== undefined) {\n _adapterCache[normalizedModelName] = adapter;\n _adapterCache.application = adapter;\n return adapter;\n }\n\n if (DEPRECATE_JSON_API_FALLBACK) {\n // final fallback, no model specific adapter, no application adapter, no\n // `adapter` property on store: use json-api adapter\n adapter = _adapterCache['-json-api'] || owner.lookup('adapter:-json-api');\n if (adapter !== undefined) {\n deprecate(\n `Your application is utilizing a deprecated hidden fallback adapter (-json-api). Please implement an application adapter to function as your fallback.`,\n false,\n {\n id: 'ember-data:deprecate-secret-adapter-fallback',\n for: 'ember-data',\n until: '5.0',\n since: { available: '4.5', enabled: '4.5' },\n }\n );\n _adapterCache[normalizedModelName] = adapter;\n _adapterCache['-json-api'] = adapter;\n\n return adapter;\n }\n }\n\n assert(\n `No adapter was found for '${modelName}' and no 'application' adapter was found as a fallback.`,\n _allowMissing\n );\n}\n\n/**\n Returns an instance of the serializer for a given type. For\n example, `serializerFor('person')` will return an instance of\n `App.PersonSerializer`.\n\n If no `App.PersonSerializer` is found, this method will look\n for an `App.ApplicationSerializer` (the default serializer for\n your entire application).\n\n If a serializer cannot be found on the adapter, it will fall back\n to an instance of `JSONSerializer`.\n\n @method serializerFor\n @public\n @param {String} modelName the record to serialize\n @return {Serializer}\n */\nexport function serializerFor(this: Store, modelName: string): MinimumSerializerInterface | null {\n assert(\n `Attempted to call store.serializerFor(), but the store instance has already been destroyed.`,\n !(this.isDestroying || this.isDestroyed)\n );\n assert(`You need to pass a model name to the store's serializerFor method`, modelName);\n assert(\n `Passing classes to store.serializerFor has been removed. Please pass a dasherized string instead of ${modelName}`,\n typeof modelName === 'string'\n );\n upgradeStore(this);\n this._serializerCache =\n this._serializerCache || (Object.create(null) as Record<string, MinimumSerializerInterface & { store: Store }>);\n const normalizedModelName = normalizeModelName(modelName);\n\n const { _serializerCache } = this;\n let serializer: (MinimumSerializerInterface & { store: Store }) | undefined = _serializerCache[normalizedModelName];\n if (serializer) {\n return serializer;\n }\n\n // by name\n const owner = getOwner(this)!;\n serializer = owner.lookup(`serializer:${normalizedModelName}`) as\n | (MinimumSerializerInterface & { store: Store })\n | undefined;\n if (serializer !== undefined) {\n _serializerCache[normalizedModelName] = serializer;\n return serializer;\n }\n\n // no serializer found for the specific model, fallback and check for application serializer\n serializer = _serializerCache.application || owner.lookup('serializer:application');\n if (serializer !== undefined) {\n _serializerCache[normalizedModelName] = serializer;\n _serializerCache.application = serializer;\n return serializer;\n }\n\n return null;\n}\n\n/**\n `normalize` converts a json payload into the normalized form that\n [push](../methods/push?anchor=push) expects.\n\n Example\n\n ```js\n socket.on('message', function(message) {\n let modelName = message.model;\n let data = message.data;\n store.push(store.normalize(modelName, data));\n });\n ```\n\n @method normalize\n @public\n @param {String} modelName The name of the model type for this payload\n @param {Object} payload\n @return {Object} The normalized payload\n */\n// TODO @runspired @deprecate users should call normalize on the associated serializer directly\nexport function normalize(this: Store, modelName: string, payload: ObjectValue) {\n upgradeStore(this);\n assert(\n `Attempted to call store.normalize(), but the store instance has already been destroyed.`,\n !(this.isDestroying || this.isDestroyed)\n );\n assert(`You need to pass a model name to the store's normalize method`, modelName);\n assert(\n `Passing classes to store methods has been removed. Please pass a dasherized string instead of ${typeof modelName}`,\n typeof modelName === 'string'\n );\n const normalizedModelName = normalizeModelName(modelName);\n const serializer = this.serializerFor(normalizedModelName);\n const schema = this.modelFor(normalizedModelName);\n assert(\n `You must define a normalize method in your serializer in order to call store.normalize`,\n typeof serializer?.normalize === 'function'\n );\n return serializer.normalize(schema, payload);\n}\n\n/**\n Push some raw data into the store.\n\n This method can be used both to push in brand new\n records, as well as to update existing records. You\n can push in more than one type of object at once.\n All objects should be in the format expected by the\n serializer.\n\n ```app/serializers/application.js\n import RESTSerializer from '@ember-data/serializer/rest';\n\n export default class ApplicationSerializer extends RESTSerializer;\n ```\n\n ```js\n let pushData = {\n posts: [\n { id: 1, postTitle: \"Great post\", commentIds: [2] }\n ],\n comments: [\n { id: 2, commentBody: \"Insightful comment\" }\n ]\n }\n\n store.pushPayload(pushData);\n ```\n\n By default, the data will be deserialized using a default\n serializer (the application serializer if it exists).\n\n Alternatively, `pushPayload` will accept a model type which\n will determine which serializer will process the payload.\n\n ```app/serializers/application.js\n import RESTSerializer from '@ember-data/serializer/rest';\n\n export default class ApplicationSerializer extends RESTSerializer;\n ```\n\n ```app/serializers/post.js\n import JSONSerializer from '@ember-data/serializer/json';\n\n export default JSONSerializer;\n ```\n\n ```js\n store.pushPayload(pushData); // Will use the application serializer\n store.pushPayload('post', pushData); // Will use the post serializer\n ```\n\n @method pushPayload\n @public\n @param {String} modelName Optionally, a model type used to determine which serializer will be used\n @param {Object} inputPayload\n */\n// TODO @runspired @deprecate pushPayload in favor of looking up the serializer\nexport function pushPayload(this: Store, modelName: string, inputPayload: ObjectValue): void {\n upgradeStore(this);\n assert(\n `Attempted to call store.pushPayload(), but the store instance has already been destroyed.`,\n !(this.isDestroying || this.isDestroyed)\n );\n\n const payload: ObjectValue = inputPayload || (modelName as unknown as ObjectValue);\n const normalizedModelName = inputPayload ? normalizeModelName(modelName) : 'application';\n const serializer = this.serializerFor(normalizedModelName);\n\n assert(\n `You cannot use 'store.pushPayload(<type>, <payload>)' unless the serializer for '${normalizedModelName}' defines 'pushPayload'`,\n serializer && typeof serializer.pushPayload === 'function'\n );\n serializer.pushPayload(this, payload);\n}\n\n// TODO @runspired @deprecate records should implement their own serialization if desired\nexport function serializeRecord(this: Store, record: unknown, options?: SerializerOptions): unknown {\n upgradeStore(this);\n // TODO we used to check if the record was destroyed here\n if (!this._fetchManager) {\n this._fetchManager = new FetchManager(this);\n }\n\n return this._fetchManager.createSnapshot(recordIdentifierFor(record)).serialize(options);\n}\n\nexport function cleanup(this: Store) {\n upgradeStore(this);\n // enqueue destruction of any adapters/serializers we have created\n for (const adapterName in this._adapterCache) {\n const adapter = this._adapterCache[adapterName];\n if (typeof adapter.destroy === 'function') {\n adapter.destroy();\n }\n }\n\n for (const serializerName in this._serializerCache) {\n const serializer = this._serializerCache[serializerName];\n if (typeof serializer.destroy === 'function') {\n serializer.destroy();\n }\n }\n}\n"],"names":["_findHasMany","adapter","store","identifier","link","relationship","options","promise","Promise","resolve","then","snapshot","_fetchManager","createSnapshot","useLink","relatedLink","href","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","findHasMany","guardDestroyedStore","adapterPayload","record","_instanceCache","getRecord","_objectIsAlive","deprecations","DEPRECATE_RSVP_PROMISE","deprecate","type","id","until","for","since","available","enabled","name","JSON","stringify","payloadIsNotBlank","modelClass","modelFor","serializer","serializerFor","payload","normalizeResponseHelper","Array","isArray","data","syncRelationshipDataFromLink","_push","_guard","_bind","_findBelongsTo","adapterFor","findBelongsTo","links","meta","parentIdentifier","relationshipData","iterateData","index","ensureRelationshipIsSetToParent","relatedDataHash","parentPayload","relationships","included","push","parentRelationship","inverse","getInverse","inverseKey","kind","relationshipDataPointsToParent","inspect","thing","quotedType","quotedInverse","expected","expectedModel","got","prefix","path","other","relationshipFetched","includedRecord","message","join","fixRelationshipData","metaIsRelationshipDefinition","_inverseKey","inverseForRelationship","key","definition","schema","fields","get","DEPRECATE_RELATIONSHIPS_WITHOUT_INVERSE","length","lhs_relationshipName","parentType","i","entry","validateRelationshipEntry","relationshipKind","parentRelationshipData","relData","found","find","v","Object","assign","parentModelID","toString","PotentialLegacyOperations","Set","LegacyNetworkHandler","request","context","next","url","op","has","FetchManager","findRecord","findAll","query","queryRecord","saveRecord","records","identifiers","field","pendingRequest","getPendingFetch","String","related","manager","assertIdentifierHasId","reload","scheduleFetch","fetchDataIfNeededForIdentifier","fetches","all","operation","cache","willCommit","saveOptions","SaveOp","fetchManagerPromise","scheduleSave","activeLogging","LOG_PAYLOADS","debug","globalThis","getWarpDriveRuntimeConfig","payloadCopy","parse","console","log","result","_join","didCommit","content","lifetimes","didRequest","status","peekRecord","catch","e","err","adapterDidInvalidate","error","isAdapterError","code","extractErrors","errorsHash","errors","errorsHashToArray","getErrors","jsonApiErrors","title","detail","source","pointer","commitWasRejected","makeArray","value","PRIMARY_ATTRIBUTE_KEY","out","keys","forEach","messages","recordIsLoaded","shouldReloadRecord","backgroundReload","shouldBackgroundReloadRecord","maybeRecordArray","recordArrayManager","_live","snapshotArray","SnapshotRecordArray","shouldReload","shouldReloadAll","fetch","isUpdating","_findAll","peekAll","shouldBackgroundReloadAll","isAsyncFlush","_recordArray","TESTING","disableTestWaiter","waitForPromise","importSync","recordArray","createArray","populateManagedArray","assertSingleResourceDocument","modelName","_allowMissing","isDestroying","isDestroyed","_adapterCache","create","normalizedModelName","normalizeModelName","owner","getOwner","lookup","undefined","application","DEPRECATE_JSON_API_FALLBACK","_serializerCache","normalize","pushPayload","inputPayload","serializeRecord","recordIdentifierFor","serialize","cleanup","adapterName","destroy","serializerName"],"mappings":";;;;;;;AAkBO,SAASA,YAAYA,CAC1BC,OAAgC,EAChCC,KAAY,EACZC,UAAkC,EAClCC,IAAsC,EACtCC,YAAgC,EAChCC,OAA0B,EACiB;EAE3C,IAAIC,OAAyB,GAAGC,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,MAAM;IAC3D,MAAMC,QAAQ,GAAGT,KAAK,CAACU,aAAa,CAACC,cAAc,CAACV,UAAU,EAAEG,OAAO,CAAC;IACxE,MAAMQ,OAAO,GAAG,CAACV,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ;IACjD,MAAMW,WAAW,GAAGD,OAAO,GAAGV,IAAI,GAAGA,IAAI,CAACY,IAAI;IAC9CC,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;QAAA,MAAAC,IAAAA,KAAA,CACE,CAAyM,uMAAA,CAAA,CAAA;AAAA;AAAA,KAAA,EACzMR,WAAW,CAAA,GAAA,EAAA;IAEbE,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;QAAA,MAAAC,IAAAA,KAAA,CACE,CAAiE,+DAAA,CAAA,CAAA;AAAA;AAAA,KAAA,EACjE,OAAOtB,OAAO,CAACuB,WAAW,KAAK,UAAU,CAAA,GAAA,EAAA;IAE3C,OAAOvB,OAAO,CAACuB,WAAW,CAACtB,KAAK,EAAES,QAAQ,EAAEI,WAAW,EAAEV,YAAY,CAAC;AACxE,GAAC,CAAC;AAEFE,EAAAA,OAAO,GAAGkB,mBAAmB,CAAClB,OAAO,EAAEL,KAAK,CAAC;AAC7CK,EAAAA,OAAO,GAAGA,OAAO,CAACG,IAAI,CAAEgB,cAAc,IAAK;IACzC,MAAMC,MAAM,GAAGzB,KAAK,CAAC0B,cAAc,CAACC,SAAS,CAAC1B,UAAU,CAAC;AAEzD,IAAA,IAAI,CAAC2B,cAAc,CAACH,MAAM,CAAC,EAAE;MAC3B,IAAAV,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAY,YAAA,CAAAC,sBAAA,CAA4B,EAAA;QAC1BC,SAAS,CACP,0BAA0B5B,YAAY,CAAC6B,IAAI,CAA6F,2FAAA,CAAA,EACxI,KAAK,EACL;AACEC,UAAAA,EAAE,EAAE,kCAAkC;AACtCC,UAAAA,KAAK,EAAE,KAAK;AACZC,UAAAA,GAAG,EAAE,mBAAmB;AACxBC,UAAAA,KAAK,EAAE;AACLC,YAAAA,SAAS,EAAE,KAAK;AAChBC,YAAAA,OAAO,EAAE;AACX;AACF,SACF,CAAC;AACH;AACF;IAEAvB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,QAAA,MAAA,IAAAC,KAAA,CACE,CAAA,uCAAA,EAA0CpB,UAAU,CAAC+B,IAAI,CACvD7B,IAAAA,EAAAA,YAAY,CAACoC,IAAI,+BACYC,IAAI,CAACC,SAAS,CAACvC,IAAI,CAAC,CAAsD,oDAAA,CAAA,CAAA;AAAA;KACzGwC,EAAAA,iBAAiB,CAAClB,cAAc,CAAC,CAAA,GAAA,EAAA;IAEnC,MAAMmB,UAAU,GAAG3C,KAAK,CAAC4C,QAAQ,CAACzC,YAAY,CAAC6B,IAAI,CAAC;IAEpD,MAAMa,UAAU,GAAG7C,KAAK,CAAC8C,aAAa,CAAC3C,YAAY,CAAC6B,IAAI,CAAC;AACzD,IAAA,IAAIe,OAAO,GAAGC,uBAAuB,CAACH,UAAU,EAAE7C,KAAK,EAAE2C,UAAU,EAAEnB,cAAc,EAAE,IAAI,EAAE,aAAa,CAAC;IAEzGT,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;QAAA,MAAAC,IAAAA,KAAA,CACE,CAAqClB,kCAAAA,EAAAA,YAAY,CAACoC,IAAI,CAAA,MAAA,EAAStC,UAAU,CAAC+B,IAAI,IAC5E/B,UAAU,CAACgC,EAAE,CACAO,YAAAA,EAAAA,IAAI,CAACC,SAAS,CAC3BvC,IACF,CAAC,CAA2G,yGAAA,CAAA,CAAA;AAAA;KAC5G,EAAA,MAAM,IAAI6C,OAAO,IAAIE,KAAK,CAACC,OAAO,CAACH,OAAO,CAACI,IAAI,CAAC,CAAA,GAAA,EAAA;IAGlDJ,OAAO,GAAGK,4BAA4B,CAACpD,KAAK,EAAE+C,OAAO,EAAE9C,UAAU,EAAsBE,YAAY,CAAC;AACpG,IAAA,OAAOH,KAAK,CAACqD,KAAK,CAACN,OAAO,EAAE,IAAI,CAAC;GAClC,EAAE,IAAI,CAAC;EAER,IAAAhC,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAY,YAAA,CAAAC,sBAAA,CAA4B,EAAA;IAC1B,MAAML,MAAM,GAAGzB,KAAK,CAAC0B,cAAc,CAACC,SAAS,CAAC1B,UAAU,CAAC;IAEzDI,OAAO,GAAGiD,MAAM,CAACjD,OAAO,EAAEkD,KAAK,CAAC3B,cAAc,EAAEH,MAAM,CAAC,CAAC;AAC1D;AAEA,EAAA,OAAOpB,OAAO;AAChB;AAEO,SAASmD,cAAcA,CAC5BxD,KAAY,EACZC,UAAkC,EAClCC,IAAsC,EACtCC,YAAgC,EAChCC,OAA0B,EAC1B;EAEA,IAAIC,OAAO,GAAGC,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,MAAM;IACzC,MAAMT,OAAO,GAAGC,KAAK,CAACyD,UAAU,CAACxD,UAAU,CAAC+B,IAAI,CAAC;IACjDjB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,QAAA,MAAA,IAAAC,KAAA,CAAO,CAAA,wEAAA,EAA2EpB,UAAU,CAAC+B,IAAI,CAAG,CAAA,CAAA,CAAA;AAAA;AAAA,KAAA,EAAEjC,OAAO,CAAA,GAAA,EAAA;IAC7GgB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;QAAA,MAAAC,IAAAA,KAAA,CACE,CAAgJ,8IAAA,CAAA,CAAA;AAAA;AAAA,KAAA,EAChJ,OAAOtB,OAAO,CAAC2D,aAAa,KAAK,UAAU,CAAA,GAAA,EAAA;IAE7C,MAAMjD,QAAQ,GAAGT,KAAK,CAACU,aAAa,CAACC,cAAc,CAACV,UAAU,EAAEG,OAAO,CAAC;IACxE,MAAMQ,OAAO,GAAG,CAACV,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ;IACjD,MAAMW,WAAW,GAAGD,OAAO,GAAGV,IAAI,GAAGA,IAAI,CAACY,IAAI;IAC9CC,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;QAAA,MAAAC,IAAAA,KAAA,CACE,CAA6M,2MAAA,CAAA,CAAA;AAAA;AAAA,KAAA,EAC7MR,WAAW,CAAA,GAAA,EAAA;IAEb,OAAOd,OAAO,CAAC2D,aAAa,CAAC1D,KAAK,EAAES,QAAQ,EAAEI,WAAW,EAAEV,YAAY,CAAC;AAC1E,GAAC,CAAC;EAEF,IAAAY,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAY,YAAA,CAAAC,sBAAA,CAA4B,EAAA;IAC1B,MAAML,MAAM,GAAGzB,KAAK,CAAC0B,cAAc,CAACC,SAAS,CAAC1B,UAAU,CAAC;AACzDI,IAAAA,OAAO,GAAGkB,mBAAmB,CAAClB,OAAO,EAAEL,KAAK,CAAC;IAC7CK,OAAO,GAAGiD,MAAM,CAACjD,OAAO,EAAEkD,KAAK,CAAC3B,cAAc,EAAEH,MAAM,CAAC,CAAC;AAC1D;AAEA,EAAA,OAAOpB,OAAO,CAACG,IAAI,CAAEgB,cAAc,IAAK;IACtC,IAAAT,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAY,YAAA,CAAAC,sBAAA,CAA4B,EAAA;MAC1B,MAAML,MAAM,GAAGzB,KAAK,CAAC0B,cAAc,CAACC,SAAS,CAAC1B,UAAU,CAAC;AAEzD,MAAA,IAAI,CAAC2B,cAAc,CAACH,MAAM,CAAC,EAAE;QAC3BM,SAAS,CACP,0BAA0B5B,YAAY,CAAC6B,IAAI,CAA6F,2FAAA,CAAA,EACxI,KAAK,EACL;AACEC,UAAAA,EAAE,EAAE,kCAAkC;AACtCC,UAAAA,KAAK,EAAE,KAAK;AACZC,UAAAA,GAAG,EAAE,mBAAmB;AACxBC,UAAAA,KAAK,EAAE;AACLC,YAAAA,SAAS,EAAE,KAAK;AAChBC,YAAAA,OAAO,EAAE;AACX;AACF,SACF,CAAC;AACH;AACF;IAEA,MAAMK,UAAU,GAAG3C,KAAK,CAAC4C,QAAQ,CAACzC,YAAY,CAAC6B,IAAI,CAAC;IACpD,MAAMa,UAAU,GAAG7C,KAAK,CAAC8C,aAAa,CAAC3C,YAAY,CAAC6B,IAAI,CAAC;AACzD,IAAA,IAAIe,OAAO,GAAGC,uBAAuB,CAACH,UAAU,EAAE7C,KAAK,EAAE2C,UAAU,EAAEnB,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC;IAE3GT,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;QAAA,MAAAC,IAAAA,KAAA,CACE,CAAuClB,oCAAAA,EAAAA,YAAY,CAACoC,IAAI,CAAA,MAAA,EAAStC,UAAU,CAAC+B,IAAI,IAC9E/B,UAAU,CAACgC,EAAE,CACAO,YAAAA,EAAAA,IAAI,CAACC,SAAS,CAC3BvC,IACF,CAAC,CAA6G,2GAAA,CAAA,CAAA;AAAA;KAC9G,EAAA,MAAM,IAAI6C,OAAO,KAAKA,OAAO,CAACI,IAAI,KAAK,IAAI,IAAK,OAAOJ,OAAO,CAACI,IAAI,KAAK,QAAQ,IAAI,CAACF,KAAK,CAACC,OAAO,CAACH,OAAO,CAACI,IAAI,CAAE,CAAC,CAAA,GAAA,EAAA;AAGpH,IAAA,IAAI,CAACJ,OAAO,CAACI,IAAI,IAAI,CAACJ,OAAO,CAACY,KAAK,IAAI,CAACZ,OAAO,CAACa,IAAI,EAAE;AACpD,MAAA,OAAO,IAAI;AACb;IAEAb,OAAO,GAAGK,4BAA4B,CAACpD,KAAK,EAAE+C,OAAO,EAAE9C,UAAU,EAAsBE,YAAY,CAAC;AAEpG,IAAA,OAAOH,KAAK,CAACqD,KAAK,CAACN,OAAO,EAAE,IAAI,CAAC;GAClC,EAAE,IAAI,CAAC;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,4BAA4BA,CACnCpD,KAAY,EACZ+C,OAAwB,EACxBc,gBAAkC,EAClC1D,YAAgC,EAChC;AACA;AACA;AACA,EAAA,MAAM2D,gBAAgB,GAAGf,OAAO,CAACI,IAAI,GACjCY,WAAW,CAAChB,OAAO,CAACI,IAAI,EAAE,CAACA,IAAI,EAAEa,KAAK,KAAK;IACzC,MAAM;MAAE/B,EAAE;AAAED,MAAAA;AAAK,KAAC,GAAGmB,IAAI;IACzBc,+BAA+B,CAACd,IAAI,EAAEU,gBAAgB,EAAE7D,KAAK,EAAEG,YAAY,EAAE6D,KAAK,CAAC;IACnF,OAAO;MAAE/B,EAAE;AAAED,MAAAA;KAAM;GACpB,CAAC,GACF,IAAI;EAER,MAAMkC,eAAe,GAAG,EAAqB;EAE7C,IAAI,MAAM,IAAInB,OAAO,EAAE;AACrBmB,IAAAA,eAAe,CAACN,IAAI,GAAGb,OAAO,CAACa,IAAI;AACrC;EACA,IAAI,OAAO,IAAIb,OAAO,EAAE;AACtBmB,IAAAA,eAAe,CAACP,KAAK,GAAGZ,OAAO,CAACY,KAAK;AACvC;EACA,IAAI,MAAM,IAAIZ,OAAO,EAAE;IACrBmB,eAAe,CAACf,IAAI,GAAGW,gBAAgB;AACzC;;AAEA;AACA;AACA,EAAA,MAAMK,aAAa,GAAG;IACpBlC,EAAE,EAAE4B,gBAAgB,CAAC5B,EAAE;IACvBD,IAAI,EAAE6B,gBAAgB,CAAC7B,IAAI;AAC3BoC,IAAAA,aAAa,EAAE;MACb,CAACjE,YAAY,CAACoC,IAAI,GAAG2B;AACvB;GACD;EAED,IAAI,CAACjB,KAAK,CAACC,OAAO,CAACH,OAAO,CAACsB,QAAQ,CAAC,EAAE;IACpCtB,OAAO,CAACsB,QAAQ,GAAG,EAAE;AACvB;AACAtB,EAAAA,OAAO,CAACsB,QAAQ,CAACC,IAAI,CAACH,aAAa,CAAC;AAEpC,EAAA,OAAOpB,OAAO;AAChB;AAKA,SAASkB,+BAA+BA,CACtClB,OAA+B,EAC/Bc,gBAAkC,EAClC7D,KAAY,EACZuE,kBAAsC,EACtCP,KAAa,EACb;EACA,MAAM;IAAE/B,EAAE;AAAED,IAAAA;AAAK,GAAC,GAAGe,OAAO;AAE5B,EAAA,IAAI,CAACA,OAAO,CAACqB,aAAa,EAAE;AAC1BrB,IAAAA,OAAO,CAACqB,aAAa,GAAG,EAAE;AAC5B;EACA,MAAM;AAAEA,IAAAA;AAAc,GAAC,GAAGrB,OAAO;EAEjC,MAAMyB,OAAO,GAAGC,UAAU,CAACzE,KAAK,EAAE6D,gBAAgB,EAAEU,kBAAkB,EAAEvC,IAAI,CAAC;AAC7E,EAAA,IAAIwC,OAAO,EAAE;IACX,MAAM;MAAEE,UAAU;AAAEC,MAAAA;AAAK,KAAC,GAAGH,OAAO;AAEpC,IAAA,MAAMV,gBAAgB,GAAGM,aAAa,CAACM,UAAU,CAAC,EAAEvB,IAAoC;IAExF,IAAApC,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAW,EAAA;AACT,MAAA,IACE,OAAO2C,gBAAgB,KAAK,WAAW,IACvC,CAACc,8BAA8B,CAACd,gBAAgB,EAAED,gBAAgB,CAAC,EACnE;AACA,QAAA,MAAMgB,OAAO,GAAG,SAASA,OAAOA,CAACC,KAAc,EAAE;AAC/C,UAAA,OAAO,IAAItC,IAAI,CAACC,SAAS,CAACqC,KAAK,CAAC,CAAG,CAAA,CAAA;SACpC;AACD,QAAA,MAAMC,UAAU,GAAGF,OAAO,CAAC7C,IAAI,CAAC;AAChC,QAAA,MAAMgD,aAAa,GAAGH,OAAO,CAACH,UAAU,CAAC;QACzC,MAAMO,QAAQ,GAAGJ,OAAO,CAAC;UACvB5C,EAAE,EAAE4B,gBAAgB,CAAC5B,EAAE;UACvBD,IAAI,EAAE6B,gBAAgB,CAAC7B;AACzB,SAAC,CAAC;QACF,MAAMkD,aAAa,GAAG,CAAA,EAAGrB,gBAAgB,CAAC7B,IAAI,CAAI6B,CAAAA,EAAAA,gBAAgB,CAAC5B,EAAE,CAAE,CAAA;AACvE,QAAA,MAAMkD,GAAG,GAAGN,OAAO,CAACf,gBAAgB,CAAC;QACrC,MAAMsB,MAAM,GAAG,OAAOpB,KAAK,KAAK,QAAQ,GAAG,CAAQA,KAAAA,EAAAA,KAAK,CAAG,CAAA,CAAA,GAAG,CAAM,IAAA,CAAA;AACpE,QAAA,MAAMqB,IAAI,GAAG,CAAA,EAAGD,MAAM,CAAA,eAAA,EAAkBV,UAAU,CAAO,KAAA,CAAA;AACzD,QAAA,MAAMvB,IAAI,GAAGF,KAAK,CAACC,OAAO,CAACY,gBAAgB,CAAC,GAAGA,gBAAgB,CAAC,CAAC,CAAC,GAAGA,gBAAgB;AACrF,QAAA,MAAMwB,KAAK,GAAGnC,IAAI,GAAG,IAAIA,IAAI,CAACnB,IAAI,CAAA,CAAA,EAAImB,IAAI,CAAClB,EAAE,CAAA,CAAA,CAAG,GAAG,IAAI;AACvD,QAAA,MAAMsD,mBAAmB,GAAG,CAAGL,EAAAA,aAAa,CAAIX,CAAAA,EAAAA,kBAAkB,CAACI,IAAI,CAAKJ,EAAAA,EAAAA,kBAAkB,CAAChC,IAAI,CAAI,EAAA,CAAA;AACvG,QAAA,MAAMiD,cAAc,GAAG,CAAA,CAAA,EAAIxD,IAAI,CAAA,CAAA,EAAIC,EAAE,CAAG,CAAA,CAAA;AACxC,QAAA,MAAMwD,OAAO,GAAG,CACd,CAAA,yDAAA,EAA4DJ,IAAI,CAAA,qBAAA,EAAwBE,mBAAmB,CAAA,YAAA,EAAeN,QAAQ,CAAA,SAAA,EAAYE,GAAG,CAAA,WAAA,CAAa,EAC9J,CAAOK,IAAAA,EAAAA,cAAc,CAAqBJ,kBAAAA,EAAAA,MAAM,CAA6BE,0BAAAA,EAAAA,KAAK,CAAWN,QAAAA,EAAAA,aAAa,CAA+BE,4BAAAA,EAAAA,aAAa,CAA8DF,2DAAAA,EAAAA,aAAa,CAAW,SAAA,CAAA,EAC5O,CAAyCO,sCAAAA,EAAAA,mBAAmB,mCAAmCR,UAAU,CAAA,gCAAA,EAAmCG,aAAa,CAAA,qCAAA,EAAwCrB,gBAAgB,CAAC7B,IAAI,CAAA,gBAAA,CAAkB,EACxO,CAAA,6BAAA,EAAgCwD,cAAc,CAAA,UAAA,EAAaR,aAAa,CAAA,iBAAA,EAAoBE,aAAa,CAAA,SAAA,EAAYK,mBAAmB,CAAiBC,cAAAA,EAAAA,cAAc,CAAG,CAAA,CAAA,EAC1K,CAA6HT,0HAAAA,EAAAA,UAAU,CAAyBG,sBAAAA,EAAAA,aAAa,aAAaF,aAAa,CAAA,cAAA,EAAiBA,aAAa,CAAA,gCAAA,CAAkC,CACxQ,CAACU,IAAI,CAAC,IAAI,CAAC;QAEZ3E,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,UAAA;YAAA,MAAAC,IAAAA,KAAA,CAAOoE,OAAO,CAAA;AAAA;AAAA,SAAA,EAAA,CAAA,GAAA,EAAA;AAChB;AACF;IAEA,IAAId,IAAI,KAAK,SAAS,IAAI,OAAOb,gBAAgB,KAAK,WAAW,EAAE;MACjEM,aAAa,CAACM,UAAU,CAAC,GAAGN,aAAa,CAACM,UAAU,CAAC,IAAI,EAAE;AAC3DN,MAAAA,aAAa,CAACM,UAAU,CAAC,CAACvB,IAAI,GAAGwC,mBAAmB,CAAC7B,gBAAgB,IAAI,IAAI,EAAEa,IAAI,EAAEd,gBAAgB,CAAC;AACxG;AACF;AACF;AAIA,SAAS+B,4BAA4BA,CAAChC,IAAa,EAAwC;AACzF,EAAA,OAAO,OAAOA,IAAI,KAAK,QAAQ,IAAI,CAAC,CAACA,IAAI,IAAI,aAAa,IAAIA,IAAI,IAAI,OAAOA,IAAI,CAACiC,WAAW,KAAK,UAAU;AAC9G;AAEA,SAASC,sBAAsBA,CAAC9F,KAAY,EAAEC,UAAyC,EAAE8F,GAAW,EAAE;AACpG,EAAA,MAAMC,UAAU,GAAGhG,KAAK,CAACiG,MAAM,CAACC,MAAM,CAACjG,UAAU,CAAC,CAACkG,GAAG,CAACJ,GAAG,CAAC;EAC3D,IAAI,CAACC,UAAU,EAAE;AACf,IAAA,OAAO,IAAI;AACb;EAEA,IAAAjF,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAY,YAAA,CAAAuE,uCAAA,CAA6C,EAAA;AAC3C,IAAA,IAAIR,4BAA4B,CAACI,UAAU,CAAC,EAAE;MAC5C,MAAMrD,UAAU,GAAG3C,KAAK,CAAC4C,QAAQ,CAAC3C,UAAU,CAAC+B,IAAI,CAAC;AAClD,MAAA,OAAOgE,UAAU,CAACH,WAAW,CAAC7F,KAAK,EAAE2C,UAAU,CAAC;AAClD;AACF;EACA5B,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAAoD,kDAAA,CAAA,CAAA;AAAA;GACpD2E,EAAAA,UAAU,CAACrB,IAAI,KAAK,SAAS,IAAIqB,UAAU,CAACrB,IAAI,KAAK,WAAW,CAAA,GAAA,EAAA;EAElE5D,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAA0E,wEAAA,CAAA,CAAA;AAAA;GAC1E2E,EAAAA,UAAU,CAAC5F,OAAO,EAAEoE,OAAO,KAAK,IAAI,IACjC,OAAOwB,UAAU,CAAC5F,OAAO,EAAEoE,OAAO,KAAK,QAAQ,IAAIwB,UAAU,CAAC5F,OAAO,CAACoE,OAAO,CAAC6B,MAAM,GAAG,CAAE,CAAA,GAAA,EAAA;AAE9F,EAAA,OAAOL,UAAU,CAAC5F,OAAO,CAACoE,OAAO;AACnC;AAEA,SAASC,UAAUA,CACjBzE,KAAY,EACZ6D,gBAAkC,EAClCU,kBAAsC,EACtCvC,IAAY,EACZ;EACA,MAAM;AAAEO,IAAAA,IAAI,EAAE+D;AAAqB,GAAC,GAAG/B,kBAAkB;EACzD,MAAM;AAAEvC,IAAAA,IAAI,EAAEuE;AAAW,GAAC,GAAG1C,gBAAgB;AAC7C,EAAA,MAAMa,UAAU,GAAGoB,sBAAsB,CAAC9F,KAAK,EAAE;AAAEgC,IAAAA,IAAI,EAAEuE;GAAY,EAAED,oBAAoB,CAAC;AAE5F,EAAA,IAAI5B,UAAU,EAAE;AACd,IAAA,MAAMsB,UAAU,GAAGhG,KAAK,CAACiG,MAAM,CAACC,MAAM,CAAC;AAAElE,MAAAA;AAAK,KAAC,CAAC,CAACmE,GAAG,CAACzB,UAAU,CAAC;IAChE3D,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;QAAA,MAAAC,IAAAA,KAAA,CACE,CAAoD,kDAAA,CAAA,CAAA;AAAA;AAAA,KAAA,EACpD2E,UAAU,KAAKA,UAAU,CAACrB,IAAI,KAAK,SAAS,IAAIqB,UAAU,CAACrB,IAAI,KAAK,WAAW,CAAC,CAAA,GAAA,EAAA;IAElF,OAAO;MACLD,UAAU;MACVC,IAAI,EAAEqB,UAAU,CAACrB;KAClB;AACH;AACF;AAEA,SAASC,8BAA8BA,CAACd,gBAAkC,EAAE7D,UAA4B,EAAW;EACjH,IAAI6D,gBAAgB,KAAK,IAAI,EAAE;AAC7B,IAAA,OAAO,KAAK;AACd;AAEA,EAAA,IAAIb,KAAK,CAACC,OAAO,CAACY,gBAAgB,CAAC,EAAE;AACnC,IAAA,IAAIA,gBAAgB,CAACuC,MAAM,KAAK,CAAC,EAAE;AACjC,MAAA,OAAO,KAAK;AACd;AACA,IAAA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG1C,gBAAgB,CAACuC,MAAM,EAAEG,CAAC,EAAE,EAAE;AAChD,MAAA,MAAMC,KAAK,GAAG3C,gBAAgB,CAAC0C,CAAC,CAAC;AACjC,MAAA,IAAIE,yBAAyB,CAACD,KAAK,EAAExG,UAAU,CAAC,EAAE;AAChD,QAAA,OAAO,IAAI;AACb;AACF;AACF,GAAC,MAAM;AACL,IAAA,OAAOyG,yBAAyB,CAAC5C,gBAAgB,EAAE7D,UAAU,CAAC;AAChE;AAEA,EAAA,OAAO,KAAK;AACd;AAEA,SAAS0F,mBAAmBA,CAC1B7B,gBAAkC,EAClC6C,gBAAyC,EACzC;EAAE1E,EAAE;AAAED,EAAAA;AAAuB,CAAC,EAC9B;AACA,EAAA,MAAM4E,sBAAsB,GAAG;IAC7B3E,EAAE;AACFD,IAAAA;GACD;EAED,IAAIe,OAA6E,GAAG,IAAI;EAExF,IAAI4D,gBAAgB,KAAK,SAAS,EAAE;AAClC,IAAA,MAAME,OAAO,GAAI/C,gBAAgB,IAAuC,EAAE;AAC1E,IAAA,IAAIA,gBAAgB,EAAE;MACpB/C,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,QAAA,IAAA,CAAAA,IAAA,EAAA;UAAA,MAAAC,IAAAA,KAAA,CAAO,+CAA+C,CAAA;AAAA;AAAA,OAAA,EAAE4B,KAAK,CAACC,OAAO,CAACY,gBAAgB,CAAC,CAAA,GAAA,EAAA;AACvF;AACA;AACA;AACA,MAAA,MAAMgD,KAAK,GAAGhD,gBAAgB,CAACiD,IAAI,CAAEC,CAAC,IAAK;AACzC,QAAA,OAAOA,CAAC,CAAChF,IAAI,KAAK4E,sBAAsB,CAAC5E,IAAI,IAAIgF,CAAC,CAAC/E,EAAE,KAAK2E,sBAAsB,CAAC3E,EAAE;AACrF,OAAC,CAAC;MACF,IAAI,CAAC6E,KAAK,EAAE;AACVD,QAAAA,OAAO,CAACvC,IAAI,CAACsC,sBAAsB,CAAC;AACtC;AACF,KAAC,MAAM;AACLC,MAAAA,OAAO,CAACvC,IAAI,CAACsC,sBAAsB,CAAC;AACtC;AACA7D,IAAAA,OAAO,GAAG8D,OAAO;AACnB,GAAC,MAAM;AACL,IAAA,MAAMA,OAAO,GAAI/C,gBAAgB,IAAqC,EAAE;AACxEmD,IAAAA,MAAM,CAACC,MAAM,CAACL,OAAO,EAAED,sBAAsB,CAAC;AAC9C7D,IAAAA,OAAO,GAAG8D,OAAO;AACnB;AAEA,EAAA,OAAO9D,OAAO;AAChB;AAEA,SAAS2D,yBAAyBA,CAAC;AAAEzE,EAAAA;AAAqB,CAAC,EAAE;AAAEA,EAAAA,EAAE,EAAEkF;AAAgC,CAAC,EAAW;EAC7G,OAAO,CAAC,CAAClF,EAAE,IAAIA,EAAE,CAACmF,QAAQ,EAAE,KAAKD,aAAa;AAChD;;AC5WA,MAAME,yBAAyB,GAAG,IAAIC,GAAG,CAAC,CACxC,YAAY,EACZ,SAAS,EACT,OAAO,EACP,aAAa,EACb,eAAe,EACf,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,CACf,CAAC;AAEK,MAAMC,oBAA6B,GAAG;AAC3CC,EAAAA,OAAOA,CAAIC,OAA4B,EAAEC,IAAe,EAAkD;AACxG;IACA,IAAID,OAAO,CAACD,OAAO,CAACG,GAAG,IAAI,CAACF,OAAO,CAACD,OAAO,CAACI,EAAE,IAAI,CAACP,yBAAyB,CAACQ,GAAG,CAACJ,OAAO,CAACD,OAAO,CAACI,EAAE,CAAC,EAAE;AACpG,MAAA,OAAOF,IAAI,CAACD,OAAO,CAACD,OAAO,CAAC;AAC9B;IAEA,MAAM;AAAExH,MAAAA;KAAO,GAAGyH,OAAO,CAACD,OAAO;AAEjC,IAAA,IAAI,CAACxH,KAAK,CAACU,aAAa,EAAE;AACxBV,MAAAA,KAAK,CAACU,aAAa,GAAG,IAAIoH,YAAY,CAAC9H,KAAK,CAAC;AAC/C;AAEA,IAAA,QAAQyH,OAAO,CAACD,OAAO,CAACI,EAAE;AACxB,MAAA,KAAK,YAAY;QACf,OAAOG,UAAU,CAACN,OAAO,CAAC;AAC5B,MAAA,KAAK,SAAS;QACZ,OAAOO,OAAO,CAACP,OAAO,CAAC;AACzB,MAAA,KAAK,OAAO;QACV,OAAOQ,KAAK,CAACR,OAAO,CAAC;AACvB,MAAA,KAAK,aAAa;QAChB,OAAOS,WAAW,CAACT,OAAO,CAAC;AAC7B,MAAA,KAAK,eAAe;QAClB,OAAO/D,aAAa,CAAC+D,OAAO,CAAC;AAC/B,MAAA,KAAK,aAAa;QAChB,OAAOnG,WAAW,CAACmG,OAAO,CAAC;AAC7B,MAAA,KAAK,cAAc;QACjB,OAAOU,UAAU,CAACV,OAAO,CAAC;AAC5B,MAAA,KAAK,cAAc;QACjB,OAAOU,UAAU,CAACV,OAAO,CAAC;AAC5B,MAAA,KAAK,cAAc;QACjB,OAAOU,UAAU,CAACV,OAAO,CAAC;AAC5B,MAAA;AACE,QAAA,OAAOC,IAAI,CAACD,OAAO,CAACD,OAAO,CAAC;AAChC;AACF;AACF;AAEA,SAAS9D,aAAaA,CAAI+D,OAA4B,EAAc;EAClE,MAAM;IAAEzH,KAAK;IAAEmD,IAAI;AAAEiF,IAAAA,OAAO,EAAEC;GAAa,GAAGZ,OAAO,CAACD,OAAO;EAC7D,MAAM;IAAEpH,OAAO;IAAEqB,MAAM;IAAEkC,KAAK;IAAE/C,OAAO;AAAE0H,IAAAA;AAAM,GAAC,GAAGnF,IAMlD;AACD,EAAA,MAAMlD,UAAU,GAAGoI,WAAW,GAAG,CAAC,CAAC;;AAGnC;AACA,EAAA,MAAME,cAAc,GAClBtI,UAAU,IAAID,KAAK,CAACU,aAAa,CAAC8H,eAAe,CAACvI,UAAU,EAAoCG,OAAO,CAAC;AAC1G,EAAA,IAAImI,cAAc,EAAE;AAClB,IAAA,OAAOA,cAAc;AACvB;AAEA,EAAA,IAAI3H,OAAO,EAAE;IACXG,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,QAAA,MAAA,IAAAC,KAAA,CAAO,CAAA,gEAAA,EAAmEoH,MAAM,CAAC9E,KAAK,CAAC,CAAE,CAAA,CAAA;AAAA;AAAA,KAAA,EAAEA,KAAK,IAAIA,KAAK,CAAC+E,OAAO,CAAA,GAAA,EAAA;AACjH,IAAA,OAAOlF,cAAc,CAACxD,KAAK,EAAEyB,MAAM,EAAEkC,KAAK,CAAC+E,OAAO,EAAEJ,KAAK,EAAElI,OAAO,CAAC;AACrE;EAEAW,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CAAO,CAAwB,sBAAA,CAAA,CAAA;AAAA;GAAE4B,EAAAA,KAAK,CAACC,OAAO,CAACmF,WAAW,CAAC,IAAIA,WAAW,CAAChC,MAAM,KAAK,CAAC,CAAA,GAAA,EAAA;AAEvF,EAAA,MAAMsC,OAAO,GAAG3I,KAAK,CAACU,aAAa;EACnCkI,qBAAqB,CAAC3I,UAAU,CAAC;AAEjC,EAAA,OAAOG,OAAO,CAACyI,MAAM,GAChBF,OAAO,CAACG,aAAa,CAAC7I,UAAU,EAAEG,OAAO,EAAEqH,OAAO,CAACD,OAAO,CAAC,GAC3DmB,OAAO,CAACI,8BAA8B,CAAC9I,UAAU,EAAEG,OAAO,EAAEqH,OAAO,CAACD,OAAO,CAAgB;AAClG;AAEA,SAASlG,WAAWA,CAAImG,OAA4B,EAAc;EAChE,MAAM;IAAEzH,KAAK;IAAEmD,IAAI;AAAEiF,IAAAA,OAAO,EAAEC;GAAa,GAAGZ,OAAO,CAACD,OAAO;EAC7D,MAAM;IAAEpH,OAAO;IAAEqB,MAAM;IAAEkC,KAAK;IAAE/C,OAAO;AAAE0H,IAAAA;AAAM,GAAC,GAAGnF,IAMlD;;AAGD;AACA,EAAA,IAAIvC,OAAO,EAAE;IACX,MAAMb,OAAO,GAAGC,KAAK,CAACyD,UAAU,CAAChC,MAAM,CAACO,IAAI,CAAC;AAC7C;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAGIjB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,QAAA,MAAA,IAAAC,KAAA,CAAO,CAAA,sEAAA,EAAyEI,MAAM,CAACO,IAAI,CAAG,CAAA,CAAA,CAAA;AAAA;AAAA,KAAA,EAAEjC,OAAO,CAAA,GAAA,EAAA;IACvGgB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;QAAA,MAAAC,IAAAA,KAAA,CACE,CAA4I,0IAAA,CAAA,CAAA;AAAA;AAAA,KAAA,EAC5I,OAAOtB,OAAO,CAACuB,WAAW,KAAK,UAAU,CAAA,GAAA,EAAA;IAE3CP,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,QAAA,MAAA,IAAAC,KAAA,CAAO,CAAA,8DAAA,EAAiEoH,MAAM,CAAC9E,KAAK,CAAC,CAAE,CAAA,CAAA;AAAA;AAAA,KAAA,EAAEA,KAAK,IAAIA,KAAK,CAAC+E,OAAO,CAAA,GAAA,EAAA;AAE/G,IAAA,OAAO5I,YAAY,CAACC,OAAO,EAAEC,KAAK,EAAEyB,MAAM,EAAEkC,KAAK,CAAC+E,OAAO,EAAEJ,KAAK,EAAElI,OAAO,CAAC;AAC5E;;AAEA;EACAW,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CAAO,CAA2C,yCAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAAE4B,KAAK,CAACC,OAAO,CAACmF,WAAW,CAAC,CAAA,GAAA,EAAA;EAC9E,MAAMW,OAAO,GAAG,IAAI/F,KAAK,CAA6CoF,WAAW,CAAChC,MAAM,CAAC;AACzF,EAAA,MAAMsC,OAAO,GAAG3I,KAAK,CAACU,aAAa;AAEnC,EAAA,KAAK,IAAI8F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6B,WAAW,CAAChC,MAAM,EAAEG,CAAC,EAAE,EAAE;AAC3C,IAAA,MAAMvG,UAAU,GAAGoI,WAAW,CAAC7B,CAAC,CAAC;AACjC;IACAoC,qBAAqB,CAAC3I,UAAU,CAAC;AACjC+I,IAAAA,OAAO,CAACxC,CAAC,CAAC,GAAGpG,OAAO,CAACyI,MAAM,GACvBF,OAAO,CAACG,aAAa,CAAC7I,UAAU,EAAEG,OAAO,EAAEqH,OAAO,CAACD,OAAO,CAAC,GAC3DmB,OAAO,CAACI,8BAA8B,CAAC9I,UAAU,EAAEG,OAAO,EAAEqH,OAAO,CAACD,OAAO,CAAC;AAClF;AAEA,EAAA,OAAOlH,OAAO,CAAC2I,GAAG,CAACD,OAAO,CAAC;AAC7B;AAEA,SAASb,UAAUA,CAAIV,OAA4B,EAAc;EAC/D,MAAM;IAAEzH,KAAK;IAAEmD,IAAI;AAAEyE,IAAAA,EAAE,EAAEsB;GAAW,GAAGzB,OAAO,CAACD,OAAO;EACtD,MAAM;IAAEpH,OAAO;AAAEqB,IAAAA,MAAM,EAAExB;AAAW,GAAC,GAAGkD,IAA4E;EAIpHnD,KAAK,CAACmJ,KAAK,CAACC,UAAU,CAACnJ,UAAU,EAAEwH,OAAO,CAAC;AAE3C,EAAA,MAAM4B,WAAW,GAAGpC,MAAM,CAACC,MAAM,CAC/B;AAAE,IAAA,CAACoC,MAAM,GAAGJ;GAA+D,EAC3E9I,OACF,CAAC;EACD,MAAMmJ,mBAAmB,GAAGvJ,KAAK,CAACU,aAAa,CAAC8I,YAAY,CAACvJ,UAAU,EAAEoJ,WAAW,CAAC;AAErF,EAAA,OAAOE,mBAAmB,CACvB/I,IAAI,CAAEuC,OAAO,IAAK;IACjB,IAAAhC,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAwI,aAAA,CAAAC,YAAA,CAAA,EAAA;AAAA,MAAA,IAAA1I,eAAA,EAAA,CAAAC,SAAA,CAAA0I,KAAA,CAAAD,YAAA,IAAAE,UAAA,CAAAC,yBAAA,EAAA,CAAAF,KAAA,CAAAD,YAAA,EAAkB;QAChB,IAAI;AACF,UAAA,MAAMI,WAAoB,GAAG/G,OAAO,GAAGP,IAAI,CAACuH,KAAK,CAACvH,IAAI,CAACC,SAAS,CAACM,OAAO,CAAC,CAAC,GAAGA,OAAO;AACpF;UACAiH,OAAO,CAACC,GAAG,CAAC,CAAA,sBAAA,EAAyBf,SAAS,CAAE,CAAA,EAAEY,WAAW,CAAC;AAChE,SAAC,CAAC,MAAM;AACN;UACAE,OAAO,CAACC,GAAG,CAAC,CAAA,sBAAA,EAAyBf,SAAS,CAAE,CAAA,EAAEnG,OAAO,CAAC;AAC5D;AACF;AAAC;AACD,IAAA,IAAImH,MAAkC;IACtClK,KAAK,CAACmK,KAAK,CAAC,MAAM;AAChB;MACAD,MAAM,GAAGlK,KAAK,CAACmJ,KAAK,CAACiB,SAAS,CAACnK,UAAU,EAAE;QAAEuH,OAAO,EAAEC,OAAO,CAACD,OAAO;AAAE6C,QAAAA,OAAO,EAAEtH;AAAQ,OAAC,CAAC;AAC5F,KAAC,CAAC;;AAEF;AACA;AACA;IACA,IAAI/C,KAAK,CAACsK,SAAS,EAAEC,UAAU,IAAIrB,SAAS,KAAK,cAAc,EAAE;MAC/DlJ,KAAK,CAACsK,SAAS,CAACC,UAAU,CAAC9C,OAAO,CAACD,OAAO,EAAE;AAAEgD,QAAAA,MAAM,EAAE;AAAI,OAAC,EAAc,IAAI,EAAExK,KAAK,CAAC;AACvF;AACA,IAAA,OAAOA,KAAK,CAACyK,UAAU,CAACP,MAAM,CAAE/G,IAAK,CAAC;AACxC,GAAC,CAAC,CACDuH,KAAK,CAAEC,CAAU,IAAK;IACrB,IAAIC,GAAG,GAAGD,CAAC;IACX,IAAI,CAACA,CAAC,EAAE;AACNC,MAAAA,GAAG,GAAG,IAAIvJ,KAAK,CAAC,uCAAuC,CAAC;AAC1D,KAAC,MAAM,IAAI,OAAOsJ,CAAC,KAAK,QAAQ,EAAE;AAChCC,MAAAA,GAAG,GAAG,IAAIvJ,KAAK,CAACsJ,CAAC,CAAC;AACpB;AACAE,IAAAA,oBAAoB,CAAC7K,KAAK,EAAEC,UAAU,EAAE2K,GAAY,CAAC;AACrD,IAAA,MAAMA,GAAG;AACX,GAAC,CAAC;AACN;AAEA,SAASC,oBAAoBA,CAC3B7K,KAAY,EACZC,UAAkC,EAClC6K,KAA4E,EAC5E;AAEA,EAAA,IAAIA,KAAK,IAAIA,KAAK,CAACC,cAAc,KAAK,IAAI,IAAID,KAAK,CAACE,IAAI,KAAK,cAAc,EAAE;IAC3E,MAAMnI,UAAU,GAAG7C,KAAK,CAAC8C,aAAa,CAAC7C,UAAU,CAAC+B,IAAI,CAA8B;;AAEpF;AACA;IACA,IAAIa,UAAU,IAAI,OAAOA,UAAU,CAACoI,aAAa,KAAK,UAAU,EAAE;MAChE,MAAMC,UAAU,GAAGrI,UAAU,CAACoI,aAAa,CACzCjL,KAAK,EACLA,KAAK,CAAC4C,QAAQ,CAAC3C,UAAU,CAAC+B,IAAI,CAAC,EAC/B8I,KAAK,EACL7K,UAAU,CAACgC,EACb,CAAsC;AACtC6I,MAAAA,KAAK,CAACK,MAAM,GAAGC,iBAAiB,CAACF,UAAU,CAAC;AAC9C;AACF;AACA,EAAA,MAAM/B,KAAK,GAAGnJ,KAAK,CAACmJ,KAAK;EAEzB,IAAI2B,KAAK,CAACK,MAAM,EAAE;IAChBpK,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,QAAA,MAAA,IAAAC,KAAA,CACE,CAAA,sCAAA,EAAyCoH,MAAM,CAC7CxI,UACF,CAAC,CAAgE,8DAAA,CAAA,CAAA;AAAA;AAAA,KAAA,EACjE,OAAOkJ,KAAK,CAACkC,SAAS,KAAK,UAAU,CAAA,GAAA,EAAA;AAGvC,IAAA,IAAIC,aAAyB,GAAGR,KAAK,CAACK,MAAM;AAC5C,IAAA,IAAIG,aAAa,CAACjF,MAAM,KAAK,CAAC,EAAE;AAC9BiF,MAAAA,aAAa,GAAG,CAAC;AAAEC,QAAAA,KAAK,EAAE,eAAe;AAAEC,QAAAA,MAAM,EAAE,EAAE;AAAEC,QAAAA,MAAM,EAAE;AAAEC,UAAAA,OAAO,EAAE;AAAQ;AAAE,OAAC,CAAC;AACxF;AACAvC,IAAAA,KAAK,CAACwC,iBAAiB,CAAC1L,UAAU,EAAEqL,aAAa,CAAC;AACpD,GAAC,MAAM;AACLnC,IAAAA,KAAK,CAACwC,iBAAiB,CAAC1L,UAAU,CAAC;AACrC;AACF;AAEA,SAAS2L,SAASA,CAAIC,KAAc,EAAO;EACzC,OAAO5I,KAAK,CAACC,OAAO,CAAC2I,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;AAC/C;AAEA,MAAMC,qBAAqB,GAAG,MAAM;AACpC,SAASV,iBAAiBA,CAACD,MAAyC,EAAc;EAChF,MAAMY,GAAe,GAAG,EAAE;AAE1B,EAAA,IAAIZ,MAAM,EAAE;IACVlE,MAAM,CAAC+E,IAAI,CAACb,MAAM,CAAC,CAACc,OAAO,CAAElG,GAAG,IAAK;MACnC,MAAMmG,QAAQ,GAAGN,SAAS,CAACT,MAAM,CAACpF,GAAG,CAAC,CAAC;AACvC,MAAA,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0F,QAAQ,CAAC7F,MAAM,EAAEG,CAAC,EAAE,EAAE;QACxC,IAAI+E,KAAK,GAAG,mBAAmB;AAC/B,QAAA,IAAIG,OAAO,GAAG,CAAoB3F,iBAAAA,EAAAA,GAAG,CAAE,CAAA;QACvC,IAAIA,GAAG,KAAK+F,qBAAqB,EAAE;AACjCP,UAAAA,KAAK,GAAG,kBAAkB;AAC1BG,UAAAA,OAAO,GAAG,CAAO,KAAA,CAAA;AACnB;QACAK,GAAG,CAACzH,IAAI,CAAC;AACPiH,UAAAA,KAAK,EAAEA,KAAK;AACZC,UAAAA,MAAM,EAAEU,QAAQ,CAAC1F,CAAC,CAAC;AACnBiF,UAAAA,MAAM,EAAE;AACNC,YAAAA,OAAO,EAAEA;AACX;AACF,SAAC,CAAC;AACJ;AACF,KAAC,CAAC;AACJ;AAEA,EAAA,OAAOK,GAAG;AACZ;AAEA,SAAShE,UAAUA,CAAIN,OAA4B,EAAc;EAC/D,MAAM;IAAEzH,KAAK;AAAEmD,IAAAA;GAAM,GAAGsE,OAAO,CAACD,OAAO;EACvC,MAAM;AAAE/F,IAAAA,MAAM,EAAExB,UAAU;AAAEG,IAAAA;AAAQ,GAAC,GAAG+C,IAGvC;AAED,EAAA,IAAI9C,OAAwC;;AAE5C;EACA,IAAI,CAACL,KAAK,CAAC0B,cAAc,CAACyK,cAAc,CAAClM,UAAU,CAAC,EAAE;AACpDI,IAAAA,OAAO,GAAGL,KAAK,CAACU,aAAa,CAACqI,8BAA8B,CAAC9I,UAAU,EAAEG,OAAO,EAAEqH,OAAO,CAACD,OAAO,CAAC;;AAElG;AACF,GAAC,MAAM,IAAIpH,OAAO,CAACyI,MAAM,EAAE;IACzBD,qBAAqB,CAAC3I,UAAU,CAAC;AAEjCI,IAAAA,OAAO,GAAGL,KAAK,CAACU,aAAa,CAACoI,aAAa,CAAC7I,UAAU,EAAEG,OAAO,EAAEqH,OAAO,CAACD,OAAO,CAAC;AACnF,GAAC,MAAM;IACL,IAAI/G,QAAyB,GAAG,IAAI;IACpC,MAAMV,OAAO,GAAGC,KAAK,CAACyD,UAAU,CAACxD,UAAU,CAAC+B,IAAI,CAAC;;AAEjD;AACA,IAAA,IACE,OAAO5B,OAAO,CAACyI,MAAM,KAAK,WAAW,IACrC9I,OAAO,CAACqM,kBAAkB,IAC1BrM,OAAO,CAACqM,kBAAkB,CAACpM,KAAK,EAAGS,QAAQ,GAAGT,KAAK,CAACU,aAAa,CAACC,cAAc,CAACV,UAAU,EAAEG,OAAO,CAAE,CAAC,EACvG;MACAwI,qBAAqB,CAAC3I,UAAU,CAAC;MACjC,IAAAc,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAW,EAAA;AACTd,QAAAA,OAAO,GAAGL,KAAK,CAACU,aAAa,CAACoI,aAAa,CACzC7I,UAAU,EACVgH,MAAM,CAACC,MAAM,CAAC,EAAE,EAAE9G,OAAO,EAAE;AAAEyI,UAAAA,MAAM,EAAE;AAAK,SAAC,CAAC,EAC5CpB,OAAO,CAACD,OACV,CAAC;AACH,OAAC,MAAM;QACLpH,OAAO,CAACyI,MAAM,GAAG,IAAI;AACrBxI,QAAAA,OAAO,GAAGL,KAAK,CAACU,aAAa,CAACoI,aAAa,CAAC7I,UAAU,EAAEG,OAAO,EAAEqH,OAAO,CAACD,OAAO,CAAC;AACnF;AACF,KAAC,MAAM;AACL;AACA,MAAA,IACEpH,OAAO,CAACiM,gBAAgB,KAAK,KAAK,KACjCjM,OAAO,CAACiM,gBAAgB,IACvB,CAACtM,OAAO,CAACuM,4BAA4B,IACrCvM,OAAO,CAACuM,4BAA4B,CAClCtM,KAAK,EACJS,QAAQ,GAAGA,QAAQ,IAAIT,KAAK,CAACU,aAAa,CAACC,cAAc,CAACV,UAAU,EAAEG,OAAO,CAChF,CAAC,CAAC,EACJ;QACAwI,qBAAqB,CAAC3I,UAAU,CAAC;QAEjC,IAAAc,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAW,EAAA;AACT,UAAA,KAAKnB,KAAK,CAACU,aAAa,CAACoI,aAAa,CACpC7I,UAAU,EACVgH,MAAM,CAACC,MAAM,CAAC,EAAE,EAAE9G,OAAO,EAAE;AAAEiM,YAAAA,gBAAgB,EAAE;AAAK,WAAC,CAAC,EACtD5E,OAAO,CAACD,OACV,CAAC;AACH,SAAC,MAAM;UACLpH,OAAO,CAACiM,gBAAgB,GAAG,IAAI;AAC/B,UAAA,KAAKrM,KAAK,CAACU,aAAa,CAACoI,aAAa,CAAC7I,UAAU,EAAEG,OAAO,EAAEqH,OAAO,CAACD,OAAO,CAAC;AAC9E;AACF;;AAEA;AACAnH,MAAAA,OAAO,GAAGC,OAAO,CAACC,OAAO,CAACN,UAAU,CAAoC;AAC1E;AACF;AAEA,EAAA,OAAOI,OAAO,CAACG,IAAI,CAAEgG,CAAyB,IAAKxG,KAAK,CAACyK,UAAU,CAACjE,CAAC,CAAC,CAAC;AACzE;AAEA,SAASwB,OAAOA,CAAIP,OAA4B,EAAc;EAC5D,MAAM;IAAEzH,KAAK;AAAEmD,IAAAA;GAAM,GAAGsE,OAAO,CAACD,OAAO;EACvC,MAAM;IAAExF,IAAI;AAAE5B,IAAAA;AAAQ,GAAC,GAAG+C,IAGzB;AAED,EAAA,MAAMpD,OAAO,GAAGC,KAAK,CAACyD,UAAU,CAACzB,IAAI,CAAC;EAEtCjB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CAAO,CAA8DW,2DAAAA,EAAAA,IAAI,CAAG,CAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAAEjC,OAAO,CAAA,GAAA,EAAA;EACrFgB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAA6E,2EAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAC7E,OAAOtB,OAAO,CAACiI,OAAO,KAAK,UAAU,CAAA,GAAA,EAAA;;AAGvC;EACA,MAAMuE,gBAAgB,GAAGvM,KAAK,CAACwM,kBAAkB,CAACC,KAAK,CAACtG,GAAG,CAACnE,IAAI,CAAC;EACjE,MAAM0K,aAAa,GAAG,IAAIC,mBAAmB,CAAC3M,KAAK,EAAEgC,IAAI,EAAE5B,OAAO,CAAC;AAEnE,EAAA,MAAMwM,YAAY,GAChBxM,OAAO,CAACyI,MAAM,IACbzI,OAAO,CAACyI,MAAM,KAAK,KAAK,KACrB9I,OAAO,CAAC8M,eAAe,IAAI9M,OAAO,CAAC8M,eAAe,CAAC7M,KAAK,EAAE0M,aAAa,CAAC,IACvE,CAAC3M,OAAO,CAAC8M,eAAe,IAAIH,aAAa,CAACrG,MAAM,KAAK,CAAE,CAAE;AAEhE,EAAA,IAAIyG,KAA6B;AACjC,EAAA,IAAIF,YAAY,EAAE;AAChB;AACAL,IAAAA,gBAAgB,KAAKA,gBAAgB,CAACQ,UAAU,GAAG,IAAI,CAAC;AACxDD,IAAAA,KAAK,GAAGE,QAAQ,CAACjN,OAAO,EAAEC,KAAK,EAAEgC,IAAI,EAAE0K,aAAa,EAAEjF,OAAO,CAACD,OAAO,EAAE,IAAI,CAAC;AAC9E,GAAC,MAAM;IACLsF,KAAK,GAAGxM,OAAO,CAACC,OAAO,CAACP,KAAK,CAACiN,OAAO,CAACjL,IAAI,CAAC,CAAe;IAE1D,IACE5B,OAAO,CAACiM,gBAAgB,IACvBjM,OAAO,CAACiM,gBAAgB,KAAK,KAAK,KAChC,CAACtM,OAAO,CAACmN,yBAAyB,IAAInN,OAAO,CAACmN,yBAAyB,CAAClN,KAAK,EAAE0M,aAAa,CAAC,CAAE,EAClG;AACA;AACAH,MAAAA,gBAAgB,KAAKA,gBAAgB,CAACQ,UAAU,GAAG,IAAI,CAAC;AACxD,MAAA,KAAKC,QAAQ,CAACjN,OAAO,EAAEC,KAAK,EAAEgC,IAAI,EAAE0K,aAAa,EAAEjF,OAAO,CAACD,OAAO,EAAE,KAAK,CAAC;AAC5E;AACF;AAEA,EAAA,OAAOsF,KAAK;AACd;AAEA,SAASE,QAAQA,CACfjN,OAAgC,EAChCC,KAAY,EACZgC,IAAY,EACZ0K,aAAkC,EAClClF,OAA6B,EAC7B2F,YAAqB,EACT;AACZ,EAAA,MAAMlH,MAAM,GAAGjG,KAAK,CAAC4C,QAAQ,CAACZ,IAAI,CAAC;EACnC,IAAI3B,OAAmB,GAAGC,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,MAC/CT,OAAO,CAACiI,OAAO,CAAChI,KAAK,EAAEiG,MAAM,EAAE,IAAI,EAAEyG,aAAa,CACpD,CAAe;AAEfrM,EAAAA,OAAO,GAAGA,OAAO,CAACG,IAAI,CAAEgB,cAAiB,IAAK;IAC5CT,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,QAAA,MAAA,IAAAC,KAAA,CACE,CAAqCW,kCAAAA,EAAAA,IAAI,CAA6D,2DAAA,CAAA,CAAA;AAAA;KACtGU,EAAAA,iBAAiB,CAAClB,cAAc,CAAC,CAAA,GAAA,EAAA;AAGnC,IAAA,MAAMqB,UAAU,GAAG7C,KAAK,CAAC8C,aAAa,CAACd,IAAI,CAAC;AAC5C,IAAA,MAAMe,OAAO,GAAGC,uBAAuB,CAACH,UAAU,EAAE7C,KAAK,EAAEiG,MAAM,EAAEzE,cAAc,EAAE,IAAI,EAAE,SAAS,CAAC;AAEnGxB,IAAAA,KAAK,CAACqD,KAAK,CAACN,OAAO,EAAEoK,YAAY,CAAC;AAClCT,IAAAA,aAAa,CAACU,YAAY,CAACL,UAAU,GAAG,KAAK;IAE7C,IAAAhM,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAwI,aAAA,CAAAC,YAAA,CAAA,EAAA;AAAA,MAAA,IAAA1I,eAAA,EAAA,CAAAC,SAAA,CAAA0I,KAAA,CAAAD,YAAA,IAAAE,UAAA,CAAAC,yBAAA,EAAA,CAAAF,KAAA,CAAAD,YAAA,EAAkB;AAChB;AACAM,QAAAA,OAAO,CAACC,GAAG,CAAC,CAAoBjI,iBAAAA,EAAAA,IAAI,8BAA8B,CAAC;AACrE;AAAC;IACD,OAAO0K,aAAa,CAACU,YAAY;AACnC,GAAC,CAAe;EAEhB,IAAArM,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAC,GAAA,CAAAmM,OAAA,CAAa,EAAA;AACX,IAAA,IAAI,CAAC7F,OAAO,CAAC8F,iBAAiB,EAAE;MAC9B,MAAM;AAAEC,QAAAA;AAAe,OAAC,GAAGC,UAAU,CAAC,qBAAqB,CAE1D;AACDnN,MAAAA,OAAO,GAAGkN,cAAc,CAAClN,OAAO,CAAC;AACnC;AACF;AAEA,EAAA,OAAOA,OAAO;AAChB;AAEA,SAAS4H,KAAKA,CAAIR,OAA4B,EAAc;EAC1D,MAAM;IAAEzH,KAAK;AAAEmD,IAAAA;GAAM,GAAGsE,OAAO,CAACD,OAAO;EAEvC,IAAI;AAAEpH,IAAAA;AAAQ,GAAC,GAAG+C,IAEjB;AACD;EACA,MAAM;IAAEnB,IAAI;AAAEiG,IAAAA;AAAM,GAAC,GAAG9E,IAIvB;AACD,EAAA,MAAMpD,OAAO,GAAGC,KAAK,CAACyD,UAAU,CAACzB,IAAI,CAAC;EAEtCjB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CAAO,CAA0DW,uDAAAA,EAAAA,IAAI,CAAG,CAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAAEjC,OAAO,CAAA,GAAA,EAAA;EACjFgB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CAAO,CAAuE,qEAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAAE,OAAOtB,OAAO,CAACkI,KAAK,KAAK,UAAU,CAAA,GAAA,EAAA;EAEnH,MAAMwF,WAAW,GACfrN,OAAO,CAACgN,YAAY,IACpBpN,KAAK,CAACwM,kBAAkB,CAACkB,WAAW,CAAC;IACnC1L,IAAI;AACJiG,IAAAA;AACF,GAAC,CAAC;EAEJ,IAAAlH,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAW,EAAA;IACTf,OAAO,GAAG6G,MAAM,CAACC,MAAM,CAAC,EAAE,EAAE9G,OAAO,CAAC;IACpC,OAAOA,OAAO,CAACgN,YAAY;AAC7B,GAAC,MAAM;IACL,OAAOhN,OAAO,CAACgN,YAAY;AAC7B;AACA,EAAA,MAAMnH,MAAM,GAAGjG,KAAK,CAAC4C,QAAQ,CAACZ,IAAI,CAAC;EACnC,MAAM3B,OAAO,GAAGC,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,MAAMT,OAAO,CAACkI,KAAK,CAACjI,KAAK,EAAEiG,MAAM,EAAEgC,KAAK,EAAEwF,WAAW,EAAErN,OAAO,CAAC,CAAC;AAEvG,EAAA,OAAOC,OAAO,CAACG,IAAI,CAAEgB,cAAc,IAAK;AACtC,IAAA,MAAMqB,UAAU,GAAG7C,KAAK,CAAC8C,aAAa,CAACd,IAAI,CAAC;AAC5C,IAAA,MAAMe,OAAO,GAAGC,uBAAuB,CACrCH,UAAU,EACV7C,KAAK,EACLiG,MAAM,EACNzE,cAAc,EACd,IAAI,EACJ,OACF,CAAC;IACD,MAAM6G,WAAW,GAAGrI,KAAK,CAACqD,KAAK,CAACN,OAAO,EAAE,IAAI,CAAC;IAE9ChC,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,MAAA,IAAA,CAAAA,IAAA,EAAA;QAAA,MAAAC,IAAAA,KAAA,CACE,mLAAmL,CAAA;AAAA;AAAA,KAAA,EACnL4B,KAAK,CAACC,OAAO,CAACmF,WAAW,CAAC,CAAA,GAAA,EAAA;IAG5BrI,KAAK,CAACwM,kBAAkB,CAACmB,oBAAoB,CAACF,WAAW,EAAEpF,WAAW,EAAEtF,OAAqC,CAAC;AAE9G,IAAA,OAAO0K,WAAW;AACpB,GAAC,CAAC;AACJ;AAEA,SAASG,4BAA4BA,CAAC7K,OAAwB,EAA6C;EACzGhC,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAA8I,4IAAA,CAAA,CAAA;AAAA;GAC9I,EAAA,CAAC4B,KAAK,CAACC,OAAO,CAACH,OAAO,CAACI,IAAI,CAAC,CAAA,GAAA,EAAA;AAEhC;AAEA,SAAS+E,WAAWA,CAAIT,OAA4B,EAAc;EAChE,MAAM;IAAEzH,KAAK;AAAEmD,IAAAA;GAAM,GAAGsE,OAAO,CAACD,OAAO;AACvC;EACA,MAAM;IAAExF,IAAI;IAAEiG,KAAK;AAAE7H,IAAAA;AAAQ,GAAC,GAAG+C,IAAyE;AAE1G,EAAA,MAAMpD,OAAO,GAAGC,KAAK,CAACyD,UAAU,CAACzB,IAAI,CAAC;EAEtCjB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CAAO,CAA0DW,uDAAAA,EAAAA,IAAI,CAAG,CAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAAEjC,OAAO,CAAA,GAAA,EAAA;EACjFgB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAA6E,2EAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAC7E,OAAOtB,OAAO,CAACmI,WAAW,KAAK,UAAU,CAAA,GAAA,EAAA;AAG3C,EAAA,MAAMjC,MAAM,GAAGjG,KAAK,CAAC4C,QAAQ,CAACZ,IAAI,CAAC;EACnC,MAAM3B,OAAO,GAAGC,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,MAAMT,OAAO,CAACmI,WAAW,CAAClI,KAAK,EAAEiG,MAAM,EAAEgC,KAAK,EAAE7H,OAAO,CAAC,CAAe;AAE9G,EAAA,OAAOC,OAAO,CAACG,IAAI,CAAEgB,cAAiB,IAAK;AACzC,IAAA,MAAMqB,UAAU,GAAG7C,KAAK,CAAC8C,aAAa,CAACd,IAAI,CAAC;AAC5C,IAAA,MAAMe,OAAO,GAAGC,uBAAuB,CACrCH,UAAU,EACV7C,KAAK,EACLiG,MAAM,EACNzE,cAAc,EACd,IAAI,EACJ,aACF,CAAC;IAEDoM,4BAA4B,CAAC7K,OAAO,CAAC;IAErC,MAAM9C,UAAU,GAAGD,KAAK,CAACqD,KAAK,CAACN,OAAO,EAAE,IAAI,CAA2B;IACvE,OAAO9C,UAAU,GAAGD,KAAK,CAACyK,UAAU,CAACxK,UAAU,CAAC,GAAG,IAAI;AACzD,GAAC,CAAC;AACJ;;ACzhBA;AACA;AACA;AACA;;AAkBA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAGO,SAASwD,UAAUA,CAAcoK,SAAiB,EAAEC,aAAoB,EAAuC;EACpH/M,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAA0F,wFAAA,CAAA,CAAA;AAAA;GAC1F,EAAA,EAAE,IAAI,CAAC0M,YAAY,IAAI,IAAI,CAACC,WAAW,CAAC,CAAA,GAAA,EAAA;EAE1CjN,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CAAO,CAAgE,8DAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAAEwM,SAAS,CAAA,GAAA,EAAA;EAClF9M,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CACE,CAAoGwM,iGAAAA,EAAAA,SAAS,CAAE,CAAA,CAAA;AAAA;GAC/G,EAAA,OAAOA,SAAS,KAAK,QAAQ,CAAA,GAAA,EAAA;AAG/B,EAAA,IAAI,CAACI,aAAa,GAChB,IAAI,CAACA,aAAa,IAAKhH,MAAM,CAACiH,MAAM,CAAC,IAAI,CAAgE;AAE3G,EAAA,MAAMC,mBAAmB,GAAGC,kBAAkB,CAACP,SAAS,CAAC;EAEzD,MAAM;AAAEI,IAAAA;AAAc,GAAC,GAAG,IAAI;AAC9B,EAAA,IAAIlO,OAAiE,GAAGkO,aAAa,CAACE,mBAAmB,CAAC;AAC1G,EAAA,IAAIpO,OAAO,EAAE;AACX,IAAA,OAAOA,OAAO;AAChB;AAEA,EAAA,MAAMsO,KAAK,GAAGC,QAAQ,CAAC,IAAI,CAAE;;AAE7B;EACAvO,OAAO,GAAGsO,KAAK,CAACE,MAAM,CAAC,CAAWJ,QAAAA,EAAAA,mBAAmB,EAAE,CAA6D;EACpH,IAAIpO,OAAO,KAAKyO,SAAS,EAAE;AACzBP,IAAAA,aAAa,CAACE,mBAAmB,CAAC,GAAGpO,OAAO;AAC5C,IAAA,OAAOA,OAAO;AAChB;;AAEA;EACAA,OAAO,GAAGkO,aAAa,CAACQ,WAAW,IAAIJ,KAAK,CAACE,MAAM,CAAC,qBAAqB,CAAC;EAC1E,IAAIxO,OAAO,KAAKyO,SAAS,EAAE;AACzBP,IAAAA,aAAa,CAACE,mBAAmB,CAAC,GAAGpO,OAAO;IAC5CkO,aAAa,CAACQ,WAAW,GAAG1O,OAAO;AACnC,IAAA,OAAOA,OAAO;AAChB;EAEA,IAAAgB,cAAA,CAAAC,eAAA,EAAA,CAAAC,SAAA,CAAAY,YAAA,CAAA6M,2BAAA,CAAiC,EAAA;AAC/B;AACA;IACA3O,OAAO,GAAGkO,aAAa,CAAC,WAAW,CAAC,IAAII,KAAK,CAACE,MAAM,CAAC,mBAAmB,CAAC;IACzE,IAAIxO,OAAO,KAAKyO,SAAS,EAAE;AACzBzM,MAAAA,SAAS,CACP,CAAA,qJAAA,CAAuJ,EACvJ,KAAK,EACL;AACEE,QAAAA,EAAE,EAAE,8CAA8C;AAClDE,QAAAA,GAAG,EAAE,YAAY;AACjBD,QAAAA,KAAK,EAAE,KAAK;AACZE,QAAAA,KAAK,EAAE;AAAEC,UAAAA,SAAS,EAAE,KAAK;AAAEC,UAAAA,OAAO,EAAE;AAAM;AAC5C,OACF,CAAC;AACD2L,MAAAA,aAAa,CAACE,mBAAmB,CAAC,GAAGpO,OAAO;AAC5CkO,MAAAA,aAAa,CAAC,WAAW,CAAC,GAAGlO,OAAO;AAEpC,MAAA,OAAOA,OAAO;AAChB;AACF;EAEAgB,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CACE,CAA6BwM,0BAAAA,EAAAA,SAAS,CAAyD,uDAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAC/FC,aAAa,CAAA,GAAA,EAAA;AAEjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAShL,aAAaA,CAAc+K,SAAiB,EAAqC;EAC/F9M,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAA6F,2FAAA,CAAA,CAAA;AAAA;GAC7F,EAAA,EAAE,IAAI,CAAC0M,YAAY,IAAI,IAAI,CAACC,WAAW,CAAC,CAAA,GAAA,EAAA;EAE1CjN,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CAAO,CAAmE,iEAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAAEwM,SAAS,CAAA,GAAA,EAAA;EACrF9M,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CACE,CAAuGwM,oGAAAA,EAAAA,SAAS,CAAE,CAAA,CAAA;AAAA;GAClH,EAAA,OAAOA,SAAS,KAAK,QAAQ,CAAA,GAAA,EAAA;AAG/B,EAAA,IAAI,CAACc,gBAAgB,GACnB,IAAI,CAACA,gBAAgB,IAAK1H,MAAM,CAACiH,MAAM,CAAC,IAAI,CAAmE;AACjH,EAAA,MAAMC,mBAAmB,GAAGC,kBAAkB,CAACP,SAAS,CAAC;EAEzD,MAAM;AAAEc,IAAAA;AAAiB,GAAC,GAAG,IAAI;AACjC,EAAA,IAAI9L,UAAuE,GAAG8L,gBAAgB,CAACR,mBAAmB,CAAC;AACnH,EAAA,IAAItL,UAAU,EAAE;AACd,IAAA,OAAOA,UAAU;AACnB;;AAEA;AACA,EAAA,MAAMwL,KAAK,GAAGC,QAAQ,CAAC,IAAI,CAAE;EAC7BzL,UAAU,GAAGwL,KAAK,CAACE,MAAM,CAAC,CAAcJ,WAAAA,EAAAA,mBAAmB,EAAE,CAEhD;EACb,IAAItL,UAAU,KAAK2L,SAAS,EAAE;AAC5BG,IAAAA,gBAAgB,CAACR,mBAAmB,CAAC,GAAGtL,UAAU;AAClD,IAAA,OAAOA,UAAU;AACnB;;AAEA;EACAA,UAAU,GAAG8L,gBAAgB,CAACF,WAAW,IAAIJ,KAAK,CAACE,MAAM,CAAC,wBAAwB,CAAC;EACnF,IAAI1L,UAAU,KAAK2L,SAAS,EAAE;AAC5BG,IAAAA,gBAAgB,CAACR,mBAAmB,CAAC,GAAGtL,UAAU;IAClD8L,gBAAgB,CAACF,WAAW,GAAG5L,UAAU;AACzC,IAAA,OAAOA,UAAU;AACnB;AAEA,EAAA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS+L,SAASA,CAAcf,SAAiB,EAAE9K,OAAoB,EAAE;EAE9EhC,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAAyF,uFAAA,CAAA,CAAA;AAAA;GACzF,EAAA,EAAE,IAAI,CAAC0M,YAAY,IAAI,IAAI,CAACC,WAAW,CAAC,CAAA,GAAA,EAAA;EAE1CjN,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CAAO,CAA+D,6DAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAAEwM,SAAS,CAAA,GAAA,EAAA;EACjF9M,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CACE,CAAiG,8FAAA,EAAA,OAAOwM,SAAS,CAAE,CAAA,CAAA;AAAA;GACnH,EAAA,OAAOA,SAAS,KAAK,QAAQ,CAAA,GAAA,EAAA;AAE/B,EAAA,MAAMM,mBAAmB,GAAGC,kBAAkB,CAACP,SAAS,CAAC;AACzD,EAAA,MAAMhL,UAAU,GAAG,IAAI,CAACC,aAAa,CAACqL,mBAAmB,CAAC;AAC1D,EAAA,MAAMlI,MAAM,GAAG,IAAI,CAACrD,QAAQ,CAACuL,mBAAmB,CAAC;EACjDpN,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAAwF,sFAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EACxF,OAAOwB,UAAU,EAAE+L,SAAS,KAAK,UAAU,CAAA,GAAA,EAAA;AAE7C,EAAA,OAAO/L,UAAU,CAAC+L,SAAS,CAAC3I,MAAM,EAAElD,OAAO,CAAC;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS8L,WAAWA,CAAchB,SAAiB,EAAEiB,YAAyB,EAAQ;EAE3F/N,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;MAAA,MAAAC,IAAAA,KAAA,CACE,CAA2F,yFAAA,CAAA,CAAA;AAAA;GAC3F,EAAA,EAAE,IAAI,CAAC0M,YAAY,IAAI,IAAI,CAACC,WAAW,CAAC,CAAA,GAAA,EAAA;AAG1C,EAAA,MAAMjL,OAAoB,GAAG+L,YAAY,IAAKjB,SAAoC;EAClF,MAAMM,mBAAmB,GAAGW,YAAY,GAAGV,kBAAkB,CAACP,SAAS,CAAC,GAAG,aAAa;AACxF,EAAA,MAAMhL,UAAU,GAAG,IAAI,CAACC,aAAa,CAACqL,mBAAmB,CAAC;EAE1DpN,cAAA,CAAAC,eAAA,EAAAC,CAAAA,SAAA,CAAAC,GAAA,CAAAC,KAAA,CAAA,GAAA,CAAAC,IAAA,IAAA;AAAA,IAAA,IAAA,CAAAA,IAAA,EAAA;AAAA,MAAA,MAAA,IAAAC,KAAA,CACE,CAAoF8M,iFAAAA,EAAAA,mBAAmB,CAAyB,uBAAA,CAAA,CAAA;AAAA;AAAA,GAAA,EAChItL,UAAU,IAAI,OAAOA,UAAU,CAACgM,WAAW,KAAK,UAAU,CAAA,GAAA,EAAA;AAE5DhM,EAAAA,UAAU,CAACgM,WAAW,CAAC,IAAI,EAAE9L,OAAO,CAAC;AACvC;;AAEA;AACO,SAASgM,eAAeA,CAActN,MAAe,EAAErB,OAA2B,EAAW;AAElG;AACA,EAAA,IAAI,CAAC,IAAI,CAACM,aAAa,EAAE;AACvB,IAAA,IAAI,CAACA,aAAa,GAAG,IAAIoH,YAAY,CAAC,IAAI,CAAC;AAC7C;AAEA,EAAA,OAAO,IAAI,CAACpH,aAAa,CAACC,cAAc,CAACqO,mBAAmB,CAACvN,MAAM,CAAC,CAAC,CAACwN,SAAS,CAAC7O,OAAO,CAAC;AAC1F;AAEO,SAAS8O,OAAOA,GAAc;AAEnC;AACA,EAAA,KAAK,MAAMC,WAAW,IAAI,IAAI,CAAClB,aAAa,EAAE;AAC5C,IAAA,MAAMlO,OAAO,GAAG,IAAI,CAACkO,aAAa,CAACkB,WAAW,CAAC;AAC/C,IAAA,IAAI,OAAOpP,OAAO,CAACqP,OAAO,KAAK,UAAU,EAAE;MACzCrP,OAAO,CAACqP,OAAO,EAAE;AACnB;AACF;AAEA,EAAA,KAAK,MAAMC,cAAc,IAAI,IAAI,CAACV,gBAAgB,EAAE;AAClD,IAAA,MAAM9L,UAAU,GAAG,IAAI,CAAC8L,gBAAgB,CAACU,cAAc,CAAC;AACxD,IAAA,IAAI,OAAOxM,UAAU,CAACuM,OAAO,KAAK,UAAU,EAAE;MAC5CvM,UAAU,CAACuM,OAAO,EAAE;AACtB;AACF;AACF;;;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path fill="#0969da" d="m1096.3 402.82c-53.148-53.008-117.12-79.516-191.93-79.516-67.488 0-126.55 21.938-177.16 65.805-50.617 43.871-80.988 98.285-91.113 163.25l53.57 4.2188c14.625 0.28125 25.449 6.75 32.48 19.406h18.984c11.809 0 17.715 5.7617 17.715 17.293s-5.9062 17.293-17.715 17.293h-17.297c-6.75 14.344-18.137 21.797-34.168 22.359l-53.57 4.6406c10.125 64.68 40.496 118.95 91.113 162.82 50.617 43.871 109.68 65.805 177.16 65.805 74.805 0 138.78-26.574 191.93-79.723 53.152-53.148 79.727-116.98 79.727-191.51 0-75.086-26.574-139.13-79.727-192.14zm-79.422 185.27c0 2.9531 2.3906 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477 0-2.9492-2.3945-5.3438-5.3477-5.3438-2.9531 0-5.3438 2.3945-5.3438 5.3438zm-104.54-111.07c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm117.01 123.55c0 2.9492 2.3906 5.3438 5.3438 5.3438 2.9531 0 5.3477-2.3945 5.3477-5.3438 0-2.9531-2.3945-5.3477-5.3477-5.3477-2.9531 0-5.3438 2.3945-5.3438 5.3477zm-104.54 111.66c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm-848-318.48c14.062-2.5312 30.934-4.5 50.621-5.9062l-46.402-0.84375zm499.86 169.15c-8.7188-2.25-18.141-8.7188-28.266-19.402l-101.23-103.35h-111.36l173.79 126.12v4.2188c21.652 6.1836 44.008 3.6562 67.07-7.5938zm47.664-148.48c-0.84375 3.3711-2.8125 6.6055-5.9062 9.6992h-5.0625l-6.3242-5.0625h-79.305v-4.6367zm-5.9062-16.031c3.0938 3.0938 5.0625 6.4688 5.9062 10.125h-96.598v-4.6406h79.305l6.3242-5.4844zm-541.62 397.78 4.2188 6.7461 46.402-0.84375c-22.5-2.2461-39.371-4.2148-50.621-5.9023zm499.86-169.15c-23.062-11.531-45.418-14.062-67.07-7.5938v4.2188l-173.79 126.12h111.36l101.23-103.77c10.406-10.684 19.828-17.012 28.266-18.98zm47.664 148.48h-96.598v-4.6406h79.305l6.3242-5.4805h5.0625c3.0938 3.6523 5.0625 7.0273 5.9062 10.121zm-5.9062 15.609h-5.0625l-6.3242-5.0625h-79.305v-4.6406h96.598c-0.84375 3.0938-2.8125 6.3281-5.9062 9.7031zm-102.5 9.6992c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c24.746 0 37.121-8.4336 37.121-25.309 0-8.4375-4.6406-14.691-13.922-18.77-9.2773-4.0781-17.012-6.1172-23.199-6.1172h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875h-333.66c-5.0625 0-28.543 1.6172-70.445 4.8516-41.902 3.2344-62.852 7.3828-62.852 12.441v11.812c0 4.5 20.949 8.5078 62.852 12.023 41.902 3.5156 65.383 5.2695 70.445 5.2695zm125.28-207.54h-42.602c-3.375 1.125-3.375 2.25 0 3.375h42.602zm-43.445 8.4375h-5.4844v-13.5h5.4844c17.152-6.1875 33.605-9.9844 49.352-11.391l4.6406-25.309 4.6406 0.42188c0.5625-4.2188 1.6875-10.262 3.375-18.137-28.684-0.5625-64.398 1.6875-107.14 6.75 3.6562 4.2148 7.4531 7.8711 11.391 10.965 4.7812 3.375 9.4219 5.625 13.918 6.75l12.656 2.9531-11.812 5.9062c-13.496 6.75-30.23 10.121-50.195 10.121-5.0625 0-8.5781-0.14062-10.547-0.42188-4.2188-0.5625-7.5898-1.1211-10.121-1.6836l-3.375-1.2656v-5.4844l-24.043-17.297c-41.34 5.625-69.32 8.5781-83.945 8.8594-31.496 0.28125-47.242 11.953-47.242 35.012 0 22.215 15.746 33.887 47.242 35.012 18.844 0.28125 46.824 3.2344 83.945 8.8594l24.043-17.297v-5.4844l3.375-1.2656c2.5312-0.84375 5.9023-1.4062 10.121-1.6875 1.9688-0.28125 5.4844-0.42187 10.547-0.42187 19.965 0 36.699 3.375 50.195 10.125l11.812 5.4844-12.656 3.375c-4.4961 0.84375-9.1367 3.0938-13.918 6.75-3.6562 2.2461-7.4531 5.7617-11.391 10.543 40.777 5.0625 76.492 7.4531 107.14 7.1719-1.6875-7.3125-2.8125-13.359-3.375-18.137h-4.6406l-4.6406-24.891c-17.434-2.25-33.887-6.043-49.352-11.387zm48.508-20.25c-12.652 1.6875-23.762 3.9375-33.324 6.75h29.105l3.7969-4.2188zm-4.2188 20.25h-29.105c9.5625 2.5312 20.672 4.7812 33.324 6.7461l-0.42188-2.5273zm136.67-8.4375c0-8.4375-4.2188-12.656-12.652-12.656h-21.516c-6.4688-12.652-16.59-18.98-30.371-18.98l-58.211-5.0625-5.9062 29.527-4.2188 5.0625v7.5938l4.2188 5.0625 5.9062 29.105 58.211-5.0625c15.469 0 26.012-7.3125 31.637-21.934h20.25c8.4336 0 12.652-4.2188 12.652-12.656zm-46.82 1.6875c0-11.531-5.9062-17.297-17.719-17.297-11.527 0-17.293 5.7656-17.293 17.297 0 11.812 5.7656 17.715 17.293 17.715 11.812 0 17.719-5.9023 17.719-17.715zm4.6406 0c0 14.902-7.4531 22.355-22.359 22.355-14.902 0-22.355-7.4531-22.355-22.355 0-14.906 7.4531-22.355 22.355-22.355 14.906 0 22.359 7.4492 22.359 22.355zm-13.922 0c0-5.625-2.8125-8.4375-8.4375-8.4375-5.3438 0-8.0156 2.8125-8.0156 8.4375s2.6719 8.4375 8.0156 8.4375c5.625 0 8.4375-2.8125 8.4375-8.4375zm4.6406 0c0 8.7188-4.3594 13.078-13.078 13.078-8.4375 0-12.652-4.3594-12.652-13.078s4.2148-13.078 12.652-13.078c8.7188 0 13.078 4.3594 13.078 13.078zm-43.871-2.1094v4.2188h-35.012v-4.2188zm258.58 2.1094c-0.5625-8.4375-4.7812-12.656-12.656-12.656-8.4336 0-12.652 4.2188-12.652 12.656s4.2188 12.656 12.652 12.656c8.4375 0 12.656-4.2188 12.656-12.656zm4.6406 0c0 11.531-5.7656 17.293-17.297 17.293-11.527 0-17.293-5.7617-17.293-17.293s5.7656-17.297 17.293-17.297c11.531 0 17.297 5.7656 17.297 17.297zm32.48 0c0-13.781-4.9219-25.59-14.766-35.434-9.5586-9.5625-21.23-14.344-35.012-14.344-15.184 0-31.777 5.7656-49.773 17.297-18.559 11.531-27.84 22.355-27.84 32.48 0 9.8438 9.2812 20.668 27.84 32.48 17.996 11.531 34.59 17.293 49.773 17.293 13.781 0 25.453-4.918 35.012-14.762 9.8438-9.5625 14.766-21.234 14.766-35.012zm5.0625 0c0 14.902-5.3438 27.699-16.031 38.387-10.684 10.684-23.621 16.027-38.809 16.027-15.746 0-33.18-6.0469-52.305-18.137-20.246-12.656-30.371-24.746-30.371-36.277s10.125-23.762 30.371-36.699c19.125-12.094 36.559-18.137 52.305-18.137 14.625 0 27.562 5.3398 38.809 16.027 10.688 10.969 16.031 23.902 16.031 38.809zm-54.418-29.105c-3.9336 0-10.262 1.6875-18.98 5.0625-7.875 3.9375-11.812 6.4648-11.812 7.5898v32.48c0 3.0938 3.9375 5.625 11.812 7.5938 7.875 3.375 14.203 5.0625 18.98 5.0625 19.406 0 29.391-9.2812 29.953-27.84 0-19.688-9.9844-29.668-29.953-29.949zm34.59 29.105v0.84375c0 21.371-11.527 32.34-34.59 32.902-4.4961 0-11.527-1.8281-21.09-5.4844-7.0312-3.9375-10.969-6.3281-11.809-7.1719-1.6875-1.4062-2.5312-3.0938-2.5312-5.0625v-32.48c0-1.4062 0.70312-2.9492 2.1094-4.6367 3.0898-2.8125 7.168-5.2031 12.23-7.1719 9-3.6562 16.031-5.4844 21.09-5.4844 22.5 0.28125 34.027 11.531 34.59 33.746zm-448.4-206.27h-333.66c-5.0625 0-28.543 1.6875-70.445 5.0625-41.902 3.375-62.852 7.5938-62.852 12.656v11.387c0 4.7812 20.949 8.8594 62.852 12.234 41.902 3.375 65.383 5.0625 70.445 5.0625h333.66c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c5.3438 0 12.867-2.25 22.566-6.75 9.7031-4.5 14.555-10.547 14.555-18.137 0.28125-16.875-12.094-25.312-37.121-25.312h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875z" fill-rule="evenodd"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="1200pt" height="1200pt" version="1.1" viewBox="0 0 1200 1200" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path fill="#FFC474" d="m1096.3 402.82c-53.148-53.008-117.12-79.516-191.93-79.516-67.488 0-126.55 21.938-177.16 65.805-50.617 43.871-80.988 98.285-91.113 163.25l53.57 4.2188c14.625 0.28125 25.449 6.75 32.48 19.406h18.984c11.809 0 17.715 5.7617 17.715 17.293s-5.9062 17.293-17.715 17.293h-17.297c-6.75 14.344-18.137 21.797-34.168 22.359l-53.57 4.6406c10.125 64.68 40.496 118.95 91.113 162.82 50.617 43.871 109.68 65.805 177.16 65.805 74.805 0 138.78-26.574 191.93-79.723 53.152-53.148 79.727-116.98 79.727-191.51 0-75.086-26.574-139.13-79.727-192.14zm-79.422 185.27c0 2.9531 2.3906 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477 0-2.9492-2.3945-5.3438-5.3477-5.3438-2.9531 0-5.3438 2.3945-5.3438 5.3438zm-104.54-111.07c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm117.01 123.55c0 2.9492 2.3906 5.3438 5.3438 5.3438 2.9531 0 5.3477-2.3945 5.3477-5.3438 0-2.9531-2.3945-5.3477-5.3477-5.3477-2.9531 0-5.3438 2.3945-5.3438 5.3477zm-104.54 111.66c0 2.9531 2.3945 5.3477 5.3438 5.3477 2.9531 0 5.3477-2.3945 5.3477-5.3477s-2.3945-5.3438-5.3477-5.3438c-2.9492 0-5.3438 2.3906-5.3438 5.3438zm-12.473 0c0 2.9531 2.3906 5.3477 5.3438 5.3477s5.3477-2.3945 5.3477-5.3477-2.3945-5.3438-5.3477-5.3438-5.3438 2.3906-5.3438 5.3438zm-848-318.48c14.062-2.5312 30.934-4.5 50.621-5.9062l-46.402-0.84375zm499.86 169.15c-8.7188-2.25-18.141-8.7188-28.266-19.402l-101.23-103.35h-111.36l173.79 126.12v4.2188c21.652 6.1836 44.008 3.6562 67.07-7.5938zm47.664-148.48c-0.84375 3.3711-2.8125 6.6055-5.9062 9.6992h-5.0625l-6.3242-5.0625h-79.305v-4.6367zm-5.9062-16.031c3.0938 3.0938 5.0625 6.4688 5.9062 10.125h-96.598v-4.6406h79.305l6.3242-5.4844zm-541.62 397.78 4.2188 6.7461 46.402-0.84375c-22.5-2.2461-39.371-4.2148-50.621-5.9023zm499.86-169.15c-23.062-11.531-45.418-14.062-67.07-7.5938v4.2188l-173.79 126.12h111.36l101.23-103.77c10.406-10.684 19.828-17.012 28.266-18.98zm47.664 148.48h-96.598v-4.6406h79.305l6.3242-5.4805h5.0625c3.0938 3.6523 5.0625 7.0273 5.9062 10.121zm-5.9062 15.609h-5.0625l-6.3242-5.0625h-79.305v-4.6406h96.598c-0.84375 3.0938-2.8125 6.3281-5.9062 9.7031zm-102.5 9.6992c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c24.746 0 37.121-8.4336 37.121-25.309 0-8.4375-4.6406-14.691-13.922-18.77-9.2773-4.0781-17.012-6.1172-23.199-6.1172h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875h-333.66c-5.0625 0-28.543 1.6172-70.445 4.8516-41.902 3.2344-62.852 7.3828-62.852 12.441v11.812c0 4.5 20.949 8.5078 62.852 12.023 41.902 3.5156 65.383 5.2695 70.445 5.2695zm125.28-207.54h-42.602c-3.375 1.125-3.375 2.25 0 3.375h42.602zm-43.445 8.4375h-5.4844v-13.5h5.4844c17.152-6.1875 33.605-9.9844 49.352-11.391l4.6406-25.309 4.6406 0.42188c0.5625-4.2188 1.6875-10.262 3.375-18.137-28.684-0.5625-64.398 1.6875-107.14 6.75 3.6562 4.2148 7.4531 7.8711 11.391 10.965 4.7812 3.375 9.4219 5.625 13.918 6.75l12.656 2.9531-11.812 5.9062c-13.496 6.75-30.23 10.121-50.195 10.121-5.0625 0-8.5781-0.14062-10.547-0.42188-4.2188-0.5625-7.5898-1.1211-10.121-1.6836l-3.375-1.2656v-5.4844l-24.043-17.297c-41.34 5.625-69.32 8.5781-83.945 8.8594-31.496 0.28125-47.242 11.953-47.242 35.012 0 22.215 15.746 33.887 47.242 35.012 18.844 0.28125 46.824 3.2344 83.945 8.8594l24.043-17.297v-5.4844l3.375-1.2656c2.5312-0.84375 5.9023-1.4062 10.121-1.6875 1.9688-0.28125 5.4844-0.42187 10.547-0.42187 19.965 0 36.699 3.375 50.195 10.125l11.812 5.4844-12.656 3.375c-4.4961 0.84375-9.1367 3.0938-13.918 6.75-3.6562 2.2461-7.4531 5.7617-11.391 10.543 40.777 5.0625 76.492 7.4531 107.14 7.1719-1.6875-7.3125-2.8125-13.359-3.375-18.137h-4.6406l-4.6406-24.891c-17.434-2.25-33.887-6.043-49.352-11.387zm48.508-20.25c-12.652 1.6875-23.762 3.9375-33.324 6.75h29.105l3.7969-4.2188zm-4.2188 20.25h-29.105c9.5625 2.5312 20.672 4.7812 33.324 6.7461l-0.42188-2.5273zm136.67-8.4375c0-8.4375-4.2188-12.656-12.652-12.656h-21.516c-6.4688-12.652-16.59-18.98-30.371-18.98l-58.211-5.0625-5.9062 29.527-4.2188 5.0625v7.5938l4.2188 5.0625 5.9062 29.105 58.211-5.0625c15.469 0 26.012-7.3125 31.637-21.934h20.25c8.4336 0 12.652-4.2188 12.652-12.656zm-46.82 1.6875c0-11.531-5.9062-17.297-17.719-17.297-11.527 0-17.293 5.7656-17.293 17.297 0 11.812 5.7656 17.715 17.293 17.715 11.812 0 17.719-5.9023 17.719-17.715zm4.6406 0c0 14.902-7.4531 22.355-22.359 22.355-14.902 0-22.355-7.4531-22.355-22.355 0-14.906 7.4531-22.355 22.355-22.355 14.906 0 22.359 7.4492 22.359 22.355zm-13.922 0c0-5.625-2.8125-8.4375-8.4375-8.4375-5.3438 0-8.0156 2.8125-8.0156 8.4375s2.6719 8.4375 8.0156 8.4375c5.625 0 8.4375-2.8125 8.4375-8.4375zm4.6406 0c0 8.7188-4.3594 13.078-13.078 13.078-8.4375 0-12.652-4.3594-12.652-13.078s4.2148-13.078 12.652-13.078c8.7188 0 13.078 4.3594 13.078 13.078zm-43.871-2.1094v4.2188h-35.012v-4.2188zm258.58 2.1094c-0.5625-8.4375-4.7812-12.656-12.656-12.656-8.4336 0-12.652 4.2188-12.652 12.656s4.2188 12.656 12.652 12.656c8.4375 0 12.656-4.2188 12.656-12.656zm4.6406 0c0 11.531-5.7656 17.293-17.297 17.293-11.527 0-17.293-5.7617-17.293-17.293s5.7656-17.297 17.293-17.297c11.531 0 17.297 5.7656 17.297 17.297zm32.48 0c0-13.781-4.9219-25.59-14.766-35.434-9.5586-9.5625-21.23-14.344-35.012-14.344-15.184 0-31.777 5.7656-49.773 17.297-18.559 11.531-27.84 22.355-27.84 32.48 0 9.8438 9.2812 20.668 27.84 32.48 17.996 11.531 34.59 17.293 49.773 17.293 13.781 0 25.453-4.918 35.012-14.762 9.8438-9.5625 14.766-21.234 14.766-35.012zm5.0625 0c0 14.902-5.3438 27.699-16.031 38.387-10.684 10.684-23.621 16.027-38.809 16.027-15.746 0-33.18-6.0469-52.305-18.137-20.246-12.656-30.371-24.746-30.371-36.277s10.125-23.762 30.371-36.699c19.125-12.094 36.559-18.137 52.305-18.137 14.625 0 27.562 5.3398 38.809 16.027 10.688 10.969 16.031 23.902 16.031 38.809zm-54.418-29.105c-3.9336 0-10.262 1.6875-18.98 5.0625-7.875 3.9375-11.812 6.4648-11.812 7.5898v32.48c0 3.0938 3.9375 5.625 11.812 7.5938 7.875 3.375 14.203 5.0625 18.98 5.0625 19.406 0 29.391-9.2812 29.953-27.84 0-19.688-9.9844-29.668-29.953-29.949zm34.59 29.105v0.84375c0 21.371-11.527 32.34-34.59 32.902-4.4961 0-11.527-1.8281-21.09-5.4844-7.0312-3.9375-10.969-6.3281-11.809-7.1719-1.6875-1.4062-2.5312-3.0938-2.5312-5.0625v-32.48c0-1.4062 0.70312-2.9492 2.1094-4.6367 3.0898-2.8125 7.168-5.2031 12.23-7.1719 9-3.6562 16.031-5.4844 21.09-5.4844 22.5 0.28125 34.027 11.531 34.59 33.746zm-448.4-206.27h-333.66c-5.0625 0-28.543 1.6875-70.445 5.0625-41.902 3.375-62.852 7.5938-62.852 12.656v11.387c0 4.7812 20.949 8.8594 62.852 12.234 41.902 3.375 65.383 5.0625 70.445 5.0625h333.66c3.6562 1.4062 7.4531 2.1094 11.391 2.1094h64.961c5.3438 0 12.867-2.25 22.566-6.75 9.7031-4.5 14.555-10.547 14.555-18.137 0.28125-16.875-12.094-25.312-37.121-25.312h-64.961c-4.7812 0-8.5781 0.5625-11.391 1.6875z" fill-rule="evenodd"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><path d="M91.36 33.566q-6.645-6.623-15.997-6.625-8.439 0-14.761 5.485-6.329 5.484-7.594 13.605l4.465.352Q59.3 46.418 60.18 48h1.582q1.476 0 1.476 1.441 0 1.44-1.476 1.438H60.32q-.843 1.793-2.847 1.863l-4.465.387q1.266 8.085 7.594 13.57t14.761 5.485q9.352 0 15.996-6.645 6.645-6.646 6.645-15.957 0-9.389-6.645-16.012Zm-6.622 15.442a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0m-8.71-9.258c0 .246.199.45.445.45a.45.45 0 0 0 .445-.45.445.445 0 1 0-.89 0m-1.04 0c0 .246.2.45.446.45a.45.45 0 0 0 .445-.45.445.445 0 1 0-.89 0m9.75 10.297a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0m-8.71 9.305a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0m-1.04 0a.445.445 0 1 0 .89 0 .445.445 0 0 0-.89 0M4.32 32.812q1.757-.315 4.22-.492l-3.868-.07ZM45.977 46.91q-1.09-.28-2.356-1.617l-8.437-8.613h-9.278l14.48 10.508v.351q2.708.774 5.59-.633Zm3.972-12.375q-.105.421-.492.809h-.422l-.527-.422h-6.61v-.387Zm-.492-1.336q.387.388.492.844H41.9v-.387h6.609l.527-.457ZM4.32 66.348l.352.562 3.867-.07q-2.812-.282-4.219-.492M45.977 52.25q-2.883-1.44-5.59-.633v.352L25.907 62.48h9.277l8.437-8.648q1.3-1.335 2.356-1.582m3.972 12.375H41.9v-.387h6.609l.527-.457h.422q.387.457.492.844m-.492 1.3h-.422l-.527-.421h-6.61v-.387h8.051q-.105.387-.492.809m-8.543.81q.457.175.95.175h5.413q3.094 0 3.094-2.11 0-1.052-1.16-1.562t-1.934-.511h-5.414q-.598 0-.949.14H13.11q-.633.001-5.87.406-5.24.404-5.239 1.036v.984q0 .561 5.238 1 5.239.44 5.871.441Zm10.441-17.297h-3.55q-.423.14 0 .28h3.55Zm-3.62.703h-.458v-1.125h.457q2.145-.773 4.114-.95l.386-2.109.387.035c.047-.351.14-.851.281-1.508q-3.585-.07-8.93.563.458.523.95.91.597.422 1.16.563l1.055.246-.985.492q-1.688.843-4.183.844-.633 0-.88-.036a10 10 0 0 1-.843-.14l-.281-.106v-.457l-2.004-1.441q-5.162.704-6.992.738-3.938.035-3.938 2.918 0 2.777 3.938 2.918 2.356.036 6.992.738l2.004-1.441v-.457l.281-.106q.316-.105.844-.14.246-.035.879-.035 2.496 0 4.183.843l.985.457-1.055.282q-.563.106-1.16.562-.457.281-.95.88 5.1.631 8.93.597-.21-.915-.28-1.512h-.388l-.386-2.074a20.7 20.7 0 0 1-4.114-.95m4.042-1.688q-1.581.21-2.777.563h2.426l.316-.352Zm-.351 1.688H49q1.196.316 2.777.562l-.035-.21Zm11.386-.703q0-1.055-1.05-1.055h-1.793q-.81-1.582-2.532-1.582l-4.851-.422-.492 2.46-.352.423v.633l.352.421.492 2.426 4.852-.422q1.933 0 2.636-1.828h1.688q1.05 0 1.05-1.054m-3.898.14q0-1.44-1.477-1.441-1.44 0-1.44 1.441 0 1.476 1.44 1.477 1.477 0 1.477-1.477m.387 0q0 1.863-1.864 1.863-1.863 0-1.863-1.863t1.864-1.863 1.863 1.863m-1.16 0q0-.703-.703-.703-.668 0-.668.703t.667.703q.704 0 .704-.703m.386 0q0 1.09-1.09 1.09-1.054 0-1.054-1.09t1.054-1.09q1.09 0 1.09 1.09m-3.656-.176v.352h-2.918v-.352Zm21.547.176q-.07-1.055-1.055-1.055-1.054 0-1.054 1.055t1.054 1.055 1.055-1.055m.387 0q0 1.442-1.442 1.442-1.44 0-1.441-1.442 0-1.44 1.441-1.441 1.442 0 1.442 1.441m2.707 0q0-1.723-1.23-2.953-1.196-1.195-2.919-1.195-1.898 0-4.148 1.441-2.32 1.441-2.32 2.707 0 1.23 2.32 2.707 2.25 1.442 4.148 1.442 1.723 0 2.918-1.23 1.23-1.196 1.23-2.919m.422 0q0 1.863-1.336 3.2-1.337 1.335-3.235 1.335-1.968 0-4.36-1.511-2.53-1.583-2.53-3.024 0-1.44 2.53-3.058c1.595-1.008 3.048-1.508 4.36-1.508 1.219 0 2.297.441 3.235 1.332q1.335 1.371 1.336 3.234m-4.536-2.426q-.492 0-1.582.422-.984.493-.984.633v2.707q0 .387.984.633.985.422 1.582.422 2.427 0 2.497-2.32 0-2.461-2.497-2.497m2.883 2.426v.07q0 2.673-2.883 2.743-.562 0-1.757-.457-.879-.493-.985-.598a.53.53 0 0 1-.21-.422v-2.707q0-.175.175-.387.387-.351 1.02-.597 1.125-.457 1.757-.457 2.813.034 2.883 2.812M40.914 32.391H13.11q-.633 0-5.87.422-5.24.42-5.239 1.054v.95q0 .597 5.238 1.019t5.871.422h27.805q.457.176.95.176h5.413q.667 0 1.88-.563t1.214-1.512q.035-2.109-3.094-2.109h-5.414q-.598 0-.949.14m0 0" style="stroke:none;fill-rule:evenodd;fill:#ffc474;fill-opacity:1"/></svg>
|