{
  "version": 3,
  "sources": ["/cdn/shop/t/14/assets/dsd-supabase-social-adapter-p11dz610.js-p11dz686.js?probe=1784215911"],
  "sourcesContent": ["/*\n * DSD Supabase Social Adapter p11dz610\n * Controlled browser adapter for the Supabase social metadata bridge.\n * Media binaries remain on Wasabi; this adapter only reads/writes metadata rows.\n */\n(function(){\n  'use strict';\n  var P11DZ686_MEDIA_SCOPE_REPAIR = 'p11dz686-authenticated-relationship-media-scope-1784084600';\n  var VERSION = 'p11dz610-secure-supabase-social-adapter';\n  var BUILD = 'p11dz686-profile-discovery-speed-repair-1784420300';\n  if (window.DSDSupabaseSocialAdapter && window.DSDSupabaseSocialAdapter.version === VERSION && window.DSDSupabaseSocialAdapter.build === BUILD) return;\n  var REQUIRED_TABLES = [\n    'app_users','profiles','public_profiles','posts','post_media','stories','story_media','comments','reactions',\n    'saves','favorites','follows','conversations','conversation_members','messages','message_attachments',\n    'notifications','safety_reports','moderation_queue','moderation_audit','founder_audit','gated_post_shells',\n    'gated_story_shells','universes',\n    'universe_members','universe_posts','universe_stories','galaxies','galaxy_members','galaxy_posts',\n    'galaxy_stories','media_objects','system_audit','migration_ledger'\n  ];\n  var PUBLIC_PROFILE_SELECT_BASE = 'user_id,profile_key,handle,display_name,bio,avatar_media_id,banner_media_id,searchable,status,moderation_state,updated_at';\n  var PUBLIC_PROFILE_STATS_SELECT = 'follower_count,followers_count,following_count,follows_count,post_count,posts_count,media_count,story_count,stories_count,favorite_count,favorites_count,saved_count,saves_count,view_count,profile_view_count';\n  var optionalColumnSupport = { profileLocation: false, profileBannerPosition: false, profileStats: false };\n  var LAUNCH_HELD_SPACE_SURFACES = {\n    universes: true,\n    multiverse: true,\n    galaxies: true\n  };\n  var LAUNCH_HELD_SPACE_TABLES = {\n    universes: true,\n    universe_members: true,\n    universe_posts: true,\n    universe_stories: true,\n    galaxies: true,\n    galaxy_members: true,\n    galaxy_posts: true,\n    galaxy_stories: true\n  };\n\n  function claim(surface, meta){\n    try {\n      if (window.DSDRegistry && typeof window.DSDRegistry.claim === 'function') {\n        window.DSDRegistry.claim(surface, 'SupabaseSocialAdapter', Object.assign({ version: VERSION }, meta || {}));\n      }\n    } catch(e) {}\n  }\n\n  function config(){\n    return window.DSDSupabaseConfig || null;\n  }\n\n  function isLaunchHeldSpacePath(path){\n    var p = pathParts(path);\n    return !!(p && LAUNCH_HELD_SPACE_SURFACES[p[0]]);\n  }\n\n  function isLaunchHeldSpaceTable(table){\n    return !!LAUNCH_HELD_SPACE_TABLES[String(table || '').trim()];\n  }\n\n  function launchHeldSpaceRows(table){\n    claim('launch-held-space:table-read-blocked', { table: table, build: BUILD });\n    return Promise.resolve([]);\n  }\n\n  function launchHeldSpaceTableWrite(table){\n    claim('launch-held-space:table-write-blocked', { table: table, build: BUILD });\n    return Promise.reject(new Error('Launch-held social space table write disabled: ' + table));\n  }\n\n  function launchHeldSpaceSnapshot(path){\n    claim('launch-held-space:get-blocked', { path: path, build: BUILD });\n    return Promise.resolve({\n      id: pathParts(path).slice(-1)[0] || '',\n      exists: function(){ return false; },\n      data: function(){ return null; }\n    });\n  }\n\n  function launchHeldSpaceWrite(path){\n    claim('launch-held-space:write-blocked', { path: path, build: BUILD });\n    return Promise.reject(new Error('Launch-held social space write disabled: ' + path));\n  }\n\n  var sessionState = {\n    promise: null,\n    payload: null,\n    issuedAt: 0\n  };\n\n  function assertSafePublicKey(key){\n    if (!key) return;\n    var value = String(key || '');\n    if (/sb_secret_/i.test(value) || /service[_-]?role/i.test(value)) {\n      throw new Error('Supabase adapter refused unsafe key');\n    }\n  }\n\n  function assertConfigured(){\n    var cfg = config();\n    if (!cfg || !cfg.url || !cfg.tokenEndpoint) {\n      throw new Error('Supabase adapter unavailable: verified bridge config missing');\n    }\n    if (!/^https:\\/\\/[a-z0-9-]+\\.supabase\\.co\\/?$/i.test(String(cfg.url || ''))) {\n      throw new Error('Supabase adapter refused unexpected project URL');\n    }\n    assertSafePublicKey(cfg.anonKey);\n    return cfg;\n  }\n\n  function customerPayload(){\n    var customer = window.DSDShopifyCustomer || {};\n    return {\n      authenticated: customer.authenticated === true,\n      profileKey: customer.profileKey || customer.handle || '',\n      isFounder: customer.isFounder === true,\n      isModerator: customer.isModerator === true,\n      membership: customer.membership || null\n    };\n  }\n  function hasCustomer(){\n    var customer = window.DSDShopifyCustomer || {};\n    return !!(customer && (customer.authenticated === true || customer.profileKey || customer.handle));\n  }\n\n  function bridgeToken(options){\n    var cfg = assertConfigured();\n    if (options && options.publicRead === true && cfg.anonKey) {\n      assertSafePublicKey(cfg.anonKey);\n      return Promise.resolve({\n        accessToken: cfg.anonKey,\n        supabaseAnonKey: cfg.anonKey,\n        publicRead: true,\n        supabaseUserId: '',\n        profileKey: ''\n      });\n    }\n    var requestBody = Object.assign({\n      intent: options && options.publicRead === true ? 'public-social-metadata-read' : 'social-metadata-session',\n      bridgeRoute: '/dsd-supabase-custom-token'\n    }, customerPayload(), options && options.body || {});\n    if (options && options.publicRead === true) {\n      requestBody.publicRead = true;\n      requestBody.readOnly = true;\n      requestBody.surface = requestBody.surface || 'public-social';\n    }\n    return fetch(cfg.tokenEndpoint, {\n      method: 'POST',\n      credentials: 'include',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify(requestBody)\n    }).then(function(res){\n      if (!res.ok) throw new Error('Supabase bridge failed: ' + res.status);\n      return res.json();\n    }).then(function(payload){\n      if (!payload || !payload.accessToken) throw new Error('Supabase bridge missing access token');\n      assertSafePublicKey(payload.supabaseAnonKey || payload.anonKey);\n      try {\n        var parts = String(payload.accessToken || '').split('.');\n        if (parts.length >= 2 && payload.publicRead !== true) {\n          var encodedClaims = parts[1].replace(/-/g, '+').replace(/_/g, '/');\n          while (encodedClaims.length % 4) encodedClaims += '=';\n          var claimJson = atob(encodedClaims);\n          window.DSDSupabaseSessionClaims = JSON.parse(claimJson);\n        }\n      } catch(e) {}\n      if (payload.publicRead !== true && payload.entitlement && payload.entitlement.dsdPlus === true) {\n        window.DSDSupabaseSessionClaims = Object.assign({}, window.DSDSupabaseSessionClaims || {}, { dsd_plus: true, entitlement_source: 'server-verified-shopify-tags' });\n      }\n      sessionState.payload = payload;\n      sessionState.issuedAt = Date.now();\n      return payload;\n    });\n  }\n\n  function session(options){\n    var force = options && options.force === true;\n    var maxAge = Number(options && options.maxAgeMs || 45 * 60 * 1000);\n    var wantsPublicRead = options && options.publicRead === true;\n    if (!force && sessionState.payload && Date.now() - sessionState.issuedAt < maxAge) {\n      if (wantsPublicRead || !sessionState.payload.publicRead) return Promise.resolve(sessionState.payload);\n    }\n    if (!force && sessionState.promise && !wantsPublicRead) return sessionState.promise;\n    sessionState.promise = bridgeToken(options).finally(function(){ sessionState.promise = null; });\n    return sessionState.promise;\n  }\n\n  function encodeQuery(query){\n    if (!query) return '';\n    if (typeof query === 'string') return query.charAt(0) === '?' ? query.slice(1) : query;\n    if (query instanceof URLSearchParams) return query.toString();\n    var params = new URLSearchParams();\n    Object.keys(query).forEach(function(key){\n      var value = query[key];\n      if (value === undefined || value === null) return;\n      if (Array.isArray(value)) {\n        value.forEach(function(item){ params.append(key, String(item)); });\n      } else {\n        params.set(key, String(value));\n      }\n    });\n    return params.toString();\n  }\n\n  function assertTable(table){\n    var name = String(table || '').trim();\n    if (!/^[a-z][a-z0-9_]*$/.test(name)) throw new Error('Invalid Supabase table: ' + table);\n    if (REQUIRED_TABLES.indexOf(name) === -1) throw new Error('Supabase table not owned by adapter: ' + name);\n    return name;\n  }\n\n  function restPath(table, query){\n    var cfg = assertConfigured();\n    var base = String(cfg.url || '').replace(/\\/+$/, '') + '/rest/v1/' + encodeURIComponent(assertTable(table));\n    var qs = encodeQuery(query);\n    return qs ? base + '?' + qs : base;\n  }\n\n  function headers(payload, extra){\n    var cfg = assertConfigured();\n    var anonKey = payload && (payload.supabaseAnonKey || payload.anonKey) || cfg.anonKey || '';\n    assertSafePublicKey(anonKey);\n    if (!anonKey) throw new Error('Supabase adapter unavailable: public key missing from verified bridge');\n    return Object.assign({\n      apikey: anonKey,\n      Authorization: 'Bearer ' + (payload && payload.accessToken || anonKey),\n      'Content-Type': 'application/json'\n    }, extra || {});\n  }\n\n  function parseResponse(res){\n    if (!res.ok) {\n      return res.text().then(function(text){\n        var message = text || ('Supabase REST failed: ' + res.status);\n        throw new Error(message);\n      });\n    }\n    if (res.status === 204) return null;\n    return res.text().then(function(text){ return text ? JSON.parse(text) : null; });\n  }\n  function boundedFetch(url, options){\n    var timeoutMs = 15000;\n    var timer;\n    return Promise.race([\n      fetch(url, options),\n      new Promise(function(_, reject){\n        timer = setTimeout(function(){ reject(new Error('Supabase REST timed out after ' + timeoutMs + 'ms')); }, timeoutMs);\n      })\n    ]).then(function(response){\n      clearTimeout(timer);\n      return response;\n    }, function(error){\n      clearTimeout(timer);\n      throw error;\n    });\n  }\n\n  function hasExplicitSelect(query){\n    if (!query) return false;\n    if (typeof query === 'string') return /(?:^|[?&])select=/.test(query);\n    if (query instanceof URLSearchParams) return query.has('select');\n    return Object.prototype.hasOwnProperty.call(query, 'select') && !!query.select;\n  }\n\n  function read(table, query, options){\n    if (!hasExplicitSelect(query)) throw new Error('Supabase read requires explicit projection for ' + table);\n    var q = query;\n    if (isLaunchHeldSpaceTable(table)) return launchHeldSpaceRows(table);\n    return session(options).then(function(payload){\n      function executeRead(readQuery){\n        return boundedFetch(restPath(table, readQuery), {\n        method: 'GET',\n        credentials: 'omit',\n        headers: headers(payload, { Accept: 'application/json' })\n        }).then(parseResponse);\n      }\n      return executeRead(q).catch(function(error){\n        if (table === 'public_profiles' && disablePublicProfileOptionalSelectColumns(error)) {\n          return executeRead(Object.assign({}, q || {}, { select: publicProfileSelect() }));\n        }\n        throw error;\n      });\n    });\n  }\n  function publicProfileSelect(){\n    var select = PUBLIC_PROFILE_SELECT_BASE;\n    if (optionalColumnSupport.profileLocation) select += ',location,location_city,location_state';\n    if (optionalColumnSupport.profileBannerPosition) select += ',banner_position';\n    if (optionalColumnSupport.profileStats) select += ',' + PUBLIC_PROFILE_STATS_SELECT;\n    return select;\n  }\n  function profileGovernanceSelect(){\n    return 'profile_key,user_id,visibility,content_rating,access_gate,account_state,searchable,setup_complete,moderation_state,avatar_media_id,banner_media_id,avatar_wasabi_object_key,banner_wasabi_object_key,birthdate,age_verified,adult_content_enabled';\n  }\n  function isMissingLocationColumnError(error){\n    var message = String(error && error.message || error || '').toLowerCase();\n    return message.indexOf('location') !== -1 && (message.indexOf('column') !== -1 || message.indexOf('schema cache') !== -1 || message.indexOf('pgrst') !== -1);\n  }\n  function isMissingBannerPositionColumnError(error){\n    var message = String(error && error.message || error || '').toLowerCase();\n    return message.indexOf('banner_position') !== -1 && (message.indexOf('column') !== -1 || message.indexOf('schema cache') !== -1 || message.indexOf('pgrst') !== -1);\n  }\n  function isMissingProfileStatsColumnError(error){\n    var message = String(error && error.message || error || '').toLowerCase();\n    if (message.indexOf('column') === -1 && message.indexOf('schema cache') === -1 && message.indexOf('pgrst') === -1) return false;\n    return [\n      'follower_count','followers_count','following_count','follows_count',\n      'post_count','posts_count','media_count','story_count','stories_count',\n      'favorite_count','favorites_count','saved_count','saves_count',\n      'view_count','profile_view_count'\n    ].some(function(column){ return message.indexOf(column) !== -1; });\n  }\n  function disablePublicProfileOptionalSelectColumns(error){\n    var message = String(error && error.message || error || '').toLowerCase();\n    var changed = false;\n    if (isMissingLocationColumnError(error) && optionalColumnSupport.profileLocation) {\n      optionalColumnSupport.profileLocation = false;\n      changed = true;\n    }\n    if (isMissingBannerPositionColumnError(error) && optionalColumnSupport.profileBannerPosition) {\n      optionalColumnSupport.profileBannerPosition = false;\n      changed = true;\n    }\n    if (isMissingProfileStatsColumnError(error) && optionalColumnSupport.profileStats) {\n      optionalColumnSupport.profileStats = false;\n      changed = true;\n    }\n    if (!changed && (optionalColumnSupport.profileLocation || optionalColumnSupport.profileBannerPosition || optionalColumnSupport.profileStats) && (message.indexOf('public_profiles') !== -1 || message.indexOf('failed to parse filter') !== -1 || message.indexOf('could not find') !== -1 || message.indexOf('does not exist') !== -1 || message.indexOf('supabase rest failed: 400') !== -1)) {\n      optionalColumnSupport.profileLocation = false;\n      optionalColumnSupport.profileBannerPosition = false;\n      optionalColumnSupport.profileStats = false;\n      changed = true;\n    }\n    if (changed) claim('supabase-public-profile-optional-select:fallback', { location: optionalColumnSupport.profileLocation, bannerPosition: optionalColumnSupport.profileBannerPosition, profileStats: optionalColumnSupport.profileStats, error: error && error.message || String(error) });\n    return changed;\n  }\n  function stripProfileOptionalColumns(value){\n    if (Array.isArray(value)) return value.map(stripProfileOptionalColumns);\n    if (!value || typeof value !== 'object') return value;\n    var clone = Object.assign({}, value);\n    delete clone.location;\n    delete clone.location_city;\n    delete clone.location_state;\n    delete clone.banner_position;\n    return clone;\n  }\n\n  function write(table, rows, options){\n    var opts = options || {};\n    var method = opts.method || (opts.match ? 'PATCH' : 'POST');\n    var query = opts.match || opts.query || '';\n    if (isLaunchHeldSpaceTable(table)) return launchHeldSpaceTableWrite(table);\n    function execute(payload, bodyRows){\n      return boundedFetch(restPath(table, query), {\n        method: method,\n        credentials: 'omit',\n        headers: headers(payload, {\n          Prefer: opts.prefer || (opts.upsert ? 'resolution=merge-duplicates,return=representation' : 'return=representation')\n        }),\n        body: JSON.stringify(bodyRows)\n      }).then(parseResponse);\n    }\n    return session(opts).then(function(payload){\n      return execute(payload, rows).catch(function(error){\n        if ((table === 'profiles' || table === 'public_profiles') && (isMissingLocationColumnError(error) || isMissingBannerPositionColumnError(error) || isMissingProfileStatsColumnError(error))) {\n          if (isMissingLocationColumnError(error)) optionalColumnSupport.profileLocation = false;\n          if (isMissingBannerPositionColumnError(error)) optionalColumnSupport.profileBannerPosition = false;\n          if (isMissingProfileStatsColumnError(error)) optionalColumnSupport.profileStats = false;\n          claim('supabase-profile-optional-column:fallback', { table: table, location: optionalColumnSupport.profileLocation, bannerPosition: optionalColumnSupport.profileBannerPosition, profileStats: optionalColumnSupport.profileStats, error: error && error.message || String(error) });\n          return execute(payload, stripProfileOptionalColumns(rows));\n        }\n        throw error;\n      });\n    });\n  }\n\n  function remove(table, query, options){\n    var opts = options || {};\n    if (isLaunchHeldSpaceTable(table)) return launchHeldSpaceTableWrite(table);\n    return session(opts).then(function(payload){\n      return boundedFetch(restPath(table, query), {\n        method: 'DELETE',\n        credentials: 'omit',\n        headers: headers(payload, { Prefer: opts.prefer || 'return=minimal' })\n      }).then(parseResponse);\n    });\n  }\n  function hydrateMediaBySurface(records, surface, options){\n    records = records || [];\n    function surfaceRecordKeys(record){\n      if (!record) return [];\n      var keys = [];\n      function add(value){\n        value = clean(value);\n        if (value && keys.indexOf(value) === -1) keys.push(value);\n      }\n      if (surface === 'story') {\n        add(record.storyId);\n        add(record.supabaseStoryId);\n        add(record.id);\n      } else if (surface === 'comment') {\n        add(record.commentId);\n        add(record.supabaseCommentId);\n        add(record.id);\n      } else {\n        add(record.postId);\n        add(record.supabasePostId);\n        add(record.id);\n      }\n      return keys;\n    }\n    var ids = [];\n    records.forEach(function(record){\n      surfaceRecordKeys(record).forEach(function(key){\n        if (ids.indexOf(key) === -1) ids.push(key);\n      });\n    });\n    var filter = inFilter(ids);\n    if (!records.length || !filter) return Promise.resolve(records);\n    var query = { select: MEDIA_OBJECT_RENDER_SELECT, surface: 'eq.' + surface, surface_id: filter, status: 'in.(uploaded,approved)', order: 'created_at.asc', limit: 200 };\n    if (options && options.publicRead === true && options.viewerAuthenticated !== true) {\n      query.visibility = 'eq.public';\n    }\n    return read('media_objects', query, options).then(function(rows){\n      var grouped = {};\n      (rows || []).forEach(function(row){\n        var key = row.surface_id || '';\n        if (!key) return;\n        grouped[key] = grouped[key] || [];\n        grouped[key].push(frontendRecord('media_objects', row));\n      });\n      return records.map(function(record){\n        var media = [];\n        surfaceRecordKeys(record).forEach(function(key){\n          if (!grouped[key]) return;\n          media = media.concat(grouped[key]);\n        });\n        var seen = {};\n        media = media.filter(function(item){\n          var id = item && (item.id || item.mediaId || item.supabaseMediaId || item.legacyMediaId) || '';\n          if (!id || seen[id]) return false;\n          seen[id] = true;\n          return true;\n        });\n        return media.length ? Object.assign({}, record, { media: media, mediaMode: media[0] && media[0].kind || record.mediaMode || 'mixed' }) : record;\n      });\n    }).catch(function(error){\n      claim('supabase-media-surface:blocked', { surface: surface, error: error && error.message || String(error) });\n      return records;\n    });\n  }\n  function storyBridgeExpiry(createdAt){\n    var base = Date.parse(createdAt || '');\n    if (!Number.isFinite(base)) base = Date.now();\n    return new Date(base + 24 * 60 * 60 * 1000).toISOString();\n  }\n  function legacyStoryCreatedAt(storyId){\n    var match = String(storyId || '').match(/^story-(\\d{10,})-/);\n    var millis = match ? Number(match[1]) : 0;\n    return Number.isFinite(millis) && millis > 0 ? new Date(millis).toISOString() : '';\n  }\n  function storyOrphanBridgeCutoff(){\n    return new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();\n  }\n  function storyRowFromOrphanMedia(row){\n    var storyId = clean(row && row.surface_id || '');\n    if (!storyId) return null;\n    var rating = normalizeRating(row.content_rating || 'standard');\n    var gate = normalizeGate(row.access_gate || 'none');\n    var createdAt = legacyStoryCreatedAt(storyId);\n    if (!createdAt) return null;\n    var expiresAt = storyBridgeExpiry(createdAt);\n    if (Date.parse(expiresAt || '') <= Date.now()) return null;\n    return {\n      id: storyId,\n      legacy_story_id: storyId,\n      owner_user_id: '',\n      owner_profile_key: clean(row.owner_profile_key || ''),\n      owner_display_name: clean(row.owner_profile_key || 'Story'),\n      body: '',\n      visibility: 'public',\n      content_rating: rating,\n      access_gate: gate,\n      status: 'approved',\n      moderation_state: 'approved',\n      view_count: 0,\n      watch_count: 0,\n      unique_watch_count: 0,\n      public_safe: publicSafeMetadata('public', rating, gate),\n      created_at: createdAt,\n      updated_at: row.updated_at || createdAt,\n      expires_at: expiresAt\n    };\n  }\n  function recoverOrphanStoryRows(rows, options){\n    rows = rows || [];\n    claim('supabase-story-orphan-media:deconstructed', { reason: 'story-media-without-canonical-story-parent-must-not-republish-or-extend-expiry', build: BUILD });\n    return Promise.resolve(rows);\n  }\n  function hydrateMediaByRelationship(records, surface, rows, options){\n    records = records || [];\n    rows = rows || [];\n    var relationTable = surface === 'story' ? 'story_media' : 'post_media';\n    var idField = surface === 'story' ? 'story_id' : 'post_id';\n    function addKey(map, value, row){\n      value = clean(value);\n      if (value && row && !map[value]) map[value] = row;\n    }\n    function sourceRowKeys(record){\n      var keys = [];\n      function add(value){\n        value = clean(value);\n        if (value && keys.indexOf(value) === -1) keys.push(value);\n      }\n      if (surface === 'story') {\n        add(record && record.supabaseStoryId);\n        add(record && record.supabase_story_id);\n        add(record && record.storyId);\n        add(record && record.legacyStoryId);\n        add(record && record.legacy_story_id);\n        add(record && record.id);\n      } else {\n        add(record && record.supabasePostId);\n        add(record && record.supabase_post_id);\n        add(record && record.postId);\n        add(record && record.legacyPostId);\n        add(record && record.legacy_post_id);\n        add(record && record.id);\n      }\n      return keys;\n    }\n    function rawRowMap(){\n      var map = {};\n      rows.forEach(function(row){\n        if (!row) return;\n        if (surface === 'story') {\n          addKey(map, row.id, row);\n          addKey(map, row.legacy_story_id, row);\n          addKey(map, row.storyId, row);\n          addKey(map, row.story_id, row);\n        } else {\n          addKey(map, row.id, row);\n          addKey(map, row.legacy_post_id, row);\n          addKey(map, row.postId, row);\n          addKey(map, row.post_id, row);\n        }\n      });\n      return map;\n    }\n    var supabaseIds = rows.map(function(row){ return row && row.id; }).filter(Boolean);\n    var relationFilter = inFilter(supabaseIds);\n    if (!records.length || !relationFilter) return hydrateMediaBySurface(records, surface, options);\n    var relationQuery = { select: idField + ',media_id,sort_order', order: 'sort_order.asc', limit: 200 };\n    relationQuery[idField] = relationFilter;\n    return read(relationTable, relationQuery, options).then(function(relations){\n      var mediaIds = (relations || []).map(function(row){ return row.media_id; }).filter(Boolean);\n      var mediaFilter = inFilter(mediaIds);\n      if (!mediaFilter) {\n        claim('supabase-media-surface-fallback:deconstructed', {\n          surface: surface,\n          reason: 'canonical relationship table returned no media ids; broad surface fallback would refetch every visible record'\n        });\n        return records;\n      }\n      var mediaQuery = { select: MEDIA_OBJECT_RENDER_SELECT, id: mediaFilter, status: 'in.(uploaded,approved)', limit: 200 };\n      if (options && options.publicRead === true && options.viewerAuthenticated !== true) {\n        mediaQuery.visibility = 'eq.public';\n      }\n      return read('media_objects', mediaQuery, options).then(function(mediaRows){\n        var byMediaId = {};\n        (mediaRows || []).forEach(function(row){ byMediaId[row.id] = frontendRecord('media_objects', row); });\n        var grouped = {};\n        (relations || []).forEach(function(row){\n          var media = byMediaId[row.media_id];\n          if (!media) return;\n          grouped[row[idField]] = grouped[row[idField]] || [];\n          grouped[row[idField]].push(media);\n        });\n        var rowByKey = rawRowMap();\n        var hydrated = records.map(function(record){\n          var sourceRow = null;\n          sourceRowKeys(record).some(function(key){\n            sourceRow = rowByKey[key] || null;\n            return !!sourceRow;\n          });\n          var supabaseId = sourceRow && sourceRow.id || '';\n          var media = grouped[supabaseId] || [];\n          return media.length ? Object.assign({}, record, { media: media, mediaMode: media[0] && media[0].kind || record.mediaMode || 'mixed' }) : record;\n        });\n        claim('supabase-media-surface-fallback:deconstructed', {\n          surface: surface,\n          reason: 'canonical relationship hydration completed; legacy surface-id fallback is not a second renderer'\n        });\n        return hydrated;\n      });\n    }).catch(function(error){\n      claim('supabase-media-relationship:blocked', { surface: surface, relationTable: relationTable, error: error && error.message || String(error) });\n      return hydrateMediaBySurface(records, surface, options);\n    });\n  }\n  function hydrateRows(table, rows, options){\n    var pairs = (rows || []).map(function(row){ return { row: row, record: frontendRecord(table, row) }; }).filter(function(pair){ return !!pair.record; });\n    var records = pairs.map(function(pair){ return pair.record; });\n    var sourceRows = pairs.map(function(pair){ return pair.row; });\n    if (table === 'posts') {\n      return hydrateMediaByRelationship(records, 'post', sourceRows, options);\n    }\n    if (table === 'stories') {\n      return hydrateMediaByRelationship(records, 'story', sourceRows, options);\n    }\n    if (table === 'comments') return hydrateMediaBySurface(records, 'comment', options);\n    if (table === 'messages') return hydrateMessageAttachments(records, rows || [], options);\n    return Promise.resolve(records);\n  }\n  function hydrateMessageAttachments(records, rows, options){\n    records = records || [];\n    rows = rows || [];\n    function messageRecordKeys(record, row){\n      var keys = [];\n      function add(value){\n        value = clean(value);\n        if (value && keys.indexOf(value) === -1) keys.push(value);\n      }\n      add(row && row.id);\n      add(row && row.legacy_message_id);\n      add(record && record.supabaseMessageId);\n      add(record && record.messageId);\n      add(record && record.id);\n      return keys;\n    }\n    var messageIds = [];\n    rows.forEach(function(row, index){\n      messageRecordKeys(records[index], row).forEach(function(value){\n        if (messageIds.indexOf(value) === -1) messageIds.push(value);\n      });\n    });\n    var messageFilter = inFilter(messageIds);\n    if (!records.length || !messageFilter) return Promise.resolve(records);\n    function attachGroupedMedia(grouped){\n      return records.map(function(record, index){\n        var media = [];\n        messageRecordKeys(record, rows[index]).forEach(function(key){\n          if (grouped[key]) media = media.concat(grouped[key]);\n        });\n        var seen = {};\n        media = media.filter(function(item){\n          var id = item && (item.id || item.mediaId || item.supabaseMediaId || item.legacyMediaId) || '';\n          if (!id || seen[id]) return false;\n          seen[id] = true;\n          return true;\n        });\n        return media.length ? Object.assign({}, record, { media: media, attachments: media, mediaMode: media[0] && media[0].kind || 'mixed' }) : record;\n      });\n    }\n    function hydrateSurfaceMessageMedia(baseRecords){\n      var surfaceIds = [];\n      rows.forEach(function(row, index){\n        messageRecordKeys(baseRecords[index] || records[index], row).forEach(function(key){\n          if (surfaceIds.indexOf(key) === -1) surfaceIds.push(key);\n        });\n      });\n      var surfaceFilter = inFilter(surfaceIds);\n      if (!surfaceFilter) return baseRecords;\n      return read('media_objects', { select: MEDIA_OBJECT_RENDER_SELECT, surface: 'eq.message', surface_id: surfaceFilter, status: 'in.(uploaded,approved)', limit: 200 }, options).then(function(mediaRows){\n        var grouped = {};\n        (mediaRows || []).forEach(function(row){\n          if (!row || row.deleted_at || row.hidden_at || row.archived_at) return;\n          var key = row.surface_id || '';\n          if (!key) return;\n          grouped[key] = grouped[key] || [];\n          grouped[key].push(Object.assign({}, frontendRecord('media_objects', row), {\n            conversationId: '',\n            messageId: key,\n            attachmentVisibility: row.visibility || 'private',\n            attachmentModerationState: row.moderation_state || 'approved',\n            attachmentSource: 'media_objects.surface=message'\n          }));\n        });\n        return attachGroupedMedia(grouped).map(function(record, index){\n          return (baseRecords[index] && (baseRecords[index].media || baseRecords[index].attachments || []).length) ? baseRecords[index] : record;\n        });\n      });\n    }\n    return read('message_attachments', { select: 'conversation_id,message_id,media_id,kind,content_type,bytes,visibility,moderation_state,created_at,deleted_at', message_id: messageFilter, limit: 200 }, options).then(function(attachments){\n      attachments = (attachments || []).filter(function(row){ return row && !row.deleted_at; });\n      var mediaIds = attachments.map(function(row){ return row.media_id; }).filter(Boolean);\n      var mediaFilter = inFilter(mediaIds);\n      if (!mediaFilter) return hydrateSurfaceMessageMedia(records);\n      return read('media_objects', { select: MEDIA_OBJECT_RENDER_SELECT, id: mediaFilter, status: 'in.(uploaded,approved)', limit: 200 }, options).then(function(mediaRows){\n        var byMediaId = {};\n        (mediaRows || []).forEach(function(row){ byMediaId[row.id] = frontendRecord('media_objects', row); });\n        var grouped = {};\n        attachments.forEach(function(row){\n          var media = byMediaId[row.media_id];\n          if (!media) return;\n          var key = row.message_id || '';\n          grouped[key] = grouped[key] || [];\n          grouped[key].push(Object.assign({}, media, {\n            conversationId: row.conversation_id || '',\n            messageId: row.message_id || '',\n            attachmentVisibility: row.visibility || 'private',\n            attachmentModerationState: row.moderation_state || 'approved'\n          }));\n        });\n        return hydrateSurfaceMessageMedia(attachGroupedMedia(grouped));\n      });\n    }).catch(function(error){\n      claim('supabase-message-attachments:blocked', { error: error && error.message || String(error) });\n      return hydrateSurfaceMessageMedia(records).catch(function(){ return records; });\n    });\n  }\n  function hydrateProfileMediaRows(rows, options){\n    rows = rows || [];\n    var ids = [];\n    rows.forEach(function(row){\n      if (row && isUuid(row.avatar_media_id)) ids.push(row.avatar_media_id);\n      if (row && isUuid(row.banner_media_id)) ids.push(row.banner_media_id);\n      if (row && isUuid(row.header_media_id)) ids.push(row.header_media_id);\n    });\n    var filter = inFilter(ids);\n    if (!filter) return Promise.resolve(rows);\n    return read('media_objects', { select: 'id,legacy_media_id,wasabi_object_key', id: filter, status: 'in.(uploaded,approved)', limit: 200 }, options).then(function(mediaRows){\n      var byId = {};\n      (mediaRows || []).forEach(function(row){ if (row && row.id) byId[row.id] = row.legacy_media_id || row.wasabi_object_key || ''; });\n      return rows.map(function(row){\n        if (!row) return row;\n        var avatarIsMapped = !isUuid(row.avatar_media_id) || !!byId[row.avatar_media_id];\n        var bannerIsMapped = !isUuid(row.banner_media_id) || !!byId[row.banner_media_id];\n        var headerIsMapped = !isUuid(row.header_media_id) || !!byId[row.header_media_id];\n        return Object.assign({}, row, {\n          avatar_media_id: avatarIsMapped ? row.avatar_media_id : '',\n          banner_media_id: bannerIsMapped ? row.banner_media_id : '',\n          header_media_id: headerIsMapped ? row.header_media_id : '',\n          avatar_orphan_media_id: avatarIsMapped ? '' : row.avatar_media_id,\n          banner_orphan_media_id: bannerIsMapped ? '' : row.banner_media_id,\n          header_orphan_media_id: headerIsMapped ? '' : row.header_media_id,\n          avatar_legacy_media_id: byId[row.avatar_media_id] || '',\n          banner_legacy_media_id: byId[row.banner_media_id] || '',\n          header_legacy_media_id: byId[row.header_media_id] || ''\n        });\n      });\n    }).catch(function(error){\n      claim('supabase-profile-media-map:blocked', { error: error && error.message || String(error) });\n      return rows;\n    });\n  }\n  function hydratePublicProfileGovernanceRows(rows, options){\n    rows = rows || [];\n    var keys = rows.map(function(row){ return clean(row && (row.profile_key || row.handle)); }).filter(Boolean);\n    var filter = inFilter(keys);\n    if (!filter) return Promise.resolve(rows);\n    return read('profiles', { select: profileGovernanceSelect(), profile_key: filter, limit: 200 }, options).catch(function(error){\n      if (isMissingBannerPositionColumnError(error) && optionalColumnSupport.profileBannerPosition) {\n        optionalColumnSupport.profileBannerPosition = false;\n        claim('supabase-profile-governance-optional-select:fallback', { bannerPosition: false, error: error && error.message || String(error) });\n        return read('profiles', { select: profileGovernanceSelect(), profile_key: filter, limit: 200 }, options);\n      }\n      throw error;\n    }).then(function(profileRows){\n      var byKey = {};\n      (profileRows || []).forEach(function(row){ if (row && row.profile_key) byKey[row.profile_key] = row; });\n      return rows.map(function(row){\n        var profile = row && byKey[row.profile_key || row.handle || ''];\n        if (!row || !profile) return row;\n        var visible = profile.visibility === 'public' && profile.searchable !== false && profile.account_state === 'active' && profile.setup_complete === true && profile.moderation_state === 'approved';\n        return Object.assign({}, row, {\n          user_id: row.user_id || profile.user_id || '',\n          searchable: visible,\n          status: visible ? row.status : 'hidden',\n          profile_governance_visibility: profile.visibility || 'public',\n          profile_governance_content_rating: profile.content_rating || 'standard',\n          profile_governance_access_gate: profile.access_gate || 'none',\n          birthdate: row.birthdate || profile.birthdate || '',\n          age_verified: row.age_verified === true || profile.age_verified === true,\n          adult_content_enabled: row.adult_content_enabled === true || profile.adult_content_enabled === true,\n          avatar_media_id: row.avatar_media_id || profile.avatar_media_id || '',\n          banner_media_id: row.banner_media_id || profile.banner_media_id || '',\n          avatar_wasabi_object_key: row.avatar_wasabi_object_key || profile.avatar_wasabi_object_key || '',\n          banner_wasabi_object_key: row.banner_wasabi_object_key || profile.banner_wasabi_object_key || '',\n          banner_position: row.banner_position || profile.banner_position || ''\n        });\n      });\n    }).catch(function(error){\n      claim('supabase-public-profile-governance-map:blocked', { error: error && error.message || String(error) });\n      return rows;\n    });\n  }\n  function hydratePublicProfileMediaRows(rows, options){\n    return hydratePublicProfileGovernanceRows(rows || [], options).then(function(governedRows){\n      return hydrateProfileMediaRows(governedRows || [], options);\n    });\n  }\n  function syncMediaRelationships(table, written, data, options){\n    var media = (data && Array.isArray(data.media)) ? data.media : [];\n    if (!written || !(table === 'posts' || table === 'stories' || table === 'messages') || !media.length) return Promise.resolve(written);\n    var legacyIds = [];\n    var canonicalIds = [];\n    var objectKeys = [];\n    media.forEach(function(item){\n      if (!item) return;\n      [item.legacyMediaId, item.legacy_media_id].forEach(function(value){\n        value = clean(value);\n        if (value && legacyIds.indexOf(value) === -1) legacyIds.push(value);\n      });\n      [item.supabaseMediaId, item.supabase_media_id, item.canonicalMediaId, item.mediaObjectId, item.media_object_id].forEach(function(value){\n        value = clean(value);\n        if (isUuid(value) && canonicalIds.indexOf(value) === -1) canonicalIds.push(value);\n      });\n      [item.mediaId, item.id].forEach(function(value){\n        value = clean(value);\n        if (!value) return;\n        if (isUuid(value)) {\n          if (canonicalIds.indexOf(value) === -1) canonicalIds.push(value);\n        } else if (legacyIds.indexOf(value) === -1) {\n          legacyIds.push(value);\n        }\n      });\n      [item.wasabiObjectKey, item.wasabi_object_key, item.objectKey, item.object_key, item.path].forEach(function(value){\n        value = clean(value);\n        if (value && !isUuid(value) && objectKeys.indexOf(value) === -1) objectKeys.push(value);\n      });\n    });\n    if (!legacyIds.length && !canonicalIds.length && !objectKeys.length) return Promise.resolve(written);\n    function readMediaRows(attempt){\n      var reads = [];\n      var legacyFilter = inFilter(legacyIds);\n      var canonicalFilter = inFilter(canonicalIds);\n      var objectKeyFilter = inFilter(objectKeys);\n      if (legacyFilter) reads.push(read('media_objects', { select: 'id,legacy_media_id,wasabi_object_key,kind,content_type,bytes', legacy_media_id: legacyFilter, limit: 100 }, options));\n      if (canonicalFilter) reads.push(read('media_objects', { select: 'id,legacy_media_id,wasabi_object_key,kind,content_type,bytes', id: canonicalFilter, limit: 100 }, options));\n      if (objectKeyFilter) reads.push(read('media_objects', { select: 'id,legacy_media_id,wasabi_object_key,kind,content_type,bytes', wasabi_object_key: objectKeyFilter, limit: 100 }, options));\n      if (!reads.length) return Promise.resolve([]);\n      return Promise.all(reads).then(function(results){\n      var seen = {};\n      var mediaRows = [];\n      (results || []).forEach(function(rows){\n        (rows || []).forEach(function(row){\n          if (!row || !row.id || seen[row.id]) return;\n          seen[row.id] = true;\n          mediaRows.push(row);\n        });\n      });\n      if (mediaRows.length < media.length && attempt < 3) {\n        claim('supabase-media-relationship-sync:media-readback-retry', { table: table, attempt: attempt + 1, expected: media.length, resolved: mediaRows.length });\n        return sleep([250, 650, 1200][attempt] || 1200).then(function(){ return readMediaRows(attempt + 1); });\n      }\n      if (mediaRows.length < media.length) {\n        claim('supabase-media-relationship-sync:media-readback-incomplete', { table: table, expected: media.length, resolved: mediaRows.length });\n      }\n      return mediaRows;\n      });\n    }\n    return readMediaRows(0).then(function(mediaRows){\n      if (table === 'messages') {\n        var messageUuid = clean(written.id);\n        if (!isUuid(messageUuid)) messageUuid = clean(written.supabaseMessageId || written.supabase_message_id);\n        if (!isUuid(messageUuid)) messageUuid = '';\n        var conversationUuid = clean(written.conversation_id || written.supabaseConversationId || written.supabase_conversation_id);\n        if (!isUuid(conversationUuid)) conversationUuid = clean(data.conversationUuid || data.supabaseConversationId || data.supabase_conversation_id);\n        if (!isUuid(conversationUuid)) conversationUuid = '';\n        var messageRows = (mediaRows || []).map(function(row){\n          return {\n            conversation_id: conversationUuid,\n            message_id: messageUuid,\n            media_id: row.id,\n            kind: row.kind || 'image',\n            content_type: row.content_type || '',\n            bytes: Number(row.bytes || 0),\n            visibility: 'private',\n            moderation_state: 'approved'\n          };\n        }).filter(function(row){ return row.conversation_id && row.message_id && row.media_id; });\n        if (!messageRows.length) {\n          claim('supabase-message-attachment-sync:missing-canonical-ids', {\n            legacyMessageId: data && (data.messageId || data.id || data.legacy_message_id) || written.legacy_message_id || '',\n            messageUuidResolved: !!messageUuid,\n            conversationUuidResolved: !!conversationUuid,\n            mediaResolved: (mediaRows || []).length,\n            mediaExpected: media.length\n          });\n          return written;\n        }\n        return write('message_attachments', messageRows, {\n          upsert: true,\n          query: 'on_conflict=' + encodeURIComponent('message_id,media_id'),\n          prefer: 'resolution=merge-duplicates,return=minimal'\n        }).then(function(){\n          claim('supabase-message-attachment-sync:verified', {\n            legacyMessageId: data && (data.messageId || data.id || data.legacy_message_id) || written.legacy_message_id || '',\n            supabaseMessageId: messageUuid,\n            mediaCount: messageRows.length\n          });\n          return written;\n        });\n      }\n      var relationTable = table === 'stories' ? 'story_media' : 'post_media';\n      var idField = table === 'stories' ? 'story_id' : 'post_id';\n      var parentId = written.id || '';\n      var rows = (mediaRows || []).map(function(row, index){\n        var rel = { media_id: row.id, sort_order: index };\n        rel[idField] = parentId;\n        return rel;\n      }).filter(function(row){ return row.media_id && parentId; });\n      if (!rows.length) return written;\n      return write(relationTable, rows, {\n        upsert: true,\n        query: 'on_conflict=' + encodeURIComponent(idField + ',media_id'),\n        prefer: 'resolution=merge-duplicates,return=minimal'\n      }).then(function(){ return written; });\n    }).catch(function(error){\n      claim('supabase-media-relationship-sync:blocked', { table: table, error: error && error.message || String(error) });\n      return written;\n    });\n  }\n\n  function nowIso(){ return new Date().toISOString(); }\n  function sleep(ms){ return new Promise(function(resolve){ window.setTimeout(resolve, ms || 0); }); }\n  function clean(value){ return String(value === undefined || value === null ? '' : value).trim(); }\n  function canonicalProfileKey(value){\n    var raw = clean(value || '');\n    var key = raw.toLowerCase();\n    if (key === 'dsdsecondary2') return 'dsdsecondary';\n    return raw;\n  }\n  function nullableClean(value){\n    if (value === undefined) return undefined;\n    if (value === null) return null;\n    var next = clean(value);\n    return next ? next : null;\n  }\n  function timestampClean(value){\n    if (value === undefined) return undefined;\n    if (value === null) return null;\n    if (value instanceof Date && !isNaN(value.getTime())) return value.toISOString();\n    if (typeof value === 'object') return nowIso();\n    var next = clean(value);\n    if (!next || next === '[object Object]') return null;\n    return next;\n  }\n  function ageFromBirthdate(value){\n    var raw = clean(value);\n    if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(raw)) return 0;\n    var birth = new Date(raw + 'T00:00:00Z');\n    if (isNaN(birth.getTime())) return 0;\n    var now = new Date();\n    var age = now.getUTCFullYear() - birth.getUTCFullYear();\n    var beforeBirthday = (now.getUTCMonth() < birth.getUTCMonth()) || (now.getUTCMonth() === birth.getUTCMonth() && now.getUTCDate() < birth.getUTCDate());\n    return Math.max(0, beforeBirthday ? age - 1 : age);\n  }\n  function inFilter(values){\n    var list = (values || []).map(clean).filter(Boolean).filter(function(value, index, arr){ return arr.indexOf(value) === index && !/[,\\(\\)]/.test(value); });\n    return list.length ? 'in.(' + list.join(',') + ')' : '';\n  }\n  function arrayContainsFilter(value){\n    value = clean(value).replace(/[\"'\\\\{}(),]/g, '');\n    return value ? 'cs.{' + value + '}' : '';\n  }\n  function first(value){ return Array.isArray(value) ? value[0] : value; }\n  function profileRoleList(row){\n    row = row || {};\n    var roles = [];\n    function push(value){\n      value = clean(value).toLowerCase();\n      if (value && roles.indexOf(value) === -1) roles.push(value);\n    }\n    function collect(value){\n      if (!value) return;\n      if (Array.isArray(value)) { value.forEach(collect); return; }\n      if (typeof value === 'object') {\n        Object.keys(value).forEach(function(key){\n          if (value[key] === true) push(key);\n          else if (typeof value[key] === 'string') push(value[key]);\n        });\n        return;\n      }\n      var text = String(value || '').trim();\n      if (/^[\\[{]/.test(text)) {\n        try {\n          collect(JSON.parse(text));\n          return;\n        } catch(e) {}\n      }\n      text.split(/[,\\s]+/).forEach(push);\n    }\n    collect(row.roles);\n    collect(row.platform_roles);\n    collect(row.permissions);\n    collect(row.governance_claims);\n    collect(row.account_role);\n    collect(row.platform_role);\n    collect(row.governance_role);\n    if (row.is_founder === true || row.role_founder === true || row.founder_access === true) push('founder');\n    if (row.is_admin === true || row.role_admin === true || row.admin_access === true) push('admin');\n    if (row.is_moderator === true || row.role_moderator === true || row.moderator_access === true || row.moderation_access === true) push('moderator');\n    return roles;\n  }\n  function isUuid(value){ return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(String(value || '')); }\n  function pathParts(path){ return clean(path).split('/').filter(Boolean); }\n  function currentUid(payload){ return payload && payload.uid || ''; }\n  function currentUserId(payload){\n    var id = payload && payload.supabaseUserId || payload && payload.userId || '';\n    if (!isUuid(id)) throw new Error('Supabase adapter unavailable: bridge user id missing');\n    return id;\n  }\n  function explicitUuidFromData(data, keys){\n    data = data || {};\n    for (var i = 0; i < (keys || []).length; i += 1) {\n      var value = clean(data[keys[i]]);\n      if (isUuid(value)) return value;\n    }\n    return '';\n  }\n  function ownerUserIdFromData(data, payload, keys){\n    return explicitUuidFromData(data, keys || ['ownerUid', 'authorUid', 'senderUid', 'uid', 'userId', 'user_id']) || currentUserId(payload);\n  }\n  function uiUserId(value){\n    var id = clean(value);\n    var payload = sessionState.payload || {};\n    if (isUuid(id) && payload && isUuid(payload.supabaseUserId) && id === payload.supabaseUserId) return currentUid(payload);\n    return id;\n  }\n  function uiProfileOwnedUserId(value, key){\n    var id = clean(value);\n    var ownerKey = clean(key).replace(/^@+/, '').toLowerCase();\n    var payload = sessionState.payload || {};\n    var currentKey = currentProfileKey(payload).replace(/^@+/, '').toLowerCase();\n    if (id && ownerKey && currentKey && ownerKey === currentKey && currentUid(payload)) return currentUid(payload);\n    return uiUserId(id);\n  }\n  function currentProfileKey(payload){ return clean(payload && payload.profileKey || payload && payload.claims && payload.claims.profile_key || ''); }\n  function currentShopifyCustomerId(payload){\n    var claims = payload && payload.claims || window.DSDSupabaseSessionClaims || {};\n    return clean(payload && (payload.shopifyCustomerId || payload.customerId) || claims.shopify_customer_id || claims.customer_id || '');\n  }\n  var uuidCache = {};\n  function cacheUuid(key, value){\n    key = clean(key);\n    if (key && isUuid(value)) uuidCache[key] = value;\n    return value;\n  }\n  function readOne(table, query, options){\n    if (!hasExplicitSelect(query)) throw new Error('Supabase readOne requires explicit projection for ' + table);\n    return read(table, Object.assign({}, query || {}, { limit: 1 }), options).then(function(rows){ return rows && rows[0] || null; });\n  }\n  function resolveUserId(value, payload, options){\n    var raw = clean(value);\n    var currentId = '';\n    try { currentId = currentUserId(payload); } catch(e) { currentId = ''; }\n    if (!raw) {\n      if (currentId) return Promise.resolve(currentId);\n      return Promise.reject(new Error('Supabase UUID mapping unavailable for empty user'));\n    }\n    if (currentId && (raw === currentUid(payload) || raw === currentProfileKey(payload) || raw === currentId)) return Promise.resolve(currentId);\n    if (isUuid(raw)) return Promise.resolve(raw);\n    if (uuidCache[raw]) return Promise.resolve(uuidCache[raw]);\n    var key = raw.replace(/^@+/, '');\n    return readOne('public_profiles', { select: 'user_id,profile_key,handle', profile_key: 'eq.' + key }, options)\n      .then(function(row){\n        if (row && isUuid(row.user_id)) return cacheUuid(raw, row.user_id);\n        return readOne('public_profiles', { select: 'user_id,profile_key,handle', handle: 'eq.' + key }, options)\n          .then(function(handleRow){\n            if (handleRow && isUuid(handleRow.user_id)) return cacheUuid(raw, handleRow.user_id);\n            throw new Error('Supabase UUID mapping unavailable for ' + raw);\n          });\n      });\n  }\n  function resolvePublicProfileUserIdByKey(value, options){\n    var key = clean(value).replace(/^@+/, '');\n    if (!key) return Promise.reject(new Error('Supabase UUID mapping unavailable for empty profile key'));\n    if (uuidCache['profile:' + key]) return Promise.resolve(uuidCache['profile:' + key]);\n    return readOne('public_profiles', { select: 'user_id,profile_key,handle', profile_key: 'eq.' + key }, options)\n      .then(function(row){\n        if (row && isUuid(row.user_id)) return cacheUuid('profile:' + key, row.user_id);\n        return readOne('public_profiles', { select: 'user_id,profile_key,handle', handle: 'eq.' + key }, options)\n          .then(function(handleRow){\n            if (handleRow && isUuid(handleRow.user_id)) return cacheUuid('profile:' + key, handleRow.user_id);\n            throw new Error('Supabase UUID mapping unavailable for profile key ' + key);\n          });\n      });\n  }\n  function currentCanonicalUserId(payload, options){\n    var key = currentProfileKey(payload);\n    if (key) return resolvePublicProfileUserIdByKey(key, options).catch(function(){ return currentUserId(payload); });\n    return Promise.resolve(currentUserId(payload));\n  }\n  function profileKeyFromData(data, payload, keys){\n    data = data || {};\n    for (var i = 0; i < (keys || []).length; i += 1) {\n      var value = clean(data[keys[i]]);\n      if (value) return value;\n    }\n    return currentProfileKey(payload);\n  }\n  function canonicalUserIdForProfileData(data, payload, options, keys, uidKeys){\n    data = data || {};\n    var explicitUid = '';\n    for (var i = 0; i < (uidKeys || []).length; i += 1) {\n      explicitUid = clean(data[uidKeys[i]]);\n      if (explicitUid) break;\n    }\n    var key = profileKeyFromData(data, payload, keys || []);\n    if (key) return resolvePublicProfileUserIdByKey(key, options).catch(function(error){\n      if (explicitUid && isUuid(explicitUid)) return Promise.resolve(explicitUid);\n      return currentCanonicalUserId(payload, options).catch(function(){\n        throw error || new Error('Supabase UUID mapping unavailable for profile key ' + key);\n      });\n    });\n    if (explicitUid) return resolveUserId(explicitUid, payload, options).catch(function(){ return currentUserId(payload); });\n    return Promise.resolve(currentUserId(payload));\n  }\n  function resolvePostId(value, options){\n    var raw = clean(value);\n    if (isUuid(raw)) return Promise.resolve(raw);\n    if (uuidCache['post:' + raw]) return Promise.resolve(uuidCache['post:' + raw]);\n    return readOne('posts', { select: 'id,legacy_post_id', legacy_post_id: 'eq.' + raw }, options).then(function(row){\n      if (row && isUuid(row.id)) return cacheUuid('post:' + raw, row.id);\n      throw new Error('Supabase post UUID mapping unavailable for ' + raw);\n    });\n  }\n  function resolveStoryId(value, options){\n    var raw = clean(value);\n    if (isUuid(raw)) return Promise.resolve(raw);\n    if (uuidCache['story:' + raw]) return Promise.resolve(uuidCache['story:' + raw]);\n    return readOne('stories', { select: 'id,legacy_story_id', legacy_story_id: 'eq.' + raw }, options).then(function(row){\n      if (row && isUuid(row.id)) return cacheUuid('story:' + raw, row.id);\n      throw new Error('Supabase story UUID mapping unavailable for ' + raw);\n    });\n  }\n  function resolveConversationId(value, options){\n    var raw = clean(value);\n    if (isUuid(raw)) return Promise.resolve(raw);\n    if (uuidCache['conversation:' + raw]) return Promise.resolve(uuidCache['conversation:' + raw]);\n    return readOne('conversations', { select: 'id,legacy_conversation_id', legacy_conversation_id: 'eq.' + raw }, options).then(function(row){\n      if (row && isUuid(row.id)) return cacheUuid('conversation:' + raw, row.id);\n      throw new Error('Supabase conversation UUID mapping unavailable for ' + raw);\n    });\n  }\n  function resolveTargetId(targetType, targetId, options){\n    targetType = clean(targetType || 'post');\n    if (targetType === 'post') return resolvePostId(targetId, options);\n    if (targetType === 'story') return resolveStoryId(targetId, options);\n    if (/profile|user/.test(targetType)) return resolveUserId(targetId, sessionState.payload || {}, options);\n    if (isUuid(targetId)) return Promise.resolve(targetId);\n    throw new Error('Supabase target UUID mapping unavailable for ' + targetType + ':' + targetId);\n  }\n  function normalizeVisibility(value){\n    value = clean(value || 'public');\n    if (value === 'restricted' || value === 'gated') return 'public';\n    return /^(public|private|owner_scoped|participant_scoped|invite_only)$/.test(value) ? value : 'public';\n  }\n  function normalizeRating(value){ value = clean(value || 'standard'); return /^(standard|mature|explicit|gated)$/.test(value) ? value : 'standard'; }\n  function normalizeGate(value){ value = clean(value || 'none'); return /^(none|dsd_plus)$/.test(value) ? value : 'none'; }\n  function publicSafeMetadata(visibility, rating, gate){\n    return normalizeVisibility(visibility) === 'public' && normalizeRating(rating) === 'standard' && normalizeGate(gate) === 'none';\n  }\n  var MEDIA_OBJECT_RENDER_SELECT = 'id,legacy_media_id,owner_user_id,owner_profile_key,surface,surface_id,slot,kind,file_name,content_type,bytes,wasabi_object_key,visibility,content_rating,access_gate,status,signed_url_required,read_signed_url_required,created_at,updated_at,deleted_at,hidden_at,archived_at';\n  var POST_RENDER_SELECT = 'id,legacy_post_id,author_user_id,author_profile_key,author_display_name,body,title,migrated_from_path,visibility,content_rating,access_gate,status,moderation_state,view_count,reaction_count,comment_count,share_count,public_safe,created_at,updated_at,deleted_at,hidden_at,archived_at';\n  var STORY_RENDER_SELECT = 'id,legacy_story_id,owner_user_id,owner_profile_key,owner_display_name,body,visibility,content_rating,access_gate,status,moderation_state,view_count,watch_count,unique_watch_count,public_safe,created_at,updated_at,expires_at,deleted_at,hidden_at,archived_at';\n  var COMMENT_RENDER_SELECT = 'id,legacy_comment_id,post_id,author_user_id,author_profile_key,body,status,moderation_state,created_at,updated_at,deleted_at,hidden_at';\n  var RELATION_RENDER_SELECT = 'source_user_id,target_user_id,state,created_at,updated_at';\n  var FAVORITE_RENDER_SELECT = 'user_id,target_user_id,state,created_at,updated_at';\n  var SAVE_RENDER_SELECT = 'user_id,target_type,target_id,created_at';\n  var NOTIFICATION_RENDER_SELECT = 'id,recipient_user_id,actor_user_id,category,title,body,href,read,priority,source_id,source_type,created_at,expires_at';\n  var CONVERSATION_RENDER_SELECT = 'id,legacy_conversation_id,participant_ids,participant_profile_keys,last_message_preview,visibility,moderation_state,created_at,updated_at,archived_at';\n  var MESSAGE_RENDER_SELECT = 'id,legacy_message_id,conversation_id,sender_user_id,sender_profile_key,recipient_user_id,body,status,visibility,moderation_state,created_at,updated_at';\n  var SPACE_RENDER_SELECT = 'id,legacy_universe_id,legacy_galaxy_id,parent_universe_id,owner_user_id,owner_profile_key,name,slug,description,avatar_media_id,header_media_id,visibility,membership_type,status,moderation_state,member_count,created_at,updated_at,deleted_at,hidden_at,archived_at';\n  var MODERATION_QUEUE_RENDER_SELECT = 'id,queue_item_key,surface,source_path,target_id,author_user_id,preview,state,visibility,content_rating,access_gate,created_at,updated_at';\n  var SAFETY_REPORT_RENDER_SELECT = 'id,source_path,status,target_type,target_id,details,created_at,updated_at';\n  var FOUNDER_AUDIT_RENDER_SELECT = 'id,action,actor_user_id,target_user_id,target_profile_key,source_path,metadata,created_at';\n  var GATED_POST_SHELL_RENDER_SELECT = 'id,legacy_post_id,author_user_id,author_profile_key,author_display_name,visibility,content_rating,access_gate,status,moderation_state,view_count,reaction_count,comment_count,share_count,created_at,updated_at,deleted_at,hidden_at,archived_at';\n  var GATED_STORY_SHELL_RENDER_SELECT = 'id,legacy_story_id,owner_user_id,owner_profile_key,owner_display_name,visibility,content_rating,access_gate,status,moderation_state,view_count,watch_count,unique_watch_count,created_at,updated_at,expires_at,deleted_at,hidden_at,archived_at';\n  function standardPublicContentQuery(extra){\n    return Object.assign({\n      select: POST_RENDER_SELECT,\n      visibility: 'eq.public',\n      content_rating: 'eq.standard',\n      or: '(access_gate.is.null,access_gate.eq.none)',\n      deleted_at: 'is.null',\n      hidden_at: 'is.null',\n      archived_at: 'is.null'\n    }, extra || {});\n  }\n  function authenticatedApprovedContentQuery(extra){\n    return Object.assign({\n      select: POST_RENDER_SELECT,\n      or: '(visibility.eq.public,visibility.eq.private,public_safe.eq.true,access_gate.eq.dsd_plus,content_rating.eq.gated,content_rating.eq.mature,content_rating.eq.explicit)',\n      deleted_at: 'is.null',\n      hidden_at: 'is.null',\n      archived_at: 'is.null'\n    }, extra || {});\n  }\n  function gatedPublicPostShellQuery(extra){\n    return { table: 'gated_post_shells', query: Object.assign({\n      select: GATED_POST_SHELL_RENDER_SELECT,\n      deleted_at: 'is.null',\n      hidden_at: 'is.null',\n      archived_at: 'is.null'\n    }, extra || {}) };\n  }\n  function gatedPublicStoryShellQuery(extra){\n    return { table: 'gated_story_shells', query: Object.assign({\n      select: GATED_STORY_SHELL_RENDER_SELECT,\n      deleted_at: 'is.null',\n      hidden_at: 'is.null',\n      archived_at: 'is.null'\n    }, extra || {}) };\n  }\n  function normalizeModeration(value, fallback){ value = clean(value || fallback || 'pending'); return /^(pending|approved|reported|hidden|rejected|removed|archived|deleted|disabled|blocked)$/.test(value) ? value : (fallback || 'pending'); }\n  function normalizeMediaModeration(data){\n    data = data || {};\n    var explicit = data.moderation && data.moderation.state || data.moderationStatus || data.moderation_state;\n    if (explicit !== undefined && explicit !== null && explicit !== '') return normalizeModeration(explicit, 'pending');\n    var status = clean(data.status || '');\n    if (status === 'uploaded') return 'approved';\n    return normalizeModeration(status, 'pending');\n  }\n  function normalizeAccount(value){ value = clean(value || 'active'); return /^(active|hidden|suspended|disabled|removed|test)$/.test(value) ? value : 'active'; }\n  function canModeratePayload(payload){\n    var claims = payload && payload.claims || {};\n    var viewer = window.DSDViewerPolicy && typeof window.DSDViewerPolicy.resolveViewerState === 'function'\n      ? window.DSDViewerPolicy.resolveViewerState({ source: 'supabase-adapter' })\n      : null;\n    if (viewer && viewer.permissions && viewer.permissions.canModerate === true) return true;\n    return claims.role_founder === true || claims.role_moderator === true || claims.role_admin === true || claims.admin === true || claims.moderator === true;\n  }\n  function restrictedRating(row){\n    var rating = normalizeRating(row && (row.content_rating || row.contentRating || 'standard'));\n    var gate = normalizeGate(row && (row.access_gate || row.accessGate || 'none'));\n    if (gate === 'dsd_plus' || rating === 'gated') return 'gated';\n    if (rating === 'explicit') return 'explicit';\n    if (rating === 'mature') return 'mature';\n    return '';\n  }\n  function preserveProfileModerationLock(row, payload, options){\n    if (!row || !row.profile_key || canModeratePayload(payload)) return Promise.resolve(row);\n    return read('profiles', { select: 'profile_key,visibility,content_rating,access_gate,moderation_state', profile_key: 'eq.' + row.profile_key, limit: 1 }, options)\n    .then(function(rows){\n      var existing = rows && rows[0];\n      if (!restrictedRating(existing)) return row;\n      return Object.assign({}, row, {\n        visibility: existing.visibility || row.visibility || 'public',\n        content_rating: existing.content_rating || row.content_rating,\n        access_gate: existing.access_gate || row.access_gate || 'none',\n        moderation_state: existing.moderation_state || row.moderation_state\n      });\n    })\n    .catch(function(){ return row; });\n  }\n  function counts(row){\n    return {\n      views: Number(row.view_count || 0),\n      likes: Number(row.reaction_count || 0),\n      comments: Number(row.comment_count || 0),\n      shares: Number(row.share_count || 0)\n    };\n  }\n  function profileAge(row){\n    var birthAge = ageFromBirthdate(row && row.birthdate);\n    var explicitAge = Number(row && (row.age || row.profile_age || row.age_years) || 0);\n    if (birthAge > 0) return birthAge;\n    if (explicitAge > 0) return explicitAge;\n    return row && row.age_verified === true ? 18 : 0;\n  }\n  function terminalFields(row){\n    return {\n      moderationState: row.moderation_state || '',\n      moderation_state: row.moderation_state || '',\n      accountState: row.account_state || '',\n      account_state: row.account_state || '',\n      deletedAt: row.deleted_at || '',\n      deleted_at: row.deleted_at || '',\n      archivedAt: row.archived_at || '',\n      archived_at: row.archived_at || '',\n      hiddenAt: row.hidden_at || '',\n      hidden_at: row.hidden_at || '',\n      removedAt: row.removed_at || '',\n      removed_at: row.removed_at || '',\n      disabledAt: row.disabled_at || '',\n      disabled_at: row.disabled_at || '',\n      blockedAt: row.blocked_at || '',\n      blocked_at: row.blocked_at || ''\n    };\n  }\n  function entity(surface, row){\n    return {\n      type: surface,\n      visibility: row.visibility || 'public',\n      contentRating: row.content_rating || 'standard',\n      moderationStatus: row.moderation_state || row.status || 'approved',\n      accessGate: row.access_gate || 'none'\n    };\n  }\n  function frontendRecord(table, row){\n    row = row || {};\n    if (table === 'posts') {\n      var postLegacyId = clean(row.legacy_post_id || row.id || '');\n      var postEntityType = clean(row.entity_type || row.type || row.record_type || '');\n      if (postLegacyId.indexOf('story-') === 0 || postEntityType === 'story') {\n        claim('supabase-post-row:wrong-surface-quarantined', { legacyPostId: postLegacyId || row.id || '', table: table });\n        return null;\n      }\n    }\n    if (table === 'stories') {\n      var storyLegacyId = clean(row.legacy_story_id || row.id || '');\n      var storyEntityType = clean(row.entity_type || row.type || row.record_type || '');\n      if (storyLegacyId.indexOf('post-') === 0 || storyEntityType === 'post') {\n        claim('supabase-story-row:wrong-surface-quarantined', { legacyStoryId: storyLegacyId || row.id || '', table: table });\n        return null;\n      }\n    }\n    if (table === 'profiles') {\n      var privateRoles = profileRoleList(row);\n      var privateCanModerate = privateRoles.indexOf('founder') !== -1 || privateRoles.indexOf('admin') !== -1 || privateRoles.indexOf('moderator') !== -1;\n      return {\n      id: row.firebase_uid || row.id,\n      uid: row.firebase_uid || row.id,\n      profileKey: row.profile_key || '',\n      handle: row.handle || row.profile_key || '',\n      displayName: row.display_name || row.profile_key || '',\n      bio: row.bio || '',\n      location: row.location || [row.location_city || row.city, row.location_state || row.state].filter(Boolean).join(', ') || '',\n      birthdate: row.birthdate || '',\n      age: profileAge(row),\n      ageVerified: row.age_verified === true,\n      adultContentEnabled: row.adult_content_enabled === true,\n      over18: row.age_verified === true || profileAge(row) >= 18,\n      avatarMediaId: row.avatar_legacy_media_id || row.avatar_wasabi_object_key || row.avatar_media_id || '',\n      bannerMediaId: row.banner_legacy_media_id || row.banner_wasabi_object_key || row.banner_media_id || '',\n      bannerPosition: row.banner_position || 'center',\n      visibility: row.visibility || 'public',\n      setupComplete: row.setup_complete === true,\n      status: row.account_state || 'active',\n      searchable: row.searchable !== false,\n      roles: privateRoles,\n      platformRoles: privateRoles,\n      permissions: {\n        canModerate: privateCanModerate,\n        canAccessModeration: privateCanModerate,\n        canAccessFounderOperations: privateRoles.indexOf('founder') !== -1 || privateRoles.indexOf('admin') !== -1,\n        canAccessAIC: privateRoles.indexOf('founder') !== -1 || privateRoles.indexOf('admin') !== -1\n      },\n      governanceClaims: {\n        role_founder: privateRoles.indexOf('founder') !== -1,\n        role_admin: privateRoles.indexOf('admin') !== -1,\n        role_moderator: privateRoles.indexOf('moderator') !== -1,\n        source: privateRoles.length ? 'supabase-private-profile-governance' : ''\n      },\n      isFounder: privateRoles.indexOf('founder') !== -1,\n      isAdmin: privateRoles.indexOf('admin') !== -1,\n      isModerator: privateRoles.indexOf('moderator') !== -1,\n      entity: entity('profile', row),\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n      };\n    }\n    if (table === 'public_profiles') return {\n      id: row.profile_key || row.user_id,\n      uid: row.user_id || '',\n      userId: row.user_id || '',\n      profileKey: row.profile_key || '',\n      handle: row.handle || row.profile_key || '',\n      displayName: row.display_name || row.profile_key || '',\n      bio: row.bio || '',\n      location: row.location || [row.location_city || row.city, row.location_state || row.state].filter(Boolean).join(', ') || '',\n      locationCity: row.location_city || row.city || '',\n      locationState: row.location_state || row.state || '',\n      age: profileAge(row),\n      ageVerified: row.age_verified === true,\n      adultContentEnabled: row.adult_content_enabled === true,\n      over18: row.age_verified === true || profileAge(row) >= 18,\n      avatarMediaId: row.avatar_legacy_media_id || row.avatar_wasabi_object_key || row.avatar_media_id || '',\n      bannerMediaId: row.banner_legacy_media_id || row.banner_wasabi_object_key || row.header_legacy_media_id || row.banner_media_id || row.header_media_id || '',\n      bannerPosition: row.banner_position || 'center',\n      searchable: row.searchable !== false,\n      setupComplete: row.status === 'active',\n      status: row.status || 'active',\n      followerCount: Number(row.follower_count || row.followers_count || 0),\n      followingCount: Number(row.following_count || row.follows_count || 0),\n      postCount: Number(row.post_count || row.posts_count || 0),\n      mediaCount: Number(row.media_count || 0),\n      storyCount: Number(row.story_count || row.stories_count || 0),\n      favoriteCount: Number(row.favorite_count || row.favorites_count || 0),\n      savedCount: Number(row.saved_count || row.saves_count || 0),\n      viewCount: Number(row.view_count || row.profile_view_count || 0),\n      visibility: row.profile_governance_visibility || 'public',\n      contentRating: row.profile_governance_content_rating || 'standard',\n      accessGate: row.profile_governance_access_gate || 'none',\n      entity: { type: 'profile', visibility: row.profile_governance_visibility || 'public', contentRating: row.profile_governance_content_rating || 'standard', accessGate: row.profile_governance_access_gate || 'none', moderationStatus: row.moderation_state || 'approved' },\n      updatedAt: row.updated_at || ''\n    };\n    if (table === 'posts') return Object.assign({\n      id: row.legacy_post_id || row.id,\n      postId: row.legacy_post_id || row.id,\n      supabasePostId: row.id || '',\n      authorUid: uiProfileOwnedUserId(row.author_user_id, row.author_profile_key),\n      authorProfileKey: row.author_profile_key || '',\n      authorDisplayName: row.author_display_name || row.author_profile_key || '',\n      body: row.body || '',\n      title: row.title || '',\n      migratedFromPath: row.migrated_from_path || '',\n      visibility: row.visibility || 'public',\n      contentRating: row.content_rating || 'standard',\n      accessGate: row.access_gate || 'none',\n      status: row.status || row.moderation_state || 'pending',\n      moderation: { state: row.moderation_state || row.status || 'pending' },\n      counts: counts(row),\n      publicSafe: row.public_safe === true,\n      entity: entity('post', row),\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n    }, terminalFields(row));\n    if (table === 'stories') return Object.assign({\n      id: row.legacy_story_id || row.id,\n      storyId: row.legacy_story_id || row.id,\n      supabaseStoryId: row.id || '',\n      ownerUid: uiProfileOwnedUserId(row.owner_user_id, row.owner_profile_key),\n      authorProfileKey: row.owner_profile_key || '',\n      authorDisplayName: row.owner_display_name || row.owner_profile_key || '',\n      body: row.body || '',\n      visibility: row.visibility || 'public',\n      contentRating: row.content_rating || 'standard',\n      accessGate: row.access_gate || 'none',\n      status: row.status || row.moderation_state || 'pending',\n      moderation: { state: row.moderation_state || row.status || 'pending' },\n      viewCount: Number(row.view_count || 0),\n      watchCount: Number(row.watch_count || 0),\n      uniqueWatchCount: Number(row.unique_watch_count || 0),\n      expiresAt: row.expires_at || '',\n      entity: entity('story', row),\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n    }, terminalFields(row));\n    if (table === 'gated_post_shells') return Object.assign({\n      id: row.legacy_post_id || row.id,\n      postId: row.legacy_post_id || row.id,\n      gatedShell: true,\n      restrictedShell: true,\n      restrictedKind: 'gated',\n      authorUid: uiProfileOwnedUserId(row.author_user_id, row.author_profile_key),\n      authorProfileKey: row.author_profile_key || '',\n      authorDisplayName: row.author_display_name || row.author_profile_key || 'DSD+ member',\n      body: '',\n      title: 'DSD+ members only',\n      media: [],\n      visibility: 'public',\n      contentRating: 'gated',\n      accessGate: 'dsd_plus',\n      status: row.status || row.moderation_state || 'approved',\n      moderation: { state: row.moderation_state || row.status || 'approved' },\n      counts: counts(row),\n      entity: entity('gatedPostShell', row),\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n    }, terminalFields(row));\n    if (table === 'gated_story_shells') return Object.assign({\n      id: row.legacy_story_id || row.id,\n      storyId: row.legacy_story_id || row.id,\n      gatedShell: true,\n      gatedStoryShell: true,\n      restrictedShell: true,\n      restrictedKind: 'gated',\n      ownerUid: uiProfileOwnedUserId(row.owner_user_id, row.owner_profile_key),\n      authorProfileKey: row.owner_profile_key || '',\n      authorDisplayName: row.owner_display_name || row.owner_profile_key || 'DSD+ member',\n      body: '',\n      media: [],\n      visibility: 'public',\n      contentRating: 'gated',\n      accessGate: 'dsd_plus',\n      status: row.status || row.moderation_state || 'approved',\n      moderation: { state: row.moderation_state || row.status || 'approved' },\n      viewCount: Number(row.view_count || 0),\n      watchCount: Number(row.watch_count || 0),\n      uniqueWatchCount: Number(row.unique_watch_count || 0),\n      expiresAt: row.expires_at || '',\n      entity: entity('gatedStoryShell', row),\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n    }, terminalFields(row));\n    if (table === 'universes' || table === 'galaxies') {\n      var kind = table === 'universes' ? 'universe' : 'galaxy';\n      return Object.assign({\n        id: row['legacy_' + kind + '_id'] || row.id,\n        type: kind,\n        supabaseSpaceId: row.id || '',\n        supabaseUniverseId: table === 'universes' ? (row.id || '') : (row.parent_universe_id || ''),\n        supabaseGalaxyId: table === 'galaxies' ? (row.id || '') : '',\n        universeId: table === 'universes' ? (row.legacy_universe_id || row.id) : undefined,\n        galaxyId: table === 'galaxies' ? (row.legacy_galaxy_id || row.id) : undefined,\n        parentUniverseId: row.parent_universe_id || '',\n        ownerUid: uiUserId(row.owner_user_id),\n        ownerProfileKey: row.owner_profile_key || '',\n        name: row.name || row.slug || kind,\n        slug: row.slug || '',\n        description: row.description || '',\n        avatarMediaId: row.avatar_media_id || '',\n        headerMediaId: row.header_media_id || '',\n        visibility: row.visibility || 'public',\n        membershipType: row.membership_type || 'open',\n        status: row.status || row.moderation_state || 'approved',\n        moderation: { state: row.moderation_state || row.status || 'approved' },\n        memberCount: Number(row.member_count || 0),\n        entity: entity(kind, row),\n        createdAt: row.created_at || '',\n        updatedAt: row.updated_at || ''\n      }, terminalFields(row));\n    }\n    if (table === 'comments') return Object.assign({\n      id: row.legacy_comment_id || row.id,\n      commentId: row.legacy_comment_id || row.id,\n      postId: row.post_id || '',\n      authorUid: uiUserId(row.author_user_id),\n      authorProfileKey: row.author_profile_key || '',\n      body: row.body || '',\n      status: row.status || row.moderation_state || 'pending',\n      moderation: { state: row.moderation_state || row.status || 'pending' },\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n    }, terminalFields(row));\n    if (table === 'media_objects') {\n      var mediaObjectKey = row.wasabi_object_key || '';\n      var readQuarantined = !!(mediaObjectKey && /[^\\x20-\\x7E]/.test(mediaObjectKey));\n      return {\n      id: row.id || row.legacy_media_id,\n      mediaId: row.legacy_media_id || mediaObjectKey || row.id,\n      supabaseMediaId: row.id || '',\n      legacyMediaId: row.legacy_media_id || '',\n      legacy_media_id: row.legacy_media_id || '',\n      displayMediaId: row.legacy_media_id || mediaObjectKey || '',\n      ownerUid: uiUserId(row.owner_user_id),\n      ownerProfileKey: canonicalProfileKey(row.owner_profile_key || ''),\n      surface: row.surface || '',\n      surfaceId: row.surface_id || '',\n      slot: row.slot || '',\n      kind: row.kind || 'image',\n      fileName: row.file_name || '',\n      contentType: row.content_type || '',\n      bytes: Number(row.bytes || 0),\n      path: mediaObjectKey,\n      objectKey: mediaObjectKey,\n      wasabiObjectKey: mediaObjectKey,\n      wasabiReadQuarantined: readQuarantined,\n      readQuarantineReason: readQuarantined ? 'non-ascii-wasabi-object-key' : '',\n      visibility: row.visibility || 'owner_scoped',\n      contentRating: row.content_rating || 'standard',\n      accessGate: row.access_gate || 'none',\n      status: row.status || 'pending_upload',\n      signedUrlRequired: row.signed_url_required !== false,\n      readSignedUrlRequired: row.read_signed_url_required !== false,\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n      };\n    }\n    if (table === 'moderation_queue') return Object.assign({ id: row.queue_item_key || row.id, queueItemId: row.queue_item_key || row.id, sourcePath: row.source_path || '', state: row.state || 'pending' }, row);\n    if (table === 'safety_reports') return {\n      id: row.source_path || row.id,\n      reportId: row.source_path ? String(row.source_path).split('/').pop() : row.id,\n      action: row.target_type || 'report',\n      targetId: row.target_id || '',\n      sourcePath: row.source_path || '',\n      details: row.details || '',\n      state: row.status || 'pending',\n      status: row.status || 'pending',\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n    };\n    if (table === 'founder_audit') return {\n      id: row.id,\n      action: row.action || 'audit.action',\n      actorUid: uiUserId(row.actor_user_id),\n      targetUid: uiUserId(row.target_user_id),\n      targetProfileKey: row.target_profile_key || '',\n      sourcePath: row.source_path || '',\n      metadata: row.metadata || {},\n      createdAt: row.created_at || ''\n    };\n    if (table === 'notifications') return Object.assign({ id: row.id, notificationId: row.id, recipientUid: uiUserId(row.recipient_user_id), actorUid: uiUserId(row.actor_user_id), category: row.category, type: row.category, title: row.title || '', body: row.body || '', href: row.href || '/pages/notifications', read: row.read === true, priority: row.priority || 'social', createdAt: row.created_at || '', expiresAt: row.expires_at || '' }, row);\n    if (table === 'conversations') return Object.assign({ id: row.legacy_conversation_id || row.id, conversationId: row.legacy_conversation_id || row.id, supabaseConversationId: row.id, participantIds: (row.participant_ids || []).map(uiUserId), participantKeys: row.participant_profile_keys || [], lastMessagePreview: row.last_message_preview || '', visibility: row.visibility || 'participant_scoped', updatedAt: row.updated_at || '', createdAt: row.created_at || '' }, row);\n    if (table === 'messages') return Object.assign({ id: row.legacy_message_id || row.id, messageId: row.legacy_message_id || row.id, conversationId: row.conversation_id || '', supabaseConversationId: row.conversation_id || '', senderUid: uiUserId(row.sender_user_id), senderProfileKey: row.sender_profile_key || '', recipientUid: uiUserId(row.recipient_user_id), body: row.body || '', status: row.status || 'sent', createdAt: row.created_at || '', updatedAt: row.updated_at || '' }, row);\n    if (table === 'follows') return {\n      id: (row.source_user_id || '') + '-' + (row.target_user_id || ''),\n      sourceUid: uiUserId(row.source_user_id),\n      targetUid: uiUserId(row.target_user_id),\n      state: row.state === 'active' ? 'active' : (row.state === 'requested' ? 'requested' : (row.state === 'declined' ? 'declined' : (row.state === 'blocked' ? 'blocked' : 'unfollowed'))),\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n    };\n    if (table === 'favorites') return {\n      id: row.target_user_id || '',\n      ownerUid: uiUserId(row.user_id),\n      targetUid: uiUserId(row.target_user_id),\n      state: row.state === 'active' || row.state === 'favorite' ? 'favorite' : 'removed',\n      createdAt: row.created_at || '',\n      updatedAt: row.updated_at || ''\n    };\n    if (table === 'saves') return {\n      id: row.target_id || '',\n      ownerUid: uiUserId(row.user_id),\n      targetType: row.target_type || 'post',\n      targetId: row.target_id || '',\n      state: 'saved',\n      createdAt: row.created_at || ''\n    };\n    return Object.assign({ id: row.id }, row);\n  }\n\n  function profilePayload(path, data, payload){\n    var key = clean(data.profileKey || data.handle || currentProfileKey(payload) || 'profile');\n    var birthdate = clean(data.birthdate);\n    var computedAge = birthdate ? ageFromBirthdate(birthdate) : Number(data.age || 0);\n    var ageVerified = data.ageVerified === true || computedAge >= 18;\n    var city = clean(data.locationCity || data.city);\n    var region = clean(data.locationState || data.region);\n    var location = clean(data.location || [city, region].filter(Boolean).join(', '));\n    var out = {\n      user_id: ownerUserIdFromData(data, payload, ['uid', 'userId', 'user_id', 'ownerUid', 'authorUid']),\n      shopify_customer_id: clean(data.shopifyCustomerId || currentShopifyCustomerId(payload)),\n      firebase_uid: clean(data.uid || pathParts(path)[1] || currentUid(payload)),\n      profile_key: key,\n      handle: clean(data.handle || key),\n      display_name: clean(data.displayName || key || 'DSD member'),\n      bio: data.bio === '' ? '' : clean(data.bio),\n      birthdate: birthdate || null,\n      age_verified: ageVerified,\n      adult_content_enabled: !!(ageVerified && data.adultContentEnabled === true),\n      visibility: normalizeVisibility(data.visibility),\n      content_rating: normalizeRating(data.contentRating),\n      access_gate: normalizeGate(data.accessGate),\n      moderation_state: normalizeModeration(data.moderation && data.moderation.state || data.moderationStatus, 'approved'),\n      account_state: normalizeAccount(data.status),\n      searchable: data.searchable !== false,\n      setup_complete: data.setupComplete === true,\n      updated_at: nowIso()\n    };\n    if (optionalColumnSupport.profileLocation) {\n      out.location = location;\n      out.location_city = city;\n      out.location_state = region;\n    }\n    if (optionalColumnSupport.profileBannerPosition && data.bannerPosition !== undefined) out.banner_position = clean(data.bannerPosition || 'center');\n    var avatar = clean(data.avatarMediaId || data.avatar_media_id || data.avatarWasabiObjectKey || data.avatar_wasabi_object_key);\n    var banner = clean(data.bannerMediaId || data.headerMediaId || data.banner_media_id || data.header_media_id || data.bannerWasabiObjectKey || data.banner_wasabi_object_key);\n    if (avatar) {\n      if (isUuid(avatar)) out.avatar_media_id = avatar;\n      else {\n        out.avatar_wasabi_object_key = avatar;\n        if (data.clearAvatarMediaId === true) out.avatar_media_id = null;\n      }\n    }\n    if (banner) {\n      if (isUuid(banner)) out.banner_media_id = banner;\n      else {\n        out.banner_wasabi_object_key = banner;\n        if (data.clearBannerMediaId === true) out.banner_media_id = null;\n      }\n    }\n    return out;\n  }\n  function publicProfilePayload(path, data, payload){\n    var parts = pathParts(path);\n    var key = clean(data.profileKey || data.handle || parts[1] || currentProfileKey(payload) || 'profile');\n    var city = clean(data.locationCity || data.city);\n    var region = clean(data.locationState || data.region);\n    var out = {\n      profile_key: key,\n      user_id: ownerUserIdFromData(data, payload, ['uid', 'userId', 'user_id', 'ownerUid', 'authorUid']),\n      shopify_customer_id: clean(data.shopifyCustomerId || currentShopifyCustomerId(payload)),\n      handle: clean(data.handle || key),\n      display_name: clean(data.displayName || key || 'DSD member'),\n      bio: data.bio === '' ? '' : clean(data.bio),\n      searchable: data.searchable !== false,\n      status: normalizeAccount(data.status === 'setup_required' ? 'hidden' : data.status),\n      moderation_state: normalizeModeration(data.moderation && data.moderation.state || data.moderationStatus, 'approved'),\n      updated_at: nowIso()\n    };\n    if (optionalColumnSupport.profileLocation) {\n      // public_profiles does not expose location columns in the current new-store schema.\n      // Keep location in private profiles until the public mirror schema is migrated.\n    }\n    var avatar = clean(data.avatarMediaId || data.avatar_media_id || data.avatarWasabiObjectKey || data.avatar_wasabi_object_key);\n    var banner = clean(data.bannerMediaId || data.headerMediaId || data.banner_media_id || data.header_media_id || data.bannerWasabiObjectKey || data.banner_wasabi_object_key);\n    if (avatar) {\n      if (isUuid(avatar)) out.avatar_media_id = avatar;\n      else if (data.clearAvatarMediaId === true) out.avatar_media_id = null;\n    }\n    if (banner) {\n      if (isUuid(banner)) out.banner_media_id = banner;\n      else if (data.clearBannerMediaId === true) out.banner_media_id = null;\n    }\n    return out;\n  }\n  function isPartialProfileMediaWrite(data){\n    data = data || {};\n    var keys = Object.keys(data).filter(function(key){ return ['updatedAt','updated_at'].indexOf(key) === -1; });\n    if (!keys.length) return false;\n    var allowed = {\n      bannerPosition: true, banner_position: true,\n      avatarMediaId: true, avatar_media_id: true, profileImageMediaId: true, profile_image_media_id: true, photoMediaId: true, photo_media_id: true,\n      bannerMediaId: true, banner_media_id: true, headerMediaId: true, header_media_id: true, coverMediaId: true, cover_media_id: true, backgroundMediaId: true, background_media_id: true,\n      clearAvatarMediaId: true, clearBannerMediaId: true\n    };\n    return keys.every(function(key){ return allowed[key] === true; });\n  }\n  function partialProfileMediaPayload(data, includeBannerPosition, includeWasabiKeys){\n    data = data || {};\n    var out = { updated_at: nowIso() };\n    var avatar = clean(data.avatarMediaId || data.avatar_media_id || data.profileImageMediaId || data.profile_image_media_id || data.photoMediaId || data.photo_media_id);\n    var banner = clean(data.bannerMediaId || data.banner_media_id || data.headerMediaId || data.header_media_id || data.coverMediaId || data.cover_media_id || data.backgroundMediaId || data.background_media_id);\n    if (avatar) {\n      if (isUuid(avatar)) out.avatar_media_id = avatar;\n      else if (includeWasabiKeys) out.avatar_wasabi_object_key = avatar;\n    }\n    else if (data.clearAvatarMediaId === true) out.avatar_media_id = null;\n    if (banner) {\n      if (isUuid(banner)) out.banner_media_id = banner;\n      else if (includeWasabiKeys) out.banner_wasabi_object_key = banner;\n    }\n    else if (data.clearBannerMediaId === true) out.banner_media_id = null;\n    if (includeBannerPosition && optionalColumnSupport.profileBannerPosition && (data.bannerPosition !== undefined || data.banner_position !== undefined)) out.banner_position = clean(data.bannerPosition || data.banner_position || 'center');\n    return out;\n  }\n  function postPayload(path, data, payload){\n    var id = pathParts(path)[1] || clean(data.postId || data.id) || ('post-' + Date.now());\n    var out = {\n      legacy_post_id: id,\n      updated_at: nowIso()\n    };\n    var fullWrite = data.body !== undefined || data.title !== undefined || data.authorProfileKey || data.authorUid || data.visibility || data.contentRating || data.accessGate;\n    if (fullWrite) {\n      out.author_user_id = ownerUserIdFromData(data, payload, ['authorUid', 'authorUserId', 'author_user_id', 'ownerUid', 'uid', 'userId', 'user_id']);\n      out.author_profile_key = clean(data.authorProfileKey || currentProfileKey(payload));\n      out.author_display_name = clean(data.authorDisplayName || data.displayName || currentProfileKey(payload));\n      out.shopify_customer_id = clean(data.shopifyCustomerId || currentShopifyCustomerId(payload));\n    }\n    if (data.body !== undefined) out.body = clean(data.body);\n    if (data.title !== undefined) out.title = clean(data.title);\n    if (data.visibility !== undefined) out.visibility = normalizeVisibility(data.visibility);\n    if (data.contentRating !== undefined) out.content_rating = normalizeRating(data.contentRating);\n    if (data.accessGate !== undefined) out.access_gate = normalizeGate(data.accessGate);\n    if (data.moderation !== undefined || data.status !== undefined || fullWrite) {\n      out.moderation_state = normalizeModeration(data.moderation && data.moderation.state || data.status, data.status || 'approved');\n      out.status = normalizeModeration(data.status || data.moderation && data.moderation.state, 'approved');\n    }\n    if (data.viewCount !== undefined || data.counts && data.counts.views !== undefined) out.view_count = Number(data.viewCount || data.counts && data.counts.views || 0);\n    if (data.reactionCount !== undefined || data.counts && data.counts.likes !== undefined) out.reaction_count = Number(data.reactionCount || data.counts && data.counts.likes || 0);\n    if (data.commentCount !== undefined || data.counts && data.counts.comments !== undefined) out.comment_count = Number(data.commentCount || data.counts && data.counts.comments || 0);\n    if (data.shareCount !== undefined || data.counts && data.counts.shares !== undefined) out.share_count = Number(data.shareCount || data.counts && data.counts.shares || 0);\n    if (data.publicSafe !== undefined || data.visibility !== undefined || data.contentRating !== undefined || data.accessGate !== undefined) {\n      out.public_safe = data.publicSafe === true && publicSafeMetadata(data.visibility, data.contentRating, data.accessGate);\n      if (data.publicSafe === undefined) out.public_safe = publicSafeMetadata(data.visibility, data.contentRating, data.accessGate);\n    }\n    if (data.deletedAt !== undefined || data.deleted_at !== undefined) out.deleted_at = timestampClean(data.deletedAt !== undefined ? data.deletedAt : data.deleted_at);\n    if (data.hiddenAt !== undefined || data.hidden_at !== undefined) out.hidden_at = timestampClean(data.hiddenAt !== undefined ? data.hiddenAt : data.hidden_at);\n    if (data.archivedAt !== undefined || data.archived_at !== undefined) out.archived_at = timestampClean(data.archivedAt !== undefined ? data.archivedAt : data.archived_at);\n    return out;\n  }\n  function isPartialPostWrite(data){\n    data = data || {};\n    return data.body === undefined && data.title === undefined && !data.authorProfileKey && !data.authorUid && !data.visibility && !data.contentRating && !data.accessGate;\n  }\n  function storyPayload(path, data, payload){\n    var id = pathParts(path)[1] || clean(data.storyId || data.id) || ('story-' + Date.now());\n    var out = {\n      legacy_story_id: id,\n      updated_at: nowIso()\n    };\n    var fullWrite = data.body !== undefined || data.authorProfileKey || data.ownerProfileKey || data.visibility || data.contentRating || data.accessGate;\n    if (fullWrite) {\n      out.owner_user_id = ownerUserIdFromData(data, payload, ['ownerUid', 'authorUid', 'ownerUserId', 'owner_user_id', 'authorUserId', 'author_user_id', 'uid', 'userId', 'user_id']);\n      out.owner_profile_key = clean(data.authorProfileKey || data.ownerProfileKey || currentProfileKey(payload));\n      out.owner_display_name = clean(data.authorDisplayName || data.ownerDisplayName || currentProfileKey(payload));\n      out.shopify_customer_id = clean(data.shopifyCustomerId || currentShopifyCustomerId(payload));\n    }\n    if (data.body !== undefined) out.body = clean(data.body);\n    if (data.visibility !== undefined) out.visibility = normalizeVisibility(data.visibility);\n    if (data.contentRating !== undefined) out.content_rating = normalizeRating(data.contentRating);\n    if (data.accessGate !== undefined) out.access_gate = normalizeGate(data.accessGate);\n    if (data.moderation !== undefined || data.status !== undefined || fullWrite) {\n      out.moderation_state = normalizeModeration(data.moderation && data.moderation.state || data.status, data.status || 'approved');\n      out.status = normalizeModeration(data.status || data.moderation && data.moderation.state, 'approved');\n    }\n    if (data.scopeType !== undefined || fullWrite) out.scope_type = clean(data.scopeType || 'profile');\n    if (data.viewCount !== undefined) out.view_count = Number(data.viewCount || 0);\n    if (data.watchCount !== undefined) out.watch_count = Number(data.watchCount || 0);\n    if (data.uniqueWatchCount !== undefined) out.unique_watch_count = Number(data.uniqueWatchCount || 0);\n    if (data.publicSafe !== undefined || data.visibility !== undefined || data.contentRating !== undefined || data.accessGate !== undefined) {\n      out.public_safe = data.publicSafe === true && publicSafeMetadata(data.visibility, data.contentRating, data.accessGate);\n      if (data.publicSafe === undefined) out.public_safe = publicSafeMetadata(data.visibility, data.contentRating, data.accessGate);\n    }\n    if (data.expiresAt !== undefined) out.expires_at = timestampClean(data.expiresAt);\n    if (data.deletedAt !== undefined || data.deleted_at !== undefined) out.deleted_at = timestampClean(data.deletedAt !== undefined ? data.deletedAt : data.deleted_at);\n    if (data.hiddenAt !== undefined || data.hidden_at !== undefined) out.hidden_at = timestampClean(data.hiddenAt !== undefined ? data.hiddenAt : data.hidden_at);\n    if (data.archivedAt !== undefined || data.archived_at !== undefined) out.archived_at = timestampClean(data.archivedAt !== undefined ? data.archivedAt : data.archived_at);\n    if (data.createdAt !== undefined || data.created_at !== undefined || fullWrite) out.created_at = timestampClean(data.createdAt || data.created_at) || nowIso();\n    return out;\n  }\n  function gatedPostShellPayload(path, data, payload){\n    var id = pathParts(path)[1] || clean(data.postId || data.id) || ('gated-post-' + Date.now());\n    var postCounts = data.counts || {};\n    return {\n      legacy_post_id: id,\n      author_user_id: ownerUserIdFromData(data, payload, ['authorUid', 'authorUserId', 'author_user_id', 'ownerUid', 'uid', 'userId', 'user_id']),\n      author_profile_key: clean(data.authorProfileKey || currentProfileKey(payload)),\n      author_display_name: clean(data.authorDisplayName || data.displayName || data.authorProfileKey || currentProfileKey(payload) || 'DSD+ member'),\n      visibility: 'public',\n      content_rating: 'gated',\n      access_gate: 'dsd_plus',\n      status: normalizeModeration(data.status || data.moderation && data.moderation.state, 'approved'),\n      moderation_state: normalizeModeration(data.moderation && data.moderation.state || data.status, 'approved'),\n      view_count: Number(data.viewCount || postCounts.views || 0),\n      reaction_count: Number(data.reactionCount || postCounts.likes || 0),\n      comment_count: Number(data.commentCount || postCounts.comments || 0),\n      share_count: Number(data.shareCount || postCounts.shares || 0),\n      deleted_at: data.deletedAt !== undefined || data.deleted_at !== undefined ? timestampClean(data.deletedAt !== undefined ? data.deletedAt : data.deleted_at) : undefined,\n      hidden_at: data.hiddenAt !== undefined || data.hidden_at !== undefined ? timestampClean(data.hiddenAt !== undefined ? data.hiddenAt : data.hidden_at) : undefined,\n      archived_at: data.archivedAt !== undefined || data.archived_at !== undefined ? timestampClean(data.archivedAt !== undefined ? data.archivedAt : data.archived_at) : undefined,\n      updated_at: nowIso(),\n      created_at: timestampClean(data.createdAt || data.created_at) || nowIso()\n    };\n  }\n  function gatedStoryShellPayload(path, data, payload){\n    var id = pathParts(path)[1] || clean(data.storyId || data.id) || ('gated-story-' + Date.now());\n    return {\n      legacy_story_id: id,\n      owner_user_id: ownerUserIdFromData(data, payload, ['ownerUid', 'authorUid', 'ownerUserId', 'owner_user_id', 'authorUserId', 'author_user_id', 'uid', 'userId', 'user_id']),\n      owner_profile_key: clean(data.authorProfileKey || data.ownerProfileKey || currentProfileKey(payload)),\n      owner_display_name: clean(data.authorDisplayName || data.ownerDisplayName || data.authorProfileKey || data.ownerProfileKey || currentProfileKey(payload) || 'DSD+ member'),\n      visibility: 'public',\n      content_rating: 'gated',\n      access_gate: 'dsd_plus',\n      status: normalizeModeration(data.status || data.moderation && data.moderation.state, 'approved'),\n      moderation_state: normalizeModeration(data.moderation && data.moderation.state || data.status, 'approved'),\n      view_count: Number(data.viewCount || 0),\n      watch_count: Number(data.watchCount || 0),\n      unique_watch_count: Number(data.uniqueWatchCount || 0),\n      expires_at: timestampClean(data.expiresAt || data.expires_at),\n      deleted_at: data.deletedAt !== undefined || data.deleted_at !== undefined ? timestampClean(data.deletedAt !== undefined ? data.deletedAt : data.deleted_at) : undefined,\n      hidden_at: data.hiddenAt !== undefined || data.hidden_at !== undefined ? timestampClean(data.hiddenAt !== undefined ? data.hiddenAt : data.hidden_at) : undefined,\n      archived_at: data.archivedAt !== undefined || data.archived_at !== undefined ? timestampClean(data.archivedAt !== undefined ? data.archivedAt : data.archived_at) : undefined,\n      updated_at: nowIso(),\n      created_at: timestampClean(data.createdAt || data.created_at) || nowIso()\n    };\n  }\n  function isPartialStoryWrite(data){\n    data = data || {};\n    return data.body === undefined && !data.authorProfileKey && !data.ownerProfileKey && !data.visibility && !data.contentRating && !data.accessGate;\n  }\n  function isPartialCommentWrite(data){\n    data = data || {};\n    return data.authorUid === undefined && data.authorProfileKey === undefined && data.createdAt === undefined && data.media === undefined;\n  }\n  function mediaPayload(path, data, payload){\n    var id = pathParts(path)[1] || clean(data.mediaId || data.id) || ('media-' + Date.now());\n    var out = {\n      legacy_media_id: id,\n      updated_at: nowIso()\n    };\n    var hasIdentity = data.ownerProfileKey !== undefined || data.ownerUid !== undefined || data.shopifyCustomerId !== undefined || data.surface !== undefined || data.surfaceId !== undefined || data.fileName !== undefined || data.contentType !== undefined || data.bytes !== undefined || data.kind !== undefined || data.visibility !== undefined || data.contentRating !== undefined || data.accessGate !== undefined || data.signedUrlRequired !== undefined || data.readSignedUrlRequired !== undefined;\n    if (hasIdentity) {\n      out.owner_user_id = ownerUserIdFromData(data, payload, ['ownerUid', 'authorUid', 'ownerUserId', 'owner_user_id', 'authorUserId', 'author_user_id', 'uid', 'userId', 'user_id']);\n      out.owner_profile_key = clean(data.ownerProfileKey || currentProfileKey(payload));\n      out.shopify_customer_id = clean(data.shopifyCustomerId || currentShopifyCustomerId(payload));\n    }\n    if (data.surface !== undefined) out.surface = clean(data.surface || 'profile');\n    if (data.surfaceId !== undefined) out.surface_id = clean(data.surfaceId || currentUid(payload));\n    if (data.slot !== undefined) out.slot = clean(data.slot);\n    if (data.kind !== undefined || data.contentType !== undefined) out.kind = /video/i.test(data.kind || data.contentType || '') ? 'video' : (/file/i.test(data.kind || '') ? 'file' : 'image');\n    if (data.fileName !== undefined) out.file_name = clean(data.fileName);\n    if (data.contentType !== undefined) out.content_type = clean(data.contentType || 'application/octet-stream');\n    if (data.bytes !== undefined) out.bytes = Number(data.bytes || 0);\n    if (data.compressedFromBytes !== undefined) out.compressed_from_bytes = Number(data.compressedFromBytes || 0);\n    if (data.path !== undefined || data.objectKey !== undefined || data.wasabiObjectKey !== undefined) out.wasabi_object_key = clean(data.path || data.objectKey || data.wasabiObjectKey || id);\n    if (data.visibility !== undefined) out.visibility = normalizeVisibility(data.visibility || 'owner_scoped');\n    if (data.contentRating !== undefined) out.content_rating = normalizeRating(data.contentRating);\n    if (data.accessGate !== undefined) out.access_gate = normalizeGate(data.accessGate);\n    if (data.moderation !== undefined || data.moderationStatus !== undefined || data.moderation_state !== undefined || data.status !== undefined) out.moderation_state = normalizeMediaModeration(data);\n    if (data.signedUrlRequired !== undefined) out.signed_url_required = data.signedUrlRequired !== false;\n    if (data.readSignedUrlRequired !== undefined) out.read_signed_url_required = data.readSignedUrlRequired !== false;\n    if (data.signedUploadExpiresAt !== undefined) out.signed_upload_expires_at = clean(data.signedUploadExpiresAt);\n    if (data.status !== undefined) out.status = clean(data.status || 'pending_upload');\n    if (data.uploadError !== undefined) out.upload_error = clean(data.uploadError);\n    return out;\n  }\n  function commentSpec(path, data, payload, options){\n    var p = pathParts(path);\n    var commentId = p[3] || clean(data.commentId || data.id) || ('comment-' + Date.now());\n    return resolvePostId(p[1] || data.postId, options).then(function(postId){\n      var partial = isPartialCommentWrite(data);\n      return {\n          table: 'comments',\n          conflict: 'legacy_comment_id',\n          insertOnly: !partial,\n          patch: partial ? ('legacy_comment_id=eq.' + encodeURIComponent(commentId)) : '',\n          payload: cleanPayload({\n            legacy_comment_id: commentId,\n            post_id: postId,\n          author_user_id: ownerUserIdFromData(data, payload, ['authorUid', 'authorUserId', 'author_user_id', 'ownerUid', 'uid', 'userId', 'user_id']),\n          author_profile_key: clean(data.authorProfileKey || currentProfileKey(payload)),\n          body: clean(data.body),\n          moderation_state: normalizeModeration(data.moderation && data.moderation.state || data.status, data.status || 'approved'),\n          status: normalizeModeration(data.status || data.moderation && data.moderation.state, 'approved'),\n          deleted_at: data.deletedAt !== undefined || data.deleted_at !== undefined ? timestampClean(data.deletedAt !== undefined ? data.deletedAt : data.deleted_at) : undefined,\n          hidden_at: data.hiddenAt !== undefined || data.hidden_at !== undefined ? timestampClean(data.hiddenAt !== undefined ? data.hiddenAt : data.hidden_at) : undefined,\n          updated_at: nowIso()\n        }),\n        get: { legacy_comment_id: commentId }\n      };\n    });\n  }\n  function reactionSpec(path, data, payload, options){\n    var p = pathParts(path);\n    var reactionType = clean(data.reactionType || data.type || 'like') || 'like';\n    return Promise.all([resolvePostId(p[1] || data.postId, options), resolveUserId(p[3] || data.uid || currentUserId(payload), payload, options)]).then(function(ids){\n      return {\n        table: 'reactions',\n        conflict: 'post_id,user_id,reaction_type',\n        deleteRow: data && data.active === false,\n        payload: {\n          post_id: ids[0],\n          user_id: ids[1],\n          reaction_type: reactionType,\n          updated_at: nowIso()\n        },\n        get: { post_id: ids[0], user_id: ids[1], reaction_type: reactionType }\n      };\n    });\n  }\n  function spacePayload(table, path, data, payload){\n    var idKey = table === 'universes' ? 'legacy_universe_id' : 'legacy_galaxy_id';\n    var id = pathParts(path)[1] || clean(data.universeId || data.galaxyId || data.id) || (table + '-' + Date.now());\n    var out = {\n      owner_user_id: currentUserId(payload),\n      owner_profile_key: clean(data.ownerProfileKey || currentProfileKey(payload)),\n      name: clean(data.name || data.title || id),\n      slug: clean(data.slug || id).toLowerCase().replace(/[^a-z0-9-]+/g, '-').replace(/^-+|-+$/g, ''),\n      description: clean(data.description || data.body),\n      visibility: normalizeVisibility(data.visibility),\n      moderation_state: normalizeModeration(data.moderation && data.moderation.state || data.status, 'approved'),\n      status: normalizeModeration(data.status, 'approved'),\n      member_count: Number(data.memberCount || 1),\n      updated_at: nowIso()\n    };\n    out[idKey] = id;\n    if (isUuid(data.avatarMediaId || data.avatar_media_id)) out.avatar_media_id = clean(data.avatarMediaId || data.avatar_media_id);\n    if (isUuid(data.headerMediaId || data.header_media_id || data.bannerMediaId || data.banner_media_id)) out.header_media_id = clean(data.headerMediaId || data.header_media_id || data.bannerMediaId || data.banner_media_id);\n    if (table === 'galaxies' && isUuid(data.parentUniverseId || data.parent_universe_id)) out.parent_universe_id = clean(data.parentUniverseId || data.parent_universe_id);\n    if (table === 'universes') out.membership_type = clean(data.membershipType || 'open');\n    return out;\n  }\n  function relationshipSpec(path, data, payload, options){\n    var p = pathParts(path);\n    var mode = p[2];\n    var sourceRaw = mode === 'followers' ? p[3] : p[1];\n    var targetRaw = mode === 'followers' ? p[1] : p[3];\n    return Promise.all([resolveUserId(sourceRaw, payload, options), resolveUserId(targetRaw, payload, options)]).then(function(ids){\n      return {\n        table: 'follows',\n        conflict: 'source_user_id,target_user_id',\n        payload: {\n          source_user_id: ids[0],\n          target_user_id: ids[1],\n          state: data && /^(requested|declined|removed|unfollowed|blocked)$/.test(clean(data.state)) ? (clean(data.state) === 'unfollowed' ? 'removed' : clean(data.state)) : 'active',\n          updated_at: nowIso()\n        },\n        get: { source_user_id: ids[0], target_user_id: ids[1] }\n      };\n    });\n  }\n  function favoriteSpec(path, data, payload, options){\n    var p = pathParts(path);\n    return Promise.all([resolveUserId(p[1], payload, options), resolveUserId(p[3], payload, options)]).then(function(ids){\n      return {\n        table: 'favorites',\n        conflict: 'user_id,target_user_id',\n        payload: {\n          user_id: ids[0],\n          target_user_id: ids[1],\n          state: data && data.state === 'removed' ? 'removed' : 'active',\n          updated_at: nowIso()\n        },\n        get: { user_id: ids[0], target_user_id: ids[1] }\n      };\n    });\n  }\n  function saveSpec(path, data, payload, options){\n    var p = pathParts(path);\n    var targetType = clean(data && data.targetType || 'post');\n    return Promise.all([resolveUserId(p[1], payload, options), resolveTargetId(targetType, p[3] || data && data.targetId, options)]).then(function(ids){\n      return {\n        table: 'saves',\n        conflict: 'user_id,target_type,target_id',\n        deleteRow: data && data.state === 'removed',\n        payload: {\n          user_id: ids[0],\n          target_type: targetType,\n          target_id: ids[1]\n        },\n        get: { user_id: ids[0], target_type: targetType, target_id: ids[1] }\n      };\n    });\n  }\n  function notificationSpec(path, data, payload, options){\n    var p = pathParts(path);\n    var notificationId = p[3] || '';\n    return Promise.all([\n      resolveUserId(p[1] || data && data.recipientUid || currentUserId(payload), payload, options),\n      data && data.actorUid ? resolveUserId(data.actorUid, payload, options).catch(function(){ return currentUserId(payload); }) : Promise.resolve(currentUserId(payload))\n    ]).then(function(ids){\n      var out = {\n        recipient_user_id: ids[0],\n        actor_user_id: ids[1],\n        category: clean(data && (data.category || data.type) || 'system'),\n        title: clean(data && data.title || 'Notification'),\n        body: clean(data && data.body),\n        href: clean(data && data.href || '/pages/notifications'),\n        read: data && data.read === true,\n        priority: clean(data && data.priority || 'social')\n      };\n      if (isUuid(data && data.sourceId)) out.source_id = data.sourceId;\n      if (data && data.sourceType) out.source_type = clean(data.sourceType);\n      if (notificationId && isUuid(notificationId)) {\n        return { table: 'notifications', patch: 'id=eq.' + encodeURIComponent(notificationId), payload: out, get: { id: notificationId } };\n      }\n      return { table: 'notifications', insertOnly: true, payload: out };\n    });\n  }\n  function safetyReportSpec(path, data, payload){\n    var p = pathParts(path);\n    var reportId = clean(p[1] || data && data.reportId || ('safety-' + Date.now()));\n    var sourcePath = clean(data && data.sourcePath || ('safetyReports/' + reportId));\n    var row = {\n      reporter_user_id: currentUserId(payload),\n      target_type: clean(data && (data.targetType || data.action) || 'report'),\n      target_id: clean(data && data.targetId || reportId),\n      source_path: sourcePath,\n      details: clean(data && (data.details || data.preview || data.body)),\n      status: normalizeModeration(data && (data.state || data.status), 'pending'),\n      updated_at: nowIso()\n    };\n    if (data && (data.reportId || data.action || data.details || data.targetId || data.preview)) {\n      return { table: 'safety_reports', insertOnly: true, payload: row };\n    }\n    return { table: 'safety_reports', patch: 'source_path=eq.' + encodeURIComponent(sourcePath), payload: row, get: { source_path: sourcePath } };\n  }\n  function founderAuditSpec(path, data, payload){\n    data = data || {};\n    return {\n      table: 'founder_audit',\n      insertOnly: true,\n      payload: {\n        action: clean(data.action || 'founder.audit'),\n        actor_user_id: currentUserId(payload),\n        target_user_id: isUuid(data.targetUid || data.target_user_id) ? (data.targetUid || data.target_user_id) : undefined,\n        target_profile_key: clean(data.targetProfileKey || data.target_profile_key),\n        source_path: clean(data.sourcePath || data.source_path),\n        metadata: Object.assign({}, data.metadata || {}, {\n          queueItemId: data.queueItemId || '',\n          governanceState: data.governanceState || '',\n          version: data.version || '',\n          legacyFirestorePath: data.firestorePath || ''\n        })\n      }\n    };\n  }\n  function conversationSpec(path, data, payload, options){\n    var p = pathParts(path);\n    var cid = p[1] || clean(data && data.conversationId) || ('conversation-' + Date.now());\n    var hasExplicitParticipants = Array.isArray(data && data.participantIds) && data.participantIds.length;\n    var participants = hasExplicitParticipants ? data.participantIds : [currentUserId(payload)];\n    return Promise.all(participants.map(function(item){ return resolveUserId(item, payload, options); })).then(function(ids){\n      ids = Array.from(new Set(ids.filter(isUuid))).sort();\n      if (!ids.length) throw new Error('Conversation participant mapping missing canonical users');\n      if (!hasExplicitParticipants && ids.indexOf(currentUserId(payload)) === -1) throw new Error('Conversation participant mapping missing current user');\n      return {\n        table: 'conversations',\n        conflict: 'legacy_conversation_id',\n        payload: {\n          legacy_conversation_id: cid,\n          participant_ids: ids,\n          participant_profile_keys: Array.isArray(data && data.participantKeys) && data.participantKeys.length ? data.participantKeys.map(clean) : [currentProfileKey(payload)].filter(Boolean),\n          last_message_preview: clean(data && data.lastMessagePreview),\n          visibility: 'participant_scoped',\n          moderation_state: 'approved',\n          updated_at: nowIso()\n        },\n        get: { legacy_conversation_id: cid }\n      };\n    });\n  }\n  function messageSpec(path, data, payload, options){\n    var p = pathParts(path);\n    var cid = p[1] || clean(data && data.conversationId);\n    var messageId = p[3] || clean(data && data.messageId) || ('message-' + Date.now());\n    return resolveConversationId(cid, options).then(function(conversationUuid){\n      return readOne('conversations', { select: 'id,participant_ids', id: 'eq.' + conversationUuid }, options).then(function(conversation){\n        var participants = conversation && conversation.participant_ids || [];\n        var senderUuid = ownerUserIdFromData(data, payload, ['senderUid', 'senderUserId', 'sender_user_id', 'authorUid', 'ownerUid', 'uid', 'userId', 'user_id']);\n        var recipient = clean(data && (data.recipientUid || data.recipientUserId || data.recipient_user_id));\n        var recipientPromise = recipient ? resolveUserId(recipient, payload, options) : Promise.resolve(participants.filter(function(id){ return id !== senderUuid; })[0] || senderUuid);\n        return recipientPromise.then(function(recipientUuid){\n          return {\n            table: 'messages',\n            insertOnly: true,\n            payload: {\n              legacy_message_id: messageId,\n              conversation_id: conversationUuid,\n              sender_user_id: senderUuid,\n              sender_profile_key: clean(data && data.senderProfileKey || currentProfileKey(payload)),\n              recipient_user_id: recipientUuid,\n              body: clean(data && data.body),\n              status: clean(data && data.status || 'sent'),\n              visibility: 'participant_scoped',\n              moderation_state: 'approved',\n              updated_at: nowIso()\n            }\n          };\n        });\n      });\n    });\n  }\n  function partialPostSpec(path, data, payload){\n    var id = pathParts(path)[1];\n    var out = postPayload(path, data || {}, payload);\n    if (isUuid(id) && isPartialPostWrite(data || {})) {\n      delete out.legacy_post_id;\n      return { table: 'posts', patch: 'id=eq.' + encodeURIComponent(id), payload: out, get: { id: id } };\n    }\n    return { table: 'posts', conflict: 'legacy_post_id', patch: isPartialPostWrite(data) ? ('legacy_post_id=eq.' + encodeURIComponent(id)) : '', payload: out, get: { legacy_post_id: id } };\n  }\n  function partialStorySpec(path, data, payload){\n    var id = pathParts(path)[1];\n    var out = storyPayload(path, data || {}, payload);\n    if (isUuid(id) && isPartialStoryWrite(data || {})) {\n      delete out.legacy_story_id;\n      return { table: 'stories', patch: 'id=eq.' + encodeURIComponent(id), payload: out, get: { id: id } };\n    }\n    return { table: 'stories', conflict: 'legacy_story_id', patch: isPartialStoryWrite(data) ? ('legacy_story_id=eq.' + encodeURIComponent(id)) : '', payload: out, get: { legacy_story_id: id } };\n  }\n  function pathSpec(path, data, payload){\n    var p = pathParts(path);\n    if (isLaunchHeldSpacePath(path)) return null;\n    if (p[0] === 'profiles' && p[1]) {\n      if (isPartialProfileMediaWrite(data || {})) return { table: 'profiles', patch: 'firebase_uid=eq.' + encodeURIComponent(p[1]), payload: partialProfileMediaPayload(data || {}, true, true), get: { firebase_uid: p[1] } };\n      return { table: 'profiles', conflict: 'profile_key', payload: profilePayload(path, data || {}, payload), get: { firebase_uid: p[1] } };\n    }\n    if (p[0] === 'publicProfiles' && p[1]) {\n      if (isPartialProfileMediaWrite(data || {})) return { table: 'public_profiles', patch: 'profile_key=eq.' + encodeURIComponent(p[1]), payload: partialProfileMediaPayload(data || {}, false, false), get: { profile_key: p[1] } };\n      return { table: 'public_profiles', conflict: 'profile_key', patch: 'profile_key=eq.' + encodeURIComponent(p[1]), payload: publicProfilePayload(path, data || {}, payload), get: { profile_key: p[1] } };\n    }\n    if (p[0] === 'posts' && p[1] && !p[2]) return partialPostSpec(path, data || {}, payload);\n    if (p[0] === 'stories' && p[1]) return partialStorySpec(path, data || {}, payload);\n    if (p[0] === 'mediaManifests' && p[1]) return { table: 'media_objects', conflict: 'legacy_media_id', payload: mediaPayload(path, data || {}, payload), get: { legacy_media_id: p[1] } };\n    if (p[0] === 'gatedPostShells' && p[1]) return { table: 'gated_post_shells', conflict: 'legacy_post_id', payload: gatedPostShellPayload(path, data || {}, payload), get: { legacy_post_id: p[1] } };\n    if (p[0] === 'gatedStoryShells' && p[1]) return { table: 'gated_story_shells', conflict: 'legacy_story_id', payload: gatedStoryShellPayload(path, data || {}, payload), get: { legacy_story_id: p[1] } };\n    if (p[0] === 'safetyReports' && p[1]) return safetyReportSpec(path, data || {}, payload);\n    if (p[0] === 'founderAudit') return founderAuditSpec(path, data || {}, payload);\n    if (p[0] === 'universes' && p[1] && !p[2]) return { table: 'universes', conflict: 'legacy_universe_id', payload: spacePayload('universes', path, data || {}, payload), get: { legacy_universe_id: p[1] } };\n    if (p[0] === 'galaxies' && p[1] && !p[2]) return { table: 'galaxies', conflict: 'legacy_galaxy_id', payload: spacePayload('galaxies', path, data || {}, payload), get: { legacy_galaxy_id: p[1] } };\n    if (p[0] === 'moderationQueue' && p[1]) return { table: 'moderation_queue', conflict: 'queue_item_key', payload: { queue_item_key: p[1], surface: clean((data || {}).surface || 'item'), source_path: clean((data || {}).sourcePath), target_id: clean((data || {}).targetId || p[1]), author_user_id: currentUserId(payload), preview: clean((data || {}).preview), state: normalizeModeration((data || {}).state, 'pending'), visibility: (data || {}).visibility ? normalizeVisibility((data || {}).visibility) : undefined, content_rating: (data || {}).contentRating ? normalizeRating((data || {}).contentRating) : undefined, access_gate: (data || {}).accessGate ? normalizeGate((data || {}).accessGate) : undefined, updated_at: nowIso() }, get: { queue_item_key: p[1] } };\n    return null;\n  }\n  function pathSpecAsync(path, data, payload, options){\n    var p = pathParts(path);\n    if (p[0] === 'profiles' && p[1] === 'current') {\n      if (isPartialProfileMediaWrite(data || {})) {\n        return canonicalUserIdForProfileData(data || {}, payload, options, ['profileKey', 'handle'], ['uid', 'userId', 'user_id', 'ownerUid', 'authorUid']).then(function(currentId){\n          if (!currentId) throw new Error('Cannot patch current profile media without canonical user id');\n          return {\n          table: 'profiles',\n          patch: 'user_id=eq.' + encodeURIComponent(currentId),\n          payload: partialProfileMediaPayload(data || {}, true, true),\n          get: { user_id: currentId }\n          };\n        });\n      }\n      return canonicalUserIdForProfileData(data || {}, payload, options, ['profileKey', 'handle'], ['uid', 'userId', 'user_id', 'ownerUid', 'authorUid']).then(function(currentId){\n        var profileRow = profilePayload(path, data || {}, payload);\n        profileRow.user_id = currentId;\n        return {\n          table: 'profiles',\n          conflict: 'profile_key',\n          payload: profileRow,\n          get: { user_id: currentId }\n        };\n      });\n    }\n    if (p[0] === 'publicProfiles' && p[1]) {\n      return canonicalUserIdForProfileData(data || {}, payload, options, ['profileKey', 'handle'], ['uid', 'userId', 'user_id', 'ownerUid', 'authorUid']).then(function(ownerId){\n        var spec = pathSpec(path, data || {}, payload);\n        if (spec && spec.payload && spec.payload.user_id) spec.payload.user_id = ownerId;\n        return spec;\n      });\n    }\n    if (p[0] === 'posts' && p[1] && !p[2] && !isPartialPostWrite(data || {})) {\n      return canonicalUserIdForProfileData(data || {}, payload, options, ['authorProfileKey', 'ownerProfileKey', 'profileKey'], ['authorUid', 'ownerUid', 'uid']).then(function(authorId){\n        var spec = pathSpec(path, data || {}, payload);\n        if (spec && spec.payload) spec.payload.author_user_id = authorId;\n        return spec;\n      });\n    }\n    if (p[0] === 'stories' && p[1] && !isPartialStoryWrite(data || {})) {\n      return canonicalUserIdForProfileData(data || {}, payload, options, ['authorProfileKey', 'ownerProfileKey', 'profileKey'], ['ownerUid', 'authorUid', 'uid']).then(function(ownerId){\n        var spec = pathSpec(path, data || {}, payload);\n        if (spec && spec.payload) spec.payload.owner_user_id = ownerId;\n        return spec;\n      });\n    }\n    if (p[0] === 'mediaManifests' && p[1]) {\n      return canonicalUserIdForProfileData(data || {}, payload, options, ['ownerProfileKey', 'authorProfileKey', 'profileKey'], ['ownerUid', 'authorUid', 'uid']).then(function(ownerId){\n        var spec = pathSpec(path, data || {}, payload);\n        if (spec && spec.payload && spec.payload.owner_user_id) spec.payload.owner_user_id = ownerId;\n        return spec;\n      });\n    }\n    if (p[0] === 'gatedPostShells' && p[1]) {\n      return canonicalUserIdForProfileData(data || {}, payload, options, ['authorProfileKey', 'ownerProfileKey', 'profileKey'], ['authorUid', 'ownerUid', 'uid']).then(function(authorId){\n        var spec = pathSpec(path, data || {}, payload);\n        if (spec && spec.payload) spec.payload.author_user_id = authorId;\n        return spec;\n      });\n    }\n    if (p[0] === 'gatedStoryShells' && p[1]) {\n      return canonicalUserIdForProfileData(data || {}, payload, options, ['authorProfileKey', 'ownerProfileKey', 'profileKey'], ['ownerUid', 'authorUid', 'uid']).then(function(ownerId){\n        var spec = pathSpec(path, data || {}, payload);\n        if (spec && spec.payload) spec.payload.owner_user_id = ownerId;\n        return spec;\n      });\n    }\n    if (p[0] === 'posts' && p[1] && p[2] === 'comments' && p[3]) return commentSpec(path, data || {}, payload, options);\n    if (p[0] === 'posts' && p[1] && p[2] === 'reactions' && p[3]) return reactionSpec(path, data || {}, payload, options);\n    if (p[0] === 'posts' && p[1] && p[2] === 'shares' && p[3]) return reactionSpec(path, Object.assign({}, data || {}, { reactionType: 'share', active: true }), payload, options);\n    if (p[0] === 'relationships' && p[1] && (p[2] === 'following' || p[2] === 'followers') && p[3]) return relationshipSpec(path, data || {}, payload, options);\n    if (p[0] === 'favorites' && p[1] && p[2] === 'items' && p[3]) return favoriteSpec(path, data || {}, payload, options);\n    if (p[0] === 'saves' && p[1] && p[2] === 'items' && p[3]) return saveSpec(path, data || {}, payload, options);\n    if (p[0] === 'notifications' && p[1] && p[2] === 'items') return notificationSpec(path, data || {}, payload, options);\n    if (p[0] === 'conversations' && p[1] && !p[2]) return conversationSpec(path, data || {}, payload, options);\n    if (p[0] === 'conversations' && p[1] && p[2] === 'messages') return messageSpec(path, data || {}, payload, options);\n    return Promise.resolve(pathSpec(path, data || {}, payload));\n  }\n  function selectForTable(table){\n    if (table === 'profiles') return profileGovernanceSelect();\n    if (table === 'public_profiles') return publicProfileSelect();\n    if (table === 'posts') return POST_RENDER_SELECT;\n    if (table === 'stories') return STORY_RENDER_SELECT;\n    if (table === 'comments') return COMMENT_RENDER_SELECT;\n    if (table === 'media_objects') return MEDIA_OBJECT_RENDER_SELECT;\n    if (table === 'notifications') return NOTIFICATION_RENDER_SELECT;\n    if (table === 'conversations') return CONVERSATION_RENDER_SELECT;\n    if (table === 'messages') return MESSAGE_RENDER_SELECT;\n    if (table === 'follows') return RELATION_RENDER_SELECT;\n    if (table === 'favorites') return FAVORITE_RENDER_SELECT;\n    if (table === 'saves') return SAVE_RENDER_SELECT;\n    if (table === 'universes' || table === 'galaxies') return SPACE_RENDER_SELECT;\n    if (table === 'moderation_queue') return MODERATION_QUEUE_RENDER_SELECT;\n    if (table === 'safety_reports') return SAFETY_REPORT_RENDER_SELECT;\n    if (table === 'founder_audit') return FOUNDER_AUDIT_RENDER_SELECT;\n    if (table === 'gated_post_shells') return GATED_POST_SHELL_RENDER_SELECT;\n    if (table === 'gated_story_shells') return GATED_STORY_SHELL_RENDER_SELECT;\n    throw new Error('Supabase projection not defined for ' + table);\n  }\n  function filterQuery(filters, table){\n    var query = { select: selectForTable(table) };\n    Object.keys(filters || {}).forEach(function(key){ query[key] = 'eq.' + filters[key]; });\n    query.limit = 1;\n    return query;\n  }\n  function cleanPayload(payload){\n    return Object.keys(payload || {}).reduce(function(out, key){\n      if (payload[key] !== undefined && (payload[key] !== '' || key === 'bio')) out[key] = payload[key];\n      return out;\n    }, {});\n  }\n  function getPath(path, options){\n    var p = pathParts(path);\n    if (isLaunchHeldSpacePath(path)) return launchHeldSpaceSnapshot(path);\n    if (options && options.publicRead === true && p[0] === 'publicProfiles' && p[1]) {\n      var profileKey = clean(p[1]);\n      var snap = function(row){\n        return {\n          id: profileKey,\n          exists: function(){ return !!row; },\n          data: function(){ return row ? frontendRecord('public_profiles', row) : null; }\n        };\n      };\n      return read('public_profiles', { select: publicProfileSelect(), profile_key: 'eq.' + profileKey, limit: 1 }, options).catch(function(error){\n        if (isMissingLocationColumnError(error) || isMissingBannerPositionColumnError(error) || isMissingProfileStatsColumnError(error)) {\n          if (isMissingLocationColumnError(error)) optionalColumnSupport.profileLocation = false;\n          if (isMissingBannerPositionColumnError(error)) optionalColumnSupport.profileBannerPosition = false;\n          if (isMissingProfileStatsColumnError(error)) optionalColumnSupport.profileStats = false;\n          claim('supabase-public-profile-optional-select:fallback', { mode: 'profile_key', bannerPosition: optionalColumnSupport.profileBannerPosition, profileStats: optionalColumnSupport.profileStats, error: error && error.message || String(error) });\n          return read('public_profiles', { select: publicProfileSelect(), profile_key: 'eq.' + profileKey, limit: 1 }, options);\n        }\n        throw error;\n      }).then(function(rows){\n        if (rows && rows[0]) return hydratePublicProfileMediaRows(rows, options).then(function(mappedRows){ return snap(mappedRows && mappedRows[0]); });\n        return read('public_profiles', { select: publicProfileSelect(), handle: 'eq.' + profileKey, limit: 1 }, options).catch(function(error){\n          if (isMissingLocationColumnError(error) || isMissingBannerPositionColumnError(error) || isMissingProfileStatsColumnError(error)) {\n            if (isMissingLocationColumnError(error)) optionalColumnSupport.profileLocation = false;\n            if (isMissingBannerPositionColumnError(error)) optionalColumnSupport.profileBannerPosition = false;\n            if (isMissingProfileStatsColumnError(error)) optionalColumnSupport.profileStats = false;\n            claim('supabase-public-profile-optional-select:fallback', { mode: 'handle', bannerPosition: optionalColumnSupport.profileBannerPosition, profileStats: optionalColumnSupport.profileStats, error: error && error.message || String(error) });\n            return read('public_profiles', { select: publicProfileSelect(), handle: 'eq.' + profileKey, limit: 1 }, options);\n          }\n          throw error;\n        }).then(function(handleRows){\n          return hydratePublicProfileMediaRows(handleRows || [], options).then(function(mappedRows){ return snap(mappedRows && mappedRows[0]); });\n        });\n      });\n    }\n    return session(options).then(function(payload){\n      return pathSpecAsync(path, {}, payload, options);\n    }).then(function(spec){\n      if (!spec || !spec.get) throw new Error('Supabase path unsupported: ' + path);\n      var query = filterQuery(spec.get, spec.table);\n      if (spec.table === 'profiles' && !(p[0] === 'profiles' && p[1] === 'current')) {\n        query.account_state = 'eq.active';\n        query.setup_complete = 'eq.true';\n        query.order = 'updated_at.desc';\n      }\n      return read(spec.table, query, options).then(function(rows){\n        var readyRows = spec.table === 'profiles' ? hydrateProfileMediaRows(rows || [], options) : Promise.resolve(rows || []);\n        return readyRows.then(function(mappedRows){\n          var row = mappedRows && mappedRows[0];\n          return { id: pathParts(path).slice(-1)[0] || '', exists: function(){ return !!row; }, data: function(){ return row ? frontendRecord(spec.table, row) : null; } };\n        });\n      });\n    });\n  }\n  function writePath(path, data, options){\n    options = options || {};\n    if (isLaunchHeldSpacePath(path)) return launchHeldSpaceWrite(path);\n    return session(options).then(function(payload){\n      return pathSpecAsync(path, data || {}, payload, options);\n    }).then(function(spec){\n      if (!spec) throw new Error('Supabase path unsupported: ' + path);\n      if (spec.deleteRow) {\n        return remove(spec.table, filterQuery(spec.get, spec.table), options).then(function(){ return { id: pathParts(path).slice(-1)[0] || '' }; });\n      }\n      var row = cleanPayload(spec.payload);\n      var writeOptions = spec.insertOnly\n        ? { prefer: 'return=representation' }\n        : (spec.patch\n          ? { method: 'PATCH', query: spec.patch, prefer: 'return=representation' }\n          : { upsert: true, query: 'on_conflict=' + encodeURIComponent(spec.conflict), prefer: 'resolution=merge-duplicates,return=representation' });\n      if (spec.table === 'public_profiles') {\n        writeOptions.prefer = 'return=minimal';\n      }\n      return (spec.table === 'profiles' ? preserveProfileModerationLock(row, sessionState.payload || {}, options) : Promise.resolve(row)).then(function(guardedRow){\n        return write(spec.table, spec.patch ? guardedRow : [guardedRow], writeOptions);\n      })\n        .then(function(result){\n          var written = Array.isArray(result) ? result[0] : result;\n          return syncMediaRelationships(spec.table, written, data || {}, options).then(function(synced){\n            return synced ? Object.assign({ id: pathParts(path).slice(-1)[0] }, frontendRecord(spec.table, synced)) : { id: pathParts(path).slice(-1)[0] || '' };\n          });\n        });\n    });\n  }\n  function addPath(path, data, options){\n    var id = clean((data || {}).id || (data || {}).postId || (data || {}).storyId || (data || {}).mediaId || (Date.now() + '-' + Math.random().toString(36).slice(2)));\n    var resolved = clean(path).replace(/\\/+$/, '') + '/' + id;\n    return writePath(resolved, Object.assign({}, data || {}, { id: id }), options).then(function(written){\n      return Object.assign({ id: id, path: resolved }, written || {});\n    });\n  }\n  function listQuery(path){\n    var p = pathParts(path);\n    if (isLaunchHeldSpacePath(path)) return { launchHeld: true, path: path };\n    if (p[0] === 'publicProfiles') return { table: 'public_profiles', query: { select: publicProfileSelect(), searchable: 'eq.true', status: 'eq.active', moderation_state: 'eq.approved', order: 'updated_at.desc', limit: 100 } };\n    if (p[0] === 'posts' && !p[1]) return { table: 'posts', query: authenticatedApprovedContentQuery({ order: 'created_at.desc', limit: 50 }) };\n    if (p[0] === 'posts' && p[1] === 'author' && p[2]) return { table: 'posts', query: { select: POST_RENDER_SELECT, author_profile_key: 'eq.' + clean(p[2]), deleted_at: 'is.null', hidden_at: 'is.null', archived_at: 'is.null', order: 'created_at.desc', limit: 50 } };\n    if (p[0] === 'stories' && !p[1]) return { table: 'stories', query: Object.assign(authenticatedApprovedContentQuery({ and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))', order: 'created_at.desc', limit: 50 }), { select: STORY_RENDER_SELECT }) };\n    if (p[0] === 'stories' && p[1] === 'author' && p[2]) return { table: 'stories', query: { select: STORY_RENDER_SELECT, owner_profile_key: 'eq.' + clean(p[2]), and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))', deleted_at: 'is.null', hidden_at: 'is.null', archived_at: 'is.null', order: 'created_at.desc', limit: 50 } };\n    if (p[0] === 'gatedPostShells') return gatedPublicPostShellQuery({ order: 'created_at.desc', limit: 50 });\n    if (p[0] === 'gatedStoryShells') return gatedPublicStoryShellQuery({ and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))', order: 'created_at.desc', limit: 50 });\n    if (p[0] === 'universes' && !p[1]) return { table: 'universes', query: { select: SPACE_RENDER_SELECT, visibility: 'eq.public', status: 'eq.approved', order: 'created_at.desc', limit: 50 } };\n    if (p[0] === 'galaxies' && !p[1]) return { table: 'galaxies', query: { select: SPACE_RENDER_SELECT, visibility: 'eq.public', status: 'eq.approved', order: 'created_at.desc', limit: 50 } };\n    if (p[0] === 'moderationQueue') return { table: 'moderation_queue', query: { select: MODERATION_QUEUE_RENDER_SELECT, order: 'created_at.desc', limit: 100 } };\n    if (p[0] === 'safetyReports') return { table: 'safety_reports', query: { select: SAFETY_REPORT_RENDER_SELECT, order: 'created_at.desc', limit: 100 } };\n    if (p[0] === 'founderAudit') return { table: 'founder_audit', query: { select: FOUNDER_AUDIT_RENDER_SELECT, order: 'created_at.desc', limit: 50 } };\n    return null;\n  }\n  function listQueryAsync(path, payload, options){\n    var p = pathParts(path);\n    if (options && options.publicRead === true && p[0] === 'posts' && p[1] === 'author' && p[2]) {\n      var publicPostAuthorKey = clean(p[2]);\n      var publicPostAuthorFilter = { author_profile_key: 'eq.' + publicPostAuthorKey, order: 'created_at.desc', limit: 50 };\n      var publicPostQueries = [\n        standardPublicContentQuery(publicPostAuthorFilter),\n        gatedPublicPostShellQuery(publicPostAuthorFilter)\n      ];\n      if (options.viewerAuthenticated === true) publicPostQueries.splice(1, 0, authenticatedApprovedContentQuery(publicPostAuthorFilter));\n      return Promise.resolve({ table: 'posts', queries: publicPostQueries });\n    }\n    if (options && options.publicRead === true && p[0] === 'stories' && p[1] === 'author' && p[2]) {\n      var publicStoryAuthorKey = clean(p[2]);\n      var publicStoryAuthorFilter = {\n        owner_profile_key: 'eq.' + publicStoryAuthorKey,\n        and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))',\n        order: 'created_at.desc',\n        limit: 50\n      };\n      var publicStoryQueries = [\n        Object.assign(standardPublicContentQuery(publicStoryAuthorFilter), { select: STORY_RENDER_SELECT }),\n        gatedPublicStoryShellQuery(publicStoryAuthorFilter)\n      ];\n      if (options.viewerAuthenticated === true) publicStoryQueries.splice(1, 0, Object.assign(authenticatedApprovedContentQuery(publicStoryAuthorFilter), { select: STORY_RENDER_SELECT }));\n      return Promise.resolve({ table: 'stories', queries: publicStoryQueries });\n    }\n    if (options && options.ownerScoped === true && p[0] === 'posts' && !p[1]) {\n      var ownerPostProfileKey = clean(options.ownerProfileKey || options.profileKey || '');\n      var ownerPostIdPromise = ownerPostProfileKey ? resolvePublicProfileUserIdByKey(ownerPostProfileKey, options).catch(function(){ return currentCanonicalUserId(payload, options); }) : currentCanonicalUserId(payload, options);\n      return ownerPostIdPromise.then(function(id){\n        var query = { select: POST_RENDER_SELECT, deleted_at: 'is.null', hidden_at: 'is.null', archived_at: 'is.null', order: 'created_at.desc', limit: 50 };\n        if (ownerPostProfileKey && id) query.or = '(author_profile_key.eq.' + ownerPostProfileKey + ',author_user_id.eq.' + id + ')';\n        else if (ownerPostProfileKey) query.author_profile_key = 'eq.' + ownerPostProfileKey;\n        else query.author_user_id = 'eq.' + id;\n        return { table: 'posts', query: query };\n      });\n    }\n    if (options && options.ownerScoped === true && p[0] === 'stories' && !p[1]) {\n      var ownerStoryProfileKey = clean(options.ownerProfileKey || options.profileKey || '');\n      var ownerStoryIdPromise = ownerStoryProfileKey ? resolvePublicProfileUserIdByKey(ownerStoryProfileKey, options).catch(function(){ return currentCanonicalUserId(payload, options); }) : currentCanonicalUserId(payload, options);\n      return ownerStoryIdPromise.then(function(id){\n        var query = { select: STORY_RENDER_SELECT, and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))', deleted_at: 'is.null', hidden_at: 'is.null', archived_at: 'is.null', order: 'created_at.desc', limit: 50 };\n        if (ownerStoryProfileKey && id) query.or = '(owner_profile_key.eq.' + ownerStoryProfileKey + ',owner_user_id.eq.' + id + ')';\n        else if (ownerStoryProfileKey) query.owner_profile_key = 'eq.' + ownerStoryProfileKey;\n        else query.owner_user_id = 'eq.' + id;\n        return { table: 'stories', query: query };\n      });\n    }\n    if (options && options.publicRead === true && options.viewerAuthenticated === true && p[0] === 'posts' && !p[1]) {\n      return Promise.resolve({ table: 'posts', queries: [\n        standardPublicContentQuery({ order: 'created_at.desc', limit: 50 }),\n        authenticatedApprovedContentQuery({ order: 'created_at.desc', limit: 50 }),\n        gatedPublicPostShellQuery({ order: 'created_at.desc', limit: 50 })\n      ] });\n    }\n    if (options && options.publicRead === true && p[0] === 'posts' && !p[1]) {\n      return Promise.resolve({ table: 'posts', queries: [\n        standardPublicContentQuery({ order: 'created_at.desc', limit: 50 }),\n        gatedPublicPostShellQuery({ order: 'created_at.desc', limit: 50 })\n      ] });\n    }\n    if (options && options.publicRead === true && options.viewerAuthenticated === true && p[0] === 'stories' && !p[1]) {\n      return Promise.resolve({ table: 'stories', queries: [\n        Object.assign(standardPublicContentQuery({ and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))', order: 'created_at.desc', limit: 50 }), { select: STORY_RENDER_SELECT }),\n        Object.assign(authenticatedApprovedContentQuery({ and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))', order: 'created_at.desc', limit: 50 }), { select: STORY_RENDER_SELECT }),\n        gatedPublicStoryShellQuery({ and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))', order: 'created_at.desc', limit: 50 })\n      ] });\n    }\n    if (options && options.publicRead === true && p[0] === 'stories' && !p[1]) {\n      return Promise.resolve({ table: 'stories', queries: [\n        Object.assign(standardPublicContentQuery({ and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))', order: 'created_at.desc', limit: 50 }), { select: STORY_RENDER_SELECT }),\n        gatedPublicStoryShellQuery({ and: '(or(expires_at.is.null,expires_at.gt.' + nowIso() + '))', order: 'created_at.desc', limit: 50 })\n      ] });\n    }\n    var base = listQuery(path);\n    if (base) return Promise.resolve(base);\n    if (p[0] === 'posts' && p[1] && p[2] === 'comments') {\n      return resolvePostId(p[1], options).then(function(id){\n        if (options && options.publicRead === true) {\n          return { table: 'comments', query: { select: COMMENT_RENDER_SELECT, post_id: 'eq.' + id, status: 'eq.approved', order: 'created_at.asc', limit: 50 } };\n        }\n        return { table: 'comments', query: { select: COMMENT_RENDER_SELECT, post_id: 'eq.' + id, order: 'created_at.asc', limit: 50 } };\n      });\n    }\n    if (p[0] === 'notifications' && p[1] && p[2] === 'items') {\n      return resolveUserId(p[1], payload, options).then(function(id){\n        return { table: 'notifications', query: { select: NOTIFICATION_RENDER_SELECT, recipient_user_id: 'eq.' + id, order: 'created_at.desc', limit: 50 } };\n      });\n    }\n    if (p[0] === 'conversations' && !p[1]) {\n      if (!payload || payload.publicRead === true) return Promise.resolve({ table: 'conversations', query: { select: CONVERSATION_RENDER_SELECT, limit: 0 } });\n      var currentConversationUserId = '';\n      var currentConversationProfileKey = '';\n      try { currentConversationUserId = currentUserId(payload); } catch(e) { currentConversationUserId = ''; }\n      try { currentConversationProfileKey = currentProfileKey(payload).replace(/^@+/, '').toLowerCase(); } catch(e2) { currentConversationProfileKey = ''; }\n      var scopedFilters = [];\n      var userFilter = arrayContainsFilter(currentConversationUserId);\n      var profileFilter = arrayContainsFilter(currentConversationProfileKey);\n      if (userFilter) scopedFilters.push('participant_ids.' + userFilter);\n      if (profileFilter) scopedFilters.push('participant_profile_keys.' + profileFilter);\n      if (!scopedFilters.length) return Promise.resolve({ table: 'conversations', query: { select: CONVERSATION_RENDER_SELECT, limit: 0 } });\n      return Promise.resolve({ table: 'conversations', query: { select: CONVERSATION_RENDER_SELECT, or: '(' + scopedFilters.join(',') + ')', moderation_state: 'eq.approved', archived_at: 'is.null', order: 'updated_at.desc', limit: 50 } });\n    }\n    if (p[0] === 'conversations' && p[1] && p[2] === 'messages') {\n      if (!payload || payload.publicRead === true) return Promise.resolve({ table: 'messages', query: { select: MESSAGE_RENDER_SELECT, limit: 0 } });\n      return resolveConversationId(p[1], options).then(function(id){\n        var scopedUserId = '';\n        try { scopedUserId = currentUserId(payload); } catch(e) { scopedUserId = ''; }\n        var participantFilter = arrayContainsFilter(scopedUserId);\n        if (!id || !participantFilter) return { table: 'messages', query: { select: MESSAGE_RENDER_SELECT, limit: 0 } };\n        return readOne('conversations', { select: 'id,participant_ids', id: 'eq.' + id, participant_ids: participantFilter }, options).then(function(conversation){\n          if (!conversation || !conversation.id) return { table: 'messages', query: { select: MESSAGE_RENDER_SELECT, limit: 0 } };\n          return { table: 'messages', query: { select: MESSAGE_RENDER_SELECT, conversation_id: 'eq.' + id, order: 'created_at.asc', limit: 100 } };\n        });\n      });\n    }\n    if (p[0] === 'relationships' && p[1] && (p[2] === 'following' || p[2] === 'followers')) {\n      return resolveUserId(p[1], payload, options).then(function(id){\n        return { table: 'follows', query: Object.assign({ select: RELATION_RENDER_SELECT, order: 'created_at.desc', limit: 100 }, p[2] === 'following' ? { source_user_id: 'eq.' + id } : { target_user_id: 'eq.' + id }) };\n      });\n    }\n    if (p[0] === 'favorites' && p[1] && p[2] === 'items') {\n      return resolveUserId(p[1], payload, options).then(function(id){\n        return { table: 'favorites', query: { select: FAVORITE_RENDER_SELECT, user_id: 'eq.' + id, state: 'eq.active', order: 'created_at.desc', limit: 100 } };\n      });\n    }\n    if (p[0] === 'saves' && p[1] && p[2] === 'items') {\n      return resolveUserId(p[1], payload, options).then(function(id){\n        return { table: 'saves', query: { select: SAVE_RENDER_SELECT, user_id: 'eq.' + id, order: 'created_at.desc', limit: 100 } };\n      });\n    }\n    return Promise.resolve(null);\n  }\n  function listenPath(path, callback, options){\n    var closed = false;\n    var delivered = false;\n    var timer = null;\n    var pollMs = Math.max(8000, Number(options && options.pollMs || 12000));\n    var maxPollMs = Math.max(pollMs, Number(options && options.maxPollMs || 45000));\n    var hiddenPollMs = Math.max(maxPollMs, Number(options && options.hiddenPollMs || 60000));\n    var stablePolls = 0;\n    var lastPollSignature = '';\n    var pollable = /^conversations(?:\\/|$)|^notifications(?:\\/|$)/.test(String(path || ''));\n    function pollSignature(rows){\n      return (rows || []).map(function(row){\n        if (!row) return '';\n        return [\n          row.id || row.legacy_conversation_id || row.legacy_message_id || '',\n          row.updated_at || row.created_at || '',\n          row.status || '',\n          row.read === true ? 'read' : ''\n        ].join(':');\n      }).join('|');\n    }\n    function nextPollDelay(rows){\n      if (!pollable) return 0;\n      if (typeof document !== 'undefined' && document.hidden) return hiddenPollMs;\n      var signature = pollSignature(rows);\n      stablePolls = signature && signature === lastPollSignature ? stablePolls + 1 : 0;\n      lastPollSignature = signature;\n      return Math.min(maxPollMs, pollMs * Math.pow(2, Math.min(stablePolls, 3)));\n    }\n    function scheduleNext(rows){\n      if (!pollable || closed) return;\n      if (timer) window.clearTimeout(timer);\n      timer = window.setTimeout(loadOnce, nextPollDelay(rows));\n    }\n    function loadOnce(){\n      return session(options).then(function(payload){\n        return listQueryAsync(path, payload, options);\n      }).then(function(spec){\n        if (spec && spec.launchHeld) {\n          claim('launch-held-space:list-blocked', { path: spec.path || path, build: BUILD });\n          if (!closed) callback([]);\n          delivered = true;\n          scheduleNext([]);\n          return [];\n        }\n        if (!spec) {\n          if (!closed) callback([]);\n          delivered = true;\n          scheduleNext([]);\n          return null;\n        }\n        var rowsPromise = spec.queries\n          ? Promise.all(spec.queries.map(function(querySpec){\n            var queryTable = querySpec && querySpec.table || spec.table;\n            var query = querySpec && querySpec.query || querySpec;\n            return read(queryTable, query, options).catch(function(error){\n              claim('supabase-list-query:partial-blocked', { path: path, table: queryTable, error: error && error.message || String(error) });\n              return [];\n            });\n          })).then(function(results){\n            var seen = {};\n            var merged = [];\n            (results || []).forEach(function(rows){\n              (rows || []).forEach(function(row){\n                var key = row && (row.id || row.legacy_post_id || row.legacy_story_id);\n                if (!key || seen[key]) return;\n                seen[key] = true;\n                merged.push(row);\n              });\n            });\n            return merged;\n          })\n          : read(spec.table, spec.query, options).catch(function(error){\n            if (spec.table === 'public_profiles' && (isMissingLocationColumnError(error) || isMissingBannerPositionColumnError(error) || isMissingProfileStatsColumnError(error))) {\n              if (isMissingLocationColumnError(error)) optionalColumnSupport.profileLocation = false;\n              if (isMissingBannerPositionColumnError(error)) optionalColumnSupport.profileBannerPosition = false;\n              if (isMissingProfileStatsColumnError(error)) optionalColumnSupport.profileStats = false;\n              claim('supabase-public-profile-optional-list:fallback', { path: path, bannerPosition: optionalColumnSupport.profileBannerPosition, profileStats: optionalColumnSupport.profileStats, error: error && error.message || String(error) });\n              return read(spec.table, Object.assign({}, spec.query || {}, { select: publicProfileSelect() }), options);\n            }\n            throw error;\n          });\n        return rowsPromise.then(function(rows){\n          var readyRows = spec.table === 'public_profiles'\n            ? hydratePublicProfileMediaRows(rows || [], options)\n            : (spec.table === 'stories' ? recoverOrphanStoryRows(rows || [], options) : Promise.resolve(rows || []));\n          return readyRows.then(function(mappedRows){\n            return hydrateRows(spec.table, mappedRows, options).then(function(result){\n              if (!closed) callback(result);\n              delivered = true;\n              scheduleNext(result || []);\n              return result;\n            });\n          });\n        });\n      }).catch(function(error){\n        claim('supabase-path-list:blocked', { path: path, error: error && error.message || String(error) });\n        if (!closed && !delivered) callback([]);\n        scheduleNext([]);\n      });\n    }\n    loadOnce();\n    return function(){\n      closed = true;\n      if (timer) window.clearTimeout(timer);\n    };\n  }\n\n  function failClosed(action){\n    return Promise.reject(new Error('Supabase social adapter not live: ' + action));\n  }\n\n  function mediaBoundary(){\n    return {\n      canonicalMediaBackend: 'wasabi',\n      supabaseStorageProductionAllowed: false,\n      storesOnly: ['metadata', 'wasabi_object_key', 'relationship rows', 'audit rows'],\n      forbidden: ['media binaries', 'service role keys', 'raw private Wasabi URLs']\n    };\n  }\n\n  var api = {\n    version: VERSION,\n    build: BUILD,\n    requiredTables: REQUIRED_TABLES.slice(),\n    launchHeldSurfaces: Object.keys(LAUNCH_HELD_SPACE_SURFACES),\n    mode: 'verified-secure-bridge',\n    mediaBoundary: mediaBoundary,\n    bridgeToken: bridgeToken,\n    session: session,\n    currentUserId: function(){ return sessionState.payload ? currentUserId(sessionState.payload) : ''; },\n    assertConfigured: assertConfigured,\n    read: read,\n    query: read,\n    write: write,\n    upsert: function(table, rows, options){ return write(table, rows, Object.assign({}, options || {}, { upsert: true })); },\n    getPath: getPath,\n    writePath: writePath,\n    addPath: addPath,\n    listenPath: listenPath,\n    listen: function(table, query, callback){ return failClosed('listen ' + table); },\n    migrateRecord: function(sourcePath, record){ return failClosed('migrate ' + sourcePath); }\n  };\n\n  try {\n    Object.defineProperty(window, 'DSDSupabaseSocialAdapter', {\n      value: api,\n      writable: false,\n      configurable: false\n    });\n  } catch(e) {\n    window.DSDSupabaseSocialAdapter = api;\n  }\n  try {\n    var ownershipChecks = 0;\n    var ownershipTimer = window.setInterval(function(){\n      ownershipChecks += 1;\n      if (!window.DSDSupabaseSocialAdapter || window.DSDSupabaseSocialAdapter.build !== BUILD) {\n        try { delete window.DSDSupabaseSocialAdapter; } catch(e){}\n        try {\n          Object.defineProperty(window, 'DSDSupabaseSocialAdapter', { value: api, writable: false, configurable: false });\n        } catch(e) {\n          window.DSDSupabaseSocialAdapter = api;\n        }\n      }\n      if (ownershipChecks >= 30) window.clearInterval(ownershipTimer);\n    }, 500);\n  } catch(e){}\n  claim('supabase-social-adapter:ready', {\n    mode: api.mode,\n    requiredTables: REQUIRED_TABLES.length,\n    launchHeldSurfaces: api.launchHeldSurfaces,\n    mediaBoundary: mediaBoundary()\n  });\n  try {\n    window.dispatchEvent(new CustomEvent('dsd:supabase-social-adapter:ready', { detail: {\n      version: VERSION,\n      mode: api.mode,\n      requiredTables: REQUIRED_TABLES.length,\n      tokenEndpoint: config() && config().tokenEndpoint || ''\n    }}));\n  } catch(e) {}\n})();\n\r\n\r\n\r\n"],
  "mappings": "CAKC,UAAU,CACT,aACA,IAAI,4BAA8B,6DAC9B,QAAU,0CACV,MAAQ,qDACZ,GAAI,OAAO,0BAA4B,OAAO,yBAAyB,UAAY,SAAW,OAAO,yBAAyB,QAAU,MAAO,OAC/I,IAAI,gBAAkB,CACpB,YAAY,WAAW,kBAAkB,QAAQ,aAAa,UAAU,cAAc,WAAW,YACjG,QAAQ,YAAY,UAAU,gBAAgB,uBAAuB,WAAW,sBAChF,gBAAgB,iBAAiB,mBAAmB,mBAAmB,gBAAgB,oBACvF,qBAAqB,YACrB,mBAAmB,iBAAiB,mBAAmB,WAAW,iBAAiB,eACnF,iBAAiB,gBAAgB,eAAe,kBAClD,EACI,2BAA6B,4HAC7B,4BAA8B,iNAC9B,sBAAwB,CAAE,gBAAiB,GAAO,sBAAuB,GAAO,aAAc,EAAM,EACpG,2BAA6B,CAC/B,UAAW,GACX,WAAY,GACZ,SAAU,EACZ,EACI,yBAA2B,CAC7B,UAAW,GACX,iBAAkB,GAClB,eAAgB,GAChB,iBAAkB,GAClB,SAAU,GACV,eAAgB,GAChB,aAAc,GACd,eAAgB,EAClB,EAEA,SAAS,MAAM,QAAS,KAAK,CAC3B,GAAI,CACE,OAAO,aAAe,OAAO,OAAO,YAAY,OAAU,YAC5D,OAAO,YAAY,MAAM,QAAS,wBAAyB,OAAO,OAAO,CAAE,QAAS,OAAQ,EAAG,MAAQ,CAAC,CAAC,CAAC,CAE9G,OAAQ,EAAG,CAAC,CACd,CAEA,SAAS,QAAQ,CACf,OAAO,OAAO,mBAAqB,IACrC,CAEA,SAAS,sBAAsB,KAAK,CAClC,IAAI,EAAI,UAAU,IAAI,EACtB,MAAO,CAAC,EAAE,GAAK,2BAA2B,EAAE,CAAC,CAAC,EAChD,CAEA,SAAS,uBAAuB,MAAM,CACpC,MAAO,CAAC,CAAC,yBAAyB,OAAO,OAAS,EAAE,EAAE,KAAK,CAAC,CAC9D,CAEA,SAAS,oBAAoB,MAAM,CACjC,aAAM,uCAAwC,CAAE,MAAO,MAAO,MAAO,KAAM,CAAC,EACrE,QAAQ,QAAQ,CAAC,CAAC,CAC3B,CAEA,SAAS,0BAA0B,MAAM,CACvC,aAAM,wCAAyC,CAAE,MAAO,MAAO,MAAO,KAAM,CAAC,EACtE,QAAQ,OAAO,IAAI,MAAM,kDAAoD,KAAK,CAAC,CAC5F,CAEA,SAAS,wBAAwB,KAAK,CACpC,aAAM,gCAAiC,CAAE,KAAM,KAAM,MAAO,KAAM,CAAC,EAC5D,QAAQ,QAAQ,CACrB,GAAI,UAAU,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,GAAK,GACpC,OAAQ,UAAU,CAAE,MAAO,EAAO,EAClC,KAAM,UAAU,CAAE,OAAO,IAAM,CACjC,CAAC,CACH,CAEA,SAAS,qBAAqB,KAAK,CACjC,aAAM,kCAAmC,CAAE,KAAM,KAAM,MAAO,KAAM,CAAC,EAC9D,QAAQ,OAAO,IAAI,MAAM,4CAA8C,IAAI,CAAC,CACrF,CAEA,IAAI,aAAe,CACjB,QAAS,KACT,QAAS,KACT,SAAU,CACZ,EAEA,SAAS,oBAAoB,IAAI,CAC/B,GAAK,IACL,KAAI,MAAQ,OAAO,KAAO,EAAE,EAC5B,GAAI,cAAc,KAAK,KAAK,GAAK,oBAAoB,KAAK,KAAK,EAC7D,MAAM,IAAI,MAAM,qCAAqC,EAEzD,CAEA,SAAS,kBAAkB,CACzB,IAAI,IAAM,OAAO,EACjB,GAAI,CAAC,KAAO,CAAC,IAAI,KAAO,CAAC,IAAI,cAC3B,MAAM,IAAI,MAAM,8DAA8D,EAEhF,GAAI,CAAC,2CAA2C,KAAK,OAAO,IAAI,KAAO,EAAE,CAAC,EACxE,MAAM,IAAI,MAAM,iDAAiD,EAEnE,2BAAoB,IAAI,OAAO,EACxB,GACT,CAEA,SAAS,iBAAiB,CACxB,IAAI,SAAW,OAAO,oBAAsB,CAAC,EAC7C,MAAO,CACL,cAAe,SAAS,gBAAkB,GAC1C,WAAY,SAAS,YAAc,SAAS,QAAU,GACtD,UAAW,SAAS,YAAc,GAClC,YAAa,SAAS,cAAgB,GACtC,WAAY,SAAS,YAAc,IACrC,CACF,CACA,SAAS,aAAa,CACpB,IAAI,SAAW,OAAO,oBAAsB,CAAC,EAC7C,MAAO,CAAC,EAAE,WAAa,SAAS,gBAAkB,IAAQ,SAAS,YAAc,SAAS,QAC5F,CAEA,SAAS,YAAY,QAAQ,CAC3B,IAAI,IAAM,iBAAiB,EAC3B,GAAI,SAAW,QAAQ,aAAe,IAAQ,IAAI,QAChD,2BAAoB,IAAI,OAAO,EACxB,QAAQ,QAAQ,CACrB,YAAa,IAAI,QACjB,gBAAiB,IAAI,QACrB,WAAY,GACZ,eAAgB,GAChB,WAAY,EACd,CAAC,EAEH,IAAI,YAAc,OAAO,OAAO,CAC9B,OAAQ,SAAW,QAAQ,aAAe,GAAO,8BAAgC,0BACjF,YAAa,4BACf,EAAG,gBAAgB,EAAG,SAAW,QAAQ,MAAQ,CAAC,CAAC,EACnD,OAAI,SAAW,QAAQ,aAAe,KACpC,YAAY,WAAa,GACzB,YAAY,SAAW,GACvB,YAAY,QAAU,YAAY,SAAW,iBAExC,MAAM,IAAI,cAAe,CAC9B,OAAQ,OACR,YAAa,UACb,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,WAAW,CAClC,CAAC,EAAE,KAAK,SAAS,IAAI,CACnB,GAAI,CAAC,IAAI,GAAI,MAAM,IAAI,MAAM,2BAA6B,IAAI,MAAM,EACpE,OAAO,IAAI,KAAK,CAClB,CAAC,EAAE,KAAK,SAAS,QAAQ,CACvB,GAAI,CAAC,SAAW,CAAC,QAAQ,YAAa,MAAM,IAAI,MAAM,sCAAsC,EAC5F,oBAAoB,QAAQ,iBAAmB,QAAQ,OAAO,EAC9D,GAAI,CACF,IAAI,MAAQ,OAAO,QAAQ,aAAe,EAAE,EAAE,MAAM,GAAG,EACvD,GAAI,MAAM,QAAU,GAAK,QAAQ,aAAe,GAAM,CAEpD,QADI,cAAgB,MAAM,CAAC,EAAE,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,EAC1D,cAAc,OAAS,GAAG,eAAiB,IAClD,IAAI,UAAY,KAAK,aAAa,EAClC,OAAO,yBAA2B,KAAK,MAAM,SAAS,CACxD,CACF,OAAQ,EAAG,CAAC,CACZ,OAAI,QAAQ,aAAe,IAAQ,QAAQ,aAAe,QAAQ,YAAY,UAAY,KACxF,OAAO,yBAA2B,OAAO,OAAO,CAAC,EAAG,OAAO,0BAA4B,CAAC,EAAG,CAAE,SAAU,GAAM,mBAAoB,8BAA+B,CAAC,GAEnK,aAAa,QAAU,QACvB,aAAa,SAAW,KAAK,IAAI,EAC1B,OACT,CAAC,CACH,CAEA,SAAS,QAAQ,QAAQ,CACvB,IAAI,MAAQ,SAAW,QAAQ,QAAU,GACrC,OAAS,OAAO,SAAW,QAAQ,UAAY,KAAU,GAAI,EAC7D,gBAAkB,SAAW,QAAQ,aAAe,GACxD,MAAI,CAAC,OAAS,aAAa,SAAW,KAAK,IAAI,EAAI,aAAa,SAAW,SACrE,iBAAmB,CAAC,aAAa,QAAQ,YAAmB,QAAQ,QAAQ,aAAa,OAAO,GAElG,CAAC,OAAS,aAAa,SAAW,CAAC,kBACvC,aAAa,QAAU,YAAY,OAAO,EAAE,QAAQ,UAAU,CAAE,aAAa,QAAU,IAAM,CAAC,GACvF,aAAa,QACtB,CAEA,SAAS,YAAY,MAAM,CACzB,GAAI,CAAC,MAAO,MAAO,GACnB,GAAI,OAAO,OAAU,SAAU,OAAO,MAAM,OAAO,CAAC,IAAM,IAAM,MAAM,MAAM,CAAC,EAAI,MACjF,GAAI,iBAAiB,gBAAiB,OAAO,MAAM,SAAS,EAC5D,IAAI,OAAS,IAAI,gBACjB,cAAO,KAAK,KAAK,EAAE,QAAQ,SAAS,IAAI,CACtC,IAAI,MAAQ,MAAM,GAAG,EACM,OAAU,OACjC,MAAM,QAAQ,KAAK,EACrB,MAAM,QAAQ,SAAS,KAAK,CAAE,OAAO,OAAO,IAAK,OAAO,IAAI,CAAC,CAAG,CAAC,EAEjE,OAAO,IAAI,IAAK,OAAO,KAAK,CAAC,EAEjC,CAAC,EACM,OAAO,SAAS,CACzB,CAEA,SAAS,YAAY,MAAM,CACzB,IAAI,KAAO,OAAO,OAAS,EAAE,EAAE,KAAK,EACpC,GAAI,CAAC,oBAAoB,KAAK,IAAI,EAAG,MAAM,IAAI,MAAM,2BAA6B,KAAK,EACvF,GAAI,gBAAgB,QAAQ,IAAI,IAAM,GAAI,MAAM,IAAI,MAAM,wCAA0C,IAAI,EACxG,OAAO,IACT,CAEA,SAAS,SAAS,MAAO,MAAM,CAC7B,IAAI,IAAM,iBAAiB,EACvB,KAAO,OAAO,IAAI,KAAO,EAAE,EAAE,QAAQ,OAAQ,EAAE,EAAI,YAAc,mBAAmB,YAAY,KAAK,CAAC,EACtG,GAAK,YAAY,KAAK,EAC1B,OAAO,GAAK,KAAO,IAAM,GAAK,IAChC,CAEA,SAAS,QAAQ,QAAS,MAAM,CAC9B,IAAI,IAAM,iBAAiB,EACvB,QAAU,UAAY,QAAQ,iBAAmB,QAAQ,UAAY,IAAI,SAAW,GAExF,GADA,oBAAoB,OAAO,EACvB,CAAC,QAAS,MAAM,IAAI,MAAM,uEAAuE,EACrG,OAAO,OAAO,OAAO,CACnB,OAAQ,QACR,cAAe,WAAa,SAAW,QAAQ,aAAe,SAC9D,eAAgB,kBAClB,EAAG,OAAS,CAAC,CAAC,CAChB,CAEA,SAAS,cAAc,IAAI,CACzB,OAAK,IAAI,GAML,IAAI,SAAW,IAAY,KACxB,IAAI,KAAK,EAAE,KAAK,SAAS,KAAK,CAAE,OAAO,KAAO,KAAK,MAAM,IAAI,EAAI,IAAM,CAAC,EANtE,IAAI,KAAK,EAAE,KAAK,SAAS,KAAK,CACnC,IAAI,QAAU,MAAS,yBAA2B,IAAI,OACtD,MAAM,IAAI,MAAM,OAAO,CACzB,CAAC,CAIL,CACA,SAAS,aAAa,IAAK,QAAQ,CACjC,IAAI,UAAY,KACZ,MACJ,OAAO,QAAQ,KAAK,CAClB,MAAM,IAAK,OAAO,EAClB,IAAI,QAAQ,SAAS,EAAG,OAAO,CAC7B,MAAQ,WAAW,UAAU,CAAE,OAAO,IAAI,MAAM,iCAAmC,UAAY,IAAI,CAAC,CAAG,EAAG,SAAS,CACrH,CAAC,CACH,CAAC,EAAE,KAAK,SAAS,SAAS,CACxB,oBAAa,KAAK,EACX,QACT,EAAG,SAAS,MAAM,CAChB,mBAAa,KAAK,EACZ,KACR,CAAC,CACH,CAEA,SAAS,kBAAkB,MAAM,CAC/B,OAAK,MACD,OAAO,OAAU,SAAiB,oBAAoB,KAAK,KAAK,EAChE,iBAAiB,gBAAwB,MAAM,IAAI,QAAQ,EACxD,OAAO,UAAU,eAAe,KAAK,MAAO,QAAQ,GAAK,CAAC,CAAC,MAAM,OAHrD,EAIrB,CAEA,SAAS,KAAK,MAAO,MAAO,QAAQ,CAClC,GAAI,CAAC,kBAAkB,KAAK,EAAG,MAAM,IAAI,MAAM,kDAAoD,KAAK,EACxG,IAAI,EAAI,MACR,OAAI,uBAAuB,KAAK,EAAU,oBAAoB,KAAK,EAC5D,QAAQ,OAAO,EAAE,KAAK,SAAS,QAAQ,CAC5C,SAAS,YAAY,UAAU,CAC7B,OAAO,aAAa,SAAS,MAAO,SAAS,EAAG,CAChD,OAAQ,MACR,YAAa,OACb,QAAS,QAAQ,QAAS,CAAE,OAAQ,kBAAmB,CAAC,CACxD,CAAC,EAAE,KAAK,aAAa,CACvB,CACA,OAAO,YAAY,CAAC,EAAE,MAAM,SAAS,MAAM,CACzC,GAAI,QAAU,mBAAqB,0CAA0C,KAAK,EAChF,OAAO,YAAY,OAAO,OAAO,CAAC,EAAG,GAAK,CAAC,EAAG,CAAE,OAAQ,oBAAoB,CAAE,CAAC,CAAC,EAElF,MAAM,KACR,CAAC,CACH,CAAC,CACH,CACA,SAAS,qBAAqB,CAC5B,IAAI,OAAS,2BACb,OAAI,sBAAsB,kBAAiB,QAAU,0CACjD,sBAAsB,wBAAuB,QAAU,oBACvD,sBAAsB,eAAc,QAAU,IAAM,6BACjD,MACT,CACA,SAAS,yBAAyB,CAChC,MAAO,mPACT,CACA,SAAS,6BAA6B,MAAM,CAC1C,IAAI,QAAU,OAAO,OAAS,MAAM,SAAW,OAAS,EAAE,EAAE,YAAY,EACxE,OAAO,QAAQ,QAAQ,UAAU,IAAM,KAAO,QAAQ,QAAQ,QAAQ,IAAM,IAAM,QAAQ,QAAQ,cAAc,IAAM,IAAM,QAAQ,QAAQ,OAAO,IAAM,GAC3J,CACA,SAAS,mCAAmC,MAAM,CAChD,IAAI,QAAU,OAAO,OAAS,MAAM,SAAW,OAAS,EAAE,EAAE,YAAY,EACxE,OAAO,QAAQ,QAAQ,iBAAiB,IAAM,KAAO,QAAQ,QAAQ,QAAQ,IAAM,IAAM,QAAQ,QAAQ,cAAc,IAAM,IAAM,QAAQ,QAAQ,OAAO,IAAM,GAClK,CACA,SAAS,iCAAiC,MAAM,CAC9C,IAAI,QAAU,OAAO,OAAS,MAAM,SAAW,OAAS,EAAE,EAAE,YAAY,EACxE,OAAI,QAAQ,QAAQ,QAAQ,IAAM,IAAM,QAAQ,QAAQ,cAAc,IAAM,IAAM,QAAQ,QAAQ,OAAO,IAAM,GAAW,GACnH,CACL,iBAAiB,kBAAkB,kBAAkB,gBACrD,aAAa,cAAc,cAAc,cAAc,gBACvD,iBAAiB,kBAAkB,cAAc,cACjD,aAAa,oBACf,EAAE,KAAK,SAAS,OAAO,CAAE,OAAO,QAAQ,QAAQ,MAAM,IAAM,EAAI,CAAC,CACnE,CACA,SAAS,0CAA0C,MAAM,CACvD,IAAI,QAAU,OAAO,OAAS,MAAM,SAAW,OAAS,EAAE,EAAE,YAAY,EACpE,QAAU,GACd,OAAI,6BAA6B,KAAK,GAAK,sBAAsB,kBAC/D,sBAAsB,gBAAkB,GACxC,QAAU,IAER,mCAAmC,KAAK,GAAK,sBAAsB,wBACrE,sBAAsB,sBAAwB,GAC9C,QAAU,IAER,iCAAiC,KAAK,GAAK,sBAAsB,eACnE,sBAAsB,aAAe,GACrC,QAAU,IAER,CAAC,UAAY,sBAAsB,iBAAmB,sBAAsB,uBAAyB,sBAAsB,gBAAkB,QAAQ,QAAQ,iBAAiB,IAAM,IAAM,QAAQ,QAAQ,wBAAwB,IAAM,IAAM,QAAQ,QAAQ,gBAAgB,IAAM,IAAM,QAAQ,QAAQ,gBAAgB,IAAM,IAAM,QAAQ,QAAQ,2BAA2B,IAAM,MACzX,sBAAsB,gBAAkB,GACxC,sBAAsB,sBAAwB,GAC9C,sBAAsB,aAAe,GACrC,QAAU,IAER,SAAS,MAAM,mDAAoD,CAAE,SAAU,sBAAsB,gBAAiB,eAAgB,sBAAsB,sBAAuB,aAAc,sBAAsB,aAAc,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EAClR,OACT,CACA,SAAS,4BAA4B,MAAM,CACzC,GAAI,MAAM,QAAQ,KAAK,EAAG,OAAO,MAAM,IAAI,2BAA2B,EACtE,GAAI,CAAC,OAAS,OAAO,OAAU,SAAU,OAAO,MAChD,IAAI,MAAQ,OAAO,OAAO,CAAC,EAAG,KAAK,EACnC,cAAO,MAAM,SACb,OAAO,MAAM,cACb,OAAO,MAAM,eACb,OAAO,MAAM,gBACN,KACT,CAEA,SAAS,MAAM,MAAO,KAAM,QAAQ,CAClC,IAAI,KAAO,SAAW,CAAC,EACnB,OAAS,KAAK,SAAW,KAAK,MAAQ,QAAU,QAChD,MAAQ,KAAK,OAAS,KAAK,OAAS,GACxC,GAAI,uBAAuB,KAAK,EAAG,OAAO,0BAA0B,KAAK,EACzE,SAAS,QAAQ,QAAS,SAAS,CACjC,OAAO,aAAa,SAAS,MAAO,KAAK,EAAG,CAC1C,OAAQ,OACR,YAAa,OACb,QAAS,QAAQ,QAAS,CACxB,OAAQ,KAAK,SAAW,KAAK,OAAS,oDAAsD,wBAC9F,CAAC,EACD,KAAM,KAAK,UAAU,QAAQ,CAC/B,CAAC,EAAE,KAAK,aAAa,CACvB,CACA,OAAO,QAAQ,IAAI,EAAE,KAAK,SAAS,QAAQ,CACzC,OAAO,QAAQ,QAAS,IAAI,EAAE,MAAM,SAAS,MAAM,CACjD,IAAK,QAAU,YAAc,QAAU,qBAAuB,6BAA6B,KAAK,GAAK,mCAAmC,KAAK,GAAK,iCAAiC,KAAK,GACtL,OAAI,6BAA6B,KAAK,IAAG,sBAAsB,gBAAkB,IAC7E,mCAAmC,KAAK,IAAG,sBAAsB,sBAAwB,IACzF,iCAAiC,KAAK,IAAG,sBAAsB,aAAe,IAClF,MAAM,4CAA6C,CAAE,MAAO,MAAO,SAAU,sBAAsB,gBAAiB,eAAgB,sBAAsB,sBAAuB,aAAc,sBAAsB,aAAc,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EAC5Q,QAAQ,QAAS,4BAA4B,IAAI,CAAC,EAE3D,MAAM,KACR,CAAC,CACH,CAAC,CACH,CAEA,SAAS,OAAO,MAAO,MAAO,QAAQ,CACpC,IAAI,KAAO,SAAW,CAAC,EACvB,OAAI,uBAAuB,KAAK,EAAU,0BAA0B,KAAK,EAClE,QAAQ,IAAI,EAAE,KAAK,SAAS,QAAQ,CACzC,OAAO,aAAa,SAAS,MAAO,KAAK,EAAG,CAC1C,OAAQ,SACR,YAAa,OACb,QAAS,QAAQ,QAAS,CAAE,OAAQ,KAAK,QAAU,gBAAiB,CAAC,CACvE,CAAC,EAAE,KAAK,aAAa,CACvB,CAAC,CACH,CACA,SAAS,sBAAsB,QAAS,QAAS,QAAQ,CACvD,QAAU,SAAW,CAAC,EACtB,SAAS,kBAAkB,OAAO,CAChC,GAAI,CAAC,OAAQ,MAAO,CAAC,EACrB,IAAI,KAAO,CAAC,EACZ,SAAS,IAAI,MAAM,CACjB,MAAQ,MAAM,KAAK,EACf,OAAS,KAAK,QAAQ,KAAK,IAAM,IAAI,KAAK,KAAK,KAAK,CAC1D,CACA,OAAI,UAAY,SACd,IAAI,OAAO,OAAO,EAClB,IAAI,OAAO,eAAe,EAC1B,IAAI,OAAO,EAAE,GACJ,UAAY,WACrB,IAAI,OAAO,SAAS,EACpB,IAAI,OAAO,iBAAiB,EAC5B,IAAI,OAAO,EAAE,IAEb,IAAI,OAAO,MAAM,EACjB,IAAI,OAAO,cAAc,EACzB,IAAI,OAAO,EAAE,GAER,IACT,CACA,IAAI,IAAM,CAAC,EACX,QAAQ,QAAQ,SAAS,OAAO,CAC9B,kBAAkB,MAAM,EAAE,QAAQ,SAAS,IAAI,CACzC,IAAI,QAAQ,GAAG,IAAM,IAAI,IAAI,KAAK,GAAG,CAC3C,CAAC,CACH,CAAC,EACD,IAAI,OAAS,SAAS,GAAG,EACzB,GAAI,CAAC,QAAQ,QAAU,CAAC,OAAQ,OAAO,QAAQ,QAAQ,OAAO,EAC9D,IAAI,MAAQ,CAAE,OAAQ,2BAA4B,QAAS,MAAQ,QAAS,WAAY,OAAQ,OAAQ,yBAA0B,MAAO,iBAAkB,MAAO,GAAI,EACtK,OAAI,SAAW,QAAQ,aAAe,IAAQ,QAAQ,sBAAwB,KAC5E,MAAM,WAAa,aAEd,KAAK,gBAAiB,MAAO,OAAO,EAAE,KAAK,SAAS,KAAK,CAC9D,IAAI,QAAU,CAAC,EACf,OAAC,MAAQ,CAAC,GAAG,QAAQ,SAAS,IAAI,CAChC,IAAI,IAAM,IAAI,YAAc,GACvB,MACL,QAAQ,GAAG,EAAI,QAAQ,GAAG,GAAK,CAAC,EAChC,QAAQ,GAAG,EAAE,KAAK,eAAe,gBAAiB,GAAG,CAAC,EACxD,CAAC,EACM,QAAQ,IAAI,SAAS,OAAO,CACjC,IAAI,MAAQ,CAAC,EACb,kBAAkB,MAAM,EAAE,QAAQ,SAAS,IAAI,CACxC,QAAQ,GAAG,IAChB,MAAQ,MAAM,OAAO,QAAQ,GAAG,CAAC,EACnC,CAAC,EACD,IAAI,KAAO,CAAC,EACZ,aAAQ,MAAM,OAAO,SAAS,KAAK,CACjC,IAAI,GAAK,OAAS,KAAK,IAAM,KAAK,SAAW,KAAK,iBAAmB,KAAK,gBAAkB,GAC5F,MAAI,CAAC,IAAM,KAAK,EAAE,EAAU,IAC5B,KAAK,EAAE,EAAI,GACJ,GACT,CAAC,EACM,MAAM,OAAS,OAAO,OAAO,CAAC,EAAG,OAAQ,CAAE,MAAO,MAAO,UAAW,MAAM,CAAC,GAAK,MAAM,CAAC,EAAE,MAAQ,OAAO,WAAa,OAAQ,CAAC,EAAI,MAC3I,CAAC,CACH,CAAC,EAAE,MAAM,SAAS,MAAM,CACtB,aAAM,iCAAkC,CAAE,QAAS,QAAS,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EACrG,OACT,CAAC,CACH,CACA,SAAS,kBAAkB,UAAU,CACnC,IAAI,KAAO,KAAK,MAAM,WAAa,EAAE,EACrC,OAAK,OAAO,SAAS,IAAI,IAAG,KAAO,KAAK,IAAI,GACrC,IAAI,KAAK,KAAO,KAAU,GAAK,GAAI,EAAE,YAAY,CAC1D,CACA,SAAS,qBAAqB,QAAQ,CACpC,IAAI,MAAQ,OAAO,SAAW,EAAE,EAAE,MAAM,mBAAmB,EACvD,OAAS,MAAQ,OAAO,MAAM,CAAC,CAAC,EAAI,EACxC,OAAO,OAAO,SAAS,MAAM,GAAK,OAAS,EAAI,IAAI,KAAK,MAAM,EAAE,YAAY,EAAI,EAClF,CACA,SAAS,yBAAyB,CAChC,OAAO,IAAI,KAAK,KAAK,IAAI,EAAI,KAAU,GAAK,GAAI,EAAE,YAAY,CAChE,CACA,SAAS,wBAAwB,IAAI,CACnC,IAAI,QAAU,MAAM,KAAO,IAAI,YAAc,EAAE,EAC/C,GAAI,CAAC,QAAS,OAAO,KACrB,IAAI,OAAS,gBAAgB,IAAI,gBAAkB,UAAU,EACzD,KAAO,cAAc,IAAI,aAAe,MAAM,EAC9C,UAAY,qBAAqB,OAAO,EAC5C,GAAI,CAAC,UAAW,OAAO,KACvB,IAAI,UAAY,kBAAkB,SAAS,EAC3C,OAAI,KAAK,MAAM,WAAa,EAAE,GAAK,KAAK,IAAI,EAAU,KAC/C,CACL,GAAI,QACJ,gBAAiB,QACjB,cAAe,GACf,kBAAmB,MAAM,IAAI,mBAAqB,EAAE,EACpD,mBAAoB,MAAM,IAAI,mBAAqB,OAAO,EAC1D,KAAM,GACN,WAAY,SACZ,eAAgB,OAChB,YAAa,KACb,OAAQ,WACR,iBAAkB,WAClB,WAAY,EACZ,YAAa,EACb,mBAAoB,EACpB,YAAa,mBAAmB,SAAU,OAAQ,IAAI,EACtD,WAAY,UACZ,WAAY,IAAI,YAAc,UAC9B,WAAY,SACd,CACF,CACA,SAAS,uBAAuB,KAAM,QAAQ,CAC5C,YAAO,MAAQ,CAAC,EAChB,MAAM,4CAA6C,CAAE,OAAQ,iFAAkF,MAAO,KAAM,CAAC,EACtJ,QAAQ,QAAQ,IAAI,CAC7B,CACA,SAAS,2BAA2B,QAAS,QAAS,KAAM,QAAQ,CAClE,QAAU,SAAW,CAAC,EACtB,KAAO,MAAQ,CAAC,EAChB,IAAI,cAAgB,UAAY,QAAU,cAAgB,aACtD,QAAU,UAAY,QAAU,WAAa,UACjD,SAAS,OAAO,IAAK,MAAO,IAAI,CAC9B,MAAQ,MAAM,KAAK,EACf,OAAS,KAAO,CAAC,IAAI,KAAK,IAAG,IAAI,KAAK,EAAI,IAChD,CACA,SAAS,cAAc,OAAO,CAC5B,IAAI,KAAO,CAAC,EACZ,SAAS,IAAI,MAAM,CACjB,MAAQ,MAAM,KAAK,EACf,OAAS,KAAK,QAAQ,KAAK,IAAM,IAAI,KAAK,KAAK,KAAK,CAC1D,CACA,OAAI,UAAY,SACd,IAAI,QAAU,OAAO,eAAe,EACpC,IAAI,QAAU,OAAO,iBAAiB,EACtC,IAAI,QAAU,OAAO,OAAO,EAC5B,IAAI,QAAU,OAAO,aAAa,EAClC,IAAI,QAAU,OAAO,eAAe,EACpC,IAAI,QAAU,OAAO,EAAE,IAEvB,IAAI,QAAU,OAAO,cAAc,EACnC,IAAI,QAAU,OAAO,gBAAgB,EACrC,IAAI,QAAU,OAAO,MAAM,EAC3B,IAAI,QAAU,OAAO,YAAY,EACjC,IAAI,QAAU,OAAO,cAAc,EACnC,IAAI,QAAU,OAAO,EAAE,GAElB,IACT,CACA,SAAS,WAAW,CAClB,IAAI,IAAM,CAAC,EACX,YAAK,QAAQ,SAAS,IAAI,CACnB,MACD,UAAY,SACd,OAAO,IAAK,IAAI,GAAI,GAAG,EACvB,OAAO,IAAK,IAAI,gBAAiB,GAAG,EACpC,OAAO,IAAK,IAAI,QAAS,GAAG,EAC5B,OAAO,IAAK,IAAI,SAAU,GAAG,IAE7B,OAAO,IAAK,IAAI,GAAI,GAAG,EACvB,OAAO,IAAK,IAAI,eAAgB,GAAG,EACnC,OAAO,IAAK,IAAI,OAAQ,GAAG,EAC3B,OAAO,IAAK,IAAI,QAAS,GAAG,GAEhC,CAAC,EACM,GACT,CACA,IAAI,YAAc,KAAK,IAAI,SAAS,IAAI,CAAE,OAAO,KAAO,IAAI,EAAI,CAAC,EAAE,OAAO,OAAO,EAC7E,eAAiB,SAAS,WAAW,EACzC,GAAI,CAAC,QAAQ,QAAU,CAAC,eAAgB,OAAO,sBAAsB,QAAS,QAAS,OAAO,EAC9F,IAAI,cAAgB,CAAE,OAAQ,QAAU,uBAAwB,MAAO,iBAAkB,MAAO,GAAI,EACpG,qBAAc,OAAO,EAAI,eAClB,KAAK,cAAe,cAAe,OAAO,EAAE,KAAK,SAAS,UAAU,CACzE,IAAI,UAAY,WAAa,CAAC,GAAG,IAAI,SAAS,IAAI,CAAE,OAAO,IAAI,QAAU,CAAC,EAAE,OAAO,OAAO,EACtF,YAAc,SAAS,QAAQ,EACnC,GAAI,CAAC,YACH,aAAM,gDAAiD,CACrD,QAAS,QACT,OAAQ,+GACV,CAAC,EACM,QAET,IAAI,WAAa,CAAE,OAAQ,2BAA4B,GAAI,YAAa,OAAQ,yBAA0B,MAAO,GAAI,EACrH,OAAI,SAAW,QAAQ,aAAe,IAAQ,QAAQ,sBAAwB,KAC5E,WAAW,WAAa,aAEnB,KAAK,gBAAiB,WAAY,OAAO,EAAE,KAAK,SAAS,UAAU,CACxE,IAAI,UAAY,CAAC,GAChB,WAAa,CAAC,GAAG,QAAQ,SAAS,IAAI,CAAE,UAAU,IAAI,EAAE,EAAI,eAAe,gBAAiB,GAAG,CAAG,CAAC,EACpG,IAAI,QAAU,CAAC,GACd,WAAa,CAAC,GAAG,QAAQ,SAAS,IAAI,CACrC,IAAI,MAAQ,UAAU,IAAI,QAAQ,EAC7B,QACL,QAAQ,IAAI,OAAO,CAAC,EAAI,QAAQ,IAAI,OAAO,CAAC,GAAK,CAAC,EAClD,QAAQ,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,EAClC,CAAC,EACD,IAAI,SAAW,UAAU,EACrB,SAAW,QAAQ,IAAI,SAAS,OAAO,CACzC,IAAI,UAAY,KAChB,cAAc,MAAM,EAAE,KAAK,SAAS,IAAI,CACtC,iBAAY,SAAS,GAAG,GAAK,KACtB,CAAC,CAAC,SACX,CAAC,EACD,IAAI,WAAa,WAAa,UAAU,IAAM,GAC1C,MAAQ,QAAQ,UAAU,GAAK,CAAC,EACpC,OAAO,MAAM,OAAS,OAAO,OAAO,CAAC,EAAG,OAAQ,CAAE,MAAO,MAAO,UAAW,MAAM,CAAC,GAAK,MAAM,CAAC,EAAE,MAAQ,OAAO,WAAa,OAAQ,CAAC,EAAI,MAC3I,CAAC,EACD,aAAM,gDAAiD,CACrD,QAAS,QACT,OAAQ,iGACV,CAAC,EACM,QACT,CAAC,CACH,CAAC,EAAE,MAAM,SAAS,MAAM,CACtB,aAAM,sCAAuC,CAAE,QAAS,QAAS,cAAe,cAAe,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EACxI,sBAAsB,QAAS,QAAS,OAAO,CACxD,CAAC,CACH,CACA,SAAS,YAAY,MAAO,KAAM,QAAQ,CACxC,IAAI,OAAS,MAAQ,CAAC,GAAG,IAAI,SAAS,IAAI,CAAE,MAAO,CAAE,IAAK,IAAK,OAAQ,eAAe,MAAO,GAAG,CAAE,CAAG,CAAC,EAAE,OAAO,SAAS,KAAK,CAAE,MAAO,CAAC,CAAC,KAAK,MAAQ,CAAC,EAClJ,QAAU,MAAM,IAAI,SAAS,KAAK,CAAE,OAAO,KAAK,MAAQ,CAAC,EACzD,WAAa,MAAM,IAAI,SAAS,KAAK,CAAE,OAAO,KAAK,GAAK,CAAC,EAC7D,OAAI,QAAU,QACL,2BAA2B,QAAS,OAAQ,WAAY,OAAO,EAEpE,QAAU,UACL,2BAA2B,QAAS,QAAS,WAAY,OAAO,EAErE,QAAU,WAAmB,sBAAsB,QAAS,UAAW,OAAO,EAC9E,QAAU,WAAmB,0BAA0B,QAAS,MAAQ,CAAC,EAAG,OAAO,EAChF,QAAQ,QAAQ,OAAO,CAChC,CACA,SAAS,0BAA0B,QAAS,KAAM,QAAQ,CACxD,QAAU,SAAW,CAAC,EACtB,KAAO,MAAQ,CAAC,EAChB,SAAS,kBAAkB,OAAQ,IAAI,CACrC,IAAI,KAAO,CAAC,EACZ,SAAS,IAAI,MAAM,CACjB,MAAQ,MAAM,KAAK,EACf,OAAS,KAAK,QAAQ,KAAK,IAAM,IAAI,KAAK,KAAK,KAAK,CAC1D,CACA,WAAI,KAAO,IAAI,EAAE,EACjB,IAAI,KAAO,IAAI,iBAAiB,EAChC,IAAI,QAAU,OAAO,iBAAiB,EACtC,IAAI,QAAU,OAAO,SAAS,EAC9B,IAAI,QAAU,OAAO,EAAE,EAChB,IACT,CACA,IAAI,WAAa,CAAC,EAClB,KAAK,QAAQ,SAAS,IAAK,MAAM,CAC/B,kBAAkB,QAAQ,KAAK,EAAG,GAAG,EAAE,QAAQ,SAAS,MAAM,CACxD,WAAW,QAAQ,KAAK,IAAM,IAAI,WAAW,KAAK,KAAK,CAC7D,CAAC,CACH,CAAC,EACD,IAAI,cAAgB,SAAS,UAAU,EACvC,GAAI,CAAC,QAAQ,QAAU,CAAC,cAAe,OAAO,QAAQ,QAAQ,OAAO,EACrE,SAAS,mBAAmB,QAAQ,CAClC,OAAO,QAAQ,IAAI,SAAS,OAAQ,MAAM,CACxC,IAAI,MAAQ,CAAC,EACb,kBAAkB,OAAQ,KAAK,KAAK,CAAC,EAAE,QAAQ,SAAS,IAAI,CACtD,QAAQ,GAAG,IAAG,MAAQ,MAAM,OAAO,QAAQ,GAAG,CAAC,EACrD,CAAC,EACD,IAAI,KAAO,CAAC,EACZ,aAAQ,MAAM,OAAO,SAAS,KAAK,CACjC,IAAI,GAAK,OAAS,KAAK,IAAM,KAAK,SAAW,KAAK,iBAAmB,KAAK,gBAAkB,GAC5F,MAAI,CAAC,IAAM,KAAK,EAAE,EAAU,IAC5B,KAAK,EAAE,EAAI,GACJ,GACT,CAAC,EACM,MAAM,OAAS,OAAO,OAAO,CAAC,EAAG,OAAQ,CAAE,MAAO,MAAO,YAAa,MAAO,UAAW,MAAM,CAAC,GAAK,MAAM,CAAC,EAAE,MAAQ,OAAQ,CAAC,EAAI,MAC3I,CAAC,CACH,CACA,SAAS,2BAA2B,YAAY,CAC9C,IAAI,WAAa,CAAC,EAClB,KAAK,QAAQ,SAAS,IAAK,MAAM,CAC/B,kBAAkB,YAAY,KAAK,GAAK,QAAQ,KAAK,EAAG,GAAG,EAAE,QAAQ,SAAS,IAAI,CAC5E,WAAW,QAAQ,GAAG,IAAM,IAAI,WAAW,KAAK,GAAG,CACzD,CAAC,CACH,CAAC,EACD,IAAI,cAAgB,SAAS,UAAU,EACvC,OAAK,cACE,KAAK,gBAAiB,CAAE,OAAQ,2BAA4B,QAAS,aAAc,WAAY,cAAe,OAAQ,yBAA0B,MAAO,GAAI,EAAG,OAAO,EAAE,KAAK,SAAS,UAAU,CACpM,IAAI,QAAU,CAAC,EACf,OAAC,WAAa,CAAC,GAAG,QAAQ,SAAS,IAAI,CACrC,GAAI,GAAC,KAAO,IAAI,YAAc,IAAI,WAAa,IAAI,aACnD,KAAI,IAAM,IAAI,YAAc,GACvB,MACL,QAAQ,GAAG,EAAI,QAAQ,GAAG,GAAK,CAAC,EAChC,QAAQ,GAAG,EAAE,KAAK,OAAO,OAAO,CAAC,EAAG,eAAe,gBAAiB,GAAG,EAAG,CACxE,eAAgB,GAChB,UAAW,IACX,qBAAsB,IAAI,YAAc,UACxC,0BAA2B,IAAI,kBAAoB,WACnD,iBAAkB,+BACpB,CAAC,CAAC,GACJ,CAAC,EACM,mBAAmB,OAAO,EAAE,IAAI,SAAS,OAAQ,MAAM,CAC5D,OAAQ,YAAY,KAAK,IAAM,YAAY,KAAK,EAAE,OAAS,YAAY,KAAK,EAAE,aAAe,CAAC,GAAG,OAAU,YAAY,KAAK,EAAI,MAClI,CAAC,CACH,CAAC,EAnB0B,WAoB7B,CACA,OAAO,KAAK,sBAAuB,CAAE,OAAQ,gHAAiH,WAAY,cAAe,MAAO,GAAI,EAAG,OAAO,EAAE,KAAK,SAAS,YAAY,CACxO,aAAe,aAAe,CAAC,GAAG,OAAO,SAAS,IAAI,CAAE,OAAO,KAAO,CAAC,IAAI,UAAY,CAAC,EACxF,IAAI,SAAW,YAAY,IAAI,SAAS,IAAI,CAAE,OAAO,IAAI,QAAU,CAAC,EAAE,OAAO,OAAO,EAChF,YAAc,SAAS,QAAQ,EACnC,OAAK,YACE,KAAK,gBAAiB,CAAE,OAAQ,2BAA4B,GAAI,YAAa,OAAQ,yBAA0B,MAAO,GAAI,EAAG,OAAO,EAAE,KAAK,SAAS,UAAU,CACnK,IAAI,UAAY,CAAC,GAChB,WAAa,CAAC,GAAG,QAAQ,SAAS,IAAI,CAAE,UAAU,IAAI,EAAE,EAAI,eAAe,gBAAiB,GAAG,CAAG,CAAC,EACpG,IAAI,QAAU,CAAC,EACf,mBAAY,QAAQ,SAAS,IAAI,CAC/B,IAAI,MAAQ,UAAU,IAAI,QAAQ,EAClC,GAAK,MACL,KAAI,IAAM,IAAI,YAAc,GAC5B,QAAQ,GAAG,EAAI,QAAQ,GAAG,GAAK,CAAC,EAChC,QAAQ,GAAG,EAAE,KAAK,OAAO,OAAO,CAAC,EAAG,MAAO,CACzC,eAAgB,IAAI,iBAAmB,GACvC,UAAW,IAAI,YAAc,GAC7B,qBAAsB,IAAI,YAAc,UACxC,0BAA2B,IAAI,kBAAoB,UACrD,CAAC,CAAC,EACJ,CAAC,EACM,2BAA2B,mBAAmB,OAAO,CAAC,CAC/D,CAAC,EAlBwB,2BAA2B,OAAO,CAmB7D,CAAC,EAAE,MAAM,SAAS,MAAM,CACtB,aAAM,uCAAwC,CAAE,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EACzF,2BAA2B,OAAO,EAAE,MAAM,UAAU,CAAE,OAAO,OAAS,CAAC,CAChF,CAAC,CACH,CACA,SAAS,wBAAwB,KAAM,QAAQ,CAC7C,KAAO,MAAQ,CAAC,EAChB,IAAI,IAAM,CAAC,EACX,KAAK,QAAQ,SAAS,IAAI,CACpB,KAAO,OAAO,IAAI,eAAe,GAAG,IAAI,KAAK,IAAI,eAAe,EAChE,KAAO,OAAO,IAAI,eAAe,GAAG,IAAI,KAAK,IAAI,eAAe,EAChE,KAAO,OAAO,IAAI,eAAe,GAAG,IAAI,KAAK,IAAI,eAAe,CACtE,CAAC,EACD,IAAI,OAAS,SAAS,GAAG,EACzB,OAAK,OACE,KAAK,gBAAiB,CAAE,OAAQ,uCAAwC,GAAI,OAAQ,OAAQ,yBAA0B,MAAO,GAAI,EAAG,OAAO,EAAE,KAAK,SAAS,UAAU,CAC1K,IAAI,KAAO,CAAC,EACZ,OAAC,WAAa,CAAC,GAAG,QAAQ,SAAS,IAAI,CAAM,KAAO,IAAI,KAAI,KAAK,IAAI,EAAE,EAAI,IAAI,iBAAmB,IAAI,mBAAqB,GAAI,CAAC,EACzH,KAAK,IAAI,SAAS,IAAI,CAC3B,GAAI,CAAC,IAAK,OAAO,IACjB,IAAI,eAAiB,CAAC,OAAO,IAAI,eAAe,GAAK,CAAC,CAAC,KAAK,IAAI,eAAe,EAC3E,eAAiB,CAAC,OAAO,IAAI,eAAe,GAAK,CAAC,CAAC,KAAK,IAAI,eAAe,EAC3E,eAAiB,CAAC,OAAO,IAAI,eAAe,GAAK,CAAC,CAAC,KAAK,IAAI,eAAe,EAC/E,OAAO,OAAO,OAAO,CAAC,EAAG,IAAK,CAC5B,gBAAiB,eAAiB,IAAI,gBAAkB,GACxD,gBAAiB,eAAiB,IAAI,gBAAkB,GACxD,gBAAiB,eAAiB,IAAI,gBAAkB,GACxD,uBAAwB,eAAiB,GAAK,IAAI,gBAClD,uBAAwB,eAAiB,GAAK,IAAI,gBAClD,uBAAwB,eAAiB,GAAK,IAAI,gBAClD,uBAAwB,KAAK,IAAI,eAAe,GAAK,GACrD,uBAAwB,KAAK,IAAI,eAAe,GAAK,GACrD,uBAAwB,KAAK,IAAI,eAAe,GAAK,EACvD,CAAC,CACH,CAAC,CACH,CAAC,EAAE,MAAM,SAAS,MAAM,CACtB,aAAM,qCAAsC,CAAE,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EACvF,IACT,CAAC,EAxBmB,QAAQ,QAAQ,IAAI,CAyB1C,CACA,SAAS,mCAAmC,KAAM,QAAQ,CACxD,KAAO,MAAQ,CAAC,EAChB,IAAI,KAAO,KAAK,IAAI,SAAS,IAAI,CAAE,OAAO,MAAM,MAAQ,IAAI,aAAe,IAAI,OAAO,CAAG,CAAC,EAAE,OAAO,OAAO,EACtG,OAAS,SAAS,IAAI,EAC1B,OAAK,OACE,KAAK,WAAY,CAAE,OAAQ,wBAAwB,EAAG,YAAa,OAAQ,MAAO,GAAI,EAAG,OAAO,EAAE,MAAM,SAAS,MAAM,CAC5H,GAAI,mCAAmC,KAAK,GAAK,sBAAsB,sBACrE,6BAAsB,sBAAwB,GAC9C,MAAM,uDAAwD,CAAE,eAAgB,GAAO,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EAChI,KAAK,WAAY,CAAE,OAAQ,wBAAwB,EAAG,YAAa,OAAQ,MAAO,GAAI,EAAG,OAAO,EAEzG,MAAM,KACR,CAAC,EAAE,KAAK,SAAS,YAAY,CAC3B,IAAI,MAAQ,CAAC,EACb,OAAC,aAAe,CAAC,GAAG,QAAQ,SAAS,IAAI,CAAM,KAAO,IAAI,cAAa,MAAM,IAAI,WAAW,EAAI,IAAK,CAAC,EAC/F,KAAK,IAAI,SAAS,IAAI,CAC3B,IAAI,QAAU,KAAO,MAAM,IAAI,aAAe,IAAI,QAAU,EAAE,EAC9D,GAAI,CAAC,KAAO,CAAC,QAAS,OAAO,IAC7B,IAAI,QAAU,QAAQ,aAAe,UAAY,QAAQ,aAAe,IAAS,QAAQ,gBAAkB,UAAY,QAAQ,iBAAmB,IAAQ,QAAQ,mBAAqB,WACvL,OAAO,OAAO,OAAO,CAAC,EAAG,IAAK,CAC5B,QAAS,IAAI,SAAW,QAAQ,SAAW,GAC3C,WAAY,QACZ,OAAQ,QAAU,IAAI,OAAS,SAC/B,8BAA+B,QAAQ,YAAc,SACrD,kCAAmC,QAAQ,gBAAkB,WAC7D,+BAAgC,QAAQ,aAAe,OACvD,UAAW,IAAI,WAAa,QAAQ,WAAa,GACjD,aAAc,IAAI,eAAiB,IAAQ,QAAQ,eAAiB,GACpE,sBAAuB,IAAI,wBAA0B,IAAQ,QAAQ,wBAA0B,GAC/F,gBAAiB,IAAI,iBAAmB,QAAQ,iBAAmB,GACnE,gBAAiB,IAAI,iBAAmB,QAAQ,iBAAmB,GACnE,yBAA0B,IAAI,0BAA4B,QAAQ,0BAA4B,GAC9F,yBAA0B,IAAI,0BAA4B,QAAQ,0BAA4B,GAC9F,gBAAiB,IAAI,iBAAmB,QAAQ,iBAAmB,EACrE,CAAC,CACH,CAAC,CACH,CAAC,EAAE,MAAM,SAAS,MAAM,CACtB,aAAM,iDAAkD,CAAE,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EACnG,IACT,CAAC,EAnCmB,QAAQ,QAAQ,IAAI,CAoC1C,CACA,SAAS,8BAA8B,KAAM,QAAQ,CACnD,OAAO,mCAAmC,MAAQ,CAAC,EAAG,OAAO,EAAE,KAAK,SAAS,aAAa,CACxF,OAAO,wBAAwB,cAAgB,CAAC,EAAG,OAAO,CAC5D,CAAC,CACH,CACA,SAAS,uBAAuB,MAAO,QAAS,KAAM,QAAQ,CAC5D,IAAI,MAAS,MAAQ,MAAM,QAAQ,KAAK,KAAK,EAAK,KAAK,MAAQ,CAAC,EAChE,GAAI,CAAC,SAAW,EAAE,QAAU,SAAW,QAAU,WAAa,QAAU,aAAe,CAAC,MAAM,OAAQ,OAAO,QAAQ,QAAQ,OAAO,EACpI,IAAI,UAAY,CAAC,EACb,aAAe,CAAC,EAChB,WAAa,CAAC,EAyBlB,GAxBA,MAAM,QAAQ,SAAS,KAAK,CACrB,OACL,CAAC,KAAK,cAAe,KAAK,eAAe,EAAE,QAAQ,SAAS,MAAM,CAChE,MAAQ,MAAM,KAAK,EACf,OAAS,UAAU,QAAQ,KAAK,IAAM,IAAI,UAAU,KAAK,KAAK,CACpE,CAAC,EACD,CAAC,KAAK,gBAAiB,KAAK,kBAAmB,KAAK,iBAAkB,KAAK,cAAe,KAAK,eAAe,EAAE,QAAQ,SAAS,MAAM,CACrI,MAAQ,MAAM,KAAK,EACf,OAAO,KAAK,GAAK,aAAa,QAAQ,KAAK,IAAM,IAAI,aAAa,KAAK,KAAK,CAClF,CAAC,EACD,CAAC,KAAK,QAAS,KAAK,EAAE,EAAE,QAAQ,SAAS,MAAM,CAC7C,MAAQ,MAAM,KAAK,EACd,QACD,OAAO,KAAK,EACV,aAAa,QAAQ,KAAK,IAAM,IAAI,aAAa,KAAK,KAAK,EACtD,UAAU,QAAQ,KAAK,IAAM,IACtC,UAAU,KAAK,KAAK,EAExB,CAAC,EACD,CAAC,KAAK,gBAAiB,KAAK,kBAAmB,KAAK,UAAW,KAAK,WAAY,KAAK,IAAI,EAAE,QAAQ,SAAS,MAAM,CAChH,MAAQ,MAAM,KAAK,EACf,OAAS,CAAC,OAAO,KAAK,GAAK,WAAW,QAAQ,KAAK,IAAM,IAAI,WAAW,KAAK,KAAK,CACxF,CAAC,EACH,CAAC,EACG,CAAC,UAAU,QAAU,CAAC,aAAa,QAAU,CAAC,WAAW,OAAQ,OAAO,QAAQ,QAAQ,OAAO,EACnG,SAAS,cAAc,QAAQ,CAC7B,IAAI,MAAQ,CAAC,EACT,aAAe,SAAS,SAAS,EACjC,gBAAkB,SAAS,YAAY,EACvC,gBAAkB,SAAS,UAAU,EAIzC,OAHI,cAAc,MAAM,KAAK,KAAK,gBAAiB,CAAE,OAAQ,+DAAgE,gBAAiB,aAAc,MAAO,GAAI,EAAG,OAAO,CAAC,EAC9K,iBAAiB,MAAM,KAAK,KAAK,gBAAiB,CAAE,OAAQ,+DAAgE,GAAI,gBAAiB,MAAO,GAAI,EAAG,OAAO,CAAC,EACvK,iBAAiB,MAAM,KAAK,KAAK,gBAAiB,CAAE,OAAQ,+DAAgE,kBAAmB,gBAAiB,MAAO,GAAI,EAAG,OAAO,CAAC,EACrL,MAAM,OACJ,QAAQ,IAAI,KAAK,EAAE,KAAK,SAAS,QAAQ,CAChD,IAAI,KAAO,CAAC,EACR,UAAY,CAAC,EAQjB,OAPC,SAAW,CAAC,GAAG,QAAQ,SAAS,KAAK,EACnC,MAAQ,CAAC,GAAG,QAAQ,SAAS,IAAI,CAC5B,CAAC,KAAO,CAAC,IAAI,IAAM,KAAK,IAAI,EAAE,IAClC,KAAK,IAAI,EAAE,EAAI,GACf,UAAU,KAAK,GAAG,EACpB,CAAC,CACH,CAAC,EACG,UAAU,OAAS,MAAM,QAAU,QAAU,GAC/C,MAAM,wDAAyD,CAAE,MAAO,MAAO,QAAS,QAAU,EAAG,SAAU,MAAM,OAAQ,SAAU,UAAU,MAAO,CAAC,EAClJ,MAAM,CAAC,IAAK,IAAK,IAAI,EAAE,OAAO,GAAK,IAAI,EAAE,KAAK,UAAU,CAAE,OAAO,cAAc,QAAU,CAAC,CAAG,CAAC,IAEnG,UAAU,OAAS,MAAM,QAC3B,MAAM,6DAA8D,CAAE,MAAO,MAAO,SAAU,MAAM,OAAQ,SAAU,UAAU,MAAO,CAAC,EAEnI,UACP,CAAC,EAnByB,QAAQ,QAAQ,CAAC,CAAC,CAoB9C,CACA,OAAO,cAAc,CAAC,EAAE,KAAK,SAAS,UAAU,CAC9C,GAAI,QAAU,WAAY,CACxB,IAAI,YAAc,MAAM,QAAQ,EAAE,EAC7B,OAAO,WAAW,IAAG,YAAc,MAAM,QAAQ,mBAAqB,QAAQ,mBAAmB,GACjG,OAAO,WAAW,IAAG,YAAc,IACxC,IAAI,iBAAmB,MAAM,QAAQ,iBAAmB,QAAQ,wBAA0B,QAAQ,wBAAwB,EACrH,OAAO,gBAAgB,IAAG,iBAAmB,MAAM,KAAK,kBAAoB,KAAK,wBAA0B,KAAK,wBAAwB,GACxI,OAAO,gBAAgB,IAAG,iBAAmB,IAClD,IAAI,aAAe,WAAa,CAAC,GAAG,IAAI,SAAS,IAAI,CACnD,MAAO,CACL,gBAAiB,iBACjB,WAAY,YACZ,SAAU,IAAI,GACd,KAAM,IAAI,MAAQ,QAClB,aAAc,IAAI,cAAgB,GAClC,MAAO,OAAO,IAAI,OAAS,CAAC,EAC5B,WAAY,UACZ,iBAAkB,UACpB,CACF,CAAC,EAAE,OAAO,SAAS,IAAI,CAAE,OAAO,IAAI,iBAAmB,IAAI,YAAc,IAAI,QAAU,CAAC,EACxF,OAAK,YAAY,OAUV,MAAM,sBAAuB,YAAa,CAC/C,OAAQ,GACR,MAAO,eAAiB,mBAAmB,qBAAqB,EAChE,OAAQ,4CACV,CAAC,EAAE,KAAK,UAAU,CAChB,aAAM,4CAA6C,CACjD,gBAAiB,OAAS,KAAK,WAAa,KAAK,IAAM,KAAK,oBAAsB,QAAQ,mBAAqB,GAC/G,kBAAmB,YACnB,WAAY,YAAY,MAC1B,CAAC,EACM,OACT,CAAC,GApBC,MAAM,yDAA0D,CAC9D,gBAAiB,OAAS,KAAK,WAAa,KAAK,IAAM,KAAK,oBAAsB,QAAQ,mBAAqB,GAC/G,oBAAqB,CAAC,CAAC,YACvB,yBAA0B,CAAC,CAAC,iBAC5B,eAAgB,WAAa,CAAC,GAAG,OACjC,cAAe,MAAM,MACvB,CAAC,EACM,QAcX,CACA,IAAI,cAAgB,QAAU,UAAY,cAAgB,aACtD,QAAU,QAAU,UAAY,WAAa,UAC7C,SAAW,QAAQ,IAAM,GACzB,MAAQ,WAAa,CAAC,GAAG,IAAI,SAAS,IAAK,MAAM,CACnD,IAAI,IAAM,CAAE,SAAU,IAAI,GAAI,WAAY,KAAM,EAChD,WAAI,OAAO,EAAI,SACR,GACT,CAAC,EAAE,OAAO,SAAS,IAAI,CAAE,OAAO,IAAI,UAAY,QAAU,CAAC,EAC3D,OAAK,KAAK,OACH,MAAM,cAAe,KAAM,CAChC,OAAQ,GACR,MAAO,eAAiB,mBAAmB,QAAU,WAAW,EAChE,OAAQ,4CACV,CAAC,EAAE,KAAK,UAAU,CAAE,OAAO,OAAS,CAAC,EALZ,OAM3B,CAAC,EAAE,MAAM,SAAS,MAAM,CACtB,aAAM,2CAA4C,CAAE,MAAO,MAAO,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EAC3G,OACT,CAAC,CACH,CAEA,SAAS,QAAQ,CAAE,OAAO,IAAI,KAAK,EAAE,YAAY,CAAG,CACpD,SAAS,MAAM,GAAG,CAAE,OAAO,IAAI,QAAQ,SAAS,QAAQ,CAAE,OAAO,WAAW,QAAS,IAAM,CAAC,CAAG,CAAC,CAAG,CACnG,SAAS,MAAM,MAAM,CAAE,OAAO,OAA8B,OAAU,KAAO,GAAK,KAAK,EAAE,KAAK,CAAG,CACjG,SAAS,oBAAoB,MAAM,CACjC,IAAI,IAAM,MAAM,OAAS,EAAE,EACvB,IAAM,IAAI,YAAY,EAC1B,OAAI,MAAQ,gBAAwB,eAC7B,GACT,CACA,SAAS,cAAc,MAAM,CAC3B,GAAI,QAAU,OACd,IAAI,QAAU,KAAM,OAAO,KAC3B,IAAI,KAAO,MAAM,KAAK,EACtB,OAAO,MAAc,KACvB,CACA,SAAS,eAAe,MAAM,CAC5B,GAAI,QAAU,OACd,IAAI,QAAU,KAAM,OAAO,KAC3B,GAAI,iBAAiB,MAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,EAAG,OAAO,MAAM,YAAY,EAC/E,GAAI,OAAO,OAAU,SAAU,OAAO,OAAO,EAC7C,IAAI,KAAO,MAAM,KAAK,EACtB,MAAI,CAAC,MAAQ,OAAS,kBAA0B,KACzC,KACT,CACA,SAAS,iBAAiB,MAAM,CAC9B,IAAI,IAAM,MAAM,KAAK,EACrB,GAAI,CAAC,sBAAsB,KAAK,GAAG,EAAG,MAAO,GAC7C,IAAI,MAAQ,IAAI,KAAK,IAAM,YAAY,EACvC,GAAI,MAAM,MAAM,QAAQ,CAAC,EAAG,MAAO,GACnC,IAAI,IAAM,IAAI,KACV,IAAM,IAAI,eAAe,EAAI,MAAM,eAAe,EAClD,eAAkB,IAAI,YAAY,EAAI,MAAM,YAAY,GAAO,IAAI,YAAY,IAAM,MAAM,YAAY,GAAK,IAAI,WAAW,EAAI,MAAM,WAAW,EACpJ,OAAO,KAAK,IAAI,EAAG,eAAiB,IAAM,EAAI,GAAG,CACnD,CACA,SAAS,SAAS,OAAO,CACvB,IAAI,MAAQ,QAAU,CAAC,GAAG,IAAI,KAAK,EAAE,OAAO,OAAO,EAAE,OAAO,SAAS,MAAO,MAAO,IAAI,CAAE,OAAO,IAAI,QAAQ,KAAK,IAAM,OAAS,CAAC,UAAU,KAAK,KAAK,CAAG,CAAC,EACzJ,OAAO,KAAK,OAAS,OAAS,KAAK,KAAK,GAAG,EAAI,IAAM,EACvD,CACA,SAAS,oBAAoB,MAAM,CACjC,aAAQ,MAAM,KAAK,EAAE,QAAQ,eAAgB,EAAE,EACxC,MAAQ,OAAS,MAAQ,IAAM,EACxC,CACA,SAAS,MAAM,MAAM,CAAE,OAAO,MAAM,QAAQ,KAAK,EAAI,MAAM,CAAC,EAAI,KAAO,CACvE,SAAS,gBAAgB,IAAI,CAC3B,IAAM,KAAO,CAAC,EACd,IAAI,MAAQ,CAAC,EACb,SAAS,KAAK,MAAM,CAClB,MAAQ,MAAM,KAAK,EAAE,YAAY,EAC7B,OAAS,MAAM,QAAQ,KAAK,IAAM,IAAI,MAAM,KAAK,KAAK,CAC5D,CACA,SAAS,QAAQ,MAAM,CACrB,GAAK,MACL,IAAI,MAAM,QAAQ,KAAK,EAAG,CAAE,MAAM,QAAQ,OAAO,EAAG,MAAQ,CAC5D,GAAI,OAAO,OAAU,SAAU,CAC7B,OAAO,KAAK,KAAK,EAAE,QAAQ,SAAS,IAAI,CAClC,MAAM,GAAG,IAAM,GAAM,KAAK,GAAG,EACxB,OAAO,MAAM,GAAG,GAAM,UAAU,KAAK,MAAM,GAAG,CAAC,CAC1D,CAAC,EACD,MACF,CACA,IAAI,KAAO,OAAO,OAAS,EAAE,EAAE,KAAK,EACpC,GAAI,SAAS,KAAK,IAAI,EACpB,GAAI,CACF,QAAQ,KAAK,MAAM,IAAI,CAAC,EACxB,MACF,OAAQ,EAAG,CAAC,CAEd,KAAK,MAAM,QAAQ,EAAE,QAAQ,IAAI,EACnC,CACA,eAAQ,IAAI,KAAK,EACjB,QAAQ,IAAI,cAAc,EAC1B,QAAQ,IAAI,WAAW,EACvB,QAAQ,IAAI,iBAAiB,EAC7B,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,aAAa,EACzB,QAAQ,IAAI,eAAe,GACvB,IAAI,aAAe,IAAQ,IAAI,eAAiB,IAAQ,IAAI,iBAAmB,KAAM,KAAK,SAAS,GACnG,IAAI,WAAa,IAAQ,IAAI,aAAe,IAAQ,IAAI,eAAiB,KAAM,KAAK,OAAO,GAC3F,IAAI,eAAiB,IAAQ,IAAI,iBAAmB,IAAQ,IAAI,mBAAqB,IAAQ,IAAI,oBAAsB,KAAM,KAAK,WAAW,EAC1I,KACT,CACA,SAAS,OAAO,MAAM,CAAE,MAAO,6EAA6E,KAAK,OAAO,OAAS,EAAE,CAAC,CAAG,CACvI,SAAS,UAAU,KAAK,CAAE,OAAO,MAAM,IAAI,EAAE,MAAM,GAAG,EAAE,OAAO,OAAO,CAAG,CACzE,SAAS,WAAW,QAAQ,CAAE,OAAO,SAAW,QAAQ,KAAO,EAAI,CACnE,SAAS,cAAc,QAAQ,CAC7B,IAAI,GAAK,SAAW,QAAQ,gBAAkB,SAAW,QAAQ,QAAU,GAC3E,GAAI,CAAC,OAAO,EAAE,EAAG,MAAM,IAAI,MAAM,sDAAsD,EACvF,OAAO,EACT,CACA,SAAS,qBAAqB,KAAM,KAAK,CACvC,KAAO,MAAQ,CAAC,EAChB,QAAS,EAAI,EAAG,GAAK,MAAQ,CAAC,GAAG,OAAQ,GAAK,EAAG,CAC/C,IAAI,MAAQ,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAC/B,GAAI,OAAO,KAAK,EAAG,OAAO,KAC5B,CACA,MAAO,EACT,CACA,SAAS,oBAAoB,KAAM,QAAS,KAAK,CAC/C,OAAO,qBAAqB,KAAM,MAAQ,CAAC,WAAY,YAAa,YAAa,MAAO,SAAU,SAAS,CAAC,GAAK,cAAc,OAAO,CACxI,CACA,SAAS,SAAS,MAAM,CACtB,IAAI,GAAK,MAAM,KAAK,EAChB,QAAU,aAAa,SAAW,CAAC,EACvC,OAAI,OAAO,EAAE,GAAK,SAAW,OAAO,QAAQ,cAAc,GAAK,KAAO,QAAQ,eAAuB,WAAW,OAAO,EAChH,EACT,CACA,SAAS,qBAAqB,MAAO,IAAI,CACvC,IAAI,GAAK,MAAM,KAAK,EAChB,SAAW,MAAM,GAAG,EAAE,QAAQ,MAAO,EAAE,EAAE,YAAY,EACrD,QAAU,aAAa,SAAW,CAAC,EACnC,WAAa,kBAAkB,OAAO,EAAE,QAAQ,MAAO,EAAE,EAAE,YAAY,EAC3E,OAAI,IAAM,UAAY,YAAc,WAAa,YAAc,WAAW,OAAO,EAAU,WAAW,OAAO,EACtG,SAAS,EAAE,CACpB,CACA,SAAS,kBAAkB,QAAQ,CAAE,OAAO,MAAM,SAAW,QAAQ,YAAc,SAAW,QAAQ,QAAU,QAAQ,OAAO,aAAe,EAAE,CAAG,CACnJ,SAAS,yBAAyB,QAAQ,CACxC,IAAI,OAAS,SAAW,QAAQ,QAAU,OAAO,0BAA4B,CAAC,EAC9E,OAAO,MAAM,UAAY,QAAQ,mBAAqB,QAAQ,aAAe,OAAO,qBAAuB,OAAO,aAAe,EAAE,CACrI,CACA,IAAI,UAAY,CAAC,EACjB,SAAS,UAAU,IAAK,MAAM,CAC5B,WAAM,MAAM,GAAG,EACX,KAAO,OAAO,KAAK,IAAG,UAAU,GAAG,EAAI,OACpC,KACT,CACA,SAAS,QAAQ,MAAO,MAAO,QAAQ,CACrC,GAAI,CAAC,kBAAkB,KAAK,EAAG,MAAM,IAAI,MAAM,qDAAuD,KAAK,EAC3G,OAAO,KAAK,MAAO,OAAO,OAAO,CAAC,EAAG,OAAS,CAAC,EAAG,CAAE,MAAO,CAAE,CAAC,EAAG,OAAO,EAAE,KAAK,SAAS,KAAK,CAAE,OAAO,MAAQ,KAAK,CAAC,GAAK,IAAM,CAAC,CAClI,CACA,SAAS,cAAc,MAAO,QAAS,QAAQ,CAC7C,IAAI,IAAM,MAAM,KAAK,EACjB,UAAY,GAChB,GAAI,CAAE,UAAY,cAAc,OAAO,CAAG,OAAQ,EAAG,CAAE,UAAY,EAAI,CACvE,GAAI,CAAC,IACH,OAAI,UAAkB,QAAQ,QAAQ,SAAS,EACxC,QAAQ,OAAO,IAAI,MAAM,kDAAkD,CAAC,EAErF,GAAI,YAAc,MAAQ,WAAW,OAAO,GAAK,MAAQ,kBAAkB,OAAO,GAAK,MAAQ,WAAY,OAAO,QAAQ,QAAQ,SAAS,EAC3I,GAAI,OAAO,GAAG,EAAG,OAAO,QAAQ,QAAQ,GAAG,EAC3C,GAAI,UAAU,GAAG,EAAG,OAAO,QAAQ,QAAQ,UAAU,GAAG,CAAC,EACzD,IAAI,IAAM,IAAI,QAAQ,MAAO,EAAE,EAC/B,OAAO,QAAQ,kBAAmB,CAAE,OAAQ,6BAA8B,YAAa,MAAQ,GAAI,EAAG,OAAO,EAC1G,KAAK,SAAS,IAAI,CACjB,OAAI,KAAO,OAAO,IAAI,OAAO,EAAU,UAAU,IAAK,IAAI,OAAO,EAC1D,QAAQ,kBAAmB,CAAE,OAAQ,6BAA8B,OAAQ,MAAQ,GAAI,EAAG,OAAO,EACrG,KAAK,SAAS,UAAU,CACvB,GAAI,WAAa,OAAO,UAAU,OAAO,EAAG,OAAO,UAAU,IAAK,UAAU,OAAO,EACnF,MAAM,IAAI,MAAM,yCAA2C,GAAG,CAChE,CAAC,CACL,CAAC,CACL,CACA,SAAS,gCAAgC,MAAO,QAAQ,CACtD,IAAI,IAAM,MAAM,KAAK,EAAE,QAAQ,MAAO,EAAE,EACxC,OAAK,IACD,UAAU,WAAa,GAAG,EAAU,QAAQ,QAAQ,UAAU,WAAa,GAAG,CAAC,EAC5E,QAAQ,kBAAmB,CAAE,OAAQ,6BAA8B,YAAa,MAAQ,GAAI,EAAG,OAAO,EAC1G,KAAK,SAAS,IAAI,CACjB,OAAI,KAAO,OAAO,IAAI,OAAO,EAAU,UAAU,WAAa,IAAK,IAAI,OAAO,EACvE,QAAQ,kBAAmB,CAAE,OAAQ,6BAA8B,OAAQ,MAAQ,GAAI,EAAG,OAAO,EACrG,KAAK,SAAS,UAAU,CACvB,GAAI,WAAa,OAAO,UAAU,OAAO,EAAG,OAAO,UAAU,WAAa,IAAK,UAAU,OAAO,EAChG,MAAM,IAAI,MAAM,qDAAuD,GAAG,CAC5E,CAAC,CACL,CAAC,EAVc,QAAQ,OAAO,IAAI,MAAM,yDAAyD,CAAC,CAWtG,CACA,SAAS,uBAAuB,QAAS,QAAQ,CAC/C,IAAI,IAAM,kBAAkB,OAAO,EACnC,OAAI,IAAY,gCAAgC,IAAK,OAAO,EAAE,MAAM,UAAU,CAAE,OAAO,cAAc,OAAO,CAAG,CAAC,EACzG,QAAQ,QAAQ,cAAc,OAAO,CAAC,CAC/C,CACA,SAAS,mBAAmB,KAAM,QAAS,KAAK,CAC9C,KAAO,MAAQ,CAAC,EAChB,QAAS,EAAI,EAAG,GAAK,MAAQ,CAAC,GAAG,OAAQ,GAAK,EAAG,CAC/C,IAAI,MAAQ,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAC/B,GAAI,MAAO,OAAO,KACpB,CACA,OAAO,kBAAkB,OAAO,CAClC,CACA,SAAS,8BAA8B,KAAM,QAAS,QAAS,KAAM,QAAQ,CAC3E,KAAO,MAAQ,CAAC,EAEhB,QADI,YAAc,GACT,EAAI,EAAG,GAAK,SAAW,CAAC,GAAG,SAClC,YAAc,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAChC,cAFsC,GAAK,EAE/C,CAEF,IAAI,IAAM,mBAAmB,KAAM,QAAS,MAAQ,CAAC,CAAC,EACtD,OAAI,IAAY,gCAAgC,IAAK,OAAO,EAAE,MAAM,SAAS,MAAM,CACjF,OAAI,aAAe,OAAO,WAAW,EAAU,QAAQ,QAAQ,WAAW,EACnE,uBAAuB,QAAS,OAAO,EAAE,MAAM,UAAU,CAC9D,MAAM,OAAS,IAAI,MAAM,qDAAuD,GAAG,CACrF,CAAC,CACH,CAAC,EACG,YAAoB,cAAc,YAAa,QAAS,OAAO,EAAE,MAAM,UAAU,CAAE,OAAO,cAAc,OAAO,CAAG,CAAC,EAChH,QAAQ,QAAQ,cAAc,OAAO,CAAC,CAC/C,CACA,SAAS,cAAc,MAAO,QAAQ,CACpC,IAAI,IAAM,MAAM,KAAK,EACrB,OAAI,OAAO,GAAG,EAAU,QAAQ,QAAQ,GAAG,EACvC,UAAU,QAAU,GAAG,EAAU,QAAQ,QAAQ,UAAU,QAAU,GAAG,CAAC,EACtE,QAAQ,QAAS,CAAE,OAAQ,oBAAqB,eAAgB,MAAQ,GAAI,EAAG,OAAO,EAAE,KAAK,SAAS,IAAI,CAC/G,GAAI,KAAO,OAAO,IAAI,EAAE,EAAG,OAAO,UAAU,QAAU,IAAK,IAAI,EAAE,EACjE,MAAM,IAAI,MAAM,8CAAgD,GAAG,CACrE,CAAC,CACH,CACA,SAAS,eAAe,MAAO,QAAQ,CACrC,IAAI,IAAM,MAAM,KAAK,EACrB,OAAI,OAAO,GAAG,EAAU,QAAQ,QAAQ,GAAG,EACvC,UAAU,SAAW,GAAG,EAAU,QAAQ,QAAQ,UAAU,SAAW,GAAG,CAAC,EACxE,QAAQ,UAAW,CAAE,OAAQ,qBAAsB,gBAAiB,MAAQ,GAAI,EAAG,OAAO,EAAE,KAAK,SAAS,IAAI,CACnH,GAAI,KAAO,OAAO,IAAI,EAAE,EAAG,OAAO,UAAU,SAAW,IAAK,IAAI,EAAE,EAClE,MAAM,IAAI,MAAM,+CAAiD,GAAG,CACtE,CAAC,CACH,CACA,SAAS,sBAAsB,MAAO,QAAQ,CAC5C,IAAI,IAAM,MAAM,KAAK,EACrB,OAAI,OAAO,GAAG,EAAU,QAAQ,QAAQ,GAAG,EACvC,UAAU,gBAAkB,GAAG,EAAU,QAAQ,QAAQ,UAAU,gBAAkB,GAAG,CAAC,EACtF,QAAQ,gBAAiB,CAAE,OAAQ,4BAA6B,uBAAwB,MAAQ,GAAI,EAAG,OAAO,EAAE,KAAK,SAAS,IAAI,CACvI,GAAI,KAAO,OAAO,IAAI,EAAE,EAAG,OAAO,UAAU,gBAAkB,IAAK,IAAI,EAAE,EACzE,MAAM,IAAI,MAAM,sDAAwD,GAAG,CAC7E,CAAC,CACH,CACA,SAAS,gBAAgB,WAAY,SAAU,QAAQ,CAErD,GADA,WAAa,MAAM,YAAc,MAAM,EACnC,aAAe,OAAQ,OAAO,cAAc,SAAU,OAAO,EACjE,GAAI,aAAe,QAAS,OAAO,eAAe,SAAU,OAAO,EACnE,GAAI,eAAe,KAAK,UAAU,EAAG,OAAO,cAAc,SAAU,aAAa,SAAW,CAAC,EAAG,OAAO,EACvG,GAAI,OAAO,QAAQ,EAAG,OAAO,QAAQ,QAAQ,QAAQ,EACrD,MAAM,IAAI,MAAM,gDAAkD,WAAa,IAAM,QAAQ,CAC/F,CACA,SAAS,oBAAoB,MAAM,CAEjC,OADA,MAAQ,MAAM,OAAS,QAAQ,EAC3B,QAAU,cAAgB,QAAU,QAAgB,SACjD,iEAAiE,KAAK,KAAK,EAAI,MAAQ,QAChG,CACA,SAAS,gBAAgB,MAAM,CAAE,aAAQ,MAAM,OAAS,UAAU,EAAU,qCAAqC,KAAK,KAAK,EAAI,MAAQ,UAAY,CACnJ,SAAS,cAAc,MAAM,CAAE,aAAQ,MAAM,OAAS,MAAM,EAAU,oBAAoB,KAAK,KAAK,EAAI,MAAQ,MAAQ,CACxH,SAAS,mBAAmB,WAAY,OAAQ,KAAK,CACnD,OAAO,oBAAoB,UAAU,IAAM,UAAY,gBAAgB,MAAM,IAAM,YAAc,cAAc,IAAI,IAAM,MAC3H,CACA,IAAI,2BAA6B,kRAC7B,mBAAqB,6RACrB,oBAAsB,mQACtB,sBAAwB,yIACxB,uBAAyB,4DACzB,uBAAyB,qDACzB,mBAAqB,2CACrB,2BAA6B,wHAC7B,2BAA6B,wJAC7B,sBAAwB,yJACxB,oBAAsB,yQACtB,+BAAiC,2IACjC,4BAA8B,4EAC9B,4BAA8B,4FAC9B,+BAAiC,mPACjC,gCAAkC,kPACtC,SAAS,2BAA2B,MAAM,CACxC,OAAO,OAAO,OAAO,CACnB,OAAQ,mBACR,WAAY,YACZ,eAAgB,cAChB,GAAI,4CACJ,WAAY,UACZ,UAAW,UACX,YAAa,SACf,EAAG,OAAS,CAAC,CAAC,CAChB,CACA,SAAS,kCAAkC,MAAM,CAC/C,OAAO,OAAO,OAAO,CACnB,OAAQ,mBACR,GAAI,uKACJ,WAAY,UACZ,UAAW,UACX,YAAa,SACf,EAAG,OAAS,CAAC,CAAC,CAChB,CACA,SAAS,0BAA0B,MAAM,CACvC,MAAO,CAAE,MAAO,oBAAqB,MAAO,OAAO,OAAO,CACxD,OAAQ,+BACR,WAAY,UACZ,UAAW,UACX,YAAa,SACf,EAAG,OAAS,CAAC,CAAC,CAAE,CAClB,CACA,SAAS,2BAA2B,MAAM,CACxC,MAAO,CAAE,MAAO,qBAAsB,MAAO,OAAO,OAAO,CACzD,OAAQ,gCACR,WAAY,UACZ,UAAW,UACX,YAAa,SACf,EAAG,OAAS,CAAC,CAAC,CAAE,CAClB,CACA,SAAS,oBAAoB,MAAO,SAAS,CAAE,aAAQ,MAAM,OAAS,UAAY,SAAS,EAAU,0FAA0F,KAAK,KAAK,EAAI,MAAS,UAAY,SAAY,CAC9O,SAAS,yBAAyB,KAAK,CACrC,KAAO,MAAQ,CAAC,EAChB,IAAI,SAAW,KAAK,YAAc,KAAK,WAAW,OAAS,KAAK,kBAAoB,KAAK,iBACzF,GAA8B,UAAa,MAAQ,WAAa,GAAI,OAAO,oBAAoB,SAAU,SAAS,EAClH,IAAI,OAAS,MAAM,KAAK,QAAU,EAAE,EACpC,OAAI,SAAW,WAAmB,WAC3B,oBAAoB,OAAQ,SAAS,CAC9C,CACA,SAAS,iBAAiB,MAAM,CAAE,aAAQ,MAAM,OAAS,QAAQ,EAAU,oDAAoD,KAAK,KAAK,EAAI,MAAQ,QAAU,CAC/J,SAAS,mBAAmB,QAAQ,CAClC,IAAI,OAAS,SAAW,QAAQ,QAAU,CAAC,EACvC,OAAS,OAAO,iBAAmB,OAAO,OAAO,gBAAgB,oBAAuB,WACxF,OAAO,gBAAgB,mBAAmB,CAAE,OAAQ,kBAAmB,CAAC,EACxE,KACJ,OAAI,QAAU,OAAO,aAAe,OAAO,YAAY,cAAgB,GAAa,GAC7E,OAAO,eAAiB,IAAQ,OAAO,iBAAmB,IAAQ,OAAO,aAAe,IAAQ,OAAO,QAAU,IAAQ,OAAO,YAAc,EACvJ,CACA,SAAS,iBAAiB,IAAI,CAC5B,IAAI,OAAS,gBAAgB,MAAQ,IAAI,gBAAkB,IAAI,eAAiB,WAAW,EACvF,KAAO,cAAc,MAAQ,IAAI,aAAe,IAAI,YAAc,OAAO,EAC7E,OAAI,OAAS,YAAc,SAAW,QAAgB,QAClD,SAAW,WAAmB,WAC9B,SAAW,SAAiB,SACzB,EACT,CACA,SAAS,8BAA8B,IAAK,QAAS,QAAQ,CAC3D,MAAI,CAAC,KAAO,CAAC,IAAI,aAAe,mBAAmB,OAAO,EAAU,QAAQ,QAAQ,GAAG,EAChF,KAAK,WAAY,CAAE,OAAQ,qEAAsE,YAAa,MAAQ,IAAI,YAAa,MAAO,CAAE,EAAG,OAAO,EAChK,KAAK,SAAS,KAAK,CAClB,IAAI,SAAW,MAAQ,KAAK,CAAC,EAC7B,OAAK,iBAAiB,QAAQ,EACvB,OAAO,OAAO,CAAC,EAAG,IAAK,CAC5B,WAAY,SAAS,YAAc,IAAI,YAAc,SACrD,eAAgB,SAAS,gBAAkB,IAAI,eAC/C,YAAa,SAAS,aAAe,IAAI,aAAe,OACxD,iBAAkB,SAAS,kBAAoB,IAAI,gBACrD,CAAC,EANuC,GAO1C,CAAC,EACA,MAAM,UAAU,CAAE,OAAO,GAAK,CAAC,CAClC,CACA,SAAS,OAAO,IAAI,CAClB,MAAO,CACL,MAAO,OAAO,IAAI,YAAc,CAAC,EACjC,MAAO,OAAO,IAAI,gBAAkB,CAAC,EACrC,SAAU,OAAO,IAAI,eAAiB,CAAC,EACvC,OAAQ,OAAO,IAAI,aAAe,CAAC,CACrC,CACF,CACA,SAAS,WAAW,IAAI,CACtB,IAAI,SAAW,iBAAiB,KAAO,IAAI,SAAS,EAChD,YAAc,OAAO,MAAQ,IAAI,KAAO,IAAI,aAAe,IAAI,YAAc,CAAC,EAClF,OAAI,SAAW,EAAU,SACrB,YAAc,EAAU,YACrB,KAAO,IAAI,eAAiB,GAAO,GAAK,CACjD,CACA,SAAS,eAAe,IAAI,CAC1B,MAAO,CACL,gBAAiB,IAAI,kBAAoB,GACzC,iBAAkB,IAAI,kBAAoB,GAC1C,aAAc,IAAI,eAAiB,GACnC,cAAe,IAAI,eAAiB,GACpC,UAAW,IAAI,YAAc,GAC7B,WAAY,IAAI,YAAc,GAC9B,WAAY,IAAI,aAAe,GAC/B,YAAa,IAAI,aAAe,GAChC,SAAU,IAAI,WAAa,GAC3B,UAAW,IAAI,WAAa,GAC5B,UAAW,IAAI,YAAc,GAC7B,WAAY,IAAI,YAAc,GAC9B,WAAY,IAAI,aAAe,GAC/B,YAAa,IAAI,aAAe,GAChC,UAAW,IAAI,YAAc,GAC7B,WAAY,IAAI,YAAc,EAChC,CACF,CACA,SAAS,OAAO,QAAS,IAAI,CAC3B,MAAO,CACL,KAAM,QACN,WAAY,IAAI,YAAc,SAC9B,cAAe,IAAI,gBAAkB,WACrC,iBAAkB,IAAI,kBAAoB,IAAI,QAAU,WACxD,WAAY,IAAI,aAAe,MACjC,CACF,CACA,SAAS,eAAe,MAAO,IAAI,CAEjC,GADA,IAAM,KAAO,CAAC,EACV,QAAU,QAAS,CACrB,IAAI,aAAe,MAAM,IAAI,gBAAkB,IAAI,IAAM,EAAE,EACvD,eAAiB,MAAM,IAAI,aAAe,IAAI,MAAQ,IAAI,aAAe,EAAE,EAC/E,GAAI,aAAa,QAAQ,QAAQ,IAAM,GAAK,iBAAmB,QAC7D,aAAM,8CAA+C,CAAE,aAAc,cAAgB,IAAI,IAAM,GAAI,MAAO,KAAM,CAAC,EAC1G,IAEX,CACA,GAAI,QAAU,UAAW,CACvB,IAAI,cAAgB,MAAM,IAAI,iBAAmB,IAAI,IAAM,EAAE,EACzD,gBAAkB,MAAM,IAAI,aAAe,IAAI,MAAQ,IAAI,aAAe,EAAE,EAChF,GAAI,cAAc,QAAQ,OAAO,IAAM,GAAK,kBAAoB,OAC9D,aAAM,+CAAgD,CAAE,cAAe,eAAiB,IAAI,IAAM,GAAI,MAAO,KAAM,CAAC,EAC7G,IAEX,CACA,GAAI,QAAU,WAAY,CACxB,IAAI,aAAe,gBAAgB,GAAG,EAClC,mBAAqB,aAAa,QAAQ,SAAS,IAAM,IAAM,aAAa,QAAQ,OAAO,IAAM,IAAM,aAAa,QAAQ,WAAW,IAAM,GACjJ,MAAO,CACP,GAAI,IAAI,cAAgB,IAAI,GAC5B,IAAK,IAAI,cAAgB,IAAI,GAC7B,WAAY,IAAI,aAAe,GAC/B,OAAQ,IAAI,QAAU,IAAI,aAAe,GACzC,YAAa,IAAI,cAAgB,IAAI,aAAe,GACpD,IAAK,IAAI,KAAO,GAChB,SAAU,IAAI,UAAY,CAAC,IAAI,eAAiB,IAAI,KAAM,IAAI,gBAAkB,IAAI,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,GAAK,GACzH,UAAW,IAAI,WAAa,GAC5B,IAAK,WAAW,GAAG,EACnB,YAAa,IAAI,eAAiB,GAClC,oBAAqB,IAAI,wBAA0B,GACnD,OAAQ,IAAI,eAAiB,IAAQ,WAAW,GAAG,GAAK,GACxD,cAAe,IAAI,wBAA0B,IAAI,0BAA4B,IAAI,iBAAmB,GACpG,cAAe,IAAI,wBAA0B,IAAI,0BAA4B,IAAI,iBAAmB,GACpG,eAAgB,IAAI,iBAAmB,SACvC,WAAY,IAAI,YAAc,SAC9B,cAAe,IAAI,iBAAmB,GACtC,OAAQ,IAAI,eAAiB,SAC7B,WAAY,IAAI,aAAe,GAC/B,MAAO,aACP,cAAe,aACf,YAAa,CACX,YAAa,mBACb,oBAAqB,mBACrB,2BAA4B,aAAa,QAAQ,SAAS,IAAM,IAAM,aAAa,QAAQ,OAAO,IAAM,GACxG,aAAc,aAAa,QAAQ,SAAS,IAAM,IAAM,aAAa,QAAQ,OAAO,IAAM,EAC5F,EACA,iBAAkB,CAChB,aAAc,aAAa,QAAQ,SAAS,IAAM,GAClD,WAAY,aAAa,QAAQ,OAAO,IAAM,GAC9C,eAAgB,aAAa,QAAQ,WAAW,IAAM,GACtD,OAAQ,aAAa,OAAS,sCAAwC,EACxE,EACA,UAAW,aAAa,QAAQ,SAAS,IAAM,GAC/C,QAAS,aAAa,QAAQ,OAAO,IAAM,GAC3C,YAAa,aAAa,QAAQ,WAAW,IAAM,GACnD,OAAQ,OAAO,UAAW,GAAG,EAC7B,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC7B,CACF,CACA,GAAI,QAAU,kBAAmB,MAAO,CACtC,GAAI,IAAI,aAAe,IAAI,QAC3B,IAAK,IAAI,SAAW,GACpB,OAAQ,IAAI,SAAW,GACvB,WAAY,IAAI,aAAe,GAC/B,OAAQ,IAAI,QAAU,IAAI,aAAe,GACzC,YAAa,IAAI,cAAgB,IAAI,aAAe,GACpD,IAAK,IAAI,KAAO,GAChB,SAAU,IAAI,UAAY,CAAC,IAAI,eAAiB,IAAI,KAAM,IAAI,gBAAkB,IAAI,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,GAAK,GACzH,aAAc,IAAI,eAAiB,IAAI,MAAQ,GAC/C,cAAe,IAAI,gBAAkB,IAAI,OAAS,GAClD,IAAK,WAAW,GAAG,EACnB,YAAa,IAAI,eAAiB,GAClC,oBAAqB,IAAI,wBAA0B,GACnD,OAAQ,IAAI,eAAiB,IAAQ,WAAW,GAAG,GAAK,GACxD,cAAe,IAAI,wBAA0B,IAAI,0BAA4B,IAAI,iBAAmB,GACpG,cAAe,IAAI,wBAA0B,IAAI,0BAA4B,IAAI,wBAA0B,IAAI,iBAAmB,IAAI,iBAAmB,GACzJ,eAAgB,IAAI,iBAAmB,SACvC,WAAY,IAAI,aAAe,GAC/B,cAAe,IAAI,SAAW,SAC9B,OAAQ,IAAI,QAAU,SACtB,cAAe,OAAO,IAAI,gBAAkB,IAAI,iBAAmB,CAAC,EACpE,eAAgB,OAAO,IAAI,iBAAmB,IAAI,eAAiB,CAAC,EACpE,UAAW,OAAO,IAAI,YAAc,IAAI,aAAe,CAAC,EACxD,WAAY,OAAO,IAAI,aAAe,CAAC,EACvC,WAAY,OAAO,IAAI,aAAe,IAAI,eAAiB,CAAC,EAC5D,cAAe,OAAO,IAAI,gBAAkB,IAAI,iBAAmB,CAAC,EACpE,WAAY,OAAO,IAAI,aAAe,IAAI,aAAe,CAAC,EAC1D,UAAW,OAAO,IAAI,YAAc,IAAI,oBAAsB,CAAC,EAC/D,WAAY,IAAI,+BAAiC,SACjD,cAAe,IAAI,mCAAqC,WACxD,WAAY,IAAI,gCAAkC,OAClD,OAAQ,CAAE,KAAM,UAAW,WAAY,IAAI,+BAAiC,SAAU,cAAe,IAAI,mCAAqC,WAAY,WAAY,IAAI,gCAAkC,OAAQ,iBAAkB,IAAI,kBAAoB,UAAW,EACzQ,UAAW,IAAI,YAAc,EAC/B,EACA,GAAI,QAAU,QAAS,OAAO,OAAO,OAAO,CAC1C,GAAI,IAAI,gBAAkB,IAAI,GAC9B,OAAQ,IAAI,gBAAkB,IAAI,GAClC,eAAgB,IAAI,IAAM,GAC1B,UAAW,qBAAqB,IAAI,eAAgB,IAAI,kBAAkB,EAC1E,iBAAkB,IAAI,oBAAsB,GAC5C,kBAAmB,IAAI,qBAAuB,IAAI,oBAAsB,GACxE,KAAM,IAAI,MAAQ,GAClB,MAAO,IAAI,OAAS,GACpB,iBAAkB,IAAI,oBAAsB,GAC5C,WAAY,IAAI,YAAc,SAC9B,cAAe,IAAI,gBAAkB,WACrC,WAAY,IAAI,aAAe,OAC/B,OAAQ,IAAI,QAAU,IAAI,kBAAoB,UAC9C,WAAY,CAAE,MAAO,IAAI,kBAAoB,IAAI,QAAU,SAAU,EACrE,OAAQ,OAAO,GAAG,EAClB,WAAY,IAAI,cAAgB,GAChC,OAAQ,OAAO,OAAQ,GAAG,EAC1B,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC/B,EAAG,eAAe,GAAG,CAAC,EACtB,GAAI,QAAU,UAAW,OAAO,OAAO,OAAO,CAC5C,GAAI,IAAI,iBAAmB,IAAI,GAC/B,QAAS,IAAI,iBAAmB,IAAI,GACpC,gBAAiB,IAAI,IAAM,GAC3B,SAAU,qBAAqB,IAAI,cAAe,IAAI,iBAAiB,EACvE,iBAAkB,IAAI,mBAAqB,GAC3C,kBAAmB,IAAI,oBAAsB,IAAI,mBAAqB,GACtE,KAAM,IAAI,MAAQ,GAClB,WAAY,IAAI,YAAc,SAC9B,cAAe,IAAI,gBAAkB,WACrC,WAAY,IAAI,aAAe,OAC/B,OAAQ,IAAI,QAAU,IAAI,kBAAoB,UAC9C,WAAY,CAAE,MAAO,IAAI,kBAAoB,IAAI,QAAU,SAAU,EACrE,UAAW,OAAO,IAAI,YAAc,CAAC,EACrC,WAAY,OAAO,IAAI,aAAe,CAAC,EACvC,iBAAkB,OAAO,IAAI,oBAAsB,CAAC,EACpD,UAAW,IAAI,YAAc,GAC7B,OAAQ,OAAO,QAAS,GAAG,EAC3B,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC/B,EAAG,eAAe,GAAG,CAAC,EACtB,GAAI,QAAU,oBAAqB,OAAO,OAAO,OAAO,CACtD,GAAI,IAAI,gBAAkB,IAAI,GAC9B,OAAQ,IAAI,gBAAkB,IAAI,GAClC,WAAY,GACZ,gBAAiB,GACjB,eAAgB,QAChB,UAAW,qBAAqB,IAAI,eAAgB,IAAI,kBAAkB,EAC1E,iBAAkB,IAAI,oBAAsB,GAC5C,kBAAmB,IAAI,qBAAuB,IAAI,oBAAsB,cACxE,KAAM,GACN,MAAO,oBACP,MAAO,CAAC,EACR,WAAY,SACZ,cAAe,QACf,WAAY,WACZ,OAAQ,IAAI,QAAU,IAAI,kBAAoB,WAC9C,WAAY,CAAE,MAAO,IAAI,kBAAoB,IAAI,QAAU,UAAW,EACtE,OAAQ,OAAO,GAAG,EAClB,OAAQ,OAAO,iBAAkB,GAAG,EACpC,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC/B,EAAG,eAAe,GAAG,CAAC,EACtB,GAAI,QAAU,qBAAsB,OAAO,OAAO,OAAO,CACvD,GAAI,IAAI,iBAAmB,IAAI,GAC/B,QAAS,IAAI,iBAAmB,IAAI,GACpC,WAAY,GACZ,gBAAiB,GACjB,gBAAiB,GACjB,eAAgB,QAChB,SAAU,qBAAqB,IAAI,cAAe,IAAI,iBAAiB,EACvE,iBAAkB,IAAI,mBAAqB,GAC3C,kBAAmB,IAAI,oBAAsB,IAAI,mBAAqB,cACtE,KAAM,GACN,MAAO,CAAC,EACR,WAAY,SACZ,cAAe,QACf,WAAY,WACZ,OAAQ,IAAI,QAAU,IAAI,kBAAoB,WAC9C,WAAY,CAAE,MAAO,IAAI,kBAAoB,IAAI,QAAU,UAAW,EACtE,UAAW,OAAO,IAAI,YAAc,CAAC,EACrC,WAAY,OAAO,IAAI,aAAe,CAAC,EACvC,iBAAkB,OAAO,IAAI,oBAAsB,CAAC,EACpD,UAAW,IAAI,YAAc,GAC7B,OAAQ,OAAO,kBAAmB,GAAG,EACrC,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC/B,EAAG,eAAe,GAAG,CAAC,EACtB,GAAI,QAAU,aAAe,QAAU,WAAY,CACjD,IAAI,KAAO,QAAU,YAAc,WAAa,SAChD,OAAO,OAAO,OAAO,CACnB,GAAI,IAAI,UAAY,KAAO,KAAK,GAAK,IAAI,GACzC,KAAM,KACN,gBAAiB,IAAI,IAAM,GAC3B,mBAAoB,QAAU,YAAe,IAAI,IAAM,GAAO,IAAI,oBAAsB,GACxF,iBAAkB,QAAU,YAAc,IAAI,IAAM,GACpD,WAAY,QAAU,YAAe,IAAI,oBAAsB,IAAI,GAAM,OACzE,SAAU,QAAU,WAAc,IAAI,kBAAoB,IAAI,GAAM,OACpE,iBAAkB,IAAI,oBAAsB,GAC5C,SAAU,SAAS,IAAI,aAAa,EACpC,gBAAiB,IAAI,mBAAqB,GAC1C,KAAM,IAAI,MAAQ,IAAI,MAAQ,KAC9B,KAAM,IAAI,MAAQ,GAClB,YAAa,IAAI,aAAe,GAChC,cAAe,IAAI,iBAAmB,GACtC,cAAe,IAAI,iBAAmB,GACtC,WAAY,IAAI,YAAc,SAC9B,eAAgB,IAAI,iBAAmB,OACvC,OAAQ,IAAI,QAAU,IAAI,kBAAoB,WAC9C,WAAY,CAAE,MAAO,IAAI,kBAAoB,IAAI,QAAU,UAAW,EACtE,YAAa,OAAO,IAAI,cAAgB,CAAC,EACzC,OAAQ,OAAO,KAAM,GAAG,EACxB,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC/B,EAAG,eAAe,GAAG,CAAC,CACxB,CACA,GAAI,QAAU,WAAY,OAAO,OAAO,OAAO,CAC7C,GAAI,IAAI,mBAAqB,IAAI,GACjC,UAAW,IAAI,mBAAqB,IAAI,GACxC,OAAQ,IAAI,SAAW,GACvB,UAAW,SAAS,IAAI,cAAc,EACtC,iBAAkB,IAAI,oBAAsB,GAC5C,KAAM,IAAI,MAAQ,GAClB,OAAQ,IAAI,QAAU,IAAI,kBAAoB,UAC9C,WAAY,CAAE,MAAO,IAAI,kBAAoB,IAAI,QAAU,SAAU,EACrE,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC/B,EAAG,eAAe,GAAG,CAAC,EACtB,GAAI,QAAU,gBAAiB,CAC7B,IAAI,eAAiB,IAAI,mBAAqB,GAC1C,gBAAkB,CAAC,EAAE,gBAAkB,eAAe,KAAK,cAAc,GAC7E,MAAO,CACP,GAAI,IAAI,IAAM,IAAI,gBAClB,QAAS,IAAI,iBAAmB,gBAAkB,IAAI,GACtD,gBAAiB,IAAI,IAAM,GAC3B,cAAe,IAAI,iBAAmB,GACtC,gBAAiB,IAAI,iBAAmB,GACxC,eAAgB,IAAI,iBAAmB,gBAAkB,GACzD,SAAU,SAAS,IAAI,aAAa,EACpC,gBAAiB,oBAAoB,IAAI,mBAAqB,EAAE,EAChE,QAAS,IAAI,SAAW,GACxB,UAAW,IAAI,YAAc,GAC7B,KAAM,IAAI,MAAQ,GAClB,KAAM,IAAI,MAAQ,QAClB,SAAU,IAAI,WAAa,GAC3B,YAAa,IAAI,cAAgB,GACjC,MAAO,OAAO,IAAI,OAAS,CAAC,EAC5B,KAAM,eACN,UAAW,eACX,gBAAiB,eACjB,sBAAuB,gBACvB,qBAAsB,gBAAkB,8BAAgC,GACxE,WAAY,IAAI,YAAc,eAC9B,cAAe,IAAI,gBAAkB,WACrC,WAAY,IAAI,aAAe,OAC/B,OAAQ,IAAI,QAAU,iBACtB,kBAAmB,IAAI,sBAAwB,GAC/C,sBAAuB,IAAI,2BAA6B,GACxD,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC7B,CACF,CACA,OAAI,QAAU,mBAA2B,OAAO,OAAO,CAAE,GAAI,IAAI,gBAAkB,IAAI,GAAI,YAAa,IAAI,gBAAkB,IAAI,GAAI,WAAY,IAAI,aAAe,GAAI,MAAO,IAAI,OAAS,SAAU,EAAG,GAAG,EACzM,QAAU,iBAAyB,CACrC,GAAI,IAAI,aAAe,IAAI,GAC3B,SAAU,IAAI,YAAc,OAAO,IAAI,WAAW,EAAE,MAAM,GAAG,EAAE,IAAI,EAAI,IAAI,GAC3E,OAAQ,IAAI,aAAe,SAC3B,SAAU,IAAI,WAAa,GAC3B,WAAY,IAAI,aAAe,GAC/B,QAAS,IAAI,SAAW,GACxB,MAAO,IAAI,QAAU,UACrB,OAAQ,IAAI,QAAU,UACtB,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC/B,EACI,QAAU,gBAAwB,CACpC,GAAI,IAAI,GACR,OAAQ,IAAI,QAAU,eACtB,SAAU,SAAS,IAAI,aAAa,EACpC,UAAW,SAAS,IAAI,cAAc,EACtC,iBAAkB,IAAI,oBAAsB,GAC5C,WAAY,IAAI,aAAe,GAC/B,SAAU,IAAI,UAAY,CAAC,EAC3B,UAAW,IAAI,YAAc,EAC/B,EACI,QAAU,gBAAwB,OAAO,OAAO,CAAE,GAAI,IAAI,GAAI,eAAgB,IAAI,GAAI,aAAc,SAAS,IAAI,iBAAiB,EAAG,SAAU,SAAS,IAAI,aAAa,EAAG,SAAU,IAAI,SAAU,KAAM,IAAI,SAAU,MAAO,IAAI,OAAS,GAAI,KAAM,IAAI,MAAQ,GAAI,KAAM,IAAI,MAAQ,uBAAwB,KAAM,IAAI,OAAS,GAAM,SAAU,IAAI,UAAY,SAAU,UAAW,IAAI,YAAc,GAAI,UAAW,IAAI,YAAc,EAAG,EAAG,GAAG,EACpb,QAAU,gBAAwB,OAAO,OAAO,CAAE,GAAI,IAAI,wBAA0B,IAAI,GAAI,eAAgB,IAAI,wBAA0B,IAAI,GAAI,uBAAwB,IAAI,GAAI,gBAAiB,IAAI,iBAAmB,CAAC,GAAG,IAAI,QAAQ,EAAG,gBAAiB,IAAI,0BAA4B,CAAC,EAAG,mBAAoB,IAAI,sBAAwB,GAAI,WAAY,IAAI,YAAc,qBAAsB,UAAW,IAAI,YAAc,GAAI,UAAW,IAAI,YAAc,EAAG,EAAG,GAAG,EACjd,QAAU,WAAmB,OAAO,OAAO,CAAE,GAAI,IAAI,mBAAqB,IAAI,GAAI,UAAW,IAAI,mBAAqB,IAAI,GAAI,eAAgB,IAAI,iBAAmB,GAAI,uBAAwB,IAAI,iBAAmB,GAAI,UAAW,SAAS,IAAI,cAAc,EAAG,iBAAkB,IAAI,oBAAsB,GAAI,aAAc,SAAS,IAAI,iBAAiB,EAAG,KAAM,IAAI,MAAQ,GAAI,OAAQ,IAAI,QAAU,OAAQ,UAAW,IAAI,YAAc,GAAI,UAAW,IAAI,YAAc,EAAG,EAAG,GAAG,EAC/d,QAAU,UAAkB,CAC9B,IAAK,IAAI,gBAAkB,IAAM,KAAO,IAAI,gBAAkB,IAC9D,UAAW,SAAS,IAAI,cAAc,EACtC,UAAW,SAAS,IAAI,cAAc,EACtC,MAAO,IAAI,QAAU,SAAW,SAAY,IAAI,QAAU,YAAc,YAAe,IAAI,QAAU,WAAa,WAAc,IAAI,QAAU,UAAY,UAAY,aACtK,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC/B,EACI,QAAU,YAAoB,CAChC,GAAI,IAAI,gBAAkB,GAC1B,SAAU,SAAS,IAAI,OAAO,EAC9B,UAAW,SAAS,IAAI,cAAc,EACtC,MAAO,IAAI,QAAU,UAAY,IAAI,QAAU,WAAa,WAAa,UACzE,UAAW,IAAI,YAAc,GAC7B,UAAW,IAAI,YAAc,EAC/B,EACI,QAAU,QAAgB,CAC5B,GAAI,IAAI,WAAa,GACrB,SAAU,SAAS,IAAI,OAAO,EAC9B,WAAY,IAAI,aAAe,OAC/B,SAAU,IAAI,WAAa,GAC3B,MAAO,QACP,UAAW,IAAI,YAAc,EAC/B,EACO,OAAO,OAAO,CAAE,GAAI,IAAI,EAAG,EAAG,GAAG,CAC1C,CAEA,SAAS,eAAe,KAAM,KAAM,QAAQ,CAC1C,IAAI,IAAM,MAAM,KAAK,YAAc,KAAK,QAAU,kBAAkB,OAAO,GAAK,SAAS,EACrF,UAAY,MAAM,KAAK,SAAS,EAChC,YAAc,UAAY,iBAAiB,SAAS,EAAI,OAAO,KAAK,KAAO,CAAC,EAC5E,YAAc,KAAK,cAAgB,IAAQ,aAAe,GAC1D,KAAO,MAAM,KAAK,cAAgB,KAAK,IAAI,EAC3C,OAAS,MAAM,KAAK,eAAiB,KAAK,MAAM,EAChD,SAAW,MAAM,KAAK,UAAY,CAAC,KAAM,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,CAAC,EAC3E,IAAM,CACR,QAAS,oBAAoB,KAAM,QAAS,CAAC,MAAO,SAAU,UAAW,WAAY,WAAW,CAAC,EACjG,oBAAqB,MAAM,KAAK,mBAAqB,yBAAyB,OAAO,CAAC,EACtF,aAAc,MAAM,KAAK,KAAO,UAAU,IAAI,EAAE,CAAC,GAAK,WAAW,OAAO,CAAC,EACzE,YAAa,IACb,OAAQ,MAAM,KAAK,QAAU,GAAG,EAChC,aAAc,MAAM,KAAK,aAAe,KAAO,YAAY,EAC3D,IAAK,KAAK,MAAQ,GAAK,GAAK,MAAM,KAAK,GAAG,EAC1C,UAAW,WAAa,KACxB,aAAc,YACd,sBAAuB,CAAC,EAAE,aAAe,KAAK,sBAAwB,IACtE,WAAY,oBAAoB,KAAK,UAAU,EAC/C,eAAgB,gBAAgB,KAAK,aAAa,EAClD,YAAa,cAAc,KAAK,UAAU,EAC1C,iBAAkB,oBAAoB,KAAK,YAAc,KAAK,WAAW,OAAS,KAAK,iBAAkB,UAAU,EACnH,cAAe,iBAAiB,KAAK,MAAM,EAC3C,WAAY,KAAK,aAAe,GAChC,eAAgB,KAAK,gBAAkB,GACvC,WAAY,OAAO,CACrB,EACI,sBAAsB,kBACxB,IAAI,SAAW,SACf,IAAI,cAAgB,KACpB,IAAI,eAAiB,QAEnB,sBAAsB,uBAAyB,KAAK,iBAAmB,SAAW,IAAI,gBAAkB,MAAM,KAAK,gBAAkB,QAAQ,GACjJ,IAAI,OAAS,MAAM,KAAK,eAAiB,KAAK,iBAAmB,KAAK,uBAAyB,KAAK,wBAAwB,EACxH,OAAS,MAAM,KAAK,eAAiB,KAAK,eAAiB,KAAK,iBAAmB,KAAK,iBAAmB,KAAK,uBAAyB,KAAK,wBAAwB,EAC1K,OAAI,SACE,OAAO,MAAM,EAAG,IAAI,gBAAkB,QAExC,IAAI,yBAA2B,OAC3B,KAAK,qBAAuB,KAAM,IAAI,gBAAkB,QAG5D,SACE,OAAO,MAAM,EAAG,IAAI,gBAAkB,QAExC,IAAI,yBAA2B,OAC3B,KAAK,qBAAuB,KAAM,IAAI,gBAAkB,QAGzD,GACT,CACA,SAAS,qBAAqB,KAAM,KAAM,QAAQ,CAChD,IAAI,MAAQ,UAAU,IAAI,EACtB,IAAM,MAAM,KAAK,YAAc,KAAK,QAAU,MAAM,CAAC,GAAK,kBAAkB,OAAO,GAAK,SAAS,EACjG,KAAO,MAAM,KAAK,cAAgB,KAAK,IAAI,EAC3C,OAAS,MAAM,KAAK,eAAiB,KAAK,MAAM,EAChD,IAAM,CACR,YAAa,IACb,QAAS,oBAAoB,KAAM,QAAS,CAAC,MAAO,SAAU,UAAW,WAAY,WAAW,CAAC,EACjG,oBAAqB,MAAM,KAAK,mBAAqB,yBAAyB,OAAO,CAAC,EACtF,OAAQ,MAAM,KAAK,QAAU,GAAG,EAChC,aAAc,MAAM,KAAK,aAAe,KAAO,YAAY,EAC3D,IAAK,KAAK,MAAQ,GAAK,GAAK,MAAM,KAAK,GAAG,EAC1C,WAAY,KAAK,aAAe,GAChC,OAAQ,iBAAiB,KAAK,SAAW,iBAAmB,SAAW,KAAK,MAAM,EAClF,iBAAkB,oBAAoB,KAAK,YAAc,KAAK,WAAW,OAAS,KAAK,iBAAkB,UAAU,EACnH,WAAY,OAAO,CACrB,EACI,sBAAsB,gBAI1B,IAAI,OAAS,MAAM,KAAK,eAAiB,KAAK,iBAAmB,KAAK,uBAAyB,KAAK,wBAAwB,EACxH,OAAS,MAAM,KAAK,eAAiB,KAAK,eAAiB,KAAK,iBAAmB,KAAK,iBAAmB,KAAK,uBAAyB,KAAK,wBAAwB,EAC1K,OAAI,SACE,OAAO,MAAM,EAAG,IAAI,gBAAkB,OACjC,KAAK,qBAAuB,KAAM,IAAI,gBAAkB,OAE/D,SACE,OAAO,MAAM,EAAG,IAAI,gBAAkB,OACjC,KAAK,qBAAuB,KAAM,IAAI,gBAAkB,OAE5D,GACT,CACA,SAAS,2BAA2B,KAAK,CACvC,KAAO,MAAQ,CAAC,EAChB,IAAI,KAAO,OAAO,KAAK,IAAI,EAAE,OAAO,SAAS,IAAI,CAAE,MAAO,CAAC,YAAY,YAAY,EAAE,QAAQ,GAAG,IAAM,EAAI,CAAC,EAC3G,GAAI,CAAC,KAAK,OAAQ,MAAO,GACzB,IAAI,QAAU,CACZ,eAAgB,GAAM,gBAAiB,GACvC,cAAe,GAAM,gBAAiB,GAAM,oBAAqB,GAAM,uBAAwB,GAAM,aAAc,GAAM,eAAgB,GACzI,cAAe,GAAM,gBAAiB,GAAM,cAAe,GAAM,gBAAiB,GAAM,aAAc,GAAM,eAAgB,GAAM,kBAAmB,GAAM,oBAAqB,GAChL,mBAAoB,GAAM,mBAAoB,EAChD,EACA,OAAO,KAAK,MAAM,SAAS,IAAI,CAAE,OAAO,QAAQ,GAAG,IAAM,EAAM,CAAC,CAClE,CACA,SAAS,2BAA2B,KAAM,sBAAuB,kBAAkB,CACjF,KAAO,MAAQ,CAAC,EAChB,IAAI,IAAM,CAAE,WAAY,OAAO,CAAE,EAC7B,OAAS,MAAM,KAAK,eAAiB,KAAK,iBAAmB,KAAK,qBAAuB,KAAK,wBAA0B,KAAK,cAAgB,KAAK,cAAc,EAChK,OAAS,MAAM,KAAK,eAAiB,KAAK,iBAAmB,KAAK,eAAiB,KAAK,iBAAmB,KAAK,cAAgB,KAAK,gBAAkB,KAAK,mBAAqB,KAAK,mBAAmB,EAC7M,OAAI,OACE,OAAO,MAAM,EAAG,IAAI,gBAAkB,OACjC,oBAAmB,IAAI,yBAA2B,QAEpD,KAAK,qBAAuB,KAAM,IAAI,gBAAkB,MAC7D,OACE,OAAO,MAAM,EAAG,IAAI,gBAAkB,OACjC,oBAAmB,IAAI,yBAA2B,QAEpD,KAAK,qBAAuB,KAAM,IAAI,gBAAkB,MAC7D,uBAAyB,sBAAsB,wBAA0B,KAAK,iBAAmB,QAAa,KAAK,kBAAoB,UAAY,IAAI,gBAAkB,MAAM,KAAK,gBAAkB,KAAK,iBAAmB,QAAQ,GACnO,GACT,CACA,SAAS,YAAY,KAAM,KAAM,QAAQ,CACvC,IAAI,GAAK,UAAU,IAAI,EAAE,CAAC,GAAK,MAAM,KAAK,QAAU,KAAK,EAAE,GAAM,QAAU,KAAK,IAAI,EAChF,IAAM,CACR,eAAgB,GAChB,WAAY,OAAO,CACrB,EACI,UAAY,KAAK,OAAS,QAAa,KAAK,QAAU,QAAa,KAAK,kBAAoB,KAAK,WAAa,KAAK,YAAc,KAAK,eAAiB,KAAK,WAChK,OAAI,YACF,IAAI,eAAiB,oBAAoB,KAAM,QAAS,CAAC,YAAa,eAAgB,iBAAkB,WAAY,MAAO,SAAU,SAAS,CAAC,EAC/I,IAAI,mBAAqB,MAAM,KAAK,kBAAoB,kBAAkB,OAAO,CAAC,EAClF,IAAI,oBAAsB,MAAM,KAAK,mBAAqB,KAAK,aAAe,kBAAkB,OAAO,CAAC,EACxG,IAAI,oBAAsB,MAAM,KAAK,mBAAqB,yBAAyB,OAAO,CAAC,GAEzF,KAAK,OAAS,SAAW,IAAI,KAAO,MAAM,KAAK,IAAI,GACnD,KAAK,QAAU,SAAW,IAAI,MAAQ,MAAM,KAAK,KAAK,GACtD,KAAK,aAAe,SAAW,IAAI,WAAa,oBAAoB,KAAK,UAAU,GACnF,KAAK,gBAAkB,SAAW,IAAI,eAAiB,gBAAgB,KAAK,aAAa,GACzF,KAAK,aAAe,SAAW,IAAI,YAAc,cAAc,KAAK,UAAU,IAC9E,KAAK,aAAe,QAAa,KAAK,SAAW,QAAa,aAChE,IAAI,iBAAmB,oBAAoB,KAAK,YAAc,KAAK,WAAW,OAAS,KAAK,OAAQ,KAAK,QAAU,UAAU,EAC7H,IAAI,OAAS,oBAAoB,KAAK,QAAU,KAAK,YAAc,KAAK,WAAW,MAAO,UAAU,IAElG,KAAK,YAAc,QAAa,KAAK,QAAU,KAAK,OAAO,QAAU,UAAW,IAAI,WAAa,OAAO,KAAK,WAAa,KAAK,QAAU,KAAK,OAAO,OAAS,CAAC,IAC/J,KAAK,gBAAkB,QAAa,KAAK,QAAU,KAAK,OAAO,QAAU,UAAW,IAAI,eAAiB,OAAO,KAAK,eAAiB,KAAK,QAAU,KAAK,OAAO,OAAS,CAAC,IAC3K,KAAK,eAAiB,QAAa,KAAK,QAAU,KAAK,OAAO,WAAa,UAAW,IAAI,cAAgB,OAAO,KAAK,cAAgB,KAAK,QAAU,KAAK,OAAO,UAAY,CAAC,IAC9K,KAAK,aAAe,QAAa,KAAK,QAAU,KAAK,OAAO,SAAW,UAAW,IAAI,YAAc,OAAO,KAAK,YAAc,KAAK,QAAU,KAAK,OAAO,QAAU,CAAC,IACpK,KAAK,aAAe,QAAa,KAAK,aAAe,QAAa,KAAK,gBAAkB,QAAa,KAAK,aAAe,UAC5H,IAAI,YAAc,KAAK,aAAe,IAAQ,mBAAmB,KAAK,WAAY,KAAK,cAAe,KAAK,UAAU,EACjH,KAAK,aAAe,SAAW,IAAI,YAAc,mBAAmB,KAAK,WAAY,KAAK,cAAe,KAAK,UAAU,KAE1H,KAAK,YAAc,QAAa,KAAK,aAAe,UAAW,IAAI,WAAa,eAAe,KAAK,YAAc,OAAY,KAAK,UAAY,KAAK,UAAU,IAC9J,KAAK,WAAa,QAAa,KAAK,YAAc,UAAW,IAAI,UAAY,eAAe,KAAK,WAAa,OAAY,KAAK,SAAW,KAAK,SAAS,IACxJ,KAAK,aAAe,QAAa,KAAK,cAAgB,UAAW,IAAI,YAAc,eAAe,KAAK,aAAe,OAAY,KAAK,WAAa,KAAK,WAAW,GACjK,GACT,CACA,SAAS,mBAAmB,KAAK,CAC/B,YAAO,MAAQ,CAAC,EACT,KAAK,OAAS,QAAa,KAAK,QAAU,QAAa,CAAC,KAAK,kBAAoB,CAAC,KAAK,WAAa,CAAC,KAAK,YAAc,CAAC,KAAK,eAAiB,CAAC,KAAK,UAC9J,CACA,SAAS,aAAa,KAAM,KAAM,QAAQ,CACxC,IAAI,GAAK,UAAU,IAAI,EAAE,CAAC,GAAK,MAAM,KAAK,SAAW,KAAK,EAAE,GAAM,SAAW,KAAK,IAAI,EAClF,IAAM,CACR,gBAAiB,GACjB,WAAY,OAAO,CACrB,EACI,UAAY,KAAK,OAAS,QAAa,KAAK,kBAAoB,KAAK,iBAAmB,KAAK,YAAc,KAAK,eAAiB,KAAK,WAC1I,OAAI,YACF,IAAI,cAAgB,oBAAoB,KAAM,QAAS,CAAC,WAAY,YAAa,cAAe,gBAAiB,eAAgB,iBAAkB,MAAO,SAAU,SAAS,CAAC,EAC9K,IAAI,kBAAoB,MAAM,KAAK,kBAAoB,KAAK,iBAAmB,kBAAkB,OAAO,CAAC,EACzG,IAAI,mBAAqB,MAAM,KAAK,mBAAqB,KAAK,kBAAoB,kBAAkB,OAAO,CAAC,EAC5G,IAAI,oBAAsB,MAAM,KAAK,mBAAqB,yBAAyB,OAAO,CAAC,GAEzF,KAAK,OAAS,SAAW,IAAI,KAAO,MAAM,KAAK,IAAI,GACnD,KAAK,aAAe,SAAW,IAAI,WAAa,oBAAoB,KAAK,UAAU,GACnF,KAAK,gBAAkB,SAAW,IAAI,eAAiB,gBAAgB,KAAK,aAAa,GACzF,KAAK,aAAe,SAAW,IAAI,YAAc,cAAc,KAAK,UAAU,IAC9E,KAAK,aAAe,QAAa,KAAK,SAAW,QAAa,aAChE,IAAI,iBAAmB,oBAAoB,KAAK,YAAc,KAAK,WAAW,OAAS,KAAK,OAAQ,KAAK,QAAU,UAAU,EAC7H,IAAI,OAAS,oBAAoB,KAAK,QAAU,KAAK,YAAc,KAAK,WAAW,MAAO,UAAU,IAElG,KAAK,YAAc,QAAa,aAAW,IAAI,WAAa,MAAM,KAAK,WAAa,SAAS,GAC7F,KAAK,YAAc,SAAW,IAAI,WAAa,OAAO,KAAK,WAAa,CAAC,GACzE,KAAK,aAAe,SAAW,IAAI,YAAc,OAAO,KAAK,YAAc,CAAC,GAC5E,KAAK,mBAAqB,SAAW,IAAI,mBAAqB,OAAO,KAAK,kBAAoB,CAAC,IAC/F,KAAK,aAAe,QAAa,KAAK,aAAe,QAAa,KAAK,gBAAkB,QAAa,KAAK,aAAe,UAC5H,IAAI,YAAc,KAAK,aAAe,IAAQ,mBAAmB,KAAK,WAAY,KAAK,cAAe,KAAK,UAAU,EACjH,KAAK,aAAe,SAAW,IAAI,YAAc,mBAAmB,KAAK,WAAY,KAAK,cAAe,KAAK,UAAU,IAE1H,KAAK,YAAc,SAAW,IAAI,WAAa,eAAe,KAAK,SAAS,IAC5E,KAAK,YAAc,QAAa,KAAK,aAAe,UAAW,IAAI,WAAa,eAAe,KAAK,YAAc,OAAY,KAAK,UAAY,KAAK,UAAU,IAC9J,KAAK,WAAa,QAAa,KAAK,YAAc,UAAW,IAAI,UAAY,eAAe,KAAK,WAAa,OAAY,KAAK,SAAW,KAAK,SAAS,IACxJ,KAAK,aAAe,QAAa,KAAK,cAAgB,UAAW,IAAI,YAAc,eAAe,KAAK,aAAe,OAAY,KAAK,WAAa,KAAK,WAAW,IACpK,KAAK,YAAc,QAAa,KAAK,aAAe,QAAa,aAAW,IAAI,WAAa,eAAe,KAAK,WAAa,KAAK,UAAU,GAAK,OAAO,GACtJ,GACT,CACA,SAAS,sBAAsB,KAAM,KAAM,QAAQ,CACjD,IAAI,GAAK,UAAU,IAAI,EAAE,CAAC,GAAK,MAAM,KAAK,QAAU,KAAK,EAAE,GAAM,cAAgB,KAAK,IAAI,EACtF,WAAa,KAAK,QAAU,CAAC,EACjC,MAAO,CACL,eAAgB,GAChB,eAAgB,oBAAoB,KAAM,QAAS,CAAC,YAAa,eAAgB,iBAAkB,WAAY,MAAO,SAAU,SAAS,CAAC,EAC1I,mBAAoB,MAAM,KAAK,kBAAoB,kBAAkB,OAAO,CAAC,EAC7E,oBAAqB,MAAM,KAAK,mBAAqB,KAAK,aAAe,KAAK,kBAAoB,kBAAkB,OAAO,GAAK,aAAa,EAC7I,WAAY,SACZ,eAAgB,QAChB,YAAa,WACb,OAAQ,oBAAoB,KAAK,QAAU,KAAK,YAAc,KAAK,WAAW,MAAO,UAAU,EAC/F,iBAAkB,oBAAoB,KAAK,YAAc,KAAK,WAAW,OAAS,KAAK,OAAQ,UAAU,EACzG,WAAY,OAAO,KAAK,WAAa,WAAW,OAAS,CAAC,EAC1D,eAAgB,OAAO,KAAK,eAAiB,WAAW,OAAS,CAAC,EAClE,cAAe,OAAO,KAAK,cAAgB,WAAW,UAAY,CAAC,EACnE,YAAa,OAAO,KAAK,YAAc,WAAW,QAAU,CAAC,EAC7D,WAAY,KAAK,YAAc,QAAa,KAAK,aAAe,OAAY,eAAe,KAAK,YAAc,OAAY,KAAK,UAAY,KAAK,UAAU,EAAI,OAC9J,UAAW,KAAK,WAAa,QAAa,KAAK,YAAc,OAAY,eAAe,KAAK,WAAa,OAAY,KAAK,SAAW,KAAK,SAAS,EAAI,OACxJ,YAAa,KAAK,aAAe,QAAa,KAAK,cAAgB,OAAY,eAAe,KAAK,aAAe,OAAY,KAAK,WAAa,KAAK,WAAW,EAAI,OACpK,WAAY,OAAO,EACnB,WAAY,eAAe,KAAK,WAAa,KAAK,UAAU,GAAK,OAAO,CAC1E,CACF,CACA,SAAS,uBAAuB,KAAM,KAAM,QAAQ,CAClD,IAAI,GAAK,UAAU,IAAI,EAAE,CAAC,GAAK,MAAM,KAAK,SAAW,KAAK,EAAE,GAAM,eAAiB,KAAK,IAAI,EAC5F,MAAO,CACL,gBAAiB,GACjB,cAAe,oBAAoB,KAAM,QAAS,CAAC,WAAY,YAAa,cAAe,gBAAiB,eAAgB,iBAAkB,MAAO,SAAU,SAAS,CAAC,EACzK,kBAAmB,MAAM,KAAK,kBAAoB,KAAK,iBAAmB,kBAAkB,OAAO,CAAC,EACpG,mBAAoB,MAAM,KAAK,mBAAqB,KAAK,kBAAoB,KAAK,kBAAoB,KAAK,iBAAmB,kBAAkB,OAAO,GAAK,aAAa,EACzK,WAAY,SACZ,eAAgB,QAChB,YAAa,WACb,OAAQ,oBAAoB,KAAK,QAAU,KAAK,YAAc,KAAK,WAAW,MAAO,UAAU,EAC/F,iBAAkB,oBAAoB,KAAK,YAAc,KAAK,WAAW,OAAS,KAAK,OAAQ,UAAU,EACzG,WAAY,OAAO,KAAK,WAAa,CAAC,EACtC,YAAa,OAAO,KAAK,YAAc,CAAC,EACxC,mBAAoB,OAAO,KAAK,kBAAoB,CAAC,EACrD,WAAY,eAAe,KAAK,WAAa,KAAK,UAAU,EAC5D,WAAY,KAAK,YAAc,QAAa,KAAK,aAAe,OAAY,eAAe,KAAK,YAAc,OAAY,KAAK,UAAY,KAAK,UAAU,EAAI,OAC9J,UAAW,KAAK,WAAa,QAAa,KAAK,YAAc,OAAY,eAAe,KAAK,WAAa,OAAY,KAAK,SAAW,KAAK,SAAS,EAAI,OACxJ,YAAa,KAAK,aAAe,QAAa,KAAK,cAAgB,OAAY,eAAe,KAAK,aAAe,OAAY,KAAK,WAAa,KAAK,WAAW,EAAI,OACpK,WAAY,OAAO,EACnB,WAAY,eAAe,KAAK,WAAa,KAAK,UAAU,GAAK,OAAO,CAC1E,CACF,CACA,SAAS,oBAAoB,KAAK,CAChC,YAAO,MAAQ,CAAC,EACT,KAAK,OAAS,QAAa,CAAC,KAAK,kBAAoB,CAAC,KAAK,iBAAmB,CAAC,KAAK,YAAc,CAAC,KAAK,eAAiB,CAAC,KAAK,UACxI,CACA,SAAS,sBAAsB,KAAK,CAClC,YAAO,MAAQ,CAAC,EACT,KAAK,YAAc,QAAa,KAAK,mBAAqB,QAAa,KAAK,YAAc,QAAa,KAAK,QAAU,MAC/H,CACA,SAAS,aAAa,KAAM,KAAM,QAAQ,CACxC,IAAI,GAAK,UAAU,IAAI,EAAE,CAAC,GAAK,MAAM,KAAK,SAAW,KAAK,EAAE,GAAM,SAAW,KAAK,IAAI,EAClF,IAAM,CACR,gBAAiB,GACjB,WAAY,OAAO,CACrB,EACI,YAAc,KAAK,kBAAoB,QAAa,KAAK,WAAa,QAAa,KAAK,oBAAsB,QAAa,KAAK,UAAY,QAAa,KAAK,YAAc,QAAa,KAAK,WAAa,QAAa,KAAK,cAAgB,QAAa,KAAK,QAAU,QAAa,KAAK,OAAS,QAAa,KAAK,aAAe,QAAa,KAAK,gBAAkB,QAAa,KAAK,aAAe,QAAa,KAAK,oBAAsB,QAAa,KAAK,wBAA0B,OACle,OAAI,cACF,IAAI,cAAgB,oBAAoB,KAAM,QAAS,CAAC,WAAY,YAAa,cAAe,gBAAiB,eAAgB,iBAAkB,MAAO,SAAU,SAAS,CAAC,EAC9K,IAAI,kBAAoB,MAAM,KAAK,iBAAmB,kBAAkB,OAAO,CAAC,EAChF,IAAI,oBAAsB,MAAM,KAAK,mBAAqB,yBAAyB,OAAO,CAAC,GAEzF,KAAK,UAAY,SAAW,IAAI,QAAU,MAAM,KAAK,SAAW,SAAS,GACzE,KAAK,YAAc,SAAW,IAAI,WAAa,MAAM,KAAK,WAAa,WAAW,OAAO,CAAC,GAC1F,KAAK,OAAS,SAAW,IAAI,KAAO,MAAM,KAAK,IAAI,IACnD,KAAK,OAAS,QAAa,KAAK,cAAgB,UAAW,IAAI,KAAO,SAAS,KAAK,KAAK,MAAQ,KAAK,aAAe,EAAE,EAAI,QAAW,QAAQ,KAAK,KAAK,MAAQ,EAAE,EAAI,OAAS,SAC/K,KAAK,WAAa,SAAW,IAAI,UAAY,MAAM,KAAK,QAAQ,GAChE,KAAK,cAAgB,SAAW,IAAI,aAAe,MAAM,KAAK,aAAe,0BAA0B,GACvG,KAAK,QAAU,SAAW,IAAI,MAAQ,OAAO,KAAK,OAAS,CAAC,GAC5D,KAAK,sBAAwB,SAAW,IAAI,sBAAwB,OAAO,KAAK,qBAAuB,CAAC,IACxG,KAAK,OAAS,QAAa,KAAK,YAAc,QAAa,KAAK,kBAAoB,UAAW,IAAI,kBAAoB,MAAM,KAAK,MAAQ,KAAK,WAAa,KAAK,iBAAmB,EAAE,GACtL,KAAK,aAAe,SAAW,IAAI,WAAa,oBAAoB,KAAK,YAAc,cAAc,GACrG,KAAK,gBAAkB,SAAW,IAAI,eAAiB,gBAAgB,KAAK,aAAa,GACzF,KAAK,aAAe,SAAW,IAAI,YAAc,cAAc,KAAK,UAAU,IAC9E,KAAK,aAAe,QAAa,KAAK,mBAAqB,QAAa,KAAK,mBAAqB,QAAa,KAAK,SAAW,UAAW,IAAI,iBAAmB,yBAAyB,IAAI,GAC9L,KAAK,oBAAsB,SAAW,IAAI,oBAAsB,KAAK,oBAAsB,IAC3F,KAAK,wBAA0B,SAAW,IAAI,yBAA2B,KAAK,wBAA0B,IACxG,KAAK,wBAA0B,SAAW,IAAI,yBAA2B,MAAM,KAAK,qBAAqB,GACzG,KAAK,SAAW,SAAW,IAAI,OAAS,MAAM,KAAK,QAAU,gBAAgB,GAC7E,KAAK,cAAgB,SAAW,IAAI,aAAe,MAAM,KAAK,WAAW,GACtE,GACT,CACA,SAAS,YAAY,KAAM,KAAM,QAAS,QAAQ,CAChD,IAAI,EAAI,UAAU,IAAI,EAClB,UAAY,EAAE,CAAC,GAAK,MAAM,KAAK,WAAa,KAAK,EAAE,GAAM,WAAa,KAAK,IAAI,EACnF,OAAO,cAAc,EAAE,CAAC,GAAK,KAAK,OAAQ,OAAO,EAAE,KAAK,SAAS,OAAO,CACtE,IAAI,QAAU,sBAAsB,IAAI,EACxC,MAAO,CACH,MAAO,WACP,SAAU,oBACV,WAAY,CAAC,QACb,MAAO,QAAW,wBAA0B,mBAAmB,SAAS,EAAK,GAC7E,QAAS,aAAa,CACpB,kBAAmB,UACnB,QAAS,OACX,eAAgB,oBAAoB,KAAM,QAAS,CAAC,YAAa,eAAgB,iBAAkB,WAAY,MAAO,SAAU,SAAS,CAAC,EAC1I,mBAAoB,MAAM,KAAK,kBAAoB,kBAAkB,OAAO,CAAC,EAC7E,KAAM,MAAM,KAAK,IAAI,EACrB,iBAAkB,oBAAoB,KAAK,YAAc,KAAK,WAAW,OAAS,KAAK,OAAQ,KAAK,QAAU,UAAU,EACxH,OAAQ,oBAAoB,KAAK,QAAU,KAAK,YAAc,KAAK,WAAW,MAAO,UAAU,EAC/F,WAAY,KAAK,YAAc,QAAa,KAAK,aAAe,OAAY,eAAe,KAAK,YAAc,OAAY,KAAK,UAAY,KAAK,UAAU,EAAI,OAC9J,UAAW,KAAK,WAAa,QAAa,KAAK,YAAc,OAAY,eAAe,KAAK,WAAa,OAAY,KAAK,SAAW,KAAK,SAAS,EAAI,OACxJ,WAAY,OAAO,CACrB,CAAC,EACD,IAAK,CAAE,kBAAmB,SAAU,CACtC,CACF,CAAC,CACH,CACA,SAAS,aAAa,KAAM,KAAM,QAAS,QAAQ,CACjD,IAAI,EAAI,UAAU,IAAI,EAClB,aAAe,MAAM,KAAK,cAAgB,KAAK,MAAQ,MAAM,GAAK,OACtE,OAAO,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,GAAK,KAAK,OAAQ,OAAO,EAAG,cAAc,EAAE,CAAC,GAAK,KAAK,KAAO,cAAc,OAAO,EAAG,QAAS,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAC/J,MAAO,CACL,MAAO,YACP,SAAU,gCACV,UAAW,MAAQ,KAAK,SAAW,GACnC,QAAS,CACP,QAAS,IAAI,CAAC,EACd,QAAS,IAAI,CAAC,EACd,cAAe,aACf,WAAY,OAAO,CACrB,EACA,IAAK,CAAE,QAAS,IAAI,CAAC,EAAG,QAAS,IAAI,CAAC,EAAG,cAAe,YAAa,CACvE,CACF,CAAC,CACH,CACA,SAAS,aAAa,MAAO,KAAM,KAAM,QAAQ,CAC/C,IAAI,MAAQ,QAAU,YAAc,qBAAuB,mBACvD,GAAK,UAAU,IAAI,EAAE,CAAC,GAAK,MAAM,KAAK,YAAc,KAAK,UAAY,KAAK,EAAE,GAAM,MAAQ,IAAM,KAAK,IAAI,EACzG,IAAM,CACR,cAAe,cAAc,OAAO,EACpC,kBAAmB,MAAM,KAAK,iBAAmB,kBAAkB,OAAO,CAAC,EAC3E,KAAM,MAAM,KAAK,MAAQ,KAAK,OAAS,EAAE,EACzC,KAAM,MAAM,KAAK,MAAQ,EAAE,EAAE,YAAY,EAAE,QAAQ,eAAgB,GAAG,EAAE,QAAQ,WAAY,EAAE,EAC9F,YAAa,MAAM,KAAK,aAAe,KAAK,IAAI,EAChD,WAAY,oBAAoB,KAAK,UAAU,EAC/C,iBAAkB,oBAAoB,KAAK,YAAc,KAAK,WAAW,OAAS,KAAK,OAAQ,UAAU,EACzG,OAAQ,oBAAoB,KAAK,OAAQ,UAAU,EACnD,aAAc,OAAO,KAAK,aAAe,CAAC,EAC1C,WAAY,OAAO,CACrB,EACA,WAAI,KAAK,EAAI,GACT,OAAO,KAAK,eAAiB,KAAK,eAAe,IAAG,IAAI,gBAAkB,MAAM,KAAK,eAAiB,KAAK,eAAe,GAC1H,OAAO,KAAK,eAAiB,KAAK,iBAAmB,KAAK,eAAiB,KAAK,eAAe,IAAG,IAAI,gBAAkB,MAAM,KAAK,eAAiB,KAAK,iBAAmB,KAAK,eAAiB,KAAK,eAAe,GACtN,QAAU,YAAc,OAAO,KAAK,kBAAoB,KAAK,kBAAkB,IAAG,IAAI,mBAAqB,MAAM,KAAK,kBAAoB,KAAK,kBAAkB,GACjK,QAAU,cAAa,IAAI,gBAAkB,MAAM,KAAK,gBAAkB,MAAM,GAC7E,GACT,CACA,SAAS,iBAAiB,KAAM,KAAM,QAAS,QAAQ,CACrD,IAAI,EAAI,UAAU,IAAI,EAClB,KAAO,EAAE,CAAC,EACV,UAAY,OAAS,YAAc,EAAE,CAAC,EAAI,EAAE,CAAC,EAC7C,UAAY,OAAS,YAAc,EAAE,CAAC,EAAI,EAAE,CAAC,EACjD,OAAO,QAAQ,IAAI,CAAC,cAAc,UAAW,QAAS,OAAO,EAAG,cAAc,UAAW,QAAS,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAC7H,MAAO,CACL,MAAO,UACP,SAAU,gCACV,QAAS,CACP,eAAgB,IAAI,CAAC,EACrB,eAAgB,IAAI,CAAC,EACrB,MAAO,MAAQ,oDAAoD,KAAK,MAAM,KAAK,KAAK,CAAC,EAAK,MAAM,KAAK,KAAK,IAAM,aAAe,UAAY,MAAM,KAAK,KAAK,EAAK,SACpK,WAAY,OAAO,CACrB,EACA,IAAK,CAAE,eAAgB,IAAI,CAAC,EAAG,eAAgB,IAAI,CAAC,CAAE,CACxD,CACF,CAAC,CACH,CACA,SAAS,aAAa,KAAM,KAAM,QAAS,QAAQ,CACjD,IAAI,EAAI,UAAU,IAAI,EACtB,OAAO,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,EAAG,QAAS,OAAO,EAAG,cAAc,EAAE,CAAC,EAAG,QAAS,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CACnH,MAAO,CACL,MAAO,YACP,SAAU,yBACV,QAAS,CACP,QAAS,IAAI,CAAC,EACd,eAAgB,IAAI,CAAC,EACrB,MAAO,MAAQ,KAAK,QAAU,UAAY,UAAY,SACtD,WAAY,OAAO,CACrB,EACA,IAAK,CAAE,QAAS,IAAI,CAAC,EAAG,eAAgB,IAAI,CAAC,CAAE,CACjD,CACF,CAAC,CACH,CACA,SAAS,SAAS,KAAM,KAAM,QAAS,QAAQ,CAC7C,IAAI,EAAI,UAAU,IAAI,EAClB,WAAa,MAAM,MAAQ,KAAK,YAAc,MAAM,EACxD,OAAO,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC,EAAG,QAAS,OAAO,EAAG,gBAAgB,WAAY,EAAE,CAAC,GAAK,MAAQ,KAAK,SAAU,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CACjJ,MAAO,CACL,MAAO,QACP,SAAU,gCACV,UAAW,MAAQ,KAAK,QAAU,UAClC,QAAS,CACP,QAAS,IAAI,CAAC,EACd,YAAa,WACb,UAAW,IAAI,CAAC,CAClB,EACA,IAAK,CAAE,QAAS,IAAI,CAAC,EAAG,YAAa,WAAY,UAAW,IAAI,CAAC,CAAE,CACrE,CACF,CAAC,CACH,CACA,SAAS,iBAAiB,KAAM,KAAM,QAAS,QAAQ,CACrD,IAAI,EAAI,UAAU,IAAI,EAClB,eAAiB,EAAE,CAAC,GAAK,GAC7B,OAAO,QAAQ,IAAI,CACjB,cAAc,EAAE,CAAC,GAAK,MAAQ,KAAK,cAAgB,cAAc,OAAO,EAAG,QAAS,OAAO,EAC3F,MAAQ,KAAK,SAAW,cAAc,KAAK,SAAU,QAAS,OAAO,EAAE,MAAM,UAAU,CAAE,OAAO,cAAc,OAAO,CAAG,CAAC,EAAI,QAAQ,QAAQ,cAAc,OAAO,CAAC,CACrK,CAAC,EAAE,KAAK,SAAS,IAAI,CACnB,IAAI,IAAM,CACR,kBAAmB,IAAI,CAAC,EACxB,cAAe,IAAI,CAAC,EACpB,SAAU,MAAM,OAAS,KAAK,UAAY,KAAK,OAAS,QAAQ,EAChE,MAAO,MAAM,MAAQ,KAAK,OAAS,cAAc,EACjD,KAAM,MAAM,MAAQ,KAAK,IAAI,EAC7B,KAAM,MAAM,MAAQ,KAAK,MAAQ,sBAAsB,EACvD,KAAM,MAAQ,KAAK,OAAS,GAC5B,SAAU,MAAM,MAAQ,KAAK,UAAY,QAAQ,CACnD,EAGA,OAFI,OAAO,MAAQ,KAAK,QAAQ,IAAG,IAAI,UAAY,KAAK,UACpD,MAAQ,KAAK,aAAY,IAAI,YAAc,MAAM,KAAK,UAAU,GAChE,gBAAkB,OAAO,cAAc,EAClC,CAAE,MAAO,gBAAiB,MAAO,SAAW,mBAAmB,cAAc,EAAG,QAAS,IAAK,IAAK,CAAE,GAAI,cAAe,CAAE,EAE5H,CAAE,MAAO,gBAAiB,WAAY,GAAM,QAAS,GAAI,CAClE,CAAC,CACH,CACA,SAAS,iBAAiB,KAAM,KAAM,QAAQ,CAC5C,IAAI,EAAI,UAAU,IAAI,EAClB,SAAW,MAAM,EAAE,CAAC,GAAK,MAAQ,KAAK,UAAa,UAAY,KAAK,IAAI,CAAE,EAC1E,WAAa,MAAM,MAAQ,KAAK,YAAe,iBAAmB,QAAS,EAC3E,IAAM,CACR,iBAAkB,cAAc,OAAO,EACvC,YAAa,MAAM,OAAS,KAAK,YAAc,KAAK,SAAW,QAAQ,EACvE,UAAW,MAAM,MAAQ,KAAK,UAAY,QAAQ,EAClD,YAAa,WACb,QAAS,MAAM,OAAS,KAAK,SAAW,KAAK,SAAW,KAAK,KAAK,EAClE,OAAQ,oBAAoB,OAAS,KAAK,OAAS,KAAK,QAAS,SAAS,EAC1E,WAAY,OAAO,CACrB,EACA,OAAI,OAAS,KAAK,UAAY,KAAK,QAAU,KAAK,SAAW,KAAK,UAAY,KAAK,SAC1E,CAAE,MAAO,iBAAkB,WAAY,GAAM,QAAS,GAAI,EAE5D,CAAE,MAAO,iBAAkB,MAAO,kBAAoB,mBAAmB,UAAU,EAAG,QAAS,IAAK,IAAK,CAAE,YAAa,UAAW,CAAE,CAC9I,CACA,SAAS,iBAAiB,KAAM,KAAM,QAAQ,CAC5C,YAAO,MAAQ,CAAC,EACT,CACL,MAAO,gBACP,WAAY,GACZ,QAAS,CACP,OAAQ,MAAM,KAAK,QAAU,eAAe,EAC5C,cAAe,cAAc,OAAO,EACpC,eAAgB,OAAO,KAAK,WAAa,KAAK,cAAc,EAAK,KAAK,WAAa,KAAK,eAAkB,OAC1G,mBAAoB,MAAM,KAAK,kBAAoB,KAAK,kBAAkB,EAC1E,YAAa,MAAM,KAAK,YAAc,KAAK,WAAW,EACtD,SAAU,OAAO,OAAO,CAAC,EAAG,KAAK,UAAY,CAAC,EAAG,CAC/C,YAAa,KAAK,aAAe,GACjC,gBAAiB,KAAK,iBAAmB,GACzC,QAAS,KAAK,SAAW,GACzB,oBAAqB,KAAK,eAAiB,EAC7C,CAAC,CACH,CACF,CACF,CACA,SAAS,iBAAiB,KAAM,KAAM,QAAS,QAAQ,CACrD,IAAI,EAAI,UAAU,IAAI,EAClB,IAAM,EAAE,CAAC,GAAK,MAAM,MAAQ,KAAK,cAAc,GAAM,gBAAkB,KAAK,IAAI,EAChF,wBAA0B,MAAM,QAAQ,MAAQ,KAAK,cAAc,GAAK,KAAK,eAAe,OAC5F,aAAe,wBAA0B,KAAK,eAAiB,CAAC,cAAc,OAAO,CAAC,EAC1F,OAAO,QAAQ,IAAI,aAAa,IAAI,SAAS,KAAK,CAAE,OAAO,cAAc,KAAM,QAAS,OAAO,CAAG,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAEtH,GADA,IAAM,MAAM,KAAK,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,KAAK,EAC/C,CAAC,IAAI,OAAQ,MAAM,IAAI,MAAM,0DAA0D,EAC3F,GAAI,CAAC,yBAA2B,IAAI,QAAQ,cAAc,OAAO,CAAC,IAAM,GAAI,MAAM,IAAI,MAAM,uDAAuD,EACnJ,MAAO,CACL,MAAO,gBACP,SAAU,yBACV,QAAS,CACP,uBAAwB,IACxB,gBAAiB,IACjB,yBAA0B,MAAM,QAAQ,MAAQ,KAAK,eAAe,GAAK,KAAK,gBAAgB,OAAS,KAAK,gBAAgB,IAAI,KAAK,EAAI,CAAC,kBAAkB,OAAO,CAAC,EAAE,OAAO,OAAO,EACpL,qBAAsB,MAAM,MAAQ,KAAK,kBAAkB,EAC3D,WAAY,qBACZ,iBAAkB,WAClB,WAAY,OAAO,CACrB,EACA,IAAK,CAAE,uBAAwB,GAAI,CACrC,CACF,CAAC,CACH,CACA,SAAS,YAAY,KAAM,KAAM,QAAS,QAAQ,CAChD,IAAI,EAAI,UAAU,IAAI,EAClB,IAAM,EAAE,CAAC,GAAK,MAAM,MAAQ,KAAK,cAAc,EAC/C,UAAY,EAAE,CAAC,GAAK,MAAM,MAAQ,KAAK,SAAS,GAAM,WAAa,KAAK,IAAI,EAChF,OAAO,sBAAsB,IAAK,OAAO,EAAE,KAAK,SAAS,iBAAiB,CACxE,OAAO,QAAQ,gBAAiB,CAAE,OAAQ,qBAAsB,GAAI,MAAQ,gBAAiB,EAAG,OAAO,EAAE,KAAK,SAAS,aAAa,CAClI,IAAI,aAAe,cAAgB,aAAa,iBAAmB,CAAC,EAChE,WAAa,oBAAoB,KAAM,QAAS,CAAC,YAAa,eAAgB,iBAAkB,YAAa,WAAY,MAAO,SAAU,SAAS,CAAC,EACpJ,UAAY,MAAM,OAAS,KAAK,cAAgB,KAAK,iBAAmB,KAAK,kBAAkB,EAC/F,iBAAmB,UAAY,cAAc,UAAW,QAAS,OAAO,EAAI,QAAQ,QAAQ,aAAa,OAAO,SAAS,GAAG,CAAE,OAAO,KAAO,UAAY,CAAC,EAAE,CAAC,GAAK,UAAU,EAC/K,OAAO,iBAAiB,KAAK,SAAS,cAAc,CAClD,MAAO,CACL,MAAO,WACP,WAAY,GACZ,QAAS,CACP,kBAAmB,UACnB,gBAAiB,iBACjB,eAAgB,WAChB,mBAAoB,MAAM,MAAQ,KAAK,kBAAoB,kBAAkB,OAAO,CAAC,EACrF,kBAAmB,cACnB,KAAM,MAAM,MAAQ,KAAK,IAAI,EAC7B,OAAQ,MAAM,MAAQ,KAAK,QAAU,MAAM,EAC3C,WAAY,qBACZ,iBAAkB,WAClB,WAAY,OAAO,CACrB,CACF,CACF,CAAC,CACH,CAAC,CACH,CAAC,CACH,CACA,SAAS,gBAAgB,KAAM,KAAM,QAAQ,CAC3C,IAAI,GAAK,UAAU,IAAI,EAAE,CAAC,EACtB,IAAM,YAAY,KAAM,MAAQ,CAAC,EAAG,OAAO,EAC/C,OAAI,OAAO,EAAE,GAAK,mBAAmB,MAAQ,CAAC,CAAC,GAC7C,OAAO,IAAI,eACJ,CAAE,MAAO,QAAS,MAAO,SAAW,mBAAmB,EAAE,EAAG,QAAS,IAAK,IAAK,CAAE,GAAI,EAAG,CAAE,GAE5F,CAAE,MAAO,QAAS,SAAU,iBAAkB,MAAO,mBAAmB,IAAI,EAAK,qBAAuB,mBAAmB,EAAE,EAAK,GAAI,QAAS,IAAK,IAAK,CAAE,eAAgB,EAAG,CAAE,CACzL,CACA,SAAS,iBAAiB,KAAM,KAAM,QAAQ,CAC5C,IAAI,GAAK,UAAU,IAAI,EAAE,CAAC,EACtB,IAAM,aAAa,KAAM,MAAQ,CAAC,EAAG,OAAO,EAChD,OAAI,OAAO,EAAE,GAAK,oBAAoB,MAAQ,CAAC,CAAC,GAC9C,OAAO,IAAI,gBACJ,CAAE,MAAO,UAAW,MAAO,SAAW,mBAAmB,EAAE,EAAG,QAAS,IAAK,IAAK,CAAE,GAAI,EAAG,CAAE,GAE9F,CAAE,MAAO,UAAW,SAAU,kBAAmB,MAAO,oBAAoB,IAAI,EAAK,sBAAwB,mBAAmB,EAAE,EAAK,GAAI,QAAS,IAAK,IAAK,CAAE,gBAAiB,EAAG,CAAE,CAC/L,CACA,SAAS,SAAS,KAAM,KAAM,QAAQ,CACpC,IAAI,EAAI,UAAU,IAAI,EACtB,OAAI,sBAAsB,IAAI,EAAU,KACpC,EAAE,CAAC,IAAM,YAAc,EAAE,CAAC,EACxB,2BAA2B,MAAQ,CAAC,CAAC,EAAU,CAAE,MAAO,WAAY,MAAO,mBAAqB,mBAAmB,EAAE,CAAC,CAAC,EAAG,QAAS,2BAA2B,MAAQ,CAAC,EAAG,GAAM,EAAI,EAAG,IAAK,CAAE,aAAc,EAAE,CAAC,CAAE,CAAE,EAChN,CAAE,MAAO,WAAY,SAAU,cAAe,QAAS,eAAe,KAAM,MAAQ,CAAC,EAAG,OAAO,EAAG,IAAK,CAAE,aAAc,EAAE,CAAC,CAAE,CAAE,EAEnI,EAAE,CAAC,IAAM,kBAAoB,EAAE,CAAC,EAC9B,2BAA2B,MAAQ,CAAC,CAAC,EAAU,CAAE,MAAO,kBAAmB,MAAO,kBAAoB,mBAAmB,EAAE,CAAC,CAAC,EAAG,QAAS,2BAA2B,MAAQ,CAAC,EAAG,GAAO,EAAK,EAAG,IAAK,CAAE,YAAa,EAAE,CAAC,CAAE,CAAE,EACvN,CAAE,MAAO,kBAAmB,SAAU,cAAe,MAAO,kBAAoB,mBAAmB,EAAE,CAAC,CAAC,EAAG,QAAS,qBAAqB,KAAM,MAAQ,CAAC,EAAG,OAAO,EAAG,IAAK,CAAE,YAAa,EAAE,CAAC,CAAE,CAAE,EAEpM,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,GAAK,CAAC,EAAE,CAAC,EAAU,gBAAgB,KAAM,MAAQ,CAAC,EAAG,OAAO,EACnF,EAAE,CAAC,IAAM,WAAa,EAAE,CAAC,EAAU,iBAAiB,KAAM,MAAQ,CAAC,EAAG,OAAO,EAC7E,EAAE,CAAC,IAAM,kBAAoB,EAAE,CAAC,EAAU,CAAE,MAAO,gBAAiB,SAAU,kBAAmB,QAAS,aAAa,KAAM,MAAQ,CAAC,EAAG,OAAO,EAAG,IAAK,CAAE,gBAAiB,EAAE,CAAC,CAAE,CAAE,EAClL,EAAE,CAAC,IAAM,mBAAqB,EAAE,CAAC,EAAU,CAAE,MAAO,oBAAqB,SAAU,iBAAkB,QAAS,sBAAsB,KAAM,MAAQ,CAAC,EAAG,OAAO,EAAG,IAAK,CAAE,eAAgB,EAAE,CAAC,CAAE,CAAE,EAC9L,EAAE,CAAC,IAAM,oBAAsB,EAAE,CAAC,EAAU,CAAE,MAAO,qBAAsB,SAAU,kBAAmB,QAAS,uBAAuB,KAAM,MAAQ,CAAC,EAAG,OAAO,EAAG,IAAK,CAAE,gBAAiB,EAAE,CAAC,CAAE,CAAE,EACnM,EAAE,CAAC,IAAM,iBAAmB,EAAE,CAAC,EAAU,iBAAiB,KAAM,MAAQ,CAAC,EAAG,OAAO,EACnF,EAAE,CAAC,IAAM,eAAuB,iBAAiB,KAAM,MAAQ,CAAC,EAAG,OAAO,EAC1E,EAAE,CAAC,IAAM,aAAe,EAAE,CAAC,GAAK,CAAC,EAAE,CAAC,EAAU,CAAE,MAAO,YAAa,SAAU,qBAAsB,QAAS,aAAa,YAAa,KAAM,MAAQ,CAAC,EAAG,OAAO,EAAG,IAAK,CAAE,mBAAoB,EAAE,CAAC,CAAE,CAAE,EACrM,EAAE,CAAC,IAAM,YAAc,EAAE,CAAC,GAAK,CAAC,EAAE,CAAC,EAAU,CAAE,MAAO,WAAY,SAAU,mBAAoB,QAAS,aAAa,WAAY,KAAM,MAAQ,CAAC,EAAG,OAAO,EAAG,IAAK,CAAE,iBAAkB,EAAE,CAAC,CAAE,CAAE,EAC9L,EAAE,CAAC,IAAM,mBAAqB,EAAE,CAAC,EAAU,CAAE,MAAO,mBAAoB,SAAU,iBAAkB,QAAS,CAAE,eAAgB,EAAE,CAAC,EAAG,QAAS,OAAO,MAAQ,CAAC,GAAG,SAAW,MAAM,EAAG,YAAa,OAAO,MAAQ,CAAC,GAAG,UAAU,EAAG,UAAW,OAAO,MAAQ,CAAC,GAAG,UAAY,EAAE,CAAC,CAAC,EAAG,eAAgB,cAAc,OAAO,EAAG,QAAS,OAAO,MAAQ,CAAC,GAAG,OAAO,EAAG,MAAO,qBAAqB,MAAQ,CAAC,GAAG,MAAO,SAAS,EAAG,YAAa,MAAQ,CAAC,GAAG,WAAa,qBAAqB,MAAQ,CAAC,GAAG,UAAU,EAAI,OAAW,gBAAiB,MAAQ,CAAC,GAAG,cAAgB,iBAAiB,MAAQ,CAAC,GAAG,aAAa,EAAI,OAAW,aAAc,MAAQ,CAAC,GAAG,WAAa,eAAe,MAAQ,CAAC,GAAG,UAAU,EAAI,OAAW,WAAY,OAAO,CAAE,EAAG,IAAK,CAAE,eAAgB,EAAE,CAAC,CAAE,CAAE,EAChvB,IACT,CACA,SAAS,cAAc,KAAM,KAAM,QAAS,QAAQ,CAClD,IAAI,EAAI,UAAU,IAAI,EACtB,OAAI,EAAE,CAAC,IAAM,YAAc,EAAE,CAAC,IAAM,UAC9B,2BAA2B,MAAQ,CAAC,CAAC,EAChC,8BAA8B,MAAQ,CAAC,EAAG,QAAS,QAAS,CAAC,aAAc,QAAQ,EAAG,CAAC,MAAO,SAAU,UAAW,WAAY,WAAW,CAAC,EAAE,KAAK,SAAS,UAAU,CAC1K,GAAI,CAAC,UAAW,MAAM,IAAI,MAAM,8DAA8D,EAC9F,MAAO,CACP,MAAO,WACP,MAAO,cAAgB,mBAAmB,SAAS,EACnD,QAAS,2BAA2B,MAAQ,CAAC,EAAG,GAAM,EAAI,EAC1D,IAAK,CAAE,QAAS,SAAU,CAC1B,CACF,CAAC,EAEI,8BAA8B,MAAQ,CAAC,EAAG,QAAS,QAAS,CAAC,aAAc,QAAQ,EAAG,CAAC,MAAO,SAAU,UAAW,WAAY,WAAW,CAAC,EAAE,KAAK,SAAS,UAAU,CAC1K,IAAI,WAAa,eAAe,KAAM,MAAQ,CAAC,EAAG,OAAO,EACzD,kBAAW,QAAU,UACd,CACL,MAAO,WACP,SAAU,cACV,QAAS,WACT,IAAK,CAAE,QAAS,SAAU,CAC5B,CACF,CAAC,EAEC,EAAE,CAAC,IAAM,kBAAoB,EAAE,CAAC,EAC3B,8BAA8B,MAAQ,CAAC,EAAG,QAAS,QAAS,CAAC,aAAc,QAAQ,EAAG,CAAC,MAAO,SAAU,UAAW,WAAY,WAAW,CAAC,EAAE,KAAK,SAAS,QAAQ,CACxK,IAAI,KAAO,SAAS,KAAM,MAAQ,CAAC,EAAG,OAAO,EAC7C,OAAI,MAAQ,KAAK,SAAW,KAAK,QAAQ,UAAS,KAAK,QAAQ,QAAU,SAClE,IACT,CAAC,EAEC,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,GAAK,CAAC,EAAE,CAAC,GAAK,CAAC,mBAAmB,MAAQ,CAAC,CAAC,EAC9D,8BAA8B,MAAQ,CAAC,EAAG,QAAS,QAAS,CAAC,mBAAoB,kBAAmB,YAAY,EAAG,CAAC,YAAa,WAAY,KAAK,CAAC,EAAE,KAAK,SAAS,SAAS,CACjL,IAAI,KAAO,SAAS,KAAM,MAAQ,CAAC,EAAG,OAAO,EAC7C,OAAI,MAAQ,KAAK,UAAS,KAAK,QAAQ,eAAiB,UACjD,IACT,CAAC,EAEC,EAAE,CAAC,IAAM,WAAa,EAAE,CAAC,GAAK,CAAC,oBAAoB,MAAQ,CAAC,CAAC,EACxD,8BAA8B,MAAQ,CAAC,EAAG,QAAS,QAAS,CAAC,mBAAoB,kBAAmB,YAAY,EAAG,CAAC,WAAY,YAAa,KAAK,CAAC,EAAE,KAAK,SAAS,QAAQ,CAChL,IAAI,KAAO,SAAS,KAAM,MAAQ,CAAC,EAAG,OAAO,EAC7C,OAAI,MAAQ,KAAK,UAAS,KAAK,QAAQ,cAAgB,SAChD,IACT,CAAC,EAEC,EAAE,CAAC,IAAM,kBAAoB,EAAE,CAAC,EAC3B,8BAA8B,MAAQ,CAAC,EAAG,QAAS,QAAS,CAAC,kBAAmB,mBAAoB,YAAY,EAAG,CAAC,WAAY,YAAa,KAAK,CAAC,EAAE,KAAK,SAAS,QAAQ,CAChL,IAAI,KAAO,SAAS,KAAM,MAAQ,CAAC,EAAG,OAAO,EAC7C,OAAI,MAAQ,KAAK,SAAW,KAAK,QAAQ,gBAAe,KAAK,QAAQ,cAAgB,SAC9E,IACT,CAAC,EAEC,EAAE,CAAC,IAAM,mBAAqB,EAAE,CAAC,EAC5B,8BAA8B,MAAQ,CAAC,EAAG,QAAS,QAAS,CAAC,mBAAoB,kBAAmB,YAAY,EAAG,CAAC,YAAa,WAAY,KAAK,CAAC,EAAE,KAAK,SAAS,SAAS,CACjL,IAAI,KAAO,SAAS,KAAM,MAAQ,CAAC,EAAG,OAAO,EAC7C,OAAI,MAAQ,KAAK,UAAS,KAAK,QAAQ,eAAiB,UACjD,IACT,CAAC,EAEC,EAAE,CAAC,IAAM,oBAAsB,EAAE,CAAC,EAC7B,8BAA8B,MAAQ,CAAC,EAAG,QAAS,QAAS,CAAC,mBAAoB,kBAAmB,YAAY,EAAG,CAAC,WAAY,YAAa,KAAK,CAAC,EAAE,KAAK,SAAS,QAAQ,CAChL,IAAI,KAAO,SAAS,KAAM,MAAQ,CAAC,EAAG,OAAO,EAC7C,OAAI,MAAQ,KAAK,UAAS,KAAK,QAAQ,cAAgB,SAChD,IACT,CAAC,EAEC,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,YAAc,EAAE,CAAC,EAAU,YAAY,KAAM,MAAQ,CAAC,EAAG,QAAS,OAAO,EAC9G,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,aAAe,EAAE,CAAC,EAAU,aAAa,KAAM,MAAQ,CAAC,EAAG,QAAS,OAAO,EAChH,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,UAAY,EAAE,CAAC,EAAU,aAAa,KAAM,OAAO,OAAO,CAAC,EAAG,MAAQ,CAAC,EAAG,CAAE,aAAc,QAAS,OAAQ,EAAK,CAAC,EAAG,QAAS,OAAO,EACzK,EAAE,CAAC,IAAM,iBAAmB,EAAE,CAAC,IAAM,EAAE,CAAC,IAAM,aAAe,EAAE,CAAC,IAAM,cAAgB,EAAE,CAAC,EAAU,iBAAiB,KAAM,MAAQ,CAAC,EAAG,QAAS,OAAO,EACtJ,EAAE,CAAC,IAAM,aAAe,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,EAAU,aAAa,KAAM,MAAQ,CAAC,EAAG,QAAS,OAAO,EAChH,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,EAAU,SAAS,KAAM,MAAQ,CAAC,EAAG,QAAS,OAAO,EACxG,EAAE,CAAC,IAAM,iBAAmB,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,QAAgB,iBAAiB,KAAM,MAAQ,CAAC,EAAG,QAAS,OAAO,EAChH,EAAE,CAAC,IAAM,iBAAmB,EAAE,CAAC,GAAK,CAAC,EAAE,CAAC,EAAU,iBAAiB,KAAM,MAAQ,CAAC,EAAG,QAAS,OAAO,EACrG,EAAE,CAAC,IAAM,iBAAmB,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,WAAmB,YAAY,KAAM,MAAQ,CAAC,EAAG,QAAS,OAAO,EAC3G,QAAQ,QAAQ,SAAS,KAAM,MAAQ,CAAC,EAAG,OAAO,CAAC,CAC5D,CACA,SAAS,eAAe,MAAM,CAC5B,GAAI,QAAU,WAAY,OAAO,wBAAwB,EACzD,GAAI,QAAU,kBAAmB,OAAO,oBAAoB,EAC5D,GAAI,QAAU,QAAS,OAAO,mBAC9B,GAAI,QAAU,UAAW,OAAO,oBAChC,GAAI,QAAU,WAAY,OAAO,sBACjC,GAAI,QAAU,gBAAiB,OAAO,2BACtC,GAAI,QAAU,gBAAiB,OAAO,2BACtC,GAAI,QAAU,gBAAiB,OAAO,2BACtC,GAAI,QAAU,WAAY,OAAO,sBACjC,GAAI,QAAU,UAAW,OAAO,uBAChC,GAAI,QAAU,YAAa,OAAO,uBAClC,GAAI,QAAU,QAAS,OAAO,mBAC9B,GAAI,QAAU,aAAe,QAAU,WAAY,OAAO,oBAC1D,GAAI,QAAU,mBAAoB,OAAO,+BACzC,GAAI,QAAU,iBAAkB,OAAO,4BACvC,GAAI,QAAU,gBAAiB,OAAO,4BACtC,GAAI,QAAU,oBAAqB,OAAO,+BAC1C,GAAI,QAAU,qBAAsB,OAAO,gCAC3C,MAAM,IAAI,MAAM,uCAAyC,KAAK,CAChE,CACA,SAAS,YAAY,QAAS,MAAM,CAClC,IAAI,MAAQ,CAAE,OAAQ,eAAe,KAAK,CAAE,EAC5C,cAAO,KAAK,SAAW,CAAC,CAAC,EAAE,QAAQ,SAAS,IAAI,CAAE,MAAM,GAAG,EAAI,MAAQ,QAAQ,GAAG,CAAG,CAAC,EACtF,MAAM,MAAQ,EACP,KACT,CACA,SAAS,aAAa,QAAQ,CAC5B,OAAO,OAAO,KAAK,SAAW,CAAC,CAAC,EAAE,OAAO,SAAS,IAAK,IAAI,CACzD,OAAI,QAAQ,GAAG,IAAM,SAAc,QAAQ,GAAG,IAAM,IAAM,MAAQ,SAAQ,IAAI,GAAG,EAAI,QAAQ,GAAG,GACzF,GACT,EAAG,CAAC,CAAC,CACP,CACA,SAAS,QAAQ,KAAM,QAAQ,CAC7B,IAAI,EAAI,UAAU,IAAI,EACtB,GAAI,sBAAsB,IAAI,EAAG,OAAO,wBAAwB,IAAI,EACpE,GAAI,SAAW,QAAQ,aAAe,IAAQ,EAAE,CAAC,IAAM,kBAAoB,EAAE,CAAC,EAAG,CAC/E,IAAI,WAAa,MAAM,EAAE,CAAC,CAAC,EACvB,KAAO,SAAS,IAAI,CACtB,MAAO,CACL,GAAI,WACJ,OAAQ,UAAU,CAAE,MAAO,CAAC,CAAC,GAAK,EAClC,KAAM,UAAU,CAAE,OAAO,IAAM,eAAe,kBAAmB,GAAG,EAAI,IAAM,CAChF,CACF,EACA,OAAO,KAAK,kBAAmB,CAAE,OAAQ,oBAAoB,EAAG,YAAa,MAAQ,WAAY,MAAO,CAAE,EAAG,OAAO,EAAE,MAAM,SAAS,MAAM,CACzI,GAAI,6BAA6B,KAAK,GAAK,mCAAmC,KAAK,GAAK,iCAAiC,KAAK,EAC5H,OAAI,6BAA6B,KAAK,IAAG,sBAAsB,gBAAkB,IAC7E,mCAAmC,KAAK,IAAG,sBAAsB,sBAAwB,IACzF,iCAAiC,KAAK,IAAG,sBAAsB,aAAe,IAClF,MAAM,mDAAoD,CAAE,KAAM,cAAe,eAAgB,sBAAsB,sBAAuB,aAAc,sBAAsB,aAAc,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EACzO,KAAK,kBAAmB,CAAE,OAAQ,oBAAoB,EAAG,YAAa,MAAQ,WAAY,MAAO,CAAE,EAAG,OAAO,EAEtH,MAAM,KACR,CAAC,EAAE,KAAK,SAAS,KAAK,CACpB,OAAI,MAAQ,KAAK,CAAC,EAAU,8BAA8B,KAAM,OAAO,EAAE,KAAK,SAAS,WAAW,CAAE,OAAO,KAAK,YAAc,WAAW,CAAC,CAAC,CAAG,CAAC,EACxI,KAAK,kBAAmB,CAAE,OAAQ,oBAAoB,EAAG,OAAQ,MAAQ,WAAY,MAAO,CAAE,EAAG,OAAO,EAAE,MAAM,SAAS,MAAM,CACpI,GAAI,6BAA6B,KAAK,GAAK,mCAAmC,KAAK,GAAK,iCAAiC,KAAK,EAC5H,OAAI,6BAA6B,KAAK,IAAG,sBAAsB,gBAAkB,IAC7E,mCAAmC,KAAK,IAAG,sBAAsB,sBAAwB,IACzF,iCAAiC,KAAK,IAAG,sBAAsB,aAAe,IAClF,MAAM,mDAAoD,CAAE,KAAM,SAAU,eAAgB,sBAAsB,sBAAuB,aAAc,sBAAsB,aAAc,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EACpO,KAAK,kBAAmB,CAAE,OAAQ,oBAAoB,EAAG,OAAQ,MAAQ,WAAY,MAAO,CAAE,EAAG,OAAO,EAEjH,MAAM,KACR,CAAC,EAAE,KAAK,SAAS,WAAW,CAC1B,OAAO,8BAA8B,YAAc,CAAC,EAAG,OAAO,EAAE,KAAK,SAAS,WAAW,CAAE,OAAO,KAAK,YAAc,WAAW,CAAC,CAAC,CAAG,CAAC,CACxI,CAAC,CACH,CAAC,CACH,CACA,OAAO,QAAQ,OAAO,EAAE,KAAK,SAAS,QAAQ,CAC5C,OAAO,cAAc,KAAM,CAAC,EAAG,QAAS,OAAO,CACjD,CAAC,EAAE,KAAK,SAAS,KAAK,CACpB,GAAI,CAAC,MAAQ,CAAC,KAAK,IAAK,MAAM,IAAI,MAAM,8BAAgC,IAAI,EAC5E,IAAI,MAAQ,YAAY,KAAK,IAAK,KAAK,KAAK,EAC5C,OAAI,KAAK,QAAU,YAAc,EAAE,EAAE,CAAC,IAAM,YAAc,EAAE,CAAC,IAAM,aACjE,MAAM,cAAgB,YACtB,MAAM,eAAiB,UACvB,MAAM,MAAQ,mBAET,KAAK,KAAK,MAAO,MAAO,OAAO,EAAE,KAAK,SAAS,KAAK,CACzD,IAAI,UAAY,KAAK,QAAU,WAAa,wBAAwB,MAAQ,CAAC,EAAG,OAAO,EAAI,QAAQ,QAAQ,MAAQ,CAAC,CAAC,EACrH,OAAO,UAAU,KAAK,SAAS,WAAW,CACxC,IAAI,IAAM,YAAc,WAAW,CAAC,EACpC,MAAO,CAAE,GAAI,UAAU,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,GAAK,GAAI,OAAQ,UAAU,CAAE,MAAO,CAAC,CAAC,GAAK,EAAG,KAAM,UAAU,CAAE,OAAO,IAAM,eAAe,KAAK,MAAO,GAAG,EAAI,IAAM,CAAE,CACjK,CAAC,CACH,CAAC,CACH,CAAC,CACH,CACA,SAAS,UAAU,KAAM,KAAM,QAAQ,CAErC,OADA,QAAU,SAAW,CAAC,EAClB,sBAAsB,IAAI,EAAU,qBAAqB,IAAI,EAC1D,QAAQ,OAAO,EAAE,KAAK,SAAS,QAAQ,CAC5C,OAAO,cAAc,KAAM,MAAQ,CAAC,EAAG,QAAS,OAAO,CACzD,CAAC,EAAE,KAAK,SAAS,KAAK,CACpB,GAAI,CAAC,KAAM,MAAM,IAAI,MAAM,8BAAgC,IAAI,EAC/D,GAAI,KAAK,UACP,OAAO,OAAO,KAAK,MAAO,YAAY,KAAK,IAAK,KAAK,KAAK,EAAG,OAAO,EAAE,KAAK,UAAU,CAAE,MAAO,CAAE,GAAI,UAAU,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,GAAK,EAAG,CAAG,CAAC,EAE7I,IAAI,IAAM,aAAa,KAAK,OAAO,EAC/B,aAAe,KAAK,WACpB,CAAE,OAAQ,uBAAwB,EACjC,KAAK,MACJ,CAAE,OAAQ,QAAS,MAAO,KAAK,MAAO,OAAQ,uBAAwB,EACtE,CAAE,OAAQ,GAAM,MAAO,eAAiB,mBAAmB,KAAK,QAAQ,EAAG,OAAQ,mDAAoD,EAC7I,OAAI,KAAK,QAAU,oBACjB,aAAa,OAAS,mBAEhB,KAAK,QAAU,WAAa,8BAA8B,IAAK,aAAa,SAAW,CAAC,EAAG,OAAO,EAAI,QAAQ,QAAQ,GAAG,GAAG,KAAK,SAAS,WAAW,CAC3J,OAAO,MAAM,KAAK,MAAO,KAAK,MAAQ,WAAa,CAAC,UAAU,EAAG,YAAY,CAC/E,CAAC,EACE,KAAK,SAAS,OAAO,CACpB,IAAI,QAAU,MAAM,QAAQ,MAAM,EAAI,OAAO,CAAC,EAAI,OAClD,OAAO,uBAAuB,KAAK,MAAO,QAAS,MAAQ,CAAC,EAAG,OAAO,EAAE,KAAK,SAAS,OAAO,CAC3F,OAAO,OAAS,OAAO,OAAO,CAAE,GAAI,UAAU,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAE,EAAG,eAAe,KAAK,MAAO,MAAM,CAAC,EAAI,CAAE,GAAI,UAAU,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,GAAK,EAAG,CACrJ,CAAC,CACH,CAAC,CACL,CAAC,CACH,CACA,SAAS,QAAQ,KAAM,KAAM,QAAQ,CACnC,IAAI,GAAK,OAAO,MAAQ,CAAC,GAAG,KAAO,MAAQ,CAAC,GAAG,SAAW,MAAQ,CAAC,GAAG,UAAY,MAAQ,CAAC,GAAG,SAAY,KAAK,IAAI,EAAI,IAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAE,EAC7J,SAAW,MAAM,IAAI,EAAE,QAAQ,OAAQ,EAAE,EAAI,IAAM,GACvD,OAAO,UAAU,SAAU,OAAO,OAAO,CAAC,EAAG,MAAQ,CAAC,EAAG,CAAE,GAAI,EAAG,CAAC,EAAG,OAAO,EAAE,KAAK,SAAS,QAAQ,CACnG,OAAO,OAAO,OAAO,CAAE,GAAI,GAAI,KAAM,QAAS,EAAG,SAAW,CAAC,CAAC,CAChE,CAAC,CACH,CACA,SAAS,UAAU,KAAK,CACtB,IAAI,EAAI,UAAU,IAAI,EACtB,OAAI,sBAAsB,IAAI,EAAU,CAAE,WAAY,GAAM,KAAM,IAAK,EACnE,EAAE,CAAC,IAAM,iBAAyB,CAAE,MAAO,kBAAmB,MAAO,CAAE,OAAQ,oBAAoB,EAAG,WAAY,UAAW,OAAQ,YAAa,iBAAkB,cAAe,MAAO,kBAAmB,MAAO,GAAI,CAAE,EAC1N,EAAE,CAAC,IAAM,SAAW,CAAC,EAAE,CAAC,EAAU,CAAE,MAAO,QAAS,MAAO,kCAAkC,CAAE,MAAO,kBAAmB,MAAO,EAAG,CAAC,CAAE,EACtI,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,IAAM,UAAY,EAAE,CAAC,EAAU,CAAE,MAAO,QAAS,MAAO,CAAE,OAAQ,mBAAoB,mBAAoB,MAAQ,MAAM,EAAE,CAAC,CAAC,EAAG,WAAY,UAAW,UAAW,UAAW,YAAa,UAAW,MAAO,kBAAmB,MAAO,EAAG,CAAE,EACjQ,EAAE,CAAC,IAAM,WAAa,CAAC,EAAE,CAAC,EAAU,CAAE,MAAO,UAAW,MAAO,OAAO,OAAO,kCAAkC,CAAE,IAAK,wCAA0C,OAAO,EAAI,KAAM,MAAO,kBAAmB,MAAO,EAAG,CAAC,EAAG,CAAE,OAAQ,mBAAoB,CAAC,CAAE,EAC1P,EAAE,CAAC,IAAM,WAAa,EAAE,CAAC,IAAM,UAAY,EAAE,CAAC,EAAU,CAAE,MAAO,UAAW,MAAO,CAAE,OAAQ,oBAAqB,kBAAmB,MAAQ,MAAM,EAAE,CAAC,CAAC,EAAG,IAAK,wCAA0C,OAAO,EAAI,KAAM,WAAY,UAAW,UAAW,UAAW,YAAa,UAAW,MAAO,kBAAmB,MAAO,EAAG,CAAE,EACrU,EAAE,CAAC,IAAM,kBAA0B,0BAA0B,CAAE,MAAO,kBAAmB,MAAO,EAAG,CAAC,EACpG,EAAE,CAAC,IAAM,mBAA2B,2BAA2B,CAAE,IAAK,wCAA0C,OAAO,EAAI,KAAM,MAAO,kBAAmB,MAAO,EAAG,CAAC,EACtK,EAAE,CAAC,IAAM,aAAe,CAAC,EAAE,CAAC,EAAU,CAAE,MAAO,YAAa,MAAO,CAAE,OAAQ,oBAAqB,WAAY,YAAa,OAAQ,cAAe,MAAO,kBAAmB,MAAO,EAAG,CAAE,EACxL,EAAE,CAAC,IAAM,YAAc,CAAC,EAAE,CAAC,EAAU,CAAE,MAAO,WAAY,MAAO,CAAE,OAAQ,oBAAqB,WAAY,YAAa,OAAQ,cAAe,MAAO,kBAAmB,MAAO,EAAG,CAAE,EACtL,EAAE,CAAC,IAAM,kBAA0B,CAAE,MAAO,mBAAoB,MAAO,CAAE,OAAQ,+BAAgC,MAAO,kBAAmB,MAAO,GAAI,CAAE,EACxJ,EAAE,CAAC,IAAM,gBAAwB,CAAE,MAAO,iBAAkB,MAAO,CAAE,OAAQ,4BAA6B,MAAO,kBAAmB,MAAO,GAAI,CAAE,EACjJ,EAAE,CAAC,IAAM,eAAuB,CAAE,MAAO,gBAAiB,MAAO,CAAE,OAAQ,4BAA6B,MAAO,kBAAmB,MAAO,EAAG,CAAE,EAC3I,IACT,CACA,SAAS,eAAe,KAAM,QAAS,QAAQ,CAC7C,IAAI,EAAI,UAAU,IAAI,EACtB,GAAI,SAAW,QAAQ,aAAe,IAAQ,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,IAAM,UAAY,EAAE,CAAC,EAAG,CAC3F,IAAI,oBAAsB,MAAM,EAAE,CAAC,CAAC,EAChC,uBAAyB,CAAE,mBAAoB,MAAQ,oBAAqB,MAAO,kBAAmB,MAAO,EAAG,EAChH,kBAAoB,CACtB,2BAA2B,sBAAsB,EACjD,0BAA0B,sBAAsB,CAClD,EACA,OAAI,QAAQ,sBAAwB,IAAM,kBAAkB,OAAO,EAAG,EAAG,kCAAkC,sBAAsB,CAAC,EAC3H,QAAQ,QAAQ,CAAE,MAAO,QAAS,QAAS,iBAAkB,CAAC,CACvE,CACA,GAAI,SAAW,QAAQ,aAAe,IAAQ,EAAE,CAAC,IAAM,WAAa,EAAE,CAAC,IAAM,UAAY,EAAE,CAAC,EAAG,CAC7F,IAAI,qBAAuB,MAAM,EAAE,CAAC,CAAC,EACjC,wBAA0B,CAC5B,kBAAmB,MAAQ,qBAC3B,IAAK,wCAA0C,OAAO,EAAI,KAC1D,MAAO,kBACP,MAAO,EACT,EACI,mBAAqB,CACvB,OAAO,OAAO,2BAA2B,uBAAuB,EAAG,CAAE,OAAQ,mBAAoB,CAAC,EAClG,2BAA2B,uBAAuB,CACpD,EACA,OAAI,QAAQ,sBAAwB,IAAM,mBAAmB,OAAO,EAAG,EAAG,OAAO,OAAO,kCAAkC,uBAAuB,EAAG,CAAE,OAAQ,mBAAoB,CAAC,CAAC,EAC7K,QAAQ,QAAQ,CAAE,MAAO,UAAW,QAAS,kBAAmB,CAAC,CAC1E,CACA,GAAI,SAAW,QAAQ,cAAgB,IAAQ,EAAE,CAAC,IAAM,SAAW,CAAC,EAAE,CAAC,EAAG,CACxE,IAAI,oBAAsB,MAAM,QAAQ,iBAAmB,QAAQ,YAAc,EAAE,EAC/E,mBAAqB,oBAAsB,gCAAgC,oBAAqB,OAAO,EAAE,MAAM,UAAU,CAAE,OAAO,uBAAuB,QAAS,OAAO,CAAG,CAAC,EAAI,uBAAuB,QAAS,OAAO,EAC5N,OAAO,mBAAmB,KAAK,SAAS,GAAG,CACzC,IAAI,MAAQ,CAAE,OAAQ,mBAAoB,WAAY,UAAW,UAAW,UAAW,YAAa,UAAW,MAAO,kBAAmB,MAAO,EAAG,EACnJ,OAAI,qBAAuB,GAAI,MAAM,GAAK,0BAA4B,oBAAsB,sBAAwB,GAAK,IAChH,oBAAqB,MAAM,mBAAqB,MAAQ,oBAC5D,MAAM,eAAiB,MAAQ,GAC7B,CAAE,MAAO,QAAS,MAAO,KAAM,CACxC,CAAC,CACH,CACA,GAAI,SAAW,QAAQ,cAAgB,IAAQ,EAAE,CAAC,IAAM,WAAa,CAAC,EAAE,CAAC,EAAG,CAC1E,IAAI,qBAAuB,MAAM,QAAQ,iBAAmB,QAAQ,YAAc,EAAE,EAChF,oBAAsB,qBAAuB,gCAAgC,qBAAsB,OAAO,EAAE,MAAM,UAAU,CAAE,OAAO,uBAAuB,QAAS,OAAO,CAAG,CAAC,EAAI,uBAAuB,QAAS,OAAO,EAC/N,OAAO,oBAAoB,KAAK,SAAS,GAAG,CAC1C,IAAI,MAAQ,CAAE,OAAQ,oBAAqB,IAAK,wCAA0C,OAAO,EAAI,KAAM,WAAY,UAAW,UAAW,UAAW,YAAa,UAAW,MAAO,kBAAmB,MAAO,EAAG,EACpN,OAAI,sBAAwB,GAAI,MAAM,GAAK,yBAA2B,qBAAuB,qBAAuB,GAAK,IAChH,qBAAsB,MAAM,kBAAoB,MAAQ,qBAC5D,MAAM,cAAgB,MAAQ,GAC5B,CAAE,MAAO,UAAW,MAAO,KAAM,CAC1C,CAAC,CACH,CACA,GAAI,SAAW,QAAQ,aAAe,IAAQ,QAAQ,sBAAwB,IAAQ,EAAE,CAAC,IAAM,SAAW,CAAC,EAAE,CAAC,EAC5G,OAAO,QAAQ,QAAQ,CAAE,MAAO,QAAS,QAAS,CAChD,2BAA2B,CAAE,MAAO,kBAAmB,MAAO,EAAG,CAAC,EAClE,kCAAkC,CAAE,MAAO,kBAAmB,MAAO,EAAG,CAAC,EACzE,0BAA0B,CAAE,MAAO,kBAAmB,MAAO,EAAG,CAAC,CACnE,CAAE,CAAC,EAEL,GAAI,SAAW,QAAQ,aAAe,IAAQ,EAAE,CAAC,IAAM,SAAW,CAAC,EAAE,CAAC,EACpE,OAAO,QAAQ,QAAQ,CAAE,MAAO,QAAS,QAAS,CAChD,2BAA2B,CAAE,MAAO,kBAAmB,MAAO,EAAG,CAAC,EAClE,0BAA0B,CAAE,MAAO,kBAAmB,MAAO,EAAG,CAAC,CACnE,CAAE,CAAC,EAEL,GAAI,SAAW,QAAQ,aAAe,IAAQ,QAAQ,sBAAwB,IAAQ,EAAE,CAAC,IAAM,WAAa,CAAC,EAAE,CAAC,EAC9G,OAAO,QAAQ,QAAQ,CAAE,MAAO,UAAW,QAAS,CAClD,OAAO,OAAO,2BAA2B,CAAE,IAAK,wCAA0C,OAAO,EAAI,KAAM,MAAO,kBAAmB,MAAO,EAAG,CAAC,EAAG,CAAE,OAAQ,mBAAoB,CAAC,EAClL,OAAO,OAAO,kCAAkC,CAAE,IAAK,wCAA0C,OAAO,EAAI,KAAM,MAAO,kBAAmB,MAAO,EAAG,CAAC,EAAG,CAAE,OAAQ,mBAAoB,CAAC,EACzL,2BAA2B,CAAE,IAAK,wCAA0C,OAAO,EAAI,KAAM,MAAO,kBAAmB,MAAO,EAAG,CAAC,CACpI,CAAE,CAAC,EAEL,GAAI,SAAW,QAAQ,aAAe,IAAQ,EAAE,CAAC,IAAM,WAAa,CAAC,EAAE,CAAC,EACtE,OAAO,QAAQ,QAAQ,CAAE,MAAO,UAAW,QAAS,CAClD,OAAO,OAAO,2BAA2B,CAAE,IAAK,wCAA0C,OAAO,EAAI,KAAM,MAAO,kBAAmB,MAAO,EAAG,CAAC,EAAG,CAAE,OAAQ,mBAAoB,CAAC,EAClL,2BAA2B,CAAE,IAAK,wCAA0C,OAAO,EAAI,KAAM,MAAO,kBAAmB,MAAO,EAAG,CAAC,CACpI,CAAE,CAAC,EAEL,IAAI,KAAO,UAAU,IAAI,EACzB,GAAI,KAAM,OAAO,QAAQ,QAAQ,IAAI,EACrC,GAAI,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,WACvC,OAAO,cAAc,EAAE,CAAC,EAAG,OAAO,EAAE,KAAK,SAAS,GAAG,CACnD,OAAI,SAAW,QAAQ,aAAe,GAC7B,CAAE,MAAO,WAAY,MAAO,CAAE,OAAQ,sBAAuB,QAAS,MAAQ,GAAI,OAAQ,cAAe,MAAO,iBAAkB,MAAO,EAAG,CAAE,EAEhJ,CAAE,MAAO,WAAY,MAAO,CAAE,OAAQ,sBAAuB,QAAS,MAAQ,GAAI,MAAO,iBAAkB,MAAO,EAAG,CAAE,CAChI,CAAC,EAEH,GAAI,EAAE,CAAC,IAAM,iBAAmB,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,QAC/C,OAAO,cAAc,EAAE,CAAC,EAAG,QAAS,OAAO,EAAE,KAAK,SAAS,GAAG,CAC5D,MAAO,CAAE,MAAO,gBAAiB,MAAO,CAAE,OAAQ,2BAA4B,kBAAmB,MAAQ,GAAI,MAAO,kBAAmB,MAAO,EAAG,CAAE,CACrJ,CAAC,EAEH,GAAI,EAAE,CAAC,IAAM,iBAAmB,CAAC,EAAE,CAAC,EAAG,CACrC,GAAI,CAAC,SAAW,QAAQ,aAAe,GAAM,OAAO,QAAQ,QAAQ,CAAE,MAAO,gBAAiB,MAAO,CAAE,OAAQ,2BAA4B,MAAO,CAAE,CAAE,CAAC,EACvJ,IAAI,0BAA4B,GAC5B,8BAAgC,GACpC,GAAI,CAAE,0BAA4B,cAAc,OAAO,CAAG,OAAQ,EAAG,CAAE,0BAA4B,EAAI,CACvG,GAAI,CAAE,8BAAgC,kBAAkB,OAAO,EAAE,QAAQ,MAAO,EAAE,EAAE,YAAY,CAAG,OAAQ,GAAI,CAAE,8BAAgC,EAAI,CACrJ,IAAI,cAAgB,CAAC,EACjB,WAAa,oBAAoB,yBAAyB,EAC1D,cAAgB,oBAAoB,6BAA6B,EAGrE,OAFI,YAAY,cAAc,KAAK,mBAAqB,UAAU,EAC9D,eAAe,cAAc,KAAK,4BAA8B,aAAa,EAC5E,cAAc,OACZ,QAAQ,QAAQ,CAAE,MAAO,gBAAiB,MAAO,CAAE,OAAQ,2BAA4B,GAAI,IAAM,cAAc,KAAK,GAAG,EAAI,IAAK,iBAAkB,cAAe,YAAa,UAAW,MAAO,kBAAmB,MAAO,EAAG,CAAE,CAAC,EADrM,QAAQ,QAAQ,CAAE,MAAO,gBAAiB,MAAO,CAAE,OAAQ,2BAA4B,MAAO,CAAE,CAAE,CAAC,CAEvI,CACA,OAAI,EAAE,CAAC,IAAM,iBAAmB,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,WAC3C,CAAC,SAAW,QAAQ,aAAe,GAAa,QAAQ,QAAQ,CAAE,MAAO,WAAY,MAAO,CAAE,OAAQ,sBAAuB,MAAO,CAAE,CAAE,CAAC,EACtI,sBAAsB,EAAE,CAAC,EAAG,OAAO,EAAE,KAAK,SAAS,GAAG,CAC3D,IAAI,aAAe,GACnB,GAAI,CAAE,aAAe,cAAc,OAAO,CAAG,OAAQ,EAAG,CAAE,aAAe,EAAI,CAC7E,IAAI,kBAAoB,oBAAoB,YAAY,EACxD,MAAI,CAAC,IAAM,CAAC,kBAA0B,CAAE,MAAO,WAAY,MAAO,CAAE,OAAQ,sBAAuB,MAAO,CAAE,CAAE,EACvG,QAAQ,gBAAiB,CAAE,OAAQ,qBAAsB,GAAI,MAAQ,GAAI,gBAAiB,iBAAkB,EAAG,OAAO,EAAE,KAAK,SAAS,aAAa,CACxJ,MAAI,CAAC,cAAgB,CAAC,aAAa,GAAW,CAAE,MAAO,WAAY,MAAO,CAAE,OAAQ,sBAAuB,MAAO,CAAE,CAAE,EAC/G,CAAE,MAAO,WAAY,MAAO,CAAE,OAAQ,sBAAuB,gBAAiB,MAAQ,GAAI,MAAO,iBAAkB,MAAO,GAAI,CAAE,CACzI,CAAC,CACH,CAAC,EAEC,EAAE,CAAC,IAAM,iBAAmB,EAAE,CAAC,IAAM,EAAE,CAAC,IAAM,aAAe,EAAE,CAAC,IAAM,aACjE,cAAc,EAAE,CAAC,EAAG,QAAS,OAAO,EAAE,KAAK,SAAS,GAAG,CAC5D,MAAO,CAAE,MAAO,UAAW,MAAO,OAAO,OAAO,CAAE,OAAQ,uBAAwB,MAAO,kBAAmB,MAAO,GAAI,EAAG,EAAE,CAAC,IAAM,YAAc,CAAE,eAAgB,MAAQ,EAAG,EAAI,CAAE,eAAgB,MAAQ,EAAG,CAAC,CAAE,CACpN,CAAC,EAEC,EAAE,CAAC,IAAM,aAAe,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,QACpC,cAAc,EAAE,CAAC,EAAG,QAAS,OAAO,EAAE,KAAK,SAAS,GAAG,CAC5D,MAAO,CAAE,MAAO,YAAa,MAAO,CAAE,OAAQ,uBAAwB,QAAS,MAAQ,GAAI,MAAO,YAAa,MAAO,kBAAmB,MAAO,GAAI,CAAE,CACxJ,CAAC,EAEC,EAAE,CAAC,IAAM,SAAW,EAAE,CAAC,GAAK,EAAE,CAAC,IAAM,QAChC,cAAc,EAAE,CAAC,EAAG,QAAS,OAAO,EAAE,KAAK,SAAS,GAAG,CAC5D,MAAO,CAAE,MAAO,QAAS,MAAO,CAAE,OAAQ,mBAAoB,QAAS,MAAQ,GAAI,MAAO,kBAAmB,MAAO,GAAI,CAAE,CAC5H,CAAC,EAEI,QAAQ,QAAQ,IAAI,CAC7B,CACA,SAAS,WAAW,KAAM,SAAU,QAAQ,CAC1C,IAAI,OAAS,GACT,UAAY,GACZ,MAAQ,KACR,OAAS,KAAK,IAAI,IAAM,OAAO,SAAW,QAAQ,QAAU,IAAK,CAAC,EAClE,UAAY,KAAK,IAAI,OAAQ,OAAO,SAAW,QAAQ,WAAa,IAAK,CAAC,EAC1E,aAAe,KAAK,IAAI,UAAW,OAAO,SAAW,QAAQ,cAAgB,GAAK,CAAC,EACnF,YAAc,EACd,kBAAoB,GACpB,SAAW,gDAAgD,KAAK,OAAO,MAAQ,EAAE,CAAC,EACtF,SAAS,cAAc,KAAK,CAC1B,OAAQ,MAAQ,CAAC,GAAG,IAAI,SAAS,IAAI,CACnC,OAAK,IACE,CACL,IAAI,IAAM,IAAI,wBAA0B,IAAI,mBAAqB,GACjE,IAAI,YAAc,IAAI,YAAc,GACpC,IAAI,QAAU,GACd,IAAI,OAAS,GAAO,OAAS,EAC/B,EAAE,KAAK,GAAG,EANO,EAOnB,CAAC,EAAE,KAAK,GAAG,CACb,CACA,SAAS,cAAc,KAAK,CAC1B,GAAI,CAAC,SAAU,MAAO,GACtB,GAAI,OAAO,UAAa,aAAe,SAAS,OAAQ,OAAO,aAC/D,IAAI,UAAY,cAAc,IAAI,EAClC,mBAAc,WAAa,YAAc,kBAAoB,YAAc,EAAI,EAC/E,kBAAoB,UACb,KAAK,IAAI,UAAW,OAAS,KAAK,IAAI,EAAG,KAAK,IAAI,YAAa,CAAC,CAAC,CAAC,CAC3E,CACA,SAAS,aAAa,KAAK,CACrB,CAAC,UAAY,SACb,OAAO,OAAO,aAAa,KAAK,EACpC,MAAQ,OAAO,WAAW,SAAU,cAAc,IAAI,CAAC,EACzD,CACA,SAAS,UAAU,CACjB,OAAO,QAAQ,OAAO,EAAE,KAAK,SAAS,QAAQ,CAC5C,OAAO,eAAe,KAAM,QAAS,OAAO,CAC9C,CAAC,EAAE,KAAK,SAAS,KAAK,CACpB,GAAI,MAAQ,KAAK,WACf,aAAM,iCAAkC,CAAE,KAAM,KAAK,MAAQ,KAAM,MAAO,KAAM,CAAC,EAC5E,QAAQ,SAAS,CAAC,CAAC,EACxB,UAAY,GACZ,aAAa,CAAC,CAAC,EACR,CAAC,EAEV,GAAI,CAAC,KACH,OAAK,QAAQ,SAAS,CAAC,CAAC,EACxB,UAAY,GACZ,aAAa,CAAC,CAAC,EACR,KAET,IAAI,YAAc,KAAK,QACnB,QAAQ,IAAI,KAAK,QAAQ,IAAI,SAAS,UAAU,CAChD,IAAI,WAAa,WAAa,UAAU,OAAS,KAAK,MAClD,MAAQ,WAAa,UAAU,OAAS,UAC5C,OAAO,KAAK,WAAY,MAAO,OAAO,EAAE,MAAM,SAAS,MAAM,CAC3D,aAAM,sCAAuC,CAAE,KAAM,KAAM,MAAO,WAAY,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EACvH,CAAC,CACV,CAAC,CACH,CAAC,CAAC,EAAE,KAAK,SAAS,QAAQ,CACxB,IAAI,KAAO,CAAC,EACR,OAAS,CAAC,EACd,OAAC,SAAW,CAAC,GAAG,QAAQ,SAAS,KAAK,EACnC,MAAQ,CAAC,GAAG,QAAQ,SAAS,IAAI,CAChC,IAAI,IAAM,MAAQ,IAAI,IAAM,IAAI,gBAAkB,IAAI,iBAClD,CAAC,KAAO,KAAK,GAAG,IACpB,KAAK,GAAG,EAAI,GACZ,OAAO,KAAK,GAAG,EACjB,CAAC,CACH,CAAC,EACM,MACT,CAAC,EACC,KAAK,KAAK,MAAO,KAAK,MAAO,OAAO,EAAE,MAAM,SAAS,MAAM,CAC3D,GAAI,KAAK,QAAU,oBAAsB,6BAA6B,KAAK,GAAK,mCAAmC,KAAK,GAAK,iCAAiC,KAAK,GACjK,OAAI,6BAA6B,KAAK,IAAG,sBAAsB,gBAAkB,IAC7E,mCAAmC,KAAK,IAAG,sBAAsB,sBAAwB,IACzF,iCAAiC,KAAK,IAAG,sBAAsB,aAAe,IAClF,MAAM,iDAAkD,CAAE,KAAM,KAAM,eAAgB,sBAAsB,sBAAuB,aAAc,sBAAsB,aAAc,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EAC9N,KAAK,KAAK,MAAO,OAAO,OAAO,CAAC,EAAG,KAAK,OAAS,CAAC,EAAG,CAAE,OAAQ,oBAAoB,CAAE,CAAC,EAAG,OAAO,EAEzG,MAAM,KACR,CAAC,EACH,OAAO,YAAY,KAAK,SAAS,KAAK,CACpC,IAAI,UAAY,KAAK,QAAU,kBAC3B,8BAA8B,MAAQ,CAAC,EAAG,OAAO,EAChD,KAAK,QAAU,UAAY,uBAAuB,MAAQ,CAAC,EAAG,OAAO,EAAI,QAAQ,QAAQ,MAAQ,CAAC,CAAC,EACxG,OAAO,UAAU,KAAK,SAAS,WAAW,CACxC,OAAO,YAAY,KAAK,MAAO,WAAY,OAAO,EAAE,KAAK,SAAS,OAAO,CACvE,OAAK,QAAQ,SAAS,MAAM,EAC5B,UAAY,GACZ,aAAa,QAAU,CAAC,CAAC,EAClB,MACT,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,EAAE,MAAM,SAAS,MAAM,CACtB,MAAM,6BAA8B,CAAE,KAAM,KAAM,MAAO,OAAS,MAAM,SAAW,OAAO,KAAK,CAAE,CAAC,EAC9F,CAAC,QAAU,CAAC,WAAW,SAAS,CAAC,CAAC,EACtC,aAAa,CAAC,CAAC,CACjB,CAAC,CACH,CACA,gBAAS,EACF,UAAU,CACf,OAAS,GACL,OAAO,OAAO,aAAa,KAAK,CACtC,CACF,CAEA,SAAS,WAAW,OAAO,CACzB,OAAO,QAAQ,OAAO,IAAI,MAAM,qCAAuC,MAAM,CAAC,CAChF,CAEA,SAAS,eAAe,CACtB,MAAO,CACL,sBAAuB,SACvB,iCAAkC,GAClC,WAAY,CAAC,WAAY,oBAAqB,oBAAqB,YAAY,EAC/E,UAAW,CAAC,iBAAkB,oBAAqB,yBAAyB,CAC9E,CACF,CAEA,IAAI,IAAM,CACR,QAAS,QACT,MAAO,MACP,eAAgB,gBAAgB,MAAM,EACtC,mBAAoB,OAAO,KAAK,0BAA0B,EAC1D,KAAM,yBACN,cAAe,cACf,YAAa,YACb,QAAS,QACT,cAAe,UAAU,CAAE,OAAO,aAAa,QAAU,cAAc,aAAa,OAAO,EAAI,EAAI,EACnG,iBAAkB,iBAClB,KAAM,KACN,MAAO,KACP,MAAO,MACP,OAAQ,SAAS,MAAO,KAAM,QAAQ,CAAE,OAAO,MAAM,MAAO,KAAM,OAAO,OAAO,CAAC,EAAG,SAAW,CAAC,EAAG,CAAE,OAAQ,EAAK,CAAC,CAAC,CAAG,EACvH,QAAS,QACT,UAAW,UACX,QAAS,QACT,WAAY,WACZ,OAAQ,SAAS,MAAO,MAAO,SAAS,CAAE,OAAO,WAAW,UAAY,KAAK,CAAG,EAChF,cAAe,SAAS,WAAY,OAAO,CAAE,OAAO,WAAW,WAAa,UAAU,CAAG,CAC3F,EAEA,GAAI,CACF,OAAO,eAAe,OAAQ,2BAA4B,CACxD,MAAO,IACP,SAAU,GACV,aAAc,EAChB,CAAC,CACH,OAAQ,EAAG,CACT,OAAO,yBAA2B,GACpC,CACA,GAAI,CACF,IAAI,gBAAkB,EAClB,eAAiB,OAAO,YAAY,UAAU,CAEhD,GADA,iBAAmB,EACf,CAAC,OAAO,0BAA4B,OAAO,yBAAyB,QAAU,MAAO,CACvF,GAAI,CAAE,OAAO,OAAO,wBAA0B,OAAQ,EAAE,CAAC,CACzD,GAAI,CACF,OAAO,eAAe,OAAQ,2BAA4B,CAAE,MAAO,IAAK,SAAU,GAAO,aAAc,EAAM,CAAC,CAChH,OAAQ,EAAG,CACT,OAAO,yBAA2B,GACpC,CACF,CACI,iBAAmB,IAAI,OAAO,cAAc,cAAc,CAChE,EAAG,GAAG,CACR,OAAQ,EAAE,CAAC,CACX,MAAM,gCAAiC,CACrC,KAAM,IAAI,KACV,eAAgB,gBAAgB,OAChC,mBAAoB,IAAI,mBACxB,cAAe,cAAc,CAC/B,CAAC,EACD,GAAI,CACF,OAAO,cAAc,IAAI,YAAY,oCAAqC,CAAE,OAAQ,CAClF,QAAS,QACT,KAAM,IAAI,KACV,eAAgB,gBAAgB,OAChC,cAAe,OAAO,GAAK,OAAO,EAAE,eAAiB,EACvD,CAAC,CAAC,CAAC,CACL,OAAQ,EAAG,CAAC,CACd,GAAG",
  "names": []
}
