{"version":3,"file":"parseAmplifyOutputs.mjs","sources":["../../src/parseAmplifyOutputs.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function isAmplifyOutputs(config) {\n    // version format initially will be '1' but is expected to be something like x.y where x is major and y minor version\n    const { version } = config;\n    if (!version) {\n        return false;\n    }\n    return version.startsWith('1');\n}\nfunction parseStorage(amplifyOutputsStorageProperties) {\n    if (!amplifyOutputsStorageProperties) {\n        return undefined;\n    }\n    const { bucket_name, aws_region, buckets } = amplifyOutputsStorageProperties;\n    return {\n        S3: {\n            bucket: bucket_name,\n            region: aws_region,\n            buckets: buckets && createBucketInfoMap(buckets),\n        },\n    };\n}\nfunction parseAuth(amplifyOutputsAuthProperties) {\n    if (!amplifyOutputsAuthProperties) {\n        return undefined;\n    }\n    const { user_pool_id, user_pool_client_id, identity_pool_id, password_policy, mfa_configuration, mfa_methods, unauthenticated_identities_enabled, oauth, username_attributes, standard_required_attributes, groups, passwordless, } = amplifyOutputsAuthProperties;\n    const authConfig = {\n        Cognito: {\n            userPoolId: user_pool_id,\n            userPoolClientId: user_pool_client_id,\n            groups,\n        },\n    };\n    if (identity_pool_id) {\n        authConfig.Cognito = {\n            ...authConfig.Cognito,\n            identityPoolId: identity_pool_id,\n        };\n    }\n    if (password_policy) {\n        authConfig.Cognito.passwordFormat = {\n            requireLowercase: password_policy.require_lowercase,\n            requireNumbers: password_policy.require_numbers,\n            requireUppercase: password_policy.require_uppercase,\n            requireSpecialCharacters: password_policy.require_symbols,\n            minLength: password_policy.min_length ?? 6,\n        };\n    }\n    if (mfa_configuration) {\n        authConfig.Cognito.mfa = {\n            status: getMfaStatus(mfa_configuration),\n            smsEnabled: mfa_methods?.includes('SMS'),\n            totpEnabled: mfa_methods?.includes('TOTP'),\n        };\n    }\n    if (unauthenticated_identities_enabled) {\n        authConfig.Cognito.allowGuestAccess = unauthenticated_identities_enabled;\n    }\n    if (oauth) {\n        authConfig.Cognito.loginWith = {\n            oauth: {\n                domain: oauth.domain,\n                redirectSignIn: oauth.redirect_sign_in_uri,\n                redirectSignOut: oauth.redirect_sign_out_uri,\n                responseType: oauth.response_type === 'token' ? 'token' : 'code',\n                scopes: oauth.scopes,\n                providers: getOAuthProviders(oauth.identity_providers),\n            },\n        };\n    }\n    if (username_attributes) {\n        authConfig.Cognito.loginWith = {\n            ...authConfig.Cognito.loginWith,\n            email: username_attributes.includes('email'),\n            phone: username_attributes.includes('phone_number'),\n            // Signing in with a username is not currently supported in Gen2, this should always evaluate to false\n            username: username_attributes.includes('username'),\n        };\n    }\n    if (standard_required_attributes) {\n        authConfig.Cognito.userAttributes = standard_required_attributes.reduce((acc, curr) => ({ ...acc, [curr]: { required: true } }), {});\n    }\n    if (passwordless) {\n        authConfig.Cognito.passwordless = {\n            emailOtpEnabled: passwordless.email_otp_enabled,\n            smsOtpEnabled: passwordless.sms_otp_enabled,\n            webAuthn: passwordless.web_authn\n                ? {\n                    relyingPartyId: passwordless.web_authn.relying_party_id,\n                    userVerification: passwordless.web_authn.user_verification,\n                }\n                : undefined,\n            preferredChallenge: passwordless.preferred_challenge,\n        };\n    }\n    return authConfig;\n}\nexport function parseAnalytics(amplifyOutputsAnalyticsProperties) {\n    if (!amplifyOutputsAnalyticsProperties?.amazon_pinpoint) {\n        return undefined;\n    }\n    const { amazon_pinpoint } = amplifyOutputsAnalyticsProperties;\n    return {\n        Pinpoint: {\n            appId: amazon_pinpoint.app_id,\n            region: amazon_pinpoint.aws_region,\n        },\n    };\n}\nfunction parseGeo(amplifyOutputsAnalyticsProperties) {\n    if (!amplifyOutputsAnalyticsProperties) {\n        return undefined;\n    }\n    const { aws_region, geofence_collections, maps, search_indices } = amplifyOutputsAnalyticsProperties;\n    return {\n        LocationService: {\n            region: aws_region,\n            searchIndices: search_indices,\n            geofenceCollections: geofence_collections,\n            maps,\n        },\n    };\n}\nfunction parseData(amplifyOutputsDataProperties) {\n    if (!amplifyOutputsDataProperties) {\n        return undefined;\n    }\n    const { aws_region, default_authorization_type, url, api_key, model_introspection, } = amplifyOutputsDataProperties;\n    const GraphQL = {\n        endpoint: url,\n        defaultAuthMode: getGraphQLAuthMode(default_authorization_type),\n        region: aws_region,\n        apiKey: api_key,\n        modelIntrospection: model_introspection,\n    };\n    return {\n        GraphQL,\n    };\n}\nfunction parseCustom(amplifyOutputsCustomProperties) {\n    if (!amplifyOutputsCustomProperties?.events) {\n        return undefined;\n    }\n    const { url, aws_region, api_key, default_authorization_type } = amplifyOutputsCustomProperties.events;\n    const Events = {\n        endpoint: url,\n        defaultAuthMode: getGraphQLAuthMode(default_authorization_type),\n        region: aws_region,\n        apiKey: api_key,\n    };\n    return {\n        Events,\n    };\n}\nfunction parseNotifications(amplifyOutputsNotificationsProperties) {\n    if (!amplifyOutputsNotificationsProperties) {\n        return undefined;\n    }\n    const { aws_region, channels, amazon_pinpoint_app_id } = amplifyOutputsNotificationsProperties;\n    const hasInAppMessaging = channels.includes('IN_APP_MESSAGING');\n    const hasPushNotification = channels.includes('APNS') || channels.includes('FCM');\n    if (!(hasInAppMessaging || hasPushNotification)) {\n        return undefined;\n    }\n    // At this point, we know the Amplify outputs contains at least one supported channel\n    const notificationsConfig = {};\n    if (hasInAppMessaging) {\n        notificationsConfig.InAppMessaging = {\n            Pinpoint: {\n                appId: amazon_pinpoint_app_id,\n                region: aws_region,\n            },\n        };\n    }\n    if (hasPushNotification) {\n        notificationsConfig.PushNotification = {\n            Pinpoint: {\n                appId: amazon_pinpoint_app_id,\n                region: aws_region,\n            },\n        };\n    }\n    return notificationsConfig;\n}\nexport function parseAmplifyOutputs(amplifyOutputs) {\n    const resourcesConfig = {};\n    if (amplifyOutputs.storage) {\n        resourcesConfig.Storage = parseStorage(amplifyOutputs.storage);\n    }\n    if (amplifyOutputs.auth) {\n        resourcesConfig.Auth = parseAuth(amplifyOutputs.auth);\n    }\n    if (amplifyOutputs.analytics) {\n        resourcesConfig.Analytics = parseAnalytics(amplifyOutputs.analytics);\n    }\n    if (amplifyOutputs.geo) {\n        resourcesConfig.Geo = parseGeo(amplifyOutputs.geo);\n    }\n    if (amplifyOutputs.data) {\n        resourcesConfig.API = parseData(amplifyOutputs.data);\n    }\n    if (amplifyOutputs.custom) {\n        const customConfig = parseCustom(amplifyOutputs.custom);\n        if (customConfig && 'Events' in customConfig) {\n            resourcesConfig.API = { ...resourcesConfig.API, ...customConfig };\n        }\n    }\n    if (amplifyOutputs.notifications) {\n        resourcesConfig.Notifications = parseNotifications(amplifyOutputs.notifications);\n    }\n    return resourcesConfig;\n}\nconst authModeNames = {\n    AMAZON_COGNITO_USER_POOLS: 'userPool',\n    API_KEY: 'apiKey',\n    AWS_IAM: 'iam',\n    AWS_LAMBDA: 'lambda',\n    OPENID_CONNECT: 'oidc',\n};\nfunction getGraphQLAuthMode(authType) {\n    return authModeNames[authType];\n}\nconst providerNames = {\n    GOOGLE: 'Google',\n    LOGIN_WITH_AMAZON: 'Amazon',\n    FACEBOOK: 'Facebook',\n    SIGN_IN_WITH_APPLE: 'Apple',\n};\nfunction getOAuthProviders(providers = []) {\n    return providers.reduce((oAuthProviders, provider) => {\n        if (providerNames[provider] !== undefined) {\n            oAuthProviders.push(providerNames[provider]);\n        }\n        return oAuthProviders;\n    }, []);\n}\nfunction getMfaStatus(mfaConfiguration) {\n    if (mfaConfiguration === 'OPTIONAL')\n        return 'optional';\n    if (mfaConfiguration === 'REQUIRED')\n        return 'on';\n    return 'off';\n}\nfunction createBucketInfoMap(buckets) {\n    const mappedBuckets = {};\n    buckets.forEach(({ name, bucket_name: bucketName, aws_region: region, paths }) => {\n        if (name in mappedBuckets) {\n            throw new Error(`Duplicate friendly name found: ${name}. Name must be unique.`);\n        }\n        const sanitizedPaths = paths\n            ? Object.entries(paths).reduce((acc, [key, value]) => {\n                if (value !== undefined) {\n                    acc[key] = value;\n                }\n                return acc;\n            }, {})\n            : undefined;\n        mappedBuckets[name] = {\n            bucketName,\n            region,\n            paths: sanitizedPaths,\n        };\n    });\n    return mappedBuckets;\n}\n"],"names":[],"mappings":"AAAA;AACA;AACO,SAAS,gBAAgB,CAAC,MAAM,EAAE;AACzC;AACA,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;AAClC;AACA,SAAS,YAAY,CAAC,+BAA+B,EAAE;AACvD,IAAI,IAAI,CAAC,+BAA+B,EAAE;AAC1C,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,+BAA+B;AAChF,IAAI,OAAO;AACX,QAAQ,EAAE,EAAE;AACZ,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,MAAM,EAAE,UAAU;AAC9B,YAAY,OAAO,EAAE,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC;AAC5D,SAAS;AACT,KAAK;AACL;AACA,SAAS,SAAS,CAAC,4BAA4B,EAAE;AACjD,IAAI,IAAI,CAAC,4BAA4B,EAAE;AACvC,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,kCAAkC,EAAE,KAAK,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,4BAA4B;AACtQ,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,EAAE;AACjB,YAAY,UAAU,EAAE,YAAY;AACpC,YAAY,gBAAgB,EAAE,mBAAmB;AACjD,YAAY,MAAM;AAClB,SAAS;AACT,KAAK;AACL,IAAI,IAAI,gBAAgB,EAAE;AAC1B,QAAQ,UAAU,CAAC,OAAO,GAAG;AAC7B,YAAY,GAAG,UAAU,CAAC,OAAO;AACjC,YAAY,cAAc,EAAE,gBAAgB;AAC5C,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,eAAe,EAAE;AACzB,QAAQ,UAAU,CAAC,OAAO,CAAC,cAAc,GAAG;AAC5C,YAAY,gBAAgB,EAAE,eAAe,CAAC,iBAAiB;AAC/D,YAAY,cAAc,EAAE,eAAe,CAAC,eAAe;AAC3D,YAAY,gBAAgB,EAAE,eAAe,CAAC,iBAAiB;AAC/D,YAAY,wBAAwB,EAAE,eAAe,CAAC,eAAe;AACrE,YAAY,SAAS,EAAE,eAAe,CAAC,UAAU,IAAI,CAAC;AACtD,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,iBAAiB,EAAE;AAC3B,QAAQ,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG;AACjC,YAAY,MAAM,EAAE,YAAY,CAAC,iBAAiB,CAAC;AACnD,YAAY,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC;AACpD,YAAY,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC;AACtD,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,kCAAkC,EAAE;AAC5C,QAAQ,UAAU,CAAC,OAAO,CAAC,gBAAgB,GAAG,kCAAkC;AAChF,IAAI;AACJ,IAAI,IAAI,KAAK,EAAE;AACf,QAAQ,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG;AACvC,YAAY,KAAK,EAAE;AACnB,gBAAgB,MAAM,EAAE,KAAK,CAAC,MAAM;AACpC,gBAAgB,cAAc,EAAE,KAAK,CAAC,oBAAoB;AAC1D,gBAAgB,eAAe,EAAE,KAAK,CAAC,qBAAqB;AAC5D,gBAAgB,YAAY,EAAE,KAAK,CAAC,aAAa,KAAK,OAAO,GAAG,OAAO,GAAG,MAAM;AAChF,gBAAgB,MAAM,EAAE,KAAK,CAAC,MAAM;AACpC,gBAAgB,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,kBAAkB,CAAC;AACtE,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,mBAAmB,EAAE;AAC7B,QAAQ,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG;AACvC,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS;AAC3C,YAAY,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;AACxD,YAAY,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC/D;AACA,YAAY,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC9D,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,4BAA4B,EAAE;AACtC,QAAQ,UAAU,CAAC,OAAO,CAAC,cAAc,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AAC5I,IAAI;AACJ,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG;AAC1C,YAAY,eAAe,EAAE,YAAY,CAAC,iBAAiB;AAC3D,YAAY,aAAa,EAAE,YAAY,CAAC,eAAe;AACvD,YAAY,QAAQ,EAAE,YAAY,CAAC;AACnC,kBAAkB;AAClB,oBAAoB,cAAc,EAAE,YAAY,CAAC,SAAS,CAAC,gBAAgB;AAC3E,oBAAoB,gBAAgB,EAAE,YAAY,CAAC,SAAS,CAAC,iBAAiB;AAC9E;AACA,kBAAkB,SAAS;AAC3B,YAAY,kBAAkB,EAAE,YAAY,CAAC,mBAAmB;AAChE,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,UAAU;AACrB;AACO,SAAS,cAAc,CAAC,iCAAiC,EAAE;AAClE,IAAI,IAAI,CAAC,iCAAiC,EAAE,eAAe,EAAE;AAC7D,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,EAAE,eAAe,EAAE,GAAG,iCAAiC;AACjE,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE;AAClB,YAAY,KAAK,EAAE,eAAe,CAAC,MAAM;AACzC,YAAY,MAAM,EAAE,eAAe,CAAC,UAAU;AAC9C,SAAS;AACT,KAAK;AACL;AACA,SAAS,QAAQ,CAAC,iCAAiC,EAAE;AACrD,IAAI,IAAI,CAAC,iCAAiC,EAAE;AAC5C,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,iCAAiC;AACxG,IAAI,OAAO;AACX,QAAQ,eAAe,EAAE;AACzB,YAAY,MAAM,EAAE,UAAU;AAC9B,YAAY,aAAa,EAAE,cAAc;AACzC,YAAY,mBAAmB,EAAE,oBAAoB;AACrD,YAAY,IAAI;AAChB,SAAS;AACT,KAAK;AACL;AACA,SAAS,SAAS,CAAC,4BAA4B,EAAE;AACjD,IAAI,IAAI,CAAC,4BAA4B,EAAE;AACvC,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,EAAE,UAAU,EAAE,0BAA0B,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,GAAG,GAAG,4BAA4B;AACvH,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,QAAQ,EAAE,GAAG;AACrB,QAAQ,eAAe,EAAE,kBAAkB,CAAC,0BAA0B,CAAC;AACvE,QAAQ,MAAM,EAAE,UAAU;AAC1B,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,kBAAkB,EAAE,mBAAmB;AAC/C,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,OAAO;AACf,KAAK;AACL;AACA,SAAS,WAAW,CAAC,8BAA8B,EAAE;AACrD,IAAI,IAAI,CAAC,8BAA8B,EAAE,MAAM,EAAE;AACjD,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,0BAA0B,EAAE,GAAG,8BAA8B,CAAC,MAAM;AAC1G,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,QAAQ,EAAE,GAAG;AACrB,QAAQ,eAAe,EAAE,kBAAkB,CAAC,0BAA0B,CAAC;AACvE,QAAQ,MAAM,EAAE,UAAU;AAC1B,QAAQ,MAAM,EAAE,OAAO;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,MAAM;AACd,KAAK;AACL;AACA,SAAS,kBAAkB,CAAC,qCAAqC,EAAE;AACnE,IAAI,IAAI,CAAC,qCAAqC,EAAE;AAChD,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,EAAE,GAAG,qCAAqC;AAClG,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AACnE,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrF,IAAI,IAAI,EAAE,iBAAiB,IAAI,mBAAmB,CAAC,EAAE;AACrD,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ;AACA,IAAI,MAAM,mBAAmB,GAAG,EAAE;AAClC,IAAI,IAAI,iBAAiB,EAAE;AAC3B,QAAQ,mBAAmB,CAAC,cAAc,GAAG;AAC7C,YAAY,QAAQ,EAAE;AACtB,gBAAgB,KAAK,EAAE,sBAAsB;AAC7C,gBAAgB,MAAM,EAAE,UAAU;AAClC,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,mBAAmB,EAAE;AAC7B,QAAQ,mBAAmB,CAAC,gBAAgB,GAAG;AAC/C,YAAY,QAAQ,EAAE;AACtB,gBAAgB,KAAK,EAAE,sBAAsB;AAC7C,gBAAgB,MAAM,EAAE,UAAU;AAClC,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,mBAAmB;AAC9B;AACO,SAAS,mBAAmB,CAAC,cAAc,EAAE;AACpD,IAAI,MAAM,eAAe,GAAG,EAAE;AAC9B,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE;AAChC,QAAQ,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC;AACtE,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE;AAC7B,QAAQ,eAAe,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;AAC7D,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,SAAS,EAAE;AAClC,QAAQ,eAAe,CAAC,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC;AAC5E,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,GAAG,EAAE;AAC5B,QAAQ,eAAe,CAAC,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;AAC1D,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE;AAC7B,QAAQ,eAAe,CAAC,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;AAC5D,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE;AAC/B,QAAQ,MAAM,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC;AAC/D,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,EAAE;AACtD,YAAY,eAAe,CAAC,GAAG,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE;AAC7E,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,aAAa,EAAE;AACtC,QAAQ,eAAe,CAAC,aAAa,GAAG,kBAAkB,CAAC,cAAc,CAAC,aAAa,CAAC;AACxF,IAAI;AACJ,IAAI,OAAO,eAAe;AAC1B;AACA,MAAM,aAAa,GAAG;AACtB,IAAI,yBAAyB,EAAE,UAAU;AACzC,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,cAAc,EAAE,MAAM;AAC1B,CAAC;AACD,SAAS,kBAAkB,CAAC,QAAQ,EAAE;AACtC,IAAI,OAAO,aAAa,CAAC,QAAQ,CAAC;AAClC;AACA,MAAM,aAAa,GAAG;AACtB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,iBAAiB,EAAE,QAAQ;AAC/B,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,kBAAkB,EAAE,OAAO;AAC/B,CAAC;AACD,SAAS,iBAAiB,CAAC,SAAS,GAAG,EAAE,EAAE;AAC3C,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,QAAQ,KAAK;AAC1D,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;AACnD,YAAY,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACxD,QAAQ;AACR,QAAQ,OAAO,cAAc;AAC7B,IAAI,CAAC,EAAE,EAAE,CAAC;AACV;AACA,SAAS,YAAY,CAAC,gBAAgB,EAAE;AACxC,IAAI,IAAI,gBAAgB,KAAK,UAAU;AACvC,QAAQ,OAAO,UAAU;AACzB,IAAI,IAAI,gBAAgB,KAAK,UAAU;AACvC,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,KAAK;AAChB;AACA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,MAAM,aAAa,GAAG,EAAE;AAC5B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;AACtF,QAAQ,IAAI,IAAI,IAAI,aAAa,EAAE;AACnC,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,+BAA+B,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC3F,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG;AAC/B,cAAc,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AAClE,gBAAgB,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,oBAAoB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACpC,gBAAgB;AAChB,gBAAgB,OAAO,GAAG;AAC1B,YAAY,CAAC,EAAE,EAAE;AACjB,cAAc,SAAS;AACvB,QAAQ,aAAa,CAAC,IAAI,CAAC,GAAG;AAC9B,YAAY,UAAU;AACtB,YAAY,MAAM;AAClB,YAAY,KAAK,EAAE,cAAc;AACjC,SAAS;AACT,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,aAAa;AACxB;;;;"}