{
  "version": 3,
  "sources": ["/cdn/shop/t/2/assets/toa-pfand-cart-sync-v3.js?toa=1783195769663"],
  "sourcesContent": ["(() => {\n  if (window.__toaPfandCartSyncInstalled) return;\n  window.__toaPfandCartSyncInstalled = true;\n  const CONFIG = {\"thresholdCents\":4900,\"depositTitle\":\"Pfand f\\u00fcr Flaschen/Dosen\",\"depositVariantsByCents\":{\"8\":51484715057385,\"25\":51484715122921},\"variantRules\":{\"43137073316073\":{\"cents\":25,\"units\":1},\"51152502587625\":{\"cents\":25,\"units\":1},\"49387782734057\":{\"cents\":25,\"units\":1},\"51125178564841\":{\"cents\":25,\"units\":1},\"43136938639593\":{\"cents\":25,\"units\":1},\"43136938213609\":{\"cents\":25,\"units\":1},\"43142649413865\":{\"cents\":25,\"units\":1},\"43136938508521\":{\"cents\":25,\"units\":1},\"43136938574057\":{\"cents\":25,\"units\":1},\"51155923501289\":{\"cents\":25,\"units\":1},\"43136938246377\":{\"cents\":25,\"units\":1},\"43137120534761\":{\"cents\":25,\"units\":1},\"47132754313449\":{\"cents\":25,\"units\":1},\"47396659200233\":{\"cents\":25,\"units\":1},\"51155766804713\":{\"cents\":25,\"units\":1},\"43136938705129\":{\"cents\":25,\"units\":1},\"51155864977641\":{\"cents\":25,\"units\":1},\"43137044087017\":{\"cents\":25,\"units\":1},\"51125176369385\":{\"cents\":25,\"units\":1},\"51125176402153\":{\"cents\":25,\"units\":1},\"48639053758697\":{\"cents\":25,\"units\":1},\"43137020985577\":{\"cents\":25,\"units\":1},\"48639053660393\":{\"cents\":25,\"units\":1},\"51138068316393\":{\"cents\":25,\"units\":1},\"43137075806441\":{\"cents\":8,\"units\":1},\"47943698907369\":{\"cents\":8,\"units\":1},\"43142581125353\":{\"cents\":8,\"units\":1},\"44882912149737\":{\"cents\":25,\"units\":1},\"51159792091369\":{\"cents\":25,\"units\":1},\"43137020723433\":{\"cents\":25,\"units\":1},\"43137116766441\":{\"cents\":25,\"units\":1},\"43137089831145\":{\"cents\":25,\"units\":1},\"43137020920041\":{\"cents\":25,\"units\":1},\"43137038385385\":{\"cents\":25,\"units\":1},\"44882909004009\":{\"cents\":25,\"units\":1},\"43142907494633\":{\"cents\":25,\"units\":1},\"43137038418153\":{\"cents\":25,\"units\":1},\"43137177977065\":{\"cents\":25,\"units\":1},\"43137020559593\":{\"cents\":8,\"units\":1},\"51125172109545\":{\"cents\":25,\"units\":1},\"49199990898921\":{\"cents\":25,\"units\":1},\"49200045523177\":{\"cents\":25,\"units\":1},\"51153050534121\":{\"cents\":8,\"units\":1},\"43142560252137\":{\"cents\":8,\"units\":1},\"48639053824233\":{\"cents\":25,\"units\":1},\"43142772883689\":{\"cents\":25,\"units\":1},\"51138072871145\":{\"cents\":25,\"units\":1},\"43137024753897\":{\"cents\":25,\"units\":1},\"51118131380457\":{\"cents\":25,\"units\":1},\"48639059198185\":{\"cents\":25,\"units\":1},\"47451780940009\":{\"cents\":25,\"units\":1},\"46445433848041\":{\"cents\":25,\"units\":1},\"46445468418281\":{\"cents\":25,\"units\":1},\"44882916966633\":{\"cents\":25,\"units\":1},\"46445073727721\":{\"cents\":25,\"units\":1},\"49157218992361\":{\"cents\":25,\"units\":1},\"49158777077993\":{\"cents\":25,\"units\":1},\"43137044185321\":{\"cents\":25,\"units\":1},\"46985712664809\":{\"cents\":25,\"units\":1},\"51155745112297\":{\"cents\":25,\"units\":1},\"48639024791785\":{\"cents\":25,\"units\":24},\"43142882984169\":{\"cents\":25,\"units\":1},\"43142626836713\":{\"cents\":25,\"units\":1},\"43136968196329\":{\"cents\":25,\"units\":1},\"43136968098025\":{\"cents\":8,\"units\":1},\"43136921436393\":{\"cents\":25,\"units\":1},\"49230491844841\":{\"cents\":25,\"units\":1},\"43137023443177\":{\"cents\":25,\"units\":1},\"43137023541481\":{\"cents\":25,\"units\":1},\"43137023574249\":{\"cents\":25,\"units\":1},\"47943704281321\":{\"cents\":25,\"units\":1},\"51155866222825\":{\"cents\":25,\"units\":1},\"49631695962345\":{\"cents\":25,\"units\":1},\"45065989718249\":{\"cents\":25,\"units\":1},\"51277677494505\":{\"cents\":25,\"units\":1},\"49157016617193\":{\"cents\":25,\"units\":1},\"47966439440617\":{\"cents\":25,\"units\":1},\"51145398812905\":{\"cents\":25,\"units\":1},\"48639035408617\":{\"cents\":25,\"units\":1},\"51127889854697\":{\"cents\":25,\"units\":1},\"49157025661161\":{\"cents\":25,\"units\":1},\"51277673791721\":{\"cents\":25,\"units\":1},\"48639035343081\":{\"cents\":25,\"units\":1},\"48639070077161\":{\"cents\":25,\"units\":1},\"51145375187177\":{\"cents\":25,\"units\":1},\"43136981139689\":{\"cents\":25,\"units\":1},\"51153045127401\":{\"cents\":25,\"units\":1},\"47398485524713\":{\"cents\":25,\"units\":1},\"51153041621225\":{\"cents\":25,\"units\":1},\"43136965804265\":{\"cents\":25,\"units\":1},\"51128081973481\":{\"cents\":25,\"units\":1},\"48639070044393\":{\"cents\":25,\"units\":1},\"51145380954345\":{\"cents\":25,\"units\":1},\"43142645383401\":{\"cents\":25,\"units\":1},\"47132603777257\":{\"cents\":25,\"units\":1},\"51153049092329\":{\"cents\":25,\"units\":1},\"48639031345385\":{\"cents\":25,\"units\":6},\"48639031378153\":{\"cents\":25,\"units\":24},\"43137020887273\":{\"cents\":25,\"units\":1},\"45016933990633\":{\"cents\":25,\"units\":1},\"43137023475945\":{\"cents\":25,\"units\":1},\"43142571917545\":{\"cents\":25,\"units\":1},\"51159759028457\":{\"cents\":25,\"units\":1},\"51155920879849\":{\"cents\":25,\"units\":1},\"51113257697513\":{\"cents\":25,\"units\":1},\"43136798621929\":{\"cents\":25,\"units\":1},\"46559514034409\":{\"cents\":25,\"units\":1},\"51118126432489\":{\"cents\":25,\"units\":1},\"51113268510953\":{\"cents\":25,\"units\":1},\"47943701004521\":{\"cents\":25,\"units\":1},\"43136938672361\":{\"cents\":25,\"units\":1},\"49259996414185\":{\"cents\":25,\"units\":1},\"44882936594665\":{\"cents\":25,\"units\":1},\"51145392947433\":{\"cents\":25,\"units\":1},\"48639035375849\":{\"cents\":25,\"units\":1},\"51128078106857\":{\"cents\":25,\"units\":1},\"43136979960041\":{\"cents\":25,\"units\":1},\"43142656098537\":{\"cents\":25,\"units\":1},\"51155878641897\":{\"cents\":25,\"units\":1},\"43136979927273\":{\"cents\":25,\"units\":1},\"51128078303465\":{\"cents\":25,\"units\":1},\"43137156940009\":{\"cents\":25,\"units\":1},\"43137114046697\":{\"cents\":25,\"units\":1},\"43137055686889\":{\"cents\":25,\"units\":1},\"51159781048553\":{\"cents\":25,\"units\":1},\"47451760623849\":{\"cents\":25,\"units\":1},\"51155815137513\":{\"cents\":25,\"units\":1},\"43137110671593\":{\"cents\":25,\"units\":1},\"51159791304937\":{\"cents\":25,\"units\":1},\"43136704512233\":{\"cents\":25,\"units\":1},\"48639051497705\":{\"cents\":25,\"units\":1},\"51118131413225\":{\"cents\":25,\"units\":1},\"43137031209193\":{\"cents\":25,\"units\":1},\"51125170995433\":{\"cents\":25,\"units\":1},\"46862064517353\":{\"cents\":25,\"units\":1},\"51155700154601\":{\"cents\":25,\"units\":1},\"43137024819433\":{\"cents\":25,\"units\":1},\"51127885660393\":{\"cents\":25,\"units\":1},\"47943701823721\":{\"cents\":25,\"units\":1},\"51155878052073\":{\"cents\":25,\"units\":1},\"48639053791465\":{\"cents\":25,\"units\":1},\"47451873771753\":{\"cents\":25,\"units\":1},\"47451851489513\":{\"cents\":25,\"units\":1},\"46559495880937\":{\"cents\":25,\"units\":1},\"44882921390313\":{\"cents\":8,\"units\":1},\"43137173684457\":{\"cents\":8,\"units\":1},\"51155865010409\":{\"cents\":25,\"units\":1},\"46559524258025\":{\"cents\":25,\"units\":1},\"48639051563241\":{\"cents\":25,\"units\":1},\"51155921731817\":{\"cents\":25,\"units\":1},\"48639037636841\":{\"cents\":25,\"units\":1},\"51159787372777\":{\"cents\":25,\"units\":1},\"46559386075369\":{\"cents\":25,\"units\":1},\"51159874699497\":{\"cents\":25,\"units\":1},\"49157223809257\":{\"cents\":25,\"units\":1},\"43137058078953\":{\"cents\":25,\"units\":1},\"51119895740649\":{\"cents\":25,\"units\":1},\"43142642991337\":{\"cents\":8,\"units\":1},\"43142860144873\":{\"cents\":8,\"units\":1},\"43137019805929\":{\"cents\":8,\"units\":1},\"51159790878953\":{\"cents\":8,\"units\":1},\"45016296325353\":{\"cents\":8,\"units\":1},\"51155709853929\":{\"cents\":8,\"units\":1},\"43137030127849\":{\"cents\":8,\"units\":1},\"43142879052009\":{\"cents\":25,\"units\":1},\"43142601670889\":{\"cents\":25,\"units\":1},\"43137172177129\":{\"cents\":25,\"units\":1},\"51155866845417\":{\"cents\":25,\"units\":1},\"45025445380329\":{\"cents\":25,\"units\":1},\"51145374073065\":{\"cents\":25,\"units\":1},\"43136938770665\":{\"cents\":25,\"units\":1},\"51155925565673\":{\"cents\":25,\"units\":1},\"47398537887977\":{\"cents\":25,\"units\":1},\"47132603449577\":{\"cents\":25,\"units\":1},\"51113279488233\":{\"cents\":25,\"units\":1},\"48639031279849\":{\"cents\":25,\"units\":6},\"48639031312617\":{\"cents\":25,\"units\":24},\"46680042045673\":{\"cents\":25,\"units\":1},\"43137034092777\":{\"cents\":25,\"units\":1},\"43137025835241\":{\"cents\":25,\"units\":1},\"48639033082089\":{\"cents\":25,\"units\":1},\"51119900852457\":{\"cents\":25,\"units\":1},\"51155672334569\":{\"cents\":25,\"units\":1},\"43136938868969\":{\"cents\":25,\"units\":1},\"43137092157673\":{\"cents\":25,\"units\":1},\"43137092092137\":{\"cents\":25,\"units\":1},\"43137092124905\":{\"cents\":25,\"units\":1},\"49230499873001\":{\"cents\":25,\"units\":1},\"51277674217705\":{\"cents\":25,\"units\":1},\"49199928541417\":{\"cents\":25,\"units\":1},\"45064171520233\":{\"cents\":25,\"units\":1},\"46559489884393\":{\"cents\":25,\"units\":1},\"43136965705961\":{\"cents\":25,\"units\":1},\"51130155729129\":{\"cents\":25,\"units\":1},\"46628454138089\":{\"cents\":25,\"units\":1},\"51062180380905\":{\"cents\":25,\"units\":1},\"44882913820905\":{\"cents\":25,\"units\":1},\"51124894859497\":{\"cents\":25,\"units\":1},\"47398518325481\":{\"cents\":25,\"units\":1},\"51068511813865\":{\"cents\":25,\"units\":1},\"43136938737897\":{\"cents\":25,\"units\":1},\"43137071579369\":{\"cents\":25,\"units\":1},\"46559535694057\":{\"cents\":25,\"units\":1},\"51155692159209\":{\"cents\":25,\"units\":1},\"44882939576553\":{\"cents\":25,\"units\":1},\"48655193932009\":{\"cents\":25,\"units\":1},\"43136704610537\":{\"cents\":25,\"units\":1},\"43137044021481\":{\"cents\":25,\"units\":1},\"51130289455337\":{\"cents\":25,\"units\":1},\"43142621790441\":{\"cents\":25,\"units\":1},\"43136938606825\":{\"cents\":25,\"units\":1},\"43142875119849\":{\"cents\":25,\"units\":1},\"44882913886441\":{\"cents\":25,\"units\":1},\"51153041195241\":{\"cents\":25,\"units\":1},\"48639051628777\":{\"cents\":25,\"units\":1},\"47132603023593\":{\"cents\":25,\"units\":1},\"51117842989289\":{\"cents\":25,\"units\":1},\"46699171938537\":{\"cents\":25,\"units\":1},\"43142588301545\":{\"cents\":25,\"units\":1},\"47394429010153\":{\"cents\":25,\"units\":1},\"51155921109225\":{\"cents\":25,\"units\":1},\"43137033928937\":{\"cents\":25,\"units\":1},\"51155731448041\":{\"cents\":25,\"units\":1},\"43136681214185\":{\"cents\":25,\"units\":1},\"43142629097705\":{\"cents\":25,\"units\":1},\"43137037893865\":{\"cents\":25,\"units\":1},\"51153050697961\":{\"cents\":25,\"units\":1},\"45064180498665\":{\"cents\":25,\"units\":1},\"51155864617193\":{\"cents\":25,\"units\":1},\"49155904930025\":{\"cents\":8,\"units\":1},\"51113265627369\":{\"cents\":8,\"units\":1},\"48639053627625\":{\"cents\":25,\"units\":1},\"51257640812777\":{\"cents\":25,\"units\":1},\"44882914607337\":{\"cents\":25,\"units\":1},\"51155865862377\":{\"cents\":25,\"units\":1},\"47132755329257\":{\"cents\":25,\"units\":1},\"51118126366953\":{\"cents\":25,\"units\":1},\"43137071546601\":{\"cents\":25,\"units\":1},\"43137071644905\":{\"cents\":25,\"units\":1},\"43137116078313\":{\"cents\":25,\"units\":1},\"43137123647721\":{\"cents\":25,\"units\":1},\"51159260856553\":{\"cents\":25,\"units\":1},\"43137023508713\":{\"cents\":25,\"units\":1},\"49260117688553\":{\"cents\":25,\"units\":1},\"44882944917737\":{\"cents\":25,\"units\":1},\"51155924418793\":{\"cents\":25,\"units\":1},\"43142889898217\":{\"cents\":25,\"units\":1},\"44882937053417\":{\"cents\":25,\"units\":1},\"46506001826025\":{\"cents\":25,\"units\":1},\"51153047552233\":{\"cents\":25,\"units\":1},\"44882937020649\":{\"cents\":25,\"units\":1},\"47949373473001\":{\"cents\":25,\"units\":1},\"51159789830377\":{\"cents\":25,\"units\":1},\"44882913984745\":{\"cents\":25,\"units\":1},\"46559495946473\":{\"cents\":25,\"units\":1},\"43137024786665\":{\"cents\":25,\"units\":1},\"45065986113769\":{\"cents\":25,\"units\":1},\"48639035605225\":{\"cents\":25,\"units\":1},\"46559495913705\":{\"cents\":25,\"units\":1},\"43137071513833\":{\"cents\":25,\"units\":1},\"43137129480425\":{\"cents\":25,\"units\":1},\"43137050378473\":{\"cents\":25,\"units\":1},\"51117906067689\":{\"cents\":25,\"units\":1},\"51153048240361\":{\"cents\":25,\"units\":1},\"48639053693161\":{\"cents\":25,\"units\":1},\"51128085414121\":{\"cents\":25,\"units\":1},\"47127347626217\":{\"cents\":25,\"units\":1},\"51117843022057\":{\"cents\":25,\"units\":1},\"43142552912105\":{\"cents\":25,\"units\":1},\"48639053725929\":{\"cents\":25,\"units\":1},\"51159790813417\":{\"cents\":25,\"units\":1},\"49157321687273\":{\"cents\":25,\"units\":1},\"44882936496361\":{\"cents\":25,\"units\":1},\"51159793303785\":{\"cents\":25,\"units\":1},\"48639053529321\":{\"cents\":25,\"units\":1},\"51159795433705\":{\"cents\":25,\"units\":1},\"43137089634537\":{\"cents\":25,\"units\":1},\"49194407264489\":{\"cents\":25,\"units\":1},\"48639037374697\":{\"cents\":25,\"units\":1},\"51155657982185\":{\"cents\":25,\"units\":1},\"48639051530473\":{\"cents\":25,\"units\":1},\"51118126891241\":{\"cents\":25,\"units\":1},\"44882939609321\":{\"cents\":8,\"units\":1},\"49230242152681\":{\"cents\":25,\"units\":1},\"43137058406633\":{\"cents\":25,\"units\":1},\"43137058439401\":{\"cents\":25,\"units\":1},\"46415794110697\":{\"cents\":25,\"units\":1},\"49260102320361\":{\"cents\":25,\"units\":1},\"49260106088681\":{\"cents\":25,\"units\":1},\"45016303304937\":{\"cents\":25,\"units\":1},\"45016303337705\":{\"cents\":25,\"units\":6},\"43137020428521\":{\"cents\":8,\"units\":1},\"43136763363561\":{\"cents\":8,\"units\":6},\"47943700381929\":{\"cents\":8,\"units\":1},\"47943700414697\":{\"cents\":8,\"units\":6},\"43136938279145\":{\"cents\":25,\"units\":1},\"45030476710121\":{\"cents\":25,\"units\":1},\"51130292863209\":{\"cents\":25,\"units\":1},\"43137020461289\":{\"cents\":25,\"units\":1},\"44882939412713\":{\"cents\":25,\"units\":1},\"43142862897385\":{\"cents\":25,\"units\":1},\"43137034420457\":{\"cents\":25,\"units\":1},\"43137089601769\":{\"cents\":25,\"units\":1},\"51062181101801\":{\"cents\":8,\"units\":1},\"43142860210409\":{\"cents\":8,\"units\":1},\"43137020395753\":{\"cents\":8,\"units\":1},\"46559510528233\":{\"cents\":8,\"units\":1},\"43137021182185\":{\"cents\":8,\"units\":1},\"43142794641641\":{\"cents\":25,\"units\":1},\"46676782940393\":{\"cents\":25,\"units\":1},\"43136919109865\":{\"cents\":25,\"units\":1},\"43137011253481\":{\"cents\":25,\"units\":1},\"43142858178793\":{\"cents\":25,\"units\":1},\"51155586318569\":{\"cents\":25,\"units\":1},\"49156970119401\":{\"cents\":25,\"units\":1},\"43137021378793\":{\"cents\":8,\"units\":1},\"51127886577897\":{\"cents\":25,\"units\":1},\"49930730537193\":{\"cents\":25,\"units\":1},\"51125176303849\":{\"cents\":25,\"units\":1},\"51125176336617\":{\"cents\":25,\"units\":1},\"49157240422633\":{\"cents\":25,\"units\":1},\"49158774554857\":{\"cents\":25,\"units\":1},\"49194386587881\":{\"cents\":25,\"units\":1},\"47451740176617\":{\"cents\":25,\"units\":1},\"51159816339689\":{\"cents\":25,\"units\":1},\"43136749830377\":{\"cents\":25,\"units\":1},\"43142890651881\":{\"cents\":25,\"units\":1},\"43137019871465\":{\"cents\":25,\"units\":1},\"43142638600425\":{\"cents\":25,\"units\":1},\"49194461692137\":{\"cents\":25,\"units\":1},\"43142892191977\":{\"cents\":25,\"units\":1},\"51127890444521\":{\"cents\":25,\"units\":1},\"43137116209385\":{\"cents\":25,\"units\":1},\"43137126957289\":{\"cents\":25,\"units\":1},\"51135539675369\":{\"cents\":25,\"units\":1},\"49363827097833\":{\"cents\":25,\"units\":1},\"48639030886633\":{\"cents\":25,\"units\":24},\"43137036484841\":{\"cents\":25,\"units\":1},\"49386968580329\":{\"cents\":25,\"units\":1},\"49386991124713\":{\"cents\":25,\"units\":1},\"49386975690985\":{\"cents\":25,\"units\":1},\"49387000692969\":{\"cents\":25,\"units\":1},\"43137021346025\":{\"cents\":8,\"units\":1},\"48639053562089\":{\"cents\":25,\"units\":1},\"51138072183017\":{\"cents\":25,\"units\":1},\"48639053594857\":{\"cents\":25,\"units\":1},\"51159807328489\":{\"cents\":25,\"units\":1},\"48655200354537\":{\"cents\":25,\"units\":1},\"44882916606185\":{\"cents\":25,\"units\":1},\"51159745134825\":{\"cents\":25,\"units\":1},\"43137071481065\":{\"cents\":25,\"units\":1},\"51159816241385\":{\"cents\":25,\"units\":1},\"43142890520809\":{\"cents\":25,\"units\":1},\"43137125581033\":{\"cents\":25,\"units\":1},\"51155848855785\":{\"cents\":25,\"units\":1},\"43142894878953\":{\"cents\":25,\"units\":1},\"45016297505001\":{\"cents\":25,\"units\":1},\"51128078696681\":{\"cents\":25,\"units\":1},\"47943700250857\":{\"cents\":8,\"units\":1},\"47943700218089\":{\"cents\":8,\"units\":6},\"43137049133289\":{\"cents\":25,\"units\":1},\"43137027473641\":{\"cents\":8,\"units\":1},\"49387024154857\":{\"cents\":25,\"units\":1},\"43137125843177\":{\"cents\":25,\"units\":1},\"44882914574569\":{\"cents\":25,\"units\":1},\"46559533564137\":{\"cents\":25,\"units\":1},\"51153042538729\":{\"cents\":25,\"units\":1},\"47132754936041\":{\"cents\":25,\"units\":1},\"51155838501097\":{\"cents\":25,\"units\":1},\"43137024688361\":{\"cents\":25,\"units\":1},\"51130153435369\":{\"cents\":25,\"units\":1},\"44882944491753\":{\"cents\":25,\"units\":1},\"48937560441065\":{\"cents\":25,\"units\":1},\"43136919306473\":{\"cents\":25,\"units\":1},\"51068513255657\":{\"cents\":25,\"units\":1},\"46603283005673\":{\"cents\":25,\"units\":6},\"43136919142633\":{\"cents\":25,\"units\":6},\"43137021280489\":{\"cents\":25,\"units\":1},\"43137110999273\":{\"cents\":25,\"units\":1},\"48639037604073\":{\"cents\":25,\"units\":1},\"51155652116713\":{\"cents\":25,\"units\":1},\"48639051464937\":{\"cents\":25,\"units\":1},\"51138069201129\":{\"cents\":25,\"units\":1},\"45016297472233\":{\"cents\":25,\"units\":1},\"51145380069609\":{\"cents\":25,\"units\":1},\"43142614286569\":{\"cents\":25,\"units\":1},\"49155961127145\":{\"cents\":8,\"units\":1},\"51068434088169\":{\"cents\":8,\"units\":1},\"43137071612137\":{\"cents\":25,\"units\":1},\"51443000606953\":{\"cents\":25,\"units\":1},\"51130156646633\":{\"cents\":25,\"units\":1}}};\n  const depositVariantIds = new Set(Object.values(CONFIG.depositVariantsByCents).map(String));\n  const depositCentsByVariantId = new Map(Object.entries(CONFIG.depositVariantsByCents).map(entry => [String(entry[1]), Number(entry[0])]));\n  const PFAND_TITLE = CONFIG.depositTitle || 'Pfand fuer Flaschen/Dosen';\n  let syncTimer = null;\n  let syncing = false;\n  let queued = false;\n  let internalRefreshUntil = 0;\n  let internalCartMutationUntil = 0;\n  let cartInteractionTimer = null;\n  let decorationTimer = null;\n  let missingPfandRefreshTimer = null;\n  let lastMissingPfandRefreshAt = 0;\n  let stableCartDisplayTimer = null;\n  let stableCartDisplayUntil = 0;\n  let stableCartForDisplay = null;\n  let controlledCartUpdateSeq = 0;\n  let controlledCartMutationUntil = 0;\n  let preferredSyncCart = null;\n  let preferredSyncCartUntil = 0;\n  let preferredSyncCartStamp = 0;\n  const controlledLineUpdates = new Map();\n  let pendingAddedItems = [];\n  const PFAND_ICON_URL = window.__toaPfandCartSyncConfig?.pfandIconUrl || '';\n\n  const cssEscape = value => {\n    if (window.CSS && typeof window.CSS.escape === 'function') return window.CSS.escape(String(value));\n    return String(value).replace(/[\"\\\\]/g, '\\\\$&');\n  };\n\n  const injectPfandStyle = () => {\n    if (document.getElementById('toa-pfand-cart-style')) return;\n    const style = document.createElement('style');\n    style.id = 'toa-pfand-cart-style';\n    style.textContent = `\n      .toa-pfand-cart-line {\n        min-height: 104px !important;\n        background: #f5fbff !important;\n        border-top: 1px solid #c8e5f7 !important;\n        border-bottom: 1px solid #c8e5f7 !important;\n        box-shadow: inset 4px 0 0 #0b5f9d !important;\n        order: -999 !important;\n        transform: none !important;\n        animation: none !important;\n        transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, opacity .18s ease !important;\n      }\n      .toa-pfand-cart-line.toa-pfand-line-removing {\n        min-height: 0 !important;\n        max-height: 0 !important;\n        margin-top: 0 !important;\n        margin-bottom: 0 !important;\n        padding-top: 0 !important;\n        padding-bottom: 0 !important;\n        opacity: 0 !important;\n        overflow: hidden !important;\n      }\n      .toa-cart-line-updating {\n        background-color: rgba(11, 95, 157, .035) !important;\n        transition: background-color .16s ease, opacity .16s ease, transform .16s ease !important;\n        will-change: background-color;\n      }\n      .toa-cart-line-updating .qty-adjuster__value {\n        color: #0b5f9d !important;\n        font-weight: 700 !important;\n      }\n      .toa-cart-line-removing {\n        max-height: 0 !important;\n        min-height: 0 !important;\n        margin-top: 0 !important;\n        margin-bottom: 0 !important;\n        padding-top: 0 !important;\n        padding-bottom: 0 !important;\n        opacity: 0 !important;\n        overflow: hidden !important;\n        transform: translate3d(0, -6px, 0) !important;\n        pointer-events: none !important;\n      }\n      .toa-cart-line-controlled-error {\n        background-color: rgba(227, 6, 19, .055) !important;\n      }\n      .toa-pfand-fallback-line {\n        display: grid !important;\n        grid-template-columns: minmax(72px, 96px) minmax(0, 1fr) auto !important;\n        align-items: center !important;\n        gap: 16px !important;\n        width: 100% !important;\n        padding: 18px 20px !important;\n        margin: 0 0 12px !important;\n        border-radius: 16px !important;\n      }\n      .toa-pfand-fallback-image {\n        display: flex !important;\n        justify-content: center !important;\n      }\n      .toa-pfand-fallback-title {\n        color: #074d7d !important;\n        font-weight: 750 !important;\n        font-size: 18px !important;\n        line-height: 1.2 !important;\n      }\n      .toa-pfand-fallback-subtitle {\n        color: rgba(7,77,125,.78) !important;\n        font-size: 13px !important;\n        line-height: 1.35 !important;\n        margin-top: 3px !important;\n      }\n      .toa-pfand-fallback-qty {\n        width: 64px !important;\n        height: 44px !important;\n        margin-top: 12px !important;\n        display: inline-flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n        border: 1px solid rgba(234,217,191,.98) !important;\n        background: #fffdf8 !important;\n        color: #0b5f9d !important;\n        font-size: 18px !important;\n        font-weight: 750 !important;\n        pointer-events: none !important;\n      }\n      .toa-pfand-fallback-price {\n        white-space: nowrap !important;\n        font-size: 18px !important;\n        font-weight: 750 !important;\n        color: #13251a !important;\n      }\n      .toa-pfand-cart-line .cart-summary-item,\n      .toa-pfand-cart-line.cart-summary-item {\n        background: transparent !important;\n      }\n      .toa-pfand-cart-line .cart-summary-item__title,\n      .toa-pfand-cart-line .cart-item__name,\n      .toa-pfand-cart-line .ajaxcart__product-name {\n        color: #074d7d !important;\n        font-weight: 750 !important;\n      }\n      .toa-pfand-cart-line .cart-summary-item__image a,\n      .toa-pfand-cart-line .cart-summary-item__image {\n        display: flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n      }\n      .toa-pfand-cart-line .cart-summary-item__image a {\n        pointer-events: none !important;\n      }\n      .toa-pfand-cart-line .cart-summary-item__image img:not(.toa-pfand-icon__image),\n      .toa-pfand-cart-line .cart-summary-item__image .rimage__image {\n        display: none !important;\n      }\n      .toa-pfand-icon {\n        width: clamp(68px, 17vw, 96px);\n        height: clamp(68px, 17vw, 96px);\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        background: #fff;\n      }\n      .toa-pfand-icon__image {\n        width: 100% !important;\n        height: 100% !important;\n        max-width: 100% !important;\n        max-height: 100% !important;\n        object-fit: contain !important;\n        display: block;\n      }\n      .toa-pfand-cart-line .qty-adjuster__down,\n      .toa-pfand-cart-line .qty-adjuster__up,\n      .toa-pfand-cart-line .qty-adjuster__remove,\n      .toa-pfand-cart-line .cart-summary-item__remove,\n      .toa-pfand-cart-line .cart-remove-button,\n      .toa-pfand-cart-line button[name='remove'],\n      .toa-pfand-cart-line a[href*='/cart/change'][href*='quantity=0'] {\n        display: none !important;\n      }\n      .cart-summary.toa-cart-drawer-upgraded .toa-pfand-cart-line .cart-summary-item__quantity,\n      .cart-summary.toa-cart-drawer-upgraded .toa-pfand-cart-line .qty-adjuster,\n      .toa-pfand-cart-line .cart-summary-item__quantity,\n      .toa-pfand-cart-line .qty-adjuster,\n      .toa-pfand-cart-line .quantity,\n      .toa-pfand-cart-line .ajaxcart__qty,\n      .toa-pfand-cart-line [data-quantity-wrapper] {\n        min-width: 92px !important;\n        width: auto !important;\n        min-height: 44px !important;\n        display: inline-flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n        border-radius: 0 !important;\n        border: 1px solid rgba(234,217,191,.98) !important;\n        background: #fffdf8 !important;\n        box-shadow: none !important;\n        overflow: hidden !important;\n      }\n      .toa-pfand-cart-line .qty-adjuster__inner {\n        display: inline-flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n        height: 44px !important;\n      }\n      .cart-summary.toa-cart-drawer-upgraded .toa-pfand-cart-line input,\n      .toa-pfand-cart-line input,\n      .toa-pfand-qty-value {\n        min-width: 60px !important;\n        height: 44px !important;\n        border: 0 !important;\n        background: transparent !important;\n        color: #0b5f9d !important;\n        font-size: 18px !important;\n        font-weight: 750 !important;\n        text-align: center !important;\n        box-shadow: none !important;\n        pointer-events: none !important;\n      }\n      @media (max-width: 749px) {\n        .toa-pfand-cart-line {\n          min-height: 92px !important;\n        }\n        .toa-pfand-fallback-line {\n          grid-template-columns: 72px minmax(0, 1fr) !important;\n          gap: 12px !important;\n          padding: 16px !important;\n        }\n        .toa-pfand-fallback-price {\n          grid-column: 2 !important;\n          justify-self: start !important;\n          margin-top: 8px !important;\n        }\n        .toa-pfand-icon {\n          width: 72px;\n          height: 72px;\n        }\n      }`;\n    document.head.appendChild(style);\n  };\n\n  const CART_LINE_SELECTOR = [\n    '.cart-summary-item-container',\n    '.cart-summary-item',\n    '[data-cart-item]',\n    '.ajaxcart__product',\n    '.cart-item'\n  ].join(',');\n\n  const cartLineRoot = line => {\n    if (!line || !line.closest) return line;\n    return line.closest('.cart-summary-item-container')\n      || line.closest('[data-cart-item], .ajaxcart__product, .cart-item, .cart-summary-item')\n      || line;\n  };\n\n  const cartLineNodes = () => {\n    const seen = new Set();\n    return Array.from(document.querySelectorAll(CART_LINE_SELECTOR))\n      .map(cartLineRoot)\n      .filter(line => {\n        if (!line || seen.has(line) || line.closest('[data-toa-cart-panel]')) return false;\n        if (line.classList.contains('toa-cart-line-removing') || line.getAttribute('aria-hidden') === 'true') return false;\n        seen.add(line);\n        return true;\n      });\n  };\n\n  const movePfandLineToTop = line => {\n    const root = cartLineRoot(line);\n    if (!root || !root.parentElement) return root || line;\n    const parent = root.parentElement;\n    const siblings = Array.from(parent.children).filter(child => {\n      if (!child.matches) return false;\n      return child.hasAttribute('data-toa-pfand-line')\n        || child.matches('.cart-summary-item-container, [data-cart-item], .ajaxcart__product, .cart-item, .cart-summary-item');\n    });\n    const firstLine = siblings[0];\n    if (firstLine && firstLine !== root) parent.insertBefore(root, firstLine);\n    return root;\n  };\n\n  const findLineForPfandItem = item => {\n    const variantId = cssEscape(item.variant_id);\n    return document.querySelector(`.cart-summary-item-container[data-product-id=\"${variantId}\"]`)\n      || document.querySelector(`.qty-adjuster[data-line-item-id=\"${variantId}\"]`)?.closest('.cart-summary-item-container, .cart-summary-item')\n      || cartLineNodes().find(line => {\n        const text = (line.textContent || '').replace(/\\s+/g, ' ').toLowerCase();\n        return text.includes('pfand') && (text.includes('flaschen') || text.includes('dosen'));\n      });\n  };\n\n  const renderReadOnlyQuantity = (line, quantity) => {\n    const controls = line.querySelectorAll([\n      '.cart-summary-item__quantity',\n      '.qty-adjuster',\n      '.quantity',\n      '.ajaxcart__qty',\n      '[data-quantity-wrapper]'\n    ].join(','));\n    controls.forEach(control => {\n      control.classList.add('toa-pfand-quantity-readonly');\n      control.setAttribute('aria-label', 'Pfandmenge wird automatisch berechnet');\n      control.querySelectorAll('button, a').forEach(button => {\n        button.setAttribute('aria-hidden', 'true');\n        button.setAttribute('tabindex', '-1');\n        button.style.setProperty('display', 'none', 'important');\n        button.style.setProperty('pointer-events', 'none', 'important');\n      });\n      const input = control.querySelector('input');\n      if (input) {\n        input.value = String(quantity);\n        input.defaultValue = String(quantity);\n        input.setAttribute('readonly', 'readonly');\n        input.setAttribute('aria-readonly', 'true');\n        input.setAttribute('tabindex', '-1');\n        return;\n      }\n      if (!control.querySelector('[data-toa-pfand-qty-value]')) {\n        const value = document.createElement('span');\n        value.className = 'toa-pfand-qty-value';\n        value.setAttribute('data-toa-pfand-qty-value', 'true');\n        control.appendChild(value);\n      }\n      const value = control.querySelector('[data-toa-pfand-qty-value]');\n      if (value) value.textContent = String(quantity);\n    });\n  };\n\n  const fixPfandLineTitle = line => {\n    const title = [\n      '.cart-summary-item__title a',\n      '.cart-summary-item__title',\n      '.cart-item__name',\n      '.ajaxcart__product-name',\n      'a[href*=\"/products/pfand-fuer-flaschen-dosen\"]'\n    ].map(selector => line.querySelector(selector)).find(Boolean);\n    if (title) title.textContent = PFAND_TITLE;\n  };\n\n  const formatMoney = cents => {\n    const amount = Math.max(0, Number(cents || 0)) / 100;\n    try {\n      return new Intl.NumberFormat('de-DE', {\n        style: 'currency',\n        currency: 'EUR'\n      }).format(amount);\n    } catch (error) {\n      return amount.toFixed(2).replace('.', ',') + ' ' + String.fromCharCode(8364);\n    }\n  };\n\n  const euroSymbol = String.fromCharCode(8364);\n  const moneyTextPattern = new RegExp([\n    '-?\\\\d{1,3}(?:[.\\\\s]\\\\d{3})*,\\\\d{2}\\\\s*(?:' + euroSymbol + '\\\\s*)*',\n    '-?\\\\d+[,.]\\\\d{2}\\\\s*(?:' + euroSymbol + '\\\\s*)*'\n  ].join('|'));\n\n  const replaceMoneyInElement = (element, cents) => {\n    if (!element) return false;\n    const nodes = [];\n    const walker = document.createTreeWalker(element, 4);\n    let node = walker.nextNode();\n    while (node) {\n      nodes.push(node);\n      node = walker.nextNode();\n    }\n    let changed = false;\n    nodes.forEach(textNode => {\n      const text = textNode.nodeValue || '';\n      if (!moneyTextPattern.test(text)) return;\n      const nextText = text.replace(moneyTextPattern, formatMoney(cents));\n      if (nextText === text) return;\n      textNode.nodeValue = nextText;\n      changed = true;\n    });\n    return changed;\n  };\n\n  const moneyTextToCents = text => {\n    const match = String(text || '').match(moneyTextPattern);\n    if (!match) return null;\n    let raw = match[0].replace(/[^\\d,.-]/g, '').trim();\n    const negative = raw.includes('-') ? -1 : 1;\n    raw = raw.replace(/-/g, '');\n    const decimalIndex = Math.max(raw.lastIndexOf(','), raw.lastIndexOf('.'));\n    let euros = raw.replace(/[^\\d]/g, '');\n    let cents = '00';\n    if (decimalIndex >= 0) {\n      euros = raw.slice(0, decimalIndex).replace(/[^\\d]/g, '') || '0';\n      cents = raw.slice(decimalIndex + 1).replace(/[^\\d]/g, '').slice(0, 2).padEnd(2, '0');\n    }\n    const parsed = (Number(euros || '0') * 100) + Number(cents || '0');\n    return Number.isFinite(parsed) ? negative * parsed : null;\n  };\n\n  const uniqueElements = elements => {\n    const seen = new Set();\n    return elements.filter(element => {\n      if (!element || seen.has(element)) return false;\n      seen.add(element);\n      return true;\n    });\n  };\n\n  const moneyElementsInScope = scope => {\n    if (!scope) return [];\n    const elements = [scope].concat(Array.from(scope.querySelectorAll([\n      '.money',\n      '.theme-money',\n      '[data-cart-item-final-line-price]',\n      '[data-cart-item-line-price]',\n      '[data-line-price]',\n      '[class*=\"price\"]',\n      '[class*=\"total\"]'\n    ].join(','))));\n    return uniqueElements(elements).filter(element => {\n      if (!moneyTextPattern.test(element.textContent || '')) return false;\n      return !Array.from(element.children || []).some(child => moneyTextPattern.test(child.textContent || ''));\n    });\n  };\n\n  const compareMoneySelector = [\n    's',\n    'del',\n    '[data-compare-price]',\n    '[data-compare-at-price]',\n    '.compare-at-price',\n    '.compare-price',\n    '.cart-summary-item__compare',\n    '.cart-summary-item__original-price',\n    '.cart-item__compare',\n    '.cart-item__original-price',\n    '.original-price',\n    '.price--compare',\n    '.price__compare',\n    '.price__was',\n    '.was-price',\n    '.old-price'\n  ].join(',');\n\n  const unitMoneySelector = [\n    '[data-unit-price]',\n    '.unit-price',\n    '.unit-price-measurement',\n    '.cart-summary-item__unit-price',\n    '.cart-item__unit-price',\n    '.price__unit'\n  ].join(',');\n\n  const isCompareMoneyElement = element => {\n    if (!element) return false;\n    if (element.matches?.(compareMoneySelector) || element.closest(compareMoneySelector)) return true;\n    const className = String(element.className || '').toLowerCase();\n    if (/compare|was|original|strike|strikethrough|old-price/.test(className)) return true;\n    try {\n      const style = window.getComputedStyle?.(element);\n      return !!style && /line-through/.test(style.textDecorationLine || style.textDecoration || '');\n    } catch (error) {\n      return false;\n    }\n  };\n\n  const isUnitMoneyElement = element => {\n    if (!element) return false;\n    return !!(element.matches?.(unitMoneySelector) || element.closest(unitMoneySelector));\n  };\n\n  const updateCartSummaryMoney = cart => {\n    if (!cart || typeof cart.total_price === 'undefined') return;\n    const selectors = [\n      '[data-cart-total]',\n      '[data-cart-subtotal]',\n      '[data-cart-total-price]',\n      '.cart-summary__total',\n      '.cart-summary__subtotal',\n      '.cart-summary__checkout',\n      '.cart-summary a[href=\"/checkout\"]',\n      '.cart-summary button[name=\"checkout\"]',\n      '[data-checkout-button]',\n      'a[href=\"/checkout\"]',\n      'button[name=\"checkout\"]'\n    ].join(',');\n    Array.from(document.querySelectorAll(selectors)).forEach(element => {\n      replaceMoneyInElement(element, Number(cart.total_price || 0));\n    });\n  };\n\n  const updateCartCount = cart => {\n    if (!cart || typeof cart.item_count === 'undefined') return;\n    const count = String(cart.item_count);\n    const selectors = [\n      '[data-cart-count]',\n      '.cart-count',\n      '.cart-item-count',\n      '.header-cart-count',\n      '.cart-link__count'\n    ].join(',');\n    Array.from(document.querySelectorAll(selectors)).forEach(element => {\n      const text = (element.textContent || '').trim();\n      if (!text || /^\\d+$/.test(text)) element.textContent = count;\n    });\n  };\n\n  const updatePfandLineMoney = (line, item) => {\n    if (!line || !item) return;\n    const cents = Number(item.final_line_price ?? item.line_price ?? (Number(item.price || 0) * Number(item.quantity || 0)) ?? 0);\n    if (!Number.isFinite(cents) || cents <= 0) return;\n    const candidates = Array.from(line.querySelectorAll([\n      '[data-cart-item-final-line-price]',\n      '[data-cart-item-line-price]',\n      '[data-line-price]',\n      '.cart-summary-item__price',\n      '.cart-summary-item__total',\n      '.cart-item__price',\n      '.cart-item__totals',\n      '.ajaxcart__price',\n      '.money',\n      '[class*=\"price\"]',\n      '[class*=\"total\"]'\n    ].join(','))).filter(element => {\n      const text = element.textContent || '';\n      if (!moneyTextPattern.test(text)) return false;\n      if (element.closest('.cart-summary-item__title, .cart-item__name, .qty-adjuster, .quantity, [data-quantity-wrapper]')) return false;\n      return true;\n    });\n    const target = candidates[candidates.length - 1];\n    if (target) replaceMoneyInElement(target, cents);\n  };\n\n  const updateCartChrome = cart => {\n    updateCartSummaryMoney(cart);\n    updateCartCount(cart);\n  };\n\n  const holdCartChrome = (cart, duration = 1800) => {\n    if (!cart) return;\n    stableCartForDisplay = cart;\n    stableCartDisplayUntil = Date.now() + duration;\n    updateCartChrome(cart);\n  };\n\n  const reapplyHeldCartChrome = (delay = 40) => {\n    if (!stableCartForDisplay || Date.now() > stableCartDisplayUntil) return;\n    window.clearTimeout(stableCartDisplayTimer);\n    stableCartDisplayTimer = window.setTimeout(() => {\n      if (stableCartForDisplay && Date.now() <= stableCartDisplayUntil) {\n        updateCartChrome(stableCartForDisplay);\n      }\n    }, delay);\n  };\n\n  const depositStateForCart = cart => {\n    const requiredByCents = {};\n    const existingByCents = {};\n    for (const item of cart && cart.items || []) {\n      const variantId = String(item.variant_id);\n      const depositCents = depositCentsByVariantId.get(variantId);\n      if (depositCents) {\n        const key = String(depositCents);\n        if (!existingByCents[key]) existingByCents[key] = [];\n        existingByCents[key].push(item);\n        continue;\n      }\n      const rule = CONFIG.variantRules[variantId];\n      if (!rule) continue;\n      const cents = String(rule.cents);\n      const units = Math.max(1, Number(rule.units || 1));\n      requiredByCents[cents] = (requiredByCents[cents] || 0) + (Number(item.quantity || 0) * units);\n    }\n    return { requiredByCents, existingByCents };\n  };\n\n  const cartWithProjectedPfand = cart => {\n    if (!cart || !Array.isArray(cart.items)) return cart;\n    const state = depositStateForCart(cart);\n    let totalDelta = 0;\n    let countDelta = 0;\n    const projectedItems = (cart.items || [])\n      .filter(item => !depositVariantIds.has(String(item.variant_id)))\n      .map(item => Object.assign({}, item));\n\n    for (const [cents, variantId] of Object.entries(CONFIG.depositVariantsByCents)) {\n      const required = Number(state.requiredByCents[cents] || 0);\n      const lines = state.existingByCents[cents] || [];\n      const current = lines.reduce((sum, item) => sum + Number(item.quantity || 0), 0);\n      const centsNumber = Number(cents);\n      const delta = required - current;\n      totalDelta += delta * centsNumber;\n      countDelta += delta;\n      if (!required) continue;\n\n      const primary = lines[0] || {};\n      projectedItems.push(Object.assign({}, primary, {\n        id: Number(variantId),\n        variant_id: Number(variantId),\n        key: primary.key || `toa-projected-pfand-${cents}`,\n        title: PFAND_TITLE,\n        product_title: PFAND_TITLE,\n        quantity: required,\n        price: centsNumber,\n        line_price: centsNumber * required,\n        final_line_price: centsNumber * required\n      }));\n    }\n\n    const fallbackCount = projectedItems.reduce((sum, item) => sum + Number(item.quantity || 0), 0);\n    return Object.assign({}, cart, {\n      items: projectedItems,\n      total_price: Number(cart.total_price || 0) + totalDelta,\n      item_count: typeof cart.item_count === 'undefined'\n        ? fallbackCount\n        : Math.max(0, Number(cart.item_count || 0) + countDelta),\n      _toaProjectedPfandDelta: totalDelta\n    });\n  };\n\n  const rememberPreferredSyncCart = (cart, duration = 4200) => {\n    if (!cart || !Array.isArray(cart.items)) return;\n    preferredSyncCart = cart;\n    preferredSyncCartUntil = Date.now() + duration;\n    preferredSyncCartStamp = Date.now();\n  };\n\n  const preferredSyncCartFor = startedAt => {\n    if (!preferredSyncCart || Date.now() > preferredSyncCartUntil) return null;\n    if (controlledCartIsBusy() || preferredSyncCartStamp >= startedAt) return preferredSyncCart;\n    return null;\n  };\n\n  const removePfandFallbackLine = () => {\n    document.querySelectorAll('[data-toa-pfand-fallback]').forEach(line => line.remove());\n  };\n\n  const hasRequiredPfandProducts = cart => {\n    if (!cart || !Array.isArray(cart.items)) return false;\n    return cart.items.some(item => {\n      const variantId = String(item.variant_id);\n      if (depositVariantIds.has(variantId)) return false;\n      const rule = CONFIG.variantRules[variantId];\n      return !!rule && Number(item.quantity || 0) > 0;\n    });\n  };\n\n  const hasVisibleNonPfandCartLine = () => {\n    return cartLineNodes().some(line => {\n      if (!line || isPfandLineNode(line)) return false;\n      const style = window.getComputedStyle ? window.getComputedStyle(line) : null;\n      if (style && (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0')) return false;\n      return line.offsetHeight > 0;\n    });\n  };\n\n  const pfandFallbackMount = () => {\n    const firstLine = cartLineNodes()[0];\n    if (firstLine?.parentElement && !['TBODY', 'TABLE', 'THEAD', 'TFOOT'].includes(firstLine.parentElement.tagName)) {\n      return { parent: firstLine.parentElement, before: firstLine };\n    }\n    const parent = document.querySelector('.cart-summary__items, .cart-summary-items, [data-cart-items], .ajaxcart, .cart-summary, form[action*=\"/cart\"]');\n    return parent ? { parent, before: null } : null;\n  };\n\n  const renderPfandFallbackLine = (cart, items) => {\n    if (!items.length || !hasRequiredPfandProducts(cart) || (cartDrawerIsOpen() && !hasVisibleNonPfandCartLine())) {\n      removePfandFallbackLine();\n      return;\n    }\n    const existingRealLine = items.some(item => !!findLineForPfandItem(item));\n    if (existingRealLine) {\n      removePfandFallbackLine();\n      return;\n    }\n    injectPfandStyle();\n    const quantity = items.reduce((sum, item) => sum + Number(item.quantity || 0), 0);\n    const totalCents = items.reduce((sum, item) => {\n      const lineCents = Number(item.final_line_price ?? item.line_price ?? (Number(item.price || 0) * Number(item.quantity || 0)) ?? 0);\n      return sum + (Number.isFinite(lineCents) ? lineCents : 0);\n    }, 0);\n    const mount = pfandFallbackMount();\n    if (!mount) return;\n    let line = document.querySelector('[data-toa-pfand-fallback]');\n    if (!line) {\n      line = document.createElement('div');\n      line.className = 'toa-pfand-cart-line toa-pfand-fallback-line';\n      line.setAttribute('data-toa-cart-panel', 'true');\n      line.setAttribute('data-toa-pfand-line', 'true');\n      line.setAttribute('data-toa-pfand-fallback', 'true');\n      line.innerHTML = `\n        <div class=\"toa-pfand-fallback-image\">\n          <span class=\"toa-pfand-icon\" data-toa-pfand-icon=\"true\" aria-label=\"Pfandsymbol\">\n            <img class=\"toa-pfand-icon__image\" src=\"${PFAND_ICON_URL}\" alt=\"\" loading=\"lazy\">\n          </span>\n        </div>\n        <div class=\"toa-pfand-fallback-main\">\n          <div class=\"toa-pfand-fallback-title\"></div>\n          <div class=\"toa-pfand-fallback-subtitle\">Automatisch berechnet</div>\n          <div class=\"toa-pfand-fallback-qty\" data-toa-pfand-qty-value=\"true\"></div>\n        </div>\n        <div class=\"toa-pfand-fallback-price\"></div>\n      `;\n    }\n    line.querySelector('.toa-pfand-fallback-title').textContent = PFAND_TITLE;\n    line.querySelector('[data-toa-pfand-qty-value]').textContent = String(quantity);\n    line.querySelector('.toa-pfand-fallback-price').textContent = formatMoney(totalCents);\n    if (line.parentElement !== mount.parent || line !== mount.before) {\n      mount.parent.insertBefore(line, mount.before);\n    }\n    holdCartChrome(cart);\n  };\n\n  const scheduleMissingPfandRefresh = cart => {\n    if (!hasRequiredPfandProducts(cart)) {\n      window.clearTimeout(missingPfandRefreshTimer);\n      removePfandFallbackLine();\n      return;\n    }\n    const stableCart = cartWithProjectedPfand(cart);\n    const items = (stableCart && stableCart.items || []).filter(item => depositVariantIds.has(String(item.variant_id)));\n    if (!items.length) return;\n    const hasRenderedLine = items.some(item => !!findLineForPfandItem(item));\n    if (hasRenderedLine) return;\n    renderPfandFallbackLine(stableCart, items);\n    if (controlledCartIsBusy()) {\n      window.clearTimeout(missingPfandRefreshTimer);\n      missingPfandRefreshTimer = window.setTimeout(() => scheduleMissingPfandRefresh(stableCart), 1200);\n      return;\n    }\n    const now = Date.now();\n    if (now - lastMissingPfandRefreshAt < 1800) return;\n    lastMissingPfandRefreshAt = now;\n    window.clearTimeout(missingPfandRefreshTimer);\n    missingPfandRefreshTimer = window.setTimeout(() => {\n      cartJson().then(latestCart => {\n        const stableLatestCart = cartWithProjectedPfand(latestCart);\n        const latestItems = (stableLatestCart.items || []).filter(item => depositVariantIds.has(String(item.variant_id)));\n        if (!latestItems.length) {\n          removePfandFallbackLine();\n          holdCartChrome(stableLatestCart);\n          return;\n        }\n        if (!latestItems.some(item => !!findLineForPfandItem(item))) {\n          if (controlledCartIsBusy() || cartDrawerIsOpen()) {\n            renderPfandFallbackLine(stableLatestCart, latestItems);\n            holdCartChrome(stableLatestCart);\n            scheduleMissingPfandRefresh(stableLatestCart);\n            return;\n          }\n          refreshCartUi(cartDrawerIsOpen());\n          renderPfandFallbackLine(stableLatestCart, latestItems);\n          window.setTimeout(() => schedulePfandDecoration(null, 0), 320);\n          window.setTimeout(() => schedulePfandDecoration(null, 0), 900);\n          window.setTimeout(() => schedulePfandDecoration(null, 0), 1600);\n        }\n      }).catch(() => {});\n    }, 420);\n  };\n\n  const decoratePfandLines = cart => {\n    injectPfandStyle();\n    const stableCart = cartWithProjectedPfand(cart);\n    const items = (stableCart && stableCart.items || []).filter(item => depositVariantIds.has(String(item.variant_id)));\n    if (!items.length || !hasRequiredPfandProducts(stableCart) || (cartDrawerIsOpen() && !hasVisibleNonPfandCartLine())) {\n      removeAllPfandLinesFromDom(true);\n      removePfandFallbackLine();\n      return;\n    }\n    let foundRealLine = false;\n    items.forEach(item => {\n      const foundLine = findLineForPfandItem(item);\n      if (!foundLine) return;\n      const line = movePfandLineToTop(foundLine);\n      if (!line) return;\n      foundRealLine = true;\n      line.classList.add('toa-pfand-cart-line');\n      line.classList.remove('toa-pfand-line-removing');\n      line.setAttribute('data-toa-pfand-line', 'true');\n      fixPfandLineTitle(line);\n      const image = line.querySelector('.cart-summary-item__image, .cart-item__image, .ajaxcart__product-image');\n      if (image && !image.querySelector('[data-toa-pfand-icon]')) {\n        image.innerHTML = `<span class=\"toa-pfand-icon\" data-toa-pfand-icon=\"true\" aria-label=\"Pfandsymbol\"><img class=\"toa-pfand-icon__image\" src=\"${PFAND_ICON_URL}\" alt=\"\" loading=\"lazy\"></span>`;\n      }\n      renderReadOnlyQuantity(line, Number(item.quantity || 0));\n      updatePfandLineMoney(line, item);\n    });\n    if (foundRealLine) removePfandFallbackLine();\n    if (!foundRealLine) renderPfandFallbackLine(stableCart, items);\n    holdCartChrome(stableCart);\n    if (!foundRealLine) scheduleMissingPfandRefresh(stableCart);\n  };\n\n  const removeAllPfandLinesFromDom = (immediate = false) => {\n    const roots = Array.from(document.querySelectorAll('[data-toa-pfand-line], .toa-pfand-cart-line'))\n      .map(cartLineRoot)\n      .filter(Boolean);\n    roots.forEach(root => {\n      root.classList.add('toa-pfand-line-removing');\n      if (immediate) {\n        root.remove();\n        return;\n      }\n      window.setTimeout(() => root.remove(), 220);\n    });\n    return !!roots.length;\n  };\n\n  const schedulePfandDecoration = (cart = null, delay = null) => {\n    window.clearTimeout(decorationTimer);\n    const wait = delay ?? (cart ? 60 : 180);\n    decorationTimer = window.setTimeout(() => {\n      if (cart) {\n        decoratePfandLines(cart);\n        return;\n      }\n      cartJson().then(decoratePfandLines).catch(() => {});\n    }, wait);\n  };\n\n  const scheduleSync = (delay = 180) => {\n    if (syncing) {\n      queued = true;\n      return;\n    }\n    window.clearTimeout(syncTimer);\n    syncTimer = window.setTimeout(syncPfand, delay);\n  };\n\n  const isCartMutationUrl = url => /\\/cart\\/(add|change|update|clear)(?:\\.js)?(?:\\?|$)/.test(String(url || ''));\n  const isCartAddUrl = url => /\\/cart\\/add(?:\\.js)?(?:\\?|$)/.test(String(url || ''));\n\n  const cartDrawerIsOpen = () => document.body.classList.contains('show-cart-summary')\n    || document.documentElement.classList.contains('show-cart-summary')\n    || !!document.querySelector('.cart-summary.active');\n\n  const rememberCartAddPayload = payload => {\n    const rawItems = Array.isArray(payload?.items) ? payload.items : [payload];\n    const expiresAt = Date.now() + 12000;\n    rawItems.forEach(item => {\n      const variantId = Number(item?.variant_id || item?.id || 0);\n      const quantity = Math.max(1, Number(item?.quantity || 1));\n      if (!variantId || !quantity) return;\n      pendingAddedItems.push({\n        id: variantId,\n        variant_id: variantId,\n        key: `pending-add-${Date.now()}-${variantId}`,\n        quantity,\n        expiresAt\n      });\n    });\n  };\n\n  const scheduleAfterCartInteraction = (shouldOpenDrawer = false) => {\n    const keepDrawerOpen = shouldOpenDrawer || cartDrawerIsOpen();\n    if (shouldOpenDrawer) {\n      window.setTimeout(() => {\n        if (!cartDrawerIsOpen()) openCartDrawer();\n      }, 320);\n    }\n    window.clearTimeout(cartInteractionTimer);\n    cartInteractionTimer = window.setTimeout(() => {\n      schedulePfandDecoration();\n      reapplyHeldCartChrome();\n      scheduleSync(100);\n    }, keepDrawerOpen ? 140 : 240);\n    window.setTimeout(() => scheduleSync(0), 800);\n    window.setTimeout(() => {\n      schedulePfandDecoration();\n      reapplyHeldCartChrome();\n    }, 1100);\n  };\n\n  const cartFromRenderedDrawer = () => {\n    let lines = Array.from(document.querySelectorAll('.cart-summary-item-container'));\n    if (!lines.length) lines = cartLineNodes();\n    const itemsByVariant = new Map();\n    lines.forEach(line => {\n      if (!line || line.closest('[data-toa-cart-panel]')) return;\n      const rawVariant = line.getAttribute('data-product-id')\n        || line.querySelector('.qty-adjuster')?.getAttribute('data-line-item-id')\n        || line.querySelector('[data-variant-id]')?.getAttribute('data-variant-id')\n        || '';\n      const variantId = Number(String(rawVariant || '').replace(/\\D+/g, ''));\n      if (!variantId) return;\n      const quantityInput = line.querySelector('input[name^=\"updates\"], input.qty-adjuster__value, input');\n      const rawQuantity = quantityInput?.value\n        || line.querySelector('[data-toa-pfand-qty-value]')?.textContent\n        || line.getAttribute('data-quantity')\n        || '1';\n      const quantity = Math.max(0, Number(String(rawQuantity).replace(',', '.')) || 0);\n      if (!quantity) return;\n      const key = String(variantId);\n      const current = itemsByVariant.get(key) || {\n        id: variantId,\n        variant_id: variantId,\n        key,\n        quantity: 0\n      };\n      current.quantity += quantity;\n      itemsByVariant.set(key, current);\n    });\n    return { items: Array.from(itemsByVariant.values()), _toaFallback: true };\n  };\n\n  const mergePendingCartAdds = cart => {\n    const now = Date.now();\n    pendingAddedItems = pendingAddedItems.filter(item => item.expiresAt > now);\n    if (!cart?._toaFallback || !pendingAddedItems.length) return cart;\n    const items = (cart.items || []).map(item => Object.assign({}, item));\n    pendingAddedItems.forEach(pending => {\n      const exists = items.some(item => String(item.variant_id) === String(pending.variant_id));\n      if (!exists) items.push(Object.assign({}, pending));\n    });\n    return Object.assign({}, cart, { items });\n  };\n\n  const cartJson = async () => {\n    let lastError = null;\n    for (const delay of [0, 220, 700, 1400]) {\n      if (delay) await new Promise(resolve => window.setTimeout(resolve, delay));\n      try {\n        const response = await fetch('/cart.js', {\n          credentials: 'same-origin',\n          cache: 'no-store',\n          headers: { 'Accept': 'application/json' }\n        });\n        if (!response.ok) throw new Error(`cart.js ${response.status}`);\n        return response.json();\n      } catch (error) {\n        lastError = error;\n      }\n    }\n    const fallback = cartFromRenderedDrawer();\n    if (fallback.items.length) return fallback;\n    throw lastError || new Error('cart.js failed');\n  };\n\n  const changeLine = async (key, quantity) => {\n    internalCartMutationUntil = Date.now() + 1600;\n    const response = await fetch('/cart/change.js', {\n      method: 'POST',\n      credentials: 'same-origin',\n      headers: {\n        'Accept': 'application/json',\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify({ id: key, quantity })\n    });\n    if (!response.ok) throw new Error(`cart/change.js ${response.status}`);\n    return response.json();\n  };\n\n  const controlledCartIsBusy = () => controlledLineUpdates.size > 0 || Date.now() < controlledCartMutationUntil;\n\n  const isPfandLineNode = line => !!(line && line.closest && line.closest('[data-toa-pfand-line], .toa-pfand-cart-line, [data-toa-pfand-fallback]'));\n\n  const cartQuantitySurface = target => target && target.closest\n    ? target.closest('.cart-summary, [data-section-type=\"cart-template\"], .template-cart, .cart-form, #cartform')\n    : null;\n\n  const quantityInputForLine = line => line?.querySelector?.('.qty-adjuster__value, input[name^=\"updates\"]') || null;\n\n  const parsePositiveInteger = value => {\n    const number = Number(String(value || '').replace(/[^0-9]/g, ''));\n    return Number.isFinite(number) && number > 0 ? number : null;\n  };\n\n  const parseQuantityValue = value => {\n    const number = Number(String(value || '0').replace(',', '.').replace(/[^0-9.]/g, ''));\n    return Number.isFinite(number) ? Math.max(0, Math.floor(number)) : 0;\n  };\n\n  const cartChangeUrlParam = (element, param) => {\n    const href = element?.getAttribute?.('href');\n    if (!href) return null;\n    try {\n      const url = new URL(href, window.location.origin);\n      return parsePositiveInteger(url.searchParams.get(param));\n    } catch (error) {\n      const match = String(href).match(new RegExp(`[?&]${param}=([0-9]+)`));\n      return match ? parsePositiveInteger(match[1]) : null;\n    }\n  };\n\n  const cartChangeQuantityParam = element => {\n    const href = element?.getAttribute?.('href');\n    if (!href) return null;\n    try {\n      const url = new URL(href, window.location.origin);\n      const raw = url.searchParams.get('quantity');\n      return raw === null ? null : parseQuantityValue(raw);\n    } catch (error) {\n      const match = String(href).match(/[?&]quantity=([0-9]+)/);\n      return match ? parseQuantityValue(match[1]) : null;\n    }\n  };\n\n  const lineNumberFromId = value => {\n    const match = String(value || '').match(/updates(?:_(?:inc|dec))?_(\\d+)/);\n    return match ? parsePositiveInteger(match[1]) : null;\n  };\n\n  const variantIdFromProductHref = line => {\n    const link = line?.querySelector?.('a[href*=\"variant=\"], a[href*=\"/products/\"]');\n    const href = link?.getAttribute?.('href') || '';\n    if (!href) return null;\n    try {\n      const url = new URL(href, window.location.origin);\n      return parsePositiveInteger(url.searchParams.get('variant'));\n    } catch (error) {\n      const match = String(href).match(/[?&]variant=(\\d+)/);\n      return match ? parsePositiveInteger(match[1]) : null;\n    }\n  };\n\n  const lineNumberForControl = (target, line, input) => {\n    const removeLink = line?.querySelector?.('.qty-adjuster__remove, a[href*=\"/cart/change\"][href*=\"quantity=0\"]');\n    const candidates = [\n      target?.getAttribute?.('data-line'),\n      input?.getAttribute?.('data-line'),\n      cartChangeUrlParam(target, 'line'),\n      removeLink?.getAttribute?.('data-line'),\n      cartChangeUrlParam(removeLink, 'line'),\n      lineNumberFromId(target?.getAttribute?.('id')),\n      lineNumberFromId(input?.getAttribute?.('id'))\n    ];\n    for (const candidate of candidates) {\n      const lineNumber = parsePositiveInteger(candidate);\n      if (lineNumber) return lineNumber;\n    }\n    return null;\n  };\n\n  const variantIdForControl = (target, line) => {\n    const qtyAdjuster = target?.closest?.('.qty-adjuster[data-line-item-id]')\n      || line?.querySelector?.('.qty-adjuster[data-line-item-id]');\n    return parsePositiveInteger(qtyAdjuster?.getAttribute?.('data-line-item-id'))\n      || parsePositiveInteger(line?.getAttribute?.('data-product-id'))\n      || parsePositiveInteger(line?.querySelector?.('[data-variant-id]')?.getAttribute?.('data-variant-id'))\n      || variantIdFromProductHref(line);\n  };\n\n  const lineRootForControl = target => {\n    const rawLine = target?.closest?.(CART_LINE_SELECTOR)\n      || target?.closest?.('.cart-summary-item-container, .cart-summary-item, .cart-item, [data-cart-item]');\n    return cartLineRoot(rawLine);\n  };\n\n  const makeCartChangeHref = (lineNumber, quantity) => `/cart/change?line=${lineNumber}&quantity=${Math.max(0, quantity)}`;\n\n  const updateLineQuantityLinks = (line, lineNumber, quantity) => {\n    if (!line || !lineNumber) return;\n    const down = line.querySelector('.qty-adjuster__down[href], a[href*=\"/cart/change\"].qty-adjuster__down');\n    const up = line.querySelector('.qty-adjuster__up[href], a[href*=\"/cart/change\"].qty-adjuster__up');\n    const remove = line.querySelector('.qty-adjuster__remove[href], a[href*=\"/cart/change\"][href*=\"quantity=0\"]');\n    if (down) down.setAttribute('href', makeCartChangeHref(lineNumber, Math.max(0, quantity - 1)));\n    if (up) up.setAttribute('href', makeCartChangeHref(lineNumber, quantity + 1));\n    if (remove) {\n      remove.setAttribute('href', makeCartChangeHref(lineNumber, 0));\n      remove.setAttribute('data-line', String(lineNumber));\n    }\n    const input = quantityInputForLine(line);\n    if (input) input.setAttribute('data-line', String(lineNumber));\n  };\n\n  const setControlledLineVisual = (line, quantity, meta = {}) => {\n    if (!line) return;\n    if (quantity <= 0) {\n      line.classList.add('toa-cart-line-removing');\n      line.classList.remove('toa-cart-line-controlled-error');\n      line.setAttribute('aria-busy', 'true');\n      line.setAttribute('aria-hidden', 'true');\n      updateLineQuantityLinks(line, meta.useVariantId ? null : meta.lineNumber, 0);\n      return;\n    }\n    line.classList.add('toa-cart-line-updating');\n    line.classList.remove('toa-cart-line-controlled-error');\n    line.classList.remove('toa-cart-line-removing');\n    line.removeAttribute('aria-hidden');\n    line.setAttribute('aria-busy', 'true');\n    const input = quantityInputForLine(line);\n    if (input) {\n      input.value = String(quantity);\n      input.defaultValue = String(quantity);\n      input.setAttribute('data-initial-value', String(quantity));\n    }\n    updateLineQuantityLinks(line, meta.useVariantId ? null : meta.lineNumber, quantity);\n  };\n\n  const clearControlledLineVisual = line => {\n    if (!line) return;\n    line.classList.remove('toa-cart-line-updating');\n    line.classList.remove('toa-cart-line-removing');\n    line.removeAttribute('aria-busy');\n    line.removeAttribute('aria-hidden');\n  };\n\n  const updateProductLineMoney = (line, item) => {\n    if (!line || !item) return;\n    const cents = Number(item.final_line_price ?? item.line_price ?? (Number(item.price || 0) * Number(item.quantity || 0)) ?? 0);\n    if (!Number.isFinite(cents) || cents < 0) return;\n    const preferredScopes = [\n      '.cart-item__total',\n      '.cart-item__total__amount',\n      '.cart-summary-item__price',\n      '.cart-summary-item__total',\n      '[data-cart-item-final-line-price]',\n      '[data-cart-item-line-price]',\n      '[data-line-price]',\n      '.ajaxcart__price'\n    ].map(selector => line.querySelector(selector)).filter(element => element && moneyTextPattern.test(element.textContent || ''));\n    const lineMoneyTargets = uniqueElements(preferredScopes.flatMap(scope => moneyElementsInScope(scope)));\n    let currentTargets = lineMoneyTargets.filter(element => {\n      if (isCompareMoneyElement(element) || isUnitMoneyElement(element)) return false;\n      if (element.closest('.cart-summary-item__title, .cart-item__description, .qty-adjuster, .quantity, [data-quantity-wrapper]')) return false;\n      return true;\n    });\n    if (!currentTargets.length) {\n      currentTargets = moneyElementsInScope(line).filter(element => {\n        if (isCompareMoneyElement(element) || isUnitMoneyElement(element)) return false;\n        if (element.closest('.cart-summary-item__title, .cart-item__description, .cart-item__price, .qty-adjuster, .quantity, [data-quantity-wrapper]')) return false;\n        return true;\n      });\n    }\n    if (!currentTargets.length) return;\n\n    const compareTargets = moneyElementsInScope(line).filter(isCompareMoneyElement);\n    const previousCurrentCents = moneyTextToCents(currentTargets[0]?.textContent || '');\n    const directCompareCents = [\n      Number(item.original_line_price),\n      Number(item.original_price || 0) * Number(item.quantity || 0)\n    ].find(value => Number.isFinite(value) && value > cents);\n    const previousCompareCents = compareTargets\n      .map(element => moneyTextToCents(element.textContent || ''))\n      .find(value => Number.isFinite(value) && value > Number(previousCurrentCents || 0));\n    let nextCompareCents = directCompareCents || null;\n    if (!nextCompareCents && Number.isFinite(previousCurrentCents) && previousCurrentCents > 0 && previousCompareCents && cents > 0) {\n      nextCompareCents = Math.round(previousCompareCents * (cents / previousCurrentCents));\n    }\n\n    currentTargets.forEach(target => replaceMoneyInElement(target, cents));\n    if (nextCompareCents && nextCompareCents > cents) {\n      compareTargets.forEach(target => replaceMoneyInElement(target, nextCompareCents));\n    }\n  };\n\n  const adjustLineNumbersAfterRemoval = removedLineNumber => {\n    if (!removedLineNumber) return;\n    cartLineNodes().forEach(line => {\n      if (isPfandLineNode(line)) return;\n      const input = quantityInputForLine(line);\n      const currentLineNumber = lineNumberForControl(input || line, line, input);\n      if (!currentLineNumber || currentLineNumber <= removedLineNumber) return;\n      const nextLineNumber = currentLineNumber - 1;\n      const quantity = parseQuantityValue(input?.value || '1');\n      updateLineQuantityLinks(line, nextLineNumber, quantity);\n    });\n  };\n\n  const itemForControlledLine = (cart, meta) => {\n    if (!cart || !Array.isArray(cart.items)) return null;\n    if (meta.useVariantId && meta.variantId) {\n      return cart.items.find(item => String(item.variant_id) === String(meta.variantId) && !depositVariantIds.has(String(item.variant_id))) || null;\n    }\n    if (meta.lineNumber && cart.items[meta.lineNumber - 1]) return cart.items[meta.lineNumber - 1];\n    if (meta.variantId) {\n      return cart.items.find(item => String(item.variant_id) === String(meta.variantId) && !depositVariantIds.has(String(item.variant_id))) || null;\n    }\n    return null;\n  };\n\n  const applyControlledCartResponse = (cart, meta, quantity) => {\n    rememberPreferredSyncCart(cart, 5200);\n    const projectedCart = cartWithProjectedPfand(cart);\n    holdCartChrome(projectedCart, 2400);\n    controlledCartMutationUntil = Date.now() + 2200;\n\n    if (quantity <= 0) {\n      removeAllPfandLinesFromDom(true);\n      removePfandFallbackLine();\n      if (meta.line) {\n        meta.line.classList.add('toa-cart-line-removing');\n        meta.line.setAttribute('aria-hidden', 'true');\n        window.setTimeout(() => {\n          meta.line?.remove?.();\n          adjustLineNumbersAfterRemoval(meta.lineNumber);\n          schedulePfandDecoration(projectedCart, 0);\n          reapplyHeldCartChrome(0);\n        }, 180);\n      }\n    } else {\n      const item = itemForControlledLine(cart, meta);\n      if (item) {\n        setControlledLineVisual(meta.line, Number(item.quantity || quantity), meta);\n        updateProductLineMoney(meta.line, item);\n      } else {\n        setControlledLineVisual(meta.line, quantity, meta);\n      }\n      window.setTimeout(() => clearControlledLineVisual(meta.line), 260);\n    }\n\n    decoratePfandLines(projectedCart);\n    scheduleSync(80);\n    window.setTimeout(() => {\n      schedulePfandDecoration(projectedCart, 0);\n      reapplyHeldCartChrome(0);\n    }, 420);\n  };\n\n  const postControlledQuantity = async (meta, quantity) => {\n    internalCartMutationUntil = Date.now() + 2400;\n    controlledCartMutationUntil = Date.now() + 2600;\n    if (meta.useVariantId) {\n      const params = new URLSearchParams();\n      params.set('id', String(meta.variantId));\n      params.set('quantity', String(quantity));\n      const response = await fetch('/cart/change.js', {\n        method: 'POST',\n        credentials: 'same-origin',\n        cache: 'no-store',\n        headers: {\n          'Accept': 'application/json',\n          'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n        },\n        body: params.toString()\n      });\n      if (!response.ok) {\n        const detail = await response.text().catch(() => '');\n        throw new Error(`controlled cart/change.js ${response.status} ${detail.slice(0, 180)}`);\n      }\n      return response.json();\n    }\n    const body = meta.lineNumber && !meta.useVariantId\n      ? { line: meta.lineNumber, quantity }\n      : { id: meta.variantId, quantity };\n    const response = await fetch('/cart/change.js', {\n      method: 'POST',\n      credentials: 'same-origin',\n      cache: 'no-store',\n      headers: {\n        'Accept': 'application/json',\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify(body)\n    });\n    if (!response.ok) {\n      const detail = await response.text().catch(() => '');\n      throw new Error(`controlled cart/change.js ${response.status} ${detail.slice(0, 180)}`);\n    }\n    return response.json();\n  };\n\n  const finishControlledLineUpdate = (key, requestId, ok = true) => {\n    const state = controlledLineUpdates.get(key);\n    if (!state || state.inflightRequestId !== requestId) return;\n    state.inflight = false;\n    state.inflightRequestId = null;\n    if (state.requestId !== requestId || state.needsRun || state.desiredQuantity !== state.sentQuantity) {\n      state.needsRun = false;\n      window.setTimeout(() => runControlledLineUpdate(key), 20);\n      return;\n    }\n    window.setTimeout(() => {\n      const latestState = controlledLineUpdates.get(key);\n      if (!latestState || latestState.requestId !== requestId || latestState.inflight) return;\n      if (ok) clearControlledLineVisual(latestState.meta.line);\n      controlledLineUpdates.delete(key);\n    }, ok ? 520 : 1200);\n  };\n\n  async function runControlledLineUpdate(key) {\n    const state = controlledLineUpdates.get(key);\n    if (!state) return;\n    if (state.inflight) {\n      state.needsRun = true;\n      return;\n    }\n    window.clearTimeout(state.timer);\n    state.inflight = true;\n    state.sentQuantity = state.desiredQuantity;\n    const requestId = state.requestId;\n    state.inflightRequestId = requestId;\n    try {\n      const cart = await postControlledQuantity(state.meta, state.sentQuantity);\n      const latestState = controlledLineUpdates.get(key);\n      if (!latestState || latestState.requestId !== requestId || latestState.desiredQuantity !== state.sentQuantity) {\n        finishControlledLineUpdate(key, requestId, true);\n        return;\n      }\n      applyControlledCartResponse(cart, latestState.meta, latestState.desiredQuantity);\n      finishControlledLineUpdate(key, requestId, true);\n    } catch (error) {\n      const latestState = controlledLineUpdates.get(key);\n      if (latestState && latestState.requestId === requestId) {\n        const line = latestState.meta.line;\n        if (line) {\n          line.classList.add('toa-cart-line-controlled-error');\n          setControlledLineVisual(line, latestState.previousQuantity, latestState.meta);\n        }\n        console.warn('[TOA] Mengenupdate im Warenkorb fehlgeschlagen', error);\n      }\n      finishControlledLineUpdate(key, requestId, false);\n    }\n  }\n\n  const controlKeyForMeta = meta => meta.useVariantId && meta.variantId\n    ? `variant:${meta.variantId}`\n    : meta.lineNumber\n    ? `line:${meta.lineNumber}`\n    : `variant:${meta.variantId}`;\n\n  const queueControlledLineUpdate = meta => {\n    const key = controlKeyForMeta(meta);\n    if (!key || key === 'variant:null') return false;\n    let state = controlledLineUpdates.get(key);\n    if (!state) {\n      state = {\n        meta,\n        previousQuantity: meta.previousQuantity,\n        desiredQuantity: meta.quantity,\n        requestId: 0,\n        inflight: false,\n        inflightRequestId: null,\n        sentQuantity: null,\n        needsRun: false,\n        timer: null\n      };\n      controlledLineUpdates.set(key, state);\n    }\n    state.meta = meta;\n    state.desiredQuantity = meta.quantity;\n    state.requestId = ++controlledCartUpdateSeq;\n    if (!state.inflight) state.previousQuantity = meta.previousQuantity;\n    setControlledLineVisual(meta.line, meta.quantity, meta);\n    controlledCartMutationUntil = Date.now() + 2200;\n    window.clearTimeout(state.timer);\n    state.timer = window.setTimeout(() => runControlledLineUpdate(key), state.inflight ? 40 : 130);\n    return true;\n  };\n\n  const controlledMetaForTarget = target => {\n    if (!target || !cartQuantitySurface(target)) return null;\n    const line = lineRootForControl(target);\n    if (!line || isPfandLineNode(line)) return null;\n    const input = quantityInputForLine(line);\n    if (!input) return null;\n    const lineNumber = lineNumberForControl(target, line, input);\n    const variantId = variantIdForControl(target, line);\n    if (!lineNumber && !variantId) return null;\n    const useVariantId = !!variantId;\n    const previousQuantity = parseQuantityValue(input.value);\n    const maxQuantity = parsePositiveInteger(target.closest('[data-limit]')?.getAttribute('data-limit'))\n      || parsePositiveInteger(line.querySelector('[data-limit]')?.getAttribute('data-limit'));\n    let quantity = previousQuantity;\n    if (target.matches('.qty-adjuster__remove, button[name=\"remove\"], .cart-remove-button') || cartChangeQuantityParam(target) === 0) {\n      quantity = 0;\n    } else if (target.matches('.qty-adjuster__up')) {\n      quantity = previousQuantity + 1;\n    } else if (target.matches('.qty-adjuster__down')) {\n      quantity = Math.max(0, previousQuantity - 1);\n    } else {\n      const hrefQuantity = cartChangeQuantityParam(target);\n      if (hrefQuantity !== null) quantity = hrefQuantity;\n    }\n    if (maxQuantity && quantity > maxQuantity) quantity = maxQuantity;\n    return { line, input, lineNumber, variantId, useVariantId, previousQuantity, quantity, maxQuantity };\n  };\n\n  const controlledMetaForInput = input => {\n    if (!input || !cartQuantitySurface(input)) return null;\n    const line = lineRootForControl(input);\n    if (!line || isPfandLineNode(line)) return null;\n    const lineNumber = lineNumberForControl(input, line, input);\n    const variantId = variantIdForControl(input, line);\n    if (!lineNumber && !variantId) return null;\n    const useVariantId = !!variantId;\n    const previousQuantity = parseQuantityValue(input.getAttribute('data-initial-value') || input.defaultValue || input.value);\n    const maxQuantity = parsePositiveInteger(input.closest('[data-limit]')?.getAttribute('data-limit'))\n      || parsePositiveInteger(line.querySelector('[data-limit]')?.getAttribute('data-limit'));\n    let quantity = parseQuantityValue(input.value);\n    if (maxQuantity && quantity > maxQuantity) quantity = maxQuantity;\n    return { line, input, lineNumber, variantId, useVariantId, previousQuantity, quantity, maxQuantity };\n  };\n\n  const stopControlledEvent = event => {\n    event.preventDefault();\n    event.stopPropagation();\n    if (typeof event.stopImmediatePropagation === 'function') event.stopImmediatePropagation();\n  };\n\n  const handleControlledQuantityClick = event => {\n    const target = event.target?.closest?.('.qty-adjuster__up, .qty-adjuster__down, .qty-adjuster__remove, a[href*=\"/cart/change\"], button[name=\"remove\"], .cart-remove-button');\n    if (!target) return;\n    if (target.matches('[disabled], [aria-disabled=\"true\"]')) {\n      stopControlledEvent(event);\n      return;\n    }\n    const meta = controlledMetaForTarget(target);\n    if (!meta) return;\n    stopControlledEvent(event);\n    queueControlledLineUpdate(meta);\n  };\n\n  const handleControlledQuantityChange = event => {\n    const target = event.target;\n    if (!target?.matches?.('.qty-adjuster__value, input[name^=\"updates\"]')) return;\n    const meta = controlledMetaForInput(target);\n    if (!meta) return;\n    stopControlledEvent(event);\n    queueControlledLineUpdate(meta);\n  };\n\n  const addVariant = async (variantId, quantity, cents) => {\n    internalCartMutationUntil = Date.now() + 1600;\n    await fetch('/cart/add.js', {\n      method: 'POST',\n      credentials: 'same-origin',\n      headers: {\n        'Accept': 'application/json',\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify({\n        items: [{\n          id: variantId,\n          quantity,\n          properties: {\n            '_toa_pfand_auto': 'true',\n            '_toa_pfand_cents': String(cents)\n          }\n        }]\n      })\n    });\n  };\n\n  const forceCartDrawerVisible = drawer => {\n    if (!drawer || !drawer.style) return;\n    [\n      ['display', 'block'],\n      ['position', 'fixed'],\n      ['top', '0'],\n      ['left', 'auto'],\n      ['right', '0'],\n      ['bottom', '0'],\n      ['height', '100vh'],\n      ['transform', 'translate3d(0,0,0)'],\n      ['opacity', '1'],\n      ['visibility', 'visible'],\n      ['pointer-events', 'auto'],\n      ['z-index', '2147483646']\n    ].forEach(entry => drawer.style.setProperty(entry[0], entry[1], 'important'));\n  };\n\n  const clearForcedCartDrawerVisibility = () => {\n    const drawer = document.querySelector('.cart-summary');\n    if (!drawer || !drawer.style) return;\n    [\n      'display',\n      'position',\n      'top',\n      'left',\n      'right',\n      'bottom',\n      'height',\n      'transform',\n      'opacity',\n      'visibility',\n      'pointer-events',\n      'z-index'\n    ].forEach(property => drawer.style.removeProperty(property));\n  };\n\n  const openCartDrawer = () => {\n    const drawer = document.querySelector('.cart-summary');\n    if (!drawer) return false;\n    drawer.classList.add('active');\n    drawer.setAttribute('aria-hidden', 'false');\n    document.documentElement.classList.add('show-cart-summary');\n    document.body.classList.remove('show-mobile-nav');\n    document.body.classList.add('show-cart-summary', 'product-added-to-cart');\n    return true;\n  };\n\n  const refreshThemeCart = (shouldOpenDrawer = false) => {\n    const wasOpen = cartDrawerIsOpen();\n    const hasThemeRefresh = window.theme && typeof window.theme.updateCartSummaries === 'function';\n    if (window.theme && typeof window.theme.updateCartSummaries === 'function') {\n      window.theme.updateCartSummaries(false, true, false);\n    }\n    if (shouldOpenDrawer && !wasOpen) {\n      openCartDrawer();\n    }\n    return hasThemeRefresh;\n  };\n\n  const refreshCartUi = (shouldOpenDrawer = false) => {\n    internalRefreshUntil = Date.now() + 2200;\n    const refreshedByTheme = refreshThemeCart(shouldOpenDrawer);\n    document.dispatchEvent(new CustomEvent('toa:cart:refresh'));\n    document.dispatchEvent(new CustomEvent('toa:cart:changed'));\n    window.dispatchEvent(new CustomEvent('toa:cart:refresh'));\n    reapplyHeldCartChrome();\n    if (!refreshedByTheme) {\n      document.dispatchEvent(new CustomEvent('cart:refresh'));\n      document.dispatchEvent(new CustomEvent('cart:updated'));\n      if (window.jQuery) window.jQuery(window).trigger('cc-cart-updated');\n    }\n  };\n\n  const installControlledCartSummaryGuard = () => {\n    const theme = window.theme;\n    if (!theme || typeof theme.updateCartSummaries !== 'function') return;\n    if (theme.updateCartSummaries.__toaControlledGuard) return;\n    const originalUpdateCartSummaries = theme.updateCartSummaries;\n    const guardedUpdateCartSummaries = function(showCartSummary, isAddToCart, delayQtyAdjusterShow) {\n      if (controlledCartIsBusy() && !isAddToCart) {\n        if (showCartSummary) openCartDrawer();\n        schedulePfandDecoration(null, 120);\n        reapplyHeldCartChrome(0);\n        return false;\n      }\n      return originalUpdateCartSummaries.apply(this, arguments);\n    };\n    guardedUpdateCartSummaries.__toaControlledGuard = true;\n    guardedUpdateCartSummaries.__toaOriginal = originalUpdateCartSummaries;\n    theme.updateCartSummaries = guardedUpdateCartSummaries;\n  };\n\n  async function syncPfand() {\n    syncing = true;\n    queued = false;\n    const syncStartedAt = Date.now();\n    try {\n      let baseCart = preferredSyncCartFor(syncStartedAt);\n      if (!baseCart) {\n        const fetchedCart = await cartJson();\n        baseCart = preferredSyncCartFor(syncStartedAt) || fetchedCart;\n      }\n      const cart = mergePendingCartAdds(baseCart);\n      const requiredByCents = {};\n      const existingByCents = {};\n\n      for (const item of cart.items || []) {\n        const variantId = String(item.variant_id);\n        if (depositVariantIds.has(variantId)) {\n          const cents = Object.keys(CONFIG.depositVariantsByCents)\n            .find(key => String(CONFIG.depositVariantsByCents[key]) === variantId);\n          if (cents) {\n            if (!existingByCents[cents]) existingByCents[cents] = [];\n            existingByCents[cents].push(item);\n          }\n          continue;\n        }\n        const rule = CONFIG.variantRules[variantId];\n        if (!rule) continue;\n        const cents = String(rule.cents);\n        const units = Math.max(1, Number(rule.units || 1));\n        requiredByCents[cents] = (requiredByCents[cents] || 0) + (Number(item.quantity || 0) * units);\n      }\n\n      let changed = false;\n      let fullRefreshNeeded = false;\n      let latestCart = null;\n      for (const [cents, variantId] of Object.entries(CONFIG.depositVariantsByCents)) {\n        const required = requiredByCents[cents] || 0;\n        const lines = existingByCents[cents] || [];\n        const current = lines.reduce((sum, item) => sum + Number(item.quantity || 0), 0);\n\n        if (!required) {\n          for (const line of lines) {\n            latestCart = await changeLine(line.key, 0);\n            changed = true;\n          }\n          removeAllPfandLinesFromDom(true);\n          if (latestCart) holdCartChrome(cartWithProjectedPfand(latestCart));\n          continue;\n        }\n\n        if (!lines.length) {\n          await addVariant(variantId, required, cents);\n          latestCart = await cartJson().catch(() => null);\n          if (latestCart) holdCartChrome(cartWithProjectedPfand(latestCart));\n          fullRefreshNeeded = true;\n          changed = true;\n          continue;\n        }\n\n        const [primary, ...duplicates] = lines;\n        if (Number(primary.quantity || 0) !== required) {\n          const delta = required - Number(primary.quantity || 0);\n          const optimisticItem = Object.assign({}, primary, {\n            quantity: required,\n            price: Number(primary.price || cents),\n            line_price: Number(cents) * required,\n            final_line_price: Number(cents) * required\n          });\n          const optimisticCart = Object.assign({}, cart, {\n            total_price: Number(cart.total_price || 0) + (delta * Number(cents)),\n            item_count: Number(cart.item_count || 0) + delta,\n            items: (cart.items || []).map(item => item.key === primary.key ? optimisticItem : item)\n          });\n          if (required > 0) decoratePfandLines(optimisticCart);\n          latestCart = await changeLine(primary.key, required);\n          if (latestCart) decoratePfandLines(cartWithProjectedPfand(latestCart));\n          changed = true;\n        }\n        for (const duplicate of duplicates) {\n          latestCart = await changeLine(duplicate.key, 0);\n          changed = true;\n        }\n        if (duplicates.length) fullRefreshNeeded = true;\n      }\n\n      const shouldOpenDrawer = cartDrawerIsOpen();\n      if (changed) {\n        if (latestCart) {\n          rememberPreferredSyncCart(latestCart, 1600);\n          holdCartChrome(cartWithProjectedPfand(latestCart));\n        }\n        if (fullRefreshNeeded && !controlledCartIsBusy() && !shouldOpenDrawer) {\n          window.setTimeout(() => {\n            refreshCartUi(shouldOpenDrawer);\n            schedulePfandDecoration(null, 260);\n          }, shouldOpenDrawer ? 420 : 220);\n        } else {\n          schedulePfandDecoration(latestCart, fullRefreshNeeded ? 260 : 180);\n        }\n      } else {\n        decoratePfandLines(cart);\n      }\n    } catch (error) {\n      console.warn('[TOA] Pfand-Sync fehlgeschlagen', error);\n    } finally {\n      syncing = false;\n      if (queued) scheduleSync(80);\n    }\n  }\n\n  const originalFetch = window.fetch;\n  window.fetch = async function(input, init) {\n      const response = await originalFetch.apply(this, arguments);\n    try {\n      const url = typeof input === 'string' ? input : (input && input.url) || '';\n      if (isCartMutationUrl(url)) {\n        const isInternalMutation = Date.now() < internalCartMutationUntil;\n        if (!isInternalMutation && isCartAddUrl(url) && response?.ok) {\n          response.clone().json().then(rememberCartAddPayload).catch(() => {});\n        }\n        if (!isInternalMutation) scheduleAfterCartInteraction(isCartAddUrl(url));\n      }\n    } catch (error) {}\n    return response;\n  };\n\n  const originalOpen = XMLHttpRequest.prototype.open;\n  const originalSend = XMLHttpRequest.prototype.send;\n  XMLHttpRequest.prototype.open = function(method, url) {\n    this.__toaPfandUrl = String(url || '');\n    return originalOpen.apply(this, arguments);\n  };\n  XMLHttpRequest.prototype.send = function() {\n    this.addEventListener('loadend', () => {\n      if (isCartMutationUrl(this.__toaPfandUrl || '')) {\n        const isInternalMutation = Date.now() < internalCartMutationUntil;\n        if (!isInternalMutation) scheduleAfterCartInteraction(isCartAddUrl(this.__toaPfandUrl || ''));\n      }\n    });\n    return originalSend.apply(this, arguments);\n  };\n\n  installControlledCartSummaryGuard();\n  window.setTimeout(installControlledCartSummaryGuard, 350);\n  window.setTimeout(installControlledCartSummaryGuard, 1200);\n  document.addEventListener('DOMContentLoaded', () => {\n    installControlledCartSummaryGuard();\n    scheduleSync(250);\n  });\n  window.addEventListener('pageshow', () => {\n    installControlledCartSummaryGuard();\n    scheduleSync(250);\n  });\n  document.addEventListener('cart:refresh', () => {\n    schedulePfandDecoration();\n    reapplyHeldCartChrome();\n  }, true);\n  document.addEventListener('cart:updated', () => {\n    schedulePfandDecoration();\n    reapplyHeldCartChrome();\n  }, true);\n  document.addEventListener('toa:cart:refresh', () => {\n    schedulePfandDecoration();\n    reapplyHeldCartChrome();\n  }, true);\n  document.addEventListener('toa:cart:changed', () => {\n    schedulePfandDecoration();\n    reapplyHeldCartChrome();\n  }, true);\n  if (window.jQuery) {\n    window.jQuery(window).on('cc-cart-updated.toaPfandCartSync theme:cartchanged.toaPfandCartSync', () => {\n      if (Date.now() < internalRefreshUntil) {\n        schedulePfandDecoration();\n        reapplyHeldCartChrome();\n        return;\n      }\n      scheduleSync(220);\n      schedulePfandDecoration();\n      reapplyHeldCartChrome();\n    });\n  }\n  document.addEventListener('submit', event => {\n    const form = event.target;\n    if (form && form.matches && form.matches('form[action*=\"/cart\"]')) scheduleSync(0);\n  }, true);\n  document.addEventListener('click', event => {\n    const target = event.target && event.target.closest\n      ? event.target.closest('a[href=\"/checkout\"], button[name=\"checkout\"], [data-checkout-button]')\n      : null;\n    if (target) scheduleSync(0);\n  }, true);\n  document.addEventListener('click', event => {\n    const target = event.target;\n    if (!target || !target.closest) return;\n    const closeTarget = target.closest('.cart-summary__close, .cart-close, .drawer__close, .js-close-cart, [data-cart-close], #page-overlay, .page-overlay');\n    const drawerIsOpen = document.body.classList.contains('show-cart-summary')\n      || document.documentElement.classList.contains('show-cart-summary')\n      || !!document.querySelector('.cart-summary.active');\n    const outsideDrawer = drawerIsOpen\n      && !target.closest('.cart-summary')\n      && !target.closest('.toggle-cart-summary');\n    if (closeTarget || outsideDrawer) window.setTimeout(clearForcedCartDrawerVisibility, 80);\n  }, true);\n  document.addEventListener('keydown', event => {\n    if (event.key === 'Escape') window.setTimeout(clearForcedCartDrawerVisibility, 80);\n  }, true);\n  document.addEventListener('click', handleControlledQuantityClick, true);\n  document.addEventListener('change', handleControlledQuantityChange, true);\n  document.addEventListener('click', event => {\n    if (event.defaultPrevented) return;\n    const target = event.target && event.target.closest\n      ? event.target.closest('.cart-summary .qty-adjuster__up, .cart-summary .qty-adjuster__down, .cart-summary .qty-adjuster__remove, .cart-summary a[href*=\"/cart/change\"], .cart-summary button[name=\"remove\"]')\n      : null;\n    if (target) {\n      scheduleSync(260);\n      window.setTimeout(() => scheduleSync(0), 760);\n    }\n  }, true);\n  document.addEventListener('change', event => {\n    if (event.defaultPrevented) return;\n    const target = event.target;\n    if (target && target.matches && target.matches('.cart-summary .qty-adjuster__value, .cart-summary input[name^=\"updates\"]')) {\n      scheduleSync(260);\n      window.setTimeout(() => scheduleSync(0), 760);\n    }\n  }, true);\n  if (window.MutationObserver) {\n    let decorationQueued = false;\n    const isCartMutationNode = node => {\n      const element = node && node.nodeType === 1 ? node : node?.parentElement;\n      return !!(element && element.closest && element.closest('.cart-summary, .ajaxcart, [data-cart-drawer], [data-cart-items], form[action*=\"/cart\"]'));\n    };\n    new MutationObserver(mutations => {\n      const touchesCart = mutations.some(mutation => {\n        return isCartMutationNode(mutation.target)\n          || Array.from(mutation.addedNodes || []).some(isCartMutationNode)\n          || Array.from(mutation.removedNodes || []).some(isCartMutationNode);\n      });\n      if (!touchesCart) return;\n      if (decorationQueued) return;\n      decorationQueued = true;\n      window.setTimeout(() => {\n        decorationQueued = false;\n        schedulePfandDecoration();\n        reapplyHeldCartChrome();\n        window.setTimeout(() => reapplyHeldCartChrome(0), 180);\n      }, 140);\n    }).observe(document.documentElement, { childList: true, subtree: true });\n  }\n  schedulePfandDecoration();\n})();\n"],
  "mappings": "CAAC,IAAM,CACL,GAAI,OAAO,4BAA6B,OACxC,OAAO,4BAA8B,GACrC,MAAM,OAAS,CAAC,eAAiB,KAAK,aAAe,8BAAgC,uBAAyB,CAAC,EAAI,eAAe,GAAK,cAAc,EAAE,aAAe,CAAC,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,EAAE,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,EAAE,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,EAAE,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,EAAE,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,EAAE,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAQ,GAAG,MAAQ,CAAC,EAAE,iBAAiB,CAAC,MA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",
  "names": ["value", "response", "cents"]
}
